python3-specfile-0.32.4-1.fc39$>Nc)Tμ>@W?Wd ! W />B Q]GG :G G G G 4GPGG<GX(8+9+:$J+FCGCPGHDlGIEGXEYE\FG]G8G^M=bN2dPePfP lPtP(GuQDGvR`wRGxT GyU(CzV4VDVHVwV}VVCpython3-specfile0.32.41.fc39A library for parsing and manipulating RPM spec files Python library for parsing and manipulating RPM spec files. Main focus is on modifying existing spec files, any change should result in a minimal diff.g .buildvm-x86-11.iad2.fedoraproject.orgFedora ProjectFedora ProjectMITFedora ProjectUnspecifiedhttps://github.com/packit/specfilelinuxnoarch;.\ TGG55  JJ!!ggQQ<<  ~~CCooF[F[_u_u2TJBn7RxF2&X;+FrI)D)"AA큤A큤A큤gjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgjgj1b940bb6e556353793023b99890a7d4f68f9d855967ceda5e61203ce9b9627154694279aa4c5acda089ee81646e986fb6f4bb057bd0e9da1a688168e7b9d43100c78441a10151de299543153d6a87189ac1bf44660efa44ae533f06cdaf06ad2a6472d658cd44b8018567e9d27eef7ebb389662bc5d9ef1103d6ff6418e27f5fa1a859b5379649391697284ec59a72a7676147909e872223acacf42df6be247f58e51b6bf3641e6ba83d80832a1e3c01cf0fc557cd0cc56d763cb0dbe6999de6e2108ffcfc8f4e7cfdefe1078edace984e7c0583d50f41367856c5b51f1f3ff2e2108ffcfc8f4e7cfdefe1078edace984e7c0583d50f41367856c5b51f1f3ff20b515c27a78cc5a567f4b677c1ffbafdd7ee8b462be025e1943e9c629b76c7160b515c27a78cc5a567f4b677c1ffbafdd7ee8b462be025e1943e9c629b76c716eff1df0c6bf476bf0933244c55ff2e35bd003d38bdf6c4dab6434fd6347e19c8eff1df0c6bf476bf0933244c55ff2e35bd003d38bdf6c4dab6434fd6347e19c82543c2d56f2ea46f10480298ac59f90947ddeb4904e54665f472657153cd42502543c2d56f2ea46f10480298ac59f90947ddeb4904e54665f472657153cd42509244b81d5dcc0e9f76dbcf9ec7e33f3f18f7d0f0109eb68f757cd2416ecec0d99244b81d5dcc0e9f76dbcf9ec7e33f3f18f7d0f0109eb68f757cd2416ecec0d9ca4c10856e1a7a1268c31f32dd8afab1a0f78b3d66c93df96d19d6edf3ac6a00ca4c10856e1a7a1268c31f32dd8afab1a0f78b3d66c93df96d19d6edf3ac6a00a7c02803aae54d89580ca03f3022f0217db9181161353f39ed502b6195e7da17a7c02803aae54d89580ca03f3022f0217db9181161353f39ed502b6195e7da1782e26ff903c5f8ba3cd7f35b472dfb35962bea631185dbe5d62e87b08b1bb5cc82e26ff903c5f8ba3cd7f35b472dfb35962bea631185dbe5d62e87b08b1bb5cc55d1e32157cc3b846839adb04b46e4c3e6a2f68298ff97b55691d83d775c068d55d1e32157cc3b846839adb04b46e4c3e6a2f68298ff97b55691d83d775c068d71db19d6a8cd2929882aa45694b2e017717aa021f07c58eb0c56de0b84d3378b71db19d6a8cd2929882aa45694b2e017717aa021f07c58eb0c56de0b84d3378be4162ab2a3e430f03cee4ced146f3bc7a868cad23e815b82848339eb47e57358e4162ab2a3e430f03cee4ced146f3bc7a868cad23e815b82848339eb47e57358cb3dc7b25f89e091cff4dcc172449177d40ced676ece426d763460e9a5bc1d63cb3dc7b25f89e091cff4dcc172449177d40ced676ece426d763460e9a5bc1d63c2968689915eaacf600f95b1b912ba9409e2282fca9908ee54212684eaa0ca67c2968689915eaacf600f95b1b912ba9409e2282fca9908ee54212684eaa0ca67993155e9b002f789638a14da60c74a7de4c39cedc742e14db57875dd0611eb9c993155e9b002f789638a14da60c74a7de4c39cedc742e14db57875dd0611eb9c2ca363bf8d3f54a4dbff3a56247ea1fe1d24df72408997f172fd5086e76c12af2ca363bf8d3f54a4dbff3a56247ea1fe1d24df72408997f172fd5086e76c12afa50d180b972b1725bd38a947994c096e07034e933a479402dc6d8048dccde82ca50d180b972b1725bd38a947994c096e07034e933a479402dc6d8048dccde82ce88726c472fc94d8afd132c26c76cf71491ec1b26dc764d5c031b834fae7ddf1e88726c472fc94d8afd132c26c76cf71491ec1b26dc764d5c031b834fae7ddf153dc36ad529a218b4e97cb8ee65a22f2fd7306f2233a139e67f9d5d78f0d735a53dc36ad529a218b4e97cb8ee65a22f2fd7306f2233a139e67f9d5d78f0d735a372558c2c3db6e00b04fac4b203e3a4886e820b5da315579eb32a07b37841c74372558c2c3db6e00b04fac4b203e3a4886e820b5da315579eb32a07b37841c743b5dd7717173fa4fabcb6519071991071ec87156933734fd70d1bb7b07f9c4813b5dd7717173fa4fabcb6519071991071ec87156933734fd70d1bb7b07f9c4814b5deb339873797b8ab88f07922af6ae3c16ad8729ed09795d10b1d10f0971e29766ad51d52423195c945c79b47f80e4a28c5c480717eca7f6dc871d07eeed44e21b7eedcc8a5f6689175d95a9f9c1ff9ccde86afd95f0414dc6c062707346d6b42ab53ea0d854afab0f635f8f6c9ddc4e3798eed2a76ccaf601587b76f8034ac3938bcec8c2e3bf4e61b9f8218086f6a4fd596bddcb09ff3407f7bab2ccf3a22d08f3a06b2721159e23bef64223b9c0312121874b1f679387395211c1ba9d60ef0c1b59fc8270c495cbc8b92017185bcb36e5b0131ad8f1f78ce430a83477ea63929a3ec2263f12e37f0f15184db1fab69429f9ba523781b46bd6ae86a8bc383a660af2b81aee1932e961acb68f0e0e0f2ec03d1c321df1d7c1392f29b681dde45fe86e763b4605671ac6cfe2a3e1d5b9823f615f1d87b1706980aba600d9d4e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551e4e091f620386cc5ab8c678f27260fb3a11ce84efdee9070fedfb49d5e71e86621d5b308babb24ea68b9ca21186f5f557f4d2f5f765cab708152f135c4437de64badd2a2d1611dd5a27c53d914bccd6e6e6412f524a6b6a6d9ccde8cf9506e1d398a75b75754b78b5f161e52dad8ad04d226ad3c66fb8da7916f1e9a3858db3e5b70c5f5de32f8beada8bf028a8bd97088415dbcda78e2911457fd3c714c3628a1af380d6df0750e21a893f8222a8cbb79efaae580b0a26da70bd5a0c2b801c4317059a7b806d5e3e97dbc11c8bdaf64288583999c2d8f1776ba00e922f2d0eca3532a2c39cfee3795b261959d856459f6c0aa6fa2312b525b75dd524b324d9ccf0987a00fd5cee230ef9ebb837af6d1e08d9319dff326c6aed141aeffbd4f1d5dcefc6d934f98dabc57f6ca2a8bf13b008d3adb233192ef18edc28ceee5974rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython-specfile-0.32.4-1.fc39.src.rpmpython-specfilepython3-specfilepython3.12-specfilepython3.12dist(specfile)python3dist(specfile)@@@     python(abi)python3.12dist(rpm)python3.12dist(typing-extensions)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsZstd)3.123.0.4-14.6.0-14.0.4-14.0-15.4.18-14.19.1.1g @ff@f@fIfU@f&@f|fp%@fe@fO/f@fe@eed@e[J@eH@e?ed@d"dǢ@ds@d@d d7dp@d\dA)@d cU@cױ@cvcʂ@cʂ@c @cc#@cEcocWcIO@Packit - 0.32.4-1Packit - 0.32.3-1Packit - 0.32.2-1Packit - 0.32.1-1Packit - 0.32.0-1Fedora Release Engineering - 0.31.0-2Packit - 0.31.0-1Packit - 0.30.0-1Packit - 0.29.0-1Python Maint - 0.28.3-2Packit - 0.28.3-1Packit - 0.28.2-1Packit - 0.28.1-1Packit - 0.28.0-1Fedora Release Engineering - 0.27.0-2Packit - 0.27.0-1Packit - 0.25.0-1Packit - 0.24.0-1Packit - 0.23.0-1Packit - 0.22.1-1Packit - 0.22.0-1Nikola Forró - 0.21.0-1Packit - 0.20.2-1Fedora Release Engineering - 0.20.0-2Packit - 0.20.0-1Python Maint - 0.19.0-2Packit - 0.19.0-1Packit - 0.18.0-1Packit - 0.17.0-1Packit - 0.16.0-1Packit - 0.15.0-1Packit - 0.14.0-1Packit - 0.13.2-1Packit - 0.13.1-1Fedora Release Engineering - 0.13.0-2Packit - 0.13.0-1Packit - 0.12.0-1Packit - 0.11.1-1Packit - 0.11.0-1Packit - 0.10.0-1Packit - 0.9.1-1Packit - 0.9.0-1Packit - 0.8.0-1- NEVR and NEVRA classes are now hashable (#416)- specfile can now handle multi-line tag values (enclosed in a macro body, e.g. `%shrink`). (#412) - Resolves: rhbz#2299289- Explicitly invalidate the global parse hash when a SpecParser instance is created to prevent this issue. (#409)- Fixed two issues related to condition parsing. (#405)- It is now possible to bump a release in a manner similar to `rpmdev-bumpspec` using `Specfile.bump_release()` method. (#399)- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild- Value of a `Tag` no longer includes trailing whitespace (if any). (#393) - specfile now tries to expand macros before processing conditions to be able to resolve conditional expressions defined by macros, for example OpenSUSE Tumbleweed defines `%ifpython3` macro as `%if "%{python_flavor}" == "python3"`. (#394) - Resolves: rhbz#2294393- Fixed an exception that occured when accessing the `Specfile.has_autochangelog` property while having unparseable lines (e.g. lines ending with unescaped `%`) in `%changelog`. (#387)- Improved compatibility with RPM 4.20 (alpha version is currently in Fedora Rawhide). (#380) - Resolves: rhbz#2282962- Rebuilt for Python 3.13- Fixed several minor issues such as processing seemingly commented-out macro definitions (e.g. `#%global prerel rc1`) and treating `SourceLicense` tag as a source. (#374, #376) - Made `EVR`, `NEVR` and `NEVRA` objects comparable. (#379)- Handling of trailing newlines in the macro defintions has been improved. (#361) - Resolves: rhbz#2271583- We have fixed an issue in `%prep` section processing. For instance, if the `%patches` macro appeared there, it would have been converted to `%patch es`, causing failure when executing `%prep` later. (#356)- A trailing newline is no longer added to spec files without one upon saving. (#353)- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild- Improved handling of commented-out macro definitions and fixed related logic in `Specfile.update_value()`. (#338)- There is a new method, `Specfile.update_version()`, that allows updating spec file version even if it is a pre-release. (#317)- Improved type annotations for `UserList` subclasses. (#299) - Macro definitions gained a new `commented_out` property indicating that a macro definition is commented out. Another new property, `comment_out_style`, determines if it is achieved by using a `%dnl` (discard next line) directive (e.g. `%dnl %global prerelease beta2`) or by replacing the starting `%` with `#` (e.g. `#global prerelease beta2`). (#298)- Sources now have a `valid` property that indicates whether a source is valid in the current context, meaning it is not present in a false branch of any condition. (#295)- Removed dependency on setuptools-scm-git-archive. (#290)- Macro definitions and tags gained a new `valid` attribute. A macro definition/tag is considered valid if it doesn't appear in a false branch of any condition appearing in the spec file. (#276)- `specfile` no longer tracebacks when some sources are missing and can't be _emulated_. In such case the spec file is parsed without them at the cost of `%setup` and `%patch` macros potentially expanding differently than with the sources present. (#271) - Specfile's license in RPM spec file is now confirmed to be SPDX compatible. (#269)- Fixed Packit config to work properly with `propose-downstream` and `pull-from-upstream` jobs. (#261)- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild- Fixed infinite loop when removing macros with `%` in the name. (#244) - Added a possibility to undefine system macros by setting a macro value to `None` in the `macros` argument of the `Specfile` constructor. (#244) - Fixed a bug in processing options of `%prep` macros. For instance, when a quoted string appeared inside an expression expansion, it could lead to improper parsing, rendering the spec file invalid after accessing the options. (#253)- Rebuilt for Python 3.12- Parsing has been optimized so that even spec files with hundreds of thousands of lines can be processed in reasonable time. (#240)- Specfile library now handles multiple `%changelog` sections. (#230)- Added a new `guess_packager()` function that uses similar heuristics as `rpmdev-packager`, meaning that the `Specfile.add_changelog_entry()` method no longer requires `rpmdev-packager` to guess the changelog entry author. (#220) - The `Specfile.add_changelog_entry()` method now uses dates based on UTC instead of the local timezone. (#223)- Added `Specfile.has_autorelease` property to detect if a spec file uses the `%autorelease` macro. (#221)- Parsing the spec file by RPM is now performed only if really necessary, greatly improving performance in certain scenarios. (#212) - Checked that license is a valid SPDX license.- Fixed a bug that broke parsing in case spec file contained conditionalized macro definitions or similar constructs. (#209) - Specfile no longer depends on rpm-py-installer, it now depends directly on rpm. (#207)- Fixed infinite loop that occured when section options were followed by whitespace. (#197)- Fixed a bug in section parsing that caused sections to be ignored when there were macro definitions spread across the spec file and not cumulated at the top. (#191)- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild- Added `Section.options` attribute for convenient manipulation of section options. (#183) - specfile now supports single-line sections where section content is represented by a macro starting with a newline. (#182) - Added `evr` argument to `Specfile.add_changelog_entry()`. This allows adding a changelog entry with an EVR value that's different from the current specfile's value. This makes it easier to reconstruct a specfile's `%changelog` based on another source using the higher level interface. (#181)- All classes including `Specfile` itself can now be copied using the standard `copy()` and `deepcopy()` functions from `copy` module. (#176) - `Section.name` attribute has been renamed to a more fitting `Section.id`. (#167) - `setup.cfg` now uses `license_files` instead of deprecated `license_file`. (#162)- Tags enclosed in conditional macro expansions are not ignored anymore. (#156) - Fixed context managers being shared between Specfile instances. (#157)- Context managers (`Specfile.sections()`, `Specfile.tags()` etc.) can now be nested and combined together (with one exception - `Specfile.macro_definitions()`), and it is also possible to use tag properties (e.g. `Specfile.version`, `Specfile.license`) inside them. It is also possible to access the data directly, avoiding the `with` statement, by using the `content` property (e.g. `Specfile.tags().content`), but be aware that no modifications done to such data will be preserved. You must use `with` to make changes. (#153)- Fixed an issue that caused empty lines originally inside changelog entries to appear at the end. (#140) - Renamed the `ignore_missing_includes` option to a more general `force_parse`. If specified, it allows to attempt to parse the spec file even if one or more sources required to be present at parsing time are not available. Such sources include sources referenced from shell expansions in tag values and sources included using the `%include` directive. (#137)- `specfile` now supports localized tags (e.g. `Summary(fr)`) and tags with qualifiers (e.g. `Requires(post)`). It also follows more closely rpm parsing logic and doesn't fail on invalid section names. (#132)- Added utility classes for working with (N)EVR. (#113) - Fixed an issue with multiple instances of `Specfile` not expanding macros in the right context. (#117)- Added `Specfile.update_tag()` method that allows updating tag values while trying to preserve macro expansions. You can watch a demo on [YouTube](https://youtu.be/yzMfBPdFXZY). (#101)buildvm-x86-11.iad2.fedoraproject.org 1728654876  ""$$&&((**,,..0023456789:;<=>?@ABCDEFG0.32.4-1.fc390.32.4-1.fc390.32.4-1.fc390.32.40.32.4specfilespecfile-0.32.4.dist-infoINSTALLERLICENSEMETADATAWHEELtop_level.txt__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycchangelog.cpython-312.opt-1.pycchangelog.cpython-312.pycconditions.cpython-312.opt-1.pycconditions.cpython-312.pycconstants.cpython-312.opt-1.pycconstants.cpython-312.pyccontext_management.cpython-312.opt-1.pyccontext_management.cpython-312.pycexceptions.cpython-312.opt-1.pycexceptions.cpython-312.pycformatter.cpython-312.opt-1.pycformatter.cpython-312.pycmacro_definitions.cpython-312.opt-1.pycmacro_definitions.cpython-312.pycmacros.cpython-312.opt-1.pycmacros.cpython-312.pycoptions.cpython-312.opt-1.pycoptions.cpython-312.pycprep.cpython-312.opt-1.pycprep.cpython-312.pycsections.cpython-312.opt-1.pycsections.cpython-312.pycsourcelist.cpython-312.opt-1.pycsourcelist.cpython-312.pycsources.cpython-312.opt-1.pycsources.cpython-312.pycspec_parser.cpython-312.opt-1.pycspec_parser.cpython-312.pycspecfile.cpython-312.opt-1.pycspecfile.cpython-312.pyctags.cpython-312.opt-1.pyctags.cpython-312.pyctypes.cpython-312.opt-1.pyctypes.cpython-312.pycutils.cpython-312.opt-1.pycutils.cpython-312.pycvalue_parser.cpython-312.opt-1.pycvalue_parser.cpython-312.pycchangelog.pyconditions.pyconstants.pycontext_management.pyexceptions.pyformatter.pymacro_definitions.pymacros.pyoptions.pyprep.pypy.typedsections.pysourcelist.pysources.pyspec_parser.pyspecfile.pytags.pytypes.pyutils.pyvalue_parser.pypython3-specfileREADME.md/usr/lib/python3.12/site-packages//usr/lib/python3.12/site-packages/specfile-0.32.4.dist-info//usr/lib/python3.12/site-packages/specfile//usr/lib/python3.12/site-packages/specfile/__pycache__//usr/share/doc//usr/share/doc/python3-specfile/-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wno-complain-wrong-lang -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointerdrpmzstd19noarch-redhat-linux-gnudirectoryASCII textPython script, Unicode text, UTF-8 text executable, with very long lines (505)Python script, ASCII text executableempty  !"#$%&'()*+,-./0123456789:;<=>?@ABPPPPRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRm>?[@&>, https://bugz.fedoraproject.org/python-specfileutf-88a3cd6b6822011c730d760dae801fd8958dec280009c4a2752d95f1be7c3484681df5142dd0532d65bcf66099add134a63fd9f709894d0e70b33a73df63ae181?(/hA~#0j"KT~f(!\ytGRҗ:9PMLR>Ha!>y6݅Tǿ9FOIRgU"\7OB@36 7$XIK6*n%&X W.y! bQ: 8:ЄC22B+L [<9R2U2J 2aGSeȖ8N5lTdnYRˀ7̨V'#` 놲fk< PEwP@TAIݪs#VիlAN6PQ1^DSʂlЉIi!\stObhH{&3n&=`׮]jJ >a0p` =]xi4]0C\xSx/'=Uur{/x {i6F{q"b{؅xO{Zo{4>t hve lq  uiuM [4!|&|%(TL'Pdޛ=b^3kq?N㎙TO_rZIzq^i+5_{{?wCy)~B1p^M鬳o1ŗG8yz2eR!_T8;Vʻ{^Ov G 98-`DGE );mJrrOb%KĦnnT&Z|Á&U)T$ 0hP1JOУE K5 8D;8#K\e  d$V5O{dJ1+Sٕyl3BA8mkA4u#,r` 6KD B"օ'1~줼%MKqSqaK D䙎v]gVlPcdmIKɝ1ؖ!H?-1~i 8wv c3rܝGN Pǟ==YR<^k}-/ci1={ ϖ={yc>Ch%۩u;Sav̵R^ξ.+PgO+2<WO#g8}<1ں-:}ۨ+{i՜ݣ3vu:S-coSew;=7ڭ[feUg Tr\=[,syWmiSo\vO5VƸm:O.uuv/QӮk,iĿXo-UoQKYΒ=Zoڧ;?rylj-⺹֖,kΧ[5}R짏nj8SͶB+F/aP1Wa;9j;5{x{J^Σm3ˍSq{zb/[_SΎL#C:Y0 `W8^fm.(6kBzI_7_ 1iJy5޽1ZTZʗw㖻y^[LpGd+RKpyAJP C*n{V$y"8p8 RVc1GW,K;Mzv]ž h򋐷%c#^-@0|6=D$ФK":U~G/! 5 !l+hpx\e=V)1p }-tqX*[D)?%zXd VZXXgŗBƏ3i#-c.&+1,L`a`)ߠj:W"bg?ae YUM8@ 1:AFfws-z5 }(Ɏ4D199N&biys#cѐqi? l&uM3%[P<8BWNFm~$X9-3\?ˬsK£7,i:zMO1hg }2 5"; <c6SlaUuݵJK { Ng,Ot+Lf$䘃5bK*8aM;=cm}k&t\:L5ZGMvtY_z(.YůUXI=^0^',#φ/+ IYWޝH<Zf]iab\g IP} :N#&>j udb60_-W!yi,`m}; Bʩh ʿ6L߽-tFIћZLTD񡠚߉7,* Utn8~.%L2@oeO|Y@d#MevJBD3\ miG JbpÓ7HeF%j]3W%!t{jT;ȦeyC9֦L@ؖW; >S8Csiξk׻-V!|v=j(˸ ;L$yR#6w ؀EbL#ߵuj۹1Vt?O BD'?~0}S 9\1f&4@Q^lGQ%0 QԱ1{l^0 h-[&N7n>ԽqIYxHw4lq Djkp=Ֆ:+Q=V8f*K&ZF1Q(oӖC(24R[{Ea4JݻM\Bkkyu2}E2۵mB*B!rOS^nb%}3sڟsM2yD8PI/k鹅V?^1/ 5|HE#^=(EV }!qdlTnNCKuYІ1u @27vuhp`La6OBbs|sBZ=}~ݶG&6V)lcKzSL>d@{,vF)*ꦮt?Z6T0t-BFS U%-gol[9;EP-\_vC~I Kk i0sgDAE4ro_qvk%w:pto⻟XOl SXh<en#wO_Nʟxp+r][_g6@E)OZ/t4Ju Ͼ8D*g`?j ku蔛I+%?DI%|m(Y;)pSӜM=t /Υw\n Z0ԅ=a؉R%}[i$<8+YGg$|Bj<@&w1AK/h`y>&2Vsqu`'W#%*i8z#e #!s;H^2^g{C&#Oc.=;kVhZи3|IS 9tGYC!v[62 ]J~oJ;rf IE NOy>/3hcKQe րh  DPP#ɛEQϲ=Tmά7Tڨ[qēj+ }ns\ 7-9|]<ǔ?j3) #w=z{tW3gu8oj]ϥM6th,[Js/d)jCW̱^óGX{X'&7IM49%Fzw{lEiܢ(|I^tDe5^; uR7@%hc~1;<ŊwV;&X,_̩.A!@)NZ_Ģ]f,8 ;*<-rRP@ @ hJ tiK*l,nS-4q'91M򬉂}m =X:)@Ɗ veh7GSXu6>ByB9`0}nEi}X-L;pz;͟C}z[`Mj>>܎(*nNFGQisnHh~԰"5M$ZNl*I8qܜLd!"s"$ONmŲ1y7J&@viSsh4d2(4qOeNH :/h\&z̽ ҭ!8mL&FCK@$<~ Os8fdcf %|4dPKARjň+ƝFC0 |BbJBY Dr,6H=L|3˝nn :ot6rH18qy&R p 5Ab<3#Çakw!eAv@r_Fq9>AMta ڛK!/)X$k=Q^DEj$pzcw.H஛:Yad@>ݘucXOg26$Tx?+\!l?e=VΈNwamK{v9Oc 0zrrhӜaf4,Qc~v{N1qFb cq.Eg0ݩ>hމ1( Aŧd DC;jze01I9|fOvJ:F:w!0' MlaQA It4$d> v[ꈦji8obGXl7 wx 4D#fB2 Mc52taFI`"YriSPPmW|~uU ʹjJf+w7~:? --=[z{\sOynuW vN]oW=Hg~Zws:;ts fZιXL讶sQ5 sAFm~8"g` VCG !!DdL`VI\ix)f+IINV#_hn[G ZQ#Frӱݒj49T4aog1/ֆˬ X`I+ƀ-xd $@,"bf#Þ-Ԗ!NJ2LX2j4Űf*žFd\*D36 IRpTba-"&QE0  ی%>Y8.=[Ϣj߃û=|=yʇnyπ/2wQ.~G*ѳۡ懶f`9iEe7'Fe29z;v5rgh]qG\?ssR}tU^g=76Nɘ+[^S'h>!"xP;:6>%<-S*6ȸq\<-ƃw=\T?Ҟ |^?N`U7+*(D*IIFxHC.l)}BeHOK]|)JN|㊀3+2'-%,,|mz! '{9Į:e:L2CMBAW,p*#G=Z@R6OLnD cýbG1/)Ix !}PRM-F4gfX0970KwN+<Zr Eq?5A35 S3mpFoZ6X09%ch|cz3;H`/V $~ d! BZh91AY&SY9k)]_ y^R:s2mv4"50О xAf!4DM aƓOS04mF4􆞍C5锧Xo@=F~S9`r+]+pƃR/8i 7!\*]&Nf؝Zlv˦ɻjUA fK!QA!a_%ٕQ-(b(!dt8X+*aJ=h[D H.M42ROܷůtPs*FҦO=]4[hUORD5*ӪCaIeE2B"%lfA!m +RI$kؖDpU,VL`LV2YY9FS 1[T)"Zb*lHS`Y&IL1*H ` R˜ГK, ЊCJd1$B T b` ݆4Y"\%%0Yu/I , S \RB 0,K0@)%2X(RKbI,BʀRIL S !"2{!H,](H (B2J$H`)S  PxQE0"Ux PS>QQJ"\@["dB*DB0RB4!d$.bDEP ITCڈX cD w*L@"f,!}]6IFm1Rm J E`U 'WXNI8 :N̗21]t,ɑ1IfoZ`uWCa8_\!PfTVϋ&4J:kTF҇%;>~4 c^"Qmpv6gfS(J i09RAJGI0a_QĔqb1# 9uWqYeV*PCefhӇڲ\Uk]M∂6hh,4Mmmz<>rRRFbP$7@u@d5EyW\wLŘHtJ2lO7c,C:Y ;^qo3 d5!a ʪ*VזiUa~CH">Xpe(+ut{GYc M~Wd/$X˰ɂBY$OZL KC`XэpX qꃣfaY*{&(n)D V]ܞ/xYY|pyo?T+68 iPnfc0}:@%kteegVQ8gf4Sj QF +V(#q'GQQ{IM92EοqM 5}|<87C9[IJu0=ڂ *PDmRˑ{g0jCsb6+0گ޷rޣSs[3moqeOlبR#DZ-AhɺB \t!ɨkqj v{Ӵ&)q=QC4*Rv%½!ʛ@'8k:3 :qɛs!2a<*qn}2KuiCW+Wc+!+,dBkLP ,L,_v1% ;0nuLncP, ?Pa,*n3qV`Vd{+}"9 p=X.̗h#BlU1 ]_uUM-FγFm 2dE. uUwhDx@|%=;>yBG#RV_N(KjZ3DV_2 U&ZԾ$DWVW1K@L ̲uL!ق0*ؔҨ)7060{*K}b$fqyLSy}5M1yVU5x(zV8V`dbB_}o2D)W0zؠi`sMVuX_ߪN3mտ (ݐᙃ}LG'@17"<0ɿfUC},(\B@ȃ1T,فɼad> 'j=Ug( {UX0+Z`<<3)3C(s֠9uS=t|"p蜚Ύ[c+|0Xi&䶯0j:tDҹa:ZN+. R*q5ֈYS,G*.%Bआ["H z9a)SxVe t򣩚s*C|P}Myӆ\.N4zOJy=πStR؍Ls nWtJb&.h9e6V DE>[cF\WbmRz BQbsT;%R{Lhq )X  x Fso }]j=Vuo6Ie&,6™ˬ.̂ AKݧFBE0))[MB!+}-ܑN$Z@, count_brackets渁#"A$)PIdb%|5?%_wI]o.5ޠ@Xh~bkoIЬ7;=Z9w/#tźŧWL~ѷ )7l8ݝsbN]bL'bv igeY֑~[wA/~%Xz6(u7uhԙ7N,=LctDpg"_{q'`ܱ}2xqsF>ڪ611&ܘod-q颩DmvL-~GmsQnjY5W ]hڛ$G`2 >7;-ERe\t1M @P_20ӃO0pΧ{T )6hmQ3D>GMSRTSA ^g4Im(wϲG0rz9FQ;Q;tT`/k~ wzp]RÍ:T~ilFi}ڞiuڜie׾/۞Pq͉A}swZcuڦjyf:sG";~sL,xY7qXPV+;9qB?eJ;~4w:_:n8ֱ]F˵iOp+y1h򕾞gH=YqIsUjrYԴF.ej.XȣRX:Z}=9j~;EK u.%wfdJ? \̏EjNԞۻD-֨;-1E-r8ƥ鰸6:참 Efƃ{46JP2,zÀ!PדPF M5>VN|$H]PW9}$I_9a[LlxbވOZL0hqpdqL1JЮ11u.z2_ɂ6.kA!o, dK| xGf,u\sxa6[W^dA&2yBGF#$2RWy0l}k쪙-`7@18.cPhv492پ|3 [% pt 3g:ާNt3x1hː3lHDk^x!1dsG]Q4Mcͬ{J5_(2A0Wⴝ@^.ʹ3z)g)w!͂04,PK@&qC{MC<8/5P.15}]+Ag.IZ!ZϮ*އKuxn77,J6I }-/b1J p "EC<x溈q`+( )e?*`x o,-"7ZdymdVK#A%3'+Y P_.h4\j:z@'lZٕ'%E?iA[f8-1ñwEg`\_XƮ;Hߨg 0>qn=VCǤ^nT$Rw^A(3&l%y4i}9ɨ8/\L8#&omkM0VIIQL`C fr*#JKhrL,Ot!jXm\BI;ל`[I1*Y"R`6p/I`n/ulɺc8^]Я3u()S Yy }:/`r{t] x o4P̨@̌$IaBh> Hb 2"$)ve ԟZOq]5'S2ڢ͟=MY s<D5UWՈQCv;ުZC<2[DHcJ>'Z -Z!Ag9S5 w|ZBn{\۠AneN⼢oطwXH 亱ƺuaJGN2bM1Gul4\ӨN{b6<v!L`6 ʳat{e .oWx plue~v㧄4Tꥴx8PV+Moc4&er2(B{k„Ť$&]xOxDOrF$@lSr/$$=$TM6T)`6`ddċuEj`U|e37Nc, )IkӒYmj3`C,\I+x> k¾3Ac(n=:7I QȉPw=@ŘR,:1S:`p顭xS:Q2P%U) Nc9Ll$X[)!}ֽ4Qhi1y0s0RJ IֺM3㎣㡮 O'l,֚&971O$zzv20Is9{-\NߠdsѐI5Dc"J%i'q&[%J&+^YE`c. eH , QzC| ql5LX0Uf@d Lo&4CAD Nb?f d`B Ԑ9 8'7cFVA-1>J* n(]`L