From 8b7fff5d2788d81c69e97746a9a56fad56640a22 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Sun, 24 Dec 2017 12:08:23 +0100 Subject: [PATCH 01/61] [TASK] Update documentation and version numbers Resolves: #82748 Releases: master, 8-0 Change-Id: Ie32090a45a99b53de3a8c04523ae5b41c1307406 Reviewed-on: https://review.typo3.org/55208 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Documentation/Chapters/Faq/Index.rst | 13 ++- Documentation/Chapters/GridTsSyntax/Index.rst | 59 +++++++++----- Documentation/Chapters/GridWizard/Index.rst | 42 +++++----- Documentation/Chapters/Installation/Index.rst | 15 +++- Documentation/Chapters/Introduction/Index.rst | 15 ++-- Documentation/Chapters/Tsconfig/Index.rst | 32 +++++++- Documentation/Chapters/Typoscript/Index.rst | 5 +- .../Chapters/Typoscript/Reference/Index.rst | 76 +++++++++++++++--- .../GridTsSyntax/ResultOfTheExampleCode.png | Bin 70087 -> 81056 bytes .../CreateBasicGridStructureStep1.png | Bin 31507 -> 49006 bytes .../CreateBasicGridStructureStep2.png | Bin 20143 -> 101861 bytes .../CreateBasicGridStructureStep3.png | Bin 20404 -> 75383 bytes .../CreateBasicGridStructureStep4.png | Bin 34341 -> 116005 bytes .../CreateBasicGridStructureStep5.png | Bin 20174 -> 89332 bytes .../Installation/CreateBackendLayouts.png | Bin 53769 -> 103102 bytes .../Images/Installation/DragInWizard.png | Bin 0 -> 84492 bytes Documentation/Index.rst | 59 ++++++-------- composer.json | 4 +- ext_emconf.php | 4 +- 19 files changed, 216 insertions(+), 108 deletions(-) create mode 100644 Documentation/Images/Installation/DragInWizard.png diff --git a/Documentation/Chapters/Faq/Index.rst b/Documentation/Chapters/Faq/Index.rst index cae37a4..30a4a41 100644 --- a/Documentation/Chapters/Faq/Index.rst +++ b/Documentation/Chapters/Faq/Index.rst @@ -1,5 +1,4 @@ - .. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- @@ -18,6 +17,16 @@ FAQ --- +**Question: What is the recommended way to create grid element configurations?** + +**Answer:** Even though you can easily create record based grid elements +configurations using the grid wizard, the recommended way is to go for file +based configurations with unique configuration names instead of autoincremented IDs. +This will make sure each of your configurations will work on several systems +even though someone might already have created record based configurations there. +The most important advantage is that you can put these files into your favourite +versioning system and deploy it just like any other code for your project. + **Question: Are Grid Elements a full replacement for TemplaVoila?** **Answer:** Grid Elements are a replacement for the backend related @@ -57,7 +66,7 @@ individual input fields then?** **Answer:** It's very easy to provide a new CType for the tt\_content table with the TYPO3 API since this table already offers you lots of different fields to make use of. Just create the TCA structure and add -a new content type via an extension or maybe via extTables.php, +a new content type via an extension, provide some TypoScript for the frontend output and – voila – here you go with a new content element. diff --git a/Documentation/Chapters/GridTsSyntax/Index.rst b/Documentation/Chapters/GridTsSyntax/Index.rst index 738f186..4499dc8 100644 --- a/Documentation/Chapters/GridTsSyntax/Index.rst +++ b/Documentation/Chapters/GridTsSyntax/Index.rst @@ -87,31 +87,39 @@ even though it might stay empty later on. Create the cells """""""""""""""" -Each of the cells comes with up to 6 different keys: **name**, -**colPos**, **colspan**, **rowspan**, **allowed** and -**allowedGridTypes**. There must be at least the **name** and if +Each of the cells comes with up to 7 different keys: **name**, +**colPos**, **colspan**, **rowspan**, **allowed**, **disallowed** +and **maxitems**. There must be at least the **name** and if you want to use the column as something else than a placeholder, there must be a value for **colPos** as well. Otherwise the cell will be marked as *inactive* in the page module. -The values for **colspan** , **rowspan**, **allowed** and -**allowedGridTypes** are optional. +The values for **colspan** , **rowspan**, **allowed**, **disallowed** +and **maxitems** are optional. The **allowed** feature is used to determine those content element types the user will be allowed to use within this column. You -can use a comma separated list of Ctype values here and as soon as -this contains at least one value, any other element type will be -forbidden. - -Same goes for the **allowedGridTypes** feature which is used to determine -those grid types the user will be allowed to use within this column. You -can use a comma separated list of Grid Identifiers here and as soon as -this contains at least one value, any other Grid type will be forbidden -and the value gridelements_pi1 will be silently added to **allowed**. - -n this context a "Grid Identifier" can be a GridElement's UID or alias -(if you use records to define your grid elements) -- or a GridElement's ID -(if you use TSconfig to define your grid elements). +can use an array with **CType**, **list_type** and **tx_gridelements_backend_layout** +as keys here and as soon as one of those contains at least one value, +any other type or layout will be forbidden. + +**CType** determines the content element types, **list_type** the plugin types +**tx_gridelements_backend_layout** the grid element types that are allowed +in that particular column. The syntax matches that of the content defender +extension so people using that will not have to change their configuration anymore. + +Same goes for the **disallowed** feature which is the black list variant of the +**allowed** feature. While **alowed** explicitely lists those elements, the +user may put into that column, **disallowed** will exclude specific element list +or grid types keeping all others available. **disallowed** will override **allowed** +in case they contain the same values. + +The **maxitems** feature will limit the maximum number of content elements to be put +in that column. Columns having that limit will get a small counter box at the upper right. +Limiting the number of elements will NOT completely restrict elements there, since users might +switch a layout and won't be able to touch the then superfluous elements anymore. +Still it will remove buttons and give visual feedback when the maximum number of elements +has been reached (orange counter) or exceeded (red counter and items). The **colPos** value will be used while fetching the content elements from the database, since grid view and grid elements @@ -135,7 +143,9 @@ only *text* and *text with image* allowed as a content type: name = Top colspan = 4 colPos = 0 - allowed = text,textpic + allowed { + CType = text,textpic + } } } } @@ -145,17 +155,24 @@ only *text* and *text with image* allowed as a content type: name = Outer Left rowspan = 2 colPos = 1 - allowed = text,textpic - allowedGridTypes = 2ColumnContainer,3ColumnContainer + allowed { + CType = text,textpic + tx_gridelements_backend_layout = 2ColumnContainer,3ColumnContainer + } } 2 { name = Left colPos = 2 allowed = * + disallowed { + CType = text,textpic + tx_gridelements_backend_layout = 2ColumnContainer,3ColumnContainer + } } 3 { name = Right colPos = 3 + maxitems = 4 } 4 { name = Outer Right diff --git a/Documentation/Chapters/GridWizard/Index.rst b/Documentation/Chapters/GridWizard/Index.rst index b5ed4ff..d30af1b 100644 --- a/Documentation/Chapters/GridWizard/Index.rst +++ b/Documentation/Chapters/GridWizard/Index.rst @@ -27,10 +27,9 @@ Creating the basic grid structure """"""""""""""""""""""""""""""""" When you want to use this wizard just go to the **Configuration** tab -of the layout record, click on the **icon with the pencil** to the -right of the of the **Grid Configuration** area and wait for the -popup window to open. When this is a newly created record, the wizard -will look like this: +of the layout record and you will find it within the editing form. +Since TYPO3 version 8 there is no popup window for that wizard anymore. +When this is a newly created record, the wizard will look like this: .. figure:: ../../Images/GridWizard/CreateBasicGridStructureStep1.png :alt: Create basic grid structure step 1 @@ -40,11 +39,11 @@ will look like this: Otherwise it will show a visible representation of the structure -provided in the textarea. +provided in the PageTS-Config area below. -Now you can click on the **small triangles** at the right and at the -bottom to create the basic grid structure. + will increase the number -of columns and/or rows, - will decrease it. To get the example we have +Now you can click on the **small arrows** at the right and at the +bottom to create the basic grid structure. down and right will increase the number +of columns and/or rows, up and left will decrease it. To get the example we have been using for the :ref:`Grid TS Syntax `, the basic grid would be looking like this: @@ -81,6 +80,15 @@ should be looking like this: .. :align: center .. :name: Create basic grid structure step 3 +Finally you should give the cells a **name** and a number to +be used as the value for the internal colPos within a grid element +using this layout. And you should decide about the available content, list +and grid element types and maybe the maximum number of items for each cell. +If you don't set the **column number**, the cell will be a placeholder that can +not contain any element later on. +To edit the values for each cell, just click on the **pencil within +the square** in the middle of each cell, fill in the values and save +them by clicking on the **disk symbol** . .. figure:: ../../Images/GridWizard/CreateBasicGridStructureStep4.png :alt: Create basic grid structure step 4 @@ -89,16 +97,6 @@ should be looking like this: .. :name: Create basic grid structure step 4 -Finally you should give the cells a **name** and a number to -be used as the value for the internal colPos within a grid element -using this layout. And you should decide about the available content -and grid element types for each cell. If you don't set the **column number**, -the cell will be a placeholder that can not contain any element later on. -To edit the values for each cell, just click on the **pencil within -the square** in the middle of each cell, fill in the values and save -them by clicking on the **disk symbol** . - - Saving the layout to the CE backend layout record """"""""""""""""""""""""""""""""""""""""""""""""" @@ -112,8 +110,10 @@ looking like this: .. :name: Create basic grid structure step 5 -You can save it by clicking on the **disk symbol at the upper left -corner** of the popup window. Depending on the names and column values -you have been using, the result should be close to the example we have +It will be saved and transformed into the PageTS-Config syntax below when you save the record. +Depending on the names and column values you have been using, the result should be close to the example we have used in the :ref:`Grid TS Syntax ` section. When you open the wizard the next time, it will come up in the same state. + +Of course you don't have to save the configuration as a record in the database, but you can copy it and paste it into a file to +include that just as any other usual PageTS-Config file. diff --git a/Documentation/Chapters/Installation/Index.rst b/Documentation/Chapters/Installation/Index.rst index 38c58b8..c2c6289 100644 --- a/Documentation/Chapters/Installation/Index.rst +++ b/Documentation/Chapters/Installation/Index.rst @@ -122,6 +122,8 @@ page, that you want to use as the container for your backend layouts ` chapter to find out how to do that. Now save the record and create some more layouts if you like. +If you want to use file based configuration for your CE backend layouts instead +you can still use the wizard to generate the necessary configuration. Create new Grid Elements @@ -139,18 +141,23 @@ column. After a few seconds the spinner symbol will disappear and show your newly created grid element. Drag in as many elements as necessary for the desired page layout. -.. figure:: ../../Images/Installation/CreateGridElements.png - :alt: Create grid elements +.. figure:: ../../Images/Installation/DragInWizard.png + :alt: Drag in wizard :width: 800 .. :align: center -.. :name: Create grid elements - +.. :name: Drag in wizard **Note:** Of course you can drag elements into the columns of a Grid Element as well, as soon as you got at least one of them on your page. So nesting can be done with the drag in wizard within just a few seconds as well. +.. figure:: ../../Images/Installation/CreateGridElements.png + :alt: Create grid elements + :width: 800 +.. :align: center +.. :name: Create grid elements + Change existing elements into Grid Elements """"""""""""""""""""""""""""""""""""""""""" diff --git a/Documentation/Chapters/Introduction/Index.rst b/Documentation/Chapters/Introduction/Index.rst index 1593644..02a511e 100644 --- a/Documentation/Chapters/Introduction/Index.rst +++ b/Documentation/Chapters/Introduction/Index.rst @@ -1,5 +1,4 @@ - .. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- @@ -25,11 +24,10 @@ Since version 4.5 the TYPO3 core offers the so called **grid view**, a feature developed during the user experience week, that gives backend users some nice options to get a more **user friendly backend layout**. You can create your own table based backend layout records, -fill in as many columns as you like with either a wizard or a -*TSconfig* like code and arrange these columns to match your desired +fill in as many columns as you like with either a wizard or a *TSconfig* like code and arrange these columns to match your desired layout, so backend users will easily recognize where to put their content. Each record can get an icon that will be used as with the -layout selector box. +layout selector box. Code can be stored and versioned in files as well. Grid Elements are pushing these features to the next level, namely content elements. @@ -48,7 +46,7 @@ lots of different features, like form based select boxes and switches to control the frontend output of a grid elements based on this layout later on. -Another usability improvement of Grid Elements is the new **drag and +Another usability improvement of Grid Elements is the **drag and drop behavior** added to the page module. You can drag elements between different columns within the page or element grid. Drop an element to move it or make a copy by pressing the CTRL-key while @@ -67,6 +65,9 @@ A short roundup of the features and advantages - Completely TypoScript based backend layout +- Allowed and (brandnew) disallowed content types, list types and grid types as well + as maximum items per column configurable via wizard or TypoScript + - Comfortable point and click wizard to create backend layout structures and assign columns and allowed content types @@ -98,7 +99,7 @@ A short roundup of the features and advantages - Referenced content visible in the preview section of the reference element -- Completely TypoScript based frontend output +- Completely TypoScript or Fluid based frontend output - Flexform field values automatically added to the data set @@ -111,7 +112,7 @@ A short roundup of the features and advantages - Completely based on hooks without XCLASSing (only exception is the list module due to missing hooks) -Some of you might be used to similar features of TemplaVoilaand ask +Some of you might be used to similar features of TemplaVoila and ask themselves why they should be using grid elements instead. If you want to know more details, check out the **FAQ** section to find some answers diff --git a/Documentation/Chapters/Tsconfig/Index.rst b/Documentation/Chapters/Tsconfig/Index.rst index e02d6aa..60ed4c2 100644 --- a/Documentation/Chapters/Tsconfig/Index.rst +++ b/Documentation/Chapters/Tsconfig/Index.rst @@ -33,10 +33,21 @@ Grid Elements completely without grid records: .. ### BEGIN~OF~TABLE ### +.. _tsconfig: + +tx\_gridelements +^^^^^^^^ + + +.. _tsconfig-tx-gridelements-setup: + +tx\_gridelements.setup +"""""""""""""""" + .. container:: table-row Property - tx\_gridelements.setup + setup Data type Grid TS structure @@ -47,6 +58,10 @@ Grid Elements completely without grid records: Default N/A +.. _tsconfig-tx-gridelements-setup-123: + +tx\_gridelements.setup.123 +"""""""""""""""" .. container:: table-row @@ -64,6 +79,10 @@ Grid Elements completely without grid records: Default N/A +.. _tsconfig-tx-gridelements-overrulerecords: + +tx\_gridelements.overruleRecords +"""""""""""""""" .. container:: table-row @@ -80,6 +99,10 @@ Grid Elements completely without grid records: Default 0 +.. _tsconfig-tx-gridelements-excludelayoutids: + +tx\_gridelements.excludeLayoutIds +"""""""""""""""" .. container:: table-row @@ -96,12 +119,15 @@ Grid Elements completely without grid records: Default N/A +.. _tsconfig-TCEFORM-tt-content-tx-gridelements-backend-layout-PAGE-TSCONFIG-ID: + +TCEFORM.tt\_content.tx\_gridelements\_backend\_layout.PAGE\_TSCONFIG\_ID +"""""""""""""""" .. container:: table-row Property - TCEFORM.tt\_content.tx\_gridelements\_backend\_layout.PAGE\_TSCONFIG\_ - ID + TCEFORM.tt\_content.tx\_gridelements\_backend\_layout.PAGE\_TSCONFIG\_ID Data type Integer diff --git a/Documentation/Chapters/Typoscript/Index.rst b/Documentation/Chapters/Typoscript/Index.rst index cf40c65..69c3844 100644 --- a/Documentation/Chapters/Typoscript/Index.rst +++ b/Documentation/Chapters/Typoscript/Index.rst @@ -1,5 +1,3 @@ - - .. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- @@ -114,6 +112,9 @@ As described in the commented part, you will find some additional virtual fields in your data, that will contain stuff that has been used during the rendering process. These come in handy, when you want to use a TEMPLATE or FLUIDTEMPLATE element to produce your output. +Just use the the debug viewhelper in your template to get an overview of the available fields. +:: + {_all} Any of the internal keys and the default settings will of course be passed to the stdWrap method, so you can assign almost anything to any diff --git a/Documentation/Chapters/Typoscript/Reference/Index.rst b/Documentation/Chapters/Typoscript/Reference/Index.rst index 143ee6f..de1f672 100644 --- a/Documentation/Chapters/Typoscript/Reference/Index.rst +++ b/Documentation/Chapters/Typoscript/Reference/Index.rst @@ -1,5 +1,3 @@ - - .. ================================================== .. FOR YOUR INFORMATION .. -------------------------------------------------- @@ -20,20 +18,17 @@ Reference .. ### BEGIN~OF~TABLE ### -.. container:: table-row - Property - Property: +.. _typoscript: - Data type - Data type: +TypoScript +^^^^^^^^ - Description - Description: - Default - Default: +.. _typoscript-setup: +setup +"""""""""""""""" .. container:: table-row @@ -51,6 +46,11 @@ Reference N/A +.. _typoscript-setup-default: + +setup.default +"""""""""""""""" + .. container:: table-row Property @@ -72,6 +72,11 @@ Reference N/A +.. _typoscript-setup-123: + +setup.123 +"""""""""""""""" + .. container:: table-row Property @@ -88,6 +93,11 @@ Reference N/A +.. _typoscript-columns: + +columns +"""""""""""""""" + .. container:: table-row Property @@ -105,6 +115,11 @@ Reference N/A +.. _typoscript-columns-default: + +columns.default +"""""""""""""""" + .. container:: table-row Property @@ -121,6 +136,11 @@ Reference N/A +.. _typoscript-columns-123: + +columns.123 +"""""""""""""""" + .. container:: table-row Property @@ -136,6 +156,11 @@ Reference N/A +.. _typoscript-renderObj: + +renderObj +"""""""""""""""" + .. container:: table-row Property @@ -151,6 +176,11 @@ Reference COA +.. _typoscript-flexform-fieldname: + +flexform\_fieldname +"""""""""""""""" + .. container:: table-row Property @@ -167,6 +197,11 @@ Reference N/A +.. _typoscript-parentgrid-fieldname: + +parentgrid\_fieldname +"""""""""""""""" + .. container:: table-row Property @@ -182,6 +217,11 @@ Reference N/A +.. _typoscript-tx-gridelements-view-children: + +tx\_gridelements\_view\_children +"""""""""""""""" + .. container:: table-row Property @@ -196,6 +236,10 @@ Reference Default N/A +.. _typoscript-tx-gridelements-view-columns: + +tx\_gridelements\_view\_columns +"""""""""""""""" .. container:: table-row @@ -212,6 +256,11 @@ Reference N/A +.. _typoscript-tx-gridelements-view-column-123: + +tx\_gridelements\_view\_column\_123 +"""""""""""""""" + .. container:: table-row Property @@ -227,6 +276,11 @@ Reference N/A +.. _typoscript-tx-gridelements-view-child-123: + +tx\_gridelements\_view\_child\_123 +"""""""""""""""" + .. container:: table-row Property diff --git a/Documentation/Images/GridTsSyntax/ResultOfTheExampleCode.png b/Documentation/Images/GridTsSyntax/ResultOfTheExampleCode.png index 7346bf0e8c5596136386d6893aaa5bd1b9b90d45..278f280e3520901930167c30a5876c0b225da2f3 100644 GIT binary patch literal 81056 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%0D?A5TferDCZw_Q) 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 JTJ!S>e*x+fF;D;i literal 70087 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�yM-Cq*X&{2t&zyOCIXa?!Vqs+s^WQUw zTxKe)Lw@r?%A^k zLR)SwuGh`Q#l;^HwGas50H~8YW2aFnC5gMFS66SKfl^RVxPN2s>mv(`i%Dn!eEPmf z+`Dt<4kq4_4yC>O*aEpiRMga>o5zuUelIMb{DcbU8oC~qY*HZu9D9kTaJd+g83ax- zcJ^EK=BR@4`eHQ-l<^Oyb$wA%-~-f(U()Tw-a(t0@Rt6DGi1CF=pSSj5vxR|lOS^O z@sS!kUteE5T4&!-e}`@9(%kTHR~I5h0?vc`9vK;dIS302Q#@hy{qv@w!5Yr6Z?GMi zL@!rAGAYRint2F#0J078%r`ycB~=fk$O<7S9wE_SCvpV$)70E7>G8|r^yxZ$3~4s& zvW1j2oA}l3FNKo}>wgx{Sg+g4P1T7WtC%7AwUfzK(_biN79mN+q`=kT>UFpmAMNg0 zf`V4`n@g|l^Qee_w1c{iU_#TDLm5Ih`{8OISS%FrxNg!AbW>C9zG9pg$`Bo%o^7fa zu*D9ELtvhxm;bJzp$63-1$&ydIHbuyINJvXR^g;V39YE7RcDy^srgdwQU`y7p_V5nF;7Ygyb6 zN06sL1_9&Bd>Qr1CPGO{i;Y*m@XiF};7W{R^103V238DqHd@r$ z=TVYxb4dMYam=+3k1~OM%?wqR;ZNX{SSGO$$3CuyO#nIoZtsZcXl}lWjW;thLy^Be zk>ZEqneN=VbESsTco+#(!o|2G$YZ0AoUFdhhA^)ynq9K|MXa!LdvR zY6U#VX=>4PEk~bk>F3XmNms@&a#;tt8=Zae@ubJ@Q0wUGTAif->1=In?e4yO%<DT!_vh1l(Obrpt5z+%ay%uP<-9bg(!A9EIWaQ^-JKxYjeZh+`(j(RWK z+uQpm5f2d1&RSbvpJTY3=UEGMDBIc1t$LVXcp|%^LgJyyQ9Pc>S=`irnDg)7%K~vA z8v5I4piUeMnB5F!YNjWm! z6fKl>5WJ^&WVQe>aDZq-KtYGu)2>M#US2$(>n0V?i4z|uU2l}1<@ojcx80CnZ=gyV z9384^S(Nj2zs)^-ZYL-ubgnyk$1)nKbI1I?P7L#(tZ-hTbml*u`e|`uxws zWW5Wiaay+Z=JVScyu5b~L86Cvjvm?F!NFnS>gQ^oN>s84Wm&no-V&Bxo#|?EU%!2G zLkVPU65*AZn=6GmuHEi)mmO>INJ&0_f7>7~0$O>%)!4O+ z*5ze+IhZTiDgVI$l{7SCHY1mYZfN-T@FnCl*ngfF_3XiegTbxObMo`E zvdUNM=J;q;O^gj?T3?6CKmDKv2|LCaAkT$xopRqk$niNG65Y>HD@?jVpRrsk^a0o} zdBB@f7u%rLhm`YkZPGN#Km^o0Z5BfllObdW03p)mZ|{&EMRfSEIhMn=^snz!%?&fy zKZwN3ZCl-ONgz?ugJ=dIA|gHKDethEVcrq~JZazo_>of|C8JO#yeUrox955&ok;6F zg-uHA!DVQ@kLNy7Q&q)tbcPLc&Ys)BVSNryOfWC(8)|LU;kPdCzrMJLQ_f1M@zJ{U z*}ZSaz#b&RH4vu;1_svF)_(egOa6$7;0thIsbmCXi5MhOr))kIh#NLgBbINxqDX;q045~bzm$w%^H3!Xf-S&rD0JehTG0GLNcq*M+BCn$buvovX@8C1CZ-D~ zZFH`1KA1%H6Bie^R95!m#}C{Dw61fZ0cogKoj2&E9dsH;os)7i0kyA|sU&C7gZl;hmFub1)iTGA&!C=_r$7N^VQDEWBJx!h0RM;m z3R>MDSFtnm%uAR(dd+^};>8p^v1H+!dQ~HSbDvq<-@50Fo7vL~Jc0rO*m_I9D{0yu zK)vx4!@o~0gc$LasHCJYD(vO~{vITJTqvv6Z5yfBRMUJ}?>{GfN0v@N;=O>P`-ZO~ z9vXt@3K|(zVv_SO*(bq-R!C>t-@h-&U&D|g3{4<1{laN!2BuTYNLWzh%rBsv%J4r%FDiJDCNVRE~ z6h%>zN_3D)LXt|7C<;j;C83k%_1N?K&8%6oX04fjX2x3I@7h$KKA-1#KlkCfuKT); zj2@KVr)+sE{?tB&`zu_p21ak1dCtDK_RkV$OxNTJmH^+refvBl-sB1+i2UuNzr^q3 z5t^+JCE6DPGgf{z)=NJnSeOt1a$f$|6%@O8@^ zhZIYrFpUKf9#?PP{2_o{C&%Vg?B2HR3)PdL1b+IIVHy3RIiEg0v!AIS_@N_rMoQVU zXVvwYxTcw}TX(X%J*lML3H8R1Zk4R_=hLH)q|fM%e!X5nQTdK*gZZ94Gc&~}>L*bz zpTAywU^k&@;JWw2R$5qWQ5${My6>CbuRt!>tXZaV_44J*adBKrP~#KSDkZ{*6rIaT z$x9`6{P_D_uA4SZ(lrLLSS%)V!;uP|de4fAhI|#>p#h9UPb@zAuZ{OSm`SQw*8-jfv?-ehH&TyZdYg2I2Imt_AuX0)2o7n(SR&}R6EyMby>@tuCQ z5O8&|7;Og4(X7`ly=4D6b*eaSm5SFX;x^SYmWXSuqEyjwcP3&2HBiS6HpsSMjW0>vZ$@rB(OFwsiyPB@xzd)t> zV8G<%|E^E5Udb#*uyfC{d->vxlakgRGmTKdy4V; ze)E}`V06pbH}X?MLsw_#y^T9*j&zNQ`0_e-%yyH4msj!ZZcK#5sJ^Me$Xw3u3%s!% zFKKi<5}@Fb1wY# z_x%-;l;RU6P8_Pk_g_-5r$W~l-0{8MQ#`PsmhP?#551-pF9>M&#>e#=CNJY9j1kgs z-hK&Q-Mq8>s>MPhs~3dQXU|MK4;))GVP1qb4bg=aOgrfLMhZ8_tC$=Arn6s+!Y2Wa zW-R?~Zf^5-7@ZTr5p(w{%gBhRj8$DfAL@eh*_Eg(wl>u<=YTd6cRq8j$G7I@9F^Hq zrw-_=tz!o+tRZ{;CuyW_M?&CEEV3ci*p_Ef?n=S5~^ z3EplBzEA6&@VP=2#v6!K=x>zQMXPHp={>{pifL?VJ(nEv`oO~G&zBjlesSA%#=NzL zhK3qq^_!!F>)hbu?Ok*5hELYi{@!;{+1J>i&8EYb)csPKHcVCx;NiBdySt{2nDq$8 z@q2l#!1I+kfRpK9Ibe;RxivCg>pZ&lxO?QNY=AHMwU#?lk-lf@>sP?K#6HJ<-1DZ^ zn~{+^il>uSUj-3lCV7ao=D(4bNgHB58(SuaMP3G{OaVe1I&`SZEwI0FUF)i6zZ|NA z8|O;J(__9-Jpnwgz|>7`Ttmsdlsf;aj{T-gx}iQU5mucnGs5EcGa9UYnHmt%2n3Z zEm^IbE#sftsAoxisaVtV&3giO)8{Au5<8QVTd1b!#j3dM6bM*T9zJ|nXz2(k`B(h} zq{eG=lTG4kdN}K`Xe0cDKLxNC5GWF3#&p0BAY$1~E5bu|EiP_NhVwL?qq#NLnN6_z z&5$fEqofVhsluN){n1SSyv`l` zUh%X&VOgM`C`ZW@Ok4hK{i+0lo$*WV6^wJ?xw+-G$-?*~BqB2$kqV!H1x}wn&8$j5 ziQRig4N4lt(*pBJJBDG~0x|C+M;0$xQd*v2i@lp)-gN%)(W6Ja+*JS?P`JVmBv)v1 z#nX?7p2AgcsoUq~CfM{*GMXx$<{t0{Z@ei2p`b0!+gQ@jih-)Ee$v&ep8;!e+#IfJ z%>9)Q+QOBgbr)ttK}0Og%=VyFa5u8QzC$hY<*L6KQ}iwFK-is3vunAd>g3*Dmt83T7}c(@d9F*={CP6pW|zj;IS!bUtWX$Bh9k^FoCsY$1Kiu72f>A~0-%DP zG0%qwVpp0wv<4rWXLGLG_m5SDSuY&a7l>cGb`7$ZF+U9aI-qtOyZWDeA-};hcc4cw z-qSBQ<5X*9_N@Z813bXEC&dLEM)gK(4;M z@#m5`RcV^gm;=5C3Bt8_@;gqOzx#x@x`#Z=k(7 zMS2Vm4-X1T24({x2Ckt)=_h-ycGtOc=Qd5RAXNb#Vhenkt1Zxy29NR)pevoRQubgP z6qP05I0cR?gU}$Ejt{1LiO-v+(RFuI!^@Ngo=C9GRcqD=kPt|?{H$5Gh{H4zIeRXx zX0rbWLJw*|3R7mu8(P~L-!}?X6LO2ksS}Ie@grc4X;#X2UIOb0ql6S>Vi$P0K7O?8 zti9lhPS$36CI}P{3qdN+?6i5@o{~sicsvuu(;Pwvbzx3j;@EpGiS%?EVP0YBrMuR4 zTgb7@GOHhu??~|I^2=FIh7)+r0V9CxqZqbny53mxdnDTO#g7 zS-*F$|A`aZN}~teSyr_}aoUa@UqPGO+uCX}OZ+c4_RXr|ML~UkWkkiqY+kWq#rpL! z*Vf%Nn)B%?O5kzlodo|)s zwJGcJOq#@8942T6$OH%~PkuJv_P}KGYlGS6fq4LYzN% zP{bB^tF)RHes2>o} z;IqsTj+?zpbk$w0rW;TZW9Y=CrKRbqn0rl3OuTyac+Pqy(1WU~OfWzWm6Ecu`sfq5 znaGH{xVl!2Q|DxHX0Zc!$!CTC5eAey?dYSnQ4>WlSx83)0rqHPBDCVYjei-2TmI$X zs91Ur^7)W>C|(~C5!UP13k)!t3$m=^+g8=Nw=CnIJbCiV-gB5Acc65GXN2P0>j4F| zyrH9Bg)_7yr*40n;m5p5}~bFPt~!S74oD z@IfqmXJZY$htX~;Yxm@8!#*6ySRV}2Z+ZsozYlx*;HFjN7 z|5-WWYtWsS)!7-=FRClHo?2^K-Di#Z*}{T?sj8|glt#Q;)%;?^LUFIIvOc$7^ZA%O zuOG>1S|U@$%rBJLXYTvgzp1H-(nbgf0B`_Ao#k1-^Xgjm%&7vY+4%xCsoLgNS?-4^ zF7r$t)(w90_~V=zVIebJopbA&E2}Cs#u{ohX7vlH7#9!_z<~s;3D@?Rcc*_CIV1ko zYm>M#!lAAhE%XF0M^Cpto+ZhfjoJ?%uDLi!d;Gm=1H-?iytz68ATYDPu}l~Nb~YehToA8A944m?F4!ym@j8{cGU z>pZkgCYot}8%Tt5W9s!jkB`* zRone}4)*r;;lF#2tNZ8I4ZD<=BaRrDo13F$p{Ws))C;`n7|=P*XTc(b#7m9)(|s67 z4qhC4e(vt{SrB-UipM+-NO0o1BrK={^yDP_?|f0bchf#@4?Rg6TNtPV#*7$obMM!6 zWH)MRy1TLJgpS;8qt<9S@BmR|uCcNbfLg1Y1;HwUMF&_LRL^3unjZ30_C%P8FP989 zeCfE*CB?EzZqI@KjxVY^^%Kgqe+-ifyF6~5y9Q1cZ{B2q_GmarNJu!oc>m#pvPF{U ztb4cjweV6nS2q~@?9AEx)HZpFWPi_`gX6DG^nwCh1;N17Qi>&otn1zf6TOPbd7?eJ zbpr%9A`TSgYAI(_Q_~$OgN6gB$*~=y;-%G%ddO{#_rEq{qFB$(wnXNi4raOUn(s{* zs&h1F{rq){cRM@31}il+efBm_FcDicp}ss}{C3&zNM!`VANGDiz{AqgmGR~(=vx&O z^b*SBOchfsPkenuTCLfYM!Eg@b!G=jKgX?;oi;yhhXCl@G*WwRcA28f!pgjS`xFyN z-Jh59iUxlSH&E*^_?TJKu+PQCWyOkOY)3c^%-kPbVtaShjgE1WvR(Rz$Mp*0)pO} zJc>{T|7_o5$4Fi#SJV^~#PctKJ+&73qOw(&5xM3-|c7Pxie=zG&Y`mb?d_1 z1yA3fAK~XccuZ%nb%T5g*X+og6kGtb@r82Vsoq5WY!`C>J|5| zeb^y^XN3WVVREaUUEa{@^nx@xR-I%hNHT#uE}2}3i)$dU3x+ISD|q05yqC*2Ji9Wi zYMVHMoWX+!-}g_$j{9_2*yp;sSvC)aEdlfv#Fp&r`IX)Bp!zgq69VuzS}>$-MS^S3 zL)8QfwgI5DI&G@B$JzO$ukWM6LJWpDO(D3V@cR&dESI0Eq}0i+0;<{hqI&Tzu?vh~ zCa&(J0oYsrbQ6yOpStnN!J=uuk8JT6m6Kxba%$w+!sycakGDi_`K4y;5gk0HJiXR+q+UIsLKfn$p6$l@3HJG?!dD z^oLkoV05~@%71*oJHwARQ2zNGIr28Hl>5&+`t;?C79JTmH}bS|(O{5a3A|RgxcuTW zESg{pywdpl^RIs+_Wu~wwfz0-t*RlAK{((R)sRCyL$WACjLOfBxcyOGd@9nL~AS4poO2+J&!#Js2`$Fnp|(_5pWP#+6l7 zv?#NY0U?;vmy;ObcN+dvLW0rk}A@*RNj>snyZiFj?Z527=ox z4|n(5T??9LnM(VQl#+TuIiI-taqTYBWLRL}+qyam{489Z-rhN+G(uSCK^5BHJCZ() z2b`uGJDy>>#wJ&8AS|SX`CdQ#*dq9PB5`y^ebo^B(py@1KF6h(Zkr${=T%UP!cU2SFYhf4Bd{vo zGt6pRTfdtdz%dPxSPT`uK3Aw4(7(!l3Gk>7(_k zxB*Fz9<3Ol7a0{5JZ+8OG8Q#AxpFZr=8`3-Wsn5$9~o(BMC~8QYfkCOrS6sU%n=t8 zMW4kJfasN5!nn}9d9QPGdv((>Tp=EcE@*1&LPja0D~NVccJZi zb8Bl}W}7e*n!KCC#Tud#=DMPyqA2x_Wt>FQ^B^xTvEnnynzpLL=j)+Ehrm0}6x5_7%f9#lweB8sWF^`^RP;OJVg!zRlbF(Gvow9&Zw>3*Q`ce4*LYek`Me3y_|X z@slwpW>N$aATAE-B>Ri}Bnf>RoA-jZ8WOyrqKD3|0iDUae;+ME+pk}Id<98g@KKgK ztyMgIKQ9lh%gDWh@jUb}HI)o5NXa^m)M;KsgdqGFd)(vxNZwGMZ8F3|5WxQX83pTA z0YN?*e3YTwzL#^X=ry7>Pft&ji7&D|JctYOeTVzyaTlGc_kg?eNSR!bw9dd1r~(|C zeu(VD+o<*&ETxK*MowX2JWv+j&k^s}zyICxS1(??Xlimy?{{d0!uKCPcuJ!)Y-bHq zr`D!z7n4N{AGBohWX3e-VAZrct&%G$WVCe?buL`z*}%?7Q&Uq>@zHPF(c0NnM|p=eI(xo*f3+v$IO8^OniExu)v@) z`JBa!5Q{wqgWQTsm(TKk+Z-xBTb}Pey|lSyqKGupal;QpwqG64Gkh}0BAMJ^&Z?fp znx~iMy=!LlX6=?do9TYOzM5KE5g)#r7t5Y6t2`Gn8)2AAg4@H#f`6ij${4*TmVNaD zpX_xLk?|tgtya3T!#29K>~fjd^gqt|l_&_z=LcR~Ef-i|^U*L#cgRH7S(j%BgE{kO zoWEte40zqA_Y%882qu#Ai5y0!bes@g36{`>C}mM3KXd-3G+g%)wLVs{G*2g#a730|d# zWj?yPUN|RAOo>QKJPS*i*JlAU3vTlzAO88RO-<)NTy3qn@^@2lS@-_Xej)#T=U|~6 z3^%@*m^jo{O^{Y(PdxPg>Lszm46B9C4H7Ta3w&1ZbSgv`@Tv}&zw5_Cs)C@L>n|NN z8ZcpWKsqtg9bVr~-*&OFq+h;!zs)Mbn9e%eV%h3|#0m#uoZB5YFYyK9$Mm2 z^VFX~DV5=RPo#a4lM(k^jJfI|p%-YAwEFw{vHYxvi$1?d2O?Z*;0pMcul!F@@ z8@EpnVJQO${!52xm9qF7O%I{zdpe!(s=m}a-(uO$G^>Y~gdZxlJYV?d!W`^%=>4BV zkbP+WE((``%5Oj%(U!I%2HO|ka-P8q1R5vUcQVy>FAmE&j2f7@})+P zPN&F01OYVLw@)8o5XC-a^w+El7d9|NMgN5Ca}D;Y`}b=J4x!&pojL{7q;=hkii;Yg zf^}#N!vNdkiF(C6j-5t=&oj}xW)Cz?3-e8~1R_B@{UkzLMY8{>fnvhptgi6vXnsdE z`<+GvH%j~}Tr{OKZ^N9hpM?*|YL-)mG5ffpFaZYzK?>4y%A(4Yt-(~L?D?YeZo>VL z_~}&)v9L4tVu>9*h%kplt|z7oOLEABw#lPpooeoSQ@RQo+P1^Sl6$zWfOOT?yx`~B zS~IK&>+37H(1?fOec->qvMJXE4tzFX9vTlObcY`j?w!lcYW?T$)=v-N^-z{RfY1IM zl#ISIY~KFRLfeU6C^~%Dkaq5z0pTU@ZA%;M0IUZ~5jCZEko_pM`0(D-&FM2K;ZyLBW}A1*GqE&QEhNo7c*z2_9-lM8z76ffsP#< z4W&1`?p{#>(1?&aQ3rOJ%jr+>YSQV5_=`5os~CzA#c=cP$Luf?7=GD{eQWR-|diZxrWTdbXrL=TdH)9w`K>wjD2e*2$qxS9F!woH#&gQ~Y}Wx) zu+r-VCk{VF9%)bn>Mn5|QOHakJie#C5T2o7tOyeqYqF;>q7r46q8&v*AK2HOZx?~x zgZi&Ru{xym!gR_%MzvPssySxI?V83$p6^{=D_C<05+Ur`Iy7H(%Tu|KBQ8kUdEaT5Cy;S)98Q3Janfp9z#nVssXv6QLwUz8Y$G}w| z7k0nAyM(2YOhF**3@*5Iwx+>p4uxdxuAKvBux&|DQ?p&+!MmZN8-(;X^|k1ZCpOc+ zL@16vv6#mXI$L9$nC$IiT|37|hhh2ko3!*+Qe1XX;6*4aXXj{zM|Ns&Lp8m`m7SLr z87G5qn=0;qx}-;So~O#hKP78Lqr2_+-K)g@8Z~f4(6J819Mw4@#pr?k9}Mg7{rw#C zk!VM${N@#w%)fB!Llk|0(_OEcSe1@R-xGkHyYa9+Cnf8JCEU4lm6@~CS6TPyFp!Q4 zGdQqGRf=aab-j~p50SxC#Lu2TAANi=L)X3Cw*oRLOXOFrk`>9GAu8lKjT?Zxqf=g@ z2mSeb`!sMKv$fNLmNt)67dbfb;7bRRot3ShZdAz%$yT}PGrYtPM7shN`-J$66lrq$ zliyFqUAXhwJ~^c^>M{GDWTwR4xfAZT>jC$pzmOfX7g)rbXRdp5_whjg>w1B5T1iD! zv?8RKkmb{6i;J93`SU78;f1z5mM+R`L%Es(Hp>EM_(t-5+4&$(NfuXazs(4YbWqJv z7CG5t4gn>5hHZ+aSy|bfb0>@5aiN|T7KG+slJ3*^vR*Ox-IIUS&l+4Z8Fl=A$BA<# zcXNA)So-Cbg;~TuCzlaWX3hBivgOk4+nw-cKXzMT5k6=$OK$?8&Vz2J^hcQNxaX2j zKEaiiTT?n=_>dkVE)wC3cP%zH-7VP%m#f_QE6`P-#enn zr*ojlk{|cRZv~YRQkE8yIP8{^D?}I2RQ*Q8uB@#5(<(wnjHj&J{pqHCbDEAO8SS>I z@!3l%AWqf8tHg5MUiz9zh+03*w|M+J|3w+$Xmcz3J-Qn_c%K&&C;ew zG7Av&P^^bY{M&rnfpgAnC+%Z;{EJB|2Clab_Sud5Emj$2Wo0$*Kf@xUd`BM%JVA&5 z$U4jTPWK){6(yCZ|g#ja35 z=O4=apOlo;m@$6h)M+St_mO=7N`Q~otXd@?V8ZC)l+CWLZ6qXN^ck52`S|SeXq>ZC z)6*w-A?tNU4a1k&OpBxh%@&CE9mvkB;lKz$So*-!ZzXr=`gPTK^RuC$P#->n z#@K3Kp6Hn)NR&LtXnW~gMmh+%4WvaINXs6)^b&d*LB2pF zCfY;shHBT1R9T0#!+jndWfy4{U0O_OC6WYo8&ES_-9)uPF~;GGU!AC}I&74_gGo2>5PoF+-y+KStvjUe2<9r`l+E@ZewLy8Cv;J3m`$?(4-u63jUo?Bb zhpaue@#jJUB=c-k*{hImlaBTa1=KagWNRP(_Newztm0+uUfBy!fd|SJ{#;^gioDFg z;6$Nq)JSZszJ1%(S#Dds#Fkbc_;1~1)D?n;{2VsXT9X2-l)I6dV$^iSln>4a;@(T@ zPMSPJ zKpF;yhWA63=;`TEtOf0Y&loQ&7nIMwMX!X76!NJel(ITv1|ieEBNfgWmZxkb>7sX@ z;tTk(Kn!dKoyP!K22gI;Rnu#DHD2_?wM-|uPzik#w$Ppg!U9i(<)grjeyU_(yf#R|(m(K(BqB)8qU z>tNVovQ`CV;2@TkpK59j8AX979XN2O>i`vo_~_BTo7epO@nas;x2`b>*e@n#@&a)y z<-I&Hi=*(g@_ce1!g(_aNtJb*Hr4hj?@{f&InlCUs^T}M7X5rbdf>1Hg!iM|j6s>K zyS=)HOCnJkE~st`U!IrHrFyr|*0x3Rbj}32G zBOi2O?n;xJTS{$#u+cGd%8`!BioInn5avC}GQRt#N4JmoTSpDi1;08vgkc*_11DUY zBA8*a(0_(~&4LsZVg))p2Zztp8893N#qWlkS*^5K44}vVr1juyQo_Rs@ry(=ro4gr z{_BpcuAAU?bP^16q5oO5cg}n^b8O`);2%KJIbpDruz$k1CF*+pK+`Lx$QZb9@$7Lb*ez-~0K+2KBQ9B?hSv z?#@7hgD8yBJ!RV~XEvWw4WC!wkxYW;|IyKw)!mUr*r}QFf}cZaqhfuh6FDNPa;!Ym zMo*H+r}G*nAt9_nCKi}TA_C|=BeYl3eDyf9R?%=p$Qp4koeSq*g`_>QK^0+}d?hw+ zQ1`1B<@PCeRL@-#acS19ct5bbUxmZXjP8FzLw&^=`d0!HV7QC;HKC02+~3IOa8NQIbEkk+>3QoIqfsz1!3oAwobAwS z937j8?o_%11`I#}Rq>xbp!m*`E*>UIQ1<>{1%OHWmY)K-gI6W;5 z*+)NFxeAY-xV zq2cF`MJg12d4;CSd&|oKM9ln~vvVz;K*3{2=#!f>01^Tq^t93UOFd@oPwlYx9yT{D zsycMWJ~{ojDjq+&-`#k8V3o^Eg5#>xH?2nvCwy6z+dEe~x#DxiGCPkIx0A~3^D>gO z#SKfiGYs#lO5vBOLS7_b!iPIMNE{QbJ1MDKHRH;DDJPHBRGl`{Sq3eJz_w)WMGqPM zZwCzSLCPS?WzHR=2IM`7Zmsrs_=<};t{LHV3RMW{r1^E|4Z9v9mBX&xbCU=e<@rbd zTaVrXEYuL$(oq?)wB^(#YuBEOO@CQfc;Z3r^JmWh!ta(Vii~|8)a7^wP#s_x2tPu7 zTj6WZ{(1k7B1oX{t4q8%->kH2=!T=DdYIpb_>MKqEoceF{0iLzbx z6{WtPq-?}MN_xwUlJGA1 z@2?%ZR`3K8z7U2vPP|Tm;1qN7^MSsX{Ezyd9MTS1F+lV%tUol04O$v8L5lsDNdu}E zj=qf8yofAN9IFi|I<}=)Zj1PM@zSL)70G?~9kHJiHzA`=Jm%A|3O-p!i z%%`EE&1C$E!l({>P)5c+!IpgK($7CJB>(r+DcTJvyV%(On20XgG?p+aSPc*U_ur#q z%1B_`Nj(Kgh9@MmY((Y{)A-BY*6H^H&xXg9jW=d&<*<%E!GmF7f3Kg{`{^Nmi(udf zEuN@ZD4Lx!lyXe*w0i0Ee+q4bPoHjXbH8G`RC_Qr@zP5s7gkhuU2YBsv+>}T3x`Ui zam6tPAAX~uai6EHsOY;rrWG@d8B)gqN;529n|UqSJKy^wp+lEO$XlMDQ#UGC|=;&xwT5SK42_(szC zu2{KphGX@7hzN2X2cE=p^Y-nqLR*#uy*Y6F7R4l)bkvE(-a13aj=j1jVUR3bSvvG5ADK0nj%vo{Cq-w|hZ-%yu%ULwKIL+!n z(arvnx>sh7M%|QUq@Ziuf7Pna>pc$!)0zJ_8hIe}-v34*xLh)tf-9Tn`+>K^97Da& zetEOw+>)hFnyyv;zV(NvIAMtv>g<(Ue22(;)%;Ova{-ekpDe1&cvO4&wEW1J4%??8 zqqc8$e)IThbaWg1L-mTWI}K$4$eOE{UKyQ|-qxPnx4k>cR!mgv!u|V;J#!rQ&Yj^_ z+xMwwk%KX!b(_m(&h$SQF*EY>7{%8JC8@&Kl^m#{$hDz zk!D17)Bq8YqJt|GOjFY({9k#joDh(jk@i=}WBImGy2iX)%lHwnDdE;l^}OKbUgZ&5 z_gf4EgBfwZJa=iM&8p94sa1QYo*Tt;R_)q%{CX~mt=EKr+r8gK>`b* ztE+9Fv~ePXdkWv|xPly7Q2S|6AGcKaovY>zRaIcSo0*EtkArT2Ea~Nr)p*@XN!`GUC*;4gMc_> zxvh&!s?Z}~1!N5`AS09g;6a^5aH9uP9Hp;boqh0bW|k$56Y#WtAjv8Qtz7ApF(O41 zFAH9dOKt$N5^pC@nuMFyDwljRE?DDj#$h+FQQar0i?Y{-2^tX2?FR~}B7uWp=m#18>^L21<>yj zmQx+XWC@b=$8lx89;mDU5iTn9m%Rb{$qcEfA`Ct6WleHLWzr0q{sDiE=OT>@>~ad^ zI)Fln>kPc#owbqp!kdRkVK8m=s|PEMf94!%PIvIdBkw@I-J zkt|^UC$T=ecyUoe`3{W55I4}RA_Xn9%}7l>n)j9u#q{>zQPXXZ;&IUhcP>^Ck`&p! zGs~-3c-vS((X?1wCzvX>x&J0J@7!jAaGr7q=zIKX^*)||0eCYxvRX#G*ld%@mG5tu zBm*#Fi7J@+gb{vJ3(LesGZ~SAg&B*PO|Ms%do(>gJeZ?eoeJ7a#d_G&6Z)qZ5rJEp zzkku>2=`s|U;rJ!dsX@QS1w$@d5wbnY@vK`!LVV&)>>J){rDULLda!jSOq#4H=r{6 zp*n~;QI9i;!_cyrEEH~u9T^vOI|ErDe*1scEL)B3Rp7<_?X?XJ8M|s9Ay5Yg+VbxC9|*uU!t(En1>?63aF`dJ2X7%!p?o7)5)VM%2SHVT=4-nFS8cW8;%K8v^ALv@hf-<^HJFlM2E6#+h>x_}b2 zMJ_k`MD(?5CnFUC<>LPQ*|~dPr})Z*@`+v)%q*L?Q%eo5CAKi;D-)o{dLn)eMPzV9 zgunPpeizcv1JHk%fox1X&X!ub6hJvDxBbjR4b_1S1&Cr~fL^wpXA-xVtZlE z9RAwdXyvU#l7R@~qkgw}GFGHW%Y_ZmA}5i~m?xB%etFEb5H>z>=@6HA6(gztgrRI` z=%d|u2kQr>DsE+T)Jl1llF~rg_x1I&L1e)}Bt$ucXOt{( zq7|w+)T66bl_OXYy0K#B%-Ph#iiKXw9(f53JI)S5yZ8Y3n33#F>87hQh_ zyYV{Jesm}9eba1g*4F)NM@0B?x398?MEXr~S|mDDeE87M=^Ird%u1^A);@2IYRF9* z-<7I#t-tTq9=f_0NA~Eat0y+?hTMFeIrTvy%d_@2X1>vW@}R9yrN_PEJ}z3_)d7{2 zvwv33owDO~UD(ew9Hm^tCohbX)J;?xGi=!I0O@hrr%!GNbQm(^rwU7U>)J5(IA=Ig zTG~)v8Eg0?2Q(c{PHIIh!Lf0UGwmE4a8BSx24_ssah*}KG$ zU_#_?aeu~Ij;soWY_owOGelBHKPxNisyFg5G1~)XD;(YdDz~o_Z?I7mJ3Qa`8CZ!l z3$_-BGjq%C;nHW%B!5{-{B;{Nf!$SLsuvZ&AQf2<4WCO5WS;{0pg>>6UmPvJ`7=J9B3_q-bF!=znWO<>Ld~h4pKI zQNjQh^WzGSus;k83tN6)fu+yF20B4K4)yGgu8c%wZD!UAN66yY4}UyR)tV$o8EzP1 zGSfKTy(x!dwCg&k1wNX8;i!D!0{I1sCtBeXTt{3WfvYZ31xO_P_GAAA||Pua`PsZZOMcQ+`{GMKfr?= z`tmTTvt-G5G+|7}aT`-FTsRbY8J-U3vomTs&KurB@%Z5Q0+Oe6(y#+dD?7cw)u{5?9O3T^kX)b2og{hzJi74K4T z&;=ge4gx<(--LPlTvbV3mINT1E-6Wbrl5syW}T%gM~KnX62b(qZNlnA%7=}J6yD!} z&LSS+@OOZ3;WDw*HH7_`)n=N~?7N0YK>JXR&v+ZGlyEb?mM6R+$go6W?b>nun3}e? zv%?2~4P}2W2}T9mV6`a5K&zQ{*h8xg#Ef`Cl`b1X*Bw>PHv49drWyj;-!u;H!}t)$>=d- zJX%9uefdHCW_VWpOIls{D`+4O5N(w;HBtz;uXOM;Yk-#%exwb5ygkf5MSLPIf-Sberookezt zxN&w0+97#xY7b&g>S!ltXK>=Mu*$Aw2rD=J{r5W_x+Yexn@AF-QUveoH8(3+#Cs^F zS<|R1P?v4@;-V6nY<*E(PVi=)FQ&wfQAz%T1l7$U1;KOT9Rc0H_f|9b`Ke4G59z>T z+p&A>LXN-o@C=D2zTEY-`?rd&@wjp0coG&+RCBlTFX_)xV2OnGu6eV6J>=nP%I-x0 zP4zt^SIEB?6h83^01eQ3`UVD*3SYF?;e8rD;Oxn`)`CQ z47e23JNZTmE6Y*6Q}Ym8x>@In$GW6$#TVyqJ+jLN(bZZFf@1@XXU!>psn{gnlVr}*#o$5SGBSu>6zYE1g8sWHfsK`-&%^7j+*FJHdU zYasc!q4gCn;(#GG7V`TC4;YYK;XwB^@c}*sdZjn=Z35-;>z%@#7aWX@Wy}2|WK(!V ztX#WRivV%``gJD0#%nm92c=F+6KoP$&MBd594L3L&duoH)Sl$_YI}Aw2~+;UME|WS z=T`(cEPCOoEKE%WKkOyauEL6HFt%FPJ5f=8)=x;1OA4O| zY{`xDRt~%$_uB3mNwu$7@n`hH1@|o z{NgN(;qt_8uuz{fC;jr}kCYY1{r$VEz8)B<@#Ql^+X4d)moxh$)+|T^FwQG_^5npm zlybo@vh+Kb7ve7@AYkbD@!im;NlKhuHzMDLm!quW#lw1Jo4pNKBAx%_iC~L@Bf!^I zH$nQwzRbLP_rwl2k@kh1sVts8Q)1W2QS8JJ+1tyDn8!9d4)rOgCvbRZ5CtD(Kvi`7 zw0$#iYm8Jlvk4vqr@YzI=t7zPVMsu5#X~KxXZX&QS=wpryp~I(6rsDySd}8?j=Kqe zAbxF@J5xx&0C@0O1l^!u(}zDT5kc;^OiY_f=$SJk#*a6$WCsijHRYnhczu43`43zV z(C7-QvQbWAF==2>1?*1EKM!|>A3uK3KV>wgPlcklO(vm2M`U}MGoZY2<3{?Bgn3QH z#VpC4_yDsN{r9g~4?GBZ7HvD8auf-z$0mo%?EU$T#oUx^{6<3Dpn*@er`Ja_q1VQ+ z`qtH}U+|lS9k60|5p8tq|$k>PHK1 zrKEWK`0VZedTxAC3qo+5oHR8nBaCb#O7BG#ePxy%zo^IwUmO%q;VsZ1L>gn+N7{2Q1^w9}DvHgIoI= zltwC03-w;>7_ES%>2d%trGk+e3xyxd@!at5GApZIxqtR=ZeDa`rb_MbL>b{r|67yt zV$?8^!>gK>U&`L4Ad+gsgE{}yMybVTHt8BG?>PD=iv%B7tSVxaEPP3Iqs8-$iP)~` z1>RHD3Ol&qt)iJ((d4@;C0WISp75Kde}V7tdQkeC*$lwZ(7D5 zmf>;7=`wugUDf5AH&4Dh{eQgE2^rDYAI{4Gz>bX#Oxs#l5z^v1TO>Pe;gmsq%>UD# zta_<#sgr-416Ouh=ek}8r%D)<9+qj+^!Q!-;D+V2qLz`dfAePg#gPFX<*FVpZ$N*w zh1v=L06xae{1fNo#Nw6f)*)vnY~rTf`>Ucz_73mIe00~!k}8?f_;PuJii36!5jPPbq3W+bgG5cKfRtBek57S~4V8%K0*#-}cA@M|BJ2nq zO_}|)sZ;l1L($OCFf^h^_9h>pGn7&)Ai-mvocG0ftJ-K2sWTg-!t0o(z?0JAjMjr_ zDo$hL62ag#aW(#bY|?>?c{@WytPgjn`qBKJ3HU)ffW^jlF{Q?W?G|x!+0v!2*yeME}?W`)|psptnH6@;dNPiG^A=(EZ(cM!F@4l`v6zI7TS z^cU;(UT{iIzs)-~7S(7>X@I}Vj}syyVf}=r%{yRI#k=N8a7s0URi>tz-yTjx#Z|kj zE81eCoD3OFPHs_5Dal_5Hc*};6ChdYdJ5;uRqyv_a)_CvcjV>WMIn2b7H7Vj>R{!` zcX&9s-7F*^d3y_=8k;P=z(u8M$BNt*o0*+_xAE`4^Z)(O`?Ivje1BODo|MzEv31(B zmz$Z%JrbORt)5#aPjQ%?e5H4gXSA>9ckB9L0Y~4MEIU%vJ;3Skf5C6=~See#^&JNl%>huBOMU>UAJ{N@P{}c6j==w!G zd*@i+tyZS7vF+}63aVh=L{gpHq{IFi2>4-h>($VRwQ{ksqfgxb_g^WcK!$ZvoxiJU z{B3cQzBMT+FnWvV=8?x@W9f*JlqRzkYzmh-duF6h&Zt~fge03P?%iATtUOiEE_5EA zb2tx~m`Dgv)WNNbihO43TOd~W>!WkPsjj3`|MK2aqt~ZETmA2D7?+v9iw^xCStqIY zW*e=X+Vu8Xol><2JCzF7HJ%iH;MAOiaXr()qXXq!GuH{(2!KMVAl-_+d!h>ve;(4E z^@p}9wNu-?W2KqdIm4JT`~0n1z>M$eD|&L6h>3 zVThxx+vCr%t2eryL~CXSRnEM1Zq0mI34XVj(+2v@^WdqIff85;b!OAacXV502QNWp zNtmH%1)R4yGb!;XUYIa56vk|M86}Z_?#iY!n+o{z=#h$)5TjIf#j(B+;jg)d3PBwSTtlCchp><4<7(T=E zFSuaONq;>vL2EQ(~;O5u=W5uyDpKhSwAqr7m3{ zj^Htq$z4Xyjg19;PSO&&2Rkv=ptHq(M3O;>(;K7!tw)c>3a;nbNuCGM+c9%JuwTCb zxq4wChD+0VmV=HyadBMtGGWcVteo%%TV{}~*jN@HGu!IrC3ZMl^|*`}dn(Yo(a*VM zu0!K(cnbyxa1In8DBslBxETxZlp8lrjcG5qvGkcaV)KIba;6qAMXt(r&Cu}9hM=zvr+`<8g0_;+nTptec2H-&|lD~ zUdw0<+|)+zWx)~-WH)PawIc;t0xH8fuGVpzkX>8}BB8Onm`c>_Te4@3@9ph~p>Y=)SH9dC;$1jKR z|Jx{xP@63nEUkUuc2v~DGn*EO-`rmH^4YV0!ooC}e$WpD^+#)7??f5`eH=B@UhbK`A+g6A3u_UgH`KCe0@LpV-)!4(bxm8OtLzF;233tYC$YM_0eY z#gq2EZ+3zHe)Yu=Q$Wc}H*d0Ib~V^_YdhaCe8dQr0+X|i=Cxgnit>!Ehc->HN}Enf z23KU8ibv)4TMyn@VA;XGje=T;AOub~ASmjaT};iWLALV2cI;Rsxrs-G%ls$Lh6S9f-0fig{$lO+-?87o_;xWL4o^jx-S8;!F#e(!5Tq0h*(rzDR zPrl<^#+KQ;hQCSM9mAY&?detYB16W_VPfOR6ubYP#!+GVflgqZubp3QBkaYMG2nFr zPb&9g8>EaS`7raiB;Wzg8JX);MwNiJGd2H=H}korjg3yhlTN7_P|guVut&xQo&xGk zSL0qF86FlJ3-u{ez+5NvmbA zznT}ZgO7&*SVd8h+xY3@N5L2nYB(=7Rf9pZR<}(S@|m=whoVlfOIv9lvM3TJqVAV3 z?bXkc0-)hY8pLR}(XCcWQYuLL>@wR#6K_o^tQ{t1km{7wHQ4TlYUIW)v_2 zZVh2xR9Eo$F~0WI7h8f083>cQH$`FBlO8>*zEuE>x65A)phUf{yr!oT|8;NYJ?o`Jh%^ zl~6xWPx(ZppHLtctyjGq`{|7Y>k*SbTQ_>l)-}HP>!J7lCEVxgN4sR}!pPL!r^f3V z&x`OkjgmP;(G0K#AAu_*mmH*w65?GdK5(cH3z7s`EJk|F@v@UsDvI@l7y>bch0SwB z(GtZ|JB2k$Rawc##P@Y|K}PwVvoor~&z%ztH|PQr@08&3yv>qW+6=Q>}7@4z*KzcMmHFnjQB z6oUQ-J2{2Db5-X>sNnewGWy$fRctIq0=P#6{pek6hc(J1I1pTJ~Rcx(ny+39LJ2dqJ5rA?^lnT)NU3`C4P9Nk6@4t3nGRgy* zW(Mg9ej)$-^K4QJ8&`lJ@9?ByEfjdo*2addWHMMi(@Au~@66iv5-V(>9A}k zSJgMNNizbzx8=5B%(CUn@hv>F3HR&3K;8=ZME{sL-qV4BI=(wOF4;5v{^Lf6Ja*ZW z)8Y=FZWseqI{9?|!yI_@mtWX3q|vRW6mP!l)9;R=4N~{tHM8G0Nl8Dv-{JX>@&k`q zzn3X$VJD@tp5@f*y)G`_x}L6flm2mC^D(C`6v2{(M$IcPD1iYCJMI zm8dK6cfhx?a?>Xc3hXcQzVTu9*5G;K19O`+jVvct$^2Y)COELdK~4+oyr@NP!{Ren z+rR!ZR&FxG@I0Vo;dAHE^Kog-aFXQ3gAAt&#WlGI3f1G~Z{g#W)#*H$-QuEoC?e2> z&fVkQ;y%9~uIkz;-S763r&m1`iaorRCk}BS7&6I%@*e%D#TlNDeXI)&7(MFuj4r#- z#$9>YaupT|z7j6-X;-rC03H>8T_RClMs)I1p~@Qef0fY;+nQkXcU5tKcpm zzUax+-S?A}Dvo{AY2_zHszY^t{2p9+JF!maQsU#|oioPKy7LvcBT7lf@u0Cdb8oZO zz$dHEY=bGav#WNMrc0&C@Mo~kSduy}KZY-Z`&2ks#;ap$I<^0QKfb9V8c(VF_wkVr zZ2Hu8UEZM7<{!ydd-$j#-v@RL=pOoiXueiJI z4i=Bu1$O&-YYe;Wlhq7nWNAE5FY0Q1lIZQ1US%FU-7Tx$dt_@oZ!^{8ySvZ90ea$I zD9(K&T?i^2?swjdj%?PnUbpT5=^T!dDW;dfLE3Es&qeO_^UDB^cMZ?Fo?#eJD525l z;E$IxJyO9gzyX4sT>YxEEciz8k(7jZjEz&DOq2XCLD^U`JJ9Upwdr9b>!3i{yjsZXP=CVk7soH z{g#Pmm9I#8oc--Ab!5xdtxTjT^c!G!)=hTI!Ph_)IQMBffBsj&_jf7lGM2r0;$#@y zGW+D#?c0BUj6xJ$zUAxT4O04n?7@r@*mXWz2ZSM}TJxWL{=K}XN=}jkycxETA<`eV zL@W<}@QO7lmX=g3^k)LhuAEa^5s|&+YkEPh?5u}LpD_o3SU!NHEqY1$xcVBHdySK4 z87OF4#-iD_p?zQgN=cbaZ=nlLn)>cs1ayz%?!aqXEuf0 zQy!Rm%Bc5(CTqi}l47-Z1z+uhGUHt|!(q~>*8ltwx>-lB_xX)e*d$hqT7)?-e%P;l1)z4%+KBPE>0tm z4vonJWN@g`&B%rtp*-|A|7~p|;Jm^qVr+`S{3$&zr!YIdiLkjvlSlOjpiojGQGV;$ z7w+(=9Nb53au77U{dWYMB)u^_r@$WHmuHf&Gjn5(fLWX|Z(a{$Q#_Cl$B`8_y%VJr39w@vVpTa>r+{Glb=)@}Er zJ>z|Evd;2I_-kGiUl9u`A;egS=^SE9x@`mc|BW}^qSimGG%@JD4hl74Ll*`Yx*2FL z3;?tcOP86yk zq_8b!J$%U05$4_7H*dbK+8T2FIJ2V=sLF*!7*fMMZ^rw+Mrd#B;G60lqYA2xb2vOo zqo3-pQ)DaJ6j;w_!;_B270kV!!UR!5w{}NBgFZY7Q z+Oyy0G^1@euy5Z=jQBjoYuwAa0Dq9#$nqTe{v`^;nrTDI0`kX3dSXNTM(o3!dGjC@ zYTSaA4`-Ii8@nJm1v?PN0*FD}CNoVb$`*Z$MUEB;Hv1pjIPkZBy_Useq+rWhNWPE> z&_N691R38j4gDtBfD4J6>GzH)u4hO@Co4ORYXEp{LDuc=&d7*Ud5Su4{xovY&(dHyO8=I$OOyW6Q;p6j{X<<$h&#I$t z5wxe>&+8UrRy0x5(yOMoH-jdZ=RB+UyIIzjic!A31epNKj#G5`ODn^ceA3dj z5fzDKIewS@wq|{t-3?UwTt8a&;+yHdXbpBcs~G4R8hS&C5Fc`arF}&;YY6ts)EW~? zOq0JgGR}}wr+7rGU2j3Jh?fi7OroPdKusUmzaPB=ZNQl`WiZ*jZVk;&pgTu=-LCBz zDBD#md0SMp4dp~1y{xM}PR7t0+9nm*pH$x+Nz}$Wc8cJ}!PC;tx_*Ep*P#LgmG78R zLe&$pM)ln0$248I_@&-c+@r!Ws2r@EMJVHtM3Vf6b{H?ic8{}Nj7awqL?lASdHXbx z^U*>ms(}{w^H2Vrnh6`_VakLhEO#$@`}UF4h|p}~zt@A0j&+?PfX`fIK`t9S>#V(l z!%2itKy>UHS`#-ws*EXt#hAk?M+LgJ{B~(Gzs4DkqdQVpIy2$&th3gNv)Yr3n6ZKD zK2iS$vF%z2Od%vSuHY02EkF6mBgizZ+A7hv=F^gh*x17dj+U%x)LN+psS;bWOZk%h zTPqq`8>hEQ&NIx4F5G40x>fv*7Pz6hz=?<%=qsdEa8r{aa@Hrp{Gd8i>18H9fAe>k{J1Zzy2DCm5T8tGy=QK9ksNif`}S-7 zrSu{eV67mbS%3!M#JOicf!{OIa?1%^5&KJtdAyX5fSJ%oVMS%a_mcOQTWchI0h)ASREZYjJVu5wjLz zLcfR#rU< zL9K1tutBZ2;EN=E1|fl0{TCMIvZNn&Bh6XOcpO*OriiRx{b}bLPr%g!K_{T0d18?7IVI*Qqvr|wIPwrnsu$H>T>x*eFF+sbKiB{|{+3)DM%;C53v zT#5Q(-=RapdkkrHj~rlpEjjs(!wvS1wJVI@0wCPKe;+KGU=grHQlw{*AZZY%@dW)L zS-k0WcQmun*$goL0cbQS;v0|t2ahSby06QBuK3fkNj0+eag1$a=MO(Hn!OxV%urQ8nfaA@# zJ_<-7n+!s1BNo^J+0C1GAgi1U!>Tm$<~2r*Vh58i`5#-iUPpAUC=0GiQr05Qw5;;| z=xpZBh4!$TH!qtF&IBj%Spm2J^y7*JcIDObVIxSzc)4*SGnI{^`mkYV5$2-E12D&8 z7qWV@wb{+)?L7uM2?#3;67t7euY81>?QrCRiRjW#-(}Z0zoE8swF?6NM#T%Q;Vr>{zwuB zY{ux1P+jPtBeneLKNHk&=l)qL5yj@2tyobRS3K?06`V$-D>PYtj8dJ|edUoqYe3gU zg_PIvOn1IxvV0NM&-fI4beK&CQw8In^0!OWs~NY?*JaSQ@xKS_9hND(L!* zNlXd@{f7)m$o}}VF}%t4Hpj_7y$;>CJD0OBZSc?jzYqUzo|dOGFydG4w>b7pU?|Eg z81Rpk^yb{pgOCor_>*cv5%}2GRWZUS8u*G ze9V}jrCs&&CW-`rWlwoBXfG8Hg>T!aNYA5JXHGw#o_t7Z+~0o3Dt_*o-6H+?{)o2N zb0hjp+-hIqdy-*w*g03lZe!=zOpDHJ-_80w{l4sls*h8rj|`wcWrS+JU46BOvMo)( znAr=wCRglB%eC`dW|iA2?L8%`?ZuzT;+Ugt$!O%~#Do*zNuO|Fi(N5;%ZFW3SDi zuYz7!{^_gs&@(5d`j-C__#y1e=_bq13pMp4auUNmwhgN?Y+LI$FEc8gNpa4pjvdl( zl)tpi88b|~F>T(YCvE>Grag~Zd3*h^@fTNn*1nXPUrG%!&mQxkL7<^Kd|wTd&Oc>_ zt|*IF@0~0&&UtvogIR7GY4`iyir7;-kkEI`giTvkncKFcQuPowexWvd&{;FEYwqyr?p1tH${8iC3;{V*I5t zizfFxaz^Z`kJWjSg_W_nSh67Hu%1aCws&&-PZ@Yv0K+l{eve&`aOS@xSrlx~S5 zFLr*|VoS?3`~$du1o^6=Ms0GroRK^c*eL*tOru$Yw=Yt-!FKw^o5@SPOZ*bmbpwa$ zg$ppHR7ixKOrUH=u=tYl)1U;QI$1A}eoS<1^EC~zh03gJ;oN4N6*}lX`78mt%Q{;} zT^xB9As;dQnESTYQ&AH%&BLDi`5U!4A>`h;k@{wc=f`HA7pv3M7kCQ z^0y!E%yaSs2H5GI65N0AB+$g_>gt1J{i!fKBwRNGgz*?9#)NL<^u<%e7LD7t->$u; zZ0Px_%y|dOdmR)0vefu^XO7vw#o;ZX)nC5~K{O~#f8OuA@On~`Q(?m1`-{mt0IN@~ ziaCX-Hp_)YPryO+K{KiEq=naeQtG`SM|0~4Wgu;78JaLqQ2kF(!MeN2HUJ zQ%St_3~+ZQwUmGIc^@5eUVK!3eN03~(xHLl+0w@hL_!Ifywo>z?9x z@dZdDwkTn2^2Lj?na;|UCG$>IdhkbG!qsHD?mpA}5y+)Sj}!>t;o?DTQ7ybq=L+f| z@Rlq(#XX>wc@(+t{sRYsZ423bE$a^h0w=j*`Enq0aEYtgK_P-m0_u16p+U=5u3Twq zIu3r#u_tb=4u)F_{U_L(Ef9-2n66wI4Q+}r)KRyGUp##zUr3`!{9`xkfoKh^RoGjw zvv36^r=L~V!zu(u(^QKdC(OU;xK_}N2)8`fHN@7;RDnKM;LZ9Qk25qZuBzEU!E_$Rj-^(i{S_7Wn@KnoHjldTh zP!3xrZMGnSkFJg5AK5)=f9s!~I4Y5#dh_LO$45JJw!pG}0&RhU5k(iD~f zQcc&dk72vDhQ=dIN7>mlu_dr}+iTwD7Zwt1AQpt+m_qT9L#LXFWu_kF3;+U%!S<$oYlv3i4^|Bnt$XzSo1wlVR0Be%GXWMtr=H z7C8U$KcmlIoV$3Dps*6jbP|N-M~&vUZBW;r{&#q}gm+bZ`^JAVYmwO~vE)(mKbcyZ z*-gTj_{d>yV025EuB-mfWk&LI%K6wse-~IFpkr`icTO?*TgBek)B%TP)zO(_F)?U( zvkr6Ej=(}NUv#bi`+UCCvdv@iOb7oFfzziC2M;h6?dly?wJ>MMkKlsp;SV0Sv`MrU zNQ8j$fdj=4$30#_=coKyG`r=Jbj$2H!zwzv>T7qMn*$59_Szk=JVqL{@k-eVcH+J$ z?AAY3Oevm%t2CuJC*kXGk3C#7=ViAzTzc#kJsz`o;hdK_QDu{RgxK1j>~GvVPw>c< zns3bww;1lVQSz?H*dg5d#1?aJ@q!sP0-<2&uO&!h|3|R8;(NS$Sfp==@lo7x`zKqx z)G_HgE7xax``>e0+i!ftg4z97N%rFoVT|88Nk3><{e(GTvXPaoN~11ZhZ6_5&Al2KNVR#qi59EuTj`iNp?X08&HSEQ3TFy! zaZAgN#gR2FN_J*9Z`{}hEKA+xc0tSF8tQF8w@~_}|En!IbEeFX&AS5T#~eUsX3<^I zpIXzLsrpxo6_50VdDl7aSxT7Z13N*pDPYOIg13nO?aDlx zH)_rh9oHk35W@>+nYOn6vScPORe0bMj#@+L-u=U8tQr=_FO{>z67r*(5Zq(zAWWwz zs&kgh-z`Vx3GH%Vmu-Ujf<{n)x7^%R^j!(&#c06UkzY{2IRIE8>6z2dxDbOgG7>=C zb_GVxvu9*8CupXS2RBFK!rq(Ms17`k96wI#?byRvd9BfZ>-K*;Dz7gI32|fI3?3G( z5ozF&0OmM$?837z*oTN(=vQrtrQ{s5AVrOdiDwm!%Wd^x?o*2HTmY=J8fW>(&i3$>W+Wh+T5_#bvZioMVKz zv^5o^$*E4c!(u-Me2it65&nQhxBbqV%5cdb+yL;>CFjyGy&&WP=Hwih{y@(dB^dT*A5=UVB}9?tRm~TRAG7j!rKYGN+TOFhf%GBSaQizK zX=77vqsls$cWv9Z`>8QeQmnTVKS}??-HVW>nsQnCQPJO2ft-ZVwCRG(l`cvLjR^Ss z7_ZLG$_1!=xRZJvzz8&JJIF9TFx3jPrQJut&i2@w#~aSvt6f#9dBxrodC1 zZ`)%P1Vya<{23{ZY$h@tFFs2u8RNGB^_$_eQ{02P7LWnjL=phRBUv}S4i{kM$^ip- z=T|k228SOV9Q?>FO!U4FCF0MY9e2MSn23ycV3w%&YO5u(nXEZ83jtw=*WlbEa5Lrp zM3Gq6_Q|pI0!hzFDO=}D&e4svHN~}k@QAdjNB2SpM$B9i0yREoQ-zOiDU3pswF91} zd3(*Axd)X@1h%T?9aH?R^@50j8fHlAFs#|D>y(bhro@m(YjCk7A`8sBjLaGFwgifI zFqh@E_7=?ywhb%S3o36vm2DMg$xCTVN8MknW5Q#?lPW+fXm@SR5a7iWEm7##ySKH@ zAmJkV_LGgx8>kp?^l2d}1~4Cx7SS5)0H=wrjnp5OfsfDO5^8_g0`RH8sm z&(}}yhd04R@4VFc{~i3=@<`C#+$76_{}%p`&7>(E75HJSlgrT~d$Fxy(fotSj8hz* z3=QN;6ntC&`cZC55E4P3DD1EX{A4CLbl|``#q}(fNAnJ}#^BzLD-v(#gYcc-0nuj( z`J_pc;_E8D!D53(83Jbk7-6AP&_|1=DL$CjYR>aU{W z6Jo9XzdHuyBmb*ou<#qA8(B%b7wYJCr427|HHZm5n*;sn##V-W^mxBHi5<}G=Fg{f zJGO0`AU2{N5)ckM;BPJL=I*l|4g^)H;XX~_q`h|IMt+$yxl#EJ{0MNbWy`qUOP1w- zbmc*d>JrlUa~C`$d_YY=z%n9)JytGKvIN~m<>&XpcKI7HHIr9^a1vpVW) z+{KF`v1oCbUXbQGk&%)|H~mAh2b+q{Xv~$IQ>kouWIoRKLJv~~I9Rg~^H5tef9sZ3 zWPt_~7oRzFFt@2-l;+BKH6DKCU^YFZUg{0h>Un2!+i2bA7qiuCaDUqU-P zYP+DB9cyuE&hlQrr`D{Iy*zKSA!eCSw@xV)ZOL9!#d>r6v=UBRW05k*^}?EWj#DA6 z<*R*>v~a7xIo>yxx!|UG5yK^{q*j4&fyL$0tp&7jDl5uwi|D?z2@}G)9{uVQ> zSqS>*Xbra#&!2rx+n==lJ2r55{W_qT8#c%sRfBuAjICO{zTqWdbvD;77S-G>&DIxR zE9v37n90cf4KY9TO(dcxZ&USA|kcdfRKw9&%IA5sIJNIioG~8x6V%u?o?&F zT6~wqTW{N$v|dcN?49NbW&k9<>mLCU_17r2oPIa-QD~=vJ`t@WZInKwI~|W~T@?H_ z*urN>bJXZtGaHASbohQs%B%OPFQJDtS)fIV0(vUvs>+;EfoqeBP_A;@h{U|Kny0+m zkK^yG`Hz2Y?@`d-?u(vtb6m2H;W_)0<;mos2~!3*{I~o|p|j53iuZMC{qfx6W~NJc zQ4P@sK2!>DLMQKu`a#V|I*W>mI6F`%Jy=^sp8WYl;`IU$3s8W;gW}V-8gg87M!8uX8jZ z^gPXMe%V}dxA>#0t&NRTTU%%czuApLudkT)>7d|kBd0Iaa%jbXsJ67&zuw`U4j=K& z{gD2J@QgSM0(1U7X;6U zrhjhN`~Kxzl*Oc~w&d*8BbLs)CVps(+8mk^Z0kYE1f~_%M;mWm=yhwnVcECP9$$$L zoD81JzF9ot)BCL0_4wYmUhhg?*_RBEjQn2UI=QitF)O8b&B~R((>wQ?Bl(5>^i7T1 z?hJH$f*KAexzEQI2k8Y~=dz2+4u{;nV-~x~AU?QQDOMw}Jo(9!C$w4k%9pKJ;oI^f z3kr<>Ugsp=c}ihMgQcIy;?Z*Xb0U?((h1|ok0(_DdfN$c3gEW*(vg6|kF(Eu#nE5c z+m9GA!h=y6?X#w)0iY}pI><3(c~od?GwNSeXM4ToDE0q(AU(L1=at-3JNC4M&Y_-&A;^&DY_}^{GpWy>eW_@pz3L8-@77 z%&ZW%axKQ=5Zl~e@3*xX>E$JPhgQ2PCjrLLEs>Mkl=sH2>7lUOp4y7Ev1+7!_*XU1 z3ynaFFY_85a%TvEqPZ^n( zjkbq@N>Y(Yrx8DWAr`=jicn_M0ESx@CTIq?l@F5b8jwlm{+ynx4`-2O3$*VM+4yG% z)R(sQOPFro3FNw@6yw|a<>}2y+jy<3wj%lsFR#g&S^y9X1Ilu!9xv8=8mKHzqY=UK za^OMqiw$$`29*CNP9_OtZ(G*;h=7UP)^zKfmLi&$Fq-J&)d@fRlN952Uh6jQfLSN0 z57QcsB%IqQ(T&gz%gOWceHt8Q|1#(G_252lr*|4Mt&^f($8|U3$99!{bH90W_JKPa zQ>z=Z{YjumfCDs(*Z%;MTwV=Tu| zjb*yA$(}Ljum<2>-YGrul5o3#A z*0{}(=;`ULl$Q#zJ+r$@mdp2x89%<()(()$u+h%&KyUW_dwg!?I>m=pTIu6 zWMHQ%XMbzv0F6NEzH-)|Rv)oM?bN@s-h5Y49XyyDJVA3tfTfW<3Qrk7GDscz`Bna* z?<6#R+O*EOJ^bjmN;SXK)>e9`Ou1j$`Z7PC{j2?Z_wE=qUdJSJ)B_h~oleUauJcoy zX}V|O98d}EFn-pn2<1V8{C*M95g%NB_uf%3Ma^TKPN#G1;U%I%pm`Z1?xQnhSHv-q zJ#EsWptb}*&FP;<-M+MY{O`c!t5^H0LI$p=xva6(ap;$bEU6aU@=I8wy zpKEaT#RfjqEEoAF=?@~+WUee1_+O^Sl9o>siSJh1hb{zm)GHN_Sg591pZ@(DLepAE z0KpRfi48OiuY>~LV1*g`rJbC%-!fkkGoQb~9AB5QDe-PhCd}V72W!n5n8i80+03^= z=jzI9_pG!ue5dXRC{G5WmnzYSL!tNtzte7$&4CwDP0zE5^&Spem1mcKefF(C!Dj^X@@-t1}@%GqeB$lu=1S|lW zn}ivAKxZ28>;&fTJ>MTy)>+(g{U~q*E`e%cJAGfDW`1|J&8Vr$Cl0!;#M+@W6V!k}12ja!mcyzlBp-GgPTnQwEo{6UVHb2qu)=3zAG|p? zZ{x;lPBb_oA#KXtfj$Y<8~2(>jJ%ui9V>^isewu^lneqt>24T*+r1*3FhJWACU6TF zJ?ckL_{*0G4*4TBj*-Y8bnqYV`HNr9fM+m76Ay6+v*uhL3MMKwDsIM)&VH z7HX%i5!^l4LU?hI{8+atxpS#}=)PK8Tfs+p&N2IJO({kT`s4X?d6PULx(G5a{5qyU zmBarG8Pc(9Co(F3frv9nuD-jJC zy-I;NaPM?a;=7sa+4iNYql4_B<@4;R7ZEqJABfCkAQF~N-dR(NXAY#^)6`He?HM=g|uB@G#mGjLqpO{Z7J(@M9IpGNM(fAKL@1!-kV{y!QP%_22=-R zFo*&t8OgIApaB^YLbx}409&hGLNWbi8Tf6kHlRV4&o2Zhbvx*S7cT5&a~S-Q!f}07 zP4bIA#7^)K5CIpgCIej>K4D{snheQt-BFj@ z`4d3x>(>O4krkXqk`hEqTfJr5Hb#If6)(rHo5#y?j-ziBLe>yMAxWtLH;J9vIwH&E zOMv?QyYg#Ve#K55tgO5PGa2#=rXub-p6}seKdocY=K&%p#X>NP^W`tq)i~^vDHccy zsK~aodAWv-@7P3)XR4R)?@ZyngY%v~UHb0U7Us0J--p{|4u5t_fr44%^XDTb#Tfxh zKv^mH@VAz&UsgyNwKOE98RES|a78X5--t@;hicmo)lioHOmvFW%w`{{>16+mH#e{q z?G)NIZAxWiW#iYvvw2l(ylQR$%clLUkAn%?_o^=o57jz|XBsVKvnq%Pd1hVD{bOwU zF3q=%Ta+X4s>YMF)}pisJ{euz{;uvKaZ{_$oUXF6vPVRJIHm4Tv4KUAeUbszPpXU@ zw;O6Qsi`z8jktOE_@hviar?nJ{mr)gn{f7QIoa8Qw6xGsU8Yml$nmmUsB#$NlBe~N z8X}ftmH+Te<=Vhi?K;={`hdPt8MTd>zjwnSpk4*}t!J3!!*lq%%rJ!y-sdkbqdv}e z@9$GFRqSJ+Y_{=vy(NhIDGU4xx`IJ>5~1-(fdTd?BL8qAF>aJmk(sg^n}>wH z<|t&VI@_-2R4~HfS3=Fq%VO~_Z!g=G1C}HaJPa^!)V_BwUa%IWiF}*?a;mo3yeA}W z)siK3iBYYZ@NV01|>E#9)ko&3a`D>Zp7Z}=67 zBUW>!NLd&7mhBm<%iqe(&C2OQ44JYcDqW63SO6AXzrGdFlv$jUi8aPtR-C2K^+KR% zem4#`=>=9vMLmcAR`O99y65iglu3G>oo_7;*!d{o-Sg*K>_uX(Zg&kwYjE>Z&3FHh z=QgI|`>DODX?XKyrLif2+x2Ic4Efh|=~5}x%Ub7&AE>Sc-#Iv>uW|3LHH?mwi=cAB zEHG&jla^C*2#qZk%0*|BSPe*$9c+=1{nsAm;%=bA5@%s0)Q^WspaVRDy`{*)WB2*s zi(&DFtYyGR$RR+U-!3(olQFhtKA+D7Seb7zHxJLN+GBTSijGO%cV}*!%jeI_OJ%IR z_T3;Z#Qv2b_vhDd-+Y+3&uDeeixXt@TJG+!s9PW7YqYJLW#5|? zpv+)pDr4mOM3T~a_;pB`DZfV~rg;D`;4m}D&AfC3`L(6xR2?1G3xBQmq$QCu64Dk= zzpttHM8a79;e)VLlE)8hnez-e1k|A3GI))_aO~>qe~EjJN_o zkLFe%7>FIc-PjL3#?a7EO|8`5QX~>nPyATjtcO6@;_i-t3I2E{KIq9^tVz(M*At|k zQ0XLCJ3nVJw3nwRkUM#K1=V{eu0uG?IxgOv5Oo+HF6(p&(572ob$kHnUSZMau}a0p z#IT;z127*pzv0ggNT}U$^92NXwWVcLc(`L?;c0oP zVxi!^ruhsHR}LzdG7>B?9v=F8ety{~ZM)UoF2n3g-JcC77nqnZz_iBtHpSwV<)kDi z!F`NeK<7?+{??FngpUzXGe7;D{cS))PT+Irq_iWr<8)ailmx-UMvYM0~s5LxGU%xuK*WG)!*gaNDwhoU7 z0)IIwer`yzb;H1dVa6Q^g&93S>u(N#}bGkdW@ z7t)BGEZW2!yCjnUbU7($z)vwlCpG8plr8Gnu7vxs!oA5dHm}=Wwjo_41rg)QAAigK zLwXMt_jx6;y8IFngg&!O&Ur9PT^s@Pc=voN57yF$3J!EyN18D*X?v_*KJ3vorGTYR z!0k3{(Ad!%V?GY6D`5L9lD*esZ2B7oKef}63E$MTWP_uk(nt(W?lSZY1t5LzO?ZWg z69;s+)>7z}u(REcol0ozmlzP(9q;;D9-QlcTA)OUC14TiMl{R|eSY?Jw^#JvHEz@Q z8BR`P?@XgxV{G3!KCL9zMOo8)y8L}A3}3YBLzJXes1bxs(rbmoN6Idn5Oa3R!rKt!ff<( zTHsseW6tYO-`UAY%1^EI^Elbg%Pb@!^6WIz&lFT!f5t{$MXTpA#n8~AwR^`NqqJoE z%FB1C>?a$vCwufvB^nS+(}Ev{n^3@wW$u0ce7<cD~M%_EU~-aiVGK_r#7WB)I) z<5A)u#Nv4q^y5H`_wG%PD=2#XS_t*fyW?zen6q#HewHlKTm5Wq#YMhv|9&$b%!Lbc znLicXqF#I)-Fz!*S zRv*4+m#snW40ox{U#UgR^EY|JXjczUX_E2JyD%8u#WDrg*&9ncf(fVyJgk<05k*jUQpU z2=GMWhgn&8;xd_#5hSS|ToMTiz}`oidF!q7xL=nnG-MA~DZ8R1XvCX3UUc3Th0)Rc z-kGK?trO=Yo1+hh`W`gPFzfz(2+twt9SJMO1J0Z=31JvFZP|x$y5mV%VfBme@9);< zw?GFn2#^~sjP%ZXgZAxv!-v9j?Br8-in1t#HG2{}0Mh@Q3k4#K>4_w{2VIiiPc!N6 z?*#CtDE-Muk~) z1lO=?)mxBV)NJ*1aPt)&@aTj_pC?j)Rdn^9_&zoJlTY`K!-oX2x}>z$(WupG8~;&P zXL})sS#ryP=+8ggtrjiy^73MJ7;1H^3bTa^7ZQ51WJz9n`p$d@W@Vx}P#Mm)vN|2D z!EH}H)0BPZ--+l#MDR(g3U{tqV(t`{QduV-UVdrs>|I;B-ff++$>LHz$uh`YGK|M* zXlQVEB4bB?6+YfBNF%WSf#JHkZYWI7oG}ud<+_hD(j&2XrPufJZ{c~mcR(g|+KIug zd^kK@bZf@5XV2)w3Z{8lnJ#deEDhx*Vi>w|rDx3Y`wt&-)Wfdh z6@uPrY%{E4n7KG4;bl4Y&(C*cJvJjN@6*d5lKpF937@h+ zP~a{^vf$g+T(WS%0yqj`D5mZ5h&+7YfPk*vQ#Fz|$mN<5BEkal6Z70ZKOeH~=epUm zvmip$7MLttNLmlb1SYLNnEcRol$H-2JGM5e?N8Ju-6BGhMv51EdNv`^O~WG<{CF#x zLd7n<`}A@B+k)nEy8x<4>`%fTP~gx$!Xk1*aAe=OF+od9OIb+7eL+FA{iqf>EFe8N<>9ROf7why;K1|U){@)icx|Ox4xV5R zYRJ?w=arfv#IQgMa0g)neVkxmeNXEAl1sH_d!A3+z9Mc*SIcLR?*y+h9Ge+3YYy3}l;lk-1O(Wp4=9OM_xH)( zixj%Vm;lwKOIw2RtI3d*TB(Qng$5P@jJw*&7{~&?@@vvh7c)8}i&z;3;6tV5{hU6n zcJ{@a*ROT)d-Cg3&yXp>79b(9w6sL#Ko}rj_}(AeaQFE2SV_NteRe8wAH5+pz z%#+ZCNlQyhNnyRdv1<43-IySWcjVUM$O15>yb&__YBCp#mX7jKyg8sMIzEc=4W%Bq zC=-?tccb{Q%-I}lk8R^*4a&;Wdg4yw|8a7Aq`t>Zhcnw$0kYJ_Mr5uBn4uR`ghH2l zn>UgFat$l(a2jDJTXh9p3v+_sZazWrRL`5vL=ztJ>E0&c`ib}0~7znf@*IV zO>PrRFudMv+XO^=#Ud)o7}cd>3-)jSDkmj zgT+0IQt@R9Am!qs>mv6DK$f z5ois$^`^L(j<&{GPiN3Gn2nxYX8_Rh%$b_@4(~?-NI(F4jXA6-#$;5B^z;;iI@}SI zT%~f0e){*4lKIBX$n(#&LM;84tIf;@zm6oSy1MS?Pv#azc&;joSFLnUjqX1W!er)5 zDa~7`J>G*E@Duy>vt?_k*ssxR?b@N5pWi%xj@=UNn74PUu!SHpk~i`m=$TVW!xAIg zjMx3A#5^2h;wRq}c-6AIPQIO|b;+_7 z=Fc?IT*_!#jlY`AwjnynU0%ogPtIIC%~JPW#iwKAMkRJmD~Y=rWFjx6;9t7ybi+CI z+*hs2DX))CnyN5G+IobuVrRL;=fbi0gOpX$D? ztZV(WjBgi`bntiA*I%fYlTj8rntE44unZ% zE!ZgY6%XYc1FRoSe5b9f<6cjD#cqcro5y`LwqBgQc(7BBi?XBY8o7Fzc+E?9-M$>L zt1o*sz%-SYVvtJ#I=H%b2e+k@s$uuFjsB zx4Stu`iDaCr1+g`G7a?P5%;B+hVKQs;A zX(yd+BX1erp!H;pVV2sK%U5gT?jFWy))a7mz_8R(rM+r0&IuVOM!uoViQn+(O=9Tp zwI>_itO&0B1ER{XNS$ZnRp$PQ-;VozxX=`x`LL{JYD0wFunGAqx(A*RlJb~WH8d8* zZb+9qVyS7Pk*)o1N%6w^M7g`;rwv_hc=pu{>B${(yW~hKHtM=vu&#f)V&O#>)nRMm zR-Aode#=#mp9;aX&d$zkr3HP*=H10|W>)Hsf~b6%GjVbchfY=wqAe;OpD}PyfNdcX zVU9@#=WT-@we`!?LXHVC{>8Y{r&05xrbPU1wsozYt~GDKtW(|v%|GkYJESP(9BpxX zcXdWqg64d?U2;nyGMPr?BU<9Dj%Q2`U7J?(>VY~>l<+ZOM#>yGwM6RRoRpeVsi{`# zvk~MSOghDKqsKN)atqh*`L;qaytvn^xLV6gk4x(>3~DR!@xVNTqiQmLmajhh zeui4Wx%J|->f%3}4~{mU_U+FuLj{>){Q_yb?ag~SY&BFo*}5%lOR(rqzdB_Zi(U`i z54Ebhl~|t3uN~dkIzDy3%f>i^M**GAIOQe13R4=gM}E4DcR$7O_Fohme``yKnbdjX zSI3OF$(QCt1pQKzy}_QIJAYhm6<%%%24_7bneo&KsPoCmJ zXM)n_UgTZAN&fbXZ*X9KZY$lzVwHsS&olZ7b}Lp4 z_%&+g|NX8*Ps47%QGfbTCFQC5yH4A8ek@>3mRGqsaf6K8T;lr!w!~q4Yaq%gvrp*# z0SAs>>UB={gc25*fXo+w$t-{2oK7k_WNRY4#o{5`y_~!D*d!q9K);&VZ1$WA*QW4* z?v`BafrlQ#6_K^bCIPS=vZ4tM;l6lA_`s?l61^c8NypgG9T|B82si*Re}23y^e&2I zjO5fbYm2}9UclbH7M3^mTt3CKYJ5E{c*ZXN`ZLlQ#cN*gd09bQN4r7@px&fOBeQ=3 zXoGy9vpIU?NId(x@U8F{(fo$ZkAccT89pK+DFPLHm{3!$G4e>iaWN4GBhwx^;{_hs1^L4L@;qY8iqHxDjEQ4{_odZF@6za*$~V(o2S($7TxoiY zu9x77e5;pzvEH8p#sr(RN05Qq}G(d5MJkFJv! zsoL5fez@OlQeN2phE_W#+2w%su}?`e8@MLFYAYf><*ZaN95#Qnu={}3>(ESSics6I z)N;>qOl2E%rq5pwOxLw@#mg3-HfBbUPWzL>k}tOBgoK6;7&!12er~#k!&!aVkw?l3 zA`zFqx)`*ic3JZ&1aduxY^^-fZqhEX(IDxEW)nA+qwXa$4S#En@|mV6UGC&%#%lzw zHA6s8Kmzuzqqb%OHts(cHO!*VznWX6jBuiTevX74Gk}!!*Ud{5x?FP9lBIV^gx8H~ z{c1t((=HdoMuF8t0|DIS|H2C%P`t7CEsJK>TPM60C zvZe!emf4mMy>~4sJ)*1%eZ9+erRGHPZE|wfAf?E1Nzj~H|7r=O-kmA06^zH}=vq0Oo3H69 z{L#<4p3b|+`>FA^Hy&H(dw0m?^+ScQ1@Ppu0sJtz`y$ojR-RH447 zm+ecPR@>F5?FYpi^$D)=-2(17>_x5HMB$SETK4Xrj4(AB*7fxN`@Hz?*VM^cIvquSp=TJsRSa=mY~vREQxHOML| z?UgrP0DBk^oRzotI6Tkv6_te15bXQmCWd8+h``mKXfXaZ`nC~syWXs!zsiSfEmu2q*&XUkrL#r`g`p4ZGH_M{M6E~n*^1w4A~nKHPNwYru=;-;*-I_iJOZj z-T2r+EOEGlAOyb&!`wE+{~dV3;kfucKi83JN_4>LkG+z8x<9nU7}J1 ziGi{bq8M%iQc~_N<)0+YPfqWw{cW&=3m5EZ%fSx0bnqAJ6Fm?fDHwxNyuAEO&jx|e=y68g=4Eq6?cL-OL zm65^W#1KqJ0D-z15P13W5RrIu(&`Y~lQDpLu&1e>+h7lhYDm~-;3UxtmoC;HI7Q8D zvWS3C;~Bf4jv2n;xBml^Z)KI+J31;CXtesD?q)<1L<#!FSu8@&&ws|gZg@9zQpB%b z_zx{9#OSfn7 z#9W&yYztPDYkz_dH;eR^C>X~T%-DKQ(1L%d&XpTREarb&fa+%ASlKN@t-rpY(cJ)9 zB23e)QyCp5_^G|yJTX&?UKdu+Kt(a`H3M_@PsXu&Ps3lY8QiPuU6r$hy#cVc_qU}^ zcIvds4{^4jG{tYesaZ(c+~50zPbwwDd-3Z%%8IgWEHPt#mA4Sq`SD?4Er`|_bZC|t zQA($*zqY|~9qWQhgOT~YN9EwS0wrZ-Wg37JCz6q@@MO|Ebd{2tBhk@KCZe&@BOnt| z8Ph5Vf2c|Ck9s*9bjbBkP`I!4l!uNXk1ayK*caBG+DK4Lp(9TutwQ> za*pQ!L1?`va1)o%#?1da6j)Z()_bp{6iegs9q2PNwaUAPelNjRegDA&locnFtIjPD z4&!3OZ^2K)UTko*xA!1q91j*t7Z2V*f{R{66{l17N3u*e=m`16*RTH~UzNabfKMGA zvJ;bvSeS}Njb(mLchR>9p+I1NmS$#TD&l5lOqTsVRA#y1R@j-1%x!DG8WqrE@+Jh_jnHi4FJ-=2g8J1~$9j$5}Lvo)J@n7RXY2u@3(egA%q zu_-*>mF1)EyLIf?QT{P8TBIu%7uRf^1Vyc8FTK&>;D4!1xpi8fpKZ{=_GcuIvB&;o zP+;H(kN1LI776(cbY%D#2lcU{bE!hg=k}$(2?S6^8Yl|{pT$%wLzXFYNw9_cOihhY z+lN^R`-FGR;Sw|lB^YD;^K14oadj^={6>>afUPQII-kQ z_e*|i(?%Y!R$Q6NXJ~Ay=C(_zpYbjOBA2y9Jv@~&O73~f_#Lq|Q!rjRqI35H5Jq+M zTK-30=+wC0LZ?DOFOB@Z5~T~R<(J;O?T>%gaF+JBCUAqq8uXSJ#;pF8O-{TW9IX-L zJtls_woSSx4(d0IIE?GIs7BaL7o+inXB`$lF86ACi!ynux3gQ+F3P{n73dk3|Z-lh6ds zvsY_>>Qw*xv+}nOSeb1x5ZsKzWc(^UjO728oLes0<8icP#|`h3G5J*?CCWOo>0LVr zr=NG{-HB^9^Z=vaiEh#FRmv=qi;kXE>+(=&0e~7qG;FX#M@-w!Y{aTiKa8BeaS>+9u{W{E$1 z|G1!X1TQs>%?APldF<1Umj?)kk5lIEKH<1w+v84-96fr?{RajxjxVHuyq+H{PbAw) z@J_zDmbp1ex=WV}<<(eDnp>Z*?E7|NMjEw}*r*cLed54pK`m?B?X<%l>MHJBV8V)v zi4&6;9LR$FjhOmwV`?p-m%?gL%j+9V=gtijiOc)z!$n!2Ae@#iZm;#gc;{;YNCS^2~8{n3ib%HhY3q5c6O zPbro%N;V&3ssM0!%qXiybUok+gZ|T}OPz44mERj1V$0pc7P=GR;XByW&XF*q#Cbu7 z|L%fCevn6$0L^UnrmVe|t}!lkO|RYQWcg*5v1Fw^Hug6Fn7mYPWo1WLIg8r>ybAL2 z>2(J4ucLYjV)>d(G>L2a`U6AW;M>1HVADjgWT{ez^VbHq^!LAURHT13uETt7k{NeE z`JB{e2wwvQF(_)B?05r%9k5|IdJwoV@|`&|B*d0pl$`H}cEY7g{btlHMIEA*KhogVojc}|bDTnlv#`~&=)EB7}c+CUYz^%MU44O>UhMsFdVCBjaP* z_>*dvIzbHyR|g+54uts|17K`$q~-_yq? zER$c=QE}$fZ~f0t4eD~XIbTshF1(<6u$Q!-+SRrhZ?xzCSz1f`(zLHcE81^D{wtLw z!m)6>mx1%(PQv@z^KJeAAMgL?gmU&5{@d088KtuA2k@Am>Cax@nZW)B&3W?o>wAt% z8xyf0tFGnEHe08TVoAJ#w7?^mtiBW`9Cn}8we*@TkBA<-m?J?&BuWt8f(4QKThueP zlHxy;K4CO_^>C2CH9mo5t5)4+`49agUqwY56ASf%b`Q6+{&(EURsEM= z-W$||#%AKe&kw5VJrPst!48cZHf(pf-pLrJ(cS(LyiBX9RVH~5c*V&s<>){ibq0;| z6)r@vw8}97_#lIu-Cmdu(S&k$z(OKELO{N`FoF8X9;pfz<~oo7U~eC0=yenLK;a`o zeOj{U=(R}b5hkJGH#8iqi_kuUiFst8HmV@%BH|Z;`s>$^X7_k#C=@D64e%`nau7Bt zDJcW?R5Pm!X5Me#NXsIEbm6>tEHB#Q*6EAS^xbazDtDIDrrqs|#rv_%S~HlodhkFJ zTs1U4uhu)*{-NioobJY+UWNg|4~T9Ng$F;26>r4FQgnGmti|Kk&XXdbV-0foczzmK zq6c~L0`oXjYsJ4(MyEAUelUA~AvKn@%CE6{z%CQpdiAQm0-9n<>dq;jeJ^`fxzWlZI9*VIyZi{!uR52JpNf+dq&qUb?CAHZ7x{N7mWVKAN0UZXiHd_nI=1bICER_``0Nn@i3g7-7YmM(#A%LAhS6vZQp0-n>`6c- z_5xrYYCB{*_w^R#%EspZ*hduhLmE)2$?wXj=*!^P*O%c-*q!6q)(|L*WCb{<4J6z@TDst^9vR!v~T%I9s3|zyI;|bU@ zVCaE2;Bo(XlE5QE$_nCm7f?dRJp&?$Re53g)`H{a!ysc(jJpnWiKmH3&U~*_%YqTv{$Tz$B${p@e9qpa@Pjt|FVTyU~ z{V8M6mj4QWXy*Sb{C*k2(Z1)oh1720O@oWbbhS%jf!`N{x$XZR*JF2L(f;yeJ|I#n z7>TB||FF^NrC)C{WTvDvJNY&jk??%g^0jLFVRFem{3X`uFrwo_JgT$zqAI6IBp@A z!2L?CHOQ^3tW-KQD=?ZfA^*jT-u?P5TeRqTem+_iWhJF~@>0g8AZ$KqQ`rm0QxFr= z^`sNhl6TI=KE@2Z-DG9S5F6J1R*O$c57(m$7ClD5xKC{#R*UBSx1O^VWp z85fv>A_H-PgU0*M$55Vw_Doax^cpPhlP4F|HZD<^aI;@b_ofj>X}gr(cl^H>fu2-A z-OKbggT?|)63rttk7x}xZK~s+1DJx6Dd32{0iF|84c+})Y>X!ESBST4g4 z;`#GGi!x(mAimZvAG6UBMplw=OZY6yw)6?(5=$P&WX+L)00}UG^GKnu-g9@q^v0Vp z(HdHVWWO9n?80<*_U!KRWI$)SvE*dEz-S=2{$tm?qgWRd*l8(lIGK~1+cveWvJIk~ z^DR@y@7gJdDA1;r@jEO3fK`Y5pQf%o9O|?UOS0pTCTlev9h&SYicBICCCcQSSV|!= zi9{sj)H)T#)FfxgahF7fmXx&!)u4k)vh<~v4kS4zeD^zDdtKWfUHvi5yuZWyyw7t# z_kBNZH9394A}FYPZi4Pg$^ow`Q)(oLsJec=WU!r=c2IRU#8hgSp*%PaDvJStVc?f5 zmMtsq@WOOh{eXU&fWLyv0m)pt{vMwdP)27z;Hy!>g^^UJSNQ5w^dsk%GtTnB0M%#M zWql_rjT8R?ng)(M4tEHFpx%V@5K1jsvD#r)(OGyg;|SB@z$#Pd+FhIJ#HF*hQc>Kp zdAS}-zC#G_C?-Ntub}T;g6D%!QQxJop_|)U(vH0hZDmSW}JE& z`Ck9M&OT!&>=TzSSpp00hrkCNtgYu<*Dl$?%YE3l2E^X`_aRTMt+Y!c$E9I~bVS)K zmke%%m)Hs#?NCMM(e;BoI-A=BRXN_`(js9F*h#_X7TBdC!V?$^6Q8k6@w|m%LvGj8 z$qz?*&oA~HJ7K~*=4{JTx&Y&z}itEAkE?kxG7m=*Hbg(z4Ns)tN?gXmlr%!ih zSe%*PDufA^x?tsGE24?;go&x!#hK9s49SPX;E7sp9(@X<>U4{r<8_6R?MS3sOHI9o z847(IbvWm?=b&;mflu>$e^*b~u76=!TJN^9qH24R#XTB`N-3+^#>*uD_{Y7KJ}xlG zKYFx;&fe%)552{eKAnNfYHe}tObb)^@r2Yi?6bDN5fZLllZcKVpc{EE3ZkW{|DT6Hsr#R#RzHyFt z9Ph3~xV7jRTPHx(0O=ukqr`G=BqP)){tenfXb82qm)Tuwi0>!&ubP78pLLD z_+sBll6XYvr}5PwoC#M%x^Jdp1IM>-5^Ua{>%iBo<#gk7JW~5k0`X%=Hc#hzyzCp+ zl-_17x0Q-Ygq*9}GhG!vono334KBJZ@PMlqUbjED?tlGuC>X(N;qhdx<=_B|NmmET)5# ziTkjm`~s?jD;qrR_V0&?l5jkZe~@GIz7zjQz8CRAag&_bYeAKT@M)|)}7oX2!BODW+W_$ zBS#)J4WsLawDr!NVDO`H>==OLj!=Q?td01AOj3(b_~wkOfv1{6%GM-NZc~m*w{U;2 ztGhPQzKusWZ^Kb{vvU9#uaMq--&uoL<)J9SkJ0J5$S<#56Z8$oN%5{0NjzgGx*-K8 z6LY{p2eTV(LZE6pG3DG0LMdzpe}7EG#jFl=f~2E?F+xCFcd*$v2ovrUDahcUhlUQf z%4LM)CRstE$UlHh+pBDg`_+UOnJgiGp&-x9-LZd{jwL*nA-6oW8*^EMzdzcC~|Q^`xWSu&!m zWC!uc0_=<1Nod-~Ze87#lALUh$6#ZlrK1ywAuJOUf!FOIk=g{l!?9Z+gn;!f{Q-PV zBnK$gfOn#WRlVOK5jJ_}M-~}dQ^hFQr?3$wgXF-H!0f_dU~q6FEos+VI~H#L=s+p7 zoM5V&rIB}Fd~G`Q^UcZW8MwSdvq=g!I=lDnTPTx|yy#<~IJ^i7=xmTrz%m^QWPu5a zTy%k?BwTJeC~+V?KsytA3aL3r6VSE^_#hBqqNI`%5O5q`X)W&2E`e8)=n|n|;zLUZ zWM^fpvUwX+k$7u1rr&`5D_ae|RastZC~_xU!M~+Sctgr*Ff3gY?X8`}P3%czh^WUqP+3Rs#jL zRYIha=cWvqF9$!2h{BNC%fkU^64E1dd;rzMSSDDnNti#q!Y?5Jqojh1qR;iF<_`5L zeUqM(p^k=9i42>I^pn$0aN`_x+AtQS2j9G*KuS31)t`L)P!a?E{O%5l3q1uGLFJ`W1B+2vV?! z^PQj6n9VpmJ2Q=5pD)N=;zDe2t_;Vsdm%A9zJqNCJ`N%zsybK=lnRmyFh6f#fP`3# zm6xZ{AnYzxCjop!v7Xhkd@Ju@SXdbPWXOyWQeR3=M~}-90>T4+a7ddOxr)t)H2eZ~ znDCH~foX$Iop-XvTn$E?3$5lAx9b5p9*vxR0{XU`X-Ru^#w8iFAawT0lyo$-HcGr9 zkzwTYU;N$^()ow0y1d!EnWI7DW3smGO>=@vZjPsRXvH`AGJn!!Us7fnrK(<%PhjUR z%6O-eT`aY(?%a%+L={i*%X-FTF7_J{Ib_`TE3S#2NrR!y?y|{7*k+WkKb~v>34CbVJx;S07Ed? zhPPzM*Yc6}p|_$+^o#HsdF`X~$cUKF(Id;2 zA8?S*D+d^X!Fccew<|Bi9Oi~-bMrPv9z=-OnfTP04nF4MAg@H`AJf$3@E=nudYMpYgm9&?2=Bf-ljvtU^u4jh2{18QaA;iRFyo; zi*06_N0PCHn`K^m{i0#s#%$T`M8*N;t_YxzE9qCJknw~fw<-A>wq_@+24yMHg|>HO z3Ul762WaB%&bT81GOIa3scsJEHTSgxMVSt*IqMXrpdwhG=a0ZrAoVC>cQ3H;|_9!y*F~1HYw`>vU z6Wvzb=Er1SO@Khs!qPG=KP4k01T1xHkIwucvclP@2M)0@D>tAZoBQkOk@o(qeCP;{ zdV9xH4PmLa>6f_oA|msmi7!A-YQFl~wZ~e+zD+3gEXhNE6N%i?=vvxT-0$?BE;uGB zy@jX-NgZ+se8-U^xG@fiXc?TT2LT2Yh7}45sGlkk{E!d8$pqHTGs4M=zo+NPyY{1Y zghd9_b0d?%fYI<|&~ip7l@gBt8wG({A2LgrNVs|du*6}B-XrQdw3;Es2X*E$9f$w5 z>gs*A&&)SJp(qs=s{E#^E{JV7khb0tv^wz!&}VtMh$VrnPs5X-s(t?a87P)n+Z_<< zfre<%SjXN{^8CT)mW=`K4UC&=XvM<2_9B47QB5?VL$(eDeTe=mggVquUfO$sk;A4h zCFT9V0J0BUDNvd$E5=Ss^@afd68%2YypfjY4}Y7A3J7L=T6Oy(sYwF#q~s`K za8YTv0j3!OEFxa(t-?YW7Nk9JPxottX-=AbhDvvW+sQW?0{(7WWD=-(QBT8i7q(F+ zbe19YfE)uFzQV$Q1LadyR34*~i8pv5ShDw=fru zH2}7Zdrdse*g6UMGR+m8OE3}P1qH4O8jc`yZd*^DnbI-Ha$xh4y(mIW@Y*L? z6Wl4@<)xZa?iimnu-){@D|ZJX3<4O2nK0Q5WOb-|u!Y)>hoB`4i8(e5QXU}F__Kmb zWD^DkH2@yqsSdZ6EGv_uARVDamr={hh;mc`0tynJ}Rc}9A8A|xE9p-D;}u`mOvxW0nGRKqoSg(w^unGAIi}3Vp4`ReA$r{PYlN5o zkL@c9eLMZhX)wk_!=md(^P z(N2#Tsw}r@cE+zq>e9pc^(Of~bP~=pB2>yrP`pj4BO^urS{v>|EZA?HV?GV|<|7>~J&Zs2vx`As&=PLF~rrAh~;U)a8$Y}$me8#1e*rJk>-^Rkpe^6w1_&aNp jf8|o2e<9b`uRJ@4+rIGgsNDr}tckFVEsTl{ox}eR=V6Ju literal 20404 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 O(b3YsRH$+L=l=zk3Q>3f diff --git a/Documentation/Images/GridWizard/CreateBasicGridStructureStep4.png b/Documentation/Images/GridWizard/CreateBasicGridStructureStep4.png index 9d75bd7eac2a863740c4dd84d7b3ba2c59c160b9..cf3f2c250d1925fe58a7443185a86af62756261b 100644 GIT binary patch literal 116005 zcmb@ucR1DY|39oE#~w-ch)^WiTZrtO%HFccCR;cmB2o6pQO1$IvPq?~vsXy=-kaa^ z^!a}7bzS#;-GBUCS6#(9@AH1Y#`F1DFE2DT?vW7E5#r$BkSHtNeSm{=K@bNAR|;_+ zzJv2A!wUYs;3lX12!TM1PTik`{}MPW>AB(H5K&_PoclE%a17sMa97ZEf9Pc8{?yFX z5=Yj;$=s4f(bm=SsgtX{8;kry;rY7KmpC{qILdcrA9OT-&cdM!{v*aJ% z!&CZ9sWh~wg^T-0SmE`JaHW2Ihsd{;0R;y6O8L5h`??B!S9MER-aS)cUuI0g1mVb!HU8e?`E+6w$NYK(y6_0)Su4fI=REcKdDgvGo}vuA32hS- zfxFAYkH5XVozmep*Qu_ic6@rYW^ZrrA#QZf@SGfib-OIMd3Z%tODoijj*gB>!Hh;x zODj41dIYAZXpeZX@Uo;fm4aTpZE~oa9j@$rZ_a&lb8|a8JAZ$v7QPjYJ1#yUJvM?g zQHoOcO#n9 z7=uxXea{uqyTHTEou8NYn*9a&AJ1BRQU;pKm*1wR7jpf4Rq9UFvh;?CcHxMONz%{x ztof3d=X0yucjOVQ?h?(D%e#2qJbLj00s?!>!}5sXDkl?t{bV#3n(O!X?;NamkyQ1@ z%#@UW=H@utTz!0eG&G_c8)ejcF&MeicE>6ShUl|vT{en2L%+!UGlrEE6z<-=i^|K&D%iA; zeg2VBL0iseXNls^sJ2_?ySFb^D87BCRPXJWQP_#SF3i!#Qk5?4UHX-Gv4i5p1+=ZK zW&nm6hq$q_@%L^Se!%7{;s>*)kQw{)3xgL$d!GTdXS6 zM=liugOou;9tNYB1?#m^#+VwMZ#n6VW~WX*+qshV#U|E%BN0JH(EM~7Katma zsOH3d^ZV~i3*YMMYCSzY;+8vpP$tk^Y>F>w_)Kv=(*N-&*$+IIIjVgmvtGCQnVe+& zohrVyv3IcQ@8BAl2z0sN<#q9A*$ef)d)Xg8^a!TK#Arg{NKfaD`1AKi+^uRFn!8pb zdF5Na(s-tNl?@F66Ak|2X&OhVXf72hg|cBu|3mkpdnbFxj+A|zVmz5oJrwfP|1iGQ z3)@XlZ?KOpIllXIA$dOBCNO@={i8}A8WZ{ARfmjT-;HlVvnG>rKKP68$Ff7Szr|me zSdF>%R(p&$K8sx$DJI%zty8`hX4Vp#hw)kLyBu2ZXss#3( zA8Pe)J&ZOD4|N>Uvg~AW>keQi@^Fix>Gi^+^{JPZl9IZ4Gm4zwb9rcEx|LbNljqvC zYiw*Gmcz<%9My)rMVEe-@+il8Vs_`kF#P)!1qD%-!`B~XH)(RPqRgOv#zSeV8Fv&_ zjAa*1Czqq>zZPC@aC`HMi0DAZ%)VxJxr2$(Ll1k!hKfDZ>ldt4ZJ3U0&(Uow?(`v9 z$Mcx6<+uWMc2}F+MQX&?je+7I`Dx3XhpgqsP8PObrzo#SgbMVRZY zRfP@aO`z~caa2612m97%yEO%FUcaHJ=J=HeqC@u)Oj|Z6RUW(`RU(CxfbxThf;_EY$e7I^%6H0+A zo73CO!l-~GZuvCsn5HqOW#jSuq4zi<#Gm{^^HJ-PmtOpo;!4;V6lx{ju*d;=?|2Rj zl>X~!$S!haV^(geR{jWfNw({$(bimY2!-CoGqG{O)-vJ`m>V5@rEMJKj75*HYq>;H zb~rPr_eHL-%k0P!Ol1ih`c}8B3tVCS`y$)6YP8;SMPHVD^6?5Ga~o!{-|rXOTS4!r+k zDe6o@iWT+8TXgo%S`E(h*VZMHg!F;+xRq8v8oBx8CVj~flj@N=r%x1Fg6;*p25#9t zpA5ys4)qrQTsc(CV3_!T$mD(35q*ATj*!KD=d=nFXFZ~p@*#VOn?_9S zBEK5$l&H`fRjE2nyvMWqq>BR$+Fi&rd?8kq^^eH)8jdr@fo+wPDNPRS57Z?aMJn_b zal_KPD{Aj{BOf^qiDGyQb zvoa0rhh)6>_n?%UG}+hwI!SEA9X~Bvq|j*^^?2wyaW?K#4>l*NW%umMw*16y^t^>c zx8|=^2{e)#8y#+W`Zk!6%MD@x39Wc;Np|rOx9|z7x8UCzi=0NzFP5A;ch1;W;NYrq zEUqleApNo%L(bq5Z73@$91WZHnsUvi{39))lnxALWMwzn=aT$g^RnS>AE~xdD7uxE zb|kg_qG=kiW-rQzrK-nU){c{A$TGTqUL`n{u9lkMLuA^^A>U+VWUwnsc9rquf3+UD zhkwx;J~=%uprV`>Wg}9GDCn_qu(MOSf8WW@&YXrrP*9MSwb?-!+wmnM%n|_$2oT35 zCJrI13G0nB5)$@~x4O<2?g!G{Hot3THWhK1J3ZiV!Daee_4q2iOyJ%=Xq`L2b?0czYG) zm}*>;)>Cw#0jAw0HwylZD#ItA5 zzD8cTpCN5T^;I>U+C2Qe^uZSg;UfKtpDUhE`|iYIFu^P~)|YUngj0iWDF3=|#aooF zlWZbM z+-9q?ia-(hV|+IEQXYvkjg`PFU0aG-ugPKF#~lY79@-uTMuvJ(pYsa7IPWf=((!Gp z&bWvZHMHVMGkOihNBo$N<{hj7=$J|$axsL1=2fFpI10#RPl>-(Bo{9zAOSQB*bkj< z-Wts4rnG6~iqOcpBrVDnQL4+sr)$ffWRpyd+dSp$bx}><>CSY~di5P7)wY;>TJHi% zDH_cc(%iHq$@>1}nvKlS{=QP|UuV(Dua-35%uC=FszwV2m*7*}uczYIyqOlw>X{#Q z(9)VRei`N(86+S|~sjL*%i{I#_ z&0KwEmKYj(QA_K>g$rhj^lhb=FJG3HmR@JB%%=}`v}a^UMN)nJ*O$~ddfmFDt}rkV zZ~RQW{TR>-^5Mg2&)TWBkJZ)Qz1iwH8fp9~9RgPEGy+z{3P^)W2j%2$P+xy!b-Z?TWF$5= zcD6IkzCypKVMDTuS=vvOlXI>apIJ>=Sy^2j27ri~XMVJ*sBOlaCcCoIbM1HiTxXh_ zcp6Y9>`e&T#IPVFyK>&YfAjWjN2=IX?|m65kHtri9`&`5$uLk;d+x7KIW?XPI97Ef z-ky$@Sbg@GA-@N%`;G^Ec!UDW=cVokQy%`^SkBfbIMGc3T>};#{ z#M|8tp=KKCl1Z;$-wr%I_CMP7KRelDXq8%Tx&T#TB}4}bhpX%E+Qivp2$_|&b>QCk zQ&dc~+Z-vqFfpO))0Gh|Ev*XYDYEViOr=vtbYO0CM6}oYM!gFW5fP`yb26h2!jWHpb$74-iM++DUp`;b%2YPG!kZ9@&K()i zPiX6xesb~h$=QCZjOXeYK~GDA|B*(9^vO4Rr~QM20;5{b)@VjnR#riEr-=rDu_ygH zCQ%U)H6snC!=6|;vPS($^fzh-%Cn@0*CqX}t-V`y0CI9@Ye`&8cb+O1n_pfLml1OOt|&IjbX@>a*#rP^?B%Bm^Sz1013*(O1{H1!!(!xS=t6e}mt#fNe zTWe>sIfOUCe)I1SG*>CllC!Ai%E;T)R7rT=nwlCCdSO3Ujxi4`RDEd}DHBV1Z4UNuQ0UJasH{Jh!f1Q|^s8?onJ;HUe zDG0{zDm(k#qQP3j!V3FAs6pkWr4Nu)X&O&gVdUpJ3ykZf9{Q%roTlJ`Z`rknsDiVqG@DQpiO%#^TO?ieJ zc;`;jbD}HQ4x9Hdr?Rq=N!0mH{EYo!98;#oujb|?38aumgfi_LZ6@?AhWJ~?|gKf7OiKlI#py z%F8{L23AI^8rMG)!Gao5bOoLY z@ba#HNHE^4JATb}Z+Ef3t?cj|wctUAQ$TO+Qzx2A?wdEURDzUAa=%-itVgh*cj2S< z(&kLt(cap9WFJ1W-#XOat|S3Y*o06IVcn}H@EVm`ywJ#jJ`lLy!aUOT?U{Jv&e9;W zl#hEqMhoCp4i^T#>grO>5@GuP^yNJSG&KN2_(*FUcE?gtV>+x+-(80yUciQcF;eu- zYlRl85Ve&mX1UC^V@uQe-d+)Gof>yr7nco~3Q50xXSwgSP<_UqPIRP6h)7B@oPS5b zrr4e$a!XY7Q(oSJPUB&JG^4~t5;|P&r(O-Z;%U+7T&(&9RnpAN47TmT=FDj26M8XM zc4GJB4yz(XI^v5q?~RM@D=B%w&}A-Z7a7+B5S(dCkbw#g`x_L6`;r@9fHeB-E)zH{ z{QdivGs6$I$Aj4SFu#8Au1g$h&?MJtJeKtJ^dwag;lMv~m zD`SS(C578JZY*|)OdPMbkljxeef|11Dgr*;3TR@D6&065(Eul)M%Tk4 zTV7s1JUk2y4TWtDI6gT$O~V>S5ZaV6jWaPB*{kSisLyt=HtFf1Smj|o5Fx3! zZ`^Qob4$2sFmSqgiITD|SRnH2XTEmmMg9O80GEK~P*WowUc&M#4TkyIxeLk3$=g0B zaDhsv3CFTw1gr1fYSfDtdc~$eEC|n9qoP3r9_p}`DUW)dHenGFW=SvSZ!c-5zeU;G z+6MKj#m2>fq6KoMDD?MC`7n6NLn_Q~FalW+<=-%V=Ov(uBv$jDpO zzth>3VZ)F~u0LyR41D}J>(#3+sMNi^y$Zq=oquCrh%}r_{J8Y;m9a9oNq(=f1(g371yJ zzvk{&+e$}Qs1-^+e34f+zY7hpNT)X$~+l8zJ^NmJeM z4)$QsE;Q6LG$h_J=4o3UDv?i7zKeV_x)ORo=v=S4#fgyf_V!j&BW`uk{EP1v&O7|! z$&)9rpEfo&MtJnY?*h)%H!yf?Za%4_JIv0!gjS3$I3#4gqDnBqVpjYn&Am`%Z0`$M zAZ3j??!Db(H>J6_X}6*(WW+ldj7J1*>En1l7ol2B^=r$GsYgKJL`0s#8iqoBGIJ}? zR*+6FUR_z)`)H-AXhHJtpSz#6^0gHd6@82w8XFtuIM1W>fY@3-eAo-{BsDP+;Ue$p zSvi*_dDQG?Ez;#Y_tR90DKUTE`$nSIlo%!92D2Z!qEWnyzDV-%SiYH#NhX3iBl}erpa6-z(kNSh)#m< zKulv=H43N%5Ruzl+S7{{FM9S_-9Q*+L}wJ_VHOXz<^U6cRa4h^O*z;*5Nf*R@X(NM za(3I#p8#{!cms$YP+67@n{s6JF8mcG<-cRx;>Qtp9U31XURVkZ4GppE%>s+=HJ?6x zDzol_PdMD)x0zecy^OI*c64xfq~-DF%M0qruQRSCJg~F93JBQs;?2x$_4H`}o=M)C z5Maa0dk1({+W(N4Ns^}K^Mbpv>l2Fm5$JVEW_o(xzuzfRI%enQa<~ZFN)!Cvpt%4~ zLZ!B~wZ%FyUrM__z)b*Bp{1n-T*FTnMWrAlESxUo>j_{y@;Mq_K+b#QT;)T-Lsx z$qRl^W;K!GW}k6&WpdxWGli-Kn=#0H-e_FS{b+H&J;}J}44@0N$V$`ZU}%gW?aPus zc<=y_avcD{{QkwcIT3h|$b?^6LBW&HC<5XZ*zZ6L_d6xl7=#^kyV9j(4*tgV_4S2^ zBhu%9(Mq{#5Vwr^uGMz|ELFW#zdiK$)rO>ruC5orJ796!V6@ynM|>=I7^W1+0!w)&iZL zJlUx^255hi=J}Y`g9pE$sx*3U&B9Y?KYFzMyZ&f-xC}b+r_T?YSjK@WRXUCz&Zam4 z=lH(j2@Dl}Y~7cOG{#qrwcw)x+Is{lP~++0($-v8j_qN4k^nT)S2CyAYMSA{I}EMp zBnY4BnJojFe`n&UOW8#M9X>4##@cJ*p$SsClpoLJr#N1UbD_3O|O)l)>A z(nVd&_4I~;c<~DeT)K3rh|S`W*5%nLC~eeKR3G&#?4XzfQ=AcX1pTE;=By5b0alpN zY-;o53Ft_=&{W`VC8lf0WOdH9k9bIlZ8n9Bwa^nSYIdskss>|4RBWx5s9z)UqvE$evx9kcdcC zMP+km=Q6GtFyi6i;kNjjmvGH~#9j+Lo@SPMO66Q_2-xMg&E#|wX0R(mW@5(mISMrf z0t0aiJ3ISF=!@eu9-viO*xTp-uvi4d{P{W2RAUk-LMmgX9I{98Eou*nJPb1()yPrZ z-QAbDwXtu4j|2Gt%3PYL%O604lcu^~ANf*AM#f783$&m=#j@YjEB#`@U(x8-_3cin zH8`oj2LeyGG5}mO2As@xr08gB;`|UO%3-;(SNn(xuXGzI!ExZ(+8Olr>w<#rfFPlZ z+QH@z><4!A>%B6J@-g7HQlQ4U6M;bFwX_(;T>oaAZs$OKeKJ%Wl)WGuauHiEU%Yx1 z)?+>YKuZhcOW+aE&;jwPAYdW3!@9b0<3_3mC-Hfx=3Ttczxr0B_au)uoMq;&#u^0J zS`WBB8qqIBkt3pqRtyn>!w3)q~l7cv`k%dOx<)d8KfDm%Dw7W-@=0L`VX ztzB7O-b7bGK|ulP?Z_T;3!hJY13-?N8hs>Hem@-(lSZ%L$KYAl>WIilOFgJJzjiJ6 zEClINQc|Gk-bHS2ZAFHMKNF^pQcP&mdeA)XL-5}$z=J=|qF(7_L_{H(_j7vnjE$L? zm>h*ufNugTlarS>3-jpe{UtaK%i-5AN=8N!A%o&V6b1vUneVT@k&%&}o~>|-@6IAr z^q)U}nnu`ocvOr#zIyQ@Xw6qIUR71~6V`TKyu;j3 zi{;|saTia6M+5YAaBu+L7jRE<6vPEU_IwgW3HPL@M?jQ9AqR>xv{krzQIQj1JeXDo z;gm|!@2`I2QdtVp0SAU}y&G-${F#Mgz>yOLLXm!fcCLn7wIM7=pc9H&6rpd8cy*A- z*BFeH@2(&XF_4Ak=4Pn%9UUDzJ3CPEi%TymAT2E|CA-2Ve7G5E)=3#W!Tzc2ia+Xm5BK9?r$Z z_0CqDhes{;J<%23rg-!2i#8U3e$?7DwJPfB42uTCLPG)6fjIL0yHer}dl=2#W$6#0!#`j^;xQMQ@@kv72W-u zFVchtRdM|Ff_c}UBG4WRo|KQbL{e33mGKaLT|;x(8E|?BwaWeeT2}nhQZLaOpOz6x zWmc16T=cYdJeIvj@ChHynB&uo!MU!$!`)XI(djQO8#6j)zb1#&#|rXFRQ@!VO&1A z(Je?qmcUMMs??o+Yut_9=?xUm4Hkihz^}d$U+QF9Ykg+w*4H zMcp)hgE;cdINw$b<_6;PwZ}#I!{}Q7@~73UpLIB1dNzx=9L+S8vyEm9R%m z%2ipegb7s;ZHRyJZ}s{8L2BIh9+U0BX$fe)*?nw-61KbX1iGf?=KS1bj(|0l0tjie#2|q?$%SD3D1&IO2r7lCE7umu zWhhefFe=DL=H^%1jQerGcw}|=McdMaC2EF!!VsK;XpX1EzxP}TK%z-eWkMA25>yQZ z!$)i)r+X*MHklk;c*~13tuUZJ*$3BC1HpFb|j6+;w{_S+NywO@+Vn!B+tyv4YEGG zDjLmw>()fITTa_dGIXwYvLQ9^-;+^VO$45u07{*no(3wp3S+T4(Kz8C+?6IVXjkF+ z`DoE?UFPXyQ+Lr=xRKqnmrcbbz2lDG%7|E({9DQXct^qibE?O2MPl++|me zah~2h*R&IZc?)RW+l5KzSJ!F*IvG33>8c6N4m7wpxT~?LYj>AeMN;3C+EF*%Xmvb zw9q_v4dGhUkqW-N;b?5bXlsMMzvJT%u8y-aAM4#E#pG;8(tEP9LBkHw(b0~!w%2)h z%7-1a^MyD#E{Zqjw}8+BIDw9yUM!jjOIS!}y_v)bg9VtGnYFb3*?s?5oCc!v_ab6(!TUgMb*gu3$keI}dEt@uhwN*;rh5FHiOZ^c&1 zlLDH5a!SOtL=6p2Z<_JF-p}KNqu*jtG%^RxPaSa3k#2yg{ za$GYo6#(+4-$s8mPm=WB1T=qH!A!5RuyA$yl}uHw7krDn9s$;sZ{ zcf03afp$I%LQtJ3xY)9dI;CUxJKHPWf`K+XYo0c7hG_K^VWUsZ&0D)oO-(SNdkeky zu+|a)DJUnTPcKtpzsTj-X4L9aumBQRbPI-h!aK1|kn>n7nTd zI8kaD(&ILQa(>@RKXzCh0e_Q|lLLY5!NZ3YAt2?0r_%#kUw9WwulMo(2H4A$;906O z$^;yP5yTQm&A_m{wzdY|Wn1YFi-_oGz;lbsX4?O$O7vhnq6jWQ;ej=n0kgez3=*3p zJ}v<(I7FxzSn)tpBhX&6?X+A6`k$OxEeb@VYa#78ml3$?St~CmM@dP^A|L;K1Ud$$o1ka^cj~E~R)&SZp^}gXT8<#N#bNYKV!Al|#@9+GsjE z7k5~}@)Y;pe2>8Z+3nd)53|1xB=6=;5<)^cad$5DUVx6k1}6fJo_KkQ@}Qbs#(+IG z9xie#AR$e}%)r2-{6JluA~mqg(vUa(MSb9%JNA#A&YTLLc?N zhAAF_4kcy0fsk`{UI!)qS8p%Kmn4tPM$Ta{(F|g)AXRD_F)=fr0p5>KNEqzzhfpL$ z*f5Jf;y59?3g{kq&)m`y(ZpvkXMvz5wM@|fAqSGLfJ99`Gou0T8Q428`FHPFurx93 zK>_##o03l8y{mw(2MS=+hYueB^ujH7cS0G@0HS)dy8>(spd>0;0MYi{lKO3Zver%0 z!kG(XlJEZ6=5NxjadJ8h6=#BURbDPACZHGKZ89?U(i4;4Gb_?YfVc&6!5e?T<=ZM2#((2`LR_cfo!V1U5 z&S7ECX{tsJnhRtI*Wqj2?hH zZ^&EtV0l4VfuV=lM03HG6=ML?&<8dHr5vx}C!9gjR(b#5`y121cYv6HcD}VmL_%^6 zB`6{y-?!vhYbGeb!J+7D1P#!ZaAcB{Gy^TL^jYbHr@?Plkgj;@8B?C8+3kdetzw1H>}~t#4@|JtQ;O{#CxTE zZ`)7lDB+pmvLJ#P_>rEbCQx-5(X`I>_4QnE7Ke0m3u|8w{ASTUxo$Kh3b1gV+M~dm zJV z);L?APc3)>)9Jx}^R^o!6f&*CU9K>h=w5zdo1 zZKV&h)j*2oGw`o8(!?zR-gc%AgAtf`{0U?b*p0uxC-q0B zNEq=m)kl*iSSHOKfW}5b%g+u%Hw0Q_WX?b+V`v5c?aDww{p*V+RT>1Hu>7dO+LC1fi|Umy}LzKaogkx z!OML7X2(}dQXq7(Va=>XXjLF=0bDsbISJHm9tJ)8c)Rz0KIRajBT^e*E}>$;#9vRc zPCuBFIjeRUF75PEgt^Ua>k(Y>tj!esXF9ZICAn&rt|Ed zys(Z#umbKQ|1~hcfe0491!N@GYHM%Lnr8O!^Yz3EsI)LVrak(#<4ok_&f_EvvLfP- zcVkV($mPC+vX!cSkn9t?9qD-z%IJ+O$eW+{4e?vE(CbD!j}S zu4P~VG6JS|0dB9T!aW6@3r6_A*=vO54Z;JA6S$vP51#YQfyn`J@k>01$OUInT}Z() zad0&a-frPDUb@>vR$RsL#?7{wmi2vJ-itZ!^tmX-$68vK1zVPAr|^f~U82L$lZVJ& ziWT^%NGkBaDvURMM3-OSl6*2e&cWDeYLYt)7#kSa3(|>23(yb?rxbkr_>!EGme!l` z!fVJdSnx0G_}B#6+jFZeqNJB^q*12IcKrs85zSSoR~BlRYKm5Wo(7sKI29n&fVPk<0`?jA}CkRXP>S0WdkB_&v-E+x^5QtCFlwQDK_>%w(4Hg*eK?DUWo#ks6_)JHM z3=|kV-Cs8w`gTM}7Pf#cPS%0_4}LG~T5s?PXzh1mZ-c@P&pPPH7H-#m4AU`?*@W9I8o5c z{UA0#LPA0v`2oDeLAs@9Xk_-J+S%GV^437m2-)=kRy>6e zjx-?N^bc0B{HY^nLdc{MgoG+!9W5190oUAJ9Vg;u92^(`T$dwrV!N~0U(|T&16vy$ zexQ|*U%=v1@LjS>OE(K^S08A3KqVp#o9?;CEaiW=4XB`&?*vY(%nNh2ZGsQMB1T0+ z10f_E8uJi7M8j--#D_;(&&{uQd2~Xj25ge@`ZYx0F1&i~K>p@kwPB&e>L+;vdg6%D zx~r6W@n9asynPGHz4pndux>;=d2CD!OT^V>n}fcG_gxskShKLO0Jt0wa0>b{^UzzH z;ZjRJRl)1m7q%CAp$$PIBP0$ms(!%$2w?@y5ola|{MIjDsHmw|M=H2M(g%f}xP=%B z;H_Il+1ayYUD6>&?F6jQwS|O)#KfRWNrN@dXGM4A3gq?-4GfNcaAq{kBHI#fg=y`Z zRqL-*o6bZ6h#MRnOnCbiGC=nrPaZwx9RO7ey5&gptp0?L2WdI(A2^3V6AGfV5>%eK z+Z=JW;J<)5wE8L_&coc9L-`kQlLpWubd0?%zl2katbkhx1+HY=u_!+uI4Jlh0PccW znwZvtf`UL27o>{?KMX8m=~1@U0UD=Y1dnF^__5TLlo@a7+qaR}%hQhsj^0*&w;-$WMbGNsgE25aj01!XC z_H#>1EgwHy8eJ-!w@9DEI!xe)z&eYKY)J+%i1jzHp)f5iJR^d(R$HtXUBX>gmMKW` z`#xmTP%#kZau_N;7Y&CK(ktw-(wDko@AgN%GIr%)O#->ApNQllum&#qA9wMJV(^|j zk_7N)$!#8c15sAvxOvz^I28uRDPF(s0rh=kWDzK#a_m=gy;2K;)L#4JM^p+BMFO59 z-z?%62d6zEzw!s3`YEZ%eg}D~sOZ+160e5Mv)a4JWeBRldAtZKdFW&2^<-2n|}eOS8;53 zROazQgShh@HkDNe#v81#*O6Nh6Fy4?5Ji&N9eNBa$XHqV2k3OBsL`dMgd?nXf{Fpd zybfHQ_1%uHt}t2#tWc%%nw`K^%y`t~b8$8}6*oToQd|vhjkp|hGvq^E`2j9pDS^PH z3ic#4myVL!_tIr|aj89(VEXz7=PAV}D%peEc!-CRYq6Gkk@l~cQ%+?r96-n^#|&BcDmOHqDx3f zhyt>`qr-otVi35F__RJ&c+7X19$f@Q5Y{{x+LV;&!6nFgvkQSH@$kU|3%%%w2tw$7 zhoyV@PFo%_OiSK@2k~p%T?a;xYza5u`zt5t&>O)1tY^kh(WLHZUCM9-HM&S&_cs z+yrBvA8wo-s*Zk85a|jK|3qG6T-p5#Ji25{MRtXLl%Zyr{QR=gQqu~7 zu$G>Y5kjFgSeTH_g}+D0Sr2Jj>amJ)rX!dk#l^+*^EO<&!G}HoG{Yg?y}M&PZ%yz| z7tS?!M(~QyjeKA@OiPZHXUWk6nY&e7tWq@hk$lDad+VQCEDNo%mAt}rr;3w0-kDiQaH{hAl<8NyR_)}@4MsFx+W$jU6X3@mLR7O(eqm; zO8yh_Ys3o6tEI4NH+jvE|3lLkx4a$&I3hNdQcKH4k_zg;O*pUs5+gG+8Mhvbdz^=# zGh~E8k@@Pv(CWe%;EJv09JxhBPemDEx9*L7X2?v*nht^Sz@9rKWyB0FNgV&h?gZ<{ zG}+L)!F?{}fdhYz4H~oqs1<#&=oTSSxc_liQ;*X^N4y$;kAaj|Xs$6M9PGyv+GiuL ze0I2ry;Dt*;AYzY|Nn4}8*r)qoN8g{cmbYLPRT7UxD0R-FqO}x0mLncV3xMhe!Da= zx9lF9IZs_fi0p$>1&E_T05{*u`xmfE0z=0d2c~T;R_$}m@lA7z(*i$AhQ&q)nFE< zTEej0(8MGoEiDZKi>6IDer{}V1G6B1D}d;VRkf^WLbGj?vstI%M8c~0v%+8MbOT`b z|9%sJ&c$H32wV6tm{VAmN07#xcCGeGht+<%7I+4t8WuT#Gnv(+`{02&f08krE`dsB z<_Gr-enE3bO2GoHQF9lZ+Yp01FSfR)rPV`J6-EboYzDcxARY8WY+ezd$t_PTOL`P?C8;M=c`R^1X1co_R0pzZed zHe~83Ru{f}Si3kW5KL5`$7Zj0TgF`Ps&!*;}gWONzpV??-hDFH{ zw~!ge1g6SWR@B@9L}pA^Mk;s{xFNz*F=!kzd_kl-@83s@OsJD|KGI?YwhYVy*MLf) zK)1vka4pDzwY68T|1C(zOCl0(P|V;9ubKLbHRw&f zpZQsoAKbnB1p@I?IxpK{+_8?@aC4H*`;kcD7S-KlyqAne&@*ITRBy#c z!^e-^q1{h%eetYWSXiE!j{GY@RUcMqQq6S#GlAMyZplSrFNu;gbH;v)wJ*x_zyEOe z>wqjW5IM)h5#uE6wQi!!XcUk&HJ9gw`!||tyS4%2Sh;bEh7r8rdN(SOQ(43f=n4}@A4qJ0WGO#)Xj=j%; z2oi9-4+4+7ahzi^oX&@Yv^CTZD5jqYHUEujy~dAJg5Y(KA70T4%ubx0J_X{YsQ3*4 z+bOhblPOj(LCDQ3^d+*SM3`G$P~;#mB(L&TEC0I%O7Uy%LvR8dDitU>O|ZcMWT#8} z`v5S7ShDjP(8j>M+6g!cvKA%s8*bk2Y#l_X52^`;`V}himU7>(nD~{rFZ^P=2evFJ zgJ?1QyTG7|2^a<(!te!7%RqV$xErLg8=!K?hmkhZLZvB%m)$g|WRUQ5fG`k%GD9F0 zN1P)d4*mL|3g=Zk07l(o^8O3KKG4=eYO!n`J{1CxlyZcGgz>yahY%JcmxINf?z5QJ zc(URIJP9r|29`%YdIbV4%jz?a5k`}uC}(`^s3CvDF{8M zf}AbTB?&}=_7gS(Zdl{K0EbW-p@3Vq#e3j4+Yin@$mzJ8UyQtly+Ar8S|>xt`4wAsHsrU3Uy0@%@QH3 z3jf`K2tEXU)U2##4|kTpDvOJY>;3f$j3M|NC^RXfIF=9ifv9)=`t_5ey{?}>^+B?O zyMy1PkO-_*TN^8P!+_hJyQ*~mz6tyg`Uzy61NNuFU$!cYZI0`H#yVg?NP z`mI~oR|3XOxMgB&VsZw;6_UyWVuH|`U<%-LI`*6uoOuETa%r$gN6VuJtw5!);9dh| z7>lWZ@xgF|9C!?Qa`-sxX&Q+31Ny_m#RbJ4ID{F5LqP)=2a^{b?%$Dx$Li`)EC|Na zUs$&y_h@OqT@L^yNIeQjuw6Fm(xyLweED6tPB0rqqg z=-@y>0gi%?T9<6c4+RmVj}tft(+S~uTH1r1L6gD0zL>}hANhtbQAoK_H4b?7FDz@q zev0>88fdF@e5Osn5D1Yrzdy9a zynXvMIltGsshko-bUwcK+qrL6qKkmd&C9~lWLE(?o9k__;Mba6EeKY4OcXgBcJvko zz$b@j;RCB9mff4l^M^J>U6+>H_+IY5$A+@HV%aO4n&1c^f)(;ga2C@13&g?ZcMe}% z;-r*=SRr^mIj{wLH)BrGw;ppHw5%7W`HjR7(;wjGe8CME9 z(dey+pz?LZpUX<`y@L^Iv5<4U9`P&Snha^qq$eB?4{Q4xm>y=E@~$~*y>I0L$BOAn z35uMiYDevyU6-zrkvf8ajLce(8oRZWb#5{KXX;-U*+P!0#w+^kVZX% z8o@^w^>o}r2RtD-+9(32WFdUq0Z#_AfaUlw2QvGU7v#Rbx&9D5Z(C+r2SPk<5CX-DkMM^!otEJ(?czpK+#X((A^-jT_08>L1p;zrX1C{U?PUS$NY#$B_ zrU(~&`lM_B^^Rp&o*WnlAziHn+Aw=@@oc z9WKk6o3}7FP9Jw9BP4`;bFcx($k6cMlu^Dq+xLzREvgStjX(?pe0BTwZCIJ$(1C{t z77;}3&|Gj>1WDBo{sBZs{@E=sI-mp6)6roqtg!154(Iq@V5X=C3fky%w zODubuOyKVs*J~UcpCxg;3V~e$M}!s!(d;i@zk<>?HfEUBL&MB`ANdG!ba43E&@lC@ zIaEDJ8*D=~A}Xq4bOnkX{5qJNUbr+KKEC}W9oc_+Y&8a>&w1x43ypp!M~a135CODK z_f{kax1kH0I)PK{#93NxnpDs2W3%%6s{cUeHuQ`tlY&LA_!!ZBp=r~mWwVun_D%n$G1L*yUOo5WgO z8PIf83`orY+~M2_oKqRnro=8tgokitb~cBQPz89QP>~CYin`j{i4llN(N$2;lvGsU z{4+@YM&tjsR^}+4k)dIGsRMY}JZ<17%pLsvsSq{s{%3sLHcTU@AkbTZi%rJla#D0p_kL)5)%+8d-rYlf^p zarIdEbxlxk8*oeI=n5E#*X(YkPOMEpv>7x8-H?#*aNc{NW=gSdfZ@l-f19wR@^aPG z>;}z2yFkAJl;X&*v1w_H;PXb9gX0FuKAeAqn#pU|si&au6{yK*h5geJV`ccYLx&Goai z-5Fk*z$i=J9_1EJhbQ9)H*r@T(L#$I%}bxLKfT+B;!B19QV6jUTmRpF{0lLqMvhBu z$N|6L1oQA+OA-qL%R=cUk0{~gM%3r&I&o#eoWe%+0q_iYW3T3(jq_ZHsQ*QF@U4v`X)ERz>o;{Oj;e(BBsW%&HiTyYaLd~uuGn!x)wM0HMh+0FX3}}@3 z?>lgPWbfG8=4IQa{=3&loC9KzE4peYcb>5mrud__y@drk&Tavmb+-2> zW8r1eEBx$p*c(iEerHgO=m%pF>KbrP4B%{DNK(E2?_~nlzUgw?4c!Ki<5+w+^v+?RX0sdF7qAyy~gnl)D5gk42blZ-KWK$%l-|h+M z5%PvfaNqNTE64dl2Tw1+Ln52P!HpT)Q0*;$RuPK*At9&ZaOn)gB_;*rM-0YX8au*- z#Q&41jqvF10bz@t&UZSiVBy`IZ|Us@2xT{PheDh#LBVY z;&PqV-EC5HknmhyKk$nhl!L3Hxx>BMZdQRUa)ImSO``@sZ)htkvT8*`9dthNg8UDkl){NooE*o!ogV}HLGE$zYQlgS zG}djnHhddXB#MwBl_Z%mPnk-k5QWT9W-^m0Bq1tAnTu4CG9~j&g-pqmsYqr*C1m=J zU(ecWeebv4wZ8YC_t|^xwU=(U-*8>$b)Lt09LIU`dT<_kbKsvqkX+(<`3{Pp?;|5P zoK0(}pcX(Ann!K6?3d=6MBWRa4yqR~egnp_JJ45GM`slkU1V6;T^?Ix1^LOlq#ToY z)Ch4bNk>-~UrFc^NE*bG=(RA2*;>m$SuH|W`PE4Qb{-pN4TjO#kqoFqp0QDZQ<@AM zG56`uZDYUIMx`p_!L)g2s>SpURZlil#b7;^f7g>R;EE)y50DhlR+WE2$M5`ws~#vp zA3_h`(vr2-0lBSVq2mA?4M;$-CJ^RO%s@gw@sS@FlCg&nEt8P{0Qb5FH7JdWt?dLz zI$aQH?-VpNHZ(vp+R^_oiV{S`h*W7fT>UzW43uspZzg(O@@_i|^(0~8SM<63BV!AmY{3cqTPodVi>AU2h^{G*py zB^g$Wi@TmbL~A)dF3v_F-@26xLZf^47@3&9dlE<=Cl}WjTw7!v@tPql0^6XbMkTx3 zesm8^i|_&b0HP*RDj&JXSF*f&NWAl%2p%m^b2#JOzi*-73YdDw0Zj{Q>xk4M`|d0# za1(@!3y?aYf;$~`KPn2n7czpM@h+U11j3iB*Bm+`gS~ZEP;-J|f#fGVH7;JA=^awm zO;l76^T#>WL&J3H^l2y!a0oT!L1udaCuYS}UufoWdvI6y_07A95UoMfUZ+- zEg4O)$9Y3DNHp+aE^)bVpbJL;{0s1$W+H?uyjJJyP;5hEl?)g`tS~o2<{91+&Zkne zagHQC)!$iG;!jlH%Py<9kS;9s>Bp57~iY;Lh;ylf6gdfpof~V8AsJ za*YeTB!d`i5Lq-gkQi86TSH&nHnl)bm_=}2={K*?#vORCFOM~UX+}z|ASJbk{s(ZE zGsqgyywK+~a0=+G6rm?wsraSv9B%eTE z?g4VeM+kIf^c~!MsJC%BJbDBd5;&bXGT~g;IpBguCw3*Lgq;o)WdI*QJm%(N8aVPB~9w)EP*pz`iR4@TIsuABnslp$A~k z74*n}eaPE>dW!1h2wp5C|C`MI(8a5@+2xbNLkN)b()Z{yP^<1ZBhSdeu?p9Yt;j9V zOt*R@Hk{IP8>-!tCr{egr1xl8nhNsrj>2_g8CtW~c#D2`sLsZHlr4;b{w0+!jZogU-VLmv~W#j~R0yU6?gGxyD-0suC*xsLP>&%e^o{e~UU19JdqrYo?ni1mPgNjBGOpDlKJ5aJ5^ObiXTn4x?|nP&Rhq5&ndW6@AZH;h6Yx?8b0QSfU>4cw29XJcX#2WSb3 zS$y;-KsrKCZy=UTeR|disFH?TNGJ=t0-;Uf`kkIQF_VC`1(OnYHd%KYFR!A$83m_B zSg$}U3k+_e^JT2}2#AqDB`x7}L2BYsP-bv90o*o;jfg|WsdPq?1l;f|&@li^kl2GM ziAQrZPxvyRF=>hIy?8&wCWRpM%^sD!02kQyU?p<`EyCsMn3`7L%OR16UW$ah2O9CH zs^%pkIRhbwl7WLG3E*E$jOW~7HS~FKBXGc>O8}PI+KhpK3%|&7Re?cX>OLWg4iO3I zFd#FqCY%!`F9QTcXy00^#Y9yFVClI=qMp9~5;)^=wM9rz+;=VS-dGA1XiVjU#|vu4 zxXNSAC(y9Ojrk(LCYJAGLDtvjSULmD_Sec9)`vl<=jG;e*w;P)60!410Ml0dDgf;z zywVbzssz3w(cax+LA|fA?=ou$kJ@OGWL|XZ^jlH4>&y8(YSvbaznHSS57DS-kR;Bl zbg&uQX}*9;p!jFJl1#KZ=@Zpn{;8G-jW=;O%`Svp3)4HC+eCXB9*Gm~sP}kz zct|2fz6D$wdEQnX)MhP$Vn&V?wp@|VTXvi&Rhe-@NhPk~3nlLnuE+t$*7|zbmZ)l+ zw)@hM07iV9xJDF@NjKO}z-xHb<8qL`0T3o9d^GTrrXE{79G%2CG&z}=EDHN@euD{V z_Xv5@*sq4y$PcVTA|pl?e4x4^P#S~`YfH<{^{a|Vbs)xBoatKxbr+czUg+qo2ay30 z_DxXdegUYDB}+Iv#jf@?-8b|6#TS0o#N?{2Ngzx8be7nODWRd`qh9H0wxe%ygiK1H zNCwgZ`JdyLvYy#RNDi`*{?*^zlm6iQRV7nlozuX*92)vu$n&__r(w z4-m&fUx1bX%q!>Lv)lXJBFbU|?fW?AB5v=pq8A%WJQF8U?e}rSb*N)@1#)BX=@4i} zzJJGJMhXc)Nt+2dI0zaQATi^gJaB{qQ$-8F!rk2+TM(#?b4KX<>7~QM=~F%~F1dX( zlE1?HX0mLRa555D*K%t>mT|GDf`UJKt)8U=@=fyH>cIq4$y_s!!pz_Nk5i}K3bako zi9k`@bSE7QZ-hQ)q)OP-FRp?F%&aOi^TFy$tT*Sc0g>IyXo<+Vk2~WI5uFCy+cjW% z1D=@=?1X+)Zmc6~61VR{6%gC#fm8#AD{;cV95~I0GYY8G3Ixt~^@5Y_<}LG+P)|9%Go;|5Hqz=AD?`xrt{?A^O&tRbyq?DAf72;H_7 zl)t{dTg_e;rUIPX;Q;eOPBamb78(K2$>(_{66~`WRS!!@c%XM^ z#koaQ8^U=)Qe9tPk0a0tC$OWX!jH~eoYTwMsmE$|SgryZ0TAnrjpMhrpW3|AY7S;iJuw$_St zd+Z9)hB+aQcN`jD;EN~E1@~jKsz6YtK)OJW5@I-{Tj=v(J6YijocLN<32z_pplNB@ zk)WPE3tK_Q!css}*bRatj zxNFy6bRx=^zD0}pxjD>>OD0~%OF(e| zNDbH@(E}5=jp9)YF)uRCLaY8iIYF{#%)j!J=)=_4BLTq~>;i|;&|$205c%v+o%#Sp zO>J%MRfP){7T*Ee`eEnY2n~fP6&N4CzJgnp-QD;6OfvGigjtK@$B&~Q0n#!O(58DM zc&bFA1>d-m@48jMWA3Kee)aox8zG`BWtT*|m0fG{9$BfO7tbGw$~EA?Bl2P*|8*Sj z!NbEouig^M3Q`d!d5=C;`#s?8P zkdA&W1JJNDXEZFKT-e=0SBu10%iR32IqNF-cE&c#6WyTeKLU~lpT8mNc%#a&RQ>3t zqN5~}1b`xVVTgTzZdvk&QNU~O*h8a&NC(raQjaM#>8T!}Y^mlXPdDudkpAUUo{(l~ zWd)N^pGs+b`e-!I1l|}<&`%y~Tm}y6Ld=&F0eo0a2{~>pwqb{L}U7U~V

}mNHi1yKO%8{K2?%6b*=cn-{N5yYEriX-HRULpsAmr!iEki^lxAcg@@1yk`d7mCV;O;_5_S~TmWlr^mvV0sTgZ^J z^!v!&7qqp_6<(v23)&;L?xw*X#3y3!krt8wj-w1Nwe%hA6%|iIX z2SXF_(=$QbIg>m7A#4B&F6KJm_=Nw^$~*iDc}iKCJWL0tZMe7O{0G6I>xol--lu#T zfMaUo9dlL~^B+2NI_l|rM_QAcyDUNj5isyyNRcS<-m=-{9EfZFKV2vPKg;NU{`np@ zGmlzE#;%Z|#TC>j+~KJMj#5O!K~;NK={@41pWos=@#z`iu%@Zm<#A;H{%45MA?9GX zT|_JeEg2~!@|M(kdP!n2DBbOTWpF942Le;PA;>V%_(YqNK#S}WsLhaBho{m6ef&Jb zgHM<2t;gzc!n#8B1#%O~CIN|W$(uKC{^|INkjsNe>IKWS=C02g1jze$AsYL_SSZ$< z6}tbR6k9_y{K1+>*z_=AQEjuz%N-*&5TA&Jn1B5BxDazvj=liWb6}nXx;*JFyI;+2 z+7sKE(S-3k>KnvWFjqiPQap61@nUXVdkgf60Df_2NHN$3@MU4?j~j4}|+d$Jpl#)_IkyS^QNW>mwUyZw|k?w?r|sp=L@C78VCmPD1DJ_ zlvGQw8~}WRvjs4Pa?q1_z$~Zz0UnTrrAj+}k$>5lVVl6C24Q4NLxW4{014Dcp_xyB zYyFTwZ>^0JxBUdwY11a8FGQ=a?)`hvAU;{;mBW$kbd10RY=q2edH_w2wkCrKcGXH+ zjBXe`I0Eg@(0z#_2^khaB8JOMQ-Z`43=}euPp7AgL{4{Q_MyW$bvTE3I-PgXn&zWX zK@82v0G5@IHi3ZP1BeNQaNTg5$3RkqXD%c;#r|tPq>aUZ4XKN7X$)e>PDT;hiXA&H z35nv-kr;BGr9i_+n)Y0=jfA)bM9d$+T(CG$L#2P6O@`$fULa0w9N#6djt5SKtg1s^ zT1+hZ5D)S6uZ2ah2%8o;Kkl?cS(pRM77tEn2s1Jg*r|;TMZtVu{@ExDnkvXqgtH6O z4|}YM+Fz>Q`6!BO;3M~9V>c;vF95Mank%8GxVs7|C`|DFpz=?sBm9*oQSjjbk(ij7 zkAQ!HB?A=I3we+IXah3~iz0r8WsZ^t74(UR#de5p1i%Vh{jb>l#czOODhFl`0AWIJh_e?OQ-!{2 zD>ENpF~Ei%1L^Vj(eDke2}lrxYo1f_$WCph^GI^N=D(q0MYhf-EbN4A43QSPX?Xga z(?x%g@c0C5#Sc;%Ko}Tf&La6lB@Ng$|MhEE)B`}Th@NT|QJ*tX4mJ5nx{a!n-~p$E zKh=B!zBl+T_9VkG=Q1(34fZ^ACF1x`Nbo1lvh@cp5vWq8&U@=}T%k10J90@Fx%^vD!) z+T>*LJl2sxLNJ5GdK$@3|9^d!HPB_QVxu7c0*T^PdioM^-1sa^;)oDL(gKA7g3C*{ z`vm}vlz?~l7{s6|{v`GmP-)x<-phmJWJNUVv6|NKUPgs~ax&7cnY0*Lk~^9G_{w&w@D8{dXm zIwH;&OVszjfKH_(HC2V_9V93eB8wUuSlvz~6KS%~{cIC3r-5F=#pMqilz?}!u#nl{ziwlBICFu0MFt@n7MJ{bOAdVT(*_<67<1LIOoV za=^MbFmr&k;9LRHB^EQ(M{dp6il<3|%QsT_u>Y}f4)XJ31FVZfGe|)9BDY}nB*n)^ z^Sq=EW<$_AVVi+{(G6$@SI`M09!Czf8CNl2t<==L+1RxtEKlH&uhuaOx99bmoIHvH` zU*M=QYL1;tG`R>8E~L_f$mAXS3T6;vV0K}~^$~3f!uIsT{e$2%Z(`WB%LmaZ^u`Sd zr!T9xgG5Aiv}Y7;KBk}=#xsA^vuWp!9bzEzA^HCWX_JUlAYp7a>%S;R0ud&&3xWe^ z2|mjgVKu|5O60uDzo0EV1awSX4$@Va-@kGL*%whVZP^bv6fnZAIGV1Vhfg|JWSwJS zV#BLZ<>Xd4a6=GYY#hXmz8P(hmagtILJOy*;j$&NZg_EplfKS&qHf01K7ly=j=zNc zwW_vV#gQ42mz{GGMAXSz?Ob1A0LP+g~drw@xj5c z2Ds6nyY_W9014!pf8~H$37->b|3{qon@jjx4m@Cmop z^UhpLk=fRy6MfB2n&VDyamIUF?{Nq7+?LNeZaIA6Xj6>Ylr>w)W$yhEANjBU%HaZ8 zo!(1b?fW=LeacNoeel9lkMsD*bE!pP$Dn6mgw&)|tjjLn)b*g>Fx^6*BR=8t_JUD| zdwnWj!UF+N>dIr`pJK!`-n+RxxP&ayWNq$+={C#kWM*v?EnRA zEXRHcnwBjA3x$b0i{_k6hiFwJu{!@%OB(hQp3cH9!@ma4;! z-yRy%ZcL!G%GHgu){$)x^?YVExsrQeA3Z&$GM7R^rW16!WT zrrie@3a})W7=L)wqem4;LTE44ASpGt6jS>LX|W7O2hmx;#y{1DHH4dHG=RO-*8N$! zZ$)LAE&4hSB!s?4h9q!Ub)BRz)3ki)UBG2T5E_*1x_R2gn^!ya?_T4uxO?|*f`)yOLp1sEia)*fu!=_709^_u0DPUD z{rDJ)Ff8bjEbL9Fqb>}-5i{v-7Cxqp8C~FS5DbQnaY|*7DEuooYM$se&)v(K0(XGy zPlUO~uiCL+%iE_M7v|`OaE@(4>agRDK_4omrpj5tC=e>uvX+23F`zg4(gqk#) zI+{%)+($ptHsi%p|!hSypjs$>OT6U;T~mV#?wj6py&y zF|f6Ug=OhKP*}b4^xlp>tu-D$1ut_!gGqJH zy6KqlmDc+A{SOuU{p(i`@7Y^&R(B~yQa|zmU--@l%jN_L;G8j*u-Z*~{@hpoQAo+| zws$mI($U9?;J!q&Gd2a5!hw^s(gC!%ooqGGUm=UsS zyird2(5xw>xRgk+N9Vmh2OPgGq%=eqXwJS2?99zDJ`#_bA+T(0h$ahaC8l>!tc{mEN=WdrRh0^x)E=y1BN1Sl z9LUoM7QfVzTVs=w{0h!dk@;`6LcCT`;6|c=+(Wm7uXk`=l|;uWZqswuWNYKksGjBHnxrwPij^~uemp*&7?eA6?+T6F z={=j%=akz>RYLnZsL9gL4l3kVUlZ8dpbrtT`(S}S`VUUeJ$>R-RXraXXvmp3NguAxWz40| z9pqb7kxH?dv(GtI^zw-4UUSxZ#h~mfwfv7y(EfJZtVRmFI-VYSp`)L5!~f*woQg9EJYpI9>GTQY6z+Sz zS8lA$q7_e^r$|8CFQi^%4fEV9N4-aKN%xqH8LJ3MyXsfBxkG7kBu61hO!BcC`SJW~ z=Wp<&7%;rPI2U@uW`J&Ye{hHMlEg`J9>#F`za2{Pl{1G_Qvq-?3o}sjIB@opQNE zt-wl6Y7Ux<{h}X0SGh*+dul$`)T``JTIPvj7V5cmpR$rI?{sq-ohdyTsZe;)Dl=Ft z2d!^w5hP1@X#fqcz%UaHM9?!wh=pwyD`HRl?%l27A-R_iPxGhCZm%VoousCIcC@=q zlsx2`mfZU1ozW#V{A7Wtmjb8~WbUzt?q8YjGL*LD@T|?Q78!iAw}w64 z^k}X~u5FG=4J^0RFWU5&eo5!Irh-f|9W|ZV8MaeLavJL8g4dYus@|Htb-QjpQrStr~pl%l@bFt?VRo03(RE{;ii!uec!di*-$Gpr9Wb8or}q75>0N+_M&h0=&ZC- zD#I=?HT7HBLu)H(TJ@J~lFwURzt1otvpT|XmR?EH!M zlF?yzif3G_m)ZEQvU)Oq3j+9ZO8Q$(%pt;g{nuZaqK#$L4H<(dvFJL>gDj6>8t zr6%<1h_m6`yw$2Z)59Gf6`AeMZF`Az`Iu4}?OJl*7V>tURM`gPcnej_9Qwm@%B`=k9bZ;5P*+dyBGC81w#4uT{CSEBn^vCciWH`}-M^UQ$NT7<^wR z*kVjHgxn1&C=z5q;2%>S+^c;ULs43Y)H!)YlK^k;Z~?>W=x6 zgT=9Gk(_Lf=IgnYLQ!k61+^fU6@*y{mDdSp==(Ny{_D{~UTZy_w?I+wu zdDLDTW`?JV_y4_br>LjH%h_I2exfyc1EtC5nG^gTg?}OhC8@{`WaLbUa3@d7@5u4m zox}c`S#NX6wd^b8&#CuP(Q=5M%E&FPFB9S>$xchskjMO}{d5F_KR;@6Igsol&1SBh zE4)9LV|IhRk=8u7x~4^JZz}2Ml5}Bkme%WLt9Fla<>+{GGj;mc7o#{lrqc~JY1BG1 z?mgdtgR`1xt1aW|%ebs#uR$u~8;@eX9yb|8v1wcK73Fkp8r;VVgW_vn?mt8@!e7}p+;6e!4ZFLsM&!<)05Ys?T^2x&B z3r0^ow6tf_d_W*G{X$M#>EOoiRdMgEhcyL(Jhw+H^$vJv+^YlEQ$Su{XBSu2qIeo$F}J;z%_JePWeQ$z zhY!!+JHaJmbX765)}`RtW)N;*={LLBz3$8&(gsisf19@07v&jR5~%GBOzwt_pF+o2 zpb?}yme)tCo-wZjm)B+@*aqOc(pgKy-x|6lWUN#hpEZT539LI0{~sPE+qP|kzm7*p z9?EmDtU!kS`fp?r+7YVrD{F*%3&?mk`mZ9rCTQoxOpc9tU50vY(iVa$||jP=p-n9 zfT}b!bag%8%nMx41SvXD@^xgwTlA)FT>S`8 z1a)fZ20;om2~!Fc(`M4u?VLQDH}q>?Pc+gb0W2aq0+D4@VeK70x2 zGN>t9OqN(6#9WUYvuc>10h~lvq8soH;SvmAX(zNgxlIL$O{lu%cTSo)tKQ262e+1{ zI$^)K$~SM^@y>CYnpXJ9fKP(aBuI5@hll|ZM6;2Y@B`@R%$YNrFwBnwe6+;GzK=#_ z|1MaxXUKWUuY!8u=c+ged=5hbu!0|(l6i@zk=-qaaUeVf&J$9rM7hhjo$V*>DKR!~^S zLMB>&%LK`+X|EkD62flZE(h)B0(d2aj5=u?#)37=aR`MS_iqAtSVnz(DaOk7qZ}L2 zkr3D!fqrmCMB@m#mi5)%_N;TT=xvd~U1KN$(P{L=a1sKULzU(a*nkY)4s(EC*nxF| z*LQ@g6)j4~7=3t4mQJK464O|L^h%9K{395P|3sU9aTYYnnb!Sk#N?*-3HiRiAW4FC z?GK;qU#8Yofn)&XL@LYiLecNHZcgxkI0tdS$f=yU3NRBFIA3|vGx#P5^PsVXStT*r zfPfrc3%FSjP+Wkuy5fHMdyzKF)mrun^oW`a=h;)MWy~Vd~e*}2`R7=hUb$C>Y9pyA|(6&JqTHl ztZc6UzmczSni%jY!Unx*@0{+ zYj^#b4ykVy0mELstxa&V`B?m<%I`xwm|Won$^yD-0FJjZwNR3^OMWZe8rmL|;rGGY zaSyr-RwnvU-}Nj<5xx(_)J3dr`goX&%pmJ{M{qq}J3$6R)Bn0&yR&}VA%~3x^HP=6 zgws(vW7`st#Sdlh9huC%{O3UIUv4q5%S~SJ^VGjOrFNcYImXD*wk`FBjMFRSSslG+ zPmQB@aI{V1-Fjqi7NJ86Fy>zIRr3n6QBgnwCEFX&t+n##3aN-jICkVvG<{>!wg@b< ziGoQLZe0~6SMOA9StnA{XHgW`ZGC1cEl88EvZ>L%fkYZNy z7LN-A4idrq(b;O;2lS=lt==c^KB*sb_V%ZjBG=kqWm>+`^gw1Oqwj~gA7|$5Pj0Eb z-1FHu*tT>iCuNW_gURN7!zcEgjFM~$%;EH3Dv1lvzk9OtUrIZFi8PzL|J7%_9Fq$&kWnRDhoNM(RvqgQ4w|x{MNt@-toFmq$;JFrq zTdmQ4HhQ?Q#IRyxpTKrXB{8j$6Uh$!F{X7nPjqWSE-kqzmMIt~-ZILYGugv?b!&C_ zXKr=QK(Yyjz}0ckB!kkz8sh?9RPS>{a-?F>jV|4hEnCQOwYAqY;1ggiD ztbZO1M+=U3ZXbvq{4@OIwwKuMkZS=0VUHR}gY6>EN!gh}jhjkuRl3(@8ss!c>uhHA z@|UUTzj>#5zWa;K?oAqXEOK-GqD6k=_ii01eWJ^>%KwvosCc(a`fE(AAXaWaRmqqD zhDVBtwTs*ug=#M=Kcyfg?Ud%Q;ks2Ani9ZY z@tG_#9M8ii;MNjTvO~2!g>%3rzr0NW6StS;<~oIp6T?m(h?%a_mMUPWb+zjdtq*^; zGCxEu-$m8UgN(65V#&nXOUEylqN?G>lag!Pw5c2aiUY&QSSsbVg}v~}X1SNgs`F+<7rA|pQXpEk2cUb1H_$yah^ zo!)-7X1-cPoVI3_lcsR^kuh>pPlYe6B;~3m!TPYbIqFS9Ras|=MtSOm=f}ro`f@LY zrrFvG?htT2Z4k^?BXXDH#w+RRLzQ7Ky>%?4j&A7qz1e(Duj)x^Z={^-M;WpWCr;5P zhqLw_x7asJ;xY)vJ z(~(4b?A=&)5Ny#EtCH{^X_fs{?tX%57 zsNR>nn=bEY`+R`COQWt0W5~^~sZV!3)}u7wCYgJR(*~I+#5cK9BwX8+bv%;i_g@-M zwhbp51$MI9s)SlC5B*k|uNN4!zA4AE(6f!0^6mPg%UvI`eH*E0ZTt&)azFX=Tbb`Z zYu`F4r!qrRP{WVs_Mx2Sb?S$0q!6;_%%pWs&UMd$hN;~iPdct2U>Tlw{QR3cV>K?9 zO*lK)uIj@nXT;9RFy18cO zZilM6#K)6iu6y5x3##UvV(p|>-g)19zN%CIDy!}mfxXAb67Hn(ACqIWK;RK$a5!3O zH8(|*KfGd6WV^GXh*Qmc$#I*p|FPr*PhOgIJ*`nPQtWP_-3;WU*EETg+JQVuOoMla z{?zUz4?JJn=|Yoxv56%vcXMXy+yduaKm=yo666Ul^1Z45hYNt+BC^t86o&!hrA&&` zHw5-dvXT#K&o4N>lBOJ}s_$C5Bz50+9^>?m?VLoG@Rxaujdc6gBch_O(Tf-@Ox(h- zBiz>eqq}q_!?9!3N5xvsC8$(2@L0s=l(X7L4t6={ENSV7ms``Mul*-cdmQmoC z&!rj(lGZb`KYEl#^A_7ybGFSo1@?soWY*P7>g$Is%N>@cxO%QlaqC8XZTR(^lMGb) zJY_38YG$wiTK}lT17WEvc@pQj&vYiz<-(9YuqF8|f78tTtaX+|o-%(}^IAV~-)r#a z!|7_*`#*0fv{G)H&tAY{*84}2Sv$2E6GWb}g%I79 zqwV4*-4bZG>b8rci9%BY2fiV9*;dcZZWlB)+L=@j(_KPc0um?O#^Ty1#IprxmKsGL zyI%1>Fh#HE|D~v*>3C%s6O(QyXWO|u3y0>_JRJRmXs`+cvyL(hYVV=VX(Va>aq6-7 zyuWCbfkg3fE2R-x%BgFC(IeIp!($iif=J1pu7}e|`5mcCJ0}*^sh1 z&_qF|t+~HYX}cLoZ{mC73q9_eIbqg2F*@e2?u)shy4>TA#z$6XH5n-XwS`&>6q{i* zI|WN641L+n$teg@7^uOpUoJSb^e>I<_*dWk@*-M188WI2!L*ffCPU;MZlm|-9uzh! z7-`O2%t(Lf2aoF1^E*`cG=_8;R>I9H$3*X6CsPVE2_cOurF)lV|$>fxmnKR#km=I?_16pT_N67j3Srr_ndq_GM4A?+S^;_ zAnW}*xicxd!nUf^dHLnBZ#u+a9?G}+Z6r=`d6_ZE?;0YMkF4f8nY#P4&Bwr(P%qnA zSXk2_@1Yq)(mkrqXEA?XE-xcZEc-Ws-n>uVkFMMZ8xOZwwc9v#KsK~Wkj7cp`&+^R2s&?p|FH9GR)0UT>| z%IPRlsYvdfvy0E4J;OZ6ux}5Mtq0J$j`7k4jV0-3J6D1>+`o3UvOqf;gr8vm#4VBJcdg-_@ zsrT-=U4qY#9Vk^c(4HhFf`S_f$XQF*1GXKo`XOw#fSX{y$aze{w+<-mYw#FBdPRqj zg#M;}sb^;0FzRqZ+BV?-+Q9%;dY~B${aS{CzWg6_;-s*EVjPAd{JgwY@Ejbalc^P{ zKph5_4{V%)4CH{iv~`u9sFfeQWJE(C@zy1w`P-J&g8S}2I=|3pmquBAWzS1jJiCA9 zKp;AhM9{fL4G5pb`!O+4iiTZIcLG0|ZGXNk5KUu$l;055wzjqs#Hb(cvR}Q1Z(~mHhuKB@gaR;x zaBGmKJSu&N7kVrco;v9ha6_KLl%oJlvV%^|xu z42xQ|C|->OwAg;bj00MY=0`_X@ED6Rq|U;?e>C12lv-kzDWof)8T^HC3YrNYl)`X| zfo@n(?GqR@8<1Ckzx1DppE+h40bL;xj+^V?I-tj5SmCz}K?M{{WN_#h;xGyzD3;Y1 zbCdMglo%-8cB|;or5x|(J7WF5&2=B|Nw&@}PLAH+&%Hfzz^wgu#NV4*x)PvNK&~If zLk6@1|3yYbP{8&a{_NycQwx{}CqJNn;$bDg*cFdGRgnZ%3Yz5fV zu&$yU0xN^4xSi%PBC8OLKS#-XXQPt*Av-?t3oYt9N$gNGH zl1);JdUI*)$G1;EM}zc!iJ6mpyTajZ2()KRVc=qJSgOtYeS~@=+u*2~W4ojOWyflv z#-AX+;|YS}I0Gxze|#B8A-tWNBa@r0#3~sm_we$j;R;H!5*JI*V5CxJ1+)O=HOk>U zzvZ7Wz9M{D$1=OX($aNGdJmSBlP&+&^KmSTd3iJs{mqEH_x; z=G~@4n;m}Zi9O@$;i(|t)l4mbcDYwn^rwo?BW6|b;en~ZA>smF4+wN80l3mP;<^T%65;!Y_XZz+X4S*Vz|SGiSj7;h*v4nJh5)fJyyGjj2E-K$u$Juh zsQkKZ5F&$Q5pxw{M@21Ds${NEPNkCniV4Vga6x0_GJt2!NDJHo=lmiYFGvCm|MA2=> zbHsT-TLpjiVJl}Wm;CX|$8v#;>X$txNV(}X&!a64STU!^f#CjuTZZRpB=$>ypFaaZ zJbxBC(B@|e$BzAe`PkMFL#BEH-YbaNot+efClohLjm!si@fU4X2zLa15x&9F(q6b^ z2yD(=DkKh!57Ub63mb4k4mqKFc^k#o=Nf8OpL~UR-nwt+CL>oH=TntU4WlA^7s8?~ z9KIO7H#;_BOZb*BK7N{0!l|qb+sP?uF!s~^lh})Bbvd`*6?4TFMHU)Lb&9T8iZfQD zO)|bA4PuAvXUk)}`pDH73a>eKU5(E}!}y=WsaM~bVoWx{Y}l;XuQ=IMaOMR|X&Sj& zkw_#iajlZ=zf~UYBn`DL3X;PWm-k8AXPh=h9h--}D=?P}UR02eK9tD$BSJ^P+=$=l zSLsvRQ=fdzvAv<^;Hpf;#8FUVsHqd0M~NfpI81B3yuCpi9Ztx_r zBvRFF+4<5y^SHz=vZ8nM(n&RKotKmO)S@(>Uoz-&kc9XD+Pj~|G%ZSX9#*4t0Y9Df zUg7k)oNExo4MTU+D{P<>wQu9o*w}MWTe0^ zS$R8y87Zq@PjfCb!^dh^y1zerp9`}xgBMkv%HtH<-tEcC&eT6to?EueS!*(>Le&gs zQv{!a$Wu|l*9%aL8u`h(JT?qZB?y`aDW)#d1kEih2=ejOH#Sa9;AvD*d@tBf)f>fg zGc_IZWbi=01q^&M5Z8!Etrt=68>CB4&tsK`3VjJX4E7dsIAmMSTAozbDET)FtPv3!GGF41QWm{m>6l+KLOx_PDgv>G{O+L<f!Q&)FFDE7*?_Q_RTEQRT=?|wqC!Zz=+Ri+bm2mxD|A)Tl1wjXd-W|@ztMJ!$^r=Fxs5MDu zUpO(82{vYqmX^9ECgmW0YBL$cJmA^9$KvwkHSloZjpVsnLR^s7T@N*9PjDxJ?qkrA z2%SpUur&OBk+I0i$SiA~@tFVi4*%wc>~V(58V1t1GK|QOlPkOug;AIu$dL)tVooY+ zoOCpM;?+Hek3!&qYm)bz1|LmaBbrABY&*z0VTe!$$r=qn>61~%Xo`!9Ak*F%Bt~3^ zyH+fvHS9@g9z&)V0Er{bV?s0wIpq+VFoM+vu%*V`VTd~LYEa~zyuU$ljc_e}2jed^ z)YTzjf~uZdWgJ>C`>t1PB4$dERikrriy;A=KRh@j2oShwYSK5p29xjI0T?C&H^7#{ z+y>&Tfzuag$L*v1VcZ)isq78HCtDFhWWD38)2RK$H2?K3GFZF)^EAR@xB_CWP0 z4W6Af7DL7HC-->No}C51_BSyscxoZL?B@r99BXLk^$1^NTIl#NFYgz0NDL~_nWFvo z85~eB^ocpYZ8kW|iS7r~o)`@zk1PkH2H}DP!+S`h{3f1(_gfOokZSuE++HO1Fp@jL zsDk4XciajtHn@{>gwXj{^2V#IERe(=YYBj|tGKbeO__mciM_GW##)AxaAu~UN*H(8 zlxa6;V_1vK?CdLeKEo`88E{dNbiBHrfx*pnL+a4v7Li*I9}e6;fXILwe<9SL30^}n zQf@pNjC`$w)gn}kCum^K{}UuwqIf69>ml9~lQ@y5phD@uyw%H2P8Tq|O6@E-5OB># zhXLudeeg%z|9-W<#C%T|4r?c;*~!Vj&{xBefzWDGDi2DmoO*Wlc{@~xbNDD+@nU)4 z3g&~vglOm?U5a4%3(?_zHNwarA$O;MJ_BseX@YpvP^SGQ%vgtNsLD+@A_G>Rq@`IQ z$H3?{VrQt(2y@!MEGlB%1E=mTNvX86FDyjkdDM8+tgNj!ZQ4|d4OUVDN=Fg$fvGPR z!~^KJE)j8yfuCwZLO2G~O(M63kXf0K6hRaSjyoP+5I0`a+t_4-XFEQr6)RfkyC=g9jT#+YZJy!UNaq5#im9-+&oBDrxYs ze_~=0#@a$9i-uhp90Acclipt9xE2Fna&F@*G8pe>-tKX4hr(yq?S8Bp?eLi3s6%kU zkrNymnkNu3TW7y)`*+moPGzN{3LgfoSsFARva_>0%ZH=sWYqV;L84%+oNpo4*I;$$ zjrN2f?$3RF*vT(D8x5H|3b&d+xsdk?dWRN zlcW!eh|Gb=uf_iW4NY5p{m+oXQ7O;O&sSgaLIDoO?~x-%ApX?Q?tl~y^cigQ6Tw>c z_ER3&n$ON&Mgat?4ICW#AcSJ(1_mc!n5q4xOV?}b;2wj*{n^ z4Vg;FIk_mFp$SYqrcxgCHii9?<>nwD6@o&4JC*V0z{Ym~w-kFNcvc1)(W_U>D=Pyq zJ5mKRPW~YL!XylL{GVB!Ri2Enu&|WWdGOr5yii5)KRC78k9~=yaW1@tG3t7;eBp>BL#w0r-*-x}9^(`JLojH&6Mi=fVfdbzo$rx-$#A3uIb{mGt|j&A6< z`Gk0LKXxfI6nR&D5FrvXj&zaujuGrhw#@KpEQbGcb8?rn+ z77=zL{!+LDV|@s@l_ou#)`H+FEB4RqF0Q>JLM? z$v`P5R|-i!Y*RWqbT(}Y1tamq35-3Q{dS9^4i?Sw^50#(ts{x-t%zNqk#O!yVEiWi z<3|(|X;nkKW&S5I>z$pGbKvvmIGk@$Q9p6|G+MkamEPyL`*;)&24LnQ_x(7GQsw4# zxvP5T>8JzyQYCiXKKsJK#s;#Nh57m1f&vTxO0x}S2-d@2B9R7ed3tz^NMnlC9rHMB zmj`3s+qOkQvxUv^*#&tpzOi{6SbtWG3}Ojg^V;v*4_Ei9?=MJOQ&6abo7qK z*K_3*J~uav@*?f6!%{!1RuVIe!Hg_in?iAbM+S9t*$-sxq;dBso`VlQ;P?be^Wc;O zWUkokrJuz~O6SKbNa>Kfym)a?S~|`=?#~^p1cX{hG$kbq`lyMDK>3LdKZdHFc_go< zeP8qWX=v3H{EALJ6HRPBazva|a#$MtB@FHpiX9sn84y1NAq^@}c*H=8U3hy7R{iym zv9?O(Bv!zIGf`)E|6p5pq5fSJ}zaqIXnvL9eDW?iTk zl)4!yuMHPLH+hc9vbfzra%#Z`tALAxm84&oHTBK=%fP@|k9G28VYf8BmrjRAU=FCN zdIN_i=3`cz$nKVskSH!KEnK52ZQrwo=}`ngp|0LE@DRJIs$4bdDTZpW@4&cP3^qH- z5XjY?i3;oVehjSKS!WEWwfu`U_4Oej8{Y6a0Oe?ouvzMZDIr`5Fw0@q@uav0>|0>u zTk0!|7wfC-yS90cC`Ea7`I~)FP$Zx2kyJabeIJWyr4*K!$_&BJpC14-R>jQ?rr1yT zCQB%d5RXoujxfxOX&kvci>WX;O|Y4Yq|zHKK25merSoo9YRkBJOtDw!iNLyTESWvy#phjMP#E}p|(K~ynBfPe^n{ABv#bA zNa+VoS_dbm$XUc%Oy|7YU?I?$Wm+za#|9D4u=J1UGYUQ6e8DZJ4G;s^PU4c17&c5) zM1Wk7qxnEThCF2z{ydNuz$6$lVa790p+bV-i5QFaCO>}wzY5zAcu-N`)M>L(=WQoQ zPS)1llHv$q&fE6TeA}6y)Em_GDaCr=bTykJI}*h4nVH+OfJ)z1Iso5?V) z#Yq0Wi+@?dNkPZQ+^i_~d|^zJuUNbg00BPFRaM~^pF>1Ee(Pd<^e9E03lch{L>E<5$W_vxKBZiw%g@b~ z0V)oZ^bP|a4ivHPt=(K)ykQ9gKd*y+pgh*}_U_7HBqvp^k+r^YN4-4tQ=Q}<{)4t< z?(5#dBXkE|_R1Z_Owc|R8;-jCf&zFcBQ_4zhF1Rka0qpD5I2yNTOgVtsfO1l^1gz? z!ovJ~4^X7=WEoUIDEtC^6ebIHPEOhF6Bv0ipO6Pr3N&t zNRjmeh%FKLqwQ)n;wR!DQjYQkb5sK}mQidWY!Y_&OG`^fxUO7Tge_ZHl^Yf`&NBQB z9C(_=K#oj^?7a-*iY+8oW6k2g4ps~NbiU*N!|Njr2yFNk|^zp;EPZBW%~0c8gC z8=yR$9AraYC2U*-VCtz3zu@KrLEPA}m~h&ANMt2|VlNHC9BM@+d93tpMJ);WRi{HG zc4^?UH$9g?e2akbZ%~lz(t@>QA_Q<8fa%TqVBI%gke{L`a(nv*iG!ScvxAj{GS<`~5qm>IJN7cPh20W7=gipRD^? z(|kiHt28|9o!`3{15kz}&o>!^INlh}Xau;y+#O?{bPNm*MmIQIzI+>lGi|<0|A1vx zoT%lg6IuR%Ko9~de}6jtv5bQNLW8)|bus|B(Nmi;sVXnKd^}eoA&pUlQBPqJpXm7> z#6b8_eVX_w3(N%93rABl95FY8pZ~+xuNRo!fx$~}YQppmV@Q#U7n&k82Kw$mE@mS` zDmT7z#-5)k9R7icAs2A?GHtni+^tpqzat5>{JTZx>f=JBJlABogOVs%f zOlhfij7Bg;rxtZq->lxOX= z58~<=h)4S`IWf^UqN(SyJzt(c<1ar<=&M-9X2$nih1QuzjZ4~D>4lC01}y<(AskL1 zV+R`51>>Ehr0Jm{Mg|5gZEZ#tmJ{0dA3ijREmI+0Rbb`wQZZ}(2mCPb-5H+;zv(+? zeigoX1E9qMtrC3IewuG^`hh{vN3_ELJrn08ZVl)eGJ$WZwg6yoT&|&0(RnkQhWO4D zH;*f$>d)I@rPKdLAG$nKQ`0LQSDVa4IyyUH;&EE~oFGjNN}>5ybg@3et{QeQz(wY( zVVHzOz+LvisZKTF|Gq1FL1`2L@Krg*ch_Z3OAIKCN1+V@XGiu0#o)U=4m(vDS+q;N z=J%><1L|7C1QVR&5e&d*$GpS-t?-YDSYSA*O|vUqM^5?1ivhCu<7sbtg@=BSgM)*b zp2G`T-h4yB*havcz&zxyRv4~!t4L~R$+=xJEfMymJUQtmA%FA<$ zEj#(&gM4gs9j~cXL>)aQu-Y7wezhF%z8 zqH>3Erph?s`3CPKoT5{h8;r#OSEYK3*Vto6osqGT0!`Cbg2bMkjgO6e-e%+2_E3$O zWDTt1n6`rxd!DfndX42H+VSdt`f>A8pVSLB!{{U zcG)FHPtN|kdiu!<*8O2Zb!i_?0c%#wrwnfYwkQ5<45cuT@t{oHECMJ3c zoi1RejkVzBph52nq^Ou=x=%*(-=|j26lO)>$PgA1QgHnqrp{YBuYG42bmGU*_a8m+ z53rQa!JZb22N}1mC=QY3+xC3fhgrk7Z4p{f{D=(mnVXc#$a#x zFg8{SC@QQMzx<|yZW8@r%(zE&ks!YLOdH^N1hmv2j$h$H%EH7H%&=Fjrv4t!HG%o~ zV4iU8H{u<8-J@OEd7}@)R6HXC{v2=!2Z)O!;?6KgjXKo*-3c(A+W&m5jG*<;#;v=!7%|jQ%p3PFiB7Vyv(iuOlAnk1zrP= zyOM4M2g3;U3IJ=Qfh8DFr!tPlHKHOWd7}tNYy(5x3kfLpdZ*n2X8gG9ZpHe=+=hpm z(5H+0uX_3V`ua&`>Xim;_+x_Bzu{;Y0gY;zQ3aL|GXAU5wIX01xO#ZJ+mw97SMtb_ zf%oruWn_9c7&g%4i)QZ$SE0oJ@NyM@=6*jTdBEI2 zk4ZJga=sZr=*HBAjZb#@LEKQ41i&a3_6sQbalE0Sh^%i7)&vGI8k(9II%AC4qDawfB<~qLM5^U zBE7)x;6IQKa&ia&c)yycpx_MhW*t5z*Wy*2w{YILgXyBM96&!F&zWfp6(M-1Vp*6?)1lhfn!CzQ12DD+9xv+pr*hE zZ4#$!cO7Iq7G2-;WQp{<$?WYPLQI30A6HL-bbVG;*GE}l0$@x>GHyE5)u%WRyGHg ztgW;-q4(L%Xuv27$F81FTD}c;oD-YRc_}0vkobQ{HEX5j>*8W6-BTBZGy)hT0cqrw zJo*&w9+^4f)}US3% znSCWJZEPkn-Ng3=Mj6aM!b}@@aGKxBY~cW`y!WbW>I8ro{M=u*4(M?-sLNe_g&&in zV<$L#ZJd?dA}{Z9TVF|OTAWo)xYU#{Vsi}&`Ip+yH0OGF+y;R#V$X!CZdtN=^n?jV zl|<}EFRx$tjA=gaAO)gdzTG_Q)Wwo-X6OO6GK#jR^y}{9a+@Ldm8=DFKZj_o6&Z>- zFsQ)YH8-vBvD^DEEr7ebZrdbgQgEb*qR>Eq(d%;Zsi>?WSC+5-_W5&4jT^W^r%vB} z8i4H9YB7_=H1x`%f{lYiEgk9ys_uVc!f>Hz-_3<`f4s?BmXMHe_w>9+Y_@KT>(>v9 z6e17@j8s-$#h5X^qafsAJOd~axgf+;$H&JniQB99Q+8|1|*HY04WWV$e=6%7-`DxC?5 zxyVUoil|a3ir5nyFphDa2q7HYE-P1_J#(f4Lc(8ipwEC^HlVG-css-pLS`{Zx>HCe z6x2@~>Rbz(q*94LVg9TORSps|crHoh^Lg**s`cA-#Lnilxxcrpal(ZQ8EdsT=4Y6g za7nJ`OL-PGx_!3TozU50OEM4u4C|7SC1a0gqYQL%;=h*@!$RHIrAwDcd~O_nln4kL z^ncc!V?Ytt-VlOcxAl4_eDqER$^z&d^BUYy)l@7Yz|LvIY;BGW6Rjp_+P%nXCR5kQ zN#b5Iy}WRVTBFEEciV@BBse7{CB23_FuKAQCgbD2Z@-HYl0uy8bf zi4n8KzW9`AEZyAPmd#edS-=?J2M;fCbC?m*FNKLI-wc@r*#)AijvH6S|JdOr1Eij9bHDg!Yqw8bBc1Vbn z(UXl6DXa1e3*ok^Cv57}sY&TjgM-$Eo$fsXiZ39@Eoj1cl-HYeY$e=xyRLAuLRDB?JW}*9?u>cp`DJ6ifBkynN`1;$jsYTX z$4N5olU$sEva;VWkbV1dmU`Z8Po<>(iMHXLz=Ag!XnwwYl>^H&%b}E&(Gs@oppzj8EhJ>#%9TpSmfiM7EwGB}E1_%}YH|+h!1&mSd7)xc zH)*eBP`Tq)WR-bx&+R?&(AMW zqr~Qy-K;au*F1+$E_ z!*6#RH*!(?@vHCNEL?b`qWS=L*A4=t51ObLTM8MsSn_K7ND6P^Z02EsQQExus(B2$ z9cJn-Ud$*FwXj>abc`)q+n(P=NTZNxIy7edXEnvX64DX}`l%XLZu#?wxgSF6GI^k2 zZgRR#XVn9khZuSuq?tN(?}Oc9E%_i|I#{mHR~UqjcbNZPI`ncJJGI9w0q59LJ8+n3wBwRc)zTrC13%bUs7i|* zr>ERFGsQs5HQ~lwRo$9RXD(Q%bIL3nxroDW{$*e^AvH)&lG25RIuN#wfK#$K+&;fC zr3IwDk{mo)M)~^ci~v}`*`aSfefon`ZSI+=gN5^ekiQlvN}_ee;>zmk&lv+&T*?#zfHo?4%5orbZ7e~c_Rm2 zAVF_}niIzDjMkZl5JTu-dk*VJ+^0kiC zU3~dq)6q9tAA+B+nHWyZPkD)+rmqp4bU$NfvZ6#$wDN*~S3d{phVp?l!6^m?E6(L= zO0E$K=qJqaL*Bu>BC!!6tSPR@uHY*fH?AoctT-iL#aD8w2}WijEavnhv+d}mcTq;{ z_Bw^1JZo*?&Ic#wss-1a&62Kj{sK-@UstDoJbO~`9CLFu)A{j*;m_6~9Pm++?6#Lp zS88)7G|^?e^T-FMV%mQG?j=1k=iC>w34os*xO zOiCJ`)8ald&q2F-YG-XTw}LZ_0Hd0ipxtUAy&>MArPCe>%R@yaRB-2(ZchOKUM2S! z2)A6vg5}?h8HLH>96HyC6`38oU3sU@2ht&4h%*s+`_JzB@qAwS{)w z&vwt^N&n>S~N$_yU-hu}PZaxSBlRkH|B^HG`=8lk!BAq@u*E=}u&TnB~0 zgQ@0-4kpsR5GbyssK_*wTiF(~HQNEv2gS{)iyo24eDCu{W9}%kXFVmd6X`IRQsKpT z1AOulh9{89;G1Tk-HHjio$E}?3YSGhU*a4qnfRl?LHpCQ=>IwjR%+HeCl0D+K^S_t zyI0OExhe6rsfn<*WF-+AEL94+5_QC{HXA z5G_pd1k)mhUMz8#M)|}ER<01Q4(h2haiYo0ne4zp@~c7Yr}Vz1?n+BWLq+$s*T+YQ zLOW)+>cPOeVfz`7P*r+Dr~_=Y?El|z^{3YL*EogHjHwPAHsa{)IR!yV`~QkgE4DWd zHxv`|MZL0oVMf>V)CJ9BtI%?c4yfiBN^KBG-UcIkv$9HuryD2U3c5=)Mq(nQ%fib9 z|5+8jeJba7n;sOASNHpEPuI2Zx+VoLP?r&^5)c{KkJQJ}3vBx&H*Q-YKz#hVQZmME z17##H2zY|~oXTB@>zx+@7&z_L!|?Lbva){+cSj7YTO|Te67by+4 zK1wqzDJ(7uYSOaYftxmNWJ7YZUfnPnDW}MX4#>bg^1iW?-`jj^AX!jE|(84>$0Q6zJ{GpNw+!N|vHYmRsm%@!>K!XlACHcD z0E4j23k88K_em-d*hSk-q2VAOXJ2@kk+H8v*HUIgfKR2c1nM-B9c0=FAJX@HmX|SRzaE`E?0EL*pq?W~jdDE2 zaU13M^WK&E9&LS!6PbUl8W0^9_X$Rut8Lin4kV~#s41ax6d%!d?v&!<;wP7sEL983 zhY^a2Da_BOV(lZZy1z)~g=;5-2i2M?^3e=`#{MLelfaDW zBF7s`OhaGh<$-*YT;{OP$eC8}?-2)5d4;=%>yO0=3b-z5V6^rN*}t-zieUlK^Dj$E zNkMLJB+7*I8}7v{54e$F34$|X-p&fHL9pggzEZQ!b#i1a^nD?{OvkGbA{ob_E}J}= zD-&H(Bf3EHU1$paij|IiHKLItNAkPX;*repzPbE&?@lSs&pI^C4GdV|<e)Pzr|B-87US95??V^ArwRg94f-C{U5XhKH-wS-uzWb^0J(}FA9LOaPFe&2f_0ReS^!sR}NS=&~iwf?R z+^6FqP8*)qa)R-YtKw%1jDQ;%z4+7>auM?3U_hoQn`fNfcQdwWI(4{gv87 zLTi5K7ZtpG#fX5_CCg8Ssv34xd=a^Q@A%SV#NWTJ?$A2D*tGfHbl;1PVOhf58`ctm zp_|-v20wRR#tBL2WUj;YQkzAKCNPVbdEEq8`@R6|q(bCg^Kv_Pe}V9KIMk>q;!`VD zY96_6xpe6Uk2(l`=8f*e($&}yKwn9k8kehp&;4>1_Dba*=axz)R)ngSm6f53D=RH+ z*nGSZRWw{+cwX;);BR89!mJQP!V5TGG$Wp2-Z|Lt zFY3tw#?I_Dt&@N{3rF@f(#YnRM3lyrnQbvxLE(+dq^a}PtU0G7;>KsbY=;7jrbWod zJ=P2Gp_fnPhY$a?>_A!vNSLm9Y^IqSZFN6GF_HvsjWOk0dG4J`>u2pVT1D+;XSeU1 zxR+_@L6dV2Ryyd7C~~IUg#QXh9f;iz5+G>&0iE?5H}0Uq+Oc!z6n%X#BCD&*95v-s zO+6X%#eV@K+%KL?x~RW@CN55A)3->^fBpJpzi!=7Uoye9Hon#b$kEZc1!9F3urlu= zDu7|bsJwjr{1lPD-qkp(Y8o6I%uxeFEhILHjfg`LMcvF4InRaImi z_YfFGAvNdEpFd!SP=hpoyO+j54vqxS{DQ(l`?YHUDnB=D z__D2gsqT1}W2gU53(yKYc!%+aY%SD7HrG~m=5rq|EwRdDXv4u#rZ0tTV-zJq6Uw_1 zMS-a1gzMyNoHztLfF_vWI(IU;GRqx19>L;S7v?((@Y*JbR=wC)J+l+hX>ioA^`B!M zq`(!7TdeYL!S-^H{eqgDJs@DpOe;qcKQB}j*X%=Qp^smyWy8t?=!83lJ(ua3!PESqnloAvZOBFbiTq)gvuLvx*%N%92Z|^Zx|F&CH;~pW}!Dg z*eo{UP7_5ver)1v!N-bqgi4M8r18W@rSAAHR1r>N&j}GUkV0N8 zimn4<2I5peC*Wq-C%kEcrB;~s_J>l4MEi}!1$-l8MFd)2%3bv$K)I&(FNROunWTABnTczuI>^Nm0=79 z80w2}n)8w)V4XGR?3>OhbM-MCQ{DQr9FQEx2y1atMavU0cBvpHkHg8B2?{xo{Cp{N3` zX_OQfr+_A~VXlH70N@DL4G<^z)&Oxz!p1@OGFNH>Qq^nO>fYZMn>gjmi|KrR95~SN zlqBw>I+bgVVwpqG#P>{*Vxw7)|#XK#9LGV_f3f5|2M~@x*Z*3xb5kcqo`ob+Fg8`A_ zL!l^o#Ji-J*`M>iuFl%hvg+Ntn`EVfgF;Io%je%bV62NneUag?*|_RK`jKz&n@Dyz z0#oi>sUcJE@Y2B|fXn#ha(f3b7P^#8nWZmZ&bP9XMIy<*tG~IG@s-FvkxEbpKY9Fk z9VCZ*ke_N6)hyiw`U(A3UN}r9t&F7%&(edl(Qg&!2E`uQE#O#ev-rK1TUb=q)#*Y_ za?8e9Ew!{9hxY&>1Jqx=YYH}!pFe-{eL!G#@T%PYoB_5v8(x*K7p?wM+pKM0vf(_b zex-vt+ILmi;4G*1u^1U62T0IH_$UcV!(O3#zP+ifJ$~#MP?)?j<2{9e93ilQKpumo z)^p~Rrv87m-mij`mvnsRv&|m0EMdWd>*N|JMuqIf0Zft12b*@ zxpCsJA3uTyj_>w!f^d>mj+y3EFo{QgV%!?1GPyw#^-{!hGnhg_I>{B*)}(~ zEx+Up#ggfzxqmHzv?ed8nM6_SvN)@fZ8nBa-U>d{UdvDQJ*?UzKJ9jnT1ML4;Ky5= zqSd!M{st>IQ|ssJzz>`(C@z-l98kZ0GV^}!+J-DXGJQuk&ya@Kl^|MIcXZ2`z*o77 zb6VJhATy&v?cMVRWhc@|K^7vMs?_aMJ^sa<7j^MB+6#}qoF+02_5H5c{wEtIUQ@E8 zWtn_w&f@0rlIe*bF^Mot_WF|1#+GO{^mBwC)pd#B#p%+uYkVLu=W01MZEYCCZ^5%W zijcds@7?w)GvVj*$`syk{tW1lxkB_sf^-Pft=m%MKX8C%RRkFe$xjW&6bmTOwX%=AF8`zQ4hkX8#R6 zhWa8hP!Fj6VQXDELoLkE4~e2Dz&Y*BmeTcUE&4Oooz+RUUw@*?C=I=IGZWSqEL}S4 zcsBh5G7~|>ocG>y(YT5FC(zp=rb~0>GyP%|t?r^zx6iwFZ}+?@dBFinuIQ~- zU|<8^v|%sFF765_rWRI}#?186omOLxx9I1z=o?$Q+>WrbF%&y3?wwS$BQNIqUG?%6 zW?~8Rp*?+e&vVEs87H~-42#cc%UFSYJ*z(ZTyB$o{QS#|-YD95QT;y`bWzRUdSy>h zHLV_Ay-Z0UC~tkb2*QRq^wE@l5y}`9uyP@<{00260hdZr(&LZ$4{QnzP(J zg>+41cx5*>ET)>onMj_*!jbtrF$3@eq_37T+@rLRCcz5t8ynAb%nCK6u7HhaNG^pl z(^(4(3J`e=n>5LT+l=ag6BCsz7sKZ_Sr||&bvL82kujd2txeMx<=v5n`uxcgo^mqg zO5RyRW21MC>=NF0r_u_~+>I+|;xwQa;dVghjGeqNy~^9|Q!%$2b-JvaTr%I}>C?HG zI6%*S|K0(G0MJ3@Q(e7!pONMK`951$vL~6Q{;@FrOlqnZA1i(;yB=NAHR)6GTE) znZh_1TAq-A0LYsno+7-JQ554}if?WTw~A%HS~7(TSg$a!L{=7oncK(LtF+})um2n> zyj{;IuMu1QoD~FL0+H|)L16xnn|W0PhfyCY{Nih zW-YpL6%%d%?8VC(GK4h=Z$ROXkc`Xz>AIu`D=jWB1O%$GxjRKj2JZmsIhkeBM}mkSy@G>4v#?hYU* zqVnCliJ&NgD0cX8Zm7`nS!@5jeA$C>H13heVH~s>!&>=s6OSF*Mr~Fe|>7aLZ*{~{hBpl%)#W) ziL-*M?D#bqxDZ8vc}#kdmZc1!`K$HY@ay7sHMRsv;x1Zzc_BxrMm7^>Jt#u~d^NJG zd#*p$t7@1XtPtV_0oTxz5@YtAX>80MK|0YJiQf^kt@q&C&GY$ zD*{7S7|?mH08E0z94{Zl3q^Si03%ch0}8G_k`DhJF+3Defyx;K0R=whr#g2o*2Bj96<0+Zbz|G$~29qW9Q{_FVFw$9i}zsIaR zZPQSksO6m$GLeS)ii6iN<3~N9=RVAPcT$GjSNB^*1CsI5>4hI|`%?nYF6U=C@~FFC zUjtv2;Q|t+Vg#AobLKi#)1E%ppx@9hAk3G zbJu93vahd&(NXys(-_)mkrq4P=qTg2#qpQ+e;+A&Z4q#Nx6)wg{aqf2=kHfO8Y+?a zep^z}z40w=&bywc>KvJ4s&u&am;ae(YyUf0l(F-3#MVf-jJawx9*W=1LHnW}NTzeM z=DpVq2KY<9I41a$(+-9WzwTSnR@PPcX>yjtN> zmG?2-@`vLJfHJs>P%CrBTBKRM4y)1KF7B|ko25u2*$@y74`dJm z`0J@HvP)B`H53s?`SinR`uaf(dCaF5q<&_!O;PL7W# z-l!_bUrWc^PD7X{EBjtQmM*k!+{bp zb-MGd_|-N?Dt4=%_`j?yFcO{cXMCBm@`H+sb}O%&*RSs&PC)f`faeV`($Ckj4*}t^U8H=5;TO-USL@*`dc<^(4*HpdsfN!1%VP@ zJpX|2HGJ5}Ckj4JVT^Zbd7drrBjkFdOhkf4Dr_UkI~Z+}tt)yI%n%00v%8uKJWS*XB?pjFa5@tMUp|CTFbZ zIn?%yp}Bt~?723Cn>r+9K)DYyvr+$Hr*T2ye zL~zml!Sec#xTTTJ2}spOx(>b9s4wR$uW;8RX|8B*b8~goHhQu;fyvRRHkEv-N1QVf zQGE{?as~kXoI$UwzrjN=&w?T+=Ed(ne`4mI#Iy6TMQ}|pl*@(d4qY4fD=jJC!o>w* z^>Ogv!1(ac(CSa0xNO#!$@wS=r&7H4pI*vqHRaG;Gsj$hpHVZ%)lgshV2CU*Int}h zVDmkPXC6(xPGl_#a~N}Mj!T#U4%Q$wi87Mng#;Pqxr-RV`4h;ubLY<7{Bf5r!(12& zx(+mLRY{8$FJ{c-iMba!M~tJv)F6 zb$v-3#RmHLw=N#bmoG^-UDQ zEO+`@|L^r+aq~<~8J0M7s)X{9lP4zu87EkmLUqz{u1cu~x1d$zM-VTjDs77Jhc1S~ z*i`%o{0pF@S%udJU3q^d{yGp+mLX?7{DLS-h|aoo3;049gpiq;Ir++3n*ucNz`Y$2 z8gW=oxDT<_Nk>1%Q^+S)mF`~?>dyNnH3_S|p@^~+Gm(TcB54{$AUqz+849whJz&rH z_K0sHBLZQ}Y}L@zKP!dqzrb@oHOa%kQ%f~umwDTWMCNCv5=`*%?b~h4$~~8By<|y> zd-H1EWohZ}f~8wdK6?jp$`lzvMagZ+YDN@3P}||q!jWak&T9xznX48X7gt8ZNWNF! zL4!seoedHWM+uV5e!oosJZLqe7_Mmqu9&4NeMcdWXD{G5+Va4`&sfXBHNunzG6owE zg3S;KBM?@!|6GicJ3EmL&tqUnCrjhOVgFo*Wi1H zhV|>Y+Zg3^W5&=)Xt3DO6~)E>C4Qt2n#!$OS69cQbSw8@ik}fdQM7aY`wL?LVR(3* zmAYt$w!-Ix^CAS7<))H}2WAXCJPTjXcScldPnbZvSoifOjRlcHJX>6`h*AhqgU97l z=esHU-rQ0lAh<#@pC}3m;CsqHAoY<)*F(g{TE!(cJeVOut6N!FiHEJa@(Q14vo~$SeXX0JX3KHOYJ-+o*V@=Em|nsJ;Ko&))_r%Rhk}ErA*E0(Crh zj#c;y!NXNrx-r38h-*Q7jBk$}4zT$=FK@hofj5rG{|;ZMZ5@luaUBWg7l7pi)w@C&s*5?`r4l8 zO9V08;YAP&(w^jjKbBb*EV#xtVcLM;mi)daURFMMKex1E&XHFll& z+U6>HesqNwF3I`9edO@*?cBK&LPp3C*$HvShPX!`7tntcTa&{=n86F0x~oHWhyLYL zS*p(D$xy#&4Fvlz5E+A3F;%hzfX)Gl`W=`t_D)lmdj)V*0GV%Cl)%rQijrzsg`hRo z_-3Idi3Q&C{XwtQO1|V8sYoBdKC;T*-i;5C`>&6jW?DtXkdWbC0N1yR$o-k-L5_Oy!Xm;8UcXlIg=-_}HNorq=2I6TIq4b)2s#2P_jD=J z*r~Uf4y8kz4#_2C|14iV_}&1{t;%xlJxOJ4K7+n0Cd)_>MV8Ik(7lfW!Yn)3DfdWp z$9&p`B3>_&W}rcAq{D~Dki1x#F{*3Vu0Z@(avrzbp|8?h)y39?iK72rzb@0h9w89x zi9D!WL7vU%)8U)af9M~ch1d#vj4sU?rK*t;+Cg;Yfsdbw<92{Zx1?jPp zInEK9$pJOV41puX3TZQlW~gd&&nS22dG+fmZ!WU3Vq$21hnkIlR+%7WIT z4_5Nhf!6OWnlt%#%_Qe)UltgJQ%(!C*z3&+)=k@6&d(YI=qxQ5LMucgW zuP`GWJk!Z`PTNJd^*i^*iPQL4qo$}Ya>bnQ8oG`6Z+D>s>$TOE^!!^DKi*2_LHat?0CzOMf zyX@O>kc65w#^yK1!e`C2Iyo!v!0bWLV&gWf4GF$WK z&(iNSd(u&!94-X?~=kaF!`wWI4O%1Dhvo5KK{JX+J9ew>B^!uVH?no-pvrF4s*4TXGVOzxJ z%NW1^>Um&Bbz>v_8pS8Sn#5kGkQ@cFLddXKHfF%{0!&A6lm7nx(CZwoi{q>+)_Z<5 zgG<_sH-}k&l#n`BgWl)I9*4986ls2%2@V*MfrhE#jz-)8Va98d80*WJ1hJ%f0z0ZBqBQR z{pSAng-nMul}&7eTtc&gYk!!Fp0}y4lhb#SHM$-dJ^UYgZL|L)+2QF-LwQ2;zB=vP z`hQvg!ZV)l)0AwX`4@B*moI0Pl>8zR`c^{1<@oqQ2W=x0Gj>DHg^bmfvH7jrmM#r1 z+W1&cPO@8Rk5NBa?V+pD7yWVG=VAI?s$`VMuIQB8eK<5%Z`;RD-l%qi$6CtA&+yH z8))>Tu+WW16jJF zIys%Tv#&|m&icuaaPs{eSL)x@qjk~v=b*X_I&B_EFQ>Rr>ZW-mh2sOnd1*uKIx#}4+IA@>YUyl z?I_|_`kn!^QJ0c^M%S%sN+U|qES!71oTty8xp~7&1U^f{sp&#zOy+`vfy0 zUyF%hSgvo;#x^#B@lZ?d5k%)RhCY~gh3qprXWBH1$GA(ErirQ^x9Fcadh~)-ECbC^ z(>5Q&3WIh@|G8Am=q(d;8v##gzqpxoNBIf)EHq~QB5@yYGd1mDDCPw`bodE+Fh^Ay zpwHI=3V?3g)%E&|EC)?FI%-N6G)YePnW%i!i`1{2x;JZAFQ&gE7P8rR{Wp)}(v z>Qvdb&FZ|7*w;2*=j2?sHak`61AJ^$;SEjotTdAAUSlOtm0mV)w*WsoXGT|A`Pba< ze;_b;D9&iJ8+0dp1imKZPgNShV9al?l6yuvmuoqb%nAFU|8RAd7M`O<~OokLDR zl<=l0$`CaOv)lv|#GfY+O*NLH=S?s2x5wR#y|3;O44YZ7;@On46}q}!)5=aQ|Ng2e zhFD1b#I~{DzU}tMmO$OgOH2Ou-~V!RorNSy{T4}|9Jx+s7c?ul8K|6Z>|%QADFdn{ zPluPSm?yt=`-0Z+&rH0V*%a4fa{rtbRuN4tcJ85vMc@0R+e>zOaoajL>DtGg-R2JN z*|p4dNEhYO(d$mzKTIO(xzc-6+3XOh=bFnbyWGAw;`IHrqvD=`J^`f zJ22TgbcTkS=;6kRgAP7knqfa!ZI85|8`+zyE`8wq{1HCw8QTVVAFh_)#$MN}``0Fw;DdK+b!+VYlo;Hq>+Pp^X8rD(@rufW zo}8Jo@z5lpfA^G*tToo&WWQm9N?6tY*}rOMXBPab4A|h-e@$PBRhn{~Qc^#X{CjrL z&1W-P?+@(cGRZU);-RyBw{w{Nw(XDEZ&0XzKenaDVP1S*RLK}ekix%$)tr@sPdY1P zIx7U{TpIM*KKaVyyNfJ--EW;6?;rWhpCmqBz}fC;cTe7QnPg_Ek&Vcgr5wnt23^X0#Ic2Pb&>wG?#ZR(li5BEQ8*v&lojvu*{&n9kJu*&$;<|M4l7@APN zXO*1qA@sO|B)gsKTjn`9M$dlmnFn8%&Uz=&jRwVzK z+M_1t?A8{;|B1>kZa(Z~dn9;6%p@E2;8`ls)i92%wV*wDQ?vI|N%|Gh*(q=0 zAyvmUYgC@xdYrmg+9SmI>I4@#}X`lPOGzfSAq=KkBNB2Hcm96H`-_mhvx|9dwk ze+hAqySDL;TadBoJhpAWuM<|As%o!xeEQmNV#8Z%yoeWfD=+Q0vk6sVo%~F)@24Vq zxH`era*LW_sLP4YP1iaw#!jv?VX~*qiYcsFq;+Bbh@2KoI-`$$`?mc=_>TeI%1-f( zrn$`!KWcy0qjmhk4&A%kqO~SsE{N6ppQd#F-}{ltYyn8pkX;~Stb{QrC0eInv%V=x z`(>)q&f=5Xy8cyJmj!P7Xq>0rmXN11zKgPtl5X(15l{(-#@DMU>9XdVo~#n)2iIHs zDv3~;El7zDbWO(XtC9J>w_otD<~zA-Q!1WZNl%baKAPolct1&!7nQZ@r~duR4!FFo zUq4c#OGO<-c8Z{S%+6k&pnvUH<+xT=Lu)rRDp-4m?bF1Mc6JNKgjS(twEv>|spuEa zMwa^ci#nEIh-^SKc4%D2#+JI)gfgMj0&|v{Y7#YTzN+-VgC_N9v7-{*+)dS&89wt| z6SG28YS0lRqQ68#c8-I?CD16ZZyLtz8q})@Y+q6sw^kUw+&fLo7}T{B-P$z0N9pJE z6PZ3*?W3fmRNr>?2zc-AnZf2UEiEmBK-`Kp9-DoEzWzw|Td7@X1C93AdIUtTo$pw< z&#V=ju8iOB?=l^yMAH*x(ZiLRt-pTZz=P6*77xD~`Xz0D2H*Nix9Kqbwx|eU=(&x9%(P(#3D zBkSJ%eZKo21}>cX(dzdQ{jCe0YKoK<|Fkda+~6;EHdQraa@rF38|Nrhcb^c|$f8_(n z;+chAhhs&YZmz$T{BZgb{Kn*>@ACI2{clsnz2zg1g6S?Fdbl**`1_}l#n#rXuh)by z!KNa;N_fY0?^9H_enYp8qg9j9ofQ=ZN=hpq`u3natnp}5G~b3600W;OgS65E@7&33 zQBsFZaSq3QW18v~T7wf25jz$ip9*aX6f0zq)bs}fr)L%`D12;eG$7W8>X^7GUkkLJ zSTXOQp(5*HaiKIinp*JI>?co>Z>0;8wikIqTsu$&>=h=LFpJ$JXoI2Rui|-DU_?nCshFOr-!<@R`Ol6_Ankm{; znmlgk&}#J6A?7j6@+wD*EeNp%sIVx}ZvBm)`v%xT^q7zs(5sY3p?x4?NI+#ttEW;F^wNkr zRD4lH3cMP8RZssbfYQLuLLBC#t?L{eM@$8a7tkYKGWr(Y&SN;g$!~*%Cz>|Ba9_VJ zzPp|h`{rwb&Q-`iqDI`B8*NPbUq;4TGUwbGEY!g`qDp>+$CM(Tq8C{;G?UWtY}^83 zBYHhL6WS^?W~5H?PI;c2H*G>=N2A6c^>(ygdqC+$z~MRoJ@WL)l~`l59c%#q+N4R! zzNp|)kdl5tTq-JX`d{i{z$2>jA7o0BVXPu(p2tCOBqnMdvjgf7<4P`d-ymV=q~O26 znbwZ$Lq8`;W5Zqaic?XA0oi=1o8p_jDU<*Yg)HRK<{C zftYkVEKAiPzyqye!}itwfDOEZV8fGZyHH>YaFkSJtafHr(d-L?j{Zt~A6DhBnvPQQ ztqbe^)Wx`4`)5RZ4eIskJy~Lb8C<%;y_?W_vEsnsL#iJBUOr3TKkU(2(02XzUt&T6 z`eYB_=?*#h3tlhdf!e>_x(~OYsH_dn&c}wz!V0ZW|NcLI{StEOsmQzSB|3wwVj(_1 zV&bM^wrzz+?O@qtrG(vCYup>RbKlrie^iV_!ygM70qdxV?BTOguG<;IC+pCkYT_ZbmwWf^$0SODUcJEP;EvTl5TA$` z$XJA3^5|@;egD82LwC3Y*YGYvNHB=GVfguDo98|4GNw*x5Ofx1(_T}KIv3FcxXJv>s-kFs!^@W)aal4B z8_giGvK*b?^~d!&JLbQLDzQXuENQ@>U@O>4-oI;xz=}ZUXliOsnX)|2N>5jJe?~P# zhK`O7sr7Y$=jYW&B5_bx7yY%_>7GF7QppbFly0g`o_-z$ZcYoAgSNISCp*$IFD8Wa z!JGhH#XlqidwY9#cw@LfcRSZm1O5M%y@J8rDdCpENG`3W^kqMb8d&nk1yW6TjrqsQu|Y7<+Qx(j6*RE4+X4i+vB>z55558D>z9?7M(>41MAm2qW#e z=HcVGUPfzZP;!HV-6x-6_3CQuz`_@EF%a^h?2GT`8!pgeM~>)|GmRCj?|~UI#@n78 zslGb>_ar7Fe1c~M89sjGh&ETq-Un%#Pm$aSkyq%8xNAAeFd9=CH42Ixh*L7B5$a+L z1`4N0!`UXyNS6l2qwuffTg?}3Y<_n)#7Sn>I9SJT)d}eTcz|j05Zdrgp%dAc6htjT z=|EZ`#48Vp`a`4~QJ%ERwV=JfZIgaT`(t^7UBCG;72fTCAhAddBQN9T)^dHer;t~d+a)v{?Zt+P;ae&u24>K9qetOF zrXEETpRsyeP76vBQXkl3RDN*U^JdJDn0j=^(A&4kitj_4EJbiDBLbalHV8+8l z5L#7{a2xAV!W_AFxopLYm1+O$(V}Unc&Wzy6$nra8R=0kV;G8-a1ZPZUxc zl}u;WEil{d+b3&1_8IL_Q4Ov^!ToMS^}9>Oo)6&RcNLbW)<6i%;fd2 zF0l%jNby^0ZhT>lNpvVLB_bW)Zl*B zLx#!*5^V#mHItSca+Mth)70&sf6#N8ozPsx!OQh}=Z-$kB`lWO@_`xE4GmMblNR=>JEXzq}E1(p)q!BJBy72QwT#5#wh7~kTX=TT7a6qsi(GNIs-|5 zkM{nxl)?nDu3&8+`7fWX$+^DDJZIL5z>_20-uiCt-Uqwa^azMXTqQJY8wxbga$oo{ zK2()8^JsN*yMlgUjceA4@s}3{#0=}{WVm>P?((%k(U+D6oqE`B{J7HG5riS6%le8V zzj%d*mHyjXqzovd(REwi*R!)iWsIKoQ4jdw)W80i$bLa=KKei&HE}2Eqeq*~<0b9% z?2woh6j<&5CvFHMEe9(;Hyea2>1-z8m(qT!EcPYrz);x6vyPKdudpYG6hPEm* zKv|?{q;fF!X4}|463)`N`o?N$Nw4s!^?)IVczCnA&3>(#G#RD=!hlqS?}rYF&*frw z$#hmVwPhN|vuAOX=_x72&z|*m(;-JqQ}XIXW$6Q;dF5&Dcm31QO(Drf{=yKF8`c_x zXjG7}WRXU=N7}i^8z({<(f}`=IX+pxpQ7zYMvyGF8)1E{cb`5?xryWCmXtj2m~!b-9UL3$SVMO4!i8(??51#NQFgJj z`1t0Pldb~eLC{%rboIpSkv=8$&ArZiM?&O4s1fDR&ey#;?wd5L+!_88(J2t^BP$b| zb~$I%(nX85wb2CD=KT8klZ=C>SBTou-Q;&g?W>BfQ^qiTi>K-7Yq;N7Q+O--O+{Ze zYUog=JE4KIik%?;Y?Brd;)hg=kj1=s(L~=XDv2=*FQ6=@d3*fmk^0fuGiPSfOY;RN z1ebQquB=%i!Li$;XU|jc_=?*3#!^l3|IT^b5rPnM#7l0gU$05;T_== z-R0~x7dsi_fs);BEHMi`PrCY&xOW~r!^m2XWl}uM$Y^zh;ZldQ)}nHcv&sXtw)f9I zU$y6zd+0^(7_&S|nCa)|Uk(a-wrS|_sC@;4nio=w26oq|GP*&LiU7Ix2Z~!|pS5xq z=M0bi3%Yi4Rg0{B>vFrpqha(do3et>j=ipb(puwNQ&ZaIe)<=o*ZN89={~L|cMWIJ zLuIPU^z`XZ5~`F}^Y!j&CoQ!44H>%ZyZ6l(o+|e);k!3)Owd5OW~YT36Z8yu>xl^a z(;vFJ{e`_NtCGj*e-J;jZd^I#-P05azpqpEbKI=A`PC$cAKP?4J?iJJ;=Gj81$xu8 z3r4Io;>`K~(A2&hR(6Udk&w_lcH(3<&orrh12*4o*)lA$*720p$fLJbl!WT&VzQcwN`7d9ueY}5r<)Q4i?wekj8yN5c zofc!JlMhN3Wt<-J@`724ee!P&vpl!{8>Y(180TsS4XC(d@1E<^etYPzvWN9Hxk7cB zvHC$s^Tc2HO$BHzclr-i*Zd(87?x(cEqC3;H?8c`S0eZQif>YiV~V_~|7f`pgd3Zf zY`=7>*$J9Jh|#z~jcEG0yh|q`x@*Iv;H^x6cqHypYsR0NKlGx_hb7ZCtGFH>e$nx? z`FF-Wkxezm`dS*JOCA{1HXMx;WXqnDLsbE&BljsCp2b;awG_jShAh&?-#f?31~zMT z(#Y15L^b96HobXj@_z;$K)=0b)62QKm#61lcN!_Vc9T%b9n?gc76}`Bswjx zQf1^_jc$VVvL#FYEv#ou-A1jGSH`;KH1#tFC(6kInRlNvZCV=lfK#*W;aR?C4mL$D zeEjJDv;Z%}MrbD1YE{M73}&+xZB#RrHkij1aAx#oecOIr;!p3}!syN4S9|zZ-hu@D z{b=&_evOY4uM}Y?1HJM z)E_h`9O{_!9rE+ej%3E+b>#c;7TN6C*>f~x&l&t$3W|!agJq^JgKQ#svO)R&<8vTc zGY@y4x_6f9=WpNc?fNr0rv)!58}7md<0uPVJ-v#HZc_1arefcPBk#Jr?U}Ag4e0(T ze3t4<2W_A`Z8MltQ&nj~3X%Gf6l;5jf`aB~;mH2x!Kr!_sZG+2R9@~=y53l_e8B=f zGjcoAHQisQKp|&mBcg+Acc1drYnPr=pGG9VoYZJK(2DXt$w>pDoQqz! zc~w(hHKj%Ax`>!ZW4Tqq$Egyj`ACyNzU#DiQZRBoNR5h$`za}$^8&l8s|!m?KG5xD z$QTVRkK{T$nwP_v3sl8aYnK-m7ZurL+PAJ*uw==|?tVd+x;hlJI%`KCgm{RHbltGVnQBadwG>aNM^n7m&0NvFm4z@2f!lWph^Anp?^=fGPMnBTPT#}D-MtlcgcK=k zrKJbO0S6E608~YXhSo=Hge9xzzSZ1%w^saV@n)PO4;AbY^oSdaiBS_e0_nL}bQ@3b zQX?a;3Tf8-6<{X%i-)@7eU#J#9&UL?JT5?Z`Rmt6>8uXSAVOO@FasB49|UQA`#O_< zK<+tO>A{0fpFGL?8zFsw)*r1JlXR~0S9~pKcv1KPZG8UhNu;Mt&wb)Ex!O43?jQs9 zTZPGIh=o(ZrkPfFcI$4YxK?U4jKe@lEGaEW!F$)!Ul;8gphq+!t(Ktqq2(fQcA2eh zLv^*!F9qj5lFGh%8BQ+y1^N<|(IMsOR6RVbh?6G;2=Yr~g*P5H9CLgF;LG&xAVYHz zQ70$6)4#!zi+cASO?yr@g{$iq3QiC~0Zjwu1-e@xvv0gLau^Z;#Rq0^SY2ND^T!WP zffA{J%<;dij}6v!TFD>~j89lXsqLsAX(v9AZ;EZ|T(01v1bD)GwhcZ2KZc+QxO>aU zdz7&yf1;B|EJkg8{=Bc!exQ2nx_C5z3FIXG5Z#i~FEvnWEqbhOdsp#q{hT?fp})?I zEqeX>iE~6qNC;PUgT9?0bKi6EJ-J}4bcTKu+Il^6(B4cr!(03-jwrBC+tORnbe>ou zT~k*oAa%l|;9gQvLiP#eCi)D(Z5A`4&lF&7+z?Fe!XMMPowr1MryF=S-<`ozc#y1z z=TJ$SN_%hYV1+6V?^Q{n?Vu3LC7Jsm&NRhCuSPU^zCkX`h~BcYyVPxcx*tU%h(sgE zWP0d%baMo@nuhk=7k%#@*;CbHjPDFm)bb`D{N1~E=qQ+T?t2JrF|%3~k6@OczhXta zg*tHpff*c6oJ8*Gix4-__BO74Ixwe&=T8upeops){()e4&Uc))oq-PAdL-(|jjLup zC|4x+jjA-Kc-8qM;-xkBUU89Z(3>p{9spTYUnD^}YiB=_fN4N4P&I-G7S54`bRHT3#WzCueuv%y{3050E zY*^L69-x}7Z$J=d&T2Jj*x~rC9iF$3@t%?Pp!Xid46=)`QJNK518!Twqw;Q!wa%jClKdTe}HJcBM6C#il(6J6-A*cCpI+m z(Id#5kU=_QG&K*^{`mP5>R{}f-%SyFe|e9!KK7L@+0qhw=@P@}A8{SxcPCf{ItGkI zu=;?Wvn^2O>2Dk&;ApvLIuGn)+q`4GzK#*{g+&kUcy$%zExTs|A~a(&!BkoPBoW^F zbSOjKWE9-1e%`9fsZQV`XK4eL*^tc2A`x`j*S~H~?$$li*{IHMg>~cq5GOc5#-_kP z9>}PMAfxd>O^Gt|!#v1CfSx6Bvd06`?9Vx-bf{S8#TNppm%lsaT+}P7D8jjq{QH7>&zwOpCi95cqH*V{+;eUe`jPpUxj0G0bv(sjILI|nYEZN+d*Q1K%LKe7^FXUnh-`x3Ic3(0vv}A?>^x6wWOpqa%w~t zs;MEDY^2-I)X|05MB)n|lD~f6T5HS=^lEg;%Nep7v$fjIx7LFOCh)wgd-vu&U=@uB zHV9ED@9pMPGkJv0u8mE~3s{@U1TP!(7e@-W%C#_6^D@ar8@wb_kdl}}5rflvU4 z;8-I`C&CNsovzn6tfTgBOKrOgky zu$tO7>>HAe5Ta12gph=!Qel&XQpTbvBx8y+86qh{5lXZ25E@V@5-P+K6-h`bNs=Oo zXz=}3&-ecS9bdV2f7T&URwhzIsGVitGj0!HZbM>hWYMY6y_uw-oh__D@2NZ|-0Y&UH>Y<#GP!#(E( z)2Hv9r9xZu`n9gQ`V+=Oxa6Z`!oCV^%J~{zD7`$z(U&jsGBQNL9_-~>?s1kgTWrQ_3eqgK`K9bf$Wg<050lsQjYVVF@LQ&NReO@GEe!7vM1QlJf{4@eQeIf%p~G`ZPsgYAwl-2xRsGQC zZaeaPAVO&H0>eWxaC_D}(n=Sr59(EGOj{S%T(SB}nqmg6TzBZQ@*9|p!Q+~w#rM22 zMbA1oL`NkvZeUoZrj$nNzOiTCkA1(QpvEPu*x*humG8LQMWz+H|IqVANZ*mAIhn~l z_Q|;hhF2RTomRflPvx3UKxW0|ruJslPj?UBnJBe?UQ^kfl8_DoEnE7meX09~?hRR! zRos7eUWIQ(>majD6@I=`Cpga!4EKpMFaI_>zNlw};reaSLCZnoC9xY!d^jMHDJFeS=R{}yPxS}9D2s^Zg9EB9E zsPBHoTEkdmr5?;wbuwZs5UQIue=|8`p>eeHLDdd;{$Ch7lfMPnXNo^@QUi!#_yJm_ zb2d0MwC2kfOp@?MIP8YI&eYw1t^ud>2M^qQDYUoJ0hMTH8-ix&r0=g3x0<5p68<|% z{B57xfYnOD_Rdv_L)}QeObuN!#z(e`{A|muHBN~oZ|C^gUv_d=Zgnqw9QD$zIA(B` zQDW&2)hT5U+R~SFb-Y#jC#J%9ZK-O71~9bwFVP^k4s$Nv0tNASgzt=jtd3 z0uLX~B_f*d$3u=1w-vA3_ut(R3FR^`;QkyKfM7Vm`sQ~ABJi%&2QiCsB3}fkN?T6q zzf8$dqa4tq2(ED)W5D+-EG?m9)_wV62pfWvj6N3t1Peh_h9G>ybezi3Q{kpvty53S z1D5OR?EIUV1)UGu1vc0mCD~+^5a4A7nS|`1A_W*;sXT>_u`PKW1XK07{ajx{z@@cWzHbLoU)|s&CJ57)V zua?rBZN`Jn2!lo53gl{XG1~>VNk|0=D>MFp6jC41*dl`xNTvaMkx$r(Ifn3FH*Yi6BB12^5#S$8+KSYnX-f%k@y;n9i{JiGYrnXwSDEZ8|`2N$rR@b2zyEro-I0dVIb`lP?1g22h*a@FqCo(-hvWz z$YCvHCZoi%KE&B^x-yN2y}TG0Bh_l5Kr-p%wZuSuyKlSvFg=P22J_U$9)XN+i+&cIK)r<9bIoD_`|{S#scdR;&oBy#TEj{IkGNE|C*zZ(I4?iHH*I6*Nk z6iiMI&HB!8se?4}fzxrofDXNe;VveUhzVo`4ek%AOTVw;ySZ-zJLCl`2}OB_wYCn z!AvFI{qTc@h?sB{#KU%1xsVc-vzB6;ZBC*7!n}}U!sVa7;Mobm{2W}*uDuQ^A(5NV zg2a!?%J!i8fzm+y>iwqUz&i)sV2*H4)6zAyw5}y5Kc`q;untHT<;yPot=9w^3_>!_ zBx|>>waIu6Z^pTF#Q1e)U1Y_3(&bX8Kv(Gd6^gyUE#Zp?{QP*Mlwk@TgchC~J$3cX zEMf>K+%%y|gkG|<>GNbT5y58EeCN*eW8>I2vo`k$wr7x1?{$5du#kS}7>wRN^7x!G zb{v|WR#5FqN@uLV8m{f-;bJeK%N;7^3k1R+t|(PxqRWW_pyYGR&o2k@qF;;3X#eF` zR~s!{xNzpo{o&z5lcqY1)6?^0BV#AU)nxYU<+5+6OW`wRNqBQ=b?@Gtw3-8Uf*y5O zBG3x?YRrBI1@7V6S*~6CfiWJO8&sj@=F;L%H>;zNAm)r3OfE6QnLTwC6%EK_%VRqd zUETjd5{4Uv{+LyJD;4)~p5UQ4RlW*CpUlpp6SlfSt>P7&(MhDpDQrrBe_uq(XC0}^j9rf zbhZ#0m95bGi?eid98uB6oYjEB$?s9M1Ra8707n( z4etR@SJZJZCqav=>?!nXaE>yb?sI!z5Hk}b2AansKEtHv8#hU2(4eyX9_cS&9>T-g zdN-e~k*89rwOPohYl$H25>!?W z)r3RiHU}yr;tp*cm`u7s_{z(;a@K>)q@Ov*E1w?NGY`p&Krh1*5u^xoPvG|fwa~PR zloms=}HA zxnO(2ZVXx*-eLlGO)pa55RsvkYIrF*d7)*e>BtHB*e|<@Q0}Y)?omXA<+PxPs;HX0 zWXuw*dYoFC*G<(wap}^S3S$UMA%ia@CepIsAKK)Z0l2tci#Mk;2-8fqKt2_$e}i>(YbqudQ>&w#LcyjgDB-l33?i3P@*^cJ_s&& z0SLihDSAa3FRCL#I%$jtfTn<8<^1&5O`_s(C&L2Lk&-ujQmIT`OeP$|2YseeeWC# z=~)ssWBqR>rPcpgzSL?*=`tIyF~Lh*mt1+)4`0Q9BoEC|S~wtRdjC1%Ig#_z+kWMw zymbriq@sH4USr$-{0|@VGOF{WZszM(M^p=`=eP%m!8@Z6$$t&LS4gwZDub`q0@e~~ zxO+K}pk6DL@89nscfaZPEpEa7YsTs)b*@4M{%tjq@+Qv4B{B!j*Klumviga+v=9su zrnNT&a%n)JKO2#!B@RhM#0t{Rm=)UaF8Ir+!S|5#)U-^-h%{JYFB3RG0C2ZvGzFJB z7T37&l(M&A`}Q0O3E}FwFr`QN9Kpy0c!#6g zlNy=!VH)M$j=`p1CtbRzqq*hHHJ+{X(v`q|yl8<4N2LmltC`*bmGD5L-zD$bKf0zf z@(}=0igM=0!S)$B8E`g4vU0vcXjp#!UlteYWIfRC_@Y}Zj*yj}8(_KcTK!`MKkgw% zKSJgvrvkPYX)pto@2}T_(2WN;Mi@W(dNpU`5b*l#TYc1gbm%Ok?RYuxwg)M%C5w(w zEX&*O4ftE9pqiy$%<_+(Lia-bP5VG@p>Dtl)kD(XS=uNS{tP4Mo_~V5wUTNXFGK%W zeZ>X1J`fg|yr<2R=>-Q&z}D9kZF|~(JGkHW`nyLgk|+#P&5XzG@eog!z-rPMGY0$h z_UkwZz_zj{>{|vwziFOE|5Zzt00@)f$4XgiwFg~0Rz3LX!T_@hKCp?s9@iL-xprv% zRJox6M}@pka1z=r^t{po2a@zt-ld1Kmg&r%rn`ri=kzsfwnaIMH#hIpnPm6YL59<$ z4{Xv3gRjkr1k-mKy_vucc6&dF<#S8QV1sz?v-Pd-{NC>$H!-a>)(>XoJV5t?M%o6e`yb0zmzK#2D-iWoWnbf+3= z@gs6tNguHBQ>K#CzPr2v0&4p;>bux95x5t7KbRtPq@l}v<3zBPkEhCSOYSMbs+R63VEjwkNSxZa@=i_HJSja z`M9xS%`2&3`+-It?+=Yq^JnD10y+@#No9YTW$-E04czI!jnn>aFEpLfPmC8W3Rv}A zsq72s9{N#KAs+0tKF4_4=sKoMo@_TlpY39qpn3O!!E-@lqX&x=vGh7>aWIg$4a<9v zw4IV#LXv~>EQOKhe%g67n(eiaId^^mMk}y(V8}$fzdtl@^NJ25k*lvaJEoTGRE(u+ z$gXg@Y0U^K;`$SNtEDT>71s{-wYV%kI@ESpKqW<8ZWZ2i=Qo%HMVM9Ne4*U#EdFUv-3nstGO!FrYO);DJ#HXwyR(aEB_TkKb^} zK-$`ZrUhCn4dU8~k-FQ@lWMuYuc7(7*X#`*Q__Z;1gZIZ!t!S*Lv_!Z(;fExYTnWR zaRDT)f=R#$VOH2I_f7w+!Em{sHSSJL;}8Sv&g>@^#pJ#`;hn;coK{-@=+T_!2~2jB zlsbvW%1xInfr<;geDJVgUkyAX-AiYUzrWLu2UNf^&>IZ%YITOEmUBvLpb@5Op9A6A z6Nu$TsgakwdHVF}j6FV-a75re;##sLm9C30Pv+}ggV#+1q=HZw{`9llU)n`2nq?_x zJ?){sseT6zWKP$5C915?I6LBNH4D_tjmzyrSSp~5Xqq@$>B|>`w<~ww;wycpwH}L( zULX?uz+h0XRT*D4r-*0#<>gghtE(NZFK1WG`L5hZ%&^>>>Py3=7uwi7ZEQ7KJ^pK7WwA)vsA@AT# zQ$COIL4nVa3Ey;q%mbcgVZ7qw!%^_C!s$YTe@UJ1&Nx*Q2u$Bz@r4NpYLCqnyi76a zsZXm6V0U{{_Yu;ipP6s$Zj4l(6>Q)19YXj@`T{l+c1fxxa&0&`;)}+Z zJg2`?S_xdzBK$qfT`78GSGw=3_HeJK-Dfp5Am?D{NLfVNF>2JP0pbX=xL@xD-p~K;w zUYeKu1+23jG5yRZ*BtT{!_M>eI6`P)fn*f7X^WU$FG`un*aW;wKR>;+9xaQeRN<>v zq>6VrwT%8_TnCGu$kYd`L-D;*7K8{12~Rd&_dRgHW6Hy-ZQz}mwOpV^ziF)%c~igo zOid-ifkqi<4(5fx)_^4KKAI?_VS@)-EnSMA#8-0Kpn^o2g@lDI2M+{HB&h;WNDZ=x zlF}I_+_WG#B=|@N=0Heh+aK(^?;HR40Bq}gLU2gP)W|$gH)cNBkZ|Su?9V*Y=hm|E z(+mv>fWmGA$zBzY?b@~SSQxF>D)ai=#;=2}0XWHQ4q`h7SbclKdc7rQqVCIa!~W#Eetz;7)(dXvn_YC|*;dDm zJ8Exr`Ystq4>X_f{4m*}R+00KQ4^T7l&e0{XjQa^@bzvLHZV;<;H`J^<`vxDb}n|D z7|PkJcLOdD1p!G!+b<1@znp@-1Cb0^P0T(UI(gGl#^7v|z@&KCK3fm17k;V2q;>Om z?{4EptNG)MIUfL5N^0}gtyng&MSSxvsr$*J3Sqz7uPqVu&@~mjU|8tYp5FvhLQ;DjNqgv#t zJ~3)NJykW@*8S7r0RpL5qv2;xqtM@t7Lw8ZLYt+s@2T1O$Cj^p5)m`+#fe*!$7fY- zyV$l@v?CZe{~f`K5R}0nMvtzccguJ=PAuB7>fdh1QYQIp>dXxJG^U$_P3d6$j+m9C z6b%QLr@TsmzYZMChD$5K|2GewDN=q>lyu^W)y9ouYW_$|m#$A(I(B})Zq1$f7ngz7 zqcR7VO}1EeFMl9sTm0owu?)V&n><+q2rZI z(bLw{bRrgUY5WptpG~E59lv6zf)I2GmDm6Mb;lmUk4vj0l+-PisaigTtRenNKkrSO zRD@4yB9ME4y5O_QPY_0RLFfq8AFb_&qX_FDxs|(>(HrjN%|w zAxA58t<@dh-ZKwMXHo9VpaC_PIS{Lsu@V_gZZfGHl{x{HNjrK8bw(axKb)afR*+No zj!RbW<;{`Yi4m<-Ucuy?b_9Y54e=N}qxNr&3-*aAu-TvwvPZ&RV^(~+(ufyja9ni* z7sp5XVE&6o>UhT1xh|5~kvR0Aqf5flctNCB>PSbYqf8q(Tauf^EjGFnFmO4`-}OTa=wGn_pV;8GJD;Ha9hF6N;nfxtni1`bB9Rz0&u_)>E(Te za3~7UH67PNuj}h%enU_1at!QGpZ>J%<}KVJZdCl6o~S0CQ?1b3#+14l5`wWub9@&O(WP2-({?`n-k(} zsowxr?6ku%Y>PCjzV6spxUo$xC)|lfjLYq2KR~aoJXTdV!pz7*sn`Bn)BfOgMEMSx zPAdCR@>^5G^TJ9$+G%dW&A0U${!bpgcHXQJGEZ9Ki*#+jSEHib@kS}sdfIp!w2;XS z)O8~ZnFq)y0xF5HeR*^iKc2M6Kg-#AS>SNgKNd0pnAw>YM|RsWh&wVjNFwsBj1j7; zgHJ@tA;r^r=dPMwWq+iA1+$~Oz|h}b<2K@JQ&+vidb^*ul#O|utmMCJPx|6OkC>Sj zG9%`~$x_cF_cj(=?Ps_6bE3%z_+=DquK$j&NQ`uVF@>oIbxGv+-%zZv1`j_pjkh^F~eHfpldAPH#%!y|g3TxE- z`x`y0aPgO&`@rtuKYpKD%a7Q<2KfV?Pa0ZsPlc2e9w;? zIiOGL*PCp;e9tYPf7J3c9@)-#WIu68Z@ow~s&S2Pn~z9`+0CE5rrK=%^ku!xUQg#c z^#&Uq#CAQ5X@`ez3Ri{X>xSnQBrRejv`?mL+Gq;B*+Zq?W2s!ts2_K2FWMr&*%LUXJ7 zkGJ0X<$K@yfuU@&kNlwqJc_;87Jfx>Z*EnPYLA&IQ3nmb8h0-%hC3Hmc&NslEAwgL z^dhN{+!1s7mrkyH@ZYD!k0YOOItTE@s(FH+xi{ZC7+f{oWP zs$8#?b!ml`=_DyQVXw-{`ix#AY@s$0>bYjAD^6DB9X%v7+2MTQjJ)|lSY!S3GgRFE zSv06=QpP$t(vW{V=}Nc6+Q-?czpC1Z`Ljm z@-G)HqFE=FgAXx!)tcq01Nfz%@37itv8kClT(<5JKgq**9X5t_1^Rw^L(gn4*_$+R zP#1w0%&1(4q-MARK|yfm;KEP`g7hGS-ccXYNw|7{vJ14}X<0Tcv5@gUZz{Qe<>g;_ zp*xN|d2!Y8t(UC+OaqyDh1W{z%C4@VOFB^MC~E|b2aaW=S&rrrv$)!X2M@S%F|{Oe zN(q~%nY?J0#mUFE1#NCyKYDB@+~D4&&vKzQ!z{_x#90Es zPG<*}TEV%3japhp4YBSAavG8xkQwXr@tl;A6WZB7R>sQJcCG7fyMad3fgBDrbBcj+ zXnX2hvxlmqnydKqwu`6mOPbho63ue1Bq;fZWF%F2sZ2U+Ve>4)P7Y*Yr0HVmc)PqW zf3iC;7>d^nB+ew4YYpi(B_U>3a_fyR;1-l z?P6N^FeM|@KX$tF*ln&??)Fqk3Fx&cwzgBQGyV{73H9TI0Wh99b0!|-kCPKrO&IQU z5d7yy3Fmak91EGqrMa3%{3?}t{|t|cx3j{aNQ9SUw)4od$L(J?8n5fq{pF-|4bmd| zi&5TEeM!vt=B`hns1b6w+9TM0(!_~p=GI+z9L1yaV$JmSBkSZ+OLprnSSBMrm{VEN zZN_oD+1{7N{r1wGbmU3WBK6xj`uW@CN3$lHTnO)R(L0+tUGIoox(sZM%f%_`V?|wZoM%Ob*SM@U zNU2>RE9t=0P0&zcwzmucgku6^MtVu~EL*pZ@_9>70P|HaD!#SOeJ4s-aDK`wm$G+b z{FA{h8J_;4{IaIyW5sK@M1aoX(fV0HshZ=#bhO5d*$8?W`EosP*np&X&&WKNJ7eTR zzFQkv$oWnfBITLUJ}o0uXG)`F!Q=S(?kkYI3Vyu>=MVEea6{CVeJOc?e_LJE)07<#rO#(zlFlJDBZhOz)WO} zbW0tLf=|s$o8g|b^4K&?j)LtI!kqVix>SCo`ZuUuR;Az{4b6md=4YZDoAF(*anEeMq%4~+2n0>DXKi;{ydd&WCMr@AJn z`2%2@(75#Iv2VEG$HF(zkg{-F9?_1y%GjA&O6ov|c?#42s@q{akDe1hy;GHW;Gqvj zE*`t)($vEWA=j45q~`2D{+ zY$})5c2{&S=O_4I3#RNpzrI^g_ye@e5^)3?X7QuHt@(eS zL{A&GbR*u;ULZe?H>(DTAA$c1*{^{)1BMJ4SPN>EGQ*__J_f{+hSzV&cKAB>)&!64Xh8nC+R$3B+v|Q z!fu}B-wRQ23s}a4i)Vz%OeHH-GqKXD=g*Sk=r&(E-M3S&xpysvW8G^hxR| zBg80*vS@BwnauPP4;sHxeMhUJ6Glg|YKEwYgt;Qn#MXeyl^#{6a5=q8>m*||BWE@K zgvx6fGka#-VS%;2I|E#M2w5@n(^X2Um=H~=$xG?l{P`MB}4J-;CKx8AmH4;lUf?>*?^u`~Z zO-5Hbb41{j6^=KJ;)}{y(ZokVoN!Ft2`vfc7Z-tpk99086qVt_34z*Cey?*>HSg0@ z1Q~gt@&|zF$4{ST)F!37M+vD_rl!56p4>&_4QeuO5Z0S_=ADO3KdrlRb zRcc|rng9O1e)a5F!{aKs%a2O#-0JD0;c?=IV=0Kt8_*qy9ayZ`*wi(+;|kz*Jnq8w zg}0|o5lqEk#!h682<$fgPID}DjeXq}A3c6-g&jMlGCTBaR<2ak9lETCH*snCjUcYO z*o|mIWNMJ^{k{37*Df{Y3nFFB!;OrUTy^AOHsAd{Y8KeD~S8!=3 zMuGWgJ^Ptw-SuLCqIZNcn_O1nU>v$XRt=mpu4qj1+bV~Kf5)GxPnhSO!Z2rmSa2f} zJP!&N0R7g)^-yNYMLb~Tudd>QN+SFvaLeSWXCN11|C?(M3&_js#hRoFPXx}nk&nemAqaZBM3QbD94xfO1FTw&AKchS_ z-`}O!-eb^%#i=k};$%RMfFAYHpOx#obl$rgFh``!zsv+-V|)cGKzY{LX9Pced3&>w zl}w;nG4pGYGUTN`ewA}qS+iJ+6;3>6COcPF$v?Jeqv^;(`;(2+i)U3Y5D^_@b!~mW zY)wYoO}~DP@;Mlb!)+F@GJGoy_@gl~`y!5Rwr#yrQn$|P=T@ZLxCscTX`0)MG>_Vv5awP$Q*CoGi>T8Jnj!c>UNzQYLAM;hh8v16T1Ot-T=pIf!?mtW46-Nfh$ zSQ>+rE!rzU&k(OE6A&kU#1BqJ4JR_eXD14E6PW;JUcwxqiL;FQ{OIg#=ZFN!CChfr zKU28z`d@>7op)@JvkI2D6_x6MDnI)%{+dp8H2xy&ij?!d~!pUxJJ z`E|@upxYEh;&Or`3A{g%GA0i2`B0NVTS0z)IX)h%Ya~7eMH}s{>hG6JNtU?$+xgj&nS$i=b1Qu^@nm=?0;7yD@xDH}`e}Hz!JnQ& zMOfw@6+Ov;Q1>h4{d1Ew{fCUPZ+&Uk7P;hGm#)c*mwGJ|37uGh{k=1vCH)p{zJ7;t}?GG&s~_JL-8{6amY+->a8D=&Y&)%?U(lTjWR zM#*Mv_54G(0^?8WQn_N~0ywd(+J!&isb?Vr{+@mz2w;n$F={#dxdt5`0gQWDNaz|^ zP1SsBZYGKe_C6BmBMW(9pKEOEy<`>SRZ$7mGF;S$r`JF|jzgG``AXrG-qe zz1PSeTO3{u^(YlfV!-Rtd>F4D*>saRz&(X>#@bWL0*@r9NX_OGk9 z;iPw|NoO=kr%5DU7Z<0tyzNua`>+iRMSyMoJj1EJ5zy_zL>dNJNNzWy-CMN7pRKG=wdWS3@2Q)OL6I zg43~TA-NA4Z!^}gpVAi?s*hDLN1Wcz(78eP8})-_rx(i;aKi%*IUV3~5}iFmycVih zfxUpi%yq{Pe+9>|qaT?Zp5Nd}EXT2x-^)6GpMuQ+q{5jV9ye7@sJfvb44t+|KjD(( zV`Zyg}tCe(7#)sW{{` zh%g6>lWyerz4vHmc@@0iz$A&jPmY?-cYRa>Vdc@!lFc_55Y9F-%3Qp?$+Mz~9J@SwO*z-E zWxKH?p~^pzGSA)S^@^haiJ!!)TqaDMS=xChj6M=p8r*LWxS6a@A3z~Ry>Oo_h!ckH ziA&QFOTq`k6{^fRM?t}@BY<=>?FYOu>cl%#NIjG}z($W7cfF(zv%6R|5}SK@m)F+D z7uVWN?t650*BPg>E0lZ)QxG3i^QULQIQOCdpXO$rNHf3eirQN4i}E;Rfb26ahX5^_ zfB)8%??b|FZEY``a|$K-&cySL&DP|%AM1*h@>86&O&w(_|XeT=_#7YF@AUUD|v+42%tuWvd9zo$d*l1!e5Yv!eT2@xZEQm=&j`KG?miMhv zM;x!OT4MR97a6M-g?iUzg2GAHG z=o1db?i9Q5Kh%3BUEX*)DWMkEMB&oG5 z7#AS9;*4e3?KMMMcngR#xc+)LXhL%8gKHUa^|@7VlI;&eAfWSu&*{`USO6UdYgo>m z8Enr&3V(`kXP>C*{Kwa=2j~k5pSLcBrh*#5Bjn1t4S#??JTnZ(j?JxXxX?o1R9Him z{s+1(?o7Gw-g$v9P~q%?4s+Y#AF<-R-97csZvdR)AmYkFM}-LH!UF?^jUMa|`v-&i z=&&%ftT~l1tzOu;l`@B<%exJ!g2DNv4cpP{^~u3;5}L>=a;-vgm!JsWb`z62XqYV! ziIyk66xKT8E?|g;Jlz>(NjGl1tZabs{$}-6PL6TJFeN6|jraO}Sk(l=+$s#4X7)9> zMtMpZneqMKvB~N+&qXFc*_mr6}5Ea@z>UKXF9|6SV?0Y!< z9K`>S)(+f7cIeQO=g+^>q&^9oOmyZaDp<%M^*|ACn-miI*DCc+j|wj*d58Z9OgW# z^kw~x_h)|DM-__2h_4;a5mqpyYM4AT-_|n4LjZIB3vcHXy1>&1KBMvktG;Qi^HG>y z-qPRf=vePD)^xhH6%lFWeGHg_A>SkLu*<}$)W)1El!~BKvMIJrN$JxBaqq7Nca^}i!eRHjbdGjI}d%9@IqTWjP;w6fA z9H?g6=i_L(naFgbAR+#6Y5eu@#f9cFboA6&9cXjWM$V1{4K-Kbe_~j`X#l@=&xhm2 zSW@&*)(ENPG^H3|=mz=)Nr2C%{cTOjt%3rwFk2*gG-T+|9eN6;h3pz-#_fr9U((3y z#F>Ta7as3U{V2G1?BiNP7^FGgs=>MYc%bJ4@*%q$K-G)Fvx>r_x>H~!k< zZZh`)@K6`r`ghAMX)sA-%KwcI#DOK)S^)aLSh>t3h};=^{Pwb)U!O)!ozg*J%-BgV z99i?b;dTmKU_E)S@3^YzWP8b&EUyJ9? ziRmYP>zKNH$o}fz+x5JSERLW!3k>vP2ccE>h;p#{2|pYS+fKg1BbHQL%Vszkb|OF| zk7Zh^XAoNpOEAf$~|=8+BrH-65Ob2*O7OqP^7( zY@~E`tDU%5STXtS4XQ2XUz z6YuxtPDb8JE+-~f81(CEvu;cklZW+TeJ~caREKST^N0Negy%?x7cV~fM`m(fdcpLo z^CWb`c@TI6K;#?TY3S)LGWK^e2|}NeoRZQ*8TeazU@6-UdnT4GP+Sm~!B&B>ftOsD z#n-lO*@99IZZY`R_ogP|OGF*E76~gaV~+uEnybQY!fH=eMavz7t$dpO1?}ki{KL%6T#mP-ix22cHs?nZ5*P^;75Ct_AYq`m@jm?H@L?M`) zEPWS1_wJc9(=B8e7qJa2Spoxrat!ZeS4S0}Bp>x$Zd_#YF{LLSpDq1cRc!yzx&FtM z`NQFVX4Z(^gNibB)Yx-LO}81JnxlKawDODD<}~ozK%k}Rmq+9`%I9P{OG$Q>Xx4-S zSeSX+hzj|)=8o=S(T{Ip#a_X~4qRPDh1`F$f9!=87wcow;|eM7i4X`_6rX^h+UeR( zUCB~r8#$KloprNXzNe>cMc+X=&gO?g?BuT3Pur|tJ$c{X&*tW`X4S6g<{ugwx-RASzkj3d73aNM+&0YL zkbqa~_jQ5QznO(#)mK~#1N^}+J>T_Z3!c?B39vXlh=}J+YVZ_CdDFshW;2lVkkJ|+ zk?TBJ9Y)yr=NoIrHV>B?bwI&A%CAce)RAEOuQIY)l39zI=B3X*YiIRxXRgsoJ^xsi zl-)-|8BMUZPWy=Vk=0AT>A8Md7SaGh?PXASdYx++49$$EJ zRk!GIma8A_T$5uk!bETD2j?>Nv0r-RROpx~?2CIirTWVm!=D=c;_}Arz4NG1TWX#8 zC54mKTl%YOb~4_7ccen!ZdW6J&6(jo$mfu3tlGc21C;XSC0>ki+-F<6Y`jnFuXq7R zcwe5YsXQybXppQdgf%$p_XagD3q}O;k%$YmS%RSeXJYe!4#O!IJb_60&aMzKEb$JZ zz`$<&^EZ2hKB*=75xT?uS7Q*MzHW|a!}|5SwWh{K&Ief&$4rF^-1peje3WyqJgaP= zF!u5F6~A&wEr~gNDE0z#W`u)A7F^|PD9_SVo@pX1EiJM4k&&9<-H$!2p8<_`G2$~a6$umc@OsB}pr!Qhm5)9HV zCf4pT_ZOf`q|9+kNe4c$|6&_OssePLL{ch`k1x_3=>SKEEeJUMfLyO_`#{=z_2?li zh#Y5@NaWLX%me%yG_Rargx#va$LTiZsn!?72*!ladDo|YFMR5bzV!?}pd#;ihp%osFh z6ed1|*vAw;u5%UWMTUloIm1>dKIvdu6%+9eRR|5U_n0|X`h868t)O>}(tvjm6VrL4 zYt|#+4TRFngKceXsp|kaY;BbiOfEcIZ>#2HZ$IM4KF5+9ra`K5-?nq?a#wgQ{E{CF zA4UjA>Mz~lhdiSCibTw8ejpuWoJ^FN#DFj0^%onFxd>4$r7i=^O77|#80zeIt~c*f zIi+{tS+##{HP>H%)7U3kfCiKLSgu>goBVX${?P91AaB?N zRxDr63S4`Ax$uzNL_{|9EOqjmrEJT56dHrihYj8#d8>_~nM)MOe@NSZXd>ykg?}b-2 zD@N$(xFdInq(BN!k*Iy35kVa&r4Z#xeI``KX$ z2dBnA3@J&v(GA#1C>`oB)*W3TxDyH>He!^`A>&pEalA;Gn1n*frt#@H_s#^VN%%PM z(d$&YvFvj$UGo!Aj)}}tm;sErinmN`(qD<|E6&WH)atiy^MHi7K34WRA{n=R+anvRrdyoE+GW}_tnhSn&J=B= zvF-?hygst`VsGCf?HA${Smso2BL-0%S z<>;mH27-UWiBU1yLKQ__Fe9uiXYne%S3ISR9Au34Wk;oI!M%*hm2{ghLz=0?TB~4t zoNP8TEulc515pedHGFusttO636QoX@K5c1Z(|d{nM&yi6KP~W4f&s>36jeQLP%hI2 z;^35iEj2ekhUfP3<)58&&~MZ^P2A;NJuL)x|e?O+9k-87nDilQqM zCru&?femX4=Ou=skbGy{Wy$#=tV88S$bbuc4P0~KlJFovJmA7{J}wB;s-c7d`Ny1R z=Pw*^S)&G$`#T%=Rq}y%oi;`=oR?2h`xmz#%ise|CrA6wH8BCz>U%PEzKO}c2ODfh z$cYc;R=xKyB$xsWRWZ=7QYXI1Gk09-^s0HMB?=&^HaEMII(1R9e6)GQca=4HO1<#+ z>oqV>=+tS>x%RYx&hp)_+ALg1w2@=#R7xN4zp@3t-1Vyy2L@^+p_(dK)(mDt)!M`R zOkoW@MNtq#-gQs_Xr0hsaQ2QLGbVO}C+n8EwV**`+hBArj83s6*t@qAO|Pb0`PEEY zOZ*QR+d^$eP%nhTq}SgXJ8G1%%mZ>Dz$sf=T0oyxSe&G@CHa8wL#2zGRd(tz2xbgw z=_0Uoj#?xa9D4zPh9saFAD?X2ro9GkbVF%MEtl5zvqX0M%J~*DyBzc&to|1qiz<%k z^<0Y=+$h^)`yQ+|F*T*vX(qr%P#y)_vk9X>tgNiG8$C)8m|$FQiEYxGX}xYb22|=R z2A0$Xt3Gy2rK5p^MNaIibtx>?moHv`e#MO^vUvz6{g5HcZEP|e@}r=3#uv>M z9pX9d+4J*T$5r4|1&JPJA<=J4pIz0urKkEZ{X!ZNJNMoXej3{5e6Fq5uUb~}`f4>a z#;->|k8rsiF;Bmno^gJ!Jf;NS!3*XFky9Mb6|6*jWGDBqgWkLyI14vKscf7hy;z={ zv@}J~LIAAVcwN8;R8wPex1lv)s>z()3;7(*V)&H1u*IX5la;7og!}5|b_ZA28>%K~ zBw&Z&NTQ|u0jeP77cI$Gfv>!#k^zPxJ2X$Orc@&d>1@)MDphECcF@-04 z8h8tfr;P@h9B-s0n0O4By+3sR`Kk43Yk194*#g$j{-F`FiCuxe!i7BjV6^~R3X)%5 zm!M@_uSM{Z0O>d_w0!UdS>!e<1;0wM#mOP#XB!*mpPn!?u8bVVCOBNV20}}aB>@XePI%2o5uid%n9#sO%|GH&*Vwp! zM2WqXcIbTiX4iBDNrKX}Et?1&*;9T9KGGM~^4v@a$sI`OEsr8wdGv|Z2bMhKYEm`zP=;QkX%;Qr#o)&`%eH=sK=MiI zJC7f?B%mjcDTvENHTwwqumu#c0x6$eF(Uis*C)aKKxdvr}fuP=>1-ldD?!6 z5-PA5S???ydJ#B-(S1I~LsaV~Az_*L5-Y^(Y0GnpG0aEXPj=LK$`V!8`xQ=%mtz^$ zV%fs>J8!{);*HnM^T`KAI1ZK#T@hjgyMD0!f0yFc^1i+D&b-X_m@+qrR3!w<*ks{3 zB`+tZgEA&#t!#pl!9fN=vsds3=VVSp)v0o!GC-m#~r z@`s3Fc7~JmeLV+NU+cLpa1T2UHVMAZhw?Ds0g#1I`H3@^p^{W9TCAV=h>+TX0%wBM zA~wdIzfdiJn(|?-v5bz35rOQu<=40=6q2y+lvGtoYOva^pmac+(v#~(D;Uoa%J5R5 z``4Kh){8~?jhr^*i-MtZ;ZrTunIEJqPvl+-WE^CL8^RPJnSoU51PsL?3vUqaCLUjH zIGQN-JnZsj=OLj(Y>bK8S+ARReC9f%Ak|MP1C093R>0YbIEAy%+z%P+GcAVP$O1&K z6ZQ_vWImP_Z_m&-4+*rl`Z`AxJ3w?wNdo3@f$RoNxif>JsrKBv&GjaP+0s+WdkkWT zFU;)MI7@ zW4f=N``JnBQ;yH!KSkLpKIX;!j3!K)G~myKq;CM;NJiAmoDVHv7LDGWQzFEjEH5D# z#aro9lc$=`eN8E;teD%@nMSSM<%i8%Z2iu2;YX>Z+4^yP`)$1CX&lVnd*j}fNniWS zg`BZ#m#xz6Kk9QfU7T^~%?44wLwZL2RHiieQbKQNgmVk>Q&9VbWckrH)Lq2u%2?lxcNl~jnyLWg^C|FH9jT&aiGro0yXM%1m) z5K>~GIA*%#$YzR~n@$ifNGHgV)d|DOP0v0P?5vB5He7#$zspSJUkJl3J9%>G3qq>e zrvLni=1^DQJ3;?JZuyA)nNFbk+1sK&Y(Djrzf4s@^#B9{PnWL$I&L4hcp(X8h(;Mf znE*Sv1KolI?_Mvm?>L zFT1nV1=QD=bj;a%)0$!D4eC6~&MQ~00I^fKXHMMBz^9Rm568oHf`M419#HR^?)AG$ zHZW&9uNS+4ap;)O*TBr_Fa~*rD+l|Bkp-4L9#PYvx}gh8u*N?iBivc}N&yZK7SPb> z-hdNOiZL7b$R>ro+AF^15%ms>SY?TSyUD``!9hK~Nc`GNr%!G&J1HOBZ1T81ir#F# zfekv>ht5ARCxzXW9u_>EnjruI^?OFVy;o$_==I3smWh;^0-$cVcyY9jPTFBli-AVi zEH^eaW&Eg#4~b*MyIH%Xx%pL{E4|^6A#aRE1=-)kVtQQ)j)od~-M|XWmEQM|l2T85 z`^M;hTmUt-E0*f=Id!j7;(&kJPI>xycfZn4PphS=HY7TF6%~$!#SDuV2vjYDF;dd! zFrq*JUXd7!et|xJ+}N=#l;Qvf>6!W?0k?zVqoVlr(t3$(UewWLw4 z(0J_3R506i#J$7+JY{$T6c?_wA?Wqyq)V6nuz(pmnif*1Fy=8eGg~SnXo_*BpE`Bu zAZNj}C}x}Yn_A=?FS^fR$|w@q%E9iS2c^Va5TWyIT?+K1Z8xbNG&yJP-=CFQ(tBVe z5_U-kgNOL1tVtCzOwJEdTye#=bG9bdkh7?FxOr`V+u!}=de-?bYSf>`=n?{EpP|}M zcJ4%>i}TExyaO-=Ks!L6%9kapGl|nD6Ag;P^95RbJL8SF_#3>VjAxMlF+ciUXh;R) z-Zlp9xzztrICN&TLF;5XNm3Tt;PIO|2Fb2u0AjwN{y9ZB1~_J6T90WBKt2FZDMBM% zJEP{Xah8wkGrTd+;$r1vy^%=_gLULJ|6qn4Rn0iTUBW6jW}=Mxwyxct^iT$7<$vL~ z!V7B_FX|zm!$X&SdJ-c@Iy$-1ruZhEGiF`XGo{8krPoFwf<)XI?#<|HtYS%q`?x^Q7B4zw{+%q;ILES>8A_$Ud za-6r)O0|fJOgwh`_%$vsx#lBQZco4Tv_Xj0AY7HSA(p{|X(gCWt-z0F{`@D0eF^T1 z1zpEcr9i68{y)%e@}398lScO;(R<*eHORB$jG&=4lWf3{Ov z;xrvtEDoA`4vI_NFKdjxq48mfrX(#lWJr7Q`O&5Kc9n+iGF+9olxiA#MG7sfYKq;n zh7SGydlxN`&HWdrG}k_o_K&3wW>9)6EbPr$ zI7OopyIx!{yX-56)^f|~r#h`U!GFd-p09vic(%d0gmq4V?ebB1^2c7BVhr^6?ekM2?| zV#r_p;e!-*Vp>`+3JV7)3#p(8Z8&IXyNH^3|MMFzz6|wty1O$gsH_FCzLl1y@BR%B z()B!~Ep8H>I<=3!RoA&8Rp)iN7iq#e z@@81!bNP-)UrI=L5qa5bNL1d%v7NnQyq4oZMx}!%`trm++$7r5pFi`UPCb5H(cmtQ zF+aBu@AkWR9Cg`u=Bd|rYmHx+vqEa&^c2ja6jT1HZ#h5z{fD)b0$aB1rhH-mb6hp_ z)TtuaP&}W*ho5D?1eXgtefr1eqIs(QE5f$ld`l<5+#4s%{t_{Z$8_tm4_KEWI<*MA zo=na8Os){H(WTB(d4~5Aw~Uk!!VIDs{`i-LYMecM0ASql-5rGi1J-QaN^$WA5#&|N z)`S!6%U3rPj?_>51+Lx3g26m-?p%L7#QXFi%LWou4bDia{RKB$U}ms6b1N&sZ_V4g z%c;3&GWKC&$Kis3h{mcrt?Z$2bs0p(7a3k3-D`ZkfA-+0sVU5OTCLt@>~yoXj$m%Z zk1&i_ylPdx<`Wo0D1RJbd~-Dr7xa?oVi-+afxu94Fghxjd=jA>tLCl5?-$~wwZnJ+ z_+()iJq-*2SxLTO%Vu1DD7Em?6EJoD0~~<_&~1O)ckeQ$v@@AMAE#M{DmPtf`ukS{L-P|j9(Lf8RuAQMos{#h(#<`T3#W zA$44}OyGwXFImzXj>}iE#1s{6kg+i6}5bFk59A%{@19 z^5mj-t>()P9zXu9aeLpDS8RSw(G7n}V4C}90XBAel$|mepfG;nMT!f&+MU{4J&w;& zJw6B8fy>qB4<4LLNch4NB_opHm2vhfi&RjkV3Q4~_+q^l4mE;v)OszLtw>C;T>eVc zgB5;D?;h_YY}6wL%E$m_@NVBPEd-3I30wFB`YS*t_ky%2TZR(Q00j06M3reRUnceK z8_3bX(TT%=r-uii;#}1rjFAW*@G0PKc7*j9Xr+iPiMWw56eFUqB={d-7s@hPDGV7>g|URHc}&Z*+J&>F$96g+GNpSuww z40dFeal+vDYR{G7EfedAW+0ES&LDusnwrq)jup&fw9A;qOW(*h*`>VZhd?o=DkjsY z3P2Iq!|jIO@D8xFEGJj~^C!5g<=JPjZ|*WAZZ0~n*7NUQe3CL) zwoI<|XO1#76#RYl6}K`MTX^vYzXJ!NS8U*Lm)XO2V#ENPMretTIfgd#N7jDojsx|| zN&d0w@D-MgQ?tG(<+#z@Km9=@FF^2UZ6J_6&V zq2bn0Ws~Rk?%C3535L{lZ|chAS%BCWF>S}pfbfOmbAWXkUN~XW1ML-~@rHB)+K~Vq zr!?|4Fc3^vRyWY8H~2lG77h~%b$3_SIigj1)3m=@-W@&B z#$W2O2Hnx?)GaFr^(D21Bnh5F^GR=bPrG+#=tq*71Tib-TOHR6Z^S2W-;Nf4K?D=N z(|ejKyXoV;JrfG!&K=umGi<^e0d6R5Ft;cu==au?#Q`_b;fkpZgS&{pak}aM*?}5l zZ^xN~uro{k4aB5LpxVmm!ycA}92tpdf_XfTfR2_()>qgae(C@*2)_;cd)%G-CgCT} zXwZ^`Yg9#xvV!@whEJcAC67{Z9~x@)?dw-knmANM<#{$SDH2lRvxR_k%%?Ej#uhO3 z>_h6e&UDR$e?HzRJ)!(7bV^i~bZF_6syOkgB=-{^Bc6|UNd2&4@8i_)s6vN~3r&-* zIjVdMyB_PElJVW+d%wHmYWn}O@2$SqW?~qfG1hu)WuGZGMCDVha8E9N@#4tPw_6St z+Sj=Hrn?)J)qLhT3<=rYTy22;5=|-Fbi}MZK}=*{yl0;Rl!&`j(}FAx=?4!U{5trE z{W2wO@Llf#^>=ay#{ztPFS=`3&7O<=0A`?^XOGz%x zFTb&UCjrb}P|vg(e!11W-iYZ=VZ5H4=xc3aOvxa@iKr=WFO>_GO!|7M;DdE$It{TL zu0*u&Wj@8D_1tF-9g|PY-?_TGQ)lxW=MDCi(09A}8Vulyh2HlocUw+uUmbe(ECE54 zqn9AmV1ujC%i7)-%KN5uK-Pm*=hgdD*tIaHEad!R+ym}ALT%lB0Lcg|!Cm@%!3U!% zWmu$y($6nb`s^H}-am!&4|b~ZhwY!KhJoAN+~Sjx-hwvpJ7DMlL_WbjS8v>41b`>r zk_IlcaEF^4GhHs$*0Q6N-hckAaw=c9qjf!n^J$~gp`lyWta-xI%KE30vs$^*x-0sY zcwJY=kB2(D|CMi-Zt#nGf?F6iZA*|-p{R8ZB}yp{`!i#y7! zTVx9Oj-S?VNyLT3*oWVtLlztpQ&UEJJA+-2)Z zN=$s<=)(?)AP5eGjQC=jQ%&cJ%bm)jPOP9vL$!*17vpHPwWT2DWT{ba_?XO}-}^+~ zo{rIrTbCA5JH?p~hY}bu;uc&Y|0=qXJJK;NH@^|ti^#ch0}mz@)~K+^RZ#I-a`sZ+oE)Vpt*L#}xw4nf}1j zZ^q1-!hFH>V#BVnQ z2h-H=B>UQH2BKW{=%??`o5kHfP0Vckl`G^V9XoL%%cFTrc;jWWIL@!JCl@kKOk24) z@EzFLAbsLZc1+{xrzm)gd2min4Re*k?R709R)rJcB^JR3rdu^v5msQk78GlXL5|Xv znld|tuk;suQFre~mTUWYa4+uEcKyp7yA466M6whGMmvODP?X)hQu#TmEbTjTUhMkp z-J~+xrhV>IX_+KF3V-E*+qZ8+zkEJoK8eAfIZPZ-Pc+%#xE;jaLnL^=8$NL7@U(vO zh+LPm@i(V~*tTt|?dv&F#aPv2mftWwx3b^z6)OOH7}TjedRELA?R{Z(_Idbcpe_DZ zdh!B5st>TY>7@%4rRZipCZ&X&KF!~vMu;um^qGBo*|PQa_ReXM!pOm=ZpgnbJNonbF?@?Rm z2k}^AZzNF1ODWpy1C+F&m}qYwrRzz0$6NcC6+%&0T@C*6=O?o+mlG2Qp4h`kJ97Q2 zX=&_SJ1s1NV8l=4kuri}HE)U)OGAk3>cJ$#fd$MXoDL7Kc=hUIUESdouZgzv!oUh> zmhxz&a*Tua^yy{!`F*qY@iYLiYRv*Q1qfh1Mb3w7Os0C@189tSj6IT;k<0eW~vTQxRz1N%4+2#D=f-+nw)#QCp8smI*+ zOjEhA{nJZ2H$8eeB7I?B{)gvQze{i7AD$eYEd))HMmVoy!Ax3KeydM~ZCv4;Oy?>+ zv(X~o=5z&7+EZB5Lf*XjGCN!3i^`GdZxP_Y54hPx)MIUc)Swj z2;DShvMMU?-EI;~CuQ)bWO)w};a%*T-ru-n{P^)y3oO_Ec+NCdS4$2Vl3V5CGIzL0 zr*hYuuh3F398N24V8EW)r_W(VtwLfrYxQiVh)5hz6E?1j*~-!kv&@~F!}$bATDn>O z?Ec3+{(TK8!@w~oQJ38bGz{U#I0MVqerWr>qMLK~fB(LTvUJ0c$08&zVyi3VTlRtJ z_YuY+HLPmtmCKh~Jv$l_Wkecp|8lY4w5h(XZiS^~U+-=FV7-oZ#nuO^*c!RJxU5N8 z8@HoL++*^a5QdK>kG^yNTezLu^|9=#b%U8fuQVlkKk>mHgH%@y=3A||Rw{!MvEFK1 z+I}r^s8=86Gxdq694d5k;Njw|giqY=e>=#9Jw2aJ)*rlUcW*g6?;Hk~GIH~SDiDq7xa{Xj*@Xu##rL%@32By(K-LhfBG~fbG z)LGvbpIk_;%e%U|1rqZ@50kY`6>>5nqEml}@X%#v$<(<^kqaoH&(i?l1Vs$-^8%BV zh@wu0<+j(+y91)z+sAayyJEqh>AX-fKcDTCDO*JaqmWn@@)2joBz z!QP+5_{7AF*Nu4FAt~moA8iI)eRAP9{iGSf#qJnsTXSaW(Ru0w;K9?-c8>9(uk|@G zR7y%=!h}#1U!kFS4<5usM_1J#H4x%{K-k#ggM-UpOgL%;e9h+x1U)^6V6@L+&OkXB zH(IUqn>UZ6-Guu9Qq9kg%gmIOCo49Sq%>earl~lHfh7cpopM?<63H{^1SlRx$(yrW zm>44@(8*~OlS$O<)`!8$1V>tM*Ya|n+qSr$6qdJ;iQ>|LK-3t83sXf5#?U{d_xMI5 z1kSK%;lft5C>%Cu&n!vumG;lc0g@b|Ur&`pRjJ9lNJ%M&DAE_bacP={hO%wu3r(xi}olh;!9Q<2gD{pH?%F3rN$A1p@RqX56Kl znL}Tdg>Y7=#S!pteRVyK7M2PWzD`hL85*9|cK^srbEg^3ASDgd&>aW={j*iU!Jt6^ z9$%K13nnRoNQ2og)V7^CFaV_e_{l-KB+!mg7^(@(Ehn88(0J-le~AnDQ03D(uUJtA z_{u;}YFb*LLR|5tbZZsEKzfi)SdCJBwq}W4eUljpRuwl z78uKu(=%bh1bp8I%WF^u^A`{VB0H9qM+igPO<+0K9QSJdOVktc_nDCJ?BFUho${r= z9?x|Z5JDSc=DA?er~(i7!v$d_0j?O;m?$z83=YLMwZ+QH3JE7Eebcc5p_4wEyY7Ho zxc1@!I|Hjn<>N67CoADSV%V@<%%kA+CE>PX$Ad;+(MVPb6Myz8eGjCw3|R$)rvdCA zTZBIfLRJIOs-P?+t6b4Ndwv5!4I|z+@n_djf39@Pr{~ONwIO=}K9kVr4yW%GUD{6z ziK?9)x91s`!$*HDvu6y_B9nQx`8$3`m~3Ha=c>xYodLdcM+@%z%K6x-TZR_6YK4&> z>hl)`CMZ+K+*Z5S2}e2}^2W}AUy#z=js~mwiAMW&dUo00E}~nC?%nGyZ!QEof5cV_ zDU0B^;;SF27cEtHMbmx0D1^3Z{~B_JP7QN%UoX>JUbuPS;QY;T7)|t{kkyaHaN@K+qOz3;WjP4@b;@ml21?#)<3^e&K|>t>FDHyn(!Ou$~sw2+Ta~M=e(<}t;)Q# z2af`3AHd0riXYj@IMD>_Ik(z}-jlmlZl`)u^r~f;Nn{Pr7leNwol3Nmlso*_^S_>b?LL+WM9%TF*RKiGQsza6Ye zhHHuEnP#lkpQul63H{ZOyLqTTC=cXyU z28Dv&iRf7$6XwQ2Cm0Z)0a1Viy|URZJ!Qyrrw?p!!g#k}70yDV?k^|c~u-oxWE!q68m z*$iO7LnDfE2;r4aUP1Ovd};It2fp%Eu;%00mbgKpd2etbmHXg#k?VptOrwy*9k##;uCpT2hY zo;`2*YXFPHG!KUzxMZpy$$B^>gjwqo^2X2sVcWo#=)5$izd!-Q@B%jq^qDL-Tkyb4Jd@NdJ083x*!nw})L4qik*lD{ZQZk>h(MmTHj zt;5rD|5FQKZ;zCN8;poy{{rC}*SBv9>0r;@6!P9hYwIi`KgFGj_jb$n&b7+)Q2T71 zbCzf@?CeXhiqybYd$Y8EDpKt_Z?6&^Y&QrSo zc;3}u)X)20sto_DW62C^3P|{9cWDthLZ`8D-9PbW~`y)1H*$$s=d3q z%YBaz=2UIc2;tBHspX4Z9mqmox5v4jT_4g}nm8=8IBW|9UahWW*rA)=ow^35oY#%5 zlTt-8b-TKWOv{zZ7R0$Qkfy1bagaYm^G1EaE04ZBLPYf5S&M|*9?cgh0bm#OY=S#W za1WyfVbR}y67IyC)jksQ0ZWAIFDLI4o^7F>JHO~q3cLsA3AEYmmJ^7)ZN#R4JqvN% z&6_j@3<>DEs}D3T0R)F3YtX5p)pz0uLT5Bow5Omigb8FNL=*`yHgHOZ{W?H$R8BlH>g;EE^pBd0<%R1`)BFrEtKdD+pBSF+u3i-k9RVx_(EIhxsRA>6 zu#XU)1i{nP)YQsnr=p}DMQXz@L~z5P*A=)q6DHh98j+(an7?rhA@G5~94*v+0zC#C zR*vS1L8zS-yJG*O!1xG>kv>njkOI_80ex~Ih-zCzXZvBfBm99HH%wEftgcAi63k^G ztCgK=-k6hKGeFRw8yU*trh9K5dx0$&A3l9WrpUR8L{i<&Bf|y-T;RELjbt_x%+CCP zj|o63!Wpm{YMzaSAqEonAD^3v3IYxeH-|er8qtE4*WEcKTvu*&+NTO$hGXOHo-eaf zt^Pb44BVu6+K69`ew%5BIapl_>EC!&jy)h}ZDT`Qm_Y{;67xMzmZ{_Pix+!(PYy2N zM__yANYFcQse<$EB##OXot&bWoo;t`zs182VU4voR+)sg`%5MWsE$k^}oM#01Pe5Ct!HQs~oz=Vb z?VUFyh6=5rvV>>=&X)K!P(_awlCq^ITbbiJ8?hCcj9}SCC30=$Wq@C%g&=cqlG%-L z3zAiD<5H)7z0se$%FZR5?F-_wG%t)0*z< z+skRk(-o$sRh5AqI%;T^2y#MBnjhqCN`xhzhel3?2?YS=b#XtXS z!qf+SID3t!?%VS65fND3cY=`PkTHObn6d;r!S4Iz#*eqBMO?afulAigW4wCNKcTP; z=JHhbClm>a7~dvgND(o`v79QbmvBP1RFtCi2vm4^_nuJHH7VPuhc&l(+6-PXf{jhV zkOKT043cvT=`-vhEb|3K6RSs?IS{(+-JL{PMX8J=SJ^qDYW<@c`doCd8ahYO@9Bn- zht`62eD?U=7!MZAMROf{s$&S1nX4|3^ccgZ;6ZwN6j;=^)oL4MaCXYK09cC1FxW=OKO%o)Xbx#lgH9atJ+O7-RPt*?aD)ira>%mNWu!M(%T(8UQEM?|JDc+2yNc$1zR z^YlNlHynHh`{yDR;8_ZpwMWyq1dCuLk9ek;=A=m0AV={Nn+bXD|liOpbFN*!ww|-|&T6tRP8d@d$BIdOcboR3z}& zoQT$0UVC{R!W=m^ff@)~oFkDQsidy1K6dQ-e5+ZK6P;pBpsm zu15@CnYAd7bxIN&4H@Ig9Z&7h7?NDhlH!u7$`G#%qjz95buKTJ!S|*P>rVK z>y`Q?8Ux2k85C>agk||J71VJn4H%9yX3Q9UIf?pL&aZa1+?Hk1pkdcM(P6`f>uy;m zm!qnFw!b`E#YMew%OXv1srWN)|(MdqZfzuhjH zO~n1|ivsMS`q^W0qVyZFcjVk|%I>^by?=Yr?xn=6#hIsf&j^IP!?sT;a1Buh38iV4 zk1QsgM*hBkc2j(Xt4Ma}r{x2J)+Dc_%vHz_=q$Tm>xP3Lr|ituh7$_;m{R12HnG=biG;#*;?ToQRYcUbU%RDaIZ%Y#h?Y8<+|( z)}>3?N*3G>o=rM(P7ucBa>~kn`WoHhIc6O&K01ryXo!+UW`Nl0OpoOA=S7On;V|~- z5t%5F2bYas{SS58i>+xaozNO;WB`V7qTQE%e7;G;BjE`r`c6ByR`@ar{fq%I!l!7` zdvf~T+4)gzgj+IA%t0cd55=dedxy^3Q#b36(Us0p@=hpEPrBq1rUwWrN-t( z>1KCI7r>C!3$$)|{m~9Ca2);k^V=-89VbW`j3?cA54a$(_raWfS*XR(aXewcUHnt~ z6!&PCn9|LZkG##1GBTHDQcg8%cYuA~`j^CBxbR3qf|7nc&mb^9)UBv|pu!aEbSzu5 z*ou(R_v1=k{}|T<=ILF(FBME?(z0*CqX>CjirkgQ8+-r zax|0ix(m@Cyy&YN*eoWUFW74*X|JN zaZL@4^I6ZWOIN#qQIYqV%kl!H(CcWep&-NK?xNWT!H%9d7$lnD4{-N~4j)Dar-z;u zrwuuY^jo)pRxewn5;J#H?g#~VlFhB>U@w`OLeLXbdj|It@eK?I!(U9dQ5c7YhN4X# zC+!ae0VvEQC5Tq}bZdDZOhQ~7haIB-_o#`3NKsjpcA16yZ()`_bhYPQ)kloJz!1LJ zx&u~qp@IN4d3dB-U9ly86-pmgLRIyQhQm{iE{Bkco7-a9Bow8XwTD+JeE5)kh+D^G z!!cg_t@OeYjT}`egQ|1l7TnO7B5+Xazw~W#oLMN51I;qrp~EALBYtXpyxyC1TjMq zh1wU`68RidfPSP4r3DsJFsLEq>LesI(3(=uz!C367@%3z-}!Yj#lVzRY5nEde<8?m z@<+D)79I@sCz5qWepM{5T}00ai8_4ve+=EqNqGMGUdFM?fhZ_ifzNp!SPNcM(yZW2 z?htE@0NF7oABE2vk@Qc|x@6Em4zuvi?$vU8s2cn(aN9^J49B&S0YE{k5gQBR5*rf( zokK5lDj%$vCJ+6sFe6(~F3{EcViEnY173UiiKt_od#c~av%;s5jEwit6$^v~$aElE z9;zPWHpiLsO;25KL=|vi2pwx->*;UGrTkaLBhVP6PkGD|eM=ii)=5ICktObLuN-08Y`--dmV>-n`jQ!U*t=>p=4B)m<(2 zN9P@YkU*!8v`0)(W8w~iWOT}@d^$vwoEba61W4RV=20(t`*yX0S9Mci$0ON4k2d!$AidNWTZ@GV^xn#wuYI1ih;>-o-Ds{VmfUdvr@i`3< z$U``^m#zEH{nlU;9kr9wc*ARjbK=bXdOYFn@gd%TTERdf0Tt56d(Oe@P!-t{B_;ZN zP7tnPkWn-p#H7>JDyESpS}1ZUtAG9ag+p%@paxoltdzhDimZYyYq&5OA&OFBHcBA_ z=SaBS^rSIn;qV1r0Gz@15#gryNao0dfuzEOhM1rUC(%#U#ds*y7rkPcIHrxmTq>v zfxF`7)R5eD1Y|^yEm*gfRtrWKwQl$Qv&&k)84b5l^fOwzlx~>Ym~n9U@$oZft{Q{a z|C!2dblvP+m#B=i$(%|4;A4ATc7^&=D^)&&!QTT zm6W_!*D^?-qXGbuv7_{_W^vcAUVTzt9$Hj4wf`x8%Gp^k(v#TT+9YpWg3iiuQrOwE zmbSJ53w9T4OqM*#5F<}K!w!cJ_tCAR@<4aSOd&9X1LX)BAd3WHwQ+qD!?-XAT>vQC zmHjTjF#xSJ?RH)XvP9#`J4P-3D(e*|IB475yLU4VV;c!{J#UOD$7%DzbN~;e+6Uxl zxT8j#J>2KgtOOo2k1Mu@;=T2chfOnjOzC#dGB$f% z^0%Rr1;tBhW#sW6tQ_~Rw8*ww%t)QPqXk6V#$nI86yHt=PYXD%Jm~v%y5d+B^WR2)DYWGdT@9(6IwR36&Zxs|`SR#ai5yjmy2hV7 zci&+wznV8E8p(0H7fTQClvhQ?uU=*F`*c!iGZHNl1SZ`6k1!VsWjFNpJQ^!6X#-PM z;ZmEUU2kJ$S-*|I(_jrt7cZupd^Qs3_(4_&n*$Hc_ZvF9Q$-JuBxpLUZnTb?&$;pG{@o9tM{5t7l$9A^vix=m4PgT5(v<^$y z()i^WV>uIut>Wlb{KglaE`3p)>XTL`U&zS#<@{V|C|ZX$?5_F*g^jS8wVuAV zFFHwUm7(&_?4#sEV(8vU32(YF{CLcrJEO$ApBIdMxuJg=7uk7@eyZ044vl5A`+%dAEe*q&_-%B zk>&N_rI@gqnno@DaPMmHWsmi85{5Q z>SKuu0N5}rCg@)>-bH9%PUYjN++KONhtCtB@d=C1?3?>kh=JZvAf5TWRq!w#Ig$=U z3sDcST-61^D1p5QE<~VTLA{r>T}Ta>srtshfRnwhZ$ z4AKYXI;-hu1((Q36t(x^k_WuQgI!r*h$pBdZ`Qpwg;WRHddBdGeKpYuBxS_rJ!KP_yNV=Y*9`c3Ul-@J%XFCg!KYj7LDX} z!u7mI$zSIX<;)sS!s+ha)xRRNT=Brrl#^TY&tLK!J*^p7O$ec~une$aT!1~)!W5Hu zDf5b`M#uV~9RLhrWJf|m;x8`a$&<}tLxrcV-U^^60pC?6rG5|s0|z=eIu>FK`_Vy& z5KZL)2HFM@-b{%=qdUX1^(v>v@#6yqZX^e5oS|grHEhXPVL1~&QiXH+LWK?x7k`_) zzE6%Sy`~_2=R8JXqzf{`vHxS$37|ay5lU5MF`n#fi#rE{EZCr`Io7Pb_o+CFLCgZ@dYQ{PnldhI#XR=0`CA z$$Ht1Mg?Z*&LCnEVA4l1_^;R5CZ4#1;X)HdA$CX@DGCbOfz>#A9QxI&@-j!S;gXVw z0D>r)sp2r_YD8fTab>({k&vP#jPo=!4Cvqgo!c%{L`2yv3DYtq9E<)1Odvwr{UJ79 zRA%J&QSNEvllO9DmM?uSV*)rbW)5m)>B7H*LxSD~2M^U3cnG@jBr3^-guzGW@pyA) zv!~*48-`z;N;_}|r+t=1DYl3hKN`n|GMY%cO!rY;Rn^QbsyWD3ga`pf(u+t!4snd3 zDn4Bskm*~`Zqt05R^9fd+c?HN3kw_hoC=1|%gT`WpgJRQ+A#Vl`Pp(liL0|dS61RI z{^Z3A3NP0M?@*ipUSkSIo(D=5fS3qvqooO@6eV|yU{mm`+ zh98WLrG5!qpYjs@or2_tAM;YKU%wv}g7kwPn39S%Qn*+Qe^DdBrK(L;&ZW;qeV zd2`IgeIyJ61x1J3JJHY8jgD*bR2OgBbSWie8ya{0g=KagTv~37IFd;Q zyS8fXfsoFy$N@KlKVu+q_d#XR7!;&^uHQx~|nev*peZ-#vTw>;)B4T<-HN4MtU$dDt#qyicI{iM*fRztfQx zK7K4X+=ot`=yxqSIquRW=5?`?nk$MNiuVA|l(KQ@*~L5P|FBg;VQ6n36c|{|^pcd= zAbk!w9#(HK0+$)oHS3bk!8NiCi3hjZ4YG#P>sIg%;ei4mw2+0wO z$(x1EToPs>VbE$ekG=ipC`Ou+BSx&UwG~`6>HI$EA-y(?HnUMWcl4+s@HeNRYsD4B zdg|);Qlz&>e~6v`ri{m)=0@u;s(dHZF@-Ii*-n&t}DA z;m{7SPjPa?TyPbE`esMxS>%HQLvs7Kj@|%X%zB2zfNzK!E`V za?@HE9UG*N1Av@_b-GKppQnDX_&6dWJiqq6^9}eXNX14dzG|BPHi~BEMj$f(`b!m= z0vjq5Jg7Ip_T_|;$Jd2%`-AGI45Rk zYjgSqDjW@+OuO%)QvtR^-7BQnd9}Cl0}%H9^Tu#gS|qUdf3B}5NXNa~lB|)YQN@*g zr5V%#WxCB_tbYj^GPsqm-eTcs*l19B(op+X=n_?OZZ!OJ{Z5?7>$iNnkF`otd^`=$ zQ}2gw-==gIe*`(EH_GJ@bSi6(SqVm&sb`MPqX9t{%J#(L68c>CD;DCzHAHVrefi=A*%nODrn6Fui`8b#cv)O*sw|B{t**9~QGRr~ zxwOc@7*C&?W$mV1j*mCGVnHgCy}hPu^?j)3kDBTv5i;|JWdFi?WHGhBmFjoS@3_h`UduuW~9h;$x z_8d{X&e3AS{*LuQsbCa6yi3;%3H$KjBn5?@Q;wIj>bXHEcyrjHIi>hn`V6WcfR$}K zcREkiWo~P;MhJz&$2v{^am^YD8JSJsnd{e|3Jqk=K`xXzPWY7BH>C>($8<- z?tf>Riy)W>HrK^`55#=n#kIAxo@n4c$^2p->jvUHtL;N~k@j0)R(=99gtg7 zv#m)o{;xwhR^Yhr_^C2f+W3B3Uq2q2ww|!m8H;)nt($JnU zHr@Q=oj_+Wa>l;DRZ~>E$G_7l%GmAi+65^dRz$<0rpC}2Dt*&9^CwsOcKkcNk?Beu zm69@*+~)5MaB_@5cRd+%)q9-#SDog}93rz543ioLvdKTO@2x%LKZair7mPW{5c8&~ zJS>Q(tlyZNqGfna;^5Qy zuQj5tOCCv!A2Y|`zGP6m{v3y} z`_0nj$s=c`ZPZy`)cPpw&(7xdZ5=r;Tu<%JT>SNq^}JIxQ#V#v>eMyV*$mt&*LAZ+ zMu>I|e`WU`leklO1U}o#=Jh>LskNk;ad(@tRL9>IKP3%L*6k{DpIqQ(^K-{2-_PsH z(>7S|K@9Tpb*RV$D1>HTY{LXXY^bDI&6 z<0`wJ-18~21M#(x>N8P)CZOT?Q-%>mB$-S1?;R{YSEpzS4#7Wue9XARd4pNVtB9`= za-ut*+0T){Z5;v(updX@i4lDdFsb|N_ix8?^uXYClaGd)%y_`Ge_cUn@(wwNBG8L#nRNlCrgRhv zxjx`<~<;5uY_U(VyXc?H|D7iuA0poMp=WH?1g>!oK zoO(P5{;(nDR3shN44(fCtz z4b*hH9!+vZEp$aP{SWEOho~DaS9!QHBXQ~jk8n!0UynBG&K;tjG~1wHt&~`=Nhg53 zeT$u;*&26RTtcFw;9^=?w6liLY`Mt z*sfTyQRa|>p;QOKkOn6=dzgEaxQ|Tf_B`8hvi_}i68daKavB~=5k)JOFYnd8+efv< z(Pp53pN+X7`F7~=uaen!8r#a{$c|lK)7EI|=q#>P(yp=!s=acK5K~2|hxRGlEj|_% zj%;49gLl!yQ|M!^X04Lfl9|}RhekSfZV6!7)9d?86fZXXqF*6UIkDk-wH3QfL}z=Q zeq?rwPU(XKch^w)ZLoZ~)k4C@e9|;+?T|uyumZ@Jy$G3wgF4O$@ z=~E`I>*{CU?Fu(LSEJSJ5f;Dt?~ja`(b&;v-Eb_QzpA=9eS;;tTeF8Jbs*`h8R16J z_o`IaE1zBb>yKBSE6h31?z9;*;vB40Wz3hCx`t7YE?*w^@x9i-!X-~Mj{jPDD*r7UaE_lV*eCag5KA%c- zE4<@w{q-PXh|32usySmc;D>aisbCvSCUsmJW z`@}T$^xnRCbH%~R_fX$5_o(7}_8#-)lPjEL9z1%~-)7w=8!OW9Xwu()S^axKAECmy zw1$0P-7$eZll0#xmC44(sl=wZqCLt^Ju`_YiaCD$n| zakpGvKjzB?MSJyO#wA8+CF3TRsmZv?ZY)o$(K;Y^dBupza6y7&a@Qj~cF`D%OE!!oXQwsNtubDvC}qCfCc0s4 zTs&KA$9Ejj12^m%aL-asqH>q+X(RgAGcm-|eb{v~F*M(9yG^X-!ax)vXnHJe%@R@a z;lsK7tkGH$c#)aJFJK`Zuj_PwRvr}hs#RLuR_N@tUgnUTsQHcyBPwh>!t1mGyvzfu zq@CYs1q94iTPT$a%ZIA>$sCLCaczG(*d_G9+`oMKq=T}0J;vt{z5W*z3$DdD09y&F z#XnwIMRf)CDFTX>GrFTPb?}iqL1ucn#(R@gx?9=mnx_uI~npCmxGM~(iYIQ+QS0T*Zvpo`Sl*a;^W zdVbmSb|y_Dx^v!|*ZW7q%F_@k{c3dfUbVb*nuo1<&>np6KWBAzl-cf?EFr4;Al#$+ zDEE_*0=;if=9yVJX{N9%ohA`zG1!3M4_E~*luI=||p zLSjeHwXNB zq)?u1UqR--mTV8(eD7-SKo;CcM~}6r`-M~x&E?Sl7#rrf#&!%eDMdiN@ptvEBz!QGdcUMrJ){13-DL z)@MqTh+ofQnUa_&dSHWPMxywD0eF+>p#8#+t*(utg0G=szRN>4n;ffa^VCgJG}4m& z;kP!8{L3+Z>vSWA8Wdl<%;d&4++z;wwXao>JbUh(O`}D(uDUnd=CS)5pvdjo=a$5- zPd*dla7-pN}iDb_1-9#tS#+usD;xh@OTYnltmrg-Z?E>yH_k1k_OO0MnJZ zQ*axY_V?9~afmUC3%1>zzv@g4#$g+dUAcP%;42|Me!ES?nKMmop1%6~)nej5B2ix} zQ@rV!`y1#|>T|5uQiP0woT?`DXlD!U)hhdIY6)BGEh;uJ*cDQ>g?tF8;HYB7^#F5} zyp};p);HatVsKIqRQquw>rdlS?_Z~aZ8FtII9Bb_9ey0Fy@SzdmamB-@BWwP9o8Gd zkUI$p{%Y*mda!7oZ%fx(;?MTs z6kCG1sXho42)V=O?%9WgP1YqiO84Ox&$^ko!?eGjo`ns~0~t={keJ&|_xd5JnO$SFaEb@nM zWYX!793K*5q##)|>nB&l+=JkwE#!qN?zyIc}o( zcR?+!%Yc+U?ag^p&pskj;*#P+#E)^>qF2?{QlVwPNitCsCQ@*41-wMSmxU@*PNMZy z*&U13t2>`9TMC!@<)FAON(J`Ew+QuWw6LE|OQX6JOlgJQ&A|aN9yE_2v&L5!b2ll2 zHa65RT927Fy3<}ONGHQ*?tJ{^C)UCDUBjryF_kI(JX@oG)SWvWsPW+98b5q!tJCYe z3FQG_`5U94keI#)hy#1PNn^8RP>jQBitq@w3}GAMNZcMLvhVoOnY+F!{Q3Ii9}_}K zUJVV}@G{M~pHkMZj|pB`-nT=US&Zg%xGnTg@86#|=d-ZkiBaIZx!*_TMGpEy^mcUj z`ri>X>7KepGA(VMht{qP%9U9rAl%m>WP9->1RPqA^U@xkTBzVO z^}(=1&5x!Qory6lyK=#F_jU6r%SXp`yU~{Ja$>GuH4~nO78Dv^P+U- z{QT-PbhJN{-voTGQnLI+tZ=J90qg7G{Ruiw-?eWzex$oM)l}UVjOo@Y4tJm#vw>+%?>fzu5 zgE1!qM{_^!v^{c_HI;I1k?bW>`)`Rsfe2&if(X)lJy^`^s(x2UluO1jskacfX>R+#v(Zr>_|ow9w}72ldMg3Z|E*-F`oS zlJSyEn&Yj+f;Z-0m-U>MK6X*?{Y`K5j2to&Bk<&MT-8fN#Ke$e9^KQE;+`9l?~l1| zJt(|xoT0Ew?%BOt!H_=A-KK85#db$4>x*fbnboyo#qJG^g35^&d~p!!k#V&`5ZLf#{bkRyOFB~4*BSPZ`j^rnI)=!R!AA-xiT0( zAm^%bL7L;F3bWM{8jnrg`SP?{7||zdR22=Msyh$Pb8YjqmCCJt(^Y{dHuOGtcTd&i zm?Wz*_YYJ4IxTA?(KFB0qT_<8#d}Jj4;CI8A}b>Ut9$*KqvVH4!?$VvvwLrlzZTk~ zAk+BU*{EewZzK%VBt$R8Z+`pk-0e*_+_!YRNjO&Z$o&m9OTkwZ@1|07B>Z+pZStDp zGxgV_qQXLWdbJ0zqbOGMzvMQKe(3%Ns(C?F@fy|EqjN{)k?TXn9vYM1;z?!-h45Ot zp8JM;Juq~yLBHvgjvJ;XxmmQ2{CvF1wkT$Bn~y2*1LJ)}ts{Tx6Nr zdytn$R%y`E7a~`C`%$46)X%)Ab=GyIqLf9<^;IRITlMpgb$ovyUwpzS(6aeu_l*H= z6U$B?n>fpJt5(gf3XQ@*C*$F+^;!csAu;Ia!PdoA#+g4%BL#Tmi9Al@4VFMkGtITn*&n0Hnjckctuh@F1Qy%y>AQCq zl?x(G>LCfc+JHF{gc7N9rqMMv{37KIuS5k&WF(c0bjJ+w<(3Is@8^>pDeWRg-T>xMA6g- z3Wg!!;fcsLoSpILITId^uQjS&L^iOLRW2_Qbfu%#tyBq)TCEmPgM4FyrEMnjgRsA3 zFWkAKD?4yiP-^QYk*k{0JD2S~7iv2`syw$e)!k9uJbu;V=XM4KMbh4n{T76(-M_Yc zSb0+Pxmo`j>En7z$*r~`H`X8R+pVIpdi1V?>t)ux3{hNBd+g1zf#d2ra>eT=zgQ;u zc$5C@Udta}D85uw7xiH3gLbb@*foIeQ~4K*>dI3#o`{dk!dsfCCswj0~cc_9P zvwSi#GT8A$Y;pnoSKk)k0hr5{sEG@tvuX~=Jz^quzyQ;{Z#;?mkrKCuZuu3`J$uZ! zxGl}CqqlFmC+14ss{GPC@V4~QNAt8+_1GZ0Z3mmxL#2YlDQ#`L3#Zikh?#i@?`6M=&MMSNLadS@0_%u2H?whc*#e2_J zT(o~xxaWRg(Cd@cy)VDh5;3uTec^1k%Zg!>E4o!KnLJDWyq&StkF0aye_{ioW8SQ~7yYLEmoUYIu6YUspF?9sY3njHq{2 z18i2mugZ*09C|p#Xc(Br)u14qMJg2oU1FVPcx`BIO{w;MvL^NPhHFJv=EtgJ)m`~~ z=iUPmk=Li4h7^nFCfD{J8oYg-N=J6&+-=|gRtq~FJqwCFsNL4)T3+AEQ*EthSLcpS z%~k6Dca}l6%-q`kBIotbPapj7^W&J>no~FIB_3;D%Ppar5P8_EB}?QpLvz0R^5>R} zWk@A^GX+?B51pbqx0{GZ#Kpx|1^FHrL*X*gV#MKF$9FF85m2+ZnxDZE{pM z9hLYp=5$4M^7d}V4>&It*;FVZ{c21G!5@6vnk9XCo95NT3_AiabhAV8EVy@U=S z^qx>dhkSqB=iGJfJ@0$gx7NMiS~sjLn162+3~Vc%bymN5De@PX%Q; z0@MR?5R1^`H^eR=&|{E->?7wjTiu!3p zrQiY6i%EBAAyLgYD|@>Xq1v~~>NRwY?lB^2t}nQmTpKSguN!QOY;%}gcel?r_AiVF zB@Y95x`k1@XPJ3LCG5cLMf9HQt@mL_jHehqaYWy$d!tcylruD=>n;dn@-}b8*TlBY zpj@YPa@$KR>*u?oDp%_|1D~C#gydvx4GnjRL_84al(Sri_R*uMoL6BT9kSBW@EXG? zcklM}2x58zn75Ooqhkyu*R5N(PG0~M%6|X;-LgB5o`9HcW2{*7?c4sl_ie0e&W5CM z&6fv#VPRos4}fke8b(IVj?>i@#<1{+2wksfb`l3lN=nRh4U3SF5G!k>Ik3~Ans@Q> zyE-~{kTBiS@$m3)9XoyHfPQRx-j}oi22Wm4u;xxJJ<$EAUBBM%QJlt-J2HIp zd@;%@J7$Qz@lC$}prcSm->QZ-)>kBN9hfxd%i>#Y?bJT2n(0rkm*LzRAMKS@F;7!~ zm1un_bSYKzX)4kZIsBCDFZ5F6HgL>=B8QfR%XV9)nzJ~txcqc%^oo9oH#J=DGhYiscsf^={uTo^oeVe+9g<` z#~up4Amij9EA_O2+WQaQ49vHIRV9I)tddB1HzFZHM`=tY?9n=Te*RM}_${qXn#1s; zOl@mRauDc8-!mb*qqe8*68gWaeOQ@zB=|V16!JVw58>e)H-mvx*4!KER0^4LS)F*c8*V&mAx8~ z2C-`&$`C`7O^4bTW)u3)Q}mfXck#qVyO0#t%jmZXlg+=k-0 zQZZ9P~k@p0^Na=;TUhq=8tF}fx4ht zgDx1rqcERcsi5=7H(;rtrRC+x3S$T8?AglAewBrLtLLeccOHrXs_MxTvw?KMl^dQ& z-umIhsin;oQaEvr-8L+r7|0L?RB6?mk+b3THS)qEhCbK!=qK;J*yXkdipE!3^-i-o zYHFXqd|9IYQ8$Zrm?#5i;xepX;UK)3#(D$mKh$YMNXfZ(>3doJ;lqbdpFWY@%H*u_RUMfT?K zVL25IOVNmy{Be6#|E+|rT2aB^_t*ZhOt~b{PNP#p`H{2fscBV1j$SZ1#)%ijc2grx z8S!H-skWn0FcFVsZe{aX{A;2ShqK=8FVE2Wa1tZ+q@*Nr)yIZ4*0GV~ z6cl#}2nxS{|J;AWN#jH`IDew2-st(tpN}XRC@Jml6UICkZs3aWKqqjCj~!AeO{`@# zPW<}HYN6v?g&;4eTA{Lins_Ntu@n>#cSqO-HD_9t=HoK!CGy=X2;OTHnVNj_@*3?p z{r&QgrVIP&Dglm)WJy!c1B~`!8F4$8TjO9+(ahZ~;8)+It02QXn0yjM|sJYOkQM*xyLUMlasizRe4;CTZP257w30Bd8EO0OiZ~%cEg&U>YJmbYTGo$HG>g8hc z$x4CepBuifG|YItU_lP`zk4xkgAWRgU--EWh+*BE@@-MXHui9R=%iWdI#*(-tFY@Zd%7+7@|r6VpKx3AKRj*gCFkZcOUUE3iF zwD~gWr5OO4cs^%moAkH}`R*;?6VU+b!JRv&XJ?yO|8gA%0h*yo^7eF~XWbiY zIDgZ?&63n_+>JfHasQvxH>=L^E}nPwZY~1W1`=evF*(hj)>X`Yn-lQMI%dGq4E=8K z$oy`Qd@}${)DN2*%M+UVPa{ID95|%~{+scB^!?M2DVhLm<6hd0nOd;=r}0GV#%i9v z{fB~o8h@7DY-=F%jfwN6{-^QB_zlfcWWT9-@K57|y)y6&eDB7%nG{TDJCv0476PNG z8Mf&s|DG~%TK~xYH@~Re{a0gW|0eSPC|%*diDdli|EJsbU&(vPm78}DG^Wzo**V^H zos;vJhWdy8uV254CK8m}s6%IdZF(}`Q1+rHn<5u@MfoKsN3wOyp(PsH<2NA)clxax znX!Mx=OJe7EUb)|Gf{%E|NW1t{aVQrpoJRX$khzLq#-sv8;zdv-w0O`MNj{Lmo;eX z7H|}ymiQp4n?n`M?587+*z)F2xd)(PoGn~{Ze_2KO%D5k&)taVxolrjhzB$-rK)yqD~VaqW=s~rM5#QxPDuK zFTaObkkBMwEjy$Jjr{>odnzl1NEiYw-1@)|w6yrZn>{ulS3E#uwYb2WMH;u%X7?SH zL9IzcN9WanI#C(Jw?cJqcDKCWX8nRR^Tz88_2{!UhD_5AaE=X3@X~w-)%fQv(7znEvzKo~!_9kL?ou2OyOHlK}eG|9_`c)Yey=zl!@{ z4&L@jOFRE6{|K||F}fa7G1=?H%X!@fkQNGwjwhL^joY{d(k=uzUMr%Zqh6e{aGm*? z{1yMem&U;Tf~Va}hU?co>P%l?X3q5;Hdan2O)+msmhx&+lZ`&P9=(2#XwR zin2f|9pmPRJS4ZdW^12&APb(#Tkg*(cl+dDvd0YsINoL14a+oh1I?E=l?npdszmgtw z#qW2Xt?GWw&iG7c)nn9J(txJ8BD*Cq;^4PNfqW=dkA$m;=_Fxv6xOSW)|{u*nC{_G zpxZYo2|{P+21gMH>ghXyI$HYc`bKAS9?eRM&#q5nL{z&qU%ni^2O*S|b+4&;#^He3 z&wth``|y^^8~;L))-Of)W*1zP319wxy03ujHP_NIx-8jwsPKox!07ve$}(+_nkDfQ z)wpOy6)B|Dor8O~i^3KkgsO6EOYq;lO6>3TQWzMh*zxDyYcSK_=|jHo!LSc?am*2L z7u^oje*OA&U7Vvv`Mn$(x#vE_GquG=@tXRnDJ#}C+TIjy`}(DEx&a1!si`gXmfT>& zP5YjgntBs))oEO5;?-?$vx6Z|?>;Z=4{#(?@431#9T6& z)l3_4r?xLv8kAGU;Bc6!wM&i;rfD-J+8(cAi3QAuwYmXKtXdebO&mZt z23SwP2^}6DURYQN4FyR{OShOn#_eNYFH-~Y7~+D0oO1LJ(1PIGZ{Gy|8UVy(T~VE! z1`ib4^ta7FQQ%RgpL8KY;VI~4x%nr@;LAFugQ0O05Fjt5ZS0?HuNO z4mP9G9HanKyVQvzF79^}Mztm(8X$lT?xMGKxDB0E21eo1(z7L%)6&+C!zLBy`ZtYA zXjT)imarGPwNV2ONGM?^f^DtGGWu6ll1|Dvxg7aNgl{=uo(BU&5c2iA9>!pmf!y0( zak-h2+aVWjKf~z^JG0h;%Ohf2N;fe)@^7b%46w@Ev_`m{yi~E^fQy!L<81#Ujcykg zxFAj~tKpUkE#jiM@cfZ(;OW-R+wN%wFD_|4`1gR<^RovF{Z)*YUP({L7XFT?u69r% zPq-F-K*#IuSh$kH6wO}kf0a^|C*OZ%rlaqfx88rU=co)Ovh&+oO&%G8W=!~TGruDwZpaa`;f~f=_c&+cAUR`V+)+cos9d;m<<-TtkKMjBT zh*uQpz2jhEkJwFdfCj6%UrjGoMa=m2}~zNe}09!jpG^X zFVnlUM#mWl{2cI~_mnxAz=k2^kFTy~%NVcc)k z7^A(e2BdDR$nxR_$2_$9RLcyuD#RdGzeRfx$l7(vaAGno$kyOH$yif()to# z$lr5+2TjD|P`QbSPg!j|ZMiiVdp<;1r|I5Dn%5OaEg0DGtIDGL)1%+#u4A=ZlKXJb zo-w;T%0udIW)Z7+scbEmbJO9PRF#^@6?~z~rC(pn+Jp?9<%yX{8lWAo%aU@i zi4&^EhT`TBa!?n;6#fPU2rW19WTrF1Dr3LYHH*SgQkD^MIR7M7h>u}v&&Ro?Pb^$v zx}lvq&VX!wwSwRr8ZXx5wz)e?Pb5YZxUe?y-u?1je3lHPiEycOYIQL9vSDZ_4%2P|H=GmWG>=zCj=TgK3s^IFZc+BZWA(!O*BMirzp(Ttem7?KO- zh54-e%7WXyl*t@*zWOz4JMMr$!Zq7}P=ZvMLYveI8(yAmDdgS1XCZ0RttisC_Q@3= zLSn;|KV2G<*>EmDaw_+%c57_A>zdw$CNsJ2S^wjQsbcm<_S25xUmwTL8vPWsxh?=D z+P6wsMU^5l$6bg(Z$2K4&}!JUxNs=9&7yEJrhUZl z>`Ti<Nn5u@q`LqIOz+{}ZCA+_1cnv+bKT;# zgMlIxyBQ_f#mG3Hl&pd9`^R+L06_Yj;DjL|wPVxt^Uz|U?##|Idk20V(*-aal69wWOLipsb&RZaF_wx zwCX{IJv~ZcD*W|+7j@w;Uu^!#cIwAUuhcuqc@j-blW*bbo8mWb9E&D`eo>?cBFc@4 zGOVvWYuh@NDJ*LaBwuDLL>p=YW(`$oY7Y&6eu$#swK1I8q~w~>&|-f!`#YyF_U2w-(zt3S*6gEEOY%OB;18JpcOo z#^m^Y8>I#=sq2%DoUGS)nm=)l3Si3b-;%Z5`MTIHABWDIQ#Z^1^YK?VS5_ z`eE7p{)2-&C4vrSBH|6sha*x!+y(A;=^$(Ts8$jQq&i?VuR*-4Y$^U4)s2mdckWD?lu&uhx!+ze?kdJ-N zbNUt7`ew)Kaq$#>lIO;JJET`lZKvE^o-8|n;5kV)+wWI6I6H-$$oO#1=DW<+BqUXU z;ro%L?`?R{clG7J8((5c=1@m(JYf@7X`80Rg>6CN9z|2#uI1~U^ zxec019`BT-6be{3#vZ8Nah(?%N~*@xh@ytRR6oSimThd1*#?JXdhJ}>P-J$!5($HT ztQkd0Hy?fz#Lo21*1nC>-I1@sU1QgG*POZP`;JcFBXe$E;EXTGHToE-3^8%!66HX4 zJ_qr0FW5$J3?&azW1(?5RWjhGJopYV^%VNRB>YR+I0By8*wT^jT=CBBs>)#r*=?FR zb$ca>SaDk6S32+dY%&pnmqO!P*y4%RG&Z11(2=gBhf~^Cm-`uAz$SZ%EuxzQ+UA8R zf45!Ygqk~HAwYRpq^e}yuP>h`AFFdZbDN5eZ?c^J;C2l~jdJAsJUvNh;b^@+&+z&< z_}YrVVaVhNd)X1-FYJ(LX)f={8pH%WOmr+R2=SIJq)=D-g5JU2oS8 z;eK&=>JEQ>ebPe@1`Y1^Odt9x=g-*|x}PIN?2P~?k=>@^qH@}iJGF1oRj*tprc*;p zOG{7hYjU!n(@d=*MpDv7uvB*_I|J&RPY=q`QLy!xrWeMtaaXZN=a!V@vSzbn2V4iT zg9l#6GLTXFwv|)N)Y{jva>WXjz1rN|OnzV!MnDo5A5TI=L_|zX{Kp@AhlcOUEMK z)e(-Ti|AhV+y&75zv>E3mKA|~>mN2na`Qna#(<~X+*Qk_Y5O6)v*tI}bAv^72>^J{ ze_~Nu4ogPKDJdy9w;n}|0wKstA)dS3_6`^ri-%?yMhp1tUTv8l`|R$RwpRkd<4X!l zOUvKMjljGA6)JlB+rtI`BKw3bA{$_(0=z(Hr++Y`|2z26www`qxHhDnVRz>Tf$?Y~ zQS5>y5SXf^8X=+lv7pl=(=|vgscSG0*8h8C>y*`I?UcBeZKgSSF~OOoH`zhR<}2 zmV6(DHr;109PT5TI_;q2!gsy=FGGrZ)EC{HT!MC?jTRNoWVGbTV>U-$0#hT4o*NcQ z`C65}Nn|T%SAM$AcvMznYgW=@X@4=Qld&sMEP2(Qv1>Zx*H+Lh(`WKRna*>!Ovahi z4GoqwS4dU89-KebkN1iv3Jgk2c3}jKnP@rWTAvyR+6d#ud15nDx22?%x!wl2Z#2{{ z5z8<%!9y&&RG%`QvLb_bGQ`eU9NbUV;w0g5P1kXD6LGrFXx*>rPUgm1i0gdEV}zx| ztZZt&@kov6W*i^qyju2|k&|6Eg}8YdH7h_)RfJ}*kSk>-5RzRKCsPv=4Us_EPRrZ* zl|dq?IfEHjy6CHM~)YuC8i@@$BQB`V}U zlyoFq*uj?bm(&(Hsf=TWo+|&Tuq~N>rk(cz(H$Vk=lW0v0hCH=%-ME4uyCd~>X$W@GX2!hEhQalg4f zNVA&{p)}(F?DlREd}BH_c-r_g%x$ZN2fcaxgCZe1Qjfn&@@l_#C-VsWT6*8&SI*D! z%hPkb&>K9p_|QGqF0;x1L^A7O`$cQKTt#j?g`zdCV^PmCs1&vyz@ zRLay>3l=<|aI=3Fk+JDtzv=!ir0d81@-W#mz#<9%1UIb)5({f7eBIYb#cYa*) z`@8n7osd|a=;C!lRI}I%%hd)_o}i%0<*>wH|9qv-z*du>dwK@hU45~!Pj89Eqe6V` zPjW0`7g3k>@z?$A+T(fD@VHG)2(8QOVGi z556*4Pu_ey6pxlK=X#`lEHg|GE^A&+tY$RvYd^#dz@^lLFl_XuDE+;rb*rVs(ikvj z23-oD>|w3O$SgfE2Hu@gVWZlB>m6J0P|7|1qO*DyDl()gn%Wvdnu9`r!Zo z3}bJ;zkp=Bn!;7?jTBTCu<1UaK5Ta`^>6YkcK|z@-QPOxoiJc{8BLi#!G9NK&1Pe*P>v^HDVNmXuJUUt@DE8`rmS-It*>J%TIMi3L^zka+}}Dn z#c3qwwJp!gpU=B^bQ>X=g;?2(hc=#{aVLC{#yD95UEsnDThpw)he{kyP$aho;R|+8*)`G^L=x;8}ex)D)Qm*^(Kl>$mI-E@TmN$$3d2G z+$G!7wRAIFV_OLFs1RR5hzG()Z%>^VQqAn+f|)wpF52GxYK``ltA4URcl=^%`BW34|)r&YYcDdUR);3ySPr5J2blSF@j%nl$f^u!(07 z1?@+*&eTE)h-lyl6Cs=P(?VwF@z)WX6eFjT4s`TXE~6ZQk|5A{ED*w!u@Zb8MGZa!$XU&@Svv|e@Y_;7#8lWrB3E_|q~B^cy=T-Kx6MG{9D z)p$|bs40cpNnmF3gB@g9@poLWcc1YWyu}^BiDZvmL{~)I_7msp!0q8}8igU!c5P!| zX6%9Hq)O&FGQgBE#k;*5ez~$2&oW2BMJtVS*401JdkN{G^(o5=RBBea1q-Tl?q2gF z5ft9T0(B#3*YGA*5iu><{(yn*hhIuvyAR}IaC7=AFKp7~mNXuQQIHy2W=te7t@Ynp zheP;T#q>C$UqdMFl~Co9$(2gGmGP9l`k*4aPlzQ`&%z`g%q#3>_k}NMrsK2c-g9zO z4@ziO&frs$6_P@7_gh9|4&~y0Egof7FFX4xxQpEW0@P`#l}8Z{B#lBFe+?=yLRej6 zBK4pukLFw!l!rLE)ZP-c%T-TWk(V-6Tyhy6%DyFPi<8XJCXHn>=cq1W@;>~TyLCCA zjSa7!z|b*!#2>t)1&j4>xO2Jz|DfYAy!KL=ysP#l0T?V->pwF;?Cx28R%xl#X{O> z?lm5d1oQTWSKqam?dToKcs(!SE4PF3BaD${DzzgSGLw?3yY^Q0aT6O1P@p z2Tsh|@iPY<+ln<(PnRkVml2cC!bUoFt02TbSbv7XkA%37Q>fE7Z z%D8j7@EvTj`OtIgFU+V+fO~b#eL8Kpnf{OGU~A`);_?It1;{rR$iQf6Vc+8BryPX< zEWuTzOsBNdoQ<8Gos+Y_w>MqL$sqqadGgO|dp$_Dq>G|5m$X$+Z~1M1pFFFQc5tbX zDH7^YK9djlwoTtXXr*X!FzGd}et@&xtD1&ILt{oqZPRF0ymgNU!T&ZwkU%h^f2UW0 zdM8J~iPysWj|A<1fZ<~4Ad&dsGMK z+5ye~%uWBUn;K&p58xnT2qXrZLuV(hu2S=Bf!Ou(Hb+e)`xbmq-OoOGt>WB!DEMmK z13q@xFmpI%Zc`Bm|G}jbY%{nHU1}DJ)5!2%<7}nCyMCWC`UQmh5r-D1e(+i)RO;i6 zrRrKM4~aJ>WqYWg2{L(SZvXOm$i6tU>06IQ37~*W#6__@U*Ogc9x1ib-^no`C$8mF z$9$8Bza)eqvm0G-BYE=eZEZ9{k(1ll+Iu%e1!HP_9wOHUu))Lg;l=g{Vn&Rox_sEr zmwh?uTDz6Z#}mTBsx-jy>!0dG2$L>oVKa#gDS}nza$qSut2Ag z+RK`p^A}}N(W1vV39r1!NWb|pY$vkm?)Y3q!(m83nZs7??WM^E&7u0Za;3FqabLf+ zBW*BIEj_rn)J$wDwE4{oi^IZfa|TV+@$Hv{h2-?zf25@qH~oM?M?%I zG;2Wl8?`Qc*a}F0!v1u81^TJpm8@)g(nY~{uvW4&3fmcjAbvCEWO~&S{Bx%TF%2HwM0$lF(Px5$=E(cerjk!#yhNI1+*i>%#_ii*_2v7i3u zS}I(;IReO6Cj+G%_J0TMs+u|_e+@A8eR8}nXAyE`@3e1)`LJ9LOauW zw_HJo3Zw;pXt=E2PL+qBch10xQ$AEo8L=~E=rD5Lzwm$=r<;yjPyV81%+m0mmf@NA zcRh!>kkD8fwCq)d!%(yWM>X_6*@R6DT@DLT41Y#l+Yn;@h6hhS8TH&))_uJ#D|^ot zcjQ9tqo1_ETJDQa$yXqO8>UemN@K3ww#eIcb{_l3s9TJ3cvW9vuSq25_P-ry60b$E zCPa;t6I;d4+jEgC7-j|`Wq9dtc?3(P`XnL#`g9Hz`dYGaWC*2M=7u7z*OOM86b~k(+iLDuW=NTW>hg8%7Y>OL^~HvN^;w z`H)oDcI|dSJn>Bg{RTT6n2bp3cP24ajHrvNkA<*1fxIr$6J=AhpC_6fSCgQcF(ALSi;Q0h8ijFuAum{(Z@_n>~mG-%Jl_i zh1|-LHMK!D%S#uuz6eH|5(7P3aaYdFX{EW6$VdbCv1GUxsvJenMM@gW{lp;EC1rzH z*~Hf1bZiBg!D;W>*OA7?l*=HwB_v0Cv{V_j5q8y9S7>OI{7BuQy`2g#2a{t!MkSSj zzC6xAGJQGe_TjhgH)>Xuy-)SlSW`>AL0IqsRgX!kdRcVC0n~ATj92iF_|}FHLQ#SB z!@Flh6%9KFNs&8@1)OYS-gLvIX6#Rc~F8IGXCkrqf)t%F^L(vevz;8)Y<(GvNk2d)uz)XYj|m*=s;H3X z6XFmPvV2lIcPn8;L;v3$*#oy_n3|Y>fdgo;o0NH)pCnP|Yuf7;F7dRyx>P9iPless z&4jq~gMP#hA8u-_8zl>kqk* zwPkNwd;8rjEFyc0O3U9?Ri!@fhdM#`wxc{lF!s&aJwMv|6LxVaK^Do2k)xf1-6o|N zscZM;?(X2s*8R}+&WU80v#Fos7P!!OE|~RVVn1*jFX#S0ak{4H;ef&KO9<{FbULNu z=2buyF9ju~wUw1}hEVyJ09BDv{TBb@W;VgP%cSQVP~r__Y)Ub4NSV=j@7ALkyggzv z&D*`fb-HB|Sfmond%t-qt8sml8(HciyvAuXpQluMplKa+fzGWJkjkM+`oBsK|A*oU zG7-p`V~3o;tp$3ZRQmPPoYz3C4%7{@1EL6&3P${c;WB65R3iaZf+ZKz=|CxcT@=4Z zAi*lR(|m8y++p(l_2a0G>#VbmsQOPmKJ`SxG)&z7uHMHzLqa|nKS)dN9g<9+6>t+k z*ptQR(SvdN;}B#HM}T?ixiAm=m(lTf0f&RUC_j)Nwys*aXh znO6WDYgDY*o0A-~3NTf9~L8G`zg9KZjMLc_k+KV|OsOiLlqJ_pI9D zqL0!a_+5-|Z)xI)Ky?y;3caU=)gAql&YCant=W@cgV?GauS)f0iDug)K?O6K&PS-_ zsNIukxy&>&NSV)m#w?mCe>(yi3-{~#GFidUJlyQ)3fqSFxuy1*h;^1fBBCiA&llWM z2{KPK-|}>5+v3qlL7vrHw%1yX6sNxSS0OHR*6j$g92Xa^0)KE=N_arab|hiv;a#C51i>@#D9%DET#8eI=lYa`EluzXW?vxzvnc+aGaR$VgJ!>2b4q2>GD7) zOId$az|!y{3||G69bk*FF;0Pt_{;Hv8GoNnpS8!lY1ZWyM={sar-lWsmj>&fsFggB z=5PF6+lFteVz&;{QG|>Sq9=8l%lyzJaQXuu>m<*{^<(0uEW+SvwFNOd2ICefALg=i zbM0@DRtR0Y1gHr;L>%oMGZB0qc8zfxI&!8#G)!u`%u@#}EsJ{X%LLDf?53G0zkUDy z+hW&f^Fu1e$Dpxn*VlE-u2LfX0f+Y~k>e6f62OaTKYLY3J~%;B_SOvY;$32pUk}OL zSkY3<=#KdOrtltAO4@PuvX9FF({h%~BR_{5-O_|rdt%S$rd>OM9pcI;QbI$6qaP-Hi%wq2h4^qm0X$oOz%8OtcYZ4%<^ zorg2h#EnS_89RcX5aBM(d!jc9|8j0A_=b5fOB8MU=jR%>S!O1t`mkAIu-doH8R^vt z7}fVrhV_2S(SBgb;n8?i5+I!udh)U66z_zE+s}H1WY)t2Iz&HzG8(YH(jdoWz`OQS zPFLkT__%c6RBCTgNY%(am7(gA|MR2a28&8b zAcb|vXQI*UVBn0>f1gqCsD7KVCJPpM>Z|DK3A;%7-h4999_8P6KDi5?K91!@KBXlJ z#_^ualBiB^A31ny_qO6{o3}D7#?!CqLb`}z^JuZSH$jfmDbp<}4+2gvWGe2D z>chopoD8Y_`$F$rQA0U?B2B=O?8h1J2h6`PPP?O(u5txgb~c?{q;sed+|SB-1i=wf zNAQXa#s)7%%G4~pJ?3%a^5UYcwCj?(f1lBllO~e%5G(^ydcyeyDd1|$)d{>7*a+YF zVtld^WYb3w4f2g}nypX1vWMvTZNXB#(Mx_+;vPf!#!b2?=YIW$X8BZ|)x!Ss<5@X7 zyTF%%zt9ys*xG*^!wY1yNsV*>fpZyu zJ)ilXJ>9=mw7rI`@2P@jn=*6y-4FafghlwfebiJ&*2*8q=Tq`z&a&iQ_*l=7ihyZ^ zojpgBm&-Arwi9yXdQ?VIKH#=Pp@TW9;V;4TIS%u9Sai=3P+poy7-5SDxS87ORR;Ht9gpa5}Tbr+wEHIoba>m-2hd zk+LzywPK@ROR)(3t?9 z8tq+A1~|^O5llpc-`r~ZV|&$R^K^90afrjIbbVq~f`y4Go=4(Hq?`ccbyGtO0%@xO za1r1DtRwO*CPx1V_4)dh<|W`XxDMQ0HUO?60Ca(hq@sa~gMWz|y}Lo7LiszZYx-=y zHyOkLh|o)JH8RFA?&F7saA}kbx<9?M4UI_6kEcagd7=l4=SwoV+#vc?!6k#n=d3 z&G7gH)LM`EvDcK>==C}PiHg&Q(5u28T1s2lqxU4JNs)J$dg0?n*$#X0i^O-X2>kZ8 z!|)b6Vs!SAkuHvckkfmHdha;W+ul48agwMla^*R_{k=-dG|mvWGQfBXcOtn-C5%~t zC^JlGNgcl#oq|ts_jK(3O*mS??S5Rhx4dV5dx}w?uc!P<0wF7#d zC0O(e&&>Cv@F5>zK|-}?;tZDl-b>ygu3WoOUb7X7g4Y^iE`DZ*NY5SFP?Qihzhhddapkx}wGooqV~tZpeLI_bta{eXaydKOh)eZ9Mk>3eFgl zp*>O7wP0{?aP(9UDWC(bum*-;G-+!x89`4?-?`dVlSgl3ll6_q8i3hS4%L_TMd1`dPsz_)SsN z=Ii3vq}NTtE9qCqhE7DaGypi%>LDm?T<($V{>i#jJ$Nn3Q|+?^LyqyRr+KLG-yzkI z=6wFEoM_T<`kji;h4Gxk<5Ph`S>45iO~bOzl+on0`gTK-!ZhQx+aI@MlK%{Ah+D($ zE@zpdt0+Y0p65GTgudoTFQ9M38dkR=*G2qSHguKZC`$`xwdK@hM>cbB3CP!YWM8{> zL#?lE@dKHLvP7${wjbC~k+p!@(_hkyjC}mC`8Ta_`q|sRS;kK7oJt==N7_qf3d0^B zkBpW*FQjH3lb3}j(p2x2a#>t%hh)xJ{(9Ig=oByY87TX(wT2>A8|#(5Vg|OnV^>l|>tX*Ql-H4a*5J0|gx49+zJ)S@ zyI$g*6f5C(eCS+X?HAt>W7o$Sjs_lRn;C}8fpxKMWgEx;J@QW>Z?%Xr_I<;Z1*k-7vpL7U0L7&={JGUOXWZ~XhCIFFKQhN`5o z_{PSlC!Eiizy4hN&su;SN$)Rl|;@CR5FKd-S=J(CTpOP7rDI!(lxvO z3cjC#wL3f1EWb`w<8#)*1VfqkN5fl)ZB*yBB^umN!ixQ5Xd;6`r%t?feiET=3cdOq z^uqguK04j`x#M-55KNs|`g8;%c<-KS?U?Squ&HD-+jfAUcW+G(YMxU6VDj6*2$4Kg zc&dh^xw6A=zzMxJM_-E4a{YnvE~dbgq_;Su#+D+X464_wKVMTZ_WRp~WjO=aZ0JX} zFoO2D(LS4hUxKe6@cK3W(~RGhOaH>nG1aGE7VqAsqV~7@Y_(|;q4}&*A#t-siQ#m| zwLXLAR&z(kSZHs5{lE5lI+arP@U+MM=qBE(szO$Ntu6cvTV7t4k&ywuui*BrTbGxY zz`Y!uQbC$n8@*`Y0=P||^v>e;GWR_l0eoC=>K#KLidEn$&BBe-lc^f=so~co@!5Fy z(_RxnyEN~6rg*;bfCD!2M-l1xtVh>Zpa^M??{^mD^v~Zn;Q-?VxGKQqxd%fNcLF~J zUG#DN?SG~9MhO(^0$ghPed`VIgG3zam3iv7Pse84nW^4|WwYfJZ_^}KdTpN~l{ zeTSbfaT{GMqI*X0TT7*_r~ub#3k+MHjZGsRjD?uK)nVZX-54PhG+}iXlc!4_lT^VNuuAufwi66TVo**B8gSlL_M8IFkKq$Bsp_iZnp6k z58^fW zwMt+Tts_^rX1zY$&J%3ud|r(cLLg>9&4%>;zizT8=zJ^*b}}+DcVz3b{Zf#LiKcu> zv`=p$9$sqL_no*UBB*&S(onV|4PMCFY$X{M8M(wbE1|){^simC=q5~GBadu9!xwV$ z2~6Bc3d2&o38+W_@K7>)>q2_VeR$qbLmdyhC=R6pa`J%?k6VEIama<)&>vQt-;B>x zhC249#&-E{JUPd~X`na}f^jI|n5*laI!QL=kB+;(^6nFrami@tR>-?`gHzw$Vj8!r zQ+y}un==vYIs$VkW38o_9S>dkRy+d%)8f|O{~Z)F&mf8eR^hpS8>4D;(Ep3Eetpdu zEZ)4Ee=^wP1|!BDfjJ0T>o{RkTUzAWwPGrOYkAdNT=IdRv_$azR<2S58ciTzG4t_* z;8{q(2?I*ccs=AY(LubBOWAtuL2CBfcha4nYk$gWl%?)Yi=HwTJ>6{~poxlWqlmyNr43 z^t4((Nk*v`9`1uDnc20HyTL=X((JbL z#izWq)J?pDzIi8ZHw)V@uc}wG*1*9ixwrQ~3zzYp$L%XYF68{@`mfL8cs$3l{0zvnzXDh5H~?6oQhK}&={mb=DDB<<$}1wv zYuilt`Uuz3nv!_yo%;2uq1dw84#6sL7EjIQR-;(wt3(_bwqZ%`RP~(Bqz@ zCj7gbApoQGr}RrOs46SR+NB?X(TuBTQ9#jvLfyZ%kU5ZQY8e}6^{vjd1VAUZ>FMc# zFNq0olc<5ztne}3_}uTz6pB{v2e@gDs#rG~4KDBZf9XGNx=Ir&JKz>`cDR+?Ip;sy z6DLU%CxI)NQt=2+_L07-dK%w~NgI*mQJkfa^cXLeo)-1v@uG#FMe`Qd0i{muZo(46 zLJ&$2XMmTNmorp6wQu^YC%6hVS{UnEe+syS$Kj*r$^$2J7KL`Mdyd%_2JP5DKJ`qQ;NCTf1l!%Tf^*AOeD*kzS-D9hQPf@6vmd-g~vso3vo4 z3etP;1gT;ui{3$c4ZWA-%;4JV+xz?O-uIl}J@+3$lDu!;ImeuHJkNN>7%3BlygT}l zEsA;mA_s|Gn?H=we5-_F zjvbKRTQw_*th^EEW7cOF)Q@MjK1Nt4y`!wcE8&Q6Z;tl)H|qI?n?Th)1@yu0XCX^9!%lRCtiQUw0>Y&=lx$e4!;Wx ze^A0Y^*cGE(2b8;0$aID5+e2&4ZS8Dz2cY|4cq!T^f}S_(&m+^PxTHqZl8UdMP2g$ zBr&t9+q$r=*$zd>nn^g|1=2jNatr|WOqHIV4mBhVXqkNk?=GyW8kw~l-P1sgS6Cup zETIByt0vu z+E%mOE){5W9p1NMKB|stgYm{TYLDa zM<| zWY0Rww4a)Z_`>9}ZkdT**HEl`7X#UTA8ElREWGJbhtIe0QS{MICw@@NCC@w|X#ePl z_4zK-`j?~qeLFLvq4`mx2+Y9?{FS;uaWM_{qPKc1B}>{yXl9N2$HfKW*1qhKNX=GL zlASP?-Q)S;w1-`WK5EQso%SmI-!|G@{Y%s2W`y$dvnSlngU=81cp4fSBq-g#8juz> zo~|7qyRngOtgjOh1hx?1-e3|+x}w^)Uch(K>e7P)QMrXI1-Yj}Js{s5_u5sUt3R7& zuEMI_4{6~VFq4EOkp8ydP%~Vpvwn1zgDs74r)EtcSvq?x#H6>te3|X+r8^rbsKixX zHr`m(YYpNdx$nS^O-}wKmF2eQcMXA%0zHJT;yuqVU^hRaQ^1PaRit_MJQ|V$#b-Yi zyP!116*pum)nj;p3(K59H}AVd4N+aWYu({Mm@8##YwPIf_%vQ%qqxOOI8|nH(utQM zz+l6Z4k~2UWXQjq&m(tLLDlC(G$}^Ge}lhUHScwBkdVBe&;wK&mmIdBLDRby_(c=k zMB~t}{4jsn<_PNKiKPf3#SoW@%%IT$%UbQHo~N{dEm6otMle2LW<_8oAmzS=Z9@wV z(iwEC=?9(>V5>UZ|CE{}Cy*-Hm!vP?0xIknNn`|;rKC^_14VUl(*EJ0l%jv;#c9Qe z?nH@E;FSOCzFAyp_00_1WX-Lkks?gT=yq#qR92DD4?Vp}t zq7h<7r+)B(4?0C&$7`+6^5P)xDod7*%RH;@xKIPN>DNKUIGf)ge%|^b2Bss|K#i7% z0xnilwL_~;AS;5XN8#zbH==r;j36o*Q9B^JVH;^Q{B)0o8Hx)A#s@bvECN zaU@mukEWuh+N(#YE}kCSV*-UfNcOx7^m{$b;X0Mu5c-bM!lI|J$5LP3>jI(K9}}LL zPWIslyY-4^7}eK^`AV}|{>_Hv=??Vi;N2`r!P8@Fe4DX@R^q_3^$FpNg7qF-p=B-B zaATh%M567Pxfw#S^xI@*pzZM)(J;^PMP4NT#gDCX^Y4TNWF9L}#0=Hx&=|(%d9fTpMT5n^}X1kakgg@^`&qI!N0#7(;MCyWkz+@eBg_b zuM$Db?)sjMY7|N|?)SJ(@1B1O6L#GbV8!%cfJTScx5aU$(G&Sqh!jq@brSlWo$8{> z5$_-<=#@2c2;sIFN3wYm=qL0^rk4eCK4qq3>6Ox~$7Gc8VDez4BHnxF+gqX;Ot9s& z%Zj7OX=|PE-ag1;DCAuT;+9RAng0oj#dJLr;Y)^=f^$xWR{0aDeu=4_VE`odhbimD zexQ)U_Ttv`G5?G}C`iePu8+S%E*F*eG3`mp=%Zv0`w;wq_U+O42 zI|kZ3#3`yQ=SAvd>D+cpyKb=1gzI-@bH0TiF_k_?$rB6JnA*hvrmIG_n;_S8{m6H> z*|Ycbn`@oP5RFJZW*y}`At%J@G-TAaW2;uH*XsTKRMiGd(e~V3U(BDMg1$di6FNLT zfkJEb0FPMAAO!?M0d%PchgQ+wih+I{aub)H63uT#^%|FNr8m#awC`*i_ zfE528U{F1^X~n|?1@%5iamT$)wW@4%J}jsWzsS;bG=Jc|Va$)CU57YQFa=ZU+}c0{7(d}5DaUEl?*^CJE zy{I2d^@0r}Own>5&LKA^{p7w#Sw!a>P1PzRo?tJX@6*(@CgVr<_ zs&$C9<|Ut`NKf1Up=Gb2eHJhr7n8z)MA7$sej&8HWUGCUIX>fqnvYMiKb8u z3kZ)`onlL*Pvq@rjew3d{ULun2VcwcRtMQFA=@Y z*lM`w(xfd|xUR_eJh3-o+Z+dS_|AY7FVF}$9kQ~r{>xp!SvEnM3W=aQk#lv&@!l6>XtWh( zm`<4RqYnPmVc@sbb&nApH|IppV-mG`)S53Qo@p9gBJ%x@Wz2xqh#S7O2q%4=hszKG z{q=waMV|D&;k`rGO!7}#!PN^}Ee7B7Y1d89^Vtaz#{=$>sa-l-or@BTUFU4+e1vPN zZ<~mY1NtTvSz%AVk?l^| zEy2BW{ByPPy|%9H>hIqy$)}(#CHS^he1{uaDOB_6f2}{fz?NCN;|p{PoHMCJ>uWGlaeIvm5nB6)}&K)8*_l2Gmss-Z6&MZBEnhi2-w z+GEx;mPX~zk6}kv+B+So=&$R4-sx4!+Gy#sYeop24_1kg3b*g=ZW%U|?(EtM9}kt` zB`kVYsl1;y5@>M#an=p|oZktF>Au8xAs1t16i4HVJ&lr^vhH zJfk>fVUdw_+J)c{Hcv2>&j;n4jvBl>HgxQO{~2HaUW^P2Td5TW{;=gpp$cP#``(iK zl9X^W&U)B@yziMf2{EhtevVo1*@R1v44)twW{=OT!k*GEcNckc&i0K!r59=jqp(pP z6Um^vJ5aZU?yta1-7{BZLTRsbs%KeQ;WOSe-n+^OcMBTwXBt}HhRGNuXaG0dnKw5?p0|9{^{bc_PL8@Ew7L0M+X1BRf)Xk%J zXz<3Kr7@vm-PC#Efw9?0lb@4V-R(f7$=23dqPsFeH{d3FQUenc6O)rx_{x9aAzfK#dI_%73BVq z*mNkVbaLwmTdFGCP+Ug|syQnjGqv-T{vby8C^X2ppFuJs&A&j59QK)mVO3W7jo97e zQzsqcYF|-H^WF~n3dzu{KpORDEyK<}dW@8^=GIZKRjsX)S4r27d5@%d=Tm5NyIHA% z90?&C9mcN*X^3TeU0W`^X4t6CID+4B*=*G>u&+ojwUR6iYe$11A)`sb=vBXWv9FYc zO&9CR0ZuHlbFqlIA4x}>D|BF-FJW%0YUaL_AIpzm9ZI%(jmqk%Rc`c~BIo?m*0n|U zw$6!8c0trDM~>l~bwXxmT<45uMbAO;CJ2nSqJrgN_)Ao5rup6sGewB=LKRWpIP}g; z1)&wbbpDfZ?mjUEf++paVdBWl%>57si$_|c$*lKm)Wl+yIutzi7*(e2do~;wS94^MiqRALX zSkmE=%wO))NeqV0!_XMryq;rOx$oMV#hsY)sok;nxe(d<%7c${{vI5|3~x^h3srmq zGRf#DKg}M8n%?QQof+e1d-SlcaP|Gb{Q|9WjAS5nnN_1#^Vt5aQL{g=PI71}QcQ&) zDwazeTHpd*?Yx#H5y_`UUt=m!Ykm5fi0KtA0ZJwp^~a^%b@p!L&>0;*Cm>r{vn^3e zMwYh>#FV)4+^bwB|4yA&Vq7g$%|1B7KrWq8HwPCdYEe4 z2nl2d?iU*{Qcmq9`6vJaoEw;%Sh|vWeXm5;wTTwOGJM0QE<|ef!qf*a)h6_Ht?}5!vY{ z+n=u5B39DoXd;CVHr#zDdf-?5XlBuYhFQs8GCR?!Ac46hQm`4$=LgJeNrR}^e1KMV z-~l-~`GW`d#B&M?4%`GmY2eIEQ&<5wa>0;Yx%}}tu#k_&giz75 zIH);v7nPR3Zw$@ZbC=VnzY8GGv$wfyp&3CkxEM{YDU-f_jTSw@4FBiQ7O+vq$9{Se zYgbu~&7ROF`$3(yV?|E^|76jb(y65OzO>052Mp&|?wFuZW8y!l$=}r6o07S_`GW9E1I>y{8V^uj6p|Rs<=T%%sAl7 zG1w#0S$}`Z?O8MBn0Z3H8uoIP?+E~N#n)(@8Itw)jhR#K`lH?+a0b6&CbPjGKJnJj zAyMR5jm0(Q^kAch3*WL*5#tDsK*L^%b=ywDRVLntBsbg+|C)so?>)WR&G|B0$nn9vo3Qi6#L~&0|oo2h8?h*H9j7`c3J~vRU+%0+YGd>EmD923iPJhWwmN z_diGX1dKoTo+1;<-k1KYQIa(xlMzxjSbQyTfT1A6d8@8SYLVUKa3SNGR=m>Fbrgza zJ^6CuP&d3`Dr1(B9{J#7%B+kp&!73Z{ZsJHYo!Mv9Lli?WxUFYYd332oUW<=9?%cw zG5D6GntbPPs+acrUTLKhB=qXV%PZ%&36d)iD-QZOwbiX9ssP)Rly1B8!UP;?P@`wj zJ*>#D$}}$NJb_>Ho`5>Yp)yb&wAS;Ww4Ab{FA4Fq>x-ViBjwR};R;7XX$wG0h%xwe)R#D%R#^*WcD#pCJFe>5cN*zpiq-V(FC8X}Flc`$uDM*tAvKRJ zy(T*Jf%DQFk+_an`bC8R8^OZ<6)Ug!=dJcTK>Q{eN!&nuA$7~_&ShCcbyKVzLb9RQ zGr=$S)?XaYWp=$E3c6ptW&0_8*)1xo)?4kg@V zh6e}H7%n(unmd?+k1zsPPPem*t*diSPXiiY@Ua)L1+yEX)MZMKnP-w;3WMU6DwdSn z#@OHV&A(_m)=+b{e6pqqH0pue1e+4bMml4M%leGxxBkd9SBEJefWtwYuIcDYQ+D0@ zIR-pxT!=+Cqm=2%UD<)}i_E*=FRHxC3oYc&<33`Cqs%{e0aeK& zHfnJF%A%C%upt*sO;QWWMS%)CWIuBe$DLj3VaBGMEKFvkFcW*5E1<+E%R7s_;qsWV zxk})@*?1*kui=l~%~$nFsjR$`?sT?_Zt{TLNGB31sb>Nb!}y3?}BRWel%|_x=jiT z3vJp$h+V{7y`<*d8*~Zm`A>MU#Zlvkh7$H9O`(PwuTN-Y!FYxSS#;;V zGOaCil*3L$7)T|7WGSkC0W>PB}AzN38?_rgtTxEEQ4&Tu#HwBi4Fv~pQ@`@cv(lKc9lB(XzOBU$k#pV7I98vd z#g0^`+#o?>&mcTH>{n6u;&k?Fh@OUROgzA)P&(d9loM`ryWYYE82q4$vy4Dn#KAOO zUDcM$FqK1B4hdo_+14tT09k7L@IF+3_D0%;q3+h2yzl0Vqg4C7gDfs)uL<+52!zv_ zi0_amie$!lg{f+cb+|Uurfwx`B;{d=oo6na22}d6H#%d=@wF<5FZs=dsXCmDXTBfd zd1!^8KX>)WE!!9I#bizlWO=WYQ3++*drffm*?OJrMZ6dB?W`5g34SIc&5YzS<8Al% z$$$l!Ja{?lze<0$n(Sbm?2}_6sS&@wzmH81S2tuvCiG7jCzdUDZJPZ6eE9k1lc)S< z^9Bb{Lczs3COvmlpY{8BiF^vroo`#d%PBK-fnlc=wrkY4d}aQ>W1_ z2U0B`bk2IJ=UKdn{kxNmh8Z-vh_EQ)G*Wo4KX1mnS;`D;exZFzl8VS+%EKJQ=#|?X zD{L2uoThe1?(ciz386QTg|$CNUoNK@RkrJT&qdgxS4yV8ojTjr9%;~yFeYKHm&o+hqtVqL=SgO(fP$0tl=#WTc|HRhoBJ-#KP#2ra0R;g@LdA#|8A8`_QQ}-b!3MSj}*i7&2tCf=u8o;?}epS@DlvYLqE#)yWFMpA9jL3MFuYrl^ z)yAaEFVyIHUFa3nuBE4*w1eP;u&IWe?-}js0xTIX_^ zsm*d~%DD4_xx^5jlkoA}c<599oj*@cU&z;Q&pB)P9!-8Um*t~nszMz_Zh1`!pf``X zo$rn_kR%tmV3x+dHCq_vbQraev-+$nGU4+tR67>c&TUi_qRA5C(kMCe?ln@uKmp>C z-w;r~TaZJ}0WRt3zQjE^XWgTwuJDMuL^zcSIss9toM|GW8r`gx9Z}Gu{B8$L^6VBHr~}GE4V-6DeJ26`8Jh z?Agy1{zb%VRnKSYaBN*pYtccyuzg9H)op!VUTELYH*-s126fweK~JRm%QW}o$%!wj z7`LT3DNj@W&2e{3uT$eNVm8US0yfAs{4C`-B~jSTD%^xm#@o_k<w| zJb%RkCe!Lo0<07r9*8)dx4l@%Nnt5EKvXW)bZj=V7F1Gd*hYkhRu%TllWzGQe$#6x z_VhZcHb}@cGFhJ)r1m-AvnC%O846k4e|VJn9^-KY43LAjn#R7D#J2h%5{Iv)Jh74) z1hp)!+*&mocJ9rTxz41H@>DaOv`!su@q#6_wt>SYJK(*-Kv$jGc=l~`r1U}ve+peD zVyeRw>AUyMx8ZEst4yzUc35PSqbpd!R1-GJ8Zs7{ymL|91wtIK3U4f;HMwOr5O{n# zutmjG<6tk0bk*jr)Nu|+52T7CPQK^Wwb$P?m#EU)i8P~Hv!`^LO~h=~jrgu)-IeWV zSY)x)aUEH*6{l-A3su%+Es1@d{r0PSByNwteo} zcl@MTJ6`6IHKX?ewwS6SH<6=nc~8ge*HIXBlb^KEQW(?IiP1-y=1Y-d1<8AF5t!M6 zDz9C$7N!Kb+Mgi@5ro37r63Bjgnq3oubL{X)7S~0y;z$X;-hp+x|yyd;T zt_;)mSq#jyqKCq0eh_3~S~}!X`?Kl0Nwm-W@6g__&p_3m^E^epBS$Y^CFsOApWXML zc9C7NR!-OBNVeRer6S#d~ecW#R7i4X93is--HFUS)Z%fAtNze3`j zr-LRmrdN!?JVZDh_tjn5W?5QMB#fSmC_*JQ|`E}Y|X$5%fekKDK zz&zfyPdP5>iDl(azd&DpqQN>KssN!>Uim67x3W@B_y$-s6u*0VKO@TaQnB2WIO*Z^ zy-4|s8mme+uX>2|9z{ic224wMJ1Th#V+8SoE~okm(_I<0l#}~|y`lolNnZ8{(@X{p z+{vO*mJ84p&=^d7O4y>_dZ#)UY;bwxRq{;yT2E0vU7fNpV#=E5PZ2@uso+a$jCTRK zb{cC0++k@@s9w2D)$x1$TEZ)f)i+!gSzNM-zD;)m4IiGM#L6qbH%C6dRT)S#On^#w z1I-S4RV=<9BB8A8(RPpfBg;k)m{}&M)a>PSQMv*TmmscAbAbIU&eO?hkS%OyXD2F( zKxZT{AixDR9w(K7Z5`8_ZWitLi|2jeDX@G60t=@zDhZ@=|FCBVIoRLt;!FZn;v@&k z+uPd%0&a*aT3A{NQAQ#cb8~XwCQO$Rca@L3zuE!(GurzFHQq6AS#(P!H+x|y*J4UY zXI21zc7F*defz`Wo9*(-64k^bQ^MksNG;H*-y5xTgG(qOemJH%{$*gv^aeCX1?Pls zj4?Sov%kNBCm2lzN-0%RKP`ca36kHIUrSSbN0jbH-2I-ffV1E@(_q$_mOwTXCY2#3 z=Jmx++E>DB&e>BT%A84Not&|zc^V}xMlG~MyrH2!D9c--Am7eUqc3m#8Ov5-sk%EK zq`QN3caO7D=!M4q;^w01Yz(K;F68;C;UC9hj76zv0ygQjJ# zrW+QW`ReNs9tGC&*HdKvlp||nx_7^4@OdZk{YKVK>a=9Z3ZZOc?1DJy1pH~2ExPmXV|D;9#sN!OU%^*CbaQ?$9*nKSUsGrIwfR>C#I3w$AV=p6Fp7m=Zx zb!pQak;QE6u9<0r@*Yzn*4Mdzt`9g9m}K5J)ijtrBLsY~s~KQ9wCG^p8Uea>vIR4=K_I@N#T+5KL}MxIkd0^}&x@ z$SAJ9_5SOWQoBvBO!@;HK$xiC)!{k_fjWH7d$?P|8WZ$#{;(ugkUBXPRGcOT2zN<0 z!g1-7)!|QWlbBUo4H!2fg|mW>TIXSjvHgSZ)P|BeYv8u7J~b&Dawq4?b&jRA7dEuX zjAvPuk!L@?qUO~S%T)xU;6b9D>azz6R3gc*MpjgQUzp~` zGJ^()JabKV`BmL5CgR9VcR7)4>?QHq_|y7?^j3vIF@jyO>ssZ7Zd}|MYBGvAW6jgv zU+n6jX|eoY`xCeB0DlycJ52G6NJ2v5ZVM?D6%`p-pR@OyH*bKVBu8bfM_?;SeqAn0 z`S8M>1AyodgM=l)k$)fUK)yC%_>KN6yCDF*P46}qIn9Ric?(7*goK2W07o(#Cd~|9 zpa5_&-VRHQfbEyyzfpiSAKIT_<$4Mguwif(JPv77j^lh`+{X-qaKEG=W)_y=++x1B&NWqwS7mxFyMS|}!? z@P^6Ty&G6I-x8R6mKWNN`uS5F$mcYackkF-SFncpSbmNwv2}#g>p|x@c}c*MPjT(! zPEgt4Gp5lQos2bw@;7<;+vG`J=xGk@d$*P;*H*{sd)5Vg$9=H_c1j7oN7@#L4t2{i zdrbXg;ZMU;E{Ubzd+u8amsm0A7#Z{1s}+&b_kQwekl|^4$vm(^^gsh1Gb`GDGHjj=?RwEM-mU^=VhVxF1G8 zHaewmRYoHLEp-*N^cJGEb2b`%_;jgHdR{nYDf!~}rB zlyAkehFVzi-dhiPxi?{HO+awV2KQhw-aO&;+D9Dp$*tj$Y(=%CSNc2GwboM=9++I0aE-l`ihDQ%E*pIhoQm2uF|2o zKssdUZKE&j*m#DzDQsaf0cpOC`V3Qb^zC zGD3+ZJ^%G8e{)OOVzJR!5>Oi(hgy0K0#DDfK#!oSY|s8?@Km5ulGv_8 zPfNh}bj0og5NzB)A()=#3Phz~7w`GRz(7l~EJWRD%&IaUH8L{d82uKGg$@Tjv;)ts zG!e!i7jI)&kp3XfeTDbq@hvf$v=(Ce&Qj(UHr$qL}9`3i+PkQ9Ff z{Rv?z99o&2k~s7rLoP1JLRMdj1GJU|bZghIQOyoAHr-7kQ((tNGhUfebAArl?z$W> zzvQm=jt-WA1zp--PedHmC1b()_D9Pk$o%u}?BYVkcm3ui>i;C^3!$RaI}6i2@pxC^EEjz&I-?6UKy1XxGDhkKaNUD3wr30%wZb@>>R!@?;ZIjB{ z+h1avwn*=)UCDwF2PqM%cnUk#95yh3?hG6_mxl4PX}PSgPmzEf7pM`yjl|XdG80D5 z)bLPJPXX1YL(~L#R^FJV=<~Zx45HV84cPG~>lTevs9l(Gb8}O3{<6sX@Rr%pb*~$r zy|4tJMX#C7E}4QXsGf^8!?u&I7s9`8`FU;^o=EugGZY*B69pVz$2=fK+;N}Z(O-pL zj`h_pSnqw$+j0=qd)P%Is<8|I4((~?Th0Bs5b2_ihn17x0=%H%N!R*8$oJ7v(i2>D z*k5-l17qwWhEsfgS$VM-knDej2L5%GTrO2n;>W*k_X!At4hohg_Wrbs$|$-C#i3CFTg~yBo#>~kvpPK8r=Pk*`mOy(Tq=>& z{HIz_0&awcnNl+4_e^@5VywjA;4)(N;KN&~yVz~*bGg?t9N{C+!L$|~lDRz5QjpyU$8-5;0MZb5vYh!kES`drROj-7=}Ffe&1#Jj{gKPLB=3^>@-D_7cU@z z7g1m>wy=SHN#f;8CmpH>4<1lZ0Ilvsz5AY*rYrv{95`Rd5c7mRZO4I3*@R4P(D#vx zi#|k2OKW|{P5Y^utZcW{POviQU#7r^T@W(o*Z<45|BjL|f^<-I3r1)3ZiaWZXq=&q zEacO-ud7eRN$(pf%B?oatd~b7;)H$xp_`wgAb|fXP&@KHg-1yZEW96K;3#Ts)#Kgn z!^TkQocrj%fxd<{EFuAz@}6>RnDz%NQ+*G0nt7j6PHa#R&`zvw1gG6i8B5s26kIz^Z%h% zz`Hz9)rXyg*6(n|Z#?-+a1hwnixnKW30IB%GU~VKPo`eGO~u?AXGnMRZ*GQb($_RM zAJM?Y$~ki?Z^m8vXd-1&6cz&VH;;CZ9vBU z~a76Mml=Z%zQXnC%M zW!@-Jn4G{@{zi-fF?KGUs^=iev8Qi0!zl9uo+fyR6Y%{xgm*F;FDaI8f2J-)8QoJw zoBP~7u>U9F9es19OaDsxe%4zVC~PpJXG_|7Ier}*{uQYZpv#-sGVRYPrCJu=WQwVb z)U)na+G&Q6dvLt=CZPgzm4}jjhxEA z5(!hkh=iOMj17FnUH>~vf^6Zw=X)hWh-e#!tYeC$&A(*~ScK!w2$2$?sTYjspF9^V zl=^2E3C!zfLLk%nXL&=Xn{iVk&^M?+bGa3-D>Cc;f%E)cw;=Wh2DS}n% zj=xv{V7;E+@`t~8TJt&8 zDv?P_6*2kt-LkhN&VDDir(VaLBFZyY&w|Xdoa{ji-i08FEMRT~e2qrY>cNdgmtOdi z+E>m88Oykjk_^bcv=AfVDH}ZjJh{;RuWfZP-4?6Y(&>!A^0vayPn8ri>a_DL?%6`F z)dodNW*I+9?0f%5=f0$VIy73+X}?MgYT+~A^L3n3Wn)A24YiOptH&_On-uovD7duf z(&kHLttU~h`(lD+rkFXu;_wz<;zpV97eod>QhalO2xBPla=~bYUoIGF1y!7WICf2t zTiiKt25dn;>s!;d6kX0Z#vY{>LeN^d95&pr)yNpv5jz$WPiRFGZvZy}o0YohnAQIY ze1VA8u*cqDBp~uN82j=67j_|K!J)?%oX{6BEz7AQiv#+xxSm)y7=T`ZG(3H6fC%{C zRz?JV#VR8>UJu680YSyROL4>vl~9lt#sB|uObAA%*xfJ`0wHakuS;Y-JpUfG5La<4 z2EQ@|+6S!3fjo|;%OAgR25?~h#u*@eM4A_iSp4h)Xd=N{`v)N~c^S9H#_<0m0{92= z0XbseSaJp)U(0NEPf_w;c;>UkC1PQe_CJDSS;KC?A40O}VJ513@gRTXUoWkt0O*~` zG+@vGW4!wZ#`yaVe`^imfVcZ!-}7%N(=SN!d(Tp_Ynk>XxW|R?6x#?S+89G%D)*ZtTq2XVXI5+1XeWhuMhHXt};<)Asg7DNbpN5 z_&Uj2MjU^^y(vYsA_Q{%out?wDggTZx?)h>q(HGi@9oGQ;$~WD zbq-`S(ENVN>>Sg-C9U2}2vgaJ-nCbUaU&=GR{KUo;DG`$KyHhNcX)7MJzWpi$70D) zP}=SK)wl2Q__Kk!4G26kGu!8PsFbjqMhE*Se{RDqB}x3h*FuS!EwHz*pc;cDbijV%P?nc>^ex=@c-A z0vQcaQBfp%UVU<=l`^#RPW(7;{enhy><=mV_P~h-QFxc!A|^J#1#*_qWe4jc_1G69Gvg<3Q$CV+>tRNLhwsKKmhn1NN)se$C51$wLpFxNIr^)ppEG) zDPb2Vw;nD2=5r0T7_Y~J`y{4Q9aaGnyad`oS5NFSbDfR(p0#HfkOK90#h!-!(I`OA zAp3H8$IWe(UuPcdMEhic@4B+fA#(vn(KcMU#-!uDO zc-PnL-mXQ5v6wLs8wnn`3)YT+fB^APYB#)hNx)nAagw`Wis&OYLBag>)6J>6j*bq; znk4gt!+LtJ8%^iL=#9=rhorlZ^IZ)}Gti;SQ!s^?=`{clYHDE2Z_iq#$kr?)fFUfp z)B&}SwRM4cf(t1H71cA`_jWh7&j=t0FWx-=lzgx-!3VLD`37BJJ{fyfdM)rE-sGO< zp4*CDt4=^kUpLXE+k6veqYb}oV3iB^z48@5Jz?a0{&=#PZc!Cj;do~LJ!S5~)d;^7 zPOvPO*#rvRFF(eHTifmDeIkuSmt2MToG`yHvk);}+HtEV5~PfrK&NrNU=S1pqct82bo(BUc|F;~=z|#51_ckz$DKYfoA;JE;gg`~{@yC5 zmK`rs#GC8X*h!2&>EgktSH@rN(u*z3OaI9mc{G;oALrAqDEls3k|bnLBzlqvk?c#!z9h0sghH0y60#RbLb4@T3*7uzlpiM0ES3R#;(+7g8S zk5g>McN%>4{qV<@Yf5KyC@3g;zH1KPuRE`*7+fQfDCvm*H?{QMSj9IvTuNm8_MGPmSbwso=eaB{J~#(na<)aaZ1a1x1|bcU>`m4 zR{F$=m`f>_UR_IO?(F^c&BpGI#`l?(_teQp>)iJEK26!MKbm^~KAn$`Pr0ckE{{ZN zjQQHOoA|6O5+2$4%i~UNP-{PlfNEN{C8sCuP8|2QR*; z@X_5<(Q!)C$nbg2T+Zynz+WPP%X?e-O@T74+St<7=`CF-S+3FA+B!=|P+D5r$jIpO zC_^Y&Hfg%M$UcC((4k9PFuE_{^n}Teye)}3g6$Ivow;V6HWC^d8gh-XF)^}u9XqBl zMPn@OdxxC*SRUvFG|rFUhf(n%;lmGA!Q>Z-p#sod0W_%kCl z_1)5%d?hPoWn~Ks3oWgCWo15M1xRW{76=2osR ze-Gw*VNmdM?1F#+kNZqtxn8d6UWFUivvhMln*YW%Sbs_E%D2Slp3T&`vrNpN|Gj5V zo_y@CcjhJj(a4vdV5+v*p{uHAk~m~wDrS>!GU*y<=zXtsiUK#r^1*R znV8&1n=WC#s;a8!4``fKQ>&}1V;8qNtE<})!7ja>ishoEWtCm}rAwDo(_21#2wZ>8 z%@$gP;aXi=?Dt#j^{A+*DD#;4GdugavC-`1Ma4^(cxcb?-Dj7+5)>S)r>k4>_eU58 zBuX`Xdms;9!on}iDsSw%^#fNTEG(R+9C5$aA~ZBKLCTRg_0F9;xQaKkpASi2`6lDH ze*MG=|D>cOGH>RyXB3o_hlGXyEG||$58l?z+AHr}7#-a{-CL%ns;YdKb82YFb@+4i z<(kN)zkj!G+typ|{vv*2LmO|+d7#3fd`uUTeF7%_hv$Asa@4*^LHuc72d5nFn zbE0Xkg6n7#MyWb-uMdV0L%L_LEER{$KOanpvPq6(^_|bqhzJkI zzBz34s=l_?+1))dB0^GEIbAzbJ9Dx%L(|)PIqz~!KwzLjuU2lSo{o-;jEqBX>B3y2 zg7rHc!D!r?3xn(M2cYkFpT{4=l z`df+F_1{$qP8B6?6T0rUnL6I9f1RUM7iQ~3DpzOgPDgU^q+ZC<^<9}NwzRaId{!HE zAlJ0K``b4;0Rdv@%6%4vMMQ8dyfw}W8>@5Jxe@tqUxa4zF z3|2?1U~}NRYUEwF0z$kO#u+&|lVf7|W9v}#ys=aa3aotR8l=hd&8NAdqoa$Q`jgwu zyVfTByHIVA0LaL2B$g&7$c5fQs`-g_!fIwuTb@xfuOEiGS9W7A~&#D}0@*4NjMa|$qpc_nMAsBoutn);~oN1aL6 z?l|N-v;V8-XCI$*G~z>t4(-^(@ip`O0p49ZcXnX`cNJKNhHNW}Ic)TKc$Qy1Ugqf0 z3l}c5%X^i_^Y$q0-+wCv-?Xr_OmDUsk5rcIn=GeRq}h5)srktn`i>hrb_5^yUB(dB*p%>E3!PB*V)k6E3 z!p59B*771xqpqG_fyUI0wdH2B$5YLDzec8})XA7H0TB^RO-+%52QQs6h#VYpDN#*VJ#*%u zpkV3srCDFi_o+jf=QFPKSIAp@`UmfX!U)X3uDAW-CV5H8qNh)9tLJ4@zIR4ZwiN4{ zsoY4ucTY=OJKtyV3NM??Rc?7v`7O9X3EjIoKH@A?DCE0$?{;i?Qp@i21{<@h&=#|_ zmw{nubo5#0gqoV#*oN|l*;yA}^WF|z_4L=g!Mh6UD8hfoGE#IeT)@6+pNh0z_{1u1 zbsdeWsHg}fLsx(S3*d8oy+cQKTvpZuYE4V2+k|Pkw}FAd-ec|#<87HU<%^uO7xeV# zwba#jA3NjhoTr^>5gO&IbKydju$D)oZR=C48%OL`cXxL#ztud$oS!n0jN}6vi2_lz zeV&66o3?CEl=HeDB6#RfR}S9kP_*iIk-+V{XXod?71_tC@Uh8xUd1nCebuEA{U#@8 zs)oxi`T0Ge!?xOeQ>q5J*V zwV!9NT)C2R+&5mz@w2lrzCL?4yr{?x3!RRRPJ*ogt@-fb!xPHduU_2H(D<@6H*!c& z(AdPJ%x$8&oBy85u3fvnBp$^^9vmKS&oPqb6=R`_6)~&0`dukQBk4_fxxKyphYufi zZ~yQ}F_2-`DMQ0@YGgaOQ};f8S-SWq+m)8wW>rvyDcw9DxA=84BF;uk@BOva@Hk z+pVpx%DPW}^4`!)Ii3_7+ga>nCM{ij|Nec{eIK8dn_G6|I~QyIRv;QWsnx4Z^z&-( z#EBVSdf#&9{C=ND&UuSF%u-GJrLWDTE>2b@WN)wivg)y$W-AZsv4n){kB^~DOiX}< zra-YMJkm~m_0Aj<*_Df&5hqP1gbU|A4vnxIDY-G#Zj||ycr>q+){PCispHd{Uau91 zc2lUNw`A$%YQ#&7tuD=xEgT)?(U>qPWhEu@3e?1P4Ve8Xp-khw7c#PhO7#4>VBkCM z*t(>|L<&h2;ofgcfOcnqzbt`@-&Ssl zxv+!yohU_?ZU0;TyeIcr!#wZdpo}6-vb#O;5d$T&zeKSTy}U}aGlyiRStTflZzpq6 zQ>U5dy?*}uGg?buU*APhxj-r6e*H652-0vp?yQxy^&(Y%f0}!%5f;9o;rPOGMlUz< z+oC+^R8h4yXc7)k>5c|61;Fg0A}4%GpV; zm47rp;yv{*eA`5SyR?RixP&K9$Z5?XRnKyWpIg;qrP_`qj#u)CdW%1P1T8V6wWPEZ zAo;c<4St3sCyoMSS7gXX7x#SA-F|hEWwkA@{vGk;{dxKh-7>)%?!?cDvIc4W|Mh2R zCOg<-E*Ot)mLv<6cc3Co&;hxGph1~P@hH_Qj!y1|EhL+48s$wSm2}-$Y)RnKfuq}a zch+?21HBl9RgK=>OnR+=f%ELcc7Grk9l$N&V8KAkN_G2wOG|gRA-eLO{n{k|m3Imq zn+8gBO-xLl>(Di~3Ygv@^F|KZ={#>~X*n>nyn|%(03S54R5f?q>(ni73f_C8Vc8rOP{WHv=*7gl~R(?cGID zo1$)Sc1gAd`aj799~z!$XOd_A&tnlLY1GWEMj2C*9%;Sb%1^Rcl`wP!uhqyXC@v_# zUcBP>p6~PAn>d~Ep&^SaS2V~diJ$YumJ@_Gf^{`Fk&-nj(nw98Y$f8$PMwlXiVU%n zjK3|L!%bnOomo&Iu9iyvX#PSwlYyL?AxptXdUQllTAn0f)m?dCfSslL9P7QDEtc7# zY+Wb~Jw4K&_G4$!6YpqaD;fVjl{d+>|7D$2-X4$Skqd&1y{&Usu&|x1gEhQJ{-=XP zcab8Zbh8dyNH%YuIx^yADi|&MwMR`x!$7xMw=TE%Zca{4QS^l^rVOMc>83y#|fWuyW&CSgZB@YV;87C%AGciWT z#?Hy*c22b0xqW!G2{-(qb3aL9J6pulUkCY`ee6>g?hEWIetFf|`JQSzV|4WMZbLpT zjAF3US&|La14~Q8oIkepNx89P)aL1)4YXe2dn#a;AHKwICfUpr7k*@bt(0X+;o8WC zcg_7ge((My^wHijkM^P>mID|zO=2`IUvzSE;=#rAb6a0N)KeyNETPVVtYc_sC(1HC zm1O-jd_QA#=w^}}({(re^jl^3&zAWI8q+os$PEplDw#URA9?gW>g+!(_&$6;$-m~d zlP1ZAPbTzZSC_#b3$H>`I^27G{p34IE#d|a+!Q%SvXSGX3(X3vyF7v|P(RM6#Y-1f z1tMQ@MyJs(_2DsU(l3i&d$C-0)i?`lp5sEBu{=}wCKazAGwy(Nr>d%+5!ZC|dIYX% zE@(lEx5Y*RE23)u{^$!A7H`-!O@uY!eVR`EQpfwy)HrM2KYfb#UPMt5im5j6Y}O18ySa}%t3M7X7-fSB$Fp6=$E~a{PoFxW@~E~Z>(ACQXf>*&z6x}s6ds-}{P-&ZvsM@g1DpU;rrUS~zL`#ZlA%?}uvJlr$><=%ZXZLEfAyw~ zvpf7p04nnfiWtMHG-qX3g6X!t>;A0DA0=O|hJNMoZ-r79jy-nls56IkVrd(9hGoVN zujCOgc6)n(ob5*slTHiS!Gp$<(@DLZ7ew6ruGLCFhQBogN~ z!88(y8j!W+m7|e|$6|4xcbH`b1QUEst+3kEroNB&PI$OOcVXtr#_-RdG57DAk3Zc+ zlG_Ry`t1kwnLPcon%%>apn~hbD8Qc0&V_UWUmJ)7J@`&r2;M9<9Yjd zsk*tsgP0h*qHe!cAt+r8#6|4W%G7}#DDOS5|N1IV;~c0p@4Zid$3{~8rttzd8yILR zcIyB2>*}kuB#%A-{iUHO&E-E+69WUH5Yrw!ctGIV($ZJ9tya)U9E$Vv^PvskJ5ZpP zmzJjb$`c&#hJ;*ob>#qA>-F~$0r>}4U6|=tkdgUXU2XOCMs|L`&L9ZKNl#rnfD{uHZIAo`#4So!zzkK;}Xvm-pxSf>hf|ibs&dWMl zEdv8^+}7?w+iSlD-hr38;C)Wt<=hW!>AJqU^!DxBEj#wikGD^RiB!BUR;DEVs=v6I zp7b_NJ5%T8&6|Ymv^oYnryvFFeHSSx6k zNcnur+nZY;xdJ8EIBygd)z;R6i-F!)Ii3@Y#`5!C8jb~k==T~)!Vo?TF@@p=W zA9bk{=Xvk36vOO@9Na}o87gq}=usJ&hf}%d1oSKAYMfn4R(~5BUASO*_5*one4LG* z{-j%VCEYz8LB>#W_WfO?i*%z;caZ*Czj^bf57+kftA37d-F-_>&%aPb8F!sRD{h?g zU7pW8wzKwGUyEA!yNfo^e6Tt0-fe{2unmF}&!IyTMV+Sm2nQr2Bm~O;3g^m2bn)yH zb?foix{pup;Qis%_wd|#ZSAd!zh-BbGY$Ze2s{J9kb`1;fOjza4|em_n#jG-=LDng zgd`>=3JD289JZ=|$V2fSI#76UTU#3qx`Ft5?JJ6aa|Q;P1mq|J5@t5Le#B$?+xHK_ z#rB;Vd~}x9)_0+AfQ@TuY2{WdKfild)6Q-@ZN6<{VfpiC)#Q=TXV*r)_g7XH z7kivKRRt`uIN5cQ3`k^Dd_`SN4Xqghyi?_xJJxCP=kr@go?HKO!AVIb7l{}5ianMy zldv%h3(LQM;n> zb>4p(>g%N(zKUM?_8JNs8c~N5Z_Ah~WUr2i1t_?Xe%8mca+9m+aoObmYTEq~`MUy# zrKF?;Z4<=t^(%@R=WW}zefjdmvv>#TtzR8>TD-K=aaauJrMHsS86lEEEeA?H@)Pa_ z)`)l4%ox$t2bQ!A3~Y^qxkzt^M6HOw&sMWLz03na+}I8jO=^r)4BQ@9x)Xn=?42j5 z+(j|s`~QPKe>pj0C?JmYmAcin?Y3osgbvmGtg5P*+es2>y&V{Ez*Z}(y{FiTde0t0 z)LE*e&r#xIvklm)9J{qUV*PkCh&-{l98pJ~QQd`uczCU!Xql z5$~1xsj(4nbYrTh6Z-~cCr0wf^}oNMwa5?9U_g0cz%)LO(2TuxYa6YBk&!||U1s~Z zbpLgD2pg`~u7yQJB*{3NySXhCz*u}6bpjwi;|D6parhv|X5K`_$Fo7-e)#b9jWzF> z#*k5Ldlo4NeW>*nE7N5w6}v|<_pp8x*5>JHf6HwQ$C^d5ivNUAONRBBPrFY!QP$0_ z{rQD0+o`@5+D4h?-i?gpRJgHL^xb>*^u6&CUwQWO<<;4tT0)&uP3KL8UVken2#yrJma(z1ipr;WN&84H zh2!QQLm-7RGl8)9U|*Gd2&V2Yu+}VBo5b*sHa!-%{!-u2AbEwFnwsmV%Mcv5Lf5et zsE)6kn^RBWo{k(jQWq;%i{XMNnSU%yaqk~ElE zS(id8(J$%Wr!JD3P#OX(JvzM?I5)Oh!KuV7T+-$&;u9n*4lx zFa{yZqy7>C)UWR!v@_>1lGyR8>9Bp175vuGk;oD#eWiNMW3CX6OWdanK~T9VFs3N_ zXyZ}*>ewOOCD*J`2P&3+vh%8{s$w}!pv^)pbb^@1#1!-JAqxY8E36@`EfXLBZf@>< z`v$+}T}B&&l6&Uj#YZZ9yr~d}Vfdo%rJcT8U0tnw>J+rs2DFf++2Qr|bzC1hoQ%tm z3Yi?F^jOCE2O0XLj^Kr?c1Wh?d4Idb5+v{Zw=6&r;oIQ%=SCW(kJqk1*+s!AC@wz0 zd+1OWQ7+}>eTP2X+r1pNjb!7AvUcJFP)^p17w#yzuCCc-CVX^B$2_h8LZHZ3Uj6@A8p27r)vhRnJ_uUM~D4|*T%08)Zf2wKQAR#sMIiK_!|ab^7c{8CPRa&R`v7yBrwsZ$jEjyKLtQq`jmqvHBP z;N;>;!EED&d4|xshgFOZ1`c{F7CmNGfav*X;Q1tir@4vA!m63Ae zhs^Z5MzFMih-(+Kb8Kx%Z*Ol?Q_ciK*U7JWrPg0QeWKX8 z^ODi{6%P*&zlCtNv$;@SFET;C>Yc$4|XA=c2r{onSI;5qAT)+j^&F%!hqF z2E8CR+7uafNWq!x-_Am{J$WR;`eNO-HpiUbZ&4lS??HT6Y3uLb2&6v#k7~Mk-q(ww zf0vipW)>fRI5|_-+nW@v7ZE$rQ#^AyaR+ID^(3Ln$Wc;;VJ)cf-G`cuCN>R!3fA}R z+#Kc!Kbs4XhF%Du={nwau;V5t9i8?J)r%J|$PCQPivZFvScoh{w&zm)R|q;?T_zRR zk4i|)V`IaHyX%o$SXcy&rG(oT@D z6}$94DELoF<$Q}8S|%lvkPHGA_xG#8mj;sF@O0cx@{IYnmv|0G>qTOw?ry`ieV${ZR#jH{1&Yf$*03v`;fscZ_ft?LoKs{0BcY}1lL(i+6;^IYoG;02M zFB`z^d3}9P@QUE$ztDXMe2n%#u-+`d5v_^0LQm=hcv ztee%)*l4YF-{e6rZQ~q34>ChoYjmMcAjH5C1O}?Eeu`=i7W()c@+*)_I|fSiM3BtL z%=|9%rM*4cHBo1NgJd@zI^Zb}OG; zod1u6E?0S$Q@L54nt(t2f!LA%tA9qE!_`CK$;sKz8=(wR+-?WBQ3!^GDSiIjTPjw( zWnuxeYPY8n{#`qh?H6)pi-eH4;fVEAx%S7%)6=uJ>er3c->2co0x;YP0a5$@;|D0k zee2d_08OUDhCl%}67eh3SAj0!2NHgztZe)#iyU2_)xW<{6CHi_B7E}qbZ10Z7`v=1 z^g%~|A8y`MBphy0GOxF$wb{8jI5+@EUp7YfKXUl+)Vmc1CZ_eJkrc#!?mFKf{q^vE zI^(^aWTTI7IF&ExdV9;#R@Kz(*t+%Q)b>Ed+)j40FSe^otfJ!LP<$q^{t-aldwyb8F1K~;tGya~kiO83w=3t?BSD<< z%&P!uI0qTe0cS;(m6he@&TRQp;xha>^;8&kJoLD$nxT>BN`P}R&{Uxl``vb0oERz|Od&VKD`$D{O`ocHFt<5*rnINA1ElE`A{zIkE#VE0yTP`m9;WIcKLdi zATgfIKpT@^f8Sy@<>tlwA^rmpu`7VE(=pR5i)bw2ckg<*x#d7OWOszLEMihR^z&ym zXTC;8ndk3R3=x`su5k$+3yY1l^=UGkNDw}l-8Mkl2xuVzq)tX?14g&Ai_3U>7BlVe z&=BBP8r;IkdSG{Sj(6|ABVi^OJr3Y|_1d)wlxHQS0FW&p6ZA3EUrdZL8I9NYl|$U` z;b*7=7%h$(x2f)ENnm~-fGN-9&UGL^fRa05VY{~nI;Xw6_^Gb$a>{1X!_NT1r^&FT zlOZAH<~qSP?)f4+T)DCCqeugCbb^dAyv&tjP*B~_5aGM26q9dMtU(i$;SCs$3m`MU9!pH*VaxL1y6MGMm{B?0kldO5k0-{_ZX> z56@#PRv;=^I=x|rIZRt0=jYFYIAbyFO{w3sMs9?NKGN76qLj#B^9&n zeB9X%kTXnS{uJT%E@|@KLy134vo%^3f=(`=zXVj65HRqs$!J4T>l>C>SOMIKe?(86 zBy-*P`xujpj96vm1}g71MT{a!yc|4JY^d-Ze<;AoWqOBJiDbZGz$seP zg2K_GOIXk_smb$5P9WBaz^ft+L?FB%@Sya7(-G++;B~m=j^AG23&H-gZitseObz}S z+GPZ*xN=rI9X4(~uJSIIf-uErv;Ex|eE=L>ZkeGspf)#I4>UzmhzvBARr+fSG zj}KIb!&${KEXCkv9y6wjG@n0zCQNxw&OVs*#8jJ*ccwG9AJUzv-`WE3 z`Jw2~fjg+dU&O@=fboB0fvBdtU;vTH*vE@i28fTQ9ic3a$pAf%hK$O{SibZ#q5C$w z2qmeJu5=7@Na%LBGDJ;~&?91kkRZVr5y}i%nXX@M0P8+WM!M7+Wh>MMM*bn)Y{)(j z;pHRUwU3wgg=smcZyzEM$Bvafd-iN6J->yO6_Gy$3c4&~k8? z9Bod+yE@p~E}^W;$jSoR8w)W}2As>?M*uHl%=DQWe9E{ZhMzgK3>9h7V(+Vt7F5fr8OY4Gj$P%!bqC_LKfH!&dO$;7cB% z=9E(*BLGO5AgM_P`Gm|TRNc#bD4BJ~`FwA_gqGu&BuoN&H@NNDc!}EXZpfaM>r=)3 zE(j~4fx~NQw%MwP;8Q7Tylz%>tpyZeyz~(FDC(}S4^N62Sz4)9M;02%z6mU?l54@c zzgg%r#*BFJ#>=`1vKKD1Am?V9+i6z>u;%cCb|RNKluSqjh#fZ0p?1&o_14zfE{wN> zd^$w7ElhMOY^+`*xO;he`hFk&$?q&qPxAA{5MGm)$F2vH|JMjEFX-+{pRoFktScq6 z@Jq{A7~}A{C}eRAoyv23>S`wio=%Gz|7#dQdx*%vxCpzpZh7n1GF%s%mYRyxUyP7J zK9rN0ij^;ojdycauJx}ObWij{ouBHjG|Os-Ko9Afcf7Cs7%h>X(br%7J9rlts;H<) zlx43QpxQ1aNK%G`bVJ<*Lq}2>@(KDRvY(EXJ)wQ z>7!7F5tYP>gP7i)U{i_ifbvHVg%=F6zOGKZ&kZ@od;3m*&BKT9V9$z=i-VHUz3+5n zqP&kgcC3Rn!s)<$rIli@$PA5h_8r;3=jS1oOqR+fy+9rs*&K^4R3SuYa58iATR&=k z(M@mtnz6P+Mp2lhuUw*!#;w5P57p@a`ZWX_2DHcaWB>A97 zw`wX3dzsP%fvBOh(ca6*IB+NcyE`fbw`F2rP%BJJPfu(hl&rY3$cOIb;DE|1K%wO6 zDKjDDe(l=a>@0685}El+C*9z@AOv&l+=7`Gl@SB z!W`B*77I9Pvg1Jk0gBzbiwX;`BW>K;+KOGa34B|kad-4bx(zu9WPRC#9(%*oL{Lo};%FF@efOY}`0)Q}< z|4yyvHcu?LnH_4B3vAy7;6gz}0%8#81;9Oa>=>|n)x*1-f+HW7?RAloAIn@GF2Q1-6$4Upfy~gVPk4 z9Vvh?k3$r3FV7&eMbK?cHCSd?RrYpve`flL6FaZ8_~_uoz>W*4GUqj)X~|v`F7}=Y zYPFGYD~6}4NE7bYKIZC%TDV@3`{1(WQCu^At~`5j3})1@%hFTzgjZL3yPsdkvaE|i zJoz-)f{5bpy7m5bM&A3H7Z-}B)yUb7)mE=dOF55U|BDzUtm&-IHrofJ zV-`@DF-YoX&+?^W(%{G;iij*A@F2^e6AZaSxo^-CHgDbxz&qn(i;&73SoN9_!~s;h z9J9*g!Pmf#NN$D>`E_1KS9gMVm6Box#gcXny&Et(dxsfK5I6qH5Mj2~sYj3Qt0TvQzYX~o;mY=XGLC2H@qY)Ed#gZUPz-quZX%LQ9#~#KpnGk_v z$5vqHYY9fPMf?O7dsSG7BP$S}aUUCHVI3VE8VFs(!v<)JQB4OJH1h3S*FS;3p-RG4M=$Szx(NZIFLG3jiz%BL<`6t zn+>OOHZaOK24jIn$x$Q!Xj3&WSC~2uakc*mr`moJ@|v^rk)DFmQo~FgScSXiH+>=;?j0U+=>K8XVQ}TOP|GyQ2GF`f%Iiji)m> zJ48(zoT?$@A*B0Il)$Qjk6#TX)1et7goB~RTFN#qxgVh|@A+#08{|0Z3L3ra(WAa= z3!UUP7=kf%IE5i>R>8r=rAf}r%nabh@d>c1!-9f#DAm~HuuAcLKM$=ueRM!y7+bi8 z9Pq0nNA9haVwgbKx{gD~J)^Gf3ssbBnG3O~lwUJCBu_yUk7vy`IDf&w!SM}L07UuY z$Bz&Q`#r3g*7ZYw0|xB{XL@ob3hSd7%m?HhzvKy58Yh8pj1WaF18f|`5IS%V z01hKV!}Z@aT(~lVW5F);OvbSxHE>CMikO%fz_z$;%M)Nly5_1d=8Y@)56HZ5M$vU8 z#Kny&u9v*K_)x|<6)U`#6R4jrS~VhYmwut;O-Tuf2O&%%rg9LP$_d-c`*NXWFkll@ zeYhUzD*F`_{7?zA&Ap*QC=xlvz`&D$hUo0?l^Jk|>lf}tEN=4Mk@yfhJ3CpAX*99w zc%)HdlahMTmNC8y0Iq%;>o^|P-tLBr#S4>ZRN}I~5eqZLZzRb>RZVU8_LC5Wb8|&# zZHo*`jHgFNaG*lo^7DhzK;H2qEL1=zgo3bZ7cZ}wSwC)ee8F3{Kc_51H9bEs&+FG= z(%ZS6|9Uadjv-0$rV^DVNw(xUtGIAl(c9iG|9J6yK1;-{5#>Prk6a`A#)C&8u; zWjZ!i4@3~?5`Mcg?)N_ll@Zj>>}y_4j})sfL)_}d?VyoBucOg|07jhP^YZa2pj_+K zKf{~<@}&R{T;V(@CJ3S-aW)Ihws|9I%NM~UU{T4}(l4ucXoB+-og$Kw2-JCcdBHe?^HuTa(EytCtGv9UIK^OK5SNm|MN13@@Eq9C3#>96 zDs8+nGSk+O1TFI42-M1Y%qG$_Wj`|w>MVcnA@ zkl}d$Ua80s*{bN|WKJ5Iw@HR5z7ss_+@x$oB|?P%2t z9@UJ;G6Dm)(DuG|4h(_3%qjOVYOlFNxNa8WD-c?8UcAuI)TG|Iv-b1n?w6Og&|c8h zefs1Hgkgn8!){#r%3g3&$Tb$6gwug_Z;XG`&BCD#VbeFGlame*@gRdc_DJCiY~(`6 z9(QP0s8iLSM`5O$rv)LxZraGJz`VRoFEYKZx zF(zICp)XWVIxV<2cNh<0qe%k;LlVHO=jRW@jfS%kYJ(~TuG&-Pk!vgr+YfaFn`#4G zAKqgb*e{MmzO4WFQ>*t_L@#293*Jc@gkN<{y@rgI(Bv=RBSD+OG4Ht=Ywncb1$z!S8s>lX%9qF9l=fc!`}x>z6%oH51T0yivh zal^S$obzqU(BzVm8i2chRz=08^96CXH7Cb%g7l5K#u@w;wuL3i5H5mxuWX@RyWqb% zKzPI%4UInB9IzbD(*RKH;JV%f)U@Lp1xe279H7j0U1Q^V+3UdGPTyoOoSK@A+1WxE z62#oFsPh)02~GzQ0^5u@Z#95%SzTKz#@TNzt>0+cgr?-?zOu4H%^}m&+Ip@2;Sur> zDir_&-V5crV6LaT`}VC{gtZ853k+nZGV*G|3 zMx6RiVBB>JRrBs$YRao_fQeq--udsgptQow-?9KA6J5yt6^Dh@Vdr8~ zPE1Y`RomrFU|=9l^Pv)QEq{dd$SndAVg))lBJf>9cy~=Cc>P4) z1tbPqqKHT?C}<`2($gzCflGi(Grn2$31SLh9gt+=Qng4;DufLvK|*B3qtC0REyvSv z+V|%3<_8DQCtIqK9{qktaIyc{p_j84H{0;RVMEwdBLlMi8xO6;jZ!cjWF-nw#?1OUq zdWdB}qOS4%(`60$sjoeJ!-G09 zD?1yy0+Mil6^`Qh2_`0vwzjp--wNymPo&Y|2>?s8mP8OA3s&Ut;iTifI10&13w2kB zoBI)bZPY=c>0?V_2iRL$4uAiyNCtA%FS0|F*xZSc5auz;@TL+Z?f;-Xa~^eh0vQpf zyz#pb*_>Tn-(VR5+aX*Em&6rWRmMZQ911tS;gJI6T5FwVeruQ@99JHjoFo)Fba&%& z?;;}px_>{CZN$++fEt|3_66^Oxd(*1SLW(P$e38skRdGWli9~yOE(rb*82fX;Y;QL znnA9H1&Mvdi(F75l1@O*D0-m+2uu)JissZ?C>9_K5LC@YS->nR;Spe|xlVsGNY{p; z#xEh!*4LNZ3(I#B6%$eAtY#a0zAHp*Gc&Wnl?aWLqE_^izA4F$>e0%0hE&2)i17<)4>}?~Zd?oU3>L}Na^{(ED*s}Q`hRwEE zEKiuz1q66cougrVB0v#9{V0Hehk=oOSE>MS`A)gbf)`Hd+~MATih_@4cgw{7&YtPj z^@qVLz0x;nRNkMN^{Vt7W|T7e={{nma7_Hz+#EnvrFA1`j3ol=o8H<;2pi-N;jVBx z9QDcL`ZMArGK7sv@E}y|QGsL>5}+0nn9}ft5N#nKjE>+2CK;J)Y-hB^7OxTeMdGZk zt}a4wJq-=JGe*f2?YAI_bUCwhyyHzxAEBPtZTeNg{JTD>tM6Y3@4W zL2HMUMmedtj&qQ3#vYGE0J+BY%hnOJ{hRMHtg7@01QDr?ef#!(c>f-xm(05aWs-si zI|xB8jvB13y+>WPlAuhXb0b!un!ec|7KReV-aBuwfRRT;e4iu=Uyl%?G?IxB4N|pA zpP*clE`llt{R4xJk_245lLrka?bJu?1)DbZy?fWb9GjV+>WRJWDskis2&9995Q&OK z^bwY{>m0}ftr7?|73r@09~P6Sj;~X_WwA7~7@jRBY-~oM8>92`=;iiRGw^1-2~VJBqR- zo==F6Cjxx;R1jA9IW`7=sWZpOx}XbXXe){80}jnLK0K1vZGHVm=mF9I5jS-Hu~j_> zjT4WpfP{6JsSb7giMB1o+Y={9q&HZb0o;g4VbPOVBy7%M0LFsjvCAOh_4f8|x(Kct z^bbUSkZ>I9hrR*d27AW=P9hC~MoAF*3cDOU>UEBJOeab?#y41j)h$6#_bm3J<7tz# zE$U89Ib&jcsgfM#HOq=ZYwrk;F- zuvyltL2=ac*Q104A{!FMbol-I_i(;;@*ov2By=`i8(uz*()wJ=2I(zi)tx*wce!@> zzkV%KDs3q5wZ7`5^aZ>}{n*%%!NI|?u`>#P@qmlHJJR2cf-F<;fcT*>Z1;y>Wc{&AYvpHt(H1+Zi=FjXK0<3czz3xDbmbNm(ARO=uwn= zmqzJ9U7*(Wn>%^*aE66L+^QZ>0ss*YCAl!-u8#mYWHXe&>Z+;;PI)$xeoVT&-F9kD zNE#`i_c}VnlQIBX+P{hOY$XA|ZSwDU*b*;C0&m_-D(jurUy7Nk4B!@E*wq~{IWn?? zgmWubCnLT+|9+bWYS(Dl>U`4|^`)Xhu~u27Or3F9RKvrks1*+}B>6bvWMHYa;kJa7 zl$69oDiSIfoJ739Jw!-+{QNBoIE0pVus^QBD($y3w*4kmIOQ}fnA>RE2{1gWHJ-%|Q66ID2_BOKe>S~o{LC<*=r zPR>tGPjhl`tm0`bt-A)`k|0ih8FqG2aWiFrC^{&*G4|&nhC9$l0Y{zSw-q@A&?s%t z{oPEj^ny&m3OInZ0tnX%t;iR0&pE)UZwQ(IJ_c;Pp2q4rGeVlK5*U#$*!3OE)*p z1#s&edp38IgS|yXD_y%;UlgH@KhpoG@FAFsIZF584*HgVQm!sv!dxn$!Bw){l$uni zaB^?+Nf~~}3~S_4h^Xxr5;CPsVaNg0TZu@Gk+gD8^+FBP$2m>R19C1P=Bk-c}7WovFpYFcac zmO;)|MuI13-4?NX#Nv<<;6zRYcf*m@{9?#3C#E`Ef}D2pbaRTt+7}8Q*`zNQMVkaq zl={VogQY_m zuo&`=c^)Taa zR*tTkhl&El+8Iq3=sk!!hgG3O&o3-EcI6M_6Og>Zl08cj_|G#^ka)P#CGx`^2oJCE zisMQYB{b)Cburz;-+Z#!AkHQv9Ez4k54Rdt)qd$$7*b%4|M59FU_-EblI{~TIeZ*gQVhKb;d{siVJ&l6+>XW4?%c+0A z5)MRBBffHBrBbFPzWS%`qUass*Mf|<|L5I!hQwIHdH?UcRh;*>G>#fc9oc`csA;Vx zU-(5lL%a3hojbekJu~$=G5X@AkQy%bwJguGl8Y?2Ee(=KOp<8Y!mn~1pxDghI$Cig z?(B;k(`-F~gM@9eJDMSAS|zRdlZ6->^mx#tpYQF8;?ME}x9A<%D!C84#IA^~hqKvt zAI1AE9N~ES-s?AZ%#w%X8j6%X>DkB^)|IBG2Z_V&B6bvmBFibfW*@# zK*59a5%$z1p${*Gj_0SA(rs1b4$AD;(2ucv=smqfl3Bk=ayJ%a+mo+T?nxTfd4}5* z2PX8Cw~#2`x^UFxtKNFw(2%339TLxpo+-+<4F}LGD!lgiUp62*Tc}|=UFa|VTUXv$ z6~HS==S3|S>?~VJXK`xNTQU@!E-;};K+1!+9G|jeNg=7 zvR>22&Hp46osYO_X;4s=+HAvSyD@q*Ei?PcJ)3<~DOOhMmg((wj!#ZL+7VV|p4nu> z_C#vl9nVF1csBaNg@{5wS2bdI86avTG<1BuJ1bPj7Oost)$;7LBK216f~JW$hlcey;G08Ks2!Z1K{QddIvYt80VlRTj?p{Mdi%Rq zpMzBAoc^<&q6rP|$<`ChOcc`18a_oFS;i@R+a$V{d z!8*x;PlV3pNkXK(wvxM%9i26#Ml0N%*CU-KVnz2d2pMH;0ce5%=2R?i*|z3k~DllFNG#11_xPM$wExAG12XLJD%%iwd?5S3)v5P zDVX*9sBN*kvQ_b1S=oxWPwR#t!0E#{UfZtzW!aFF+}z5_O0rN# zAAf*OrVh~O3sbg>N6{89$=$KTqbW>skO4ZE)vlWb6Z7>?0Wh>rb**#L&xeSc;C0A7 zEs2JJdhmB;Wog-kL(jm#tISh}C+gC@VI^V%Og709GgM+M9Iaww@<2D^(80qw1`6KP zbBEVNIII464+SxA^(eyQZj3%UAMfkK1B9{la{po zu*3J)3_NN7Ak}=Jh~)0$8?DLbUsU8TP>dvX`#bu#Y4;gp$4}5)q555`p;u6S3$9q( z;=Gn65Uh9}R+r!|YrOoYCBEpLMXdSR^A~TYsMgdP?)~C0<$I^8%im_A6Sr@_S)MW&jdb!@7&srvWwo{coT_NSu~}6$vvW?C zK5mz1y3X+R@mcDi;j`3WwX< ze?}dOa#R`rm+cFcB^&YJ>v?n5z$}-R<2@5fV!8+qTlK|7X-Yn_$h=wV^@i3f7o95n z9IAY>^T(1f60He_nJLyr3XE8!9%(t6yDL;<(vCok+1)jDE= z3cL33+h6l?_q!Qd+#DL>EU zdafQZ;*Z&HPGY~mXLc+zv|c3j?9{B>lcOybd*u9im(vGwc#aeTfj)-6G{&pufFWSf z5IygVufZ1gtCvWv{r&w-e~%?I)O7jBM9DhI`~@BamzI_WM2vl?zQ15i)3>I|rpTfX zCmSNhifDl5Y*s#VcY|sUi)-J*o%bB3C`c~iMFsuN%f{7g^zz<6vk`9|iUZFyeI=#$ zabEY;=K2X7Ikx28&B3Xs1|T%IhPMA^KZmKI4S*%t3<}Kkpc(e6ZK?(9gSGtn0Gm*5>3ZdOIuzI3BxD6vD%b&iznT zwb(b-Vb_pn#*(*hr|awM$$F;LRh#%WE9tmX&Mzld zSz2-t`G>|a$Is7Bkf3etC(n|%SdcF~qVMrX^X!v~FD{MFrPb_|Qkrn7`L5aZ0iTRd zPab+BPg^_8%K^|pa?!~G%Z>l*L4!`XHdxYJR!zQyI` z<-jsi)1mI}mwYFa*45PI)^UeSffok+2`2BPwIW&9aMNF_R|OuMj3ZGPR!X-=zIM{G z-ipMcWZQ3J?o_$V9%_R?$sQT@DbpHELUrQCz6{aw{r1UCb-eh_-}W`}Z$E%HPHw{a!6N6g5pI=@5HA?oS1#-Kam4`1T?MZzll(wKqt@$&fq!nwC_B}&Po}zk(ox&xHL6+a z`*R&Hy>J|+&IY+=Raf(Q6M65OH#{AK3+om3*lwHg?2~)noco;`*TD75Y2shA7BX;z@23};8cJJEBTok>0Gcm6zXa+Aib{H&r(b=>ANB0K zqo)>*b=LlLwW|<%yF1T0ZF6>twrkFzk>c_V4MmP776@!ZI2RH8X?)PA_#>xB2DdF} zx`ZT0qBcp!mbxHL$I#|iuOiBv@nP@)Rv9UdwgXNkO$2leK*k`Bn=9_5cWCuf&bw;b z-Dtj8mJ6FnG2&cUmBX6}M!^})3YJCS3d-JmMl(9^Y!*!w`rW~8mpJDUM*9S;tciOwRGtKBdaLH zI&AXS)_Y?>W&HOPIB3}KJ8ipq|ENH6POoIy5vh%0>4WW)md6(a?%9(Ut$l^V4_sv7 zV#UZgUAuPaYZCu(?c44r8~?K4kHYYy$3N#6pV-q88V<<10` zG5^FBi1{r5-X9w|XZw#Cn&SrcPF;B!2Lr7YnFHNbb6jGAtFV9YoOx@5eUdJgE9mgJ zZBXz$!i~j*j8}FKyw^FWr9_`9-1q(^y3i-Y_}!6aX}96GBxLrud{cU)`n}OMsTkzS zRQ%+nRu2KIo7xI zQBg022lh#2&9&C|FO}oq z5Bv`mzJvz^GS@i#)QlIv%U(OFu zB7lMh8+%RKHa2X^zkt=J-L^6)J8+ai5V1)4pdYBTz-`cqtF2#?`!CLQ%S$y!W#C>q zT5ZDb5#z(cTAP|gqCK{s5_MnxcTv8^pN%2z-GUl*Fk1r~4z?Cz=jdE}q47fU-Foi- zyV{9F`VhehyA4x$ushfa%RSMo4Boe!g7pm%SYB2ZkJe4az5avWYHbKJp(aTP!^xtog|+y7uVSrnll&ZA8B|DgSdJIG2kp=p6^Pj&FVk>VJc zgcY3%_z%XrrM+|HRn>N=9d2?d_PMg@Hmu9lzV(P}wf8-|pQx(P?Z2n=!m8Vht5&Me zam4~)Fu?S9;hX}|IR`n5b4s6`TeI{lpPBzzE4Afc^tNb46WsOue!8cwM6qc_hA)2p z-_7?2n)^folu#t7Ii?PGz>t5q>Fu8XA&Lusf6>ct-cCo0hR?43F9-a08_wCvgg#0u z>(>7N2N(Z?E>BJyh5kOL+;@p`P9k{2ZyjM3_^hdQzXe?bld+b%;=-bhGjewpI3SJP z1e+ZepNF;Nt*)`=0)-ZnJM0q8f+RzXJ=5Uty=j)0*)u6RchUJ5-U@uki$emx8P3Ns z%voT;uM!-ap-WKnq-xprhy9@A^UYz^OI#L)LOzyWpeL9bp>AQONkU1IrfVcEQ-PZU z0g;^CJ)8E1@`AXSqenlM1nOc9u^DF(+Dmn;wYwV&DTzLQh1m?!J?+kLO} z_>P|&{rZ3BGs1^yHxzF;KAfHiJ*RIz`m5riquc2mX=AK~W$^%^nHFF!MdTk&*l5eW=i0+;Oe!WZ zU8p1lNB>xH3j`|okjL3W`eQ;A1JM)VP!yf}Nd2jPBX+~2FnaO^f2tmp$lfAFMa7qV zAt=1eYXNi?N$z_nT4-(UgCZURGteIWl?`#;%34~3MU$sYxywk4AbFp2w4H=TN{BHW z|L;&`=z0sR9ifT2u|hOmGO)Ab`(64^`xc!SJPTp))!rv1KtVe{PVZ>L)xkud^Oi4H z?!XxZ?G*Jk#Q74+rCChURa{hzaQEIC`H8xh9INPsmc(Qdr z5giK%LeN``wYH$ENL)b>*v^^r1hRi^|4sK2owjfPg$Gzy z5q2O5E$7Xi?Ol5^$ohs8VhhQinqmQhcDp2bypr(eL20Qk^sT;`P##%n5IEM`+nYyg zT|$9PAH5wq3l^z?y`IqWJMzZT7xvFWsc;nWHG4v5Dp7GQe>vaFO5UF(mbXpXTTruhh^LDGma z7v7TC8n(38yth0hgN`5TYDVuIxgEmCJ#9f@0gG8*Kb<62B~nFQy@_h(Q$c*tqVs+G z_C+R$osDzgl<$Tn@z>a$Us@|P=Edm^72)0?4F`*3U)qQ+Y(`=oS@*0zWFTb4qoTn@ z(MN_$euV|tCBRs5C=^h95=18;?P1OFEy6@eN|0RzN}^$a<3n@x#EFrd)C@jC)Glq* zZH5B^8*ED#vLb4hVgb6zk1iV*roo{rIk=3eD;(g&>}eAP^$dCf@FGAWH~`S= zK7K`yG!MojD@9GsTqUwcj~+~rQox7d_U&KrKbYCkk0*nr(k=IK3QF)6)zz=UeWm5g zintQB`#=57!-zc`laMC&Oa6WIXdCDEvx{hIwBY+3IB7S1mo>*p%kMxpL(z?E#Ux$b z;#AqmYHCPy-1tKHZnEa^-60f=647nkV|&Z}W1@d&2VtBID$ED+eIH>8Q6z;d)90Wl zKp=U;34s`j&O9eOo0}}SvD{lzsndY_7p@kmRpnck3DgpTIF!KgEEU!abr7|IQu9a^Wxy>J7Vl z{B`RInd(?rz^(I!+tF}DYq!xg-iAkcyXEBy!CVl8dKCC-$p!3PD7MaRjuRm>R+5MG<$;sP*&#Mk2w;f|TPQU7UpUd+f3$R*JBhfxHN%0^&zxY^?s8i~!D2c7~wYM)YPV_;^9nWl-0Ol`G|BWNtEbhL(j0t6^d0(FotVYbDZ4t*tKF5!`H80BL`=j@x(YX-`sSW zsTcuM^)?KD^l2n^2~oR=Zj2DoB@$xsD46t0=zn`QDqOFNNG^+jg6ASM5?EK4aa$$z z;I;`Sh?|eqc$b%z{T4W#^XE@cQyUy2_*=}ytALo%#L6cUV7sKCp>ci2W$Vm8O(uh+ zVm*jGJOhTH6h~=i`Q+Cr;Px47*7AV95Gnn5@=*0%kP0&#Elk^i&6ztZ~op zY1A*rNefrm55mg6y5=wX>7&l#o(WxhJ34-{G{S+X@=YlO%7T3|a&j?;4jB)V1k9Ej zkIJlz=mSI6pvXt9hn*xeM3a&*u2jb}X6l*ws)J!v=wfFUUqGPNH83b|yF&2|O#`ta zd&fOw(fNNY_LVs!trCR5AHTvnT7GHiPutw0f@;xt zl@xk@mUjBP{`3s(CNtd5NIX+L@95DE=gCK7YV7i#KGh@hVsCrL4cYe)Z12=5Be=w- zrY!C6QCaYQ2rAS9kX;}Q3zgu7(<+GaVU9<1VuPrEotAFlnSNyxauNYui0B%#lfP;F z*3O{$b0*(D>6&U9o~AW%zUC(vZk03L(#f)KXF3}J85YY|;mIyZ2?>v%B5; z<IF!{;<2?4t7$w5YN4A{*rvB7kR@>=~P>&EvdD=x{Sm2d3WcaS=9UOey*do z+UE8)0hx91)78)BNa_&OvhE)z<84Wd!F+4lkcB%(K1-P1XYVoHp#EE4BrKa);#rjFBtQ!iModhUv9HFB zmD>4S>we2n25TaxX1J2GbHnhgpEHu<+iXcBNsa%}4H~=c$#MZHk3?48WDHK^@hu7dELig|xQx`-hPD|t@ zLLL=6+uFe0YHM$&9M3B)jc!dowV?I7+zZEK_c7mw+&bWFwnb**?WX&fO1WU>%5=!o zmGXavWHL?2NSuj)#@w>pf}xudtyHlZv;8q2-`rmP`o$tVNNcs1AD7bnbc%i}1}|sYXE5cYQDJXP}Gbk}rX|!|=uD3O~vn-2hW~@tJwvcynSG zp&}K61yPYBPRN3{uOQBrm+v^<`73Dsa?^h2%+I<#nBHU8UpvliIPMp9XND#+_$>7U zwax{LYigU+eOsNZ7n?2kN+pPzfTYJmU2DI65M5l^Sv=4x%(P%t^c?wE83s|xaPv5bO;#ky(K**?lbjZ1oo+L2W6wA%5X z9qTx?iA6E(+LogR@1yO3GZJTBRaVHS_YVC1_x!WZ7Uw15Cvhy2ypyC3s|ugfqDtbfeNrlw z!?)c1fHT+>qc#UL=8KSX^U_c5w@{dXdzAFR$sTT!gBEtJP%Qh1i*N0_*qSbJZ0u&O zXwc33nVB2aeXwzY>Q_@$Ztm!KVWryH#=6Dibx>bVqdKQ%x3ZGSHR`eJq~JuQ_zqR) zdKr866fipWA2>7G^EI4OSDH7^#3~2382Havs>$BycO3!bt5+$yZ)~uDBXyA*G^kqU za9EXy4yIJ(v;9yB=GC6cT9-Q#a?F-WwXaUPhTggVc*!S}!v*@$h*^Hin_} z^~F6!mP?n~qi~im4g!yzq!esef60o0_k(ha!=$VBu_uXhT|`1JmSajYnq}XxdPjkQk2vU zZ&m2evVHfkx`eOmeR*Xnl*IY%w!`}F0a(G3g2exfeTC@f^$%!h#hbA=pgc?#Y8dss z@=7xMPqp{mRq&w-BoW0ej`qkFV5pYd@)$onr>YF2kz{=dsGUg#xA98-t-F>A zc-$Dc)yeyF!WxG5h`*dwT2Bp3&wTf+S@TDo@IE0po>3z32UrfAasw9uSKKDYvSjeS z(>#2&W*Y-ZaRoLssp0qf0tZO#EUizt-2jLP131BZ+uc^ay2Y~+5Y3b=jgRe#S(mG0 zR$O|?Y8!&*l8bYLzpjxP*Db)I&3>yS1Hn`cTVJmO3jW@Fv){R!H@7`GG>*_y%R5ur zG05--y0aIqRac9hKzJaBZJDEc_UhH9J7weZW2e0;&1O#Q$0K_NYL4t{vT8q!vFD58 zvuQHY-*%ZD((m}Km1i$paOC1ZWPEw#$SDLLMglNrL8N(O9}ySD&B+s!9xiU87(vP- zKAWKqj4wDkPsFH-qX!ObWrqr;mSUr(Gb%DtEQ1OOpBd+)d5E44!wjoyYNoZ4+TqeF_)I-(2Yt0(yH-(z(=#%hsmd?z__R3M+n-q{K}Y+% zB{>Cmg5-Xx{kJnPw56q_ViHCJZ?GLcnv&x~k{1g=5N6uDu@}C*S6@F=zPox9yip7^*;JLmwO_gu#i(74}JOk;`mQmX-0iy$RH;cyt?r z;C52DV7p^vbf1Vj{N$KSbw)9Mkh|&qsJ8f}V=_;cJt)HzrCWPUjUc%sp*>Rq?Mrkx_Wu$X(e88SPxwmPY_9{dzTW{t#uHpZLIo;T0^ zkUTFSaE0kVyZ@5QLF3GYeknfBCE&)4Vquzmecv9tM%Cb*`TPO>kTFV1FRG6kUwMUS zX8h+fERw7jPtGa8CB;HMUEfHUEsL`X^OaQJdmBug7~V0cY)V>L-0Fo}CyW|3ep+-# z&f~P=0Tcg+3-I*mLup@M_AsZ>m)5(?n-XHVn8T|%gA0NFnpKN3Kx zr%&CT1lui2y0FWw!iIb*frv{iz*OGbPAGDdNm!4Z@%{tfJsh%H(uf)vn*;>FAKe2F z(9h_S0SYdd4;y~Cx2xxI?+-&o3&#%R;8zS3rqH6^_+u{hY}^qh9N{!#E`F`Fo_tgx z_QR35zc>Po9-|%=t2`Mbe~eL1B6LM#!qzc8sr_0)u}fl(g$Tr@i-H|VyojoPtkGi#EMg+m zN)$pTeYb&(37Vv&<)9{5Op7Z3?sP>}d6VJG1x4WctENN?c#`ND(Gw%4W0zZLnLIbl zjnf|{A}-GoKbhinO6#+*5F+$L}7qOidSH5*qP06<5~`FWgcO7j|TiIsWvx zq2a#;pYj=-4sD zYl6~i@=2ih?q>h8Iq2V(5Y-PSp{Wg$l*h%Cc>)Z`Yex1 zwo-jKdh~0XMk$i&ZUJBgdu?U1?sNCE?GiC$NT=mR6$CJ}99<44FufXk_+hytFsMAU zaBQvSY5zrI2a2W#DMw}7QR)ch0l;7MjTT#22<|bctEpYvFVscffI6bn+1J8 z`8S|1)r5v@D6iq9C)!B@dHJ-~c~hFvPo~Md8W>JY0M>4*} z#e2+!ML@}o7TcIx2Ab>Wc|X1?-XeiS(L33?J|nk(WOpM&3XPVxC3-nl;I+mD}`K>MQeuv zYWhn8-Z5|$jw*U;U9_h}&r|lLH;3hdV8O+Y3)dDNjhFMKLq&&W$@ zFbZ=`jd@w}{1BWCq2CWo2+|_hgHQs3-J#8*iwfKAW1M#!F>8dhCLT~5wvL2 zY$w)3Zr%a7B-Fwzrf*iH9%_gGwQvkEFcr++*xCzkdct$Zz%ec^j&>j3Dp^`TO`aP+ zYVfaYLNsD+JwfWU+!u#F{+-HGQt$8DY0&jqyH9fUx8?qHcY!XkQUDV91*VT{X5%MW zp(Oy?(KCQ;hViRl`vzJ@gQ*OVz-<>^(yEt~w$W?Fnb~>SFAw?_08?jtg@uy*;leS8 z9DY#%_2ag^3!%?qY+~Yx)fwFsTs@em?4a?a+BL2Qt0RJ4*DhUzF>TZjg2xtx6U`2x z_5G768qb_XK@uZ8A6$XiC7cm*oA`eZ!wI5=OO|L-r?cG{IP?Cp)^^E)9>zX~o{&Tx zie7P#*R5SkrHEIHH)7~;u#w{E@-(6aND6yJu85{78Ha!d4e3vNStz56@$J8O z_3E>N&6$5mb`h~J$-Q)RbeJU+R=mH)JH&W0R1Z4Xn6r`zKyaX$kxt1QonOzPw%+t{c`uD0o#J z!}_;ptt_BWqJKeVOEu1%0_{yNRZEPUL?^os>{k*qz=)E$hp4kH-=89sKlF6Bu`?*4 zP3ONIKEQ~>Td+ zH(fFdY~!Q4i86Q$L<6h^ud)glKq0U1^SZv3Gm^>^;|1W7y9P8FotaZNPk99^o759G zKMeJ|iG+^x%S%A;3>P9IG>vvBCR^o(V6zTo$aK&S zKbvh-tk#Kkvx!xLAG~jQcGtkAIl5l={^{GJYi?hS=zF<7&Pm1dJ|C2;U2?|zgC~HR z(UczPCf6(6a-Di;PpPj@9J(sB#@i@(-HoS?ZMVaUDRgThdnveUqMH%4h&Oz`t~^s@~{A+b_@PM@(Q&83j@Im3_JgOJo39osG3 zi@A$^#b#aMkV>wR%Q~Fi+T}@vo8!0>j?Qx>Oz(;h%+)RGJ@%Met-OQSEbZdtO^1sd z0WqL{U}&vd^DNvm=bx8~c-6#*8=SgJO9A)cR`51bEw8i@meZWh+^yIaH&Jceq@%eh z`;5nOAhLdBIkyq)?RYYw~h z>tPhM%S+W+3!^l@ew|7ig1qqK-{5gr4j~}19E|ocd3|skbBj_C2;w8XEe@S6uSmxEd?fD6(6yH1zbMZP;hxB*XBICr^HYb#kt? zEX~|D9D)IN&0}a9?g0;7u>blSTIrpP7cy60*564)TQxhR*zQ8kD~Zphjd!U4cF-~A z0HVj>z%#N^#Y(mD)s^E$C%09FYJ4u91;5nnz!USFC~5H~A6^jJY$GZ>NeIHP65)YoJP zb8{$I1hyBjG}ZO>p|Q$R&P$i+G_t%)=Ek<#z53jueDFLR8cb(_+X=el7h0mHd?&I4 z@CY(31f4Z)SiJ~oad~}A^rvlc{#+0fSP-|vP}*czGdD{056^Q|nu&B(V|~$%VtGPA~axv0;$M+<`6?e?R{4M#YtLm0tnWK(wxBoCDDZ1rJ&5``q*968G%m>yl9QMq&M+n@eVhU_q>-iJ`Uy7)1njt7k(-%@%06^?1JepP03MLw zDU&$H61dB`IB|D+?h`NOMyO+u$}+*^B`JH6*L^3gA%h0#j#$}L@to72(||lh80Zkk zfWmpoa307s*hb`7B@E4C00*pqGk*qC(}()};yg*^Q1l&ER*!dlp-q~k$evi*fh=Sj=AZu{$3+!=K6{5!Xc0Luup1pf*WGrU}0n|UpjUV8EC zY$R-B$EwSQ*6C-In*$B(97%0$prf;mBNlTE%-*qEk;PV-d|gf0WSED->atrkuew6l z_#1sjbo-pX;q#*|+@}prO0J0G>RK246%wsxS?>CN$lVw9)Q*YmoIr)iYuF0WD%@vf% zpkPq6*Lcy8Mu(adURiAj^D3c8FiFMt^xC~8f9R^hTsrOwRB)C7RgWv?IwbfU^EzR3 z&CQv+rt3SLCIHl~8OA+!DUi`n=TN#VO<1BNB_xs*5*Vbs-FkJ^>y{qfyW`ie^v92N zX+k%fe=@eyie?T=n#X5+6^7EdA2w`!gc(4eI&%@p#R)h-Fo-;voBJqG02&vR+;mwt zLsE6{T!>8g)v89$!JrcTCs}}Q7(e)9M#FDQ3@|kfpGmVVE{ock5_M0|%-$RJ{rx$haCj0?Q9iyvzbpA7MNzxH!TxhAp z%L1?Tlhe6Ma?(F&l#-GiHwemR6#9zhW??jiZ!|z%-q9&RxwUH>kCV@k;qFP#Wvws@ zW=g(Z;az`!rVD!3$w*7DODUbNOtr9xP!hsJyt*tVJy$1;1-ck{LoOMn6X5(sg{bsN z&TU%j(ynH=1MP6zNCIJdT%_H`E8#XlwrhopnWW-T_c|ioU*&d6@$BLUH;GK(IoZ{& z@dYvi2HfjUG@eW3ult0;E5NzVR(SASJk6_XkjF_-`w*0DK5PA z`@N+?l<+Y(YE96Unc`!pQ`eeie##iUTXkDGHk=~8{gNh)Jy*@nUL{dzj|TYR+JdrT zqfz{esB_Sf!ET0+|5+4PRo6djRle7tU}NLS-%9wWjLhz~-*z;8`(~G4b~Q)0)$6}+dZzuBA0eAFAmrh@ z6>1;)@GDItcB@+ryWV{4y% z?$f)^aJ~GpmcBnb^N+6IY!aXC)Y|gp3uYrxqq_2YH+$cA2qo@%ckkZCV!r!%H%vE- zX4sxIQ}Wpw)zm}yjXpAdR=?%?2brIh?l!}6{^nDW*Iq8gwjrf-Q!V2U7_TP=sKH>8 zrP1}}rN#;J>*y^zd8QRO+|Ei8{{5yT|BhA9cb#Qu4B~2Zwd&9B4Ot+^n3aZlOW`*z z2TqDF3a@_bTf7QBRol-ec9Y|3JRUw&KKL=J{-PWM3h|SAB{z;=4QTH>Azote3`vCR z0oL^m4d@03_TFuB$#by^NUsO}!y?gz5%+7m8cTM&W+iv7VC<6#b`uBh!}3GQTll{6 zCgSlDy=$5l-g!O}r*pXz1t+_^Yw6-Kq*q@{OZGpWAo1R?rzn7&PeTU&F&cC zo#jW0)9LB6^N+*0m~3du;lr8E`MEi1>*ZUTz8N#HToe%0>;AcYU-Tvp*r(~3Y;QKoc!<2 zEt*GjAC>C;?1;GUvJyvdKwOVml@|Bp-69SitopP!V-yO!ojbcMd(}l=0X_!Y@!f-_ z%Xo;j+WBs1ygemk>EmN$f{eX9eCU03jhkGM(j4QRBfItJp^~E?G>FS+*e!T@gsNQ> zea-#-sQI>)>g5B*jL4agbS5PwWu9`CPXC#+Vw?2X2my}ozjj&`O!isbtJ6Qmfh?%Z znW0Q6Pmejp;GQ`PT_JaQkhMwUhz-%_++xmQC-G)lqiW3I<6AUjBaC^AN`*a91?}(s zH=lCUT;T=FGkA1C>5Y&N)wYkM_%eFm4tO*K-7PhaoTCUB%#_&?CC2~0a6mv*f$TEd z2E75Zm85W-TQS(PHE$H6UQtH8DCDetuboH@@e`kWsz>}a48c8jd&lLQ{`pF#y^I!w zRs}1qoiqSLDR_WyZtIaIrONQTO3WY;Z96pb`x}Y6UN(C9In}OVW3?xSPng;Gz+P41 z-}moPP}5;?-tu1ZCJHDVj5a%8PVyT#C5o3;M(pl2PmRL&^{qL9XLY#5jQDe>sw@F&_$h@`xevFdB{&I=x<4*Z5a&u2{&fYzN8K>f(&luIm_WDos*OD&Pchts> zn{;fRlkCBy{eMKE-(OGT6)*b;x3^O*u;9~}gV{Rq*M3Fy7BZp+`GaF8io->+3FG^S zDy?frUfzMGO%>;ho`aUShEF)Qb7b%=^mQKjExd(j>rmk>BIm$h*!^Vl$)deA-U}oo z2vG;e2+{7`a`AXg>XFi%!o`(s$ISj=Ai=is!puyX`Xv(mg*Py?ed-WesgoyoZX9G~ zy>b1L@2e1Lrbl^zoY{kE>Y|R%k|vuDoINWT;agwoACzgIQqeBPCZ^uXw!?0&JX{E4 zm9BgmGa$xC&S4D;KM>nJiK#C9$A5F!|L^^66)n$t@0H&SOiLQru(e6gKirfj1*EJT z$wVv1^YS9SN+H-+HVo~%2OxiPLb7Z){zg`+p3Bao5LS}!} z91vk<`FqzLl<_$imxfx0DlZBM8ukby<&3gt!}`veIy}ooGr~B;Om*-I)u^5K@B23X z>>1E==>4%G(XUPYgW_p{Gt4+4HR-D0JK@;Ckb3S3!RQK<&P~gU^>2jq)?Tvek%Pw4 zRXs!>Z-?=lih2MIBr!_2qCNn5ro-(RI8T%Arsy_2Y^@_si= zn{Qs4yl+$ir%e@YP zRfjKKXYyWH92G~6hr&n+#aTvfPf!;<$3I_PaYM92i@}YM`ODsU-$4lfwQDq)LrKMm z3Gt$ESz#v74}Vo;VyUTlS_Pl(H{S+{5y0TvbRH)f-gTAtV4%yFR+Fl+8Kb)Y8T7-K zyq=ocKkiDomPM2?!96G~&E!&4PPI=u?Zqp+!p%*3-^0hefB!%4f4s9LZ<%lOxsh_71Ns|eBXd`Z}y-5v_%?uYL_l{laG!RKkcKR z-|Tu6e`SWwEPEX98GY&8IkR(bcgKn<|Jo_sHqA&}4-U*e%|SFzWl%RbG|%jl6HjDI zU6>NyduQcVo$GCF>$UrcGDdaDAKG2C?M2a==yNDPC81M?oV$AUK-JB!3-S)<*dZg} zKJt4opd*WlcBx z^;KJ%k~Y`Y&JqS50)V7prhw$2EN3<@o!f&`i)3JMghYddxi(Ect{cO3IcBfN*3! zQ=JW#HPXD2)!TN}B%VHECuRTZRw57pSJtCPanrmmfBHlxVF$ccWR=zw8Pxnt^Ymz{ zoUz+zl7Gi`#i^+2prfF79nfnhgUJFxJMbg{IZB`dJSiJ}kPh z|5DBY*Unm!{AGjs{~dJF=RP^2hZ1~4H2Z3t&6xS1k~$SXLw&a<5#0>mOU zu=Z$y!vGV33bFnT)Gk4Agkqp^=g1@T&OnUS-G%aTgRs^=e=a>|5f3$p#S3u|ruQ#s zTUf}#4A153q;uDR7Y0}`-4#yuZE$bUR)`S4szMpA3@6oyF>Ul0p|#Q7bfaxRiyWX# zn38y{ABZqrCxMOhCN*i%`Co@8b{APngjHz}%I0`X^nOvStP+_WY$gdz5~9S+Z1Hf< zTf>$nXu`~+$Af^$5-|oeUFMX2xh0HLEn2pE{XgcZqBWu z8N8kDDM5|npd1n}J8aD8(So#_rWh;$x*gByHy=EBaL5E}gnJXQnM9Iz0(!#a$%&tC zLH7aLB^G}j2G2gohZRPD-w;tJZR;oOva-<_#k_rcZR^|n{vMrT zCrVu8&K5X~HLQRwK5P2Gj!xORbpa{ueF~jZYDlay=8MOB&HN*v1|fnwJpbrqW(QTY zwfX)_KVAz`0ExtY#gp(SAl1eMc>c#sf(eK6@;5Qi+089vERb*NTu)C=lc0)v9w7y{sfR-DrCdpXJMohs#Tf90zV1FM7p`R?x;c}p%3gboW;=>PI0XlS!C~IJrWQL1Fom^s386v2|Jc#t20w$7k4$#@ z#a470)&8<=+o-TAW{?Iu+}qimC?=OhmXTCkS6w|?d?)N;9XSI71F6|du2`>J83R`X zau-ee;=$;XG9?V*m2e5oxB12X4emXjeGRw5HI=msmhH+#>V$#qXhqNGJg;w6QQk;W zuF|M^*hIGGoRVZ*#2o__Ww=`CXq6d~uV*q*s(>g632~No(vb0$P6OI~asW8acdWD9@uWwBRK)HjWCcbwVmree#DhA*i7v(n&rf+4_)Lw z&)abPF{fE!;bOJJ(iZp%&+5$3m@PJXqid6k{$yt$J&%Lye2@}XzWVNW* z&^^-5gb%n8kJSNCnuR7Tc?T!VmGo9?R1?Kws7-GY-Jv%Lb3=*7KPYiTRkW&cgak+cQQ$>Sc;umtWfx!w2$7!~8?u736in`efg>C^eM zn5yG?D~LWv?eC%|t`kPi_`tm7*$g|-f6=`?NaBI(%9}G zeNUFf|Jwa5SFNQq{he0yrR_m!jGK+J^LpwX^L4}BYVU*t(a}Pe@WY4J@X=zG^1XH* zID9y(1V6cjsi|PNI{p_5Kkjv(x*_qsw+-WUdCG56NI{jPgu!16Qdtj455I1SpD>O6 z(Tjum(||dmt*_7(WZNxDD9Ss6zaZ>Q6}!8~c2(5-=jtxY&K{a16IK5CWdcdb$(%tWqODA(U~ z$Be&*&K@XomJkwo=Y7ef#|v!(B)@lNo;FibDfryaWL?{b#bJ+aQ%b!%Z2mqsQd}`C z^GSPzGr0838Rye`;51z9{6;%w7%0YDN%g6K@e4}~8+;sN_nXVZ#d;BRPG{dU4-%ek@Xk+N*75AENzsl|T zUMwTCciA`UU2Wubq;xxMY>pPqDbl}q(Bn%x3fCV$EURqAD#gBy+*3d%0T_!>6u@!X zEw!Qy$7GwETW2UnXgIx=T;SUyASh&|nnds3D&r<-9-G%?#m67V<3ugtY$sEt$ZV?S z*gkfmjG1)?y9+pvQCG*nL@X>6OaK@-bN*Bltt(`Y+8krJQhe;NykY{XeTfbaH3C`K z`h@EhBLw<5=@ZTmO9O$wUS}RE!Y!ztvT5YJ;iFZ&FOo z+&N1XQe{R_H^BCWP>SqjF2`G6pfX}$}LX*C-Xz|ogrz7!H% z4@Gkf)g64>9^JYzYwpU|zYTd8{p~-t5@~e9Rsj0bhC?xuX<)^y3@_A=27W(ZTv`EU z#mNwkb2Z_LLK@fgT>z^DebS)sJVxA4lBjtoewf;YVxfh2lh;2l>dT9d?xZz2G;@oS z#;h0@7tChn?AS_HMas#?Mwk7?04Zn0<+SQ(lkr*-oy*Ivlyh5GTU!eQJee=oqR%<) z@9H{vfWQqex6udh2#{Th33c=Bmey`FZsJA{+L!rutFya~91NSfvr7b;RB$cnp6cCe zY<9^&Na#O)Y*XX_mdm1j1NVj>5-p_*`b@l?VGer_YjOhP|759X z)aXsTPG^6fb9U}%X<|c7Tbg|+`W*D4fSnaeNSfR|!LQ@svPpU9-ux#x>#=({L-*m*{On_k@mEbl%eV!P3*~W?ZE& z!g|Pk{FoZ|C#gLP%#W!>P=iU;-H^w*G(3kO$D)rl^e<;!(9}f1VY2%|V$EyR4Rwq> zLxw}41CdX)OJZuw#YvGK$=nZVxGG;cZoItcI{xIb38LnR2n#qyd?FlB$pZ4_U^B%C zcnxIP&_ngcjM)JH7$rId7%;W#>QIRa6OrkzkrPE=P@b0%jYkB2%ou-jYM zgFeX18tfJw4hk}*w?@L_04d|c`aivf)sDBL<90uO(r56dM3qO$ zL)UwY?x$K$iGJr%6GZ0?m63s%!A_urwpvRIA#W|F{1G|TY$@_8uIGB0^WEx#Py7b_ zlA;Tz3mh<&-(91-OfA3pHa#+wPgyQbmeV0eSgMfqjPozj%O?+ED@$6qx_)IbPNX^@ zNk`rahk(;wN3K8mHDk7-vZ7~Cf@I8sSBuYELXNq+K6Xpi+G}gXgl)7fqsU3d!{jjTwF0?t8`}?&)3K78MIWuw8)hjv6GQ3aY!xQ{^(6y^8&YBNLgH3an zJ3zxsacybi7mMdd!v3@f?#N1v7q}|lzY8`tO!y%8+_9qrpBKSM!8+Md|H}hu3=zl% z=_LY-Yy!1lyhVC?dXDxAK-}F%E-W{8I&39@*?DIC%D9o@?rwS+tYef+RI(=8yFSKN z>Et;kV`~btY&#Sd;}`TCGcq#Z-lvt7bIbVjiz`zFo1TlalU@53eQx1k@q<>5q1V@N zA?=4Z?xb}%GV)`KkNZoOMMl?zN0|;J%J5Sme+Km%Mk||{kPrxfo(`<&`u^B!q4Ls6M(D zTBmbSz5Q@a8+{Bdu>>RioJNWRFdCG%R;uy_+i#l0W81W7?b>$)*$`n6(Qv`D=>F{G zmtKcq@>J)*pbh?sSlS=4E-R2I@$2c7e8~dn56>wYU=LmOh=I{4Ft)XO%3SR_8IeWw zmOF?nR@vB;8Ho_HDb4{Hs6DaP+@v;&;z=V?)eTB4GpaTp$%} z*aN0WyPcuQ{g21ufyc=C<1}TM1v6}zaQNIn?##eqSjTuqjVFM%+(#YJh;)I2FmK}m zq6dPe1!!+%L+MjP<3_pjh4U;-PWL%*gMIEXG!wr8B=qvV7!A&dWSA|Kb|{zNdU6=P zfqY!7wlu+mHZWMHreMcN6@#TM|Lr2j7^1@r^MTRWJHKPzf(3kjjG58} z1Q#$D-@EFj0j~tpgRklL=GwX-U@>!Zijm7doq1s=p)>DJ2epsRaix~khyUca7H^YT zX8~zvUVSD&T3_;fq!(iRcVy%eh4!MD_JJm17rF}|`Scc7Z>GQx5qbi&E`)x~|AT*r zB#h^KY1Xn^SdqPVpCU7p%NkI?<762lkfr8cxoVo?DU2#8E?Scb#4wu&?e0F~rfW4M z1pY`2;E@pgacjVhqTOPd=$x2?fDa#GWeY}-bou$`^((MddjUHgo0qg3Yt11LIe9N8 zR5JZ|k(Jf9wEJ>dcvH1;V%Sv>6Vfp$Wv6{lNE9vnEu`b}tl+&k;Eot+(#;$iAx(!Ixzv7k2==u-T{)q48AEI&%t>IJ|TRAPRub<1frybHzL5_+J^b3dK6L~r`B`~!kk}# z#X#2mNPGo6Pcg*!l%)#%A-KVUNSG9w(bZ7o)vT}A;*tegaTgAmi7~bc@(`d1eQvI< zH-ImJKe@q4KZGj*r)+O)`@OF0y=xm--KH{2f&dg3$pTh8sO?SGIs|b@K@5&XE4vi| zB1$B|!(hPzA*E)h8F+h|V4HUKtY9g_1!6NQz{tR&_)9RC)f-IIb1y64HX)dbmd7B^ zykDehlvV~mDtGZPlWr^$Z5_mrQPH*^Al#7Wm>TU&CZUCm(&9dN}j#n$=Bu z3yig*Lx=Bm?ysvU)7SVqa3G5xB50_I^sr$$y(@I1b6Ytk_si=a^YcZ%BBZr!4RFjU zESr|rR(l~cxTt(_GUk^m1HdyUj2Ms5yZEt1)TLsR8Im!tnBoiPqRpj`Xlv(5`m2?1 zv%0+F@aodFD~eU@#Fw|%5@uX69sz!Zs)v(ptaI3;-=;f9N?O?2DGiv9zKh%Xhmb8e z1yc4IU#DVZGp}NtU|vENiQqlw6s(P~V%9w_OumaC>jOHMW}}~UyOnOH^dvjmWluq6 zWhKidaW3rWukeSXH8#5D9P65~t1A_LrR`E&;*DwL7{709gt53y(N#yzX)a2P0eBOx z;4#5-8d&C3XZQBGu3@a-y`Nu}e_fY*4u8;E9FoXvUa=QAlo5=4|5z9l`-QvCIK$V1 zdN5p*@fQ$jJ(-WhAEsOh8+1*E2m>-$%4Bv4@Y{&rBm{LYFAbX;MJPbE8Wt87H)TT@ zBL`bs&CSj23nSzFT9?O~4`GE2A6~{vJ#ys8g9pY-{SRh8U?hu`Rduo7*m2`rv<`I% zm>Z0n;0a5WgxV!oVzXGNTfpBtPvB9Lii-E&ZpF0a3b6?;A=`%x9`-zFCl+NfMkm22{Rj#GS#&nQ74q)KFbKjyUH|o3&w74)+YR^qy|3#Wj^j9wlPl8L*fX5svv?h4R}SU zOR1*xa_}x%%eTf&O{c5cuENUDD;x5)5Z7MH8i0rDB6S70feXtse8@A*VZai=Oif*V zPqx9?jB+)3{ep2LAFjHDQ}89#3vpQ)oFjhU*dL>%^lrtO$7ZjkX?VBV`rW6+o3B!F z;-jF^Z1dj%z?LR;j3hQ~(oyQVs$H=u1S|_EzB^K@oW71t|B(l0%wxkwnGQOPAbrt& zpRpYUM)ZHGS7>Aqa&E|I8_-#|tB2nIK^gy;U<@`&U`j~nBBj?uq->2sQYl1Jb$NMD zMaA#1F|0m4vuEr~(&&_*UowS~9&_OwlNWNa&qbr^`{i~=UU_5n846v#apTi7yHise ziG(#p9_?ODS8?8g7G!{?NYj|X7)ABfu|2d14gO*vtkTfQV%BveK#Yg= z=_4?G1ny@E)JPtY8I$a`!m0K{pNQ%mGlvQ-(GxQXh6=TosUQgIs7;f{Z!Ba{S|eW~ zdLvHNoVjzSIK7hkk&C%aFILepOfg7`tyehGg zk$g!q89sRMj{ewdUs`elOaL=ZYKga85Z43Kgtsbe0+bAkWrH;>{=I?v7w!y zVZS#q@iVV!w=G-*a8r@7Cz}&(Tx-C%;(cDlJ>^_f* zV)Eo)B<}4hXwh2$?LZH!%Q7;6PYUdbtKGYG8-O)Zks&rc`|la;R}!=+Kv^k>6>bhq zp5RKP@!+FJsZZdv5^*N_Z3;vu!~hbxn?3OcYf>z`_t&MExii0<5)UT=Qn`|X!kPS! zIL(3o?8cIjWJ^&%jY_|=fJL8bf#A|SAmpJ~aS$=7N|}5=bM|aKPCQr$(rtjsiN*7{ z9xV}NeCBRT-=pj4X8A6~(QuYdlzt>ZvZM3(Vw zyU)W6_qx($`xgeenQ5ag5>w>VonOCxrREjKi&Z^Mf%JTg*xX$;hb9=x!-fPdEm)*aOlNa0s_uA`{TAj0nfGkt(XAx%|P4_*Y9MsRm#2cb!vakq5bJKB&nU%=wGRB4HQ^2 zXi!>ON_{*&G#iw%m;aumn7Nv>77Z|b_~tKpXyC&$@7#>HdTD{#T*f$ z*|pb-cU5aGZSpsa4ncK;x~iMrs|g91h6hkrQ&12X931en9}-E4&-@r2wWZ~Wu&~8Z z>z4eN7GN2+cr6+yp|Xkr5jjdrUlc!h?F1{z9!-o*J8!>8?F{n4@mZAKM@nzDh@>qq zXvPPjpYU$#*l#0Fd#f&Si1V^f;x9zdpKyS(Emk|1-DbNoZwFfJG+NM*_igz_Ukho? zfy!ZbHCoSq%YE55?Cz2mYnIZ}F>5{il^&Z_m9s7lzBnBHxoRXn6}vKDfBrmBPVQFV zM_M5ce}SzZ-n-c)C1H18bZ(rUn9rogrAt>9p{_ZQfp0Cx9WxtuxR==byeD8Eu&+btamQcP*~l+8M5w3XlRk(+b&-Y zt9>Ks6T4NqLURZTYS$kO)G+vCk@Ev=`Sd(>s+0o0P?(Egl$V`dO^<+6`+5w*W|j6j zxB1e_(=<8^7d!SEZ#DD?jKEDaKO7OrQCe6S!N={=q`s(6qpJPRTrermnhnpmSECu4 zHwgO;u-Xn;&crn*sguSfs> z@$+L|9yg=&ft&wTrE%;bHj7)FW}TgX%;c_-befmFGU-s&<3!7z5673!4LO(MXlie5_)lnK3FyK`S6K?fizBsi^ z?K*F>^mJCfF)h>g`$&|lv(4P{&Mn4C$NZN4xXW_(i11z0=EtnboaX2;AHsdd zS;pS7oS7P}@Bp>f_;h3bu*(ISGTSek$31>LYqi7T+M-JZ_Hp5E^A)8o9JWpzA2J(3 zb6*x=7~^BPlbY+v=+073U6iv*YI4Fm7qL~~Lmz|O zrFprpV;i$qk|R2fWuLl9Iqec}X`UIKtZ)RyoZ{&6h!*1YfqnZpZ ztj~wIPUJ5KoCFYXX^gDD2_Msa%J&sm9SETu5<1$+JLccns}3N^PtZftRTAdH2?LrC zOjLehE8z42tf|P-=YQS-9uzfPB(}i`|aU?9y2#3IZ0MPu>s9~mSgQnY+ z3s1b4Y6Zj>c}Vi`1aQYz#^B66^_LnZLP2%I{nF<6q)Ap%F-c;1H7vui#e=*9NWZW! zK!k@5smSP)a%q9zXNNXYurTwPcHLE~d;E;b1s$Yb&1Ei3Y>sEw-)krKyZg|j9m~&* z`$R>M@v9-!I?<8*Lj@QhATp=}f=4O#HpT{&PjgI7fkhqZ5IAu3$#J>1#1ooFkMLF| za6pUjK_!fd)^pSr-4Y<)wq35>vz${uoo=kFQ;Q@Of51-x6CA1>W~t|xm~>t`Cp_S# zwJ@w_n><6_C|d5WvbbX3H>Xw%0lK*ji==IbMjdPWfRmJagkj|qbg$gu?cmVW&chy%uTO4HwdCr4$w|>V9${|0Y zzq|l~39;x1=d!cl;K7{gxt>s(sM&#HsQQc|=IQ;a%j>*Tf9R2}{dILf2Ljkt#H(J? zb3)oIsd)>?8}8w$r4R`Gx}2OG&e7xj$k2xm-}_79)y-VH6r-rz=PBEE6~k@qw&fF~ z2pV))6jb&g35`)oBiM%{zY|ZQIDfSC)cyUH`kqBGb;}Df=8({3gO)bz_!pLp6S+d zehdQ-Y6c!_{pz3b?cs2diSd?SYVLw1v;7a81<<^KQckjmJ>bUzHT-)4hhIlPUAD+i zm!r`dhcQ}s1?2MIfsbXrT-5lV%;xRmK!6#5TKK=g%hMLJNa9pQ6HU>gbP3oh`oh)Pis&S7*KVbI zr{uheT8@(kK8M8`_YTon`o)X$w1S1$(ZJ>Vmz9G&amoM?#!Ezif4G`YmlJ25HWUrd zv)4|-(4ArZd`w?f>nPFG4C=iX?6&&DE2N980P*HV8$5#)W-g~_K$kE~fsseYo5T8I z_k)c$1L{@uW%nOFQXcQ1EPtuRJLsT=Bo<3&3ZO-?FQ}5JI_T-P0_Sl%Www7IjzP9O zW^>AGC%OTeh|6QT4V>~5+;Y$E-A!3uTEP+=@rdHKsYO7H4G7fa#HMY0p3=BIxelp_ z1>ve%&@b_E?AyCH&HZa6n9uh z*Yz*r$oxnX@~d1HeG=?jU|=Bh`3yrtc{6P0^`oG6CUX^sJH1@A?e&j1;7{|z|1m>YCTJ)t?I$L;`I=D3-< z1+Xpx-6kyKO5zcoXmwM6#?&llG7zc<0viE$^~OV~X`)J+okGfnT#+_$e^%PT4>_U=6n)LqzK1!(9nay#+hy_@IbK2(|LJ0dC+ef_6`p32IPh6d65)uJEou_JvjYfv@% zKuJPrL2nW{XyhWL0@0knCVVB|wgUIF6 zQIw5ann4mYct$A#7f6jSs0*Ge$X-_^o#PnHn8(`WKEyh8|0ke|3bq~~t{IOp1;-Ha z6R<4xh~vwP5m&E%XFh<+Gw5)@PO}&JNR#Y>42G}%^_?_^RT?k=NG8Z7NW`vPv(7$6 zte_0rd;0V%!uukt^?y?R+3E+w$Jv{}14bvm&f%M;!cMyh0JY1>@5VO=t zhY^C9ZD>i zG9^5KIKdLC*+W<7?kc|uAS$b*WBadPC;OXQkzq0?@BwWgc$Uyh^&N8#G8Y_AL7GQ? zbyJR);NI7#6g~`Iuw=coQ=AM4>LjiN45s_?MNCupgvMgWuA zuj)Oii{$7h&;H%uZy)C5tec88uE8CxHF)ikRNqWM2!trDR=B|~ZiZxMRJ$g~yR26m zEPCfA>oSIGX!MX)RaX}P8n06~Z3Lk5r+HijK5>-6QMqzv1_pOX%`Y#uW2YEr_d^P zGoXoUHXlE0N>R=<-TX$ucgg$##y`03jeAM0wwL<%0`(>jU5qI}!}BuCD_2fM(L}@- zN~PDG2qm9U4S{D63FH0{Yem3t62JhleWdtCdWwVoL!VH3g3VO%43G?&6*N0cw;q_c zKiQBPfWUk!A%BH73r-4%GDC*2A`h6CR~-e7%ssvjfZ9gxvTBf)9QpC06>wAlcYIu} zS7$z_u3%uiU`HeXGsg>y+&h-*5S;Ku8!jzDA0QOOn(RQM^3gZY4XeR1ipqJ#!7@lq zj9I1uRq{4t!zXcYE{I&zZ=C3sVSAi=vkU1w`4R7t3PZ$sr z8l^WvCg1G*O1|Qo_MT3&rKApOjhnQNQHZ$lLX~ieIhjnx^UgEYFlkcSw?D#h{@(Ce zLAu?TckQgYjfncPe0z}DHoJ9~3oyC7yGnky;3^K@Z$1TQMcf1lfK^G@6@)IqX$Z?P z?@~O;{N*pxriA5_kXW32CCyjgUmR&)IEG4qf#Va#OTHbn6H{rEg1Rt`dq=`nct6G1_)X--%0z7kGVMEspQ|74F0c5|*FPs_?ONPRS=i9cng zy6z$N+Ql^xx`hLA+I?%X0cef=*ZF-=PG09%jve3x87$=Cy}DaVyW6TzL=~sg8=>$y z7=RK6IlO#@D{A@%J&!^75E|Th5xWK{vw1AbI9wh6QddW!@OVP#sZ%-TLBj?ylJVTm zBEbgv5Q|fCYTs=bBpTNQfROHQM)>MR6YPcU6UPf-71`C|+9n&!NVrRa%SS(T(UA4p zCKyw%S@V_y%edLHiX+}^F}6!d)!PaCWtYNQ&VPGfdF=I^XM#C1Z+IEV_{vKQ28o@B2-?jm)uT$HCyOad@JYCr$;Z;Lgx(L&u%i$PKzu9W_D6nF`Re1eSmtTg4y)D zKK1PzANJ~U{=7>2?N2vUN~=XkxA#-SrFmyvQu?FEdLti~Pw{9!NLssd#^=31jE7#n zyl(B_#^BcV;f@wT&#?vC$*P_3g&&+I*m@N^q~2Yn>UVthP}5N_-)(yC^GYjtua9y{ z&R4b)GF_9>`qD`^tj^5+fXw!3Q*F%@m|ao5V?S=WSB&odXl^h3hu-uXgjm6`>3s`$ zZg+Q8snb*e)tw(^ra)3JF(4kCF9JOvB`-9**A+KOk zq2>GzgiTxE#~?8X7D{X|0){~`5E2;p4d2`cNhia@F%Nu7S?gBnF-%+Ai7$psS*Li8 zx<$tiy3mewFZ_XjrH~k->Q}SOg-;)l9*3e19Xq0KNT=aUKHkVa7f!TeVRDt}DHN8t z{!b1`{W>x2zQijc(I~O193V3=nwW7@{JbPQ$ z)=abzeKj2eO!Ab*eD@&h@alK`-A-sQR(#1#~_-H9lRbRWlaf91y0CN_*_^3 z5$x$v2y($`oCHI~(hk-k(Z_%zHP9`Ov`E4k`u+8;OmWB?Is=i3{BX?*_dEVD;D%>2 z3qD362qG^v;qZ3~dfasP;ff}rB^;we+09=py7|r!PUX@kpC< zHveP2XF79rd0EVqw8Hdkg&j>vJA)XBoC%Z!2z%3^MAv`iKBIDwZr&4|p%5XUUCs#^ zlU2Loqh3WJx@?$2Y5*G9?|h>m#@gJ#*XL0^+;&zTA=^caYPgY=F_0IMBJ?aQ)l>BY z5fk-l2vt6pV7=M3)2CO^sPm?nY;lKVf?qW5d7)#LGdkW;A+tdZGU=xI+SE<&O!V*b zqG)|@@G+ys!$0LFn1tUU>Umc1ojZ39nVuW^nPJ0rO*urZycH)@O-ak2p=DA!6F%LN z=2J%h$pfZ@r2N=VO5p=QAwfOjSyKI&B`j$rVy;&8tys{8I0hme!FmSQ8yXYZ0Kqal zL;khZVf^hHN8tJM=iEi%G|sIAz~HOU^WZrtJlWVQkXppr3Li2FY!yr~Mdy^dCx275 zPf^9uWdm6|f7~|zS=Xzd0Nc|M&XsxX;X}ztgYss=+@N<1N>PD4twohMU1p_4P}>f= z_ix{l*fJ1n_#Fa1qRJm7JJ@(W?n$a@tT5x9aW#Y+Y}eEDc!$(>_ttbY3RCt)Yt9-B z3{vCGXUTYgWZ+H&pF(hFG@_F#O&6b~3u(RD^TU=MF?60K*XvnX1=XN0Qvh~|&MX`T zMSmu5mbTqnEGyzC?2+t+TRv z=s1?1Yzeq|2e&NEG$y)$Km|ff4Mqg<`E)6(QpNH>xqEnqt88WV)KYS!Qdb6e&Mwq| z**C~wBOP!!2`=T-6*c3|cUwm!;Wm!F-Q!tqi{oF79$qYF?=G1@{V;t>oSy+-Dj zi&V{cVZu;01cD62CRSgy<=)fewsxL>e8hAxB<7wq5z`xik%^=0N5vZTT3npKi!npFb7nnCZU zwxJ;*#$}ZUbzPy52FlB0Jr_hHRajQ$%l$x%q~cfXzHrd5^(^R617?xmVBBLUIw zvu6t}f>_`J`Ui>NQd2xpU#8l0q=v@z2NiHgOTCO1vbdg{g>Z9D28MNKRW|{u*9ot2 zkahgZs(w9n#WyWSxs|ufTQeO{U%a;ZNBri`DLE0#F=g%Bpdr}=Ilge=Gk(tGJc&Rj z*yU6GckP`@czYuwqvq!3he=|mSa79Fn`#_gH9-AV1Q+O!p?s@w45#2q(aIf4fUr%9T5ot5KH=JtIdf(h3Mi*@iD zmzJL%(RmYbceSkk$Y#m8(QE;zL|=(jKWMt48M}y9p_EuJ>&-#qxzs@@thKR0=5D4y zKO;ULej0H_%rBI>o zW+Il(8m3BNcS+L=gb@YyfpRtD(V^Ml`;dj|-CeyabNaeI*Gg*mVpBz!*SZB>Kp-M< ziNMYf+rou4q657u0Wi?hn`nJh_S zu$=1R1AW$n1C!vX(9`#ollyY2_2)V=AoWP(s1s9S3IBW?!XukGe9|7Tkzyt7Y?J%73Kx`puw(nH-fVb_S-2{`r>zq~Kq%$e z$jEYw!wOd){+AY@-gEL~wkc^0A5H@U>(8bchT2Fh1LWl9Em;CUOcX;KCa@t~-p>;n zFcu@h6Dd65-K!+rfGS5}pFm8EeQvkG&JJ&GDitj4X3DTJ5;wIapqh+?@k0sl^_ zT*vJyOmgX=SH0IgZ_Q{FRS&CNKzwq|@s-|bQvmAo*Rh8jLdFwC^E__c6(S^G#&65W zUMoa+Vn=~~KwcI5xP?gsD}Z?(NYn#L>;uhXPo5Vo2EuALLw zwikO{;-UOR5g;&-K6PeofTnzZC(Kr1>- z%Hy8;G=;n;VKBdF5t5agR3eN_5Pa7VGbqOW4q;H3;!q;26lf*Eq0ahdBBSRBa}xJd zGzsz&#e|<6d>e3MXg0KxHLj`y?}vR)`Sa?O=)9^;*ODzaRv&lU*pTLRoGk@AZaeL; z*@9VAP7Z^CV0^W~Lny-%t;stEn%gqw8yoLtq13wPf5W?kLIePU$BJU9|CDxL8rLzZ zY`$UIv~9!Qv%rHgNVni~jo@gcwoNh$JVTXQI7vzB)_y?_NEMHwPDU0DJLOpEFZFZv ziuTyp-RjS=8AFEkclh(x)J__t9Vw|ND}F--r*Dgnm??-ILIBK9?XZKY{fp@)9te#- z*0FC6Hk?jOWy*xl)ZVYWSYS$35RlZe$Yux=l=OF5;A*HE1B8y;}0eDY6C z4;|+>cZhkHW#5y^|N9DRBcs{Jz&GmBET2J#*O+U!SnIMv;h;_$xP~_19+( zM`ljW!O~oEuqUZgQ0KjSqkDhSwlO1b40?TsEupp;_Ay?x)bl}C5OC1R=d0arQQrs; z79U4XP{XMueG@3{fB}5+J6=tV5R!&8TR9KrBRR1s;{=-rN&KlKEx0B5+_|;X<3P|@ zM=rs>zhV*CGRmrey?cc&AAZwuTqu-U5?s66(`;2P0oXqLgAxzI!rN{091lA|is_;;k9TB*C~b6#YVhQYZR;!mlz4PEI*-$m21K zctt-*B;hh8nlE0Q=P$2Mha+Y?!9=yJZyX;`KuL-~GX=7UVn9eQ>t2yb#AE~y^WNRN z`_Zk}oDyEH5buJa7*$a)^bp8d!)(BuJ3t^>IUnYHIVhWO|+wfE&!og8grf@X`a;p^c>7sp#N%)4GeSUl9$B4VcCq^3N$Hq@GodQ5RGBUl5o(S-@2|Qv zcEor-2BibU^WeEm^>&CS)ULVS^0&|Jm z9S45V`^;jsB8H!hqDZySpm6Xp3mN@$ryv@7yI)BgC6=U z95091LvL_)J~nNMi6ejA2f`BbA~fm8!=92!>E8hOJE?M$>u)SZw31WHs+?dO4~kbmVHP6x!JlG~`$3W(Rz~{w zDgG*_D}81PWw1pM$P1^3LIs|V5y9y)RnKCMFjAsZPgF_V?1n5{Q}wObL)mbT+hAGI zxmI zKMEhFR9IzVE1^&}@zpSXiorecR6bZTcGaB#Msf}eD5C>quE$C%9~6U}&mw~lI_314 z?qauXzE<#tN5@Act7u5RalSctDE9_Qz9Ee8@7BK=VvB>ERqZNCLgM+8CAuCh>kGje z`QY{$4gMtzYs|<`N8r=SBEEC6|W!1-r89z<= zPg34CX-D~0LiyTt>$saY5o}n-2gxyWXei?$KyjAq=7fOo=|mA!GRuUn0^=b&!nYr~ zdJ~z5k~@BK{wrlvQ)WziI#?mBiP>7moVk^dQA7Qn>~7#n)~Sr}5V0!UdcD37DO2;v zsM5$pzk50LM7XK1=Z=+e9NiY$^{V{vb5p+D`eXc7%hrR;THqS+t1v%5xSQ(v3m1?; z)<0X-NtJf3x1lrRGoZ{}yLS(^390ZXe9uN-P`RghapuFboHZpJRpJVH4^!W8T5XfS zGcZLT>zj46(FTUgw~th}2Ipqtf|DCH10njF)FKYuy?q7b8}KlujBSE!I;jpl^1vaL zDPT5y$my@KaCmn9@Hz#1D%+~!q5dl?*Rgh6B!!#`m~hu4-8;Xs-q{uyx6(!dF~VUA zAc3E0o?!LBS-Dy!oR)_Q(jv%4(MaJgSCw*$g;2DFCr_T_*?jgnJ`T^_QZTo}A_#I-*TQ{rf*^r!t?71AMe;?Fsvi(bKrDs%{6jD%Nf7{u-n0lfv z52FVCnOIiwyU{3a%pvvBDVmP4;rdXim}puuVwAtDgE$#>Eb9pj%81{=MNI4S$J4 zb85$!v6eefKXA&es>@lVJoOK$ZT|{^&m<(7`{ce+wdCOU&9E2aaw>j;xY(|Ov<&Sx zRj#t9Hj zHoc$NJ6|~1bXP3s_ExYXrn6}2p4sY9NuZww7b`6-g(xJw)3`8Ngf@Y%Z2ApMx|RG; znz(5V^#N^5J;@LEFy<}FsZ>O~Q1$cAMc-7CG0C$|Jv)zSijn6AnjuED z*<2~ZGEfBQF)vlVLy`}--$%SQklg-y!R-uGY) ziL-_bEKZ<(!DwCgXGKMmh7GGg+K9f6m91z17-c{doyVgRWCk&F|J;T_8LeiAj~~AZ z{nh%jVk*>|n4y@;C$rSsK&nw`U*Da+a{RxHXy}C=`Uu&&G*?4Z_Vr(B;Yv_X(uCa= zN$*VSTeQjC*-6R=2s|N1M*1^dT^Eq?o9J47{ds$4{ zC9f4I!Drvrr9tnYJs~cW450&ISam2dR31L`OZLm!fGkRiYab-RYbeFDO zhxp+`=E6UZ|2n*bQ=hTlkDHylaibXbxD^w1!z-eK8 zG89md$bWdNW(ruEQD0sIbb*_?W2^J@xvXC5gQU3Vl)BvK zQ`()5fU;!fNKWq6ZV#d}_`zISbUCBfr=*$RtU1bfy6`4K?3iyy z(qZg?qFe2YbLKI#_Fug<|Iqb6T5=^>VL%`yrK9-UcEDC!V8Z`z%{gE2|KAUIv~i~y zCLqy;?VQFe33@jnAz~>C0;kWmUs_kk`<`gaPtqO=EhcL(TPPTYSMD<~-R=rR8@ zo((_41T6CGuJ*pn*J3lKBx$?KvympFVU_}OZ5PJkOOyX&kVEPZqy@(&pGz=gKg+Ppt_d;b&b;V=Hjahm3RQ8N~+ce}Bu z->)gdYrdUOGk2`4)T>i}3b}~`l2a@}NHq?rWT#SVYis_&C%A`@hrP_o+Evlyxt!O3 zs>?A7jinqDP{r1k#tgdNBxJ!c3tyBElFh7ixlR|u%=U<7*V&*rU9QG`0n=0O#Z|fb zr>0m_s2@;NZI0F9u|2MNUADh+O>>M%#vumwl##c27#TsS9w^7G;*PWOhbSqh<l*D_qkQ8m*woD>KSC?Ay(bPRo{3JaY{DRHl>hm2+2?)k(sVJ-kcG`_vB?G z_5u8+WybF;pAenb#K6%vUAc|a}5$7M}P(kGx0Awy?i=ER)V zx@c7i)Nvg4vaB2vB3;%`_7d-UX}OCoLmHS)>kmI6 z`i-%GLeh;~EX=48*9Q8UAQ)$^WqML$-~tQ`_@qqcxfV zGX=+1UH;Ze0EqngUy(x5g*#@oOH<7%zi$<+CzQPgzo&%Jv5=Nk|-_w0%2 z(tVO-#3Ww2v~xO1)fl(MBvoTbHu4KO=S` zF7s+~7%wCKre+{tG{hJHgi)-FqIeO-xBYmSeV}hIL-{Tx;$Lrt?JQ^;U;p2LbMcFA zvzcbpeDi6UUxYkgBEiZ76Ayg>R0vO(;E zr|&BlU3sI=JuHGe!tpogCL=SgZI4HdalLGmauy!e#9w*&e>R5H^zdH^{c6e7o`QlO zeI!5VOi}+a51o}aJzb_haAfBk@!Pwnl~m18-&;D_{fhY4oJ=cs{#WY%IT>GzFR0ss z!xtjCBOg)gXKK%lUJxkUww;U1PsjL+`90UIkj85 zUAJPcV2I52ie<{(vIfSF$w`XCam)Wl{5XFRB&dYcjFX43b>*`7BwqQruKQQL>pBFr znAJt+JxF?_J)32Xc~!EqvN|EN*Iu5eqH^o9$zc^4a7--nD(N};`d^!_vRd&R;t0&F z5)uaX>qi>=m|ERak_03J_dtIMYoBC)xj=@BPZg;H>&4K^afi06BojR%=3TW)DEvG~ zl0?(2_Sc9J?4r_^&4Y;s3)_2l(~8QuY{H*P4&eI*qx-RqaHWm%fY$qNl_XvMqE>QFd z&iZHP1L)W4l|>qMiO!2LkA;v<2Lw&GPRy&q6zJElUocJ#_AE;K@|TRhhes1Efr=yv zm@|7V+B{4ImT-Fv%-(v0+gKO}+Fm-MC2unPG<)y{JeEj`;9@rK*mzIbU zkp~=pFUcOE&D~Xzt0(E83_B-878f*rUS1dige%-Q7!op*qte+nP zLu6#+uPLFO#?OUw!nQNbAP}}OvOW9v4?A?|35_+rE+~^oe!}V+r~XBY(ixeB+7NSo zYQ{8dAVBePadix36?YNy3FRoTWxI6oVs=M*`XL+KGYY7x`@dybBzx|GS{3{DUEgNN zTvWZ*q5=J}ZkX24q0mwQd(n9zkXoZdDA3T4U&ytUK^V5i#s-HOj(Gk@8m=WlhSx-7 zsp;r8dS4HH_wdCU$C5O?w#Uqm5mw4L3eZT=>LEjg6~w%nU)uj%m5c6p`IG9&geQmBw!bp9aUPG1+-@UK?wX?1&%7W$#?G>`YN!>@foF|F-E!jwqWpJU*u;Ec z!lSF}Ne4+I0m!kJbu;P;OcM$-c0h4fd@(m|aV05fz5rJ33ZHB3iIlu!O(IY2ie)^y z#|jT6meN7g$0sC&<88^>zL=Pmisv99bey3m#&U6riqfcbU>i|mF`3W=A;C3WdAR_3 z5>Z~y9zAdY=M7?9lppbT$AJS+fnMCZCqNvK41>WF$;i)wj9huIZOC3BqyV3Xkwo$>6dAK z1aZ`q;aZz4f>@Pwdj+Jj{))6yi zF0T(M#RUBiFoT}@R7SAc_ptg&a1C9i6>Ob2kXaJSCO))zP#Rds3Nw2TkC55tF#AX? z8X?()fCd8F-Tf+cWm<_&gsyV8v-3S5DuAjp5JQ4bf$~%$P-f!C=x-0OBq~oC)NYlzIVARSn0sc7cz=Mk0NIo%BYJnK)=fNr9<|?S zNfJ7)zp|XUT!Cs3XS#aZ0&Of5?m~av%gRD7HG;8GU?Wg+9}HS;C!FhFgB`YdmUI5& zu!;#{_9r4D0xXlDzCR$~%h#_D@VSAVw<9215Sy)g&+nyxw zfPkYiQ`&!yULTL10To_AjgI6ztLvxNdE)U)z7)e03|O^1fwGUTl^|TT|I;<+dr;%Q*0D>%e94 zM_ltZi^)2+yPL65;JF>6kj%7$jps)0%(WFOjyb#tYFR$8c-@>KW(rHM*iVF1L|ye& z@3Yf{hY|_yz{tiHvYHn<_s zdoWsx&O@O)eB#7wv@JxcWF-^FJ&zL;>C7r7x_5h;*w=seo;|w!thSATOvtfsOLK3S zDA8W|I1d{hl{~Jh>BX23W5)82nMCIa;uB#Zw;OqKlIBO)cNblBjr^jC#NBxFk1o1U z)hrb?o3xKl%{Y)}RN@dlRw%g`gZoJy*%uISdau7pU>%BPO+Z_S5+=BkU;btMlmV&lc**G}$*D#kssoUxZ^ zMu$5U{t2YZX#(&%v<%mZPbCF)0LqjJVUNjS8hGMOox1$&{M`J}vQhJ66#ZXMc)a(o+q7q{Vz!pf=li*wcK&5?tJ!*XC~d~e?Iz0sN9>~t6ctc*Ig8_ z@;D8d=g9+Cj;g`KpjvLeQ0QH-C82zxe*U58S!H?d(F-+DVq9C9*+I87nZO89&w+N? zsUl9kNDxMB-45iyQb@c0Y z=mca4*WIVmrO!RB+#8)3?g;X0T1T`STU5$DLtYi%Gc%p=`z_!3X z$ff`dC7Z<@QdcV>e32?1R&#i#pY5;b3)&r1+ikwG-<3tevQPkF(7@^yix*WcFUobt{~fci^sV=E)|*R` zP%QK?{2H-qzddLFSKr5Lq<*Br7%f{nV`Q)mzn|;& zp}v{FVj;<-r5JW4V3vbYA!UiCrdL?>!=yO%J#fj{KbvX=hr@(3j=9dtjnRwWd$2t0 zGeWcRSJS4Z>%)4G^Pkz(lNlJYb1&&#Iy8viAh;DaW?~_P07yG5rB~>E|pv;FtFv~eoohFlJL^jYS#9WTPGal+o_e7r!%l#VWZC0*unovpL zT4T}M@bJC<{wod4&P4OyJ-v+sX-T*24WQoYDUD8}OZeb6AkH#mvo8DtA1Z^~u4!#J zZgRl=T0QSctm1X_Td9b@b&}@fQ{iYK&(BlWTYSE@1{#4iiHBzlz_h0xa-G5d(WLce zIom%f7eqSF=#mmkn@wlQN*vMP*U zrReV?Et@$r@U4sP`X)ZZr^nSLNfkkT{UaP9+~&t57gg8o_9(P~q{U@!r~dTihNe-c z?hafuyRSc@afrAN(09mX!7v(*^BG_DEpF206Oz0uytqTbpZ0;87VS~ZZ*NbuB4+9e zLNk+}P?D1VnoE+HKU`rC!w>)ds~==j-L|X>Qz}J&4>U@+$@S`d7i^G%P0M&b7$SNu z<1UdJ$FONwz-u?1JsZ*22K@VYEkle+YO|Or4$Y=MV{rkcPq~K=UZ&s)>`G$uUS3{wZ~z`E2zKa6Xn0WUB1$;8XAc9+ht&6guWq)s9w13#0-H)P+E?$H z2ax0w`EHeAPzzVfikoUIEvI6Ea3-$`W|uKw>ht72K1dKSk-W1xXL4|O_)W*MDZ4Vi z^2sGLOih1?9_*aqZQbCcC7SH{A;p14MAnb72x2Z*q4Qma`xs6KDLsb<8a4%hgYh<$ zG>rG2!V1mx?e*ykh|26ouDjRI(QoHYIy^0ge!+fm?~j2d7{8p8b2Zu_hF$bm_!A$vs`XAuOKCx$r~ z`T>KbAh>1)=@|!00ioK;gcv)+TnyUf)bi-cc-b5mJ^~j&S#%SqRDAfrso!~%Z#)=| zOQC1xApqObYzL|_=v`b?2z#yWZf8RQwoy|e>J$1&J_1@1Krz(Uv>*Hmze79%7;ENl z8F{89|Egy??B=s;2a2ju2=tH^Ud;sPuKO*3PIw-D3`eoR>)obB3l|>GUdx;j`yvvS zO$xHX-95qT+EesIq3fgPMlVgV>m^CzeAC3hCUUZI+Mrru-eopd{FR^F?}Wc0ol8=jWjx6{KfYC7pHUO+=rM{?+W*^{7!96vszVqyEMm9m zj+Mtj5LinNicq@tG7FuymrvNKe;CXrBt#V2{EdFlJBDFNPp}8*nix;8u=vY({)!bV z&>hZ=?$W7K43A*=@ScX3fWzoQ&(2@wb|a>!8fQo}7z|IS_%VFL{5#2vV?f2t>Ey|x zz7?ZJbZKw|5T2tnKw!~+<7&X_S{`O*a5 zKR0GJjzWaU0|#!7yA1<%E4|ubf8Tn8fw~Qc5A3dU`S)qu&^?1{C*>Th)Wv87&sd`T zyLWeMw<55D0|!!AF*>BuRyZq@MxHvP#xB%g)hH5RUA4nO&B>P4TQ2trTl06nsCnv| zy(Mgi#4j`&ssfQLRRw-lDBYCt$-;`L&9?rj1If<0;1@73^K~Ugz8kxHPt0=G8Tm9Vs^>-b@M!rXrGvAa>m~viZK%f|;qmoNz9(6A`gTV-<&v_YC zSyTqz+fc0?wrPSEi%m!n_zJZnABUPTu5|CgTa7YKAG}MSvFegIP$Ne=l7_=iTJo+q z`v|QpER4sTy}g2oM`AVeTG7UrNO@cz%vc1>pk@r(!5A2>N&2W~Df%jV^2K%Kvy6=+ zOt+O!*l)C%1cJx`$Wcs;uEy4oyeT3(z;LNCzRPmH(7Xo8+z~$7lPB$Ulu-UKcE%1}LU17a4Y04Kx)?AZfjxA(VK~+j87Q}C zEg|h>R7qZ}Wu*Yfw@V3BBb0MWFv-PRg~H;S9>$r|_9pQ=5j=`NUAkb>Cw8|2IkSos zE!q0yjo8UiVxUwl-*gQP-6s^p1K*=4WNI@q*VfL?jtEJ(-DebK6tx}&CyFq}^~rL` zph1NAudo@|nKHA+AO4%4`WcAClh6}EL4P4iCu)a)uY3>fv(F+sQ0jhWGQl4r#B3n%~Et?r+6Z;&iCEKdQ za@%62^fvO> z=DC+5-Zpk~zJ93ZGMU}h`(KPkN#@|`sb9S|&+M39PM*yLTjqX(Dm--C%~CLA>TDz> z(ZmBN)wfvAJr$~ETochhD4s7-b%?{#BgojUA`$%!W z(ce?+bWep<$o$$`waHSaF7G3H&HQoSbThWgl0ews(DCeif%-MakL@DLjCpRu_l;8t zuYi9fkF3#AnmqkT`Bflfs=R)(#%ClFQ0<%83IFXctLj(mIJ_(Gg^Y^KR%z5K13qlM z;WtVbQ6?lM!Qvd_PEsC6{qtj_`*ME1tyAL)#UXxAzMk09**<*!$ARg4w8j_&Z*7gT zsr}p$5#NHEUy{IIY7EG-*&$a1@KL~@{>#x6U*;ppvja!ow z{>fBd)-gPCLwR1jcV)MFc4Qgp=1g?S+nkds$T2>X%Aw+K9YR^w0o8~(gK;0(NXH6~ z5zF>k2fgE#0Mn7>gR9ugk^GBG`vLhOod?i=(RG{WOwJ`)Iw z)Or6;=fE^6#e;%^;9FcjmrkBKbt?5PSUSiZ90ivUN)=}g=!VBRIpY;&(Hd^i4Wri? zqqJW(6LW^QI3?lMUo+P6(h{+6Oq3`aivYn8VvGx&>==y|su{Y}&HOkLD`okhJ&|p> zm$r$J{6KI5mkVh8sVqsjgbsQh<{o@8`f9V()3pd9q+4TL${yJUVjMnbL>co$>*`I{d{CZWxIn!WcH{^+DX(C@rR8 zWv8xyV3H9aaiD($vmbUUE&)c*sXWx%W&&wq7!D-8l3&%a5vqsfC%v+ zj8DA%FRNqei+f8-TV18N$|co>`t4`FM-B8~^VJ|rexyV5(7)8W^t+auMRfBawz zGFl?4RD?j>ZT*=H4|7J)mEePcU&8}k4>LJGIskqgyN19Lh&vpJhe?`yRuP$zc@xGJ z{Sj1B2h&diqhdf!MTA!tp_2wJ=pEnNu|o$E-LrxPV7oZ>!Ag8^xeokVvLfp@_!h64 zwa+r%oIQ`;-h37>FAc69f~h1r6OI()8ZPsHLSMlYump}}JYkUu2r{E48k(K?Lznr| z^f=TuDVe%$qKmdxeOBNz4(Ie89d<`zE(s?|z-RD9OQwC81%PypGgbZ*_==+@Hk>T7 z4ebt3k%Ad5c-US^(xarfHclI0Bksr!f$Y6HsPpo;SygLtV|cEa)%q6ScOT4$Z5f_y zdFgD>Gz)#Tp8Iy|4-K`qzjyED-pN<8K86$&giT(TQ!_CmEX+mk@!ET1R_h&5)Seii zGHs@e90Lna9!}g6yYxfxve&I|n$qSTyx4c&CHY6cZoEpyq`{%&Li3Bwr&MI<^YB_* zGn%=*SrTS{*?IjnwCv}5K2$3F4m%>!(!2m>c>YY@4Ow_WdZM}v-kEO}%So#qc`)Gs z)3PVn$nC#U%~(IAo&kQ@OxX^97zc7cQIR`o5?#K!*LnT|@)IZEJDnD;rS zx_@-n8?fK#$gyKWunskS+$gr2cYz*4XbKut`t>cO;iZbphwjS@+a6%9+q+z1Qez9 zWzCQ5LfE{ysIXA1&=!-C)cMrE7h+?33Tsnu>V`;lK>{$H!o85q+`93(*L1n||47Zr zle<;7!);jmf2Q%S?s#`%S{pJY`_k(kho-QA7m_EuVx_8~8LQ^XuhQ`?wg1r_4f&ci z$cf7*bh8fi$(X96qcF6LP7ZfxNs_Q-Zo(Bhyn=0A6AnbGhgWpkE+;*G=n<632#}|u zBU3Ph>-k3qEDqaf*>cx3(8o14N`3pbtGz%hf3U_U!Qt9XTc=P?%#YEQ z{bR?V*(s|PS)OYd-&^{h3Xib4yS#fPYwa0yrrV#bW={?)`ePBm)|^#}_neg<6*32$ zX{Iv#i25F%jODP6&+T6J`_$P7`AM#=^z<)HTV*qECCm&|rh#&)JS2H%iQUf84cG5h zF;G-429a1@4xxS8JT}Al%AmI6GEHThmwn&#rB1A_){`W;xus4x(6RkLuV1fZeAH8lz2Y3x3H zYx6Ik`;oqz?@a#vDN4UtJ3ww!=LOYedEpt)?I)c$G2=fc*1N`eqbEnV?X#XbX6C;C zdTBL%8?$sK&&kuv>6qrHA8r<~bo&t09BLD_2LH;}`dP#0m#1^}5JtA%XRhx0K1`?T zp!gZmZ*ISDk&8ln$7&a?;2o>g4b7N{cFXv&jOu0j^mfwM(n=f>^Sc;MS6yC36H{1N zNXsHjUHgQY0B|>L4GZH2E|8PHX62xxq+0RJt&CXLzkh#vAI`mSJjKvyjp2XpoV!X$ zWnP_v;e$0v$hXf#L`>HTUhu3nF?^B6b0*(FUsSr@w9<04vuj3DwEl#@w5iSInRPsV-mFT%ZKyp9f=ip-9#8Gcs1bHmgcC+X?8?9_}+ zJ|0r*M@5km=(>H_`-P!HAAmP6jFiC4XLC`B!%(B_)~dShfa9 z-o0F0TXk{#@dC#U8^F|Qf#`XrocjD&>0a%P2W!~E((xzO5ggJ#{@HeW#VzeeubluB zZhyXVW!%9mP_mf(kGLnQ$hf90i^{zfK?i}U2aY5&X6!2a%&tG&$dX$0NBbgkJ<-s# zmAME7L$*$xI5$k+Vex<7&gaJleWHj#05fbA;!F4`gkd04K4DP*?CflUG50Q9@(wFN zOK;Sd5KcoJzq830~8J&^(B6BIUH_h{*# z<$V76og~d?L;C|*5+svpR!GAL8NBc(r~0`;T{ve>*DPn+S%G$Q;;SXiJDvVIw44l2j-ZQB>yYQ07P}MM7ziIf;{$sac2QNQw@r z5JHkAym9~x=hRPM+XKza&goJoB-X1}*9u4ki(SyQKzFmcV?6t0 za<>OhYe6yP=IYAIche#Ql4&{7RCz{DjZQK#Hh$q(JKRnc=L+_y(X2w_{AT;eXhTD= z3KYjw1x5zMCfg={fY*sUbVz-#rA7gndw+8@A!dQ`VkTXuQE=`(!yeiv5C5hZmN@Zd zDwiOQ{MPEpPAxchU(;h~dj=aCuBR#3;P&YEQxs)ny>g^tsgd-)0=#1t4cjZlts`zF z+N)ZC2`R`r>Gitfz3)_{?3_2;Ho$69&GkfL=T^)*0~MFpU;x(4f#bor_MIefl7+^xaR6 zlCy9TS-zV8GJN^FztgPG@)1)@fLl1W3=Ivl^oIR+F5M03883Bm=KVFQ7F3$ZWz4y* z4pf|;*Cf`W5HoGIK}eLE+BOGihl_iws7$n*&2raJ7iMBM9(sMcCVZ?NYiHPo)4r}; zvu4?Xp1Scuqy0pG=q}`ooTiP*1ywAM1ugZ@3E({f$87m`=ip1(*|bVuPAzKRwd@Ik zqTtP>GKxJK#U_*Wc_qh-dUb;(lg-M6u@iVFC{2(U?%R;&v0>RqpC$;c0=2Tc*2i8s zt=pXRa<+BoZxsQbapIeJcVBbS+*5NzAq3|%JlnWGPKObS-(6g6hX{@G(GkpFiVcr>EV5t&oT=lIEWf%f%N9EvVR+ zE?ok61kJ?G1WSrc2wZ~(1;`8345$M3bKSahBCYlGfHF|HIl#ei6_zaB zA*_l=W2FHD(~czhTV$+YW%LzRA=2xUSG83)R@NNM4n0_ULWcw5tLNU|m78j($|4gm z%7oMQa=|X%-UcLY4|>j>?5V+?%Q1cSQr&>E$b_e^(IHaWsI%ZH08Z5UL4%UcoVi!s z1hpb8vV@~VCG~QxlCp9#8sr-{K!|$uNMw-^QV2u3PK-muW5v1l+4;X3lf~Y#8t=@h zJtmhB^qWeb)!ZlV^|WxQzJf!LtKVbU ztto3F#4h#fUx(hT={hKzb6-dC++msf;t26LO|LrZ^3XV)q{Kw?+xDvAJeoqAa9kv|Y#3?lr#a;JwfS-6#Kh{~ zkH(Hoaw_rv`}2+VewO{VjJv(UyR-I7RY~sPc25muKAL-~pHstcEp2g)E~T}P5PPJ* zwoNm4=>0(VYIB!`U5^eqaO?X^cMH3Ng|A!A)>f*zC#O`Lzc~BqzhUZTC7(7t$#0Q% zG7oCap5loTIW_H|cY4LW9V!;xG-ETz&URntQFSBPdxy!DjBX0oCJb*eKV}Dq)w7T( z`9#QrmMvLnYosjfg0!dhS6*e#f4q6$!2PaP);6QC1L6fvPMhJvkY+KLW}g{*Lgvwi z38N##TgF#FC8It?{FPZw5AEaQ({uO0p+glP__|Q~ls?b78`P_uI}Ib zCsPi0ebwH&Q(FNDpL)j;Ok9Ph>%J=<^CM9gn-a|nr6nr^Ac{M?9UEQr;lmf5b7l4w z2uI5=xB!@my>R|HPI~)x?{>WCHSnQoyL6vUR@OFyx)(JuVNjzslzq!T=eA@?6|^S6 za!cQ3NFGd!xICLKzknFsa_ZF1s;siw;kvp`>C5-(?83wExoDA=O$lQ%;2d|{gl{XZ zuHiu8dx&jd&Z~moL0zeE!;%k{Vcjfd+OS}?;X{VFEC8RDeh~Pm`+|n{>Yz3H$slNV4EyJyGC%Mox)54;{1?qg7b#-LX(k(Bf_*z(82l?=*n7bv$ zY-|Nw9iYS=uob5(7d`JA{6P@^AAgLiPvADAkYbhcsP7q_1RpFUjI!?{a+$}9$H8{O zT}^ea%U0+(*ag6F7d>|f=X(>m`Ewa&Xkkx~RmWspn z{S+3{-RbJSCkmn3sB3}eVe814m`%hjU{m5lVABeT(hK5?SvplmBg)zYItJ6C&Oui_ zHEc=@Y&Kn9xKiE1PS$*DdvNu}W7WMw1C>%#EzC_~bJs?zg_=ifemwc9$a)$#dz`|J z9>=N~z$V6$)b!Uw-w5%`(H*|LS$%!iL!Yxh%(TrS#5N`2Yj(M)%~w&7MG0A%!_;hG z_OwHRXLy~~nO-M{~0=i@P|pLi&=sEA}C?jQ{e)LWZ%eI zFy;cZ5nR)6F#JL|3S98oYnAIdy=WUAN|m#<84H71ss9}gE3t;o=CF4Ek$!q?aL z`Ch3mQlo2{+A4MIr&oF>>>K%Zppixa8@6)oDwCkMflJofs`&t>Dr*{{Yvxu|9``An z{kDFW8x2Gj2x9UA6EwG`=U*9W6mj%umoGi0Ih!?APU|Qm{aA6@UGtq?xQz}Ue)8zi z^1tUN^n2OV7P@_Vu*bWYGtIKscz~YyePHFr9)PBO|i6kEm!kbW6~ugA1x!j3b$LR+4o;g@3s};h0d7 z0v=UYZ}9QKdGuH5J1#vfKIq`>rRO}?PfIy_;96PFF^pxgwr6!aj~KhJ0KVr4Ej2VYZAU__TlPsCQ|kd@+ea5EG_Tx-0O5)w{3T~sOfKokxKrfIoM4;^wCS8L*QLS<|LlpAR-NQO71Z}naXi6;WPTp&G z+5LwOWpchKFR!AIYf{mJ>%kM2mJ6)w14vA1!!3$boiR5 z2Ie9J>GqC}r%Gzz#0i^WEJKXM>KWuxJoB*slkId_&wcuI$hrl1N>yE}^w)cf}3j!3<=lp^|2*~uh2 z2{epfjK#CFq9ThL>zmrtLIFIvHTPjtva%wYTuRG4r(zKp2lZ!Y3JMaRU{dR=5}EUBnaKE4fhp5bo!q)GY6huZxE zNUlYR;2Q0|W)0j24+n(z@A9&5e4onqfmB>(y zg49JhvVlKJ@i?am#9tvNV+-p~-gNu%;lJgS0?}g+Lfc)kXBVxw*8gtl-);?$rqG z9fCbMF>#yt)>u-1j*RVY>CgTIswjD9PTAZ@JOG~{E$R=c?^RU2e%{Is?i4MtXcJUuz{eSae9xEO(E&U8gQ(4b&M<_vsT)WKxf zo#Yk^rJpP*f7xEIg3L))c!MRuH3+N%DX+h4abrydsI-WxXo*%VUCJWTOR=%igTAf;EnBw^;Q(JO1M=}{ zCae_HJ43i`r{-QJ4~Z_+iTxI9({oQ`;k9DI8t_B} zc2Mn^FZ`yTDn&a?7tH>u4}#PU#t(9YXnBtDe;V0ue5c9O!fs(&3j#fdR6~)1uEY5q zRatCN#7W4 z?-lF9h{N?})riroS%6IY_64xP^83d_Ia`aPwRZrBlEE>7XN9oq+L{_q6|WRRW(BDy-kBBT&XYZb_j3yw*F1{$bLXyak{=va^>bm5 zuv-@d4X^ABtgzPBcc6;Qa}mdIPG-f%zT~HJINz`FCY9;29>49-l@I_~=5e_> zvfLd&htQ0N4>@Cqt;IPL>OxE)6wH1#aL>#l0YNkui9$Lb@C?$PJ!j6{!=nZd8FH&` zJ#fxqwMS2%8hgAj-D?@_qW1U_;lmKus8uaXywOwNZE%jNBvJQaZS&a`I%@)&b}P!1 zf`*L^LuM*i_B-{AfAL}=Af1ZJ$BZknaAIg3=(wEM!aA&3vqqzUob}wg^^@Aaa61T# zWXp2CH>2iZ3)st+ucQ}ZdIWRZc&x?O^h5-=5TEX1{lnTlaX|>1p`u6cjyw73)2I4+ z_bA1KU2W`U6M(=c#!?>yT+ixmcs>W{&JjERn+8kHo=CcsK(njBRb9H^hZE9FbAEiy z!6{JmE7PLwAt9vfVNZ%&cHHmXkhC(#dGmO9jY({7YU3EB zxdptW%crH-JpOo5HOPNu8-QvN_LHq# z_&O+MP1f2**K6nAQ@Yu{4d%(#h{uoB)G}|B_hFn|F>(9(3m109MIArB&t<-olg9HA zA`#3xYO@nJ^NeK8$r-n@wx(Ujtrm22r9rf?#qhPjl(p&t6Ju(Ok6*HKr4D9jy+fH7 zF62onH@;vIbV$gKxTs^t7S5l~lV@*hD_bwj_P{D(^OX%W<^h=z~90R zkkw4PtZC{ix^qTswJ>}A-KF}ub(Cb8ep9&ls29TOG73$l-1~R$$daD#;_~wC+moCb zU)vFqQOkH$X=Rxi84FV9WQjnyp7@6Jj8 zz6pl&yjJEFu*2@GZeEUBXkb{b#QNjo14n+GO}l+9_<_u#JC$a>ouW=5^cl3bin8(ArOC9;Fv&)Y&ix!P#8g}@AtF(U5vU4h% zX@?&^T+{N^JcI64NK)lVkG0)uXX|zU;F~ZPcl@&Z3b3BWW}j$!Ip*`9hb$UZQZ~iz zKd}Y=lVOP)WZ>{kP2&b`+&!(Aa82Rd1RFYo$=b@T20|#bMad^h`H8_?2UJ&bVb?1| zv#{CG4D{&PQ&_Lz;ea?w1Kik1s}#9d+c0QdcSV3E<_G9j*L*e`AmBTV8+c9F}e`b;Y~$)tX6D ziVe0PDNagCLZY!i6f)uahkeKkVr>(WlgAhup3^m<=P{CXQf;jL^GI;)wg-KO4-YBK z^>lJ`)17}1Z~{u@BEZUF>qieCCKRtEg|sy$?`YR0QuPXUsyr(~Z&0_rXkP20)+-&$ z?!b^wjxQG0@usGxo^VPWjN|3(Ors~2jx*nB-74*&x7SHeK1Rp;=(NOlG(j~rx9;2t z@zt&ACv~}(f~-*(Mpcahrj6X4+5=&0uJq_Wu1F`WN_Z$1lvY$AWm~HOFi7OYv^8t$ z=-`Y@2xG?UpMgwf^k}R`qfydV8Hsing>5oD=GlFYinFHFq`bTOs)q6bckkW1$5j9Q zyT7^UbA95Ge8e#9uI{DdcqaCoY>2wDJmyOO|A(#$YO8;KWPD9O>_24*wK!({c8z`ddArUM5>6hdgqUcB(9 zLnZNGpE`3FF)BdMv?j3c42tJ7GZ92=?Qnx3?EU)e(p4R`RQ45=6c@*q)zX`HZEy|J z=20#wDaj?hrTewPfnA1(6mGuuiV$ZLJL2HLWTdQ^U)#(=xX&#uXamU@usT)x)a}Bt zW5=k6xw+;FS3I-J&n_kPVC`DSD-hyYsy=LE0o7(wh>h(Roy5US+#aKxxG$g`Dn2R% znNqZRM+SHgaWV-%hRgub)yb3S0Vaz=_*OJ*ERa$;qCHZn@a|o1k&E6n5hXP!7%C$k zKYK>EK;PWESFh?1z6wDr-P|~x3EZ&nfEJF7e`Fd^ff#cfQkSc-${Jrf2s=lWxd=C9 zZXFp7EN!?^QB8O)0(NBTcRu)iJu(WZsUy2Rk|b+W-T$W;VyODmfm zA^wD;g-I7GBvPi;S)u&aEX_c(ZzZE*oA%@_xlD(7{`~Ajd$J#hEn!7heDTS-rwEOy zc>FjDO)!tSmR8X@H-_=mt5>tJ0Gzq-b)H0b?AYF$FUG~k7YwWmUa?YG`a5kJ`0K5u zc!z>B^Rf)78xS;9S%40*!HQQxUc;EPXE0%x(l>dCF2Tpc0Q4u zyaM2clvLC@oEXg35Y*djLqRP*eezC!;>4+X|30L`dof{l6!1_NxGZWc;+jDRNckm^ za{RZ(eBL#60mKGrDZuY}ANG!73qY_7It?^qFC14w>|D8<7h>e zXFT9C$ZS;>NCeRg3Y%o&9k_~aZf@XIZ+FsDqb^a{1pB#p4Q?Vx1%@0@M{aUj9rFi) zUR+Eh^Yn(CJvc!I3|K-{;NeP1apiB2swO8_w|=MspyOtyTfrp+M=NWNG$kW5GYupQ zMJzeaOV2U?RT_;4!T#xzT5HrRb#CW#mZA`@$Du->Ux^U>d9URt1iY+TrTp{3Ddk%a znniv9EF2x|%$Y@ef(T~l<_Uz##uT${qI9TEHyhNEi-wPzse=4{yfb_EZo6^ShJ7fH==SH$Lyii3FulZk z_Uzfbb-s{B@WoHab!J-wDX=N2sSGk9ZL2j31YOSVhs?0a$y87>PXPWpToJLFGXEt$ zK~xj3y>7k!$Zb(jPyiILVZ#Pts~ZZ3e*G9NsTy!vh#3L{rF~`0zNE4~h*Kad3*#VW zAdvsPmIJ1a49*pyDreZEG7G@xQImP9*AdS?Zo?PKlkBW#!mHxKl9h;jDlu{Nm@%vw z!n?b=>-Hr?yz?=l7vtoGC6YuD$+mN6Cs`S0)KO|m5G7;_h3D6T;uAN^zvF;t6cH%F z|N33lwEhd}FOM_Za`*u#=y)dd^v+~wf8`qxI?SK|SX(o{j@{fU$+DTW-af;Dx-2&{ z;?0}oYISis(RY{s%$bt63#JV6D)|+{LVB8Xa1z=JAYse+-hKK&R8*SCUevZ8RIvxJY zh94@-eTSUMdQh;~=4{uMy`~n*>|CC3@gvSus!{v<6%+C$)~l@6y4yvKEC_zkQ6Wg8 zuit;5R75l}9KoB^tkdroF~;=L{w8ew9qh32EMO^CjO(RHoO35eAjec#t3>-h^cfR*bWO~DF z)h1KTl!!>3UH7Nk4@gWu;M9RvDW~FgvuQI#JWt{=|1UMpIae!V`@bIi(eJY4fwOOZ z=5d*c696^ zqyr^2ZmeZJc@h#2gI3@$oi47v30GBf9!`}w29<2{PR2o5>7v{s*v^;gqZBH1mX(qC zB`VoINL4l6>M~kEUbdh5b03Lsg1VOFkUNR8$J2_c52%#phKCMZ>*_pMw{Y&9IatgZ zKtelu91wOk7EJi=31i+<*7S?JW+}QC&#%wr7pso!s&k_RvDMOBDr*N{KAO5RT5tGp z4(y1B{hY2K`g87nW%K@nc}?FHi?8QQn`iZXi^Er~bJEUT+UrY0S4O+D5^(6yAm2vB zlQ1XcrU%xJ3ZL8b=Gv<6y+s?td)ED3pt&37z^DF;iPT5=CEZ&e1x zaLh8cZ7MgAmHBWY@Y>sUd9@`gqrWE|w68e-=h7LG;S<9K8Aa@ETsY>HQv4+SE8;@dT zs+#FwU#*cJDxOqa8|TqhzDi1MLBpM)>n9Agdw=TU*M^-xzrP`)yP!{sdRzSIKT(jp zn%J`2@Bh=XM}E;B#NQn4^QBMDUnlRq1t(^DR@cYSt@ z{Ls4yTXezm(bPSj=Mu{~iAlX%LT-UX*J!xu=Q)q+J-cXIdC@pzWHfKHIiF)jj?xe)PyPVkv|q zy8CIO$<%Y$8%|e1RN-N}heVl+V*7UN=+Scq9bh)yA*hdwnrK`QDg$b*ad&^SaUmps z-}NcdsupwR&NVbJxDzvGX6oE{8S(GWc*A~ZvXM$vMq$-$fUZjU1mmJUXxq&0asz{h z4J{=G96E14_^#C$Y!y*uWG>QvL9TMB%ZZ_5&~ z0XH~fwqIu#)R#e@42N<;hcN4>E^hqqcF$ZMH?ssqU~sPO!i8OP7_S%wnHeC!@+FWm zTxy15?MW`(%|+tNYTwjlhlzW4>C_322K@)C7723jgG~?kc;NWk<}Wc_0O!Pm2hWT# zYmdHMEF2>IA*C(WL-QtE@~{4+eaV6 zNor;OfnNFCqC5|!eAuS8&8&;0Ys+*<1(WBl$2Jw+qi^4K-lP={*^8=SZAR`V)315ckpY&a%^oNv1_ixk~w5 zg?=Rm3SZNr9C%ZkE2Ee)Y2&d&_JMLgdRm~l%zLA`Z%XQ1=9B<7JQbNX(LBAauNTts z*pj=S1P%q+pl4=w5AWZl*Y zjgb=zwu|js{ye1leaz$3QLSUbs#az6@lJ5k8?4Y@SJyhNj5Uqb1QgUZ3wuS_Ww(6I z-KKvQ3iOXJz7VnxTY2#0^83wSG3j2e|E0a(uKqS9p!TaW6obs{4hpL2mv6-J zYN6d^%|+Ml-xt|HH}v^WLP>d;oVmw8!0d%ikoG6Pak>|`UGDx|3jXfu-e!5XLH~WG zcP6B%b%fn^nDutUg6_YbE*Z}l>relCvpfF3`Z{^f#Kc6C$KhhDsR}*?wyMoGhmWDA zx_`1^Ko8Y}QD3&70=Gmk_%Yz;M~4VJKUmw+HTq0yYWuT_?{Xs>GB5T}T`E{G;Dg<# zl$I-*i)JJ@!Euh7{AAxVa#&Hfw3Rpbx4knSx0P z^jt23QwOwnT8`~FvA;F?6W!@{2d^&y;pGSh{O13o{H@3D z>yUk;gNhBTCXXHBN6-XV0o7F>zqT`325Dcrew_d%otm-KiziQrSY-ZNX)Dq+{7oBiOiZu%Qc4faa>93*?C^SGHK$A0P z^k7dM9jA*XGv%?O`stBbSV!<`&mMYEQR?R{b4~V@bT^JwZy%qd2tmBP89F9F)e>pP zXvUC35-i&`K*=VPWXNj-<3t3AH{7PgGQL~BWZT4%5=kRqD)v70y*F^v#>Mpyb$P%3 zE5rl_JYgd?xD)0}P(i3#nkM8voW()^H2IolR;egXI}f#W=~8r67Gol$17Kqg>%j<3 zIEsax{9B$X4u=M0D-9J|Dk_}$$bV1*2`*J&6bM9eQ3R1YAHABUrXgbcY=8)Kfbdsa zXZPJ;8zIIsnTSiNyq9JCQiC1KAg#c<>07l@rGzu+7>SFU`=jz^$|S}2Q- z+{!OyFwzi~s@1nIG0PE!uc3?1m(^~8ta6|7F83NKg~xH*5PM4n0|Vd@I=p|s9r>Y= zk#qm}BeirDo5W$$j_%+8H@eK6iXQ^ww>-V~H)-byf|=_gx*Kvz0Jwz}K5C(D?fy9x zTBmnhBUb?v=TMbDqRn)ncvGb;;?} z)ZygAp{jOvu7o6c4JQCpU_Ql5W5wU|=SL>GKCSv-wx&p{{p}Q5EQVC0uwj4R=24*w zH^turiT?Q9vfY;PFO8t!uG&f1((s_V=}FysrF^Do?&vW#C8Lz$XAd2+iyc9tceCy7 z1<{P~y+CNga9%=K&EIH z#9~3}G$?nZQg_+h8gF~m(FE>cP6a7|UgkCm&&#dL70d!iveTbDCtw;C2;v%;Uu?9P z{JHJ$Q%6OSh~GQ(FvtLl6uxsj(Ab!ZmgBSmTLALieSNV+jUIA-MXRQ)Y7$J9qsVw(W_TWS0?8=D_k*FQMK^du%YGiXEFw2 zw0FeJvhDZl4*4IDVfdHTeFMxx^mQZ@9Ms(Lf9=)q3+=f$KL#Dh^*COH^j3fZfSIF+ zuhvY6I)A^mSusdzT}z!zuiUl~Vihm-uN-kNj zaACdIMeWW*t_^+t>ebfdA*@y`t4(z6qfb$p67h;7k}eWSA+d+d6^UvCQlu*R1_N*@QyX*oWj^MJ3 z8~gdXDC+sBjV z0HoJ?qNx?eD;SO!F!NZ? zUKZVMkKY+*G-LG(i^+EI36)9`z4q?^m7Z$pzxTXwoNT9bp>W!Bhc@%@k}`MSUi)>k zf1DlnyVsmxs#C7~>)*@%do1vp&j0;6spd!5Tlp&4U6N=1YB3b9ZIInroWrH3PN1M; zmpx$U&26wB2b+ZifKxeDlUNSZ^zDx!_pF4pOVgtGsT+TNbITBB`UXS>&Jt5Jw2Y8U z58C6bB80`-?9B$6xd#EnDP=M&wNu`Qw19S?%VDqN+w~+$BnTo=J1%U%UAACp?k_8$ z=Y)wbjk=E2_xL;FeAv>W0|`YP=6-Tgy$;sP`M_-DqDG_Pq(?YrD<}5CEzNU|&L~4_ zV`!LUt5fe>eculLnWawRTMdgBcC39*AQ$j_{!48u{nmHCMsu_0BPw}-D*LzXU0sHn@{7M|C#HNO!Dvu|WWo4Nh>0bTw#cjvf?|GoAN-vaE$%5CiMy|`9L Pvaqt4G5O3y=b--wsbB?> literal 20174 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

W4H9E#1yKM` zyQvs5mP9|O{oG25axdh{$}0Y;M0MRu+zMOHhD~1zc$YKoVvkwFqNl)evp2UAkV2UIxo(~G?i^e*Ro{8~*+t3N z?d?ZMR~9P`J?=7*zmvwSt=5Go9w-Y*1)ZKy0=iJ(m}Gy;u&vG`n+%^n_m(Z>=sqng zI~5j|m#9|ID1_kQ8h%k$_NmExxs{buXcl%FM)KCw^xkE}K_WII^EmtJRW~0W#f5vE zdo$QkM@I*?6K?h^wvyg{+r5nc=d)G39WcO{5hNJuP)Vo-Lu)Nts=@`;)g9_HuN;Ip z*3vUTeBV<~Uq=Tb&F|I<+Cy!Hl!Jy~LBcj>W^4`~S+Z)_YgI5=V&ohw&4Q3?j3Y^} z4GllNKE=XoFCPG(loWtE=F!a!<3Vd94m9)w0lPE=Lh z9zNaHZR^&u$_5bXyDNWRc6Me$Nlw}9e;@rc-MX-4{cdhGXgTR%d9YH-4+v8&Z=oE^ zPh#oCp@+pB7|On;MH+dDaQ(Je%MC?|YNKU)PFdT-V9uO5Ep0xb=N&AW39vKYadw|U z4wmOtodFlsB{_&i5`{%Yqz$pn4%v5y=M3A@XFg4&_&(YX8*@3Qmw^vCjz@DiK*^S}#H@`J_Ds=mwi*3^Os)s?#wd|gLSBNg6(Oh$fs)5OG z0_vwCb-^^~t(T9N*K^0DZ39O2v6uP)HuBq!?P4?VICj;zxb>SiTLg(|6g7rWG|!y5 zyP#^3+#Tm+a?O^M-^AkDnWm1U{`G5nvdph8d$K^ZasR-5qiEs*qznuyoRiN7Pvu+^ zoAEQ7z(4`~HgDF1kOnyxh9I}U9`1MR6-GN!g|zvJ$&-spN~#*agN@L<^0}xqk!+Aj zT<+q*L}@A~zQP5vu_?y}uxL>cx-ArmC+DzPkcdVg5z%wZvhII0^4~q|SfKbmdU)pY zBqc2xx##%t0StuOyJ5!^?QT1^b1TBbd(B9pny)Gf>{QBzaH7)*Umb{q12vbj#He&kstr2~WIDXJ} z<+?u@-OG;#ejxqM(f_NQlG5y2-{pVDBSz%oJ z#(r@-QHOPs?`WDC7<~fS*3_x%lb*vwkr_k_t(M26(JNOLOx2C3>LZy0LDJJtWZZ9% z;lF)Y`L<@eSeEsiMHx+11*x}2XT3{WR5ks4d#_}z6$QLIt?jS+YZA@RGdwZlvtP6- zAN*yi2mE_G-F4;1`Sfuycu2N%=RuscS$^EV z7ei!K)4p#2_MuxVPOteCpF9Y`HDYo3+?r6OJ*CzTs$mz4su#|;yIhR(g4!(0DCjJ| zUiG79ro>F*7Mu3itw~W0yq%~P8+6J$#W%S5W7Cg`uEUKyfHsWHU;Wu+{GzS;Rgzch zdK!G&gr&NqLWZ7SH1X*Wop2d_k4T4tE2HufoeQ?ckCPgHU`j{f#dLggsd|%yGp^3B zH6iN_M+sS;4lL`l;?L+axfk!n0bOc1T(=eh6IIKik49Z2cHCQtsov34hT=9z+-k=?( z;@@iO9%~GfmL#2Pe0sS{vXwzx2nlbPD&M?`E_Z2eZM(mUbP^OdrT)L$wJUIHIIdm| z2Q}h|sk;0eAfJuzHD4(}!T;U(vnsRi;DD1*8;rXeJNAv2qS2X&9U)~?~@gV#SJU!`wmz*5jz@Aku) zJ0`wTw(Dw_*t|v?P1< zU`hqGvF(=HWOyVr?K%CKE_QKSpFZ2g-Hgo-n{gjwiVQs^W4a7|q>-PfwknwG_HoP= zwQ+fg1fH|?7@IRNJz#5y$(bEzb7R8Kr0ww5ekOa+L0$fCZZ49uK9W0MTz_J_q`)+P z??v6kt(FNTLl2ltd0|~74n4mn^r?^;G;f=Az-d*H6!@wj=?B6PT&7J4zQY8VO~q_s zLdo<`eMWbm>o@YYe$=fi(}NxCXSeJSn>BrU;$k*+jA!q!m%N1)e(&JzadO5?L1hNp zFT9hO%UXysVh7f(S+gTNryn8XYhKhe$;imi`n;jK8>88;j4rH>a_N%kUbAbb z#r?#xr%%!Hj68C0zR#DVs5!_lZHCQu^)T$cXwa&K^`nBsnBX#PCt6!;ul%@cXP8~) zmg3&IiR;9&)%Eoy&dCVKu(mDUpx4y+TLJ*kW|OKwj*`EGJh#?CLTeM-R zr+Grj<-s2cJUrl>7 zo_&9n<>swh73#JUeue`gHa>m`j>`Rk#q)Mg=WkY3VbBL9 ziKrSsFz@5XOK5x~cLql9KX72cpg{n@5mn$?s3P?ujMV>7R~O0bW-k#ok;P5hZwkYp z6%WB1+M*MXkoRU5+RF(cHx%vH9`ys zp9R{&EF%zVgCB*5cuG?+0Gf)yc^xcmIllF#B2k;Z!gAq4sM+9<5QaCAp}%QUvXT_g zIaLDypuPRARg(+{9HqcGl)K2rhV9-mI2@BY)#cc+iKVsDIpA@;FcrV8s_N~hl(*5t z!$VJzRvsmLutTr|{R$+yi;IhgM@rtiA3~`vv)dQ@979_SA5w<3`S^N!r_GC@2pO)Z zNWjWP45({#rcNz)Ntr)yo{>Z{+&IJ2AYah|r}k~~Zi5{so|w7|3RpEzEsy4bx*Ouk zEQs7I6LW-+&zR7~5Ns~v0#)W3DIOxloBk4cn!bK~Ne$Q7{?!MDKWGbXG(PNvkltxL z3n(9Mmg{pbd+mZh;npZ+3?4pwv{@or2p^x9E3a+^5`xSobn*p^7`#|ZOKM5YCT#^= zhtaBRy2z=(j#9Nq2laO*b{cW;l`DsU$T=j=^DY=!%?p#tzYnlWfsnr1EhVNUYb3lcT9O)NXu+-Wbv2aRa;%^oH z_Y*U&T?4FSbxc((fN267E2;(z143ar2S(%Yhrqoz;@j7+B${-+d&^|R5hU&WqSTb0 zejlo<1zF3IC18N|CwSMpbIcbnmT<80im0!x9bgRL^?22!?!R>nJr76fcT34o^f~IE z2M_!rlqGtERtA)bi>&~bnsbmarg4INza)ZhH0E^h*uUnS`9=}Xt_s? z9^K>8m6s#;dI&|%)SGoN86#%M`DAy*7_?Qlv}o&{6;d&>vh?M89oUb5i9zEnG+Vok zq5=XWxgW?0ijkc#MOY9GjkBr`fFF3C z)zR`WZ(Ua6>Xj?6gu3S^;qo;6n8{xHcC>+u5}g)7-YE@zT*^xwQbCkN+CD#74`As* z;(MAmwQmaK+RBxFm8pC$CEAk@gA&OGpDQ|pBzsS^C(K;ROYePE-_fD+n#o}dOns`N zzVGfFjkzhw$$eyG0;4?<)2vYc(A?TlThShe2o@}unQtUQ)6pa+(`+%4_Fh!?owp*% z5QT2}{2A#|HA6zEVJHSB%kI6FlEQ3*8ry_s{4Nweote>WCifFh@hk(eoS~}Vh!>kV zIyl^^Y~Td_MO#7&8@_$cvYdmVP)VR1t5UMt)~m~7&|OHTyjf5^Y{Ac;8S`Rx6p>3ds4R zmWKlaWL_316 zsUV$)+rj3xZq2xSIq$VANN{9-$&NW%0ZC(27_G3YA}k{r z0`xii=Q{=lWX&o13birf$mj1{v)gJnbT=gI#0V~RUQD`Y!y7_Nlsgh^y(6lS;jD1Y zs;IZ?|Nd4rar`aM8B~7^XGwxxHz>RK5S3u;AG+WSQb1tf8zorsjglV7>zzsPgi$sN~!%aC8D&^NRSJIi2`7evpbXsi4oJ>6VNiT;@#glr z`u2m-7uc05GQ5sPU!XA~D1*QPP7f#s@I`QFlxR|ca>giEI6x83!~R%u`mbJHg}8Zu zu`td91s{DEgTSyPczOL{D8hI$X8d?26B^8^v9h-IFWmM~esL%KB~*&R4#X}2APPpW z$FnEG8oMcs7D85p+4MK8qZV9X!{eM6Nik;`N{Y(EQ%`1O-|mLnXQ+OC3w^Oozk;Pn z)1|a+)>b{ug(834Z3vz?MffljP{1xRFEbHdkuuar;I$qB+J!HE+iLqh?1 zm=k-KvluRN5Wm}hV{`Bx@wreZ4!_Ww3KBfke0~)iv(x820ULv;{PU%_F>b}P2Ov@-wblAsi z+PJuFglz(NmDJc+ThkK>Ibux2;!cG2KPK*ZP*uuLHIUwxNTZdrXXnA@j5xwPS3E;m zS?y$+uyL+kzrOaJwpI>B%p^qHkaR8{+UAp;_wGfy$HctEtIHm) zP=`rEBnz~CEAv=nWC!dbJ*VN>J{<=>xTi7q2ObXfPtMy~BARYq!14v^z_Z3tp)q91 zQUgDUSD{BA{PT}Ka@c~Z*1K9+N5aD)E4Tg;?V==g8&k^ciJ2rT(M%H}#Fl{si({Cp z=?&a&Ki^bkgY6ue(n^0NDUMEc$pMl(*$8f$KEb!H*Z6R< z^WxyN3F%-=p#93@c)Z~ufoUiJ}=1e%w ztppxM=yIJg)#`O}vI{;h4xOX2CKRPm)S4fib;;?A;R6rlV*8HO7XqAU$BZVD6DEvT z6&f6c1184ii{+5#FB>H8)E=`1#q#GX8>Ssq@_VCQ$Fs{xM2uLx#pO2mk?w0VFO;Aw zi8*)fR)J<%pUqAhLyGnB1J^X&U3oP$bcms7MZhzZYCZitnE*|5~YCN7S0j+O>j5oIPFej|A9LIF-3*sp0F{$M0I6HpFXZJIK-i08Dru1=pK?fJTP zuF~<7Cvo`C-JQdd>r*onz_smrWXBDYGv7mezlYqvZ+7njWBewgF0wxX;x5Er1>bGV zNc(UZlod11GU*Y&@3CK8*`-Ur-NK9jS_2YJREj*ZTWwmDF3c`BQq-sUtSfyo#Yp+H zqx^Yj
_x5vs$q70a#r#HuZF%&R~3VF9(UMmLpoL8N7x%l?GfyVs;_TKg^Y9fBT%a;wlt)=r~V6i8&5{{VO)JA~z zlX&>ec-{$GU3v9p{`vQ(Ui&I*kGwZHFj{`!9nXj=Z5hpg5@EY@EJm;7JA%3zv_3C@ z^b$hF?b^SDfb1zA3ORO+S}dW2i3gKT`sdDysIpIiTKjDWl_|#-2iU>N3|nN)(h|S1 z^>KdjVw+YEGq*W9a8EQgS2ziO6RzGmO@cSyq5S|-=y<^p$=VlFP>^eeb=z^1&jJWd z7h6;0DA}F@4I2&egR|hTB!%4WI}MRqsLrCMb#NHve~hgO1*^mJ;^HOg zzn)b?Msoj zIi0GE%82&d#3Vp1kJgFo1Qal0>pcrp(diH{*4GjjJ0v8lVc>^%-j1lxlwVUZWW}Y#Z@1BWJm6GF@mJ(IK=S^mYhF#U1 zGVnK8SbU>)=^tGC&dY~Oe*L;do0Gp0Oy<=cJG!>`bWPKtyRK4vx^sH%`p_?E#TCbmj*cpC>q5iA0P3v0<@I=ojP9j zf~uX%-ysTEvvzHxryl4H^pyC%5LlA=lHQK;>fWkJZVF6n6q1d*~%ne*#cY=%fZGw_yp&Y|eJx9u1eaLclF4*WIAhH@|SJZ|ycWmy4*P zpeakJsNcPC;Eri4AY$k?>Lju&gpsjo>SwiT~tKHKUsKT@`bP&4*v=fd$7TJ19QzALZZ>XpahWiu_>8Kvqoc|H)zp>8L%Hwa%4ExK(o8W@Qz*AH zC+b#4mW)uz(9viSrH-TJQaZVkWvo$IE62@pbVK$WQkEE#Mh8ufEoCd~xN${f?>w*S z-0M%D&->22^Lu~4@AvyW&-eL~tHA15L?cE3`9ZGu^eIWlOews|QR5CkEXXram)F;$ z{s4801>iZtX=F#jCQLJM(E}{V@jL~AF!~5U9utb!x;lk{9C!%hV2+JN*@lAog-{4w z58c1jQI(_DF#SX10UkhJRu%^k2Kz$3M0gxzWyzTRV!{;P6OHl<&kCp!mQ=7Wh5l_@ zg4L~)+F>@DD!6IIqDrXbk-;ET;b#M_96I30ibRV6nr`;(-OHSKbpkI24jf%wW$`W; zq+v46JW61~1g734P!EPVI971pC^SQ-W1rm&4jqPbNKE0~DkCdTE{=Vp5hxJ=pgVggPh}OBQyHXyt4+CrJ=;%OEjJ8W0KtL3m znjm|Co({YU#OxkOi5wY|kaYrn#Bxh+w;_I}C zA6;DVMyu`g=3wF%2u?4r*DiX9?!7=mQSKFcfaJggP`HiYLs1q$WRR1y>9Nd3X&UQIs7#h^)2Dwdf6wT{Stuz(6{7 znm(NtfqrE8rC0uYUv(trnnT4@hr#Tx3v19%I!*)@UVbsj7(@_oRE`eZ&aSxG0PsLe z!V*AMCh|bv^Z3MsoUCkbU*GGY2_!XzhX~668F834pf*4)^tQ6<`1hd#wD`B4LEQ`4 zBz|Eu0;yA}t&iN-k_J@;SXaQ%Ud+U{wl+K^Ol5dH9uir+|KRuU*1ziPJhnhX!p82+ z5RFQOh8}$+=ws2>S>IM)5Arx!8S=XZkt&5kS+y#Fb&V*|5)*0hsSwU%=m&xvW=uHV zr@^%ma~;t^cKGnJJ(EP&HC|SEd1#KX(($R=Z(u+v0t%#2{h5V@H|fv8qu#Fh!P*+v z09(X(~r(EU^}PIr`dWyuy=M7CPjNL9F*Uc5u+Gl0-SD>sdbUPc%j8Ed^v#wbTh zyoq$t!^r&_A3t1-F(XJsS(>VgbI0j{+YM+Nyh*MTKb0H(dZE5BR*)sONjBxtdKE#luR;~GyQH^rH}UK>9;~S)pi~tM4pqoKfFg!04hn z_?Of>GAfMFpSvi8bK%}cud>yWd5ddJ0)2x0G^5PZZ=OiL9U39X%Ft|TX;~p11Tnev zuBT0AmGeyztGq>vZrhaUjod#_64gItPCpNSQgot&UYo4Qn3K5@4MJ<#N&Db&_SbdU5<8gTs<37PtVIyqrXB*VjpNSL|^49e+NcdWN&%;#O`ig$rhL`38 z7DpB@aN9|tsXtLXIfO(!CkzsC3!@_L0eeIp6qb9bGsk?(B92!Xnz(%c>jeQ!JntT^ z5Fw+&8RK~_c)k--lLk>~nhM`s7h?Ih)4Ahy0!5kPJY- z!D3_Q(qJsTrOEc3!J4e9(V&RQAMO%bGm1(E6bhFz5_D=z%s$+BKU8yqati-`@=jYz z3m`+#OSJ{8>B8gg2k+(z9@eRAP?(S1yUnU^%_bR#ua=D5XL&_Y$@J5KO-sy%eA=@g zsckt`a(Ygjf26#Y1}S4nJHu9Sl>fP35zcqFGmH5JMjXuvIXiM`%do+Mj}Ewi-QEwE zg&>R8@VMld<(X@nq-IzXu$ei>kNaawuJ5|*yFMvV{HHD!y|c13xGOP93w|s(c4;GV zL11%nQu8-q0xq9rKMl(p4dglc{eC%b>$84K+lrO+ZDPvALr7|T-2ILhvD`_m8UYTm zXU2PHSc+p^qHyP&l*)Q2oe2O!XC!pt#!$pQlrXe|xd|{t5XTS}SbIU>G664n*&vfa z%ekV(A9?_WT=w!xF77(miAht$7gCsxZ~xJLGt`1ry~(vJ8x3s3MaI7xre{b<84*@T zI0m=<{64Nh6ie5RGDoUAH?Z4~ds5RWWaQa?9hyV7kF@&bG`!zKL8Oth<}I zFKYRcft}&Yq1U@i{FPK4$N1<=NCHswLBNxuMNA6;&;$w=WU&;NbLh|xeA090l{DJK z%v^hW`vRsZtgVFz%7#1+Pi%N&ve?ig;RJo=j*%zcAF5UWnz31H1`|#;nVglTCH*nVa953JWWYo$=^zX%&=oRu zAxc83gP82RS*rI1@NyTud>vdd#`Hy-vbEL$jFw^_aJ7j_6(R2cRF2RR?Br}e|JsW7 z<<$usPMOip)vC!yYmp}tHZvZ@DAACUK&}no+9EzN5&2T=NovNSOcBpT@Aon0>_&@d zyG$rn=oTm(!%}8_d@*?t%6qI)k?&_8HrX~NgefH2GC?ihy}Onc5z{l*c=XF+YkUl9 z-~Uh6jc(|220zUZOd%i)2Xsn!dzJH>geY^NMV+vmnhYyBc;Dqp>MBWb{YYyurW$fgLd>NXO-J?wcpH<(#O!aW zV_46EO+mBj_g`k_0u35Q^D{ag{*j&O|80B6eNk7jV;g%qvdc3J(+$&dEMkg*0N@>f z;!rx!_fWRVhQH@*Un3ktJ9T`DWmCC~|%ZgwWyw)gG-wsc**AcL<@ zB$*xbV9mn8fDK&8u=}c})+lHeTMom{%ScT@x`8ki<{PlsKz5%zaZn&d&#E3>tgHsb z#{$`OKR1R>v>N$Nr}-AUy5y)fl9uj}ZiJyzMPL8{=?0OK7)ElaA*4Hp9=f|@ zh`A5=`Fz*C_j~{Nt?ymGyS~SzK6ReG&p!L?v-fN7XM*1=O5;8te*gl3aAn>}sDMEC zARy2k%lo&1D@(MATEKr;#&XgUAk6ijABfy&;0n&iciLbO=po_t-&>%hlqbMNY-bq- zN$iN z+%hy@JyV02$9g!2C|iv&WRSerxQ&E4QsTI>t;)|Y%RB6uZ>!AGk@w+%gOgJ#xM%~M z?f{-2uSz9oC>`cd~rB1st;nSr{Pyswai9&?r8 zHYX=1V-=k1o3B|zep=>T3kC#w|FH4y-viwL(m_x3UBZ#CCN`};{|x@t`S@{3utz+o z8zVGval1Of(b}oNm8(~{UR8VHxNlP79sX5(aOZ;U!Z zPMs1waVTFC|9dX1_DG{mX5y-@?`rmjw_md9sKAP{1+l}`ia*a6hm-zdba&#E?_24`aq0uNt^C-yz>e_a-;66H-k#BtETOO z-(sHClzVO;cZbB{)5tG{A~0x=r<6C8)J@%5zaF(ZEW~G5q`rb09{l)pQFl)kaeNF3 z7Lk<fv_t%uO>#I)xLCn0g(UR#+G373!@#0;`Y`K{3nwpks?3NxO0pS^ zb!yy}?Gla~DePXR%PWbN?-zuJ*{II5dN ztN71*!VByv$+c>ZHtR_qojRdhLLsb6rzvpe6|hsM;a1a5pgQxxK%JTlYKZHZdaA+0~t@RM@)_b8erEXsE>{QL;Hr3*!=OoT&r5m+%hcx||u#K9r>yuhaA`;r&w zw5a>BU@H>$T3YVfUvPAdPnW>~f@RDLyY=G)u5@pueTEQa2p;o;{zeKP(S-B1oR)N= ztBr!s1u!iMiNU^$TB%91ZP-R`kZEBOdeS9SxDXK2S_CIhc6ZY0)r6m2p>V zwqcyuE0f-VvK8U0X7Pe>V(;@Ur*Jr*rEqdLs&w1`Cl+UF;&et^FVhTlHC2_}kMpTs z>Y}O)2qY_@FCp`Cv+sb^55r-1Oe)7V5#p>{#oY{>_~x@wP10{hMYpxPT45+vq3c1v zze8XkM^E|ALydY6&+nwCyaF8Ot22+T-EQiIYddf1EM_D&)&zx5Mcc9<9Z(l&Di|w& zWqw#+J-ddhkoodH*0nHdUo?K@5fD_Kx|njNp;?xDC^Y(@h>}uI;I!P8OG*FSre*I_ z8e*N;(T!aN(`2wzWGngv27$D$#TIQbx$}G88_8R?36aw%W?TbcrGHkC4d>9NqS6d;>f;f@4hRY^RR%#z{ltC2VaN>I%a40h%^9` zR7KlLPeVSse#dik*JZC@qQvp)+pjE^>IBcjwxt}`Os~=Q73E6b`V8DDDxcC&a2RK_ zXd(6Lipr0Jb^rQf*hYF=M+dTrjg^C(UPB|a`{d$~lL9??&Ajp&rpqt5x>9n65`Rz-Tg2ZjBmO8sGXA^!FiX6Jej1AzqOTuJMPR~(M5 zAg+$EX~NMUNxiTT;VSUe_s<0jN1g*`Bev?Nv%}g#Y^Z9NHJCOvg3o#dT9_*+T$kNq z`WRbN6B{bviWv-$j_$EqUJx3W z`mLIGhNVWgZ7Nn{jCkcdtNA@V`Pbw};R=brUp}WDj}h>u+bT-dNy{<08P)}#Kh8j< z+J)uSmxvHamWvX(WZoS-U0)~~B5=p1(pq9=)V6sxpJ2w-s=sn!6kGO$0#(#6zWhPB zD7zOn(Dpp3YHMS}=BxwOYbV~7es13HFwhBR{nQE_sjTPqSuS^cJ=E}ciTp@^V_+xV z<<9M=65nq5#3>c*DMe^{AB>XuY@k}iYS(hRwv|)A)ai&egWrHLZ_DdAUEI571{7fg zH7ck&`*`6T^Q*TmtyZ4iYK?P^-%Y2mCzOdr5O;KX-L^P?tnW={gu-;TLizHE#!I~q zV&Tkt+)wXZkMNoFKyzzrUCf=Dk8^L0jDE(dWGvf$&L87r8)NW z_|?fccT#^{eNNjBn9-W$b87kV;F##f#rTB13cMoYAfIb-6!M(t#z*)h{h{^$%0~#h z`V;U_?RoqH`3(=hB-v>`fBsBFGdhpNzP|E{PFOfaSK#L6C+qw4|4k1{Naal_FPR!n zKh67xXNj$y#ZZJ=lZUm2sIqCLjXxPYK4G=xjwAOKUhqhxv%#t7`A*NHn(TM;IU{URCPp(?J+hUPHKY!^ zErB-6ZBJ+7yf@pnc|t15!#repFP)lrO2_Prtk-S1vHEIli8)g*s=p1aj{B;5ldzWd zIr%ir(%+(z${cvU!@Nbm9jaLvS!(knthG~>T}z@+b6Jg#{NSr?r5RyYQ|r-06ocf8 ztyz#?X7TWkrF86o&3__O?Jj2~lA4h>y3zo~p{M%e?Pze$SEmPVg`1_P9X-WkLI0A8 zIN~EFAQ0fWBt3UcKPrl=Hc?52FB^C+J|(Wms>kNJH1d^reKKdrJzz&RT8)gkUuw}) z#Dn{|4xO&mLXJ3xm(Huf<%maFbdpNOwRJD3se{62lJwTL>JU2a(ig9GQ>}6feZ$@| zhfwMx&U1`I#eVbZZQ8g&*X=z{E4M$eOoKZrAJFV~j^Qrk^E>kVot@kMI74SE7O3zR`Q-{nk{=(%&|y$b)KcwMo2nP}!owfYSt7WA@eBi>E5j7iHUzE>&I zS0E7BcXX7_96*fVE7K^y%#_zj7t}AXQN1!Kb(pEXq_3IKFIX-%L%m9-bvgV^l{B!uq9!My$78TLIH;Y>2~}kqR%abTw`zI*8`ZZ z&&G`DPpe#~OR*Wj1MK*&iP?;DM7eQ?lO7dXoILWd`B5^2@mMDcg3_0UJN|3=8T;dy z6yqTZ{4NKo`dq8eA(+O1=I6jTg@huz;qP);n5Qom8^evn)0$OTzZvcNIh>&hSVQ#; zIM-^zf?kAd9 zPR1%EpTP+G2`bX5npmY}#uO%( z9ZDn8a_jvNFn!Tqlb-gSo`r>lgJYMBiqlbbM*)KBU&MZ!8~J=hq0j>GS%jj_l0=X!tG1&9fji@&EP*nSH)P zhlhv$*!WVCl55U_VNzg=nx723$vu62FyodGEdS@BBGGQndk(*a=e8AE>II!ny9Qe~ zQ^!e4f7;K^_bEbc<~>J8%KYyzxw>c(@cyhtnH<9nk~M24sARcCK4q%1no4*$H&mr8lpv`!cp!dIIvk#u& zEiuz}5XuBcqVJ4IB}qucoccsh-b0T~o@=afZ@7nqjo!E!pD?x@ABwdoDJcO!MV>zT z>{jCV*Ku3l!J*v$6dfkDcz-ZB`LHs{BIwGx-`_op5|`eVAt5MkxxBQ~O0AM+dzyBH zE@qzy6OBRF`)k2q?y#XK?tz69x*O0sWX{2uQIJ@ zY<`mwA>O?%PcurT zvJl;6rEbS~V|zO}Oe}Ipe)U1= ztyD<|Jx$UfWCyEv+>KRmew5(S?_hJPIO{Uicgf+{H#qfGAzY@-kG!L;R$ zCyfdb<_m#@IH7c(7nKDzj*c-hOF`DsU{Jxkz7)vel%IW1q; ztMY!g66Lf3Kl3vaS!<;KKRM#2Qz5b>%0&KdNc}FqR zA4E%0e(Q4XSN))*y`A1aab~YF{*%)jCfbwRv!yC z>~iIZbaXzO2h%u#S3+7s<1vmh67zglm14A^IgB4N(Y>OpduQRlDj~7@4=wD=ri4Al z%dd7(d@xEazHD8iKSd7biUM)H4{xUGwS64Qh~{#5-;DHyQd>Ouz4cdf|NY zpjmu#-iR*oqr{m>P0Q(i>Bqd6l{<~5e;D0&E5oz5!l4N@&&xl+ooF0`j`ff+Pj?SC z?UAo46rKtg?=K&&Q?qCd52YLZ)e}7hLJ|^^Cr{ozzu~#zAqf>#uRrI_$$#UB|8U%v z6leqlk&%&aIzWpIuCA`PZr!4yqKcWX?=>&gW+5pZw=LI!YS=7GNh<$(1c0PxWfOjw zb=VN#rKL6+^=}-JhXr<;O1t_8Lm&{qRTB^tRM7?rtY_LAi$fTmz-_!r@~z+1k3d*tTkhA>dN=0_@%Q$!?H z@Itz!wUvthV?$rx&e5o$o3nG)Gay}L78Mocgg#tj)vdUD?;dB<2|?O3OMoLR|Ibmk zKxx5QSy{h-|JEtDuBxnrKzhtG0XKctY<_k1biDu;$DnMy(wmCRSMT!f^T+1Aa~t&I z%kc2<`baXTfw$lai@*t1_!?k87cAIlW+y?fas-T|?=A{A$VgDd2@woub+0}G( zl3I*AE@Hc#0XXctSAsmff8+PKICBdNX`b!YZ#Y2gY;rwW1ue#NSaQH4lR#!Hv?c1y z6=FRVMn(uQF0C9RH2#&t1W?;WdN&muNo8ljr}wJ-Z*IN>TLpK!f3XI}tw+Zd)vjmz z<=_3#=VRujC>;9hVS${G6wf7>8?eRC zyVqH_cDwD`d&aHJK9#X|K)XNv=w?nF03uVzZ1>$v0PO8`>P+XgM&OW<<$QZIlnLKu zTeZ4o@&~yu-yP5=O136bwEHSUf%@9H?`X-b7Rg2T=J5_N$*S|jP9S~-7dhj=(DjS1 z8-6x}Y;^~>@AA|FfklLL%2P40eRW4Od0gK=*J8}S0sGqLzF{?e!k?k$ami6vZdFW& z5+o~d3qoBRf_5lyv8KC)3A+<+UN@U@JA{O6YDJu&qrJVIBaw&3|J?h@`?CA79vauu zc#rF63Op!~4tSHgEaU`XQqgA(N~JA-XvNZ>U(YMhcHh73O?k>^60XqPYgtxWN*L+L zwVc8aj_VX=z9#c45RgCUSx^^8VqJ1gdp-le$gZ?Vvw4@E!+cFuXdQ(pB-iPGV(HK` z)j!qoV>-SZ5u@6l`rTPkYQZtGBhRO?9_GY3fE>#IPVq-6{}1TZ4~Y(XEF_^2B6bza z5k6YUX6xcz^X0^6{~jPwf%-PuKLlxwwB(LiBBS~Db*dDSMu}jHP{7E2_xJ4q)chIz z!ycemK>Lxj*_-gYv{X)B9thmBOhHaD&CL>CUS8|F)GdH2f7Au4Qv` z@mf^1{2@Q5F1K34DDnUz?Mpk5*FbdpUSXj%j1f@kc3fY~rCZ1@$5iKEC+7b}@cSQL zle;gGq%u*9adCotPFYzQU`-YmO@)Mnm;li^MU-0f2?8gAf`a_~fO~>4fFZ5Rb#fj; z3?y#fxx;uDG_ zN^=lUQ7Q7?gsA_wfj-2%cI)4@0RKOV?Epw5vMwEl^yz9aE}L;rc%iZ3)K%NwNn4*a ztj^C#c**5(#nK!{rG`3ST~EU9dF?15YVvrF(;0V$8I$`uR#!Eb%U#7a(!1u}BeJHZ zhGDKBUS?iybg}Pr&DZw5{sY7PCS`J2zK2hC6DWgD{e~>y8LV?VjpZBi{Lj(1W7m0I zLxn2sj@tP!f(T*THxyzh5$VIc>9s9x6El32$*X{b880<^PD~O%5mZO4-`RVTeWq;2 z!`JNeXPoG`lH8yoo8d*D%VdHGnlHEpT!+H}6>_#i3-@B2zPkDAN91naDDL9)^>ip&-wg;p+nq4vekZym)i zZ;4eYkDXxaT%hH4uU*a6@0iTb3I`HJ7lk$$>XU3DyE8?j2?REGYU26Xh0Xkshx!

uj&#D-D`5$12aq5*pP23+4+Su9R#8zvokr#(<%-*a`d2u_WDj1?${3<}-o|Jh~ zMA$PG?tWv@g?%_O`c(VHo1NC$U7{gR9`gFKm#Mx}AFa_LDmu#_6_I04FzIc95EW_s zk&#Hwb*8KL!uth2b|H)$J8*F8`P^RDS(QvVp3#O&{GS)XYEKQ@70l4pIF*H zM1)0YRQ!g$UDL*|y)_y&4`>Jo(S2gE)}`!|Ci`yb8t@vg4A!viI&m`LP|sk!X)j)N ziC{6G)mFsHQQ=@#R{NUvkXs8Q4UJV>Zk=|$_K>fxgO$hwFNhwlP_!vwaVwRWt7>!R z`?SrXzznyp6(*<4-80kVu_&5ji|MyN2Q0a1)`H1+2~;=BvsgUS9`ok!Z2D8B??6IA zwZ_YLFWV5z#{FXY_%}OTL-ajDV+M5ZFngy>G~Wpx%at`ss=Vu5bNvKGH;pt_xo;`>V05BL zzS~+Uw1dgXqv^y18!>a142Cz|59^(N=Hz+y1v=`0&Dol}@fZ1%$K;r?Feh;^>VcB>CF1D1$%Iqu z)tInS9pOe=iLFlGYGd;i%}3aNIv)8FJMd6bdlnQ}wtii7O`6Xx;^8)`^JVB|$`|a2 z4Xugov5+bX6$)48myg{n`_!ZP)z_y58rZCni^MD2rp!v?;-H2D5^8Gd>sX4^%|cF1 zP0iW43?Y%E0ng;w%l@wc0r#-5>Lh4OvL&}CeP~)rjiH)|qcv%)*oR3* zVk{T4KUAa)>_G2>uVEx45Mux>Cx@Pnj*gyQN=k~?e(E%l64SWi=;`imn)4Wl(-L*J zy_3&c0267^olp#jlARs4B64AIRN2phf3)g9Y0DcXb@1CE-B9cnsKEztj!wSZdkA+hJ^H1Z+nXBvoRgE&Wqp{8 z!w5tQ_$lqm27hc@%X{JV-yAd-S63@=bs|JH(5SVIRyDWfSgcP|9VnE@!9!~5bRZ=> zeWoE%?Y48ZlI}N+8uK(+SltP~cYOW<$!??3yG`-i?@y(eNepJWfmm`J?l3cuDLq+c zMR?POaukv?r6aZ{;Y!LxY(VJx9bEfODXQO7?c9CubA*TEEs)dI#aYm0dq+oyaq-l_ z2hlyxT2a5?w^UM4h;AZp`e8?UPHAG1U81P@bdik}eX_-_R})$t2UFWucU&5z0Uk(D z>|4DGLw(oYL0hEga5?@7$;6qDs_#suKJw1|FHbHi&Lzf5P^754*O6z$LQ#ev)TF$3~q}tn_66>p;PT-)eRtcr&p>T5& z6Fde#cxqf10*NaXu$fx z-9r2lFAmc1=z+xBr4NDu-wNi##}9i zf@SB0MC}fOj`Dd|+viY2<|TK!i)tAH0;u%+rrMyD-m|s>86I{hB;)nRs;n8!z!vS8 z7>K&KXfj3Ql|*WHH*K07(}&XWw{PFRQVm8HXu=E-)p}JiOVf6Z7sJ<1wz4{laFGw&S(kitS;4-RA*eDnT9-9a~kurVWk5lH|x|x#+KmX^wW&Rwr7aK8_IyvB*y zq36c;Z_e*<0Dv*l33(fdI}O$Ly&8I+L*|@&7e) zJMH5l4+EAi`y~f}(S%7YfXTh$umQU6x7?YqL9=48_Ze?V+4MLPzOSh&yPX%m3c9P^%}>(fQ7 zt~l1r`}mpJe-V+_tatw%LjT7>Apl)4g+ijb9HWdY7(DksRY3I&Pe;0Z?~86TX~}&uMoNpBTY=kWaRMrbLj( zOQ1VAM~$wqc`w4i@Jnh4pWY5(e{~{$3cVxdd!>Px{qbWRS14l2{c>CEk}){Q+}Uo} zrFBk1vf10@JSL6R8tdM@(JgLoRDg5xJ0KuorSRdlGKKYjmnxrGJzD5cOTNwyTb$VI zurgE{jP41Uq#Y^+YaelmTqNg&1#T<#*hadV$`8@g;^&00ZcVLcq^{q?zK67&xSZS? zAnDjtDdn77qoK*e4&=s5bR3CsG`7x_QkYJ4W3&g)m>;bpZA6VGStn`FjmnwGS((4z zt`bi8%|ugTtLYqvv7M+u9}eP;@RhHyLSOJ7C_Uu@VphCq(c)o(6+2VGOjU3TiWLd9@hi&1CI_Hv?v z@Ey_`ridi;n|qqjwTnMWLALC}ZY@P3ljgh#QJ4Pthvq;sbt>=cXuZL2Yt$wQABi_c z>5GC2z7j?47-hBl$~KbPV^b_OU-$z@q@>uE952iQZhZ5yQ4opJ7(=ioc{?&#vrEyNc!un)1 zUw4OJb8E1$GPAc_FBz|;=(38hHQ%M+RHG(I^599iRQ)kro&cCNly(YuvQzz6vj*=aWY!3f9IBhlQP}1eoy*T#8HQ3;$g=(j_dbsF8 zUfY{jFopEwjCSPv{d5uBS{E6xIhKT>NVh&r#QARgmJTMja(p?&w(a8BvoSj_^Dm3A zUXR>Jsny4&q0y0Mck_|8EkVY)T3rs~JcOr)bA|S#BrHz#S`*66hrRH3xCO@+{gS+J zoW`Qj>AHLJdrS})C}@(YBuOXdtq>n_D5o(l&C;or%hr~ZFj=vUC(B&@rql9stgwS~ zE!+derL>(g+I0H$A837aW}2UF zM~=#m9Yod+zhPTWZOBhuSe%|@_$+UG!uBZ)rh0EJ8UU7#aA1QQTHp>txs{p`QxnKU zj3<)245I3lTaT8cqu6%NxAl)2wyoKI4MQ{Ev=bN3ovJ7!;#{v%9PzsFOnTRjzXO6hdSDRvpI?{H}I#N6*1?;aKv_tZkAzc9*@qW-hi#b z$cGDp5za^1de_FVL->e#JvK%pls84Ll>VtM;=;SG`pq=Cs#7(mL-5-o!Q$x)FJuva z0R%FVYo1)9xvVhxkxjBV(c};O>T)M3fgJiK_uv=G!3epqAbsiDWX&>I8GOEN6?!6> zY|E>9apvcX*+>%T;+iD(KqT$;2R7k^Xcajay1iQ96yZU~I7dvlaUai^ZN;*jGtvaU z#ZB_uOyvHMtbf^hB}Fi>0@Y|c>5d`}A}q}Lg_0X>iL=%k(LOYgM5roKh4F?yhC5u& zWeEibO^M` z>+L7+&S|FMtofrrj73NB@cs49^pCu7!>o2*dm}r!CUg=E&X_iIJLG#3TCsKB3dMQ) zRxq$m$XPS3geuWSW_7=uoU0D%Ap@^&RJV3JHFvAs+7@Cjqbf(^=KEUDx4Vp%wbUq* ztIf5q^4X~6?dudMEmKt<{l;Dtz&a)$r?-FG_8tB+VSGE$>>qJchpx;~tbS{!0^jHp@>r>*FIdGB_6IZFr)jUd##EAq(_ zIbf;?av4;nk}ZqRo3=aI zbHy4;S@%6b%qo;_?w91k!dkIVLah@Mf0F-db z?I-0sWugKkka8Ou8d6nNjgE?XOh`yeODp8O+JFQ$GADntt~g>At$rjD+0xQ7FfcGZ zJ#ECX>MRK5g|qWN0n)Tdq4=-#(RRx2({W)BL@-2B>Gd5!J>>^A+#WVlk=#u9iz?;? z#--z(#7?3mHj0T!s4W^d$wHKmyXsUhYmodK@xGUW0BipcP?Qz`db0b= z%TfHcuI<|uv}|%X?9ALD%PL43F}@Z5Ed*6>r@AXSEVXjriJ>;w=>yc!+}9pGz}%aa z5aYdKpA-%|@mnhYnq0hsmv&a#Fj~A3B@u4U%N#kHrUPt5vr7j~_Xt~QdTNe*^J)3j zp45K87!^GPvG-4w3v<=49)XA9V%@(~@*yU3ugWKt>{4D*w*dVbt+dak0{Q^%r{P_~lenhRx#lC?(J&mR z+8u1!sVk3kI82j{fuYjArq8e1(v!r3D>eDZJhSmbUSIx64mcED?x07@z`(FtPD1T_ z-lk3nyD9p7X0eb*IgW1j`=C6dqOZUK@3dO!X?kH-q^ohq;6s?VV3mS4KJ?w|ExtRz z_bA$%X^zG!HGQw7u7o-I4OH+SS#b%@l$nVLma@og{3l*Vl1# zTCYjJaH13CR9~C4jYw@Ro}Ud^SYI9x*5{a0W*ZZikYFJZ!}mgH!{#1fJADU2iWC8G ztEp#PbRv+k2!2fWixm*=eR?PUjUyL-^yT7JMriv$Or&O0*(E)NJUF z)0$9gEuXViaO_ahnJH&|gA><@BI-65tlguN)tG+Y0^oy8apaxyZ5DZr# zcJ$%M9}uh*c<1SzZ)WyQ=Jh_Uf`xFaD(NjfNt55yTlIrWnIdZF4PeSqP+kH8U8(#v$6H^e zB&blW-fOuL)!mTxN}Fia-Blh{3SoPZ2T&>b4tk1s{%gX|UUof&J6ZZzS1@{+O_$-W zs1PL!(0gypjP{^wk?W^v+9mTJzaWXqz1FJ7RB*elYSiimaoSW+{M_6aM%SQU zf?oQRqTTg8b*9er3;b$~Iz8PGn#wyd(bAbcKbyC7{rF`(OyP&U28wy4w8q^LmL?1r zBQeO0onqrf8|~f%4#V-o1tlRxy)e0u`dY8KVb-;!brSIG8D#>0>adv-l? z)kxeTm6|5Lngu&@PLdtLh%;DUjbonxlWHc*wfR~+S(c@Offb#HZ?U3!h6a96brZG z#(WaC zSZzN%)E(P*vaNCu`hIW?e58q(%TGz8$OxN)@K<`sfNzpXx#+2Y>~{*!-_pAOtwM-h zV0!^ji1v;fpa4+Gzn={4`T?J3>k+O{WAE-%JG^C|nT_cmHT_Z$sGmjdMxM6TVD27&T0IgyPTcO7rohhGDR7>9M&# zC!yyEa;zi88tZUdOcaMYz=}P_3)zI0Hs7Jl# z`6ordhIcfmPPgocPr6Z-&AWOo{$hLc=8e9X(D%I(E9^|m{khftPt{bt6YIAwJvI6C zs$w-7~&3}d85EomJL0J-r z@qz_setHsIkyOC2Hum{NU;p<&rq7jM{4Du;0z~{&d(3--U+z3{32JkDbTwDPxiYaP z`3LL+*rc1^1(1(0-`3M$V^<#+QD&CARbW9{ZSlD?SI$H_?!|VPNDIDw7HK`L|Jicq zty>Nv&n->W1`y1ZhfOoRf?Fa^TH<6n{Gc(0v=!xRG^*hU{~u)!bXavmBT9S!m+luH zp`K@ILLFK(G#UOHjcc#uld#IIFfCs34l}AwYknvz$CEm6X%b$^xvOb+_Yzf~;{zSk zd&_tnDVq3281p}+DFMvBU?PvZeKW%Y`=<}SY2~rhy4`cAtTf&{EJ&@_o*Iz+goOus zO+-Z%K5#QbyajqLM;2PgGZdbm^=L~|iyd^O6g7o%F>w2g zW)QAw(0^qmxeGN+YY#V-i zwr1M6Wg*FRG<(}^cwPAGkALiBy{VI-z-E=*y(lS(*<24e&Kvf-+JtTsR;y*6=l)zk zRXaN|8@W6dR0sEJgGI-uenpA$&KIT~ujHYqltx~C%isYlN z*#y{-bzyxxPX@WT46QgmQxSsRD;Da)djViJPmPJ_L83f;tgIwW~(c3p;UCHqr4GGPIPClThHiTlzYV@~790+kDp!hJ94>1DH3 z4wHfHg62nCGjju(i@BE@DcQ|$as1ZKsjV&S?$(Ty-4!;>l)}Zw$4^@+*I`8id6?G& zoeCTuF1!>+**@5iL~Nrtf5jS}7kfnsh@PNFIx^nWiHiEB2C+dDE1oQvJFgur5D(Sc zkX@yW)y=HekSv5jqtW+x97ej~>MM;8`<98Gq7O8f+kUrugFv=-%$Gp!I)EQ*Zf*|z z`?-nFz?=cQ?*KSHK0XF&FoC+&6^}zenxB5g=4MciU=Mgz-IJpw`Nh(~H$)t_Q9$1v z;pa6+U9e7u-$N3i!Nq2y)nG$he2OzXhVV&=k;0Zl+b>nTSIN=M|dUN!S4ydBDTv{JR|CcN@ zV3nyJ8*5L0#Gs)>cW6&6hldqZR>%3dJZ&fAGD5*M-&Wth`Lqn^2dJXMmRGD4)_icB z;4T3b=7JvXm8_MUw9uPI$rHpI4ZO?vaoHL6%b;w?7x%aBv&Am=e<8?d;t08#)K)KMMb$J1^#Uf9#V2YvF z`+<@?m_zR}E>5gBvs`djo%b{JTPHT@+r{r1LbjSEqO_$uZ(P38atNoXWs;u;=Ki)Y@2 zeR_R(*WE&Id`r;# zBEUeG>!hZo*|+y(uXNLw>99Tk{9tw*ae-@IJB2ddWsO*Fn!Tc-N%NZr^mjL3Nt^+& zmN9lu+HSos41Jr?uMDOCd7&+)d~M)-R-VONcLYJ+F%aeRkQ*nYY}%$RyuZFD!Vz=h zPEtL-e;25=WQ!+k+Lc)4zc#(Mz6A3nt&OzeAimuG!oki6dOi22sY&_nr+Gr)*)XY$ z_eSABLh||*O*sjKG|P&HF1y`5@-?oZZhj~=jl=mIT>=}76UO*_`I)rdbye$YnGf2$ ze)2(V%ny-(7HaxVzrnG^p;bd#i?MhcGY9iM=P-l4LGoVm_;qkRy<7DZwPD$ZU zQ&LbM4wir!lePni`%nMK*LJusptwj&Vnx*X{|9Yv9amM;whbd9C4#iHASDQhbR!_$ z-AGG!w{(kuG@B6V?(XjH?%Fh)=3QH_`~L2@p7(pcKfd`x_ir#m z;10)m>|9*sDA5T~a%&onvbo7ADRR2NyWlxY3LXw4p1v)QF9>PGb;xlaMwlDynICfT0a3G7JpBC0N?gr-GcH{h-v6s!W6CXE+u|f`b*Qocox&5v+Zh zWo<2M#ti$U&K(w}g^#V8+DB@Yqa5JCYq+cdg2rA=dt*dpYIIvl+Q>TKjkV-cVj)lB zhx_`r_nQl?uB6%6VjwdnzJh@v=ITs?tLjLsF6+dW`qn`M}%pIkj?dCIyjqER+`4P%JdgN&at|25_I-J;igY~$ROVf7| zSZt`eSHH#&bV190jU!etGyaQ{1~5lClD|N@jjija@d)6_30??tEbT}>W;~C9rP3{u8r3Ug*#(jV>>5Z1fln1v-h!*tk^aYseGe zlE+`5qY1_t{dyK|_zX}#TxF+r4Za7&97F1bZ~$)y1`CM?=z+8_=xvH4gve~BOo6Oh zLAuTvA`E2T#j}3fBKAKXz?RVdValKKyO>tuS##M?eGv7_KQP7lt$gmp?CiDNc2J<4 zKN0aDFh4p0Du*^HJ)Nz2T-uZ;FK;>lW?|OFTghrx=^bpWmwsYOPx@$oTZ5Ti1EoCW z3qWrH=x%A0^7{-vOaK=TK|*WxQwf@^NWvYZ=h|8y;)`1fe7_i?dK-6(JI{u|@qwKj z+B(3DIc^7G@Z)v=E4~1}Ch!BE;J}h^eS!h=2JZUis^SY|se&gMhwQ&l1Xh*hQs?!N zeFB~_IoXF~+RhW=!Vb0#b{l>x*07p_Xl}(hD7E%mVZqO~ z8~|8&d#PD^PJ8Pn4%Eg#hPmn*wNet_)mgYW)HgKdpr6IKE^9Ka1B6;Y1K=#Jc^Wmi zy$Bz^v-Z{)ue8dB>oJ5(VyyJ3SZX@y3nf^aXOAP6iO=00hCGXYQ9I=B{j@JE7U(J-SPD@fUGBU&Lycvmz-N5K>g=?`Z+xdP@ zhU>Js4uHc0W?$Jua{b^SKUDQ++5PXiRpOA8doW62efX(AtCIGs6>y_7V$_m1$0B#U zGhTJpBUG16#vxlE!oe8fre=2UK5P(Rs8RGeBSWJ<8U|~7lBcxWJf*G%mNb6SZL!B; zL2!Ua8T~3>BY91M0-qo2LFqVY7@OVUHq-Fx$12?;{8JQK1NQP*DzddRlwaFTV=tAyuo!fO zEN7xw;ptq=-1$?5?j^ML@!U6LiK!^iu>rH&(ocgWuD&$H@5ncl*#t1<|hQc|nO-XIblIPJA=pJJ6#p zz*AzQgI>H&43;J zPe*aT+i_q7eS%dsr=qXJE*A*?#-w%<3K%HwM~p9X12;`d13^f)#QW;h_D7Fy3#lg` zCkYP^V@<^@O{E{+YVM5MX@b$r1%A4|2?IT<*7 z-%3Z<%u1>Jx4I> zN|;=CL%3o!8@1Ecs~_gGAb0CRMmbSNZH42%_J{5|*|Y2IHQrCVb(e^VlsyDfzUs0z z8s&eS(+;0Qz1=m~%IpyMoLvD-K;35oT(LwFLLJDj$UbB*iw_3js|scU^wq>f--wNb z@$=4u{4c$tJvQgI{h%q0w99iKS=6{%km!N>u#%*ZkYnr~hvBlc$hHWK_lM^S*e%a> zCkNq&7vEn6Lkw74WwfTM7K;7aGhCCefr! zS_{r(Wc!Os9*?-QHYx*KI71m>g+8f#yl$A{Y?WrmGA9J{9516NcpluvpUK$R43Ar0 z;$K*~@LOq> zfqe{Ksuc?K1FOG{E5!PyKIbV6zYEkQ^ry(00uYH?uddQYpg7I@wd6Zw*{aXVK&$`; zMk64dP&Odp|81WD-}%SA?MyeK58L-%I45t?Q}wDt8Tq3P&UP4Qd1HMj3KXybrNzvb z7*qB~lGC%tR32)Geb~2wPSxaUbq?XLC8%iwt$)1DRVZw_FxP*f{#ZrPeE`M3(3Oh3 zxB2Gvf(pG|RI9;FYTm8+_%$zNA|Ai8Ijp~Y5z}Vx=EqQq1tmkKNZQU!j7^$r3y2=i5jJ8KK{Z#WfSrU9YfW6I=)b1Gh|QQJLVR69qV29Lv? zGS4j%H-|@X8Ipf*5aE(Xm5K94p_#_*!u4HBvEGX>bO3OJ>i*F)k&|&S9bJG#z;`>!Z9Dy|*p)edRjyHN8majm+7>EdjTz;dU9rV0@U~@l2~DxI z!XX4y-X8Wk`tce(shLdphK` zdB|ia<-DCpqnu;G2#z$^*C%*)oX=2#OSWd8jeCA<``KT5$pbfK)J90?2ZG#cN~7Yt zH#TU5<%bc$L1D&J6K5$^rUJAOb$x04v47g|;Y_~Tck(B#)4oYcc^L0)g&_?V`NR5U zKwE+J+NuNcbzyv1Bhj8^@~b*9ybi}xmh6}GN78O0e0+a4nAydKOi2C2HkuC5nYyAQYaG+UPe!yluy4QR&mvuVXrI#W{)#@Tx7gfVE*kC>c zL&@lx^S!x_$J6ER#f5w^ZGhtE-q;IbGY^k__$pXLRy5K``VpmbBaAaz$Po0{L+v9; zm$~rnO`RYt6k1Scg;sS)J-xr1Ls?GBo#!hn1TCjopoKKO*Zs3;?867PE{0JpOS4gf zH7O^m%W&FGmV;dr|k&_E1 z>uq*6n9Zh~qW|5f8od-`Juq}d#uZLh@5xQ#VzLx_%UC0VC5Fizb5e!$N2;@PF1 zctd>5{Fz%$#z9p#Rp@wXgefm45RWM#t_kH)4MEK4t{`(_@edG59%cJ?ag{T?dcJ#XLp%3SsN8{>;<^zy{{%t~mVavW~-Mgy*cVNEcQ&#F+p5+hiM z8V{z0DPeFcK0e;t8zzQ~q}%4VvIwBc0HN&Z{qnLh3=E8$%fnmOuSncRP(OnBbe+Tg z!s24Ac$Pr=w_XGJTt#vWz;E+|?r8DZ+S(dmxPIFwpyu!J1@-!f7WA8zAAdp6@`g;53DrDc`{{cVUyo?PTK(PL~Q}YZ3Dxauve^j>@Me0G>3i8wonV`-rUb- z=`yi)E)6h;R))KUCww5w5s=;pJaSLkPPThn?r2S5wlNhtbi|;|x}aes7NX7V@X*za zF&L7VA}j?OsmzOU$(88{>Chwl9`q^zJ*Y#^#*?yjTYH(+Y%HTu#a_T7a|t9xf}Vqo zzixC+=+UUlb9Pa0!YS8|W)yHyaQWR0f!gMuZU8{M&f4;w7<6%Yu2X%WI!CuV{i(a$ zd5uGQc5NKwM09_)v&D!_)}Bowx*g0ulz!MCr88YuLbZNhxsPCT>!j7sw5ZBL`EE{s zqU#M6>fHp#$t{Cty@@9U$(X&zq~G-k-PVK6+Rl$s%Udd$*`xt??(#W8)Jn}l!B)LToxtu(HCIB3D$C3;d}>^4S5YZ8>F01`rSUe; zQ6#T>eTL9yopKGYqX}OsV%6s}f&UUlhSxbbCjXm&wK0(6CFIwl`{cV|8hFQxn({{j z{J^KkFrW2phl}S5ikDTfDi55EOgvGwz1Gff=(2ft-Wx+Y=cgm+_l+M)RUk+7d|@OV z*a%1UaSx(hxhIvW#KK>s7GBL|bUS57NSTi7%`{08BLLwA0Jy}!K_ksxOn)2+Yj#!# z$!9j!foVV)dhnJKQ& zBx;Q!@r|C-*E9{~aUq7}U?2UeMMiXVn*^_+Bc*P+*Rs=YPAAJ8GT{Eil9O_h!8cA8 zH+drE_{5V*_9@5xr=P+1r!N3+%^xm6i%&fo*F4ezA>m_|yr>!(uZ6xu)ER<^9kHe0 z3jW<$wN>bbNVP$f}h`c-b0pXK7x097pbsscna*5 zxE!ubC7jodB@=X;8dt|3LW{YVRHm1lx~h)mIdP6Mq+d_>yxW$4K{#7(FiNqnh9H6` zA%t`9E6EfUQ*(fzrkpTG%%=<>cZs0{9WtTTd39#}uS7tKy2RO1iH`stQt?E@bEQ76 zKI3wKQ7`P|3h|x8b+k7dS8w7zHMI=v+s?p%`*F^<_M-J-&2hPCtbI7Rx!IE+G)c@y zEMqB!&~z}zS93c12E<81v}`B7_Ki-3_q5?c;mh{m>>}~9KluFD8L{t=DKGo3-^lI& z&=UEFQ|N9CW*4Ys9Djds6OgD|C9JYixvaXvl4ulX-~DYCy;Z(484`42n>w>2_9WVx z_ea^A1q%GYQrR7mV>t+1)-!%_Zu6@kDO-9WpKziqV<-37r`X$f3v;ulS4Ty!O3SWz zD1XPeu3ZMZ%Ad6F;YAiLMk$+p(c%Csd5~7)nff^I9PK>oqOH~P1QJmx&`08zx!7(8 zw}(ZvvGUEl5ruKYLpuvn_xAKQ`e%K9X|=jq+(dZDDJPvy7hc@)_+z#Ck-BT6LMe== z()X*a!J{G=WgSttEJWG0r4TQzSM%0eR;`sOuaF;Hr!b0L0_7i69C{r`AIZ9^3+XfW z*0)fvYBjp_>r4It4UwROo2j<%XY}HTR_OW>zmZYECuj-BxUHQoq2ytOmi@b46XWA&HLc}Xc0Z%DgG`=z>Gq9gsmcbuUOx{-4bukglr zx2dM}Hr~=C&#*>v4pWoTw15fsLuFIpi5C1sG(0l0&{oCrMqU+%<(wC`{YQ(hb5*my zUhQB~kr|7yt~&-KXg;_&!WDB>J5DZN+(67)FoJ0sswrq1R@5J4GMZMKgk1mLgxHb6`81pFbuwhh42|8Ro7cmtU~(_QD4E zcPc8=d7k$`E>AVr_ZPW%F&&d`%{q*xYv+q>ALQ4RWs*I|A2X+rF9UcJAT&ft|S}v?y8Y@OkNK5(083E-U%JVAE@z>aD#G z#L)>BTfwJbA&Ui^B-2jdT|u+Zz#Ip(6%fj%+68AyT!wN%3L!bTUkf~!Bg)=LWXPvV zQ#SmaYlQsdU`AfbvXFqIY;4aWu`hRy%X8=*Iub3KW@CfL!p<-CLddtBU&|J+v=xMq zA7?ePYbk(8PV_y&T8?7dtx z*e;q0xy;4ZuMaR41On-6%{xZn0QXdUG?fgH{*ceERxl71kl~Ayx9!;ce{;P6uPUYp zP*&B}*VD#|`wNgp_x_a66(tA4t?x9J>YsOXcBXg#ac2NE@d0cHBiof;5Bl~% z$;pYyti{Y%4~QhY^Y81)&ZM9MVK)lNl^JS-HngNm@G?p1mB($+v5A}sVcs8*`V0fW zq*;;u>=*k59L=AWN00~`IU`bUT|`tqf-fw}De30iK2c4u?%mIxqx;OYHED&jRSjL4 z%5AXlFgO%V-|qXr!Jpgi9Ngi!acy_q+IJea&j=tHK-pK562B>zXg4wsX-qJ|F(ZKB zGZ_kf%cnkCyZbg;4SQE;JfvM8z0YC2wBS=|IM9FZ1h?nfWD0BxRW&E&)75%bUJ052 zV+z`qDipwNC7$xXjValZrl2}6o><|gnq5k51kdQ#@IoXG|*v}T-KS*cf@(KJvyjQBNQOR_iYHkkz?!SOQ{e0KZqpiDemiboN;t89^YyW z%v^d7F7LhPZE8=>{b+iZ1E_by!?OAE2j1s7y(uSdigGiR44>2K+PuGw`_7lJs4>-` zCmQp>cl7JNc4NKTj9u(ifSls#E|@z+HwBy&=By2Hz}{+TIFC~hKHRAb56}+&6KnEvIm&;|w=r(uTYl+wKUBH%sZom0 z0qySHRxg~UX5nK)!jYo;iFU(OM|e7&tGmvdER|q$)n$MJztUbbaPmrM|)%x!T#Q>*~KO zHM~Z>*HN+%%We5N^x3Ozxt1aG&+f4i;)rRPKW_b}JFW+dFSE!ll1EKwtG|5jeFkfi zyi3`V+JexmtrD5Ye>v2G`tR&Ki#a1;ed?C#Lm!7+Y;}Ij=ksZOyFVehZ6d;&NK?<+ zld6-tqSJGYu16@w|2Gd@gqAAH<=OI)2J&p;NnbI^RZS4EOcBc~@I$3XKJ)b}=%#|f?qT^L;cDuMqx%O|&bC{r1QNXnC>Tn&)yDYOVE63y4ra(P(OD~#LwcyL|eWs5?8d+M|EytkGR zse|kZZ58IWm&RGZ%p_OwrnOW2bhfyBUpk zS7C1@<1Nj#6J9cN6@+FB?-OyZhte?e5lhBS?d|Ea+cV2Kar}n2Wzhh*0tE56x;V7@z@>-JQczJA4gUG#(m^=dcppH*xjJGYTBFdn$VH zH$eBX_QusoaXu=VlMOAJIkDj|n;st;=o|kPCNs3zIVar62U-#pHXz5yB~amINx%Qf zl`JxnU4EmC9(=tbm(n#1o;M4Q_U$Y8)T-RM=FR%e$fdxWa%Hex>ORA?V=pUSD0@t1 z;QA8fBLKBZvZ*_d>Q(pPtal{cwJ0YpwZgsM1$VXFdLHWI|KMjjFMLX$xpBeoHZsOh zYzK0;55=XpcEfW{nln_6X{4$nvhg$x+uO{=E2^S}g^A1$wW zaLKXv6#fJKvLAPI)OGViN-;HN)@+>;HFr5y{7HrK6G&ljL4w*8SjAOCO{y zeeee_6F)~`rW0YX;qA0|&E-+qFs{O001Q9S|A?wd zCTZAi!^R=Dxjue9i8lArsb$pyJ$Xq^#mqK~H^~Jz-+tpIra+m z@Q+x{r72ILc6c~j@i+#QPcFgh#Spo05Oj*cz~iiE^g{Ve*{XOy^atqni?V_nM(#ph z4)xL4uS_Q?i(tTck9H~Z`$T=JxZ7o%B{FJi26h1>@qBWEpWcK zy4$;z;a&Ntc<;6BNuEqH;W)v7Ftk|XcCm59B{m5kb!Ds1I?%l(~`+-eBMl_M9L>ndQ2c)p&j-EA-2o6RA_y1xHj_A($bQWrURLnimBpT^q~<=;%dXQEijKOA{=bYTBTaGWlDX0J>b5j z#`=&TNfR3)MCQZaQnuMx&#$RT=n9Zep(Tc)JA&lV;=(kwI~n{L6UqSti05E{918PD ziV-}N%vBAfDvE(MfAWU}2IGC|zs^2n$^+zd0`eG*TEU7F{nGdYq^Wh-q2%Tupf$Z` zcP&0o0WP^(T18qnTuYMOgJ>w>JVj0=C{kvpOGxrNysY_eFX>7%?hj>JBw^R z$B=NXQoT=}(obY*fM;poST0I*JR{3+95|2Sc_`XFZ7bqMYn;?=i5XNuDXwHnWuY)? zML6{EaKEdI)W*whM*>J`FfErh+*X_HWM#I=vFm#J`f+p`0cHHTi@RxXFjl-anF&!; z5hM@macH!J2|TOQX1}JLq$L*FSj;2GbLaw5-|gpWFs|N~bFlwG-t^?;1})xCgqS}A z|2~DcCWK7uc%{FSRR^AM28RBB!#t~f5`c~9C+|>*dQ@dE8d4vp(zDk^ph0!<+;piR z!76{q7dLg#Ww!|1eQI}kIJfSBp+^f4wcAW#F;7^lwt}(q2oWIz5{S1=75}*$>4(Uhh`JDtjgUgGH8~ z8Y+_c%m3F4HWknJ$J?}#kqA*NNln-Due-Cqq7238V~BPJTs`F?qhYpEP!Q-k;6{z2 z0!D#%xQ>r4VYdz6{du%3_1#9a3_gpgUn0y`ByZb+42iK&&4t*n-Am<0*?4}YRDffV z+!z@82S8 zq!f;r_Jk=50>S^DU6KJ!=dufKzUy(4p8wJz-P%VYMcIXieC?4yleCD@>#O(T&{D1} zgZ;hj_6}#-++-92k;THydvhUr%m42o-eMs7SJnM2*OzX*gX$fW&$UzjlS=>W5$2^5 zxZK*T1Cv$SOzm?dlJIPehHpWTPUg`zUeR6CS`B+zejE|%+utt?6Vd;TaM+iHpGe|Q zs$ifS-p2;n(%XSrJf`gzCOlFMvXckzT`ggPc@PHhQ`k*3=VM)cy6TN*&ZX(m6yQp? z>oeyfk|%0i;(v~ASnxT>;Z*d(s%-x^1z(Mnqz7;sGAtPzr_A~LcYE<>20q5Mg*=c9 zTvtT#pi<8ehOGmSbQMV|7{GjX@rkHK_&t?O>iOlR=awxX5d{)x#fp*(^aAvJKwi<^ z(E$esmxguC9#O7dXjDG?g&7|OzEK+l=yAS%8>zO^!Gg}1KHvY*S<=l2I7@VYlkb6w z|8$lBhc0CPR*ACy;~-mpmujy^Ppl{6&;PL?+gd=ti??KN>p;r zeV!t0HJ9tQ!^b>>wv77h)erUv5u$(IlLW}}eg`#E+bZvLQXeByQi%Fsvz|2z29!zv zEFzQPaNwQ%3UHi&@)BK+pPzrn?Z}2ZGM(`A^OutRYE(s|+wEPrzw9se8TbFBM+$31-i^skn1o*kypKIWayZnbMrvGPNhy={@oZGp>T?HpDw6OS}EW4FS^ zuyO0vsDuZ|u(hVyKrGIIgO6-vbRxV!?L5tI0nFN!dR!5|Px2u#*9Co@^clY~*s zItOCB%~3B^CIqN7iaLsRuB-Fw`{ryZZ$8E>w`oPWC-_wd9t$|#-fu9)~o^UgiSBrSSgahIN zZD0)te)*bA?^VF|weg}5P6>>0<(@rf>h>YyBw?D|$J}aa80V*d=F`je_rjS`x~YtT z=sG>XGXV7(wIju0@v&npLt(wy(7z%%d%7#1`_cP6Ia~%gyzdOLh4C%~$nu@F3o1}v zY0+@gj@JQ)|Dy{KKG)6$RDU^Cz)ei5pf@3n_r_&sqJC;DB2-B9WwCP4nKRH8K%=A1 zsl{@c0fB*l>P)@x(vbefB?5YE!h&#yT)Lc3A@Ji8DMZSZXGn^~>ZOeRK|suWWw2=h za(Y@;T|L~}3m`r2VTr6UvHR5nN!P^#Fl3Yj3$z)YQF3b)NrX|Ux_A$g02~b~BU?2e^6yWJu=QChhrhvM*ye8I^ z+OKiefH1}}r52dYWXvx}`!4R=C*IU=y05YTxSK0$3VkT*O5mXoDbu)D*;CP10EsIr zTDk3ApeDW7`K#LP#svmIB!<$z29FVr9F8pB_~}VY5+cxoSAcZy$W1vmlu!y0W+go8 z`*#5$;Y_)AIB^G?y!~b3v3(zNg`$2>PgV^qn3)fx;xNPE!(pjc4;AI|M-RG#gw|Dn z7$f@NFY%N1fo*e3@C_WSPv59qx@=m*7sW4%vU_yMFiU_&X62eOuVt3&sT=}~vmkI7 zoIbM%Z=tfr+B_B_T!d+*CcTKu|8p;1r~@5F)?DVnR^v66DKmaTBM5uh*>bqG{DSEz0C44{^tjY@(6Ij7hjiq z=ZT~0Lbx|4t`(n)|F$~-8L~HfyF2f9z&irAxuyS~ z&iGcpLq@8(Nefv^!=Jj7o_FoSO{eFoZ$Q1Cx zs^J#Gli&9#Lh!f61nvxaNl`-TZgk!O$xexNg`k;jdH;ieDtifBo+6CK`f`XL+E^g~ z9sC8w2iu(gY8DJN%Rj6-%s=_9>+H~5nggwZ{tuM@sN|fP@GlbK+8lTo{?^}eIB4A@ z|6KtKF(Avs^1%CuQ~>e(;R0w^J{~lh52d>%ebn(>s%{dL8;#mk?wD&{Xr5`}=!yDx z0sS$s%)js>#$@$lGyK`39{!*^4%XUlHg|Pcjla&e4bk*r+8ek8(|>@<5uxQcK;XTu z;Hyv3Xd;2|6BpJ~%4j>&^>u(aomoPT_86+~We)(b4b9VXTh+hSxcGBze)qJnTy{Po zGGpY`X$$bVP(*#;>$b4UMw&^E5LQ_tka>{CZiE<|MlOw$926VH&oMD1+3JfpyLu5> zx$0s6gAnuFlj$F%+4d8meXebM% za-RW@EOM#(1EN?)H+&H9ok zcfCal-v*_8h#|V~4=(U}Nb$IN1oD0GD{Yc=pKMEC3cqX(*AOe*hkf!%Q8VGGp!}^# zgrwcpfKMV*VZ{d(@Phh~kj*z*1%(B-=dfQ<7_7TFn)zhMVJAM2x;H+C&bU4j#t;ac_Cl%6Vr{j-;^WA{#`O z6_cqGsNytEgGIB=wv^yrjvQlP`zzs36a?7 z(RGD30fSAC_Su>o`)->!v9|M$=cN}fd(*qQ!p7o!c|_fsGJ}z05IElN8~Bkk)54G{ zwy$=tzFdZ<2do{n-oZ`tvUojL%tZHSX9HT)3*@7hc=GWWQksojGb%O^vbP-bw1x5= z#vLB@Vv6oWn)m!)3dCbNg(K4#=F4K|a(!`Yn6-9PFNd(3J%PjQd22TUy7nCL3mwe< zqiinm!qc5+0e6EE^fY% zJ?^EGt#*nBNSII(R{$~n(PQ*s?)mUi7})COm*A}yDM3-EFeL7WP(iaH>$2KxR=fQ0 z3Bo#N#BfeYsom{tT(|(W`F@xdZ?(v?er^a^pyB2i4_kqyPQlW`xXN&{Ci=la^SiBX zM@!Am4VRsnwpJ6h8|nVdzYs|~d@=hkYy1P9c`p>IlJR+d4$jPsOyYtG@ALMGj-<1; zSs90snQgsw_7$SfSJtXPma*m-E4kPDdR<5B^C-x7DERoKLRZ>GOv`Gk1iyIHT*p6J4}*!j>pTFYnp0NMPuQU=cQg_qf1OCPi# z!xnYm(bDRw@dqNqp!exzg%j(JAQsI1nY$BXkAbh)0Z!TO2iv=vG|oLWl&Fzl=NS4y zvYTnAYC83L2ZiE-D|;ppG-watSy|yv8V6s9=$z*pntgbM0$-jC8CB58$ub@U;`7|o zkKn?l_^tBN=^c-^kwuT#$oEIf4M!@u0^uv#%S5%0S5^Fmo1e3=1gK+ZDq}Na(yc)ph25K*q(?x zeV3d3{m7v1+S%w4!&0umR?fl_GnYSaU#4<%&T%uhKaK%7==9|Lp>t85(n-hqB3Mld zQuK>MrLTy{KUSo+8_hzYKE|QCrzu34#<`G4_S>;_JZuM6wb?A#&zZ64u*gOLkyKL< z_x?%@JCqwo4srG!I^c@eMsC&MNWEI3Uph&$Ia@m5?OjyB5kNc}q|ki~MVZBDtkOo8 zI=$gPvH~?CBghy>UM{C-EY4^n>WXtZeMrx#zT{v7ot3%fg{}44I7W7*NQ7zBY=0gV zy)7A}m|z1vluu>VINbHltF?`b2NleeJH4ota(_D+Dxj!^T-j)x`@zuM?`4MMiDwG0 z*?E8L0B@F(S3%#+Qf)oFoH(73@WQ4W<*1=|J84UjZ)iQx$J{2GwdU0*ZL{Lmrn!FcgmT)A!)&!uuM-!Ssj zEg(>G$uN}fMzVb9lHPa8r zLs8r_pR7?0g#&)@lVGx(!Ln&rx0Wg@?sS^J~<8 zIulc3N^!+bof=&YyFsS2=R4oAmo-*#|U8AK_SCd3t>_xzAaY zF+T&uemFA`qRKSopet&Fwj3OAT=IbxXK%q(+jflIudn(5=;NG~uzh}W8 zx`#P72TqX#4qbZv+WS`zr5JEB4>F zisGC5fVv1c%Hj`NLw?~eI(IG>7o}lIkaeygkqs_0A>0w8d4gsB8^yyQqb1FO=)gE^ zC1s6LrIgP@r8L>{0w}^^vCJC)5wUC!W5iP!Z3dcYc>OA^)djRWr++Z7HwgZMao?;E zDUTVxgFm5~qEC#dWIxv-O0qf%WYyH*sj!gcf61WqOj`wL6*BfXec9%&ASa zHm>$ZTXv^bR4CJ|kH<;VK_t`g9B=;!tz}2RgeI_9w(>@Kqh0-riN8}7z#s!By4^L_ z-*03-4|GJ#D;%FRyIZ=lD5WIb2B?g&B-f5>6bWBaOoza}?$&pA7P~&(#>#Y_9O~6j`sf(C~6t;_vUlo6b}jxXKw6;fk&q z$N>XLq*J>baFhmcYJpd8rO#_*-yG5&O~c$X*1EgI6;6WO%?_#!2eXeRXjC!|lIQ~IHAl4P zD))cMA#$vbaSDpL-BYQB@7*=yBkS!FzNKfHb{@^(nq_>Z&hwI0 zEUUT;44ocAgxHjpR5+DYm)Y1%d=PyF^gb_BR#%qELL*^n!!%p=@_2rVR$(jv{i>YG zqvfM77$yt_a+Q(O6>}9$V}VcNl;!XIWL0O>4ODW)^J65xzr(t`2na`0vLeF9m!+cS z)?2^OyhWoSe3~r+)*ex-b!crO4_=3Fs6uYj;E<0jL+_9G0aY#37o!(Nzn7 zuX)8;(Y-WRE<@S%Dbhai5sa|EmbxC6^?!q(I06RAS4Ks)R}5@chX*N)+tFDnAaHOB zL0SO{Xzyv4}Ztl`2O$lDq_^hZJ3x7=Q~Z7nvhtFl+ym~%bd^G z&IB~o!f%Wj;_pq~uwfX4>}_Jj3a*n#TkalYVF>iR&CV=VkI7$=>=p~z17XFs)k*pq zIV_G(v6b1-OzxN!BQa^z+u=TYDft?dd$@QQ=46${jc1;3u2mo<7Cfuw_m+iM%H+u4 zzN7(5+~53WylGRK%kOH7{uL*N4Hg@spA)3qM#dWow zlIQVu;~ox!dZ|N4nDVaK50F@Mxyjb*UNmJ@@y4Ed?!9renT~ob+ecvRYBayqxj^;I zjE`;05R%>Ds?RDV zUAW&`aU381&;(r#JXOMzbdqSQn;u>JHxa&@ONIq=zBE(BEhO0Sw7K3}e{0mfc+Y3v zpi*jsJ%2D;X^BmE1Z3qr8ifSURZ2!77|V1K_{Z2gpPf|T9`wJ?0xef=+q(ylE2@W! z=T?qwX?2QM`m2A4$E!toO_FOK!u~e8n2PTt6qM|$cRk%N^AkVXipM%{CE$r!m-(8nM zr(Bz(j7aLIbdvY!gT4Y&bP)xmNTbeB=PXdN+^0R%y4*}CN&V(38>kpWGIF$aM2i5;G(-#) zcW=RoQES282F%lWH9G_r>7%i`aW(7=8*ObY$DsmdvR=87bzGkS?Xf1{f(b|V4`ePb z{(7v8dW&yCqm{&WbhR#bY-@X7!>eCKPQx6L%G$eaWz5aps?`*=xuOeEthQ78PEP9g zjcL7zf=>s+0Hm#PZf$-DFMOpp++p}=6mPSC&Qm`|{{uC3i1?6AQ$`$GLYf`#;x-o> zD+Lgr{natOCe0D16P6yGv)P`Hy8Iq&!Ztw1)Z~Q4;o6%rf#bD-evU~nl2upFMbhwz z3$|lJv>aDLrFFXVW$MjPn&b^b|>XF0x>l z)5HBLgYMkL>}M=y7EErMA}Ii*=?`?8S6z#Kb8%3S=a>>AMZl_S))`fI4hoQ}*<&kA z&lgy5wTG{C7}uO{*i~gK{+^xfRmC7Ry0bjf*j$PIY3mwKa0}iGchA{i&3mvY1x=~q z!uCMUbKx5!-;Ytm1Z*`ql8$K%}R>$ZBwImo4kCN zdC3lEeb}UaV`V`qj9m1v)OpQ1ia$1&Ek9dc>`rU_aAa^g${y8OIC)$c4*m@5oC}F# zeu8}KRPZl|ymh_}W&_t>u;tuWu07P8XyT{sZpcRuFMGT)m;Mp90>2UEoob`1WglXt zI0luS7~=P4*?=Jv}Uo8$eZbs8i4ru`i=|;M{V^f=W*Wfw#-gEB#{qE;|-}wXf%&eKUX2r9f{66x|?Ux3H zRsUe-$&vlmrYW*>*AbG$@wn@nbsPL?s#MiYIe6sRu2$*A`>|CHo`|X)6qDX`Iyv7vxXy9eEPk}ME=TWg0%iF0v}Q_QuMTWS?EiuxzoiAa8ra3>DHSz#baa56 zIzXl!8yoBImr3c%l%rTQ;+cB+52hRTZ2C$M4vb1pkb61V0)PwyYS~~QZ9>QItI)4K z5R<+WH9NNU)x_hvyIm2P)He{h(+ineZ$-qA@XqSil-ZAY5?8y{J4|QqZsaA_>c$^! zcpJsK9(Ni22r}}B!(_ZdL$7&w5XDQFF2$i>+)w!~sy=?r{(U69Yyh*y*6?qo=1x1h zSQ5JIW4O`2MAK8^&4dEIU}I)c6yikWq~4S5+VJQ5zetH6p|sjQm&KQ8`;&onJ)2Ks zm`>2lP|}whOH3!hyC~1mWK#^_(^}mcusQ3o{S1Wa{v%HgiUb9h32c5EqYLiT&2&tZ zkmTe{G73KwK%atbsY2}cj|NuJn(?rwZ$3-ZjZ-UT&QlQ=A3XCo+K1Of+34HVp3ZME z$5+8S;i8CTTSk}ha=79$fySVbzxB8|$7<0+3O|M6r9&1$HG9nzhbA5uU6pjL2FF$h zu9~0URb9ZnmN!t-;OOWsNmo}v{Ywv7&2_VLXG+h=SQlsbQB z=%PJmCw@=}PK`zodG4Mqw4;cpF!>hKO-G%l^PdwJh0;w1_~~mjNM{x9px}O+^?rp! zn2Mj=BPP52A-P(}7pD-11GQ1{P$8W91kqPTl8c7sgkLfdT7ZU@oW6>~VbHsnxHdp>24usqr9{xG}Vi|=UE!yWzPF;~CA zMKwXLzig!OU@tSt-aBunOMyY^@YTUXONS7w61YQ_t&{p92W7RD(i+>vTc^fd>_^Nt zraXvZX^8;*{`bblD{H8>fiCjaBeog+iDLq5MNFikR+}oDyB;2o{^Z%j@iSz{*|j5k zHl-W(b}_Xl!iiFBj91g@qTVKBkyBg^4dn4??}TOihiYxl`Q|g8G=g)NSn*aGc`9m3 z+l?7auI)%%S6@aof8~*3y=#~4QNng^n*6gURo3+JQA@1m zNVyBAsp{r~I!bjUEomaMgLsvE*8{Er2cP>c)y8Q%4cnM{skmSypaF5i-R_FY;ZIlTEWTTjatG#v_jqMyy)spR$5FRJC`)()0O=p9PPw4N;W|-dAlu( z)J4f6+i*G1jLfSS)7ea2P5|yx&q^UzE@;B)bTzA_D zo&Lau*frZ73A`+>sjkQqHD5mtt0*CeOMK*bxHZs|T~W}N-d}dIAIS66i+W*U#oW2Y zSXfTy{`X;4hj5zxH>;th3ZFaDA=2WPd>sTlaf-|5HtkI(6qe>WYCI~ip?V){vnoTc z%?4Y*IJx*(88W7zekNjX2OVDyHz)evPuEQPx+2S$>5f}dU@;jt4paU_ektk$cIG23 zenl^-$EfoZrq)0ukaS%O#mlf!bQ;QquQ1)|QRi^|&=tju#}cu^Q<|WD zINgPv^;7a&qUjf}wyFnZ4o$NH40po*NiugD2NMWuRVW@?qpi}x1#Wj;JFCV-aVc$| zHFUk4h#y^D%Yr4a71~a$}qmo8${7<>Vgqkm3PKH$WQE9xPz9p zO~r{b{6R(~!sH+#k8Ho(>_HkjpZeZ;8fwgsyLKI2T^WdkiaM2{jGEWKPQ;aYhPCB6 z%#PNaB`acj2RB!9uK$m_KmJzyY`6Pc$z>i^CUslMh=Kb7_qJaiIgtqc`7JZ2%O|Q! zZ6VLOxw(7d%(ka$FD@Mh9)H$D2N0U#F&fY)IZWEKwXguF^SJ39y0;RXfu zW>a@jQ5|oo27UT;OdGHSc15o~zekjQk7-TK%*^!k^h``lK*>IRIf`(ZlPcTCpL~7) zjPz<_`K{pkV>3o!YcU7UW9t0nD!6jB8P5=e!S%3QFl7`oauA25Po`?Uu9FfGxxWSl z$O?fW^UMpgzOKYVbg^$+_ROB|Gu*fx(RF1|Lv zt=Qwu_7fPA-v#j15sW@hQjWB_R`wJg!(8e3fqFWyCySuxqxD-<= zFR?x+cyv%%_?Ta*3t)vXZKX>gCm@FY@Q8gH2ybDk`))jWMdwZnDKb zZw|}Vl1>n-_yrrtw$UANUcaTuQK+x;!&66bpqm|T|XE!Q;vR3MtsFcOTWS-pFUS4)-TlEpTb9(<`Qtvps zDbh@BY+szC$rfbN^OdltP#TO_<#g^JZyt2LeEr-##>OV;j z=1mGAb^jO%5v^JI0aeE%kx*eWJVP5KIOTk*ydl?GS-z1YLajy`DJ{*>K=DpcD2?fq z23md^9>ZKeeZI-K)%bE#!aYCbOyl;7wT-ZEh+cI|v~fBO^+DpKEm`+dK`vLt+fDnX zNZ(QW5|s{8a1R$B$AfI%9Kq{CGTq-wvx5pE!}(T~zK;IFGbhnvWhoK~u`N$S(&FT) zEan@~7f+_@WO-k|D&;Di`$Eh%g(ybxgB%4_&GkE`-?V_lvwBg$Fs5K5lNFa!$AK91 z$f(e*sympc?RPYr-qjsRVrj>uMZC}X+QBSo2YkByPdn%NbB6Kjbu#M}n?K%>pv7i9 z%iu^?8;-Eo+P%YW3o(U5AAWS-Ecq9cY2QhA%6S|uj=pi8@p$(+{jZS0(0|f7DReR_ zW9nj_&lGtw^uoo#4Ee?}W7Wbq++$tA83&TXUFN)XC`$TO%~q{E|nt90aM<-M%wOab`VET-Od7%RO}cAODBp; zw-#1U?blWVe{}c!pzjQ+zZtVUz?ccPqDkCaJ`bI!3E$T&I4ro*D~$oYk_5^FZu1|C zLv@q!PsVD}BzTNnjSb%~1QpWbAd%Mf>DPstnhK=J1tX8t+Y@ z3>=Z16&ygU**GUawJam!uv3X-%L`59Tu+@4c}SBMH^heorgEBTmsTsiCpuQR5dPS- z#2;!U8wDL)7rR&s#*8v(vS65!K6PI^m~@)uDye;q1Q}HyN?uIs*EZd8L?yhfICm`j z2Pcj0j*r3H@B+J^p-iwNyigI@vhkxeBGh6tCW(58@rU{4NC#Rgj?Uw}}zoExY zYGjnbE=xna8CA_f?!(*j#cBPc>@7(nusvkP)ru;;n3iA~RdCJdk2mq@+2An6csTae zuraVn?`WH42xOA(|BoiqjyH8-t4s6I=Z;B&MeTx#4k3Z<-A%8m9A7q&d7_UMbFm~; zI-Tr|QWH2lr6-0oNoP%6JUX2QCVoU_v{Rh@y3Wfe<$>Jsbz?ZK*lzz^dOHMZ)B|;{ zB?~=GV>TOu)}7oL6x}fsdhjiJZ2>q2#`wu_wtPL@?UqoOCGtx-W*XBiNps8M&U4JS z-!9Z!d8dU=H^d#c?&&6~`rSO#&(pxfS|LEE|DYH8Xs6pOb_!)Fovya$^(@;` zYGrCLU^lh(BVG4`F{9kLTB14qUTk66+#B^%$tDstclH5!6xykXd z{7LCYUsCG)r>vxq(iA)J7hCUP?`!)$sGA$Xj;|81VYSo$(6wb2t8$PyW?{cwtf+Ti z*`amt?5Bx-`^9$0{bfcJl?yN%A|Oz9QF$n0wy$%QJC5Cx}0padtT>^nU1k0 zWea}|_7cg%BwBwxC@Hl0v^;w;doJqFW!1KO;Xwk(uV((?QO{(S3BJP6S|8@Rp%&pV zV(B&USz1s?IbS_f$vN6V=G?{-3t`rH`!+w993K+ucJOI;V~N&1(lp)C*Jh)B^kxVw zX_Wu02r}}FpZ)^Z=29rzw<(x9vdTdgpG>H`Eya53>T^QjL6}lsUjQXxrPK%4BPCMrHB5t>Qh^g(i8~KU7L=bAJj%7GGH{7Cr?9^)M`t zSKAhVT*)AhGRV{fr9=ZTxxBnE@euLQ7bT;{j87RD7~l@hDk>_5hHD@@b5moZM#J!P zA|jM62%~PtK?y_-?anoCf@5PNH!ly^cbT3Bfb0|$nnzpL0iGn}(+nLa07c;H$CW9S zm#~!;Jn!cI`CqR>_aOtT+vVL=jfEtvSNEK)t9FKp-jCg|)A)x`6(p}dv*pgG3CJ)D z9Ag#MJ717%I*F#XzCUC#rn@nQ>TvRC>&x!&l5Z`ahtay#$LB#SY;T}fYaB@Ukiaew zrA#D(`0U3WhhAL%Te0+3yTna7@%wC@tKgUgA zYh7bK6_HMTvE@vX%NmU6eiU1$I?YY9WTQaiucx8R zQ>85x4-hsHEZfZc#~zWrWqj&`1zjBXjJ}l0T0W6}3*cY>=!7=grC$NhZ|BL_#9_eK zXSq6V50{7OYJIEGS@~=UPdDKyb)9_H6R+KJflJF}DVY94d)!sjnr1t_%iNp|J`>3x zIe5ys*9%Zq^p3I=1@e-1AufD@!DZp*UMyz4*`{z$evYc$IEB}ToY7z6NCN>ks^@B& z_;Wb2zckX;go{>~Wb~^tmiFjA^44zRKO2;ZXxPYJXWnvsByZkfp;YrxibD51zGLJe zg`735^nBigO`Dx{-<|EA%AEx}^mP@CVHfNLf#56NUl-)Y-isw?q7k3pTHIM+c-pyo zbYQ5bXapp&%+1M-)Ipuv7aNwV^Ql?vPNSu#fmr2eHdrEr0>klfSc;f=EXGbNoxtZh z<41M}%QlO-QcfrqTV9?30^5jBOfqm^N*@pR4e?ImqX!SJpc37#`@g;3b|m?=wmN>d zHxIL<&^}H)6EZrHK7@xBN~6dcI>q!){XEs8_$o!AGcYjEj;Z4KSTU04RCb~KTXClA zk?+OiVrOg!26q(W{+p)Nx^mY^!g;tnfo*~_;kvIda~Y{=)FZK=D_>5K@c0u6Y%jXM zt3W*5Y{{i|u`7hST|Z3XwINi zKOONnCoP=sd$YGTrycA&21aEM=gSG?4P|~&p)~2nqr2LPr_byi#o9vq^y!~;6$jr1 zAgn3FhITekpq<}O~K87Qo3WUnGE#l4*&SXtDng3I5W~Y%x!VLMPZ{KtzE}U17i}>dlbn;XKY???1 z3%hlFjMXNL6D*gzij1aQ5&Nh><9T{(8}pHmiN?fm{1xu~cT1W72Q@SBCSK}_1%4ll zVA9*+G%?XOZU z)E8GOXXxI4E|jzrDtma>JT}F}Zn{SIXTuBM zL+Fm%br2EY71v(m8OzK-9QK6=p)t9WCpzSmz3BVPz%bk%JTv^#tO!(#p$^jonXN z34himj1~+a#&z) z0x?7&M9K+-y12Qy-RC)zN|Whpgh_pSAePh{_Cooq45XajG27kW=de6IpshdK%UHc} z=U&W9=hH+I2Rl1PqhYEF`R3ME$tb$nwV@ooPl>J<$`OmenhBHJe z4*pTir_Y~3I4nq30rK2A^Zz2E+mpbht2|Yt?SuZV zEtqh0;Ld$~D$gi(>umI7tJQwmFCserpFd;r1%pNrLX8rgeZs0M`)m_Lo>G35$#Q_N z5qDVV=qvz0MlbXxZ;-9g=juri+t&6xJc`wP4!%AD02b|tM%pA8ZMG(|q{zTSg3Q-o zUJtJ(mS0k#GSQG<48C_J;td%-7Ga zy_*DI@)`{D3SgmA!5;T zxo3MEq|arIdVSli5#(P0vxhcXByDXVLo$)uIe|?t2%k%z24>gw@(qBp0td9u&b(|Y z8{!|oee0%mlmn5+Fm&Bb@#9xqvYO)j+)JnS(D+uf4ADbf9BVu_&fFMh4e7Yqu_XeR z{inP0W6wx$Y^$K@#$}yf@!)(M{5Q)B@R{<8 zXx!>bxG~jvVawZUqswB<>e!Q7^0RhHw?tV+34IvaCB9Ss5Pza^XU~I@^r11OqIuVI z-!KNV3m5juuiu^HyG%(>IfKT-|ZVbAl#~ajfT?teKn-|v6X_UdLgZFGKBg9n+Ye3;{6(7 ztqbq{INly~k)08=$&g@>RSG|Z7k#dd(oY`!T?_;=q0r86il>}X6bve+O}8J?oUtGtY&kxyGoyf@@_tmGSGLnk;QD?>Xo+3 z04ibXaR9;K@M@KbXecD;sjpijG6jV{;>pVz;tf-JHwhde&Sg@+POs)Nl+k{eADKJWoP)bBeHj-!d-Fo$&G^MZzTZ zCL=ogM)v64~TgbR3hWv8hS>~65;ga+0vZaBq4-vufEe8Wn^u`amyLZGrt{bjj zPkho&n1&lWl3}l|zL`Wbkc=U2FV;C)U$_sN211!&HR%7ri7euUj{`x^Xz}I9xzQc0 zfX`8dl)wcwbi*T~;3Ri$)#PWqi_)n4SmmNj#B6)$$CSe_E5M}rRehQ%D4yxvsQkR> zFXC7cLS0(p(Rw4tD$OK4n@c29eFyRp zU$)aon=AWg!%erxN&n{i)&KRqk5oOqgi6|QipF|Xc|}h%j+c~5Riuse4%zD5(k74# z#$GbI@5tsy=f;&5`Vv92&Xv zg1`Nd(~VjS*Cc`AGOjx%Q)?5+x#449U+XK~GReoV>?TgIU4|AkrpjH+J18(OuRK8; zk<5My;;(BH&)XC>Cm5}T# zrCG~-z=xD(BCVH4RN>1;&$ZnR?ef5yxPuaHnvVmw7n{iqFLA<^$8K#Y#gAXt`_<4i zTDF?8PGrbEZ~eGsJ%@XX6Tvr(5oT;CIYCGHi@ajudzC}ISvD#m@dCbBrm?>g&OfMns zXKeWT4)cC1FQy3Ay-Md#?Bn%_62#wjf{*$MMXiHNSUlJ?IX^({9qN2`ij4kdIH#?%lM!i(fQTb6lRHjWgfPn4=(RTC;6>oZLq5k z-8EdS5nrrz&-J)eSu*nmR^6xY>dthsf0#oX?hc5ROW{r*#_u5h0)_%3KUrz~isudlNBGlv z78liAVc=`IclvVnRhc#W^b%LyFATGG%UdXEB5CDT`M(Y(PY=ysR+LyMbMCjF_ThP~ z0i2TYdi#p#R)Vwn{6{F&ERJYM_cLXZKdFwo1#Y&l^(55l&DlXswQ~Xf0d)+mrnoQl z!;9zRGBxjSD>E0C$5Wv;EfVwV#pSS=Aikcj-?rbvWjI_u*1I1{M~pvyp_*-J&tekj z-;s5vKF&UQcsaxejo=r1wPY=kVYBF2eK3IQ z{y!t5sIyGF9)N&n*bZ@*_IYs7nVq&5EgGOlzvOruhp98*Q0s*h@DtLz0SVgw@D?uw9UZe59(tP z=fk%?6YNMqxZdN$qu zMAEd#IB9fgEg9sS@wo))4^h(in7O#}`M;Lgnp>Zw@CcgvQ~ICUCaz4Ych_LE&3Xtk z1Tn^K86igS=ruIq=F6jxixZ-BWF6*OFgrET{Hq7!6H;nmLkrM?fmtVYi+Xijmc#yO=r#|#i7pM?t?<%06=0m&wYNf ziFDg~$Eu^u*8RVTq9+bwPyP&?DM1VsGhyH5%Vbn}w0i|A`F|^plDiKhCNCP!U$Yc2 zv?sSj-J34^&}IJ#ylSlt%Bc-6?y|QFp zFMgIn)CGnq019m|cBdI*1SW_v_FbV)NbLY-vv43{y|-j(wTRkzI@*cI12QWEt(%}Y zMp7_?#&qdQg-l{@JlL%iKqv}0cpLbFfEe3yj4HeZw`zux)PWriM)Vhf6cl?UK=+YP zGE~P)_OSOlD|1t zvQJ1PQg-CPU)mTY^{Q|ZEX9=rs_yS{z6Rc{f;O<$)E<}%9x(n(9L81Qt1-Z5_#^&8 z$|sAIULR7E!0aB`sgt45HZ7(#3DNLaog}a z!CwbGFf#;DlTc{GWdnM@Y8IT>FL!s9Z~!!@Cj{1#?M5!-3`6?!i>Bff(6WaW0BBGt zJ77y3wgJA&TJ-j;s@VZ+HP7!r@e){`)=-%p6fjO7L<8^#U5+nacoe@|rq#Q}wj9FV z7R}=JfhyH2md|K=PNBxIgxh1C)Ktm-bz+BF;KzaIwzMm`6IE|DLj`i6h5`|R z?&C<>;G@Q!@6VQBdgN6U1nEvR3t$9X)m*S;8bHFU1w8MZXR~YdOi9xw>x*1}=Eg_M z<3yCT?++xEONrht5gYjZt|rS1DSh%UOXDE}jy<28pCQMF!Z{@IMh7>sh2!|z-UGKv z=zBCkm^bFs9L?~?z^yKB=a08={YTT!EyzdZx;*Yf(gCdI>D@&bzO41{jPJqv56-4})6Fq{>n7CCIP5@y*2U45Xf_H6}vUQ)W#A#^~r^>6dFi}IKa3&4x@_VYo z(b#4zCw48zLF{EF4|_LKy!7D3=oVwUmFN5(>i~@c?DTp9%}>3Yc#4I1OK3K)8#1ji znOGdnsMO)hv?nE(r z*bhgn3x}Mm-n@0I>`X_oxU&K3ci>xu2}@74B)>;OrBPw7k@Ky28dogDi%J*`&Ye)A zds%=OL8E$#{ZdOYl*;qP=p9MTedXqX@lcNQ!s47#%Z@avrf}jLLYw4$uJAhk>N+EQ z4x=B%IW3W8n#JVsIpE}wmp!~!jLxT;-f@;#L4B5#+Du@n6L)I*Lx%r&t`;$J{{x$a z0xj1mj|itl@j)*fQSK^#xt0ut?O=r?Xr}8n5&6XNIIfj!6cmO7rQQ-Kft;Y_0GA{Q zCdIamQHWGn%o{r7-ei|^I9owZbIuDS)Xf{}9>S6Do2U)d znR^B;+qMTcnm=CW)zUHwab7O?{}+!&-YMk4U=JjO1zyShT~xAIFH3@B*BfXAvsPN| zv{JGpm~nmcwwADr>3?_-v4!@O&{ImKn$3`)E49?3w0r7SK$;4@@aHk8JHbpivyJ*M zf|JT}t;oNr$K%#Np?LAlAGA0&O--IPjHos(ms6&qfTHQX%}AW`~Ptg<4kM)Mmdo zliocd)*g(&yqo}+Z7+e8d{1u=NZG;*IJcy?{SgM!^`pV$S|-a?V;l~OIdi!`pR=t1 zqi~C-@1~QP9+`=sJn9xR30W()Jg^Eg)7DXnRCuf3sKc*&>#BcTaPIw@7-v8h-tUIx zLzU}vn>Get2Hw=uDD?U6QKG^2K(c{uY?J+Mymq3GTq>80%v2u&$1d`uJ9x|%I<-wf zJKRR%=lPT2Z?*&y*3o^~1+r}8_8ke*Cpv8FV}bAy&hwlxO9g09cCJ5Z zzc!N?j31}Uv@w5e_kDnRmUnHd?ab^0a2KWlFk9SQ`BW)3a>T7#AmXuO+qVi*>Vo4h zagtY8e)C8*hA3X{ufYYiTZA~k4Lp%>(jRw_DD!K9#N#^lVKK)Uo-^lMDKa}<7C`Mc zP3yzkH&6*<=6b04F<_U`|3zTa`Br1qTP^Nv%^siclB1ys$oUK_;bXrH$OqkRWXs_~ z8f0EK2@M$Wy6)vx-jdo?awAWM#w501Z%*onMZsA~0%2I5Ymxncy>u(-p`fuC%kzvw z|0kM7OBIAP6CdV!itB9&gdPH&MVbsUA&_5R%|kC1I3(^3J11!)DFzkYa{J(t0}z zL`#py4a`L=4ojXL#I}hV6zhg$Z*s?uR#bKIaAIWtmCZ1e$g@-63&9i9XN;L^_UEzN z;RPxBbRd+cu%9o4L#aB7sRjV6I>Y1K5a!$kGD8B(0YF6qk+T5-K+?9y73&oN;^D`4 zfs?H7dMR43SthGQ43S*aExS`)*4H9}0`}_evtCR{YPxIV#{T+b`qt#5_m>baw6Ph0Z{b4IHzKK}T{hXeZ{dKtF+yd1x=LcIC#J&^W-NcEa*(?Gl zi}5-1e0`5_utDpV=BE`nhXir-FdnVa8 zYYFgAUcC<`YJA&6kT-Q;c=_Qp-CB~zQZLLJIe!Nw{-;jys4;gUEhdWAliROAq9rh# zm1@e8mH0C;-s_%vmj;U4LN3eIn=Hc_9!a`= zlhm*1_L^KTT3O7_&d%#6qJ-~MxL%ZW-9J0;+uyWhR9lk0>*_j?Vbm^Y(oaT_oK@?q90df3 z=>4j3{Lz!M?>KiZPy2YzTe>+e=loeT=acEnt=PFvQMh6V`&X@KB6D&@<+$HT!FcbL z`nGc6D~m`gPjPa_HL zeep0zF(HzjcG_&4wcPezA)YJ!i{X%fq<$}v84A-mV9e{t#T*TKcfW!dZz zlxIixl>K}zMbpk{yn!P@P2+M_Q)+c^`mCX9laxkd@2i0*f#XGVb$)##gC6^%yNLvc z^2FNp%y)QPz6+#@s8w;za-+eLS{i?>ROv4k`ud5QE%uUlBERvr>ex&~{HnM(i*@9= z7&_E!J32ay`=-@g99^$se153ueAL@Mtx9*W)?M$oo<4p43xP~Hz1P=rc~UV|G3=B| zY&ly0OPiaM^D=Srjt~}AyemI*Vn^!!$U>{e_qHzOl1;O1?2#6MRUt%zV_D(Bq2}p{ z!E%t(alWh%>j$ZhaD!7vgQp7N~tX>id`?-FCPAvg2%tG&n3wSPmj0f?Y z%;2d`cQJM&1|t)duoukE@&ak=cgqSUhTx{@_Or{(Jg3paNA+Ha#Y> z>!!{NCp<=p+`}2T`?Fdno357~d8!x38(w777VBol4hO>>6BZ%S!xQu-PCezTd(n>* z&*o&!&di>O#qRrByY3B1mVHwW?5JbD^J)h}Yp(x=bk@T$FvtwsPOnFZ`U&2t&$YH# z@60rKp+45wy>wg*SA=wd%5}G9GC(p5E-o%g#e7CT(SURx>68rh?1wPkJm;eGSFuRk z#}Q&{4^u9Ep9=;4ih|APo$jff_=rTk$rwm^$rlcT86I~@?lfE%d?xJliS8P2TtV-n zY*6#~wo}WQB84Y1tme%P7&=ZXz;J@WiXM=Fziz*ffbkK=YYgrJeKB+6%`(cTD^tB1 zYL$j2tsTy~fX2h#5NWxOg~w=YOzih}!xw8g4v&16z&nC@8*ehv46uTnw~TZzz%~PW z5kmK>OEk@c?sF%&|IF7D*-$+{E3a<5Y|8TaYv>V9Py-E*Z5O|Pph>0ei8G!L?Gvzl z@)qj^xII;5FRNbX9dD{GFGvWJ#J;-zD=KL?ygOmVOugJL0+KtSTFYoqd{V@?DS;{W zcb%wBWZ}Zd(5DE$5R)2D{yHGk^94tB{Tu+Cf%f}o%2X%YRZp-*sIL&lIJeah~9AXZsa zHbp=Py?c2_l!V41!*PBr&j$r{#6+Y2EtGB#Dl4XzUG%H6`pQRP2SYp+k{nk0{4T#J+%Uj8iiIPtDn-Gh5pX8N@GYGvi~i*?2R z(D(|!WNH-nYY$bef$PEOvMUOK|Jp^MXj*sF8)%iOS%DI7{IW1fEW}OV&IRxU9P?37 z^E2#pnW(lN_5I#tZPhJx7tPjLR2nW&_6IG8mrFsKY;`qSDOZgVVvX(OizsBl*^L#! z!AL71JyngQPDm30S9tlv(&!#|HA#~sh7*JHXXNRFl8Z?HSZKkRvZP`H{24(B)%%aI^2cjZ8(N?qf6+XMgz>wdav;qV@_gNG=$(MzfPeos zg}^n~J4tDYenmJ&PLG%$yN5vQd_Fwhvq$=`tBo9bKqIW^rSxAW z6R7wBN%9BQ_JxvSsDX4Z!}es^8tFuIWv)Js?xi9D$v+6vKsrQd#oC7OT(D~gYRxx? z`Mtc>nQ09QUqUlRtaHfAS5CXg(zXv1oV#UzyZnRf{Ll00?-U%o=0A7nU#H>UAN&3S zwTaG;2&h2acF{>-BnV%oc!@L_h%nAOTmn4Au(V>bzJUP-R#tr==+NOe-u(U|_NDgg zuTpeisXhtHeE<`SXvf24nRc?wlA{O1{Nz3k229aNN9P5S`+RE<1oVsK4q#0$E?l&) zfoi}ve;DdX9W_S3xxd_#$m8l#sisly;{3$B1$_0qmiF}-L-^t0?N=XW8@)i}3DyKA{*)j@&P~J!qEIdQA@f=8YRSoSmItq2qEnl&aChf@%HPN0kkhEyuP- zkK_)VtSl-y0d`$9gPul>-R@TPc77Z?=vK9m0Ax4h99%;1ah4muik=}QI3JFJ4?!Gm z=H%o!&U!t@bpfL`&o~v}TUAvBf`ONo-ao&Qxgj!P(LsIU#C`ShXGk%zv1Zkq<=#r(5a( diff --git a/Documentation/Images/Installation/DragInWizard.png b/Documentation/Images/Installation/DragInWizard.png new file mode 100644 index 0000000000000000000000000000000000000000..c7efb062f7bcbceab490f9a57b71f1948b7b5169 GIT binary patch literal 84492 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

Y;LcaPkt{#q=xJ_# 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 SQxM1>Aq^EBbh(ms*#7}I%T|v7 literal 0 HcmV?d00001 diff --git a/Documentation/Index.rst b/Documentation/Index.rst index cb85579..4deeb81 100644 --- a/Documentation/Index.rst +++ b/Documentation/Index.rst @@ -9,7 +9,7 @@ .. role:: underline .. role:: typoscript(code) .. role:: ts(typoscript) - :class: typoscript + :class: typoscript .. role:: php(code) @@ -18,59 +18,52 @@ Grid Elements ============= :Extension key: - gridelements + gridelements :Version: - 4.0.0 + 8.0.0 :Language: - en + en :Description: - This extension integrates the grid layout concept to regular content - elements. + This extension integrates the backend layout concept of pages to regular content + elements. :Keywords: - grid elements, backend, layout + grid elements, backend, layout :Copyright: - Jo Hasenau, Cybercraft Media Manufactory + Jo Hasenau, Cybercraft Media Manufactory :Author: - The Grid Elements Team + The Grid Elements Team :License: - GNU General Public License, either version 2 of the License or any - later version. + GNU General Public License, either version 2 of the License or any + later version. :Rendered: - |today| + |today| | -This project aims to integrate the grid layout concept also to regular -content elements - the grid elements. This approach is an alternative -to TemplaVoila storing relations normalized in the database without -using XML and offers a lot of comfortable features for an improved -experience of the backend user. It's development has been financed by -T-Systems, Cybercraft and via a crowd funding project @ -http://www.startnext.de/en/typo3-grid-elements-2-0 with sponsoring of -99 Supporters +This project aims to integrate the backend layout concept of pages also to regular content elements - the grid elements. This approach is an alternative to TemplaVoila storing relations normalized in the database without using XML and offers a lot of comfortable features for an improved experience of the backend user. It's development has been financed by T-Systems, Cybercraft and via a crowd funding project @ +http://www.startnext.de/en/typo3-grid-elements-2-0 with sponsoring of 99 supporters. Additionally this new version is now managed by Coders.Care and has been sponsored during a private access phase backed by sponsors. Table Of Content ^^^^^^^^^^^^^^^^ .. toctree:: - :maxdepth: 5 - :titlesonly: - :glob: - - Chapters/Introduction/Index - Chapters/Installation/Index - Chapters/GridTsSyntax/Index - Chapters/GridWizard/Index - Chapters/Flexform/Index - Chapters/Tsconfig/Index - Chapters/Typoscript/Index - Chapters/Faq/Index - Chapters/Notes/Index + :titlesonly: + :glob: + + Chapters/Introduction/Index + Chapters/Installation/Index + Chapters/GridTsSyntax/Index + Chapters/GridWizard/Index + Chapters/Flexform/Index + Chapters/Tsconfig/Index + Chapters/Typoscript/Index + Chapters/Faq/Index + Chapters/Notes/Index diff --git a/composer.json b/composer.json index efc4a7a..a8920f5 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "gridelementsteam/gridelements", - "description": "This extension integrates the grid layout concept to regular content elements.", + "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", "version": "8.0.0", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], @@ -10,7 +10,7 @@ "issues": "https://forge.typo3.org/projects/extension-gridelements2/issues" }, "require": { - "typo3/cms-core": "~8.0" + "typo3/cms-core": ">=8.7.0,<9.0" }, "replace": { "gridelements": "self.version", diff --git a/ext_emconf.php b/ext_emconf.php index e3e7f82..66fe207 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,7 +13,7 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.0.0-dev', + 'version' => '8.0.0', 'priority' => 'bottom', 'module' => '', 'state' => 'beta', @@ -26,7 +26,7 @@ 'author_company' => '', 'constraints' => [ 'depends' => [ - 'typo3' => '8.6.0-8.99.99', + 'typo3' => '8.7.0-8.99.99', ], 'conflicts' => [ 'templavoila' => '', From 1c46e259e285a77f4873af34dc6b37cf2d4d0e18 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 28 Dec 2017 12:12:37 +0100 Subject: [PATCH 02/61] [BUGFIX] Always treat icons as an array, since there might be 2 icons First icon is the default, second will be used as large icon Resolves: #73198 Releases: master, 8-0 Change-Id: Ia5000af128c573ed98c7a63078fec4a8c04159c4 Reviewed-on: https://review.typo3.org/55221 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit e481928e219a992591bffdbea7f354827e38eed5) Reviewed-on: https://review.typo3.org/55224 --- ...GridelementsBackendLayoutWizardElement.php | 24 ++++++++++--------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/Classes/Wizard/GridelementsBackendLayoutWizardElement.php b/Classes/Wizard/GridelementsBackendLayoutWizardElement.php index b2ae561..38abebb 100644 --- a/Classes/Wizard/GridelementsBackendLayoutWizardElement.php +++ b/Classes/Wizard/GridelementsBackendLayoutWizardElement.php @@ -187,17 +187,19 @@ public function render() $gridType['key'] = $key; if (substr($gridType['key'], 0, 2) !== '--') { $gridType['label'] = $lang->sL($item['title'], true); - if (strpos($item['icon'], 'EXT:') === 0) { - $gridType['icon'] = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($item['icon']); - } elseif (strpos($item['icon'], '/typo3') === 0) { - $gridType['icon'] = '../../../' . $item['icon']; - } else { - $gridType['icon'] = '../../../' . '../typo3/sysext/core/Resources/Public/Icons/T3Icons/content/' . $item['icon']; - } - // Check if file ending exists, therefore compare pos of last slash to pos of last dot - if (!empty($gridType['icon']) && strrpos($gridType['icon'], '/') > strrpos($gridType['icon'], - '.')) { - $gridType['icon'] .= '.svg'; + if (!empty($item['icon']) && is_array($item['icon']) && !empty($item['icon'][0])) { + if (strpos($item['icon'][0], 'EXT:') === 0) { + $gridType['icon'] = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($item['icon']); + } elseif (strpos($item['icon'][0], '/typo3') === 0) { + $gridType['icon'] = '../../../' . $item['icon']; + } else { + $gridType['icon'] = '../../../' . '../typo3/sysext/core/Resources/Public/Icons/T3Icons/content/' . $item['icon'][0]; + } + // Check if file ending exists, therefore compare pos of last slash to pos of last dot + if (!empty($gridType['icon']) && strrpos($gridType['icon'], '/') > strrpos($gridType['icon'], + '.')) { + $gridType['icon'] .= '.svg'; + } } $gridTypes[] = $gridType; } From 02990ec898802dcf052bebea585d96dbddd63e54 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 28 Dec 2017 12:26:11 +0100 Subject: [PATCH 03/61] [TASK] Enable alphanumeric frame values for extension like t3ddy Resolves: #83441 Releases: master, 8-0 Change-Id: I37a786206b8370bf185bb0f653c1d84afe13fdc6 Reviewed-on: https://review.typo3.org/55227 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index ef52f5d..035830c 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -889,9 +889,9 @@ protected function tt_content_drawColHeader($colName, $editParams, PageLayoutVie protected function renderGridLayoutTable($layout, $row, $head, $gridContent) { $specificIds = $this->helper->getSpecificIds($row); - $grid = '

'; + $grid = '
'; if ($layout['frame'] || $this->helper->getBackendUser()->uc['showGridInformation'] === 1) { - $grid .= '

' . + $grid .= '

' . BackendUtility::wrapInHelp( 'tx_gridelements_backend_layouts', 'title', From 3a411cd11225df34de9e3dd801454d8fb621d621 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 28 Dec 2017 13:01:37 +0100 Subject: [PATCH 04/61] [BUGFIX] Adjust translations to match columns and container of l18n_parent Resolves: #83411 Releases: master, 8-0, 7-0 Change-Id: I9c967aeb8ab5e5a389f088553b0168ebbd4b2354 Reviewed-on: https://review.typo3.org/55225 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AbstractDataHandler.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index 3c3586b..f3db7b6 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -27,6 +27,7 @@ use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; use TYPO3\CMS\Core\DataHandling\DataHandler; +use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -184,6 +185,9 @@ public function checkAndUpdateTranslatedElements($uid) } else if ($translatedElement['tx_gridelements_container'] == $currentValues['tx_gridelements_container']) { $updateArray['tx_gridelements_container'] = (int)$currentValues['tx_gridelements_container']; $updateArray['tx_gridelements_columns'] = (int)$currentValues['tx_gridelements_columns']; + } else { + $updateArray['tx_gridelements_container'] = 0; + $updateArray['tx_gridelements_columns'] = 0; } $updateArray['colPos'] = (int)$currentValues['colPos']; From b118db338485796099a7b747997d3f12c421d211 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Fri, 5 Jan 2018 14:26:27 +0100 Subject: [PATCH 05/61] [BUGFIX] move bracket to fix issue with FIND IN SET Change-Id: I122519f197c95d78b9e9c47ff965fa11c5618d26 Reviewed-on: https://review.typo3.org/55280 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 035830c..edcb4b2 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -1144,7 +1144,7 @@ protected function collectContentDataFromPages( $items = $queryBuilder ->select('*') ->addSelectLiteral($queryBuilder->expr()->inSet('pid', - $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY) . ' AS inSet')) + $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)) . ' AS inSet') ->from('tt_content') ->where( $queryBuilder->expr()->neq('uid', From 02f62d7a963659a64fac28a1b29487a7814f7899 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Tue, 9 Jan 2018 12:12:20 +0100 Subject: [PATCH 06/61] [BUGFIX] Remove trailing or leading comma from CSV list of columns Resolves: #83514 Releases: 8-0 Change-Id: If154c64f884376f356238909f671caf27204aff4 Reviewed-on: https://review.typo3.org/55303 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AfterDatabaseOperations.php | 2 +- Classes/Plugin/Gridelements.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index 582a7d0..7c40981 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -380,7 +380,7 @@ public function getAvailableColumns($layout = '', $table = '', $id = 0) } } // Implode into a CSV string as BackendLayoutView->getColPosListItemsParsed returns an array - $tcaColumns = '-2,-1,' . implode(',', $temp); + $tcaColumns = rtrim('-2,-1,' . implode(',', $temp), ','); } return $tcaColumns; } diff --git a/Classes/Plugin/Gridelements.php b/Classes/Plugin/Gridelements.php index 3f61efb..9e6449e 100644 --- a/Classes/Plugin/Gridelements.php +++ b/Classes/Plugin/Gridelements.php @@ -100,7 +100,7 @@ public function main($content = '', $conf = []) $layoutSetup->init($this->cObj->data['pid'], $conf); $availableColumns = $layoutSetup->getLayoutColumns($layout); - $csvColumns = str_replace('-2,-1,', '', $availableColumns['CSV']); + $csvColumns = ltrim(str_replace('-2,-1', '', $availableColumns['CSV']), ','); $this->getChildren($element, $pid, $csvColumns); // and we have to determine the frontend setup related to the backend layout record which is assigned to this container From ac69b6ceddb025a63ef62c07b20cd0814c55d9df Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 10 Jan 2018 21:05:35 +0100 Subject: [PATCH 07/61] [BUGFIX] Switch horizontal grids from inline-block to table-cell Resolves: #83530 Releases: 8-0 Change-Id: I32a771f426269e7f50124f836c8cb1c9fb3ebbeb Reviewed-on: https://review.typo3.org/55329 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- .../Backend/Css/Skin/t3skin_override.css | 38 ++++++++++++++++--- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/Resources/Public/Backend/Css/Skin/t3skin_override.css b/Resources/Public/Backend/Css/Skin/t3skin_override.css index a85074f..8984504 100644 --- a/Resources/Public/Backend/Css/Skin/t3skin_override.css +++ b/Resources/Public/Backend/Css/Skin/t3skin_override.css @@ -92,6 +92,18 @@ filter: alpha(opacity=65); } +.t3-grid-cell-horizontal > .t3js-sortable > .ui-draggable > .t3-page-ce-dropzone-possible { + margin: -28px 0 -27px 0!important; +} + +.t3-grid-cell-horizontal > .t3js-sortable > .t3js-page-ce-sortable > .t3-page-ce-dropzone-available { + margin: 10px 0!important; +} + +.t3-grid-cell-horizontal > .t3js-sortable > .t3js-page-ce-sortable > .t3-page-ce-dropzone-possible { + margin: -38px 0 -37px 0!important; +} + .t3-page-ce-dragitem.dragitem-shadow { opacity: 0.65; filter: alpha(opacity=65); @@ -403,12 +415,28 @@ display: block; } -.t3-grid-cell-horizontal { - white-space: nowrap; +.t3-grid-cell-horizontal > .t3js-sortable { + display: table; + vertical-align: top; + width: 100%; +} + +.t3-grid-cell-horizontal > .t3js-sortable > .ui-draggable { + display: table-row; +} + +.t3-grid-cell-horizontal > .t3js-sortable > .ui-draggable > .ui-droppable { + margin: 10px; +} + +.t3-grid-cell-horizontal > .t3js-sortable > .ui-draggable > .t3js-page-new-ce { + display: table-cell; + padding: 10px; } .t3-grid-cell-horizontal > .t3js-sortable > .t3js-page-ce-sortable { - display: inline-block; + display: table-cell; + padding: 0px 10px 0px; vertical-align: top; } @@ -444,12 +472,12 @@ display: block; float: right; margin-top: 11px; - margin-right: 11px; + right: 11px; height: 25px; border: 1px solid #ccc; border-radius: 2px; padding: 2px 5px; - position: relative; + position: absolute; z-index: 100; } From 4129f4ffd25adab62f64aac77476cbff990cf482 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 10 Jan 2018 14:38:51 +0100 Subject: [PATCH 08/61] [BUGFIX] Remove superfluous addCssFile calls in favor of TBE_STYLES Resolves: #83515 Releases: master, 8-0, 7-0 Change-Id: Ib438c4c6e8b234585633a48e26d307bf6b1dedd0 Reviewed-on: https://review.typo3.org/55322 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/PageRenderer.php | 1 - Classes/Hooks/PreHeaderRenderHook.php | 42 --------------------------- ext_tables.php | 6 ++-- 3 files changed, 2 insertions(+), 47 deletions(-) delete mode 100644 Classes/Hooks/PreHeaderRenderHook.php diff --git a/Classes/Hooks/PageRenderer.php b/Classes/Hooks/PageRenderer.php index 13dc5a1..6a63f0b 100644 --- a/Classes/Hooks/PageRenderer.php +++ b/Classes/Hooks/PageRenderer.php @@ -49,7 +49,6 @@ class PageRenderer implements SingletonInterface */ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $pageRenderer) { - $pageRenderer->addCssFile(ExtensionManagementUtility::siteRelPath('gridelements') . 'Resources/Public/Backend/Css/Skin/t3skin_override.css'); if (get_class($GLOBALS['SOBE']) === RecordList::class || is_subclass_of($GLOBALS['SOBE'], RecordList::class)) { $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsOnReady'); return; diff --git a/Classes/Hooks/PreHeaderRenderHook.php b/Classes/Hooks/PreHeaderRenderHook.php deleted file mode 100644 index f05ff02..0000000 --- a/Classes/Hooks/PreHeaderRenderHook.php +++ /dev/null @@ -1,42 +0,0 @@ - - * All rights reserved - * This script is part of the TYPO3 project. The TYPO3 project is - * free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * The GNU General Public License can be found at - * http://www.gnu.org/copyleft/gpl.html. - * This script is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * This copyright notice MUST APPEAR in all copies of the script! - ***************************************************************/ - -use TYPO3\CMS\Core\SingletonInterface; -use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; - -/** - * Class PreHeaderRenderHook - * - * @package GridElementsTeam\Gridelements\Hooks - */ -class PreHeaderRenderHook implements SingletonInterface -{ - /** - * @param array $arg - */ - function main(array $arg) - { - /** @var \TYPO3\CMS\Core\Page\PageRenderer $pagerenderer */ - $pagerenderer = $arg['pageRenderer']; - $pagerenderer->addCssFile(ExtensionManagementUtility::siteRelPath('gridelements') . 'Resources/Public/Backend/Css/Skin/t3skin_override.css'); - } -} diff --git a/ext_tables.php b/ext_tables.php index 9f34a16..6dcdf0b 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -25,8 +25,6 @@ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['getFlexFormDSClass'][] = \GridElementsTeam\Gridelements\Hooks\BackendUtilityGridelements::class; - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/template.php']['preHeaderRenderHook'][] = \GridElementsTeam\Gridelements\Hooks\PreHeaderRenderHook::class . '->main'; - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tx_templavoila_api']['apiIsRunningTCEmain'] = true; $GLOBALS['TYPO3_USER_SETTINGS']['columns']['dragAndDropHideNewElementWizardInfoOverlay'] = [ @@ -57,8 +55,8 @@ showGridInformation '; - $TBE_STYLES['skins']['gridelements']['name'] = 'gridelements'; - $TBE_STYLES['skins']['gridelements']['stylesheetDirectories']['structure'] = 'EXT:' . ($_EXTKEY) . '/Resources/Public/Backend/Css/Skin/'; + $GLOBALS['TBE_STYLES']['skins']['gridelements']['name'] = 'gridelements'; + $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['structure'] = 'EXT:' . ($_EXTKEY) . '/Resources/Public/Backend/Css/Skin/'; } // Hooks From 043c4d83132b515136cf97eeb71fc23b924cc17a Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 29 Jan 2018 18:52:58 +0100 Subject: [PATCH 09/61] [TASK] replace deprecated SPDX license identifier for packagist Change-Id: I3b03db74249fc04ccdffb9869b19da51e9647265 Reviewed-on: https://review.typo3.org/55495 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 8b201f68931c4d4873716ec2c8790b514f18fb52) Reviewed-on: https://review.typo3.org/55496 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index a8920f5..32dce70 100644 --- a/composer.json +++ b/composer.json @@ -5,7 +5,7 @@ "version": "8.0.0", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", - "license": "GPL-2.0+", + "license": "GPL-2.0-or-later", "support": { "issues": "https://forge.typo3.org/projects/extension-gridelements2/issues" }, From 3cfad5eb808f86bbb9e45572195a242b14a5d3ef Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 1 Feb 2018 17:36:14 +0100 Subject: [PATCH 10/61] [BUGFIX] Use select field array instead of CSV and fetch result Resolves: #83717 Releases: master, 8-0 Change-Id: I10a798d366dceec2aa4979e1350816c854dc91a8 Reviewed-on: https://review.typo3.org/55523 Reviewed-by: Sven Juergens Tested-by: Sven Juergens Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 5cd4a69cad049d9144f9351e9237f5197e5b9261) Reviewed-on: https://review.typo3.org/55529 --- Classes/DataHandler/PreProcessFieldArray.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Classes/DataHandler/PreProcessFieldArray.php b/Classes/DataHandler/PreProcessFieldArray.php index b40dd4a..f29a68b 100644 --- a/Classes/DataHandler/PreProcessFieldArray.php +++ b/Classes/DataHandler/PreProcessFieldArray.php @@ -313,7 +313,7 @@ public function checkForRootColumn($contentId) ->getRestrictions() ->removeAll(); $parent = $queryBuilder - ->select('t1.colPos, t1.tx_gridelements_container') + ->select('t1.colPos', 't1.tx_gridelements_container') ->from('tt_content', 't1') ->join( 't1', @@ -325,7 +325,8 @@ public function checkForRootColumn($contentId) $queryBuilder->expr()->eq('t2.uid', $queryBuilder->createNamedParameter((int)$contentId, \PDO::PARAM_INT)) ) - ->execute(); + ->execute() + ->fetch(); if (!empty($parent) && $parent['tx_gridelements_container'] > 0) { $colPos = $this->checkForRootColumn($parent['tx_gridelements_container']); } else { From 8a4b8b129de78b3ecc5f610ef51b0e775d153043 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 1 Feb 2018 18:15:25 +0100 Subject: [PATCH 11/61] [BUGFIX] Leave overridePageIdList untouched to avoid problems w shortcuts Change-Id: Idfabc50aaed0fc59cd110a46c60237200844e5f7 Resolves: #83600 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/55525 Reviewed-by: Eric Chavaillaz Tested-by: Eric Chavaillaz Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit b512a6e2b806cfe9543e58535d0470348fe1c0d0) Reviewed-on: https://review.typo3.org/55530 --- Classes/Hooks/DrawItem.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index edcb4b2..f58c95c 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -280,7 +280,6 @@ protected function setMultipleColPosValues($parserRows, &$colPosValues, $layout) protected function setSingleColPosItems(PageLayoutView $parentObject, &$colPosValues, &$row) { $specificIds = $this->helper->getSpecificIds($row); - $parentObject->setOverridePageIdList([$specificIds['pid']]); $expressionBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('tt_content') @@ -300,8 +299,6 @@ protected function setSingleColPosItems(PageLayoutView $parentObject, &$colPosVa $restrictions->removeByType(EndTimeRestriction::class); $queryBuilder->setRestrictions($restrictions); - $parentObject->setOverridePageIdList([]); - $colPosValues[] = [0, '']; return $parentObject->getResult($queryBuilder->execute()); @@ -372,7 +369,6 @@ protected function collectItemsForColumns(PageLayoutView $parentObject, &$colPos { $colPosList = array_keys($colPosValues); $specificIds = $this->helper->getSpecificIds($row); - $parentObject->setOverridePageIdList([$specificIds['pid']]); $queryBuilder = $this->getQueryBuilder(); $constraints = [ From ada775233e0dda4a63e97748b97b8a7c674f8330 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 1 Feb 2018 18:22:00 +0100 Subject: [PATCH 12/61] [BUGFIX] Check for NULL before accessing class to avoid errors w PHP 7.2 Change-Id: I06704d0728bc967132f2a73a83077d78d0f9a7cb Resolves: #83587 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/55526 Reviewed-by: Benni Mack Tested-by: Benni Mack Reviewed-by: Susanne Moog Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 24fcf72dacc9e66a48dc7273bfe2c62554268aa1) Reviewed-on: https://review.typo3.org/55545 --- Classes/Hooks/DrawItem.php | 57 ++++++++++++++++++++-------------- Classes/Hooks/PageRenderer.php | 8 ++--- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index f58c95c..051ce8d 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -42,7 +42,6 @@ use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Type\Bitmask\Permission; -use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\CMS\Core\Versioning\VersionState; @@ -457,7 +456,7 @@ protected function renderSingleGridColumn( $maxItems = (int)$values['maxitems']; $url = ''; $pageinfo = BackendUtility::readPageAccess($parentObject->id, ''); - if (get_class($this->getPageLayoutController()) === PageLayoutController::class) { + if (!empty($this->getPageLayoutController()) && get_class($this->getPageLayoutController()) === PageLayoutController::class) { $contentIsNotLockedForEditors = $this->getPageLayoutController()->contentIsNotLockedForEditors(); } else { $contentIsNotLockedForEditors = true; @@ -933,10 +932,12 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent) foreach ($disallowedContentTypes as $key => &$ctype) { $ctype = $key; } - } else if(isset($disallowedContentTypes['*'])) { - $disallowedGridTypes['*'] = '*'; } else { - $disallowedContentTypes = []; + if (isset($disallowedContentTypes['*'])) { + $disallowedGridTypes['*'] = '*'; + } else { + $disallowedContentTypes = []; + } } // when everything is disallowed, no further checks are necessary if (!isset($disallowedContentTypes['*'])) { @@ -960,12 +961,14 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent) foreach ($disallowedListTypes as $key => &$ctype) { $ctype = $key; } - } else if(isset($disallowedListTypes['*'])) { - // when each list type is disallowed, no CType list is necessary anymore - $disallowedListTypes['*'] = '*'; - unset($allowedContentTypes['list']); } else { - $disallowedListTypes = []; + if (isset($disallowedListTypes['*'])) { + // when each list type is disallowed, no CType list is necessary anymore + $disallowedListTypes['*'] = '*'; + unset($allowedContentTypes['list']); + } else { + $disallowedListTypes = []; + } } // when each list type is disallowed, no further list type checks are necessary if (!isset($disallowedListTypes['*'])) { @@ -995,12 +998,14 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent) foreach ($disallowedGridTypes as $key => &$ctype) { $ctype = $key; } - } else if(isset($disallowedGridTypes['*'])) { - // when each list type is disallowed, no CType gridelements_pi1 is necessary anymore - $disallowedGridTypes['*'] = '*'; - unset($allowedContentTypes['gridelements_pi1']); } else { - $disallowedGridTypes = []; + if (isset($disallowedGridTypes['*'])) { + // when each list type is disallowed, no CType gridelements_pi1 is necessary anymore + $disallowedGridTypes['*'] = '*'; + unset($allowedContentTypes['gridelements_pi1']); + } else { + $disallowedGridTypes = []; + } } // when each list type is disallowed, no further grid types checks are necessary if (!isset($disallowedGridTypes['*'])) { @@ -1042,14 +1047,20 @@ class="t3-grid-cell t3js-page-column t3-page-column t3-page-column-' . $columnKe (!isset($columnConfig['colPos']) || $columnConfig['colPos'] === '' ? ' t3-grid-cell-unassigned' : '') . (isset($columnConfig['colspan']) && $columnConfig['colPos'] !== '' ? ' t3-grid-cell-width' . $colSpan : '') . (isset($columnConfig['rowspan']) && $columnConfig['colPos'] !== '' ? ' t3-grid-cell-height' . $rowSpan : '') . - ($disableNewContent ? ' t3-page-ce-disable-new-ce' : ''). + ($disableNewContent ? ' t3-page-ce-disable-new-ce' : '') . ($layout['horizontal'] ? ' t3-grid-cell-horizontal' : '') . ' ' . $expanded . '"' . - ' data-allowed-ctype="' . (!empty($allowedContentTypes) ? join(',', $allowedContentTypes) : '*') . '"' . - (!empty($disallowedContentTypes) ? ' data-disallowed-ctype="' . join(',', $disallowedContentTypes) . '"' : '') . - (!empty($allowedListTypes) ? ' data-allowed-list_type="' . join(',', $allowedListTypes) . '"' : '') . - (!empty($disallowedListTypes) ? ' data-disallowed-list_type="' . join(',', $disallowedListTypes) . '"' : '') . - (!empty($allowedGridTypes) ? ' data-allowed-tx_gridelements_backend_layout="' . join(',', $allowedGridTypes) . '"' : '') . - (!empty($disallowedGridTypes) ? ' data-disallowed-tx_gridelements_backend_layout="' . join(',', $disallowedGridTypes) . '"' : '') . + ' data-allowed-ctype="' . (!empty($allowedContentTypes) ? join(',', + $allowedContentTypes) : '*') . '"' . + (!empty($disallowedContentTypes) ? ' data-disallowed-ctype="' . join(',', + $disallowedContentTypes) . '"' : '') . + (!empty($allowedListTypes) ? ' data-allowed-list_type="' . join(',', + $allowedListTypes) . '"' : '') . + (!empty($disallowedListTypes) ? ' data-disallowed-list_type="' . join(',', + $disallowedListTypes) . '"' : '') . + (!empty($allowedGridTypes) ? ' data-allowed-tx_gridelements_backend_layout="' . join(',', + $allowedGridTypes) . '"' : '') . + (!empty($disallowedGridTypes) ? ' data-disallowed-tx_gridelements_backend_layout="' . join(',', + $disallowedGridTypes) . '"' : '') . (!empty($maxItems) ? ' data-maxitems="' . $maxItems . '"' : '') . ' data-state="' . $expanded . '">'; $grid .= ($this->helper->getBackendUser()->uc['hideColumnHeaders'] ? '' : $head[$columnKey]); @@ -1140,7 +1151,7 @@ protected function collectContentDataFromPages( $items = $queryBuilder ->select('*') ->addSelectLiteral($queryBuilder->expr()->inSet('pid', - $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)) . ' AS inSet') + $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)) . ' AS inSet') ->from('tt_content') ->where( $queryBuilder->expr()->neq('uid', diff --git a/Classes/Hooks/PageRenderer.php b/Classes/Hooks/PageRenderer.php index 6a63f0b..9a666e4 100644 --- a/Classes/Hooks/PageRenderer.php +++ b/Classes/Hooks/PageRenderer.php @@ -28,7 +28,6 @@ use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; use TYPO3\CMS\Core\SingletonInterface; -use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Recordlist\RecordList; @@ -49,12 +48,13 @@ class PageRenderer implements SingletonInterface */ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $pageRenderer) { - if (get_class($GLOBALS['SOBE']) === RecordList::class || is_subclass_of($GLOBALS['SOBE'], RecordList::class)) { + if (!empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === RecordList::class || is_subclass_of($GLOBALS['SOBE'], + RecordList::class))) { $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsOnReady'); return; } - if (get_class($GLOBALS['SOBE']) === PageLayoutController::class || is_subclass_of($GLOBALS['SOBE'], - PageLayoutController::class)) { + if (!empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === PageLayoutController::class || is_subclass_of($GLOBALS['SOBE'], + PageLayoutController::class))) { $iconFactory = GeneralUtility::makeInstance(IconFactory::class); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsOnReady'); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsDragDrop'); From a44e3707e205f88d50f568cdb3e4275a80b16d70 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Fri, 22 Dec 2017 10:26:45 +0100 Subject: [PATCH 13/61] [TASK] Make sure that child elements of containers get correct colPos Resolves: #80838 Releases: master, 8-0 Change-Id: I5777e3eab02a8b3bafc9f65b6e6bb942a82ee083 Reviewed-on: https://review.typo3.org/55194 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AfterDatabaseOperations.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index 7c40981..1297a77 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -52,11 +52,11 @@ class AfterDatabaseOperations extends AbstractDataHandler */ public function execute_afterDatabaseOperations(array &$fieldArray, $table, $uid, DataHandler $parentObj) { - if ($table === 'tt_content') { + if ($table === 'tt_content' || $table === 'pages') { $this->init($table, $uid, $parentObj); if (!$this->getTceMain()->isImporting) { $this->saveCleanedUpFieldArray($fieldArray); - if ((int)$uid > 0) { + if ($table === 'tt_content' && (int)$uid > 0) { $this->checkAndUpdateTranslatedElements($uid); } } @@ -104,6 +104,7 @@ public function setUnusedElements(array &$fieldArray) ->from('tt_content') ->where( $queryBuilder->expr()->andX( + $queryBuilder->expr()->gt('tx_gridelements_container', 0), $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT)), $queryBuilder->expr()->notIn('tx_gridelements_columns', @@ -135,6 +136,7 @@ public function setUnusedElements(array &$fieldArray) ->from('tt_content') ->where( $queryBuilder->expr()->andX( + $queryBuilder->expr()->gt('tx_gridelements_container', 0), $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT)), $queryBuilder->expr()->in('tx_gridelements_columns', @@ -365,11 +367,11 @@ public function setUnusedElements(array &$fieldArray) */ public function getAvailableColumns($layout = '', $table = '', $id = 0) { - $tcaColumns = []; + $tcaColumns = ''; if ($layout && $table === 'tt_content') { $tcaColumns = $this->layoutSetup->getLayoutColumns($layout); - $tcaColumns = $tcaColumns['CSV']; + $tcaColumns = '-2,-1,' . $tcaColumns['CSV']; } elseif ($table === 'pages') { $tcaColumns = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getColPosListItemsParsed', $id, $this); From 6560fa4f7c09e994d5534f0c75115261c7ae869a Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 1 Feb 2018 18:35:47 +0100 Subject: [PATCH 14/61] [BUGFIX] Always use specific uid and pid when in workspace mode Change-Id: I09f2e489b343a4077f2dd6611ddbce9119034b55 Resolves: #82941 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/55527 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 6b65c3c8184a3c02a760b2275264793b3e482cf6) Reviewed-on: https://review.typo3.org/55798 --- Classes/Hooks/DrawItem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 051ce8d..cdbd00d 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -371,10 +371,10 @@ protected function collectItemsForColumns(PageLayoutView $parentObject, &$colPos $queryBuilder = $this->getQueryBuilder(); $constraints = [ - $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($row['pid'], \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($specificIds['pid'], \PDO::PARAM_INT)), $queryBuilder->expr()->eq('colPos', $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT)), $queryBuilder->expr()->in('tx_gridelements_container', - $queryBuilder->createNamedParameter([(int)$row['uid'], $specificIds['uid']], + $queryBuilder->createNamedParameter([(int)$specificIds['uid'], $specificIds['uid']], Connection::PARAM_INT_ARRAY)), $queryBuilder->expr()->in('tx_gridelements_columns', $queryBuilder->createNamedParameter($colPosList, Connection::PARAM_INT_ARRAY)), From 2c1a4b29f104a02dfe20fb558cbc5629a5ee23aa Mon Sep 17 00:00:00 2001 From: Jo Hasenau Date: Mon, 19 Feb 2018 17:54:02 +0100 Subject: [PATCH 15/61] Revert "[BUGFIX] Always use specific uid and pid when in workspace mode" This reverts commit 6560fa4f7c09e994d5534f0c75115261c7ae869a. Change-Id: I2d6097538cbcc5fe788b4fab58ec6a153115b459 Reviewed-on: https://review.typo3.org/55801 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index cdbd00d..051ce8d 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -371,10 +371,10 @@ protected function collectItemsForColumns(PageLayoutView $parentObject, &$colPos $queryBuilder = $this->getQueryBuilder(); $constraints = [ - $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($specificIds['pid'], \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($row['pid'], \PDO::PARAM_INT)), $queryBuilder->expr()->eq('colPos', $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT)), $queryBuilder->expr()->in('tx_gridelements_container', - $queryBuilder->createNamedParameter([(int)$specificIds['uid'], $specificIds['uid']], + $queryBuilder->createNamedParameter([(int)$row['uid'], $specificIds['uid']], Connection::PARAM_INT_ARRAY)), $queryBuilder->expr()->in('tx_gridelements_columns', $queryBuilder->createNamedParameter($colPosList, Connection::PARAM_INT_ARRAY)), From d36950f564301e0f85b07b198cd697fa9e693334 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Fri, 16 Mar 2018 13:27:36 +0100 Subject: [PATCH 16/61] [FEATURE] Restrict referenced content to column language if configured Change-Id: I62637e9abbb2dc768f1e5eb166238730da833f3e Resolves: #84246 Release: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56218 Reviewed-by: Eric Chavaillaz Tested-by: Eric Chavaillaz Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 76363686496e6d9d2df5ead2f86a284169c3e43b) Reviewed-on: https://review.typo3.org/56221 --- Classes/Hooks/DrawItem.php | 34 ++++++++++++++++++++---- Resources/Private/Language/locallang.xlf | 3 +++ ext_conf_template.txt | 3 +++ ext_tables.php | 6 ++++- 4 files changed, 40 insertions(+), 6 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 051ce8d..9b54450 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -57,6 +57,11 @@ class DrawItem implements PageLayoutViewDrawItemHookInterface, SingletonInterface { + /** + * @var array + */ + protected $extentensionConfiguration; + /** * @var Helper */ @@ -96,6 +101,7 @@ class DrawItem implements PageLayoutViewDrawItemHookInterface, SingletonInterfac public function __construct() { + $this->extentensionConfiguration = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf']['gridelements']); $this->setLanguageService($GLOBALS['LANG']); $this->helper = Helper::getInstance(); $this->iconFactory = GeneralUtility::makeInstance(IconFactory::class); @@ -1098,10 +1104,10 @@ protected function renderCTypeShortcut(PageLayoutView $parentObject, &$row) foreach ($shortcutItems as $shortcutItem) { $shortcutItem = trim($shortcutItem); if (strpos($shortcutItem, 'pages_') !== false) { - $this->collectContentDataFromPages($shortcutItem, $collectedItems, $row['recursive'], $row['uid']); + $this->collectContentDataFromPages($shortcutItem, $collectedItems, $row['recursive'], $row['uid'], $row['sys_language_uid']); } else { if (strpos($shortcutItem, '_') === false || strpos($shortcutItem, 'tt_content_') !== false) { - $this->collectContentData($shortcutItem, $collectedItems, $row['uid']); + $this->collectContentData($shortcutItem, $collectedItems, $row['uid'], $row['sys_language_uid']); } } } @@ -1129,6 +1135,7 @@ protected function renderCTypeShortcut(PageLayoutView $parentObject, &$row) * @param array $collectedItems : The collected item data rows ordered by parent position, column position and sorting * @param int $recursive : The number of levels for the recursion * @param int $parentUid : uid of the referencing tt_content record + * @param int $language : sys_language_uid of the referencing tt_content record * * @return void */ @@ -1136,7 +1143,8 @@ protected function collectContentDataFromPages( $shortcutItem, &$collectedItems, $recursive = 0, - $parentUid + $parentUid, + $language = 0 ) { $itemList = str_replace('pages_', '', $shortcutItem); if ($recursive) { @@ -1148,6 +1156,7 @@ protected function collectContentDataFromPages( $itemList = GeneralUtility::intExplode(',', $itemList); $queryBuilder = $this->getQueryBuilder(); + $items = $queryBuilder ->select('*') ->addSelectLiteral($queryBuilder->expr()->inSet('pid', @@ -1158,7 +1167,8 @@ protected function collectContentDataFromPages( $queryBuilder->createNamedParameter((int)$parentUid, \PDO::PARAM_INT)), $queryBuilder->expr()->in('pid', $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->gte('colPos', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) + $queryBuilder->expr()->gte('colPos', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('sys_language_uid', $queryBuilder->createNamedParameter([0, -1], Connection::PARAM_INT_ARRAY)) ) ->orderBy('inSet') ->addOrderBy('colPos') @@ -1167,6 +1177,12 @@ protected function collectContentDataFromPages( ->fetchAll(); foreach ($items as $item) { + if (!empty($this->extentensionConfiguration['overlayShortcutTranslation']) && $language > 0) { + $translatedItem = BackendUtility::getRecordLocalization('tt_content', $item['uid'], $language); + if (!empty($translatedItem)) { + $item = array_shift($translatedItem); + } + } if ($this->helper->getBackendUser()->workspace > 0) { BackendUtility::workspaceOL('tt_content', $item, $this->helper->getBackendUser()->workspace); } @@ -1181,10 +1197,11 @@ protected function collectContentDataFromPages( * @param string $shortcutItem : The tt_content element to fetch the data from * @param array $collectedItems : The collected item data row * @param int $parentUid : uid of the referencing tt_content record + * @param int $language : sys_language_uid of the referencing tt_content record * * @return void */ - protected function collectContentData($shortcutItem, &$collectedItems, $parentUid) + protected function collectContentData($shortcutItem, &$collectedItems, $parentUid, $language) { $shortcutItem = str_replace('tt_content_', '', $shortcutItem); if ((int)$shortcutItem !== (int)$parentUid) { @@ -1203,6 +1220,13 @@ protected function collectContentData($shortcutItem, &$collectedItems, $parentUi ->execute() ->fetch(); + if (!empty($this->extentensionConfiguration['overlayShortcutTranslation']) && $language > 0) { + $translatedItem = BackendUtility::getRecordLocalization('tt_content', $item['uid'], $language); + if (!empty($translatedItem)) { + $item = array_shift($translatedItem); + } + } + if ($this->helper->getBackendUser()->workspace > 0) { BackendUtility::workspaceOL( 'tt_content', diff --git a/Resources/Private/Language/locallang.xlf b/Resources/Private/Language/locallang.xlf index f930e78..8deccd6 100644 --- a/Resources/Private/Language/locallang.xlf +++ b/Resources/Private/Language/locallang.xlf @@ -9,6 +9,9 @@ Enable nesting in list module + + Use language overlay for content and page records referenced in shortcut elements. + \ No newline at end of file diff --git a/ext_conf_template.txt b/ext_conf_template.txt index 15b1771..fad99e3 100644 --- a/ext_conf_template.txt +++ b/ext_conf_template.txt @@ -3,3 +3,6 @@ additionalStylesheet = # cat=basic; type=boolean; label=LLL:EXT:gridelements/Resources/Private/Language/locallang.xlf:nestingInListModule nestingInListModule = 0 + +# cat=basic; type=boolean; label=LLL:EXT:gridelements/Resources/Private/Language/locallang.xlf:overlayShortcutTranslation +overlayShortcutTranslation = 0 \ No newline at end of file diff --git a/ext_tables.php b/ext_tables.php index 6dcdf0b..975f280 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -56,7 +56,11 @@ '; $GLOBALS['TBE_STYLES']['skins']['gridelements']['name'] = 'gridelements'; - $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['structure'] = 'EXT:' . ($_EXTKEY) . '/Resources/Public/Backend/Css/Skin/'; + $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_structure'] = 'EXT:' . ($_EXTKEY) . '/Resources/Public/Backend/Css/Skin/'; + if ($_EXTCONF['additionalStylesheet'] && \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr($_EXTCONF['additionalStylesheet'])) { + $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_additional'] = $_EXTCONF['additionalStylesheet']; + } + } // Hooks From 45a93e2d38dfa84e7dc68945d00206d99a66b455 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Fri, 16 Mar 2018 17:08:56 +0100 Subject: [PATCH 17/61] [BUGFIX] Use label for unassigned columns and have empty colPos stored Change-Id: I534799ef4b581a1caddd28355836c95bab5ceba8 Resolves: #84049 Release: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56243 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 7 ++++++- Resources/Public/JavaScript/GridEditor.js | 18 +++++++++++++----- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 9b54450..c1d762d 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -1045,6 +1045,11 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent) $disableNewContent = $gridContent['numberOfItems'][$columnKey] >= $maxItems && $maxItems > 0; $tooManyItems = $gridContent['numberOfItems'][$columnKey] > $maxItems && $maxItems > 0; $expanded = $this->helper->getBackendUser()->uc['moduleData']['page']['gridelementsCollapsedColumns'][$row['uid'] . '_' . $columnKey] ? 'collapsed' : 'expanded'; + if (!empty($columnConfig['name']) && $columnKey === 32768) { + $columnHead = htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')'; + } else { + $columnHead = $head[$columnKey]; + } $grid .= ''; - $grid .= ($this->helper->getBackendUser()->uc['hideColumnHeaders'] ? '' : $head[$columnKey]); + $grid .= ($this->helper->getBackendUser()->uc['hideColumnHeaders'] ? '' : $columnHead); if ($maxItems > 0) { $maxItemsClass = ($disableNewContent ? ' warning' : ' success'); $maxItemsClass = ($tooManyItems ? ' danger' : $maxItemsClass); diff --git a/Resources/Public/JavaScript/GridEditor.js b/Resources/Public/JavaScript/GridEditor.js index 9bbcfb9..a7e1d6e 100644 --- a/Resources/Public/JavaScript/GridEditor.js +++ b/Resources/Public/JavaScript/GridEditor.js @@ -427,10 +427,14 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity', 'TYPO */ GridEditor.setName = function (newName, col, row) { var cell = GridEditor.getCell(col, row); - if (!cell || newName.trim() === '') { + if (!cell) { return false; } - cell.name = GridEditor.stripMarkup(newName); + if (newName.trim() === '') { + cell.name = undefined; + } else { + cell.name = GridEditor.stripMarkup(newName); + } return true; }; @@ -446,10 +450,14 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity', 'TYPO */ GridEditor.setColumn = function (newColumn, col, row) { var cell = GridEditor.getCell(col, row); - if (!cell || newColumn.trim() === '') { + if (!cell) { return false; } - cell.column = parseInt(newColumn, 10); + if (newColumn.trim() === '') { + cell.column = undefined; + } else { + cell.column = parseInt(newColumn, 10); + } return true; }; @@ -465,7 +473,7 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity', 'TYPO */ GridEditor.setMaxItems = function (newMaxItems, col, row) { var cell = GridEditor.getCell(col, row); - if (!cell || newMaxItems.trim() === '') { + if (!cell) { return false; } cell.maxitems = parseInt(newMaxItems, 10); From d2d1acb5bee461adbd71a3ca2a77e65ca6ce58e5 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Tue, 20 Mar 2018 17:11:18 +0100 Subject: [PATCH 18/61] [BUGFIX] Use label for unassigned columns and have empty colPos stored Change-Id: Ia2e277bc19cde50d4ee8cef91cfd4ec9b37e6bd3 Resolves: #84049 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56382 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 5fb41c9014d48c3a19777fdea9129b883e765928) Reviewed-on: https://review.typo3.org/56383 --- Classes/Hooks/DrawItem.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index c1d762d..7a1e86b 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -225,7 +225,7 @@ protected function renderCTypeGridelements(PageLayoutView $parentObject, &$row) // if we got a selected backend layout, we have to create the layout table now if ($layoutUid && isset($layout['config'])) { - $itemContent = $this->renderGridLayoutTable($layout, $gridElement, $head, $gridContent); + $itemContent = $this->renderGridLayoutTable($layout, $gridElement, $head, $gridContent, $parentObject); } else { $itemContent = '
'; $itemContent .= ''; @@ -884,10 +884,11 @@ protected function tt_content_drawColHeader($colName, $editParams, PageLayoutVie * @param array $row : The current data row for the container item * @param array $head : The data for the column headers of the grid we are going to render * @param array $gridContent : The content data of the grid we are going to render + * @param PageLayoutView $parentObject * * @return string */ - protected function renderGridLayoutTable($layout, $row, $head, $gridContent) + protected function renderGridLayoutTable($layout, $row, $head, $gridContent, PageLayoutView $parentObject) { $specificIds = $this->helper->getSpecificIds($row); $grid = '
'; @@ -1046,7 +1047,7 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent) $tooManyItems = $gridContent['numberOfItems'][$columnKey] > $maxItems && $maxItems > 0; $expanded = $this->helper->getBackendUser()->uc['moduleData']['page']['gridelementsCollapsedColumns'][$row['uid'] . '_' . $columnKey] ? 'collapsed' : 'expanded'; if (!empty($columnConfig['name']) && $columnKey === 32768) { - $columnHead = htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')'; + $columnHead = $this->tt_content_drawColHeader(htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')', '', $parentObject); } else { $columnHead = $head[$columnKey]; } From a362a7b8de4dc69947676ea458465e618e132996 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 19 Mar 2018 21:41:32 +0100 Subject: [PATCH 19/61] [BUGFIX] Fix shortcut rendering for shortcuts to page(s) Change-Id: I531c9292b876beb1c0de15fff1c36446b9c91474 Resolves: #84489 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56373 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Configuration/TypoScript/setup.ts | 78 +++++++++++++++++++------------ 1 file changed, 49 insertions(+), 29 deletions(-) diff --git a/Configuration/TypoScript/setup.ts b/Configuration/TypoScript/setup.ts index 8a43333..efe9c11 100644 --- a/Configuration/TypoScript/setup.ts +++ b/Configuration/TypoScript/setup.ts @@ -25,52 +25,72 @@ lib.gridelements.defaultGridSetup { # or tx_gridelements_view_child_123 (123 is the UID of the child) } +plugin.tx_gridelements_pi1 > +tt_content.gridelements_pi1 > +tt_content.gridelements_pi1 = COA +tt_content.gridelements_pi1 { + #10 =< lib.stdheader + 20 = COA + 20 { + 10 = USER + 10 { + userFunc = GridElementsTeam\Gridelements\Plugin\Gridelements->main + setup { + default < lib.gridelements.defaultGridSetup + } + } + } +} + +tt_content.gridelements_view < tt_content.gridelements_pi1 + lib.tt_content.shortcut.pages = COA lib.tt_content.shortcut.pages { 10 = USER 10 { userFunc = GridElementsTeam\Gridelements\Plugin\Gridelements->user_getTreeList - } + } 20 = CONTENT 20 { table = tt_content select { pidInList.data = register:pidInList + selectFields.dataWrap = *,FIND_IN_SET(pid,{register:pidInList}) AS gridelements_shortcut_page_order_by where = colPos >= 0 languageField = sys_language_uid - orderBy = colPos,sorting - orderBy.dataWrap = FIND_IN_SET(pid,'{register:pidInList}'),| + orderBy = gridelements_shortcut_page_order_by,colPos,sorting } } } -tt_content.shortcut { - 5 = LOAD_REGISTER - 5 { - tt_content_shortcut_recursive.field = recursive - } - 20 { - tables := addToList(pages) - conf.pages < lib.tt_content.shortcut.pages +[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('fluid_styled_content')] + lib.shortcuts = COA + lib.shortcuts { + 5 = LOAD_REGISTER + 5 { + tt_content_shortcut_recursive.field = recursive + } + 20 < tt_content.shortcut.variables.shortcuts + 20 { + tables := addToList(pages) + conf.pages < lib.tt_content.shortcut.pages + } + 30 = RESTORE_REGISTER } - 30 = RESTORE_REGISTER -} + tt_content.shortcut.variables.shortcuts > + tt_content.shortcut.variables.shortcuts < lib.shortcuts +[global] -plugin.tx_gridelements_pi1 > -tt_content.gridelements_pi1 > -tt_content.gridelements_pi1 = COA -tt_content.gridelements_pi1 { - #10 =< lib.stdheader - 20 = COA - 20 { - 10 = USER - 10 { - userFunc = GridElementsTeam\Gridelements\Plugin\Gridelements->main - setup { - default < lib.gridelements.defaultGridSetup - } +[userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('css_styled_content')] + tt_content.shortcut { + 5 = LOAD_REGISTER + 5 { + tt_content_shortcut_recursive.field = recursive + } + 20 { + tables := addToList(pages) + conf.pages < lib.tt_content.shortcut.pages } + 30 = RESTORE_REGISTER } -} - -tt_content.gridelements_view < tt_content.gridelements_pi1 +[global] From f8298accd2ca1d2a7d56615ba50aef7e9880575b Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 21 Mar 2018 11:58:33 +0100 Subject: [PATCH 20/61] [BUGFIX] Set proper CSS styles for neutral frame headers Change-Id: I45a23f5968a534c53e8720b1100b7f1457c8159f Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56398 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Resources/Public/Backend/Css/Skin/t3skin_override.css | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Public/Backend/Css/Skin/t3skin_override.css b/Resources/Public/Backend/Css/Skin/t3skin_override.css index 8984504..9daf17b 100644 --- a/Resources/Public/Backend/Css/Skin/t3skin_override.css +++ b/Resources/Public/Backend/Css/Skin/t3skin_override.css @@ -114,7 +114,8 @@ margin: 0 -10px; } -.t3js-module-body .t3-grid-container-title-0 { +.t3js-module-body .t3-grid-container-title-0, +.t3js-module-body .t3-grid-container-title--1 { font-size: 12px; font-weight: normal; color: #999999; From bd5691e703bba8be12ca672a67f8700ebf453b3d Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 21 Mar 2018 09:54:13 +0100 Subject: [PATCH 21/61] [BUGFIX] Consider allowed settings for first level CE backend layouts Change-Id: I65cb13906c6dcf96d0bcd3eb91c8ad3d27d64e88 Resolves: #84504 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56387 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 654a6c8dca0adcbeab6103bd5905bc0521da9d86) Reviewed-on: https://review.typo3.org/56408 --- .../ItemsProcFuncs/AbstractItemsProcFunc.php | 59 +------------- Classes/Backend/LayoutSetup.php | 79 +++++++++++-------- Classes/Backend/TtContent.php | 4 +- Classes/Helper/Helper.php | 64 +++++++++++++++ 4 files changed, 114 insertions(+), 92 deletions(-) diff --git a/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php b/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php index d44f76e..da54d15 100644 --- a/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php +++ b/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php @@ -23,10 +23,8 @@ use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Backend\View\BackendLayoutView; use TYPO3\CMS\Core\Database\QueryGenerator; use TYPO3\CMS\Core\SingletonInterface; -use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Lang\LanguageService; /** @@ -65,62 +63,7 @@ public function init() */ public function getSelectedBackendLayout($pageId) { - if (empty($GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId])) { - $backendLayoutData = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getSelectedBackendLayout', - $pageId, $this); - // add allowed CTypes to the columns, since this is not done by the native core methods - if (!empty($backendLayoutData['__items'])) { - $backendLayoutData['columns']['CSV'] = '-2,-1'; - if (!empty($backendLayoutData['__config']['backend_layout.']['rows.'])) { - $allowed = []; - $disallowed = []; - $maxItems = []; - foreach ($backendLayoutData['__config']['backend_layout.']['rows.'] as $row) { - if (!empty($row['columns.'])) { - foreach ($row['columns.'] as $column) { - if (!isset($column['colPos'])) { - continue; - } - $colPos = (int)$column['colPos']; - if (isset($column['allowed.'])) { - $column['allowed'] = $column['allowed.']; - } - if (isset($column['disallowed.'])) { - $column['disallowed'] = $column['disallowed.']; - } - if (!is_array($column['allowed']) && !empty($column['allowed'])) { - $allowed[$colPos] = ['CType' => $column['allowed']]; - } else if (empty($column['allowed'])) { - $allowed[$colPos] = ['CType' => '*']; - } else { - $allowed[$colPos] = $column['allowed']; - } - if ($column['allowedGridTypes']) { - $allowed[$colPos]['tx_gridelements_backend_layout'] = $column['allowedGridTypes']; - } - if (!empty($column['disallowed'])) { - $disallowed[$colPos] = $column['disallowed']; - } - if (!empty($column['maxitems'])) { - $maxItems[$colPos] = $column['maxitems']; - } - $backendLayoutData['columns']['CSV'] .= ',' . $colPos; - } - } - } - $backendLayoutData['allowed'] = $allowed; - if (!empty($disallowed)) { - $backendLayoutData['disallowed'] = $disallowed; - } - if (!empty($maxItems)) { - $backendLayoutData['maxitems'] = $maxItems; - } - } - $backendLayoutData = Helper::getInstance()->mergeAllowedDisallowedSettings($backendLayoutData); - }; - $GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId] = $backendLayoutData; - } - return $GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId]; + return Helper::getInstance()->getSelectedBackendLayout($pageId); } /** diff --git a/Classes/Backend/LayoutSetup.php b/Classes/Backend/LayoutSetup.php index 4d19621..274b24a 100644 --- a/Classes/Backend/LayoutSetup.php +++ b/Classes/Backend/LayoutSetup.php @@ -280,7 +280,8 @@ public function getLayoutColumns($layoutId) * @param bool $csvValues * @return array */ - public function checkAvailableColumns($setup, $csvValues = false) { + public function checkAvailableColumns($setup, $csvValues = false) + { $availableColumns = ['CSV' => '-2,-1']; $allowed = []; $disallowed = []; @@ -300,10 +301,12 @@ public function checkAvailableColumns($setup, $csvValues = false) { } if (!is_array($column['allowed']) && !empty($column['allowed'])) { $allowed[$colPos] = ['CType' => $column['allowed']]; - } else if (empty($column['allowed'])) { - $allowed[$colPos] = ['CType' => '*']; } else { - $allowed[$colPos] = $column['allowed']; + if (empty($column['allowed'])) { + $allowed[$colPos] = ['CType' => '*']; + } else { + $allowed[$colPos] = $column['allowed']; + } } if ($column['allowedGridTypes']) { $allowed[$colPos]['tx_gridelements_backend_layout'] = $column['allowedGridTypes']; @@ -390,38 +393,16 @@ public function setFlexformConfigurationPathAndFileName($flexformConfigurationPa $this->flexformConfigurationPathAndFileName = $flexformConfigurationPathAndFileName; } - /** - * Caches Container-Records and their setup to avoid multiple selects of the same record during a single request - * - * @param int $gridContainerId The ID of the current grid container - * @param bool $doReturn - * - * @return null|array - */ - public function cacheCurrentParent($gridContainerId = 0, $doReturn = false) - { - if ($gridContainerId > 0) { - if (empty($GLOBALS['tx_gridelements']['parentElement'][$gridContainerId])) { - $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId] = BackendUtility::getRecordWSOL('tt_content', - $gridContainerId); - } - } - if ($doReturn) { - return $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId]; - }; - - return null; - } - /** * Returns the item array for form field selection. * - * @param int $colPos The selected content column position. * + * @param int $colPos The selected content column position. * @param int $gridColPos * @param int $containerId + * @param int $pageId * @return array */ - public function getLayoutSelectItems($colPos, $gridColPos = 0, $containerId = 0) + public function getLayoutSelectItems($colPos, $gridColPos = 0, $containerId = 0, $pageId = 0) { $allowed = ['*' => '*']; $disallowed = []; @@ -433,6 +414,12 @@ public function getLayoutSelectItems($colPos, $gridColPos = 0, $containerId = 0) $allowed = $containerLayout['allowed'][$gridColPos]['tx_gridelements_backend_layout']; $disallowed = $containerLayout['disallowed'][$gridColPos]['tx_gridelements_backend_layout']; } + } elseif ($pageId > 0) { + $pageLayout = Helper::getInstance()->getSelectedBackendLayout($pageId); + if (!empty($pageLayout)) { + $allowed = $pageLayout['allowed'][$colPos]['tx_gridelements_backend_layout']; + $disallowed = $pageLayout['disallowed'][$colPos]['tx_gridelements_backend_layout']; + } } foreach ($this->layoutSetup as $layoutId => $item) { if (( @@ -472,6 +459,29 @@ public function getLayoutSelectItems($colPos, $gridColPos = 0, $containerId = 0) return $selectItems; } + /** + * Caches Container-Records and their setup to avoid multiple selects of the same record during a single request + * + * @param int $gridContainerId The ID of the current grid container + * @param bool $doReturn + * + * @return null|array + */ + public function cacheCurrentParent($gridContainerId = 0, $doReturn = false) + { + if ($gridContainerId > 0) { + if (empty($GLOBALS['tx_gridelements']['parentElement'][$gridContainerId])) { + $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId] = BackendUtility::getRecordWSOL('tt_content', + $gridContainerId); + } + } + if ($doReturn) { + return $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId]; + }; + + return null; + } + /** * Returns the item array for form field selection * @@ -552,8 +562,12 @@ public function setSingleLayoutSetup($key, array $layoutSetup) * * @return array */ - public function getLayoutWizardItems($colPos, $excludeLayouts = '', array $allowedGridTypes = [], array $disallowedGridTypes = []) - { + public function getLayoutWizardItems( + $colPos, + $excludeLayouts = '', + array $allowedGridTypes = [], + array $disallowedGridTypes = [] + ) { $wizardItems = []; $excludeLayouts = array_flip(explode(',', $excludeLayouts)); foreach ($this->layoutSetup as $layoutId => $item) { @@ -562,8 +576,7 @@ public function getLayoutWizardItems($colPos, $excludeLayouts = '', array $allow !isset($allowedGridTypes[$layoutId]) ) || isset($disallowedGridTypes[$layoutId]) - ) - { + ) { continue; } if (isset($excludeLayouts[$item['uid']]) || (int)$colPos === -1 && $item['top_level_layout']) { diff --git a/Classes/Backend/TtContent.php b/Classes/Backend/TtContent.php index 1f69d34..482a655 100644 --- a/Classes/Backend/TtContent.php +++ b/Classes/Backend/TtContent.php @@ -26,6 +26,7 @@ use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; use TYPO3\CMS\Core\Utility\ArrayUtility; +use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -293,7 +294,8 @@ public function deleteDisallowedContainers(array &$params, $itemUidList = '') public function layoutItemsProcFunc(array &$params) { $this->init($params['row']['pid']); - $layoutSelectItems = $this->layoutSetup->getLayoutSelectItems($params['row']['colPos'][0] ?: $params['row']['colPos'], $params['row']['tx_gridelements_columns'], $params['row']['tx_gridelements_container']); + $layoutSelectItems = $this->layoutSetup->getLayoutSelectItems(isset($params['row']['colPos'][0]) ? $params['row']['colPos'][0] : $params['row']['colPos'], + $params['row']['tx_gridelements_columns'], $params['row']['tx_gridelements_container'], $params['row']['pid']); $params['items'] = ArrayUtility::keepItemsInArray($layoutSelectItems, $params['items'], true); } diff --git a/Classes/Helper/Helper.php b/Classes/Helper/Helper.php index a547ef7..9891580 100644 --- a/Classes/Helper/Helper.php +++ b/Classes/Helper/Helper.php @@ -20,6 +20,7 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ +use TYPO3\CMS\Backend\View\BackendLayoutView; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\SingletonInterface; @@ -210,6 +211,69 @@ public function getSpecificIds(array $record) return $specificIds; } + /** + * @param $pageId + * @return mixed + */ + public function getSelectedBackendLayout($pageId) { + if (empty($GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId])) { + $backendLayoutData = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getSelectedBackendLayout', + $pageId, $this); + // add allowed CTypes to the columns, since this is not done by the native core methods + if (!empty($backendLayoutData['__items'])) { + $backendLayoutData['columns']['CSV'] = '-2,-1'; + if (!empty($backendLayoutData['__config']['backend_layout.']['rows.'])) { + $allowed = []; + $disallowed = []; + $maxItems = []; + foreach ($backendLayoutData['__config']['backend_layout.']['rows.'] as $row) { + if (!empty($row['columns.'])) { + foreach ($row['columns.'] as $column) { + if (!isset($column['colPos'])) { + continue; + } + $colPos = (int)$column['colPos']; + if (isset($column['allowed.'])) { + $column['allowed'] = $column['allowed.']; + } + if (isset($column['disallowed.'])) { + $column['disallowed'] = $column['disallowed.']; + } + if (!is_array($column['allowed']) && !empty($column['allowed'])) { + $allowed[$colPos] = ['CType' => $column['allowed']]; + } else if (empty($column['allowed'])) { + $allowed[$colPos] = ['CType' => '*']; + } else { + $allowed[$colPos] = $column['allowed']; + } + if ($column['allowedGridTypes']) { + $allowed[$colPos]['tx_gridelements_backend_layout'] = $column['allowedGridTypes']; + } + if (!empty($column['disallowed'])) { + $disallowed[$colPos] = $column['disallowed']; + } + if (!empty($column['maxitems'])) { + $maxItems[$colPos] = $column['maxitems']; + } + $backendLayoutData['columns']['CSV'] .= ',' . $colPos; + } + } + } + $backendLayoutData['allowed'] = $allowed; + if (!empty($disallowed)) { + $backendLayoutData['disallowed'] = $disallowed; + } + if (!empty($maxItems)) { + $backendLayoutData['maxitems'] = $maxItems; + } + } + $backendLayoutData = $this->mergeAllowedDisallowedSettings($backendLayoutData); + }; + $GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId] = $backendLayoutData; + } + return $GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId]; + } + /** * Gets the current backend user. * From 3154e54f914a3869e4abb65979aaacf53b10648e Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 21 Mar 2018 13:35:17 +0100 Subject: [PATCH 22/61] [BUGFIX] use proper pid values to fetch available layout columns Change-Id: I6dadb91fcd0ba49233800b4c29b1e772322dc3f9 Resolves: #83963 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56404 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 88c5708a7a8194101feb68bae138aa0097724be9) Reviewed-on: https://review.typo3.org/56409 --- Classes/Backend/ItemsProcFuncs/CTypeList.php | 3 --- Classes/Backend/ItemsProcFuncs/ListTypeList.php | 3 --- Classes/Backend/LayoutSetup.php | 1 + Classes/Backend/TtContent.php | 4 ---- Classes/DataHandler/AbstractDataHandler.php | 6 +++--- Classes/DataHandler/AfterDatabaseOperations.php | 2 ++ Classes/Helper/Helper.php | 11 ++++------- Classes/Hooks/BackendUtilityGridelements.php | 3 --- Classes/Hooks/TtContentFlexForm.php | 3 --- Classes/Hooks/WizardItems.php | 3 --- Classes/Slots/ExtTablesInclusionPostProcessing.php | 2 +- 11 files changed, 11 insertions(+), 30 deletions(-) diff --git a/Classes/Backend/ItemsProcFuncs/CTypeList.php b/Classes/Backend/ItemsProcFuncs/CTypeList.php index ef1b61f..2b50a99 100644 --- a/Classes/Backend/ItemsProcFuncs/CTypeList.php +++ b/Classes/Backend/ItemsProcFuncs/CTypeList.php @@ -122,9 +122,6 @@ public function init($pageId = 0) { parent::init(); if (!$this->layoutSetup) { - if ($pageId < 0) { - $pageId = Helper::getInstance()->getPidFromNegativeUid($pageId); - } $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($pageId)); } } diff --git a/Classes/Backend/ItemsProcFuncs/ListTypeList.php b/Classes/Backend/ItemsProcFuncs/ListTypeList.php index f15ee4f..3ce6e54 100644 --- a/Classes/Backend/ItemsProcFuncs/ListTypeList.php +++ b/Classes/Backend/ItemsProcFuncs/ListTypeList.php @@ -122,9 +122,6 @@ public function init($pageId = 0) { parent::init(); if (!$this->layoutSetup) { - if ($pageId < 0) { - $pageId = Helper::getInstance()->getPidFromNegativeUid($pageId); - } $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($pageId)); } } diff --git a/Classes/Backend/LayoutSetup.php b/Classes/Backend/LayoutSetup.php index 274b24a..742ff76 100644 --- a/Classes/Backend/LayoutSetup.php +++ b/Classes/Backend/LayoutSetup.php @@ -29,6 +29,7 @@ use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; use TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser; use TYPO3\CMS\Core\Utility\ArrayUtility; +use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\CMS\Lang\LanguageService; diff --git a/Classes/Backend/TtContent.php b/Classes/Backend/TtContent.php index 482a655..77e30b2 100644 --- a/Classes/Backend/TtContent.php +++ b/Classes/Backend/TtContent.php @@ -20,7 +20,6 @@ * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ -use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\Query\QueryBuilder; @@ -81,9 +80,6 @@ public function columnsItemsProcFunc(array &$params) public function init($pageId) { if (!$this->layoutSetup instanceof LayoutSetup) { - if ($pageId < 0) { - $pageId = Helper::getInstance()->getPidFromNegativeUid($pageId); - } $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($pageId)); } } diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index f3db7b6..4469666 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -74,12 +74,12 @@ abstract class AbstractDataHandler public function init($table, $uidPid, DataHandler $dataHandler) { $this->setTable($table); + if ($table === 'tt_content') { + $uidPid = Helper::getInstance()->getPidFromUid($uidPid); + } $this->setPageUid($uidPid); $this->setTceMain($dataHandler); if (!$this->layoutSetup instanceof LayoutSetup) { - if ($uidPid < 0) { - $uidPid = Helper::getInstance()->getPidFromNegativeUid($uidPid); - } $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($uidPid)); } } diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index 1297a77..ea00ca4 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -25,6 +25,7 @@ use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\DataHandling\DataHandler; +use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -126,6 +127,7 @@ public function setUnusedElements(array &$fieldArray) ) ->set('colPos', -2) ->set('backupColPos', -1) + ->set('subheader', serialize($this->layoutSetup)) ->execute(); array_flip($childElementsInUnavailableColumns); } diff --git a/Classes/Helper/Helper.php b/Classes/Helper/Helper.php index 9891580..1a58108 100644 --- a/Classes/Helper/Helper.php +++ b/Classes/Helper/Helper.php @@ -168,21 +168,18 @@ public function getConnection() } /** - * converts a negative tt_content uid into a positive pid + * converts tt_content uid into a pid * - * @param int $negativeUid the negative uid value of a tt_content record + * @param int $uid the uid value of a tt_content record * * @return int */ - public function getPidFromNegativeUid($negativeUid = 0) + public function getPidFromUid($uid = 0) { - if ($negativeUid >= 0) { - return $negativeUid; - } $triggerElement = self::getConnection()->select( ['pid'], 'tt_content', - ['uid' => abs($negativeUid)] + ['uid' => abs($uid)] )->fetch(); $pid = (int)$triggerElement['pid']; return is_array($triggerElement) && $pid ? $pid : 0; diff --git a/Classes/Hooks/BackendUtilityGridelements.php b/Classes/Hooks/BackendUtilityGridelements.php index f071e97..ee9d138 100644 --- a/Classes/Hooks/BackendUtilityGridelements.php +++ b/Classes/Hooks/BackendUtilityGridelements.php @@ -67,9 +67,6 @@ public function getFlexFormDS_postProcessDS(&$dataStructureArray, array $conf, a public function init($pageUid) { if (!$this->layoutSetup instanceof LayoutSetup) { - if ($pageUid < 0) { - $pageUid = Helper::getInstance()->getPidFromNegativeUid($pageUid); - } $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($pageUid)); } } diff --git a/Classes/Hooks/TtContentFlexForm.php b/Classes/Hooks/TtContentFlexForm.php index a654611..b67c581 100644 --- a/Classes/Hooks/TtContentFlexForm.php +++ b/Classes/Hooks/TtContentFlexForm.php @@ -50,9 +50,6 @@ public function getDataStructureIdentifierPreProcess(array $tca, $tableName, $fi if ($tableName === 'tt_content' && $fieldName === 'pi_flexform' && $row['CType'] === 'gridelements_pi1') { if (!empty($row['tx_gridelements_backend_layout'])) { $pageUid = $row['pid']; - if ($pageUid < 0) { - $pageUid = Helper::getInstance()->getPidFromNegativeUid($pageUid); - } $layoutId = $row['tx_gridelements_backend_layout']; $layoutSetupInstance = GeneralUtility::makeInstance(LayoutSetup::class)->init($pageUid); $layoutSetup = $layoutSetupInstance->getLayoutSetup($layoutId); diff --git a/Classes/Hooks/WizardItems.php b/Classes/Hooks/WizardItems.php index f6c6b1b..9629021 100644 --- a/Classes/Hooks/WizardItems.php +++ b/Classes/Hooks/WizardItems.php @@ -130,9 +130,6 @@ public function manipulateWizardItems(&$wizardItems, &$parentObject) public function init($pageUid) { if (!$this->layoutSetup instanceof LayoutSetup) { - if ($pageUid < 0) { - $pageUid = Helper::getInstance()->getPidFromNegativeUid($pageUid); - } $this->layoutSetup = GeneralUtility::makeInstance(LayoutSetup::class)->init($pageUid); } } diff --git a/Classes/Slots/ExtTablesInclusionPostProcessing.php b/Classes/Slots/ExtTablesInclusionPostProcessing.php index 09e0af4..614d8b2 100644 --- a/Classes/Slots/ExtTablesInclusionPostProcessing.php +++ b/Classes/Slots/ExtTablesInclusionPostProcessing.php @@ -35,7 +35,7 @@ class ExtTablesInclusionPostProcessing * * @param array $tca * - * @return void + * @return array */ public function processData($tca) { From cee9e1de02a3e3a0bc657200b18499691c87bd07 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 21 Mar 2018 15:05:46 +0100 Subject: [PATCH 23/61] [TASK] Raise version number Change-Id: I2b55dc17e11e7714d6a9e8a3c77b89ce539cbf43 Reviewed-on: https://review.typo3.org/56411 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- composer.json | 2 +- ext_emconf.php | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index 32dce70..00ecf4b 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "gridelementsteam/gridelements", "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", - "version": "8.0.0", + "version": "8.1.0", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", "license": "GPL-2.0-or-later", diff --git a/ext_emconf.php b/ext_emconf.php index 66fe207..e1c11d2 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,10 +13,10 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.0.0', + 'version' => '8.1.0', 'priority' => 'bottom', 'module' => '', - 'state' => 'beta', + 'state' => 'stable', 'uploadfolder' => true, 'createDirs' => '', 'modify_tables' => 'tt_content', From 7d9799398e755088ecb21cb4817acc8a2549780f Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 22 Mar 2018 17:16:40 +0100 Subject: [PATCH 24/61] [BUGFIX] Fix German translation of wizard fields used for restrictions Change-Id: I03ea32582a3829766b0611835d8f57795506f09c Reviewed-on: https://review.typo3.org/56434 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Resources/Private/Language/de.locallang_wizard.xlf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Resources/Private/Language/de.locallang_wizard.xlf b/Resources/Private/Language/de.locallang_wizard.xlf index 0527d0e..38be552 100644 --- a/Resources/Private/Language/de.locallang_wizard.xlf +++ b/Resources/Private/Language/de.locallang_wizard.xlf @@ -41,7 +41,7 @@ Restricted CE - Zulässige CE + Unzulässige CE Select the content element types that may NOT be created or moved here. @@ -49,7 +49,7 @@ Restricted Grids - Zulässige Raster-Elemente + Unzulässige Raster-Elemente Select the Gridelements types that may NOT be created or moved here. @@ -57,7 +57,7 @@ Restricted Plugins - Zulässige Plugins + Unzulässige Plugins Select the plugin types that may NOT be created or moved here. From dc3786c94a91247bc23d6afa9d74be9e3d89da6c Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 28 Mar 2018 10:58:23 +0200 Subject: [PATCH 25/61] [BUGFIX] Replace Connection::select with custom queryBuilder Change-Id: Id814cce651de108e941db0e7fbbaa1dadbcef9a8 Resolves: #84547 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56467 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AbstractDataHandler.php | 19 ++++++++++++------- .../DataHandler/AfterDatabaseOperations.php | 19 ++++++++++--------- Classes/DataHandler/ProcessCmdmap.php | 16 +++++++++++----- 3 files changed, 33 insertions(+), 21 deletions(-) diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index 4469666..7458ab0 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -25,9 +25,10 @@ use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\Query\QueryBuilder; -use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; +use TYPO3\CMS\Core\Database\Query\Restriction\EndTimeRestriction; +use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; +use TYPO3\CMS\Core\Database\Query\Restriction\StartTimeRestriction; use TYPO3\CMS\Core\DataHandling\DataHandler; -use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -213,15 +214,19 @@ public function checkAndUpdateTranslatedElements($uid) /** * getter for queryBuilder * - * @return QueryBuilder queryBuilder + * @param string $table + * @return QueryBuilder $queryBuilder */ - public function getQueryBuilder() + public function getQueryBuilder($table = 'tt_content') { + /**@var $queryBuilder QueryBuilder*/ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable('tt_content'); + ->getQueryBuilderForTable($table); $queryBuilder->getRestrictions() - ->removeAll() - ->add(GeneralUtility::makeInstance(DeletedRestriction::class)); + ->removeByType(HiddenRestriction::class) + ->removeByType(StartTimeRestriction::class) + ->removeByType(EndTimeRestriction::class); + return $queryBuilder; } diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index ea00ca4..f1b991b 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -23,9 +23,7 @@ use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\View\BackendLayoutView; use TYPO3\CMS\Core\Database\Connection; -use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\DataHandling\DataHandler; -use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -397,13 +395,16 @@ public function getAvailableColumns($layout = '', $table = '', $id = 0) */ public function getSubPagesRecursively($pageUid, array &$subPages) { - $childPages = GeneralUtility::makeInstance(ConnectionPool::class) - ->getConnectionForTable('pages') - ->select( - ['uid', 'backend_layout', 'backend_layout_next_level'], - 'pages', - ['pid' => (int)$pageUid] - )->fetchAll(); + $queryBuilder = $this->getQueryBuilder('pages'); + $childPages = $queryBuilder + ->select('uid', 'backend_layout', 'backend_layout_next_level') + ->from('pages') + ->where( + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pageUid, \PDO::PARAM_INT)) + ) + ->execute() + ->fetchAll(); if (!empty($childPages)) { foreach ($childPages as $page) { diff --git a/Classes/DataHandler/ProcessCmdmap.php b/Classes/DataHandler/ProcessCmdmap.php index 1282f6e..8acb05f 100644 --- a/Classes/DataHandler/ProcessCmdmap.php +++ b/Classes/DataHandler/ProcessCmdmap.php @@ -92,11 +92,17 @@ public function execute_processCmdmap( if ($command === 'delete' && $table === 'tt_content') { $containerUpdateArray = []; - $originalContainer = $this->getConnection()->select( - ['tx_gridelements_container', 'sys_language_uid'], - 'tt_content', - ['uid' => (int)$id] - )->fetch(); + $queryBuilder = $this->getQueryBuilder(); + $originalContainer = $queryBuilder + ->select('tx_gridelements_container', 'sys_language_uid') + ->from('tt_content') + ->where( + $queryBuilder->expr()->eq('uid', + $queryBuilder->createNamedParameter((int)$id, \PDO::PARAM_INT)) + ) + ->execute() + ->fetch(); + if (!empty($originalContainer)) { $containerUpdateArray[$originalContainer['tx_gridelements_container']] = -1; $this->doGridContainerUpdate($containerUpdateArray); From dc64d3bbad3f5434363ea8fb6207e383004146e7 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 26 Mar 2018 21:11:58 +0200 Subject: [PATCH 26/61] [BUGFIX] convert negative uid values to pid before fetching BE layouts Change-Id: I6f99318c90072f5857a1223ee7e12a243b0f3dc9 Resolves: #84526 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56451 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Backend/LayoutSetup.php | 21 +++++++++- Classes/Backend/TtContent.php | 3 +- Classes/Helper/Helper.php | 73 ++++++++++++++++++++------------- 3 files changed, 66 insertions(+), 31 deletions(-) diff --git a/Classes/Backend/LayoutSetup.php b/Classes/Backend/LayoutSetup.php index 742ff76..e6efd2e 100644 --- a/Classes/Backend/LayoutSetup.php +++ b/Classes/Backend/LayoutSetup.php @@ -29,7 +29,6 @@ use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; use TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser; use TYPO3\CMS\Core\Utility\ArrayUtility; -use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\StringUtility; use TYPO3\CMS\Lang\LanguageService; @@ -69,6 +68,11 @@ class LayoutSetup */ protected $flexformConfigurationPathAndFileName = 'EXT:gridelements/Configuration/FlexForms/default_flexform_configuration.xml'; + /** + * @var int + */ + protected $realPid; + /** * Load page TSconfig * @@ -81,6 +85,10 @@ public function init($pageId, array $typoScriptSetup = []) { $this->setLanguageService($GLOBALS['LANG']); $pageId = (strpos($pageId, 'NEW') === 0) ? 0 : (int)$pageId; + if ((int)$pageId < 0) { + $pageId = Helper::getInstance()->getPidFromUid($pageId); + } + $this->realPid = $pageId; $this->loadLayoutSetup($pageId); foreach ($this->layoutSetup as $key => $setup) { $columns = $this->getLayoutColumns($key); @@ -666,4 +674,15 @@ public function getBackendUser() return $GLOBALS['BE_USER']; } + + /** + * Gets the current real pid. + * + * @return int + */ + public function getRealPid() + { + return $this->realPid; + } + } diff --git a/Classes/Backend/TtContent.php b/Classes/Backend/TtContent.php index 77e30b2..974e4bb 100644 --- a/Classes/Backend/TtContent.php +++ b/Classes/Backend/TtContent.php @@ -25,7 +25,6 @@ use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Database\Query\Restriction\DeletedRestriction; use TYPO3\CMS\Core\Utility\ArrayUtility; -use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -291,7 +290,7 @@ public function layoutItemsProcFunc(array &$params) { $this->init($params['row']['pid']); $layoutSelectItems = $this->layoutSetup->getLayoutSelectItems(isset($params['row']['colPos'][0]) ? $params['row']['colPos'][0] : $params['row']['colPos'], - $params['row']['tx_gridelements_columns'], $params['row']['tx_gridelements_container'], $params['row']['pid']); + $params['row']['tx_gridelements_columns'], $params['row']['tx_gridelements_container'], $this->layoutSetup->getRealPid()); $params['items'] = ArrayUtility::keepItemsInArray($layoutSelectItems, $params['items'], true); } diff --git a/Classes/Helper/Helper.php b/Classes/Helper/Helper.php index 1a58108..bfa3ece 100644 --- a/Classes/Helper/Helper.php +++ b/Classes/Helper/Helper.php @@ -23,6 +23,10 @@ use TYPO3\CMS\Backend\View\BackendLayoutView; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Database\Query\QueryBuilder; +use TYPO3\CMS\Core\Database\Query\Restriction\EndTimeRestriction; +use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; +use TYPO3\CMS\Core\Database\Query\Restriction\StartTimeRestriction; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -45,7 +49,7 @@ class Helper implements SingletonInterface /** * @var Connection */ - protected static $connection; + private $connection; /** * Get instance from the class. @@ -77,14 +81,20 @@ public function getChildren($table = '', $uid = 0, $pid = 0, $sortingField = '', if (trim($table) === 'tt_content' && $uid > 0) { $selectFieldList .= ',sorting,tx_gridelements_columns'; $selectFieldArray = GeneralUtility::trimExplode(',', $selectFieldList); - $children = self::getConnection()->select( - $selectFieldArray, - 'tt_content', - [ - 'tx_gridelements_container' => (int)$uid, - 'pid' => (int)$pid, - ] - )->fetchAll(); + $queryBuilder = self::getQueryBuilder(); + $children = $queryBuilder + ->select(...$selectFieldArray) + ->from('tt_content') + ->where( + $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$uid, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)) + ) + ) + ->execute() + ->fetchAll(); foreach ($children as $child) { if (trim($sortingField) && isset($child[$sortingField]) && $sortingField !== 'sorting') { @@ -153,20 +163,6 @@ public function mergeAllowedDisallowedSettings($backendLayout, $csvValues = fals return $backendLayout; } - /** - * setter for Connection object - * - * @return Connection - */ - public function getConnection() - { - if (!$this->connection instanceof Connection) { - $this->connection = GeneralUtility::makeInstance(ConnectionPool::class) - ->getConnectionForTable('tt_content'); - } - return $this->connection; - } - /** * converts tt_content uid into a pid * @@ -176,15 +172,36 @@ public function getConnection() */ public function getPidFromUid($uid = 0) { - $triggerElement = self::getConnection()->select( - ['pid'], - 'tt_content', - ['uid' => abs($uid)] - )->fetch(); + $queryBuilder = self::getQueryBuilder(); + $triggerElement = $queryBuilder + ->select('pid') + ->from('tt_content') + ->where( + $queryBuilder->createNamedParameter(abs($uid), \PDO::PARAM_INT) + ) + ->execute() + ->fetch(); $pid = (int)$triggerElement['pid']; return is_array($triggerElement) && $pid ? $pid : 0; } + /** + * getter for queryBuilder + * + * @return QueryBuilder queryBuilder + */ + public function getQueryBuilder() + { + /** @var $queryBuilder QueryBuilder */ + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable('tt_content'); + $queryBuilder->getRestrictions() + ->removeByType(HiddenRestriction::class) + ->removeByType(StartTimeRestriction::class) + ->removeByType(EndTimeRestriction::class); + return $queryBuilder; + } + /** * Gets the uid of a record depending on the current context. * If in workspace mode, the overlay uid is used (if available), From 2ed799e29bbbde493e272640357fc1c0f4b40cb7 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 28 Mar 2018 19:30:50 +0200 Subject: [PATCH 27/61] Squashed commit of the following: commit 4e1ee228b911901f2acb82e39912c4a7bd207bea Author: Cybercraft Date: Mon Mar 26 21:11:58 2018 +0200 [BUGFIX] convert negative uid values to pid before fetching BE layouts Change-Id: I6f99318c90072f5857a1223ee7e12a243b0f3dc9 Resolves: #84526 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56450 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 2b78856faf033df591fa367501a1e1466dea158d Author: Cybercraft Date: Wed Mar 28 10:58:23 2018 +0200 [BUGFIX] Replace Connection::select with custom queryBuilder Change-Id: Id814cce651de108e941db0e7fbbaa1dadbcef9a8 Resolves: #84547 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56466 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 88825527a6db61b8ba6e2f50fe6f09f1ef35caa4 Author: Cybercraft Date: Thu Mar 22 17:16:40 2018 +0100 [BUGFIX] Fix German translation of wizard fields used for restrictions Change-Id: I03ea32582a3829766b0611835d8f57795506f09c Reviewed-on: https://review.typo3.org/56433 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit fc93d82c38bde1a7ac2672267b931ea5f9100e2b Author: Cybercraft Date: Wed Mar 21 15:32:33 2018 +0100 [TASK] Revert image path to be relative to the repository root Change-Id: I0019065038be80e918024c91aba421c7949a1f51 commit 4fce1c7a5473650ac40f2556b57b3024fd0bd21a Author: Cybercraft Date: Wed Mar 21 15:26:48 2018 +0100 [TASK] Adjust image paths for packagist Change-Id: I25fd053dbc9f5ea450b84d4eba533ce92fee0dfe commit 0c4f45163d168c92300fd91f93d39696880717f1 Author: Cybercraft Date: Wed Mar 21 15:22:10 2018 +0100 [TASK] Adjust image paths to match packagist security policies Change-Id: Ic66b9fb34b682b6c89b9c655fab2649df08ccaf4 commit c3034c8fea830de2e44b1990ec7d72abf15b9d6f Author: Cybercraft Date: Wed Mar 21 15:01:49 2018 +0100 [TASK] Update version numbers and adjust image paths in readme.md Change-Id: I746db0a2dba31b7c4c9f4b8e43b701f16a190aef Reviewed-on: https://review.typo3.org/56410 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 654a6c8dca0adcbeab6103bd5905bc0521da9d86 Author: Cybercraft Date: Wed Mar 21 09:54:13 2018 +0100 [BUGFIX] Consider allowed settings for first level CE backend layouts Change-Id: I65cb13906c6dcf96d0bcd3eb91c8ad3d27d64e88 Resolves: #84504 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56387 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 88c5708a7a8194101feb68bae138aa0097724be9 Author: Cybercraft Date: Wed Mar 21 13:35:17 2018 +0100 [BUGFIX] use proper pid values to fetch available layout columns Change-Id: I6dadb91fcd0ba49233800b4c29b1e772322dc3f9 Resolves: #83963 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56404 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit a427e859e1857aeee0188d0ab4e9ce8309aa6abe Author: Cybercraft Date: Wed Mar 21 11:58:33 2018 +0100 [BUGFIX] Set proper CSS styles for neutral frame headers Change-Id: I45a23f5968a534c53e8720b1100b7f1457c8159f Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56397 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit d3b0cb118b535fb6bc01de88d403186c7a61e1ae Author: Cybercraft Date: Mon Mar 19 21:41:32 2018 +0100 [BUGFIX] Fix shortcut rendering for shortcuts to page(s) Change-Id: I531c9292b876beb1c0de15fff1c36446b9c91474 Resolves: #84489 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56372 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 5fb41c9014d48c3a19777fdea9129b883e765928 Author: Cybercraft Date: Tue Mar 20 17:11:18 2018 +0100 [BUGFIX] Use label for unassigned columns and have empty colPos stored Change-Id: Ia2e277bc19cde50d4ee8cef91cfd4ec9b37e6bd3 Resolves: #84049 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56382 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 7aad0eba9c96a4c0a0b2c329f61b0bb796d0691f Author: Cybercraft Date: Fri Mar 16 17:08:56 2018 +0100 [BUGFIX] Use label for unassigned columns and have empty colPos stored Change-Id: I534799ef4b581a1caddd28355836c95bab5ceba8 Resolves: #84049 Release: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56238 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 76363686496e6d9d2df5ead2f86a284169c3e43b Author: Cybercraft Date: Fri Mar 16 13:27:36 2018 +0100 [FEATURE] Restrict referenced content to column language if configured Change-Id: I62637e9abbb2dc768f1e5eb166238730da833f3e Resolves: #84246 Release: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56218 Reviewed-by: Eric Chavaillaz Tested-by: Eric Chavaillaz Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 0997dc99eaa20fb30bf92d488c977ffbf52ec07b Author: Jo Hasenau Date: Mon Feb 19 17:53:52 2018 +0100 Revert "[BUGFIX] Always use specific uid and pid when in workspace mode" This reverts commit 6b65c3c8184a3c02a760b2275264793b3e482cf6. Change-Id: I566978e7e3863e6d69919a716687a077c8768d66 Reviewed-on: https://review.typo3.org/55800 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 085ead4605661b0f321a40406110a88e09c11f8a Author: Jo Hasenau Date: Thu Mar 1 11:31:10 2018 +0100 Revert "Revert "[BUGFIX] Leave overridePageIdList untouched to avoid problems w shortcuts"" This reverts commit 03e47bee5bda099b516e210c3b5b6a6be0d8b69a. Change-Id: I6685ebe6242a9afc1f065143e85357471e540f0c Reviewed-on: https://review.typo3.org/55964 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 03e47bee5bda099b516e210c3b5b6a6be0d8b69a Author: Jo Hasenau Date: Mon Feb 19 17:52:56 2018 +0100 Revert "[BUGFIX] Leave overridePageIdList untouched to avoid problems w shortcuts" This reverts commit b512a6e2b806cfe9543e58535d0470348fe1c0d0. Change-Id: Ie8fb1a136fc8aae2ed1eb3e0865cabdcf19c5ff4 Reviewed-on: https://review.typo3.org/55799 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 6b65c3c8184a3c02a760b2275264793b3e482cf6 Author: Cybercraft Date: Thu Feb 1 18:35:47 2018 +0100 [BUGFIX] Always use specific uid and pid when in workspace mode Change-Id: I09f2e489b343a4077f2dd6611ddbce9119034b55 Resolves: #82941 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/55527 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 5a150a647956e04881ef77a457a52d1806b729aa Author: Cybercraft Date: Fri Dec 22 10:26:45 2017 +0100 [TASK] Make sure that child elements of containers get correct colPos Resolves: #80838 Releases: master, 8-0 Change-Id: I5777e3eab02a8b3bafc9f65b6e6bb942a82ee083 Reviewed-on: https://review.typo3.org/55193 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 24fcf72dacc9e66a48dc7273bfe2c62554268aa1 Author: Cybercraft Date: Thu Feb 1 18:22:00 2018 +0100 [BUGFIX] Check for NULL before accessing class to avoid errors w PHP 7.2 Change-Id: I06704d0728bc967132f2a73a83077d78d0f9a7cb Resolves: #83587 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/55526 Reviewed-by: Benni Mack Tested-by: Benni Mack Reviewed-by: Susanne Moog Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit b512a6e2b806cfe9543e58535d0470348fe1c0d0 Author: Cybercraft Date: Thu Feb 1 18:15:25 2018 +0100 [BUGFIX] Leave overridePageIdList untouched to avoid problems w shortcuts Change-Id: Idfabc50aaed0fc59cd110a46c60237200844e5f7 Resolves: #83600 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/55525 Reviewed-by: Eric Chavaillaz Tested-by: Eric Chavaillaz Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 5cd4a69cad049d9144f9351e9237f5197e5b9261 Author: Cybercraft Date: Thu Feb 1 17:36:14 2018 +0100 [BUGFIX] Use select field array instead of CSV and fetch result Resolves: #83717 Releases: master, 8-0 Change-Id: I10a798d366dceec2aa4979e1350816c854dc91a8 Reviewed-on: https://review.typo3.org/55523 Reviewed-by: Sven Juergens Tested-by: Sven Juergens Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 8b201f68931c4d4873716ec2c8790b514f18fb52 Author: Cybercraft Date: Mon Jan 29 18:52:58 2018 +0100 [TASK] replace deprecated SPDX license identifier for packagist Change-Id: I3b03db74249fc04ccdffb9869b19da51e9647265 Reviewed-on: https://review.typo3.org/55495 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit f1bee0f9a3885ab18912d97739581a34eea7e664 Author: Cybercraft Date: Mon Jan 15 19:52:14 2018 +0100 [TASK] Try to make packagist render the first headline too Change-Id: I2f6852a9a76d20485e309a44c9c7f87ac8df6bee commit 2c65ab711ef9c79bfd65f58870f2c1cd8f2f940b Author: Cybercraft Date: Mon Jan 15 19:50:15 2018 +0100 [BUGFIX] Fix typos in README.md Change-Id: Ia43708ce4769ab9e8219afd08ec822221b733c7f commit a93e7ec491bb0a34190abf262cb9fd0caaf4eb25 Author: Cybercraft Date: Mon Jan 15 19:37:44 2018 +0100 [TASK] Adjust the sponsoring section of the manual Change-Id: Icc2e63b723e11190a182ee081799c0a0da691f75 commit a5d696cfa46dfeed9d67d0227a16494dd6f64ae8 Author: Cybercraft Date: Mon Jan 15 19:33:11 2018 +0100 [TASK] Another try to make images render on packagist Change-Id: I5ed20247592e3f45fc0de6e66f00704880e5ee11 commit 5f2674c62db6da07895cd5f5b911e9dea6df66e9 Author: Cybercraft Date: Mon Jan 15 19:25:12 2018 +0100 [TASK] Add absolute image URLs to make README render on gitlab Change-Id: If8e4207c12af16fb143ccdf08d44fae21dd259aa commit 10ccb873b6c14ef71998de0abe502db39a7e630f Author: Cybercraft Date: Mon Jan 15 19:17:37 2018 +0100 Squashed commit of the following: commit 3aa9d6039490ca24606095642f122ec8fd7c40ba Merge: 3f79a79 4d8201c Author: Cybercraft Date: Mon Jan 15 19:12:53 2018 +0100 Merge remote-tracking branch 'origin' commit 3f79a7915ac66c947fbf734feb18bc568a68e07a Author: Cybercraft Date: Mon Jan 15 19:12:13 2018 +0100 [TASK] Add the Sponsoring chapter to the documentation Change-Id: I0200e9e1f56a5afe33808de5dda54ba4fd404c6a commit fe0d89897e5e0839ae90ced529bf03a5740e1687 Author: Cybercraft Date: Mon Jan 15 18:59:39 2018 +0100 [TASK] use the same images for readme and manual Change-Id: I09998b491b71ae0a17ebd250597cf01f4b88d740 commit ae5d3cd3cafeacf65ce985010e0082a584556d84 Author: Cybercraft Date: Mon Jan 15 18:56:13 2018 +0100 [TASK] Add sponsoring section to the manual Change-Id: I2afbf62db734293e71bd5eb31cdefe9f3d31120d commit 323e33f0613bed67a5f76a262534745785085668 Author: Jo Hasenau Date: Mon Jan 15 17:34:39 2018 +0000 Update README.md commit 737dd277397ebdc8d0a06995147662394d7585e6 Author: Jo Hasenau Date: Mon Jan 15 17:10:21 2018 +0000 Update README.md commit 7154d6830629a2918db86c47df97e2792114a0c2 Author: Jo Hasenau Date: Mon Jan 15 17:08:57 2018 +0000 Update README.md commit f7576e97651e2f2725f61e0380f2107a7fdcc088 Author: Jo Hasenau Date: Mon Jan 15 17:07:57 2018 +0000 Update README.md commit 9db2bb0d9cef84893f08ed3d95fcb53adbe8587f Author: Jo Hasenau Date: Mon Jan 15 17:07:04 2018 +0000 Update README.md commit 41f5729f0e971d3227187d1057e705a9f8a9d075 Author: Jo Hasenau Date: Mon Jan 15 17:03:54 2018 +0000 Update README.md commit 9f717ba1f829be8882334719f05118ae1fef00b6 Author: Jo Hasenau Date: Mon Jan 15 16:47:11 2018 +0000 Update README.md commit b2baa34d5c7123cefb0211d920bf2ef2d32af139 Author: Jo Hasenau Date: Mon Jan 15 16:43:14 2018 +0000 Update README.md commit c6032c4e1a36339ab8abbe3419372f25674a5ad9 Author: Jo Hasenau Date: Mon Jan 15 16:41:44 2018 +0000 Update README.md commit ab3025b366890075f3372320e4bf823ae7f49440 Author: Jo Hasenau Date: Mon Jan 15 16:38:35 2018 +0000 Update README.md commit 016822894b631cf326ddca7b6a6c4193e48df8f2 Author: Jo Hasenau Date: Mon Jan 15 16:34:25 2018 +0000 Update README.md commit 764afbfbda226319d1ca8f43840e73117470622b Author: Jo Hasenau Date: Mon Jan 15 16:33:41 2018 +0000 Update README.md commit 9876562dee7ca57275fd61091007c11f679beaac Author: Jo Hasenau Date: Mon Jan 15 16:32:25 2018 +0000 Update README.md commit 4613e3fa87e9baf84714636a2fc4f8a50d59d731 Author: Jo Hasenau Date: Mon Jan 15 16:25:31 2018 +0000 Add LICENSE commit c2cbb9a40d81f61a174a50190b3da9a3cce49f1a Author: Colin Hasenau Date: Mon Jan 15 15:48:44 2018 +0000 Update README.md commit d06a9fe6de985c0c94d73f1006352a0167bd456f Author: Colin Hasenau Date: Mon Jan 15 15:47:26 2018 +0000 Update README.md commit a8382cc3f8a02a99e476d153876fb5639a9d45de Author: Colin Hasenau Date: Mon Jan 15 15:45:17 2018 +0000 Update README.md commit 5492b08ee451d4efa11c83b9191808a5b3bab020 Author: Colin Hasenau Date: Mon Jan 15 15:40:08 2018 +0000 Update README.md commit a48348d71e3afca44d76f25e8f6fed01225c53c1 Author: Colin Hasenau Date: Mon Jan 15 15:35:53 2018 +0000 Update README.md commit 6fef4de796325705ad091d61552d85b3721a447a Author: Colin Hasenau Date: Mon Jan 15 15:32:54 2018 +0000 Update README.md commit ad95a5292dc61b1b0f061b7f5c646603c61f4646 Author: Colin Hasenau Date: Mon Jan 15 15:32:30 2018 +0000 Update README.md commit 4d48f87fc373d540603049f69d69a4d78fd5f63e Author: Colin Hasenau Date: Mon Jan 15 15:31:55 2018 +0000 Update README.md commit 39e17941d96900742baf1844e4e00b9eb151a6fd Author: Colin Hasenau Date: Mon Jan 15 15:31:10 2018 +0000 Update README.md commit 035b2fb6f5baea5ea511ccaddad186b5ad5ecca0 Author: Colin Hasenau Date: Mon Jan 15 15:30:44 2018 +0000 Upload New File commit 8cc39af5aff427cffb865718b569cee8a9abae3e Author: Colin Hasenau Date: Mon Jan 15 15:30:35 2018 +0000 Upload New File commit 7bd3fa04623d53eb415547ccbcd05399f671ce6d Author: Colin Hasenau Date: Mon Jan 15 15:30:23 2018 +0000 Upload New File commit b8538d3c5675b7c803b9ca10f401896d52070876 Author: Colin Hasenau Date: Mon Jan 15 15:30:14 2018 +0000 Upload New File commit 8505971ebb3c319bf7faa67ce58ff350e781df54 Author: Colin Hasenau Date: Mon Jan 15 15:30:02 2018 +0000 Upload New File commit 474634c6fd8d6a1e71987752f945b1d064bfb5c8 Author: Colin Hasenau Date: Mon Jan 15 15:29:44 2018 +0000 Upload New File commit 20add17a00cbeea2644234cc80f3429e56ac0583 Author: Colin Hasenau Date: Mon Jan 15 15:22:15 2018 +0000 Add new directory commit a91abdcd047dd905a040d78dff44c2b77a754a72 Author: Colin Hasenau Date: Mon Jan 15 15:21:28 2018 +0000 Update README.md commit 425fe4ef5e97b259c678c11dfda8672f4de5d02b Author: Colin Hasenau Date: Mon Jan 15 15:20:45 2018 +0000 Update README.md commit ea20a50ea9b1c39204c848e673d810c58575d710 Author: Colin Hasenau Date: Mon Jan 15 15:19:15 2018 +0000 Update README.md commit e63f2616d2c794152960429417c461bd3ee639a2 Author: Colin Hasenau Date: Mon Jan 15 15:13:19 2018 +0000 Update README.md commit 6170f6c07358f7f7ab93123a32c2f7d8e0ae41d6 Author: Colin Hasenau Date: Mon Jan 15 15:12:39 2018 +0000 Update README.md commit b77d7a144c15685da87a5e52d2a5e131c131d253 Author: Colin Hasenau Date: Mon Jan 15 15:04:48 2018 +0000 Update README.md commit 56f1514b6d61e9c122db8ae81afeae3442499347 Author: Colin Hasenau Date: Mon Jan 15 15:03:36 2018 +0000 Update README.md commit 8435cf8ff9ee907e3510178b3be88ebc5caa2633 Author: Colin Hasenau Date: Mon Jan 15 15:01:09 2018 +0000 Update README.md commit d14b1967d45f447d0bcf66a9355f99381a2c4129 Author: Colin Hasenau Date: Mon Jan 15 15:00:19 2018 +0000 Update README.md commit e3cb03a6c72bc9d4301964ec863bdb3bc015a16d Author: Colin Hasenau Date: Mon Jan 15 14:59:40 2018 +0000 Update README.md commit 04736a2ea558845e3f9e3228023b6effa519ea5b Author: Colin Hasenau Date: Mon Jan 15 14:58:27 2018 +0000 Update README.md commit 1eb70d8cbe9f1291161c35962a210c07620c1859 Author: Colin Hasenau Date: Mon Jan 15 14:48:28 2018 +0000 Update README.md commit d55fef36be0f97d7261aa50c780f0ef1ecd29acf Author: Colin Hasenau Date: Mon Jan 15 14:48:11 2018 +0000 Update README.md Change-Id: I013da3455561bfc5259710284674ce7d20089e24 commit 4d8201cbf26cf62c81e92470139d792507f0c8da Author: Cybercraft Date: Wed Jan 10 14:38:51 2018 +0100 [BUGFIX] Remove superfluous addCssFile calls in favor of TBE_STYLES Resolves: #83515 Releases: master, 8-0, 7-0 Change-Id: Ib438c4c6e8b234585633a48e26d307bf6b1dedd0 Reviewed-on: https://review.typo3.org/55321 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit a8e0a1930e088b5701c622621426e7f2d7e4ec05 Author: Cybercraft Date: Wed Jan 10 21:05:35 2018 +0100 [BUGFIX] Switch horizontal grids from inline-block to table-cell Resolves: #83530 Releases: master, 8-0, 7-0 Change-Id: I32a771f426269e7f50124f836c8cb1c9fb3ebbeb Reviewed-on: https://review.typo3.org/55328 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 0a28d8d373942fbe7e0434ffc5cd08f96f335554 Author: Cybercraft Date: Tue Jan 9 12:12:20 2018 +0100 [BUGFIX] Remove trailing or leading comma from CSV list of columns Resolves: #83514 Releases: master, 8-0, 7-0 Change-Id: If154c64f884376f356238909f671caf27204aff4 Reviewed-on: https://review.typo3.org/55302 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 7a7abec68444b803e7900d4150f431a40c48777a Author: Cybercraft Date: Fri Jan 5 14:26:27 2018 +0100 [BUGFIX] move bracket to fix issue with FIND IN SET Change-Id: I122519f197c95d78b9e9c47ff965fa11c5618d26 Reviewed-on: https://review.typo3.org/55279 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit cabe2d3c01859f4144a40aa199e7095f0ccaa6d6 Author: Cybercraft Date: Thu Dec 28 13:01:37 2017 +0100 [BUGFIX] Adjust translations to match columns and container of l18n_parent Resolves: #83411 Releases: master, 8-0, 7-0 Change-Id: I9c967aeb8ab5e5a389f088553b0168ebbd4b2354 Reviewed-on: https://review.typo3.org/55223 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 950a91a22c40022d52d3bd675c96c0745532c7d2 Author: Cybercraft Date: Thu Dec 28 12:26:11 2017 +0100 [TASK] Enable alphanumeric frame values for extension like t3ddy Resolves: #83441 Releases: master, 8-0 Change-Id: I37a786206b8370bf185bb0f653c1d84afe13fdc6 Reviewed-on: https://review.typo3.org/55222 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit e481928e219a992591bffdbea7f354827e38eed5 Author: Cybercraft Date: Thu Dec 28 12:12:37 2017 +0100 [BUGFIX] Always treat icons as an array, since there might be 2 icons First icon is the default, second will be used as large icon Resolves: #73198 Releases: master, 8-0 Change-Id: Ia5000af128c573ed98c7a63078fec4a8c04159c4 Reviewed-on: https://review.typo3.org/55221 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 4cee3a7085a8aa1af4756a058103a06b4af12124 Author: Cybercraft Date: Thu Dec 28 13:01:37 2017 +0100 [BUGFIX] Adjust translations to match columns and container of l18n_parent Resolves: #83411 Releases: master, 8-0, 7-0 Change-Id: I9c967aeb8ab5e5a389f088553b0168ebbd4b2354 commit a4bcb2cfe0e6152ffa24d774520a31fbdd01ee88 Author: Cybercraft Date: Thu Dec 28 12:09:13 2017 +0100 Revert "[BUGFIX] Always treat icons as an array, since there might be 2 icons" This reverts commit d31d13719d04b979a9d8844bfca7c703c19df63a. commit d31d13719d04b979a9d8844bfca7c703c19df63a Author: Cybercraft Date: Thu Dec 28 12:02:40 2017 +0100 [BUGFIX] Always treat icons as an array, since there might be 2 icons First icon is the default, second will be used as large icon Resolves: #73198 Releases: master, 8-0 Change-Id: I9d4d3e225d3a1f111efd75a245c9eda9ed77c129 commit 8c4463d8c0501243dbd35b33e4f883ddb3add501 Merge: f0cad22 46a7bc8 Author: Cybercraft Date: Sun Dec 24 12:13:20 2017 +0100 Merge branch 'master' of gitlab.com:cybercraft.jh/gridelements commit f0cad22b19be3b3da3e2a3153e0403212cb6a27b Author: Cybercraft Date: Sun Dec 24 12:08:23 2017 +0100 [TASK] Update documentation and version numbers Resolves: #82748 Releases: master, 8-0 Change-Id: Ie32090a45a99b53de3a8c04523ae5b41c1307406 Reviewed-on: https://review.typo3.org/55207 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 46a7bc8882a06b6bfa729854f3552a4d004dc06b Author: Cybercraft Date: Sun Dec 24 12:08:23 2017 +0100 [TASK] Update documentation and version numbers Resolves: #82748 Releases: master, 8-0 Change-Id: Ie32090a45a99b53de3a8c04523ae5b41c1307406 Change-Id: I47724d0e4f5c1f49dacccdf5c8fb556816a271e5 Reviewed-on: https://review.typo3.org/56471 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AbstractDataHandler.php | 11 + Documentation/Chapters/Sponsoring/Index.rst | 85 +++ .../Images/Sponsoring/AmazonLogo.png | Bin 0 -> 13708 bytes .../Images/Sponsoring/CodersCareLogo.png | Bin 0 -> 6912 bytes .../Images/Sponsoring/FlattrLogo.png | Bin 0 -> 3341 bytes .../Images/Sponsoring/PatreonLogo.png | Bin 0 -> 4861 bytes .../Images/Sponsoring/PaypalLogo.png | Bin 0 -> 4593 bytes Documentation/Images/Sponsoring/Why.jpg | Bin 0 -> 71346 bytes Documentation/Index.rst | 1 + LICENSE | 674 ++++++++++++++++++ README.md | 59 +- 11 files changed, 826 insertions(+), 4 deletions(-) create mode 100644 Documentation/Chapters/Sponsoring/Index.rst create mode 100644 Documentation/Images/Sponsoring/AmazonLogo.png create mode 100644 Documentation/Images/Sponsoring/CodersCareLogo.png create mode 100644 Documentation/Images/Sponsoring/FlattrLogo.png create mode 100644 Documentation/Images/Sponsoring/PatreonLogo.png create mode 100644 Documentation/Images/Sponsoring/PaypalLogo.png create mode 100644 Documentation/Images/Sponsoring/Why.jpg create mode 100644 LICENSE diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index 7458ab0..5215c49 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -128,6 +128,7 @@ public function checkAndUpdateTranslatedElements($uid) ->execute() ->fetch(); if (!empty($currentValues['l18n_parent'])) { + $originalUid = (int)$currentValues['uid']; $queryBuilder = $this->getQueryBuilder(); $currentValues = $queryBuilder ->select('uid', 'tx_gridelements_container', 'tx_gridelements_columns', 'sys_language_uid', 'colPos', @@ -140,6 +141,16 @@ public function checkAndUpdateTranslatedElements($uid) ->setMaxResults(1) ->execute() ->fetch(); + + $updateArray = $currentValues; + unset($updateArray['uid']); + unset($updateArray['sys_language_uid']); + unset($updateArray['l18n_parent']); + $this->getConnection()->update( + 'tt_content', + $updateArray, + ['uid' => (int)$originalUid] + ); } if (empty($currentValues['uid'])) { return; diff --git a/Documentation/Chapters/Sponsoring/Index.rst b/Documentation/Chapters/Sponsoring/Index.rst new file mode 100644 index 0000000..d2965f5 --- /dev/null +++ b/Documentation/Chapters/Sponsoring/Index.rst @@ -0,0 +1,85 @@ +.. ================================================== +.. FOR YOUR INFORMATION +.. -------------------------------------------------- +.. -*- coding: utf-8 -*- with BOM. + +.. ================================================== +.. DEFINE SOME TEXTROLES +.. -------------------------------------------------- +.. role:: underline +.. role:: typoscript(code) +.. role:: ts(typoscript) + :class: typoscript +.. role:: php(code) +Sponsoring +^^^^^^^^^^ +Inspiring people to share +------------------------- +We strongly believe in the principles of Open-source software, which is why we share this TYPO3 extension with you completely free of charge. + +Still even contributors to Open-source projects have to make a living somehow, so even though you are not obliged to do so, you should consider sharing a small part of the money you might be earning with this extension in return. This way we can make sure to still provide the TYPO3 community with better extensions and services in the future. + +Thanks in advance for your support. + +How to support our efforts? +--------------------------- + +.. |logo0| image:: ../../Images/Sponsoring/CodersCareLogo.png + :target: https://coders.care + :width: 300px + :align: middle +.. |logo1| image:: ../../Images/Sponsoring/PatreonLogo.png + :target: https://www.patreon.com/cybercraft + :width: 200px + :align: middle +.. |logo2| image:: ../../Images/Sponsoring/FlattrLogo.png + :target: https://www.flattr.com/@Cybercraft + :width: 200px + :align: middle +.. |logo3| image:: ../../Images/Sponsoring/PaypalLogo.png + :target: https://www.paypal.me/cybercraftsponsoring/50 + :width: 200px + :align: middle +.. |logo4| image:: ../../Images/Sponsoring/AmazonLogo.png + :target: https://www.amazon.de/gp/registry/wishlist/2I80GX9ZSMYXX + :width: 200px + :align: middle +.. |text0| replace:: Get yourself one of the Service Level Agreements we offer together with our fellow coders. This way you make sure Gridelements and other extensions live long and prosper and you will get a hotline with a defined response time in case of emergency. +.. |text1| replace:: A Service which allows you to become one of our Patrons on a monthly basis. You might even get a shoutout on twitter, get mentioned personally in the next release or even make a feature request depending on the amount you pick. +.. |text2| replace:: Pay any amount monthly on this service and it gets spread even around the people you want to support! We would be Flattr'ed to have you. +.. |text3| replace:: You don't want to sponsor monthly? Dont worry you can also support us via Paypal with any desired amount you find reasonable. +.. |text4| replace:: Sometimes you want to give it a personal touch. When you want to thank Joey and Petra with a nice Single Malt you should take a look here. Slàinte mhath! ++-------+-------------------+ ++-------+-------------------+ +||logo0|||text0| | ++-------+-------------------+ ++-------+-------------------+ +||logo1|||text1| | ++-------+-------------------+ ++-------+-------------------+ +||logo2|||text2| | ++-------+-------------------+ ++-------+-------------------+ +||logo3|||text3| | ++-------+-------------------+ ++-------+-------------------+ +||logo4|||text4| | ++-------+-------------------+ ++-------+-------------------+ +The Agreement +------------- +Excerpt from the coders.care blog post `Service Level Agreements for TYPO3 Extensions `_ + +.. image:: ../../Images/Sponsoring/Why.jpg + :width: 480px +Enabling companies, developers and the community to join forces and thrive +========================================================================== +There is one particular thing, that should be different to most of the variants of service level agreements provided by other open-source projects though. Having to buy a so called "enterprise" or "professional" edition of the extensions or TYPO3 itself just to become entitled for an SLA is a No-Go, since it will create two classes in the community and contradict the principles of free software implied by the GPL. + +The benefit for the people agreeing to a certain service level should be defined by reliability and responsiveness, not by getting access to something, that is unavailable for the rest of the community. So there must be an agreement to still share the improved public extensions with everybody in the community while getting a personal early or immediate access depending on the level and the priority you paid for. + +For developers there is the need for another agreement: They have to accept and publish fixes and changes to their extensions up to a certain degree, so the whole pool of developers can take care of the extensions covered by the SLAs. This will avoid forks. + +There are several nice side effects of these agreements. For example it would reduce the number of extensions which are maintained by a single person and therefor the risk of loss when using these extensions. Due to the four-eyes principle this would increase the quality of each extension in the approved pool and at the same time reduce the amount of "me too" extensions in the TER. + +There would be a powerful team of developers backing the service levels, so it would be easy to keep the approved extensions on a level with upcoming versions of the TYPO3 core. And since this would be done in close collaboration with the TYPO3 core team and the security team, core bugs and security holes affecting extension behaviour could be fixed and published much more easily as well. \ No newline at end of file diff --git a/Documentation/Images/Sponsoring/AmazonLogo.png b/Documentation/Images/Sponsoring/AmazonLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..a76c7da8fdb3bbfbab02d1ad3a5b0be6790ee47f GIT binary patch literal 13708 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 literal 0 HcmV?d00001 diff --git a/Documentation/Images/Sponsoring/CodersCareLogo.png b/Documentation/Images/Sponsoring/CodersCareLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..29dc775dda284761b9608ee021d81c1e550510b3 GIT binary patch literal 6912 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⁢_{eCX}yj4*<9x;MhtahemV7eGo^ULG9HbtRi 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 NBYiWyIvv;8{{duAqn-c& literal 0 HcmV?d00001 diff --git a/Documentation/Images/Sponsoring/Why.jpg b/Documentation/Images/Sponsoring/Why.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bee517179dfa294120cebda969758933085eaef9 GIT binary patch literal 71346 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 literal 0 HcmV?d00001 diff --git a/Documentation/Index.rst b/Documentation/Index.rst index 4deeb81..9d5e25d 100644 --- a/Documentation/Index.rst +++ b/Documentation/Index.rst @@ -66,4 +66,5 @@ Table Of Content Chapters/Tsconfig/Index Chapters/Typoscript/Index Chapters/Faq/Index + Chapters/Sponsoring/Index Chapters/Notes/Index diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..4ed98d4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ + GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + gridelements + Copyright (C) 2018 Jo Hasenau + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + gridelements Copyright (C) 2018 Jo Hasenau + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md index 7a0683a..e27b0de 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,56 @@ -Gridelements -============= + +[coders.care-url]: https://coders.care +[patreon-url]: https://www.patreon.com/cybercraft +[flattr-url]: https://www.flattr.com/@Cybercraft +[paypal-url]: https://www.paypal.me/cybercraftsponsoring/50 +[amazon-url]: https://www.amazon.de/gp/registry/wishlist/2I80GX9ZSMYXX +[documentation-url]: https://docs.typo3.org/typo3cms/extensions/gridelements +[blog-url]: https://coders.care/blog/article/service-level-agreements-for-typo3-extensions -Development Branch for 8.x.x versions of Gridelements. -Compatible to TYPO3 CMS 8 LTS only. \ No newline at end of file +# Gridelements + +This TYPO3 extension integrates the grid based backend layout concept known from the page module also to regular content elements - the grid elements. + +## What does it do? + +Besides providing structures based on multiple columns similar to table cells, grid containers can be used to group several elements into one block or to assign special behaviour like accordions or tabs and to render the child elements accordingly. And of course containers can be nested. + +It offers a lot of new features like advanced drag & drop, drag in of new elements, maximum number of items, allowed content, plugin or grid types per column or real references, that improve the usability of the page and list module to speed up the daily work with the backend of TYPO3 CMS. + +## Documentation + +Find installation and configuration instructions and some basic examples on [docs.typo3.org][documentation-url] + +## Inspiring people to share + +We strongly believe in the principles of Open-source software, which is why we share this TYPO3 extension with you completely free of charge. + +Still even contributors to Open-source projects have to make a living somehow, so even though you are not obliged to do so, you should consider sharing a small part of the money you might be earning with this extension in return. This way we can make sure to still provide the TYPO3 community with better extensions and services in the future. + +Thanks in advance for your support. + +## How to support our efforts? + +| | | +|:---------------------------|:--------------------------------| +| [![CodersCareLogo](Documentation/Images/Sponsoring/CodersCareLogo.png)][coders.care-url] | Get yourself one of the Service Level Agreements we offer together with our fellow coders. This way you make sure Gridelements and other extensions live long and prosper and you will get a hotline with a defined response time in case of emergency. | +| [![PatreonLogo](Documentation/Images/Sponsoring/PatreonLogo.png)][patreon-url] | A Service which allows you to become one of our Patrons on a monthly basis. You might even get a shoutout on twitter, get mentioned personally in the next release or even make a feature request depending on the amount you pick. | +| [![FlattrLogo](Documentation/Images/Sponsoring/FlattrLogo.png)][flattr-url] | Pay any amount monthly on this service and it gets spread even around the people you want to support! We would be Flattr'ed to have you. | +| [![PaypalLogo](Documentation/Images/Sponsoring/PaypalLogo.png)][paypal-url] | You don't want to sponsor monthly? Don't worry you can also support us via Paypal with any desired amount you find reasonable. | +| [![AmazonWishlistLogo](Documentation/Images/Sponsoring/AmazonLogo.png)][amazon-url] | Sometimes you want to give it a personal touch. When you want to thank Joey and Petra with a nice Single Malt, you should take a look here. Slàinte mhath! | + +## The Agreement + +Excerpt from the coders.care blog post [Service Level Agreements for TYPO3 Extensions][blog-url] + +![Big Orange rope pulling several colorful small ropes](Documentation/Images/Sponsoring/Why.jpg) +### Enabling companies, developers and the community to join forces and thrive +There is one particular thing, that should be different to most of the variants of service level agreements provided by other open-source projects though. Having to buy a so called "enterprise" or "professional" edition of the extensions or TYPO3 itself just to become entitled for an SLA is a No-Go, since it will create two classes in the community and contradict the principles of free software implied by the GPL. + +The benefit for the people agreeing to a certain service level should be defined by reliability and responsiveness, not by getting access to something, that is unavailable for the rest of the community. So there must be an agreement to still share the improved public extensions with everybody in the community while getting a personal early or immediate access depending on the level and the priority you paid for. + +For developers there is the need for another agreement: They have to accept and publish fixes and changes to their extensions up to a certain degree, so the whole pool of developers can take care of the extensions covered by the SLAs. This will avoid forks. + +There are several nice side effects of these agreements. For example it would reduce the number of extensions which are maintained by a single person and therefor the risk of loss when using these extensions. Due to the four-eyes principle this would increase the quality of each extension in the approved pool and at the same time reduce the amount of "me too" extensions in the TER. + +There would be a powerful team of developers backing the service levels, so it would be easy to keep the approved extensions on a level with upcoming versions of the TYPO3 core. And since this would be done in close collaboration with the TYPO3 core team and the security team, core bugs and security holes affecting extension behaviour could be fixed and published much more easily as well. \ No newline at end of file From ae74074c8f08ef6a14778e83a9ea77eb18edb897 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 28 Mar 2018 21:09:04 +0200 Subject: [PATCH 28/61] [BUGFIX] Insert missing line after merge conflict Change-Id: I921150b80a7d3edb52cf78816621890926550a70 Reviewed-on: https://review.typo3.org/56472 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 53a6ae394dc5d11736e94f656cb6f206869534f7) Reviewed-on: https://review.typo3.org/56473 --- Classes/Helper/Helper.php | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Classes/Helper/Helper.php b/Classes/Helper/Helper.php index bfa3ece..d580579 100644 --- a/Classes/Helper/Helper.php +++ b/Classes/Helper/Helper.php @@ -46,11 +46,6 @@ class Helper implements SingletonInterface */ protected static $instance = null; - /** - * @var Connection - */ - private $connection; - /** * Get instance from the class. * @@ -177,7 +172,8 @@ public function getPidFromUid($uid = 0) ->select('pid') ->from('tt_content') ->where( - $queryBuilder->createNamedParameter(abs($uid), \PDO::PARAM_INT) + $queryBuilder->expr()->eq('uid', + $queryBuilder->createNamedParameter(abs($uid), \PDO::PARAM_INT)) ) ->execute() ->fetch(); From 2d2a0ba018248af58422bee962ced11bc366b794 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Fri, 30 Mar 2018 18:18:50 +0200 Subject: [PATCH 29/61] [TASK] Code cleanup Change-Id: I4dc53f36acd26bfdbed51be6b956dacde9ac81c8 Reviewed-on: https://review.typo3.org/56491 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 449f262418b30ddd66b438fb5a309c9a880ed23d) Reviewed-on: https://review.typo3.org/56492 --- Classes/Backend/ItemsProcFuncs/CTypeList.php | 1 - .../Backend/ItemsProcFuncs/ListTypeList.php | 1 - Classes/Backend/LayoutSetup.php | 1 + Classes/Backend/TtContent.php | 1 + Classes/Helper/Helper.php | 43 +++++++++---------- Classes/Hooks/BackendUtilityGridelements.php | 1 - Classes/Hooks/DrawItem.php | 12 ++++-- Classes/Hooks/TtContentFlexForm.php | 2 +- Classes/Hooks/WizardItems.php | 2 +- Classes/Plugin/Gridelements.php | 3 +- Classes/Xclass/DatabaseRecordList.php | 3 +- .../Public/JavaScript/ContextMenuActions.js | 1 - Resources/Public/JavaScript/GridEditor.js | 6 +-- .../Public/JavaScript/GridElementsDragDrop.js | 6 +-- .../JavaScript/GridElementsDragInWizard.js | 4 +- .../Public/JavaScript/GridElementsOnReady.js | 17 ++++---- 16 files changed, 52 insertions(+), 52 deletions(-) diff --git a/Classes/Backend/ItemsProcFuncs/CTypeList.php b/Classes/Backend/ItemsProcFuncs/CTypeList.php index 2b50a99..4e8cccb 100644 --- a/Classes/Backend/ItemsProcFuncs/CTypeList.php +++ b/Classes/Backend/ItemsProcFuncs/CTypeList.php @@ -21,7 +21,6 @@ ***************************************************************/ use GridElementsTeam\Gridelements\Backend\LayoutSetup; -use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Backend/ItemsProcFuncs/ListTypeList.php b/Classes/Backend/ItemsProcFuncs/ListTypeList.php index 3ce6e54..c4ad7d7 100644 --- a/Classes/Backend/ItemsProcFuncs/ListTypeList.php +++ b/Classes/Backend/ItemsProcFuncs/ListTypeList.php @@ -21,7 +21,6 @@ ***************************************************************/ use GridElementsTeam\Gridelements\Backend\LayoutSetup; -use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Backend/LayoutSetup.php b/Classes/Backend/LayoutSetup.php index e6efd2e..4fda3e8 100644 --- a/Classes/Backend/LayoutSetup.php +++ b/Classes/Backend/LayoutSetup.php @@ -253,6 +253,7 @@ protected function loadLayoutSetup($pageId) */ public function getQueryBuilder() { + /** @var $queryBuilder QueryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('tx_gridelements_backend_layout'); $queryBuilder->getRestrictions() diff --git a/Classes/Backend/TtContent.php b/Classes/Backend/TtContent.php index 974e4bb..9eb3c73 100644 --- a/Classes/Backend/TtContent.php +++ b/Classes/Backend/TtContent.php @@ -197,6 +197,7 @@ public function lookForChildContainersRecursively($containerIds, array &$possibl */ public function getQueryBuilder() { + /** @var $queryBuilder QueryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('tt_content'); $queryBuilder->getRestrictions() diff --git a/Classes/Helper/Helper.php b/Classes/Helper/Helper.php index d580579..e7c7e3a 100644 --- a/Classes/Helper/Helper.php +++ b/Classes/Helper/Helper.php @@ -21,7 +21,6 @@ ***************************************************************/ use TYPO3\CMS\Backend\View\BackendLayoutView; -use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Database\Query\Restriction\EndTimeRestriction; @@ -119,39 +118,39 @@ public function getChildren($table = '', $uid = 0, $pid = 0, $sortingField = '', */ public function mergeAllowedDisallowedSettings($backendLayout, $csvValues = false) { if (!empty($backendLayout['allowed'])) { - foreach ($backendLayout['allowed'] as $column => &$fields) { - if (isset($fields['CType']) && $fields['CType'] !== '*') { - if (!empty($fields['list_type']) && strpos($fields['CType'], 'list') === false) { - $fields['CType'] .= ',list'; + foreach ($backendLayout['allowed'] as $column => &$allowedFields) { + if (isset($fields['CType']) && $allowedFields['CType'] !== '*') { + if (!empty($allowedFields['list_type']) && strpos($allowedFields['CType'], 'list') === false) { + $allowedFields['CType'] .= ',list'; } - if (!empty($fields['tx_gridelements_backend_layout']) && strpos($fields['CType'], 'gridelements_pi1') === false) { - $fields['CType'] .= ',gridelements_pi1'; + if (!empty($allowedFields['tx_gridelements_backend_layout']) && strpos($allowedFields['CType'], 'gridelements_pi1') === false) { + $allowedFields['CType'] .= ',gridelements_pi1'; } } - if (!isset($fields['CType'])) { - $fields['CType'] = '*'; + if (!isset($allowedFields['CType'])) { + $allowedFields['CType'] = '*'; } - if (!empty($fields['CType']) && !$csvValues) { - $fields['CType'] = array_flip(GeneralUtility::trimExplode(',', $fields['CType'])); + if (!empty($allowedFields['CType']) && !$csvValues) { + $allowedFields['CType'] = array_flip(GeneralUtility::trimExplode(',', $allowedFields['CType'])); } - if (!empty($fields['list_type']) && !$csvValues) { - $fields['list_type'] = array_flip(GeneralUtility::trimExplode(',', $fields['list_type'])); + if (!empty($allowedFields['list_type']) && !$csvValues) { + $allowedFields['list_type'] = array_flip(GeneralUtility::trimExplode(',', $allowedFields['list_type'])); } - if (!empty($fields['tx_gridelements_backend_layout']) && !$csvValues) { - $fields['tx_gridelements_backend_layout'] = array_flip(GeneralUtility::trimExplode(',', $fields['tx_gridelements_backend_layout'])); + if (!empty($allowedFields['tx_gridelements_backend_layout']) && !$csvValues) { + $allowedFields['tx_gridelements_backend_layout'] = array_flip(GeneralUtility::trimExplode(',', $allowedFields['tx_gridelements_backend_layout'])); } } }; if (!empty($backendLayout['disallowed']) && !$csvValues) { - foreach ($backendLayout['disallowed'] as $column => &$fields) { - if (!empty($fields['CType'])) { - $fields['CType'] = array_flip(GeneralUtility::trimExplode(',', $fields['CType'])); + foreach ($backendLayout['disallowed'] as $column => &$disallowedFields) { + if (!empty($disallowedFields['CType'])) { + $disallowedFields['CType'] = array_flip(GeneralUtility::trimExplode(',', $disallowedFields['CType'])); } - if (!empty($fields['list_type'])) { - $fields['list_type'] = array_flip(GeneralUtility::trimExplode(',', $fields['list_type'])); + if (!empty($disallowedFields['list_type'])) { + $disallowedFields['list_type'] = array_flip(GeneralUtility::trimExplode(',', $disallowedFields['list_type'])); } - if (!empty($fields['tx_gridelements_backend_layout'])) { - $fields['tx_gridelements_backend_layout'] = array_flip(GeneralUtility::trimExplode(',', $fields['tx_gridelements_backend_layout'])); + if (!empty($disallowedFields['tx_gridelements_backend_layout'])) { + $disallowedFields['tx_gridelements_backend_layout'] = array_flip(GeneralUtility::trimExplode(',', $disallowedFields['tx_gridelements_backend_layout'])); } } }; diff --git a/Classes/Hooks/BackendUtilityGridelements.php b/Classes/Hooks/BackendUtilityGridelements.php index ee9d138..3093b3c 100644 --- a/Classes/Hooks/BackendUtilityGridelements.php +++ b/Classes/Hooks/BackendUtilityGridelements.php @@ -21,7 +21,6 @@ ***************************************************************/ use GridElementsTeam\Gridelements\Backend\LayoutSetup; -use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Core\Utility\GeneralUtility; /** diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 7a1e86b..6aa4318 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -30,6 +30,7 @@ use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; +use TYPO3\CMS\Core\Database\Query\Expression\ExpressionBuilder; use TYPO3\CMS\Core\Database\Query\QueryBuilder; use TYPO3\CMS\Core\Database\Query\Restriction\EndTimeRestriction; use TYPO3\CMS\Core\Database\Query\Restriction\HiddenRestriction; @@ -39,6 +40,7 @@ use TYPO3\CMS\Core\Imaging\Icon; use TYPO3\CMS\Core\Imaging\IconFactory; use TYPO3\CMS\Core\Messaging\FlashMessage; +use TYPO3\CMS\Core\Messaging\FlashMessageQueue; use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Type\Bitmask\Permission; @@ -228,7 +230,7 @@ protected function renderCTypeGridelements(PageLayoutView $parentObject, &$row) $itemContent = $this->renderGridLayoutTable($layout, $gridElement, $head, $gridContent, $parentObject); } else { $itemContent = '
'; - $itemContent .= '
'; + $itemContent .= '
'; $itemContent .= ''; $itemContent .= '
' . $gridContent[0] . '
'; } @@ -286,6 +288,7 @@ protected function setSingleColPosItems(PageLayoutView $parentObject, &$colPosVa { $specificIds = $this->helper->getSpecificIds($row); + /** @var $expressionBuilder ExpressionBuilder */ $expressionBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('tt_content') ->expr(); @@ -695,6 +698,7 @@ protected function checkIfTranslationsExistInLanguage( FlashMessage::WARNING ); $service = GeneralUtility::makeInstance(FlashMessageService::class); + /** @var $queue FlashMessageQueue */ $queue = $service->getMessageQueueByIdentifier(); $queue->addMessage($message); } @@ -788,7 +792,7 @@ protected function tt_content_drawFooter(PageLayoutView $parentObject, array $ro throw new \UnexpectedValueException($hookClass . ' must implement interface ' . PageLayoutViewDrawFooterHookInterface::class, 1404378171); } - $hookObject->preProcess($parentObject, $info, $row); + $hookObject->preProcess($parentObject, implode(',', $info), $row); } } @@ -903,7 +907,7 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag ] ) . '

'; } - $grid .= ''; + $grid .= '
'; // add colgroups $colCount = 0; $rowCount = 0; @@ -917,7 +921,7 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag } $grid .= ''; for ($i = 0; $i < $colCount; $i++) { - $grid .= ''; + $grid .= ''; } $grid .= ''; // cycle through rows diff --git a/Classes/Hooks/TtContentFlexForm.php b/Classes/Hooks/TtContentFlexForm.php index b67c581..6eb4324 100644 --- a/Classes/Hooks/TtContentFlexForm.php +++ b/Classes/Hooks/TtContentFlexForm.php @@ -21,7 +21,6 @@ ***************************************************************/ use GridElementsTeam\Gridelements\Backend\LayoutSetup; -use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -51,6 +50,7 @@ public function getDataStructureIdentifierPreProcess(array $tca, $tableName, $fi if (!empty($row['tx_gridelements_backend_layout'])) { $pageUid = $row['pid']; $layoutId = $row['tx_gridelements_backend_layout']; + /** @var $layoutSetupInstance LayoutSetup */ $layoutSetupInstance = GeneralUtility::makeInstance(LayoutSetup::class)->init($pageUid); $layoutSetup = $layoutSetupInstance->getLayoutSetup($layoutId); if ($layoutSetup['pi_flexform_ds_file']) { diff --git a/Classes/Hooks/WizardItems.php b/Classes/Hooks/WizardItems.php index 9629021..794eb19 100644 --- a/Classes/Hooks/WizardItems.php +++ b/Classes/Hooks/WizardItems.php @@ -21,7 +21,6 @@ ***************************************************************/ use GridElementsTeam\Gridelements\Backend\LayoutSetup; -use GridElementsTeam\Gridelements\Helper\Helper; use TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Wizard\NewContentElementWizardHookInterface; @@ -96,6 +95,7 @@ public function manipulateWizardItems(&$wizardItems, &$parentObject) $this->removeDisallowedWizardItems($allowed, $disallowed, $wizardItems); } else { $allowed = null; + $disallowed = null; } if (( empty($allowed['CType']) || diff --git a/Classes/Plugin/Gridelements.php b/Classes/Plugin/Gridelements.php index 9e6449e..b53ece5 100644 --- a/Classes/Plugin/Gridelements.php +++ b/Classes/Plugin/Gridelements.php @@ -378,6 +378,7 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') */ public function getQueryBuilder() { + /** @var $queryBuilder QueryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable('tt_content'); $queryBuilder->setRestrictions(GeneralUtility::makeInstance(FrontendRestrictionContainer::class)); @@ -569,7 +570,7 @@ public function renderChildIntoParentColumn( * * @param array $setup The adjusted setup of the grid container * - * @return array $content The raw HTML output of the grid container before stdWrap functions will be applied to it + * @return string $content The raw HTML output of the grid container before stdWrap functions will be applied to it */ public function renderColumnsIntoParentGrid($setup = []) { diff --git a/Classes/Xclass/DatabaseRecordList.php b/Classes/Xclass/DatabaseRecordList.php index 5371c6f..469af89 100644 --- a/Classes/Xclass/DatabaseRecordList.php +++ b/Classes/Xclass/DatabaseRecordList.php @@ -1184,6 +1184,7 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent // Preparing and getting the data-array $theData = []; $localizationMarkerClass = ''; + list($lC1, $lC2) = $this->makeLocalizationPanel($table, $row); foreach ($this->fieldArray as $fCol) { if ($fCol == $titleCol) { $recTitle = BackendUtility::getRecordTitle($table, $row, false, true); @@ -1238,7 +1239,6 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent } elseif ($fCol === '_CLIPBOARD_') { $theData[$fCol] = $this->makeClip($table, $row); } elseif ($fCol === '_LOCALIZATION_') { - list($lC1, $lC2) = $this->makeLocalizationPanel($table, $row); $theData[$fCol] = $lC1; } elseif ($fCol !== '_LOCALIZATION_b') { $tmpProc = BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 100, $row['uid']); @@ -2125,6 +2125,7 @@ public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_2 = '', $pagination = true; } else { $colType = ($colType === 'th') ? 'th' : 'td'; + $pagination = false; } $noWrap = $this->no_noWrap ? '' : ' nowrap="nowrap"'; // Start up: diff --git a/Resources/Public/JavaScript/ContextMenuActions.js b/Resources/Public/JavaScript/ContextMenuActions.js index 80bca7f..94cfd47 100644 --- a/Resources/Public/JavaScript/ContextMenuActions.js +++ b/Resources/Public/JavaScript/ContextMenuActions.js @@ -39,7 +39,6 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity'], func */ ContextMenuActions.pasteReference = function (table, uid) { var $anchorElement = $(this); - var title = $anchorElement.data('title'); var actionUrl = $anchorElement.data('action-url'); var performPaste = function () { var url = actionUrl + '&redirect=' + top.rawurlencode(top.list_frame.document.location.pathname + top.list_frame.document.location.search); diff --git a/Resources/Public/JavaScript/GridEditor.js b/Resources/Public/JavaScript/GridEditor.js index a7e1d6e..6a24869 100644 --- a/Resources/Public/JavaScript/GridEditor.js +++ b/Resources/Public/JavaScript/GridEditor.js @@ -844,7 +844,7 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity', 'TYPO typeIcon = type.icon, typeLabel = type.label, typeSelected = $.inArray(typeKey, selectedTypes) !== -1, - typeStyle = 'background: #fff url(' + typeIcon + ') 0% 50% no-repeat; height: 16px; padding: 2px 10px 0 22px;' + typeStyle = 'background: #fff url(' + typeIcon + ') 0% 50% no-repeat; height: 16px; padding: 2px 10px 0 22px;'; allowedTypeOptions.push(''); } @@ -882,7 +882,7 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity', 'TYPO * @returns {Boolean} */ GridEditor.cellCanSpanRight = function (col, row) { - if (col == GridEditor.colCount - 1) { + if (col === GridEditor.colCount - 1) { return false; } @@ -913,7 +913,7 @@ define(['jquery', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity', 'TYPO * @returns {Boolean} */ GridEditor.cellCanSpanDown = function (col, row) { - if (row == GridEditor.rowCount - 1) { + if (row === GridEditor.rowCount - 1) { return false; } diff --git a/Resources/Public/JavaScript/GridElementsDragDrop.js b/Resources/Public/JavaScript/GridElementsDragDrop.js index c095fc2..4c8b1f7 100644 --- a/Resources/Public/JavaScript/GridElementsDragDrop.js +++ b/Resources/Public/JavaScript/GridElementsDragDrop.js @@ -45,10 +45,10 @@ define(['jquery', 'jquery-ui/droppable', 'TYPO3/CMS/Backend/LayoutModule/DragDro distance: 20, addClasses: 'active-drag', revert: 'invalid', - start: function (evt, ui) { + start: function () { DragDrop.onDragStart($(this)); }, - stop: function (evt, ui) { + stop: function () { DragDrop.onDragStop($(this)); } }); @@ -79,7 +79,7 @@ define(['jquery', 'jquery-ui/droppable', 'TYPO3/CMS/Backend/LayoutModule/DragDro DragDrop.drag = $element.children(DragDrop.drag); DragDrop.drag.addClass('dragitem-shadow'); DragDrop.types = $element.find(DragDrop.cTypeIdentifier); - if ($element.closest(DragDrop.newContentElementWizardIdentifier).length == 0) { + if ($element.closest(DragDrop.newContentElementWizardIdentifier).length === 0) { $element.append('
' + TYPO3.lang['dragdrop.copy.message'] + '
'); } else { // all information about CType, list_type and other default values has to be fetched from onclick diff --git a/Resources/Public/JavaScript/GridElementsDragInWizard.js b/Resources/Public/JavaScript/GridElementsDragInWizard.js index 43e4fd0..a91f835 100644 --- a/Resources/Public/JavaScript/GridElementsDragInWizard.js +++ b/Resources/Public/JavaScript/GridElementsDragInWizard.js @@ -59,7 +59,7 @@ define(['jquery', 'TYPO3/CMS/Gridelements/GridElementsDragDrop', 'jquery-ui/drag var addNewIcon = $('.t3-page-ce-wrapper-new-ce a').first(); var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm').insertAfter(lastIcon); newIcon.contents().filter(function () { - return (this.nodeType == 3); + return (this.nodeType === 3); }).remove(); newIcon.removeAttr('onclick').attr('title', 'Toggle Drag In Wizard'); newIcon.click(function () { @@ -104,8 +104,6 @@ define(['jquery', 'TYPO3/CMS/Gridelements/GridElementsDragDrop', 'jquery-ui/drag */ DragInWizard.rearrangeItems = function () { var panel = $('#' + DragInWizard.wizardIdentifier + ' .t3js-tabs'); - var CType; - var listType; $('#' + DragInWizard.wizardIdentifier + ' .media').each(function () { $(this).find('.media-left').addClass('t3-ctype-identifier'); var description = $(this).find('.media-body'); diff --git a/Resources/Public/JavaScript/GridElementsOnReady.js b/Resources/Public/JavaScript/GridElementsOnReady.js index ab7f359..075ce47 100644 --- a/Resources/Public/JavaScript/GridElementsOnReady.js +++ b/Resources/Public/JavaScript/GridElementsOnReady.js @@ -70,7 +70,7 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag OnReady.copyFromAnotherPage($(this)); }); }); - } + }; /** * generates the paste into / paste after modal @@ -139,7 +139,7 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag } else { Modal.show(title, content, severity, buttons); } - } + }; /** * sets the classes for allowed element types to the cells of the original page module @@ -171,7 +171,7 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag $(this).addClass('t3-page-ce-danger'); } }); - } else if ($children.length == top.pageColumnsMaxitems[colPos]) { + } else if ($children.length === top.pageColumnsMaxitems[colPos]) { $(this).find('> .t3-grid-cell-number-of-items').addClass('warning'); } else { $(this).find('> .t3-grid-cell-number-of-items').addClass('success'); @@ -207,13 +207,13 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag var addNewIcon = $('.t3js-toggle-gridelements-column').first(); var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm t3js-gridcolumn-toggle t3js-gridcolumn-expand').insertAfter(lastIcon); newIcon.contents().filter(function () { - return (this.nodeType == 3); + return (this.nodeType === 3); }).remove(); newIcon.find('.icon-actions-view-list-collapse').remove(); newIcon.removeAttr('onclick').attr('title', 'Expand all grid columns'); var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm t3js-gridcolumn-toggle').insertAfter(lastIcon); newIcon.contents().filter(function () { - return (this.nodeType == 3); + return (this.nodeType === 3); }).remove(); newIcon.find('.icon-actions-view-list-expand').remove(); newIcon.removeAttr('onclick').attr('title', 'Collapse all grid columns'); @@ -241,7 +241,7 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag Storage.Persistent.set('moduleData.page.gridelementsCollapsedColumns', storedModuleDataPage); }); - } + }; /** * activates the arrow icons to show/hide content previews within a certain grid column @@ -251,7 +251,6 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag evt.preventDefault(); var $me = $(this), - column = $me.closest('.t3js-page-column').data('colpos'), columnKey = $me.closest('.t3js-page-column').data('columnkey'), isExpanded = $me.data('state') === 'expanded'; @@ -282,7 +281,7 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag $(this).addClass('btn-group btn-group-sm'); $(this).find('a').addClass('btn btn-default'); }); - } + }; /** * generates the paste into / paste after modal @@ -291,7 +290,7 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag var url = top.backPath + top.browserUrl + '&mode=db&bparams=' + element.parent().attr('id') + '|||tt_content|'; OnReady.openedPopupWindow = window.open(url, 'Typo3WinBrowser', 'height=600,width=800,status=0,menubar=0,resizable=1,scrollbars=1'); OnReady.openedPopupWindow.focus(); - } + }; /** * gives back the data from the popup window to the copy action From bef562c4c8ba5d2a8130561dbfc0a4bad942e187 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Sat, 31 Mar 2018 11:48:41 +0200 Subject: [PATCH 30/61] [BUGFIX] remove hardcoded path from drag in wizard url Change-Id: I43a08f75282e742cd87e3b1c50267a1df3c78907 Resolves: #84540 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/56496 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Resources/Public/JavaScript/GridElementsDragInWizard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Public/JavaScript/GridElementsDragInWizard.js b/Resources/Public/JavaScript/GridElementsDragInWizard.js index a91f835..b9a3f4e 100644 --- a/Resources/Public/JavaScript/GridElementsDragInWizard.js +++ b/Resources/Public/JavaScript/GridElementsDragInWizard.js @@ -47,7 +47,7 @@ define(['jquery', 'TYPO3/CMS/Gridelements/GridElementsDragDrop', 'jquery-ui/drag originalWizardUrl = $newCeLink.attr('href').split('\&', 4); } if (typeof originalWizardUrl !== 'undefined') { - DragInWizard.wizardUrl = '\/typo3\/index.php?route=%2Frecord%2Fcontent%2Fnew&' + originalWizardUrl[1] + '&' + originalWizardUrl[2]; + DragInWizard.wizardUrl = originalWizardUrl[0] + '&' + originalWizardUrl[1] + '&' + originalWizardUrl[2]; } }; From 84fc22119d886b300cdce5eafd8afdefd94532f6 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Sat, 31 Mar 2018 20:24:25 +0200 Subject: [PATCH 31/61] [BUGFIX] make paste icons aware of allowed and disallowed settings Change-Id: Ica88d2acef1ae2681a1fff927f7a29b83528dbf8 Resolves: #78216 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56498 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 9d476246a7352e613abb8f4c755aa3daceaad5e8) Reviewed-on: https://review.typo3.org/56507 --- Classes/Hooks/PageRenderer.php | 20 +- .../Public/JavaScript/GridElementsOnReady.js | 786 ++++++++++-------- 2 files changed, 455 insertions(+), 351 deletions(-) diff --git a/Classes/Hooks/PageRenderer.php b/Classes/Hooks/PageRenderer.php index 9a666e4..2c43e40 100644 --- a/Classes/Hooks/PageRenderer.php +++ b/Classes/Hooks/PageRenderer.php @@ -64,7 +64,7 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p $clipObj = GeneralUtility::makeInstance(Clipboard::class); // Start clipboard $clipObj->initializeClipboard(); $clipObj->lockToNormal(); - + $clipBoard = $clipObj->clipData['normal']; if (!$pageRenderer->getCharSet()) { $pageRenderer->setCharSet($GLOBALS['LANG']->charSet ? $GLOBALS['LANG']->charSet : 'utf-8'); } @@ -107,7 +107,23 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode']) ? 'true' : 'false') . "; top.skipDraggableDetails = " . ($this->getBackendUser()->uc['dragAndDropHideNewElementWizardInfoOverlay'] ? 'true' : 'false') . "; top.backPath = '" . $GLOBALS['BACK_PATH'] . "'; - top.browserUrl = '" . BackendUtility::getModuleUrl('wizard_element_browser') . "'"; + top.browserUrl = '" . BackendUtility::getModuleUrl('wizard_element_browser') . "';"; + + if (!empty($clipBoard) && !empty($clipBoard['el'])) { + $clipBoardElement = GeneralUtility::trimExplode('|', key($clipBoard['el'])); + if ($clipBoardElement[0] === 'tt_content') { + $clipBoardElementData = BackendUtility::getRecord('tt_content', (int)$clipBoardElement[1]); + $pAddExtOnReadyCode .= " + top.clipBoardElementCType = '" . $clipBoardElementData['CType'] . "'; + top.clipBoardElementTxGridelementsBackendLayout = '" . $clipBoardElementData['tx_gridelements_backend_layout'] . "'; + top.clipBoardElementListType = '" . $clipBoardElementData['list_type'] . "';"; + } else { + $pAddExtOnReadyCode .= " + top.clipBoardElementCType = ''; + top.clipBoardElementTxGridelementsBackendLayout = ''; + top.clipBoardElementListType = '';"; + } + } $pAddExtOnReadyCode .= " top.copyFromAnotherPageLinkTemplate = " . json_encode('' . $iconFactory->getIcon('actions-insert-reference', diff --git a/Resources/Public/JavaScript/GridElementsOnReady.js b/Resources/Public/JavaScript/GridElementsOnReady.js index 075ce47..0ace84c 100644 --- a/Resources/Public/JavaScript/GridElementsOnReady.js +++ b/Resources/Public/JavaScript/GridElementsOnReady.js @@ -18,367 +18,455 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storage', 'TYPO3/CMS/Gridelements/GridElementsDragDrop', 'TYPO3/CMS/Backend/LayoutModule/Paste', 'TYPO3/CMS/Backend/Modal', 'TYPO3/CMS/Backend/Severity'], function ($, AjaxDataHandler, Storage, DragDrop, Paste, Modal, Severity) { - var OnReady = { - openedPopupWindow: [] - }; - - - AjaxDataHandler.identifier.allGridelementsToggle = '.t3js-toggle-gridelements-all'; - AjaxDataHandler.identifier.gridelementToggle = '.t3js-toggle-gridelements-list'; - AjaxDataHandler.identifier.allGridelementsColumnsToggle = '.t3js-toggle-gridelements-columns-all'; - AjaxDataHandler.identifier.gridelementColumnToggle = '.t3js-toggle-gridelements-column'; - - /** - * initializes Drag+Drop for all content elements on the page - */ - OnReady.initialize = function () { - if ($('#recordlist-tt_content').length) { - OnReady.activateAllGridExpander(); - } - if ($('.t3js-page-columns').length) { - OnReady.setAllowedData(); - OnReady.activateAllCollapseIcons(); - } - }; - - /** - * activates the paste into / paste after and fetch copy from another page icons outside of the context menus - */ - Paste.activatePasteIcons = function () { - $('.icon-actions-document-paste-into').parent().remove(); - $('.t3-page-ce-wrapper-new-ce').each(function () { - if(!$(this).find('.icon-actions-document-new').length) { - return true; - } - $(this).addClass('btn-group btn-group-sm'); - $('.t3js-page-lang-column .t3-page-ce > .t3-page-ce').removeClass('t3js-page-ce'); - if (top.pasteAfterLinkTemplate && top.pasteIntoLinkTemplate) { - var parent = $(this).parent(); - if (parent.data('page') || (parent.data('container') && !parent.data('uid'))) { - $(this).append(top.pasteIntoLinkTemplate); - } else { - $(this).append(top.pasteAfterLinkTemplate); - } - $(this).find('.t3js-paste').on('click', function (evt) { - evt.preventDefault(); - Paste.activatePasteModal($(this)); - }); - } - $(this).append(top.copyFromAnotherPageLinkTemplate); - $(this).find('.t3js-paste-new').on('click', function (evt) { - evt.preventDefault(); - OnReady.copyFromAnotherPage($(this)); - }); - }); - }; - - /** - * generates the paste into / paste after modal - */ - Paste.activatePasteModal = function (element) { - var $element = $(element); - var url = $element.data('url') || null; - var title = (TYPO3.lang['paste.modal.title.paste'] || 'Paste record') + ': "' + $element.data('title') + '"'; - var severity = (typeof top.TYPO3.Severity[$element.data('severity')] !== 'undefined') ? top.TYPO3.Severity[$element.data('severity')] : top.TYPO3.Severity.info; - if ($element.hasClass('t3js-paste-copy')) { - var content = TYPO3.lang['tx_gridelements_js.modal.pastecopy'] || '1 How do you want to paste that clipboard content here?'; - var buttons = [ - { - text: TYPO3.lang['paste.modal.button.cancel'] || 'Cancel', - active: true, - btnClass: 'btn-default', - trigger: function () { - Modal.currentModal.trigger('modal-dismiss'); - } - }, - { - text: TYPO3.lang['tx_gridelements_js.modal.button.pastecopy'] || 'Paste as copy', - btnClass: 'btn-' + top.TYPO3.Severity.getCssClass(severity), - trigger: function (ev) { - Modal.currentModal.trigger('modal-dismiss'); - DragDrop.onDrop($element.data('content'), $element, ev); - } - }, - { - text: TYPO3.lang['tx_gridelements_js.modal.button.pastereference'] || 'Paste as reference', - btnClass: 'btn-' + top.TYPO3.Severity.getCssClass(severity), - trigger: function (ev) { - Modal.currentModal.trigger('modal-dismiss'); - DragDrop.onDrop($element.data('content'), $element, ev, 'reference'); - } - } - ]; - if(top.pasteReferenceAllowed !== true) { - buttons.pop(); - } - } else { - var content = TYPO3.lang['paste.modal.paste'] || 'Do you want to move the record to this position?'; - var buttons = [ - { - text: TYPO3.lang['paste.modal.button.cancel'] || 'Cancel', - active: true, - btnClass: 'btn-default', - trigger: function () { - Modal.currentModal.trigger('modal-dismiss'); - } - }, - { - text: TYPO3.lang['paste.modal.button.paste'] || 'Move', - btnClass: 'btn-' + Severity.getCssClass(severity), - trigger: function () { - Modal.currentModal.trigger('modal-dismiss'); - DragDrop.onDrop($element.data('content'), $element, null); - } - } - ]; - } - if (url !== null) { - var separator = (url.indexOf('?') > -1) ? '&' : '?'; - var params = $.param({data: $element.data()}); - Modal.loadUrl(title, severity, buttons, url + separator + params); - } else { - Modal.show(title, content, severity, buttons); - } - }; - - /** - * sets the classes for allowed element types to the cells of the original page module - */ - OnReady.setAllowedData = function () { - $('table.t3js-page-columns > tbody > tr > td').each(function () { - var colPos = $(this).data('colpos') ? $(this).data('colpos') : $(this).find('> .t3-page-ce-wrapper').data('colpos'); - if (typeof colPos !== 'undefined') { - if (typeof top.pageColumnsAllowed[colPos] !== 'undefined') { + var OnReady = { + openedPopupWindow: [] + }; + + + AjaxDataHandler.identifier.allGridelementsToggle = '.t3js-toggle-gridelements-all'; + AjaxDataHandler.identifier.gridelementToggle = '.t3js-toggle-gridelements-list'; + AjaxDataHandler.identifier.allGridelementsColumnsToggle = '.t3js-toggle-gridelements-columns-all'; + AjaxDataHandler.identifier.gridelementColumnToggle = '.t3js-toggle-gridelements-column'; + + /** + * initializes Drag+Drop for all content elements on the page + */ + OnReady.initialize = function () { + if ($('#recordlist-tt_content').length) { + OnReady.activateAllGridExpander(); + } + if ($('.t3js-page-columns').length) { + if (top.pasteIntoLinkTemplate === '' && top.pasteAfterLinkTemplate === '') { + OnReady.setAllowedData(); + } + OnReady.activateAllCollapseIcons(); + } + }; + + /** + * activates the paste into / paste after and fetch copy from another page icons outside of the context menus + */ + Paste.activatePasteIcons = function () { + OnReady.setAllowedData(); + $('.icon-actions-document-paste-into').parent().remove(); + $('.t3-page-ce-wrapper-new-ce').each(function () { + if (!$(this).find('.icon-actions-document-new').length) { + return true; + } + $(this).addClass('btn-group btn-group-sm'); + $('.t3js-page-lang-column .t3-page-ce > .t3-page-ce').removeClass('t3js-page-ce'); + var gridCell = $(this).closest('.t3-grid-cell'); + if (typeof(gridCell.data('allowed')) === 'undefined') { + gridCell.data('allowedCType', false); + gridCell.data('allowedTxGridelementsBackendLayout', false); + gridCell.data('allowedListType', false); + if (top.clipBoardElementCType) { + if (typeof(gridCell.data('allowed-ctype')) !== 'undefined') { + var allowedCTypes = gridCell.data('allowed-ctype').toString().split(','); + if ( + allowedCTypes.indexOf(top.clipBoardElementCType) > -1 + || allowedCTypes.indexOf('*') > -1 + || gridCell.data('allowed-ctype') === '*' + ) { + gridCell.data('allowedCType', true); + } + } else { + gridCell.data('allowedCType', true); + } + if (typeof(gridCell.data('disallowed-ctype')) !== 'undefined') { + var disallowedCTypes = gridCell.data('disallowed-ctype').toString().split(','); + if ( + disallowedCTypes.indexOf(top.clipBoardElementCType) > -1 + || disallowedCTypes.indexOf('*') > -1 + || gridCell.data('disallowed-ctype') === '*' + ) { + gridCell.data('allowedCType', false); + } + } + } else { + gridCell.data('allowedCType', true); + } + if (top.clipBoardElementTxGridelementsBackendLayout) { + if (typeof(gridCell.data('allowed-tx_gridelements_backend_layout')) !== 'undefined') { + var allowedTxGridelementsBackendLayouts = gridCell.data('allowed-tx_gridelements_backend_layout').toString().split(','); + if ( + allowedTxGridelementsBackendLayouts.indexOf(top.clipBoardElementTxGridelementsBackendLayout) > -1 + || allowedTxGridelementsBackendLayouts.indexOf('*') > -1 + || gridCell.data('allowed-tx_gridelements_backend_layout') === '*' + ) { + gridCell.data('allowedTxGridelementsBackendLayout', true); + } + } else { + gridCell.data('allowedTxGridelementsBackendLayout', true); + } + if (typeof(gridCell.data('disallowed-tx_gridelements_backend_layout')) !== 'undefined') { + var disallowedTxGridelementsBackendLayouts = gridCell.data('disallowed-tx_gridelements_backend_layout').toString().split(','); + if ( + disallowedTxGridelementsBackendLayouts.indexOf(top.clipBoardElementTxGridelementsBackendLayout) > -1 + || disallowedTxGridelementsBackendLayouts.indexOf('*') > -1 + || gridCell.data('disallowed-tx_gridelements_backend_layout') === '*' + ) { + gridCell.data('allowedTxGridelementsBackendLayout', false); + } + } + } else { + gridCell.data('allowedTxGridelementsBackendLayout', true); + } + if (top.clipBoardElementListType) { + if (typeof(gridCell.data('allowed-list_type')) !== 'undefined') { + var allowedListTypes = gridCell.data('allowed-list_type').toString().split(','); + if ( + allowedListTypes.indexOf(top.clipBoardElementListType) > -1 + || allowedListTypes.indexOf('*') > -1 + || gridCell.data('allowed-list_type') === '*' + ) { + gridCell.data('allowedListType', true); + } + } else { + gridCell.data('allowedListType', true); + } + if (typeof(gridCell.data('disallowed-list_type')) !== 'undefined') { + var disallowedListTypes = gridCell.data('disallowed-list_type').toString().split(','); + if ( + disallowedListTypes.indexOf(top.clipBoardElementListType) > -1 + || disallowedListTypes.indexOf('*') > -1 + || gridCell.data('disallowed-list_type') === '*' + ) { + gridCell.data('allowedListType', false); + } + } + } else { + gridCell.data('allowedListType', true); + } + gridCell.data('allowed', (gridCell.data('allowedCType') && gridCell.data('allowedTxGridelementsBackendLayout') && gridCell.data('allowedListType'))); + } + if (top.pasteAfterLinkTemplate && top.pasteIntoLinkTemplate && gridCell.data('allowed')) { + var parent = $(this).parent(); + if (parent.data('page') || (parent.data('container') && !parent.data('uid'))) { + $(this).append(top.pasteIntoLinkTemplate); + } else { + $(this).append(top.pasteAfterLinkTemplate); + } + $(this).find('.t3js-paste').on('click', function (evt) { + evt.preventDefault(); + Paste.activatePasteModal($(this)); + }); + } + $(this).append(top.copyFromAnotherPageLinkTemplate); + $(this).find('.t3js-paste-new').on('click', function (evt) { + evt.preventDefault(); + OnReady.copyFromAnotherPage($(this)); + }); + }); + }; + + /** + * generates the paste into / paste after modal + */ + Paste.activatePasteModal = function (element) { + var $element = $(element); + var url = $element.data('url') || null; + var title = (TYPO3.lang['paste.modal.title.paste'] || 'Paste record') + ': "' + $element.data('title') + '"'; + var severity = (typeof top.TYPO3.Severity[$element.data('severity')] !== 'undefined') ? top.TYPO3.Severity[$element.data('severity')] : top.TYPO3.Severity.info; + if ($element.hasClass('t3js-paste-copy')) { + var content = TYPO3.lang['tx_gridelements_js.modal.pastecopy'] || '1 How do you want to paste that clipboard content here?'; + var buttons = [ + { + text: TYPO3.lang['paste.modal.button.cancel'] || 'Cancel', + active: true, + btnClass: 'btn-default', + trigger: function () { + Modal.currentModal.trigger('modal-dismiss'); + } + }, + { + text: TYPO3.lang['tx_gridelements_js.modal.button.pastecopy'] || 'Paste as copy', + btnClass: 'btn-' + top.TYPO3.Severity.getCssClass(severity), + trigger: function (ev) { + Modal.currentModal.trigger('modal-dismiss'); + DragDrop.onDrop($element.data('content'), $element, ev); + } + }, + { + text: TYPO3.lang['tx_gridelements_js.modal.button.pastereference'] || 'Paste as reference', + btnClass: 'btn-' + top.TYPO3.Severity.getCssClass(severity), + trigger: function (ev) { + Modal.currentModal.trigger('modal-dismiss'); + DragDrop.onDrop($element.data('content'), $element, ev, 'reference'); + } + } + ]; + if (top.pasteReferenceAllowed !== true) { + buttons.pop(); + } + } else { + var content = TYPO3.lang['paste.modal.paste'] || 'Do you want to move the record to this position?'; + var buttons = [ + { + text: TYPO3.lang['paste.modal.button.cancel'] || 'Cancel', + active: true, + btnClass: 'btn-default', + trigger: function () { + Modal.currentModal.trigger('modal-dismiss'); + } + }, + { + text: TYPO3.lang['paste.modal.button.paste'] || 'Move', + btnClass: 'btn-' + Severity.getCssClass(severity), + trigger: function () { + Modal.currentModal.trigger('modal-dismiss'); + DragDrop.onDrop($element.data('content'), $element, null); + } + } + ]; + } + if (url !== null) { + var separator = (url.indexOf('?') > -1) ? '&' : '?'; + var params = $.param({data: $element.data()}); + Modal.loadUrl(title, severity, buttons, url + separator + params); + } else { + Modal.show(title, content, severity, buttons); + } + }; + + /** + * sets the classes for allowed element types to the cells of the original page module + */ + OnReady.setAllowedData = function () { + $('table.t3js-page-columns > tbody > tr > td').each(function () { + var colPos = $(this).data('colpos') ? $(this).data('colpos') : $(this).find('> .t3-page-ce-wrapper').data('colpos'); + if (typeof colPos !== 'undefined') { + if (typeof top.pageColumnsAllowed[colPos] !== 'undefined') { $(this).attr('data-allowed-ctype', top.pageColumnsAllowed[colPos]['CType']); $(this).attr('data-allowed-list_type', top.pageColumnsAllowed[colPos]['list_type']); $(this).attr('data-allowed-tx_gridelements_backend_layout', top.pageColumnsAllowed[colPos]['tx_gridelements_backend_layout']); - } - if (typeof top.pageColumnsDisallowed[colPos] !== 'undefined') { + } + if (typeof top.pageColumnsDisallowed[colPos] !== 'undefined') { $(this).attr('data-disallowed-ctype', top.pageColumnsDisallowed[colPos]['CType']); $(this).attr('data-disallowed-list_type', top.pageColumnsDisallowed[colPos]['list_type']); $(this).attr('data-disallowed-tx_gridelements_backend_layout', top.pageColumnsDisallowed[colPos]['tx_gridelements_backend_layout']); - } - if (typeof top.pageColumnsMaxitems[colPos] !== 'undefined') { - var $children = $(this).find('> .t3js-sortable > .t3js-page-ce-sortable'); - var itemsOfMax = $children.length + '/' + top.pageColumnsMaxitems[colPos]; + } + if (typeof top.pageColumnsMaxitems[colPos] !== 'undefined') { + var $children = $(this).find('> .t3js-sortable > .t3js-page-ce-sortable'); + var itemsOfMax = $children.length + '/' + top.pageColumnsMaxitems[colPos]; $(this).attr('data-maxitems', top.pageColumnsMaxitems[colPos]); $(this).find('> .t3-page-column-header').after('' + itemsOfMax + ''); if ($children.length > top.pageColumnsMaxitems[colPos]) { $(this).find('> .t3-grid-cell-number-of-items').text(itemsOfMax + '!').addClass('danger'); $(this).addClass('t3-page-ce-disable-new-ce'); - $children.each(function() { - if ($(this).index() > top.pageColumnsMaxitems[colPos]) { - $(this).addClass('t3-page-ce-danger'); - } - }); + $children.each(function () { + if ($(this).index() > top.pageColumnsMaxitems[colPos]) { + $(this).addClass('t3-page-ce-danger'); + } + }); } else if ($children.length === top.pageColumnsMaxitems[colPos]) { $(this).find('> .t3-grid-cell-number-of-items').addClass('warning'); - } else { + } else { $(this).find('> .t3-grid-cell-number-of-items').addClass('success'); - } - } - OnReady.setAllowedParameters($(this), colPos); - } - }); - }; - - /** - * sets the parameters for allowed element types to the add new content links of the original page module - */ - OnReady.setAllowedParameters = function (pageColumn, colPos) { - pageColumn.find('.t3js-page-new-ce:not(".t3js-page-new-ce-allowed") a').each(function () { - if(typeof $(this).attr('href') !== 'undefined') { - $(this).attr('href', $(this).attr('href').replace( - '&uid_pid', - (top.pageColumnsAllowed[colPos] ? ('&tx_gridelements_allowed=' + window.btoa(JSON.stringify(top.pageColumnsAllowed[colPos]))) : '') + - (top.pageColumnsDisallowed[colPos] ? ('&tx_gridelements_disallowed=' + window.btoa(JSON.stringify(top.pageColumnsDisallowed[colPos]))) : '') + - '&uid_pid' - )); - } - }); - }; - - /** - * activates the arrow icons to show/hide content previews within a certain grid column - */ - OnReady.activateAllCollapseIcons = function () { - OnReady.activateCollapseIcons(); - var lastIcon = $('.module-docheader-bar-column-left .btn-group .icon').last().parent(); - var addNewIcon = $('.t3js-toggle-gridelements-column').first(); - var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm t3js-gridcolumn-toggle t3js-gridcolumn-expand').insertAfter(lastIcon); - newIcon.contents().filter(function () { - return (this.nodeType === 3); - }).remove(); - newIcon.find('.icon-actions-view-list-collapse').remove(); - newIcon.removeAttr('onclick').attr('title', 'Expand all grid columns'); - var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm t3js-gridcolumn-toggle').insertAfter(lastIcon); - newIcon.contents().filter(function () { - return (this.nodeType === 3); - }).remove(); - newIcon.find('.icon-actions-view-list-expand').remove(); - newIcon.removeAttr('onclick').attr('title', 'Collapse all grid columns'); - $(document).on('click', '.t3js-gridcolumn-toggle', function (evt) { - evt.preventDefault(); - - var $me = $(this), - collapsed = $me.hasClass('t3js-gridcolumn-expand') ? 0 : 1; - - // Store collapse state in UC - var storedModuleDataPage = {}; - - if (Storage.Persistent.isset('moduleData.page.gridelementsCollapsedColumns')) { - storedModuleDataPage = Storage.Persistent.get('moduleData.list.gridelementsExpanded'); - } - - var collapseConfig = {}; - $('[data-columnkey]').each(function () { - collapseConfig[$(this).data('columnkey')] = collapsed; - $(this).removeClass('collapsed','expanded'); - $(this).addClass(collapsed ? 'collapsed' : 'expanded'); - }); - - storedModuleDataPage = $.extend(true, storedModuleDataPage, collapseConfig); - Storage.Persistent.set('moduleData.page.gridelementsCollapsedColumns', storedModuleDataPage); - - }); - }; - - /** - * activates the arrow icons to show/hide content previews within a certain grid column - */ - OnReady.activateCollapseIcons = function () { - $(document).on('click', AjaxDataHandler.identifier.gridelementColumnToggle, function (evt) { - evt.preventDefault(); - - var $me = $(this), - columnKey = $me.closest('.t3js-page-column').data('columnkey'), - isExpanded = $me.data('state') === 'expanded'; - - // Store collapse state in UC - var storedModuleDataPage = {}; - - if (Storage.Persistent.isset('moduleData.page.gridelementsCollapsedColumns')) { - storedModuleDataPage = Storage.Persistent.get('moduleData.page.gridelementsCollapsedColumns'); - } - - var expandConfig = {}; - expandConfig[columnKey] = isExpanded ? 1 : 0; - - storedModuleDataPage = $.extend(true, storedModuleDataPage, expandConfig); - Storage.Persistent.set('moduleData.page.gridelementsCollapsedColumns', storedModuleDataPage).done(function () { - $me.data('state', isExpanded ? 'collapsed' : 'expanded'); - }); - - $me.closest('.t3-grid-cell').toggleClass('collapsed','expanded'); - var originalTitle = $me.attr('title'); - $me.attr('title', $me.attr('data-toggle-title')); - $me.attr('data-toggle-title', originalTitle); - $me.blur(); - - }); - - $('.t3-page-column-header-icons').each(function () { - $(this).addClass('btn-group btn-group-sm'); - $(this).find('a').addClass('btn btn-default'); - }); - }; - - /** - * generates the paste into / paste after modal - */ - OnReady.copyFromAnotherPage = function (element) { - var url = top.backPath + top.browserUrl + '&mode=db&bparams=' + element.parent().attr('id') + '|||tt_content|'; - OnReady.openedPopupWindow = window.open(url, 'Typo3WinBrowser', 'height=600,width=800,status=0,menubar=0,resizable=1,scrollbars=1'); - OnReady.openedPopupWindow.focus(); - }; - - /** - * gives back the data from the popup window to the copy action - */ - if (!$('.typo3-TCEforms').length) { - OnReady.setSelectOptionFromExternalSource = setFormValueFromBrowseWin = function(elementId, tableUid){ - tableUid = tableUid.replace('tt_content_', '') * 1; - DragDrop.onDrop(tableUid, $('#' + elementId).find('.t3js-paste-new'), 'copyFromAnotherPage'); - } - } - - /** - * activates the toggle icons to open listings of nested grid container structure in the list module - */ - OnReady.activateAllGridExpander = function () { - OnReady.activateGridExpander(); - $(document).on('click', AjaxDataHandler.identifier.allGridelementsToggle, function (evt) { - evt.preventDefault(); - - var $me = $(this), - container = '0,' + $me.data('container-ids'), - isExpanded = this.id === 't3-gridelements-expand-all' ? 1 : 0; - - // Store collapse state in UC - var storedModuleDataList = {}; - - if (Storage.Persistent.isset('moduleData.list.gridelementsExpanded')) { - storedModuleDataList = Storage.Persistent.get('moduleData.list.gridelementsExpanded'); - } - - var expandConfig = {}; - $(container.split(',')).each(function (el, id) { - if (id > 0) { - expandConfig[id] = isExpanded; - if (isExpanded === 1) { - $('[data-uid=' + id + ']').find('.t3js-toggle-gridelements-list').addClass('open-gridelements-container'); - $('[data-trigger-container=' + id + ']').addClass('expanded'); - } else { - $('[data-uid=' + id + ']').find('.t3js-toggle-gridelements-list').removeClass('open-gridelements-container'); - $('[data-trigger-container=' + id + ']').removeClass('expanded'); - } - } - }); - - storedModuleDataList = $.extend(true, storedModuleDataList, expandConfig); - Storage.Persistent.set('moduleData.list.gridelementsExpanded', storedModuleDataList); - - }); - - }; - - /** - * activates the toggle icons to open listings of nested grid container structure in the list module - */ - OnReady.activateGridExpander = function () { - $(document).on('click', AjaxDataHandler.identifier.gridelementToggle, function (evt) { - evt.preventDefault(); - - var $me = $(this), - container = $me.closest('tr').data('uid'), - isExpanded = $me.data('state') === 'expanded'; - - // Store collapse state in UC - var storedModuleDataList = {}; - - if (Storage.Persistent.isset('moduleData.list.gridelementsExpanded')) { - storedModuleDataList = Storage.Persistent.get('moduleData.list.gridelementsExpanded'); - } - - var expandConfig = {}; - expandConfig[container] = isExpanded ? 0 : 1; - - storedModuleDataList = $.extend(true, storedModuleDataList, expandConfig); - Storage.Persistent.set('moduleData.list.gridelementsExpanded', storedModuleDataList).done(function () { - $me.data('state', isExpanded ? 'collapsed' : 'expanded'); - }); - - $(this).toggleClass('open-gridelements-container'); - var originalTitle = $(this).attr('data-original-title'); - $(this).attr('data-original-title', $(this).attr('data-toggle-title')); - $(this).attr('data-toggle-title', originalTitle); - $(this).blur(); - - $('[data-trigger-container=' + $(this).closest('tr').data('uid') + ']').toggleClass('expanded').find('.open-gridelements-container').click(); - }); - - }; - - $(OnReady.initialize); - return OnReady; + } + } + OnReady.setAllowedParameters($(this), colPos); + } + }); + }; + + /** + * sets the parameters for allowed element types to the add new content links of the original page module + */ + OnReady.setAllowedParameters = function (pageColumn, colPos) { + pageColumn.find('.t3js-page-new-ce:not(".t3js-page-new-ce-allowed") a').each(function () { + if (typeof $(this).attr('href') !== 'undefined') { + $(this).attr('href', $(this).attr('href').replace( + '&uid_pid', + (top.pageColumnsAllowed[colPos] ? ('&tx_gridelements_allowed=' + window.btoa(JSON.stringify(top.pageColumnsAllowed[colPos]))) : '') + + (top.pageColumnsDisallowed[colPos] ? ('&tx_gridelements_disallowed=' + window.btoa(JSON.stringify(top.pageColumnsDisallowed[colPos]))) : '') + + '&uid_pid' + )); + } + }); + }; + + /** + * activates the arrow icons to show/hide content previews within a certain grid column + */ + OnReady.activateAllCollapseIcons = function () { + OnReady.activateCollapseIcons(); + var lastIcon = $('.module-docheader-bar-column-left .btn-group .icon').last().parent(); + var addNewIcon = $('.t3js-toggle-gridelements-column').first(); + var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm t3js-gridcolumn-toggle t3js-gridcolumn-expand').insertAfter(lastIcon); + newIcon.contents().filter(function () { + return (this.nodeType === 3); + }).remove(); + newIcon.find('.icon-actions-view-list-collapse').remove(); + newIcon.removeAttr('onclick').attr('title', 'Expand all grid columns'); + var newIcon = addNewIcon.clone().attr('class', 'btn btn-default btn-sm t3js-gridcolumn-toggle').insertAfter(lastIcon); + newIcon.contents().filter(function () { + return (this.nodeType === 3); + }).remove(); + newIcon.find('.icon-actions-view-list-expand').remove(); + newIcon.removeAttr('onclick').attr('title', 'Collapse all grid columns'); + $(document).on('click', '.t3js-gridcolumn-toggle', function (evt) { + evt.preventDefault(); + + var $me = $(this), + collapsed = $me.hasClass('t3js-gridcolumn-expand') ? 0 : 1; + + // Store collapse state in UC + var storedModuleDataPage = {}; + + if (Storage.Persistent.isset('moduleData.page.gridelementsCollapsedColumns')) { + storedModuleDataPage = Storage.Persistent.get('moduleData.list.gridelementsExpanded'); + } + + var collapseConfig = {}; + $('[data-columnkey]').each(function () { + collapseConfig[$(this).data('columnkey')] = collapsed; + $(this).removeClass('collapsed', 'expanded'); + $(this).addClass(collapsed ? 'collapsed' : 'expanded'); + }); + + storedModuleDataPage = $.extend(true, storedModuleDataPage, collapseConfig); + Storage.Persistent.set('moduleData.page.gridelementsCollapsedColumns', storedModuleDataPage); + + }); + }; + + /** + * activates the arrow icons to show/hide content previews within a certain grid column + */ + OnReady.activateCollapseIcons = function () { + $(document).on('click', AjaxDataHandler.identifier.gridelementColumnToggle, function (evt) { + evt.preventDefault(); + + var $me = $(this), + columnKey = $me.closest('.t3js-page-column').data('columnkey'), + isExpanded = $me.data('state') === 'expanded'; + + // Store collapse state in UC + var storedModuleDataPage = {}; + + if (Storage.Persistent.isset('moduleData.page.gridelementsCollapsedColumns')) { + storedModuleDataPage = Storage.Persistent.get('moduleData.page.gridelementsCollapsedColumns'); + } + + var expandConfig = {}; + expandConfig[columnKey] = isExpanded ? 1 : 0; + + storedModuleDataPage = $.extend(true, storedModuleDataPage, expandConfig); + Storage.Persistent.set('moduleData.page.gridelementsCollapsedColumns', storedModuleDataPage).done(function () { + $me.data('state', isExpanded ? 'collapsed' : 'expanded'); + }); + + $me.closest('.t3-grid-cell').toggleClass('collapsed', 'expanded'); + var originalTitle = $me.attr('title'); + $me.attr('title', $me.attr('data-toggle-title')); + $me.attr('data-toggle-title', originalTitle); + $me.blur(); + + }); + + $('.t3-page-column-header-icons').each(function () { + $(this).addClass('btn-group btn-group-sm'); + $(this).find('a').addClass('btn btn-default'); + }); + }; + + /** + * generates the paste into / paste after modal + */ + OnReady.copyFromAnotherPage = function (element) { + var url = top.backPath + top.browserUrl + '&mode=db&bparams=' + element.parent().attr('id') + '|||tt_content|'; + OnReady.openedPopupWindow = window.open(url, 'Typo3WinBrowser', 'height=600,width=800,status=0,menubar=0,resizable=1,scrollbars=1'); + OnReady.openedPopupWindow.focus(); + }; + + /** + * gives back the data from the popup window to the copy action + */ + if (!$('.typo3-TCEforms').length) { + OnReady.setSelectOptionFromExternalSource = setFormValueFromBrowseWin = function (elementId, tableUid) { + tableUid = tableUid.replace('tt_content_', '') * 1; + DragDrop.onDrop(tableUid, $('#' + elementId).find('.t3js-paste-new'), 'copyFromAnotherPage'); + } + } + + /** + * activates the toggle icons to open listings of nested grid container structure in the list module + */ + OnReady.activateAllGridExpander = function () { + OnReady.activateGridExpander(); + $(document).on('click', AjaxDataHandler.identifier.allGridelementsToggle, function (evt) { + evt.preventDefault(); + + var $me = $(this), + container = '0,' + $me.data('container-ids'), + isExpanded = this.id === 't3-gridelements-expand-all' ? 1 : 0; + + // Store collapse state in UC + var storedModuleDataList = {}; + + if (Storage.Persistent.isset('moduleData.list.gridelementsExpanded')) { + storedModuleDataList = Storage.Persistent.get('moduleData.list.gridelementsExpanded'); + } + + var expandConfig = {}; + $(container.toString().split(',')).each(function (el, id) { + if (id > 0) { + expandConfig[id] = isExpanded; + if (isExpanded === 1) { + $('[data-uid=' + id + ']').find('.t3js-toggle-gridelements-list').addClass('open-gridelements-container'); + $('[data-trigger-container=' + id + ']').addClass('expanded'); + } else { + $('[data-uid=' + id + ']').find('.t3js-toggle-gridelements-list').removeClass('open-gridelements-container'); + $('[data-trigger-container=' + id + ']').removeClass('expanded'); + } + } + }); + + storedModuleDataList = $.extend(true, storedModuleDataList, expandConfig); + Storage.Persistent.set('moduleData.list.gridelementsExpanded', storedModuleDataList); + + }); + + }; + + /** + * activates the toggle icons to open listings of nested grid container structure in the list module + */ + OnReady.activateGridExpander = function () { + $(document).on('click', AjaxDataHandler.identifier.gridelementToggle, function (evt) { + evt.preventDefault(); + + var $me = $(this), + container = $me.closest('tr').data('uid'), + isExpanded = $me.data('state') === 'expanded'; + + // Store collapse state in UC + var storedModuleDataList = {}; + + if (Storage.Persistent.isset('moduleData.list.gridelementsExpanded')) { + storedModuleDataList = Storage.Persistent.get('moduleData.list.gridelementsExpanded'); + } + + var expandConfig = {}; + expandConfig[container] = isExpanded ? 0 : 1; + + storedModuleDataList = $.extend(true, storedModuleDataList, expandConfig); + Storage.Persistent.set('moduleData.list.gridelementsExpanded', storedModuleDataList).done(function () { + $me.data('state', isExpanded ? 'collapsed' : 'expanded'); + }); + + $(this).toggleClass('open-gridelements-container'); + var originalTitle = $(this).attr('data-original-title'); + $(this).attr('data-original-title', $(this).attr('data-toggle-title')); + $(this).attr('data-toggle-title', originalTitle); + $(this).blur(); + + $('[data-trigger-container=' + $(this).closest('tr').data('uid') + ']').toggleClass('expanded').find('.open-gridelements-container').click(); + }); + + }; + + $(OnReady.initialize); + return OnReady; }); From 0b0041e87cfffc8b1c6191d3acced903474e2a62 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Tue, 3 Apr 2018 18:03:04 +0200 Subject: [PATCH 32/61] [TASK] Make Gridelements available for frontend editing Change-Id: I0b387a9737cd28629bb94bfe7d32200969bb4fb1 Reviewed-on: https://review.typo3.org/56523 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- ext_tables.php | 79 ++++++++++++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 41 deletions(-) diff --git a/ext_tables.php b/ext_tables.php index 975f280..539ff7b 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -7,47 +7,57 @@ $_EXTCONF = unserialize($_EXTCONF); if (TYPO3_MODE === 'BE') { - \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_gridelements_backend_layout'); include_once(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('gridelements') . 'Classes/Backend/TtContent.php'); $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_pagerenderer.php']['render-preProcess'][] = 'GridElementsTeam\\Gridelements\\Hooks\\PageRenderer->addJSCSS'; - $GLOBALS['TYPO3_CONF_VARS']['BE']['ContextMenu']['ItemProviders'][1487270751] = \GridElementsTeam\Gridelements\ContextMenu\ItemProvider::class; - // Hooks - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem'][] = \GridElementsTeam\Gridelements\Hooks\DrawItem::class; + $GLOBALS['TBE_STYLES']['skins']['gridelements']['name'] = 'gridelements'; + $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_structure'] = 'EXT:' . ($_EXTKEY) . '/Resources/Public/Backend/Css/Skin/'; - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms']['db_new_content_el']['wizardItemsHook'][] = \GridElementsTeam\Gridelements\Hooks\WizardItems::class; + if ($_EXTCONF['additionalStylesheet'] && \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr($_EXTCONF['additionalStylesheet'])) { + $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_additional'] = $_EXTCONF['additionalStylesheet']; + } - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'][] = \GridElementsTeam\Gridelements\Hooks\DataHandler::class; - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \GridElementsTeam\Gridelements\Hooks\DataHandler::class; - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['moveRecordClass'][] = \GridElementsTeam\Gridelements\Hooks\DataHandler::class; +} - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['getFlexFormDSClass'][] = \GridElementsTeam\Gridelements\Hooks\BackendUtilityGridelements::class; +\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_gridelements_backend_layout'); - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tx_templavoila_api']['apiIsRunningTCEmain'] = true; +// Hooks +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processCmdmapClass'][] = \GridElementsTeam\Gridelements\Hooks\DataHandler::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['processDatamapClass'][] = \GridElementsTeam\Gridelements\Hooks\DataHandler::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tcemain.php']['moveRecordClass'][] = \GridElementsTeam\Gridelements\Hooks\DataHandler::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms']['db_new_content_el']['wizardItemsHook'][] = \GridElementsTeam\Gridelements\Hooks\WizardItems::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem'][] = \GridElementsTeam\Gridelements\Hooks\DrawItem::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_befunc.php']['getFlexFormDSClass'][] = \GridElementsTeam\Gridelements\Hooks\BackendUtilityGridelements::class; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tx_templavoila_api']['apiIsRunningTCEmain'] = true; +$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class]['flexParsing']['gridelements'] = \GridElementsTeam\Gridelements\Hooks\TtContentFlexForm::class; + +if ($_EXTCONF['nestingInListModule']) { + $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['actions'][] = \GridElementsTeam\Gridelements\Hooks\DatabaseRecordList::class; +} - $GLOBALS['TYPO3_USER_SETTINGS']['columns']['dragAndDropHideNewElementWizardInfoOverlay'] = [ - 'type' => 'check', - 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:dragAndDropHideNewElementWizardInfoOverlay', - ]; +$GLOBALS['TYPO3_USER_SETTINGS']['columns']['dragAndDropHideNewElementWizardInfoOverlay'] = [ + 'type' => 'check', + 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:dragAndDropHideNewElementWizardInfoOverlay', +]; - $GLOBALS['TYPO3_USER_SETTINGS']['columns']['hideColumnHeaders'] = [ - 'type' => 'check', - 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:hideColumnHeaders', - ]; +$GLOBALS['TYPO3_USER_SETTINGS']['columns']['hideColumnHeaders'] = [ + 'type' => 'check', + 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:hideColumnHeaders', +]; - $GLOBALS['TYPO3_USER_SETTINGS']['columns']['hideContentPreview'] = [ - 'type' => 'check', - 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:hideContentPreview', - ]; +$GLOBALS['TYPO3_USER_SETTINGS']['columns']['hideContentPreview'] = [ + 'type' => 'check', + 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:hideContentPreview', +]; - $GLOBALS['TYPO3_USER_SETTINGS']['columns']['showGridInformation'] = [ - 'type' => 'check', - 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:showGridInformation', - ]; +$GLOBALS['TYPO3_USER_SETTINGS']['columns']['showGridInformation'] = [ + 'type' => 'check', + 'label' => 'LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:showGridInformation', +]; - $GLOBALS['TYPO3_USER_SETTINGS']['showitem'] .= ', +$GLOBALS['TYPO3_USER_SETTINGS']['showitem'] .= ', --div--;LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:gridElements, dragAndDropHideNewElementWizardInfoOverlay, hideColumnHeaders, @@ -55,20 +65,7 @@ showGridInformation '; - $GLOBALS['TBE_STYLES']['skins']['gridelements']['name'] = 'gridelements'; - $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_structure'] = 'EXT:' . ($_EXTKEY) . '/Resources/Public/Backend/Css/Skin/'; - if ($_EXTCONF['additionalStylesheet'] && \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr($_EXTCONF['additionalStylesheet'])) { - $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_additional'] = $_EXTCONF['additionalStylesheet']; - } - -} - -// Hooks -$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools::class]['flexParsing']['gridelements'] = \GridElementsTeam\Gridelements\Hooks\TtContentFlexForm::class; - -if ($_EXTCONF['nestingInListModule']) { - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['actions'][] = \GridElementsTeam\Gridelements\Hooks\DatabaseRecordList::class; -} +$GLOBALS['TYPO3_CONF_VARS']['BE']['ContextMenu']['ItemProviders'][1487270751] = \GridElementsTeam\Gridelements\ContextMenu\ItemProvider::class; $iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class); $iconRegistry->registerIcon('gridelements-default', \TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class, [ From 0c8fe6de21ad8fd26995cf31e0cd64c14ec69044 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Tue, 3 Apr 2018 18:08:05 +0200 Subject: [PATCH 33/61] [TASK] Make Gridelements available for frontend editing Change-Id: I0f646025ca39cb570b695cf3db21b38fb6b7f67f Reviewed-on: https://review.typo3.org/56524 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit d056f4628afb0944b97edd4c58a821ba6fc14055) Reviewed-on: https://review.typo3.org/56525 --- ext_localconf.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/ext_localconf.php b/ext_localconf.php index 072ce6b..1e39a7d 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -6,17 +6,15 @@ $_EXTCONF = unserialize($_EXTCONF); -if (TYPO3_MODE === 'BE') { - $GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'][1488914437] = [ - 'nodeName' => 'belayoutwizard', - 'priority' => 50, - 'class' => \GridElementsTeam\Gridelements\Wizard\GridelementsBackendLayoutWizardElement::class, - ]; +$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['nodeRegistry'][1488914437] = [ + 'nodeName' => 'belayoutwizard', + 'priority' => 50, + 'class' => \GridElementsTeam\Gridelements\Wizard\GridelementsBackendLayoutWizardElement::class, +]; - // XCLASS - if ($_EXTCONF['nestingInListModule']) { - $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class] = ['className' => \GridElementsTeam\Gridelements\Xclass\DatabaseRecordList::class]; - } +// XCLASS +if ($_EXTCONF['nestingInListModule']) { + $GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class] = ['className' => \GridElementsTeam\Gridelements\Xclass\DatabaseRecordList::class]; } \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addUserTSConfig(' From 07e056e20c88e04e9f230f1291ad1c3f405b9266 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Tue, 3 Apr 2018 18:34:17 +0200 Subject: [PATCH 34/61] [TASK] Raise version numbers before releasing to TER Change-Id: I5ad3bb6ea0d255362e21957ae9938276f5cf5103 Reviewed-on: https://review.typo3.org/56528 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 5c4a026b2776211fc54778fe20fc8caa819c062b) Reviewed-on: https://review.typo3.org/56529 --- composer.json | 2 +- ext_emconf.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 00ecf4b..8eccd59 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "gridelementsteam/gridelements", "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", - "version": "8.1.0", + "version": "8.2.0", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", "license": "GPL-2.0-or-later", diff --git a/ext_emconf.php b/ext_emconf.php index e1c11d2..ca63c31 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,7 +13,7 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.1.0', + 'version' => '8.2.0', 'priority' => 'bottom', 'module' => '', 'state' => 'stable', From 0818369a4d9cac7140e95f75ce772f7c66a926ad Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 4 Apr 2018 09:47:53 +0200 Subject: [PATCH 35/61] [BUGFIX] make localization panels only for specific tables Change-Id: I1868d8a1d2669ffa6529ddd63a35fac9542fed6b Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56534 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit a897a5fe28794bbd2b685812552fff5dee240307) Reviewed-on: https://review.typo3.org/56536 --- Classes/Xclass/DatabaseRecordList.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Classes/Xclass/DatabaseRecordList.php b/Classes/Xclass/DatabaseRecordList.php index 469af89..8ab2fc4 100644 --- a/Classes/Xclass/DatabaseRecordList.php +++ b/Classes/Xclass/DatabaseRecordList.php @@ -34,6 +34,7 @@ use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\CMS\Core\Type\Bitmask\Permission; use TYPO3\CMS\Core\Utility\CsvUtility; +use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; @@ -1184,7 +1185,6 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent // Preparing and getting the data-array $theData = []; $localizationMarkerClass = ''; - list($lC1, $lC2) = $this->makeLocalizationPanel($table, $row); foreach ($this->fieldArray as $fCol) { if ($fCol == $titleCol) { $recTitle = BackendUtility::getRecordTitle($table, $row, false, true); @@ -1239,6 +1239,7 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent } elseif ($fCol === '_CLIPBOARD_') { $theData[$fCol] = $this->makeClip($table, $row); } elseif ($fCol === '_LOCALIZATION_') { + list($lC1, $lC2) = $this->makeLocalizationPanel($table, $row); $theData[$fCol] = $lC1; } elseif ($fCol !== '_LOCALIZATION_b') { $tmpProc = BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 100, $row['uid']); @@ -1247,6 +1248,7 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent $row[$fCol] = BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 0, $row['uid']); } } elseif ($fCol === '_LOCALIZATION_b') { + list($lC1, $lC2) = $this->makeLocalizationPanel($table, $row); $theData[$fCol] = $lC2; } else { $theData[$fCol] = htmlspecialchars(BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 0, @@ -2069,7 +2071,7 @@ public function makeLocalizationPanel($table, $row) if ((int)$row[$GLOBALS['TCA'][$table]['ctrl']['languageField']] === -1) { return $out; } - + DebugUtility::debug($this->selFieldList); $translations = $this->translateTools->translationInfo($table, $row['uid'], 0, $row, $this->selFieldList); if (is_array($translations)) { $this->translations = $translations['translations']; From 5d936d2f523974a907d2b4ef26ef4a3dee46c12d Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 4 Apr 2018 09:50:51 +0200 Subject: [PATCH 36/61] [BUGFIX] remove debug output Change-Id: I3951a6e0f435e05198e5bf2bd196c05fe8efa558 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56535 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 5074c19fbb68fcb54b6eaa4660c86882d3432a9d) Reviewed-on: https://review.typo3.org/56537 --- Classes/Xclass/DatabaseRecordList.php | 2 -- 1 file changed, 2 deletions(-) diff --git a/Classes/Xclass/DatabaseRecordList.php b/Classes/Xclass/DatabaseRecordList.php index 8ab2fc4..41e99db 100644 --- a/Classes/Xclass/DatabaseRecordList.php +++ b/Classes/Xclass/DatabaseRecordList.php @@ -34,7 +34,6 @@ use TYPO3\CMS\Core\Messaging\FlashMessageService; use TYPO3\CMS\Core\Type\Bitmask\Permission; use TYPO3\CMS\Core\Utility\CsvUtility; -use TYPO3\CMS\Core\Utility\DebugUtility; use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\HttpUtility; @@ -2071,7 +2070,6 @@ public function makeLocalizationPanel($table, $row) if ((int)$row[$GLOBALS['TCA'][$table]['ctrl']['languageField']] === -1) { return $out; } - DebugUtility::debug($this->selFieldList); $translations = $this->translateTools->translationInfo($table, $row['uid'], 0, $row, $this->selFieldList); if (is_array($translations)) { $this->translations = $translations['translations']; From ae8c71f8708e7fbbb96f3956b83477484642ebce Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Wed, 4 Apr 2018 09:55:37 +0200 Subject: [PATCH 37/61] [BUGFIX] fix regression introduced with 8.2.0 Change-Id: I8d4090832d5df7a6da7617dc73a5bedb1a6c3577 Reviewed-on: https://review.typo3.org/56538 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 98bb8f01f972da34466fb9a445c8656dfc83e0ea) Reviewed-on: https://review.typo3.org/56539 --- Classes/Xclass/DatabaseRecordList.php | 2 +- composer.json | 2 +- ext_emconf.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Classes/Xclass/DatabaseRecordList.php b/Classes/Xclass/DatabaseRecordList.php index 41e99db..111b53c 100644 --- a/Classes/Xclass/DatabaseRecordList.php +++ b/Classes/Xclass/DatabaseRecordList.php @@ -1184,6 +1184,7 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent // Preparing and getting the data-array $theData = []; $localizationMarkerClass = ''; + $lC2 = ''; foreach ($this->fieldArray as $fCol) { if ($fCol == $titleCol) { $recTitle = BackendUtility::getRecordTitle($table, $row, false, true); @@ -1247,7 +1248,6 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent $row[$fCol] = BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 0, $row['uid']); } } elseif ($fCol === '_LOCALIZATION_b') { - list($lC1, $lC2) = $this->makeLocalizationPanel($table, $row); $theData[$fCol] = $lC2; } else { $theData[$fCol] = htmlspecialchars(BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 0, diff --git a/composer.json b/composer.json index 8eccd59..219b282 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "gridelementsteam/gridelements", "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", - "version": "8.2.0", + "version": "8.2.1", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", "license": "GPL-2.0-or-later", diff --git a/ext_emconf.php b/ext_emconf.php index ca63c31..73f7c8b 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,7 +13,7 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.2.0', + 'version' => '8.2.1', 'priority' => 'bottom', 'module' => '', 'state' => 'stable', From c06d596b474679fec41fa16bfca1553aba208425 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 3 May 2018 12:09:09 +0200 Subject: [PATCH 38/61] [BUGFIX] Remove debug output from unused element subheader Change-Id: I56bbe517ef6b136c359a20e5a7c00b00290121f8 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56837 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 76f909f7c53e0310334482e31f41d8c9dc4b7521) Reviewed-on: https://review.typo3.org/56838 --- Classes/DataHandler/AfterDatabaseOperations.php | 1 - 1 file changed, 1 deletion(-) diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index f1b991b..a101031 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -125,7 +125,6 @@ public function setUnusedElements(array &$fieldArray) ) ->set('colPos', -2) ->set('backupColPos', -1) - ->set('subheader', serialize($this->layoutSetup)) ->execute(); array_flip($childElementsInUnavailableColumns); } From dbaca32ccff41b37ca1ca21c39aca71e857425ca Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 3 May 2018 12:22:59 +0200 Subject: [PATCH 39/61] [BUGFIX] Make sure to avoid named parameters when assigning fields directly Change-Id: Ibaa56f6db675e6a12960e934b0e6b7a26c7a812f Resolves: #84687 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56839 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 7494a5b8b0668954b6eb3a194a59830d5ff1e197) Reviewed-on: https://review.typo3.org/56840 --- Classes/DataHandler/AfterDatabaseOperations.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index a101031..cd21715 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -224,7 +224,7 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder->createNamedParameter($elementsInUnavailableColumns, Connection::PARAM_INT_ARRAY)) ) - ->set('backupColPos', $queryBuilder->quoteIdentifier('colPos')) + ->set('backupColPos', $queryBuilder->quoteIdentifier('colPos'), false) ->set('colPos', -2) ->execute(); array_flip($elementsInUnavailableColumns); @@ -257,7 +257,7 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder->createNamedParameter($elementsInAvailableColumns, Connection::PARAM_INT_ARRAY)) ) - ->set('colPos', $queryBuilder->quoteIdentifier('backupColPos')) + ->set('colPos', $queryBuilder->quoteIdentifier('backupColPos'), false) ->set('backupColPos', -2) ->execute(); array_flip($elementsInAvailableColumns); @@ -334,7 +334,7 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder->createNamedParameter($subPageElementsInAvailableColumns, Connection::PARAM_INT_ARRAY)) ) - ->set('colPos', $queryBuilder->quoteIdentifier('backupColPos')) + ->set('colPos', $queryBuilder->quoteIdentifier('backupColPos'), false) ->set('backupColPos', -2) ->execute(); array_flip($subPageElementsInAvailableColumns); From e35f2376a9e857f3fb785665d0943ac8f8367cbc Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 3 May 2018 12:36:16 +0200 Subject: [PATCH 40/61] [TASK] Adjust variable type after interface fix in the core Change-Id: I7292716d6b2df611099bd9789f89766527946389 Resolves: #84673 Release: master, 8-0 Reviewed-on: https://review.typo3.org/56841 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit e8dce1eda8ee5f3259c55426f8547e15d3c5df15) Reviewed-on: https://review.typo3.org/56842 --- Classes/Hooks/DrawItem.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 6aa4318..c8c8e47 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -792,7 +792,7 @@ protected function tt_content_drawFooter(PageLayoutView $parentObject, array $ro throw new \UnexpectedValueException($hookClass . ' must implement interface ' . PageLayoutViewDrawFooterHookInterface::class, 1404378171); } - $hookObject->preProcess($parentObject, implode(',', $info), $row); + $hookObject->preProcess($parentObject, $info, $row); } } From 01d7c8385d2397a08dea0868cfa0235b34dddf74 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 3 May 2018 12:43:32 +0200 Subject: [PATCH 41/61] [BUGFIX] Make sure values are integers for strict comparison Change-Id: Ic438098a11a05ce660957d604a3611d86de2376e Resolves: #84837 Release: master, 8-0 Reviewed-on: https://review.typo3.org/56845 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 5181b8a41e960efbfd327ba10db39ed4120c2a25) Reviewed-on: https://review.typo3.org/56846 --- Classes/Hooks/DrawItem.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index c8c8e47..23583cf 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -896,7 +896,7 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag { $specificIds = $this->helper->getSpecificIds($row); $grid = '
'; - if ($layout['frame'] || $this->helper->getBackendUser()->uc['showGridInformation'] === 1) { + if ($layout['frame'] || (int)$this->helper->getBackendUser()->uc['showGridInformation'] === 1) { $grid .= '

' . BackendUtility::wrapInHelp( 'tx_gridelements_backend_layouts', From b826690a7835cd80aeb8f81ebad648e213fd91bb Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 3 May 2018 15:47:25 +0200 Subject: [PATCH 42/61] [BUGFIX] Get default language only when sys_language_content is not set Change-Id: Id557eacf0de8e7ddd570124708963451a69bc762 Resolves: #84748 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/56852 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Plugin/Gridelements.php | 33 ++++++++++++++++++++++----------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/Classes/Plugin/Gridelements.php b/Classes/Plugin/Gridelements.php index b53ece5..5480cea 100644 --- a/Classes/Plugin/Gridelements.php +++ b/Classes/Plugin/Gridelements.php @@ -298,17 +298,18 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') ->from('tt_content') ->where( $queryBuilder->expr()->orX( - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, 0], Connection::PARAM_INT_ARRAY)) - ), + empty($this->getTSFE()->sys_language_content) ? + $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->in('sys_language_uid', + $queryBuilder->createNamedParameter([-1, 0], Connection::PARAM_INT_ARRAY)) + ) : [], $this->getTSFE()->sys_language_content > 0 && $this->getTSFE()->sys_language_contentOL && isset($this->cObj->data['_LOCALIZED_UID']) && @@ -317,6 +318,11 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter((int)$this->cObj->data['_LOCALIZED_UID'], \PDO::PARAM_INT)), + $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), $queryBuilder->expr()->in('sys_language_uid', $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], Connection::PARAM_INT_ARRAY)), @@ -327,6 +333,11 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') $queryBuilder->expr()->andX( $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), $queryBuilder->expr()->in('sys_language_uid', $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], Connection::PARAM_INT_ARRAY)) From 34e8a98e196981e862cf3ea6c9f535a8140e749b Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 3 May 2018 16:30:37 +0200 Subject: [PATCH 43/61] [BUGFIX] remove new element buttons from page columns as soon as maxitems is reached Change-Id: I893012628b0de3c59098a861cca4b56c05be03a4 Resolves: #84592 Release: master, 8-0 Reviewed-on: https://review.typo3.org/56854 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Resources/Public/JavaScript/GridElementsOnReady.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Resources/Public/JavaScript/GridElementsOnReady.js b/Resources/Public/JavaScript/GridElementsOnReady.js index 0ace84c..52a2fe1 100644 --- a/Resources/Public/JavaScript/GridElementsOnReady.js +++ b/Resources/Public/JavaScript/GridElementsOnReady.js @@ -259,7 +259,8 @@ define(['jquery', 'TYPO3/CMS/Backend/AjaxDataHandler', 'TYPO3/CMS/Backend/Storag $(this).addClass('t3-page-ce-danger'); } }); - } else if ($children.length === top.pageColumnsMaxitems[colPos]) { + } else if ($children.length === Number(top.pageColumnsMaxitems[colPos])) { + $(this).addClass('t3-page-ce-disable-new-ce'); $(this).find('> .t3-grid-cell-number-of-items').addClass('warning'); } else { $(this).find('> .t3-grid-cell-number-of-items').addClass('success'); From 6c7cf43d7c4ec604834574e5aa36a690a3d269e9 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 18 Jun 2018 10:45:23 +0200 Subject: [PATCH 44/61] [TASK] Raise version numbers before releasing to TER Change-Id: I322ba97f579db92d20e77fc0bc618e14880bfe5c Reviewed-on: https://review.typo3.org/57257 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- composer.json | 2 +- ext_emconf.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 219b282..fc91b9b 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "gridelementsteam/gridelements", "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", - "version": "8.2.1", + "version": "8.2.2", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", "license": "GPL-2.0-or-later", diff --git a/ext_emconf.php b/ext_emconf.php index 73f7c8b..6c23054 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,7 +13,7 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.2.1', + 'version' => '8.2.2', 'priority' => 'bottom', 'module' => '', 'state' => 'stable', From 32adfe59408992b4d2c9a4a47926474ee58c18ed Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 18 Jun 2018 17:59:25 +0200 Subject: [PATCH 45/61] [BUGFIX] Fetch children of translated containers regardless of l18n_parent Change-Id: I482358b87c5a687bca8cd782f11ab1e22c58d2a3 Resolves: #85303 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/57266 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Plugin/Gridelements.php | 99 ++++++++++++++++++--------------- 1 file changed, 55 insertions(+), 44 deletions(-) diff --git a/Classes/Plugin/Gridelements.php b/Classes/Plugin/Gridelements.php index 5480cea..f907077 100644 --- a/Classes/Plugin/Gridelements.php +++ b/Classes/Plugin/Gridelements.php @@ -293,55 +293,66 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') } $csvColumns = GeneralUtility::intExplode(',', $csvColumns); $queryBuilder = $this->getQueryBuilder(); + $where = $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->in('sys_language_uid', + $queryBuilder->createNamedParameter([-1, 0], Connection::PARAM_INT_ARRAY)) + ); + $translationOverlay = []; + $translationNoOverlay = []; + + if ($this->getTSFE()->sys_language_content > 0) { + if ($this->getTSFE()->sys_language_contentOL) { + if (isset($this->cObj->data['_LOCALIZED_UID']) && $this->cObj->data['_LOCALIZED_UID'] !== 0) { + $element = (int)$this->cObj->data['_LOCALIZED_UID']; + } + if ($element) { + $translationOverlay = $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->in('sys_language_uid', + $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], + Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->eq('l18n_parent', + $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) + ); + } + } else { + if ($element) { + $translationNoOverlay = $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq('tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), + $queryBuilder->expr()->in('tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->in('sys_language_uid', + $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], + Connection::PARAM_INT_ARRAY)) + ); + } + } + } + $children = $queryBuilder ->select('*') ->from('tt_content') ->where( $queryBuilder->expr()->orX( - empty($this->getTSFE()->sys_language_content) ? - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, 0], Connection::PARAM_INT_ARRAY)) - ) : [], - $this->getTSFE()->sys_language_content > 0 && - $this->getTSFE()->sys_language_contentOL && - isset($this->cObj->data['_LOCALIZED_UID']) && - (int)$this->cObj->data['_LOCALIZED_UID'] !== 0 ? - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$this->cObj->data['_LOCALIZED_UID'], - \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], - Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->eq('l18n_parent', - $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) - ) : [], - $this->getTSFE()->sys_language_content > 0 ? - $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], - Connection::PARAM_INT_ARRAY)) - ) : [] + $where, + $translationOverlay, + $translationNoOverlay ) ) ->orderBy('sorting', 'ASC') From fc617c5e2359613afec7a881ca93fcff53a1c545 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 18 Jun 2018 20:23:18 +0200 Subject: [PATCH 46/61] [TASK] Raise version number before releasing to TER Change-Id: I58f1711a296aedfa4bed82825aa0b2324c71214d Reviewed-on: https://review.typo3.org/57268 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- composer.json | 2 +- ext_emconf.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index fc91b9b..b0f9d8c 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "gridelementsteam/gridelements", "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", - "version": "8.2.2", + "version": "8.2.3", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", "license": "GPL-2.0-or-later", diff --git a/ext_emconf.php b/ext_emconf.php index 6c23054..89f1cc7 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,7 +13,7 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.2.2', + 'version' => '8.2.3', 'priority' => 'bottom', 'module' => '', 'state' => 'stable', From 26fd6d7535fb9fd9022b90fb0f89e5f4d8e9c0de Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 25 Jun 2018 11:25:14 +0200 Subject: [PATCH 47/61] [TASK] Add dependencies to make sure those are loaded before GE Change-Id: I9e7eabf09440443091a4db2e5dc39a3bfefe650a Resolves: #85314 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/57364 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- composer.json | 10 +++++++++- ext_emconf.php | 8 ++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index b0f9d8c..8294714 100644 --- a/composer.json +++ b/composer.json @@ -10,7 +10,15 @@ "issues": "https://forge.typo3.org/projects/extension-gridelements2/issues" }, "require": { - "typo3/cms-core": ">=8.7.0,<9.0" + "typo3/cms-core": "^8.7", + "typo3/cms-backend": "^8.7", + "typo3/cms-recordlist": "^8.7", + "typo3/cms-frontend": "^8.7", + "typo3/cms-lang": "^8.7" + }, + "conflict": { + "templavoila": "*", + "jfmulticontent": "*" }, "replace": { "gridelements": "self.version", diff --git a/ext_emconf.php b/ext_emconf.php index 89f1cc7..3f40a33 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -26,11 +26,15 @@ 'author_company' => '', 'constraints' => [ 'depends' => [ - 'typo3' => '8.7.0-8.99.99', + 'typo3' => '8.7.0-8.7.99', + 'backend' => '8.7.0-8.7.99', + 'recordlist' => '8.7.0-8.7.99', + 'frontend' => '8.7.0-8.7.99', + 'lang' => '8.7.0-8.7.99', ], 'conflicts' => [ 'templavoila' => '', - 'jfmulticontent' => '', + 'jfmulticontent' => '' ], 'suggests' => [], ], From 98e0301f2cce1f7cfecd141840078697742641ed Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 9 Jul 2018 09:56:09 +0200 Subject: [PATCH 48/61] [BUGFIX] Introduce contentUid for DataHandler hooks Change-Id: I8accce0571f804f9495b82ced3edf800641e5cc6 Resolves: #85511 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/57505 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AbstractDataHandler.php | 51 +++++++++++++++---- .../DataHandler/AfterDatabaseOperations.php | 9 ++-- Classes/DataHandler/PreProcessFieldArray.php | 2 +- 3 files changed, 45 insertions(+), 17 deletions(-) diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index 5215c49..a2ab280 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -55,6 +55,11 @@ abstract class AbstractDataHandler */ protected $pageUid; + /** + * @var int + */ + protected $contentUid = 0; + /** * @var DataHandler */ @@ -75,16 +80,39 @@ abstract class AbstractDataHandler public function init($table, $uidPid, DataHandler $dataHandler) { $this->setTable($table); - if ($table === 'tt_content') { - $uidPid = Helper::getInstance()->getPidFromUid($uidPid); + if ($table === 'tt_content' && (int)$uidPid < 0) { + $this->setContentUid(abs($uidPid)); + $pageUid = Helper::getInstance()->getPidFromUid($this->getContentUid()); + $this->setPageUid($pageUid); + } else { + $this->setPageUid((int)$uidPid); } - $this->setPageUid($uidPid); $this->setTceMain($dataHandler); if (!$this->layoutSetup instanceof LayoutSetup) { - $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($uidPid)); + $this->injectLayoutSetup(GeneralUtility::makeInstance(LayoutSetup::class)->init($this->getPageUid())); } } + /** + * getter for contentUid + * + * @return integer contentUid + */ + public function getContentUid() + { + return $this->contentUid; + } + + /** + * setter for contentUid + * + * @param integer $contentUid + */ + public function setContentUid($contentUid) + { + $this->contentUid = $contentUid; + } + /** * setter for dataHandler object * @@ -194,12 +222,14 @@ public function checkAndUpdateTranslatedElements($uid) if (isset($translatedContainers[$translatedElement['sys_language_uid']])) { $updateArray['tx_gridelements_container'] = (int)$translatedContainers[$translatedElement['sys_language_uid']]['uid']; $updateArray['tx_gridelements_columns'] = (int)$currentValues['tx_gridelements_columns']; - } else if ($translatedElement['tx_gridelements_container'] == $currentValues['tx_gridelements_container']) { - $updateArray['tx_gridelements_container'] = (int)$currentValues['tx_gridelements_container']; - $updateArray['tx_gridelements_columns'] = (int)$currentValues['tx_gridelements_columns']; } else { - $updateArray['tx_gridelements_container'] = 0; - $updateArray['tx_gridelements_columns'] = 0; + if ($translatedElement['tx_gridelements_container'] == $currentValues['tx_gridelements_container']) { + $updateArray['tx_gridelements_container'] = (int)$currentValues['tx_gridelements_container']; + $updateArray['tx_gridelements_columns'] = (int)$currentValues['tx_gridelements_columns']; + } else { + $updateArray['tx_gridelements_container'] = 0; + $updateArray['tx_gridelements_columns'] = 0; + } } $updateArray['colPos'] = (int)$currentValues['colPos']; @@ -230,7 +260,7 @@ public function checkAndUpdateTranslatedElements($uid) */ public function getQueryBuilder($table = 'tt_content') { - /**@var $queryBuilder QueryBuilder*/ + /**@var $queryBuilder QueryBuilder */ $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) ->getQueryBuilderForTable($table); $queryBuilder->getRestrictions() @@ -241,7 +271,6 @@ public function getQueryBuilder($table = 'tt_content') return $queryBuilder; } - /** * setter for Connection object * diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index cd21715..629f7f9 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -90,11 +90,10 @@ public function setUnusedElements(array &$fieldArray) $changedSubPageElements = []; if ($this->getTable() === 'tt_content') { - $changedGridElements[$this->getPageUid()] = true; + $changedGridElements[$this->getContentUid()] = true; $childElementsInUnavailableColumns = []; $childElementsInAvailableColumns = []; - $availableColumns = $this->getAvailableColumns($fieldArray['tx_gridelements_backend_layout'], 'tt_content', - $this->getPageUid()); + $availableColumns = $this->getAvailableColumns($fieldArray['tx_gridelements_backend_layout'], 'tt_content'); if (!empty($availableColumns) || $availableColumns === '0') { $availableColumns = GeneralUtility::intExplode(',', $availableColumns); $queryBuilder = $this->getQueryBuilder(); @@ -105,7 +104,7 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder->expr()->andX( $queryBuilder->expr()->gt('tx_gridelements_container', 0), $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT)), + $queryBuilder->createNamedParameter((int)$this->getContentUid(), \PDO::PARAM_INT)), $queryBuilder->expr()->notIn('tx_gridelements_columns', $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY)) ) @@ -137,7 +136,7 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder->expr()->andX( $queryBuilder->expr()->gt('tx_gridelements_container', 0), $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT)), + $queryBuilder->createNamedParameter((int)$this->getContentUid(), \PDO::PARAM_INT)), $queryBuilder->expr()->in('tx_gridelements_columns', $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY)) ) diff --git a/Classes/DataHandler/PreProcessFieldArray.php b/Classes/DataHandler/PreProcessFieldArray.php index f29a68b..56df4f0 100644 --- a/Classes/DataHandler/PreProcessFieldArray.php +++ b/Classes/DataHandler/PreProcessFieldArray.php @@ -276,7 +276,7 @@ public function setFieldEntriesForGridContainers(array &$fieldArray) } } else { if (isset($fieldArray['tx_gridelements_container']) && (int)$fieldArray['tx_gridelements_container'] === 0 && (int)$fieldArray['colPos'] === -1) { - $fieldArray['colPos'] = $this->checkForRootColumn((int)$this->getPageUid()); + $fieldArray['colPos'] = $this->checkForRootColumn((int)$this->getContentUid()); $fieldArray['tx_gridelements_columns'] = 0; $fieldArray['tx_gridelements_container'] = 0; } else { From 1b0028921cf01dbd22c00016b3ff8891d03fa162 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 2 Jul 2018 13:40:36 +0200 Subject: [PATCH 49/61] [BUGFIX] Adjust values after move operations within workspaces Change-Id: I26eb38c014b5ba7204a6bf03a541070ec5af60da Resolves: #83678 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/57440 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- .../DataHandler/AfterDatabaseOperations.php | 41 +++++++++++++++++++ Classes/Hooks/DataHandler.php | 6 ++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index 629f7f9..26a4a02 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -35,6 +35,46 @@ */ class AfterDatabaseOperations extends AbstractDataHandler { + /** + * Function to adjust colPos, container and grid column of an element + * after it has been moved out of or into a container during a workspace operation + * + * @param array $fieldArray The array of fields and values that have been saved to the datamap + * @param int $uid the ID of the record + * @param DataHandler $parentObj The parent object that triggered this hook + */ + public function adjustValuesAfterWorkspaceOperations(array $fieldArray, $uid, DataHandler $parentObj) + { + $workspace = $this->getBackendUser()->workspace; + if ($workspace && (isset($fieldArray['colPos']) || isset($fieldArray['tx_gridelements_container']) || isset($fieldArray['tx_gridelements_columns']))) { + $originalRecord = $parentObj->recordInfo('tt_content', (int)$uid, '*'); + if ($originalRecord['t3ver_state'] === 4) { + $updateArray = []; + $movePlaceholder = BackendUtility::getMovePlaceholder('tt_content', (int)$uid, 'uid', $workspace); + if (isset($fieldArray['colPos'])) { + $updateArray['colPos'] = (int)$fieldArray['colPos']; + } + if (isset($fieldArray['tx_gridelements_container'])) { + $updateArray['tx_gridelements_container'] = (int)$fieldArray['tx_gridelements_container']; + } + if (isset($fieldArray['tx_gridelements_columns'])) { + $updateArray['tx_gridelements_columns'] = (int)$fieldArray['tx_gridelements_columns']; + } + $parentObj->updateDB('tt_content', (int)$movePlaceholder['uid'], $updateArray); + } + } + } + + /** + * Gets the current backend user. + * + * @return \TYPO3\CMS\Core\Authentication\BackendUserAuthentication + */ + public function getBackendUser() + { + return $GLOBALS['BE_USER']; + } + /** * Function to set the colPos of an element depending on * whether it is a child of a parent container or not @@ -415,4 +455,5 @@ public function getSubPagesRecursively($pageUid, array &$subPages) } } } + } diff --git a/Classes/Hooks/DataHandler.php b/Classes/Hooks/DataHandler.php index fc895aa..162ca70 100644 --- a/Classes/Hooks/DataHandler.php +++ b/Classes/Hooks/DataHandler.php @@ -90,7 +90,11 @@ public function processDatamap_afterDatabaseOperations( $hook = GeneralUtility::makeInstance(AfterDatabaseOperations::class); if (strpos($id, 'NEW') !== false) { $id = $parentObj->substNEWwithIDs[$id]; - }; + } else { + if ($table === 'tt_content' && $status === 'update') { + $hook->adjustValuesAfterWorkspaceOperations($fieldArray, $id, $parentObj); + } + } $hook->execute_afterDatabaseOperations($fieldArray, $table, $id, $parentObj); } } From 90a9b557b72b047711c2ee1bb5e3dcc5e1966b71 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 2 Jul 2018 13:48:23 +0200 Subject: [PATCH 50/61] [BUGFIX] Make DrawItem aware of sources and targets for move actions Change-Id: I8ce306906a58e20da61a72088e026da1ca04e5a5 Resolves: #81699 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/57444 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 85 ++++++++++++++++++++++++++++++++++---- 1 file changed, 76 insertions(+), 9 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 23583cf..7223967 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -335,6 +335,51 @@ protected function renderGridColumns( &$head ) { $collectedItems = $this->collectItemsForColumns($parentObject, $colPosValues, $row); + $workspace = $this->helper->getBackendUser()->workspace; + if ($workspace > 0) { + $workspacePreparedItems = []; + $moveUids = []; + foreach ($collectedItems as $item) { + if ($item['t3ver_state'] === 3) { + $moveUids[] = (int)$item['t3ver_move_id']; + $item = BackendUtility::getRecordWSOL('tt_content', (int)$item['uid']); + $movePlaceholder = BackendUtility::getMovePlaceholder('tt_content', (int)$item['uid'], '*', + $workspace); + if (!empty($movePlaceholder)) { + $item['sorting'] = $movePlaceholder['sorting']; + $item['tx_gridelements_columns'] = $movePlaceholder['tx_gridelements_columns']; + $item['tx_gridelements_container'] = $movePlaceholder['tx_gridelements_container']; + }; + } else { + $item = BackendUtility::getRecordWSOL('tt_content', (int)$item['uid']); + if ($item['t3ver_state'] === 4) { + $movePlaceholder = BackendUtility::getMovePlaceholder('tt_content', (int)$item['uid'], '*', + $workspace); + if (!empty($movePlaceholder)) { + $item['sorting'] = $movePlaceholder['sorting']; + $item['tx_gridelements_columns'] = $movePlaceholder['tx_gridelements_columns']; + $item['tx_gridelements_container'] = $movePlaceholder['tx_gridelements_container']; + }; + } + } + $workspacePreparedItems[] = $item; + } + $moveUids = array_flip($moveUids); + $collectedItems = $workspacePreparedItems; + foreach ($collectedItems as $key => $item) { + if (isset($moveUids[$item['uid']]) && !$item['_MOVE_PLH']) { + unset($collectedItems[$key]); + } + } + } else { + foreach ($collectedItems as $key => $item) { + $item = BackendUtility::getRecordWSOL('tt_content', (int)$item['uid']); + if ($item['t3ver_state'] > 0) { + unset($collectedItems[$key]); + } + } + } + foreach ($colPosValues as $colPos => $values) { // first we have to create the column content separately for each column // so we can check for the first and the last element to provide proper sorting @@ -342,7 +387,7 @@ protected function renderGridColumns( if ($singleColumn === false) { $items = []; foreach ($collectedItems as $item) { - if ((int)$item['tx_gridelements_columns'] === $colPos) { + if ((int)$item['tx_gridelements_columns'] === $colPos && (int)$item['tx_gridelements_container'] === (int)$row['uid']) { if ( $row['sys_language_uid'] === $item['sys_language_uid'] || ($row['sys_language_uid'] === -1 && $item['sys_language_uid'] === 0) @@ -355,6 +400,12 @@ protected function renderGridColumns( } else { $items = []; } + usort($items, function ($a, $b) { + if ($a['sorting'] === $b['sorting']) { + return 0; + } + return $a['sorting'] > $b['sorting'] ? 1 : -1; + }); // if there are any items, we can create the HTML for them just like in the original TCEform $gridContent['numberOfItems'][$colPos] = $counter; $this->renderSingleGridColumn($parentObject, $items, $colPos, $values, $gridContent, $row, $editUidList); @@ -380,7 +431,9 @@ protected function collectItemsForColumns(PageLayoutView $parentObject, &$colPos $queryBuilder = $this->getQueryBuilder(); $constraints = [ - $queryBuilder->expr()->eq('pid', $queryBuilder->createNamedParameter($row['pid'], \PDO::PARAM_INT)), + $queryBuilder->expr()->in('pid', + $queryBuilder->createNamedParameter([(int)$row['pid'], $specificIds['pid']], + Connection::PARAM_INT_ARRAY)), $queryBuilder->expr()->eq('colPos', $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT)), $queryBuilder->expr()->in('tx_gridelements_container', $queryBuilder->createNamedParameter([(int)$row['uid'], $specificIds['uid']], @@ -399,9 +452,19 @@ protected function collectItemsForColumns(PageLayoutView $parentObject, &$colPos $constraints[] = $queryBuilder->expr()->eq('sys_language_uid', $queryBuilder->createNamedParameter((int)$row['sys_language_uid'], \PDO::PARAM_INT)); } - if ($this->helper->getBackendUser()->workspace > 0 && $row['t3ver_wsid'] > 0) { - $constraints[] = $queryBuilder->expr()->eq('t3ver_wsid', - $queryBuilder->createNamedParameter((int)$row['t3ver_wsid'], \PDO::PARAM_INT)); + if ($this->helper->getBackendUser()->workspace > 0) { + if ($row['t3ver_wsid'] > 0) { + $constraints[] = $queryBuilder->expr()->eq('t3ver_wsid', + $queryBuilder->createNamedParameter((int)$row['t3ver_wsid'], \PDO::PARAM_INT)); + } else { + $constraints[] = $queryBuilder->expr()->orX( + $queryBuilder->expr()->eq('t3ver_wsid', + $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq('t3ver_wsid', + $queryBuilder->createNamedParameter($this->helper->getBackendUser()->workspace, + \PDO::PARAM_INT)) + ); + } } $queryBuilder @@ -1051,7 +1114,8 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag $tooManyItems = $gridContent['numberOfItems'][$columnKey] > $maxItems && $maxItems > 0; $expanded = $this->helper->getBackendUser()->uc['moduleData']['page']['gridelementsCollapsedColumns'][$row['uid'] . '_' . $columnKey] ? 'collapsed' : 'expanded'; if (!empty($columnConfig['name']) && $columnKey === 32768) { - $columnHead = $this->tt_content_drawColHeader(htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')', '', $parentObject); + $columnHead = $this->tt_content_drawColHeader(htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')', + '', $parentObject); } else { $columnHead = $head[$columnKey]; } @@ -1114,10 +1178,12 @@ protected function renderCTypeShortcut(PageLayoutView $parentObject, &$row) foreach ($shortcutItems as $shortcutItem) { $shortcutItem = trim($shortcutItem); if (strpos($shortcutItem, 'pages_') !== false) { - $this->collectContentDataFromPages($shortcutItem, $collectedItems, $row['recursive'], $row['uid'], $row['sys_language_uid']); + $this->collectContentDataFromPages($shortcutItem, $collectedItems, $row['recursive'], $row['uid'], + $row['sys_language_uid']); } else { if (strpos($shortcutItem, '_') === false || strpos($shortcutItem, 'tt_content_') !== false) { - $this->collectContentData($shortcutItem, $collectedItems, $row['uid'], $row['sys_language_uid']); + $this->collectContentData($shortcutItem, $collectedItems, $row['uid'], + $row['sys_language_uid']); } } } @@ -1178,7 +1244,8 @@ protected function collectContentDataFromPages( $queryBuilder->expr()->in('pid', $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)), $queryBuilder->expr()->gte('colPos', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('sys_language_uid', $queryBuilder->createNamedParameter([0, -1], Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in('sys_language_uid', + $queryBuilder->createNamedParameter([0, -1], Connection::PARAM_INT_ARRAY)) ) ->orderBy('inSet') ->addOrderBy('colPos') From 5006d18db189377295956c180322ce5865d0db99 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Mon, 2 Jul 2018 13:45:19 +0200 Subject: [PATCH 51/61] [BUGFIX] Cleanup workspaces after finalizing Change-Id: I6f23da3a0efc18032152f362d490181be9ada95e Resolves: #77872 Releases: master, 8-0, 7-0 Reviewed-on: https://review.typo3.org/57442 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/DataHandler/AbstractDataHandler.php | 109 +++++++++++++------- Classes/DataHandler/ProcessCmdmap.php | 3 + 2 files changed, 73 insertions(+), 39 deletions(-) diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index a2ab280..87b5c45 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -133,6 +133,76 @@ public function injectLayoutSetup(LayoutSetup $layoutSetup) $this->layoutSetup = $layoutSetup; } + /** + * getter for pageUid + * + * @return integer pageUid + */ + public function getPageUid() + { + return $this->pageUid; + } + + /** + * setter for pageUid + * + * @param integer $pageUid + */ + public function setPageUid($pageUid) + { + $this->pageUid = $pageUid; + } + + /** + * Function to remove any remains of versioned records after finalizing a workspace action + * via 'Discard' or 'Publish' commands + * + */ + public function cleanupWorkspacesAfterFinalizing() + { + $queryBuilder = $this->getQueryBuilder(); + + $constraints = [ + $queryBuilder->expr()->andX( + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->eq( + 't3ver_wsid', + $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->gt( + 't3ver_id', + $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT) + ) + ), + ]; + + $queryBuilder->delete('tt_content') + ->where(...$constraints) + ->execute(); + } + + /** + * getter for queryBuilder + * + * @param string $table + * @return QueryBuilder $queryBuilder + */ + public function getQueryBuilder($table = 'tt_content') + { + /**@var $queryBuilder QueryBuilder */ + $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) + ->getQueryBuilderForTable($table); + $queryBuilder->getRestrictions() + ->removeByType(HiddenRestriction::class) + ->removeByType(StartTimeRestriction::class) + ->removeByType(EndTimeRestriction::class); + + return $queryBuilder; + } + /** * Function to handle record actions for current or former children of translated grid containers * as well as translated references @@ -252,25 +322,6 @@ public function checkAndUpdateTranslatedElements($uid) } } - /** - * getter for queryBuilder - * - * @param string $table - * @return QueryBuilder $queryBuilder - */ - public function getQueryBuilder($table = 'tt_content') - { - /**@var $queryBuilder QueryBuilder */ - $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class) - ->getQueryBuilderForTable($table); - $queryBuilder->getRestrictions() - ->removeByType(HiddenRestriction::class) - ->removeByType(StartTimeRestriction::class) - ->removeByType(EndTimeRestriction::class); - - return $queryBuilder; - } - /** * setter for Connection object * @@ -343,24 +394,4 @@ public function setTable($table) $this->table = $table; } - /** - * getter for pageUid - * - * @return integer pageUid - */ - public function getPageUid() - { - return $this->pageUid; - } - - /** - * setter for pageUid - * - * @param integer $pageUid - */ - public function setPageUid($pageUid) - { - $this->pageUid = $pageUid; - } - } diff --git a/Classes/DataHandler/ProcessCmdmap.php b/Classes/DataHandler/ProcessCmdmap.php index 8acb05f..3efe0ff 100644 --- a/Classes/DataHandler/ProcessCmdmap.php +++ b/Classes/DataHandler/ProcessCmdmap.php @@ -108,5 +108,8 @@ public function execute_processCmdmap( $this->doGridContainerUpdate($containerUpdateArray); } } + if ($table === 'tt_content') { + $this->cleanupWorkspacesAfterFinalizing(); + } } } \ No newline at end of file From 85a24021c223c364661fc0dbafc915c0a66a722c Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Fri, 10 Aug 2018 16:18:46 +0200 Subject: [PATCH 52/61] [BUGFIX] Keep TypoScript structure to render shortcuts with FSC Change-Id: Ia237d423e43d03d2c43f29ca6c65a8327345a645 Resolves: #85805 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/57861 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Configuration/TypoScript/setup.ts | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/Configuration/TypoScript/setup.ts b/Configuration/TypoScript/setup.ts index efe9c11..872e01f 100644 --- a/Configuration/TypoScript/setup.ts +++ b/Configuration/TypoScript/setup.ts @@ -46,6 +46,10 @@ tt_content.gridelements_view < tt_content.gridelements_pi1 lib.tt_content.shortcut.pages = COA lib.tt_content.shortcut.pages { + 5 = LOAD_REGISTER + 5 { + tt_content_shortcut_recursive.field = recursive + } 10 = USER 10 { userFunc = GridElementsTeam\Gridelements\Plugin\Gridelements->user_getTreeList @@ -61,36 +65,21 @@ lib.tt_content.shortcut.pages { orderBy = gridelements_shortcut_page_order_by,colPos,sorting } } + 30 = RESTORE_REGISTER } [userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('fluid_styled_content')] - lib.shortcuts = COA - lib.shortcuts { - 5 = LOAD_REGISTER - 5 { - tt_content_shortcut_recursive.field = recursive - } - 20 < tt_content.shortcut.variables.shortcuts - 20 { - tables := addToList(pages) - conf.pages < lib.tt_content.shortcut.pages - } - 30 = RESTORE_REGISTER + tt_content.shortcut.variables.shortcuts { + tables := addToList(pages) + conf.pages < lib.tt_content.shortcut.pages } - tt_content.shortcut.variables.shortcuts > - tt_content.shortcut.variables.shortcuts < lib.shortcuts [global] [userFunc = TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded('css_styled_content')] tt_content.shortcut { - 5 = LOAD_REGISTER - 5 { - tt_content_shortcut_recursive.field = recursive - } 20 { tables := addToList(pages) conf.pages < lib.tt_content.shortcut.pages } - 30 = RESTORE_REGISTER } [global] From 0b631b18719e7aa7258e2701c480e157f95ec346 Mon Sep 17 00:00:00 2001 From: cybercraft Date: Sun, 9 Sep 2018 12:39:42 +0200 Subject: [PATCH 53/61] [BUGFIX] Bring back select icons for CE backend layouts Change-Id: I098e0e05388f121923815a89988f07cf2d8d4558 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/58236 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau (cherry picked from commit 29f530df9fd37ce524a224934add9289ef65c0ec) Reviewed-on: https://review.typo3.org/58237 --- Configuration/TCA/Overrides/tt_content.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index 6596e0c..b244735 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -19,6 +19,11 @@ 'type' => 'select', 'renderType' => 'selectSingle', 'itemsProcFunc' => 'GridElementsTeam\Gridelements\Backend\TtContent->layoutItemsProcFunc', + 'fieldWizard' => [ + 'selectIcons' => [ + 'disabled' => '' + ] + ], 'size' => 1, 'maxitems' => 1, 'default' => 0 From b2bac2fa084868cf1e07747a19809c93a2b6b906 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 29 Nov 2018 20:32:05 +0100 Subject: [PATCH 54/61] =?UTF-8?q?[BUGFIX]=20only=20set=20variable=20value,?= =?UTF-8?q?=20if=20th=C3=A9=20CType=20show=20it's=20a=20Gridelement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I87bb7b4d8e6bcdbdf09377cba9096136fc809fb1 Resolves: #86697 Release: 8-0 Reviewed-on: https://review.typo3.org/58987 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/PageRenderer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Hooks/PageRenderer.php b/Classes/Hooks/PageRenderer.php index 2c43e40..380fb07 100644 --- a/Classes/Hooks/PageRenderer.php +++ b/Classes/Hooks/PageRenderer.php @@ -115,7 +115,7 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p $clipBoardElementData = BackendUtility::getRecord('tt_content', (int)$clipBoardElement[1]); $pAddExtOnReadyCode .= " top.clipBoardElementCType = '" . $clipBoardElementData['CType'] . "'; - top.clipBoardElementTxGridelementsBackendLayout = '" . $clipBoardElementData['tx_gridelements_backend_layout'] . "'; + top.clipBoardElementTxGridelementsBackendLayout = '" . (($clipBoardElementData['CType'] == 'gridelements_pi1') ? $clipBoardElementData['tx_gridelements_backend_layout'] : '') . "'; top.clipBoardElementListType = '" . $clipBoardElementData['list_type'] . "';"; } else { $pAddExtOnReadyCode .= " From 73380e6c6610cb1c17b7505428142f1376508689 Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 29 Nov 2018 20:39:02 +0100 Subject: [PATCH 55/61] [BUGFIX] Check if there was a nextThree item with that uid before unsetting Change-Id: Ie9a1687141e39f74bd0f4c760230f546d3edf346 Resolves: #85487 Releases: 8-0 Reviewed-on: https://review.typo3.org/58989 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 7223967..2c6faad 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -805,7 +805,11 @@ public function setLanguageService(LanguageService $languageService) protected function renderSingleElementHTML(PageLayoutView $parentObject, $item) { $singleElementHTML = ''; - $parentObject->tt_contentData['nextThree'][$item['uid']] = $item['uid']; + $unset = false; + if (!isset($parentObject->tt_contentData['nextThree'][$item['uid']])) { + $unset = true; + $parentObject->tt_contentData['nextThree'][$item['uid']] = $item['uid']; + } if (!$parentObject->tt_contentConfig['languageMode']) { $singleElementHTML .= '
'; } @@ -820,7 +824,9 @@ protected function renderSingleElementHTML(PageLayoutView $parentObject, $item) if (!$parentObject->tt_contentConfig['languageMode']) { $singleElementHTML .= '
'; } - unset($parentObject->tt_contentData['nextThree'][$item['uid']]); + if ($unset) { + unset($parentObject->tt_contentData['nextThree'][$item['uid']]); + } return $singleElementHTML; } From 1a30da47a3cb57dbc5643ba70c37ba3caca7ed0f Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 29 Nov 2018 20:53:42 +0100 Subject: [PATCH 56/61] [BUGFIX] Make sure class gets 0 appended if value is empty Change-Id: If2cf3ebdfc1da19a6d20259633a45c43f82b95fc Resolves: #85591 Releases: 8-0 Reviewed-on: https://review.typo3.org/58991 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/DrawItem.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 2c6faad..9413c40 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -966,7 +966,7 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag $specificIds = $this->helper->getSpecificIds($row); $grid = '
'; if ($layout['frame'] || (int)$this->helper->getBackendUser()->uc['showGridInformation'] === 1) { - $grid .= '

' . + $grid .= '

' . BackendUtility::wrapInHelp( 'tx_gridelements_backend_layouts', 'title', From a0c901ca1de84570927db62dc5804ca8f11c3b0d Mon Sep 17 00:00:00 2001 From: Cybercraft Date: Thu, 29 Nov 2018 21:07:40 +0100 Subject: [PATCH 57/61] [BUGFIX] Use official method to check explicit allowed/deny settings Change-Id: I433b24854a8825cb3ab14653b5c80d88fff4eb25 Resolves: #85690 Releases: 8-0 Reviewed-on: https://review.typo3.org/58993 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Classes/Hooks/WizardItems.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/Classes/Hooks/WizardItems.php b/Classes/Hooks/WizardItems.php index 794eb19..eb4dbef 100644 --- a/Classes/Hooks/WizardItems.php +++ b/Classes/Hooks/WizardItems.php @@ -24,6 +24,7 @@ use TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Backend\Wizard\NewContentElementWizardHookInterface; +use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Imaging\IconProvider\BitmapIconProvider; use TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider; use TYPO3\CMS\Core\Imaging\IconRegistry; @@ -64,8 +65,12 @@ public function injectLayoutSetup(LayoutSetup $layoutSetup) */ public function manipulateWizardItems(&$wizardItems, &$parentObject) { - if (GeneralUtility::inList($GLOBALS['BE_USER']->groupData['explicit_allowdeny'], - 'tt_content:CType:gridelements_pi1:DENY')) { + if (!$this->getBackendUser()->checkAuthMode( + 'tt_content', + 'CType', + 'gridelements_pi1', + $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode'] + )) { return; } $pageID = $parentObject->id; @@ -381,4 +386,14 @@ public function removeEmptyHeadersFromWizard(array &$wizardItems) } } + /** + * Gets the current backend user. + * + * @return BackendUserAuthentication + */ + public function getBackendUser() + { + return $GLOBALS['BE_USER']; + } + } From 3df153bddcb65889d1ba3cb12cafdcaee09b2523 Mon Sep 17 00:00:00 2001 From: cybercraft Date: Sun, 9 Dec 2018 20:27:41 +0100 Subject: [PATCH 58/61] [TASK] Squashed commit of the following: commit 2cbff4c21a745a72b4da7cc2c1442a6d6c69dfb3 Author: cybercraft Date: Sun Dec 9 19:23:02 2018 +0100 [TASK] Use official coding style Change-Id: Iec9e84c8ca63857dffd553dfedc3a9e156b708ce commit a388ee714892cdbad9f481ae5a675aaf10b078b8 Merge: 1ac51ac 222b186 Author: Jo Hasenau Date: Sun Dec 9 18:06:05 2018 +0000 Merge branch 'cherry-pick-6a40631b' into '8-0' Merge branch '17-flexform-settings-are-empty-in-extbase-controller' into 'master' See merge request cybercraft.jh/gridelements!18 commit 222b186d357322caf2d72999b2a958cfa2869058 Author: Jo Hasenau Date: Mon Dec 3 10:30:05 2018 +0000 Merge branch '17-flexform-settings-are-empty-in-extbase-controller' into 'master' Resolve "Flexform settings are empty in extbase controller" Closes #17 See merge request cybercraft.jh/gridelements!13 (cherry picked from commit 6a40631b635a11037674ece0489a8d0bd8d9647f) 9a8577ed [BUGFIX] Resolve flexforms for Gridelements only to avoid problems w other plugins commit 1ac51ac2266e10502306e931a6fae7a3257f4164 Merge: 680eb83 4f8354e Author: Jo Hasenau Date: Sun Dec 9 18:05:00 2018 +0000 Merge branch 'cherry-pick-96c8d738' into '8-0' Merge branch '4-refactor-flexform-handling' into 'master' See merge request cybercraft.jh/gridelements!17 commit 4f8354eab71ac20f7943344d57dea72ce5f3b50c Author: Jo Hasenau Date: Thu Nov 29 19:23:26 2018 +0000 Merge branch '4-refactor-flexform-handling' into 'master' Resolve "Refactor Flexform handling" Closes #4 See merge request cybercraft.jh/gridelements!11 (cherry picked from commit 96c8d738bd6aefe6aec871e0add82d08f297504a) cb3d4e7c [TASK] Process flexform values of children directly after fetching them f5f9aa28 [BUGFIX] Assign first parameter too before assigning child data array e2cbfd20 [TASK] Unset cObjData as well commit 680eb8382a3dc934e5fafb419ff91bfe8319bc5c Merge: a0c901c d37232a Author: Jo Hasenau Date: Sun Dec 9 18:02:08 2018 +0000 Merge branch 'cherry-pick-4b56ea64' into '8-0' [BUGFIX] Make sure children only expand when the whole rootline is See merge request cybercraft.jh/gridelements!16 commit d37232ae494a36b1efc422146eaef02a0bf9f577 Author: cybercraft Date: Sun Dec 9 17:48:36 2018 +0000 [BUGFIX] Make sure children only expand when the whole rootline is Change-Id: I665b18bc5c52da69ee60a9479f1d308789126a5f (cherry picked from commit 4b56ea6420e4259ae60c8c115f232f8b30a2069f) Change-Id: I54d2377e3989e10b8e4f1bd42025156866c19dcc --- .../ItemsProcFuncs/AbstractItemsProcFunc.php | 3 - Classes/Backend/ItemsProcFuncs/CTypeList.php | 22 +- Classes/Backend/ItemsProcFuncs/ColPosList.php | 30 +- .../Backend/ItemsProcFuncs/ListTypeList.php | 22 +- .../ItemsProcFuncs/SysLanguageUidList.php | 4 +- Classes/Backend/LayoutSetup.php | 46 +- Classes/Backend/TtContent.php | 24 +- Classes/ContextMenu/ItemProvider.php | 8 +- Classes/DataHandler/AbstractDataHandler.php | 68 ++- .../DataHandler/AfterDatabaseOperations.php | 188 +++++--- Classes/DataHandler/PreProcessFieldArray.php | 38 +- Classes/DataHandler/ProcessCmdmap.php | 12 +- Classes/Helper/Helper.php | 48 +- Classes/Hooks/BackendUtilityGridelements.php | 3 - Classes/Hooks/DataHandler.php | 8 +- Classes/Hooks/DatabaseRecordList.php | 13 +- Classes/Hooks/DrawItem.php | 285 +++++++---- Classes/Hooks/PageRenderer.php | 53 ++- Classes/Hooks/TtContentFlexForm.php | 8 +- Classes/Hooks/WizardItems.php | 16 +- Classes/Plugin/Gridelements.php | 163 +++++-- .../ExtTablesInclusionPostProcessing.php | 8 +- ...GridelementsBackendLayoutWizardElement.php | 20 +- Classes/Xclass/DatabaseRecordList.php | 450 ++++++++++++------ Configuration/TCA/Overrides/tt_content.php | 3 +- .../TCA/tx_gridelements_backend_layout.php | 1 - .../Backend/ItemsProcFuncs/CTypeListTest.php | 1 - .../Backend/ItemsProcFuncs/ColPosListTest.php | 1 - .../ItemsProcFuncs/SysLanguageUidListTest.php | 1 - Tests/Backend/LayoutSetupTest.php | 1 - Tests/Backend/TtContentTest.php | 1 - .../AfterDatabaseOperationsTest.php | 1 - .../DataHandler/PreProcessFieldArrayTest.php | 1 - Tests/DataHandler/ProcessCmdmapTest.php | 1 - Tests/Helper/HelperTest.php | 1 - .../Hooks/BackendUtilityGridelementsTest.php | 3 +- Tests/Hooks/DataHandlerTest.php | 1 - Tests/Hooks/DatabaseRecordListTest.php | 3 +- Tests/Hooks/DrawItemTest.php | 1 - Tests/Hooks/PageRendererTest.php | 1 - Tests/Hooks/PreHeaderRenderHookTest.php | 1 - Tests/Hooks/WizardItemsTest.php | 1 - Tests/Plugin/PluginTest.php | 1 - .../BackendLayoutWizardControllerTest.php | 2 - ext_localconf.php | 11 +- ext_tables.php | 4 +- 46 files changed, 1026 insertions(+), 556 deletions(-) diff --git a/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php b/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php index da54d15..c64ff7a 100644 --- a/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php +++ b/Classes/Backend/ItemsProcFuncs/AbstractItemsProcFunc.php @@ -31,8 +31,6 @@ * Class/Function which offers TCE main hook functions. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ abstract class AbstractItemsProcFunc implements SingletonInterface { @@ -109,5 +107,4 @@ public function getBackendUser() { return $GLOBALS['BE_USER']; } - } diff --git a/Classes/Backend/ItemsProcFuncs/CTypeList.php b/Classes/Backend/ItemsProcFuncs/CTypeList.php index 4e8cccb..54047c2 100644 --- a/Classes/Backend/ItemsProcFuncs/CTypeList.php +++ b/Classes/Backend/ItemsProcFuncs/CTypeList.php @@ -28,8 +28,6 @@ * Class/Function which manipulates the item-array for table/field tt_content CType. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class CTypeList extends AbstractItemsProcFunc { @@ -48,16 +46,26 @@ public function itemsProcFunc(array &$params) { if ((int)$params['row']['pid'] > 0) { $colPos = is_array($params['row']['colPos']) ? $params['row']['colPos'][0] : $params['row']['colPos']; - $this->checkForAllowedCTypes($params['items'], $params['row']['pid'], $colPos, - $params['row']['tx_gridelements_container'], $params['row']['tx_gridelements_columns']); + $this->checkForAllowedCTypes( + $params['items'], + $params['row']['pid'], + $colPos, + $params['row']['tx_gridelements_container'], + $params['row']['tx_gridelements_columns'] + ); } else { $this->init((int)$params['row']['pid']); // negative uid_pid values indicate that the element has been inserted after an existing element // so there is no pid to get the backendLayout for and we have to get that first $existingElement = BackendUtility::getRecordWSOL('tt_content', -((int)$params['row']['pid']), 'pid,CType,colPos,tx_gridelements_container,tx_gridelements_columns'); if ((int)$existingElement['pid'] > 0) { - $this->checkForAllowedCTypes($params['items'], $existingElement['pid'], $existingElement['colPos'], - $existingElement['tx_gridelements_container'], $existingElement['tx_gridelements_columns']); + $this->checkForAllowedCTypes( + $params['items'], + $existingElement['pid'], + $existingElement['colPos'], + $existingElement['tx_gridelements_container'], + $existingElement['tx_gridelements_columns'] + ); } } } @@ -88,7 +96,7 @@ public function checkForAllowedCTypes(array &$items, $pageId, $pageColumn, $grid if (is_array($layout['allowed']) && is_array($layout['allowed'][$column]) && !empty($layout['allowed'][$column]['CType'])) { $allowed = $layout['allowed'][$column]['CType']; } - if (is_array($layout['disallowed']) && is_array($layout['disallowed'][$column]) && !empty($layout['disallowed'][$column]['CType'])){ + if (is_array($layout['disallowed']) && is_array($layout['disallowed'][$column]) && !empty($layout['disallowed'][$column]['CType'])) { $disallowed = $layout['disallowed'][$column]['CType']; } } diff --git a/Classes/Backend/ItemsProcFuncs/ColPosList.php b/Classes/Backend/ItemsProcFuncs/ColPosList.php index 23b8caa..d1794aa 100644 --- a/Classes/Backend/ItemsProcFuncs/ColPosList.php +++ b/Classes/Backend/ItemsProcFuncs/ColPosList.php @@ -26,8 +26,6 @@ * Class/Function which manipulates the item-array for table/field tt_content colPos. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class ColPosList extends AbstractItemsProcFunc { @@ -43,17 +41,31 @@ public function itemsProcFunc(array &$params) $contentType = is_array($params['row']['CType']) ? $params['row']['CType'][0] : $params['row']['CType']; $listType = is_array($params['row']['list_type']) ? $params['row']['list_type'][0] : $params['row']['list_type']; $gridType = is_array($params['row']['tx_gridelements_backend_layout']) ? $params['row']['tx_gridelements_backend_layout'][0] : $params['row']['tx_gridelements_backend_layout']; - $params['items'] = $this->addColPosListLayoutItems($params['row']['pid'], $params['items'], $contentType, - $listType, $gridType, $params['row']['tx_gridelements_container']); + $params['items'] = $this->addColPosListLayoutItems( + $params['row']['pid'], + $params['items'], + $contentType, + $listType, + $gridType, + $params['row']['tx_gridelements_container'] + ); } else { // negative uid_pid values indicate that the element has been inserted after an existing element // so there is no pid to get the backendLayout for and we have to get that first - $existingElement = BackendUtility::getRecordWSOL('tt_content', -((int)$params['row']['pid']), - 'pid,CType,tx_gridelements_container'); + $existingElement = BackendUtility::getRecordWSOL( + 'tt_content', + -((int)$params['row']['pid']), + 'pid,CType,tx_gridelements_container' + ); if ($existingElement['pid'] > 0) { - $params['items'] = $this->addColPosListLayoutItems($existingElement['pid'], $params['items'], - $existingElement['CType'], $existingElement['list_type'], - $existingElement['tx_gridelements_backend_layout'], $existingElement['tx_gridelements_container']); + $params['items'] = $this->addColPosListLayoutItems( + $existingElement['pid'], + $params['items'], + $existingElement['CType'], + $existingElement['list_type'], + $existingElement['tx_gridelements_backend_layout'], + $existingElement['tx_gridelements_container'] + ); } } } diff --git a/Classes/Backend/ItemsProcFuncs/ListTypeList.php b/Classes/Backend/ItemsProcFuncs/ListTypeList.php index c4ad7d7..4381cb8 100644 --- a/Classes/Backend/ItemsProcFuncs/ListTypeList.php +++ b/Classes/Backend/ItemsProcFuncs/ListTypeList.php @@ -28,8 +28,6 @@ * Class/Function which manipulates the item-array for table/field tt_content CType. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class ListTypeList extends AbstractItemsProcFunc { @@ -48,16 +46,26 @@ public function itemsProcFunc(array &$params) { if ((int)$params['row']['pid'] > 0) { $colPos = is_array($params['row']['colPos']) ? $params['row']['colPos'][0] : $params['row']['colPos']; - $this->checkForAllowedListTypes($params['items'], $params['row']['pid'], $colPos, - $params['row']['tx_gridelements_container'], $params['row']['tx_gridelements_columns']); + $this->checkForAllowedListTypes( + $params['items'], + $params['row']['pid'], + $colPos, + $params['row']['tx_gridelements_container'], + $params['row']['tx_gridelements_columns'] + ); } else { $this->init((int)$params['row']['pid']); // negative uid_pid values indicate that the element has been inserted after an existing element // so there is no pid to get the backendLayout for and we have to get that first $existingElement = BackendUtility::getRecordWSOL('tt_content', -((int)$params['row']['pid']), 'pid,list_type,colPos,tx_gridelements_container,tx_gridelements_columns'); if ((int)$existingElement['pid'] > 0) { - $this->checkForAllowedListTypes($params['items'], $existingElement['pid'], $existingElement['colPos'], - $existingElement['tx_gridelements_container'], $existingElement['tx_gridelements_columns']); + $this->checkForAllowedListTypes( + $params['items'], + $existingElement['pid'], + $existingElement['colPos'], + $existingElement['tx_gridelements_container'], + $existingElement['tx_gridelements_columns'] + ); } } } @@ -88,7 +96,7 @@ public function checkForAllowedListTypes(array &$items, $pageId, $pageColumn, $g if (is_array($layout['allowed']) && is_array($layout['allowed'][$column]) && !empty($layout['allowed'][$column]['list_type'])) { $allowed = $layout['allowed'][$column]['list_type']; } - if (is_array($layout['disallowed']) && is_array($layout['disallowed'][$column]) && !empty($layout['disallowed'][$column]['list_type'])){ + if (is_array($layout['disallowed']) && is_array($layout['disallowed'][$column]) && !empty($layout['disallowed'][$column]['list_type'])) { $disallowed = $layout['disallowed'][$column]['list_type']; } } diff --git a/Classes/Backend/ItemsProcFuncs/SysLanguageUidList.php b/Classes/Backend/ItemsProcFuncs/SysLanguageUidList.php index a283f89..9413322 100644 --- a/Classes/Backend/ItemsProcFuncs/SysLanguageUidList.php +++ b/Classes/Backend/ItemsProcFuncs/SysLanguageUidList.php @@ -26,8 +26,6 @@ * Class/Function which manipulates the item-array for table/field tt_content CType. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class SysLanguageUidList extends AbstractItemsProcFunc { @@ -61,6 +59,6 @@ public function checkForAllowedLanguages(array &$items, $gridContainerId) unset($items[$item]); } } - }; + } } } diff --git a/Classes/Backend/LayoutSetup.php b/Classes/Backend/LayoutSetup.php index 4fda3e8..def2448 100644 --- a/Classes/Backend/LayoutSetup.php +++ b/Classes/Backend/LayoutSetup.php @@ -37,8 +37,6 @@ * Utilities for gridelements. * * @author Arno Dudek - * @package TYPO3 - * @subpackage tx_gridelements */ class LayoutSetup { @@ -170,8 +168,10 @@ protected function loadLayoutSetup($pageId) ? (int)$pageTSconfig['TCEFORM.']['pages.']['_STORAGE_PID'] : 0; $pageTSconfigId = isset($pageTSconfig['TCEFORM.']['tt_content.']['tx_gridelements_backend_layout.']['PAGE_TSCONFIG_ID']) - ? implode(',', GeneralUtility::intExplode(',', - $pageTSconfig['TCEFORM.']['tt_content.']['tx_gridelements_backend_layout.']['PAGE_TSCONFIG_ID'])) + ? implode(',', GeneralUtility::intExplode( + ',', + $pageTSconfig['TCEFORM.']['tt_content.']['tx_gridelements_backend_layout.']['PAGE_TSCONFIG_ID'] + )) : 0; // Load records. @@ -186,15 +186,21 @@ protected function loadLayoutSetup($pageId) $queryBuilder->expr()->comparison($storagePid, '=', 0) ), $queryBuilder->expr()->orX( - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pageTSconfigId, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$storagePid, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pageTSconfigId, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$storagePid, \PDO::PARAM_INT) + ) ), $queryBuilder->expr()->andX( $queryBuilder->expr()->comparison($pageTSconfigId, '=', 0), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pageId, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pageId, \PDO::PARAM_INT) + ) ) ) ) @@ -234,7 +240,6 @@ protected function loadLayoutSetup($pageId) } $gridLayoutRecords[$layoutId] = $item; - } if ($overruleRecords === true) { @@ -475,19 +480,21 @@ public function getLayoutSelectItems($colPos, $gridColPos = 0, $containerId = 0, * @param int $gridContainerId The ID of the current grid container * @param bool $doReturn * - * @return null|array + * @return array|null */ public function cacheCurrentParent($gridContainerId = 0, $doReturn = false) { if ($gridContainerId > 0) { if (empty($GLOBALS['tx_gridelements']['parentElement'][$gridContainerId])) { - $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId] = BackendUtility::getRecordWSOL('tt_content', - $gridContainerId); + $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId] = BackendUtility::getRecordWSOL( + 'tt_content', + $gridContainerId + ); } } if ($doReturn) { return $GLOBALS['tx_gridelements']['parentElement'][$gridContainerId]; - }; + } return null; } @@ -601,7 +608,6 @@ public function getLayoutWizardItems( 'iconIdentifier' => $item['iconIdentifier'], 'tll' => $item['top_level_layout'], ]; - } return $wizardItems; @@ -621,8 +627,10 @@ public function getFlexformConfiguration($layoutId) if ($layoutSetup['pi_flexform_ds_file']) { $flexformConfiguration = GeneralUtility::getUrl(GeneralUtility::getFileAbsFileName($layoutSetup['pi_flexform_ds_file'])); } elseif (strpos($layoutSetup['pi_flexform_ds'], 'FILE:') === 0) { - $flexformConfiguration = GeneralUtility::getUrl(GeneralUtility::getFileAbsFileName(substr($layoutSetup['pi_flexform_ds'], - 5))); + $flexformConfiguration = GeneralUtility::getUrl(GeneralUtility::getFileAbsFileName(substr( + $layoutSetup['pi_flexform_ds'], + 5 + ))); } elseif ($layoutSetup['pi_flexform_ds']) { $flexformConfiguration = $layoutSetup['pi_flexform_ds']; } else { @@ -675,7 +683,6 @@ public function getBackendUser() return $GLOBALS['BE_USER']; } - /** * Gets the current real pid. * @@ -685,5 +692,4 @@ public function getRealPid() { return $this->realPid; } - } diff --git a/Classes/Backend/TtContent.php b/Classes/Backend/TtContent.php index 9eb3c73..00cfc43 100644 --- a/Classes/Backend/TtContent.php +++ b/Classes/Backend/TtContent.php @@ -31,8 +31,6 @@ * Class/Function which manipulates the item-array for table/field tt_content_tx_gridelements_columns. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class TtContent { @@ -166,8 +164,10 @@ public function lookForChildContainersRecursively($containerIds, array &$possibl ->where( $queryBuilder->expr()->andX( $queryBuilder->expr()->eq('CType', $queryBuilder->createNamedParameter('gridelements_pi1')), - $queryBuilder->expr()->in('tx_gridelements_container', - $queryBuilder->createNamedParameter($containerIds, Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter($containerIds, Connection::PARAM_INT_ARRAY) + ) ) ) ->execute() @@ -227,8 +227,10 @@ public function deleteDisallowedContainers(array &$params, $itemUidList = '') ->select('uid', 'tx_gridelements_backend_layout') ->from('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($itemUidList, Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter($itemUidList, Connection::PARAM_INT_ARRAY) + ) ) ->execute(); $containers = []; @@ -290,10 +292,12 @@ public function deleteDisallowedContainers(array &$params, $itemUidList = '') public function layoutItemsProcFunc(array &$params) { $this->init($params['row']['pid']); - $layoutSelectItems = $this->layoutSetup->getLayoutSelectItems(isset($params['row']['colPos'][0]) ? $params['row']['colPos'][0] : $params['row']['colPos'], - $params['row']['tx_gridelements_columns'], $params['row']['tx_gridelements_container'], $this->layoutSetup->getRealPid()); + $layoutSelectItems = $this->layoutSetup->getLayoutSelectItems( + isset($params['row']['colPos'][0]) ? $params['row']['colPos'][0] : $params['row']['colPos'], + $params['row']['tx_gridelements_columns'], + $params['row']['tx_gridelements_container'], + $this->layoutSetup->getRealPid() + ); $params['items'] = ArrayUtility::keepItemsInArray($layoutSelectItems, $params['items'], true); } - - } diff --git a/Classes/ContextMenu/ItemProvider.php b/Classes/ContextMenu/ItemProvider.php index 56779dd..f0d1eab 100644 --- a/Classes/ContextMenu/ItemProvider.php +++ b/Classes/ContextMenu/ItemProvider.php @@ -94,8 +94,12 @@ protected function canRender(string $itemName, string $type): bool { $canRender = false; if ($itemName === 'pastereference') { - $canRender = $this->canBePastedAfter() && $this->clipboard->currentMode() === 'copy' && $this->backendUser->checkAuthMode('tt_content', - 'CType', 'shortcut', $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode']); + $canRender = $this->canBePastedAfter() && $this->clipboard->currentMode() === 'copy' && $this->backendUser->checkAuthMode( + 'tt_content', + 'CType', + 'shortcut', + $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode'] + ); } return $canRender; } diff --git a/Classes/DataHandler/AbstractDataHandler.php b/Classes/DataHandler/AbstractDataHandler.php index 87b5c45..13adb47 100644 --- a/Classes/DataHandler/AbstractDataHandler.php +++ b/Classes/DataHandler/AbstractDataHandler.php @@ -35,8 +35,6 @@ * Class/Function which offers TCE main hook functions. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ abstract class AbstractDataHandler { @@ -74,7 +72,7 @@ abstract class AbstractDataHandler * initializes this class * * @param string $table : The name of the table the data should be saved to - * @param integer $uidPid : The uid of the record or page we are currently working on + * @param int $uidPid : The uid of the record or page we are currently working on * @param DataHandler $dataHandler */ public function init($table, $uidPid, DataHandler $dataHandler) @@ -96,7 +94,7 @@ public function init($table, $uidPid, DataHandler $dataHandler) /** * getter for contentUid * - * @return integer contentUid + * @return int contentUid */ public function getContentUid() { @@ -106,7 +104,7 @@ public function getContentUid() /** * setter for contentUid * - * @param integer $contentUid + * @param int $contentUid */ public function setContentUid($contentUid) { @@ -136,7 +134,7 @@ public function injectLayoutSetup(LayoutSetup $layoutSetup) /** * getter for pageUid * - * @return integer pageUid + * @return int pageUid */ public function getPageUid() { @@ -146,7 +144,7 @@ public function getPageUid() /** * setter for pageUid * - * @param integer $pageUid + * @param int $pageUid */ public function setPageUid($pageUid) { @@ -156,7 +154,6 @@ public function setPageUid($pageUid) /** * Function to remove any remains of versioned records after finalizing a workspace action * via 'Discard' or 'Publish' commands - * */ public function cleanupWorkspacesAfterFinalizing() { @@ -216,8 +213,14 @@ public function checkAndUpdateTranslatedElements($uid) } $queryBuilder = $this->getQueryBuilder(); $currentValues = $queryBuilder - ->select('uid', 'tx_gridelements_container', 'tx_gridelements_columns', 'sys_language_uid', 'colPos', - 'l18n_parent') + ->select( + 'uid', + 'tx_gridelements_container', + 'tx_gridelements_columns', + 'sys_language_uid', + 'colPos', + 'l18n_parent' + ) ->from('tt_content') ->where( $queryBuilder->expr()->eq('uid', $queryBuilder->createNamedParameter((int)$uid, \PDO::PARAM_INT)) @@ -229,12 +232,20 @@ public function checkAndUpdateTranslatedElements($uid) $originalUid = (int)$currentValues['uid']; $queryBuilder = $this->getQueryBuilder(); $currentValues = $queryBuilder - ->select('uid', 'tx_gridelements_container', 'tx_gridelements_columns', 'sys_language_uid', 'colPos', - 'l18n_parent') + ->select( + 'uid', + 'tx_gridelements_container', + 'tx_gridelements_columns', + 'sys_language_uid', + 'colPos', + 'l18n_parent' + ) ->from('tt_content') ->where( - $queryBuilder->expr()->eq('uid', - $queryBuilder->createNamedParameter((int)$currentValues['l18n_parent'], \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'uid', + $queryBuilder->createNamedParameter((int)$currentValues['l18n_parent'], \PDO::PARAM_INT) + ) ) ->setMaxResults(1) ->execute() @@ -255,12 +266,20 @@ public function checkAndUpdateTranslatedElements($uid) } $queryBuilder = $this->getQueryBuilder(); $translatedElementQuery = $queryBuilder - ->select('uid', 'tx_gridelements_container', 'tx_gridelements_columns', 'sys_language_uid', 'colPos', - 'l18n_parent') + ->select( + 'uid', + 'tx_gridelements_container', + 'tx_gridelements_columns', + 'sys_language_uid', + 'colPos', + 'l18n_parent' + ) ->from('tt_content') ->where( - $queryBuilder->expr()->eq('l18n_parent', - $queryBuilder->createNamedParameter((int)$currentValues['uid'], \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'l18n_parent', + $queryBuilder->createNamedParameter((int)$currentValues['uid'], \PDO::PARAM_INT) + ) ) ->execute(); $translatedElements = []; @@ -277,9 +296,13 @@ public function checkAndUpdateTranslatedElements($uid) ->select('uid', 'sys_language_uid') ->from('tt_content') ->where( - $queryBuilder->expr()->eq('l18n_parent', - $queryBuilder->createNamedParameter((int)$currentValues['tx_gridelements_container'], - \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'l18n_parent', + $queryBuilder->createNamedParameter( + (int)$currentValues['tx_gridelements_container'], + \PDO::PARAM_INT + ) + ) ) ->execute(); while ($translatedContainer = $translatedContainerQuery->fetch()) { @@ -330,7 +353,7 @@ public function checkAndUpdateTranslatedElements($uid) public function getConnection() { return GeneralUtility::makeInstance(ConnectionPool::class) - ->getConnectionForTable('tt_content');; + ->getConnectionForTable('tt_content'); } /** @@ -393,5 +416,4 @@ public function setTable($table) { $this->table = $table; } - } diff --git a/Classes/DataHandler/AfterDatabaseOperations.php b/Classes/DataHandler/AfterDatabaseOperations.php index 26a4a02..b3b73f0 100644 --- a/Classes/DataHandler/AfterDatabaseOperations.php +++ b/Classes/DataHandler/AfterDatabaseOperations.php @@ -30,8 +30,6 @@ * Class/Function which offers TCE main hook functions. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class AfterDatabaseOperations extends AbstractDataHandler { @@ -143,10 +141,14 @@ public function setUnusedElements(array &$fieldArray) ->where( $queryBuilder->expr()->andX( $queryBuilder->expr()->gt('tx_gridelements_container', 0), - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$this->getContentUid(), \PDO::PARAM_INT)), - $queryBuilder->expr()->notIn('tx_gridelements_columns', - $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$this->getContentUid(), \PDO::PARAM_INT) + ), + $queryBuilder->expr()->notIn( + 'tx_gridelements_columns', + $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY) + ) ) ) ->execute(); @@ -158,9 +160,13 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder ->update('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($childElementsInUnavailableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter( + $childElementsInUnavailableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ->set('colPos', -2) ->set('backupColPos', -1) @@ -175,10 +181,14 @@ public function setUnusedElements(array &$fieldArray) ->where( $queryBuilder->expr()->andX( $queryBuilder->expr()->gt('tx_gridelements_container', 0), - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$this->getContentUid(), \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$this->getContentUid(), \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'tx_gridelements_columns', + $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY) + ) ) ) ->execute(); @@ -190,9 +200,13 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder ->update('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($childElementsInAvailableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter( + $childElementsInAvailableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ->set('colPos', -1) ->set('backupColPos', -2) @@ -208,8 +222,11 @@ public function setUnusedElements(array &$fieldArray) $backendLayoutNextLevelUid = 0; $rootline = BackendUtility::BEgetRootLine($this->getPageUid()); for ($i = count($rootline); $i > 0; $i--) { - $page = BackendUtility::getRecord('pages', (int)$rootline[$i]['uid'], - 'uid,backend_layout,backend_layout_next_level'); + $page = BackendUtility::getRecord( + 'pages', + (int)$rootline[$i]['uid'], + 'uid,backend_layout,backend_layout_next_level' + ); $selectedBackendLayoutNextLevel = (int)$page['backend_layout_next_level']; if ($page['uid'] === $this->getPageUid()) { if ($fieldArray['backend_layout_next_level'] !== 0) { @@ -225,12 +242,11 @@ public function setUnusedElements(array &$fieldArray) if ($selectedBackendLayoutNextLevel === -1 && $page['uid'] !== $this->getPageUid()) { // Some previous page in our rootline sets layout_next to "None" break; - } else { - if ($selectedBackendLayoutNextLevel > 0 && $page['uid'] !== $this->getPageUid()) { - // Some previous page in our rootline sets some backend_layout, use it - $backendLayoutUid = $selectedBackendLayoutNextLevel; - break; - } + } + if ($selectedBackendLayoutNextLevel > 0 && $page['uid'] !== $this->getPageUid()) { + // Some previous page in our rootline sets some backend_layout, use it + $backendLayoutUid = $selectedBackendLayoutNextLevel; + break; } } } @@ -244,10 +260,14 @@ public function setUnusedElements(array &$fieldArray) ->from('tt_content') ->where( $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT)), - $queryBuilder->expr()->notIn('colPos', - $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT) + ), + $queryBuilder->expr()->notIn( + 'colPos', + $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY) + ) ) ) ->execute(); @@ -259,9 +279,13 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder ->update('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($elementsInUnavailableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter( + $elementsInUnavailableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ->set('backupColPos', $queryBuilder->quoteIdentifier('colPos'), false) ->set('colPos', -2) @@ -275,12 +299,18 @@ public function setUnusedElements(array &$fieldArray) ->from('tt_content') ->where( $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('backupColPos', - $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('backupColPos', - $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$this->getPageUid(), \PDO::PARAM_INT) + ), + $queryBuilder->expr()->neq( + 'backupColPos', + $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'backupColPos', + $queryBuilder->createNamedParameter($availableColumns, Connection::PARAM_INT_ARRAY) + ) ) ) ->execute(); @@ -292,9 +322,13 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder ->update('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($elementsInAvailableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter( + $elementsInAvailableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ->set('colPos', $queryBuilder->quoteIdentifier('backupColPos'), false) ->set('backupColPos', -2) @@ -319,11 +353,17 @@ public function setUnusedElements(array &$fieldArray) ->from('tt_content') ->where( $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$page['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->notIn('colPos', - $queryBuilder->createNamedParameter($availableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$page['uid'], \PDO::PARAM_INT) + ), + $queryBuilder->expr()->notIn( + 'colPos', + $queryBuilder->createNamedParameter( + $availableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ) ->execute(); @@ -335,9 +375,13 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder ->update('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($subPageElementsInUnavailableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter( + $subPageElementsInUnavailableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ->set('backupColPos', $queryBuilder->quoteIdentifier('colPos'), false) ->set('colPos', -2) @@ -351,13 +395,21 @@ public function setUnusedElements(array &$fieldArray) ->from('tt_content') ->where( $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$page['uid'], \PDO::PARAM_INT)), - $queryBuilder->expr()->neq('backupColPos', - $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('backupColPos', - $queryBuilder->createNamedParameter($availableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$page['uid'], \PDO::PARAM_INT) + ), + $queryBuilder->expr()->neq( + 'backupColPos', + $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'backupColPos', + $queryBuilder->createNamedParameter( + $availableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ) ->execute(); @@ -369,9 +421,13 @@ public function setUnusedElements(array &$fieldArray) $queryBuilder ->update('tt_content') ->where( - $queryBuilder->expr()->in('uid', - $queryBuilder->createNamedParameter($subPageElementsInAvailableColumns, - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'uid', + $queryBuilder->createNamedParameter( + $subPageElementsInAvailableColumns, + Connection::PARAM_INT_ARRAY + ) + ) ) ->set('colPos', $queryBuilder->quoteIdentifier('backupColPos'), false) ->set('backupColPos', -2) @@ -411,10 +467,13 @@ public function getAvailableColumns($layout = '', $table = '', $id = 0) $tcaColumns = $this->layoutSetup->getLayoutColumns($layout); $tcaColumns = '-2,-1,' . $tcaColumns['CSV']; } elseif ($table === 'pages') { - $tcaColumns = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getColPosListItemsParsed', - $id, $this); + $tcaColumns = GeneralUtility::callUserFunction( + BackendLayoutView::class . '->getColPosListItemsParsed', + $id, + $this + ); $temp = []; - foreach ($tcaColumns AS $item) { + foreach ($tcaColumns as $item) { if (trim($item[1]) !== '') { $temp[] = (int)$item[1]; } @@ -438,8 +497,10 @@ public function getSubPagesRecursively($pageUid, array &$subPages) ->select('uid', 'backend_layout', 'backend_layout_next_level') ->from('pages') ->where( - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pageUid, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pageUid, \PDO::PARAM_INT) + ) ) ->execute() ->fetchAll(); @@ -455,5 +516,4 @@ public function getSubPagesRecursively($pageUid, array &$subPages) } } } - } diff --git a/Classes/DataHandler/PreProcessFieldArray.php b/Classes/DataHandler/PreProcessFieldArray.php index 56df4f0..0fb0885 100644 --- a/Classes/DataHandler/PreProcessFieldArray.php +++ b/Classes/DataHandler/PreProcessFieldArray.php @@ -31,8 +31,6 @@ * Class/Function which offers TCE main hook functions. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class PreProcessFieldArray extends AbstractDataHandler { @@ -220,7 +218,7 @@ public function extractDefaultDataFromDataStructure($dataStructure) } $sheetArray['data'][$sheetName]['lDEF'] = $elArray; } - }; + } } if (!empty($sheetArray)) { $flexformTools = GeneralUtility::makeInstance(FlexFormTools::class); @@ -246,8 +244,11 @@ public function setFieldEntries(array &$fieldArray, $contentId = 0, $new = false $containerUpdateArray[(int)$fieldArray['tx_gridelements_container']] = 1; } if ((int)$fieldArray['tx_gridelements_container'] === 0) { - $originalContainer = BackendUtility::getRecord('tt_content', (int)$contentId, - 'tx_gridelements_container,sys_language_uid'); + $originalContainer = BackendUtility::getRecord( + 'tt_content', + (int)$contentId, + 'tx_gridelements_container,sys_language_uid' + ); if (!empty($originalContainer)) { $containerUpdateArray[(int)$originalContainer['tx_gridelements_container']] = -1; } @@ -269,8 +270,11 @@ public function setFieldEntriesForGridContainers(array &$fieldArray) if ((int)$fieldArray['tx_gridelements_container'] > 0 && isset($fieldArray['colPos']) && (int)$fieldArray['colPos'] !== -1) { $fieldArray['colPos'] = -1; $fieldArray['tx_gridelements_columns'] = 0; - $targetContainer = BackendUtility::getRecord('tt_content', (int)$fieldArray['tx_gridelements_container'], - 'sys_language_uid'); + $targetContainer = BackendUtility::getRecord( + 'tt_content', + (int)$fieldArray['tx_gridelements_container'], + 'sys_language_uid' + ); if ((int)$targetContainer['sys_language_uid'] > -1) { $fieldArray['sys_language_uid'] = (int)$targetContainer['sys_language_uid']; } @@ -281,8 +285,11 @@ public function setFieldEntriesForGridContainers(array &$fieldArray) $fieldArray['tx_gridelements_container'] = 0; } else { if (!isset($fieldArray['sys_language_uid']) && isset($fieldArray['tx_gridelements_container']) && (int)$fieldArray['tx_gridelements_container'] > 0 && (int)$fieldArray['colPos'] === -1) { - $targetContainer = BackendUtility::getRecord('tt_content', - (int)$fieldArray['tx_gridelements_container'], 'sys_language_uid'); + $targetContainer = BackendUtility::getRecord( + 'tt_content', + (int)$fieldArray['tx_gridelements_container'], + 'sys_language_uid' + ); if ((int)$targetContainer['sys_language_uid'] > -1) { $fieldArray['sys_language_uid'] = (int)$targetContainer['sys_language_uid']; } @@ -290,8 +297,11 @@ public function setFieldEntriesForGridContainers(array &$fieldArray) } } if (isset($targetContainer) && (int)$targetContainer['sys_language_uid'] === -1) { - $list = array_flip(GeneralUtility::trimExplode(',', - $GLOBALS['TCA']['tt_content']['ctrl']['copyAfterDuplFields'], true)); + $list = array_flip(GeneralUtility::trimExplode( + ',', + $GLOBALS['TCA']['tt_content']['ctrl']['copyAfterDuplFields'], + true + )); unset($list['sys_language_uid']); $GLOBALS['TCA']['tt_content']['ctrl']['copyAfterDuplFields'] = implode(',', array_flip($list)); } @@ -322,8 +332,10 @@ public function checkForRootColumn($contentId) $queryBuilder->expr()->eq('t1.uid', $queryBuilder->quoteIdentifier('t2.tx_gridelements_container')) ) ->where( - $queryBuilder->expr()->eq('t2.uid', - $queryBuilder->createNamedParameter((int)$contentId, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 't2.uid', + $queryBuilder->createNamedParameter((int)$contentId, \PDO::PARAM_INT) + ) ) ->execute() ->fetch(); diff --git a/Classes/DataHandler/ProcessCmdmap.php b/Classes/DataHandler/ProcessCmdmap.php index 3efe0ff..66e9494 100644 --- a/Classes/DataHandler/ProcessCmdmap.php +++ b/Classes/DataHandler/ProcessCmdmap.php @@ -28,8 +28,6 @@ * Class/Function which offers TCE main hook functions. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class ProcessCmdmap extends AbstractDataHandler { @@ -57,7 +55,6 @@ public function execute_processCmdmap( $reference = (int)GeneralUtility::_GET('reference'); if ($command === 'copy' && $reference === 1 && !$commandIsProcessed && $table === 'tt_content' && !$this->getTceMain()->isImporting) { - $dataArray = [ 'pid' => $value, 'CType' => 'shortcut', @@ -87,7 +84,6 @@ public function execute_processCmdmap( $parentObj->registerDBList = null; $parentObj->remapStack = null; $commandIsProcessed = true; - } if ($command === 'delete' && $table === 'tt_content') { @@ -97,8 +93,10 @@ public function execute_processCmdmap( ->select('tx_gridelements_container', 'sys_language_uid') ->from('tt_content') ->where( - $queryBuilder->expr()->eq('uid', - $queryBuilder->createNamedParameter((int)$id, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'uid', + $queryBuilder->createNamedParameter((int)$id, \PDO::PARAM_INT) + ) ) ->execute() ->fetch(); @@ -112,4 +110,4 @@ public function execute_processCmdmap( $this->cleanupWorkspacesAfterFinalizing(); } } -} \ No newline at end of file +} diff --git a/Classes/Helper/Helper.php b/Classes/Helper/Helper.php index e7c7e3a..b9588c8 100644 --- a/Classes/Helper/Helper.php +++ b/Classes/Helper/Helper.php @@ -33,8 +33,6 @@ * Gridelements helper class * * @author Dirk Hoffmann - * @package TYPO3 - * @subpackage tx_gridelements */ class Helper implements SingletonInterface { @@ -81,10 +79,14 @@ public function getChildren($table = '', $uid = 0, $pid = 0, $sortingField = '', ->from('tt_content') ->where( $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$uid, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$uid, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT) + ) ) ) ->execute() @@ -96,8 +98,10 @@ public function getChildren($table = '', $uid = 0, $pid = 0, $sortingField = '', } else { $sortField = sprintf('%1$011d', $child['sorting']); } - $sortKey = sprintf('%1$011d', - $child['tx_gridelements_columns']) . '.' . $sortField . ':' . sprintf('%1$011d', $child['uid']); + $sortKey = sprintf( + '%1$011d', + $child['tx_gridelements_columns'] + ) . '.' . $sortField . ':' . sprintf('%1$011d', $child['uid']); $retVal[$sortKey] = $child; } @@ -116,7 +120,8 @@ public function getChildren($table = '', $uid = 0, $pid = 0, $sortingField = '', * @param bool $csvValues * @return mixed */ - public function mergeAllowedDisallowedSettings($backendLayout, $csvValues = false) { + public function mergeAllowedDisallowedSettings($backendLayout, $csvValues = false) + { if (!empty($backendLayout['allowed'])) { foreach ($backendLayout['allowed'] as $column => &$allowedFields) { if (isset($fields['CType']) && $allowedFields['CType'] !== '*') { @@ -140,7 +145,7 @@ public function mergeAllowedDisallowedSettings($backendLayout, $csvValues = fals $allowedFields['tx_gridelements_backend_layout'] = array_flip(GeneralUtility::trimExplode(',', $allowedFields['tx_gridelements_backend_layout'])); } } - }; + } if (!empty($backendLayout['disallowed']) && !$csvValues) { foreach ($backendLayout['disallowed'] as $column => &$disallowedFields) { if (!empty($disallowedFields['CType'])) { @@ -153,7 +158,7 @@ public function mergeAllowedDisallowedSettings($backendLayout, $csvValues = fals $disallowedFields['tx_gridelements_backend_layout'] = array_flip(GeneralUtility::trimExplode(',', $disallowedFields['tx_gridelements_backend_layout'])); } } - }; + } return $backendLayout; } @@ -171,8 +176,10 @@ public function getPidFromUid($uid = 0) ->select('pid') ->from('tt_content') ->where( - $queryBuilder->expr()->eq('uid', - $queryBuilder->createNamedParameter(abs($uid), \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'uid', + $queryBuilder->createNamedParameter(abs($uid), \PDO::PARAM_INT) + ) ) ->execute() ->fetch(); @@ -224,10 +231,14 @@ public function getSpecificIds(array $record) * @param $pageId * @return mixed */ - public function getSelectedBackendLayout($pageId) { + public function getSelectedBackendLayout($pageId) + { if (empty($GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId])) { - $backendLayoutData = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getSelectedBackendLayout', - $pageId, $this); + $backendLayoutData = GeneralUtility::callUserFunction( + BackendLayoutView::class . '->getSelectedBackendLayout', + $pageId, + $this + ); // add allowed CTypes to the columns, since this is not done by the native core methods if (!empty($backendLayoutData['__items'])) { $backendLayoutData['columns']['CSV'] = '-2,-1'; @@ -250,7 +261,7 @@ public function getSelectedBackendLayout($pageId) { } if (!is_array($column['allowed']) && !empty($column['allowed'])) { $allowed[$colPos] = ['CType' => $column['allowed']]; - } else if (empty($column['allowed'])) { + } elseif (empty($column['allowed'])) { $allowed[$colPos] = ['CType' => '*']; } else { $allowed[$colPos] = $column['allowed']; @@ -277,7 +288,7 @@ public function getSelectedBackendLayout($pageId) { } } $backendLayoutData = $this->mergeAllowedDisallowedSettings($backendLayoutData); - }; + } $GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId] = $backendLayoutData; } return $GLOBALS['tx_gridelements']['pageBackendLayoutData'][$pageId]; @@ -292,5 +303,4 @@ public function getBackendUser() { return $GLOBALS['BE_USER']; } - } diff --git a/Classes/Hooks/BackendUtilityGridelements.php b/Classes/Hooks/BackendUtilityGridelements.php index 3093b3c..fd247ce 100644 --- a/Classes/Hooks/BackendUtilityGridelements.php +++ b/Classes/Hooks/BackendUtilityGridelements.php @@ -29,8 +29,6 @@ * @author Jo Hasenau * @author Dirk Hoffmann * @author Stephan Schuler - * @package TYPO3 - * @subpackage tx_gridelements */ class BackendUtilityGridelements { @@ -79,5 +77,4 @@ public function injectLayoutSetup(LayoutSetup $layoutSetup) { $this->layoutSetup = $layoutSetup; } - } diff --git a/Classes/Hooks/DataHandler.php b/Classes/Hooks/DataHandler.php index 162ca70..95cd6b2 100644 --- a/Classes/Hooks/DataHandler.php +++ b/Classes/Hooks/DataHandler.php @@ -30,12 +30,9 @@ * Class/Function which offers TCE main hook functions. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class DataHandler implements SingletonInterface { - public function __construct() { } @@ -106,7 +103,7 @@ public function processDatamap_afterDatabaseOperations( * @param string $table The name of the table we are working on * @param int $id The id of the record that is going to be copied * @param string $value The value that has been sent with the copy command - * @param boolean $commandIsProcessed A switch to tell the parent object, if the record has been copied + * @param bool $commandIsProcessed A switch to tell the parent object, if the record has been copied * @param \TYPO3\CMS\Core\DataHandling\DataHandler $parentObj The parent object that triggered this hook * @param array|bool $pasteUpdate Values to be updated after the record is pasted */ @@ -125,5 +122,4 @@ public function processCmdmap( $hook->execute_processCmdmap($command, $table, $id, $value, $commandIsProcessed, $parentObj, $pasteUpdate); } } - -} \ No newline at end of file +} diff --git a/Classes/Hooks/DatabaseRecordList.php b/Classes/Hooks/DatabaseRecordList.php index 8bf55ec..3aaae95 100644 --- a/Classes/Hooks/DatabaseRecordList.php +++ b/Classes/Hooks/DatabaseRecordList.php @@ -34,8 +34,6 @@ * * @author Jo Hasenau * @author Dirk Hoffmann - * @package TYPO3 - * @subpackage tx_gridelements */ class DatabaseRecordList implements RecordListHookInterface, SingletonInterface { @@ -133,8 +131,14 @@ public function renderListHeaderActions($table, $currentIdList, $cells, &$parent public function checkChildren($table, array $row, $level, array &$theData, DatabaseRecordListXclass $parentObj) { if ($table === 'tt_content' && $row['CType'] === 'gridelements_pi1') { - $elementChildren = Helper::getInstance()->getChildren($table, $row['uid'], $row['pid'], '', 0, - $parentObj->selFieldList); + $elementChildren = Helper::getInstance()->getChildren( + $table, + $row['uid'], + $row['pid'], + '', + 0, + $parentObj->selFieldList + ); if (!empty($elementChildren)) { $theData['_EXPANDABLE_'] = true; $theData['_EXPAND_ID_'] = $table . ':' . $row['uid']; @@ -210,7 +214,6 @@ public function getLanguageService() * * @param LanguageService $languageService */ - public function setLanguageService(LanguageService $languageService) { $this->languageService = $languageService; diff --git a/Classes/Hooks/DrawItem.php b/Classes/Hooks/DrawItem.php index 9413c40..b160597 100644 --- a/Classes/Hooks/DrawItem.php +++ b/Classes/Hooks/DrawItem.php @@ -53,8 +53,6 @@ * Class/Function which manipulates the rendering of item example content and replaces it with a grid of child elements. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class DrawItem implements PageLayoutViewDrawItemHookInterface, SingletonInterface { @@ -141,7 +139,7 @@ public function getBackendUser() * Deactivates the original example content output * * @param PageLayoutView $parentObject : The parent object that triggered this hook - * @param boolean $drawItem : A switch to tell the parent object, if the item still must be drawn + * @param bool $drawItem : A switch to tell the parent object, if the item still must be drawn * @param string $headerContent : The content of the item header * @param string $itemContent : The content of the item itself * @param array $row : The current data row for this item @@ -220,8 +218,15 @@ protected function renderCTypeGridelements(PageLayoutView $parentObject, &$row) // if there are any columns, lets build the content for them $outerTtContentDataArray = $parentObject->tt_contentData['nextThree']; if (!empty($colPosValues)) { - $this->renderGridColumns($parentObject, $colPosValues, $gridContent, $gridElement, $editUidList, - $singleColumn, $head); + $this->renderGridColumns( + $parentObject, + $colPosValues, + $gridContent, + $gridElement, + $editUidList, + $singleColumn, + $head + ); } $parentObject->tt_contentData['nextThree'] = $outerTtContentDataArray; @@ -294,7 +299,8 @@ protected function setSingleColPosItems(PageLayoutView $parentObject, &$colPosVa ->expr(); $queryBuilder = $parentObject->getQueryBuilder( 'tt_content', - $specificIds['pid'], [ + $specificIds['pid'], + [ $expressionBuilder->eq('colPos', -1), $expressionBuilder->in('tx_gridelements_container', [(int)$row['uid'], $specificIds['uid']]), ] @@ -320,7 +326,7 @@ protected function setSingleColPosItems(PageLayoutView $parentObject, &$colPosVa * @param array $gridContent : The rendered content data of the grid columns * @param array $row : The current data row for the container item * @param array $editUidList : determines if we will get edit icons or not - * @param boolean $singleColumn : Determines if we are in single column mode or not + * @param bool $singleColumn : Determines if we are in single column mode or not * @param array $head : An array of headers for each of the columns * * @return void @@ -343,23 +349,31 @@ protected function renderGridColumns( if ($item['t3ver_state'] === 3) { $moveUids[] = (int)$item['t3ver_move_id']; $item = BackendUtility::getRecordWSOL('tt_content', (int)$item['uid']); - $movePlaceholder = BackendUtility::getMovePlaceholder('tt_content', (int)$item['uid'], '*', - $workspace); + $movePlaceholder = BackendUtility::getMovePlaceholder( + 'tt_content', + (int)$item['uid'], + '*', + $workspace + ); if (!empty($movePlaceholder)) { $item['sorting'] = $movePlaceholder['sorting']; $item['tx_gridelements_columns'] = $movePlaceholder['tx_gridelements_columns']; $item['tx_gridelements_container'] = $movePlaceholder['tx_gridelements_container']; - }; + } } else { $item = BackendUtility::getRecordWSOL('tt_content', (int)$item['uid']); if ($item['t3ver_state'] === 4) { - $movePlaceholder = BackendUtility::getMovePlaceholder('tt_content', (int)$item['uid'], '*', - $workspace); + $movePlaceholder = BackendUtility::getMovePlaceholder( + 'tt_content', + (int)$item['uid'], + '*', + $workspace + ); if (!empty($movePlaceholder)) { $item['sorting'] = $movePlaceholder['sorting']; $item['tx_gridelements_columns'] = $movePlaceholder['tx_gridelements_columns']; $item['tx_gridelements_container'] = $movePlaceholder['tx_gridelements_container']; - }; + } } } $workspacePreparedItems[] = $item; @@ -431,38 +445,62 @@ protected function collectItemsForColumns(PageLayoutView $parentObject, &$colPos $queryBuilder = $this->getQueryBuilder(); $constraints = [ - $queryBuilder->expr()->in('pid', - $queryBuilder->createNamedParameter([(int)$row['pid'], $specificIds['pid']], - Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->in( + 'pid', + $queryBuilder->createNamedParameter( + [(int)$row['pid'], $specificIds['pid']], + Connection::PARAM_INT_ARRAY + ) + ), $queryBuilder->expr()->eq('colPos', $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_container', - $queryBuilder->createNamedParameter([(int)$row['uid'], $specificIds['uid']], - Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($colPosList, Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->in( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter( + [(int)$row['uid'], $specificIds['uid']], + Connection::PARAM_INT_ARRAY + ) + ), + $queryBuilder->expr()->in( + 'tx_gridelements_columns', + $queryBuilder->createNamedParameter($colPosList, Connection::PARAM_INT_ARRAY) + ), ]; if (!$parentObject->tt_contentConfig['languageMode']) { $constraints[] = $queryBuilder->expr()->orX( $queryBuilder->expr()->eq('sys_language_uid', $queryBuilder->createNamedParameter(-1, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('sys_language_uid', - $queryBuilder->createNamedParameter((int)$parentObject->tt_contentConfig['sys_language_uid'], - \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'sys_language_uid', + $queryBuilder->createNamedParameter( + (int)$parentObject->tt_contentConfig['sys_language_uid'], + \PDO::PARAM_INT + ) + ) ); } elseif ($row['sys_language_uid'] > 0) { - $constraints[] = $queryBuilder->expr()->eq('sys_language_uid', - $queryBuilder->createNamedParameter((int)$row['sys_language_uid'], \PDO::PARAM_INT)); + $constraints[] = $queryBuilder->expr()->eq( + 'sys_language_uid', + $queryBuilder->createNamedParameter((int)$row['sys_language_uid'], \PDO::PARAM_INT) + ); } if ($this->helper->getBackendUser()->workspace > 0) { if ($row['t3ver_wsid'] > 0) { - $constraints[] = $queryBuilder->expr()->eq('t3ver_wsid', - $queryBuilder->createNamedParameter((int)$row['t3ver_wsid'], \PDO::PARAM_INT)); + $constraints[] = $queryBuilder->expr()->eq( + 't3ver_wsid', + $queryBuilder->createNamedParameter((int)$row['t3ver_wsid'], \PDO::PARAM_INT) + ); } else { $constraints[] = $queryBuilder->expr()->orX( - $queryBuilder->expr()->eq('t3ver_wsid', - $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('t3ver_wsid', - $queryBuilder->createNamedParameter($this->helper->getBackendUser()->workspace, - \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 't3ver_wsid', + $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->eq( + 't3ver_wsid', + $queryBuilder->createNamedParameter( + $this->helper->getBackendUser()->workspace, + \PDO::PARAM_INT + ) + ) ); } } @@ -521,7 +559,6 @@ protected function renderSingleGridColumn( $row, &$editUidList ) { - $specificIds = $this->helper->getSpecificIds($row); $allowed = base64_encode(json_encode($values['allowed'])); $disallowed = base64_encode(json_encode($values['disallowed'])); @@ -579,9 +616,13 @@ protected function renderSingleGridColumn( if ($colPos !== '' && $colPos !== null && $colPos < 32768 && $url) { $iconsArray = [ - 'new' => '' . $this->iconFactory->getIcon('actions-document-new', - 'small') . ' ' . $this->languageService->getLL('content', true) . '', + 'new' => '' . $this->iconFactory->getIcon( + 'actions-document-new', + 'small' + ) . ' ' . $this->languageService->getLL('content', true) . '', ]; } @@ -731,8 +772,10 @@ protected function checkIfTranslationsExistInLanguage( // Also, you may override this strict behavior via user TS Config // If you do so, you're on your own and cannot rely on any support by the TYPO3 core // We jump out here since we don't need to do the expensive loop operations - $allowInconsistentLanguageHandling = BackendUtility::getModTSconfig($parentObject->id, - 'mod.web_layout.allowInconsistentLanguageHandling'); + $allowInconsistentLanguageHandling = BackendUtility::getModTSconfig( + $parentObject->id, + 'mod.web_layout.allowInconsistentLanguageHandling' + ); if ($language === 0 || $language === -1 || $allowInconsistentLanguageHandling['value'] === '1') { return false; } @@ -754,10 +797,14 @@ protected function checkIfTranslationsExistInLanguage( ) { $message = GeneralUtility::makeInstance( FlashMessage::class, - sprintf($this->getLanguageService()->getLL('staleTranslationWarning'), - $parentObject->languageIconTitles[$language]['title']), - sprintf($this->getLanguageService()->getLL('staleTranslationWarningTitle'), - $parentObject->languageIconTitles[$language]['title']), + sprintf( + $this->getLanguageService()->getLL('staleTranslationWarning'), + $parentObject->languageIconTitles[$language]['title'] + ), + sprintf( + $this->getLanguageService()->getLL('staleTranslationWarningTitle'), + $parentObject->languageIconTitles[$language]['title'] + ), FlashMessage::WARNING ); $service = GeneralUtility::makeInstance(FlashMessageService::class); @@ -813,8 +860,13 @@ protected function renderSingleElementHTML(PageLayoutView $parentObject, $item) if (!$parentObject->tt_contentConfig['languageMode']) { $singleElementHTML .= '
'; } - $singleElementHTML .= $parentObject->tt_content_drawHeader($item, - $parentObject->tt_contentConfig['showInfo'] ? 15 : 5, $parentObject->defLangBinding, true, true); + $singleElementHTML .= $parentObject->tt_content_drawHeader( + $item, + $parentObject->tt_contentConfig['showInfo'] ? 15 : 5, + $parentObject->defLangBinding, + true, + true + ); $singleElementHTML .= (!empty($item['_ORIG_uid']) ? '
' : '') . '
' . $parentObject->tt_content_drawItem($item) @@ -844,8 +896,12 @@ protected function tt_content_drawFooter(PageLayoutView $parentObject, array $ro $content = ''; // Get processed values: $info = []; - $parentObject->getProcessedValue('tt_content', 'starttime,endtime,fe_group,spaceBefore,spaceAfter', $row, - $info); + $parentObject->getProcessedValue( + 'tt_content', + 'starttime,endtime,fe_group,spaceBefore,spaceAfter', + $row, + $info + ); // Content element annotation if (!empty($GLOBALS['TCA']['tt_content']['ctrl']['descriptionColumn'])) { @@ -858,8 +914,10 @@ protected function tt_content_drawFooter(PageLayoutView $parentObject, array $ro foreach ($drawFooterHooks as $hookClass) { $hookObject = GeneralUtility::getUserObj($hookClass); if (!$hookObject instanceof PageLayoutViewDrawFooterHookInterface) { - throw new \UnexpectedValueException($hookClass . ' must implement interface ' . PageLayoutViewDrawFooterHookInterface::class, - 1404378171); + throw new \UnexpectedValueException( + $hookClass . ' must implement interface ' . PageLayoutViewDrawFooterHookInterface::class, + 1404378171 + ); } $hookObject->preProcess($parentObject, $info, $row); } @@ -898,9 +956,12 @@ protected function setColumnHeader( &$editUidList, $expanded = true ) { - $head[$colPos] = $this->tt_content_drawColHeader($name, + $head[$colPos] = $this->tt_content_drawColHeader( + $name, ($parentObject->doEdit && $editUidList[$colPos]) ? '&edit[tt_content][' . $editUidList[$colPos] . ']=edit' : '', - $parentObject, $expanded); + $parentObject, + $expanded + ); } /** @@ -909,7 +970,7 @@ protected function setColumnHeader( * @param string $colName Column name * @param string $editParams Edit params (Syntax: &edit[...] for FormEngine) * @param \TYPO3\CMS\Backend\View\PageLayoutView $parentObject - * @param boolean $expanded + * @param bool $expanded * * @return string HTML table */ @@ -920,9 +981,13 @@ protected function tt_content_drawColHeader($colName, $editParams, PageLayoutVie if ($parentObject->tt_contentConfig['showCommands']) { // Edit whole of column: if ($editParams) { - $iconsArr['edit'] = '' . $this->iconFactory->getIcon('actions-document-open', - Icon::SIZE_SMALL)->render() . ''; + $iconsArr['edit'] = '' . $this->iconFactory->getIcon( + 'actions-document-open', + Icon::SIZE_SMALL + )->render() . ''; } } @@ -936,11 +1001,17 @@ protected function tt_content_drawColHeader($colName, $editParams, PageLayoutVie $toggleTitle = $this->languageService->sL('LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xml:tx_gridelements_collapsecontent'); } - $iconsArr['toggleContent'] = '' . $this->iconFactory->getIcon('actions-view-list-collapse', - 'small') . $this->iconFactory->getIcon('actions-view-list-expand', - 'small') . ''; - $icons = '
' . implode('', - $iconsArr) . '
'; + $iconsArr['toggleContent'] = '' . $this->iconFactory->getIcon( + 'actions-view-list-collapse', + 'small' + ) . $this->iconFactory->getIcon( + 'actions-view-list-expand', + 'small' + ) . ''; + $icons = '
' . implode( + '', + $iconsArr + ) . '
'; // Create header row: $out = '
' . $icons . ' @@ -970,7 +1041,8 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag BackendUtility::wrapInHelp( 'tx_gridelements_backend_layouts', 'title', - $this->languageService->sL($layout['title']), [ + $this->languageService->sL($layout['title']), + [ 'title' => $this->languageService->sL($layout['title']), 'description' => $this->languageService->sL($layout['description']), ] @@ -1120,8 +1192,11 @@ protected function renderGridLayoutTable($layout, $row, $head, $gridContent, Pag $tooManyItems = $gridContent['numberOfItems'][$columnKey] > $maxItems && $maxItems > 0; $expanded = $this->helper->getBackendUser()->uc['moduleData']['page']['gridelementsCollapsedColumns'][$row['uid'] . '_' . $columnKey] ? 'collapsed' : 'expanded'; if (!empty($columnConfig['name']) && $columnKey === 32768) { - $columnHead = $this->tt_content_drawColHeader(htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')', - '', $parentObject); + $columnHead = $this->tt_content_drawColHeader( + htmlspecialchars($columnConfig['name']) . ' (' . $this->languageService->getLL('notAssigned') . ')', + '', + $parentObject + ); } else { $columnHead = $head[$columnKey]; } @@ -1135,18 +1210,30 @@ class="t3-grid-cell t3js-page-column t3-page-column t3-page-column-' . $columnKe (isset($columnConfig['rowspan']) && $columnConfig['colPos'] !== '' ? ' t3-grid-cell-height' . $rowSpan : '') . ($disableNewContent ? ' t3-page-ce-disable-new-ce' : '') . ($layout['horizontal'] ? ' t3-grid-cell-horizontal' : '') . ' ' . $expanded . '"' . - ' data-allowed-ctype="' . (!empty($allowedContentTypes) ? join(',', - $allowedContentTypes) : '*') . '"' . - (!empty($disallowedContentTypes) ? ' data-disallowed-ctype="' . join(',', - $disallowedContentTypes) . '"' : '') . - (!empty($allowedListTypes) ? ' data-allowed-list_type="' . join(',', - $allowedListTypes) . '"' : '') . - (!empty($disallowedListTypes) ? ' data-disallowed-list_type="' . join(',', - $disallowedListTypes) . '"' : '') . - (!empty($allowedGridTypes) ? ' data-allowed-tx_gridelements_backend_layout="' . join(',', - $allowedGridTypes) . '"' : '') . - (!empty($disallowedGridTypes) ? ' data-disallowed-tx_gridelements_backend_layout="' . join(',', - $disallowedGridTypes) . '"' : '') . + ' data-allowed-ctype="' . (!empty($allowedContentTypes) ? implode( + ',', + $allowedContentTypes + ) : '*') . '"' . + (!empty($disallowedContentTypes) ? ' data-disallowed-ctype="' . implode( + ',', + $disallowedContentTypes + ) . '"' : '') . + (!empty($allowedListTypes) ? ' data-allowed-list_type="' . implode( + ',', + $allowedListTypes + ) . '"' : '') . + (!empty($disallowedListTypes) ? ' data-disallowed-list_type="' . implode( + ',', + $disallowedListTypes + ) . '"' : '') . + (!empty($allowedGridTypes) ? ' data-allowed-tx_gridelements_backend_layout="' . implode( + ',', + $allowedGridTypes + ) . '"' : '') . + (!empty($disallowedGridTypes) ? ' data-disallowed-tx_gridelements_backend_layout="' . implode( + ',', + $disallowedGridTypes + ) . '"' : '') . (!empty($maxItems) ? ' data-maxitems="' . $maxItems . '"' : '') . ' data-state="' . $expanded . '">'; $grid .= ($this->helper->getBackendUser()->uc['hideColumnHeaders'] ? '' : $columnHead); @@ -1184,12 +1271,21 @@ protected function renderCTypeShortcut(PageLayoutView $parentObject, &$row) foreach ($shortcutItems as $shortcutItem) { $shortcutItem = trim($shortcutItem); if (strpos($shortcutItem, 'pages_') !== false) { - $this->collectContentDataFromPages($shortcutItem, $collectedItems, $row['recursive'], $row['uid'], - $row['sys_language_uid']); + $this->collectContentDataFromPages( + $shortcutItem, + $collectedItems, + $row['recursive'], + $row['uid'], + $row['sys_language_uid'] + ); } else { if (strpos($shortcutItem, '_') === false || strpos($shortcutItem, 'tt_content_') !== false) { - $this->collectContentData($shortcutItem, $collectedItems, $row['uid'], - $row['sys_language_uid']); + $this->collectContentData( + $shortcutItem, + $collectedItems, + $row['uid'], + $row['sys_language_uid'] + ); } } } @@ -1241,17 +1337,25 @@ protected function collectContentDataFromPages( $items = $queryBuilder ->select('*') - ->addSelectLiteral($queryBuilder->expr()->inSet('pid', - $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)) . ' AS inSet') + ->addSelectLiteral($queryBuilder->expr()->inSet( + 'pid', + $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY) + ) . ' AS inSet') ->from('tt_content') ->where( - $queryBuilder->expr()->neq('uid', - $queryBuilder->createNamedParameter((int)$parentUid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('pid', - $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY)), + $queryBuilder->expr()->neq( + 'uid', + $queryBuilder->createNamedParameter((int)$parentUid, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'pid', + $queryBuilder->createNamedParameter($itemList, Connection::PARAM_INT_ARRAY) + ), $queryBuilder->expr()->gte('colPos', $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([0, -1], Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->in( + 'sys_language_uid', + $queryBuilder->createNamedParameter([0, -1], Connection::PARAM_INT_ARRAY) + ) ) ->orderBy('inSet') ->addOrderBy('colPos') @@ -1296,8 +1400,10 @@ protected function collectContentData($shortcutItem, &$collectedItems, $parentUi ->select('*') ->from('tt_content') ->where( - $queryBuilder->expr()->eq('uid', - $queryBuilder->createNamedParameter((int)$shortcutItem, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'uid', + $queryBuilder->createNamedParameter((int)$shortcutItem, \PDO::PARAM_INT) + ) ) ->setMaxResults(1) ->execute() @@ -1330,5 +1436,4 @@ public function getIconFactory() { return $this->iconFactory; } - } diff --git a/Classes/Hooks/PageRenderer.php b/Classes/Hooks/PageRenderer.php index 380fb07..a172811 100644 --- a/Classes/Hooks/PageRenderer.php +++ b/Classes/Hooks/PageRenderer.php @@ -35,8 +35,6 @@ * Class/Function which adds the necessary ExtJS and pure JS stuff for the grid elements. * * @author Jo Hasenau , Tobias Ferger - * @package TYPO3 - * @subpackage tx_gridelements */ class PageRenderer implements SingletonInterface { @@ -48,13 +46,17 @@ class PageRenderer implements SingletonInterface */ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $pageRenderer) { - if (!empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === RecordList::class || is_subclass_of($GLOBALS['SOBE'], - RecordList::class))) { + if (!empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === RecordList::class || is_subclass_of( + $GLOBALS['SOBE'], + RecordList::class + ))) { $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsOnReady'); return; } - if (!empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === PageLayoutController::class || is_subclass_of($GLOBALS['SOBE'], - PageLayoutController::class))) { + if (!empty($GLOBALS['SOBE']) && (get_class($GLOBALS['SOBE']) === PageLayoutController::class || is_subclass_of( + $GLOBALS['SOBE'], + PageLayoutController::class + ))) { $iconFactory = GeneralUtility::makeInstance(IconFactory::class); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsOnReady'); $pageRenderer->loadRequireJsModule('TYPO3/CMS/Gridelements/GridElementsDragDrop'); @@ -70,8 +72,10 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p } // pull locallang_db.xml to JS side - only the tx_gridelements_js-prefixed keys - $pageRenderer->addInlineLanguageLabelFile('EXT:gridelements/Resources/Private/Language/locallang_db.xml', - 'tx_gridelements_js'); + $pageRenderer->addInlineLanguageLabelFile( + 'EXT:gridelements/Resources/Private/Language/locallang_db.xml', + 'tx_gridelements_js' + ); $pAddExtOnReadyCode = ' TYPO3.l10n = { @@ -82,8 +86,11 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p '; $id = (int)GeneralUtility::_GP('id'); - $layout = GeneralUtility::callUserFunction(BackendLayoutView::class . '->getSelectedBackendLayout', - $id, $this); + $layout = GeneralUtility::callUserFunction( + BackendLayoutView::class . '->getSelectedBackendLayout', + $id, + $this + ); if (is_array($layout) && !empty($layout['__config']['backend_layout.']['rows.'])) { /** @var LayoutSetup $layoutSetup */ $layoutSetup = GeneralUtility::makeInstance(LayoutSetup::class)->init(0); @@ -99,13 +106,17 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p } // add Ext.onReady() code from file - $pAddExtOnReadyCode .= " - top.pageColumnsAllowed = " . json_encode($layout['allowed']) . "; - top.pageColumnsDisallowed = " . json_encode($layout['disallowed']) . "; - top.pageColumnsMaxitems = " . json_encode($layout['maxitems']) . "; - top.pasteReferenceAllowed = " . ($this->getBackendUser()->checkAuthMode('tt_content', 'CType', 'shortcut', - $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode']) ? 'true' : 'false') . "; - top.skipDraggableDetails = " . ($this->getBackendUser()->uc['dragAndDropHideNewElementWizardInfoOverlay'] ? 'true' : 'false') . "; + $pAddExtOnReadyCode .= ' + top.pageColumnsAllowed = ' . json_encode($layout['allowed']) . '; + top.pageColumnsDisallowed = ' . json_encode($layout['disallowed']) . '; + top.pageColumnsMaxitems = ' . json_encode($layout['maxitems']) . '; + top.pasteReferenceAllowed = ' . ($this->getBackendUser()->checkAuthMode( + 'tt_content', + 'CType', + 'shortcut', + $GLOBALS['TYPO3_CONF_VARS']['BE']['explicitADmode'] + ) ? 'true' : 'false') . '; + top.skipDraggableDetails = ' . ($this->getBackendUser()->uc['dragAndDropHideNewElementWizardInfoOverlay'] ? 'true' : 'false') . "; top.backPath = '" . $GLOBALS['BACK_PATH'] . "'; top.browserUrl = '" . BackendUtility::getModuleUrl('wizard_element_browser') . "';"; @@ -125,9 +136,11 @@ public function addJSCSS(array $parameters, \TYPO3\CMS\Core\Page\PageRenderer $p } } - $pAddExtOnReadyCode .= " - top.copyFromAnotherPageLinkTemplate = " . json_encode('' . $iconFactory->getIcon('actions-insert-reference', - Icon::SIZE_SMALL)->render() . '') . ";"; + $pAddExtOnReadyCode .= ' + top.copyFromAnotherPageLinkTemplate = ' . json_encode('' . $iconFactory->getIcon( + 'actions-insert-reference', + Icon::SIZE_SMALL + )->render() . '') . ';'; $pageRenderer->addJsInlineCode('gridelementsExtOnReady', $pAddExtOnReadyCode); } diff --git a/Classes/Hooks/TtContentFlexForm.php b/Classes/Hooks/TtContentFlexForm.php index 6eb4324..b724e67 100644 --- a/Classes/Hooks/TtContentFlexForm.php +++ b/Classes/Hooks/TtContentFlexForm.php @@ -29,8 +29,6 @@ * @author Jo Hasenau * @author Dirk Hoffmann * @author Stephan Schuler - * @package TYPO3 - * @subpackage tx_gridelements */ class TtContentFlexForm { @@ -99,10 +97,10 @@ public function parseDataStructureByIdentifierPreProcess(array $identifier) { if ($identifier['type'] === 'gridelements-dummy') { return 'FILE:EXT:gridelements/Configuration/FlexForms/default_flexform_configuration.xml'; - } elseif (!empty($identifier['flexformDS'])) { + } + if (!empty($identifier['flexformDS'])) { return $identifier['flexformDS']; - } else { - return ''; } + return ''; } } diff --git a/Classes/Hooks/WizardItems.php b/Classes/Hooks/WizardItems.php index eb4dbef..9b8ac43 100644 --- a/Classes/Hooks/WizardItems.php +++ b/Classes/Hooks/WizardItems.php @@ -36,8 +36,6 @@ * Class/Function which manipulates the rendering of items within the new content element wizard * * @author Jo Hasenau , Tobias Ferger - * @package TYPO3 - * @subpackage tx_gridelements */ class WizardItems implements NewContentElementWizardHookInterface { @@ -256,8 +254,10 @@ public function addGridItemsToWizard(array &$gridItems, array &$wizardItems) if (StringUtility::beginsWith($largeIcon, '../uploads/tx_gridelements/')) { $largeIcon = str_replace('../', '', $largeIcon); } else { - if (!StringUtility::beginsWith($largeIcon, 'EXT:') && strpos($largeIcon, - '/') === false + if (!StringUtility::beginsWith($largeIcon, 'EXT:') && strpos( + $largeIcon, + '/' + ) === false ) { $largeIcon = GeneralUtility::resolveBackPath($item['icon'][1]); } @@ -268,10 +268,13 @@ public function addGridItemsToWizard(array &$gridItems, array &$wizardItems) 'source' => $largeIcon, ]); } else { - $iconRegistry->registerIcon($item['iconIdentifierLarge'], BitmapIconProvider::class, + $iconRegistry->registerIcon( + $item['iconIdentifierLarge'], + BitmapIconProvider::class, [ 'source' => $largeIcon, - ]); + ] + ); } } } else { @@ -395,5 +398,4 @@ public function getBackendUser() { return $GLOBALS['BE_USER']; } - } diff --git a/Classes/Plugin/Gridelements.php b/Classes/Plugin/Gridelements.php index f907077..51e60f7 100644 --- a/Classes/Plugin/Gridelements.php +++ b/Classes/Plugin/Gridelements.php @@ -35,8 +35,6 @@ * Plugin 'Grid Element' for the 'gridelements' extension. * * @author Jo Hasenau - * @package TYPO3 - * @subpackage tx_gridelements */ class Gridelements extends ContentObjectRenderer { @@ -124,8 +122,10 @@ public function main($content = '', $conf = []) unset($csvColumns); if (isset($typoScriptSetup['jsFooterInline']) || isset($typoScriptSetup['jsFooterInline.'])) { - $jsFooterInline = isset($typoScriptSetup['jsFooterInline.']) ? $this->cObj->stdWrap($typoScriptSetup['jsFooterInline'], - $typoScriptSetup['jsFooterInline.']) : $typoScriptSetup['jsFooterInline']; + $jsFooterInline = isset($typoScriptSetup['jsFooterInline.']) ? $this->cObj->stdWrap( + $typoScriptSetup['jsFooterInline'], + $typoScriptSetup['jsFooterInline.'] + ) : $typoScriptSetup['jsFooterInline']; $this->getPageRenderer()->addJsFooterInlineCode('gridelements' . $element, $jsFooterInline); unset($typoScriptSetup['jsFooterInline']); @@ -143,11 +143,19 @@ public function main($content = '', $conf = []) * Converts $this->cObj->data['pi_flexform'] from XML string to flexForm array. * * @param string $field Field name to convert + * @param array $child */ - public function initPluginFlexForm($field = 'pi_flexform') + public function initPluginFlexForm($field = 'pi_flexform', &$child = null) { // Converting flexform data into array: - if (!is_array($this->cObj->data[$field]) && $this->cObj->data[$field]) { + if (!empty($child)) { + if (!is_array($child[$field]) && $child[$field]) { + $child[$field] = GeneralUtility::xml2array($child[$field]); + if (!is_array($child[$field])) { + $child[$field] = []; + } + } + } elseif (!is_array($this->cObj->data[$field]) && $this->cObj->data[$field]) { $this->cObj->data[$field] = GeneralUtility::xml2array($this->cObj->data[$field]); if (!is_array($this->cObj->data[$field])) { $this->cObj->data[$field] = []; @@ -157,10 +165,17 @@ public function initPluginFlexForm($field = 'pi_flexform') /** * fetches values from the grid flexform and assigns them to virtual fields in the data array + * @param array $child */ - public function getPluginFlexFormData() + public function getPluginFlexFormData(&$child = []) { - $pluginFlexForm = $this->cObj->data['pi_flexform']; + if (!empty($child)) { + $cObjData = $child; + } else { + $cObjData = $this->cObj->data; + } + + $pluginFlexForm = $cObjData['pi_flexform']; if (is_array($pluginFlexForm) && is_array($pluginFlexForm['data'])) { foreach ($pluginFlexForm['data'] as $sheet => $data) { @@ -168,8 +183,11 @@ public function getPluginFlexFormData() foreach ((array)$data as $language => $value) { if (is_array($value)) { foreach ((array)$value as $key => $val) { - $this->cObj->data['flexform_' . $key] = $this->getFlexFormValue($pluginFlexForm, $key, - $sheet); + $cObjData['flexform_' . $key] = $this->getFlexFormValue( + $pluginFlexForm, + $key, + $sheet + ); } } } @@ -178,6 +196,14 @@ public function getPluginFlexFormData() } unset($pluginFlexForm); + + if (!empty($child)) { + $child = $cObjData; + } else { + $this->cObj->data = $cObjData; + } + + unset($cObjData); } /** @@ -213,7 +239,6 @@ public function getFlexFormValue( * @param string $value Value for outermost key, typ. "vDEF" depending on language. * * @return mixed The value, typ. string. - * @access private * @see pi_getFlexFormValue() */ public function getFlexFormValueFromSheetArray($sheetArray, $fieldNameArr, $value) @@ -294,15 +319,23 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') $csvColumns = GeneralUtility::intExplode(',', $csvColumns); $queryBuilder = $this->getQueryBuilder(); $where = $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT) + ), $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, 0], Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY) + ), + $queryBuilder->expr()->in( + 'sys_language_uid', + $queryBuilder->createNamedParameter([-1, 0], Connection::PARAM_INT_ARRAY) + ) ); $translationOverlay = []; $translationNoOverlay = []; @@ -316,30 +349,50 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') $translationOverlay = $queryBuilder->expr()->andX( $queryBuilder->expr()->eq('tx_gridelements_container', $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], - Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->eq('l18n_parent', - $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY) + ), + $queryBuilder->expr()->in( + 'sys_language_uid', + $queryBuilder->createNamedParameter( + [-1, $this->getTSFE()->sys_language_content], + Connection::PARAM_INT_ARRAY + ) + ), + $queryBuilder->expr()->eq( + 'l18n_parent', + $queryBuilder->createNamedParameter(0, \PDO::PARAM_INT) + ) ); } } else { if ($element) { $translationNoOverlay = $queryBuilder->expr()->andX( - $queryBuilder->expr()->eq('tx_gridelements_container', - $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT)), + $queryBuilder->expr()->eq( + 'tx_gridelements_container', + $queryBuilder->createNamedParameter((int)$element, \PDO::PARAM_INT) + ), $queryBuilder->expr()->neq('colPos', $queryBuilder->createNamedParameter(-2, \PDO::PARAM_INT)), - $queryBuilder->expr()->eq('pid', - $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT)), - $queryBuilder->expr()->in('tx_gridelements_columns', - $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY)), - $queryBuilder->expr()->in('sys_language_uid', - $queryBuilder->createNamedParameter([-1, $this->getTSFE()->sys_language_content], - Connection::PARAM_INT_ARRAY)) + $queryBuilder->expr()->eq( + 'pid', + $queryBuilder->createNamedParameter((int)$pid, \PDO::PARAM_INT) + ), + $queryBuilder->expr()->in( + 'tx_gridelements_columns', + $queryBuilder->createNamedParameter($csvColumns, Connection::PARAM_INT_ARRAY) + ), + $queryBuilder->expr()->in( + 'sys_language_uid', + $queryBuilder->createNamedParameter( + [-1, $this->getTSFE()->sys_language_content], + Connection::PARAM_INT_ARRAY + ) + ) ); } } @@ -368,10 +421,18 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') if (is_array($child)) { $child['sorting'] = $sorting; if ($this->getTSFE()->sys_language_contentOL) { - $child = $this->getTSFE()->sys_page->getRecordOverlay('tt_content', $child, - $this->getTSFE()->sys_language_content, $this->getTSFE()->sys_language_contentOL); + $child = $this->getTSFE()->sys_page->getRecordOverlay( + 'tt_content', + $child, + $this->getTSFE()->sys_language_content, + $this->getTSFE()->sys_language_contentOL + ); } if (!empty($child)) { + if ($child['CType'] === 'gridelements_pi1') { + $this->initPluginFlexForm('pi_flexform', $child); + $this->getPluginFlexFormData($child); + } $this->cObj->data['tx_gridelements_view_children'][] = $child; unset($child); } @@ -381,18 +442,16 @@ public function getChildren($element = 0, $pid = 0, $csvColumns = '') $compareFunction = function ($child_a, $child_b) { if ($child_a['sorting'] > $child_b['sorting']) { return 1; - } elseif ($child_a['sorting'] === $child_b['sorting']) { + } + if ($child_a['sorting'] === $child_b['sorting']) { return 0; - } else { - return -1; } + return -1; }; usort($this->cObj->data['tx_gridelements_view_children'], $compareFunction); - } - /** * getter for queryBuilder * @@ -435,8 +494,13 @@ public function renderChildrenIntoParentColumns($typoScriptSetup = [], $sortColu foreach ($this->cObj->data['tx_gridelements_view_children'] as $child) { $rawColumns[$child['tx_gridelements_columns']][] = $child; $renderedChild = $child; - $this->renderChildIntoParentColumn($columns, $renderedChild, $parentGridData, $parentRecordNumbers, - $typoScriptSetup); + $this->renderChildIntoParentColumn( + $columns, + $renderedChild, + $parentGridData, + $parentRecordNumbers, + $typoScriptSetup + ); $currentParentGrid['data']['tx_gridelements_view_child_' . $child['uid']] = $renderedChild; unset($renderedChild); } @@ -635,10 +699,11 @@ public function getPageRenderer() public function user_getTreeList() { $pidList = $this->getTSFE()->register['tt_content_shortcut_recursive'] - ? $this->cObj->getTreeList($this->cObj->data['uid'], - $this->getTSFE()->register['tt_content_shortcut_recursive']) + ? $this->cObj->getTreeList( + $this->cObj->data['uid'], + $this->getTSFE()->register['tt_content_shortcut_recursive'] + ) : ''; $this->getTSFE()->register['pidInList'] = trim($this->cObj->data['uid'] . ',' . $pidList, ','); } - } diff --git a/Classes/Slots/ExtTablesInclusionPostProcessing.php b/Classes/Slots/ExtTablesInclusionPostProcessing.php index 614d8b2..8619dfe 100644 --- a/Classes/Slots/ExtTablesInclusionPostProcessing.php +++ b/Classes/Slots/ExtTablesInclusionPostProcessing.php @@ -24,8 +24,6 @@ /** * Class ExtTablesInclusionPostProcessing - * - * @package GridElementsTeam\Gridelements\Hooks */ class ExtTablesInclusionPostProcessing { @@ -43,8 +41,10 @@ public function processData($tca) $GLOBALS['TCA'] = $tca; ExtensionManagementUtility::addToAllTCAtypes('tt_content', 'recursive', 'shortcut', 'after:records'); - ExtensionManagementUtility::addToAllTCAtypes('tt_content', - '--div--;LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xlf:gridElements,tx_gridelements_container,tx_gridelements_columns'); + ExtensionManagementUtility::addToAllTCAtypes( + 'tt_content', + '--div--;LLL:EXT:gridelements/Resources/Private/Language/locallang_db.xlf:gridElements,tx_gridelements_container,tx_gridelements_columns' + ); // return the modified global TCA definition return [$GLOBALS['TCA']]; diff --git a/Classes/Wizard/GridelementsBackendLayoutWizardElement.php b/Classes/Wizard/GridelementsBackendLayoutWizardElement.php index 38abebb..2266747 100644 --- a/Classes/Wizard/GridelementsBackendLayoutWizardElement.php +++ b/Classes/Wizard/GridelementsBackendLayoutWizardElement.php @@ -129,10 +129,10 @@ public function render() $html[] = '
'; $html[] = '
'; - $contentTypes = array(); + $contentTypes = []; if (is_array($GLOBALS['TCA']['tt_content']['columns']['CType']['config']['items'])) { foreach ($GLOBALS['TCA']['tt_content']['columns']['CType']['config']['items'] as $item) { - $contentType = array(); + $contentType = []; if (!empty($item[1])) { $contentType['key'] = $item[1]; if (substr($contentType['key'], 0, 2) !== '--') { @@ -153,7 +153,7 @@ public function render() } } } - $listTypes = array(); + $listTypes = []; if (is_array($GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items'])) { foreach ($GLOBALS['TCA']['tt_content']['columns']['list_type']['config']['items'] as $item) { $listType = []; @@ -169,8 +169,10 @@ public function render() $listType['icon'] = '../../../' . '../typo3/sysext/core/Resources/Public/Icons/T3Icons/content/' . $item[2]; } // Check if file ending exists, therefore compare pos of last slash to pos of last dot - if (!empty($listType['icon']) && strrpos($listType['icon'], '/') > strrpos($listType['icon'], - '.')) { + if (!empty($listType['icon']) && strrpos($listType['icon'], '/') > strrpos( + $listType['icon'], + '.' + )) { $listType['icon'] .= '.svg'; } $listTypes[] = $listType; @@ -178,7 +180,7 @@ public function render() } } } - $gridTypes = array(); + $gridTypes = []; $layoutSetup = GeneralUtility::makeInstance(LayoutSetup::class)->init($this->data['parentPageRow']['pid'])->getLayoutSetup(); if (is_array($layoutSetup)) { foreach ($layoutSetup as $key => $item) { @@ -196,8 +198,10 @@ public function render() $gridType['icon'] = '../../../' . '../typo3/sysext/core/Resources/Public/Icons/T3Icons/content/' . $item['icon'][0]; } // Check if file ending exists, therefore compare pos of last slash to pos of last dot - if (!empty($gridType['icon']) && strrpos($gridType['icon'], '/') > strrpos($gridType['icon'], - '.')) { + if (!empty($gridType['icon']) && strrpos($gridType['icon'], '/') > strrpos( + $gridType['icon'], + '.' + )) { $gridType['icon'] .= '.svg'; } } diff --git a/Classes/Xclass/DatabaseRecordList.php b/Classes/Xclass/DatabaseRecordList.php index 111b53c..5a75725 100644 --- a/Classes/Xclass/DatabaseRecordList.php +++ b/Classes/Xclass/DatabaseRecordList.php @@ -285,8 +285,11 @@ public function getButtons() // View Exclude doktypes 254,255 Configuration: // mod.web_list.noViewWithDokTypes = 254,255 if (isset($module->modTSconfig['properties']['noViewWithDokTypes'])) { - $noViewDokTypes = GeneralUtility::trimExplode(',', - $module->modTSconfig['properties']['noViewWithDokTypes'], true); + $noViewDokTypes = GeneralUtility::trimExplode( + ',', + $module->modTSconfig['properties']['noViewWithDokTypes'], + true + ); } else { //default exclusion: doktype 254 (folder), 255 (recycler) $noViewDokTypes = [ @@ -295,16 +298,21 @@ public function getButtons() ]; } if (!in_array($this->pageRow['doktype'], $noViewDokTypes)) { - $onClick = htmlspecialchars(BackendUtility::viewOnClick($this->id, '', - BackendUtility::BEgetRootLine($this->id))); + $onClick = htmlspecialchars(BackendUtility::viewOnClick( + $this->id, + '', + BackendUtility::BEgetRootLine($this->id) + )); $buttons['view'] = '' . $this->iconFactory->getIcon('actions-document-view', Icon::SIZE_SMALL)->render() . ''; } // New record on pages that are not locked by editlock if (!$module->modTSconfig['properties']['noCreateRecordsLink'] && $this->editLockPermissions()) { - $onClick = htmlspecialchars('return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', - ['id' => $this->id])) . ');'); + $onClick = htmlspecialchars('return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl( + 'db_new', + ['id' => $this->id] + )) . ');'); $buttons['new_record'] = '' . $this->iconFactory->getIcon('actions-add', Icon::SIZE_SMALL)->render() . ''; @@ -354,8 +362,10 @@ public function getButtons() $buttons['export'] = '' - . $this->iconFactory->getIcon('actions-document-export-t3d', - Icon::SIZE_SMALL)->render() . ''; + . $this->iconFactory->getIcon( + 'actions-document-export-t3d', + Icon::SIZE_SMALL + )->render() . ''; } } // Reload @@ -438,8 +448,11 @@ public function getDocHeaderButtons(ModuleTemplate $moduleTemplate) // View Exclude doktypes 254,255 Configuration: // mod.web_list.noViewWithDokTypes = 254,255 if (isset($module->modTSconfig['properties']['noViewWithDokTypes'])) { - $noViewDokTypes = GeneralUtility::trimExplode(',', - $module->modTSconfig['properties']['noViewWithDokTypes'], true); + $noViewDokTypes = GeneralUtility::trimExplode( + ',', + $module->modTSconfig['properties']['noViewWithDokTypes'], + true + ); } else { //default exclusion: doktype 254 (folder), 255 (recycler) $noViewDokTypes = [ @@ -449,8 +462,10 @@ public function getDocHeaderButtons(ModuleTemplate $moduleTemplate) } // New record on pages that are not locked by editlock if (!$module->modTSconfig['properties']['noCreateRecordsLink'] && $this->editLockPermissions()) { - $onClick = 'return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('db_new', - ['id' => $this->id])) . ');'; + $onClick = 'return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl( + 'db_new', + ['id' => $this->id] + )) . ');'; $newRecordButton = $buttonBar->makeLinkButton() ->setHref('#') ->setOnClick($onClick) @@ -595,8 +610,10 @@ public function getTable($table, $id, $rowList = '') && $table !== 'pages_language_overlay'; $tableCollapsed = (bool)$this->tablesCollapsed[$table]; // prepare space icon - $this->spaceIcon = '' . $this->iconFactory->getIcon('empty-empty', - Icon::SIZE_SMALL)->render() . ''; + $this->spaceIcon = '' . $this->iconFactory->getIcon( + 'empty-empty', + Icon::SIZE_SMALL + )->render() . ''; // Cleaning rowlist for duplicates and place the $titleCol as the first column always! $this->fieldArray = []; // title Column @@ -688,8 +705,11 @@ public function getTable($table, $id, $rowList = '') $selectFields = array_unique($selectFields); $fieldListFields = $this->makeFieldList($table, 1); if (empty($fieldListFields) && $GLOBALS['TYPO3_CONF_VARS']['BE']['debug']) { - $message = sprintf($lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_mod_web_list.xlf:missingTcaColumnsMessage'), - $table, $table); + $message = sprintf( + $lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_mod_web_list.xlf:missingTcaColumnsMessage'), + $table, + $table + ); $messageTitle = $lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_mod_web_list.xlf:missingTcaColumnsMessageTitle'); /** @var FlashMessage $flashMessage */ $flashMessage = GeneralUtility::makeInstance( @@ -714,8 +734,10 @@ public function getTable($table, $id, $rowList = '') foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['getTable'] as $classData) { $hookObject = GeneralUtility::getUserObj($classData); if (!$hookObject instanceof RecordListGetTableHookInterface) { - throw new \UnexpectedValueException($classData . ' must implement interface ' . RecordListGetTableHookInterface::class, - 1195114460); + throw new \UnexpectedValueException( + $classData . ' must implement interface ' . RecordListGetTableHookInterface::class, + 1195114460 + ); } $hookObject->getDBlistQuery($table, $id, $addWhere, $selFieldList, $this); } @@ -788,12 +810,18 @@ public function getTable($table, $id, $rowList = '') . ' (' . $this->totalItems . ')'; } else { $icon = $this->table - ? '' . $this->iconFactory->getIcon('actions-view-table-collapse', - Icon::SIZE_SMALL)->render() . '' - : '' . $this->iconFactory->getIcon('actions-view-table-expand', - Icon::SIZE_SMALL)->render() . ''; - $theData[$titleCol] = $this->linkWrapTable($table, - $tableTitle . ' (' . $this->totalItems . ') ' . $icon); + ? '' . $this->iconFactory->getIcon( + 'actions-view-table-collapse', + Icon::SIZE_SMALL + )->render() . '' + : '' . $this->iconFactory->getIcon( + 'actions-view-table-expand', + Icon::SIZE_SMALL + )->render() . ''; + $theData[$titleCol] = $this->linkWrapTable( + $table, + $tableTitle . ' (' . $this->totalItems . ') ' . $icon + ); } if ($listOnlyInSingleTableMode) { $tableHeader .= BackendUtility::wrapInHelp($table, '', $theData[$titleCol]); @@ -805,8 +833,10 @@ public function getTable($table, $id, $rowList = '') $title = $tableCollapsed ? htmlspecialchars($lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.expandTable')) : htmlspecialchars($lang->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.collapseTable')); - $icon = '' . $this->iconFactory->getIcon(($tableCollapsed ? 'actions-view-list-expand' : 'actions-view-list-collapse'), - Icon::SIZE_SMALL)->render() . ''; + $icon = '' . $this->iconFactory->getIcon( + ($tableCollapsed ? 'actions-view-list-expand' : 'actions-view-list-collapse'), + Icon::SIZE_SMALL + )->render() . ''; $collapseIcon = '' . $icon . ''; } $tableHeader .= $theData[$titleCol] . $collapseIcon; @@ -933,13 +963,17 @@ public function getTable($table, $id, $rowList = '') ), $queryBuilder->expr()->eq( 'pid', - $queryBuilder->createNamedParameter((int)$row['_MOVE_PLH_pid'], - \PDO::PARAM_INT) + $queryBuilder->createNamedParameter( + (int)$row['_MOVE_PLH_pid'], + \PDO::PARAM_INT + ) ), $queryBuilder->expr()->eq( 't3ver_wsid', - $queryBuilder->createNamedParameter((int)$row['t3ver_wsid'], - \PDO::PARAM_INT) + $queryBuilder->createNamedParameter( + (int)$row['t3ver_wsid'], + \PDO::PARAM_INT + ) ), ]; @@ -956,8 +990,14 @@ public function getTable($table, $id, $rowList = '') BackendUtility::workspaceOL($table, $lRow, $backendUser->workspace, true); if (is_array($lRow) && $backendUser->checkLanguageAccess($lRow[$GLOBALS['TCA'][$table]['ctrl']['languageField']])) { $this->currentIdList[] = $lRow['uid']; - $rowOutput .= $this->renderListRow($table, $lRow, $cc, $titleCol, $thumbsCol, - 18); + $rowOutput .= $this->renderListRow( + $table, + $lRow, + $cc, + $titleCol, + $thumbsCol, + 18 + ); } } } @@ -1090,8 +1130,10 @@ protected function addToCSV(array $row = []) // Get an field array without control fields but in the expected order $fieldArray = array_intersect_key(array_flip($this->fieldArray), $rowReducedByControlFields); // Overwrite fieldArray to keep the order with an array of needed fields - $rowReducedToSelectedColumns = array_replace($fieldArray, - array_intersect_key($rowReducedByControlFields, $fieldArray)); + $rowReducedToSelectedColumns = array_replace( + $fieldArray, + array_intersect_key($rowReducedByControlFields, $fieldArray) + ); $this->setCsvRow($rowReducedToSelectedColumns); } @@ -1139,7 +1181,6 @@ public function setCsvRow($csvRow) * @param string $expanded * @return string Table row for the element * @internal param string $expanded - * @access private * @see getTable() */ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent = 0, $level = 0, $triggerContainer = 0, $expanded = '') @@ -1179,8 +1220,11 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent $iconImg = '' . $this->iconFactory->getIconForRecord($table, $row, Icon::SIZE_SMALL)->render() . ''; - $theIcon = $this->clickMenuEnabled ? BackendUtility::wrapClickMenuOnIcon($iconImg, $table, - $row['uid']) : $iconImg; + $theIcon = $this->clickMenuEnabled ? BackendUtility::wrapClickMenuOnIcon( + $iconImg, + $table, + $row['uid'] + ) : $iconImg; // Preparing and getting the data-array $theData = []; $localizationMarkerClass = ''; @@ -1195,8 +1239,12 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent $warning = '' . $this->iconFactory->getIcon('status-warning-in-use', Icon::SIZE_SMALL)->render() . ''; } - $theData[$fCol] = $theData['__label'] = $warning . $this->linkWrapItems($table, $row['uid'], $recTitle, - $row); + $theData[$fCol] = $theData['__label'] = $warning . $this->linkWrapItems( + $table, + $row['uid'], + $recTitle, + $row + ); // Render thumbnails, if: // - a thumbnail column exists // - there is content in it @@ -1250,8 +1298,13 @@ public function renderListRow($table, $row, $cc, $titleCol, $thumbsCol, $indent } elseif ($fCol === '_LOCALIZATION_b') { $theData[$fCol] = $lC2; } else { - $theData[$fCol] = htmlspecialchars(BackendUtility::getProcessedValueExtra($table, $fCol, $row[$fCol], 0, - $row['uid'])); + $theData[$fCol] = htmlspecialchars(BackendUtility::getProcessedValueExtra( + $table, + $fCol, + $row[$fCol], + 0, + $row['uid'] + )); } } // Reset the ID if it was overwritten @@ -1308,7 +1361,7 @@ function ($attributeValue) { if ($triggerContainer) { $theData['_triggerContainer'] = $triggerContainer; - }; + } $rowOutput .= $this->addElement(1, $theIcon, $theData, GeneralUtility::implodeAttributes($tagAttributes, true)); @@ -1338,7 +1391,7 @@ function ($attributeValue) { } if ($theData['_EXPANDABLE_'] && $level < 8 && ($row['l18n_parent'] == 0 || !$this->localizationView) && !empty($theData['_CHILDREN_'])) { - $expanded = $this->expandedGridelements[$row['uid']] ? ' expanded' : ''; + $expanded = $this->expandedGridelements[$row['uid']] && (($this->expandedGridelements[$row['tx_gridelements_container']] && $expanded) || $row['tx_gridelements_container'] === 0)? ' expanded' : ''; $previousGridColumn = ''; $originalMoveUp = $this->showMoveUp; $originalMoveDown = $this->showMoveDown; @@ -1362,7 +1415,7 @@ function ($attributeValue) { if (isset($child['tx_gridelements_columns']) && ($child['tx_gridelements_columns'] !== $previousGridColumn)) { $previousGridColumn = $child['tx_gridelements_columns']; $this->showMoveUp = false; - $rowOutput .= '

@@ -1464,8 +1517,10 @@ public function makeControl($table, $row) // If the listed table is 'pages' we have to request the permission settings for each page: $localCalcPerms = 0; if ($table === 'pages') { - $localCalcPerms = $this->getBackendUserAuthentication()->calcPerms(BackendUtility::getRecord('pages', - $row['uid'])); + $localCalcPerms = $this->getBackendUserAuthentication()->calcPerms(BackendUtility::getRecord( + 'pages', + $row['uid'] + )); } $permsEdit = $table === 'pages' && $this->getBackendUserAuthentication()->checkLanguageAccess(0) @@ -1498,10 +1553,16 @@ public function makeControl($table, $row) $iconIdentifier = 'actions-page-open'; } $overlayIdentifier = !$this->isEditable($table) ? 'overlay-readonly' : null; - $editAction = '' . $this->iconFactory->getIcon($iconIdentifier, - Icon::SIZE_SMALL, $overlayIdentifier)->render() . ''; + $editAction = '' . $this->iconFactory->getIcon( + $iconIdentifier, + Icon::SIZE_SMALL, + $overlayIdentifier + )->render() . ''; } else { $editAction = $this->spaceIcon; } @@ -1515,8 +1576,10 @@ public function makeControl($table, $row) if ($permsEdit && ($table === 'tt_content' || $table === 'pages')) { $onClick = 'return jumpExt(' . GeneralUtility::quoteJSvalue(BackendUtility::getModuleUrl('move_element') . '&table=' . $table . '&uid=' . $row['uid']) . ');'; $linkTitleLL = htmlspecialchars($this->getLanguageService()->getLL('move_' . ($table === 'tt_content' ? 'record' : 'page'))); - $icon = ($table === 'pages' ? $this->iconFactory->getIcon('actions-page-move', - Icon::SIZE_SMALL) : $this->iconFactory->getIcon('actions-document-move', Icon::SIZE_SMALL)); + $icon = ($table === 'pages' ? $this->iconFactory->getIcon( + 'actions-page-move', + Icon::SIZE_SMALL + ) : $this->iconFactory->getIcon('actions-document-move', Icon::SIZE_SMALL)); $moveAction = '' . $icon->render() . ''; $this->addActionToCellGroup($cells, $moveAction, 'move'); } @@ -1531,8 +1594,14 @@ public function makeControl($table, $row) $this->addActionToCellGroup($cells, $historyAction, 'history'); // Versioning: if (ExtensionManagementUtility::isLoaded('version') && !ExtensionManagementUtility::isLoaded('workspaces')) { - $vers = BackendUtility::selectVersionsOfRecord($table, $row['uid'], 'uid', - $this->getBackendUserAuthentication()->workspace, false, $row); + $vers = BackendUtility::selectVersionsOfRecord( + $table, + $row['uid'], + 'uid', + $this->getBackendUserAuthentication()->workspace, + false, + $row + ); // If table can be versionized. if (is_array($vers)) { $href = BackendUtility::getModuleUrl('web_txversionM1', [ @@ -1546,8 +1615,10 @@ public function makeControl($table, $row) } } // "Edit Perms" link: - if ($table === 'pages' && $this->getBackendUserAuthentication()->check('modules', - 'system_BeuserTxPermission') && ExtensionManagementUtility::isLoaded('beuser')) { + if ($table === 'pages' && $this->getBackendUserAuthentication()->check( + 'modules', + 'system_BeuserTxPermission' + ) && ExtensionManagementUtility::isLoaded('beuser')) { $href = BackendUtility::getModuleUrl('system_BeuserTxPermission') . '&id=' . $row['uid'] . '&returnId=' . $row['uid'] . '&tx_beuser_system_beusertxpermission[action]=edit'; $permsAction = '' @@ -1560,14 +1631,19 @@ public function makeControl($table, $row) if ($table !== 'pages' && $this->calcPerms & Permission::CONTENT_EDIT || $table === 'pages' && $this->calcPerms & Permission::PAGE_NEW) { if ($this->showNewRecLink($table)) { $params = '&edit[' . $table . '][' . -($row['_MOVE_PLH'] ? $row['_MOVE_PLH_uid'] : $row['uid']) . ']=new'; - $icon = ($table === 'pages' ? $this->iconFactory->getIcon('actions-page-new', - Icon::SIZE_SMALL) : $this->iconFactory->getIcon('actions-add', Icon::SIZE_SMALL)); + $icon = ($table === 'pages' ? $this->iconFactory->getIcon( + 'actions-page-new', + Icon::SIZE_SMALL + ) : $this->iconFactory->getIcon('actions-add', Icon::SIZE_SMALL)); $titleLabel = 'new'; if ($GLOBALS['TCA'][$table]['ctrl']['sortby']) { $titleLabel .= ($table === 'pages' ? 'Page' : 'Record'); } - $newAction = '' . $icon->render() . ''; $this->addActionToCellGroup($cells, $newAction, 'new'); @@ -1580,8 +1656,10 @@ public function makeControl($table, $row) // Up $params = '&cmd[' . $table . '][' . $row['uid'] . '][move]=' . $this->currentTable['prev'][$row['uid']]; $moveUpAction = '' . $this->iconFactory->getIcon('actions-move-up', Icon::SIZE_SMALL)->render() . ''; } else { @@ -1593,8 +1671,10 @@ public function makeControl($table, $row) // Down $params = '&cmd[' . $table . '][' . $row['uid'] . '][move]=' . $this->currentTable['next'][$row['uid']]; $moveDownAction = '' . $this->iconFactory->getIcon('actions-move-down', Icon::SIZE_SMALL)->render() . ''; } else { @@ -1647,7 +1727,9 @@ public function makeControl($table, $row) $table, $row['uid'], ' ' . $this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.referencesToRecord'), - $this->getReferenceCount($table, $row['uid'])) . BackendUtility::translationCount($table, + $this->getReferenceCount($table, $row['uid']) + ) . BackendUtility::translationCount( + $table, $row['uid'], ' ' . $this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_core.xlf:labels.translationsOfRecord') ); @@ -1678,21 +1760,27 @@ public function makeControl($table, $row) if ($this->calcPerms & Permission::PAGE_NEW) { $params = '&cmd[' . $table . '][' . $row['uid'] . '][move]=' . -$this->id; $moveLeftAction = '' . $this->iconFactory->getIcon('actions-move-left', Icon::SIZE_SMALL)->render() . ''; $this->addActionToCellGroup($cells, $moveLeftAction, 'moveLeft'); } // Down (Paste as subpage to the page right above) if ($this->currentTable['prevUid'][$row['uid']]) { - $localCalcPerms = $this->getBackendUserAuthentication()->calcPerms(BackendUtility::getRecord('pages', - $this->currentTable['prevUid'][$row['uid']])); + $localCalcPerms = $this->getBackendUserAuthentication()->calcPerms(BackendUtility::getRecord( + 'pages', + $this->currentTable['prevUid'][$row['uid']] + )); if ($localCalcPerms & Permission::PAGE_NEW) { $params = '&cmd[' . $table . '][' . $row['uid'] . '][move]=' . $this->currentTable['prevUid'][$row['uid']]; $moveRightAction = '' . $this->iconFactory->getIcon('actions-move-right', Icon::SIZE_SMALL)->render() . ''; } else { @@ -1733,8 +1821,10 @@ public function makeControl($table, $row) foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['actions'] as $classData) { $hookObject = GeneralUtility::getUserObj($classData); if (!$hookObject instanceof RecordListHookInterface) { - throw new \UnexpectedValueException($classData . ' must implement interface ' . RecordListHookInterface::class, - 1195567840); + throw new \UnexpectedValueException( + $classData . ' must implement interface ' . RecordListHookInterface::class, + 1195567840 + ); } $cells = $hookObject->makeControl($table, $row, $cells, $this); } @@ -1938,15 +2028,22 @@ public function makeClip($table, $row) } $cells['copy'] = '' . $copyIcon->render() . ''; // Check permission to cut page or content if ($table === 'pages') { - $localCalcPerms = $this->getBackendUserAuthentication()->calcPerms(BackendUtility::getRecord('pages', - $row['uid'])); + $localCalcPerms = $this->getBackendUserAuthentication()->calcPerms(BackendUtility::getRecord( + 'pages', + $row['uid'] + )); $permsEdit = $localCalcPerms & Permission::PAGE_EDIT; } else { $permsEdit = $this->calcPerms & Permission::CONTENT_EDIT; @@ -1957,8 +2054,13 @@ public function makeClip($table, $row) if ($table === 'pages') { if ($permsEdit) { $cells['cut'] = '' . $cutIcon->render() . ''; } else { @@ -1967,8 +2069,13 @@ public function makeClip($table, $row) } else { if ($table !== 'pages' && $this->calcPerms & Permission::CONTENT_EDIT) { $cells['cut'] = '' . $cutIcon->render() . ''; } else { @@ -2007,8 +2114,12 @@ public function makeClip($table, $row) . ' href="' . htmlspecialchars($this->clipObj->pasteUrl($table, -$row['uid'])) . '"' . ' title="' . htmlspecialchars($this->getLanguageService()->getLL('clip_pasteAfter')) . '"' . ' data-title="' . htmlspecialchars($this->getLanguageService()->getLL('clip_pasteAfter')) . '"' - . ' data-content="' . htmlspecialchars($this->clipObj->confirmMsgText($table, $row, 'after', - $elFromTable)) . '"' + . ' data-content="' . htmlspecialchars($this->clipObj->confirmMsgText( + $table, + $row, + 'after', + $elFromTable + )) . '"' . ' data-severity="warning">' . $this->iconFactory->getIcon('actions-document-paste-after', Icon::SIZE_SMALL)->render() . ''; } @@ -2019,8 +2130,12 @@ public function makeClip($table, $row) . ' href="' . htmlspecialchars($this->clipObj->pasteUrl('', $row['uid'])) . '"' . ' title="' . htmlspecialchars($this->getLanguageService()->getLL('clip_pasteInto')) . '"' . ' data-title="' . htmlspecialchars($this->getLanguageService()->getLL('clip_pasteInto')) . '"' - . ' data-content="' . htmlspecialchars($this->clipObj->confirmMsgText($table, $row, 'into', - $elFromTable)) . '"' + . ' data-content="' . htmlspecialchars($this->clipObj->confirmMsgText( + $table, + $row, + 'into', + $elFromTable + )) . '"' . ' data-severity="warning">' . $this->iconFactory->getIcon('actions-document-paste-into', Icon::SIZE_SMALL)->render() . ''; } @@ -2035,8 +2150,10 @@ public function makeClip($table, $row) foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['actions'] as $classData) { $hookObject = GeneralUtility::getUserObj($classData); if (!$hookObject instanceof RecordListHookInterface) { - throw new \UnexpectedValueException($classData . ' must implement interface ' . RecordListHookInterface::class, - 1195567845); + throw new \UnexpectedValueException( + $classData . ' must implement interface ' . RecordListHookInterface::class, + 1195567845 + ); } $cells = $hookObject->makeClip($table, $row, $cells, $this); } @@ -2084,8 +2201,10 @@ public function makeLocalizationPanel($table, $row) ); $language = BackendUtility::getRecord('sys_language', $lUid_OnPage, 'title'); if ($this->languageIconTitles[$lUid_OnPage]['flagIcon']) { - $lC = $this->iconFactory->getIcon($this->languageIconTitles[$lUid_OnPage]['flagIcon'], - Icon::SIZE_SMALL)->render(); + $lC = $this->iconFactory->getIcon( + $this->languageIconTitles[$lUid_OnPage]['flagIcon'], + Icon::SIZE_SMALL + )->render(); } else { $lC = $this->languageIconTitles[$lUid_OnPage]['title']; } @@ -2162,7 +2281,6 @@ public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_2 = '', $out .= '<' . $colType . '>'; } } - } // Show icon and lines if ($this->showIcon) { @@ -2199,8 +2317,10 @@ public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_2 = '', if ($lastKey) { $cssClass = $this->addElement_tdCssClass[$lastKey]; if ($this->oddColumnsCssClass && $ccount % 2 == 0) { - $cssClass = implode(' ', - [$this->addElement_tdCssClass[$lastKey], $this->oddColumnsCssClass]); + $cssClass = implode( + ' ', + [$this->addElement_tdCssClass[$lastKey], $this->oddColumnsCssClass] + ); } $out .= ' <' . $colType . $noWrap . ' class="' . $cssClass . '"' . $colsp @@ -2220,9 +2340,9 @@ public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_2 = '', } if ($pagination) { $colsp = ' colspan="' . ($this->totalColumnCount - 1) . '"'; - } else if ($c > 1) { + } elseif ($c > 1) { $colsp = ' colspan="2"'; - } else if ($ccount === 1 && $colType === 'td') { + } elseif ($ccount === 1 && $colType === 'td') { $colsp = ' colspan="' . ($this->maxDepth - $level - 1) . '"'; } else { $colsp = ''; @@ -2244,7 +2364,6 @@ public function addElement($h, $icon, $data, $rowParams = '', $_ = '', $_2 = '', return $out; } - /** * Creates a page browser for tables with many records * @@ -2272,10 +2391,14 @@ protected function renderListNavigation($renderPart = 'top') $previous = '
  • ' . $this->iconFactory->getIcon('actions-view-paging-previous', Icon::SIZE_SMALL)->render() . '
  • '; } else { - $first = '
  • ' . $this->iconFactory->getIcon('actions-view-paging-first', - Icon::SIZE_SMALL)->render() . '
  • '; - $previous = '
  • ' . $this->iconFactory->getIcon('actions-view-paging-previous', - Icon::SIZE_SMALL)->render() . '
  • '; + $first = '
  • ' . $this->iconFactory->getIcon( + 'actions-view-paging-first', + Icon::SIZE_SMALL + )->render() . '
  • '; + $previous = '
  • ' . $this->iconFactory->getIcon( + 'actions-view-paging-previous', + Icon::SIZE_SMALL + )->render() . '
  • '; } if ($currentPage < $totalPages) { $labelNext = htmlspecialchars($this->getLanguageService()->sL('LLL:EXT:lang/Resources/Private/Language/locallang_common.xlf:next')); @@ -2285,10 +2408,14 @@ protected function renderListNavigation($renderPart = 'top') $last = '
  • ' . $this->iconFactory->getIcon('actions-view-paging-last', Icon::SIZE_SMALL)->render() . '
  • '; } else { - $next = '
  • ' . $this->iconFactory->getIcon('actions-view-paging-next', - Icon::SIZE_SMALL)->render() . '
  • '; - $last = '
  • ' . $this->iconFactory->getIcon('actions-view-paging-last', - Icon::SIZE_SMALL)->render() . '
  • '; + $next = '
  • ' . $this->iconFactory->getIcon( + 'actions-view-paging-next', + Icon::SIZE_SMALL + )->render() . '
  • '; + $last = '
  • ' . $this->iconFactory->getIcon( + 'actions-view-paging-last', + Icon::SIZE_SMALL + )->render() . '
  • '; } $reload = '
  • iconFactory->getIcon('actions-edit-copy', Icon::SIZE_SMALL)->render(); - $cells['copyMarked'] = $this->linkClipboardHeaderIcon($spriteIcon, $table, 'setCB', '', - $lang->getLL('clip_selectMarked')); + $cells['copyMarked'] = $this->linkClipboardHeaderIcon( + $spriteIcon, + $table, + 'setCB', + '', + $lang->getLL('clip_selectMarked') + ); // The "edit marked" link: $editIdList = implode(',', $currentIdList); $editIdList = '\'+editList(' . GeneralUtility::quoteJSvalue($table) . ',' . GeneralUtility::quoteJSvalue($editIdList) . ')+\''; @@ -2443,17 +2577,23 @@ public function renderListHeader($table, $currentIdList) $this->iconFactory->getIcon('actions-edit-delete', Icon::SIZE_SMALL)->render(), $table, 'delete', - sprintf($lang->getLL('clip_deleteMarkedWarning'), - $lang->sL($GLOBALS['TCA'][$table]['ctrl']['title'])), + sprintf( + $lang->getLL('clip_deleteMarkedWarning'), + $lang->sL($GLOBALS['TCA'][$table]['ctrl']['title']) + ), $lang->getLL('clip_deleteMarked') ); // The "Select all" link: - $onClick = htmlspecialchars(('checkOffCB(' . GeneralUtility::quoteJSvalue(implode(',', - $this->CBnames)) . ', this); return false;')); + $onClick = htmlspecialchars(('checkOffCB(' . GeneralUtility::quoteJSvalue(implode( + ',', + $this->CBnames + )) . ', this); return false;')); $cells['markAll'] = '' - . $this->iconFactory->getIcon('actions-document-select', - Icon::SIZE_SMALL)->render() . ''; + . $this->iconFactory->getIcon( + 'actions-document-select', + Icon::SIZE_SMALL + )->render() . ''; } else { $cells['empty'] = ''; } @@ -2468,8 +2608,10 @@ public function renderListHeader($table, $currentIdList) foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['actions'] as $classData) { $hookObject = GeneralUtility::getUserObj($classData); if (!$hookObject instanceof RecordListHookInterface) { - throw new \UnexpectedValueException($classData . ' must implement interface ' . RecordListHookInterface::class, - 1195567850); + throw new \UnexpectedValueException( + $classData . ' must implement interface ' . RecordListHookInterface::class, + 1195567850 + ); } $cells = $hookObject->renderListHeaderActions($table, $currentIdList, $cells, $this); } @@ -2492,12 +2634,15 @@ public function renderListHeader($table, $currentIdList) $containerIds = implode(',', array_flip(array_flip($this->currentContainerIdList))); $icon = '' . $this->iconFactory->getIcon('actions-view-list-collapse', - 'small')->render() . '' . $this->iconFactory->getIcon( + 'actions-view-list-collapse', + 'small' + )->render() . '' . $this->iconFactory->getIcon('actions-view-list-expand', - 'small')->render() . ''; - + title="' . $expandTitle . '" data-container-ids="' . $containerIds . '">' . $this->iconFactory->getIcon( + 'actions-view-list-expand', + 'small' + )->render() . ''; } if ($this->calcPerms & $permsAdditional && $this->showNewRecLink($table)) { $spriteIcon = $table === 'pages' @@ -2509,8 +2654,10 @@ class="btn btn-default t3js-toggle-gridelements-all" href="#t3-gridelements-expa $newContentElementWizard = isset($tmpTSc['properties']['newContentElementWizard.']['override']) ? $tmpTSc['properties']['newContentElementWizard.']['override'] : 'new_content_element'; - $newContentWizScriptPath = BackendUtility::getModuleUrl($newContentElementWizard, - ['id' => $this->id]); + $newContentWizScriptPath = BackendUtility::getModuleUrl( + $newContentElementWizard, + ['id' => $this->id] + ); $onClick = 'return jumpExt(' . GeneralUtility::quoteJSvalue($newContentWizScriptPath) . ');'; $icon = '' . $spriteIcon->render() . ''; } } @@ -2540,8 +2690,10 @@ class="btn btn-default t3js-toggle-gridelements-all" href="#t3-gridelements-expa if ($this->clipNumPane()) { $editIdList = '\'+editList(' . GeneralUtility::quoteJSvalue($table) . ',' . GeneralUtility::quoteJSvalue($editIdList) . ')+\''; } - $params = 'edit[' . $table . '][' . $editIdList . ']=edit&columnsOnly=' . implode(',', - $this->fieldArray); + $params = 'edit[' . $table . '][' . $editIdList . ']=edit&columnsOnly=' . implode( + ',', + $this->fieldArray + ); // we need to build this uri differently, otherwise GeneralUtility::quoteJSvalue messes up the edit list function $onClick = BackendUtility::editOnClick('', '', -1); $onClickArray = explode('?', $onClick, 2); @@ -2550,8 +2702,10 @@ class="btn btn-default t3js-toggle-gridelements-all" href="#t3-gridelements-expa $onClick = implode('?', $onClickArray); $icon .= '' - . $this->iconFactory->getIcon('actions-document-open', - Icon::SIZE_SMALL)->render() . ''; + . $this->iconFactory->getIcon( + 'actions-document-open', + Icon::SIZE_SMALL + )->render() . ''; $icon = '
    ' . $icon . '
    '; } // Add an empty entry, so column count fits again after moving this into $icon @@ -2577,11 +2731,15 @@ class="btn btn-default t3js-toggle-gridelements-all" href="#t3-gridelements-expa if ($this->table && is_array($currentIdList)) { // If the numeric clipboard pads are selected, show duplicate sorting link: if ($this->clipNumPane()) { - $theData[$fCol] .= '' - . $this->iconFactory->getIcon('actions-document-duplicates-select', - Icon::SIZE_SMALL)->render() . ''; + . $this->iconFactory->getIcon( + 'actions-document-duplicates-select', + Icon::SIZE_SMALL + )->render() . ''; } // If the table can be edited, add link for editing THIS field for all // listed records: @@ -2600,8 +2758,10 @@ class="btn btn-default t3js-toggle-gridelements-all" href="#t3-gridelements-expa $iTitle = sprintf($lang->getLL('editThisColumn'), $sortLabel); $theData[$fCol] .= '' - . $this->iconFactory->getIcon('actions-document-open', - Icon::SIZE_SMALL)->render() . ''; + . $this->iconFactory->getIcon( + 'actions-document-open', + Icon::SIZE_SMALL + )->render() . ''; } if (strlen($theData[$fCol]) > 0) { $theData[$fCol] = '
    ' . $theData[$fCol] . '
    '; @@ -2630,8 +2790,10 @@ class="btn btn-default t3js-toggle-gridelements-all" href="#t3-gridelements-expa foreach ($GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['typo3/class.db_list_extra.inc']['actions'] as $classData) { $hookObject = GeneralUtility::getUserObj($classData); if (!$hookObject instanceof RecordListHookInterface) { - throw new \UnexpectedValueException($classData . ' must implement interface ' . RecordListHookInterface::class, - 1195567855); + throw new \UnexpectedValueException( + $classData . ' must implement interface ' . RecordListHookInterface::class, + 1195567855 + ); } $theData = $hookObject->renderListHeader($table, $currentIdList, $theData, $this); } @@ -2716,8 +2878,10 @@ public function addSortLink($code, $field, $table) $sortUrl = $this->listURL('', '-1', 'sortField,sortRev,table,firstElementNumber') . '&table=' . $table . '&sortField=' . $field . '&sortRev=' . ($this->sortRev || $this->sortField != $field ? 0 : 1); $sortArrow = $this->sortField === $field - ? $this->iconFactory->getIcon('status-status-sorting-' . ($this->sortRev ? 'desc' : 'asc'), - Icon::SIZE_SMALL)->render() + ? $this->iconFactory->getIcon( + 'status-status-sorting-' . ($this->sortRev ? 'desc' : 'asc'), + Icon::SIZE_SMALL + )->render() : ''; // Return linked field: return '' . $code . $sortArrow . ''; @@ -2753,15 +2917,17 @@ public function outputCSV($prefix) * @param string $table Tablename (_FILE for files) * @param mixed $uid "destination": can be positive or negative indicating how the paste is done (paste into / paste after) * @param bool $setRedirect If set, then the redirect URL will point back to the current script, but with CB reset. - * @param array|NULL $update Additional key/value pairs which should get set in the moved/copied record (via DataHandler) + * @param array|null $update Additional key/value pairs which should get set in the moved/copied record (via DataHandler) * * @return string */ public function pasteUrl($table, $uid, $setRedirect = true, array $update = null) { $formProtection = FormProtectionFactory::get(); - return ($table === '_FILE' ? BackendUtility::getModuleUrl('tce_file', - []) : BackendUtility::getModuleUrl('tce_db', [])) + return ($table === '_FILE' ? BackendUtility::getModuleUrl( + 'tce_file', + [] + ) : BackendUtility::getModuleUrl('tce_db', [])) . ($setRedirect ? '&redirect=' . rawurlencode(GeneralUtility::linkThisScript(['CB' => ''])) : '') . '&vC=' . $this->getBackendUserAuthentication()->veriCode() . '&prErr=1&uPT=1' . '&CB[paste]=' . rawurlencode($table . '|' . $uid) . '&CB[pad]=' . $this->clipObj->current diff --git a/Configuration/TCA/Overrides/tt_content.php b/Configuration/TCA/Overrides/tt_content.php index b244735..dcf8e2b 100644 --- a/Configuration/TCA/Overrides/tt_content.php +++ b/Configuration/TCA/Overrides/tt_content.php @@ -1,6 +1,5 @@ getBackendUser(); $this->assertEquals($backendUserAuthentication, $result); } - } diff --git a/Tests/DataHandler/ProcessCmdmapTest.php b/Tests/DataHandler/ProcessCmdmapTest.php index 88f466a..79aa90c 100644 --- a/Tests/DataHandler/ProcessCmdmapTest.php +++ b/Tests/DataHandler/ProcessCmdmapTest.php @@ -76,5 +76,4 @@ public function testGetTceMain() public function testExecute_processCmdmap() { } - } diff --git a/Tests/Helper/HelperTest.php b/Tests/Helper/HelperTest.php index 4de9c01..d9b9ebe 100644 --- a/Tests/Helper/HelperTest.php +++ b/Tests/Helper/HelperTest.php @@ -112,5 +112,4 @@ public function testGetSpecificIdsWithWorkspaceButWithoutOriginalId() $result = $helper->getSpecificIds($record); $this->assertEquals($expected, $result); } - } diff --git a/Tests/Hooks/BackendUtilityGridelementsTest.php b/Tests/Hooks/BackendUtilityGridelementsTest.php index 6251370..d58d347 100644 --- a/Tests/Hooks/BackendUtilityGridelementsTest.php +++ b/Tests/Hooks/BackendUtilityGridelementsTest.php @@ -13,5 +13,4 @@ class BackendUtilityGridelementsTest extends UnitTestCase public function testGetFlexFormDS_postProcessDS() { } - -} \ No newline at end of file +} diff --git a/Tests/Hooks/DataHandlerTest.php b/Tests/Hooks/DataHandlerTest.php index fe1af79..924a7fc 100644 --- a/Tests/Hooks/DataHandlerTest.php +++ b/Tests/Hooks/DataHandlerTest.php @@ -31,5 +31,4 @@ public function testProcessDatamap_afterDatabaseOperations() public function testProcessCmdmap() { } - } diff --git a/Tests/Hooks/DatabaseRecordListTest.php b/Tests/Hooks/DatabaseRecordListTest.php index 1c76f76..6840d27 100644 --- a/Tests/Hooks/DatabaseRecordListTest.php +++ b/Tests/Hooks/DatabaseRecordListTest.php @@ -88,5 +88,4 @@ public function testCheckChildren() public function testContentCollapseIcon() { } - -} \ No newline at end of file +} diff --git a/Tests/Hooks/DrawItemTest.php b/Tests/Hooks/DrawItemTest.php index bd6f164..618f354 100644 --- a/Tests/Hooks/DrawItemTest.php +++ b/Tests/Hooks/DrawItemTest.php @@ -197,5 +197,4 @@ public function testRenderSingleElementHTML() public function tesCheckIfTranslationsExistInLanguage() { } - } diff --git a/Tests/Hooks/PageRendererTest.php b/Tests/Hooks/PageRendererTest.php index 759ce4a..0a69f42 100644 --- a/Tests/Hooks/PageRendererTest.php +++ b/Tests/Hooks/PageRendererTest.php @@ -43,5 +43,4 @@ public function testGetLanguageService() public function testAddJsCss() { } - } diff --git a/Tests/Hooks/PreHeaderRenderHookTest.php b/Tests/Hooks/PreHeaderRenderHookTest.php index 49855da..c6362bd 100644 --- a/Tests/Hooks/PreHeaderRenderHookTest.php +++ b/Tests/Hooks/PreHeaderRenderHookTest.php @@ -13,5 +13,4 @@ class PreHeaderRendererHookTest extends UnitTestCase public function testMain() { } - } diff --git a/Tests/Hooks/WizardItemsTest.php b/Tests/Hooks/WizardItemsTest.php index 179f9e8..cca7f93 100644 --- a/Tests/Hooks/WizardItemsTest.php +++ b/Tests/Hooks/WizardItemsTest.php @@ -83,5 +83,4 @@ public function testAddGridItemsToWizard() public function testAddGridValuesToWizardItems() { } - } diff --git a/Tests/Plugin/PluginTest.php b/Tests/Plugin/PluginTest.php index dab2e33..3dc4ba5 100644 --- a/Tests/Plugin/PluginTest.php +++ b/Tests/Plugin/PluginTest.php @@ -164,5 +164,4 @@ public function testGetFlexformValueFromSheetArray() public function testGetFlexformSectionsRecursively() { } - } diff --git a/Tests/Wizard/BackendLayoutWizardControllerTest.php b/Tests/Wizard/BackendLayoutWizardControllerTest.php index 89787d2..3b8f79c 100644 --- a/Tests/Wizard/BackendLayoutWizardControllerTest.php +++ b/Tests/Wizard/BackendLayoutWizardControllerTest.php @@ -1,6 +1,5 @@ connect(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::class, 'tcaIsBeingBuilt', \GridElementsTeam\Gridelements\Slots\ExtTablesInclusionPostProcessing::class, 'processData'); diff --git a/ext_tables.php b/ext_tables.php index 539ff7b..639ddba 100644 --- a/ext_tables.php +++ b/ext_tables.php @@ -1,13 +1,12 @@ addJSCSS'; @@ -18,7 +17,6 @@ if ($_EXTCONF['additionalStylesheet'] && \TYPO3\CMS\Core\Utility\GeneralUtility::validPathStr($_EXTCONF['additionalStylesheet'])) { $GLOBALS['TBE_STYLES']['skins']['gridelements']['stylesheetDirectories']['gridelements_additional'] = $_EXTCONF['additionalStylesheet']; } - } \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_gridelements_backend_layout'); From aeb8685e3f5a396a9f5bc4e02912d2e08248fa93 Mon Sep 17 00:00:00 2001 From: cybercraft Date: Mon, 10 Dec 2018 12:04:04 +0100 Subject: [PATCH 59/61] [BUGFIX] Use correct configuration keys for documentation Change-Id: I79758237f08d3a6de17e51e23072ba758c454627 Resolves: #85448 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/59072 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Documentation/Chapters/GridTsSyntax/Index.rst | 46 ++++++++++++++----- 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/Documentation/Chapters/GridTsSyntax/Index.rst b/Documentation/Chapters/GridTsSyntax/Index.rst index 4499dc8..64d21ad 100644 --- a/Documentation/Chapters/GridTsSyntax/Index.rst +++ b/Documentation/Chapters/GridTsSyntax/Index.rst @@ -40,18 +40,42 @@ Step by step: Start with the number of columns and rows """"""""""""""""""""""""""""""""""""""""" -Go to the **Configuration** tab of the layout record and edit the -**Grid Configuration** there. The wrapper for the whole block is the -same as for pages: **backend\_layout** – Use the keys **colCount** -and **rowCount** to create the basic grid structure. Both values -should be at least the lowest common multiple of the column sizes you -want to create. They represent the actual grid behind the cell -structure. The calculation should take into account that you might be -using colspan and rowspan as well. +Go to the **Configuration** tab of the layout record and use the +wizard to create the **Grid Configuration** there. It is not possible +to directly edit the configuration there anymore, but you will get an +overview about the TypoScript structure of the configuration, when you +click on the button below the wizard. + +Historically the wrapper for the whole block was the same as for pages: +**backend\_layout** – when you are providing the configuration via files, +**this has to be removed though!** + + +:: + + config { + backend_layout { + ... + } + } + +becomes + +:: + + config { + ... + } + +Use the keys **colCount** and **rowCount** to create the basic grid +structure. Both values should be at least the lowest common multiple of +the column sizes you want to create. They represent the actual grid behind +the cell structure. The calculation should take into account that you +might be using colspan and rowspan as well. :: - backend_layout { + config { colCount = 4 rowCount = 3 } @@ -67,7 +91,7 @@ even though it might stay empty later on. :: - backend_layout { + config { colCount = 4 rowCount = 3 rows { @@ -133,7 +157,7 @@ only *text* and *text with image* allowed as a content type: :: - backend_layout { + config { colCount = 4 rowCount = 3 rows { From fc4447267d09d141728737919aa4645945339bde Mon Sep 17 00:00:00 2001 From: cybercraft Date: Mon, 10 Dec 2018 14:49:36 +0100 Subject: [PATCH 60/61] Squashed commit of the following: commit 2fd104c52059c3536066226911e3c5d730a37140 Author: cybercraft Date: Mon Dec 10 12:04:04 2018 +0100 [BUGFIX] Use correct configuration keys for documentation Change-Id: I79758237f08d3a6de17e51e23072ba758c454627 Resolves: #85448 Releases: master, 8-0 Reviewed-on: https://review.typo3.org/59072 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau commit 2cbff4c21a745a72b4da7cc2c1442a6d6c69dfb3 Author: cybercraft Date: Sun Dec 9 19:23:02 2018 +0100 [TASK] Use official coding style Change-Id: Iec9e84c8ca63857dffd553dfedc3a9e156b708ce commit a388ee714892cdbad9f481ae5a675aaf10b078b8 Merge: 1ac51ac 222b186 Author: Jo Hasenau Date: Sun Dec 9 18:06:05 2018 +0000 Merge branch 'cherry-pick-6a40631b' into '8-0' Merge branch '17-flexform-settings-are-empty-in-extbase-controller' into 'master' See merge request cybercraft.jh/gridelements!18 commit 222b186d357322caf2d72999b2a958cfa2869058 Author: Jo Hasenau Date: Mon Dec 3 10:30:05 2018 +0000 Merge branch '17-flexform-settings-are-empty-in-extbase-controller' into 'master' Resolve "Flexform settings are empty in extbase controller" Closes #17 See merge request cybercraft.jh/gridelements!13 (cherry picked from commit 6a40631b635a11037674ece0489a8d0bd8d9647f) 9a8577ed [BUGFIX] Resolve flexforms for Gridelements only to avoid problems w other plugins commit 1ac51ac2266e10502306e931a6fae7a3257f4164 Merge: 680eb83 4f8354e Author: Jo Hasenau Date: Sun Dec 9 18:05:00 2018 +0000 Merge branch 'cherry-pick-96c8d738' into '8-0' Merge branch '4-refactor-flexform-handling' into 'master' See merge request cybercraft.jh/gridelements!17 commit 4f8354eab71ac20f7943344d57dea72ce5f3b50c Author: Jo Hasenau Date: Thu Nov 29 19:23:26 2018 +0000 Merge branch '4-refactor-flexform-handling' into 'master' Resolve "Refactor Flexform handling" Closes #4 See merge request cybercraft.jh/gridelements!11 (cherry picked from commit 96c8d738bd6aefe6aec871e0add82d08f297504a) cb3d4e7c [TASK] Process flexform values of children directly after fetching them f5f9aa28 [BUGFIX] Assign first parameter too before assigning child data array e2cbfd20 [TASK] Unset cObjData as well commit 680eb8382a3dc934e5fafb419ff91bfe8319bc5c Merge: a0c901c d37232a Author: Jo Hasenau Date: Sun Dec 9 18:02:08 2018 +0000 Merge branch 'cherry-pick-4b56ea64' into '8-0' [BUGFIX] Make sure children only expand when the whole rootline is See merge request cybercraft.jh/gridelements!16 commit d37232ae494a36b1efc422146eaef02a0bf9f577 Author: cybercraft Date: Sun Dec 9 17:48:36 2018 +0000 [BUGFIX] Make sure children only expand when the whole rootline is Change-Id: I665b18bc5c52da69ee60a9479f1d308789126a5f (cherry picked from commit 4b56ea6420e4259ae60c8c115f232f8b30a2069f) Change-Id: I79b222a5195ce786771c39d8846f155cad2e8456 Reviewed-on: https://review.typo3.org/59075 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Documentation/Index.rst | 2 +- composer.json | 2 +- ext_emconf.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/Index.rst b/Documentation/Index.rst index 9d5e25d..0ffb16e 100644 --- a/Documentation/Index.rst +++ b/Documentation/Index.rst @@ -21,7 +21,7 @@ Grid Elements gridelements :Version: - 8.0.0 + 8.3.0 :Language: en diff --git a/composer.json b/composer.json index 8294714..8cd26ee 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "gridelementsteam/gridelements", "description": "This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.", "type": "typo3-cms-extension", - "version": "8.2.3", + "version": "8.3.0", "keywords": ["TYPO3 CMS", "Grids", "Gridelements"], "homepage": "https://forge.typo3.org/projects/extension-gridelements2", "license": "GPL-2.0-or-later", diff --git a/ext_emconf.php b/ext_emconf.php index 3f40a33..7976775 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -13,7 +13,7 @@ 'description' => 'This extension integrates the grid layout concept also to regular content elements - the grid elements. It offers a lot of new features like advanced drag & drop or real references, that improve the usability of the page and list module to speed up the daily work with the backend.', 'category' => 'be', - 'version' => '8.2.3', + 'version' => '8.3.0', 'priority' => 'bottom', 'module' => '', 'state' => 'stable', From c2dae08f4c22e33758cd3c34c01a12cce22380fc Mon Sep 17 00:00:00 2001 From: cybercraft Date: Tue, 1 Jan 2019 14:25:01 +0100 Subject: [PATCH 61/61] [TASK] Remove superfluous plugin configuration Change-Id: I23e75118e2865e8134071220c2b9252662176829 Reviewed-on: https://review.typo3.org/59315 Reviewed-by: Jo Hasenau Tested-by: Jo Hasenau --- Configuration/TypoScript/setup.ts | 2 -- ext_localconf.php | 8 -------- 2 files changed, 10 deletions(-) diff --git a/Configuration/TypoScript/setup.ts b/Configuration/TypoScript/setup.ts index 872e01f..7ed51c9 100644 --- a/Configuration/TypoScript/setup.ts +++ b/Configuration/TypoScript/setup.ts @@ -25,8 +25,6 @@ lib.gridelements.defaultGridSetup { # or tx_gridelements_view_child_123 (123 is the UID of the child) } -plugin.tx_gridelements_pi1 > -tt_content.gridelements_pi1 > tt_content.gridelements_pi1 = COA tt_content.gridelements_pi1 { #10 =< lib.stdheader diff --git a/ext_localconf.php b/ext_localconf.php index eb5ace2..df4778d 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -21,13 +21,5 @@ options.saveDocNew.tx_gridelements_backend_layout=1 '); -\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPItoST43( - $_EXTKEY, - 'Classes/Plugin/Gridelements.php', - '_pi1', - 'CType', - 1 -); - $signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class); $signalSlotDispatcher->connect(\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::class, 'tcaIsBeingBuilt', \GridElementsTeam\Gridelements\Slots\ExtTablesInclusionPostProcessing::class, 'processData');
  • 1K(1jPo#HQR+Jw*hQ>|{P&vW4Rso(#A| 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 HKll4zltS>A diff --git a/Documentation/Images/GridWizard/CreateBasicGridStructureStep1.png b/Documentation/Images/GridWizard/CreateBasicGridStructureStep1.png index 62ee1e275338f7b4f83423a4e3ea8719e3af65bc..51aefd7a2abf3fe5fd34cf7b48c19910e62b6279 100644 GIT binary patch literal 49006 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 Bx61$k literal 31507 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 RHw6AWbNZZSzPjbz{{>MgQ#t?u diff --git a/Documentation/Images/GridWizard/CreateBasicGridStructureStep2.png b/Documentation/Images/GridWizard/CreateBasicGridStructureStep2.png index ad1e12cc5e36ab2934e016ea9ee5568015bbef10..e54db6243726aeb858f3d9062a4f0f57513f0feb 100644 GIT binary patch literal 101861 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 F`ajP!4txLr literal 20143 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