From 6e834915ab299cb5ab801ddd117b201f20eabe0a Mon Sep 17 00:00:00 2001 From: Steve Fryatt Date: Sat, 18 Jun 2022 01:34:43 +0100 Subject: [PATCH] Begin to document the Nested Wimp optimisation. --- Chapters/ch05-does-order-matter.xml | 112 +++++++++++++++++- .../Chapter03/TopBar1/!PaneDemo/!RunImage,ffb | Bin 17915 -> 17917 bytes .../Chapter03/TopBar2/!PaneDemo/!RunImage,ffb | Bin 17915 -> 17917 bytes .../Chapter03/TopBar3/!PaneDemo/!RunImage,ffb | Bin 18210 -> 18212 bytes .../Chapter03/TopBar4/!PaneDemo/!RunImage,ffb | Bin 19113 -> 19115 bytes .../ColHead1/!PaneDemo/!RunImage,ffb | Bin 15558 -> 15560 bytes .../ColHead2/!PaneDemo/!RunImage,ffb | Bin 15703 -> 15705 bytes Downloads/Chapter05/ColHead3/!Boot,feb | 24 ++++ .../Chapter05/ColHead3/!PaneDemo/!Boot,feb | 24 ++++ .../Chapter05/ColHead3/!PaneDemo/!Run,feb | 27 +++++ .../ColHead3/!PaneDemo/!RunImage,ffb | Bin 0 -> 14928 bytes .../ColHead3/!PaneDemo/Templates,fec | Bin 0 -> 1377 bytes Downloads/Chapter05/ColHead3/!Run,feb | 27 +++++ Downloads/Chapter05/ColHead3/!RunImage,ffb | Bin 0 -> 14928 bytes Downloads/Chapter05/ColHead3/Templates,fec | Bin 0 -> 1385 bytes .../NestedFixed/!PaneDemo/!RunImage,ffb | Bin 13406 -> 13406 bytes .../NestedScroll/!PaneDemo/!RunImage,ffb | Bin 13551 -> 13551 bytes Images/Chapter05/order-new-1.png | Bin 0 -> 7271 bytes Images/Chapter05/order-new-2.png | Bin 0 -> 11811 bytes Images/Chapter05/order-new-3.png | Bin 0 -> 12023 bytes Images/Chapter05/order-old-1.png | Bin 0 -> 7301 bytes Images/Chapter05/order-old-2.png | Bin 0 -> 9074 bytes Images/Chapter05/order-old-3.png | Bin 0 -> 9044 bytes 23 files changed, 212 insertions(+), 2 deletions(-) create mode 100644 Downloads/Chapter05/ColHead3/!Boot,feb create mode 100644 Downloads/Chapter05/ColHead3/!PaneDemo/!Boot,feb create mode 100644 Downloads/Chapter05/ColHead3/!PaneDemo/!Run,feb create mode 100644 Downloads/Chapter05/ColHead3/!PaneDemo/!RunImage,ffb create mode 100644 Downloads/Chapter05/ColHead3/!PaneDemo/Templates,fec create mode 100644 Downloads/Chapter05/ColHead3/!Run,feb create mode 100644 Downloads/Chapter05/ColHead3/!RunImage,ffb create mode 100644 Downloads/Chapter05/ColHead3/Templates,fec create mode 100644 Images/Chapter05/order-new-1.png create mode 100644 Images/Chapter05/order-new-2.png create mode 100644 Images/Chapter05/order-new-3.png create mode 100644 Images/Chapter05/order-old-1.png create mode 100644 Images/Chapter05/order-old-2.png create mode 100644 Images/Chapter05/order-old-3.png diff --git a/Chapters/ch05-does-order-matter.xml b/Chapters/ch05-does-order-matter.xml index 36b453f..275bae1 100644 --- a/Chapters/ch05-does-order-matter.xml +++ b/Chapters/ch05-does-order-matter.xml @@ -44,15 +44,123 @@ The order in which we open our windows can have some surprising effects – at least on some systems.
-

So far, we’ve seen how we can manually create one or more panes on our window, and have then behave in a number of distinct ways. Throughout the examples, however, the PROChandle_pane_windows() procedure has always called Wimp_OpenWindow for the different windows in a very specific order.

+

So far, we’ve seen how we can manually create one or more panes on our window, and have them behave in a number of distinct ways. Throughout the examples, however, the PROChandle_pane_windows() procedure has always called Wimp_OpenWindow for the different windows in a very specific order: first the pane, then the main window, and finally the pane again.

Back in we stated that this order was necessary, but hinted that we might be able to simplify things in some circumstances. Now, with all of the main details covered, it seems like a good time to go back and fill in this missing information!

+
+An optimisation? + +

If we go back to look at the code in again, we can see that when an Open_Window_Request event arrives for the main window, it is treated as special case by PROCopen_window_request().

+ +DEF PROCopen_window_request(b%) +IF !b% = MainWindow% THEN + PROChandle_pane_windows(b%) +ELSE + SYS "Wimp_OpenWindow",,b% +ENDIF +ENDPROC + +

Instead of just calling Wimp_OpenWindow, control is immediately passed to the PROChandle_pane_windows() procedure. This goes on to position and open the pane, then open the main window. Finally, it checks the position in which the main window opened, before re-opening the pane if it wasn’t in the expected place.

+ +

Given that we need to go back and adjust the position of the toolbox pane after the main window has been opened, it would seem that we could save some effort by only doing it once: after opening the main window. We could even streamline the code in PROCopen_window_request() by always calling Wimp_OpenWindow for the target window, before calling PROChandle_pane_windows() if the target is the main window. This alternative approach can be seen in .

+ +DEF PROCopen_window_request(b%) +SYS "Wimp_OpenWindow",,b% +IF !b% = MainWindow% THEN PROChandle_pane_windows(b%) +ENDPROC + +

By the time PROChandle_pane_windows() is called, Wimp_OpenWindow will already have updated the window state block pointed to by main% with the coordinates of the actual visible area – we discussed why we can rely on this in . As a result, PROChandle_pane_windows() can start by calling PROCposition_toolbar() to update the visible area of the toolbox.

+ +PROCposition_toolbar(main%, toolbar%) + +

In order to get the position in the stack correct, we can open the pane behind the same window that the main window has just been opened behind, which will have the effect of placing it in the required location directly in front of the main window.

+ +toolbox%!28 = main%!28 + +SYS "Wimp_OpenWindow",,toolbox% + +

The full code for our new PROChandle_pane_windows() can be seen in , and it’s a lot simpler than the version seen in .

+ + +DEF PROChandle_pane_windows(main%) +LOCAL toolbar% + +REM Get the Window State block for the toolbar pane, using some of the +REM spare space above the data for the state of the main window. +REM +REM Note: ON RISC OS 5, we could more clearly use DIM toolbox% LOCAL 64 +REM here to allocate the required memory from the stack. + +toolbar% = main% + 64 + +!toolbar% = ToolBarWindow% +SYS "Wimp_GetWindowState",,toolbar% + +REM Move the toolbar pane so that it's in the correct X and Y position +REM relative to where the main window is to go. + +PROCposition_toolbar(main%, toolbar%) + +REM Open the toolbar pane behind the same window that the main window +REM was opened behind. This will place it directly in front of the +REM main window. + +toolbar%!28 = main%!28 + +SYS "Wimp_OpenWindow",,toolbar% +ENDPROC + +

A complete copy of the new application can be found in . When run, it might perform in a very similar way to from the previous chapter... or it might not.

+ + +
+
-Re-creating our toolbar +Order does matter... sometimes + +

If you download and run , you will either find that it behaves identically to , or that it exhibits a very obvious flicker from the toolbar whenever the window is dragged around with Select on the title bar. Which it does will depend on the version of the Window Manager you have on your system.

+ +

To understand the differences, we’ll consider what happens to the main window and its toolbar pane when they’re dragged with Select at the top of the window stack. shows the initial positions of the two windows in the stack, at the point just before an Open_Window_Request event arrives to ask our application to open the main window at the top of the stack.

+ + + +

If we follow the new approach outlined in this chapter with , the first thing that our application does is to call the PROCopen_window_request() procedure, which in turn calls Wimp_OpenWindow for the main window using all of the values supplied by the Wimp. This will result in the main window being inserted at the top of the window stack as shown in – pushing the toolbar pane down below it.

+ + + +

Since the event was for the main window, PROCopen_window_request() goes on to call PROChandle_pane_windows(), which positions the toolbar pane’s visible area correctly and then opens it behind the same window that the main window is behind: in this case, at the top of the window stack. This results in the toolbar pane being inserted back at the top of the stack as seen in , pushing the main window down behind it again – back into its correct place.

+ + + +

Compare this to the approach taken by in . With the two windows once again starting in the relative positions shown in , an Open_Window_Request event arrives for the main window. This time, however, PROCopen_window_request() simply calls PROChandle_pane_windows() without calling Wimp_OpenWindow for either window.

+ +

PROChandle_pane_windows() begins by positioning the toolbar pane as best it can, then opens it in the position in the stack which was supplied by the Wimp for the main window. This results in the pane opening behind the window above the main window’s new position. In the case of a Select drag, this will leave the toolbar pane in front of the main window, as shown in .

+ + + +

Once the toolbar pane has been opened, the main window’s position in the stack is adjusted to be behind the toolbar pane and it is then re-opened as well. This can be seen in .

+ + + +

If the main window moved during opening, then the last thing that PROChandle_pane_windows() will do is to re-position and re-open the toolbar pane – exactly as shown in .

+ +

The difference between the two approaches can be seen in and : in our new approach, the main window and its toolbar pane are briefly swapped over during the opening sequence, while in our original code, they are not.

+
+ + +
+A question of optimisation + +

The small difference described in the previous section matters, because of a small change introduced as part of the Nested Wimp. A couple of the changes documented in the Nested Window Manager Functional Specification are “Redraw Optimisation” and improvements to the “Invalid Rectangle Handling”. Between them, these have a big impact on the handling of panes.

+ +

When an application calls Wimp_OpenWindow, the window in question isn’t immediately opened. Instead, the details are logged in a list of pending updates along with any other windows to be opened or closed – which are all actioned after the application next calls Wimp_Poll. This means that when our application opens its main window and toolbar pane, both windows will be updated together after control has returned to the Wimp.

+ +

Prior to the Nested Wimp, all of these pending actions would be carried out in full, in the order that they were specified. In contrast, the Nested Wimp scans the whole list and optimises out any inefficiencies, before carrying out the minimum number of actions required to achieve the end result.

+

What this means in practice is that the Nested Wimp will notice that despite the toolbar pane ending up behind the main window in , it ends up back in from in – and so there’s no point redrawing the main window during the short period that it is on top.

diff --git a/Downloads/Chapter03/TopBar1/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar1/!PaneDemo/!RunImage,ffb index 47831e77259990a148b62ccdad29ceb1033a4e05..cfe57cc4b8443b8bc3a1935de99976a5f8f049d5 100644 GIT binary patch delta 20 bcmey}&G@&QaYLsxquXSC8Trl2r9-p;Tb>7; delta 20 bcmey{&G@^UaYLsxqswGN8PUxPrDL=JTU-Z} diff --git a/Downloads/Chapter03/TopBar2/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar2/!PaneDemo/!RunImage,ffb index a7299dce57969b0efc1ac77c98511e597a6003fd..31317749c54edc5a456f2a611b8786d713c2a0a8 100644 GIT binary patch delta 20 bcmey}&G@&QaYLsxquXSC8Trl2r9-p;Tb>7; delta 20 bcmey{&G@^UaYLsxqswGN8PUxPrDL=JTU-Z} diff --git a/Downloads/Chapter03/TopBar3/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar3/!PaneDemo/!RunImage,ffb index 28c5ac175b0ca15c8fb8e7dfd7507e89cf88e78d..71508d443b3e1aa8fea9bd8217fe1e0f05560419 100644 GIT binary patch delta 20 ccmZ3~$GD`Aal>9|Mz_hOGV+^mOS@|W093UHk^lez delta 36 scmZ3|$GE7Eal>9|QJ3cm8o7y?d8&#g3O05MIjLzSs+yaxNC#*G0P+3|WB>pF diff --git a/Downloads/Chapter03/TopBar4/!PaneDemo/!RunImage,ffb b/Downloads/Chapter03/TopBar4/!PaneDemo/!RunImage,ffb index 725f2afcba99401e59401b1f0bfc79598809c517..33303cd3e74fdad11e7b6f92c7877b7a2aeb8d8f 100644 GIT binary patch delta 20 ccmZ2Em2ve{#tn<)7~LjE$;)p(Aoo%m09B9(2mk;8 delta 36 scmZ2Im2u@%#tn<)L|vXMXyhhl=BX;0DA?F3MJ3~>Me diff --git a/Downloads/Chapter05/ColHead3/!Boot,feb b/Downloads/Chapter05/ColHead3/!Boot,feb new file mode 100644 index 0000000..1835fe7 --- /dev/null +++ b/Downloads/Chapter05/ColHead3/!Boot,feb @@ -0,0 +1,24 @@ +| >!Boot +| +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) +| +| This file is part of PaneDemo: +| +| http://www.stevefryatt.org.uk/risc-os/panes +| +| Permission is hereby granted, free of charge, to any person obtaining +| a copy of this software and associated documentation files (the +| "Software"), to deal in the Software without restriction, including +| without limitation the rights to use, copy, modify, merge, publish, +| distribute, sublicense, and/or sell copies of the Software, and to +| permit persons to whom the Software is furnished to do so. +| +| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +If ""="" Then Set PaneDemo$Dir diff --git a/Downloads/Chapter05/ColHead3/!PaneDemo/!Boot,feb b/Downloads/Chapter05/ColHead3/!PaneDemo/!Boot,feb new file mode 100644 index 0000000..1835fe7 --- /dev/null +++ b/Downloads/Chapter05/ColHead3/!PaneDemo/!Boot,feb @@ -0,0 +1,24 @@ +| >!Boot +| +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) +| +| This file is part of PaneDemo: +| +| http://www.stevefryatt.org.uk/risc-os/panes +| +| Permission is hereby granted, free of charge, to any person obtaining +| a copy of this software and associated documentation files (the +| "Software"), to deal in the Software without restriction, including +| without limitation the rights to use, copy, modify, merge, publish, +| distribute, sublicense, and/or sell copies of the Software, and to +| permit persons to whom the Software is furnished to do so. +| +| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +If ""="" Then Set PaneDemo$Dir diff --git a/Downloads/Chapter05/ColHead3/!PaneDemo/!Run,feb b/Downloads/Chapter05/ColHead3/!PaneDemo/!Run,feb new file mode 100644 index 0000000..219f46e --- /dev/null +++ b/Downloads/Chapter05/ColHead3/!PaneDemo/!Run,feb @@ -0,0 +1,27 @@ +| >!Run +| +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) +| +| This file is part of PaneDemo: +| +| http://www.stevefryatt.org.uk/risc-os/panes +| +| Permission is hereby granted, free of charge, to any person obtaining +| a copy of this software and associated documentation files (the +| "Software"), to deal in the Software without restriction, including +| without limitation the rights to use, copy, modify, merge, publish, +| distribute, sublicense, and/or sell copies of the Software, and to +| permit persons to whom the Software is furnished to do so. +| +| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Set PaneDemo$Dir + +WimpSlot -min 96K -max 96K +Run .!RunImage diff --git a/Downloads/Chapter05/ColHead3/!PaneDemo/!RunImage,ffb b/Downloads/Chapter05/ColHead3/!PaneDemo/!RunImage,ffb new file mode 100644 index 0000000000000000000000000000000000000000..bc4dc16bf22de3d92a59b5f5c64d993d412e2042 GIT binary patch literal 14928 zcmb_j3v63enobkvos(y$EuF%gdXnO_PU<|GmbU3OO`OI|UhBB8Swy(DZ(>u&*IeH; z4MGTw7&KxlgwQOSMTkXgg;<2p2#pYfW=DucsAX7$5JDrwRLls`Q8Z%N%8L+U+5P_W zxW0Chj#k>JuI+oy`CsRMpJP_hu(iOC?VdHV=9sx;@dLemtYT|*fmPf#THvErZq-gN zrX1cM>hJ5pfBiu|=a{*andRg5s^K_1kj^ex$McSP!CVkedM$ggclmrbs|XOB{>}oA zrP6u6kj|JK?>WPExV6AF&cm$YC`}w6C~(eGj*~mQfB(wLO7D7@`|Wf-(PQQJ=Rj|s zRm{@5AOEPpXH9!4ozJJOEMZ8Qwi#dLi?)$<%w&)+*rrJs6Dh-9G=to+xRG7uIn&N# zffaX*bT*w`WEIJ9fg3ylu4%eMROhV)XT`8htVnVrpSKce13-DwN-Qs#S;ue)De;!) z0Vid$ifp97{c~!WzgwV7nns4FvjAywJ;YbiPRd$#xNYVgJDngvK}b+=5sUSu`?slFptdf+33va$XIxc`$y*R-5=yiq6i=g+a&|U{6P;$D=?Mo(fOLz};`}EC4?Sc=$A)@VSYR$w`59RMovz|_{7ZQSQrmaghAuTiOI0UH+_y(Tmhuf$&tuZkdKW_jhrN6qkINZi;B65 z&NCBX@d!vq@NYC0nVBXzjm}KRqWFrP|KKEqJrj+&>(4~y!a+U~jm(jd#-lU9L2|}2 zlH)Wjo(@Y;v8=SU&f$iZ6G@jQsg& zW6A8~!`!be-_I((`2mg08paKH zsV=tVO@My)b{9PXgQ4sh7!CCWdAy6iR-F0~rheLbQP< ztK3!nJ65@;`j4zKeZ+3evN9(OTXD=Pzi{R63Tu><&z07Fkk;4L z|IVr^eXOeK)=g$Xrd8V@p(>79d+{3FQbB>;$x->KJ5HHF0Ef8F`j& zAeyQuL{oLwHi)KN`>Ph3VV|VA{jkoe+}5kSrytgc7?QBEal>X+_kT~zM$SA$6Cd8G zA715yV*Z@46IS(@D=9rgs@@V5NT~{|`o#`CNM3-@O~KY!)pJMmbNzk;+0F8N0`A8# z=hKp=fTE4obOlL4yIIvsOfUHzt9lhSSM>%7`W*=QL%gneRM9nQBnURL20}q%{xgaB z#wKFc(8>5{0p%*vF=%6}`W9mL)!ag2CZgR5!ZLiV!i$m_b}`>hAM>()KBJ7Y>Xs2K};*n$JbncgT4Dw>W*GaH%ZP#AR zt4hB2POR}f^g{%Xq?3X|sIMuLY6g6lh6Lr4!|JOVX1?Ep!avkIkX2U{<$%R!guTuoKQ`qKRyX)q^;S6X2xal6<};no-j31(G6+H# z`SkrVt4Aj6Ai+mgYsm~ zuw3XH&12Qi&aVTl#b1Q2pR5C}2ZqZ9C1jg z4&Xikg`aytB0>#wLFv9y!Za7&_jMr8_Oa?OOTba8CcLT(P7~?{BtNeMcMjmb@v$1; z?Rqj9NnUvnXaMEd*1`gwK-@LWn7YG@y*~u(A-(pmyc71bd`<$L5kOguzXTj@-~R>N zxpHtp_LzOrAIvzJuaF9HJ zQB>y2%L@SAtmf`r8>W=^A+pz`5K3xnV0ZwpM^GxOs)h(8$mmk&fKd`ofDCmH4W*sD zw`n5UHrSQN5$|iBLVH6c*|d6H_M+l4u|WvE7(hHsOr_d2mvuKwVX*x zH=4+phMifZmJc6`OiAjji(PzjW^`nd4-K-KHI$yz{UV`Z3oI1Uk{qgV(l**LOX%|1 zt1|r}7KI*wjsm3e-7Q*5&?UJi`v`1posZSF-?rN`8Y@lHYj^GOrc_d-LZS%BdKs(T z12`dweo9M84G955vNDdOo!dnkPUIyl+eWenE2RG0Ii9ofDDSN-t3BLTKoHNMQ$P~8 z_=@DaOjCry^F?%@YR7X^OqFA-aMf$#WUf8{{5IY)`_$_98Dsa*TRX>I z;WxBc;)B> zAr+&S)osIKKB;5duok6gR`e9VxtW+`ZG(u%dpH7f-Cn>O{Qt3@x?^azdv~*FJ*E3m zw4b^OppTx^`ylcbB|m)L^lu$I$XM#`DuSV~rNN+y)1zfy25=o1639XkjL1=3IBu(` z42p=3rTJ4ItIK)7P;TOa@$|1s0j;M7VD5)}9!5ME$)p$8yA7yENpb?CaZ*C1JpKYo z^BAD~qDYWPS2RKRvdJG2RGz5RJqHV~dkOGf#p?}dal~zna%(}@GB-z=iV zs_?NcUDUD!LGPdhtoyJH=HuzC)?I5~@fFe>ZE$-XZ&FMlv~1y^+cA z8uSN9RT@5tx%ow29YK{i*cc*ymU29my30uj-SXH~^e|})$W`)L=niQ99R9N5%OApD zZbY_11CqaC$^-TEu|{7LzKBwiH8#^{3X37uxT6`LMQj^7#2WqL8-*zP7Hq?qh!1-P zLZN=vIJBb^-AcZX_YYEsN}*zn$BX9-QY@qnvQgG}Cj{3R^RdRe@k;HcBY&k8$o;bB zitM9~=B+*G(+R5P9uJn(D=Fos!Mv=Ppvc^Y>XAPuPIBG7<4286pm*Qv- zLEdT#rNbm*1>^DKKyI53j+aZZs&8c(;W`eU!tOL)zWopDY(P-l8PsS|{x-fGToY*F zH-#0r{u3WEW_D4wJVo?tL{ZuJCOX|CNa=~xJYQPQJ3M8eII*&(1OOSli+LYyzwV;p zN6`ho#D}rhpJHgOM}R2SZMs}j1u22nb#G$<3%=tb{9?P&0NBR^{eyh33%r{()wNxd zJji*hsolq#cI_$&(*mgAzn3+kL~9CdSL^}ozXYUY0P8S@#sfMyLP6P{A{7^<65TB@FFLF#Gf@g< zeM@EoC>L-?V|riZHEWlfKMU&HDY ztO1l}`sdsAkY<%kz3CbBftp@`h+pX~*&W-Y1TiU%LR$i|WCM?|U#Q-i-aaUB{EcuF zq905Q$FvQai?+3lkdd%5Nc(soj*=7CbDG{is+J9q`VdjYWpPX?TZXh27l9USa}{ep zKBCr=uw9gAEc-mC>W55!Gqj)Sr3bK7qz#0&xO4;5D=AzL0M;+S?AN0Lvpn%d#UQDc zIS1SZ4WgVjmv9|N6xeZ-FN>CJl2hhocQaNQlpuuj9Hf+kC{P(k2@J-X2Gm?vt7z_N z({^x6A;TAq9Ey5p1*aeqYcFG{`xy6^L~M88lvl$nRC8=_yL2oNgup_+`w(NtFf`GD z3khm=7fdb0So9X!Bl>fn_aHZB>@Lh-2+JXk^Kf?<%ivrj4w3Ed3Gu%#`F3@};OFssZc_oe$8> zEHYpbk+CZeAJ<3}6rs-El82BBD58c4AaQn9mGxphDkoMv-jp!-K4|tJW6$CK216;t zUPW%88y&(R5nrS`Ax}WH3by7AOnj#g$3EIXk3x`i;2>3DfFiK_@nLZ&#Mp;ebgf}n zJZB8m5W9ibw`i=W69J?*f+&h;hSXCLSGmj+lB&NrK20Dz*;#ilYpy}yZEnRa9NjP_ zcd5mt-^=_Yfzh#|d1vu(RY^v#lJ69I#R5qpWjMlUfV(r~qNVLB5BKP0siicE`Mt%a z4KA9^3xRl%m60hBQgtk~D##J)?l*08?3xcDST~;-LMkOhQcOn$%wkj)WQl8S5?eQG zp4_*FbHoKvvf}oPu6*#pjod5paIX2Zk2T-Zab51Ha7mZ=A6fIgc zus-a!Y;{qt5Bn{*?b2KB4f_Oi5IR29a>s?f_f*oe=SRB89$|0dBKw7Ed4Is3+573?YXE- z5J{ zLxp4eUef%wHb92*df;PY-bdMXn=ZEmu&nw0wYBpWyZRRI$`UhJ#D4Xs=Ko%dI4Z zj>B3h0x#mIAd5a(!m?~!u_b0H{e%BCvq1eN4o}FL6;Bzc{oo2FSv)i$ppd_8?PBFO zaL=v2;-xVfU+10)v^=HK$)mJCO9g;l*4m8juJZ6W)>;2YAWF%X_Z#FbBo&VVX9pZ- ztG`P-&eB3OAgBxSi>Ps0gB@!;=h*Ozl9?{nI^<)m$G6f$Y?|a`A0K3`cUJ!wYmIHw zREY`F!L;6ew|=UiP}~(usX*PQKYH54q|GBq*}$M|O`#W!LeY@y5l@j`vDTF9FK~xU zpoM1)q4dx+%P22MAh`0H+GcR#81URTITi^WN6m*JOf$pxb)_03dLRr|;92E8f4{b1d zWkYCA-Z6wdaQF8k7*H#U&DJ%%3NtW7YEl}oPjMHrXnIoLaRj6~lq3fnDSN0! zYpa8oaCL94?|?z_DLhQ-qfXKAMB0 z8+6{yES)&pwt+kUP|2P?02_nlw@nYg@-?@z2`mKU$$|uJ_+^AZ*v;C`?!^%~?Xzs> z)2RUVM}JvCT_-lEi?zjltS!^q87pa95A!$V7VP71_2H_}zXtjSy7AKoL>$(30V^KD z!H9c^M##YejtA&OS|5^Yf|U;_Q4etTD4_g&#%+_5(rOx@^7!jPcTqo?re->tjA&p7 z1zgREhb`9j3_!ksTNhE;PfAN?>e8`-AdB;hG%6I?gOd9OT3*4z-`slLD>0O4a=$54 zYkM0L-rtAVlrhrs#}O{OTJfpgP<^$wk1_o-evKF9?3F*PxR14=_HFw*psbZ_%B547 zWzoudS$n0AwKpX;la*3(I4*Zvy`SMLJW|p+vR<~Voi5b2bKpWP+deo;g3MX?aSzdw zG0^@JxAawAW5_P4d=$4X9^sI;zUwg1djMGT)K;ac5LYYOj~&FRw>*!5YeHKMCYu1% ze0qU=56;vL{E|TZ06-%4gY^k`hW03#)J?jCvFNEVp(jG=iawevdHfUy4R!Nk+Bw3_ z46ay=k4(;m0r4)FRQtjXvv9lkA9}0 z)kl7z6ae@HO9_MSau5}spFNOoK{Faw4sU}l=>lv21x{gxkgW%Kt9Ef-+LO*?2 z(mr*Vspty$G3%>Nnp(;op8Q+j8OmOX$$fBGIFM-ncFMIGsZl~;IIXx3&V(8o10^SY zo-+uzI^}NE4^>!4jgNJ-whsr?1MmW8*s&8&agf>3J5J_;z)ML3LMRDIW}@^vF0*(+ zl8l1F=*-+a&7Z>HX=F5X1(0@D8|8D`XWwsam~pabz%UWb^Gds2s6?K-62d_ z8Tzf6u(*y%SlrG2To)#=(9NVQ>iv$>#d};h(KEA~px1r<&GFxZiz7Gt6VMlo1d=&7 zXlz2$y^!ur9RP$tOYu_|=#6_plPncCuTJ5d94BfWP6$SiZsxjMw62)ZgU~EvZy)^O znrv`ETRg<#n^=(VVjVd3?ReriY1!G*4Hf$VO`|C0f~W8mRBQPWs__WM)7!2qG-we} x8a#|6q>kqS`Iq6p0@!!1i|!#8(Qq=SnLpqaw3D< zM5fW#8nBFain)=`<}_M|-bJC5II&rn9XS>!c2#&JT;E}Y|%au4wm|0gk@HDvS` zFQF$wYz5ncSU`Oa`3LfjtQ1eVGoE!lE3239=cvD_`gzsgf%Xw%H&`d)mg=9XzS0cq zLBq4~H>Q3Rnf|lL^uGe_ZA1}_{uR{ee+`-bBh9E9go!-S7gS$X{bOjKBYL2rf2Zn) zRe#nC8@0esE-*3?G$RvLYYkJ!7KQGNRdIc5PDft7>iOnac-4)f{ibA> z91?c;jVN>@&(xtXRo9=KuK81h&H>vtJ!S7g(!P(S!`QqoOlmYQQeEFu8OG!=CvIS@ z8;IK=^8HsF7qEfkL-PLya&{(}o=5@QMs(mBYsibp=+E0$PUhd|f7bn%k>Ni(nBw#&r@!*MhfCa8tq%^L8Mbg;3+U&%V4u90OE`arz$2VISL9q*i+@1!Run +| +| Copyright 2021-2022, Stephen Fryatt (info@stevefryatt.org.uk) +| +| This file is part of PaneDemo: +| +| http://www.stevefryatt.org.uk/risc-os/panes +| +| Permission is hereby granted, free of charge, to any person obtaining +| a copy of this software and associated documentation files (the +| "Software"), to deal in the Software without restriction, including +| without limitation the rights to use, copy, modify, merge, publish, +| distribute, sublicense, and/or sell copies of the Software, and to +| permit persons to whom the Software is furnished to do so. +| +| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +| OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +| MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +| IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +| CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +| TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +| SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Set PaneDemo$Dir + +WimpSlot -min 96K -max 96K +Run .!RunImage diff --git a/Downloads/Chapter05/ColHead3/!RunImage,ffb b/Downloads/Chapter05/ColHead3/!RunImage,ffb new file mode 100644 index 0000000000000000000000000000000000000000..bc4dc16bf22de3d92a59b5f5c64d993d412e2042 GIT binary patch literal 14928 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 x8a#|6q>kqS`Iq6p0@V}8;?dl&^ z|7kasn9JKUC%rkTz0~+$IMwd zn}jR8N*FkyYnI_Ki;g!vTk>WI?E{u&cIVx*jph5HUz?pb~kzODk zgUIU7D9UVHplrTCp3ZC>Pb7o27OD+#zVh-w zj5ELEcQbzliu~GOj5D8{`O0q}igD(XGhg`w+cN$=KjxD&U-?tpZgJ+D_`&h{*P+ON zZRc8?`Q*%3{@(6wapsdVU-?(Nuf>^9&V1!-c7Ka^rbYIF)u0dm`(v=gti|7}O@9or z_o{%ikB_$YFt5jW cP5CmE`+o!bu6)E8>+k6`Mw@b^Dfy=S1@#89cmMzZ literal 0 HcmV?d00001 diff --git a/Downloads/Chapter06/NestedFixed/!PaneDemo/!RunImage,ffb b/Downloads/Chapter06/NestedFixed/!PaneDemo/!RunImage,ffb index 8f3e9684a83c8cff13ebe61ef19e906503a7d6da..8eac23a312e65b1aa2e2e220de23d4217ee465be 100644 GIT binary patch delta 27 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 Lkt>%qef$3aNOBLA literal 0 HcmV?d00001 diff --git a/Images/Chapter05/order-new-2.png b/Images/Chapter05/order-new-2.png new file mode 100644 index 0000000000000000000000000000000000000000..df7366308fcaf627b17b6f5cc4791952a6c60fdb GIT binary patch literal 11811 zcmZvC1yodD^e)mdgfvJANC-$urxMZv(vs5BLpMVyB?tmaceiwR44u*?Al+T>@cX~@ z)?4envu52jbMKuKJHE5`clOu!N;24(pcDqm!$j(|Xe zAS)^H!EJUg+1LKrdffqEYo{!$Cv$Uo`73=`V(;%hR1)Xb=a?GCX@NhO=ed!}=Pf&u zy9Le%ny@*|yAgAg1pS0eg{Tv^|!wCMZWYXByM~`Va#rzJ(MJs?% zXia`9?ya>)$W70hu(|e~&fGEk`W1vAYqH^>RL^(GJoRGcLhtl!+JGBb0#DM#0n7P` z1RnBNA#jmcRRWi&S_1Hdeji-^=l1{qS!Y(QqIv!O{XKijttzxE?Xih_|DCP+oa%k9 zeY?dFBMYUc!0BOZ*ePjGm4S+dnmTVvn9f6xC>SovHKKDiX-uK!Ape_Oo% zgrq+xOqtu+!S`g4Z*Fdm;QqJs&J_3(f4cye-*Hxb+O1iVq_vZv!!0mgZJqoumKnxXLxq=Sc-*El{|$aQGX zg;7C6UHxo;dw6->eJeX2Kdu3Er)l6#RO%6mQ&d{Y&dxqufwQ~4?XecYH|Am(>iC-S zviq5xle2U7UMnFMUbF=<%kechV_2QL~>wag8Z~aN-&Cv9cKgPi=n77SB{cG-3 zpZ)nd6R~7bZ*rm2-I>b1??D|#vfmvY9Z7@9sHl|O+|vdRS|0AVCkt10WT?GkGvxlH zlf3%)?vEnJzhnU@gP0g~v(NQbZXeeN&HKBHCFN25MmjV!w3r{Bd$U!Q=EKCq#H-qU zTwV`%7e{Y${#MI0SdTqW~^pug7Ufx-7U9#c&XZHN znUk80W=MS#IoEP^b@i%%!C*oMjRf3{2hBJ4SHr&T+P@qJ&A1uX_#-#3E@htQjb%uM zahQVE?ud=r0eXz+n<~+}nbb7s;xjo~?GhgTRFN$o|7&o=f`>fS$id-gEL(nZUG6*K z5?(-C8PI+*<(EEUHl5$L3-y7nx)KskdK?mt{n4mu&!%(=8&8HzC~M6I z$(_*{8ti}JG(N6DMrK^UHY0-;h_L9RGg^sW121tHQ2GQ(NnRehn(d#m=cJIFy;cFxusm_8nqty<7WjI*Ki{%v&h(_3b?FsD~n&u~J{%;kW4nIu{8 zc%1%I31~Z<{ahOT=xipq?(Xh_j31Z@ztf=8VvVjtT^kmfnwq|eUgt4{TCCusBS%sQ ze2`8-|XuGRFO2{}@#a>km6yz-zLevOLXiHLV$&ks=>{!Xu5ta0aC)0Z&UviXjF zY<6~bbhM2_!NI|you|!^gAnuQ;6_CS*I*O}7Z>O-cMHw=`W-#uJcjt+NjF`6j z0DUr>?q75#4$5&pL zL^{7eProAVE4u=Y?a}Q9qv09?N{yrv**Bsu5Y)jAMIQ19=}ewdB|Ip~ zJH?6`-CWzcoldK&3=5B@#U{@SF39-otQBwK=Gy~F+NXG{CO9ELG%c~R1m|PX;@%^KVYHQsd?(aspqu0ohBzjFkF)y7tYRGZv)%=b=LpJJ70saOVW)Q56rjZ{nLb^%6bkst@ zqA{RWCUX>MbsKdP#+{p)`L_7xlI$;4VmR@uJTbTJ(R`aKo!3g~;EloGI>miOYbJ_e zlC*e*roTivDG7kgsL(q6eU0+e6mf3;*xnqDu6fyur|UM#GyaY0wg}T zFwriWrq){~F!nQvD(A`j8?5O@D07r+S>K%R6&Dw$zkipEV1<%8%KWY0mV*@7B5OBc zSeJbpgL5)xh&_K%b2HfMf*hn6VKip*jt2Ek%wE0LQJ%WG&)$)edze*T1(E1~kSe?v}RyiX6}uSf9i@e0Ou9si`TGsZu$UWKAT9*HBSWVaSoEVs9Tn z8X?__R{_I6Lyr1mU0q)F= zeZ(e>Z?CL?+6;d^Cl0Hsssfv7R!Ip?DQv-(FL4muh{8`6<4v?NG0DowK{XZ!z`#n} z(et{9J9r*BK*AoAlHVR7nHQ+@P^%2OITUy#k1R3pWnEuY^%!ihMfy#G0o)n<0lB=X z#TqQ6u2y<#A!%t-7OPqeiMdoSSy>ao!3;D2;LCF95cC(oqhIO@ z%wii2r>L^eM70J>P7@bld2*%>%BXJu1mDM|1~&i8wQubDjr?latB@4wt`VE$!=lwy zmsK;-w zfujHv#ZSG)$gHm?r>A;(aB{_S|I^KU^n7pb^XJcCDuuFNot2*60!VTw@QY3E)p%vl zl9XSx-+W_x=MyWSuPa^oFMH_la6%KuqyGJ0)->0b}}M zVu>eQA!OQg1$}}nLmO_TZO z!c$Wp+;b{c-S3Zjs5R~6xehv;ii#jvY9ec)Q`xhhIk~uC)f`M8xHu$U^;a=W)_3BlypZ8%`z&B4!I7Sw!%#pgEUW1Fere^$) zANd5IlIfz+tL0C6f5gWFD@8j4&Mh9gM8l-=KaLg>%pjU>9LT1LaRK+R>?EEymQ^Cjt|A3e z4#BU8=$Clch)>s#gaWrL$u}}JyqsvWecBH_n!x4)L^m?|{>h)d=lbIkrK96021x!0 zv9KHuuLga$6_m3$OAb^J3$~+YVZ_pYVO?&5AFQ-gDqLIqyubJPLxe|t!u>{35j!wb z+#2;IY|v~x76!FNP?A?-R2E5_fp-ctOj?x?U+1fUB_6Tiy%Al{$qyoRZUm6Rx=JWY zhOYfpI`fyMxwGacR^bn=R#k8K%~**8n0$&+2?JGHqAa^U?7EG8>)Qf#?2aFZl^E^Os&zl97Ei z@Ta*ix=iX=;V9;lH6f^?o-ob}U*YXo3Bgt7ew&2ob+sNp?y+c>cyhk;b2YIjif!bM z`jiJMofyY^5{NM|sYEPUnrksz70}C|^id!k2Nr(EeXf7nL{0c$DCnMXLO}U)+z}3< zF}#=;KKRaYx$3g>7$Eq7C}kJ;TTW^hc4RGZ{W~2^^MNNBk!n3*xNjPP!4L~4L!VyK z(a{~=XEDsIc7>gsoRCdIbb*~S5r*RSd@MH(nzZVwF*hpyap`E(rI)n-jG7u388QBq zUMPD_QIYjRy|bI-_bfvWQiGCFi=v{U&TVXLY)TOi9;3Q#^%{mre`>EoiFU{7V%^+a zBoGe|pSWce7RrCm`n?VU`yMJ!Ys_`j014Ue_`HA1d#KFL%~5F0gq#oXTpPYe5`lc0;x(u zI=w6g94ITA9wSDt*-Ic@Jp9`?`R`6Wl&<0xLi@Fug@r6eb!G7=W^OC(K_=@yw?{n* z)^2Y6QfP~gaJGcwzkM-%{dcz~!<^a%1_l*4w}&0LoHJ}S^WP8egB?RcLO9pA#&cs{ z|7{P#O4to!Z+@p?3qYnGi2xIs=kM`4Ji$m=S-HYdIaM^Guf(7w<*?nKG+&6LD`;nD zr^6)G_ujp+;%yzHa!RL3{(+Y>n$pA2!S;5$30ccYseaS1)gc3rKsGj=gaij~Y!4l5 zZT;L$ewc1+VPO5u-oj4jDq6D1&jw#G;rbC93&F<5fEjZAoSmDyxw%=30k`H|m%M9> zmx8gMtuA#Mk($j^nC?s!cdYapm%sZSdstdnP=FaD;bzdDn3tM$3NKG_^*WW5-bp`M)a#}&P#(XS1m_Te{5o2)Q} z^V-fQ%;0!ku7n)5tAF^QP>H0-5L1r?CI^Q-$q2tpZgD$W9U2-kA=wvN zx>6#ZzuGo|I&R*0-bRn2cW_*U&yUAXqqVeemfBuz%N_l&T)fh)v7J2mZgu_s9gGJ3 zjaZd$zA5xiPRK9*xQ08;nvS-@2N!jXzj3%aCQ|1%M}u!(zx&V6z83XTz}w8LYI`08 zGvEJ)049P#ws@g3bN4^qVW!V!0tG}6&@2gA@>tT~@>s1LvnwUBkSjIJM>ZlxT*E{= zI$J_^mxL_%sRqVJQS%kn6Uq5!i#CR&IVX(C+_3>gz5NO891w%vVIz@8=kBH7=eBhn zVZ(*Hb^4Ct5?hSFRXmYgouP;uG%{y`mK#{R)%Xt@dFy(Ok6v6Mfnnx%Cz{oaGu_ zxgki``}`Yzns&D$KBfvQ#{w=GJA3E-q1Mdh=!Jo9i8|!5lG=nfQoJEmrR8g7Pbwp= zaaaIGYo8jN!b4e$@OMA&T4G!APcN-)Y7I4amyp?g|3NDDp_3%^R|zwVjYzfx#mB!)f!Gc=kUY}E(lTu ze4}iidp|I!9SO68qhyc(dsI#Nf~;n(7RmRQriNHo9YLp}Oi4a=&vUr_)`Q}L>ic+ zay-h$(oc?odh$f68kT%AmPCK&v2pP*X3$b`h!UZx6d&`C#(U!>I23B2KY zP|P03F(Qmmc|GHHiZb%|OgKop_!==ZMk3|!ou&u)fcvd(NNK(BBll=%!YEck7d0Xc zHWZD7-LrI5UsE*n(7rme=rIpde!lJak0RG1=4H<;#2U5~2q6ZXIh7zv#@ zp5=Q-io^tti7yPZTZStzY^+6$=BNocpRg0qXu=Q{J=-8ModNKdLtt3S6}#&UL1I=%hE z2SNBK8X||8f?00hl68HRs$Y{hmq;b+a{(`|XRIeZj+7ct^!r!rNFW-)~|* ze)Kf}P@pD_P-5U}lBGB7*RMrCzdsLL+1yWi)*(e2+@>va35ly(tIb>wATHaPp>VlA zxU|4@wsmU%!UcVilV<51^M{>bhpz$vN5ZE-b(me)aNTGh`{roS;5rnKJLNs_b73X= zV>s~U_}SmU)6N3ns>c3bWxjm50A{0`I%rhqrL?ydDTaT51iaWsfW3$?E%>8ou8$0} z^H&edUyiVU}m-V@-o9X_JiZazh;k_rh zGMFvAf8%CQT2x5{30^4W${o$^Mn9@Wz){RE6Y5!*kkn&fX7V3G;%TEdb@HISQ+@Zn9nzu2Y8J_@8iI#h z9@RrYPRsu%DAn$45`L{)CLMCp$T2kx9-}ztM&sO)(uIKmPLORgjWcO6c zoP3stOSH5E7$sa^vnl23rxSJ=zU^Swnp!@&bHO~`zCg43{19P88o#r-J^q3jxkti& zQp~+cv~)V;g;FIVSopa4@~rs2eaS}JSn;3fKPpS+BbzwE0$x$;U%C-Ux|Sn`NBcI4 zn9B3jzpjPa<$3k+^@LX*O=|d>&Inh<+ zqqTG9NFIF5b4t{kPOTmpL958rkQiASPhoxm~eD_2@R{#Cr4M{41*r zm&wxN(EL7cE|hU#zkb1Hgpp~T z|C3S8Tp3NTgtv(Vw=mUB&j{mH81@p|CGTB2ey7P#=2Rj68O}?|@9p0SRc}oAOAy_0CJDhx7)B)Sz zYkSZ-xErmMAx{+t%=xX8GAm{+RDy>fl(~l}U})8e#iD-rLN~s!F5mLmZ9(-; z3|NhzkcjA#PZV!iGeOQ@e!2;n%;ja&Ck`Rx{f>kmwD4Z$sy(S`z!r5AZaKa>cXja? z>4Va>J!k4&n^|+>6-~-iOlz$4 zrn1^NFF#BfiTS;lLK>{&>m`AP7F~Qyv7g6bE4oLO0~`D)(>uJElEoxt*I#5 zUnpmqahYi;|KP!?trWopR(~BUh~CFOB}Mp7HqnPK{;;fuB`nhF=k$rAY&8#qyF`$h zYlHDY=K2K8<^kBu;cMUWba%auufN1T5H86eO0a(1?`N4cxmY-5)>4ZAENumBNZFQPCUbjYMuDY zrH#T9eb3y@w)<8w*`WYoCwxO#;S=lo)B$rkq~U9FSJ%4tQ>lCpmw|V<4>1qa^w`Lp zORN`pv#$QOw!kAd%DT58aiYPg4Ic+xJYNsT4}N47_>v~qR;*=|_fmTI-_c2ypXten zUgUAH57WvO7pW!B6DiWIFGK-?4GT7WIhpWQl2WGfxVQkU2}Y!ngqY}-j_CtpubXd^ z#XjD_bi{NfInl^?7na@XYf_fd2>Iu6ldFNc>3k3qq znB%%0*%|doR$AWIzkXFqc!e!3rE8xfv>ezEhthZe%(t0t47d(Kn z8FMv!INIIHK1u{VL~H14Qo=h~a75G9-TMF}Baw%ksJ9j)@tN|C=}2D9oDJ1*=^=}U zz(jD%#^-jrK8V#}BlKf=_i_+|*Cn5*nHMI}GJj^z3Clpgaoy6^{MBF&$>Yz4h2S-8 zR>w4V5{#RuO~t%5V)z}Oj**_Y=ucmWH?04D0cQ8OQrQ^{+Dg{z>zz`yTy$i_XMDEE zSks#~#VHD$okGRRZ{z3=k0U)$RlmQvB#Qep7FwDu&?MdvOl-Ed&?0| z7=_&bV7$TQooj&^n9Q}mwIW zQzjXa@uswHR1VP7t7Z4BAKJO=0>>>bX-O+3b`w3cqjurkw z&QK)=)ExL0jC34#@V6!2hFC}qzZ8s9tH`M@3K+hqQV`zI>vi@2OK z#lsng0f`}3ST8FfrocfIk#=PqSNyO8Yy1zDfM-4}66CS1aUhai(N%gZ2{3=Q{m#Cs znXlNc-MzO+f=tai#5(H$IohF@jk^?tx4a>yq|#JzAOXi)x1OU68Z;77c2A4wPk7S? z>I_y>?)doxhwa3cu40rRkm3HXGLh>bn@T$vOEVEN8UH8LC-OK*ym~_*%3dMgbmsX= z=~&ud(X|rq!YPM=bb&~Aw67Ka{>!DN=Jq0nsi78b=8>rwmv0tNexrTP9=(VoU;`84 z)V9rhrS%15;u9K;Kwj?spH^6DBC!v6%LIx>=-k*9Eb9Mvy87yj`7xta{4b-e1i3GC zl2-m}SJlkqp)Jz3(61Aa7KhtAEnvV{FHpiA@1AKC6!n4x;sdFM=@V0PsMd{DgLf4r z1qu1wM>4fWl17mEVb$f)*|%nBb`u(9FMCd*)o=0NM=<)$^fY%zwjEfs04fED#QzXk zBJKtzLlrklxw3aI7l6+sl-L0?wK4dlS;BI*RJw`f4(J1tyZ!|HgW9svY9RJits$3Q zhV!uFGFEIkyfDN}l=$Jc#0=sg+WrhDDaTZY!r~i&QP*IjiE~eF39@ked#aW)xwN?e zns@V+66-4e{)d;y0_mBaa&7A;oPH|1%Sr)OCZR0N#641(((p%VoPB|H4N`mKVh1hP z3jI@J*dG?Tn15#1D8UDDh&gOny0Zlo7yUjKsZln9WA{3ASy?7NXe|K=nY?k#>acbr zn~^u9>&shGT#&x`j#7(p46t}pKlrZwd8Hk_w)EHI{%TWp=4)c;W{T%y`9x!5Qm1!Y zXoJ<6WYxmLp;Ca86m0s}zUKPs<5eo83i(rVJV}5;6CZ9Dfu=6Qw@eNyFG%)y`QDh>IhTbv-=1 zxcs3gciVyac<_EC+_WHP!p+`%nL)o5;gM$X69sjv(EfspNediGL>^E&9D2a={~X?6SNZ(E&gL_K1bgQ&WBMz8&?IR%}k@uLYsHhkj8L6l|UC`|GLiOJ7`9@u%Q=CsQ9=QERifvsj zZX>8dx-q-cn7N!sWa4kra*#W0Yr+d04KFo&{|X2S3VQwe^*7;T^aUMB7jauM<2JwM zUyu!LEv!nvrfCu5=J8%L17A(GDy5T9FsdTv;8AQMBC4p|GhexXCg6 zGq0Pl)%mF*4np^{!MVDhDAwm085xYJUKLGE-cC-xOG|Nm_xARF(93?$0uKrb3dY7% zg%{`MK68-1eEE`IR?z+UZ)>Z#l$2DXJQ|dP6r!%K&SMQ~p(;af!sk5OuFT5Kt|3etzEEEc!Us$M-8>tkKcYM?wDn?PO@U45)i>AYZPf5Tgtvq^PK< zq7vP)@^62iih^QyZx7{QaHS&zRMB8zVb$2oX?*z5dD2KP>+S7r*K$`qThEA&fAJI1 zz#LGGXZ5w{*2Hb=&|Q3h>pzHQRE+_j%OrSI8GR(Pe1(7vXx76ZFE539rZ7N7YDW{4 zkT77&Ww5rt1;Wu=%l9ijTmG1A_cKRCO3z#|#;6MsFk&9YF_VfX7ng0GI5wxrZ`FG*ssi&;a zC_pCmEMEYTrDj=m3(T4~BuMYbe$V;v<`YcT=If^D8tMg)SxWVarSj3mW%^1&H>Hyh zpMZqTf&?EclAr3LV+P8U!|&4SPlM0V_%qB;#N1+t{{nCWoRclx>$k#}%K=10M34?Y zhln0ePfuK6c8J(9B}=3vFEAoM>wEMM4hD4s4RIiZM@FUyI=>8(`2zLYg&S^le(hRIeaAn5?l`ft8~r8;X}5-ZQ7sV)V++3BM~rq+ttt;lUCFFdbK zHxuV}w&5|N4M^>v%EO>WrZA@QIQ%e2J^$BqYEkEec*br}qO3W4@LH9VdIC|AG_8~{t+`bsU83sF#Ig!?-BoS=Fu=)A-GXhByCCSdu(CUV@MK*fBhASVW}fwG z^X3fI)@Q=&4z`Yhd;&&9&hBo;dL$nkA+I}o0DCmo*)JWTP|lR^K+v0EwV5nr)iJ20u%S&P4i(BC`~&ggMSNUo zoT{~VO)sce2f}n$S4wNmW4cw9{(Y76#Qip+%sGe3f z03Qbx#20$eV3TTp`GlUT=iBeZhe7Jr&fqiiWh9D&{e2gH3c*i$R#sME(3|UPec!t? zP$85Q@FG=6VzrrLz&&|&XdTMo&ZHOJ=~I5rUIjEln6qP2)0x=bJ!PppNv8eT&l< zNk~K_!GLFuv2y6rkPKMPuQ#`dyG~AJeq)x1XB=r9izId{tcC?bkpitDudwAjZt?SL zI%9~)2&b0TO8KTg(U@&NVLoHl%BUy8yU9Dx_A^H{b2XAfpg4*WXyoLu(=5o(%k!i8 zIe`II=n#3D;<-;oNr_?^$+t-G>jdapDHm#Jh|rllMZjQ2c3ihZj4#U zi<+0HshJD2DKEY6hO2FtV<*xT5soy8j;m~gAb(v{Z-RZ|@R8CcY1Zi@IR=DuS!bQs zP~GU({NF(DV+J0Fh-8BymQR?C5L4!I3;nsDLve2ZLtrnkz98Q0wu?;}aZ~ojqz6Ik z8WW1*RAqgpI%x)>?7PmuI zWBZyR4ohlrl@n4~dAeL9_F$(Zj{&p!gd>R!T{-Ew<64D@zba!`2gGhHte{|O#f4j5upV_^` z-0yPZ#9QZmp7Vw)%6~#fAx43MfYm zhM&E%>go&2o@hWpdj(_h*nA{=Y>OyMt^+RBq=CAc+(8BJ+F8!N+rT|(2g1N`DB)+}*S?V#9{)>iqoQnxl0jCBbQf}in8dL4|nc&ck)}M0UU424N z$g|GR+~b#*8}?)BvgVGOMVXfytN1AZwSXu(Nx z899&w3EK^v0{b%l@9qEpGeUyKL&mwawU@DvYelO%4K@okrX%xi75bgeGwS;JzAHAI zrK{m$l*Rp!jt5A-OmfYMPP^yT!Axn1kxUZfI|hay8m&AmV&<*)EG9{fGJ+)N6f1Xk z=e_w!sZC9tcYl8zA0Jx^mXww*RT;wSdCSPiEE<{BdfY%(ZqGpv$0sKWObyQazt#0T z;6JVHUXTj<^4W&W%*Y0V%{qs( zu!4#q;r=}{ljs8V!MDlfaJE^8nO~5E*MHh$_hhji_2p?gL$LA0`w2GXdVHQBfXC~a5o7P}V)s2>q!?ulBLOb1J;_Hdu9WND0PE+|Ud*{NO;{GehokpV z%p3lCZSHKxtldA|Aj{30n?~+;JIVTHC9%hkVdTC=4(;xr2DZ**kM%lzpC0cnB=TN$ zCKmT#3O-`_Nk&0Go{zAct^OADCl*{b&+_41g(e{)8glk4<*9UNKZ4S0ahBSJvidff z`rh0gY9gIG&!K(ZnANYjgtw0D@OWNYSbf1~(sEw&xj{!q?;gQpP)iy6Yr>wYB`Pl7zxVH; z8+1U$XPj?wv37HFv#K^7Nm_B4)798`x>I3Z#oDjuDy6heyRX z7#bcPt~(}13k3}tRM%V2Jzr$K$hOCdN8*R)e(g_U)HJHr0Do2?`T6<4stlJBO}Vc` z&=7hT>#bcdDDbtb47x+nU;kdU9Z6!sfrFM2cs%WGTyfQ2gl>CzeyE<;bz4cagkqql zpNAg3>@7w(1;+ZCjBNbAH!&e$kGxCvxCXY#^>`7?#RaO~uPH7Lo3Yt)x4XXjt6#h19`|}PR^T0ItEl{vb)#eVwdXDSa8DI z=^Bi#n|;VZ-KUGzmEW6i;Dkp>BO)T4nTtNtQ3+%9k%%QvtQ=llUtbG6-)@!A4qdqLR(9VhlhtNnt_Q)PMZc7C8XCdvj4N5UPT&qXlN+tRb{IyDMli1z4Nn=n~oUe z_ja!vN0Pb4MV^cx9F!2403i-yCVKiB4Myb~nXy0c*kT>;fx*g*kV>{Dm7kq(;=F%2 z;l@JpuTfW1Q&U$jWIFvV!{R_PH$VRi#hHsF^kxHlJ|>!65OQ$`l+qo9xN*L5GPL(_ zS!+H)mNgN^vJr88v;g~_Nbec4(t0&|_D?`89k-i(;W*{x#`uEcEpB?eHCz ztc0J}(q9QJpd*OVeD5JcfPqd_9g#OExkFPQUQ(`Lr5vYm*~O@KL6L)6YO&K#aL|E?i3vZ_l=GWB2QmDc@ojrL78an= z?~-Eq>#Pjfki40RmKg5n_dmv>qM|0nI+od{EO5$+h7I~Z zRm#%D_iiYTA+kCJi{#|y<{lhaxki5^MB~!gu)m$m5nXEhQn(*X;n?#hqV@W%HwBi3 zrDeCR7AYyIt*z}IQ$UP?8q_`**y)`&y?WC#&)e@vd=gL(HzzE>v=|_qKhV8#ze~a` z!sKueqJba`J}iUejiHi#13sYP*yWo`Kvo(O9U}7P+f4T-l3TiCogxQI&^9>A63BU+ zk;p!fU?4WY=$o%~bI%*FQpFG1bA6lZrB35H%yH=?#t+fp?8bU&0T@vpvhHLUD)7k|zN(@KL0uFEShwqfBvOU<; zoDqpYZ7Qx7lryH4K9(A^!*l`)RpniU#p+QCtV1S_gVChGoHp!Jn4sDNJEz{o4BN31 zf=Q7KB*@a7bN3i;_RHQ|3a(=U&y)!h;{F$(STtI2kaXn4Ano zmKYfHy3d4NI7AVzu87vZZ^PbZtz*T6{dm3__9y?qE|Tb+oSd{Y z;;+!?a46qP&~5!a!14-?jXKFoQ*)tqLZH=b zERCe%>m~}BwZM`MCo4ol*H~0h(OSiUajRSz6X?OfEVS29#l8qduqU%BB3$Al@i~Pn zLJ)L9#>2D2D3_Cpn%X8>4)H-*awsPCB*UZwN74p0l10I!OZ*U()MsPkx8BsLvXHe- z!9$G7^K(bKw^F}X+r1VLF^<4Y%_>o~%xR%c501bZ?WZ3|Q82`$tg3p|hoiu#RY#{@ zzKN14-9KrYajgv&l6592pNcH|4C0!QB$ivE$qe)t_(($MR8`rd*Y{&NvR2+0jI?G4 z*X}InaJXh~(YC|Rfw_agK&AJ9oY&GqOhv|Xa&f2foT_3z6-~-(Wo>rq#`sdKdQ>S)|6gaqE@DnvlheNYd%th(f)^stb){(tC~j@gagHVA&M>uo*E}K zUyfBde#>6A>CBhnm*1@HqzxlIyp!f%&7^4JQ@z=Xv11^wqQ(ZQP*5_H1_lN|Xe!V} zoF(+rxbs(={3wp)^iALI{!mAiI${$?fv>xOI@M)UPfriy_fSPsuFH@o6Icu;@ex9X zsS557|5Tn>;*s#3uYdM;qfzAMRoYMqP%nv7;ZF|DBsz6YPD&E#61d&$9^?<$g5&tB zw2V?^K9PBFZ~&y3Mx;nlaHlR4ky^IT@FMyYxqKf)Q!-_GJvI72(Z*flgi=X)T^}LC!La_Bg#NW1 zTe6=$x3?dd3<9KF_((&%YtAWdW{Stt6j;v42 z&{wqe&yZhP-S z*i~x)F?IO8_@=aQN_l_mwps8~f1D zrJqOt$jGnYmUtqzL|uVZOSjdvn10I1a%X1;47)_HIyu(zGe@fII+<`Gx5~HxBt^CW zgdO8#iU>;(L~o;eH|86^=obj|9>JJ`<-`guU7mLIyN9zGtgy+B*b&_GQ}T1CY)21> z5nzVxAcOZrF`wuQ4j(df@))laoF;0<64%qz4EM6S^b&M*gg`FycG(Lrf7hsCz^lk~ zgTT3B&BMWw;0Ysq(D>OpT8z?pm5MF7=&1-_)D*4pb+oMj=Mahm@@b;F-q3+Zr_Vs8 z{si`#dkCY#h2UQE=)3m1vcy8BE>~VEj(oKr)84MeXv+B`sN1>L2uRL}Sjc>8d%XyE0t1BXYhkGH^?EB0;3>`UyeR zZLmolGwVhAm(tA(7SlIaOyz>KJX+K6@ZbO?thab0%29LVInzyT;*t#O--p?PXHjIl~0#kV)iIkX;52-13B$>rHgrA>3b&(&yD*RT5Er~^PjJ~g=LQ&)u zm6e#0K2KM3#lslKnF2nCdlegI4$oiDz! zhm8OX{K?=V8Ds*j^@gHzk!qH!X(mlSAC{Dq^cZ2SCSU*60O+_EQ}Elx9XON33|8uQ zW-c=GqT8*u-5o8|S}y4}+O4$Ttd4X9Kdu)aYn7{&*#o>1k^8d&)z*+LbNA)Cu`}Pc zv8?PU0FkUKIY#i=y#RW-$>FV9lf%}4g5VQ}Z7aChG!E^({r%Hv*ixH^)1pu*K;3o= zHPnr;O&%9!j~la<`hr8y96!d6pwv`V>l+()?V&zEyj`Ja{dQ~n9esCMwCaj#Yu`^} z-sF)#Szs*R*;ErXUp(+i&e>23lT>#_1wD~+nh9U*L zX|M45SgXVTi+i2$dI+zt8)BQsaq?V3@b5>Z+Bik;CGY7;^ndKaSDjoc+yH|0FKWxm zf*GIbv_dJ6D3dL$Z!YP0!+8M&THbagh6$uF<95_Z+F~Dcm}NigV_X}WWA)N{1K0>7 z5;|mYDLO|TjB7;h=-SE#)c!!#s&QKrNwY?8rn2?vA+sZDt- zG3K+(3r|r!Q^jt#$K*$Y08YL|RvD^Hmi0Rr-w1llYsAB~@?BK-HO@7YOP^~Y@X1BS zVxyJtFn2UgawH53Xii#02_ezIuL?|aBA)EQ>cIx$|4iT`U{Jn#L_Pd`ouI43 z%*j6+EYT9D_{i^jg9z!9%za+*Bo~aowoycucfrY3y5!prcoz&PmamTz(Icy|1h``t z31Nv}0tj?4o4KN4ecZB~duLz!#R#&+VMW0Evaz_xNQ+b_X&#pz7jxE=BnL^e&XaGW zx|@gK6ryXmfU5^9FGb{gmb=7YBYj&pHLhCXKc~8WG5YK9<{`=-)=aF}TuLNuaX;wJ zsLlEgI}iFYV+u|nQ-mZxcYrJT+yJZe2c+Rv{{WSxpv zhl$!N)8XG(Sra)T9=)~A;P|9}s5wpOJlio0c~H+9VZVmUE)i~_JA>!@GvPo|(h%B& z_z*P9&fp7wIJ!uwB2X>y-iNvfPHCasRL!B8t5oNj3IfOGr-Y4?%!C4;@w&|M4Bq?j zeR=sro$IX2qWXgH+SGdpx<|JQto&oaV44BOY34=E2i`d@-mJq*+lv6Zo{Iq2Fm1ot zgQdS0wior!Wq7vcPfYSgY;DrV2Jn z+7Kij0xZdTtt5m(=9a}%l9-dzzff=YGt*L$&sBL?Xj6K_BU|1fDG!|nlvZ&atPWjcX0 z1p^<<(2do7#Mj~PBGASx8&et(ju1E^rlC4h)bS*j6l`!;KGgp6!IaK<^(A5Se7kq$ zGsxYvz)wc{%dYFC(=x2nn=*^1c{wUrT_0!Rv_?4$_fBYeoK!Fox0Bu=8T|!T*p2!| zH-Xg=;rmw2!}fe&jx@)VJR&NAjmD|`SBX~#DhPN}bek_4g~M>9VzPO_hbwql8Ak!pWwl*|YNze%rg)ZH0>a__jsu&8^lN5XX2+HqXawDWqsIs)E}lpF8@ug78> zs%BF_Z@$^mt@6yg6uNAAiPPVyMKD!(?F%%`rW3ryrQ;IZ*j=|~_+t&o4N?q`N{>5iI|`WOHXUE-&Wlt-v29r<0$<-0 z$!*dB4s9ss6+pnJ;8A9(rr{p^6~qzprmH&`Jvw|11-Apn&yCOX7%ve;>VqJ0sOp=+O1DFJ~{BS6|T1 zvV<=T3)O#ZHF6xFzZfMi9vQ#?*(#0yUnau_`%MO?mRVgsq{r$b&)awGX1lMt|0ygm zB`9_$^JcVURPTMy(wEMsA=<3T3|4*}ZSN@UUp~)wy8t}rPyHJIUHvk#VgIyA(Al&V z&0B*%LYu`~LI_tKeK=jWO;xR?h&=4DK(C>i*fmsSuV+zk&b{ydhsn^aviZBPnGOlJ zukHVw^hAx-4aF-c~&_IzPDZjt*Y?1j!o ziAaH(u~DDE#SK$PEPmVqdv(^FJ<{*$B@oJ%`xhv{(^a$ROgww5OLHRBqB^}Rc#!1Iq zWgmKICIhJ$EnIThP>06}PRBpUOUA_!N}2F4o9i?;t)Fs7pVj77e+!!tR(HV0j>>J| z<{KK-V-*$3l}Ya3scE`}A&dSP=sZCGl1Pt7R0jhqP#TB19T5-^aMKyXI06d`ON9uh z33(4CS=fcD){O#5&c-$wGyHl^CPQpLV&tO6h4T@+B1{L%4J<|K3s zT(2eTnIn+eD2V$F{1o%o*AZU13lphy9Y+Vml&t@9aPc2Ig1`FnQcq^<&2gOb##;hJ zFYC36kW3K$26eRgeeIvu?cW7SDKxgVVSNOThT$9WwzGDk9fST-xnplP@%{Z=WFOd6TTo?Ff7REX3_Rq2JH zdcu?iBO~KB7c*H5IhVaqk|{O@C1$2TB_>@E%0uU`mq^K#-@p7~wo{uJkWEKr6wOTW zl%?p5@t>Gjt~CZ22R7EZ4(2ZhXjK2Y%+B=g%a`SEq;~rTP9RRtcKLNvhE~-4Hv;xV zVHQCFo-Ui8X~+i11Ow6&I1+jnJ*X^?XEA=p9}yB7g`TVAOyctGW08&m3~Q-D z$g@x`>};BZ!uOXr@<58g(iEKWqkQ^aJ+91eC`+a}z0x89vPe~-Z0bJjj0UyI2?=~p zm(w80?(OaM@$tE}{PLxeaioS3JWx?pE!SzrUOPEH{y>O!I9Hi$dUv@$4a^5zE4b_% zpd$nYP<{xvq!H{RWpc3B_y3_yr1H}adCNql1>rC4Uh%FJCK(mKIBzJ3(fhe@0zT1F zWzl3Fmx&5ywDgN7&t#n=n}K%{S7I=wO{ZmD7!+Rg@7&EOf)VC&tIt7@-V3u0MXTGIEuGgaJOU0sDm#K6VJ2YX)~?d_x}>D*2Qt*u_W;~BS!H*0<`0OOF8 zkqr>*xo?DIJzo}5@$_BBezYS>e1JL9S9F~@yR+E$Yb>`^RKkt`K0a`yvd4RgXoVjE zKZ_YHGO>b^lWNbv^WH0G4!*~j0*B^u%+#UU)Idn_Y$}{1Ux4VA$;@7#83i)md(_nh z#s>Q(&^xGx03RP@`QYeQR~)R41N#X*Jw1SxVI!y504Z{%;UIzuIu>X{;=}q z`Z{h8%cR*4F@lT!EyMS+s38f_zz-9N0?w)Hn6s+=xS)fHUGGzsp?tOJz--4B_3R#gCFmy?r|k_ulshCm?E zgIn$G?d$E_u1E8yr&UuH-e>&;GSbpwN(rXTm6azMZmWjnUV$kmo6$tCH2do+Yl2GO z9A7J$DmtLZ%VHq^Hq*B?Z@d=z&6v1m+=kpWSB)<`y!?YS<9iUk6-_WU}8C3hwgEzD=c5_iZ^WkNTXn z-+(QPNQyBA^@`r*}r@d8}c;4-Pv_j!#cPW4!*Q4at zsj9m}8Op?xp;h7d3iS6>>YbF!@l_@kC{O|of*>O>od-XeLxgX)TyD7X-durr)L3R z-&R@XK9%j)k*=<;6F?($bO_AP);aDB>pvZ+FXp0MyO%7htEw8tQnLx(ZFD}K?g~C~ zH=CNlb1T?z1fc9nI8t-LLkD>nnB!OMjceWC-&0UH0yi=k2gV#dvZ>eXm_KFlZEy=X zJ)sb?6BMbm?5MQ^q9v>@Dt&jKq!EwXv_F*tNpk5<2eL}ag@7#DGS-O1La9*z`x_S- z!rWembRgD?pR_FUoC6`#0Rhl?Q}e(UA?FVJt#lC}?yRh=02*H#Y^wqrqmnvv_Xho! zE#ve(V!NGiS2`=f=)wl1Txe69)4E&a`y{StnT5cPq&0Au;<=4JCVxWUwRQ_C#^^pO z+6PV9HENre$p9n%^5u)Z{wK1}-cV2&HUDY>)($H>S7&EKt*f@3XbYk=33f4NDQ$`Z z+y$gf*tWPB(yMwYK2Y1xkCA`Ks}XJ6vQc&o>NemYj*`ghHjre1@VY_3Kc_V%B?n+* zcp&*`?!)T4ckdQ}^@)qaBY7GczJY6-rcpI|)`G+)zy`ihP^86)kEZPS8rvvNDg-f-QDM0*~Zl6GV54 zC*$9}b5Z*-zAf$fSzyD^7KUY=dtfnnUEpp-^8zH*ZO@I}JcG21V?X!d!XHxH1ME@T z{LS))FN1U?Pie~L?pW^f?S?M?+{6(%jDlX=tkz0Qaqs{DO!tirg9ILuqgFM?s+5NO z7B9Ax!9nb(}%iTo`=CofKBqyU+nm%oBf2o zbz~FfyNlm?1B%)dT?soiwH?*^DLeY5H+&soLv!Gw^a^%5>sw-RfM@%3rRZ!*1evuR zsiQ`=J30sH56vq6#-yD=jm&1%|CUA;j%`wa1FVTp0bX#~b-5OoB0&w({$+susKC%4 z(#&)-W~vk|kQoP#DjFj;r(Xb=y$9yUxn$1K9QT~Aycnai>SU}A-OK*e2x0?X%usXg0Y03 zZy=r>x!-l9Iw)mU;s6amvQa8s0f!0gr~@WB(|u#9EMWOFV(k2MikyV^RXl;2)y=!i zO%W`(>$EOG#z}y^z2^TC)$a5*hgSJ> ziJzrJ9D^L=t_sbm_wasLty05A<1wh!m(`r}()3tB|`NI`3v0MR_BT z0~v3m_@3Xtw(8r-1sP4n_Xvq9M59*P@yuWhEKB zi_NhBn@$dn5u5@93b5%{Mib$C=0+s|I3ruGRJQmJ)w91jMd8rWH(7B$lEg6}_rvgV z#p+1W;UASAEfN(t|4sjWJrGM9OkswM3W&>8eSW?F0ZmOa#*1mF=qf|C4EJvOaOGN& zqdF{aK0Poj4kenQeEq(gqWDA<<_+oNgA)-yUuDW;viH37jJq#d>4T%6h}@PY@|po` z&Ti*6?Sz1EtafP1+x1-LRx(y=THnBw_ypXf1YBP?Mbi9*w~l!~0o&tl2Cz$S9(rw# z%-a`!>}KK|{jd~F#txrqpZfOohCn`iw^NzPW|dlWK$7+89weCsH93*oDDI15CJKlN zqO%DOb;7F}&DLxRs{1Px7#jC7P61w|F?J&37m+)e=tZ&Fu}?D`@J<{LQP2;eK4#&> zbP5(+I4>K)DIoB6u(+9x*;W6QO@%*7ti%8E>-mrMnx+I>2@bU9uR*^zY%`tO3ge*N zSAgaG#UK8?uizu+2J~4L9q7`H^2E@|gjNC@z!@zaYNVRwaPB~oWTjd0e>oFv z6bKJH^4t8mN`3vR+{|;JHDeJhDoCGB7r=ge+^(B#f0&9d+W{jO?dr9>I|L`IuyNM=aiVBDxDxlLRqJok&!18y!YS$;xSp8^(e^(S zTC{z&TtA&{4{L~1k3=g` zc$t49_&>r)Y>kxGvgzd8d34$ey>E?#^xPdqH|4Sa}WiouR-UC!R6PlpAQ9E=|1JTPMp*L@77C4{OljzB8AS z5N*h@&&o$pHE4}ok}A}_IcRyR|%39L`}JMZ)UmyXcb%qFv?Iv5xIKO0{9yWoVJ0 zP4Q45HwzLZqXunA(P9L)azYA4iUusnm4nVEbA(yU?p$^Q&R!f{Qe>`X(p!4?n+Mp@ zHBx!=4_cRszpd)Gf5L*TwmT+B4GF@`Uk_2r@0Sm-MKKm!LF4q&DoVL!mm`i`gnZ;^ zp>R2W_MNL}-b>SSbqITRE0LjvK0f>B_8nbItL)ZI2QhxarKTA%EFwzV;u^QBynNu* zSQ+fhkRPPtr5G`kI`1yDMECp0oK$Nuxq4AYhv$l!a>q%c<&X0mMTD%8uisG$)0ra1 zgDS@x9hm$63xvYyjVm(KC$hbG2Od(pn`bdfWD(@16{huKM5>{=#THE3P%$HX z;T2-@pp+!;*kVJKD`H?b7Jci?eKuX1YEmm>*x}&~z4W(TbmlqEWb4-xuW_mWx}Jm? z_BEr=kdwcw$}wPt%Q7PWR|7i1PmvL*h?1MCCJUc~>x`eQEj;bhA?VH*g^teBQ&^^( zgh3 z?kQlw;ou7Ks^E?Y&$X>K+~2nscUXEO%33-`?MH7lgvP*D|g@Hi>Eg(8%l$1*fOOJjO(vpSP-?k>53ak zC<4NVObakf_$`H0g?7HxXfZXZ`1?pWktMPHq7}vJQ_+U7&AJ8H*-4!TaF;pq1m(wU z?2;+uO=~hm>?jk+U{L;|YeMHm)9wFC%I`~t?%sj4vO~9aBpOba)GM2ZLf0et>4@-h z;n23VoM{M{rJANA}PxxxqF+x zs{Y@%uiqo`aSgpkfa`|C6S+j?Yc1OJo7~xSZKRV{N$SOVGwhH)qMApKU<{KRqx`B( zN`NSkBKBRl6QTl#Mso2ri?u<`RIEjq2w=Q)5rTF}qe;mWj4{SO+eFGZxYp{bl2UTA z5fkeL-{N<6in<&@uRG58*Y+Rs(@P1o*%wZCUmrh^miCeLB>dNM!LlQw_79hmuSU%) zddQru!?Z!OJi)`+N+-@dz#hX`rbfDnpG%T0*M>|KgLZYXq*W1E;MRNnl#K^yC!vK| z>l>aiN^7*pZLAiro(2h&tq)Jq6%*)eRt?oDOu4_YYliyWxm-sUq5r1(ppB6)#`8W=f)2lKcYxB0NfIcaU9C5seT5o^mRJ^2<++wVy_y0)+er62Ps2A!1tCJ-mPQ y+>|ld7C`j>Z*lkksQLbX3cvq*_Vw)S1)2aaS&U}UK?@YLLrICti&cmi1pY7XQ+@~l literal 0 HcmV?d00001 diff --git a/Images/Chapter05/order-old-1.png b/Images/Chapter05/order-old-1.png new file mode 100644 index 0000000000000000000000000000000000000000..71e570d7c3b75cafc832dfed089454c14c48cae6 GIT binary patch literal 7301 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 RFyM2Dvb?%np^W)I{|B#^7cl?; literal 0 HcmV?d00001 diff --git a/Images/Chapter05/order-old-2.png b/Images/Chapter05/order-old-2.png new file mode 100644 index 0000000000000000000000000000000000000000..47a4a082fb656643a593060f7168875c3a3d8752 GIT binary patch literal 9074 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 literal 0 HcmV?d00001 diff --git a/Images/Chapter05/order-old-3.png b/Images/Chapter05/order-old-3.png new file mode 100644 index 0000000000000000000000000000000000000000..dda069341c3c3712307a96e3b160689cc541d572 GIT binary patch literal 9044 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 XjB+(L)Mfp_5JW*%MFt^d67+unh(yrd literal 0 HcmV?d00001