From 776fd955ed441802699c6cdca0a7e6cc3e620049 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Kawala?= Date: Mon, 27 Jan 2020 20:53:25 +0100 Subject: [PATCH] OCA guidelines. --- pos_barcode_tare/README.rst | 94 ++++ pos_barcode_tare/__init__.py | 3 +- pos_barcode_tare/__openerp__.py | 41 +- pos_barcode_tare/models/__init__.py | 1 + pos_barcode_tare/models/pos_config.py | 8 + pos_barcode_tare/readme/CONTRIBUTORS.rst | 2 + pos_barcode_tare/readme/DESCRIPTION.rst | 12 + pos_barcode_tare/readme/USAGE.rst | 1 + pos_barcode_tare/static/description/icon.png | Bin 91872 -> 9455 bytes .../static/description/index.html | 443 ++++++++++++++++++ .../{tare_screen.css => pos_barcode_tare.css} | 24 +- pos_barcode_tare/static/src/js/barcode.js | 36 -- .../static/src/js/open_tare_screen_button.js | 20 - .../static/src/js/pos_barcode_tare.js | 199 ++++++++ pos_barcode_tare/static/src/js/tare_screen.js | 139 ------ .../src/xml/open_tare_screen_button.xml | 9 - .../{tare_screen.xml => pos_barcode_tare.xml} | 21 +- pos_barcode_tare/views/pos_barcode_tare.xml | 8 + pos_barcode_tare/views/pos_config_view.xml | 16 + pos_barcode_tare/views/templates.xml | 12 - 20 files changed, 829 insertions(+), 260 deletions(-) create mode 100644 pos_barcode_tare/README.rst create mode 100644 pos_barcode_tare/models/__init__.py create mode 100644 pos_barcode_tare/models/pos_config.py create mode 100644 pos_barcode_tare/readme/CONTRIBUTORS.rst create mode 100644 pos_barcode_tare/readme/DESCRIPTION.rst create mode 100644 pos_barcode_tare/readme/USAGE.rst create mode 100644 pos_barcode_tare/static/description/index.html rename pos_barcode_tare/static/src/css/{tare_screen.css => pos_barcode_tare.css} (87%) delete mode 100644 pos_barcode_tare/static/src/js/barcode.js delete mode 100644 pos_barcode_tare/static/src/js/open_tare_screen_button.js create mode 100644 pos_barcode_tare/static/src/js/pos_barcode_tare.js delete mode 100644 pos_barcode_tare/static/src/js/tare_screen.js delete mode 100644 pos_barcode_tare/static/src/xml/open_tare_screen_button.xml rename pos_barcode_tare/static/src/xml/{tare_screen.xml => pos_barcode_tare.xml} (69%) create mode 100644 pos_barcode_tare/views/pos_barcode_tare.xml create mode 100644 pos_barcode_tare/views/pos_config_view.xml delete mode 100644 pos_barcode_tare/views/templates.xml diff --git a/pos_barcode_tare/README.rst b/pos_barcode_tare/README.rst new file mode 100644 index 00000000..289f1c55 --- /dev/null +++ b/pos_barcode_tare/README.rst @@ -0,0 +1,94 @@ +==================================================== +Point of Sale - Tare barecode labels for loose goods +==================================================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fpos-lightgray.png?logo=github + :target: https://github.com/OCA/pos/tree/9.0/pos_barcode_tare + :alt: OCA/pos +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/pos-9-0/pos-9-0-pos_barcode_tare + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/184/9.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This add-on enable POS to read and print tare barcodes. A tare barcode is used to sell loose goods in a bring your own +container (BYOC) scheme. + +The BYOC scheme has four steps: + 1. The cashier weights the container and sticks the tare bar code onto the customer's container. + 2. The customer takes the desired quantity of the good s-he wants to buy. + 3. The cashier weights the filled container and good, POS gives the corresponding price. + 4. The cashier scans the tare bar code, POS removes the container's weight from the latest product of the order. + +This add-on adds a news screen to POS to (web) print the tare barcode labels. This add-on enables POS to read a tare +barecode. When such a barcode is read, POS adjusts the weight of the latest article in the order list. +The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight +change. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Install this add-on and configure the point of sale where you want to be able to use the tare barecode. +You can also select the label format in the point of sale configuration. The label printing is done using +web print. To streamline the label printing it is advised to use the silent printing mode (firefox) or +the kiosk printing (chrome). + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Le Nid + +Contributors +~~~~~~~~~~~~ + +- Le Nid +- CoopITEasy + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/pos `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/pos_barcode_tare/__init__.py b/pos_barcode_tare/__init__.py index 7c68785e..f5ba686b 100644 --- a/pos_barcode_tare/__init__.py +++ b/pos_barcode_tare/__init__.py @@ -1 +1,2 @@ -# -*- coding: utf-8 -*- \ No newline at end of file +# -*- coding: utf-8 -*- +from . import models \ No newline at end of file diff --git a/pos_barcode_tare/__openerp__.py b/pos_barcode_tare/__openerp__.py index fe92aeca..84dd548b 100644 --- a/pos_barcode_tare/__openerp__.py +++ b/pos_barcode_tare/__openerp__.py @@ -1,36 +1,21 @@ # -*- coding: utf-8 -*- +# @author: François Kawala +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { - 'name': "pos_barecode_tare", - - 'summary': """ - Allows to scan a barcode to tare the latest product. - """, - - 'description': """ - This add-on enable POS to read and print tare bar codes. A tare bar code is used to sell unpackaged goods in a - BYOC (bring your own container) scheme. This scheme has four steps: - 1. The cashier weights the container and sticks the tare bar code onto the customer's container. - 2. The customer takes the desired quantity of whatever good s-he wants. - 3. The cashier weights the filled container and good, POS gives the corresponding price. - 4. The cashier scans the tare bar code, POS removes the container's weight from the latest product of the order. - """, - - 'author': "Le Nid", - 'website': "http://www.lenid.ch", - + 'name': "Point of Sale - Tare barecode labels for loose goods", + 'version': '9.0.0.0.1', 'category': 'Point of Sale', - 'version': '0.1', - - # any module necessary for this one to work correctly + 'summary': 'Point of Sale - Print and scan tare barecodes labels to sell loose goods.', + 'author': "Le Nid, Odoo Community Association (OCA)", + 'website': "https://github.com/OCA/pos", + 'license': 'AGPL-3', 'depends': ['point_of_sale'], - - # always loaded 'data': [ - 'views/templates.xml', + 'views/pos_config_view.xml', + 'views/pos_barcode_tare.xml', ], 'qweb': [ - 'static/src/xml/tare_screen.xml', - 'static/src/xml/open_tare_screen_button.xml', - + 'static/src/xml/pos_barcode_tare.xml', ], -} + 'installable': True, +} \ No newline at end of file diff --git a/pos_barcode_tare/models/__init__.py b/pos_barcode_tare/models/__init__.py new file mode 100644 index 00000000..f7dd4ebc --- /dev/null +++ b/pos_barcode_tare/models/__init__.py @@ -0,0 +1 @@ +from . import pos_config \ No newline at end of file diff --git a/pos_barcode_tare/models/pos_config.py b/pos_barcode_tare/models/pos_config.py new file mode 100644 index 00000000..ba7e0500 --- /dev/null +++ b/pos_barcode_tare/models/pos_config.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- + +from openerp import models, fields + + +class PosConfig(models.Model): + _inherit = 'pos.config' + tare_label_button = fields.Boolean('Show tare label button', help="Print tare labels with this POS") diff --git a/pos_barcode_tare/readme/CONTRIBUTORS.rst b/pos_barcode_tare/readme/CONTRIBUTORS.rst new file mode 100644 index 00000000..250f9dd1 --- /dev/null +++ b/pos_barcode_tare/readme/CONTRIBUTORS.rst @@ -0,0 +1,2 @@ +- Le Nid +- CoopITEasy diff --git a/pos_barcode_tare/readme/DESCRIPTION.rst b/pos_barcode_tare/readme/DESCRIPTION.rst new file mode 100644 index 00000000..bf20ae90 --- /dev/null +++ b/pos_barcode_tare/readme/DESCRIPTION.rst @@ -0,0 +1,12 @@ +This add-on enable POS to read and print tare barcodes. A tare barcode is used to sell loose goods in a bring your own container (BYOC) scheme. + +The BYOC scheme has four steps: + 1. The cashier weights the container and sticks the tare bar code onto the customer's container. + 2. The customer takes the desired quantity of the good s-he wants to buy. + 3. The cashier weights the filled container and good, POS gives the corresponding price. + 4. The cashier scans the tare bar code, POS removes the container's weight from the latest product of the order. + +This add-on adds a news screen to POS to (web) print the tare barcode labels. This add-on enables POS to read a tare +barecode. When such a barcode is read, POS adjusts the weight of the latest article in the order list. +The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight +change. diff --git a/pos_barcode_tare/readme/USAGE.rst b/pos_barcode_tare/readme/USAGE.rst new file mode 100644 index 00000000..df35dfd6 --- /dev/null +++ b/pos_barcode_tare/readme/USAGE.rst @@ -0,0 +1 @@ +Install this add-on and configure the point of sale where you want to be able to use the tare barecode. You can also select the label format in the point of sale configuration. The label printing is done using web print. To streamline the label printing it is advised to use the silent printing mode (firefox) or the kiosk printing (chrome). diff --git a/pos_barcode_tare/static/description/icon.png b/pos_barcode_tare/static/description/icon.png index 3e885187ba4d930e30e2d5ea3041bbad0866999e..3a0328b516c4980e8e44cdb63fd945757ddd132d 100644 GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 91872 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�X-9)tma%7}Yq({w{{W+t-Lm`V?aS={^! zFES|-0jqw&?QoU}{8binaV`TH>m&Qc<031^Qs}AD27i@*fV)zFPO)tS3l4jJ&Lf>D zc+&vTAx9Fx9AFaQuP#IA(mv!{H`~xq|hHKyE(12wtn+ zuVj`4cQ9}Wk$US*;uC;6AxXNAO85{Yu}!7b%dK(l6Rb!lORbb`;PsMkKASU3Xg9^{S5CI&TO=f0Q z_aoqN!f#T^}LK^8;s+l@aOh@)XCMped3)5?O!z8HPQ$(e+ z;i3Ttr~pi)Cxy6eJ#dHIHLE9cAqKytiX>HDzaKL-Q3;FikB(Xuxa4H9B*^R#H@BI3}zKJ*#7~l>6^fnS1(q>I?^Fp=l4)BbxORHvPpn`CCp&U<^L1Li8_&qfl zkvm|kQc~pzozVir*Ii4DZ!yT$Bzxnp5G=8fX>~ck$T^QFj35h|R?H-zyZ|BxUGSVH zP>zHQNFEonjKps7yAQ^noCv{nrU0LE{Pz)<#rD%k$tA&b?-&?aE40|Y+<(pujaMz4 zARI_?38?%|^(4FjVK0EY@6 zR1CH~6o^*@ilPjZ4#Bjwj6HL%iy^LCl91t7PL~kQ0msM&jRG>6scEhEoU3Nddowc~ z>gmnKny#H~J;ZPrIj1*}IRec|US-Gq{oIQO1canlwT$3(*qbxb5+Xp;a)?eI2xU|5 zVh!_aT}c{q%`&XZ(wRi=gu}`e&K9UyJQ|z~dgy zFg!MKX?2L_s14msqgNI0{UmmsxYNCA8StW>Avoaa`vU<|Dqr_m^0@HOoJjG1dg(G& zNLjIebDF%pE8I#Y$Ydm1aC1|mnNky2EJBJ~pPB5>)yDTg49_leoQ!FM4B+P1E4?mme$rh@!h5x5h=!88Iy^=x^T%)8j%rm-4C{nDbg^YyLvA4+JW1H zZli41^{QK(AoIXnxDl^lv9&f|4gsX6!j-)Tk8fV}?$WS%AaYI(y0&f0iI;4?fBfV` z<)`=peU60zU1oB!1dI{37g^xbGhU>@G#5sH2(pd57*WrVZSrsp;POlE31&hW^7k%< z4-}XLLJ{Ej-d%XzT{iSaK>eC8vNb=ju*gVopSUszSE8hX=fYrQIuEkOr9-MGWz-N7 zHn-U{?ohy{YfZNQn46`}mWm*f81clpjhkBa;P^2Cx7ki9UkdM9BH~HG{JQ+{NcsBi zE03jL8CiMNQls_qDi>&gdpPmH?`c9CiVeO< zk$;{R=Z}YD!ffft$O!BBteeCL%ribUNG~rJ>XNZhu&@x$(Jp%wsj zuVt-8mwykI|L%S}0L@I3W?epX`CB?7vz7~Ej?ToC8f=Y%_rfhzB#mFb@NQMYjux6in?V`T)t(I@vBW z_j>yJzMY?^d18<*apB#-z&`S)u4#bZm9#FD;L3qPr9duYgSEIY1q|}sk*LU#C9W_4p66i zwl%M_KOv^TMvGePqq^&0o$M?uy21q|2BH!K5p_#Cmmn>2?X-Ast=0_2jE zp_~Q|jb&jj^kp)5PDnu{3(bbjg^+IXwfle%qpO!ve6b)4GR^b$t&oqw48z?&>!_pK zc0D{01XuacmU(U0Qb%+oHJGh;6iTNM>}`FcqU z&Aw^ycD_FwgJ}MF2e(N@;5GByyQ-K+|xwn8k z>Vec<4xza)&z+|82c6;4k1PmqO_PhMj+z%6?8n^yIp^`~@0r00&>}xq15n`ek2Y3j z(jfi2Z(@=XR+HOUVw3XV;B~DM?b0ES*qxQ#@g`{vcS0TO5}~9lm$*kgB1PhJ4^THt zW8sPrRDa(<&#L=dSP%HOh)MS_3e9La=iXbo{DVBQP__yB^PG712{-SRLe|WTj7Fz> zS+t?7aHE~A=;rkCrv~QW;BTSN>HGS^j08AVg)f#j-cW_^8N@v(vdqUT^6tz zWp1;!2R1hGJD%tzB#Jq}r?6?LYCpaG$w?s#_Nk5U07*Lyd#}RjpGWlKJTc0s++wPG zu?Mc`LR{Oe&joBL4`iy=eg>9L#AJa+!w-{XOO*1m9c3l2$+R$R`yAyKV*}uY^2vm! zS83mSA7V5=ig-vr7K^1{9Uvqnx@Td&nN1~UW!^y}kLqj`nD)&qRox-o;msi;#K=H2 z#;C$AFMyu#x>^}2vXQW)3!zAe*&1A%H?yqu+l2xwL%3ckpkZ{N!Zi^t?70d$i2EZ* z)gL?_KMZG{MvXa%l` zT4(tyRdCT+jIe9T9}_aAA8yqQwfiIH>Co4P$nn2HhitxoV>p)Z6hr!ck8kxK2w+ec@Pu2VFmM=i>2$ zIXauqB5shuFwS=(M^!8SkWuZluG_nPRE+6fVtMBe$g$ERZrFZQNOaI3`xGSP&{HoViRzvuNsp9>si34 zU+W*g4_DZ!Iy)DOu&W%Sm76RAIMrNoU6j1kHSpnwe3#%&WAwnNd7OT^@^~zn@4a;% z7r64m&rKwkqsZyYQM^UtD>E<-_<7D_sS@n5GX2hLXwvEHtq7Awdq%J?4d9P>;`d0L zLLArH&5%(`xR2-zkNMk}n3xOXJE`jl{ob1^B%o;8A@J?E8>U}S{B4H>;QCX8zdMJ2 zAjf|4&_CO24Rxu?e%}z|!8}*N^4>ggN$x&Z^y|6JuxixRbXkZ}wzy;X?GpY-P%4Nn z7no+%e(PTF5C(*j&m7%}lu8x23J-#=#Bp>{_u(?E^2{u0aNdmox&@^mYPjpZg|vDq zCGrm<^m+@WbG@bIJYV^;xCWxXtG$kz=jv?d=ck9|(=cIQ5h%Hx0i@XRqx4+rpj5Yx zMYVBW4fD5Z2+=9u-mt=6{{7%4th-17l%3kCg;NJHRPWF0gNzMIe6e^aUz}JU=Jh*> zIIWRHp{ewwT-BAWUmFhX^jRrZoXAtn#E7OQwdH6u~8@y-~ zs|+=f8Lbaiz7RGhF;~HI{GiQHr401FWP?IEpsFctNQkHpj!oaSXJ2}LK4+&ZP7_UW zT4PJi>x1Ys^YXZNo`f?K-`tBVDs0kSTh{45njUl%m^6>OyMsn0qo6G`+m~_`u%Sju zO3H!=4kFKg0r}V4zn>F!bZYKIprFwDSU7~YGsLdeIdG6g9?O;hJ%^kQ9lL@al@Y!0 zic0VqY|{D565GVgiL^}Hs%7ZESPt0H0q^RyI(8@_JxG|8+;Cc~D9g>_ANEqV>a8>t z+Urk?xVzt+8cUoU&kEgsApz$U-DYvpntEG5-N9`dqcT&> zR!sB}f@aFscaz85&*6D59@ngN%ZGM6{T+4O4}b^zoN9c5{D|#ZIrVYgLL058w{Izm zF281h_73UYsJW?twq(uutUB$zb!?p!19^u-SzM}OVlJp?i~^GUZRbMf337i2u)G?_ zGz=h=PSayF7{9ziAiybxp_!XlF|b%#tO)`VW!g6uR@>`G?Q?XiR3r6#u81$dQ`$4V z7GsC+Ljn!1Ev@KKh*4I4z7l&?Q8x%}$IO&TgB77|0!EMS$;y`HHafq#D*%A)X*qdC zYe!hVu3Phau+S5F``t03Yc;Qkh=v6||-2YDIWWEu-^kwl|g(SZhgUW-oS zqjc?h>s~`(4-qCAMMV;%-kcs_;a@kK$fHQ?Rr0OJ`!b9gR>CN4Lu}_ltu|NUJ)nIR zoY0>KMOAxm5eD^*!@Z-afY8O}CG4^r_%_m_4KD3*uVa7M)KWr0R6E11JTrF$XFdphjh zCB6n?(jS6KfeavGkxpuAL}LIr18&L88HA-?wnW!bw>(480%xz{?(RO8X9XEdi46%@ zu8ykJ8xUOJDZi4#6&^gNItj)J9fpB;C7rZwX(sjpZK}Avgj1jd=_Bk`&Njbd~l{s&bGcqjYev zVAXs*0|c=5C~ra)Ydcs@G!w75IYTIo1S>zsVwfKVi8fFa=|J|?q7nMSEYyTz;OS$V z9psRqmJ*wOm$%SO*aOGgjrwH+UXLZZp6>3;N50$@cRu;-9X!I)YSn6>C=1NR4oDVI z(kBRp@!nKzEIAzJV}7^ulk0a4NVKt#KmdvfK!dZuG~A;tca)CfW^iyYtQm~&g~V<4 zn#$Xd&AthvbRbE+y4 z<<+a#4rSjzv4*~Hbk<4fvKL(&*#p+)iMsalpZ8IpW5YW$dp|0RCTRl4Mx8$z$fh} zRS-=zL=O|N15MO}`V)u9+#CJ4HZ=>2gJ9pe$@d*6zGqJ+Xc?lWMAMz2ynmU5SA2DH zeN~Dllm^ika1!9k-=nY~Bz?}yEXvZd{_=rC|7A&U?m?2J5UIT&3(&P;hXYJ^og2D( z?b>)1%`0uZl8(+EwT#`*52E_}p0T0#qx~q4dHZ=Z=d&G9xeD0CLk3i#_|Q{xiWY2T zFK>EZ(5-)`22;d*Rp^? zVA~su|yD~eNr&BS+35T<@FKDWLb4f8FyR-8Fx~v%R4B*0bT(2YB z+5vww$3h#H`f)z0;HrFr9x_T77jG7OuHJxf-GRcsoX>svX%^k-XFvwT(H|hFcm=Dj z)KZ`m_(A#Fc9d=eiY<|&0+n9}3REty4U`0j)7+FbLSSP~z2s?f>D6nS5ZH`_>Ml1I zyuQn_1m!);i57a4WjnSDTuM`kP5pu92XvaicjZAOCo;ZGN8y5Ml5AuWkNZLy5RbPZ zM0X;_lg06Rq9r;9A!pG?+#dtNAgi;}X)Mp;6$`$&$f$u2$Zy1RA3~1P9Q%ywY_7qV zXN`-M5Xy`-BEY>t7eWq{skMb&9?BtP$8$xlXqCw}or_mGA3rhCIJDaWpX&;oEsy}0 zuc842y90w{GP4=q0x1p{AEE^CsKC!7Ob41(`CU*|RZWFq00jd&DW9O1Y%|}>q~+x` z0JAFX9H>H~nD_E1lcMSc8a2My;3a2yaF9RS)8I)vq-lT(S9EWF!^%q&$xY)Y zEE*9-z7$>95~3kHTY6I;A}XJjxa}B-d*zOJzlWLstuf&zEiXodKJtnBQhN9X;QhzAH_53xOPyY-lRW#LhC6#BpI$;zHa z$flb_C*g4iL4;v$jDp-7x9CK$SuC=q$3tfu=I!|Fh!Qn-cVPu7Min*uF(S$Ep9nMr z4?GED&cZ5l-%FUhk{G(uB?IEL>do!|s@4GI9VL^qvn3!y31ec88K%#7oD^QDM11Y_ zof-_iS)zA|7&1h$xNzu^ITHi>l`9=kz0ZIG*iLmQ>~2aYLjE6m`iS^i_3uR7weTN0 zHaBHaeX@}PeR7_NHp?t3suE#mAd+Gr7d%Gm1bEI8?ls;q5SFHFM`n zWDctFYDBpdPvM=Ri$G#y3c1G0 z%j4q3nK1!{u^J;LH#3R1a+i!CE}ub7x;2Kw;5~qd?2V0$yA*XGg8&x7ea1Eal|H^b zYBikTDs{JYF6eiWMb{<7Gos0rjjD->crXLMF6hmAHG6Xbuq-ss-Z8SKYTwAR%Bxb% zQmwK?-CkU`Q84HC{u2T%28s~UN7N&^px-(IV3Xhq=KOnhLo+@!6 zgS@$FRUbquwjU*+X57ASem7~)qw@l8x1abPetQv>+53l0SH6G+OWiv5ZBYb#VakIm zP%zTev9B9XRfbi!*Q-YW?UIuNC|?mRo91g-nY ziDPi?^KK8|=<{aF%>F@*w}=z&!f?8srB5h=Oa2fCXrqP(kd&4P5rvfTk$jQCrV2e^PKM6rtSy=&Yo#cb)xEI;_eHFN3(({a< zLo%eX*9U&&(YZrMzKh46yrg3(`o5h#odXya^P%z-%!wUZ}Lf{zBe z>B^}U=01HQ!^sS-Wah@4tsNBx%EQx48wno~iI2z^|c=`CGHuk>(HX-E| z(5rhjKaAL-^zhACIAN~nOI6Swhk)Llk|wBk$_{+!yqg$u;LCleT9#?+a+|hv!!5ID zQu_8};KE~(IVe*f+M5U=|1j#2ByFbqx>S^vlK>r3m@j}IfQoJx^o9d42S<9ckZs=! zQ}_=pmL~Dq;;F8*dyU3i3)G7kbB&$v zob`56LyCgq<1=rX$1iLehXa#~lC+_a6_x^{TZ$%@MYkJ`zdP;ryMTh|3kJX1e`MyK zyMbFA+pH!s8d(!ycA&Swgq;Nc`5P`I2lP|*KS6_`+K=eSv4f4qx6Kkop|>BqgZn{A zBTTG*e6A>Rn>R$y4#<4e8-#UKxatAL?(V?I+WA-l62p`S1Nla2rY#?JWBDPR0t|sV zp98Y|^A7;W|MDE(gsdcVYkm=`07yC0ak34-+yCcd4sBwajPWpo32Kcbh>S*{$H)FE zUu>&bf}T+{I6%dU6J4ty;KvR?_dvEo8R7q7?>+pv?A!nGce|uiD5gpiRVgfRrXoptkRO8&$>{5x*-p{#wOd&#x$o*wBb72!djy;hPxkgO!P zH&*5d6S;<<+xiYD?=spDjelesuNpK3zkojN6GuJ9A8X8Q$S&ZSB?2?%f4~NJ_@1ge znnZ$T*Y_%pY>~xjLLC~38g&Q-KSz=6Q4dMD{2q<56<_HXB6pyB!j9waTk14~Y*yuKC15kAg9>uvQ3(KV0KxW|g~SACFR#{GYyw zBm$7c)P2=qp*0Tfajwt|my3f>Iws3{U@}N_L4s^OyazX*lXBlx z`+=7~l(g!YNKz?7gCDl?D5q+P`qmmSEj=o|quKH<5xsHZ|1MkYzkaj1Fj9lNoNi5o zI03Gc_J2hcSJS$IM_EM$q08Y@7g6K47EZ=B8X;DGlblS3Xq}lVW<{k!+&7o5TcM@c zK*VEY^R)@M9BqONX2XBna8`%>Y-v36>}Fb6a?z_tUd+zT>730K-+xF}RyLMe{V|^MMP}v8mreiYy$z|_ zF$l?0^^WZv$g||SM1VVK*Q3$L*%2QZSwgml?HRnjg13LX*5GDs?UR4HDaFLKZ#wzR zrEY3ee>&H>GdR3?lbG1MP`K*JZ@02@+>Ap5UWRGGos`upSo8SYp>(RA{NUTIn>OuT z=5qEYyScG78qMFnCJ?!Ow_mmRLhg}r3!3$|=mQif82jKxHhptC{bSoE^6&SQKRdV? zI9Tqz(UfN^N+hl)1j^94gJ7u;h3Cvn&aP$wY&mN6Y|{eMd<(nR+QX0mQy7MVXyPrw zYFb(0G0~hP_gQfg*JF8FSPm86{lA<4)1+~RAwR8y{RU`1LAwkPZ72mfS`J&wdC(%1s^1GwI~*zJDX8s1c`Zk34}a zXy#fIIiiP=(;L{${qEq%IzTLIq zn=r2g%7!lvoC2P`8hjN?n$Hh(G~!(Ht>h=yJw5@7Mhw9k_SXk}Dvo3`H@bf6?y!Qc z?vV*rrl9vJH-*=*(cdS3`vrg(H@EGzjIw;M@mjkpfNC`HwhF8tvyrSxpD+g%`-CB&YdXgoQphIKPl5s*PWX}KxSNaXR_M_>sP3AyhP4mLv-9f@ha&)$wMK`*)u`ANIKMEM$gaBPh#F0&YCzgK(GS4*hK%B zEIIZXJ38E|8u#PJlI8w#Ygbg(tI|0^E4h+V9WMXC|HFzbZZf<$kPm!+gG?gHsZIjW zt)})0-2yvn!=19p)_4@2w08AM|{N z6^*pTaZ|Ns+g0J@|EXnTVE|fSVHCFRvDBnS)^{z_e%2Idm(Ulgmi%kYDVnmZB=N`O zeW-LXj+z|KQ^qTD2OvZuid34aVf_O^H&YtW^0~Sqx<3jX@;>l(>U}KPbM?3ciHqY$ zI47PWS44Vx_z_uQ)fe3ob}zxwLLNsTF0w+kt4NY3s2wBeoXZ+?>mQ)n-5`070HSD5 zYvRr7#b6u8jym2;dU#NQpbxpD(#FEVqMm8=77Ssjy zU?$$aGDlDxNgeujt)HDTdf|o{Ui8frnV&Kn4IR@5g_NN;H=FB-5P{LSX*|M(bWjqU_N z|r9RgeQb7#pTlvQNn=ycT-0Z!M2=1rlcMh@^M*$Z6wF+Y71 zL?3Qc=^KxJ+Hm&l^9$1OZUWfRWSHBT={3BwY#{Gt0I%R}q?dQXuL8+MPel~?%*V*4 z?}ZU|!Xq6;;Q^|bP_L}2`ZCy-m;FDNayD9`$*8Bo1lGP90yf{F^(?=Gp@xIw<>7#! zkz`0AE&Vb-J;ZW!f+uzR!!s~k)l^3$NO>*E{TME$yFN4-E=GX&nM4dvqNF>0 z-$mj@lFC0tJ!FPqs-Htn3JpEpvrH~%98^U4gQdQDym0dY8|@2+y}lJcSVtHyxiC}w z@;NmtIej+Bz-1D=Vr;aOoUVIF+)~NcaB<8*`%(b+l}Me+chL^)aD|}Y{b|bscWj1m z3*?Mi=c2y8ADaCvfC3QgAyIm>)^|9`3C2uqAYUV~mCi6@D5X@QYSEEOZ-A-tF2E}+ zI02X_5a0spO;JlySO%T%;F6_8o_`7gDM6Y(`RU^gKB;$owRz&81(V5Q&QY_&8JCo= zUE^u?=v&7(y8B6_h`jLf-(|wdkRPwk_f*F_&j~bXcFx-Ylzt+x+4-hTv*Oo`+$)Ah?_y%>rR_Zafosn04Xq-qrq{1T!hOr|GA zTuI}1TvQuuP7TK?#^fLjh|Xx}+if!EVaJ8Z4gw=ISI@Oh7#yUhW3uk-ZF+nz{}@=go{X1ST6bh{&6#vkJu3k$~ctXVAi1cvR$kJ zc6e{EK0=MF1oGCc1P>5FyH|8x*<yy8mVZWZEJQ{_M?CUtuv^;aGk@``~6IS#RFZM*t%yta|mrD3CRFG(6i`iuhBn zgAq0aXdUcwT-IP#vkIBsVAKfx!xR+mWK)KCB`!`lXtS{N3J<*Y!6sW}HhiW4Gc@$h zH)fz0M}40Ep%q6A@JhyH=$q_(8INPk{Jc6DZ@T@h+fyv%{%O|My9B`jPWd%+B+va{ zlXy}W$;qKn4C*(7KdqdiuGSD|FTh;}&mr`_G@~cmfc&^+v2i`a?oVuaeElFYw1=oi zP@bRu)2519sz}T)tPK|-?C?A6&>FxFGI+See`*eQX4@vS?$52d)Z2BXRAR5OQz|TS zqNIpJ7_nA%kwdyhfSA`>$+atSSi4M1f|d>NP~~*EDmmOTDolaj%R**tKub|bLCZvK#4~ zlAt!npZXI>W}!#a62layz{NPcAUaX-f!DYDDl8z}Zbk$p>s68r>2~q&23_l_qvydH zZUZ$e9ji4_Y8MAR0;lc-;mS2!yDhN2*%KBra}h z-vcPi?8=pGyrF9^kZVn6_9+7A#ZguLzZdIuhk$S z`3vAU5CU0ngaJ;WWII52STVtOBPHF(Gwb$WzfVCdKOb74LL8@}GnBQoQf>+EYw4aL zfbWaHp}o-%dasV$Kk|9-=lw~IUQ4y*-^<){_qD*!XoRke6G62rC3}F49{bgzQECwn z>tE&Uk#jga-FV~1lyBF}Zu1kc-Di^|jX76P9=E9ZmnA%VgykPy09`;=z`XMe>Uuq6 zQpBq^B9zcHFWG=ZBMt;7$DxN4a5*VTS)U&?&qEg~ibGG0q%uxm>D(ME_ zsq~JWV$Vhw*m-!Gj>b`U53A&oqNpPuW zUL4KOxKgQCh08&P4QitltAiR&*?&_T&+HSr{^0^~V!qd?vv%df_D9@|1P?tT>f|u! z6UM-5P>C(3G0TbP2lv|oiKRb%KL_llbaKG(Bd4m$QFyY(0wzzO-VC0XymxcvT%r;g zi}*#Tt{(qWa4%BOtUbx*r^oQ@hgphJ1#g@_k~b?}9(r=q`8S!Y$+lMallv9fTDE_p zsb}Qw0^jQ1sn(8V2{dK+zg`!I1fLY8Q~G2&cV&5@C-=pzR=&_ill5nb%|R$T5hM*T zWz+xaBWzVzj{?g3{^bjgHf|%zsNPtOOw%@XO{XR6$B{H{Wi(GjXaTgic4RfnA=y0D zn;YV4Bh)cVpsb(-u2dIo)!9K{sAs%>Hzj6cbc-Q77uOZ;0JmW(bhFU9Een?*vt8u^ zuvo7wZJqvne)g!>#mYO;b7nB*sBXj^Umj7lb5vX67=xE$38+p`O+5{s;0h{qJILri zNnG#u=bb>VV-B*dR$ItWPwbN?!fn=#BFS1yZ*IKR(<|SLTUr#UZyw3+hy_Z?;q`1~ z>A;o~V{M2G9R66XNP?MkQ+U%eezNa7eEj+cHTq+E&j@p+A;55vu&=JPJOhwcP>AfT zw#X5}2hzknWzxzHqv*-I4S}Vq!G8ec`f3V2kYcN?^&$7LEqj@qGeg>0Rv=fPE20UJUUGOJiN@<7n-OsEADIKUk&rVK+j#bk7M*|kLc!P=AtY(_qO&eX ze=_+ywsS&6>`NRGCcD<6&lyWTTV=7oMbN3s9E#zCxtK)D)Xksx&a|uEdJPM*`TR^X33*xo?t5@5DgL!B;BQ74t zEcukc*Nz>9;ErT<0FU9b6E5({$Q%d7RwjqYNX@_AxMK}kn%+owrV#AfX2N?tL7>7o z{Zy<5y*}8!=*YYkm~pe`9-If=OPb+N>FPSmW0YB&a~BT4ARbq_f~sC?f=+fkNEZ5=8F+;mj!AB z#0**tfQD_1rw{d5o;+Yb{FYw8#1{=Mqa|?w%g(q^9uSscl2k!#PWUonSr{8&<|)vb zJQ^woZg=C!WbakiBlJfGKvWajNoL6g@$4m-=0wIp@VE4ik;C1wo%xFsm%ynWQr6Z^ z1&M=~QkFGK`1;?Kmb^)$Q$ruxSHcVG+YRL|e$cx}(!aR=>=}zQd$WwP&U~ON-fi!< zgGRrOi(T4{HfvdBAum~FX!FCUf`aDo8J5`Ax00t3Y_i)99 zq;sOxJXs}i7+rvi6i}@Q(6E%kG5ZPqz&Y|CQ<2zyA@W)Vd&5d^-RiJ)i}Va7cze7b z2T$FaO~c_(U(rfcok5JS?BnS;bskb$97?HFu@D0jHT*JY{UbqnaQ^eeK7O7g|t;HpoY#?+Ff7t&l5;f2w}} z4qUjfxDhfM(7V{W=TBH~bwGgVrtg%V2Ke%yrx%8OChN6dwPchx06UVxC+;vKa2Z``!0I*flnAh=cp+DtX@`&u(JI$MeRW|rc{v_pvhEMx4w>C4Te zG>@gq@O&PpX;sGRF>}#Jj~<12-X^s1veauqf=_SOvL~*aJmy`>8`TO?ut@F#IQKEg z7?5~QBDGdXip_hW5uQ=*OZC`T+K#sy&~`rYv;VXZ(rPYyinPagUZgPd#c|f2K;0Lz z87IBu;*_x3&c>tNj4K!0m;P|1gIr3vZJVE{p|nwUYeMr=C{MEL*NbY>u2Fi72&$O+ z$&)9R5FPA&RsZvpheR}CYmGnrR2>haBk5E+dJNDlo_p+$+f<_we|r6Cw@H}%kMweq z{6pgHEBas!R_g~8Z~@?yi*6W;q9a9+plGY#KAl47qa4mKsI}y8+#RpXZp<&dci+Cs zvOU@%4GnM8S=X$7gptF9I#DQJkT)n$eS| zPpcXD^&uX`A6z?}JM@rK+wm^m9(QK-?U_cY7$pY*yHES!Nz-T-#~F)`o7uO5@TdWu$strro8x&x`Gfx&+G6?Qx!{~uHv+l~MB z?lYuB!w4DPl?A7jJA>19Xj6Fnj5PtWhD|2Dc%*gd`YEo?3B-hWoean`2T{wNI0SDq zayO5#0H5~e!kMi6!zxEw5wa=L~()$vR!!;-$MPOMl7CwE`8j|mu zCX;@M)Fm#qkB0gOo6ZM76GhMbv&Wn8H(+DH)8e1K)%7)(wC#*qe4LXB-J?z^Lb)0t zW$mj|_e^u!Quh3S_6VpE_j*2Tt*_5(zhmn--}n?_h5jZ@t+(YRVc~c{4U#J=DoH2e z;FnZ-8g}A}MtXb#^pQ~k@Je|Bmlz@!7Xa-AUC6Q4S7kLj3MZ?uW*B->?7Vgs8a*j_ z+%@8Rl54(yH-eQXS1>U{qO4NQFc}Yd!2r2S-FYYixugH@Da`2(1YWmJ6pXgLg6t$l z#pYa{8c4uy6$~Dj%_GZVkCpJS+3!m8Bdk`0g*e!P+owJeLY|oJMwrWEJFtW%#yy=l zQ*CP#=JJXb?r+@m^tk=Z-IOQarLh$B9?v;7?JSpDofej0=NsbvM3Dg{458Dr+C!*4 zkf3i5OxtO>uOl@=fwop`xm&CcT8cFgDD1TsZi5Rm)X|9;Hg2rKseo$I-8%Fz;24Af zu{jftNJ)@ap)w|*kSV+EuDwd~yea(J`Yj}#AAcJ>9RmrKrw)yKZ7Y?JsFpdgjrP*h zTVLo^QBF`!x9BErrT@UFjU<-*B+P)K%kMCrShd`#5nuFUK{X^AC;Y%E-o2#2E+FKa zCXwqe6Oy$xNDKWCT*IoyDYxVCE1^3Qf@3j?gsRFb?9-HCsWT4QJ(NY5{n2%L`LB#OM zGbQ=b>q(u)iOriJg4IGOZxAAr284ff(-HWHI|!K=2t9-k~^fM8)OQ!>OX%r zYH5tk^4QmGINs%8RkC4^;mq&|&So022S~h{Z)1UIC4>-R#=`GqV7RMCP2x?+QV%7R z`|4Q5Z1oE#Lr)#!YpDAB*BlP@K)G^+cA@;o*7lhf`)xWO5W8m$v3rvHzACLQ>dn+8 zYiMf0`?UBV0&!zp9@{hr=*G9+aV7(*kXL?;sNh6JV`@@*oUFZP2Wymiavz8jRVWn5 zVGrFV_K;4Z`umA4C~Dp7K|U{^tTLH!j-;b#l)Vo+OhutY`|cdHjzcg+8%{yb$cPtp za{c;XK72JSPir!$qZZN$8t@YPAb>*p{$@42alFf2Fm)SVrTo~jV_i8%ND=%18>{a$ zFNG7UQJ0JFj05xB$cRl>mr3fr`HgFs!P1grq5I2) zg67jo2!ybx6Pkzi($QhlK!pk_Q?nEA>m9hACWV|r7yc~F!trn;9w5|oaRk`6yEl%` zPF65^>ZKOU)Daq*h9bI-#QhVC6R`tvft)GUI!XP`J!pOrL5+-6vdZy9)eavshoQdv z&?cxQWKu*H$Cw80UQ1{iB-~94wP6y(wj`pxpcfZ-uV}$_xM*b!)=8Ss99DQ{C}tlH zss6{<{(i(k_xZB|*2&p8wt1-UPo8Qol*a0y9nFCaWeEMGKX8Q1QptiZBM;3!Vk4xv z(Sd;{U{;%`)%&E0SBdZrG<_eb1A5WKSpyZMW7BqRUYlX~-;6RR%vRp9qa9ZjQidH> zP@)tA^{)V5dofw1wzE@V+XRP^)gnFQi^pvZ!N79=mT zp-b0Mi7zI?N*TU=LUMYwK~F8~MLX)Jo1K`TULe-DNi2uwX7g#dmxvb@)C%T1CW_Zl z^*q?*=nY{89w;f)IEB3X3d_G#aJq-$nN&*iP)y6MzI%@S-}6TuR^;DxIBLOKq=;xH z!hCw(oI8K)!~O1kE53NY5JYsb=A?ICum!oeR}#^on;7r&CPJhNa`5*+@F*vQ?_qv7 zGp?8ZNV+y_^ewsdrF!zr$JCM%b#}ih>Y~6!#LL7O6<}{KH5}&{A+&Xm+kO|X6cGd6 zqK1B>ef#{kOIG7${f6D2Ais4q0|0rlO=&KF-Vg^1%ajA~ag`PhaKOnBc;`bSbvd%DEB_75v#6r)oy~W=~!aZ(6q?Z=b-!j zr?TVJlOdH9AZq+%Z^g%tPhd?)mK=qo1hA!0%qFBdamGN=;MbI0@*;3od6-R*098Mb z$;wiy6%kk+bBpzr3q>9Bko|;SdX~CFSM%r3FYQmuFd>HWkYK`$7X^ghVwEME#8QW) zikX>UXKAv@S1sh=Mq4LF%sTwvzI}_MkXOnBGXBu+t$N>I2o2_rChOL#S?Yw}&%HDB z#nfz`bQXJ!`18;mpIf6I7~Cq!Cv@WTk1cKnqpqiE7`YH~7|ADUfI%Qn>{L^!Lt7tSAA`!|amzP(2Ug0ETI z$pKyXgI|a45TC4#fE$8{7*h}+y5X+?L($rfVU z)34l2&l+exh3f*AkZ}jX@?~LeOLcm391Ld^z_}K5JdpM}Pgz3-_3&*=fd15BJh-qPTCFFl%(wBP3uizglMpu@HCNR7~ z2;nRb_9b~zr3}T^-NW8nxpR0|^LWVmwkvl{* z@AC;NW8P3)h;1Cm5nfA*U`DPDK09>0TMc`wR>JNTPI?j>CEak15+T-G{5t*qoSIs` z&1JZVA%kzoTrs$y8au`i5LI3HVx>KR5;Gizyt0J9kYQhiMnVFx1NiAZh`gs}GZGxK zg7H46(KCb*XQ*0w&tH5;<1_MiK*%{A11O#kOy?3<3LBQB5)=&BXomH`I3b1S3n@ID z$7^E=ZDVIC?D8HYfShi-N03n;y@MzN)g;rIOv#Cr~r-(wsX z8s_E3oy&%Z4|ej0aSbWW4+7mu+C`^N{mD7s4n_Sws+F;HKzrH4YQ_A7iZHJ+ur7;} zzg&F2z+z3a$)Lk+tP*?|hSzw#pQw`Wb3d+i4b~e(SZ`qF;IumWUc_fw3>yji5)p;h zpr+oZl%NbzLN(i!g_UDZ_jfJtI5SR|%aN=yxA0J*!g1NXbn)=~!YNxwok#5!ug2O= z-mM8=Y6qh&~IERCIvTH9%XDhrgersN3Xo7F=p8soG^>L@d z#6!-v>-~t;+yd`^5c0|@&^-y2h{n7&(k+RM7RcP!;b{?htdn0g&kEC_wQL^5O8UON z)na@SwHM$s|H6lOk3#DZJ}7$Nu1_=OcmSr7??XjJyaoEP#5@2UX(A6n23=qIFHq-80RXUT78jv zq=!Co>i&r-^LopjRNOlcJ4@9vK`2P+n>WiPLhZY^ibKp_&X9NAx^=`^&n825Ru_{6 zea~;VmC~BcZSExsR1%VsRbd;`)QD}a^bPSI0)>183LO9Qo>vb3^hU!A5yw~AsM2S6Zuej zsQMk>FI4=s52G$hFBa1v;}wuo&QQ5ikn}i9Y&v#ORFsL5Q#lwcDKkpL31mqmE-AsTnfu;g$@`@7JI9q3aw&5x8m*IJQiZ z-mw$j#8_7+!XFrnSoTlLODd^ap%CZB`9fOU1Bbe*t%*zpGON*+!*4H5R;e;zR7*$X zur28^fo24%%>1-UMUHXJvfZ|yK+p zV^(o7hGIch!Y6W#6wG!JYq40um?VRP6EGTKA|LMLwLx$nkpaf^+&$Uza!>y=rWaMj zum#N33lOD>;3urJ@f$XwzteL6kX5Zf^J}eCa`q3Iaee?4SnV&S*-EL+$IaUF^C$d@ zLSrs@)^F7^HwRj&Idj4J3vn#VTwAx!k1)_$Jk>BreCk_U^8=(AR>P-!CeKGesDaGu zm|6Sw7Ub6x69Gk>kbp742(Q_6*0nP1x7oRemd?I0unV?_nlpNWj+H zOvNme27mqX62a_>`jSmWY&^D=Zg`GQ^=F1p>esIi^d%g4YyqSMScEzjYc=jPT>;KP z*kG8iY4(EKW-rR^-!dBIPW5~~?^%KQCI0=QqjM16FQ^LJ%sW8bNX=$cg6f5eY^}%( zVfaFxb1kVzy{N;ftLiDTJ9zlW$VlRG0&?i@$x0PvBBq_CoBuM^m){VmNL+z|3&aFN zXgS(nqD}H3q7Fohgr_+292)`E0CH}Cz32lQMKeYrX2TR%Vva&TaZ)TVh&5YylH|RJ zP3Ue>bu_LQCAb>EPM8cO+GLUiuW?3-p=iw=Yzl8>cE7JC)8we?k5zauRFQ>v>>AwC zjT#E~?w{ICU)N7fvI0 z#RtOh@X3_hw;KTNYk|-u#>2T;Vzv6?qqV}oP&BalzVii1oPY@eEuaVR{ik{9wmFC= zc_GhJuWh_R3anxfvrNEbxQ=>ip@@{GjbzR4l7}1A(sUembNyh2VuOO#*u#GP_WT3Y zVcU44ZJIXVsli&U`d+2hb7kK@P6&bGQ7Tn*tBNd^rLU& zNwh<}`!XCrJ%P67jV>oqZaZnWC4y7y4uq|lL>F2X`aH};SkWNS#~&<_QeXq5N0ZgE22+sC zk0dmi0BD3AIv-7L9%7mE{65Cm5Q#J~z$DB2br6ga|HeP1Sx~r`a5o(G9?1?5#&$kr z)mKx?omW#2gf2vM#zrM<+$aUK+9=YpTbRy^vPH}**x`sN( zA*%5b6G~12-M>bLT=eu_4@=2c%h)Fca|(*~%^1{#FLaCP+KGzkz6)LES$bdZUSuf4 z;K}GW6};R+<#$B-A1**_u%wxtOnmdrfx8O;doE_FR~Db)@{<-oC_8N@fOygB?)U4a z#DFy%tsF>FOlmw#70YK-gJzg-?yaX7rgOTlV!PeHS3jT zuk0p?NI^N<4Z|kQuscsMy|`|ieF~<*Z~temCOxj$*SzkeSsiyCXU&hSq1dScruik= z@DQyuo#vxU3xOu6yyb`tsnrt&f)=HB&$Uv+9g9L?p-H%hPcKf@RbvM6-jiL=n2w(~ z0X)wDvk(L93j84_?}txpG5 z^7lD&F-f2(hzSqXRy|%kJoX!Tr6B6Bg?>;!{dyf&*#8vgHI*4x%Ui-jZNVPmt+xG! zJxLiVzM|_8b_XvTDx-3(Kz9g7JQoq|5H+O90bup(b`W>90Wk(`%f3H};Wh z1FPPk=u>B>P78HxmU_!N16LF=h?x;47-T!(o4=8Gle1nU?apaCQN(xGT9jf1@OEPC z*CZrg1X0=PJx#obc^2F$bn^)mk-@xUgEpPnJyG00Gx zp(HO}U^?=&7V0ns4*TL%l+KUc`}1@0x1<;stIpRLKgp`ARZ6WDXxC9!)X7Du+EO?e@}QKUF_LlQ}*9+|#f& zs2qa?HGNK6_4yLBWsypL`nWmp5T-e?zDMnFqL*joeBoSeFfq)y$9dg$kOhv~6BKF^ zZ|(D)ytSZl25H!j7+Tf}gjWqV-6N{n80&!o^xpkRKuE|RxdtB@i;^T`1$J?Oyu+Xm zaNE4b0e*zWe?NN3)EZ>;JO*|^v*g%8`yR|VAoYzkOS2sT=nL68w@|cljwmT3DMkoS zxy{2*)Ppq=MMXF5d~Pw!r<<5nAXf0LB5#92s3bkj8@VhCj$e55LsK^O#Oh_;o0_ zD3>7PVD2nbqboVI##>u;4i!&LV_a|#iW0d1&bgZgiw%kjk>5!XQQMJ7T!geM#`TQhmKu%04In0#?qGWN89Zq(z}(Tq9Y1<>K6q&!kbzx67)r~oJI5{& z!#Rn{DN%pe%g~-)o`^w|fUDhhk~ZvO(s6CgvCup{op95t*N?IO&6N(66>CA?k&qNx z*(m6vN@#9tfeUsOdSXXmDJI-%XfFAxI#*OEBskmWHoDC@IZ^$9O&6by6+@A{i%?be&u+2ocT@E?jrBRT zDY5)*30Z9_%n<3D|5|2EKUa#G?12C1Y@JLlu3TDai3?$ZyRLM5N4#wp~K$kB*w&) zM#s;TdlqFkTW{uyEZwl?=-MyhG^e7p_uY8k{Lr=8ex!LL+n~I7{?!!Coe30*>({@& zpiVk;F;#Khp@Q3jt@jKZoo)$kWYN2))G%qsz!1**r|!N1LEfA^DZXRmwg< zaB}L6ca6@?4;c@46fsJ9^U`m-n*8l$_Mz%yu2G${3*$B-zo&)0eSG%v$1`5Od^wA* z;Na$m|M`1SV)MC2AV8_*|FtiiH=&2rw1hV^<;L?DCpFLMtao9Sy6Ei^Rl!D)Y0~74 z4%yEchVp1$tYHb55|?>?^nZQWx!cs0o6j0W)P+>){m4wX)t>)2Fp$k!SodNhpOm*t z$Ef6G8n9!>$1SD?td6eRNEu;2t7Sd-)hj0_NBG3rvpd%R$FB>?%YBE-MrnV2yhS2< zjfccFMIP8no0a2?CHewqq# z2dwjyjLOM*`ThHeAi>*;9oM%!Jh=G6y?LnIfTN^)ywm!JaYGc#ZnyV^>!|Uj!RJN^ zG%i~!%#?U5EF|7 ze&Q&1U3ssiPk6W|7?cqaJK{2278lQj$n6;z82AZnO=PkrWBNeh!Oc#GT%%s%Wu?D9 znr8p97Otr0`P9oE6A?kmZk5u~TEoJ!-PO(NC>vYs>(?$vmD(dArA&U~Lk0N@$Ik7b zKcVJtk=MrN`cNXe}YXAxoGDJv77K9Gw`l2}2^V>D?AmSwt?>)46n=fbe_giHr_TR;G zK5J=t43&OSlmGc#Wtrg53a z7r-6jZ$%jH#S9H7FXoqbm;EyTdf5f$?p0k=bG|g08Nv*hPmN7?f>9qQ?1@PlpF|b=|lnc?gLR!#EY}$&0{-2AIy0fQIbRGp4!5%msGSA55~o-Mf1304{54*mjFnDr2&Ws{W(I zD7L>#r@7z1R`m;~b=mr=MCY|xha(;3#!PkUD?I}*nK!7-G$gl{Ij?=TaDIo&6AX#n zxo;oVt5hdGcbxO{WX_+etel*yPqr7hCnfElnpdEoWwsVJ!WfJL7iRlk27Y(HUYb(; z%RI7q=*?n&eSf*pSMR{@N!z2ST{?bSKbWZMwuo*XN?gpBj(O8P!Ttcl-H-LySB?fK zBrIkE@Wl()pZzj{5mZU?VZvH4PT3uRI^Ua7-sP|E5=;`&ZwpIzxNHrR zi`&!d2k)_t=0^Cr|L{rVox8)O;u)OE|MGmWu`Fr0WO#C>{l-E zU6>ceS6zHQA&u{U=7Nj+u;Jom8hnhDyqK(<95)M#I9ykkd5%J&(}KHnOpI}(#8uAS zUETW{@@==`%z5VO`lk7NX|l7#MCgYP=e{(`d;9sxUcP+2W$tZ&ndId&agE+DcgQO% z(^OV+5q+XkQe2l4d4?%0nfnvpUG)C=>bPM=WhM66zTny?wJHy54Z1ZB1<4%2S6t_( zf9~nY%3dW6D*VNZMlLF?X^d*7*>1zb`=LD~XJK)A`%|Bq8csbm?iEqJy)_0*78VwP zG7{=pCbDQ4kdl^`h<=~8kwd~V)V4qix;5p{7dvU$vl;$YPrtWw`~-*(0f;u^$^C`f~Kg z`K_nVd1-KP2l#}Zx|i;-u>A#t=s7vL-LGD$!JB?H*>*ad%B}2Uvv&Pvj=hnM0}8%p zECrQm!;f!MJJ0^8K#S3^PS1RPO3KobV%$dhDBFoV$`m$k?iYb{9P}PxA3qisbmZGw z?b<~jsUj58fA73-c@b;%u{ingBgc>XG{!X^<+^h{gZ7toZaw?8DZ6zZ^a6)ZpZ3Rm zE^ptj4?lj~nyPVfPj+h=*75`dmvH;O{{G9qTBsg$G~9T8K7$XB&gN(<^5^F ze8-9Gz$JOl@$uuww|-skg|ZiC!Eml!1n5Rvax+kd36HjI}$Fn?bvKH*~l*e);m{gv}TU2RAPEm-&gY zg(aFjdk#rWs7dh_XgzJYC6OqwgOTyPwKe7VIG^>19Ula3B2`l_;eHbvyVF{vPuNbZ z*Gf&Tdi{*^(#MbM=?|Rmou0p%H7E(Q&W*JmYg=z z5ILdK;n|Dr3JGhQ-J49xAmu9sC4OM)31$0u1 z=E9dO-sc;#cwJ!^5Dwj*C_v#>_N+wb@S#Hw5SD(4lV^NF#VFVME;4{x01=BXhE6IDwUj%0UTslU=`}NDBL^g_aPA^|y8TdLJ z>!rUsAv|!=TkPY=IyPojAy&S(gCotmrMxRDPSoO#q%K|RuJB^&>F?LgXfe+_kfRYM z=38>sB#Yjs@|l*|nZ%~+S?X!((a&6u>GDf7BwyQu@lIvpd+x+w1k7*iAd@n61%-+P zrGbmy`xQ6sRYRl~d%N}S&SpkwY1fmEA_u@FXm^nI#^S}w27jaT=-Y9_=Y;id60&Li zp>MT4Jv}2M`ydOg~#n24E?z9B;Cp$w%j@*C>RtUe*$YQ3mN0RC(L(1`5|9N z*gU6=8%wQk2>KX?B?yg*40(o{Qdr%HU<#}A=BBG=1}RFPexy_^Q-gHdwl%# zN#|{#(U;dJ(MzlQJ&gm}$Cr{nIZpIQ!QAR?Q?9VnswclFeM;r)v3Bdo>}G$jh1pRi zzPDST9Cy9!HQR%mZ=mqQ%&Z(50dbsP-`{p$^rrbzfWJ8Q7Wc)BznMSjSzZeDu*)<8 z^s+{?_U2P&*on`dZxKDKc@5J)PTv2^yJP+$t(2ld0yB4RJcof*)2!3$`==S9%&osP zKm9u9HjAj}x~HXb7H zyfjB@I%oGdTtKCv&HR92U0wmS0C;sj$w1IY+|hA6wu&;lfO_(~e2X*5-$F8W(TlKp zGyj^LLnxBb;!>#>g~3oiEvrY+Fp~wrgHyirwN0} zROiAaFX|6z(6*l`^>mM__`9SyH@?^70flvAY;6vpHM*0Q%s6JtjJ`I{^I=Tt1N4Kr zBFd17t@06hFjP~{5};A@^Ziynx;L(}$T$S<&ksm~SGp~)V12TRTZ56vP%oE_L+dR; zNEDWRi4nUY7=G%-)RZ+KsFgGXQ0@{+ezQ+Ft8EGxOy7rg(Lw)lRTrSwpxu77l)Wq2 z7628Tahg%XVSmoK2T@V?_ix{1n!PVecOeoD3=0d7t9f_VjgR|zs=)7pvK|C& zaR`xbhs|2#iK4r5YQCc?$x48Kef1mHqAkwYm?QW4hcrG{ULPo3h#j(nTR7?$MN3jWK{t#;)GRb;a&&pK2oUyCr%9gKNrhAK& zPNd$0Nsimt^!hz_-+Mf^s($oGR%kiH!XBJYpLF6EPg73Jt(A(zkTkDNj7fG20$d2m zV7Gi`?II8#a%~;?)N6?&TOm=Pw|;oiujI^}z;^7TfTl!!J+%)yygGuxeDu?cBW8On zaQVlLKI>Z#eA(&8zW5}S(eY~4Wc|uhZ*N6FEq>v%bNO^0c3>8XqWSts+U%w@$0Z4< ziFCj*hR)u*lNXwKtHrz0XQkSC%{q>ykn(O8fjgqw4gww{t<K(hLV*-ug`Bvu`qX z*_RsPm^uGhXRgzi_YRTAfTU>uA)D7{P_6X z{qG|&&h8S?qC>e`!=85d^qz_0y{b(qVn{>z2EE8q+13R>oln<)K8gzYpjs_*sD~`(; znDh%){K52|iw(~l>G{2mrDwrr3~B@Y8r)RP8plJr%RNJ9PfnJ9rv-0b`$}Q!x5xEj zD-Wf7+Rym=y`=w5D_$~kw=qiG%JJ{@lStfB#slR-PSjzdgCwHcnXQ z=i1Q}(B${?_{8X7bz!=k=x!XAZMm8?@t33N1czPKpKI@M`TRUH;voMS?;b-$?BFrF z^j14Xynel2O$ENuC`)+C&Y^+_ZG`bGQipkXg2mkm(d5bayCp*ibjwq!+M@2UvNz2# zU82}>G`L+|Z|N6A)h~UCW21QdSbTAQ$V)mK1B$fz>O#w+#4lA=R$fT{hVbm!^XJLm z=De7<#5I<+7c88BI%s2@Q(1*qHt&s(+cfTvmqi{h5|C1iD0i(@ao5te{c?oubLU`8 z=GV*LCS&D3Ff(=YC#t3z{Q59A+?q{=5R0=qzRAR0Lid7)x!*J|g+{g`#BR#U@=loR z@Pyx=*y%8@QT1%65N3pDU3)7dFNV~I!fg)^$kc6!m5?9ZbU$|E*ki|}65X$=M%7e; zn`7d_iT%~nYG!y`ucFtTj?Wuor*!#MmUht|mGVw&UDq7kJd`kH#eO9sdzA11d7AyQ z68lAL0#l2Yy#YEaDJ#2_=o}P$H}T|`j(jKjeXayO+iZD48kxl>y$P2<_pvTy3=8jr zR1|L*R{L+O2`_s2^{X<))~!``?>E}{gs1W?&DPyn;c$HjT%U>Q5yp|FTMyj843AO( z;UzB*seZ|^=oOvkR(6e2P*i+~hgEJ>sOPe&NW1TALifk=+4<6yd%~Jf=3;^z`9b)K zfa>RPK@0ch9MouU1=iQs8_rEIUd=F|#dsT#ejPWdYMornFW?+{*!Blv=Uf2Vy}o|U z+Arp~7P9wgZR&|lyQrzDXTEOr3w`?V;o9AtfuL-P9lP<-!+r1M4#;aHCzK{&elSm- z+$|dszW~FC&b#&%@MA;Mq4$D;jrD=+dwqKF3WDw@%3&a<;S{*melecSeDEtGkhLAD z!|xf4;u{}NpMt*?Vc2t8+bEiro#M3p&p)55E*5FChnqI&#Lu59Ia-&mW%m8;mGUsr zJapJf;yf(D8et>%*58V5pt;NXWU{IBVf|j9{O@jGYk7BjA81>Y^!$N0Q{KBCI?qjY zlU@iN=TgrLhWD#34Fl|_^LSzssw*|2sHmvkJ32TycfxUT{rmUt`xjSS*K(+)=zL2$ znRG2c(NS|R<;EK~K5%Gr$n{cls^a`qdv7T))Eozd^WHLwGM*U6{RE!tWwz$Nd@Y_+ zcNafA*>-boAZ{8aLIPgKyur?NQ&sctv_C_|EPL3**tIr#GhbF#u7R*EbOqOyKGCe} zSXrimG?a#JdH3BsB;6$j93O_JRp_&UI>v2XD&P-H;^LY zlO?=&or0+9p|(p8Tym}3b9tRB^*ZN=Qv0ESh?Fm)(KtbPQ&Okpd$9S|=zelPB%He} zA(^AWu$xEgf~o20BR($_BrL1a-Rt|i)2k(#e=qpg_e1METrFMiD8L59W(TkkLuu4n z1+UZR)0w4weSOo6mDt5r@?QaZFdxYh0;iK{@U_QMh67m6?JSC{2Rivca6@mlSi>_ z3^)!Q>C2vDSaPI7G}41--1G4{VtV%mqc?A@UN@}wrYB?mCvA^~Qk}L5h`F=}(|g&V zEX#n2p>4*OmERQmic3WE_2{{%CrhNJE@@5e2;^93HS0$(F?$Q>uV=YZdt>sE)FxMU zt?UvlE5vbVboQDa68fAs%YyDUCXIWVwJ8D-Y{x(@?87_X-fpeek9Olfw8Z@@-lnZG zUFQ0Az7D4%XCR}`Ia27V)={}5(QU`=xB|!D_-G9R4t?FEsP$T>w^C5BA22Aq)uI?H zV;cb5iBvS^4X!<;S-SDj0}Mk7pS60RH8ekQ^}LkC`qbcDZ}0RcVBe)VI#86AZO{C1 z#*_O|WZ$1{e$rQ#Zyeaa1a(+pXl+VkSi<|+_98SxGMU_R+IDs0YUWk$0P=sDZW=4^&*dy#oU^i-ZJPzsq{>gvwcCy5b%QJD5^|xA9QDjnM}&m- zc}OU6MC?B9wW-YL(|-;WHue4_W#-v39_SB6!&ZtbF^lpx*RAdPfN3Me3rG)gx}2~vVc z2uMnI3X;+#EdnClol1B34c0#Ay7sTNmrI!QeV=EHJB3{ZA^b}aQc%&Xyh$S%OI*k| z5KIfkgs_iak8ZlcUagucd>ryGAvLuF6#A{uFbZ&+T=D3r(mAPUw|;FNjDPNcSxijt+1IqUi}`GKVd>l9Yi}n6-b^7H|$v(+4oI z+}bXwnwl?CwRcWTQ+}!|Gd@vpD|OsF7N)-P(%n0!+^VKj^knE)SD2;}I*@~IMnx&9 zhr%x`TPpQR7oqRWcA`AfaN80xvCaS8i0QC*eJles=@x4Hw*95ShCLEiX&$#NzIcwy zwD55DDm|6+Di40Qf$Qd-y>lOOLB~YsxGs0yRENCS0r*xJ#l@?vGLfYUNd99Tf@Tfd z|J|H&SH4tPKiZ64jcb`Q#OK_*n=4l~4x^o-qApYfOT@-hL=qYKywAzW(VP8uzTxTx zZ?TZu7X55JvK;-&+Dl%mU(=w#MTDJw()LTV(rFzW->$+Gu)(Gec1P2-931p7E2^lh zLX4P9x_H7^pD$Uxk?-U!Rz3-{_``%^+lQBZ?;OV?jXUHr_6*XU0jl9MIpoRf~X|?2gH^W7(_yDL*xU_$}_PFKceE$hwQAapQW$)miZ2pLu zz_!hssVZZcMAiI`-BU0!qyPF<6P=vg2PNy}Iya3Pk5WJAm3D0(14c7fd6Ne3}z%@46bV<||;T@foB@Of6SH1byngJsu09mEEAO(+aFG5AgtF7N< zu%76!$A2ViHP`JjulSXxvK{7^o6&lbV0ctj!=YP|2q>+~+1?#`MV55w;xF4wZ7Tr7 z!hl<%^EIgWOFiw1`C}QvlI)!PSJa9v{8RSOxd0pN-AX6?fX#Rywa1d8x?3PllO4 zLg75)ziB}LGtQG!D6*k{x7+-=8#*0&_m{heHZfsC_`Nm7Q5Hy%9B^*{b{#JJnGbMv zM6aiLr=^K`k4-frO9@T~e?5q$zUrkA^ZF!DNz(C&#UVB}R>igPt9pOgYF$ueGa4<4H{tBYw(S{S`y%_l%k3Ppo&dSc-EFLUUPsxInj#^9f&)7+i40*Uea8>=Diz6 zV8%bi3xfxl>2M+N)CCq;z1iI)UJ}v$@5`|FTmvk5uVr4}S7l67MpqWRXy3khpksXS zfVJ*?r!s2W^y=V|=v3c5jx|>2VJYN?$Lve3ptbs*PhLJ1 z=hGz)!z(fP0?_np?K>^`Mkg#opP3GCBkn$oSy_fq@P#q`e^GGQYhABeGqe9#kJDy! z+--XO)wGj`92@rg{Y2$F;itY*89otVVRwJSx3{jGcJ;Elc60v|%zV#Zz2C-&R?1yG z=;s6^Ilh!%t=jm!1uErucy0vi3myVnty61{D4xz)f-M7pqs^B>-;gqmd>)U3UcY@H z`qnmvvl9p6E23YxX&a($ztk!w$R7S4CGl|GAC=M=bPC(%|Db&UxU=647X7})M;p_+ zUriajnwq7Kj3M?1Fs*XC>6dAKH+5d#TsGBuwl%Z|2j~hui544Nz$CoQYY>C7y3%{$`5qYJvuj^?h5P=+fBro9 zgtO^;ILXLI3!xon_6ZN*)eJU&KgF7C^qk)-^AqdJQz=XwSQEAh6-r-7=75Y3i=BxO zn29x;x-=33B7niETUlGrYmwpK{XT`5$F5az zauGM8A95jg2)5|RftO}5+cX~Zd8nqM|4!I)R{9`t)mRZT{ox!0z?AGid?*fshQcfEqY7e zhO2N^wwWMYw@^t=tdZ}lS+X9;VcOk8{$wGK zJ!;Ozy}MvoE;u9x$Gmv@k1Sb?vvmn7Iu1J#ucl0&pWPScJV}niFO-vy2pyV^8Q~5# zTrN}*(8q;8Nd@66W+|%L3WpX@))LSCS%uF^y(t=3R#w2!_nZMhj5p}$=;b=>SVfDF zp_4gIcKgkcNZiPRUs7Y88?OH=U(U(NNrV*fH(}7vtM>B88L6yV!k`&>+sc`q>7Kmy=abj|Hw(hx} z+WRS9AiUy9K8EuBYEKtdke!*8=v7x}os3jjRaVeHzUISBi|RDZEHD4~dj3tzn0)AS z*i zT=!+wwrsy^2wwS0sHqK)eo5!UZyPQEKFa54I0VuW1>qdW`!)5fnnO@}VWCYXoa!Gf zEJ z(yH%%6U6pDwknJT^HPM>NZ#0M!GOK|@$$5^fIT8m`kmgsbwF6s2n*M@X}-JGei!|fuTkK}tnWkrprEwQ4=w9Z^wG6kIQ>}1*gQzt zsu1XJT1I8!ZkVvSNL4mmqZ!Z%WaZSJgV4jIlxY8aJsrxC4q;>FD>x{mjgSlMG&O-O z2Cko2NYrf@(dNSkp&y7_!0o2s>+2iw@SV;J>uQwB$@agq(@BE+ny}FrEnkL)Rs1T^ z#lsIqIj*2G|Ee=lW2aH=y{n~dJd2hD6|c_D&K@`C>pFGL$c(WpOP~^D2Wg(6x?_Gu-**C1<9)pXTv-zyiHaV{T z#iJdcyNVucm#0)K@CLx1oJ{2pITCKP4SUoD`{%|xwz8n3Kw^X9)%a`tqU1OePSMS$M2W3 z&2Pw_il09|M_YQQV}u=P%)!pS1P_Y|;1b6aG1OOu@2ASCe+Lq<#qa;%eX5~jNe73W z9)Xx{Jiu+~gD_KzZKs1UX7`j%G4pinOe{`G796|qR@|NeP(UHLq(hfGzD>8~y&hZ{((^hX0(E05<%r%espB9LB#!Xnc>M;w2~$_4E*&o=#V1`_^{5 zr&(E9ipsX6YAJ26UhSQe_!y#;bu387kHQW&w0Xp?dmt8afBa1oEi;!xRT`8u&bZdzIq7E0yTqy@WnW)$h?-)x zvT6Z^QO*>We%QgZ+wN(4nf(&RHYHm4#Yl9@Ojh5Zp+Z3Smr-lFWP$3UgX;Qmv%OgW zSW>^5QJJ3pO~rNCHVBu)1CCKr?YBuMNlH71#~^awXfmhKsI}W9UxWlqH(Q}K03AKM zDJhOPC@T76sIWQ;JrbKU=UE?Paodj3VSDNViql%Cz7jft5}>Fic%}}LARQZ;piePU z{0;3km+RhwR994bD?n%p%C_pIL09K}o5@9-`s{>2e|SP$)IO*Alm~MBy6f zZ(&sRi3rXQdC;A)bNTJytQ zN+D8n*z&K5>g2STZKiXCUa@@@oxF@5dF|EMw%dkleT7Rloz7L=tUbUDG5ETJnXOBn zUQhu9W6dLLI|Yw7XGbGZXMY>&EcueHRU!ydY(QSU;n z{^aiE!h@+e3zAe-d1q(!?;nu;&R2& zy()`-!a2WxV(1u$z@pQVV`Y7s$7}mu0Bm%2p~q9pKBFnt_~qywPMyg7-0L4;K9A~N z#`Y#7%5pUH3Ovp2Uv1w#O?YFZ>3bj5?|vM*Pjf4fQcu5IWP?c2lJDSfP~Y?NPwlf$ zTMUA%pwOe`{%Ym9JbsSU|FCRa-*+blzd+xT&ziOQp~5eR^kWZET%#z^d_tg=*98dx zd-x}(HcI89hAqBy`ZYOO>Q+OR?KZ|&Vqj@fSI2+?rZ;2r7#J8JsGwoMqHd(@ZNsJX z-@WXxpE$fMo=4D2m;+)SFjn1W1-BenJC~i7kL&l(0~F=>y_#wo#VNj>9wCC2uPwn5g_qGc_rjkE_#qCL&i=b4UvTxu zY7pCZyn|z#mfsCg;4{aH_xNtY@OCvQ$GMXEG5n4^O-#h`7#o%KrfRGsG7c`UJw)4H zdrM?MG-}3Z+6!N#yco^Cx!qaZ7fkR0S57{5cV}GgYHEk`i8f3ZC+N^d5brleyOE@- zssM~t*df?|x~(H3H~h(c_JNWGnNQG%hg;I)UuHLkG7)c6sPlQ_v3fPt3=9;!F03NS zg&ylo38@jY5ONOs@q-s;>aX6XsxyCEF#_6*(HcTtIO@Fe@)8C?Ru;5} zRN22VY4HH1EF=-^g0MBpqdsflL;n13hb13i{ZB)%DK_SsP=O%IQH+iM-YpNef??Hf zYXZ=kf;tQCQ^7YE_%PS5_C!PZ$KL}Y-t6H}tzwQSmc($&`DU}n-H@xLHTUN9Mc4;B zTn_3oW^@=dOCCksLdCzTw>yCn436jcJY1lrVXhmjhXsb?k`mq&L8oLy)RRi+F>`it zajY{~X3mcI{;f+X%&(dc~6C`4~d>%a02U2^Wx>h3QC3cT+D zS>(9DkX<2*+X;{XD?=J`pQ_dLJ^JOP|4Itgf11@SAb4H3$0F=!A2NardTl^IV|=@> z3{)oUAV34b$TFaK5l2TFu-G15v|i9G0>wy-DF?jAlNR3u=V`mz5Q=~4aUjUvJ~o9! zF;&$pxWqxwef!JZ>Tz~7(1AdJxu(Kq+`YzOz714h@XNr_RUw-tGoPQuY%!=646z8q zb%(N|H)nYK&Z3YHLC?sT_IjQmJ?THVSOF#gD7D}pNUo+97EaE|p$AbLYn-&N?;V&! zLDK7VwntM@QQ=gVf*WUqW7%_b`35G}^bjga{jv|^#iLsXe(QL)T$m^3;@X@qKMzDs zlFO?9n#6hpuh}Z(2r#i09XQi{%n<6$Q;`5!!;oc>uO`M-JP%CifJinMj24v(rvY0H z!6Y{0J?nSNp1`sb;n1A)Vy;0jrc3WuQ2pX9ybMaDWZ^4}n8EeV?PE|kf+&!C zw!ugmO4<~ZtW_)BIaa`j`9Ced%K_k=3r3$A*sh=LXOjcaQ&nY`lb>%^J3Va4M~wNd zd^@WR_pZ%&-rn)}2%u59q#}86dc`sE4l?L81Gmv@&L}+f7=Bu-DZcl>4*{(uV`>^( zA)9XjcTG=UUtU#J5XfL$E{?2}lxzi4e;!1NETXx7{{<0#a)6^#Xk9;xp$DYuGUUQt zwynj&A{Am^v0x1PIF}wkvGJwRSrCAruI2q8a&0aFu!4YC2z}eT+HR%i^Vv%5{ocMl zEGv#%Q3RYw%U#FjuU^6W@~4a?HZHCM0C@OCXkPyY3>WlR5PC^RH?_W9_D{n1!piNO zpWNP)Lis1OV4Iqe-HMT*Y*Q7~f6%D;zRmb9K7d&uP9+y{PXVMHq;6-&<8+`p{N%>R z8(dB7?fBK0%%lV(1cc&y5q5F_z#I#PF4t!4%9_CKy3?xN0T_5d3|uP>NNWZ!D%U9_UPU9 zuWYU2uX?3dSBHeq3H1}OSL>CDEg2~(ahL^3L9q!MZ!)J}KY$G{P@{vBpcjl|-yzsj z6_9M1zn#qe8O(<862Al*6V`T<^`EKc78WLzlSA8XpaiV2(RiY+-e11_qrcw*FcVOL zQ4D{wYFoC2SsH-FwJ!~S;mLo(^|@5jS6dAqP#D-5gk08ryJ6p80WQ@>sbax#3I5gn zKeaAfd?dK!5t>QHQ9>adYVp*z$_57bj2e6>fq7TKkK+-0Q$S))FD!guRkHnPuz>mX2w1t$ibxHxWU&6eHdpWL0P>cCt2A0SFlESL)DOH$bmme_IM$1QQHvTB#W`E9=sFdM($h zpX|^KEA8ZT$E%6EgvB>tHDUVCQs8}Y=x@6*@Y>8B6@U2l`}eNZOEmN&q|=4ti}zs_ zL-lU@aCrBDUXqy0SW=fqISPiEDpAaEy~CK#p9g^Yg~$pY_uaXO{?%?{t{_d{!sphY z&oc&w7xJU*MkO}TGznZXh#WE~A)5>MR~i8U!pcckt&UiBHh3V1%8VqG84q;<&9vrw zJttJ(rvrt!15hF2B>X4n*CX1GXRm>PmjuY6x~RqR&UCd65lq#jlu@-MxR0(L2lW#q zvKCv7yo4I@DA2(U=Rb7-sN`9(%pVT&L_;PJ=zjWy4@-1wrVJ`zVy!PLO}K~wGTdeb z13^s8O>%Fj@i{30!9Z@p$$HJS{c;~$2+a0xl{9rn}?F%DFCWEL$M zgs<($dBQtOuc(}QfefRx$xuemdQ({e$Yoct`lQ+-iLgWPAPGcW{Xwembp+r#++Z*P zS#F?ezSu6BfiCO_qHxxgJFhB%G!i;FL>z@FOx&>1AM*JwJr)MA9lhAM0OJ2o=lp_> ze3N1-1WL@og#?xg$V5|)xF*Ds0ve83_y`@2?&*&|Wiw==;{yVueXpF5|DAQesis{1 zJ1YX$GA7PcPlK`g<*z54t63k~pK1-JUEgNNvu~H+&Y6ya_{Y6rc$3d{cP^03p)u)J zh%&Zcalo_C$A%_0U+cwn->s80d%)gK;KjPr&7 z>gOuAUaUw^c_qPf8Gn3puj$T{Ty>BZJuCbTjC-iaF8M$xE?v1^$9A;MSDlS{KLn6s z8DC#SfI1BI>S#n5W_{S&a?qt6)vAt;Mt~|#g$Og@5@KsTW9B@nsBRh1pn{o@2rT++ zFy-9$B=c&DgxZXe-2Q$*x-H?5fY}@agspOA_rqh*st@o}ep)WJ?}F-W5tH<{#4nj* z?R38zAt+a5wh6~5a}pO^m2!2(r;`f@+}L3mS~A}=N4DB!<-2XiL%U7Pv_nf^N(wnV zj~x&#KUwD@!t|7~WBt&K>-#}%ORxmb5-?IPq2mQ!weozIeUBMSK4DPE+27opdT&Cr zrOu^R;d6RMfh7piT#Xcw<9_wi79f-WI5SLml73Dv|2>`NCXE2*BLJ694&;UzAZ7qg;Y;aBLfM15nySj68+5(HjoX-K@d?3+Z$C zU=F)w(*Gc(mC8B0RGwWOMuC74*>}DJN&`XmcbA)K^aD zs~wh;JdKaP{O7$Iu6HA&^z~qeZ}m2#+7vuui zJGjp9@C%f!oMvd38Nx%G3Og-G?9pR;U9~(3Q)mxQrQf8W#C(Wm7o98bAKW_dNV&!6 z0C|amn>8C0&2_ z2Y$jeN6-~!j>wlG zyeZw_N3RHN3oeHPwLwi~pgH4tbMZibF$W);{zpGnrC0*ASR3f(%T2BY{qM* z_8&{eOO<9fcTy$6A5L$waaUa{^QL;mn2Mu5Pc*Ym&+)DT3NC>lKkYYXHPAX_x) z3LoU`G5-z)LZEJ;sbG)8dV>|Al*_u?`3r8dG~Wvrx$tlIiboBO6FP=+6!GANeF!RF zEtu#!4pt@LqOA33vX6=F@ScPhPy{Y~3}#$W&Jyq|JU9dntQ6HgmC>sZJ@_SW{849s81MIwO%J=KgyOFik%;g zJcZYj6Z%JKIB`fOU_MFqDT?>B_4o0??{xwBINjC{DJ0_pkNw?6uB z(4yD=_xH0T$ilegXIwX(Z@B^X&CPrn)h?u%FAq@f-zdTUtMd7s1e2THz3_ThJPNxt z7%GiddZLfEAARhKz`NO-l!$*7{d672pp4#N^u_b0O#QE>{5In^po7M2(0E#&`OT>1 z4&beLm{h)+5#8f?D*BW@ouJ~i z8ZC1BK0RX1k4Yx*>B+;*&fkSbd!0n-v8kyPS|KFWdJ)5xu<7%HT4xD5A4r@;rGT34 zu&q&l{v1%t$MW({kbcPRyrKY7D|NGDqXTQ4k-yC<4oVdI^nXZHJjWpaf*XmOF>9u#Nu-jV8 zzf>rgxQ;lTPlrX126Qqj*hWA)#<6L0!MLk;9f7o1wl+8$EQdoH8jR6G$M0sQ z0>exRLh2=w_%;VfUm$Rbi~GZ%7y%&Z%|VDCb3is7Hl^qf==HT>Pjf^jLZ{^4dI*g^ zBi2l`to0{T+lf4@EkJF_V&s?o$B$*<0R~Yg7gXVa?z0<%voWX_f9~oW29}kx{iE{y6{xTWw-S%j zQZew#fupLApZ~7i&4p5LaU!D`f`%r(6_njp=}BS0tR&st-6J~ju*=3jfO`gXE{$*| z`al)WjO)n1R9;*s8t7Y=hYH@XUVOutpWDY-!v&sz?k56O6+urM0A9>?KrMhN|8h`Q zC=>Anx^sXp1i_xUQqIgt8M+dOj5Npvq1#sEHY6*%KA`qnt-Ja`oax)%39|t|VY&5(NeM8`Srrt5! zZ>wE^ePQ%|=+Ad@lbynt44x-#^}U!RA;uv*C(j=w(Ij(8OP; z_dYZX>{6avh55H+2%zNPa5fno9JR)(*jWadn)90SF;S%eDHb>zvc`)c-e^1Vkptx} z)D^&Ss#5yf4}1lK-`|&+@#*bfHqngg2Vy)SA|$MMHF!fBr6{N$%cw#kST0e)9_(WW zbrS$VDk>@#j!uAvTGig3(to^RD2Bd*o!94#0Pa{c8zb29&DsKX5g1BNdt2L&AAYId zVgc&*T!^2{~twO51bKbbl;C`qT5Wp zTgVCp>Ytgj<;r(%j;C`c9?a-NgNa=ae9MV;YJ; z9)(7gop<>|+b@?zUjtxGalh2%iNCT~R+B0{dEo;xdxAWB%d=l2BfwOMTOXf~-#r7q z#Hr5URw@d+Y*Zu#oxXywIur%If@_)Uvy73?1<*r2|E^7cTMMl$9=5TJuoGh7F{zeR zv&e!+r!z-ULqSQYeI4VEg~-G=n4j8b>fH2ou~nZ^E24vR8pCDHrvpl1-whKRIv3Ee zv9g*DXCYgRTm%^sUiygR%dSC4smabnw>5(R=m%DMcZWcQa8NfS1Ix>vM8!pxcu)(F9BAbL~g~#CG>z;XVUgHz4fjVGVFPxpPZTLl4)?O>(DIA`* zU+UKMzB*cnO_!S>0!ah%i+7`*)a7S|Q6hhdJ3&e)ZD26V7z;J!{csI&6W?6L;sOV3 z@Q?@^r@=vx2Ku@jtrO^$c)j;iXl2X&#b4wzyW~>A5@7he$yhT=6`^( z<^UFzQBPW0bt9jBlDfJ{V$4jHrzma6Y}cSp4GgDzqg~oHUN)Z#T?2sy&yzorh4J6A z|54ya33B7qP8eJVZ|)xS$J|Qx_{T6RXaEEy5PAI<2Eq{0dJaK}^XhR!4LS|!l&DGD zmpc>k3JMBnY$Ny~;6%o|Ne)!!B#rDr*p{H9voFEfxel zK8U_8+VSMF3qx!RAa35O#R8czh;iJ&LgKf1`bv?3RVj+$2_ev+a?Wl@vT7TD-LoYk3e!4PZG*gfRuB*}quPVr$^20=`LTwhgw|-L z8&q|=@yPuZXT4AVc0i!Di)^=Evkx+*&z{srdYbLjZZ1rn_)Y*XV7gm$$I+OebwF?lFT`22h&2{YujzAF|NkC@U(`0At`s zS^)|PU;OIoYLMi`tTf$Kw-IGjNq!4%&OXxOniFb?PK^#zBHq6gJ6rn<2**y$X9irP zJGIjhGc)A3&4IE$J{!kkEra)c9kF0vKusf}7ZMM&X!-Lem6@~b`AjngDC~O%20CFF zjwmU?4U4LET$H}8S1~4*8}kpztKQh+G1(p)B&d4ms>3dDOSUa|QsOiG8O8Y|5gPUj zJYm&|qPpiL)6br1YmZ+xgvM05BT2ml@~}kLWq+@u<=I%PA(((r!YRe{4qghK83^!K zXVlj#Ib8YV~I{&4!1CIm_A#JFjr*>E~**q6HwlGXWzadrnSI?AI$ejEn_p75*mO zK@iS2(P6h~Z2p*>{EmRl9uc9}231yV?_6hR`jJNrrsi{63V!0utSo8* zf_zZ5+JB^HSq}aY2o4c`Ye{yfUGnwDgY3NX)u* zx%vW#9or!zpDvgKlLF2*q567uW8#RFdESrLg9~4~wdkOj&IAJyo(dF*^1s{dRFTp@ zJ3GtFCX!k1HZMTcc)s@etJkqvSQODi&>%(7$z%6#o#SB|!2QUooGQ#EB^)Rf1s^t@ zu&|snqqwYExt^Wi>%ZacW5Ef=A0;4U0b-6cxPG(>ZfK~he|7(ZH)PEpbIEhZfBjp2 z_xq<3e_B2%2!fkM+R$*$vrduaBmF(_azSE(Id{H-M*;H#7Aw&!fV<15 z8_X4b&#pz0q*~z|$u3}atzTySr%e4}Dk>=G@fD~>IKgK7shn6?QrDeQUr;gkf-yY`>e+yOeuBOAK8s3IQ?q>17ST8}tZzsjORk`RSwUBqL|9n40{ao10UOQ?vF#!zW%3ef8ysfG9^HI4b2^7{RwQ@hi_Qa)nlBX$Ot}i z)p!}G{mHDUAtWH^6M1*p?~mvW2qC=#rK}p#;2|(B-vMpNE_cfWd5Q__-V1`8pPi*} zS`S6PG@S@TYlEZ-Moa(q_p+f;Pd}|1xC^HWzE(Z&LyNbF{`@)6`>$^9na<)0bVLL2 z5!V=r`uS#cHRAj1>wk|;wwwDuv5b6-j%E}pP{u)m1)7xXv$QWlB)v{NvTQV%_UAqd zJpR-U8+vHxhlIE5p1o3?8Sjq#5igCa^$2R7k-&n73aQ`cBC+%U9+1X#&Ax&3BWfll zQ~)Klb-J|c1mVL0gHtfGv@@3uKJuPu$kLLcPTc`^Fvs(INC#*D^WB9Rk#y)Q5l20# z_KRwq0P4~TGPECb?}m+c=fpO)NK>|Lw6q>VUCYWY{FFL`T%RwQRB~y7faC*r9ukt2 z!c+_DWpk>iCy2R1v;+=k>MG$*Mk0O}UG)xS{kh5F<4OOSm>3yLd;37Rof-UX_(;K< z`WnkJcX(silUStYS$sI7EO%2(%rUxNUKWqfvp`%{R`d!8VlbQ}+f;oTL(l#CuR%DK zgdu!rABKq|6l23Aae~YhiDT%8r>4;JM+(2aVegmD9yT7%qM{ZPliA;I9)x@dZr>}x zv+G~|ZHP$c{(avQoL~&F`(?{V z`LFBhYT{-wn@(1c5!kf8W#d z;Rq;Af052TYlY7PFM(e+Fxmc;38_&~Vi$j8_WJcBQOea*JR%uJ8K9qkia3NAQZEN8Avzw9KEbbI zKYFgEm04N}&JNWBF-TT{Z{yaUj$gI2M9-8DqBlZvrZN^M?F3{yyHa#LLeU|-1wpIr zPUD=4iU%qxDm>K=o^UXk++4|`>z@t+iUyer=?($x$iPQ9PAoXOve~}yfRO=7YGLiO zUuad;QTYUy-ITI&@^gA!Yy?S%`@yPkji|%7X99aNf&$6qJqQ_T|8v4>Gr@pM6ZXp@ z_c_WtjeORjNvmkh>doT|wdZ^&7=)Ntq@v{Dx=!SM^)OF4dVE9RIq(b^K#2G=E0skW z6QhuKo2~zRfv%sASy=cU@|5CyDDR;h&e+$s#}^_ciF$&B5sltPF)6{{oc2z`>s`!A z?`QbIhgb=@XS4ymWI{r8UmY_Wk1LD&19)E*LF`eAxeHdHa>^4EZ%(J)~J!Q@$%6|AY?;VLj*;JW5+HB)&tp*#T@IvHaDAfKOa$qG>v1Xaq&Xh^h6%gf+44=Cqz!FC=|>6eTN|Dkl}4l3Un zN&f%W0^I)_Tip_d|KNc-y>{9i|J`j@;o+H?l5z`HDa+(Gl}8*RMq;iE0qQDPSSkP* zdMnr#l$3n`Y9=oklasT~t25~hFgP_MquiKIL_~z8ZAn60Bcvxp$Hl!rKP-#k*D7FU zCI;y@Qm+kyV$7b0DA(tXk!dAaivpS#J%$jAK?r#z{?uqO_n*PMoo97xlY!p`#$hd) znj1+RBnZ0!+p{DNJ;LT^{dfyCBcuF++cUH*s%_v=NIsHiPfv6mGdp`bumCh+(!29p z2RKOnX_SwOil1hebMdT(lae9Ear|PyL9*l{4W|$x1hW$T@vV{dP(2>EKX*BIe5tP<|qMde)g#=YI2`jfvGT zsdiT^`td*(mlP{-ZB2krKp;EA_y|FVg(7l!!S$qd)frw$_+Lgt0~wN(bhgPeEv+#& z4Ho$u&S!SHSPsA<6Z%2;>HWl?NssliF#Tu(ztOBxO7A!RVta zC5#Z(|GLO00T4PG35oms{M9i<4R;mM3~eV5SmHUh|0TU1$$PqZe8F%kx-5tdi({gQ zwy$GGbv22KN@+~-#M@R9HX52cEG&h4=Z$+_*TkVnOaaso9J1&-MT7RM8-t!C#^h=8 zGc^*{f;Kb)0%ROnT)@1LyU#O6Na$x}aNu5+28kLFh*7dt zuNk~yNX$)4NeP7?kWC;GA1$CAEMaPTdUw-^BuBJwL_o4DweU<$Em+^41cA=N^sCO$ z+}y)$NxYp*t~XvD_tTv>cXl4z*i@G6h=pZIs^N=Y+VTRxNR5Wbw2WJ>@!0K{BuR?u zE<`vAOfT5}AZD4cC9JBg?fb>bgm%}fi7+=;zTEu}r+Kf=^63J2`VqXb7@c zP2qcz4rG*o`N`Va+UnRP2|9rbE@o(wMWs^Y%-h|~t=05vMuwybBBwud7|hX@)7U;!c`WGqAAS3l27exnrs!(!jGB2MM`lJ_O8T@3@I+ z+BaP@3k&aHVGVG7)>ku{N6R0%*D#A6(s3^;9~JH;tzyK01ymJ{Jujhe24WTT@^>~> z7Br=0Ocp%=Kf@axeMLXeZ>+fukydbB&zFVS)=mcl<>$ZdsW{ryb~tdfsR5dFoyq0V z@kedzhyHoF=}d@CUxh(h-GVrX5o19ia|aNG9lnmuo#u%teI8DR~hEh;XCmvUw2lRso6W;Qh;zdh=MK>& zY7iwSCtC<5D8|4reVeHu7)ds?&f_r@6&4l%fhh)&RA@K{MKcN#+)3;kTU#;5KTt@e zc?I2y$Zt(~3vLEM%u83o4{K?fX8(RW2o4OFq++Clu_|~P-~44B9Sh6(mA_FR>0>o~ zWk$TIY1A)u-ZH&Bd@=Bq*a0KAe}rKJS!-j9G7PEi#RO_LlYkorj7E19=&I<6T* zZ$Y&ut0rldUD0I!9Ob^dHMI zN30aN!d!4%uco0Pfk5c{{> zGKh~a8<3aVzgQ52nw-b=`mg2$nuM zD(35c(aMd<$IlQg9H<)zb-l>bagpoWBpN8@evOxJR12k`gW0w>s?5 z5sce|q#-H8D8BN?x*35({D!;t@YqyTdan5&=INaqSGE9L+d-oCBWXwdP6i@SsTc4o!^;n!s| zQUETwavmXa>0OVxsN`g?6k*Nxkc*U^vx4yB<)J5uJREImE9b|@rkXz2FN^|Di{o$+ z2X`i2KF0DsV0s!4#p*Ade69IN0hisGZGa_m9wj2rLEL{(Vjdk55WfjpOO;@B>~V5WpFUD%j9vL5 zBZVV5!dFpQnK_L4MO#5Wge0pckb1>x2Zcm=(4xFZI(Ju){GlNEYz2Q(AZGmegG44I zuoAZ0DfQqYQTFz3Dm;w}-xaX_O$<7Na&|T=Llz3=qC%k%z`PfM7-D7-LW?a#44{_A zxvTmjnGu)bde9%0fu^@v%z;(r{^tS4x-c}fou^fLV$RM7_%+JN2uS{j9hTAQR3z7s zG`WmRMTH890WAAWIN^I)b-GE`C2MOhZ&M~v@5jSl`2wC3V_n>=4OA5yIHE97I^LF) z!Ch*ho2cA}Qloj3R8qpuu2+SVuNwE{?`rO-wVJLcdj3;w(_i%GF)qi))dd9w2(pT= zlU>L|STyp?b|&^Kx(_d#%5_#s$BB4!PWq*O^TvlMSrQwh(G$c;1vrI0G&Nx%zCasJMuKC{Y`!_Q;EOm$**IcYmbbSyxAjSh(&M4gQ3f_de(Fa` zSiP;*^t53}uEJP6JhWzhY4Py^-@ei7u>T6I1sG=4x&6;y|2AXH_Y|)N)7k(5xJ_B< z>tlt)!Dr7U)fKZdC1Vi(eZf+K+}@KrRQkv|HMS(sF+CqNGD&CUr#iy7wY{yTt2>u( z{Jl4JRnWTz1@z&;ktGP89Apv5WHFlW#sUj=uwZ%qyx#shB zKsAxN_hoK^F%gh5eO|s*%@5RKE5-fxYlsgE8pCWV<#66IqeF0EAIX^f*4CC+rE%_? z%mqevF|ijW{n8(p0WlK540%kbhL1~>@V2U|#}NlpiNPy@7V+W1wx^qyWqKXSaqB}KTUwRP7M&TA~-EAO$#tA?5`To;XOjv@ppeaC&q z^r_(nrD8zy6T`Q65yafIrYX*(5tJx_M>l$s8N%($CMMNW@ZSK8S*PWu>};>&DcrM& z5VbbG4FeLb=^FxB8rmJ=NabWclFrUfAXHk@ZV^1^+6m=i^3JVJgdSw0stt92;MXr1W zOa(TSaBbb=;^J~Ah(!nK`1uK(oDPz$Sc2s`AQ6Wmi#eZ`-ZAmyQg;<|n=XL*?nfgn z5#mQF9W)&jXyk$<@38d;12Q40)SnsqT8IwqPDqoXMAh1py|)y2ctqTqRGXWH8CFUs z7m6c%3KhF9!+%Z|paGy0q+yZC$-LBP=qNIuwi4CfTYAhfvF+1QkK{lAXS1_hA;Ose zHv=nBe|Jwvu|}suwd|uf-cnyQ6M8j?-;St;o~xRl5)x$ak>PtOAShy;U#yw_+ny?Mm`|=ibTeCXc zuJ!Uk)wTIyea}oc(ktNcl5D-#?oa)&W%AqEo51eg{zK8nxII6AYONf$a0KVjvS!a3 z4@s%k7((>nhZA=TSF1}Iqx;c;R%s^*Z6^j5?5Ke>tUFkXC?Z-m+73~;p8C0M0!D(7 zfy0SGXJWzR~(}vRCe6rdy}YWOSItocvPi#p5(!#`pM+_qGbs*gn-Ql%Vndg zgmhU^qqU!(-(3F#49Zp5>H*+V^C8O~Rkfd~!vezj1@{bsm3}I(_I;!$;cg54_D!;e zXRseb?kEJ1B(P!jpKWB{UvzZ`ax294=Eb)!DF2AiN*eC;GFkn68P{VBv9z!s$=caP z&?gzi(3{l0278r*IWk>eUt}h%6nrX*9s;tCDWPX)k8i6_W4h58oLQ6Fu?7zT7`S)u z-lBl4tc60x-!WL%Wqk951`iiJo3#bxX)2{d;g@JLmUKTslkI-b*PS*KfhUEtAb4kX z_F*u)y4r)t)79$#N;qTFZS4jkY9qe0te>}-$aPP=(NW=%50H>@ivcTs0syN)}LOH3llMIy{)1|cpMcM zyn;H79^5}u3h#DsX=CDZVItS+w}Oc`40^M*d#y3%eJb(9(~Z|gt4U_tF95e6_3k`q0bmE*3AmM_uthF+LOSeBjr$9A~gcxgsl90GHs(K zdQ;Z}R5otz;ihZDoa+r3zm^5VN#jC5+7UqCdB-K}h~kbR=Lf}DMjAG@M>Ac_()3Lt zf~slD%!y)2u=f`*d#Y=Y2{e8Hev{PB?hjV(B2lSH~RudE%dfjtpZyJw3gzF9$dwl7v#T!54?yWsMz*1V!NPR4O2+ml~0j zm1R(Ra^Li1$5Z>t2PRqw8$$jYzxQ)pkWjA_1whC^{6m>AW@iA`yP%5D>zXo}O6TzM z8q(TiO-!7=L25P0gMtQr*mD(BRsGvCQ2Q%l1PZd4fjEE+DJze)BneDmrY!X&wL9|E zcjAxzmpx>=HZZW|YfE<7(eAp|6R)h_cOC1EgSjXGVKPoI+7%)0t`t&pF?qnGRe$_! zkY@2;%~sYp1x6N@Qf+U&`dC2Njjzs3;q89XM?z?t(}Rqug|;-kF8Ba^=f=8P?#7bY z!~WDcgB?&BZ8}?T)UoLbuae%$uD8jU9SE>teWByzybqDf0Iz&cB>h0G%XQW`e6@si%Z)7Rk-D&-~(t&tT4)Ku!ID{!d2Bt3ms##ruP|pbt=kpyL??CI=QJeEjhCrA~=fnDe>p4QQO5SB~E~ zH_$DomhyPu%BpK+AxV8)@Wi&WAy&xGUTf@@DwtB7YJrCg92at+Z@+$ z($N-kAuytU`$i0SQtv7JslWDYaEtvK(VV0sh+7OL4F_}vAy5i6jMgF{etc{!qqsk4 zLZ^D)7AFSDN1U_KP+%qx0YN7o48ot>qL};2M2VRn;H~yjBL(6D65ezt9vYitrNMZQ zChg^7a=YhVsHr)roAf`Yjoz>n0~MEr*e;S(MsYC)z%y_;s}Bhiunh4b*G_{<0R*GC z5HmsE-Rn+`i$tUNudc8V7j%9u1;xb)f0*Ir1>zO{P!~uQG}v{W>6~3wk*S|QmsXUP z#zc@_y9tV2#nIR#^Is6T55N?8_X~j!ei?ub1P#25Tm4Oh1YQwBZf1s%^to2g=Qm*4VcUBLr8}Mv}(NICdU1gYGZBPI-D&J ziE!hF2UA;HtSKU|RS&%9!GO-qP2vKLpi4_iuo=-a=4F(Y$~aeZsEq7+_(0Zi;Vmxy zjwP`BLrxY?D2$h=dZkj%y|hv|U?}3?;IOo@0fwhdmaF0TN79z#=er1dAi%e=L8KPT z*1?y3hX1~?u_x9FWNNqQ$D0WUTU*NK{%8nISgE*STNs&pEgA4}8DBoqp&S z>$+aob37jR$9=qfHT$0PA&WOhVkH6XKd{&=NeAmlIIk7vIfdlK{IZo@B;n&tz!MJ|H1me^@CNA07RY@QN$G?5+56p=$joRd{Gok*kKb?Tb0^ zmS!q3PRCrtGDsKK1K<>pA+%nve5YLPxVWuPuR-VVz#uzeZ0sFk3DRFV?aPdXibeA2VJ*RIYk;m zWE~wH?_M&s<7Cp?d$va)D!HP{k}sNS?#pSir zS%-tp$nSTh_QFHuEq1MhQxQy}sj3hsfcNNlU>Q9CDna4i_j*4`bkfM$tBT6Y8LLHz zLi_v8U{CsPCRaEPmE5~`<~Fu7)9&-jUoM7CkatNRa^v08`{O8QBJ7=QNAKUVQMDf> z(|!Jk?t)oq4I8X^%>q{8*p87N)ltu#tj*nN}=pnW1TNlNf}AXq$^E z7j{+-bNs`W3+H1>5xu5m6!yNas>tW+uoX_&4J#o-{O}?|iy$2qfn42pMD-pTWGBiUOI$ktZj5l(?i%r#5uK@l%8hGVSuZ#uu z_>(8Q($gajTAq_+Non~z()(zBjvT_~;^Ja~nLg4myU0c+STeS+__|-b*a$DQM(?|& z#kAPS2To?3Tbk}m`(w06X>!TP;^jXINji}!J*29yh^N z=N_zbx)Gj1uLOdHhb-lZ6U#Au49TsDX=xEmWK)gT8=k4yeAkJ3Ji{feZ~vo>dx*h5 zV`+SKK}zRPYa$tHT1g*AB_gA$NK#cMNe()>;MZ1%4)8?(_?Z~_iQ~}P8aOa#9`APf zXp;Z*Ur|&4BP;4O0o62C243;778aXF4{*{vefI36&u+5OYdi?+G^f-0{e6r6<*N&M zZf<{5&<0Fg15PmVN!wIA^MqqsPEHthkJsIQ#TK~elNgSO9&BgD+;R2!u(i7S-j6wo z>}F?i8N}ZZI;hg~^oJc;t9O^{Q>?4YLo;CZC%$}nsj7G%v}+iTSGf1p!aIcUm~F(Y z{A9+)(gbED0LN<@!6g5@9QUyPhsBK`VUZ!&&kJ-Is*dD;n)Lp1p?$++qXn*$&A3mi zKHiYlZ-$F?--M`WGwXjeEG7(Lkdjc~cqo{!YqNKJ!2zP>ilKe#BU<(B*(1Oaig4kj>KJ_@10etYxE1-2i*nGuvqgwl9A%}JH7+ea9`W+!ys5U= z-O%oC7P)MOcj>eR!dOG_7vMj3Y^`d5=a>)jFbsW+`|KX9b>BZ)lxSkQZ#Nz+m~0?& zl}<~Cs#^|GTRb*%qBjXcvV(&IEyG?>>XN-6pN6)Mljxop&e}yrXlfjtZR(^7(3M+T zTjK%y<+Q*e|1d1RbXSV#l;Jxk2}bg~f^W;4mXXXJN2&aKKVEg7xw7O26D*C>1y)|R zprcp-Sb7#>I}(8VdcTkmqu9aPJGTXNyQC8#>mKhFd3H26?!DLlphX(a&btK-#3=Zz zw<(CEIVsQ_+kwNFE_Iw6si}nTHfd z`t)h3k(HCT_)%~)VG>VaoqXfnjd(O^6y*aFYdHmK+I`Gb^jj13Rxk-o0`~ z#vi88p88* zSLn2V=b|2==mbv?XfhR~zCq8o z&S5dZkS1n^0$jr#^p);^1bm4!djehj+p6?fl+1R2GyvIpYP+EEhYbA$=QEBU+ z!{Ds@6%D3Zn`EF{kd+=28;5X;Mmw3p(fo&rCa!wIv%Pz__};ax0;3ZYtpA4#P~k=L zcTqch{9dOqs_B&tnDes3;f&@C`x$U&BY*$4npY57%gJMf55vO+5Ci`^!BH7`^_iN7 z6}V=ecBVs^fQ{d%#Ho_~O|<$wfN^+(SBa-*ntKEmz{lzB@7KvNA|g@Ti(c@Qg#}K6 z$r|TOq;P&heYUzd?cs@CDaoJm zo<1c@Pak!2to0tJEP8Z|G&F@x5~VGKGB1B$fn;v)UT3Drf3?bhy5pqm-rwwU&S5;D zBgLe{`{zTpJS92#n%9f6z@&Y;ECp0IGkDajt?eY57lXmKmG!zS{KzL}Tn@FF-Li+1 z=v64$lL)@<^@nt&m^63K)z=eWxNsqE@P0u7OXmL!uQR2bIDLGy)R^QfElDUMc))3B zgq)G}sizmS7uAiys-Ltb=DB<47nIjs_fJoA<_(-22>yAE2k)z;f!NY4DD$FD(5X8NRz%gA)LR zA`1%(=IW#tVbfGB2pwt8x>$GruD7VU0AKpUu$JzqoweK$y46*@azDhnsux?N0oh+>ql9VrsHV>PCyhfbMq2xwZ;gj7-76(6Ee`nx;R1W!o%fOqvs?Vt z=^t?RkuY_0m+Qs31}GCGM;x;Bvi;_2R~o8HOM{_6X>d(w1dT-^AiH%OBMo{Ln|&-Q zY7dP|_K8!VZNA3*>>2&2?1A3|I)6wCU#65Z|gnw`}1Oltn=jDvq!j9YyPLXKW$+V2_;P9 z+^y}?6eO0`!S%fG#yOs}*ElPWWLP#@G2l5TM3~#5NwrV~dwl*UB7EYeso4i_ZrHI% zUiS#UxYXz!ey{l)6GouPtr17R`>_cb6fsnKsR8OvgXLqc-EiF& z>G9=wiEa9ygtWLRQ)boK37E7YpUG0*S&XV@(mQBTKbB-p%v_ z1mvMNH z5Jjwva8<&Ml$uW!#xPgi(;8<)&H&RXT=#r#2Z zt9~bd3nG5*3hx~deDm(#Cuh}c|J)W(YXe}DM^m!}rx7Pmie|{wiBx>FXm!(&7$FA& z_x9gg6a0m%LZzVPj9{|&0TgzKK^p^pYd>#McC46ADZ`0A5;0mbwnXS93W|$4 z4VAa#FJCU2@vFgj8qQlF-mPv7+rq@3BgGqfDK5N;3tiIuCC8JTERpK~iEX0!>x^+f zOI0bp+b<5P=u%gXY@D_kw>L6ld-Oi)I#Wx2rqS`B^~>Ng89l!g|3Cz_0DbxEzjwm> zACZMCOMA%DLQ1;_)fPir4dj5W@K+{J8gG#79vB!22z-}z03cY1ZQf{k;KLWfae2ZA z2Fy>J$ygCx3$VGLYAhmm)3RcOGl3(OJY&gvVN08dFoZ)>)1=LN0kbkEKC08F=X0Gb z;Ws@BSu<_=6#GwYzBS>_;IZGr`Kc2=BpW=xPEOpPPF! z?2dG@gxL~){H)oOpWNC)vN=o>&zM~y)9(Sq4&BtsJYJBfhy5g2!#0kN_u7k-h=?AW z(MH?Pe?DJ6wl=Yomlq|P`UZahf`2jKN|s5s{{;?#OwY49W!Ty7ez%O}3>s-v?B#Wz zla^*|PX)f7o<2fwCIsI&AM5Y<5IHJUSjHYOe~ow&TF6eTejU*7@shiXkT5BaG%VyS zWS=@6qb4RORhU!Hb#-+Kl!&UaYC;(S%*Oun)Ao}i#Ke}|FMO^x@|8B{ ze;poa2#dfN^F#(KD}f33x~jAA1phOUty8UbUG{5#f8xZWmN=fxGdtUXB{qPLLU1Z! zPbtM6DJM~^c*dxqTLK6VAdK~is={r_RAI(S0|t*p^`E11KKD#Sb`d^Cvj6!Q@q0?l zzQx181C(;h%q6;J5Z5^6uX?mf1TRp%Z$HTP)Pxh@S9iDx2`s19*ZoUvwj@OlrmtmH zh{dqmtkPn2d|6BIJGO^Mi8ltaYNQLyuvHpT;}l7XqAiaGXD?)YBrJEra&xUS1g-#) zLZqK&mfqdDMNUq>`YG9yobTcjvABI4(ZualepC0^7a&7#aHb8(OPRQ~WcQE{PE7xU(daWJRI5Wjr+GWzG&*Gxt?&G}ipg8u@zODOsHpW$`N zT6t1bmAa(g%;~#wL@LB*u(cTt>>BYw09MA&Q>LcmS&xmo*u@RTa;;9|1i5xBsiQ7*D2Ci3Nx0Qr>`3u8IcfHhZND~2<3qNRQF7$%MYCc zlWhfV6t=-H_9iQ>Ga&$>An*RIXeUd8#rjOYVl1SaQ7zGY|9Kvak2E%8xl!M|$<46F zAyHSu1MROlb}4qfWfBna21xTqY?&V&~rGL}anlq8cM=;q?GfXz_52Vh>HD-;4ADqL|wC%`Dxv#M6)P0P&ZG)ce zO;%h!`TLvv=KGO|#-32t2HSa%&>}hnZ5cOxdIye<#R~PGgP|PU$*S%N*L8f}n}}!x z-IqclBIJPLGc*kO)cYg4yT{Y!Qr`#6U1%^i+@b)8TE*?uxT0@u-BF>uYRpO+ZSVN_ z2(ZDar}V|!`aVE;n&a3G60Sq?@1!3Ok%}HXxKLudMFU7DKin*s9mEwpyx~H>(J9Qze9%-0b2HtVkACC|F1p30D$Ic;~SNZvC@z36bbKz z;e^vt2+CgZTU?Y3+$610vbv5v5A?ANpMj+t2@%6H!-sC1&X>&FB8YrQFEqYSjgJ0o z&wTF&fg%VFMZSRBej~bn5(2uX)2uw~Z294xaTo+r&+B4!3TtbHUJ#t3@T(|&?GnmI z1!G9q5pzQ4BZ>LC3<4mc#A>C%>MSTADKS@0Ft^>SkiG*bl=^>GS&9Gw`T|`Yqo}s- zJB-JxAiy%XE8J`t{I}c><|0OC&z9V6WCt@d32|bS5ceJdATACM>0zTYoZH>H(e`$d zlZ31(sND_ce`W1Z#r9t|zr}`?O0~V(IspqF%yJHVS(se#OSyF`8L{k*!C#JaS^0iD z4WWMiQL_9W)*@)k|i4yEZw3pw>fWQ!i(F@nSrak5;!xgRsP$WDxiz{ZT5tdB8UyaWdEltb%A2E7xT*;C zB(vUwt1YcOAF&}9p5!Vf+`LIh$QVlGBlTf48mtfDh0rk=hQSnqJq^-o7v0?6?re5) zSyYbghA2G<^~n+dT+Wor{fTyxMob#7=bLOH=VOd2o%U)?Dz7-#a%gqBWN+;Z>4BN8 z#zh4bV<2a%2X71Ou4rgZp;aa}y7@hqf8-4las^!Ee8r_z^;DS_2s=(F*D7Ltoq{7# z%W{P>KF7$-tv9q_L{Gd5UwgvoJ!K1m=w) zHCxMPy*K?_MakfT>b0|_OmGorjA$gf^T0`nW^GFeP!Bx-c7Z9LJN^40Aq(S?@22__ zlf3sJ!mSRZ&As9-5GHu^HtkPVhy;#Az(JR&YnUEqs9w5s5WuMVIpY*NWr1UJyg3uz z2s62@r+&omGkfrS#Cd%00ijD6?YQy2UsMo|Yp8N+&+B8j>oITb`z;Yx;~2F`_@p4K z{?MJQv-7+=l?*GxA@0?mwgWF_{0eY%+@YK7$uH?uKgIFe!a+b zEJ@wPMdg&7q{Zk2??0Cu2`MS81;5A90-~i_ps(|IvSMSyn zD5}_TV^%4Z7Z#Gr`vynARfs%2oekA*)l-YGhPNrGy_Ssp;6!OJt@ZAuG7BHo2+IFf z=-WX5q%8a-JT%3r5W2P%?14CfpFf3gZ+xp+{(K)&23Fw{Ig861h+ppQ>l^FJR|ghJ ziz0y!ES{t&(Cr&UR+ zlNJ6-2JdW4j4ZA>u0-Suvs6}AdcE)`Z2Wi_=8Znc3XTLIYxm*y!u7=TYENrA)e$_C zu%sjg6B84=fii2+! zQ-;B3Opm*D?8iGFkFTr51Pb`)FJHhHI4EyHPWHnJlcI2^cF)u+!#72Yku3l%u1zKgS+mv&iX%%mF?LI9LE@Ng;MZlg+t z8aT6Xc4UPIgFH+oVxd)Sfwh3++!N>`#%~zPj`HsK(aN3`g1(}Y(&XphkHu?;&uK95 z1g{!dj!*ph)#REG-a4LcHG98j%1+jIbZNj=!+w>hdDtW*Aw8cPf3MgB)sb z@U~JAgKjrwh=a8Olo=AX;v2p-tPZWaA?UDV`$X5=;8{HmKb=P0oZ0o(tCjp%< zkQWO5o}ka_fw?NAS0Pe+XHj9NN>zH(;M}==V07Gq4VyIb75@3xewfqPCn!i0tQ-%P zIk=xe2!|1YZ-W^DLa?;VH{wBj5T??EvL`K#1<5@`9UX_}{jFgdVPxdLx+Mm}e9Bz~ zg?=x#^e{C7%Z-i?2QRzm!4g<1TnsCav;0f1`t;0R*E`w{4o7T)mNa4EzCj3_dlTEz z)_zb0$wELBQ*&}i5`T4PIhXWN#57afc!%781kC-xMTR(@+NIO1@X3=WzPp+u3P|+h zG>xEK!|x;Y%OTZ_3ZbSxA-lFErnIwp31BM|g5}wgqfd1&ce)#}CCjG)sAQ{PJD^`5zvwNd5KUr7;f;tP#H?Tgcp6m)6IsP%f zvXXjcV22INqGZVU5l_J6@Rk)KO0LYzJvzF&B+XW$Bm7P0DjVFN;s1hX&&X$IXNyYC zYXk++V;Vsk-{NCK5%ypT%%1WA+LC8n3KF3O(JrYTl6jB&+zIE1^3GZ(yq*r-Rt_P? z-v1sj*zwx6ld_~QIyzdbxA(3pgzex~Mu8&?ARJT0Ap^2-DxHsR(q|A+DN0}x&TOwO zva3AYkbwA1=c*+6lelWnZy?56z*VTZt^I~sA~8{LJtI^DjTwh*&&~83f=$lwIHT@E zV7l|J&PCXBA0k-G;E;ONnJaT!7d#m&tFPC#yhIj7R;$0fUNa`>|CXk;HG5Putm6eR?{-X(96is zgX5qY6r>0OLkauh$%&K7ESW_E6tvcI2

F0jShd2CF6Ae!DxGoworcTb#zK>fKeKGZQUI4LcWTp zr#O5KW4pVX({_>&F}ei@))I_122%oaxXWHR^YdJDl=<(vS=n%E=ZW9v|FhT)Y!#2M zHO#mwT5G(caISIwU8F^68S~)--Mt5b>gDy9S@OQjYPqW;xe1r)y%gN6Yn@Kg^0bK@{Ue0if;S zp_j{T*{J6VO-l6_WTqJeB9$7H3UzmP(Xnv{d+E1oh1AjwAKTh64)c;DF)+xP81*?e z>hl8Mk3;`cpVQQpk12UY4a88TrTnOl8B*yv3~>)V6ImYPwtq{PD+ic{F@;=+sDPKf zE%L!hF{Z_z2>Zkl!@R$nk7^$TF!+U|UKXEFjV~`JE&5oT=8U$X13#*#C*teZK$PI5 z*OUI7{dM{tO1YI$SO*W*EHo>b(vdNa5mN@qV3-Q8(^gDo0G+bHH83?ZlOj=Y`gMks zF2yf%ZEZ>%;J65s*DoK@ncC= zuG>93yEiC@w2}UjWS8mLvoZQvN*L6Lrrqda+IvAIFpyh=8H_sB|7JJJxV#~tQ(@A; zgbl^_;H<2LnAv6Dl~BIO#ZCp)6uaAV6nZ*okzZz2eSKFCW<-;+YK{)?Y>8aHdKIF1 zMZCS4;|4gm8QzqYiFJMJy9PzYbmPm$f2*)@%L%N z`H=7dK~>|_<%ZG8=x?5s?dt)`S;yxBYr5)2_y^o&nt%H26a4iztTEqUWT-o0Tn-=o z?!Lah!5Z)V*iM*%Q$_G|>gq0_X^bB72z%!k-QGv~WQYzuBF0UpSP#8QosROlOO&)Y z{+25w^3|WTxljqQyP*)tBc@duQ*deC2x5IBRv;)B3(=09y!Aaa>*6-S*Lp{UkJq(W zEDx8H{MEoHB$s1a#0``)&yD8H;|GSSn{&xXZa~d7|MgNmoK@J&%B*5xYM{oAvdAHqGTfDpWgU5*k)tIO0cs8kv?QU zK(rSxuHjj$J39+PEsHI@uf$lxNQIB-&8NcL!jh6*@DbJ5Z|(Z*&y7kIStozXU9M>u zY49)kI7_f|_NmEez_Hi@F3s9e8Jv?pt0oT`UId2jM-m=7(b?BZzmr6$DNA(iG`__|!sg)aA(r&u&d>n{sv}hxOlz zp1j*?NA`)Yy}i8^NF;*2kJ{~Q*MhN=aD47jBS)UJ(%h0i0WxT-A~8+R7k2kse!Az* zgNc*$WF)DboTL!bH99}hJib~hBLIiZ(Zy@_vW(@#z7Bc)xA`q>heL4?ww=CKxPKQN z1wYkwIuEWRKPkGYSJnbC9)PDJ?MLO1tEC2RRIz|r=;i#MQip6W^6qaRD|GUZEGkBB z6C>erL$Xla%7;+~txm1nP&-K?OA0-~t?J%OvtK&>F2)sb*i;%1&pok*jOF<8&kNae zfs}jq?lpS2CdCn;%Rw4cTpVqjyEm%1I5kKvp&^Qoii#qFDoQQYE}ogHH^RZ}pHm7( zgfJ^m%P_sIH}OkvrP1WfnedAt8^I7Y=RJQ;0jA7WnR0^v*Baa7$B#GF-{;8*82 zcb)rm^f4nvM5;f+x|*Gztdw|4b7aq;Ss6zF-=BfdECFiVuICq$LpDkCPZf1O(n#<> z!9<3^2Z5jP=2E9(JQ9xyBOGXYB{MaIPcSVl(WBV02JE1Ts{yJNvE8+v+f|Emopgp! zt3g`$dUb3ONcc|Tn>UV#7R2Ah$wde3XY2NTjy+|?#e#6HV2&%$xDt}t;Y>zCyg9tH zK?$3~;nbTyB3sVU5AgD1n1S}7|OdjT~h^eVv$}TP0X)whw zw#pjr=r~Aa+Dq-ZpsEZQr?B8TyQf#bjY=n)Ecwo(CL&6Kx z@8Itp7=W~@8HNpxX?E2iYbR#6d&{8*7dIEO379nn&oMwp?=qiqJyC2dHMD1MK0mA0 zRwNBv|CdRaz7&*| zpfxXin^U5?)gDE_ykW(-^@laCz^{92XmMpycX(6s`j-c!hUr&5Ge^bAE`41}s0m{weEuke)x7r5GR!&-h5> z3xd5GQ~25T=jDVwbz0MTIsV@z3OFu&|JHNf%`L2Te9yf1M_GSsCq<_b^`kPCO>z_N_^i#tMirY-{iZiUg8M7~pwrk_U)|TGk-> zXL7W*@5tMRLqryjce~!HQ@vu#ku`!Dr??>(Cntlt5i9DU>tm84m(QJqmSj*_Q_v7%uxk)29c8mL{}piFIu~Xi2^;m9(6Tb=$D&k;c$TE<1J=BisnLp5l$5Qose=^_xG> z4?dsWYMcIA2c8vz4dMz43dhMle@+_jF;ph!YjkAU7p7{Nv47>9kI&rHw&O7}OS6LS z!wg-C7_72}@gFEjAavd~Y z@v7J+O+lYhEDEM94erRU>pI>{g#5YDSRq+ZR-lwDJ94$Fun$Xe&CpPjbxVd-li9Oc zsql5ZfbN@Y-!eF>8{%*~SVsCxF}FQz_=tbu>&K4?evX1a3+pT^?D%Cb_*0+_#7>PJ zTJ$cq_%88w;>+jHFnw?^dTrm{cF6NX0#}>&xy90}J<{|T@wTS17t4dG7#qsL} zR5-n1&;>AY&_fn}H_P%P3TZdf)5pf*CBh!KZFz1$sAKV1R*sv2P+Idh62lW}&*qWs zOg%x2gi$2yf9t|*+n#Z#k(4oz-N41?!%S7rGsE?s;9hgBNMu&0*3|Mwr}321(HAi~ z^p;n8ofdPY*RCl40nWiQ=*gtI4D%$P0HJqPZ z88E*ZK=S+Q!4JRwtiP`bHgGwuM{3^u4wQz}j0|R*mf;=W?1DBO{f>sQ7TZ|+sr7QG zF0y2|n9QxOnEqHxxb?@RhqN4}CO#3>fQ?v=n+ezb&q;>6Qo$sIR-$gz81q8rK&6XT zwjV0biHUf6dhWS7cf`5t*3Fv)SYu+5Ue3k66m(wPc4D@5+!#*y)f;cn`5tk;8{?95 zO^GGty7`C)-@l+;B(CnqW%I^$(n8Odz1Ynqs}P0v8hL3x=A6mWn?b~Q@}A8V_EL5 zd+C0MGw*qE7ByzQIl__9D`enuMqpB&Tkr>m+xaDxH`Q?II`7~E&dmgXk(s>W=}?Ne zM3+-(FJ}ho9>n!gdT%k2QR8Z43|{ZKg|Ii0>M!zn$JKbB_N8QI4wcu2c*q_EYMJ!) ztHNqvB`saf8CzoiuGbY6L}{0=3a$!^h%{=lThrapCR)n8NKHsKqpAw{_&6$-`fPHGzA$(T?eS|JUp2gJ}$0rc=^gBtgj} zR$hA-g2}BDoOI^>Df<^3)&mTvvQ91XljqF)Mo;}iaURUV$(F>uOm zfVPrpp3yDS(K7nWtmd^f3y<%cbm$J*o;aLLqn_#imb}e5&EfsH?&+6)m)Ga-J1@MAG;pB2V z*xvWHSZ&R8K$EfjxDZ?O~-Fe`aSVOwGctq=X@>%8nn(DN)v<)`tJt6?m z8E(A$I(OAkm^B=kyO`@nf7?C*4mw85a&;Tu=Jp*u%7x>T)TWlx5d2ZouwTE%_n)g` z{-o1{ZbdTX?%hbhUC9q~zei>s>D1;Mi5cdte`^(j@JAKC>neQES&T<4*A^G6rjeCe zU6biAw@rq?5`$BI4(?5@FtHe%*;u&=F}&M6IsWeZPaAh8(%Yd6s_-7yA{dAQ1&IdK zEXlz=eU7+mF14&IiMTvr(rvoe9YDsuKea1gu#RKz&Uv{@&OBjGbg7~jXTNlZAstEY zpaWzrz|^+zrT=l(17x|KM}JRyTV^n$18P@=Ti8|lr0n;%8_!r-g?D6Ck74KH{O3*^ zDL8!gC@YQqXcIX;veufv?|&ZNLCh%0=A^cA6FK{b=wW5Qxp$|8iIQ8BsdtGkyxGMy zzf^9!cdcIjk3~GK#N9-dhT%EOlsgZQXGQAf=HffDV`6T*b;ZiNCH<7?G0(ZPrlzSW zBPwc5ZTbOHmwu5CzFe}j3YdKc%IN$CX>&nPf!n%Z@#DvbT-{==Hyq_a%mCl7P>XFO zRhy^zqj_;kU4ljAUE&>@hBy zC?>k~Q+Uj+JOQl3>-|Uf@A&>qw{2-*?~H*tly88#Dg3#QrRMMi#XZPD*Gqdc!-}DP zm{Bt}=u7J$CEvk=l+KIuoQ}!&0a53@TvuqT;=YpGTyzO1U?u#s<u6#2;nI!!$AN%uSLLBUw zYi;i}{O^>{l)WPGLlit;%`$+Lr}5`g{%hNRy$t@x(2D_g@j@I145h8^;+H{zXhw0R!2ddLvIyS#E}a5AT&&>AJ2z_W+0zo?idW1o=f>Vp zLx;9S^Yma`95~2GtD`S^4c}@YuQC6ftO^U63H($l?(Qc(B+K6wIB@^m_GWxjiA7;R z^gkDaM&SRcw{G#~lDusL=7`t$1a=a-30&r}r*t4gR27zf`Y0>GH>R%XO+tC#&(mYC(0TmM=qGrv*9l3G<}}(&5Hp(-HzlZ}f5XcYt7rp$bEJhxDE{sjn6iLr0Hq zzKxCrN|PqgE5VuSjMRY+Fa8xjf$hb0Uk`Z=d(DcS4F|XMMeTL6EB9>kD>_A{Gfm z!tp3}8x`ws_N#$)Z4{R)SLqE}2T#eccDrO}b?m-*bF#jDX<(SCntm3$K5DARg}}1& zL&(5eI6q>>(#_fw_rD-FhFJ@WF%eQ!5NEZ)KP@NANUT@u@6~^X_n5tltv+{6(HGZr|^# z0lAA;SAK4om_`lH;n-0JxGi3LnICiYFGXcJ$4ACjV3KbNN?q>QXiR+!tg*S2Y~_D1 zlOaW(IJ?mMP@-=k9~GjooA>&DjmGj*8lU*6yc38#Xe~H4D*{WL5qiB#UJw*0iwbjQ4e!IQ|Z5Atlydq zkjz@ruX0E=(={A$iS?h$OZ_XhBn>$SVi@zDFEa@|nhP>e47x*q%c@E;>3)3n&6_5r zxcNaEf72PfEDE#MLjY>>3f1SvEg$#a?%Vs&Ve@-jL8MS)}pN>xxp2JE`; z6}LUn*QjhJR0*bMj&s5*iwd51n05v3f(f#^db7Q>EDv#L+XEM^hs6{1b#hnozW6b> zSJA0i*HKYeQ6#yzGu$4 z`Gc?%!@;*3&Gy}9+@6ma#SdZit$b+HX1=?h*xhl`4F zC9;Z~zxY#zBF6FB{H+i)O=FbGgONcSo{gYbM}T=4)Z5Pk*FQ+;qTV?wJ-Wg6#otQJ z-=7A{=J2(@jvq2FG2@bq@9ll+m-F}fDHJ>iLA3{x4!y;|!a#jp^7=YwTNOn~ADz+W z*sCQygU5yc_^whF2p7N$7e+bAIb_>?=nPrOm61+&Xn z+f+xTw0z>>-0;0<^OF=Qc)*BgM2Z6&nyT``nwpw{zX(OyhpbWzJ$Offs?s_Vtgbfv zb455D>FClkG7w?BqPj=lm>IM@OWU=;?RmXF`MijZ{`c=PJRc7J$GClxTMNCz@;)Xi zI1b+ZC$F`!Js^!hUvk8%25l!4OlD24<0;aAp6ZN{E)tQGI`RZc?BS+j(}N2*oz8uE zu3Y%w0R==Oz~dFd8eDVfO23mcJ@P%Et9JG3ZrsA5aD2vy;#R{{f>Qd!!;<|2=eeoK z^4vIf2eAG8^=l+QrY?qn{a}zxbM^ONSaZyIv@4(<5K-Aq*57@{K4V_1c(0fSd6!Yt zyNbProZ>4kPo;ZjCHM&9b)vo|dtmVREy3(&ue=gNZeg8!qnvi(Uccjtot={*Yk|RX z+_J!xnPF`BR%YO9Xk1)nZHCMHn<9QoeYSSvZyyqfdeq{#f@=djQ-U6xKh!QNb;Q`A zzZ1bBZ_&P7XScZ>Zo4(D-`gjnV!D+|eWlj=mc)K4&buG$P(KgV&7KdsFYIpBt*2R7 zT>M}A1jt)s{Z#EIX*Qd3MnogEz<-u9|7IoRf>8l~Ua%9|HvC5O)vdXm>zKEVtu6@q zDQw?ZU)s7h5mfoT|4VyZLG=Z67jX8B`~90l%u0^;mW}^08d~j^m3y%tz3H@==r2V@ zY1T~ST(NlaOUq+;`|$INJM0LyPgaj{hxLEFog|q`#HYH`rjTlAIKP^jbLCgK^v*SM zO5#t>&c#X#RI!m&RX&J`wEtS;1N+}ZKoL|;^Bt2J85v1uJ=Z8Q#I2K7hKHlkpbK4{ z{T$Y*Bu`{Y-zew1zq4qe+-2e|2OX;>aa=*;XobW3n~yL{Qovyv4dxu<`e}1`w^Q#D zY#v`|J~tI~^@bAF9z?B}Mwm2tT3TAxEcKs7L?g|ABR8;o2}5o0iMbv>zCaaaLZw#J z%9l)`zpE*NsNvm;%gVLsdbWKlwjeWt#udpmX$q#w+Z4Le6KRo92f~|T4?zk=V8R$G ze~UsU2)H0T+R3u28N{kxltM3abt5~ql_m7m@2Qp+pGgjrV=gG#vBmT}F75;#aY9v9 zCFWi%5A-r4|NRSl94?pMlbJv(emkPS-=V?+*B>XVo>f;gTYb__(+Y;K`?-nhuqXf4I`NRs@vN$gZ~ISOgUIm5f;(?`-L%+A7ZK(KV~IOPrD7iSlqQa zdvVTTV>x7WJlQw@*|P%*lJ|zszMbQbYtrp}ykND$ZGyzxCOq=P*L>KVJ6;l?|7ztrJlnHce{-`Kmoy|Pjnw7~!e9qo@s!>dmN?3R0199CW#^EwunZ1r#x-joYronauSlBUsC6?i9rmnzB;_at14g4UCM{E)sI zvh4xY3JfY%rjDT2b8;%QuV(aY5atZ$gWdGS7MPSQe3Y+m0%gQ&q@iw}hV3wm^4q0orB|LNPV?F{tNm^W|lyh_Dn8rE$x7=m3Qg7Tyj@@<8$Xbz}cDGo=U?rPT zx(n+1!PnQ01aEv99)pm<7fWFO(`VUKjHNTPRJFl#e@Lg7UWXPG4Blr3Fze z??h9>Fm^?pXA2lu(E_?bXDkaI{-DF#_$e$b%pH09t&O`or|0VhK|&=1(dI?us}Yn~ zO$a0d!G)@PfL=2--_8G9kZ9pn*IqxB8p9|Z-jhty7%4y_od5bY+5P)Ji;6g6-raZz z*=n3pHP>}lJF*LMrRw_&iY{M%Iu8G6SGQwHiUCUM4i5W4^?)k~sB_IJPC<66yd%&r zz72iFVY8Gc(bCb@reSZ-k6{zR9`(ZqJs1}7$;bpBW0uiJE{rc>91X9IKUbU+4yWL5 zK8iS0p#a5TVOBMDby9bC_xXiZc}OvMq-FNfQ+i5Mh0|#^>K<9{={`-k)RB#aCchak z2q}QVtgNhW9WA{>ii+dFB!!=|QYTNhG@I<%riwPVp>7{;diq3H_jPVexWU$?{M37y zm0+Fv`?4yl45}2(PcFwY^;o3!!})|$1P=aPd_r)S+T2t_>Tto+%XBm}f6;>_mzIw9 z4E>ox&^tz+&7;jRuw5YJ6LZVR$V^Vkg=J)zVJccIs@C%_pv#d&T0c@aE=7PDH#Mvv z)C>%E12{#>eI$63j?T{fLPAH&UUY8-6G$)35hOv@{pCQ2K|Z*0itA667)XdP6006y zQ>V};#n8Uu^XBu%vt(z^BoT-pxgp=Lqb?Yo`~-o^Gkh?Gqr_T#toWm0d^%kv`)hd& zPo7kDb~f{Srl%Aae-a-8TpFw}!p}}W$Va%xO-sxQo;)cuJQxl(12`-Tg}fKu0zaEv znlrrXs(oSBo?EVh9qUI;ze5$p@c5h9U89*Lq8gv5QsQ)UyzF|50v(-yLCDKt{6J4t zRh1Y#tJL(qmBzG2aL{6F16E)$_igZriv$DrU_^5a7Za6V{>81r=(!`i^aP2I9eY7& z!rs590eOM}2a(ZfspEo6Mwb@7@#A)cAANC2$o>5JPlFbWSiAa1G^bBkGBl0qKuMle z;ix;u3I0_ZqY=O6x}qiSf(G>~dag8>B7HAC+AGqj-Jxi!VsU*>Zual3;q} z6_XHcZGFzdJTblnK-f_SV3k4Z-%sgi1q2)nSAAhPFmRhL4U#L$+a7QrVC1FXZ!HZ?az7?E?P^Y$goN{lc0 ze;OL1HtkzyHIbtDj)XP)>Xo^nug_;CY8F2}Lq!^GHR=4snf@^(eLBy1WMK65Cf;bP?>pCOJtWLv|T1*y%f6wMwepsN#KHESG}Ul0gh6JOZA$w6mCEa` z^M^T9FJ}KcPI762e@I9$DHc^vE0xSTa9eNp?T!d}ha=w`uN%Ls z3bsz@2R4G+wV>q4tXb!$A0iuo!m~8c(Y5 z-AXQ(^t#1AwcUGoBdvK#j|@s+n94Vee~L&uc5Fy-+MD)+GqYJqZKrBxsyJSrM6k_p zAvqB&Nlw`g6A=L@Q1$WIN2bbKaWrc-Vp}|sExGkZ^)S9f!Jw<5YC@}dc=|^(mK<$) z8z*^u3q`zUc*_{a&BaB(K&q(CE@@_-WE*qQI2!#M_LUZgJ*|FP?s1HdQsE=2S0>Uo zM!oN~>UGF*==M~I^PLBbNoHnd`;J^%y*I|K7q>5FiA?j>Ao zC5#`OshywvEX`8nnzMWJC_#}IpdrpW+(l&iHwXtRGPi))JsBd4clyy^u9VAL^*g4( zRqpC<;iSFiqx#&{v9JNI>IpLMj^DfcK?aMJ zJ;gLg%{tdx6z-+c#Om2@VJDSsy(IfdM^syw0b&dj{S5}W$_{d$)6G@<8q_T!@{U8M*lvrQSw8+qen05 zv|ko~a^_HKXi?9UhOX}KZVNgvtiO>SpPEva@5)W-vbKHjpsFk(+Q^qk1vd8eW!aVC zqgMNM1?9K}|8aleE>#`61d>cVS$a=*H=x?fBEwoFinCe4NwDZIx-LF*T5sw~ZSV~t zq4B3BCn-u8CM|6b2npq;*DJQ%60jWcx~pJ+NJfUdp(bC1iCOc)s$jU#KEl6(8hLh7 zW{uv&D@4r9^t&ncU;n@Vgv$V7|My-0`&%*U{J&qlJ{H$V^?$#*FYe&~`{DmjAD9&V z72@lYU&j|}0GCmK;$gJ;_clx?PnojuB)g=X(ALmsP8Dl+y{H_vynJcevAYOU%Wo)f!P)_y(kiUOik%;wbQFI z@#%Ko+O91SCNcqHpsb@DM-7dmEi=Vz_GDzRpGtN%*@&P(2YOM7bj!Rmd6FnN2P8}_uqQqBzis*d;Plb u8T85czW@Et$jY1a{Qp}||Nm{k^_|bI98b+z>ynA^Pgm1GqfE^%{C@$v=nPc= diff --git a/pos_barcode_tare/static/description/index.html b/pos_barcode_tare/static/description/index.html new file mode 100644 index 00000000..e6e54593 --- /dev/null +++ b/pos_barcode_tare/static/description/index.html @@ -0,0 +1,443 @@ + + + + + + +Point of Sale - Tare barecode labels for loose goods + + + +

+

Point of Sale - Tare barecode labels for loose goods

+ + +

Beta License: AGPL-3 OCA/pos Translate me on Weblate Try me on Runbot

+

This add-on enable POS to read and print tare barcodes. A tare barcode is used to sell loose goods in a bring your own +container (BYOC) scheme.

+
+
The BYOC scheme has four steps:
+
    +
  1. The cashier weights the container and sticks the tare bar code onto the customer’s container.
  2. +
  3. The customer takes the desired quantity of the good s-he wants to buy.
  4. +
  5. The cashier weights the filled container and good, POS gives the corresponding price.
  6. +
  7. The cashier scans the tare bar code, POS removes the container’s weight from the latest product of the order.
  8. +
+
+
+

This add-on adds a news screen to POS to (web) print the tare barcode labels. This add-on enables POS to read a tare +barecode. When such a barcode is read, POS adjusts the weight of the latest article in the order list. +The new weight is equal to the total weight minus the tare weight. The price is updated accordingly to the weight +change.

+

Table of contents

+ +
+

Usage

+

Install this add-on and configure the point of sale where you want to be able to use the tare barecode. +You can also select the label format in the point of sale configuration. The label printing is done using +web print. To streamline the label printing it is advised to use the silent printing mode (firefox) or +the kiosk printing (chrome).

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Le Nid
  • +
+
+
+

Contributors

+
    +
  • Le Nid
  • +
  • CoopITEasy
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/pos project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/pos_barcode_tare/static/src/css/tare_screen.css b/pos_barcode_tare/static/src/css/pos_barcode_tare.css similarity index 87% rename from pos_barcode_tare/static/src/css/tare_screen.css rename to pos_barcode_tare/static/src/css/pos_barcode_tare.css index cefa72eb..2e12a1a0 100644 --- a/pos_barcode_tare/static/src/css/tare_screen.css +++ b/pos_barcode_tare/static/src/css/pos_barcode_tare.css @@ -20,6 +20,10 @@ overflow: hidden; } +.pos .pos-tare-label .caption { + display: block; +} + .pos .tare-screen .pos-directions-for-user { font-size: 25px; margin: 8px; @@ -45,8 +49,8 @@ } .pos .pos-tare-label img { - width: 50mm; - height: 45mm; + width: 50mm; + height: 45mm; } .pos .tare-screen .print-label { @@ -73,13 +77,16 @@ border: none; } + .pos .pos-tare-label .caption { + display: block; + } + .pos .pos-tare-paper { margin: 0; margin-left: 0 !important; margin-right: 0 !important; - width: 42mm !important; - height: 29mm !important; - background: white; + width: 99% !important; + height: 99% !important; display: block; position: fixed; display: flex !important; @@ -87,10 +94,10 @@ align-items: center !important; } - .pos-tare-label img { - width: 30mm !important; - height: 25mm !important; + width: 27mm !important; + height: 21mm !important; + display: run-in; } .pos .pos-tare-label { @@ -100,6 +107,5 @@ position: fixed !important; border: none !important; font-size: 10px !important; - } } \ No newline at end of file diff --git a/pos_barcode_tare/static/src/js/barcode.js b/pos_barcode_tare/static/src/js/barcode.js deleted file mode 100644 index 200f1acc..00000000 --- a/pos_barcode_tare/static/src/js/barcode.js +++ /dev/null @@ -1,36 +0,0 @@ -odoo.define('barcode_tare',function(require) { - "use strict"; - var screens = require('point_of_sale.screens'); - var gui = require('point_of_sale.gui'); - var core = require('web.core'); - var _t = core._t; - - screens.ScreenWidget.include( - { - barcode_weight_action: function(code){ - var self = this; - var order = this.pos.get_order(); - var last_order_line = order.get_last_orderline(); - var total_weight = last_order_line.get_quantity(); - var tare = code.value; - var paid_weight = total_weight - tare; - - if (paid_weight <= 0) { - this.gui.show_popup('confirm', { - 'title': _t('Poids négatif'), - 'body': _t('Le poids à payer est négatif. Avez-vous scanné le bon code bare ?'), - confirm: function(){ - last_order_line.set_quantity(paid_weight) - }}); - } else { - last_order_line.set_quantity(paid_weight) - } - }, - - show: function(){ - var self = this; - this._super() - this.pos.barcode_reader.set_action_callback('weight', _.bind(self.barcode_weight_action, self)) - }, - }); -}); diff --git a/pos_barcode_tare/static/src/js/open_tare_screen_button.js b/pos_barcode_tare/static/src/js/open_tare_screen_button.js deleted file mode 100644 index 1ac00e57..00000000 --- a/pos_barcode_tare/static/src/js/open_tare_screen_button.js +++ /dev/null @@ -1,20 +0,0 @@ -odoo.define('tare-screen-button.button', function (require) { - "use strict"; - var core = require('web.core'); - var screens = require('point_of_sale.screens'); - var gui = require('point_of_sale.gui'); - - var TareScreenButton = screens.ActionButtonWidget.extend({ - template: 'TareScreenButton', - - button_click: function(){ - var self = this; - this.gui.show_screen('tare'); - } - }); - - screens.define_action_button({ - 'name': 'tareScreenButton', - 'widget': TareScreenButton, - }); -}); diff --git a/pos_barcode_tare/static/src/js/pos_barcode_tare.js b/pos_barcode_tare/static/src/js/pos_barcode_tare.js new file mode 100644 index 00000000..4c30c183 --- /dev/null +++ b/pos_barcode_tare/static/src/js/pos_barcode_tare.js @@ -0,0 +1,199 @@ +odoo.define('barcode_tare', function (require) { + "use strict"; + var screens = require('point_of_sale.screens'); + var gui = require('point_of_sale.gui'); + var core = require('web.core'); + var _t = core._t; + + screens.ScreenWidget.include( + { + barcode_weight_action: function (code) { + var self = this; + var order = this.pos.get_order(); + var last_order_line = order.get_last_orderline(); + var total_weight = last_order_line.get_quantity(); + var tare = code.value; + var paid_weight = total_weight - tare; + + if (paid_weight <= 0) { + self.gui.show_popup('confirm', + {'title': _t('Negative weight'), + 'body': _t('The calculated weight is negative. ' + + 'Did you scan the correct tare label?'), + confirm: function () { + last_order_line.set_quantity(paid_weight); + }}); + } else { + last_order_line.set_quantity(paid_weight); + } + }, + + show: function () { + var self = this; + this._super(); + this.pos.barcode_reader.set_action_callback( + 'weight', + _.bind(self.barcode_weight_action, self)); + }, + }); +}); + +odoo.define('tare-screen-button.button', function (require) { + "use strict"; + var core = require('web.core'); + var screens = require('point_of_sale.screens'); + var gui = require('point_of_sale.gui'); + + var TareScreenButton = screens.ActionButtonWidget.extend({ + template: 'TareScreenButton', + + button_click: function () { + var self = this; + this.gui.show_screen('tare'); + }, + }); + + screens.define_action_button({ + 'name': 'tareScreenButton', + 'widget': TareScreenButton, + }); +}); + +odoo.define('tare-screen.screen', function (require) { + "use strict"; + var chrome = require('point_of_sale.chrome'); + var core = require('web.core'); + var devices = require('point_of_sale.devices'); + var gui = require('point_of_sale.gui'); + var models = require('point_of_sale.models'); + var screens = require('point_of_sale.screens'); + var QWeb = core.qweb; + + var TareScreenWidget = screens.ScreenWidget.extend({ + template: 'TareScreenWidget', + next_screen: 'products', + previous_screen: 'products', + default_tare_value_kg: 0.0, + + show: function () { + this._super(); + var self = this; + var queue = this.pos.proxy_queue; + + queue.schedule(function () { + return self.pos.proxy.scale_read().then(function (weight) { + self.set_weight(weight.weight); + }); + }, {duration:150, repeat: true}); + + this.render_receipt(); + this.lock_screen(true); + }, + set_weight: function (weight) { + if (weight > 0) { + this.weight = weight; + this.render_receipt(); + this.lock_screen(false); + } + }, + get_weight: function () { + if (typeof this.weight === 'undefined') { + return this.default_tare_value_kg; + } + return this.weight; + }, + ean13_checksum: function (s) { + var result = 0; + for (var counter = s.length-1; counter >=0; counter--) { + var counterCheckSum = counter % 2; + counterCheckSum *= 2; + counterCheckSum += 1; + result += parseInt(s.charAt(counter), 10) * counterCheckSum; + } + var checksum = 10; + checksum -= result % 10; + return checksum % 10; + }, + barcode_data: function (weight) { + var padding_size = 5; + var default_weight_prefix_id = "21"; + var void_product_id = '0'.repeat(padding_size); + var weight_in_gram = weight * 10e2; + var weight_with_padding = '0'.repeat(padding_size) + weight_in_gram; + var padded_weight = weight_with_padding.substr( + weight_with_padding.length - padding_size); + var barcode_data = default_weight_prefix_id.concat(void_product_id, + padded_weight); + var checksum = this.ean13_checksum(barcode_data); + var barcode = barcode_data.concat(checksum); + + console.log(barcode); + return barcode; + }, + get_barcode_data: function () { + return this.barcode_data(this.get_weight()); + }, + should_auto_print: function () { + return this.pos.config.iface_print_auto && + !this.pos.get_order()._printed; + }, + should_close_immediately: function () { + return this.pos.config.iface_print_via_proxy && + this.pos.config.iface_print_skip_screen; + }, + lock_screen: function (locked) { + this._locked = locked; + if (locked) { + this.$('.print-label').addClass('disabled'); + } else { + this.$('.print-label').removeClass('disabled'); + } + }, + print_web: function () { + window.print(); + this.pos.get_order()._printed = true; + }, + print: function () { + var self = this; + + // See comment in print function of ReceiptScreenWidget + + this.lock_screen(true); + + setTimeout(function () { + self.lock_screen(false); + }, 1000); + + this.print_web(); + this.click_back(); + }, + click_back: function () { + this.close(); + this.gui.show_screen(this.previous_screen); + }, + renderElement: function () { + var self = this; + this._super(); + this.$('.back').click(function () { + self.click_back(); + }); + this.$('.print-label').click(function () { + if (!self._locked) { + self.print(); + } + }); + }, + render_receipt: function () { + this.$('.pos-tare-label-container').html( + QWeb.render('PosTareLabel', {widget:this})); + }, + close: function () { + this._super(); + delete this.weight; + this.pos.proxy_queue.clear(); + }, + }); + + gui.define_screen({name:'tare', widget: TareScreenWidget}); + +}); diff --git a/pos_barcode_tare/static/src/js/tare_screen.js b/pos_barcode_tare/static/src/js/tare_screen.js deleted file mode 100644 index f6fe0e1b..00000000 --- a/pos_barcode_tare/static/src/js/tare_screen.js +++ /dev/null @@ -1,139 +0,0 @@ -odoo.define('tare-screen.screen', function (require) { - "use strict"; - var chrome = require('point_of_sale.chrome'); - var core = require('web.core'); - var devices = require('point_of_sale.devices'); - var gui = require('point_of_sale.gui'); - var models = require('point_of_sale.models'); - var screens = require('point_of_sale.screens'); - var QWeb = core.qweb; - - var TareScreenWidget = screens.ScreenWidget.extend({ - template: 'TareScreenWidget', - next_screen: 'products', - previous_screen: 'products', - default_tare_value_kg: 0.0, - - show: function(){ - this._super(); - var self = this; - var queue = this.pos.proxy_queue; - - queue.schedule(function(){ - return self.pos.proxy.scale_read().then(function(weight){ - self.set_weight(weight.weight); - }); - },{duration:150, repeat: true}); - - this.render_receipt(); - this.lock_screen(true); - }, - set_weight: function(weight){ - if (weight > 0){ - this.weight = weight; - this.render_receipt(); - this.lock_screen(false); - } - }, - get_weight: function(){ - if (typeof this.weight === 'undefined') { - return this.default_tare_value_kg; - } - return this.weight; - }, - ean13_checksum: function(s){ - var result = 0; - for (let counter = s.length-1; counter >=0; counter--){ - result = result + parseInt(s.charAt(counter)) * (1+(2*(counter % 2))); - } - return (10 - (result % 10)) % 10; - }, - barcode_data: function(weight, weight_prefix_id=21){ - var padding_size = 5; - var void_product_id = '0'.repeat(padding_size); - var weight_in_gram = weight * 10e2; - var weight_with_padding = '0'.repeat(padding_size) + weight_in_gram; - var padded_weight = weight_with_padding.substr(weight_with_padding.length - padding_size); - var barcode_data = `${weight_prefix_id}${void_product_id}${padded_weight}`; - var checksum = this.ean13_checksum(barcode_data); - console.log(`${barcode_data}${checksum}`); - return `${barcode_data}${checksum}`; - }, - get_barcode_data: function(){ - return this.barcode_data(this.get_weight()); - }, - should_auto_print: function() { - return this.pos.config.iface_print_auto && !this.pos.get_order()._printed; - }, - should_close_immediately: function() { - return this.pos.config.iface_print_via_proxy && this.pos.config.iface_print_skip_screen; - }, - lock_screen: function(locked) { - this._locked = locked; - if (locked) { - this.$('.print-label').addClass('disabled'); - } else { - this.$('.print-label').removeClass('disabled'); - } - }, - print_web: function() { - window.print(); - this.pos.get_order()._printed = true; - }, - print: function() { - var self = this; - - // The problem is that in chrome the print() is asynchronous and doesn't - // execute until all rpc are finished. So it conflicts with the rpc used - // to send the orders to the backend, and the user is able to go to the next - // screen before the printing dialog is opened. The problem is that what's - // printed is whatever is in the page when the dialog is opened and not when it's called, - // and so you end up printing the product list instead of the receipt... - // - // Fixing this would need a re-architecturing - // of the code to postpone sending of orders after printing. - // - // But since the print dialog also blocks the other asynchronous calls, the - // button enabling in the setTimeout() is blocked until the printing dialog is - // closed. But the timeout has to be big enough or else it doesn't work - // 1 seconds is the same as the default timeout for sending orders and so the dialog - // should have appeared before the timeout... so yeah that's not ultra reliable. - - this.lock_screen(true); - - setTimeout(function(){ - self.lock_screen(false); - }, 1000); - - this.print_web(); - this.click_back(); - }, - click_back: function() { - this.close() - this.gui.show_screen(this.previous_screen); - }, - renderElement: function() { - var self = this; - this._super(); - this.$('.back').click(function(){ - self.click_back(); - }); - this.$('.print-label').click(function(){ - if (!self._locked) { - self.print(); - } - }); - }, - render_receipt: function() { - this.$('.pos-tare-label-container').html(QWeb.render('PosTareLabel',{widget:this})); - }, - close: function(){ - this._super(); - delete this.weight; - this.pos.proxy_queue.clear(); - }, - }); - - gui.define_screen({name:'tare', widget: TareScreenWidget}); - - }); \ No newline at end of file diff --git a/pos_barcode_tare/static/src/xml/open_tare_screen_button.xml b/pos_barcode_tare/static/src/xml/open_tare_screen_button.xml deleted file mode 100644 index a96a652e..00000000 --- a/pos_barcode_tare/static/src/xml/open_tare_screen_button.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - Créer une étiquette de tare - - - diff --git a/pos_barcode_tare/static/src/xml/tare_screen.xml b/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml similarity index 69% rename from pos_barcode_tare/static/src/xml/tare_screen.xml rename to pos_barcode_tare/static/src/xml/pos_barcode_tare.xml index 996191c4..29a0c89c 100644 --- a/pos_barcode_tare/static/src/xml/tare_screen.xml +++ b/pos_barcode_tare/static/src/xml/pos_barcode_tare.xml @@ -8,15 +8,15 @@ Back -

Création d'une étiquette de tare

+

Print a tare label

- Appuyez sur la touche print puis vérifiez le poids ci-dessus. + Set the pot on the scale and check the weight above
@@ -29,10 +29,19 @@
-
- tare = kg + tare = kg
- \ No newline at end of file + + + + + + Print a tare label + + + + + diff --git a/pos_barcode_tare/views/pos_barcode_tare.xml b/pos_barcode_tare/views/pos_barcode_tare.xml new file mode 100644 index 00000000..da293016 --- /dev/null +++ b/pos_barcode_tare/views/pos_barcode_tare.xml @@ -0,0 +1,8 @@ + + + diff --git a/pos_barcode_tare/views/pos_config_view.xml b/pos_barcode_tare/views/pos_config_view.xml new file mode 100644 index 00000000..22f59bad --- /dev/null +++ b/pos_barcode_tare/views/pos_config_view.xml @@ -0,0 +1,16 @@ + + + + + pos.config + + + + + + + + + + + diff --git a/pos_barcode_tare/views/templates.xml b/pos_barcode_tare/views/templates.xml deleted file mode 100644 index 29894343..00000000 --- a/pos_barcode_tare/views/templates.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - -