From 451a2198600a01fefc1a36d166bca65eb38fc3cb Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sun, 31 Mar 2013 19:49:04 +0200 Subject: [PATCH] Version 2.4: Implement handling of alphanumeric postal codes for UK and Canada --- Makefile | 2 +- .../en-GB.plg_vmshipment_rules_shipping.ini | 20 +++++------ ...hipment_rules_shipping_advanced_v2.4.0.zip | Bin 0 -> 21426 bytes .../plg_vmshipment_rules_shipping_v2.4.0.zip | Bin 0 -> 17902 bytes rules_shipping.xml | 2 +- rules_shipping_advanced.php | 31 ++++++++++++++++++ rules_shipping_advanced.xml | 2 +- 7 files changed, 44 insertions(+), 13 deletions(-) create mode 100644 releases/plg_vmshipment_rules_shipping_advanced_v2.4.0.zip create mode 100644 releases/plg_vmshipment_rules_shipping_v2.4.0.zip diff --git a/Makefile b/Makefile index b5a8095..5a3d454 100644 --- a/Makefile +++ b/Makefile @@ -1,7 +1,7 @@ BASE=rules_shipping BASE_ADV=rules_shipping_advanced PLUGINTYPE=vmshipment -VERSION=2.3.0 +VERSION=2.4.0 PLUGINFILES=$(BASE).php $(BASE)_base.php $(BASE).script.php $(BASE).xml index.html PLUGINFILES_ADV=$(BASE_ADV).php $(BASE)_base.php $(BASE_ADV).script.php $(BASE_ADV).xml index.html diff --git a/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini b/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini index 643576e..8fa54cc 100644 --- a/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini +++ b/language/en-GB/en-GB.plg_vmshipment_rules_shipping.ini @@ -10,20 +10,20 @@ VMSHIPMENT_RULES_ADV_DESC="" VMSHIPMENT_RULES_PLUGIN="<b>Shipment based on general rules (weight, products, amount) per country-zones</b>" VMSHIPMENT_RULES_PLUGIN_ADV="<b>Shipment based on general rules (weight, products, amount) per country-zones, including arithmetic expression</b>" -VMSHIPMENT_RULES_HELP="<div style='background: #DDDDDD; padding:5px; margin:3px;'><h2>Overview of the Rules Syntax</h2><ul><li>Each line contains one rule consisting of several <b>conditions and assignments in arbitrary order and separated by semicolons</b>. </li><li>The <b>first matching rule is used</b> to calculate the shipping costs. If its shipping cost is set to <tt>NoShipping</tt>, then this method will not offer any shipping at all.</li><li>All rule parts with <b>comparison operators (<, <=, =<, ==, !=, <>, >=, =>, >)</b> are conditions.</li><li> Supported <b>variables (case-insensitive)</b>: <b><tt>Amount</tt></b>, <b><tt>Weight</tt></b>, <b><tt>ZIP</tt></b>, <b><tt>Products</tt></b> (number of different products), <b><tt>Articles</tt></b> (counted with quantity), <b><tt>Volume</tt></b> (total volume of the order) and <b><tt>MinVolume</tt>, <tt>MinLength</tt>, <tt>MinWidth</tt>, <tt>MinHeight</tt></b> as well as the same variables with <tt>Max</tt> instead of <tt>Min</tt>.</li><li>A condition can consist of multiple chained comparisons.</li><li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost without tax if the rule matches) and <b><tt>ShippingWithTax</tt></b> (shipping cost including taxes if the rule matches). The <tt>Shipping=</tt> can be left out (<tt>ShippingWithTax=</tt> can not be left out). I.e. a rule part consisting only of a numerical value is understood as net shipping cost without tax.</li></ul><p>EXAMPLE: A rule named "Europe" that sets shipping costs of 4.50 for order amounts from 50 to less than 100, and free shipping from 100€ on would be:</p><blockquote><tt>Name=Europe; 50<=Amount<100; Shipping=4.50<br>Name=Free Shipping; 100<= Amount; 0</tt></blockquote></div>" -VMSHIPMENT_RULES_HELP_ADV="<div style='background: #DDDDDD; padding:5px; margin:3px;'><h2>Overview of the Rules Syntax</h2><ul><li>Each line contains one rule consisting of several <b>conditions and assignments in arbitrary order and separated by semicolons</b>. </li><li>The <b>first matching rule is used</b> to calculate the shipping costs. If its shipping cost is set to <tt>NoShipping</tt>, then this method will not offer any shipping at all.</li><li>All rule parts with <b>comparison operators (<, <=, =<, ==, !=, <>, >=, =>, >)</b> are conditions.</li><li> Supported <b>variables (case-insensitive)</b>: <b><tt>Amount</tt></b>, <b><tt>Weight</tt></b>, <b><tt>ZIP</tt></b>, <b><tt>Products</tt></b> (number of different products), <b><tt>Articles</tt></b> (counted with quantity), <b><tt>Volume</tt></b> (total volume of the order) and <b><tt>MinVolume</tt>, <tt>MinLength</tt>, <tt>MinWidth</tt>, <tt>MinHeight</tt></b> as well as the same variables with <tt>Max</tt> instead of <tt>Min</tt>.</li><li>A condition can consist of multiple chained comparisons. In the advanced version, the OR operator is available, too.</li><li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost without tax if the rule matches) and <b><tt>ShippingWithTax</tt></b> (shipping cost including taxes if the rule matches). The <tt>Shipping=</tt> can be left out (<tt>ShippingWithTax=</tt> can not be left out). I.e. a rule part consisting only of a numerical value is understood as net shipping cost without tax.</li><li>In the advanced version, all expressions (conditions and shipping costs) may contain <b>arbitrary basic arithmetic expressions (+, -, *, /, %, ^ and parentheses)</b> of the above variables.</li></ul><p>EXAMPLE: A rule named "Europe" that sets shipping costs of 5€ plus 1.50€ per article for order amounts from 50 to less than 100, and free shipping from 100€ on would be:</p><blockquote><tt>Name=Europe; 50<=Amount<100; Shipping=5+1.50*Articles<br>Name=Free Shipping; 100<= Amount; 0</blockquote></div>" +VMSHIPMENT_RULES_HELP="<div style='background: #DDDDDD; padding:5px; margin:3px;'><h2>Overview of the Rules Syntax</h2><ul><li>Each line contains one rule consisting of several <b>conditions and assignments in arbitrary order and separated by semicolons</b>. </li><li>The <b>first matching rule is used</b> to calculate the shipping costs. If its shipping cost is set to <tt>NoShipping</tt>, then this method will not offer any shipping at all.</li><li>All rule parts with <b>comparison operators (<, <=, =<, ==, !=, <>, >=, =>, >)</b> are conditions.</li><li> Supported <b>variables (case-insensitive)</b>: <b><tt>Amount</tt></b>, <b><tt>Weight</tt></b>, <b><tt>ZIP</tt></b>, <b><tt>Products</tt></b> (number of different products), <b><tt>Articles</tt></b> (counted with quantity), <b><tt>Volume</tt></b> (total volume of the order) and <b><tt>MinVolume</tt>, <tt>MinLength</tt>, <tt>MinWidth</tt>, <tt>MinHeight</tt></b> as well as the same variables with <tt>Max</tt> instead of <tt>Min</tt>.</li><li>A condition can consist of multiple chained comparisons.</li><li>All rule parts of the form <b><tt>[VARIABLE]=VALUE</tt> are assignments</b>, with <tt>[VARIABLE]</tt> being one of <b><tt>Name</tt></b> (optional name of the rule, displayed in the cart and invoice), <b><tt>Shipping</tt></b> (shipping cost without tax if the rule matches) and <b><tt>ShippingWithTax</tt></b> (shipping cost including taxes if the rule matches). The <tt>Shipping=</tt> can be left out (<tt>ShippingWithTax=</tt> can not be left out). I.e. a rule part consisting only of a numerical value is understood as net shipping cost without tax.</li></ul><p>EXAMPLE: A rule named "Europe" that sets shipping costs of 4.50 for order amounts from 50 to less than 100, and free shipping from 100€ on would be:</p><blockquote><tt>Name=Europe; 50<=Amount<100; Shipping=4.50<br>Name=Free Shipping; 100<= Amount; 0</tt></blockquote>><p>See also the the <a href="http://www.kainhofer.com/component/content/article/22-virtuemart-2-extensions/45-vm2-shipping-by-rules.html">Plugin's documentation</a> and <a href="http://www.kainhofer.com/component/content/article.html?id=46">Rules Examples</a>.</p></div>" +VMSHIPMENT_RULES_HELP_ADV="<div style="background: #DDDDDD; padding: 5px; margin: 3px;"><h2>Overview of the Rules Syntax</h2><ul><li>Each line contains one rule consisting of several <strong>conditions and assignments in arbitrary order and separated by semicolons</strong>.</li><li>The <strong>first matching rule is used</strong> to calculate the shipping costs. If its shipping cost is set to <tt>NoShipping</tt>, then this method will not offer any shipping at all.</li><li>All rule parts with <strong>comparison operators (<, <=, =<, ==, !=, <>, >=, =>, >)</strong> are conditions.</li><li>Supported <strong>variables (case-insensitive)</strong>: <strong><tt>Amount</tt></strong>, <strong><tt>Weight</tt></strong>, <strong><tt>ZIP</tt></strong>, <strong><tt>Products</tt></strong> (number of different products), <strong><tt>Articles</tt></strong> (counted with quantity), <strong><tt>Volume</tt></strong> (total volume of the order) and <strong><tt>MinVolume</tt>, <tt>MinLength</tt>, <tt>MinWidth</tt>, <tt>MinHeight</tt></strong> as well as the same variables with <tt>Max</tt> instead of <tt>Min</tt>.</li><li>A condition can consist of multiple chained comparisons. In the advanced version, the OR operator is available.</li><li>All rule parts of the form <strong><tt>[VARIABLE]=VALUE</tt> are assignments</strong>; allowed variables are <strong><tt>Name</tt></strong> (of the rule), <strong><tt>Shipping</tt></strong> and <strong><tt>ShippingWithTax</tt></strong>. The "<tt>Shipping="</tt> can be left out.</li><li>In the advanced version, all expressions may contain <strong>arbitrary basic arithmetic expressions (+, -, *, /, %, ^ and parentheses)</strong> of the above variables.</li><li><strong>Alphanumeric postal codes</strong> are supported by the variables <tt>UK_Outward, UK_Area, UK_District, UK_Subdistrict, Canada_FSA, Canada_Area, Canada_Urban, Canada_Subarea, ZIP1, ZIP2, ZIP3, ZIP4, ZIP5</tt> and <tt>ZIP6</tt> in the advanced version.</li></ul><p>EXAMPLE: A rule named "Europe" that sets shipping costs of 5€ plus 1.50€ per article for order amounts from 50 to less than 100, and free shipping from 100€ on would be:</p><blockquote><tt>Name=Europe; 50<=Amount<100; Shipping=5+1.50*Articles<br />Name=Free Shipping; 100<= Amount; 0</tt></blockquote><p>See also the the <a href="http://www.kainhofer.com/component/content/article/22-virtuemart-2-extensions/45-vm2-shipping-by-rules.html">Plugin's documentation</a> and <a href="http://www.kainhofer.com/component/content/article.html?id=46">Rules Examples</a>.</p></div>" VMSHIPMENT_RULES_LENGTH_UNIT="Length Unit" VMSHIPMENT_RULES_LENGTH_UNIT_DESC="The length unit, in which the length, width and heights are given, and from which the volume is calculated." -VMSHIPMENT_RULES_COUNTRIES1_LABEL="<b>Rules for country set 1</b>" -VMSHIPMENT_RULES_COUNTRIES2_LABEL="<b>Rules for country set 2</b>" -VMSHIPMENT_RULES_COUNTRIES3_LABEL="<b>Rules for country set 3</b>" -VMSHIPMENT_RULES_COUNTRIES4_LABEL="<b>Rules for country set 4</b>" -VMSHIPMENT_RULES_COUNTRIES5_LABEL="<b>Rules for country set 5</b>" -VMSHIPMENT_RULES_COUNTRIES6_LABEL="<b>Rules for country set 6</b>" -VMSHIPMENT_RULES_COUNTRIES7_LABEL="<b>Rules for country set 7</b>" -VMSHIPMENT_RULES_COUNTRIES8_LABEL="<b>Rules for country set 8</b>" +VMSHIPMENT_RULES_COUNTRIES1_LABEL="<b>Rules for country zone 1</b>" +VMSHIPMENT_RULES_COUNTRIES2_LABEL="<b>Rules for country zone 2</b>" +VMSHIPMENT_RULES_COUNTRIES3_LABEL="<b>Rules for country zone 3</b>" +VMSHIPMENT_RULES_COUNTRIES4_LABEL="<b>Rules for country zone 4</b>" +VMSHIPMENT_RULES_COUNTRIES5_LABEL="<b>Rules for country zone 5</b>" +VMSHIPMENT_RULES_COUNTRIES6_LABEL="<b>Rules for country zone 6</b>" +VMSHIPMENT_RULES_COUNTRIES7_LABEL="<b>Rules for country zone 7</b>" +VMSHIPMENT_RULES_COUNTRIES8_LABEL="<b>Rules for country zone 8</b>" VMSHIPMENT_RULES_COUNTRIES="Countries" VMSHIPMENT_RULES_COUNTRIES_DESC="Select the countries to which the following rules should be restricted. If left empty, the rules will apply to all countries." VMSHIPMENT_RULES_TAX="Tax" diff --git a/releases/plg_vmshipment_rules_shipping_advanced_v2.4.0.zip b/releases/plg_vmshipment_rules_shipping_advanced_v2.4.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..18e60983b9389e085b55b6a0cb2e20b059fe7ea5 GIT binary patch literal 21426 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 literal 0 HcmV?d00001 diff --git a/releases/plg_vmshipment_rules_shipping_v2.4.0.zip b/releases/plg_vmshipment_rules_shipping_v2.4.0.zip new file mode 100644 index 0000000000000000000000000000000000000000..596526f6e3b02610930e5c53cca6b2ac83ad57f1 GIT binary patch literal 17902 zcmWIWW@Zs#U|`^2_#x!$#3-|TYB)0kgC!dSgAjuZLs4l?YH@sVMrJ`lW?s5pK}JDn z2qy!x@@uKUmtGNpr4`%^j4Ush85qDsYsmfl+hziFegC?o1<sT`@bKKVe9M7ZJLkPV z_q9i(bo*Y8EhUpIf>n;omo+W=U)?`t?vjX$`y`Ai_q^Zte&6o!{jb8*JzGtuM;t5& z*faZ|>0BPS1w0`#?ak3!&V9IaQCHi0OPN8{OqH8ABbm}CY>z3|kj;1~t+#MlIIow9 zPtU=M#&0!;b!@k`J6N+F+|I!!tv`ct?V4mJomsNWpKN%(t~IDM>OpPIlASp(4p=QP zs(HD`(fb7BpRatqPrVMk++)?tK5J_9HH9@h3+3(`KYq0F>+Hv8wXS78{IhY9M4;B+ zgo?{nGi>U3)s=Vb+VSJ*pI47Qy^8eO;e0KyNm^0CEh<TvBVp=4g_}>gcev_Bt7`pd zZta)i<t(+R-fKH=sfyznRS(fj!Kmk7N~gX3{(H+ryU=APnR*V~O6?WPd~L<J`DuI3 zwx}LYzm}slMzPN>n|zsWWV?EP^a@_rh|t}(#xoAZdZ)XaT7P5Ey{(ud@N)jDinA-5 zZ%Mz7Tt7YdK@?Ag!Ry_;+WQwqC0@L4&8Buzf0~ZSoy{K)+Ra&zs#)V&8>aR|@d_93 zeZ%9N{#Q4Ir)58M*u|v(@)vtRdq~$JpYz=|D@>;5O*MZid^R~sdiRvzgk!7vP6sF! zpGrAc=EXL-?R=8B=xdLSIiH@tdVl-po42t6#<TvcJRY?3#T|zoPRDn2Ffcy8uw}W+ z!u*YE&+MMIspd4#-#r2HOmA)3dKQJmP3md+WFgevc-!W{EY3>;iFr4#Eqb$YbIWyu zKPyGf++up)xp?Wrd!?)Q%x^fD!7_i6aP$Alyn-KjrN!U3MeNrP>*nA5)2LnKUW<Iy z!d!mQ73~-QuqDt304^}6QU20vZvR&4#zt5M6#akxwRq?L@=(f6N^ZqaaiIon3| z$kad?Pcg^t^c`DD6zca0=R|m(3VCQ>`DsJtucN}dd3Iipn)zU#sqviL7muXu+(M6k zIA3GhHe0X5x@~Hp=v(neMUvJ%YjPaFw<jNvmF%i0kF)SQ-Ra|Y?MRjjCy!*qCnuIY z8>g8YF&uoy`7z?F#55PHZ|bku?@#3YaBtz7ebT~9d3Rllo2KWJ@0d36@2ZxE=L@`c zzmMnP@q4-FneUrJoy#gGy!-WQ^^5<<_xbpFd|Ob%=FPe^z|8CHtS8)vEV^n%os&Gb z@!`Mn3=Cam3=HBJSu{Q=u{af;Pa9mr13?%qpYE}#j=$|Oss8Zt7Y~0NEjxF^;lvp^ z&NBj!RnC2iGB|lJ_0wmL)w$Wq-hFa5@66<1*d4FkxO!FHis-Dy#Lctk`a0bG`eN0q zsx7O&{<?lNXXCC{pFIT%=bK6|=Ks6@TXnBkx9~IeJvS|$XHH{z%;UEA<Ba8*i@#=- zZvFk|r&jejy|jZ#=N9+q9;%UY$zcizmiu^w`?k(W=XrTCm6{F9ijr=nC4QK?xyAqU z1@9Y5e#ZJKn*QsU9nR%7<s3Wqu}1JyG*cAIMG?6rlFVkG3a6>tu%7bxvpsv>5=WVh zUmN%P@r&L2vD*CUo8$>8miFH!^~f#%IaSJ1*)Dk7Ld!*xk1GnNvs{imR`qLn+WMp0 z%+1TqwwZ6=#ychF#9m7U3l3*D<KPHhy@ua&*(c=gO?Yn8kyiL(vwiiC!!7Cx8b9A` zU;iqS-Nj*t(*&<6MP{cr9nITbU0i&5rdy@D-?CU0;ZL5|=IR|fr!%|#&E1o!-|yZG zls<Cu=EViq?RUN?57^&u@`1g_O_fH;Oq-K=ds@nG6tJD2V)Fc+?Ci?xb7Bkm_8+Y? z;B;v2w(%_XKcU?nY4+Hof3NVZwDg~%A5QhL?9YAXnxL;aLm=vWXx}qohL;&K&+J}U z`U&s{e619Usg7j$@`!VH=j8R8le@n~${qZ`yhLS{M4D<+Y(n!#rU?JXHj?6}Lo$Ld zU1IflQ}xfLV}i4O_hh|Uu`&xMKI&hbJ?Vyw%C)z1=ly;D^TFNUie8g@_FO0wNl)3i zBVm4eoPZGH62+-u3Ql_`M(wqk%_uhAu;VXN)q&Le1xpO2j#siIv1nC!pWrPoJ#JT} zcw)k4$5*w!l`0wK;mw@c|4jJyn#g{Pj!5R3{ky8JOtH*i@ztdNn|Dq6kY73B!?X6y z%@2QHJpTCN&5KWWA3VwWdV}*HZUwQG3a#G9*Z#lTSt;mee{QO|#qnPIT@%*y-8<0L zAs79&>}ICOy~YI$av@FGDn1(?7``vDdJ=h~b?3+6FV=;R9=}hhxU`q!z0;}`@t;Y8 z>KRG$dsRNHOGubrt8{Ve&3fK*x85Z53FU0wtn%$(C&TgRC2sF}({mK%wn^@1Titl| z>}Lb+1I&%8jeiUGvvLSsFnW;c@<GA3IkTnZMyX?9;oUU#dvhiW9l0eZ#P@i+WPi<# zrYQRbbFPY(Y|=ioUiCrIqt*LA79P8HaPC9?XA`EYY{<U(%c4*1posgf)!LJ7q|$dR zc297aSTKLhPaoxs)jw0Xv>P~Y+`hXtE&O@Y=lICT^9Pc1-t-@;uu?UAv+?22)c;cr zr#$?8G`x;Ix%WVR$T7CM(iXORY&I;3Z#qMJ8CYL<`_1^2(^0JVuSjLNX|%2rLzhSU z$H;l-7&guLyRqU<j^vb}d0#Ue(={CCHTpiZ5}7+O;%&g^W-V4lkr08K<<6daTdHSn z$cSRSDXtV8Ey}}fvp~LCu<?9CxlQtxS}P8{DVleg-n{t#JHFVPyH>B|{^hKrSI@TY z<ap#|v?1tH#v#QRH!q3Dm*%wb-AkF&<0kbq^{?8*33{j6o?c=LjB8gH_U`qq*wu6^ z?Q8wFZwKWTt=V}sX}Y?2bGiCo=dvQJ6!q!u?r$CxRai;Q`Eu^}@xPN37yJI;x^A^- zuhk}wj2bp4PK`A8pMSd4L#GK8*nFP!tov=))Jdmg4rHZm^j8r~IQLg!{`4QyFL0%Z zG)jiPP&APc3#{3>bLYy8Mcu{D77L=TopO0lu%2g5zQOlH&#t9aA8-4#WV-fY(XNfl zypR9<P_nm1^86<ag9_~>caz%xZfBqF?)<I#@%i_4`BM%W%2+H-*YV8O`JCte^;=tj zW<$%QKnBI{3%>Q3J-Af2AjC6co{(n8JiFa96L%SQ=WDo~O?eRTk|D+ROTnZgg1;(n zeaM-RShR)1_Cub<DzTjt^%4w)Z@kzyy|S%XV4mEKr@;sIzB8yz@S7+nW5*J*F{#O~ z@`UE~@WWMW_jL+Pwu;bd5xTsgyQqO_!ArYm2Xz%}Pb#Ln?O$=4F=E$r!yX&nAL%`n z3A0lL_#;36{qSRj>Ze_^6`t}}dDvFGxx4AHLd)E_*DCzDPAtF3n(;>D=+|xQE%SG= z+};;ol>6<BSW8LMq4&qs=Bhu^Us!%qMNL04ane1N$tyP-bV#Z^o^oONgjYrXMUN>J z+~4-rGc{k}8v9#;?H8-Ae)}+8+s`sfDEZ)t+Hf)BV?iz|4H3&NCrKW(c*J`6gyK_S z{-71UHCvbS-M=zZ^6kkpH`bcZ<JfcR$nDl#!xLp%Y{ym$-Y`=*B`;L)dr9;)9j`TV z>w3d(Ogo(s=(OEwWpQzAQOZ+Iqe=4J3zsqczB9pY$;YR~kI!!Sn40|G&N;JlO<c7h z&z$uVDtFl@uIT3p6iND!JmoZx3EP7EqSLMXg)Uz>_DgYkwacxO`^>!c+PuEpmy?MN z2>KD5l971s^7(TM{<5}iJTgi2fVS{L(KGLlrktw@JsfPhNB?vT>m{Yc=M3>&Z<{|e zUvc{T!eVPpv{=nVUV$}1jdgDXI?piei<stiO>33%0+rs7L}R9s(~SY@9DGxDxd?g0 zKCntGXb@jIlljg}hlnHtwmTE1SVt)QI5JDym@Ru!MVc7j3;WQSW(@~sxx`g)=n2JI zD+;Mjy2G?d=a-}Ak*VhYeof(Fy8NQ<ww8NCnB1=^@$rSz9xr4Lxh|y0_R><AGhp^o zMv><N22z?oUKt#D+-c*@9KXY-U+w=9y@UOy4pi-AI5p?WuVwtIjtpN_zW<s3@94>% z9`U6<$BwBT7K~PxY0ePZ9Q?7PPbqL+!d7m+W4z1Oo?Yqq+?MxN-~T5r#|7KvPNm=b zll-%%;E_>S=-~sitp%5`?dz@GS+Hag<J^d_Jq?e3+xA&iZr@bm5~LT=8W+1@+9DUO z*DErnKXrEbQu?1O?Bhe-6()Y~%E}oJKAas~dhG*mzlGi}_rLc9Joek#+osi<M6^e; zD^9U0k9f@A7J7o~&zG0A|M#5#R}k=*Sx~8I*NhkO7jGVmFPe9U@$vl*{*_)K0S#h& zNyjS_-~7CEV|G;d_0Rrt9qis-29xt0vU&eq7ZljAt8UVflZ95H?D}5fy=?(&mBOtQ z-aO^J@$bjG0E-!JiBe02Pc$EXeDLIhq>4HN8{6y8Cm72elJk-Nbui-5WIpe?eqMan zt{UiUb(tAr!qEO?VQ_G|Q-IMM$Dcy__q@D4GVfj3U0ZB!k<$7m#N|SPkZuF}OOGY% zd~5C{?Kk@Ky_mV?S%u3&MknqKdLj{0QfF;%m~zk9cv|bosx7mwt*_2W=6+c#(d2yd zuI$1+{{8Oq?9UIM{`c|V&w`S&x~hts(tU00^|Ev4%=;p(yCnF5!1Aghf3vu5VV$6d z_oU`dYF}`CYweSox8F0~PMvqxaJ#{~Y2P2bxX7$|aaa1><K`Ai3+pPc?3ak$BR^*@ zuiw31Kfb=-z1uV!ydG|rIp$w$vu=CfOv{PaoIRf_i3{JnsQN@`+Oyb5kL=2M4*bn> ze;z#YQVly1KK;#N8|SBfr!T*r8#jUFO5BYb@hS&rXs<3@$5Xt>U5E1wr>00*O0!v9 z`N>H<y9+Jfi+;M7qY%dzc;@JuX%myD%<S)b^kqU*f>8RSHBQy}?rOT5WFsedpQ^qT zdD5}4Y@xVS)RM!ySu0Z}=FJYSo!56axX{Jt==@0ujxw4-0nLg+JiZkwQXi$iInKAy z)-(SmDrvYe)S>O;lsnrb6mm^ueI9HH`Qgaq`Ss@3*_np>XZWdz=$kRgy8oz|c-Qpk zicgPPQ&a_CPV47bIZMZE?kNVJl&4=8bC|xHWD~!fTR&*uNv>tfv{V`jBK`hYd@U89 z_%?gqwTtfpURFEh>dBQJ4AqHaT)Xj^)ZVV8JTf)E&v*xkr=+jlx-3(VtD5zvr)Sx; zNR3CUA{Y8-ndHmv4eNT^+H$63)dLrm(5qWcl^#p%oBr>F(W`xu9f>Y|np-~^dwiBX z8QCAlaZPqBM^-NP%86&#GP`acTQlck)6$5>y;Hi+OpEKd5o(dt;xIQ#Q(Nf2hiUxI zNqQd}G#=Qm;CRuS+{s=OxNn|Ewv*rW$-T8F*pC@MaS9B3#wI!I{Q6ItKN3nN_41t) z(_-82vtKamRKB&q3s$xL%72*F99@@t^2HgS!!r~e-JkRo#%0DtZ*f_4PO(Sx%5FtB z$D~(#)n8tWi01V8%Gu+R)OO&RvSD;&?#_A3W533F#GLlJ&FA64=&|r+c+o1O4fpKK z&om`(4#{~E@}f&CaLU!TYmuK1npdxpRA+3cOkDl;1zUn|jJ;ZC<%__!CVjzYvkv<Q zEOP3)rFH%4vbS%e_Sfbu2?$)4{^Rt_a`&Zg#8;)hjpR0DJCPW%=2H8W=!&n8euySo zmECN;%~<4pOl?lI@}*k|9OA00HojZ6ac}U(h3A%hxKsUS=E>#v@}7OnTKU0X$@h6( z9rb&@Xc(N+Ds7ixj(xw8D>MDAqRO`8JP|h{3gv#jDmhv6TUYkM-h0c=^5~w<ad7=> zJFQ>caZ=ivDfS|Hev*!+@jo=WXV|VxzsddJE|>YTxUZ*XZI1l3eN%x_c6L*BeyGeu zjTDcm_a*s*&z)h2Ikb4u`@cH<D~_zPzAF6lsIBOp%`N}8PrNAO!V(mwdsFqHeaaiX zwW1Nx!aD<e&*q&Bo&K6VQ>wq8DP;ZzD@C<QF5A7;yLVMPn-tfwvPjMlUh*(kL|x9f z(554(R)5pWbNp%#3JnhL`?l%Iod-<Y-*^bU7yR&Hy)SR<74x#=pEz#+I%I9*yyV%& zs*)xDO%A9@d*rk5ec9J-;mfRJ&FIRP{pm)_xl0$K1O5o|in?klELv*DU;Mjgf`Htq zI=0!OaXvR>OM^D5sx@maQe8Ji^drN94j-d)=G-0~AI@utPquKq#BtAJztpjr;#{9& zvc7W)J;~Ggs()17XW^4)z5;Fi56t>A)TdYGX~vydp#68lq%BUjl78o0K2sR8F>a|v zsbY88B$1QT+iRW$T`KwEwQ6UT(8gCUc8X4%e(!Peo-~%D9Dmn6+WCO>Na?x6^ahp> zcNd+?f0yp*a(nNshTQdaj~8AQPyREl|8vjxu8NQsOZP6hx%H)L=IV&f;*G){&z@xE z-u`3AwKw1M&ByE_*HgzcR!+P6OgZF7h~55fnKrX!_fo>1FsRM6__NZl(&tLZg8AnA zBl5kzE-6xpin?vo9TE3pcK@@w;Hx)R#YD83m+CyVNEXU1ah=<7RjSnelvr$`Oq%I~ zhnf9aH3CO?6}`Jzzd9E`e%cp1-RNPPYh}1=vt-dk;nNnA^BNVzIOq2%)bnq87Pb9n z^{47D<$v@uORwKLbHI}=C}fq;J)OXVwtUM3&m@RcMM}6t?BU+8x44k$r(}v!q<|)C zwCelx$GjgV2~Dk9bJ=@mO}cNi!1s9!H=gd8dVH5Z`zh5wVYk;ft3H0_Jn@^Tzg%PW z?bhnuP1V0Ocf{`~*uUaI-A9o-)_QlWMekVqAN+f%^>-@k_tVQC{JYuu`#IOU`SY88 zi;KUD*V<8E$@R{DXTkrKO~3uc@*Wmx?Ou87%0sQ=N6)>oYtPBF5uQ0|MVjK>?-EmX zGOV$F;`(pxWi5|C$$PjOdjH#Bw7lQN5^-JMdCB)SmG~-A(<GJ8N>?83=KWchQXibM zwv~Ic`ULIC`(M-qPyX}W)^^9n|GfHpSZ>ZOUA5#<2UBH4M?2#bZB5zxSLVjF+007Y zJaK*6zsV}A)qi?z%W?_!``%Oc_O->Cjejfni^?yCT7S=5+rGw-U+MA5`WN<9`yysr z-mgeHlitg7nk#$Pp+eywKh7LboIfSNL*`mZYqDDPB5s*uleOfpeF?oO=QGt?@#x;Y zXCFy8+25)9s_|P`Od>4a!THaTHBqzsYZO<W4gO~!B$RD@{KVOuDaVVaH=d07{_JIn z=L!GCR@GKlXYRTF*<;g$%@OW4?A#|>jx7?)a<mkzJ#G2Md)~5pQ_Qc&Id9uizf6y< zQ<s1CvKy+q9a`@iO_2Y?8nocmhH2_Hmsb?9UfXr8u|)rrTW4HG_3EpU)puP#O_*kC zQ5J3D;x0K)^pe}*E1D_iCtCb5oou9A@q5j;x8g<VLN6-kCU17^=Izsz`ore6LNZ_b zj;^@eTQLrQfvF!w9)Ev)k#ET~dDFgG>l2T<JWP7(C~}JRs*z$l<3V3uel{j?ZhplJ zd~2q$n(}F+ncB?Ii1D#$IrQbip<Rbkc~2LdVfyqeaKfx&mbq7(yA1wLd0Ur}lb4(< zHs{V}^U$CGpE?U&4Xe2StvjdoIZeIer5@n@Buq`}`<bGvYuV1U^*0;z<lm?eYuQ(E zw%7ft;pZCp|MCkq?Afp*aV39)>(pgcimRE}9>mQ{`*^3uK6-LRWd7uNEBWH4{QYkA zRJU>KKi4fUl&8PF?w^0UO;s&n&kfFHF7<{-oL~FCvKIEg$8%Hf^5R#jB}ZAbetuIn zdd?)7<2~`a&P4Cv+lTAfxkVacPCjS*qvtp2O!-?S@!S(`-}cr9*W|jbV=A&^X*K+D zylNXO|K&egXA{I9-%!g*$Uan-dT5*NL)X+p+|`HtQV;dnK1@wL<XwH}{8UbRY2lK? zwmSZQV|rfIRY`=}Z#UJrTX}5ZF5&h1OLu-M{gmwZ$fnrw;{Ib64O$U<9_xLW+SoO* zX;NL-@%U6H#@FncKh@vOpL#=6dFA}b1Y?$sQ+gIWuq()3C{dW`{-}M@{A!KJ%d4{2 zDaK0aJvhY`?X>X9oHW7O!xyU)?(6JJT(vm&ypfLcoaj3fcWNI`m}k+QXmwk4pY~bH zN9TUbQ4c=X^>0$y&5N^CD{tOBWwZCiyOvP7k84C$^jzz2vJ1?AEUsbD@o?w*zPO`? zeabebb040_>o+{V{^P=&i(2IwfByw^PusJzJidS0p2qJ5ldpx!w0|v>_%!X~^*EW% zfPVqk5AnaatabB{u=LhCpXt~5Uo1RS{EgGP^Xqd1rajxHZ(W<+d(3v8MEp+YZ)M?I z3?9y%Y>>0rB<<N;o6ql*?*%9oW%)WrO~`rmRb*{Q>Q*V)(6H@g%Ne&lOTNZ?$T+Mq zQ-(A7?3>u=Vzc!xmu)>Y_0T2mW0z`IPrVfVa=F3!--py3(@GmP<?8M{mp?MsU~6H} z#^Rux>lW(8YPzi4W6$!^R{X;J51($xCWze?N#1o$Z{5Vi^%LK#?lTfUvHrMf*yW{m z4iEP*RZGP_D7DDS<Z>>}bTdidf68w9Pt7{$>RzSat3@`pE)@GT_46eEy{m)s?|m|; zd2mi7Hs{sCJ>Ay9s(a4&G@W^NugN@5Z`K|m#haGxbFK4#Z=Jram%GB%dttzwyH1y% zB<$ZMxJ-NZ*QiIc&9=+c*{!}Kyh4AMAX8L$%+J1_ebLMJGaFbOd2ghc_%#2ChbmtI ze_8yb#gUs#mixDEmHf*5U~;E;%a6C~%w8VZF;{o(t{UrTiEo)lR-9tnz+dt)qul)C zfy{@Zs#`v&t+_6>V19HC-^Z(au5rW(cRkyw@qMm*jOP7K)o-q|=&)Xon$%?*wWqp5 z<ZsV9CmyBgtv}W7DOHGW-!A$lxxB;pQaJP9X5ZUSbhVFt_?}uW_q}vE@6#>(oqh%} zub67X5?36%YT>!5dXql)^6cdKZd<<d7oB+iq2=kJJ94%UkEMU)ot+#JcVhkd#P4&< zd99gbW7(Vc*sMEfz0la`cFSFdET8D6UoSIWpHE6ycKFwg^g|a|d-C%0Z!+aX?Gm}$ z<|Ey(h(q}9Jf%M@kCuI~@DnOwtC*Ou^X!8yY9bf%9!~KoPx=wBB75|i-TZ{jKC^Q# zZQqvkQE~%E`1=`0dfv#3b+4W5sHmr`cIi(w)6{6+(=%sha=Df_{CeZwf9lv0kA$<! zbLQvX+@7G#t9i=muFSQ_<(@yUChO0*tlyxuSjI3ZMA%Y)YOsvZL)Ti_l#~2ddghg^ z+`Z%A+As&ZnDpR{&$hgqEpKu4Sw!5veFu+)|K?Wk-`kKYJ^f?rbYmOSu=w{A<Y#3_ zuU_@h+q>D@cY0F)k6H6P=Di4u%)0Zx@5uDiN7AzbQqLI#yE6XVvF|P42R5ljSLwNP z_XJt%Ki{`Q<-^Arx#eco(bhfbkNH}jY;51V_t^CC6Z<;mEx+O{U$L_5CsS7WL}|Uv zL0-8}_cBzkT`AnptAB9rBfZZHEi$-1ZWGNdw2uibv-^5~n*9tVf19Jab1qF$`g=5T z^|xG;-R1N9-o(z&(JcQtyKB$;WL*!hX%CyUFFw8U<C0d@fi}*q)xoxXq04Nh=Lgk) zXS(nBWTwacC=34lS!%_y_se>h8B{8NQu<u|<)F*e>iFy5k~UvS6I<^3TeRT!>c<b) zeY;;2@Gb3PwEp7PX_~)ofBmvO_RIF{m-+Uc|GKMw>BoGDzjCSmqslMquV2bzzLaOZ zeE+Au`1q~cE<(R!>W->4<po{Z;`qur*K9e%L%!I|)d8p2H9~LYdAr2DVmsye^6$6J zw%>Zv<zqYgE^|(Kmz;C{@Z;k>$9IeTU7PePy7J3*u9x|`uJyZT{410D`_}2#ZSRZs zHJ9z5>|Vco!oPDtU&^~*zJGS{zV4F!vzO)bJvsI{Lvv?ttKFZcOD|Rbm_B=N82j_0 zWl?^2SKVLm;J4Y1s~a~J?VByPTW7CT!<4w2lc&vIw;{Ia)Rb+j%U9LBa#>P)?p146 z;FM2OwdVA$_-eG*<5Slx?NtAW!Wrwb=4n51+P}3->*&YC&pO@5bSLhfymICr@3`l| zr!NUkl1cg-`epmO=_QQf%Dnl{JVol~_bv-B)V;%RsbQrqGplRX*?|3(V%8hf&a}@I z-<<RMgQUn44KvFYRrm7`wjI3q!KW-Oe9olZ4`n=^7eBvz@eAK)R)@-$H@$rnWVlYZ zR9`z)=yN3T+b6Z7Uh4}w)9iONh}GRZpLFDKVn6}sksT6Kj(Tf~>KJY8lbEPoBO1@Y zukXO#Kb;1Ae)W?AUK}gcwW)3HbTx>5v(q#D<GT;%4=?`S{(Sk}f3M$tX7(~o+I6pN zXW#3B<mty9(|Z1HymdfFY|cvUgFkpC2k&Lv*Zwh5^PgP!(_U#iwhM_&5r&6F=BapE z6jn6}Mjt79aKBeo_Qyf_{Fk-z{}$<+6#iV!?B(U>?)_Zt(c!D91z&mj=fv%NwP5Qq zl?j|b93m??&pmLJxx-^9YF6-r;Z2oB_sPtpB5(G^49__7&LpODEPS4Df%}__*bK(0 zT2}je8@Io=<6r3OquOTIWY<~vK~qgshHa<i!8GAt$JgcO*f>bL>E*cp@V1xzW%#{B zcBW8Ctl@cOJ5KAlbMGGu-0{&ca`o25u2&*UUTnV`8S+3WYK!>AMZxXYrPYkvcnl}7 z?=%ie))QP<^vrSI^~%jhUBVlj=T|(}zi{xdm&U$qme*_D3huoBTleqVj|X2*{ycr} z;A`{e`n!&+zyD?H-I1Kjk!sr&weQD8<6usei-|Xu@^C-e{?0qE?w(b1UDLczAD(gO z9Axq}n124;7oDOVYqvl679;gU{*j6VBm0Ap18e@aENg0QbiZ)w!>wBrmr13XZk#!7 z$*ma~!9R|?jf~u?yyfK`PHijJsC&^*Tj$L^`EZBmW=`J2g}KrJ-;Uis^Gnp}{fiy$ z?6;k*)7EZII=Ow3MflvdkK3=-+_$)GXz}-Qlc9FcpYt_3%8fBz=BpJuOWgi;msCDf z(YH7eaQ(=N_<OD2EGOK%Zhbyxo%9=#TQ?Wz39{yLIj!gVE!ldVEmz!N!W72W%Vj^9 zemGmVz+`@dE5q`4%10(Qt9|;Aa=|4~FCv7A&8XNveA(pgr9n+gA18Ny+E{XG!;|s^ zb&Zz?_Y3w#R*Lkt3!5x-`*`Fb!@TeED=l?c79My~WD`6^x=*i_d-euvw&1M-!q4{4 zymY80EMTQ@?ah^QpCuO0x#Plc#8YHu@g5=L2d64Oo%ZQzpLaTFlKteUJl>bJXI{2n z)nm{1n{n0uR;`P{=bKZ{Gyn3NxOq;(Bfi;%#xw5w?v$w$PUkx0x~WfzZNn6gt$$`W zU$A~Fx99b|FK;rw{Hm4fn)J{A`>Wc7rk-8<Lfu|pRrs^6eaByaLz!~JlkRQ_o5I$w z*zMHl{%p#`u6aw6uk(M;j7a;{-Sp+mc99i7EcUT}{-*A5BlWZ5g0p+yTW}n<eE!&E z^?~q@85VMjTq{0?3z*G5D{%I<R!m5%FR#*!UWEsCZHXHqSYCOG>dd%$)j@QUfcLA$ zuVPmmmTb}Bk6qB}dgjQ6-VO1}4@;Y)-0pguUuJOmF#pU;>0I{Ae}cXpss2<kgVSqi z%dNw=w|m9+Yu*lADQKHy+*9(jBrW+<ghfZvGKYt=w^V+NkeJq!YiIRlPd<y<aqDe~ zVNc{6*)}%pziFC(_7B7BHufz7?GY1?9QJaPsMc^&-NL4_<+*5OnAg1y{dCP^Q<#pX zxGj8jMI*SY_+`UVL%Y*fR#UCI6R+Ot+8bCl&E8&c`&ZpNJ7)Af5xyF5gzp;jvQs6` zq%{?GY+1(F_lq&h|N3W>up6Iu)IQl_`0waSa|Yg;`HOdlhuiMCdw9B?Y=wZvS3l=} z$svhV;z6>07cMyHH#@znSu7pEB=K0tf6=j}7tPFAMJ{bI3{P9S^z3?}-K&lye9~3C zzwhIg%C6UQd!vQh*>9#?-r;p8U`tqP+>??evxMxux-UFiR8q0pfAy^;kE>YynZsA+ zq^^3s)8REg^V+9OYi)V9Oyu73(cr@5m<8(m%(bUje}%9-xjD75^-7t{G^50u_O%SF z<kcI*->R1WIr-vn)#fg3Kace@i<z=q^|!A!O<XO)_jsYFOzN2i&J!VKN>U}thlK1I zzt;!1XjabtR{eIPw)BIjV76)dzrM*<slR&c+)R-=>7+Lk7KI&JF^{eNhs5TYPLDN@ ziyxDE`E+mex8>irSms?_620cQh_6P3c2;9+kGS;o_jkDW9$8=Ya_WXh%4@e@K5d|K zS%2=?37cwq^$kpY*Kbgpoqn|M<uUK8#hSgG0i{>`w{pcU<1wzkb?3R%!w^<k``Cn% z-<e*)nR?wf6c1aO9%Z`K^WAw<D|?aB;f3>LOnd~dow432`1nPMs9VqORaTE}&u%z& z<XTzot6Gsz_28YWug%>2(*CO54jErzt`NC9How>rs|jL64V+phFIjY!iGiVzi-AEB zV>N+ZadJ^+K?!_4!F<+l0a(`kybbluzw98e_j!1aQ_I{gwMVl87UTvgIC*(0KX|t8 zZQ-7&dw0Ka&kXr>f9BS?TfQjkF6xl`peT91D*axybzR+8x2LP7CLLp4mMGwREdKa! zNAV?XQ<5dlT!=U;+^xAm#WA_*-G-}PTxmQjl0NRVIki(O@WxE-3oifs3OD{x=t*^L z{H1X*=H|6Z?ia7}b3^}cVEsL5-UYplLFOy3o{BzdqOCdS%`%_JE1|j*6&%{HN;XvX zDLfYT(aA9B>iW3D;RMIFGA9A14VLB!ufCPOtXqA5z0%W1P3jXYCr0S8x&#(+s_(g2 zes$W6!@P3yQn?I+vRTxoB~0(ykg76$eXY3VdacHmzG>%#w(48@e@f#Q_%KJaRkVM? z^{9UZNuo>dsC*JBy`r+KK7My8d+)VOMgi|gg~bW$WUmS*#F)x|&s=Mg#v1>`Y|YC3 zJ37BIR&72L{8Rt?-y-j1dB^<qLB8{HC;jAnQ81f>_X}@++19mYE4>=*79@nUIIKLR zyCXus^pZr`yu(i#DmO>)v2kx%yf^d3(cLvEzqdO6KDjWitua`0@yu#5*NU`>8N#It zp6+7p+|8{2u)6Pw{8fYZ4!hsoT*m0n$o=KttINASMO?1P**oW?l4@n<*DWT!;@g{F zXY30NSeJ6$QF+bu&2f8gn6Q{mSFia~zK6~9oiFo+9GiI7e^w8dPP)}5FvlZOY|ZpS ztA?c;Bf=6H?kdLIz3?&8s{7=_cYkV4X8S$A(0ozw@0Q4@qJt;fC3=0U=jzRfu-JCs zG*8#t^6Kk()n8Wj{`u*(NmJI-*Ih40a`8LCIdY<T{Ocb*kZhUEe8@=RfuyNvV(XgQ zt!lF`g-nzy{r1sv$qrko_}#S}>=imfXZPI5S~dI6vx8#)kKE7uzS?xg{h~FJ)4oj2 z`op#6`!xH4wHI@$I6mLq+n;Qq_S)*{Ei0Xw+b*6;RjOaGKkCxQg3X^}w&>L{A@WD* z{CcOODSLQtFf%Yb7RS0Et|B)FydbW(G9nO!(H7cVopC$wwuM03dSQk44j<H_-yHj7 z>87|cBlx=ED=WvO_wTN9tvTXx=M~GOO_S|vJp<iudv0-UoSJ(;sonVS!~eZ0hkxxp zet=!tN3zq2`I}WNM?r==A7?D{y72jWY65$V&-;}M8TI{{^`3+2pGY$EvARc-1em6~ zdFCAOJzyimZt+BbWk&VH<O3>Ynnea8D;p|aDspZ3`F#5C*FWD*e_51zcdhv4>R9iy zGrN5aA0@5s??~Q!|1GcHuD{*yT&`zv&ouTrVs~ZFVU;gR_ZjC;l(9)zm3=elY@u)M z<;OO4t21xE-S%1c`@0)~6Wl%K@0p@ex9G^%9hFo259EjEH>`QZUyyOxNXh%5uyi}m z?9I1XZ}8Mz-+E`l+Vows{+`=#`Rdl1S!=Ck+?;ac)0OH~k@CyGhwln2J-JA(qkra% zIZKpR>ISUf@etma;_0{1f%ojMJ;K!+*FAOI%40q6TKJI<iscL0mo4jeGI!JyTYV}Z z^03`B+e2E}nOCFYwq4RaeW2l!Q9@p0=B64p3nAI=!`(O8GnR?#{(W;~U-nel%(pUA zT3i;KDEiaY@}~2xYUpt-ze&*|`jxk0e_rjHwDnPG*{XY)B|REk5)OUB%I_otoc$Ec z(&i}11zv1$lxYo$x7=dZ@`;7Lqe%C<EYsN<z3ExP%cefR@=EocU%l_8s%cU4rubT& zk+YipAbx5=cZNo_MeoYr8zgSdaC-27eaeqJ7Wa3T=ZU|*SyRbZv*+Nx7rK=%uLjLM zF;8q|(Y?ASZaiYHOU`mN_U}9O!|UJvWuI?;J+*6Bq<(mL@y4r<(#neYuP*Gm?)h|E zuE4x|uYX%|9NpINPsK&8F~_jCQ&aFd*Y`&Y_rx~^v8OR}*gQ&DZSdX5S>u=Ixw6Nu zrzc9-bNPRK%g9i-<?j)}dH*9y)x1vVPV0Bo=H%254RK3NezN<{vgoAd-Y;i)UO%l- zb(TIA)fx2YUAT^1w%+$Lt*~SNLpHwJakRuTI(C21vw7K(xAXch=fCvRH~smwq_CQ= z&S=MkRq49->SySk<2Ts4Smnv4`&COFT7AE;2*<atjQ;9)#ba&K_v>4<I_;b%E_Uy> zn99`ZDE8ea_k7rvs{h}!w{nPw9%Wp4Nj)x*ReU?IkbSzsf{W863wRo3e<m5c+!x^V z>t~eU(|qO|Jb$@oeG~oV{9M!E`|ZAc_qo3ORd%+|XsEkT_N6&&fxL|5uSDiAhqo=3 z-^TR!!-)(1QVZm_%Klv;`oi74t?mxP-yLsX9AE2TZ)fynI`4(}ZL)t;wJ*fWN&fO= z{xW&n;`v*c{ywR9(ElH=^H1H{`s&s<@2d=dGlI$pE(Q>|J5|RCM8hx_gA7AvUP@|( zUPcMDY?!q0W57J$aP-BpATuBfZx=4Acaq?8OqtBdz_3$}fx(PHh9M_0FTFG|Jykz7 zPuJZELh2Rdq{o-#7H4D@<fi78#G@_F&CJV$ltpzBfxUGYi*w&bzRr{0Df(~!fql%2 zlO|V$PmkERxv?}-<J=KJrGA#!Il0|o3(_<?Pjt+YEmB!+|J$Z^m7V8##pi0(IXg4C zavIq>Y@9#c(f@NIbK>mRYCDsfTul@voANvBg{km75*5E+e_d(1(H-}it=FDBeafkL zHhlTn>&eHCMzPubborQga*@?bRz}0uBAqjmE>8Pdx<tO9pY!O6sMjABUA*zO?CaEy z*G5sMOx8=KRvWBX|5Z&P{N0*DQz?bH+NR3lZMx!fbSe*s2=@GR@!pi+5;(zOh0^Ai z?YE+Xn3+E1Rs8*1Zhn1o|KE#SANxIjeDlD}60Mn`-L{g)Po!%q7adlX-JC7;@>K1j zpVjF_H&;$M`{myK5-r<$?^brM8s7W|6F%$Dl;=$guiYM;slV$)-QgBB?o|%6L{g@< zXc--fdnfU0kJllOUmKT)PQB3E(`u)v*xk|Ie{tV8bIlo9=3;k^O4nFqUpE(vY`szG z_-1i)#*wd8hfTh7?B-Q;7n!bfaiz=Z{&NW|zkbwsPr1jw=5vzcUj5Y^H-3vh;eUU2 zzZmDr{yX~T4&N5Ld4Xfow@0Qn`(JFke)e4fcjt+leJ4~eW>0g;*d#vd-ZtqC3uM{v zmL1s5_w|~}gQmuR1}9sY4$s^u;Vu#`mCIn(mD_84AlTqxF>jcL6YH}@kF*=t1t*x@ z*!{q2(ZzWuPOu+;AavA8Dv&p?wInd-u&pG6Wz|BzTLA)YGc_}~-b}X%lFGSsPbyV9 zc88Lo3oGXaJ{zfuLI$4RQmwPD{#t8aE!nRkQ(`IM#@Cgpl9zqAG<DX2w`_aDCiXYT zN3br8@}B?3B4oh?shoHz?QfROt2lX^s+R3|$+$u-g0rbypy2g#UY-Khl`4v^E2ar9 zx%k;(`zn@t>(EOZ^JOb)u5Da=K0K{%>Y4O>^<x!MGY_czJ0Ger*@7pvMUU-dw1Bs` zTDI+pXHrK*t@tkF%uFn9?7qNnJNe)-c8fUQ<My*-_S^qk{_n-V2O63kIc<AHKBh6o zHShUo`HTOx*4o*Vdp3wWhO(^j$T-#U^IH4<qahjVzFQvc<$1)bz2<t5b5P#df?03X z-uwAHQcbxYBcicdMN-;e<E7V!H=e(<-}=kP3z9c#%6Xjl>V1C&3e2s(<0h}U@!A7@ zk=9E+zgEN@y4WNBNu6JF$u<vdeonK(1(h9FceK4?IsU|RshrP&Bm5U8ny+O4S94kV zd-Z#^bMaQ@dk>!3I4jXi^wf1XQ)7kY8&`{;`NEVaGxtO3OGk^84mSrEma~r=XN4*X zhDcnnopGR5@|#1ru!`O`p>0QOPO)#zl#~}UUZs(|BCX21Lhpzf?=rrm`9{BaOfIXa zq}qJ$<Bd`5ORaf*<jV@C>wTrXZoFpC8*~-37Th>3bh35njc~5hjrse}y=r;pX!By9 z(v8LXnvI*11iu?R&J?)4O+(@4)M=L*m>6~6IfkqLyma86eA(Ri>g$UenF9`c9qst} z<Y)fIE4u1^3zBc9e_;Az{bFvp)hf@;n}7Y(-uzj8@4YR;2bd<_5tz}K$F16!%H%eG zUsb4SW2D=f3tP@c&G`NN{{P0=@BEH2Y!G|1=q|_Zx2_6%^;fW+-n2G(YBpp2WtUv; z!|n-}PBnP4hi2<5d4FbfT^6h>lAh72nl~{#GwR8w3+}=T7Bx;%6aG*?ds69<X>+|8 zuhpJBpl~IP`L(c@%L}%5D}GGBrFT8UEIYcnKVkQ^t!ce?vvN)eJU@1`GIw|8wV?S| z#D33Wlx33*+ojy>6|eEgTmP8X(pw1}x3+fv`|2ghxW8b3@wa7{wrU*QxpejglhiI< zuBHnN20>j51Xip3&^)d^)%_!vCX-lG$I?&n?mAxXL2LG@=6G6M<6r1)^h=}8^V*;F z4KvP^-j_JJB(H+woX7>AO<xK<ChP1vG3`FH`N@i}2}c>vXvR)to_Fb`^#yg)*Bbvc zvnn~7jKuhr7BanMlsTo*pSXyrIiI6v(}aI<7X)8M&vCqLti6RfXZte069sdY8ch?u z8zi@&%bz)vRoqT6QdLA($7-i@uF?Dlx0H@EEjyJI)eux(^nfqo)S&|POHU0na#Pr@ zhwwG{E)}`?<Xz>3-3bW~mvHaxcy~E&ZswHoXp7v#CwF|Az_avU@YE}-o*dW83^~ak z`YAkF><DuWR|StiWM07|#a$C_I~{uZYuTb|M~;jmOqxPY;jK|0mz=+n7#<YK-gK|O z=X1rv*=h5i9gcXP@g$tn=DU*H*~8T*d=l22J*^V=<K}Nw(JRY8^G}ZZma}rw^vEp> zl&YD7veFhZ&Yg9C+0WYCy7On=S5C^3$h^Jk-V)VNsaeY(?C)|7pXwfX-!f^dL5HX% z>x9&}g7S^MZ_2sY&(}M})}Pt+R!OOM{js+H?QP`?5;-koEZ$xH^0?;Nx8-xY?gpIj z`EY6W!9%y6v<dtUOz2EfIK*wbDZ2PToz?7vi?!Z(9=l+=xqL&!F6{#>N@sOXESsZu zQ+VP1^arQcPhVYcIcMkP!uvDloMYcxe(t~>!Dr@kPnOCbd~H|s>w;+Vu_cvrJU?qp zzJ7e>9=lUd-dIfDyx8Ylzp<tLsV8R()$;p{e*UzWJip(lvU<+R+lzgyrg}Rcm|0a4 zJL!S2n1TQ8?g>-)q*Lat@$U3cv~^05_p4H@%P^SDrJ_Gi_{_aCW()6y8&6oE^KE&e z#G8q_d8cO1shZhz`QG|~vM=8ncW%*pnOn3Ypv`i-yxP0D2_Js3^h=*ym*Zs=sI${Y zGgRqkQDW1F2Y(jJ3w|iQQojCK-uqh{?>n4XYq#x}QQ!Qz|E{{f2yot<e3RMn<?-&1 zTk12XcyFKJ#`SNbx#Xu$JN%cin(7@if7*5aj{mz4o2~sHrYtuSj&Hfs$x}H&+<t|) z#+f(Qe*~!+JT;cFe0;CO;@r=a3iGFngVxHWTD<C2Klf*s{mcc?56>1_i>h}uOq6$j zwpx<4hOxf*McRzm35h3MHXTqhyIkp7^mpqK>!x)6Zj(jN-W6Ewm*G)A_j|e5TiFx0 zA8wW4_`=kAztqWvJ8(mNm>es+VNL$4hKTEPW33<CrOZ-(lc;kjCB5N)FSD?zMBLGt zvD>p8C+p9gI^&E%aQ(}>bNBA7c8ja)nEd%@YhroOvv!}^C*@;TIHubitGE>{c&O`~ zMwX%6&K*Y=ay?UNa~FH|f49>7S?+5d%&9(=@HhQrXw=8=PgLEO9a=N>(&tAn?5AF6 z=Gj+t_Dl)Kh3{<9b?XawTOKg(P3y~uxYqUi%?F1hmz#NQonK4LXKhwo6148eyv+xW zbKlu=>Z6<ZEqe}+v)=3b&-89E{Sc360&21pIc*L;{^BbG149cV1A`TLO~B&HVm(+h zaBq+swmn)?C!F<bb`Wv<?)!@`KH?=)z?~Upu?k1CSaKF@$XyVVFsV?%*xB=b+<_&t zUL3pYyRZ7(-$-R{*(0{<n@@;N^^m$&>T~5qMZEFGm^BZ#-gVuy>*9`&d5q8B-K*^A z>|FL#_1>qID?FkKERWw=uHZS*COFf#=767y$ij=eqHlgP;0e>MT0M2^+5JkX*JZa$ z{XMv`JE(d)znWf_X`*TN%!CyZ>a32BC+%`|4ESlmxYMbs!c0D~k73@u!%vmCCr`g# z`@+3Fc@A6MCc|~%qSJpyw62<ZV#XEQ)}2?5<-geRRX9KS&(s~abCP#FwG>}IU;cM{ zwMorydvJRl($;R7RO)1(-1gs#nSsHIoq<7wL53kUCl%D5F4ix~&Phy4&4CYhxjT9X zzQWw*)*Bj~f7wT%wrt6tcEPR<(M!*X>*+5OXOd^~S}7n>;jrS?jmfu4HfO(GH#@B3 z|G6{o)Os70J|(?>6LW5k<-9lYTT88FeAGVdIrd3t4qM1JV~%xsIyzFF4(CIi-CfOC zny)p+{rKK0=pB<;Y$+46BSR!Cvg%J>*|%4JZoWC(UBbSlan-?`=O+ssT+7PanQyd8 zdKkJ}t_%#xU{KWy+-X>OE38X;jl-iuZ#i$q1ROKG5vFl<1$TT=Xm-<<EUob81;-@3 z7bf&wh~$b1aO_^1y`^cwy(Wbp8mjg`rPi<P5b~QXT~P5>;!?}QsX-Ck$Mu=!e9!lj zP}yl6a&>L3#Sc3fm3>oF#1{#Qd_2IGU!!$OXsvJ5V%fxlS`q78JcVBKlpbPRHFHB| z$+?3C3@dkj*|TKcnv{zxFC1rzjXdsjvt#aYgIz+K7C-+x@sj9#@3nI-UV46OVFugG z9w%@1360-xTZ{C)I&a->=KWXo><f-VuMh4u*?(Kt|NYW{oS2zAixUGTOkF-(g)KH+ zWXbP+oXf0KR2*bxvl~=a&3JY^T_jfId1OX&(R=@zD~jLe{dw@uTxD{?y+x}_kKQsd z;hx0f`=?6t`l*k82R~<OdrV>ws9;m-khvbrWRbdRamDt<_53^+68`>v;{RW4r)_uL z$%@Uq7MIu#Nfa_0+%`CGc;&f#)tU{a5nMuI%CqfGEdO}OY*osM%b6w{kKM}Cn=NEk z#3hn;`^cSFEBoh~yqvxG<9b!s?nnP4=1pGP@=)LSyR?euKGV}-($gJ(`MzE%Vkx!Q zSMRH9Kxes?-9>R%MXh_Hf)0U44qkd*b31lkpQ1(myuJ3dwZDpZUcSwhn#Q%#Ch2b0 ziuDQm{F^=89p}^+^36~9vhKpPXZiQ;EzF$R%{%X8il(06AE8*qE04Gw83gZyB!2wb z*fM?bS8v9B^VKK5;eQeFeYw29-+?Tli3M?<;k|{jdaVl=&$#Ti<mgIkcdpeH)|YmD zR@ips)pd;>Q`O{e>Q2?Q;fs1cw<P}GZ?A|Qr>ea6b_@QOd?WkIw`AGY65rXZdsHOP zAC&l2b?e$ii!CCSy_L)NKiivp`0m_o^WQg~f4=d{8~*)y9`A0-SMJuowAudKH;bmV zd&S<H|9*MgA5j24Dkyg<=PG$y&ceVjmlHA;4bPWlxjCtM=_MJZd6|f@=pQS5v1QJs zp>K<BxrzMc^)H;9sP!SB;L^WCeo}17(IN)SGt3^J%n*Cow9RApsdrq5O8z+1_U(&! zzmDa`<dj=0pYl)Jz5Dr{{^Ip|^(P;#k$Tw0-SaBW;Kl!Y?<;vHa4GeDJ?6T#wk(YG zH@CczSl$gOZSHkGeag#vj9=G8zB{0D@_I~0gZ#qz30;RW%3GeQshwc;{`b$jkR^U| zuiM2I%_70mDoyb-W7h=i{LCpX-O+o}>g~6@?b*4q$zDCWjjY)koA*9?eZ%4Xj#cfv z71eeBj4$rDt^dsC*LO%J@>Wycqz3C%jtkwk9$gVC)TUu#_cW$^kLuN3xt&5WGrw7R zM{V>J-XVE^d%oIXwG0=DUwi*mT+6>{BXmjFYhB{f7cJAYHz#vN8}y&t=DKvJ$b?O{ zM{>G1xGc#xdZgVan6mSdrLdld^1&k+KOeBMYE3(!5<h9ZfzF>?CSgGX-=mk@KBnez zGzxF!m~7+ZTe`*Kh}6PI(P<VRPl~=-aw|ilxlciS%U}Hv)hSDYS9NrAX&D#Ao{ni< zZot1`*NHcZcV@|#E^u3B=6UMfj+7S8%eQ__kG7xod->1V8}^1ycslc_P4VlXgm3@! zo+akI&y?_)k)%1x$<~;2AEWH)IVD?NyaXSJJL^T7Yy5E3JbQ@Kb7AVz9A~u_lW%?+ zN4wS+yZX(HI9ZdMG<|-PyqnL2JED&7%X97*1v38Ka(jZNU){caJ@r-leT79zjK%Ln z)E@Y-uKH<zzTWLEKYuNXdaAu*e~~7~2ky{->w8^q6<>*49LQQFQg?3Wp<fA?=H6$! zynDChmIqmG|82yU#@yIttUR^cq}}N3k_~IWpAnl=^&+L;@Z<_RfBvYV*K4l-*w(x` zBJKK44&Kz@`rD_EYP^W+{j<@2w*T(WyI+2Pxx(Y-D~7TZU6(?Q%Sy7lbnXR<bvwB& z_x-W?l}thKDZBLcgUn4Lg&S%U5<8;8jZ}HtuBaUE)eWB7^;UMHUT*Gp&$1P)V$Am% z%Re31t--+`cbLmpV)~q~vpi-8T%KVuN$pR7u+bvDwSjTHlRBAmCS0D%<@t2h6x}E5 zJWoAZ$9W@@=f=w9qrY_S&h2x$z3TA&ytVqyt2*WiUST%aF}J^MuAjr&^}L%-+>2du zje|9E?~CbkUw0Xv^hngol!^$o-(mQv^H$Wda}VMzxjn-V2PxjRcrBlEx@1K~T1Lg% z${(v7FT{JYtm)7->^$rm^>hEL4Trxeba_3U_%AEfao*F*a<v<_Yy2+zd-7VxIknvu z8`g?nc-{N7b78fQ=C<|K%KZ2CwjZ2xB_%lQdsX@3gopmmzyA#^x8i?y{GW|Px%=OQ zCpRT#Klu9MT=~5J99ONAdgFRbt&(c@RB2v2{_e}GhBDiF&0D6vE0|~5*J;kOe|Oi) zWO>6>70pR)uj8jri)#$H{oo$c^=&#QPwOd*K5=x~RP)2-slA!!UG1tZs>Zh?;x5PL zO$&c{`RmKTQn3SDFBx}4GH%?q-dpaLvDoq_+J+k3_cAjzlHQ+eDB$7pUH9T|g~HB) z&rdf-)&4=6Rr3=ya9S27)G5Qjz#z}Sz#xp=ltUXDY+?O|ZD??FV9CdFzD}Nk&=VRb z&u-kTc~a-3=hn>^+b_g0Ad1XRxo8xNK+|{dVZ)SET^Cn<H0vIg=mugLi6qWCbbp~( z2N|VAvyLL)Y4_@(_zo0|@CpIVA|ul;qz5A-lN>XoO^A8$fdqIsmyv;iVM`;3i8j(& z06GSN6><y$+Kf+tH^N-Z-P*|JE@oyxJ6-{4?=~v~GnReZ$cAH1-Xa_RQ5oHEl&M@+ z24>JyE*`gI&V3;pFQ|@TJa{IIm4O+{EEvSuxW>yN=7K_bOQWea1Ip+*D+4oV^c;^n zF~`m!=0W1FQk#JRo+Th@6igB`k`D4q9mXg+#4nI^gV||Aw!6lZEW6=dI93Mcy+Ll6 zvj&Lth1r)uw*RRa1CE{zD+4pAXM-nHF<WEECf8aanT**sV`X3lwaxGtk6x4rGawu9 zZjTgj$T^*rff-b!;4v7pNJKVx1G2%G1tcp2GpK;XV?4UMB~jch?||fPa56(Fe+j!D mv&chseV+qTsG|i7r~t%pH!B+`Q}HtJGCX8qVEFC;;sF3tT!8KX literal 0 HcmV?d00001 diff --git a/rules_shipping.xml b/rules_shipping.xml index 59da7a8..6c828bf 100644 --- a/rules_shipping.xml +++ b/rules_shipping.xml @@ -6,7 +6,7 @@ <authorUrl>http://www.kainhofer.com</authorUrl> <copyright>Copyright (C) 2013, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>2.3.0</version> + <version>2.4.0</version> <description>VMSHIPMENT_RULES_DESC</description> <files> <filename plugin="rules_shipping">rules_shipping.php</filename> diff --git a/rules_shipping_advanced.php b/rules_shipping_advanced.php index 206bff6..1b54814 100644 --- a/rules_shipping_advanced.php +++ b/rules_shipping_advanced.php @@ -43,6 +43,37 @@ class plgVmShipmentRules_Shipping_Advanced extends plgVmShipmentRules_Shipping_B */ protected function addCustomCartValues (VirtueMartCart $cart, $cart_prices, &$values) { $values['coupon'] = $cart->couponCode; + + // Postal code Check for UK postal codes: Use regexp to determine if ZIP structure matches and also to extract the parts. + // Also handle UK overseas areas/islands that use four-letter outward codes rather than "A{1,2}0{1,2}A{0,1} 0AA" + if ($values['zip'] and preg_match('/^\s*(([A-Za-z]{1,2})(\d{1,2})([A-Za-z]?)|[A-Za-z]{4})\s+(\d[A-Za-z]{2})\s*$/', $values['zip'], $match)) { + $values['uk_outward'] = $match[1]; + $values['uk_area'] = $match[2]; + $values['uk_district'] = $match[3]; + $values['uk_subdistrict'] = $match[4]; + $values['uk_inward'] = $match[5]; + } else { + $values['uk_outward'] = NULL; + $values['uk_area'] = NULL; + $values['uk_district'] = NULL; + $values['uk_subdistrict'] = NULL; + $values['uk_inward'] = NULL; + } + // Postal code Check for Canadian postal codes: Use regexp to determine if ZIP structure matches and also to extract the parts. + if ($values['zip'] and preg_match('/^\s*(([A-Za-z])(\d)([A-Za-z]))\s+(\d[A-Za-z]\d)\s*$/', $values['zip'], $match)) { + $values['canada_fsa'] = $match[1]; + $values['canada_area'] = $match[2]; + $values['canada_urban'] = $match[3]; + $values['canada_subarea'] = $match[4]; + $values['canada_ldu'] = $match[5]; + } else { + $values['canada_fsa'] = NULL; + $values['canada_area'] = NULL; + $values['canada_urban'] = NULL; + $values['canada_subarea'] = NULL; + $values['canada_ldu'] = NULL; + } + // print("<pre>values: ".print_r($values,1)."</pre>"); } } diff --git a/rules_shipping_advanced.xml b/rules_shipping_advanced.xml index 208fbb1..50fd51f 100644 --- a/rules_shipping_advanced.xml +++ b/rules_shipping_advanced.xml @@ -6,7 +6,7 @@ <authorUrl>http://www.kainhofer.com</authorUrl> <copyright>Copyright (C) 2013, Reinhold Kainhofer</copyright> <license>GPL v3+</license> - <version>2.3.0</version> + <version>2.4.0</version> <description>VMSHIPMENT_RULES_ADV_DESC</description> <files> <filename plugin="rules_shipping_advanced">rules_shipping_advanced.php</filename> -- GitLab