owned_ttf_parser-0.25.0/.cargo_vcs_info.json0000644000000001360000000000100144650ustar { "git": { "sha1": "f3f64cfc30c47b666dbc45ae955c136e8a809228" }, "path_in_vcs": "" }owned_ttf_parser-0.25.0/.github/workflows/ci.yml000064400000000000000000000011471046102023000177730ustar 00000000000000name: Rust on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest env: RUST_BACKTRACE: 1 steps: - run: rustup update stable - run: rustup target add thumbv6m-none-eabi - uses: actions/checkout@v4 - run: cargo test - name: Build no_std run: cargo build --target thumbv6m-none-eabi --no-default-features --features "no-std-float variable-fonts opentype-layout glyph-names" rustfmt: runs-on: ubuntu-latest steps: - run: rustup update stable - uses: actions/checkout@v4 - run: cargo fmt -- --check owned_ttf_parser-0.25.0/.gitignore000064400000000000000000000000231046102023000152400ustar 00000000000000/target Cargo.lock owned_ttf_parser-0.25.0/CHANGELOG.md000064400000000000000000000105671046102023000150770ustar 00000000000000# 0.25.0 * Update _ttf-parser_ to `0.25.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0250---2024-10-04). # 0.24.0 * Update _ttf-parser_ to `0.24.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0240---2024-07-02). * Use of feature `no-std-float` is required for no-std builds. # 0.23.0 * Update _ttf-parser_ to `0.23.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0230---2024-07-02). * Remove feature `no-std-float`. # 0.22.0 * Update _ttf-parser_ to `0.22.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0220---2024-06-29). * Use of feature `no-std-float` is required for no-std builds. # 0.21.0 * Update _ttf-parser_ to `0.21.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0210---2024-05-10). # 0.20.0 * Update _ttf-parser_ to `0.20.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0200---2023-10-15). * Guard against future soundness issues if upstream `Face` were to implement `Drop`. # 0.19.0 * Update _ttf-parser_ to `0.19.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0190---2023-04-17). # 0.18.1 * Make `PreParsedSubtables` `face` field public. This allows referencing and unwrapping the underlying face. # 0.18.0 * Update _ttf-parser_ to `0.18.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0180---2022-12-25). # 0.17.1 * Add `PreParsedSubtables::glyph_variation_index`. # 0.17.0 * Update _ttf-parser_ to `0.17.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0170---2022-09-28). # 0.16.0 * Update _ttf-parser_ to `0.16.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0160---2022-09-18). # 0.15.2 * Add `FaceMut::set_variation` trait abstraction for calling mutable `Face::set_variation` via `OwnedFace`. * Use edition 2021. # 0.15.1 * Add `OwnedFace::as_slice`, `OwnedFace::into_vec`. # 0.15.0 * Update _ttf-parser_ to `0.15.0`, add `apple-layout` feature [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0150---2022-02-20). # 0.14.0 * Update _ttf-parser_ to `0.14.0`, [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0140---2021-12-28). # 0.13.2 * Add `PreParsedSubtables` struct allowing pre-parsing of cmap & kern face subtables at initialization time for re-use. This allows much faster `glyph_index` & `glyphs_hor_kerning` avoiding the need to parse subtables inside each call. * Update _ttf-parser_ to `0.13.2`, add `gvar-alloc` feature [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0132---2021-10-28). # 0.13.1 * Update _ttf-parser_ to `0.13.1` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0131---2021-10-27). # 0.13.0 * Update _ttf-parser_ to `0.13` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0130---2021-10-24). # 0.12.1 * Update _ttf-parser_ to `0.12.3` to ensure consistent glyph bounding box behaviour. # 0.12 * Update _ttf-parser_ to `0.12` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0120---2021-02-14). # 0.11 * Update _ttf-parser_ to `0.11` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0110---2021-02-04). # 0.10 * Update _ttf-parser_ to `0.10` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#0100---2021-01-16). * Add `variable-fonts` features, alongside existing `std` feature (both default) inline with upstream. # 0.9 * Update _ttf-parser_ to `0.9` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#090---2020-12-05). # 0.8 * Update _ttf-parser_ to `0.8` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#080---2020-07-21). * `OwnedFace::from_vec` now returns a `Result`. # 0.7 * Update _ttf-parser_ to `0.7` [changelog](https://github.com/RazrFalcon/ttf-parser/blob/master/CHANGELOG.md#070---2020-07-16). * Update `*Font` -> `*Face` to reflect the _ttf-parser_ API changes. ```rust // 0.6 let owned_font = OwnedFont::from_vec(owned_font_data, 0)?; // 0.7 let owned_face = OwnedFace::from_vec(owned_font_data, 0)?; ``` # 0.6 * Update _ttf-parser_ to `0.6`. # 0.5.1 * Support no_std. # 0.5 * Implement crate supporting _ttf-parser_ `0.5`. owned_ttf_parser-0.25.0/Cargo.toml0000644000000031310000000000100124610ustar # THIS FILE IS AUTOMATICALLY GENERATED BY CARGO # # When uploading crates to the registry Cargo will automatically # "normalize" Cargo.toml files for maximal compatibility # with all versions of Cargo and also rewrite `path` dependencies # to registry (e.g., crates.io) dependencies. # # If you are reading this file be aware that the original Cargo.toml # will likely look very different (and much more reasonable). # See Cargo.toml.orig for the original contents. [package] edition = "2021" name = "owned_ttf_parser" version = "0.25.0" authors = ["Alex Butler "] build = false autobins = false autoexamples = false autotests = false autobenches = false description = "ttf-parser plus support for owned data" readme = "README.md" keywords = [ "ttf", "truetype", "otf", "opentype", ] license = "Apache-2.0" repository = "https://github.com/alexheretic/owned-ttf-parser" [lib] name = "owned_ttf_parser" path = "src/lib.rs" [[test]] name = "face_mut" path = "tests/face_mut.rs" [[test]] name = "owned_ttf" path = "tests/owned_ttf.rs" [[test]] name = "preparse" path = "tests/preparse.rs" [dependencies.ttf-parser] version = "0.25" default-features = false [features] apple-layout = ["ttf-parser/apple-layout"] default = [ "std", "opentype-layout", "apple-layout", "variable-fonts", "glyph-names", ] glyph-names = ["ttf-parser/glyph-names"] gvar-alloc = [ "std", "ttf-parser/gvar-alloc", ] no-std-float = ["ttf-parser/no-std-float"] opentype-layout = ["ttf-parser/opentype-layout"] std = ["ttf-parser/std"] variable-fonts = ["ttf-parser/variable-fonts"] owned_ttf_parser-0.25.0/Cargo.toml.orig0000644000000035330000000000100134260ustar [package] name = "owned_ttf_parser" # Version should be inline with ttf-parser version = "0.25.0" authors = ["Alex Butler "] edition = "2021" description = "ttf-parser plus support for owned data" repository = "https://github.com/alexheretic/owned-ttf-parser" keywords = ["ttf", "truetype", "otf", "opentype"] license = "Apache-2.0" readme = "README.md" [dependencies] ttf-parser = { version = "0.25", default-features = false } [features] default = ["std", "opentype-layout", "apple-layout", "variable-fonts", "glyph-names"] # Activates usage of std. # When disabled, the `no-std-float` feature must be enabled instead. std = ["ttf-parser/std"] no-std-float = ["ttf-parser/no-std-float"] # Enables variable fonts support. Increases binary size almost twice. # Includes avar, CFF2, fvar, gvar, HVAR, MVAR and VVAR tables. variable-fonts = ["ttf-parser/variable-fonts"] # Enables GDEF, GPOS and GSUB tables. opentype-layout = ["ttf-parser/opentype-layout"] # Enables ankr, feat, format1 subtable in kern, kerx, morx and trak tables. apple-layout = ["ttf-parser/apple-layout"] # Enables glyph name query via `Face::glyph_name`. # TrueType fonts do not store default glyph names, to reduce file size, # which means we have to store them in ttf-parser. And there are almost 500 of them. # By disabling this feature a user can reduce binary size a bit. glyph-names = ["ttf-parser/glyph-names"] # Enables heap allocations during gvar table parsing used by Apple's variable fonts. # Due to the way gvar table is structured, we cannot avoid allocations. # By default, only up to 32 variable tuples will be allocated on the stack, # while the spec allows up to 4095. Most variable fonts use 10-20 tuples, # so our limit is suitable for most of the cases. But if you need full support, you have to # enable this feature. gvar-alloc = ["std", "ttf-parser/gvar-alloc"] owned_ttf_parser-0.25.0/Cargo.toml.orig000064400000000000000000000035331046102023000161500ustar 00000000000000[package] name = "owned_ttf_parser" # Version should be inline with ttf-parser version = "0.25.0" authors = ["Alex Butler "] edition = "2021" description = "ttf-parser plus support for owned data" repository = "https://github.com/alexheretic/owned-ttf-parser" keywords = ["ttf", "truetype", "otf", "opentype"] license = "Apache-2.0" readme = "README.md" [dependencies] ttf-parser = { version = "0.25", default-features = false } [features] default = ["std", "opentype-layout", "apple-layout", "variable-fonts", "glyph-names"] # Activates usage of std. # When disabled, the `no-std-float` feature must be enabled instead. std = ["ttf-parser/std"] no-std-float = ["ttf-parser/no-std-float"] # Enables variable fonts support. Increases binary size almost twice. # Includes avar, CFF2, fvar, gvar, HVAR, MVAR and VVAR tables. variable-fonts = ["ttf-parser/variable-fonts"] # Enables GDEF, GPOS and GSUB tables. opentype-layout = ["ttf-parser/opentype-layout"] # Enables ankr, feat, format1 subtable in kern, kerx, morx and trak tables. apple-layout = ["ttf-parser/apple-layout"] # Enables glyph name query via `Face::glyph_name`. # TrueType fonts do not store default glyph names, to reduce file size, # which means we have to store them in ttf-parser. And there are almost 500 of them. # By disabling this feature a user can reduce binary size a bit. glyph-names = ["ttf-parser/glyph-names"] # Enables heap allocations during gvar table parsing used by Apple's variable fonts. # Due to the way gvar table is structured, we cannot avoid allocations. # By default, only up to 32 variable tuples will be allocated on the stack, # while the spec allows up to 4095. Most variable fonts use 10-20 tuples, # so our limit is suitable for most of the cases. But if you need full support, you have to # enable this feature. gvar-alloc = ["std", "ttf-parser/gvar-alloc"] owned_ttf_parser-0.25.0/LICENSE000064400000000000000000000236751046102023000142770ustar 00000000000000 Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS owned_ttf_parser-0.25.0/README.md000064400000000000000000000016111046102023000145330ustar 00000000000000owned_ttf_parser [![crates.io](https://img.shields.io/crates/v/owned_ttf_parser.svg)](https://crates.io/crates/owned_ttf_parser) [![Documentation](https://docs.rs/owned_ttf_parser/badge.svg)](https://docs.rs/owned_ttf_parser) ================ [ttf-parser](https://github.com/RazrFalcon/ttf-parser) plus support for owned data. Provides `OwnedFace`, `AsFaceRef` and re-exports `ttf_parser::*`. ## Example ```rust use owned_ttf_parser::{AsFaceRef, OwnedFace, Face}; let owned_face = OwnedFace::from_vec(owned_face_data, 0).unwrap(); let face_ref: &Face<'_> = owned_face.as_face_ref(); assert_eq!(face_ref.ascender(), 2254); ``` ## no_std no_std environments are supported using `alloc`. ```toml owned_ttf_parser = { default-features = false } ``` ## Minimum supported rust compiler All crates maintained with [latest stable rust](https://gist.github.com/alexheretic/d1e98d8433b602e57f5d0a9637927e0c). owned_ttf_parser-0.25.0/fonts/Cantarell-VF.otf000064400000000000000000005151341046102023000173470ustar 00000000000000OTTOCFF21$WKGDEF^$dGPOSu*dVGSUB9O HVARS{ @MVAR',ZOS/2{*Q`STAT~ tfavarcmap5&$ fvariLhead;6hheaT$hmtxdmaxp*Pxname4#t^post~(.AMis]_<-%K'c*P*8q2!@!{ABAT@ '  2rrrrrrrrrrrrrrrrrrrrrrrrrrv\6666666\C\ \ \\\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\H\3\6666666\\\\ \ V       M M         `\`\`\\\W\\\\\\[\[\\|\\\\\\\\\\666666666666666666666666666666666666N\N\6l\l\l\l\l\l\l\l\)")")"\)")")")")")")")"S56 6 6 6 6 6 6 HHHHHHHHHHHHHHHHHHHHHHHHHHHH[     TDDDDDDDDDD|(|(|(|(|(///////////////.//////////B/B/:S4444444:4)0`4:4:4:4 4444444444444444444444444T:4:4:4:4:4:4:47S77S7S7SCSSCC SSSSSL'SSSS S%HvSvS7S7S7S7S7S7S7S-S7S7S7474747474747474747474747474747474s4s4s4s4s4s47474747474747474747474744;S8S:4ySySyNy7yyAyRy...S........SSi%i$i%i%i%ii%i%.K.K.K.K.K.J.K.K.K.K.K.K.K.KKKKKKK.K.K.K.K.K.K.K.K            '''''SJj56rm\v\\\\H\H\H\J&\\\|\|\ [\\6\N\66 VV+T{:\\\\h\E\- /\)"6* \   \b   +6 \J&\\\\6DD::o\ \{:rrH\5J&\\66VVV{:\E\6 /%; SSSS1444#CSCSCSSS= S>S746S;S4  4 /,S'S4S@SS>SJ CS.4%C7S%7u&74 S#SSnISS4   //7S \///B/44#CSCS7474   /SS:4rv\\iH\|(\6 \`\r[\\I?6\N\e-6 D+T/)rH D| Drrrrrurr_rPrrrrrrrrrrurr_rPHHH HHH HH  \              '7$NDDDDD}D|DD$4!)$4!J47S 34//2SG9SSES //4_%/?4G4!F9F9S!F!F!F/49J4/2S&J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4J4////////2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S2S<C"S/4/4/4/4/4/4/4/4/?/?!F!F!F!F!F!F!F!F!F!F!F!F!F!$!F!F99999999999999999999999f:#2$U$/G9 D2G3f:d: #-$K!/D9@2C3d:D)D@D=D-DD?D7D4D2D1D)7')78h667')78h667')78h667')78h66F7U'd)Y')j7(m)7k@0@0gCC@x<&"RR0-?-(m=m#^d^(CD(''F'F'!,!*S*S)F?OOG'I&DdMD6DhD7D6D?D7DD}D5DDD+D:D:D-DDDD0D2D:D,DCDD)@D.DmD7D7D7D7DbD7D7D7DXDXD?D?D6D1D.D7D3Q\B8W?\A@;E?SLcL@8B8:XX9>PE&&WqQW&BbBff\\>6N5D\\' U*!''LL$4BQ-"7E1=X(Z6AcGOOc1Y7XYX&]aefdJ^LL/($-"7E8AU(9N&XMQ!2-'7=X(UXSSLKKKK>>K7>>KK>>JJJ)])]JBBSSJK78 F8 K kJ <</9~1H~-37Y $).18uz#:C_cku !%+17;IS[io{'?EMWY[]}    " & 0 5 : D R p y !!!"!&!.!_!!""""""""+"6"H"b"e$#%%'駌 0:4J*07Y#&.15uz$;Dbjr  $*.6:BLZ^lx (@HPY[]_    & 0 2 9 D R p t !!!"!&!.!P!!""""""""+"6"H"`"d$#%%'觋+7I43sqIRJQKa !e~c{|_i]\:d<X*$.6000:@r 06DZ`bhnprtv|~r&B\fhU'J.]K34-w#9"/$%~{})%-DELQadgqs~708=78?DUY]fhr56U(Zm\qD9+E* !<.29[RUW'}y  . $+OFIKqsv}z  #$ ()?1/!:,B40"H;F9J=I<OBM@`T^RSG_SYEcXf[\i^k`j_lapeuiwkvjznt&,hnct{o THuG: 8*>0VJ]Q|~?EFG=B>AC@D     HIJKNORSTUWcdfeghkljqvwPQxLporstmnuXVbiyz {!|M"}#~$%&'()*+,-./0123456789:;<=>?@ABCDEFG"*+A3@21#K>PCNAXLeZmbodrgxlym|p  ;-=/C53%5'6(7)4&\PZNwyz{x QRhirsxyz{|}~ !"#TUWVXSa  !vuwt  ONONWQTPSVRX99<:;;BC>@A?,IHae^_dojbcYnlfgk !xr|uv   $   8 "6 X "r .   4   "  *  4 ?@ABC-DE.FG/HIJKLMNO0P1QRSTUVWXYf2Z[\]^_`agbcdefghijklmnopqrstu345vwxyz{|6}~78h9:;<=DikljnmEFoGHprsqIJKLtvwuMNOPQ  xRy  { |z !"#}$%&STU'()*+,-V./0123456W789:;<=X~>?@ABCDEFGHIJKLMNOPQRSTYZUVWX[\YZ[\]^_]`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" ? ^`>@B  !aA# _C      !"#$%&'()*+,-./0123Abreveuni1EAEuni1EB6uni1EB0uni1EB2uni1EB4uni01CDuni1EA4uni1EACuni1EA6uni1EA8uni1EAAuni0200uni1EA0uni1EA2uni0202AmacronAogonek AringacuteAEacuteuni1E08 Ccircumflex Cdotaccentuni01C4DcaronDcroatuni1E0Cuni1E0Euni01C5EbreveEcaronuni1E1Cuni1EBEuni1EC6uni1EC0uni1EC2uni1EC4uni0204 Edotaccentuni1EB8uni1EBAuni0206Emacronuni1E16uni1E14Eogonekuni1EBCGcaron Gcircumflexuni0122 Gdotaccentuni1E20Hbaruni1E2A Hcircumflexuni1E24Ibreveuni01CFuni0208uni1E2Euni1ECAuni1EC8uni020AImacronIogonekItilde uni004A0301 Jcircumflexuni1E30uni0136uni01C7LacuteLcaronuni013BLdotuni1E36uni01C8uni1E3Auni1E42uni01CANacuteNcaronuni0145uni1E44uni1E46Enguni01CBuni1E48Obreveuni01D1uni1ED0uni1ED8uni1ED2uni1ED4uni1ED6uni020Cuni022Auni0230uni1ECCuni1ECEOhornuni1EDAuni1EE2uni1EDCuni1EDEuni1EE0 Ohungarumlautuni020EOmacronuni1E52uni1E50uni01EA Oslashacuteuni1E4Cuni1E4Euni022CRacuteRcaronuni0156uni0210uni1E5Auni0212uni1E5ESacuteuni1E64uniA78Buni1E66 Scircumflexuni0218uni1E60uni1E62uni1E68uni1E9Euni018FTbarTcaronuni0162uni021Auni1E6Cuni1E6EUbreveuni01D3uni0214uni01D7uni01D9uni01DBuni01D5uni1EE4uni1EE6Uhornuni1EE8uni1EF0uni1EEAuni1EECuni1EEE Uhungarumlautuni0216Umacronuni1E7AUogonekUringUtildeuni1E78Wacute Wcircumflex WdieresisWgrave Ycircumflexuni1E8Euni1EF4Ygraveuni1EF6uni0232uni1EF8Zacute Zdotaccentuni1E92abreveuni1EAFuni1EB7uni1EB1uni1EB3uni1EB5uni01CEuni1EA5uni1EADuni1EA7uni1EA9uni1EABuni0201uni1EA1uni1EA3uni0203amacronaogonek aringacuteaeacuteuni1E09 ccircumflex cdotaccentdcaronuni1E0Duni1E0Funi01C6ebreveecaronuni1E1Duni1EBFuni1EC7uni1EC1uni1EC3uni1EC5uni0205 edotaccentuni1EB9uni1EBBuni0207emacronuni1E17uni1E15eogonekuni1EBDuni0259gcaron gcircumflexuni0123 gdotaccentuni1E21hbaruni1E2B hcircumflexuni1E25ibreveuni01D0uni0209uni1E2F i.loclTRKuni1ECBuni1EC9uni020Bimacroniogonekitildeuni0237 uni006A0301 jcircumflexuni1E31uni0137 kgreenlandiclacutelcaronuni013Cldotuni1E37uni01C9uni1E3Buni1E43nacutencaronuni0146uni1E45uni1E47enguni01CCuni1E49obreveuni01D2uni1ED1uni1ED9uni1ED3uni1ED5uni1ED7uni020Duni022Buni0231uni1ECDuni1ECFohornuni1EDBuni1EE3uni1EDDuni1EDFuni1EE1 ohungarumlautuni020Fomacronuni1E53uni1E51uni01EB oslashacuteuni1E4Duni1E4Funi022Dracutercaronuni0157uni0211uni1E5Buni0213uni1E5Fsacuteuni1E65uniA78Cuni1E67 scircumflexuni0219uni1E61uni1E63uni1E69tbartcaronuni0163uni021Buni1E97uni1E6Duni1E6Fubreveuni01D4uni0215uni01D8uni01DAuni01DCuni01D6uni1EE5uni1EE7uhornuni1EE9uni1EF1uni1EEBuni1EEDuni1EEF uhungarumlautuni0217umacronuni1E7Buogonekuringutildeuni1E79wacute wcircumflex wdieresiswgrave ycircumflexuni1E8Funi1EF5ygraveuni1EF7uni0233uni1EF9zacute zdotaccentuni1E93l.ss01uni0410uni0411uni0412uni0413uni0403uni0490uni0414uni0415uni0400uni0401uni0416uni0417uni0418uni0419uni040Duni041Auni040Cuni041Buni041Cuni041Duni041Euni041Funi0420uni0421uni0422uni0423uni040Euni0424uni0425uni0427uni0426uni0428uni0429uni040Funi042Cuni042Auni042Buni0409uni040Auni0405uni0404uni042Duni0406uni0407uni0408uni040Buni042Euni042Funi0402uni0462uni046Auni0472uni0474uni0492uni0494uni0496uni0498uni049Auni049Cuni04A0uni04A2uni04A4uni04AAuni04AEuni04B0uni04B2uni04B6uni04B8uni04BAuni04C0uni04C1uni04CBuni04D0uni04D2uni04D4uni04D6uni04D8uni04DCuni04DEuni04E2uni04E4uni04E6uni04E8uni04EEuni04F0uni04F2uni04F4uni04F6uni04F8uni051Auni051Cuni0430uni0431uni0432uni0433uni0453uni0491uni0434uni0435uni0450uni0451uni0436uni0437uni0438uni0439uni045Duni043Auni045Cuni043Buni043Cuni043Duni043Euni043Funi0440uni0441uni0442uni0443uni045Euni0444uni0445uni0447uni0446uni0448uni0449uni045Funi044Cuni044Auni044Buni0459uni045Auni0455uni0454uni044Duni0456uni0457uni0458uni045Buni044Euni044Funi0452uni0463uni046Buni0473uni0475uni0493uni0495uni0497uni0499uni049Buni049Duni04A1uni04A3uni04A5uni04ABuni04AFuni04B1uni04B3uni04B7uni04B9uni04BBuni04CFuni04C2uni04CCuni04D1uni04D3uni04D5uni04D7uni04D9uni04DDuni04DFuni04E3uni04E5uni04E7uni04E9uni04EFuni04F1uni04F3uni04F5uni04F7uni04F9uni051Buni051DAlphaBetaGammauni0394EpsilonZetaEtaThetaIotaKappaLambdaMuNuXiOmicronPiRhoSigmaTauUpsilonPhiChiPsiuni03A9 Alphatonos EpsilontonosEtatonos Iotatonos Omicrontonos Upsilontonos Omegatonos IotadieresisUpsilondieresisuni1F08uni1F09uni1F0Auni1F0Buni1F0Cuni1F0Duni1F0Euni1F0Funi1FBAuni1FBBuni1FB8uni1FB9uni1FBCuni1F88uni1F89uni1F8Auni1F8Buni1F8Cuni1F8Duni1F8Euni1F8Funi1F18uni1F19uni1F1Auni1F1Buni1F1Cuni1F1Duni1FC8uni1FC9uni1F28uni1F29uni1F2Auni1F2Buni1F2Cuni1F2Duni1F2Euni1F2Funi1FCAuni1FCBuni1FCCuni1F98uni1F99uni1F9Auni1F9Buni1F9Cuni1F9Duni1F9Euni1F9Funi1F38uni1F39uni1F3Auni1F3Buni1F3Cuni1F3Duni1F3Euni1F3Funi1FDAuni1FDBuni1FD8uni1FD9uni1F48uni1F49uni1F4Auni1F4Buni1F4Cuni1F4Duni1FF8uni1FF9uni1FECuni1F59uni1F5Buni1F5Duni1F5Funi1FEAuni1FEBuni1FE8uni1FE9uni1F68uni1F69uni1F6Auni1F6Buni1F6Cuni1F6Duni1F6Euni1F6Funi1FFAuni1FFBuni1FFCuni1FA8uni1FA9uni1FAAuni1FABuni1FACuni1FADuni1FAEuni1FAFalphabetagammadeltaepsilonzetaetathetaiotakappalambdauni03BCnuxiomicronrhouni03C2sigmatauupsilonphichipsiomega iotatonos iotadieresisiotadieresistonos upsilontonosupsilondieresisupsilondieresistonos omicrontonos omegatonos alphatonos epsilontonosetatonosuni03D7uni1F00uni1F01uni1F02uni1F03uni1F04uni1F05uni1F06uni1F07uni1F70uni1F71uni1FB6uni1FB0uni1FB1uni1FB3uni1FB2uni1FB4uni1F80uni1F81uni1F82uni1F83uni1F84uni1F85uni1F86uni1F87uni1FB7uni1F10uni1F11uni1F12uni1F13uni1F14uni1F15uni1F72uni1F73uni1F20uni1F21uni1F22uni1F23uni1F24uni1F25uni1F26uni1F27uni1F74uni1F75uni1FC6uni1FC3uni1FC2uni1FC4uni1F90uni1F91uni1F92uni1F93uni1F94uni1F95uni1F96uni1F97uni1FC7uni1F30uni1F31uni1F32uni1F33uni1F34uni1F35uni1F36uni1F37uni1F76uni1F77uni1FD6uni1FD0uni1FD1uni1FD2uni1FD3uni1FD7uni1F40uni1F41uni1F42uni1F43uni1F44uni1F45uni1F78uni1F79uni1FE4uni1FE5uni1F50uni1F51uni1F52uni1F53uni1F54uni1F55uni1F56uni1F57uni1F7Auni1F7Buni1FE6uni1FE0uni1FE1uni1FE2uni1FE3uni1FE7uni1F60uni1F61uni1F62uni1F63uni1F64uni1F65uni1F66uni1F67uni1F7Cuni1F7Duni1FF6uni1FF3uni1FF2uni1FF4uni1FA0uni1FA1uni1FA2uni1FA3uni1FA4uni1FA5uni1FA6uni1FA7uni1FF7uni1FBEuni037A zero.zerozero.osfone.osftwo.osf three.osffour.osffive.osfsix.osf seven.osf eight.osfnine.osf zero.osf.zerozero.tfone.tftwo.tfthree.tffour.tffive.tfsix.tfseven.tfeight.tfnine.tf zero.tf.zerouni2080uni2081uni2082uni2083uni2084uni2085uni2086uni2087uni2088uni2089 zero.dnomone.dnomtwo.dnom three.dnom four.dnom five.dnomsix.dnom seven.dnom eight.dnom nine.dnom zero.numrone.numrtwo.numr three.numr four.numr five.numrsix.numr seven.numr eight.numr nine.numruni2070uni00B9uni00B2uni00B3uni2074uni2075uni2076uni2077uni2078uni2079uni215Funi2189uni2153uni2154uni2155uni2156uni2157uni2158uni2159uni215Auni2150 oneeighth threeeighths fiveeighths seveneighthsuni2151uni2152periodcentered.loclCAT.caseperiodcentered.loclCAT figuredashuni2035uni2034uni27E8uni27E9uni2003uni2002uni2007uni2005uni200Auni2008uni2006uni2009uni2004uni200Buni20B5 colonmonetarydongEurouni20B2uni20B4uni20ADlirauni20BAuni20BCuni20A6pesetauni20B1uni20BDuni20B9uni20B8uni20AEuni20A9uni2219uni2052uni2215 equivalenceuni2262emptysetuni2126uni2206uni00B5uni2236arrowup arrowright arrowdown arrowleftuni25CFcircleminuteseconduni2113 estimateduni2116uni2423uni0375uni02BCuni02BBuni02BAuni02C9uni02CBuni02B9uni02BFuni02BEuni02CAuni02CCuni02C8uni0308uni0307 gravecomb acutecombuni030B uni030C.altuni0302uni030Cuni0306uni030Auni030A_uni0301 tildecombuni0304 hookabovecombuni030Duni030Funi0311uni0312uni031B dotbelowcombuni0324uni0326uni0327uni0328uni0329uni032Euni0331uni0335uni0336uni0337uni0338 uni0308.case uni0307.casegravecomb.caseacutecomb.case uni030B.case uni0302.case uni030C.case uni0306.case uni030A.caseuni030A_uni0301.casetildecomb.case uni0304.casehookabovecomb.case uni030F.case uni0311.case uni0335.case uni0337.case uni0338.caseuni0304.narrow.caseuni0328.tall.caseuni0308.loclVIETuni0307.loclVIETgravecomb.loclVIETacutecomb.loclVIETuni0302.loclVIETuni030C.loclVIETuni0306.loclVIETtildecomb.loclVIETuni0304.loclVIEThookabovecomb.loclVIETuni0304.narrowuni0328.narrowuni0331.narrow uni0328.talltonos tonos.case dieresistonosuni1FBF uni1FBF.caseuni1FBD uni1FBD.caseuni1FFE uni1FFE.caseuni1FCD uni0306.greekuni1FDD uni1FDD.caseuni1FCE uni1FCE.caseuni1FDE uni1FDE.caseuni1FCF uni1FCF.case uni1FDF.caseuni1FEDuni1FEEuni1FC1uni1FEF uni1FEF.caseuni1FFD uni1FFD.caseuni1FC0 uni1FCD.caseuni0306.greek.case brevecombcy descendercybrevecombcy.casedescendercy.casedescendercy.straitdaspsiliiaperispomeni ] $& @@*(4_k(3?LX8i$03?L~]`lo 1< $]+7'<R : a m  $ J g    " B E  6 Y  A M Y  3>JVcoFT|j+7OR^j 4i )_/ap"%(v'N(Ye>K  J M Y e !!!-!!!!!!"#"h"{"""#0#Y#$!$8$T$y$$%%%a%z%%&&M&l&''_'( ( (w);)L)p)**w**+,,@,-D-v. .a.d...////0001%1`112+2222233Z3]33344;4444455$5A5D5M5e5555566666677w7777888#8I88899@9s99:.:W::;;H;;<>(>4>a>m>?"?8?W?????@7@D@@AAABHBaBmByBBBCC5CCEEEEEFFBFFFGvGGH&II+ISIJJ"JBJ`J|K}LMMLMNeNOYOOOOPPP5PQPPPPPQyQRR/R<RRRSLShSTeTUEUUV0ViVlVxVVVVVVVVVWBWZWvWWXBXYYYYYZZY[k[[\\\\\]]]]^b^^____*__________```aFabFbcccdeefsgTgVgYg\giijkllClmmnSnoNopppq>qAqtqqrs*s,sgssttt%t(tzuuuuuuv vvevw www%x yyy4yez4z7zszz{||7|\||}`}~"~*~e~h~y~~~GJqIE2V8{]' s[LHi"c: k"$'*iknpsvRU u-?Bo V,T|RJPsFv0_+k1WS~'k2CFl HVpJ/[U*\QB3_PeNjŠ>`Æì7rŭ&uǁǩ#fȩ;ɏ8ʎP˰P̑9_ͪͅ \Ι;hϠ<ЁcѲd-CӐ-~ԩ'D_ծcց֟Gؗ@dً٬Ww?uܨ~ݓݨb4Oߏ[4V\<3*i,_.!+5Q B`z(9CN,4<KS[c ,6@st2^4czMCc~LL$ih-Ik &Rdv    G      P             =  JF3}UU#$_ 8 N!!:!Q!!!",""##w#$1$$&&&'R(&))*+H++,A-;-.8..//z/0E0t11345 6l79D: :::;;,;<=z=>>?!?:?N?d?z??@@@@@@AA&A;AUAAAAABB!B7BIByBBBCC2C\CwCCCDMDbDDDDEEE2EIEcEEEEEEFFF.FMFdFzFFFFFGG3GPGiGGGGHH)HFHcHzHHHII'IoIIIJ$J:JYJ\JyJJJJJJJKKK K<KXKuKKKKL+LaLnLLLLLLMMM8MwMMMN 4fWl4 M + }M @tPeV } / C X + C߇ DmWX& MQV ~ M Pǜo^ŧ`ήn\ tk M wʜo^Ũ~ y }J \ |hֶLnӅgVߍAm|RZ  Fl  bwS|{__lLyxrw 0pAj3 p~Uc1 V蚔 IX1 m䛓 M ǖ`΢\ɇ jSV\ cĈ M wʌi y S I jSV\ -Rȑ  S z] M % .D dn % ymX- TfuWlt M u νv\ɇ tmUqxr[j_)CXhZ;cxZhCQ~E3 >n23 / C UvNGC߸ L & ?ӹhYяh )Շ Ht YսAU؝]} Y6Uؔ = ^? HC> > ~ BA3 i4 Y d z\̒O urzV e}3 ̘dg{~d z\̗KԪvM8VˏX fJ ݺx}e?ˏ QRw ψuirw}frks}|zZ` qsx|V ix1 V蚔 3IxnX1 m䛓 Y Ur `ΪvM5\ɏX mk\ cĈ Y wUr i  X mk\ -Rȑ  S oēr Y d lC]CߍX yql& `t Y ad ]ÒKΪvM\ɏX q} Y MΏX Fz,  McԒ|Y ~Ur i  X Q~! . " vxӷJU,Uۏ xCNJgUu,nU۷K) ) ̊U VUۉy\̓ ~y{{V ) nl3 ) py1  |Ԇ l"ޝzM+SFNݑ ?nFG ) U VU۠kCYޝzMC5Nݑ xm& ) ͊U VUەwXѓ :ny0 ( vOMZVߵ]_ַ@y?88?h.N%N.k̓|  3Mq I ZVߣhw| ; t ( 5ix1 / C  ުvN-C/N; qp }4 x3 Idx1 1jr   t4 5 (ޯzC3MR ll& / C vJw(ޯzC3MR  lp Ž[t 6 އΪvM(\ɹ @ x ; P̎t\̍ M Pbx ; ̤|Yэ M 7}|y YѭkS4`c~wޕޛMMR Ff̔4 «ȫ `t~  ުvMR ;Lۗ~! . "   4  }x1 ^o4 Jw֪vL7S% +{- = LYU;Tڽ>Y<wުvMlM\ qT6 < s= }4 T<wΐ  f!; yPg  T<wֳPS f- pT<:3w(vMF9ߏ $sʭ / C T<w}OC Z up w,TD !*۪vMjC2P@ 8[T}<1E-u p<& ?hYяhT<w zh = bQyu / C 4 ^]ڪvQ2C߽1Q {p # aU;vJw. hM|) rیT # 4 # LJ3 Jw;< 3S/Q l- F (( 2C2Q {l& / C 4 (( 2C2Q {p r|vJw,=٪vQ8P6QrzҤX|J=6/H}V,*tJQzێ^Jլ適;h8HoOas} vv .2*۪vQ-QfC2P) 9-v p<& ] Jw. h .  ) 5[ԗ~! . " y;44 O h y\̑ I-V uEs23 E+1 V蚔 IX1 m䛓 O Lj ` 6Έ 9\ L6 ?A񋊙|klw`aypcĈԧ|fOl_zg~{ W}a~~zwssg}O xwʈ ^G\Ǔ 6 ?A񋊙|klw`aypܰ-Rȑ  bwS|{__lLyxrw O% O h lCpPC8L6 \ - O h lCsXѓpPC8L6 \ - UAl0 O h kC൜Xѓ ]& 1@wm0 ;|4t O Xh ]Ñ \ɺ4}clnY[xsczggSčksBWntmq{vlrsx nUuoU۵M vCCtUU;f̑ %t-z-z(%|s7C-;L&-SY$gv{vtyuv7VgSRME 81   }4Q4  y>L3 \ө_j~WUڑm 0S*L݀J ۀM P JyG  H>ږ / C   /C-L܀J ڀM P \Œ& <̩_j~WUڎt\̓ J M P (A6 ] \ө_j~WUڑ J M P /q : "K돨 : "K돨 4 J xC;,@C߱OK돨 4 i& J2 aڦ{QhXڌvč1' : "K돨 u3 m |CEXK덨 u3 *p~& Әda~ \ԩ: !V'K + / )Gm?Ƴvewvey\ԍPHI/&> vx|xE\u^я    گ : "K돨 )~x1  ӆT5VېxS K돨 Rjm  kCEXK덨 l& / C / mCTT5V۝kC ah& aT>v Կ>U؍%qMK I+ G~g{fSj+ }}xz9-"u}wxhh}Miqcrwydjn}~wR7txF]dwܯ|N/C.Or Mp vt u mܯ|N%\ɱNOr z 'du4 / wX(C  د|N/C.OoQړr kl^  da& 'dut a ]Òmد|N%\ɱNOoQړr kl^  "P ~U [wKܯ|NAN-Or p ܯ|N@``=Or D ~͓? v r  g~! . " ~͓? v r  g~! . " 4*p4 ; ߥTzDz 7,{-{ʍbw-tL,  _4 kx1 k D YCߵiCߏ fğm- bt @ @ Q~w4 @ H[ej1 vJ މwC߼PMKCߑ r`}- 5 )ޢC4M smz& / C vJw)ޢC4M m& @ Q\wt 6 ކΜM+\ɹ MWi Ui my [Lyq vJw͑xXэ  }o0 ޜM :cMu! . " ! ! GG4 ! Q~E3 s lCd tmUqhB n ir2& / rC U۞jx4Uۓd XtmUq8B n r3& H W zR |K U H ^W qf  ~R K U ro= H W w ~R K U y& H < mw } ! TWƿP W w "C5t R K U M{p yfV H w ~R K  ~ H P ` :Έ \XxP~@dЙbGLGznW}}i~P|Q~K  tkō" H w ~ }@R }K  Fl  S H ]W yw< Ձw3 H W zR |K U >zs1 H W zR |K U @ss\ V蚔 ! TWƿP W  "C5t >R ?K U M{p j1 H W zR |K U @ss\ m䛓 H W ` z}Μ}P 3 V\ɓuR vK U @ss\ cĈ H wwW i zR {K U @ss\ -Rȑ  S H W }w< vqF H W ]C eD ] n 3 t@R tK U h ! TWƿP W  "C5t >R ?K U M{p H ^W qf  ~R K U ou H mW v]Ñ 'Λ '\ɹFt tR uK U Ã`  H F̠{dBUͪd\̑< Ewp H W fXё< n0 HO`Ӕ^dWƿP}dBU͕ ޱ HM t >R ?K U %}C |>ү}|cp &fOKD8 H Š{dBU͙{`` Œ 8``?xP~ R ~@K @U w H {dBU͙{`w Œ 1``F3 z R z@K @U x ؇hLqLe@ H ~͠{dBUͣsi zR {K U 9Xv! 5 : 9 " a ^ qf M֜}P \ҺDY!U B `  `t O - `7 `v ` `] n= dWտA ۣvNP _qˡϑhtnd?"RE.HWqhn}mhyxx~xpf_b=`㖒|aFcvˍ?;K59 ݛxN? 9 ^YWՠqf ݛxN? nfo= 9 ]Y ݛxN? t}Ow3 јda~ ?ԛxN Vˏ yŘw_ƍxc_f'R ﱶy~zpc\xsq Y )3~t^ ^ qf ?ԛxN Vˏ  )3~t^ qq= 9 ݛxN? vcs1 9 YWձ]CgUC? sde& dWտA| pd } |ō^p^pRz}N rz{, |ˍhM;_ x (|T W"WчwCӣtPQ6V%Gv 7vu{z}qnwOL<"6pKUCޓw kH6ri7- 1фWэ2SI'/RO6wso[`yti_mih}rvz(rnkqk_[dWտA IWՖ~w pd } |ō^p^pRz}N rz{, |ˍhM;_ x (f8cl O>9Pg dWտA !j;;#xP%^5N5I mT {4Y׌a ! TWտA N C1N T k-& ?dhYяhWտA| pd } |ō^p^pRz}N rz{, |ˍhM;_ x (T w(aYѵcOyO]WտAYՙ`} YջAW՜yẁ  WT ^Sp̓K 7 W~ BA3 _ ^e qf s k v tΆo  _ [6`KYƠ w s k v kύ& _ ]e yw= [Օnwoi&"Zaz|isX[ 8%ژda~e w}e|$ VCU Q q }jshtudfuphl h ; v v ~h xŐyV "͎s1 s\ V蚔 / C e ֛xN C4U~s vk ~v }Mxrp j1 s\ m䛓 _ [6`KYƚ`}oΛxN䎄 Ud\ɓ+ ǘQ k 0"(.,-v{ s\ cĈ" _ ww[6`KYƐi  s k v s\ -Rȑ  bwS|{__lLyxrw _ e }w= NJqhy?@DdxDcx _ e ]C}Hp$ ?CUs k v | _ e ]C}$ &C#Us k 0"(.,-v{n񋃫e& / C e ֛xN C4U~s vk ~v }Mxrp _ ^e qf s k v bΓ~o nu#0LX}yLX_ me v]Ò}9ή$ &\ɻ9Us k 0"(.,-v{]×y`  _ Fe d\̒= Ӌp( _ e fXђ= Nln0 7vt= %˃tu J8%ϔ`be } $ ?N!U{s wk {v  _ ~[6`KYƣsi  s k v 'lv! 5 : 9 "  ,;  ߼\ wǀ]ʍlli|~%GF$oxxmU c    ښ wc    y& {ywc    Ձw3 c    $zs1 6N S6Pw%uvtt  a؞xA  N C:P   we& $͡ c    'n0 I :?WۑwۣvOP [Kx {x1 / C . 0۫bP \:up vvY x |qweY ig= vvwڜo\̧iw,  poV x {yY xo3 vvY Cqk1 x yw, w v;P艓.miF x uM؍tۏeM׸PPOMב _Ҟu w`= E[J[ /۪zC3I-P n]&  xjjxxjkxuvuvqqvvppvux |qweY vgu vvA ۀΣvP2\ɹ ޣ@ s z vvwd̦d\̍, w v;P艓.Jnh x $ˣfZӍ,  F}f S``c~f ~ވ)ۗM C3P n]& i㆞t4 «ȫ `t~  vvD , ޣ@ s >Oѣn Y2 , w Yw|qf , w wkFL#0qLe}t Y2 , w vsJ1   iə4 vs 2 ۽֣vOZS) uZ vx ۣvO z>Z^uS,#lrYƊp=<v;O艓. 7~4 ?[̼G ۣvO T { u \ːI еPA{RL~ =[̷Lj e֣vO2S +qXG я[^:qwۮvOt9 > / =mCR[̷Lj RvO1C߹ nQo& q<[̵T ]C\j I*ۣvOkC2 T { u q9 p<& ?=hYѓf[̷LwaۖiHO /9hja @ ۛzOi{ { u 5sd  , "P"P \ / / C  s., 4C%P"P \ / yDZ& 0e DEFmVX >pYsßsōSF 0e DEFmVX  eig=  {y 0e DEFmVX  Lxo3 :с j , ,S&P0e DEFmVX ޭ YG , +C)P0e DEFmVX  _n]& / C  , +C)P0e DEFmVX ޭ _9re& b  0e } VX `a . LoRas G[z  !*ۣvPPcC2P0e DEFmVX ހ Yqɕ~9 p<& ] :с 0e DEFmVX }z !` 0e DEFmVX  Oʣn! 5 : huwp_wN{w" 8 7  %= 8 7 o\̧i$ -V 8 ]W N  tv-3 8 7  )1 V蚔 / C 7 G۬\P #& j1 m䛓 8 W W՚`ΛxP>\ɏ  roihm xtp)\ cĈ" 8 wwW WՐi ^   roihm xtp)\ ܰ-Rȑ  S 8 7 }$ 'F 8 7 ]C_ ҕ u- ېۛxP Pٕ ~u3 MFe0 |ۜrM) ~3 1Fte0 / C 7 G۬\P #& {%u 8 m7 v]Ð v}= e    roihm xtu + W 'Cqb[= / C e  !CߺjvQړ  roihm xt)* -؀`Y& 9C~[[u me v]ÒH !\ɦjvQړ  roihm xt)* >8Vs ~e si  vjvQڑ  roihm xt)*+ W OWxb! 5 VWhuwp_wN{w[^jCwvnu8 7 }$ q'4 8 F7 d\̐ &͒aM˰\l~OBso?PQ5~s}v8 7 fXѐ 5t$0 7vt= %˃tu Jє`bW WՑT5ۣN) ͘= 8 7  8 ^7 qf %= 8 ~ ^   roihm xte, 8 ~ w  e,3 Exv= 8 ~ pC_ 쀕 ܀e,! 5 ܀VW9 " cu mv 0#,.//|yx}y XvcW WՑwۣvPP _qtˡϑkvxk?"RE.HWqen}mhyxx~ynf_Y=`㖛{_DcPP=4 < y ޣ@   E v/׆B􆐊ćbH`سηU;=aYKw{su~yww~~sr~{x bU T*Vېi Lm |s0 0|xlCcO`N28Wc qvrm{ww3/e$tV۸K > > :4 n ͪvN+\Ώ] |I4N;nQHFDHlюT;[޻8W۝Yy3Xڕܗ֓}U.P;PCU؜~|Ӎitzi}&;"=6Pm,ΝOIe-8@cd/U/FEFU/4T$ `t L B8sL1RЃB wr惢w, {jߑo u퉞tyGpLE 811^OUF WXΞs;Vޒ?GGM$L|+ 2yO / M ]38J`L8G[ttvu|yt}xGtAiwۋ ; Êb k  _t A񝇶W4 bWܻ:vѾ:X܍QܙR7P ~ E}y렏P7xXPJDN0  xuKsJy ( 5  ; Êb h w5B2B3gCU!UCXz{xL)O(LkwOr:2nswxECrv!GA%p{yw~~ԅUӍ@%:C<'@@uKsJ@y ]@j~ Mv j \lCcn ]@WU-UˣhwX[y+ ^~LɌMS17zXCOoKt[89YenyrozxxWC8Jd 퀫zZjjx4Vߞ4:hNE  : "K돨 UY!Uې K˝zL꺜\z *+ Ӛϊ| WIV? E=@wy}gaalec~T VAE|p(&~\ " fދ^dd*YӄUY"Uڐd6j{L |+ i""pjcC:{oIN}KӘĐ{<H@)'>NESvmtxiqltsMsAqz֌+Ũ^``$Y|$   v\ӴHW.Uۏ۝kM%PkCqM;{U۲U;z$|UۍP~552mZNX ҢՇ{rq_=p _V@vԂZVU؏w\qjvN賥cqg~˘KNL@rΈ W'if TT!nj O~ttm@3d @v ZffqVߥeqk"2EB!% =t~m\]uofgowk@;+#jzvrv]ӧnkW UڑΩmޡLwuMGyME k'*:ny^TuWΉ1Mf}wkbqsa@_-UڍAKƇn-2HeӋ_W(w۟;UۓۛoM&Pj~ 4 |~ 6,-`IX~}gR گׂR6->HitymprjM`IM(84qe;aU۵MG@U TǺ\ZɼMtd:ira2OtqL_p j vCmn =:iK2@ymwZɟbvޛtѭdux~-VՓsuܠsM/L-M߶sMvFN#vqy~fk|sMuo}ď8Lߢa7cfu>wqsjodLLmwne`AތZ{^8CUצY?@ 6  jw_֬vل9QwaҍzE3d{iчi~}ٓQ%AHbbw ,qtqb w-wɊ%, vӢo[ UۏA8rF.N/N;nUۼK1#~o N[0vpӴ:W,@O_}`urƽӋYwplT ,]M;,OeKqowqivvquImx~r|tV؜@iE$q^zq!t-YD]RYncMvO~t#M?Kޓޣ@ VjnjI!w>L2]bDzkZ\grEsu}tsx~oo9^ϱs`fprNxcx~r|~E}IQLG vQP v2hQX͜qf ڣvQP &og= G VգvQUݏw 2ZAQQiP9yUHJ_ΐTԽKZ̼JY˪zlYϕӷE؇ӕU0TMQ޻DUړȟwȍ'y@E!M_HQޜd/OmNQRnoSAUڌ.EӐUڍ.UT3 _ ^e qf s k v bΓ~o nu#0LX}yLX_ e ]C}Hp$ ?CUs k v | X t ԟwJߌ1 o\  } U;Y~TVƒDZMVռpZxobjzoq||p|ȍmUH :'%$& zhQ،P>> ܝsO4Nn?~' )?} TIi4UؼHZΥoqPwqڅӣvQ7PAVߑ\ VߌZT4K+/Rx|-~"\I]¿m}tpor{hi0YčD `{3;b v =٥qM1O1[0P$Rw  @;h.LoRasG[    Pl R[Ѧfw$@@n@y۞wU;T;XҜ|v"Q|IuA 9J,Ph;  4@lP;FjY[э?vtIͩ^u{}QZĽUYo 8֜uSֹIXFRASדuS֌."E.l}}np~wS׌X5PS31Xur>Rʣ`LmiuJьEEoxxqa~wt>wlAPApiW֓m 1  ΌY͍ } a sV U(p2Ҙda~J dDoV˽6M0yz.1:~o*v;PՉAo\  3y%r} TOWٳNw?ӇFܝsO,W߹?FON hI Wߊt{TG:xO' )?} H à{dBU͝qbˑ< uy H W ]C eD ] n 3 t@R tK U h _ [6`KYƝqb˒= pӉy X ]C +wlAPApuCߓm 1 D A  (} ei- J ]CD IDQCߵiCMQ f0 U  qD q֣vRCߵiCSړ\` l Q aƭ]& Z5 8 7 ]C_ ҕ u- XvO \zR {n0 y. X2 )  wD TܝsOCߵiCNn?~' )?} [ҭ]- YX͎iԣvQdiXW֑P us HLIȲ  ۮD ۣvP2CߵiC,Pb H  :g]- > U;wƩDr$r; X vc TeōuuQsfōVqٰQ$Uz ! ( ԈV VUڑ mtУ`ض V` /!Rc6 ; H}J \ # Y d f~yp~yffpUۦZxU۞d^wffpUۦZ 5 kUۥ;q4UېJ T~s3V;aU|QvaōA󠸆ȍVRQJUێpk; @ 0B(B.c?U"U?cҒvwxL*N+Lߑnԏq:7go<5ez~vv~~ԅU׍9! 1<6"94xumdbek}gmi{n^0\DN^ vf0tVܶQw]]ޯ|N0c0NftӉV܍1cs{s8}|k.40:w|dA5z|8y.3Th{kWC@Qd Y ~ LSX&Byl    {~{seA!V|M w}MS I Y.] Y d w X  r w| |   r U  r Vi% vCww   lrzy Pjq  vJ މwC߼PMKCߑ r`}- M  ?^ύS I J.O [ ^ M  =^ύS I u)Oc a G^ύS I ndX [ ^ Enɓ) * !^ύS I =1Xc a Bgы) * 6^ύS I TX [ ^ MN ^ύS I PXc a KK f 5^ύ꒪}J v I ,8'( -jY•! 5 : 9 " P^ύ蒪}J \ |hֶLnӅgVߍ<-' 3tX M w}MS I b0]) * M w}MS I Y.Z M + }M @tPeV M $ͣ M @Q0 ϪZÍ|S I ";$ % |#  ?^ϝZÏuS {I J.O w[ {^ uctp$ % u#  D=^όZÏuS {I u)Oc wa feh$ % u# G^|ZÏrS yI ndX s[ y^ Enɓ) t* cv$ % r# !^sZÏrS yI =1Xc sa Bgы) t* cv$ % r# 6^oZÏrS yI TX s[ y^ MNt \o$ % r# ^iZÏrS yI PXc sa KKt [o$ % r# y f o5^όZÏz@S yI ,8'( z@-jY•! |@5 z@: |@9 z@" M3hc$ @% z@# y  P^zZÏ{S I <-' w3tX! {5 w: {9 w" \`YU$ % {# Y d C  X !=Zd [ ^ Y SÕd W_1 X օ~ K Ro MX =$ [ ^ Enɓ) * x MX =Wmc a Bgы) * c MX =4 [ ^ MN MX =mmc a KK Y d w X GXr) * Y d w X  o   f޹@^ϩ}N%N|  I [ ^  : N%N| J88.sHh.c ީ~ K Ro =$ [ ^ Enɓ) * x =Wmc a Bgы) * c =4 [ ^ MN  =mmc a KK d 6^ϘN%N|  -jY•! 5 : 9 "  N%N@  N' _B' 3tX3 w| |  GXr) rF8~  w| |   o   v  ' {$ % #  f @^ϩ}f u| { I w[ {^ u p$ % u#  :,+ f u| {J88.sHh.c wa ph$ % u# Ro,+ - =$ s[ y^ Enɓ) t* .nv$ % r# x,+ - =Wmc sa Bgы) t* .nv$ % r# c,+ - =4 s[ y^ MNt /go$ % r# ,+ - =mmc sa KKt 0fo$ % r# y d ,+6^Ϙf zp| y zp-jY•! |p5 zp: |p9 zp" 3sc$ p% zp# y  ,+ f { ' _B' w3tX! {5 w: {9 w" `dU$ % {# ; C @ M J8.I [ ^ ; 1 @ M J8.c a ; T Ro M6 @ M J8.=$ [ ^ Enɓ) * ; T x M6 @ M J8.=Wmc a Bgы) * ; T c M6 @ M J8.=4 [ ^ MN ; T M6 @ M J8.=mm vv/ 6^ϘM  x٧P<( -jY•! 5 : 9 " Nk M _B' 3tX! 5 : 9 " U GXr) rF8~ ; l  o  vJ ުvM= ME 8.|f0 O h ʌ 4^ϟLL6 (`,( O h Uʸ 2^ώLL6 `d' 7. !^~LL6 `) ( Enɓ) * ]T (^uLL6 `) ' Bgы) * H? ^qLL6 ` ( MN pg ^kLL6 `? ' KK V*%) rF8~ O h Vi" vSÕeUU۷W_w:m>^ϘMis$LQ T l` րo ΀K v÷W_w 3^όM6 MWi Ui my [vmto K U k|wT d'^sM  Xv2rc a Bgы) * ; T w^iM6 MWi Ui my [kvHr ~:F^zMMWi Ui my [.r' 3tX! 5 : 9 " U w|ww   l3z) rF8~ vCwwޜM  lrzy ; + ޜMMWi Ui my [_ncV vJ ޜMMWi Ui my [}0 Y ~ʂ .^ϝ -F-c( Y Rʮ ,^ό Fec' :$ '^| F(l( Enɓ) * `J .^s F*l' Bgы) * K5 ^o Fl( MN s] ^i F@l' KK Ӄ. >w~p? '٠ $^ό L a     #;( -jY•! 5 : 9 " uVي.UؿQYϒ6 ?^z kxA' 3tX! 5 : 9 " P+q) * [ Pjn F ~ &Z,LkSX&By[ m k k k gk{$ % k# F ~ʂ .^ϝ l-F-c( xp$ % i# F Rʮ ,^ό mFec' ih$ % i# :$ '^| F(l( Enɓ) d* +gv$ % h# `J .^s F*l' Bgы) d* +gv$ % h# K5 ^o Fl( MNd ,`o$ % h# s] ^i F@l' KKd -_o$ % h# y Ӄ. >w~p? 'ٷ $^όh hp Xp h hp h` hp kp#;( -jY•! lp5 hp: lp9 jp" 3lc$ p% hp# r u͏e^wxVي.UؿQYϗ6 ?^z fkxA' 3tX! h5 d: `9 d" `]U$ % h# l .  ykp`nEy]1?syw;eխ1;yhjiwnqf\ {h< > B XvckWYϢj>WՒm۞qP9P!PǏW֍@Cs}mrkYS[؍lX=昢^%cw^u~PUpoQbdʨazttSR=;P蹋.L;OTY'Xvc7 , P ѱNWՍq֛xNUޏ^֚yUyxp  ("&Pamymzgx}eolie}D îzW({y4Q{YaDeWXΨvnN P Pa~DH0t4RG5/M`{you|lcgetjyYϞq/%"&&,!|xULϖk| NۜnO3OGGmYϩ\{jp ƍ{wv^mˏ~o;x1Y.Vtt|k g "P XvhHсZټ=Y WՏw?  ON 3Y/P͆ πΈZٍ Lϡ~`jzsg jCs59++&sqVY؍G><:S !GO<~rpu^ouqP虓ЦC1 N=Q{l^{gifxޗ ~vQ,r HrCʔspvl1!o`rИopK7cЪnXbXӏd[˪R^|4).feXvhG6YսAXԻMw7  Dg HP萅CPͪ P艍݀;.م\Ѝ09axW;|./=|wY܌..xmڏ{ =?A< fsi YյIb n#}+fVLIqاo~hs}t~:,i1n1-! w~j |G鎬 kgg 3?>uCBzzisJ 2 , q byw  iێ_C߽NPICߑq ~g- K fHKӡqPfKӑq DJ\ fQyA=vE~CnEE٢h  RD 7 CߵiCP~ ".xmڅqy 49~ aN0?Zknu{^;}. Bxre- J hEKөeP ~ ".xmڅqy 49~ aN0?Zknu{^;}. Bx[ 8 7 wN PB p+ b Q P J d} l w. A l< > B !Vo    Κ  wx X j , PL G F .Oދ rWջJʑMv8уFW؍$ ޣ@ vP  \NYRJ?jCtb: Z֍y{ +l}\* B / ziu( l w *^ϏA l< > B  Xu' l T ۸ &^ϏA f< > B } Du( Enɓ) * l T ێ ,^ϏA f< > B P cxu' Bgы) * l T ۸ ^ϏA f< > B } Nu( MN l T ۘ $^ϏA f< > B F hu' KK l w~͟?  ^ϏA m< > B / ziu( -jY•! . " l w~͟? *^ϏA m< > B  Xu' 3tX! . " l w. A l< > B 9wo l w. A l< > B !Vo l ~͟s? A j< > Ljz 9CEy Hp! 5 VWhuwp_wN{w" l ڜ w. A n< > B lqV l $ͣ . A l< > B .zth0  kA [< k> gB I}bu$ m{k# w kA [< k> gB 9wo {{$ % k# w kA [< k> gB !Vo rt$ % k# wm U^ϑkA [< k> g@B / ziu( kqw$ % k# w kA [< k> gB  Xu' kwyo$ % k# t5 &^ϰjZÑiA Y< i> eB } Du( Enɓ) j* Ht{$ % i# ʞ5 ,^ϩpZÑiA Y< i> e`B P cxu' Bgы) j* Ls{$ % i# t5 ^Ϟ`ZÑiA Y< i> eB } Nu( MNj 8ot$ % i# ʔ5 $^ϤhZÑiA Y< i> eB F hu' KKj 1ut$ % i# w~͟? m U^ϑk`A [`< k`> fB / ziu( -jY•! k`. j" x$ `% k`# w~͟? k`A [`< k`> fB  Xu' 3tX! k`. j" x$ `% k`# ~͟s? jA Z< j> eB Hp! j5 iVWj9 i" (p$ % j# W # A^ϑ   ΀  j՛j~( W # M^ϑ   ΀  y~' # ^ϑ     @բE~( Enɓ) * a# ^ϑ     @IՄy~' Bgы) * # &^ϑ     @մO~( MN k# ^ϑ     @SՉ~' KK    Κ  `ˡxx    Κ  wx , .^9 L G F "s( , :^- L G F %Q䃠' %, ^^PL րG F pzy( Enɓ) * O, ^ϾdPL րG F C\' Bgы) * %, ^ϳTPL րG F p( MN E, ^Ϲ\PL րG F 9a' KK [ , . @L @G F "s( -jY•! @. @" [ , : @L @G F %Q䃠' 3tX! @. @" X j , PL G F ,y X j , PL G F .Oދ Xv , PL G F AՕ! 5 : 9 " :L 6G YF {o$ % Y# w ;@L 7@G ZF ,y {$ % Z# w ;@L 7@G ZF .Oދ Ct$ % Z# j A δ A ; L 7 G ZF "s( Dw$ % Z# j A M ; L 7 G ZF %Q䃠' >o$ % Z# % ^^P9L 5G 9F pzy( Enɓ) ZP* m{$ P% YP# O ^ϾdP9L 5G 90F C\' Bgы) ZP* i{$ P% YP# % &^ϳTP9L 5G 9F p( MNZP }t$ P% YP# E ^Ϲ\P9L 5G 90F 9a' KKZP t$ P% YP# w~͟? A δ A ;HL 7HG :F "s( -jY•! ;H. Z" nx$ (% [(# w~͟? A M ;HL 7HG :F %Q䃠' 3tX! ;H. Z" nx$ (% [(# ~͟si  :L 6G 9F AՕ! :5 9: :9 Y`" n(p$ `% Z`# Zʣv q 1ԝ^}(  q Y{}' {ۡV^ϺgPT ; a.t ~y <Ԥ9}( Enɓ) * ʥۨP^ϳmPT ; a.t ~yԆm}' Bgы) * {۳`^Ϩ]PT ; a.t ~y <ԶC}( MN ʛۭX^ϮePT ; a.t ~yԋu}' KK i Zʣv  q 1ԝ^}( -jY•! . " i  q Y{}' 3tX! . " 2 , q 'ʣlw 2 , q byw ~͟s? , q Lkx ڜ w, q CˏyV $ͣ , q vip0 K 0ےNKӐkPlKӑq j\ f?yvE=f|C}=Y K iLKӣmPjKӑq AN\ fQyA=vE~CnEE٢h <[̵T pەXCUPBCߑT ; a.t ~ywg- |=Z`! . " N $^2PB ri1( N 0^&PB r1' ?N ^WP+ .}(1/%.()vr|фWՍ1M>"RD5p- oolkj}li{xq$D1( Enɓ) * iN &^]P + .}(1/%.()vr|фWՍ1M>"RD5p- oolkj}li{xqQ}x1' Bgы) * ?N ^ϼMP+ .}(1/%.()vr|фWՍ1M>"RD5p- oolkj}li{xq$N1( MN _N ^UP + .}(1/%.()vr|фWՍ1M>"RD5p- oolkj}li{xq[1' KK 8 7 wN PB hw+ 8 7 wN PB p+ , &^0P OЄ( k)ۣz^$P wb·' ۢs 6P~ ".xmڅqy 49~ aN0?Zknu{^;}. Bxaؑo{( V+ۜ^*P o{' Jg ^[P ~ ".xmڅqy 49~ aN0?Zknu{^;}. Bx ؘJ{( Enɓ) * ntg ^ϻaP @z~{' Bgы) * Jg ^ϰQP ~ ".xmڅqy 49~ aN0?Zknu{^;}. Bx تT{( MN xjg ^϶YP ~ ".xmڅqy 49~ aN0?Zknu{^;}. BxJ{' KK g ۢs 6P aؑo{( -jY•! . " g +g ?^*P o{' 3tX! . " WΗ}u ~͟s? g "P ~ ".xmڅqy 49~ aN0?Zknu{^;}. Bx_v ڜ sσwV $ͣ Fzn0 J 'g lK&P~ ".xmڅqy 49~ aN0?Zknu{^;}. Bx^ǥZ f?yvE=f|C}=Y J eIKӫaP ~ ".xmڅqy 49~ aN0?Zknu{^;}. Bx_  WعF YD g n P ke- |=Z`! . " b Q P J  wD\[ ` Q P Md|zq!d %{[} ^ϻiP߬` ڀQ ـP ڀJ ݀n( Enɓ) * ʥ[} &^ϴoP߬` ڀQ ـP ڀJ ݀-nN' Bgы) * %{[} ^ϩ_P߬` ڀQ ـP ڀJ ݀n$( MN ʛ[} ^ϯgP߬` ڀQ ـP ڀJ ݀7nV' KK h T[} !P߬` Q P J  -jY•! . " h D\[ ` @Q P @J @ 3tX! . " b Q P J DdM} b Q P J d} ~͟si  n#}+fVLIqاo~hs}t~:,i1n1-! w~j |G鎬 kgg 3?>uCBzzisJ /pv~! 5 : 9 " y :o xYյI |Q yP |J zA>Es$ % z# ~@Q |P ~@J DdM} }@{$ @% }@# ~@Q |P ~@J d} }@t$ @% }@# ~@Q |P ~@J |@ }@~w$ @% }@# wD\Aa EZçn } Q |`P } J ~ |o$ % |# %{Aa} ^ϻij vQ v0P vJ w0n( Enɓ) zP* U{$ P% vP# ʥAa} &^ϴoj vQ v0P vJ w0-nN' Bgы) zP* Y{$ P% vP# %{Aa} ^ϩ_j vQ v0P vJ w0n$( MNzP E|t$ P% vP# ʛAa} ^ϯgj vQ v0P vJ w07nV' KKzP >t$ P% vP# w~͟i \ }Q }0P }J { -jY•! }0. {P3 P% }P# w~͟? D\Aa EZçn }HQ }P }HJ { 3tX! }. {(3 (% }(# ~͟si \ { Q z`P w J /pv~! z`5 v`: z`9 v" (p$ % z# Ņ vO2 sڶOsO[O鈆T qW ow ߭fK LfTo ss P.swy88N勆4J|~aϫZZXَkY{ 4z |e@< X}QK ڝuOQH Í o e|e UM"aeC"oY=gh zJ1M2O0Jޓ ܡwQOH N f {  vuشQu[Q戆T sW rwubV֚|.W֐ޯnM EfVq uqCb5fxx;<'ZQy}rfl}ynlzxvgŁqjftNwLpz̎{ abk \ xy^U!v }Wڏ<wܣhMp£h[׍[M?PRhoxvHrxowOoa͍CCWڑv %fK ӮLfTo ss P.swy88\qPGQȏ\T@P䋆5T|oaϫZnXَTjX{ 8yzfKVv͑ hഃQK ڭ}OQH o oyoǍ'UM"aoC,oO=qh |J1M2O0Jޓ ܱ~QOH =  s s Yv~ n m m sP  s fcqQz}~xx~lReйqbggvPc]exw~{zP~_ q0 q" s s  ܩ s s> X m sJbdv'ǵdb j|sf  췪ujjlr]}|}~zqiyɞP82P\E}x}0ljjuXyxC sC s v~   p, z 6 0 "  ܩ >  < %bUbF`@ԊxYPV@z 5~  6 0 &  ܩ >  L < C  5~    6 m w_]zzZ sXVW&  ܩ > fv˸V~^ ֙eUՌ`Gns_KVz < C  ;  8hЍ  vJ x؊W˓T͏ pfY͌z BAXƌJ`m]k|zвaEQ2S[ymh~yU\oa|wSPN cX` ˳X˗w y_'_W^wKtU^ UQTȓWhry ҍVY͌9 [ČPҺ]@ A    ` ˟wsre}}J_ U؊W˜UQTȑ@ W@ @N A  @ @ ` ̬W̟wsre}}y]&_U^w~UؓtT͔UQTȑ P, fG N A    p t]zzu ۀi W˙XVW N  - of^q V p g t]zzu_Hsre}}J_ ̀i jUQTțXVWXT X A h X JXH X *T ofT^q XV ˪mdy{S^ ?* W˅WIU‘ o    ̦]̪mdy{]&^U^w>* tT~WIU‘ , IG    ˭˥ _ _-^wsre}}J_ 0I T . A 6 .  LH    _ wzzuwZ * sXVW}WIU“`  ʧof^q g`V hp ` ` ` O ȧmdUb @ӊWˑVQY  6[ȌP> O ̵ȯk˧md^7bmdy{S^wS* @Ӆ{WIU‹VQYxN} x x \ x6[ȌP> v  sJ N db Q&TԊWˍ  z     C b ˷ǟer _5bwsre}}J_ jUQTȎYTX]YSXT  JA   dH     C b ̶ǯk^:bm wS* {WIU‡YTX]YSXN} Ԙ ԩ y     C N R˴dbV^w eYTX]YSXL j gk    0ljjuXyxC ibav/%ɗbF` @ԊWˊYPV  TˌP   e_WvvW^ K׊WˊW˘mVOV͓ ? _KdO JfI($H47}|vw|{ˌ_Sf°O.2gQUzwmivyyxrqz{:p9ߍ~ BwtLBpVی40&|wr8:1<: ~ ;:#u96LBpVی40&|wr8j@ :aac9=9=9ߑp՝ ዊ ዊ :3w%ձo9=Tُ]y]͍\ьI75lT Xv3:%ձo9=TُyL]͍LIlge] q{xtpzxsszzts{zq:9U؎$ं92SL1W}YӍSq5"Vk= IBwjPiN}E޼dOz~r}",g#txrn] zzstzzrrzyorzzsuU9:&צL 9-SzɽC?V(w5a"Y)J ԟƗy|xșv^эpUU}Y8Zws,#eoZd\m syzrozysszztsyzs\c: \~c r76,p8$Pr`7׿W??WUAAU[ii[]pi^^pj\dij[l~~Ww|iÍX띐o (Oo[ȓvqzo{'{y8~({Q2zvy0|_P܌Htclky~7bJ{|mN8G>qycw;:HpkzQb8kmYƄJbJ|9\ݳR\ݺ9rȀFNFƀm:ZܢcZܼ:l8Z܌z F:iNd\ݲKpvZ܌z F:izgd\ݲKE vUߌjw E Z׌dw j:dˁ9ߍ$ :=ǂ9}> 2 ۨuP_GwŮar7%iCyOju) (i}qOKr&;g4sLzN0V2 2ۦsPGsw0NY4g&;sxʎ]OhKm( )}nklCi7%ygytǐOЉW'WӏA?ׅiP6SOVЉWӍ0kǓ~#`FXvРЂx(z[ɃЍWӍHT=|| (Q`VNn~<_̈SEzx#z'~X`~~pjߐOЉW'Wӏ?A{S6Pг` FCkO~{x#8G|zFv`FF(}vnMgl6y~FC}oz~xy(ŶȎ\SJbÔюyxО#UKx7* @fqT9^͏qHf^Y Ε{Y fI* f@֗^9TݏjɌH+fHIH{'HHpΟnYԍypynYԕ YԌ YԌ plYԌ пt9-7vwtJr+ K45{0.F}ke^oU2Uۯg AҘLV+ ɚÉ l & wz|ga`lfc V P|N& c[ (DVo5 ʅ 5 >OO^YY dHѫNW-WNS^>EWY+uWM>EY+Oy Ǚ60 NY M)3~ &ggxx|ĚU|UU2UۖOǖO|ɗLJ+ ȚÈ 2 & wz|gaameb JV Q|O&~ #5? |čPN&zÚR? tčPNc&2 NJwM Oԧ`TIT׏۩hPXPҏ` = 97 ; w~x|ypoyyqsy{Sbyv~b/0gnZ[Ebݨ^/cconTaa(W?Y׹׽U:>]XE|}vy~|{}y}~x+C/bbmoOȨ_`0f݂Vb//_nYYY^cT#Vҧ~oL!V!K $ ~5?m~Dvkyxl ^z\̍TKO&,?yz}|x;ax]ʏJT_-QALowvurJwGhxҌ} b >DVb5{>DVi5 dh`̟mWտA f;;"oP%^5N5Iրhȳͯ o|ō^q_pTz|.Oƺo[v ermcrz{k|ˍiO<3%-'ߒx 'Fh22b`̴1tmdl {4@Y׌@a?83U*YcY)Uے,6S,K + ʚÈ aU_"/ C= w|{]kfd`lT ]LP|N&~nd!EyjjuYj" }}vYlb  ,;۱kT.O Yr V |~[эlki}}%GF$_vyb``_ . LoRas un XYϾ4hJxәrT[©cU,Uے588myU.N.SqxNJhUs,oU۵Jx=;rZ[x;f|^pU+VUҲdFNݝM V5U7Oԓڂקȃ}C7{oI^vuf~nl`XzXx}1EA }tx}kcdupqz\ˍWJKR$mh Gup[(CUo6 ʆ 57fo4T'rsYcYv)VۖzyK"L̈́+ ɞ҈uȚt^ԍmJT~\6Pt|lfϨ !vnp ?zyYwcYwoD` K{ ?RH}qV}m}Jz>dAqk|zbuyw}vlošk`ɞoxowmw&8ީgX7LߏMdBu]}N+&\Ȋ{ ;@LE 87 LkiiO`2/4T%YcY+Uؒ0>؛~Z*R Ŗl rTg˔$軺쫯}n|ysyVӍbd\,:=%iu~zRhWXz$oiv/%gYU" gYUXѾEw#oږwR?P؏#wRF Y<>04#ru{i>E2bn^6n6p}vdg{ um=n=xvekwvE=YWͿIeըaVMVPUaxV∋W"^jzvp}unxU∋8295{lhxg VC[vwsxYcYxw-@oK"zZAxS;R@YΖy@r@So񤑋#F KE @?HqX0.@=gx@2 @!" @2 @!Nwe΀2 @"" ΀2 @"vӥeU0Y(Uۑ sff kU5yN(LꣂstlNeR9w}~lL`=Z΀Yύ 4BU~^ =0@ tYύ vөέӥeU=YcY9Uۓ flU5yNj}n~lɀNeR9w}~l L`$=򄋺g"΀2 4 " ΀2  I4Uᆳ^  == @~Y0 sc@tY s/H{jYcU"Uے88hyO1MKo Ly|7t|{j%C~;P2;^R:lvwojy~vyojZԌYB/rME 81 v| OSǫIW\\[\[cd_` 6<]L,F܏I;#~){{YEM;eV!%Sf0jy~xo_EcwBҀk},6=:l~w[aVw`cT YUؐ/>ؖ_*RŖl rTg˔$軺쫯}n|ysyVӍbd\,:=%iu~zRhWXz$oiv zYivVqYcYޫbLbMVq`Ha{YcjlaEuwwYcn ޫnM nJRCIM;UۮU;-n!o!k}~dZw{w)o)p~d`tvwKxYdZb}x tP׌fjg~S z FJ.$zr"q>M(mx4$r|DRD=y h?` ؕ|*tghttgeus}~qsv}powwpt~vrtghttfftr~}rsv|powwqs~wr /W JOSmWTvs.>k = |t(}㭒|(}v_Ռ(k{0*^GXύ^^Y׍ut(}݄(k}GA(} D^^ϾGt^G? <~ZI}gZQ{ <5+0/jxYoődUU|X֚| <~Tތ0q+YQ/UOZQ MWU|pUGX֚|@էjRNRՏתoQՍ-oj?QՁzAWpi ˕NjjRՕx֊׊peS)SݲQR)Sݚxwvyl m̹ؠ|mVTx[{_tiLm3|[ THJ^>uunzscut~{lˬ@yy̸ؠ|mVTx\{_siLm3}[ lGJ[Av|gwtcuvˬAyy֥֓dR#S|uaʍ dͽܠ|~vT]xX{bogKk3|~z`BMV>vxq~tdx~ɮ8咉qդW|aRUׯ\iR|slOow|FNd#v+ёhWW!ۙkOOH K}J)S)TpU5wxœ>:68><4 8~vu}|vv~уW: 7 =<oxtjkvukju{rlvwj%ѥfWտAWՏ۟fO+O5%f F"yz}ttlbp,vNcԳ|{uu}21mz.ivY1ʳW;Bf`Nzz{|z:|ߍrQ@; @bm|tv|{>wT*T֎܎fN!N0>ix/ .kvf̤ux}y[֍ؘqtn|~%MFuqy@{kSqk^pmysv| sIt>}U5U؎)ݓXN3q5Olpcɍ0Nr{rp$%!M/<\sndfm{h{yr{V8MqUnrjqLJOSYvz|tn:pYYwđfY ʑfYcɍzxM* }cɍޙP끝UVZY'7UߍުvL.L ,aaL7.UL.,U=Vߎyřy,-rUWԎ*I6b7BSTߤYJ]agaΏ{HeT٦cwX~npPNь*48TՋ}|c{6!Etx]/Y` v;>d䉓.S fz z w}N׌z 84!Dg |ȻZ S Dٙfz z rz F}N׌z 84+!Dg |ȻZ 0IYW :1<: ~ ՜aTb` Rߌ8FNPZfeãjYDOkme°UPSήZYڍtnx\rtUTcHJ`sNTbfW鋏H8IbK.ydÏՙbTa ?78FNXX*dƼRTSsmXDOvTf`XÑΚmYڍjn}i\dcHJsdab|T-YތIbKV苈_Splsٔl%$!-#%**& ."ϊYYˏٔlPP֏r $"("%'(","~|ϊYˍ(FD%)HH,nwnddonbenykkywjLIIvIM͍wQlQۍXtYیWWC;F元kvIҍ'eBiPfMő6-ʲ ,ϙ~X@]}FYQXÕ'cԖjUAICLHKBV˕6p~͚yǘy^x\OQd!$kp(-o^Q\8Cvwonvxpxlm{u@msv9JAa 7x2#IOq}p||sA6}nh ušw[ktatcnlNaѸm\y~~opzvn|yMp\T{l ).# Uws}ծŵgZi|xqrx}w,j :{пDWҍ1٢uP۩[P>u1P۷K[_P ",71s}OI@HыWTf?oLW˓dۓqPPH OtOLiwfĠvs{p~o ;V7i{:qaɏ[boETI^u|{xHyMr{Ƒ tv~;O r{O˵€{q|{q Zˍ`YX =O0juEvqb\doGw}zɋ_u[%ZԸm_5əlbmP$aHsn&#jf" jn%$ld"i}yƘx`͍oin1Q⾿㫰{~n^^sq`}]ҍhca148@_J EA DI G? C{|}}yqqy|+r~o{~whlhoy޺lqqcw`{q@z~"("&', @1{@c@Nu2cN }wPhDg9:=?wxV+|{θ_JXVyzx{t}ys}}l||Xy{[kfi3TT3wtkfffkjakVxj\OpSQn] VkSv hgx| h]PsNzfThff#[Npif5/̋jYY[/̕i]\]5|jS65QQ46R~ΊY\kk[^mm]s|||}~xnm{wt oQ:o șoQ!:o9 wwتvQ HQ+>3y2 ڪvPJv { vހ^]ɓwPjI߀ ߀7}peU٣esenLx M~L~}{71 Lih}h3naŒ3[EOFXЌ7ZST[W͎8ՎKOxUÏg+ y˜vbǍxwz_k7לpa'C ^wqȎ*?gkkuksqbI8[?themro?@Wތkxmwvv]ʹJ]ʣxw)km,zncpsinS MC?4P}81 P4? g}h2 2Y2 ĵϩpi2p+ IRC/q2A\>z 3x{ 7^lfE߹ֶ`7Ev bew.&lϪvQ-Q^YIZc J=3-H ~R,$ v G#C>B􆐊ćbH`w{sسηU;u~yww~~s=aYKr~{xSɌ8ԪvVV :B.8BVYEoVEvQ;pہI@M{qM2 Jn} ֢S΢A ȞQ!:9 ͠k򠁡n0  ;xT ĉou Q: , M ajr$\fwЦ]=biIHgيx, MɊrjaٌxb={Oxа}pzpw|fy ;}T ąo= uLxB uxW̌L QQLB ʞ _ŌL EJe n lCߍ}e&  ;yT :ęou  ;nT vo= w2 ьl0I2 y nY o{P`g = xs1 I2 xOڍ8˕w3 œ `wśn``+ ؇hLqLe ~͝{? qk o ͙qkqn0 Yʝ~]3 L˔_[ɍʒa _ŌL EJw2 m0qF 2̤l\̍wMɂp փXS΃XSɗ̞P9k_|XH⾩lg3ءoQڍl / mCoCߍW{p / kCoCiCߏW{˿k& \7  օ2S3w - `ԡqVˍ( ; ދM΍u* uLx˕a[ɍu_xW̌L QQhʱ|]ˍocah|տ٤~ ZuUyio[bdyKe^lK`͈y~ ͥwa?wh šsaXY׍XsYa?Ǣf_֍]w̚wf TOOWۍ„QލTO Rx^AwXRx D HCߵiCߏ|e- UaCߍe8  :;cT čou  =;fT bċo= w2 ѶL0s2 =sdōdRۍÍs1 I2 aOڍ|˘vw3 H ZMŊwV œ &Şq`` ͛sksn0 - ԭiVˍ{ ; -ޥoM΍* m nȟm- lCmCߍ}l& XV܍g||t X^V܍|~4 nY(qԓr =xdōrRۍxx1 =dÍ~Oڍ83  zň zD zp ŝl``o甍y f/oaD ~͓? mk o~! . `" ͑xXэ͜tktx0  Iοb\ɍw Y(r ̎t\̍Mx ̣o[PNPo N[0LWKZy]9LK vwcdo ̤|Yэwiw|y Yѭkɔ_މN΍ s lM׫qM׏wĜ} pM׍}} {p2 C{]̍Bțp |qw>o\΍sq $ xs\ 'eǍo\9oČ l< ^^{muW[ʚw^ōmMߍaw wʜz^G\Ǐޜql qu  `bwS|{__lLyxrw ̚}Yэ͔nkȔn} HǛ`3 Ȗ ˡnZӍptmtn h`cvމM΍sD «ȫ~{`t~ 9eXHF|Nd̑z wi?wha Ȕ`݉Nȍw F P2 Wύk͜r : /lKpKӏ鐐  T (  sd(  T (  sd( 2 ? T ʘ^ύod' }T ( `: Enɓ) * }T `? Bgы) * P+ om' Bgы) * }T ( `: MN P$ sm( MN }T `? KK P+ om' KK Πp{( -jY•! . " Ts pu( -jY•! . " w~͟? Nʧw^ύ~{' 3tX! . " +CҩZ f?yvE=f|C}=Y &l ~ͫeCx[ B N S Y ` d k o s x |  h  " 7 = L T ] b f n t % - w ~ /AR^n@\w  '.5:?CGKPTX\`dhqdhlx(.ae,5=EMSYafkpu{~9~ !Lw +8Mdv )3=BJRWcjot 2FNbpD%+1CHUevDSYdpx)CQlt !,@INev'27ESXhrw    ! ) 1 7 = C N U \ c h m r w | !! !+!V!Z!g!n!""""4"b"""""#?#O#{####$$d$$$$% %%%%$%Y%c%l%%%%%& &6&_&j&p&{&&&&&&&&'''2'K'^'f'y'''''''''(('(2(:(E(P(`(p((((((((((((() ))!)))2);)O)Z)e)p){)))))))))))))))**** *)*2*;*A*G*M*[*c*k*s*{******************++ ++++ +&+,+2+8+>+D+I+N+S+X+,J-?-V-o----.m//^/g/}////0M0l0x00000011 11222D2W2223E3O3q33333333444556626T6a666777)767}7888(8,8@889$9-99999::l:r:::;>;;;<<<`*>{>???5???@@V@@@@A,AhAAABB8BkBBBC,C\CCCD DDCDvDDDDEEAE^EEEEEFFFF&F:FLFpFFFGG'GLGqGGGGGGGHHHH/H5HMHXH|HHHHHII0I:I[IiIrIIIIIJJ%J8JOJbJJJJJKK K&K3KFKQK_KeK|KKKKKKLL'LBLNLiLwLLLLLLLMMM2MFMVMjMMMMMMMMMNN N8NANKNcNkN|NNNNNNNOOO#O1OCOXOhOmOrOOOOOOOPP"P4P8PNPYP`PhP}PPPPPPPPPPPQQQQQ/Q3Q9QLQ_QcQkQ~QQQQQQQQQRR"R1R:R>RMRTRfRxRRRRRRRRSS SS*S;SLS]SnSSSSSSSSSTTTT-T=THTXThTxTTTTTTTTTTTUUU,U8UGUVUZU_UhUvUUUUUUUUUUV VV'V1V7VDVHVSV^ViVmVzVVVVVVVVVVVVVVW WWW W,W6WBWNWZWfWjWvWWWWWWWWWWWWXX XX#X.X9XDXOXSX^XiXtXXXXXXXXXXXXXXXY YYY'Y1Y;YEYOYYYcYmYwYYYYYYYYYYYYYYZZ ZZZ$Z-Z6Z?ZHZQZWZ]ZcZZ[:[X[k[r[\\]]]]^^8__0_`agaaaaabbc\d*dddee]eleee@8rF~uCBzzisn#}+fVLIqاo~hs}t~:,i1n1-! wdЙbGLGznW}}i~P|Q}J v 'Iw|B[{px^vSnsA|IZ8aKaҤ?y}upnPdu*^"5T| awLcaVXdɃKfOcdЉ.yvw  K s  Ur [6`KYwew7 [w?bvۜ}P酋KP  roihm xt~yØ{aōiyK uyeE}^dI\܊y,FYD9U{ r hƓo x t}liz- T5V۠?WުvMv+ / )Gm?Ƴvewvey\ԍPHI/&> vx|xE\u^я wmҷp]bgrQg^l}ws~y}vP}bw Ò}|ruٶ_=lu~x4 ުvM N,xSdu>pYsßsōSF$7sphx{y   PsVZMCW=s]Џ, @ZvZVߣhw} bbo\̧iO h  8 ϠńyƘ{^ƍx\LzL?\myywoibGYv3]ι{{yutr}^ɍTVQvM\mTt}l}l{n^`mn]Nhߨ|vu}|xxwjz}~ejfbEy9$C򈏐  )3 ~;   * z}~x+ .}(1/%.()vr|фWՍ1M>"RD5p- oolkj}li{xqUdx}y}_n G\bRI]ꎆq Nb~{|~y7 =Z<ȧŰ͋}QߍvvuJOhQg Dcx  {m M<[X56WZ,iwmqyes͜}\ C}vebnpwjlk]:^ EE;>q$1"{vv M c MX zS'yJBTܒl,-[G߃ ?<; bwS|{__lLyxrw8cl GE/v2Cwt0nzzcXyPhdV{vb4LVߕvw2 ,  Q d RvE ?hYяhvr 1%-(w Y׌wb w N PʳͰW*g5W :,7 P PEZçn YYύ;>. e^w |_ΌsUUۉw3 F^͜m}y` zLL싇OJP; Y1rvN%NnԊWˍuvV/Uڌ̀ nwޜMުvWU2UێzL _ e  s k v   EޝzMNݏ ; P|Vэ ȻҘ| ewZcjVXdKg_oJ`ד{) zK'$I46xxy͌YUhN*.iPVx~wol}txx~upo~vzI($H47}|vw|{ˌ_Sf°O.2gQUzwmivyyxrqz{D RYI ujjlr]}|}~zqiyɞP82P\E}x} " I T { u O +gtof N%N|  ޛwMu k^C S* { N}8gpHތB{8|~00WȌP T T y`k=Hj¬[A}{}&aEdUb@ӑsVQYor w< ۰ T AX T T ؓtT͑ ~Nn?( HE2{vAHSډ>Y d vn' 0ljjuXyx UՌGnKs_Vz nᅯ{ IF]@  xJyQr}Ȉ[ wX T _"^K^ ry1V̌Pf ww~͟?  y  y X  CUS)<A 3PkY  O h w 8 7 ww۝ {R m 8[T}<1m  N X(p9ߍ} 0^Ͽ8Pt we^avZkw\ 0F,Fsj Ǚ vw MJ8.K W o^ōv:N≓47 si :{Yՙ`} YՏ idjjW͕v vw UQڑYaw% vQ-QvMuw .U vvʘ^ύQ&T^ψ^^u^{JwP3^Ϙda~xșx^ˍwHۘxM*Oыywٕ؛xPPvNtqv~x;3U VU%;;dvP~p،܌؇8.ӃԆΐzLvP mCG r zm- Z fQyA=vE~CnEE٢h j  %LJ M P vJ qފ^C߽OMHCߑR _ϟm-  ܮ^O P  A {l`ŏ_drIXGXu{t ɘ{zbj_Dp@{.Ptyt9r1 Fw U;wޡ}M ! 5 : 9 " s m tmUq B n ԧ|fOl_zg~{ W}a~~zwssg}4 . w S I wV Ӡ|cueT}\}}D_y{h&:I70yz.1:~o*v;PՉAq4 ! 5 : 9 " % Emsum% Dmr\7 P  YJ J p}t;b.pSgRUl s{(  ' b=b j|T<w v8Sލ 9N8nS޷Ko{' ЃB wr惢w,E$|r[j_)CXhZ;cx%bUbF`@ԊxYPV@zw~͟s? u r ޟD ܯ|N n O !=Zd  WعF <[̵T v]k^U۬VjfshwAM_%yEtHÕqR >}{oޣv > yf\a1^OUF{jߑo ' C6n ZYϼEOHWX f{q3%vojXdYͤirxw i TAa} !j v:M߉7 ۆD n Pf_\vJery YѭZ h )=dc NE ֣vR1Sڏͻ~A{RL~ &Z,LHL vJ w;?5ˍ?ZhCYϑ ň HݻV/y v;P艓.+hf!nvc F Y֌iSPN cX|rs~|u5*3yfG׍U eC t j y 7w[ӍΌY͍R;;GrN1P1, P͡nXэw$ͣ Ew wU؍[Yύ2&(!Ņm``^G\^9P^-P`m]kwX(ɨ¥per ʦ]ÍNZ%nU.U{~PyŘLIM׫qM׋rӌO,97w;1K4Êbˍ˸V^8%UۮU;Q^φlwG;;ѫ\VيY-[ ; g`mvw٪vQb uM؍oqg PZ y] qUވC &ф}~CYu{kAYf}nǍlUNzMq;FA=}ty~i]_slo|z\ӍNB?o%#nhfp~vwV'Wʜz.V̒ijvLtoL3Lm j4 3yvFmLbS5;[iqvvqttt= lYd~Iaђ )۪zC3P n]& 0b Y d xXђO 醈x0 U mw + W XvO. 4 ުvL% w PQ gv  sokjn xtM MS I jSV\ b |qwea Z ~] + .-0eehw}~qpQeU۲SzWŒ T-1IU%OIW}ysr}tzsItEjxь zLCL6 8 ^7 qwe$ w w 6 s}:\:oyfU63  w 6 YP *۩{C2Pw p<&   x |qwe #O$0LS7>YȻâ}}zz|gyhwcn~w\kȮV-$_T7njy}~vv}xy}vkzzp / C d xCߍX e |p ~ vMVen. 9. ~͝{? rk n w  2 yJ w g "P Y d MX mk\ ; +  mzV H}Kߌ)LfQg{1LlxōH3v& 3Sm*Qr`3>%QxqSuj0+ 1 UN0,2, SP-qqyzstЇXԍ!K*%-(%O2%~{vTW{vli{uqsys}/vn.+1*uo-u|suwuu҉V؍#JJCICN!'z{sTXzsjjzpttyozqsD`!]Xael!a~Hbz 8/J#e}fqF.+]l̍kE#uI+(!vN"L y o \ϊZ \A{$ % `# '  * jC^ˆpj nWߟgeE_`˯G?a[֏uW瘊덒{ -LccЍH cMaw& ' x٧P<( \̍v r c a KK @ ۣvO MO< E Ѭ{cp{ ,kKFDxKaғ~׍Γ/ BNL~oVzL~YԼoats|qaZoAwBH{ax QvO + hMazV 2 ( :  v! 5 `: 9 `" YMV: E=;z}gaamebw|g XCG{k#&~n! 5 : 9 " y+ {~ EIwwVӴ}rvzs ZǍbZX{;T0p{ ] Q zjp>(&^͌j:&)QJ98mՍdA69 ;K = ?  o^ E FGmVYX~W•}}svص_=m  xF*j_np~q0&-nr#UQG &fqurh/ W0 } x 2 ۣvO) ݺe?x}ˏQRw ψuirw}frks}|;  u} PXS Ñ|quٶ_=ou~x}Oj / p ˍ|uz Yjw;j1w;Ug{}r ܪvN%N M(yFNJ/(&THz: 0w~  ;  |տ٤~ Zu Uyio[bdyKe^lK`͈y~ ?ݻV/}mpeirabshpO; cu m vMߍ' 6 s ߼\ wǀ]ʍlli|~%GF$oxxmm of^q 0V v MۊmPv& / o| l0 %[ T ( ` r<tj}=% g׊{ ;6LE 8,m ʧof^q 0V $uFz 2-Xn^oeˡ{xRx%~3pMrV'͒aM˰\l~OBso?PQ5~s}vz>Z^xS},#luYʍ=8Y ˌǓR3]Xsa{T_uiT `C ү|}|@{J[7}zz{Kbբ<}|vpnPacU" uW  E!EGmVYX ‘}}svص_=m > xc_f'R ﱶy~zpc\xsq \%ndVY$kg Sz{y)naÌ)YEOEXь,YSS" x$ D ~vѿ7WߍܪvO.O O7.WOJ4 pl8`0f9f]Hmcoʼn`nxxnqyyq}||{".z)2",%.)*xt| N 3}q)6}ٲmsɷbQSajEoy{ W݌ߧ܄u6.6{uk;m hZf#sfh~{owj zzstzzsNU؍.U=(DC.'9g|~chtwdԈV_Uڑ ?v@ gMS9LSɗ̞P9k_|XHu+ Ì| v_ȍx]bbf|w{itg}}n}ezy|iu}# k͗u z pz\ *JuP]ʷbQSajDoz{ $3`Xxjjxxjjxvvvzvvzzuvzv sxttxxstxs zzst{zqq{xptzxs֙e fO*y}z[ČPҺ]@  5_Wˌf7uYsßsōSFv Ĺ߻gDt~{t\ٿI).`X=lv~sszvuXCO rurqyty\}@MKOyeK|}s u퉞tyGpLE 81w @}E"|m Q|/񙑋FJvZV ppZ P/nvb`LV  WعF  YյI ۅ<[̵T ی [ E?y3 w  H  qvpo{vw ~wvvm M p f걁wt~{><0{ 2_] #y{xnsw|C{M;{ z QC paZw!;;l:z{ J/y| Ed@~8rFhxՍ  xGtAiwۋ4  C)<8 7 uMأoXђ Id:#piV؞fxOUjlsPN ;hU~Yp ~ͭ]Cxi   + ǘb`n Yq Şk``?v  ֙evb~ͶLVH KʁTVώPU\ F Q>IWՠlaZ|x |  aUw|+ 2yYTX]YSX  S 2QQiXͯONZc3yaJNt se vggvvggvssXvc CD ln `Ɍˁ|WՍ.L?!QE2sL#0qLe}t j  i n` oQڑm %LmvMis$L h [ґu mXvcс7 w}0 1 aV_ vM=`njF|ɍP}ુJjJt`U X5Tΐ`T5X UҐYUW1Uې ۋsTٜz0Tِ+ .'3/H\:k~w~̓pi w vjvQڑ vojZ`[Ӥnrvw~   2 HV/VڵIw XvO0 Y͌9 RhW?swYuqDWŌwN N eqpffpqe` ~t ; ~͓? " | w  ێ2 њ͊~ ) ܫϢcX֍Z}HwH .K z]^7 wլ偩klw`a;3 g8QR|Pv& -8EWXU*TǣpwP6 {w N=  |]C\w獏D ĎwRGҩw+MȻo[vmgksdōrRۍ۠v ~͸]^RYϏ~ e aZ̼JWoj:UнLYvv0 J8.O`J16U`" i !vN"L IWՑwhYs]]_֋mppmZөY?@Ddhyxaa_U۷Yw Pqeeqpffpsv3[ϻOYϿ9YՏ{P蘕~yQUۣcscrՀzPㅏ..2 Wύv ~/D?@s / E=Һ v~VڵIwv?WٳNwHYYΎvN跩_m%aoNǟ\s]dg{ wV.V؎P w:>^ϘMw|qf Iγb\ɍy USF vJwuʦ]Í=W쑇McԒ|z BAZGҩwg^dvL  yŘw_ƍ_njJ&=[̷Lws ʟv]Íˠ[ɍwf޹@^ϩ}MchfwwvL; lCv2ϼQX͍ښw\̧iwh>|]˓ZvU;Y~TVjjR蕁v/׆` vX X g v ]MktH}yWҿB[WϏO ۣvP㝔y+xy|{ne qVOVͪmdy{|N&OJ8!G CzCߍuCߍw w]C zxvME xzO\O>wJߌ v=Uٍ7 (\ɸ=P˵bNKaaK<[̵TwU۞jx4UwlAPAp)*.~p;2j}M|v~ w:Z7DEFm^p^pRzjjR|A[׍?̹hYэCrgӍ;.EDX 6dWۻ7vVg1Uo\ >^Ϙ,+ހnԄ(p2҅jbdvwphդWR#0}tz^Ս)=dpX}M؍(!$&&&&$***++Y,,,-_./0144557899;>>C `~DFLTlatn>: AZE :CAT :CRT :KAZ :MOL :NLD :ROM :TAT :TRK :markmkmk MNhU (A$(B<%'+%-g*ikemmhosiuyn|s []`NbbRdmSp]      $&))+/2HKLOX[_$ab)de+gh-ll/ox0{{:;>?Dhk$m((**,,/0224488<GIGMO4MMMT&MNONNN,N6N@NJNTN^NhT<KKKKKKK.>TNrN|NNNNNNNNNNOO OjO O*O4O>ONOdOtO~OOOOKOOO*V IVBx  ~ P*  ]  $ H Pk ̀ 0gF$F.F>(F.F>(F.F>(F.F>()F>)F.F>)F.F>),F.F>)<F.F>)VF.F>)FF.F>)V)F>)`F.F>)pF.F>)F.F>)F.F>>F.F>F$)F>)F.F>)F.F>)F.F>)F.F>F$F.F>)F.F>)F.F>)F.F>>>)>DD>f>p>*>p>*>p>>f* >** >*0>p>*:>p>*b*N**b*N**D*N**b*N**b*X**b*r*FNFXFh*FXFh*FXFh*FXFh**Fh*FXFh*FXFh*+Fh*FXFh*FXFh+FXFh+ FXFh=6FXFh+FXFhFN+Fh=&FXFh+(FXFh+2FXFh+<FXFh+FFXFh+VFXFhFNFXFh+`FXFh+p+++++++++++++++FxFFFFxFFFFx+FF+FFFFx,FFFFF,FF,FF,$FF,.FF,8FFFFF,BFF,RFFF,\F,fFF,vFF,FF,FFFFF,FF==,=,=EE",E"E,- --,-<,--,-<- --,-<- -,-<- -,-<- ---<- --,-<ELEVEL-REfEp-\Ep-lEpEf-v-EpEf-Ef--EpFFFGG.FFGG-FFGG-FFGG-FFGG-FFGG-F.>GG-FFGG-FFGG.FFGG.lFFGG?NFFGG.$FFGG..FFGGFF.>GG.HFFGG.RFFGGF.\FGG..\FGGF.\.>GG.H.\FGG.R.\FGG..\FGG.lFFGG.vFFGG.FFGG.FFGG.FFGGFFFGGFFFGG.FFGG.FFGG.FFGG.FFGG.FFGG./G,G6??/f/\//\/$/\/f/./>/\/f/H/R/\/f/v==/=/=/=/==//==//==///>>EEEEEE/EEE0EE0EE0(EE02E11@1J1Z01@1J1Z0<1@1J1Z0F1@1J1Z0P1@1J1Z01@1J1Z0Z1@1J1Z0d1@1J1Z0t1@1J1Z01@1J1Z01@1J1Z11@01Z01@1J1Z01@1J1Z101J1Z001J1Z1001Z001J1Z001J1Z101J1Z01@1J1Z01@1J1Z01@1J1Z01@1J1Z11@1J1Z11@1J1Z11@1J1Z1*1@1J1Z1d1n??1~?1?1?1?EEEGFGPGZ1GPGZ1GPGZFGPGZ1GPGZGF1GZ1GPGZ1GPGZ1GPGZ2GPGZDE2E2$E2.ED28?BB2BBB2hBB2RBB2h3B2rBB2BB2BB2BB2BB2BB23B2BB2BB2BB2BBBBB?3B3BB3 BB30BB3:BB?BB3DBB3TBB3dBBBB3nB3~3AAA3AA3AAA3A33A3AA3AA3334333433343334334 4?BB40BB4DBB4:BB4D4NB4nBB4^BB4n4B4xBB4BB4BB4BB@BB4BB?4B@BB4BB4BB4BB4BB4BB?BB5BBCCC$555.5z585z5B5z5L5z5V5z5`5z5j5zB<BLB\B<BLB\B<5B\5BLB\B<5B\@AA5AA5AA5AA5AA5AA5AA@AA5AA@AA@5A6AA6AA6$AA6.AA@AA68AAA(A86BA86LA86VA866p6`6p66<<<=6<<=<<<=<<6=<<6=<<6=66677777(HP77877H7HP7R7b7HP7lHP7vHZ7CCCCC8CCCC7CCCC7CCCC7CCCC7CCCC7C8$CC7CCCC7CCCC7CCCC8CCCCCCCCC8CCCC8CCCCCC8$CC8.CCCC88CCCCC8HCCC88HCCCC8H8$CC8.8HCCC888HCCC88HCCC8XCCCC8bCCCC8lCCCC8vCCCC8CCCCCCCCC888CCCC8CCCC8CCCC8CCCC88@\@fDpDz9\9R9 9R99R9\9$949R9\9>9H9R9\9l@@9|@9@9@9@@99@@99@@999:Z:p::::Z:p::::Z:p::::Z:p: ::Z:p:::*:p::::Z:p:J::Z:p::;~;;;;;;;:;;;:;;;:;;;:;;;:;;;:;;;:;;;:;;;;;;;;~;;";;,;;;;6;;;;~;@;;;;@;;;~;@;";;,;@;;;6;@;;;;@;;;P;;;;Z;;;;d;;;;n;;;;~;;;;;;;;;;;;;;;;;DD<D<D<D<&DB BB,@vD<6DDDDD=DFNFXFh=&FXFh=6FXFh>"?>,?=@?>=J?>=T?>>F>V=d>VELEVFxFFFFFFGGEG,G6>f>p>EEE=t=~EEE>?=======FFFFFF==>>FFFGG>"?>,>6>F>VFxFFF>f>p>GFGPGZGFGPGZEEE>?FFF>?>?>F.F>>F.F>>>>FXFh>>>????*?>?4?>?NFFGGFFFGG?X?b?l?|?DD??????BBD@DP?DP?BB@BB@BBArCDA|C^@C@"C@,CAA@<AACCCCC@L@\@fAAA@vD@DB BB,BvD0@@@@@@@@@AA@AAA(A8B<AbB\ABARB<AbB\CCCCCArCDA|AAAAAAAAAB BB,BvD0B<BLB\FFFBlCDBvD0BBBBBBBBBBBCCC$C4CDCTC^CnCCxCCCCCCCCCCCCDCDDDD D0D@DPD`DpDzDDF$F.F>DDDDDDFNFXFhDEFxFFFFFFGGFFFEE"E2E<ELEVEfEpFFFGGEG,G6EEEGFGPGZEEEEFGpGF$F.F>FNFXFhFxFFFFFFFFFGGGFGPGZGpGFFFFGPGZF$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>F$F.F>FNFXFhFNFXFhFNFXFhFNFXFhFNFXFhFNFXFhFNFXFhFNFXFhFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFxFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGFFFGGFFFGGFFFGGFFFGGFFFGGFFFGGFFFGGG,G6GFGPGZGFGPGZGFGPGZGFGPGZGFGPGZGFGPGZGFGPGZGFGPGZGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGpGGH H&H6HPHjHHGGGHHGHII$IDIXHHGHHHII$GI$II$HHIDIXGH H&H6HPHjGH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH GH HH6HH6H&H6H&H6H&H6H&H6H&H6H&H6HFHjHFHjHPHjHPHjHPHjHPHjHPHjHPHjHPHjHPHjHZHjHPHjHPHjHPHjHFHjHFHjHPHjHPHjHPHjHPHjHPHjHPHjHZHjHzHHzHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHI$HI$II$II$II$II$II$II$II$II$II$I I$II$II$II$II$I4IXI4IXIDIXIDIXIDIXIDIXIDIXIDIXIDIXIDIXINIXIDIXIDIXIDIXI4IXI4IXIDIXIDIXIDIXIDIXIDIXIDIXINIX ! 'ŀ\ Tg::D'F" G!D ": D:D& ߀:T& ƀ ŀ;p::3 k! &<B:&:':Y~&:t&: &;l &x! %oDt&&>! % NoTJ%oX@%BD(%B.B3$B BT >[ !%XAD&%A:&%  AT&%@  BjA&zAX&p$-3DA&\%A&R%AY&H%X NrTBl %\  :L$DB$T8$r.  X#Y $n 'i,iT$i3,U!<#:$(D$T#U ,Xt#r3j! #tP$4F$PO<$\l$#! #RT>#h! #86 QV! #" p"3>:"T4 + C" y[ 3F! "ʀwD"w 1wX">w3wTxl "|:L"|DB"n  |T""8 tL sO}$, :|| |3!\!|"X ,||"Z|Y"K0  K! !@}l#!L p}#f }#V ++ ! 5DL!5 *525385!~5$5 5T :w! j ˀD  ~ T F ~X 3 >D . f8 @>3 Tx~O: ODOTOXT: O 4 ! \ǀO3! ,NO lO|OrOYhO^ ONODXPl d ƀO  :.. E! rTLXB! 8! >$TT$X$3\U! $t$Yj%l z€! ?D?X?3 N y, gH b be$`` 77 5 p3, r  dR{Z IB 0 "O\  8:. Ye $  >34R @O MT >V ۀ1`   VapNy \X7 bV h6,32v zK{ J1E ΀E   F F<2(pB {  , ! 3 | `2<| L0| B | 8| .: {E > ȀZ Àt ,X| ^| | { D{ fN  ] [  KN P p3:rU0 $    ـ3  {@ X 3T: B \ 8 J  ;D7 9G 1 f >v3 \b  F TN J { @>ETE { D>  ^>_ A     d mLz 4q28z38:z$ ~zU Z    Z 0 Y 6 =3Lz3 ̀@ hx 7/: .P  8@ ɀo ( j Y k Ȁ]&@4:$ : < 4x3 d    |Vx({n'd T\ `ڀ:|4_ π "i  Ԁ  }>o jf Z v |3  , 4   Ѐ 4   3 l|  )  )! r! -AXNxrvr|l! * ! €++| (k ɀ  K l   ( #$ 8p: vB oo | |j@:| :X  ^A|g g X Ru $X$ ؀rYjrXz |X`+Y<+XL+ I@X 2.+ X ˀ|| -    L"j "` dՀ' T~  ~  dl c @ 6  _  | v| \{$ { B{" ʀ 0  h ^Z  D  z  j    ̀ ހ !  SQ :  dl  Ҁ   k  ` o = c  & u  "{ " ") d  8 ($q   ;{L 8B ^8 | %  :Ӏ  L c  j R P :: E _ u5 5 t?? 66 :: Y ww  T  [ * c* e uu X $XJ :: oU A 6-  iiii j    |$ &| ? A|[  %% $$$ ĀĀy N~   J :2 0{J( V  " a | { {({{ ^{ B  ǀb J(H   q. ݀qqq /   ",6FV`jtx 2 x|(8Ndz3 ̀=p À   | %,  T U r  @ !,$$-&&./( *4>HR\fpz (2BXhr nS 6 !}|r h,8 UX SPVbnz 9 [ <S * l\ RB8 .` +/`v0F\r 2H^n(>Tdz A ? 3u s  w # &mB b WW{ (6 q}  5f  ׀X X ! $3'! 4 /T рD K:  H Ul V+Y @   }8O 'h\ \  CZu D 6s MD ܀x hg   ^ Q\ v c| z  J ~ , ր  0FDFLTlatn AZE CAT :CRT KAZ MOL fNLD ROM TAT TRK      aaltcaseccmpdnomfracligalnumloclloclloclloclnumronumordnpnumsaltsinfss01subssupstnum zero!"    $%#&NtDr6PP^lz0RthLbMW 1  "# &'La~DU]r/2   $% 0>LZhv    12  ++  bt&>,DU &&G#NN$EV  "# &'$DU   $%Bzz      $%       "#&'J"  "# &'"   $%  DJ]] gg +@ RF bWaUh!Z?L+/*5 "B * $~r~rr"s L#1  "# &'#2   $% D]7 ](9@@ 3Al%tWXjq{Zap`g]i^i1:?T^ISV*#@A46BIh1M:DKXZ1:= ?'AHRs /713D#05&)13>AB#)0Id ,5 ,-8&8#)H#$&'(AHO 0g  (:?HY!-"&3^")8()18&.3 +%*45?&F  ]      !h1 !(")C*< \x*''axSSS        N           MMMMMMM      ggggggggggkkkkks]HHHHprwwwwwwWWWWWWWW`++++++++IIIIII~iiiiih}}}}}}}}}}6=A   sMv<fm P# )Tt|gg!l'  fzzz_-GG%}}hO4jD? R-Q$V~~1\--}}}zDikS >Mg"ggggggggggn#,nX.dF0{Z5{:"C*(K97E:"C*(K97E:"C*(K97E:"C*(K97E      [[[[![;;33oo/[[ qLy2^U&[bb8Y@Jce $ uBB    BBBB,sbyospyostroxhgt @@wght "2>d, U0 @@wghtd d, owned_ttf_parser-0.25.0/fonts/NotoColorEmoji-Partial.ttf000064400000000000000000000346601046102023000214320ustar 00000000000000 PCBDTV04CBLC9E{=8GSUBDvLu9@ OS/2vh`cmap?8head'r6hhead`$hmtx4*maxpV9 name3Mvpost' vhea^9$vmtx9`*@.  _< kN l l  33f GOOG@l ll  A-#*0 p  ##**09Z 4  4 T  4  4 b Copyright 2022 Google Inc.Noto Color EmojiRegularVersion 2.038;GOOG;noto-emoji:20220906:4b1c5bfb0d5b1f5c69aa321d5b6e70656ead1d30NotoColorEmoji$etPNG  IHDR7 PLTEGpL\\\uuummmrrrtttjiillliiioookkkihhsrrVUUpppmmmkkka``hhhfffdccdccTSS[YYa``RQQTSS`__^^^]]][[[QPPZYYQPPRQQWVVQPPQPPRQQTSSONNONNQPPONNONNONN.tRNS @QpÏ0`p@Pf۬kIDATx؇@ {- &xaK"⠕?6^Lyc1~!ŷAOTiؠVoBM녴Ep#5cHfAOE:P0kzmi ͱ5͠+fH4wuH"P3CMsDlq@M]cOH[ Դ'D?at$F?e3eM4wuJfro8v5'rjs"wu1#s5|uFb 1Vd>_rܬr s ooU~WG2y/||gCt˖dcderJ)~=Aj#Y一͑DsA90|tdsa}vR_'nz"_s0j\hJ𙈇*wU??3q[p_Ȣ(d$$x4JxE nAKH/Fj6=& Z_+Uڛ, BgOny'yO&㮮+ddSOF+~i>soF{ qA~Yc1cL)!βSIENDB`e1PNG  IHDR7 oPLTEGpLmmmuuua``rrra``nnnfffllliii^^^WVVfffbbbUTTRQQ^]]XWWRQQ___SSSUTT\\\[ZZYXXQPPWVVPOOPOOUTTPOOONNRQQONNPOOONNONNMa%tRNS@ P`0p <LIDATxr0Ga54>*,U58T`H7Dc>3hz=bȘ9C̤8jҚ#4RՎ2؝zpp!kC\2G3'"Z!}6 ʂ26yb% qFDE C7(0(¥IQ$Q:BYQg\ uKF'܆B8wO7t.>Z<^.^̴y~3Nۅ4,8UXlO:Nөbf|:7@*j87՜_[׭ 3g` 9C{dB`q>=(B)$5wTxU&ye׍5p&UAB7-ɀ%Wb Pԏ  я]I;&BĄ |vuY3&HMKF dPd!bX3~f’Ka,kJQ!i FE`l&y.$zAnx\vh$K;1ڞyqd.뺮뺮뺮>Xh@IENDB`e#PNG  IHDR7 PLTEGpLsssjjjsssqqqvvvttt]\\onnihhsssmllqqqoookkkgggllljjjhhheeeeeeZZZQPPSRRbbb```QPP___POO]]]ZZZWWWPOOUTTSRRPOOONNONNONNONNONNONNONNONNr&,tRNS@~0T @`0@ pߏ "IDATxӇPr$l ϗR6is:kR`1c1Tz *a2^A)}L4<0Бx8zhѨQ':y:ܴelZ3w10|Z3C[YLWf ׾! AzIMnIo4 Mĸ/ƫr+A[^WA9g*B:]KA|7ۍ{N9gaSG&2;F0-ru:Iwi) zh;]n#tAx 1Zuf;Ixȸ7ڿJ!B!i֍s0YIENDB`eTPNG  IHDR7 PLTEGpLuuu`__fffkkktttuuukkkkkklll[[[pppsssmmmrrrXWWZYYqqqqoonmmhhhlkkhggjiigggeeeRRRbbb^^^QPPWVVZYY[[[RQQYWWPOOPOOVUUONNRQQUTTSRRQPPONNONNONNONNONNF0tRNSP`p 0@p`߀%TCIDATxEP\x2)xR_1c1cKfBRdiK6ꂴn.|̋E ٗpRY8y۔̱—z*43Ĝ HlMaM{O/.'X/V9U;-C?4.73I(@ET ݸd2ͫ4 dS.C}f9gH,hu,7q4f^`IޓewK)Ac0zqyX?9YV@MXqgnJxTXmI=CN/d'!Ҩc7!Lը+dJEK"%@NfE$kګ47^>9g\ܞvD\'IMaCʁQ F2a?zr'd=~jH42Cz!\!df L,"y;K*$ޖ5!f_>Zw!PHC!3^$qTIENDB`ePNG  IHDR7 uPLTEGpLXXXpppuuumllhhhtttgffsssqqqSRRpnnmlllkkUTTWVVhhheeeSRRaaaQPP^^^SRRQQQSRR\[[RQQRQQPOOZXXPOOWVVUTTTSSONNSRRQPPONNONN&tRNS @`p0P@UWIDATxWb: ('0qr07SLKyJ)RJ) vq(˫@!7aCnIv](o_(ᐋȺsCV1Uҹy/4ξI ]Ͻor@BK 4rAC^\"jpBL׍@mQ6 Ȳ[7uoQ! 6{΢lNjly`޲i8!K:D1`$Jِ:wxEnQ>m!&V/zHC_a*w=#2Kf)Pk?uq(RJ)R/z5IENDB`e\PNG  IHDR7 PLTEGpLYXXkkkeeeooorrrrrrZYYZYYhhh_^^ooonnnmmmgggkkkhhhcccedda``SRR[ZZ]\\RQQQPPQPPPOOZYYPOO[ZZPOOWVVQPPWVVTSSTSSONNSRRRQQONNPOOQPPONNONNL,tRNS0h @Pe߀@r[IDATxѷ0 DA/MF_>%NB!B!d6qXxe/ē1D?IBEQx]i;zКG:*CrZQ)%UQu'u]pmwf>#6 `~z 8FqSoeڭgߙ"mDKv U8]~ Ő.ma?0V?0 -<D.0' 3%egՐ.(s w[u;KDN (sr0BSJ{Q0moSIxa R(X*B6<t{tö Y7db6!*Fbr8"Ģj&ƴQ!Lhb҅!4!A?Z b_+N!3}p'^CH:!#fL>1yny3rfbfv8M8I3qI?"_6SCH%72,=)T8O^J b:wzRI߼*2H>&29֞A9|cl |olli\ %#dY|B7`c. >Bd`Ӹ[S:%0B3;㬻P =LHyVȞ[ YI 3gݩPwK$R#!X)ߝR)+$fF-ĬqT dRJݍJYHIHf)1"cDTd +J)RJ)M| IENDB`ePNG  IHDR7 PLTEGpL\[[mmmsssuuutttmmmmmmqqqkkkTSSqooonnfffnmmlkkjiiTSSTSSTSShhhaaafffcccaaa___XWW]]]SSSRQQPOORQQ[ZZQPPQPPXWWPOOUTTONNRQQONNPOOONNONN{I +tRNSP`@ 0pP`πZIDATxև0OE$pcRDxGL19? :4t| ܱ# y!B 8C桐L*dOtݦ/9=|@G1F^u:32>=%ZN4s Vp_7]e r#Ug*LJeE4/[Sӯ!;,DSZC:*9y{Gc!\U9^'0GpT.NTiu4et^6^GGUWr|^NPX.N20/FҨZ/LxKx#.Rⵂ ?mC;BcgIٛsF s;paCܪB}P dcUKOr\x#З,7IV^'r#ژpf:C; Erc, !TuglkkS+v3.m.Cw E,D CZC6; ֆЪE(O%(((?IyDeIENDB`eRPNG  IHDR7 lPLTEGpLY\_`be`be`be_aeX\_`be`be`be`be`be`beZ\_X[^egj|}npr]`cTX[_adW[^KPSEKNRUYFKNEKNEKNEKNEKNGMPEKNEKN`$tRNS@` ϟp0P `@պbqIDATxю (?*@=o٦;YTжW]c93}0΅bA*vILO1zn1[qއ2;4b^ŒF^r~w?0Z""N.&e3r~C끆R*a@jI| OzXc{ Q4u4;Ami^`YFQ+&ӑZ.d>WTTb!Y|w&vل#z YmQ|XΑO6 !L <sdL >5{e2HY@QydKYpM>zeиW>Õ=dIkPq;-27Tk4F.ëЙR1Njr<-sg%PR8V4OۿLm{vtmv.xT~,MB;SP WLVOXq!QsKA7P&FGH60p9봗,a=QMT*Un&_oP 0y8\'LF ,BCeg~ЭTgp XxJ?jw R3IXV4 /6V*za۫p:*c!+Z8qdU 8I;@ EAb1 U0I8C!$e)B  vYdxido Ew\f$F\h5QWT Z`fQpȡ #"C&W@}@cυ6f5>duErD%5`| +4( ѷmլj|ѻDH!VC$Ԏ'Ncdq9@0a<+c9-qP*N~9Ȫ@$_VY>\Pvk$'Q9!R%av_3GIf`j*I"u)-i= [$Q(+HŝjF@_ 2An((B6G"EwZ VpWE!/w`:9|# iR[1F}xړ1#װKӸpExU4չ]º//g3{ڣk̿sKnD΅Go42ƀx*[8%8Ԅ4& ]\?n=㭸f\ؘ{}~bT s3lccr~l^Σ۠D"ėhGf.Dqg5ZU`h{|mCwM퓳>m ybJA_V9bFSG~:b>= <1i5$CvNHw@V"$xʼ{1A im9ߧG 4qhL)`e($Gw Yjjݕ U\oGW1)PeW=C, #rk]C8s&X#U$ HZyOb˙)2?5 wsu{y{][omAփ$7X Z@s#IA¢ic nEDA`9,VΖOw Dx&v M>(g{"C:{pH=MGWao8灄js9k"d @ݐC4eS.:+KԁG$@(#<Zbq ;QG!axyy DWhWj%qqG#Xbd7Q#Y(R>ޕ;$H1|'AzEЧMzѿtO @쯎j"[Ȟ\GOx؉Ќ&9awrK w2DxuTRMN"uRl1& 9" ݍ L. d0NNzCiɛ.%G'_n0,O`MJ>XQ J+I'g.4 ɩy@n* NN"Dny}Zw\RxHv|-WK 6T%,*-Ch>SNu$Cr5HLδ?ŝ%pb2ڙZ%# Ċ$3) d8 Z@*O3.$d .}P=m/}߅pPiVğIENDB`8Leemm } knD $P,4 DFLT  `owned_ttf_parser-0.25.0/src/convert.rs000064400000000000000000000022121046102023000160670ustar 00000000000000/// Used to perform a cheap conversion to a [`Face`](struct.Face.html) reference. pub trait AsFaceRef { /// Convert to a [`Face`](struct.Face.html) reference. fn as_face_ref(&self) -> &ttf_parser::Face<'_>; } impl AsFaceRef for ttf_parser::Face<'_> { #[inline] fn as_face_ref(&self) -> &ttf_parser::Face<'_> { self } } impl AsFaceRef for &ttf_parser::Face<'_> { #[inline] fn as_face_ref(&self) -> &ttf_parser::Face<'_> { self } } /// Trait exposing mutable operations on a [`ttf_parser::Face`]. pub trait FaceMut { /// Sets a variation axis coordinate. /// /// See [`ttf_parser::Face::set_variation`]. fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()>; } impl FaceMut for ttf_parser::Face<'_> { #[inline] fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()> { ttf_parser::Face::set_variation(self, axis, value) } } impl FaceMut for &mut ttf_parser::Face<'_> { #[inline] fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()> { ttf_parser::Face::set_variation(self, axis, value) } } owned_ttf_parser-0.25.0/src/lib.rs000064400000000000000000000013041046102023000151560ustar 00000000000000//! Extends [ttf_parser](https://docs.rs/ttf-parser) with owned version of //! [`Face`](struct.Face.html): [`OwnedFace`](struct.OwnedFace.html). //! //! Re-exports `ttf_parser::*`. //! //! # Example //! ``` //! use owned_ttf_parser::{AsFaceRef, Face, OwnedFace}; //! //! # let owned_font_data = include_bytes!("../fonts/font.ttf").to_vec(); //! let owned_face = OwnedFace::from_vec(owned_font_data, 0).unwrap(); //! let face_ref: &Face<'_> = owned_face.as_face_ref(); //! //! assert_eq!(face_ref.ascender(), 2254); //! ``` #![cfg_attr(not(feature = "std"), no_std)] extern crate alloc; mod convert; mod owned; mod preparse; pub use convert::*; pub use owned::*; pub use preparse::*; pub use ttf_parser::*; owned_ttf_parser-0.25.0/src/owned.rs000064400000000000000000000123341046102023000155310ustar 00000000000000use crate::preparse::{FaceSubtables, PreParsedSubtables}; #[cfg(not(feature = "std"))] use alloc::{boxed::Box, vec::Vec}; use core::{fmt, marker::PhantomPinned, mem, pin::Pin, slice}; /// An owned version of font [`Face`](struct.Face.html). pub struct OwnedFace(Pin>); impl OwnedFace { /// Creates an `OwnedFace` from owned data. /// /// You can set index for font collections. For simple ttf fonts set index to 0. /// /// # Example /// ``` /// # use owned_ttf_parser::OwnedFace; /// # let owned_font_data = include_bytes!("../fonts/font.ttf").to_vec(); /// let owned_face = OwnedFace::from_vec(owned_font_data, 0).unwrap(); /// ``` // Note: not `try_from_vec` to better mimic `ttf_parser::Face::from_data`. pub fn from_vec(data: Vec, index: u32) -> Result { let inner = SelfRefVecFace::try_from_vec(data, index)?; Ok(Self(inner)) } pub(crate) fn pre_parse_subtables(self) -> PreParsedSubtables<'static, Self> { // build subtables referencing fake static data let subtables = FaceSubtables::from(match self.0.face.as_ref() { Some(f) => f, None => unsafe { core::hint::unreachable_unchecked() }, }); // bundle everything together so self-reference lifetimes hold PreParsedSubtables { face: self, subtables, } } /// Extracts a slice containing the data passed into [`OwnedFace::from_vec`]. /// /// # Example /// ``` /// # use owned_ttf_parser::OwnedFace; /// # let owned_font_data = include_bytes!("../fonts/font.ttf").to_vec(); /// let data_clone = owned_font_data.clone(); /// let owned_face = OwnedFace::from_vec(owned_font_data, 0).unwrap(); /// assert_eq!(owned_face.as_slice(), data_clone); /// ``` pub fn as_slice(&self) -> &[u8] { &self.0.data } /// Unwraps the data passed into [`OwnedFace::from_vec`]. /// /// # Example /// ``` /// # use owned_ttf_parser::OwnedFace; /// # let owned_font_data = include_bytes!("../fonts/font.ttf").to_vec(); /// let data_clone = owned_font_data.clone(); /// let owned_face = OwnedFace::from_vec(owned_font_data, 0).unwrap(); /// assert_eq!(owned_face.into_vec(), data_clone); /// ``` pub fn into_vec(self) -> Vec { self.0.into_vec() } } impl fmt::Debug for OwnedFace { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "OwnedFace()") } } impl crate::convert::AsFaceRef for OwnedFace { #[inline] fn as_face_ref(&self) -> &ttf_parser::Face<'_> { self.0.inner_ref() } } impl crate::convert::AsFaceRef for &OwnedFace { #[inline] fn as_face_ref(&self) -> &ttf_parser::Face<'_> { self.0.inner_ref() } } impl crate::convert::FaceMut for OwnedFace { fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()> { unsafe { let mut_ref = Pin::as_mut(&mut self.0); let mut_inner = mut_ref.get_unchecked_mut(); match mut_inner.face.as_mut() { Some(face) => face.set_variation(axis, value), None => None, } } } } impl crate::convert::FaceMut for &mut OwnedFace { #[inline] fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()> { (*self).set_variation(axis, value) } } // Face data in a `Vec` with a self-referencing `Face`. struct SelfRefVecFace { data: Vec, face: Option>, _pin: PhantomPinned, } impl SelfRefVecFace { /// Creates an underlying face object from owned data. fn try_from_vec( data: Vec, index: u32, ) -> Result>, ttf_parser::FaceParsingError> { let face = Self { data, face: None, _pin: PhantomPinned, }; let mut b = Box::pin(face); unsafe { // 'static lifetime is a lie, this data is owned, it has pseudo-self lifetime. let slice: &'static [u8] = slice::from_raw_parts(b.data.as_ptr(), b.data.len()); let mut_ref: Pin<&mut Self> = Pin::as_mut(&mut b); let mut_inner = mut_ref.get_unchecked_mut(); mut_inner.face = Some(ttf_parser::Face::parse(slice, index)?); } Ok(b) } // Must not leak the fake 'static lifetime that we lied about earlier to the // compiler. Since the lifetime 'a will not outlive our owned data it's // safe to provide Face<'a> #[inline] #[allow(clippy::needless_lifetimes)] // explicit is nice as it's important 'static isn't leaked fn inner_ref<'a>(self: &'a Pin>) -> &'a ttf_parser::Face<'a> { // Safety: if you have a ref `face` is always Some unsafe { self.face.as_ref().unwrap_unchecked() } } fn into_vec(self: Pin>) -> Vec { // Safety: safe as `face` is dropped. let mut me = unsafe { Pin::into_inner_unchecked(self) }; me.face.take(); // ensure dropped before taking `data` mem::take(&mut me.data) } } impl Drop for SelfRefVecFace { fn drop(&mut self) { self.face.take(); // ensure dropped before `data` } } owned_ttf_parser-0.25.0/src/preparse.rs000064400000000000000000000107661046102023000162450ustar 00000000000000//! Logic to avoid re-parsing subtables in ttf_parser::Face methods use crate::{AsFaceRef, FaceMut, OwnedFace}; #[cfg(not(feature = "std"))] use alloc::vec::Vec; use core::fmt; use ttf_parser::{cmap, kern, Face, GlyphId}; /// A `Face` with cmap & kern subtables parsed once on initialization. /// /// Provides much faster [`PreParsedSubtables::glyph_index`] & /// [`PreParsedSubtables::glyphs_hor_kerning`] methods compared to the /// `.as_face_ref()` equivalents that must parse their subtables on each call. /// /// # Example /// ``` /// use owned_ttf_parser::{AsFaceRef, GlyphId, OwnedFace, PreParsedSubtables}; /// /// # let owned_font_data = include_bytes!("../fonts/font.ttf").to_vec(); /// let owned_face = OwnedFace::from_vec(owned_font_data, 0).unwrap(); /// let faster_face = PreParsedSubtables::from(owned_face); /// /// // Lookup a GlyphId using the pre-parsed cmap subtables /// // this is much faster than doing: .as_face_ref().glyph_index('x') /// assert_eq!(faster_face.glyph_index('x'), Some(GlyphId(91))); /// /// // The rest of the methods are still available as normal /// assert_eq!(faster_face.as_face_ref().ascender(), 2254); /// ``` #[derive(Clone)] pub struct PreParsedSubtables<'face, F> { /// Underlying face. pub face: F, // note must not be public as could be self-referencing pub(crate) subtables: FaceSubtables<'face>, } impl<'face> From> for PreParsedSubtables<'face, Face<'face>> { fn from(face: Face<'face>) -> Self { let subtables = FaceSubtables::from(&face); Self { face, subtables } } } impl From for PreParsedSubtables<'static, OwnedFace> { fn from(face: OwnedFace) -> Self { face.pre_parse_subtables() } } impl fmt::Debug for PreParsedSubtables<'_, F> { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "PreParsedSubtables") } } #[derive(Clone)] pub(crate) struct FaceSubtables<'face> { /// Unicode cmap subtables. cmap: Vec>, /// Horizontal kern subtables. h_kern: Vec>, } impl<'face> From<&Face<'face>> for FaceSubtables<'face> { fn from(face: &Face<'face>) -> Self { let cmap = face .tables() .cmap .iter() .flat_map(|cmap| cmap.subtables) .filter(|st| st.is_unicode()) .collect(); let h_kern = face .tables() .kern .iter() .flat_map(|c| c.subtables) .filter(|st| st.horizontal && !st.variable) .collect(); Self { cmap, h_kern } } } impl PreParsedSubtables<'_, F> { /// Maps a character to a `GlyphId` using pre-parsed unicode cmap subtables. #[inline] pub fn glyph_index(&self, c: char) -> Option { self.subtables .cmap .iter() .find_map(|t| t.glyph_index(c.into())) } /// Maps a variation of a character to a `GlyphId` using pre-parsed unicode cmap subtables. #[inline] pub fn glyph_variation_index(&self, c: char, v: char) -> Option { self.subtables .cmap .iter() .find_map(|t| t.glyph_variation_index(c.into(), v.into())) .and_then(|r| match r { cmap::GlyphVariationResult::Found(v) => Some(v), cmap::GlyphVariationResult::UseDefault => self.glyph_index(c), }) } /// Returns horizontal kerning for a pair of glyphs using pre-parsed kern subtables. #[inline] pub fn glyphs_hor_kerning(&self, first: GlyphId, second: GlyphId) -> Option { self.subtables .h_kern .iter() .find_map(|st| st.glyphs_kerning(first, second)) } } impl AsFaceRef for PreParsedSubtables<'_, F> where F: AsFaceRef, { #[inline] fn as_face_ref(&self) -> &ttf_parser::Face<'_> { self.face.as_face_ref() } } impl AsFaceRef for &PreParsedSubtables<'_, F> where F: AsFaceRef, { #[inline] fn as_face_ref(&self) -> &ttf_parser::Face<'_> { (*self).as_face_ref() } } impl FaceMut for PreParsedSubtables<'_, F> where F: FaceMut, { #[inline] fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()> { self.face.set_variation(axis, value) } } impl FaceMut for &mut PreParsedSubtables<'_, F> where F: FaceMut, { #[inline] fn set_variation(&mut self, axis: ttf_parser::Tag, value: f32) -> Option<()> { (*self).set_variation(axis, value) } } owned_ttf_parser-0.25.0/test000075500000000000000000000005251046102023000141640ustar 00000000000000#!/usr/bin/env bash # run CI-like set of tests set -eu dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$dir" echo "==> test" cargo test echo "==> no_std" cargo build --target thumbv6m-none-eabi --no-default-features --features "no-std-float variable-fonts opentype-layout glyph-names" echo "==> rustfmt" cargo fmt -- --check owned_ttf_parser-0.25.0/tests/face_mut.rs000064400000000000000000000012601046102023000165470ustar 00000000000000//! Tests for the FaceMut trait. use owned_ttf_parser::{AsFaceRef, FaceMut, OwnedFace}; const VFONT: &[u8] = include_bytes!("../fonts/Cantarell-VF.otf"); #[test] fn set_variation() { let mut face = OwnedFace::from_vec(VFONT.to_vec(), 0).unwrap(); let axis = face.as_face_ref().variation_axes().get(0).unwrap(); let def_coord = face.as_face_ref().variation_coordinates()[0]; // after setting variation on the owned face it should change let new_value = axis.def_value + 100.0; face.set_variation(axis.tag, new_value) .expect("Should be some"); let coord = face.as_face_ref().variation_coordinates()[0]; assert!(coord.get() > def_coord.get()); }