From 7e3c1e008d6b2eff10d412993df293fce2156151 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Fri, 27 Jul 2012 04:48:50 -0400 Subject: [PATCH] webapp now uses twitter bootstrap mocked up the main screen, and am actually pretty happy with it! --- Assistant/Threads/WebApp.hs | 24 +- debian/copyright | 382 +--------- .../blog/day_45__long_polling/full.png | Bin 0 -> 55185 bytes .../blog/day_45__long_polling/phone.png | Bin 0 -> 41602 bytes static/css/bootstrap-responsive.css | 686 ++++++++++++++++++ static/{ => css}/bootstrap.css | 4 +- static/glyphicons-halflings-white.png | Bin 4352 -> 0 bytes static/glyphicons-halflings.png | Bin 4352 -> 0 bytes static/js/bootstrap-dropdown.js | 92 +++ templates/bootstrap.hamlet | 52 ++ templates/default-layout.hamlet | 13 +- templates/longpolling.julius | 4 +- templates/status.hamlet | 28 +- 13 files changed, 877 insertions(+), 408 deletions(-) create mode 100644 doc/design/assistant/blog/day_45__long_polling/full.png create mode 100644 doc/design/assistant/blog/day_45__long_polling/phone.png create mode 100644 static/css/bootstrap-responsive.css rename static/{ => css}/bootstrap.css (99%) delete mode 100644 static/glyphicons-halflings-white.png delete mode 100644 static/glyphicons-halflings.png create mode 100644 static/js/bootstrap-dropdown.js create mode 100644 templates/bootstrap.hamlet diff --git a/Assistant/Threads/WebApp.hs b/Assistant/Threads/WebApp.hs index f82a1fb6b9..050d62cf17 100644 --- a/Assistant/Threads/WebApp.hs +++ b/Assistant/Threads/WebApp.hs @@ -47,11 +47,16 @@ mkYesod "WebApp" [parseRoutes| |] instance Yesod WebApp where - defaultLayout contents = do - page <- widgetToPageContent contents + defaultLayout widget = do mmsg <- getMessage webapp <- getYesod - hamletToRepHtml $(hamletFile $ hamletTemplate "default-layout") + page <- widgetToPageContent $ do + addStylesheet $ StaticR css_bootstrap_css + addStylesheet $ StaticR css_bootstrap_responsive_css + addScript $ StaticR jquery_full_js + addScript $ StaticR js_bootstrap_dropdown_js + $(widgetFile "default-layout") + hamletToRepHtml $(hamletFile $ hamletTemplate "bootstrap") {- Require an auth token be set when accessing any (non-static route) -} isAuthorized _ _ = checkAuthToken secretToken @@ -68,7 +73,7 @@ instance Yesod WebApp where {- Add to any widget to make it auto-update. - - - The widget should have a html element with id=poll, which will be + - The widget should have a html element with id=updating, which will be - replaced when it's updated. - - Updating is done by getting html from the gethtml route. @@ -80,7 +85,7 @@ instance Yesod WebApp where - state. -} autoUpdate :: Text -> Route WebApp -> Route WebApp -> Int -> Int -> Widget -autoUpdate poll gethtml home ms_delay ms_startdelay = do +autoUpdate updating gethtml home ms_delay ms_startdelay = do {- Fallback refreshing is provided for non-javascript browsers. -} let delayseconds = show $ ms_to_seconds ms_delay toWidgetHead $(hamletFile $ hamletTemplate "metarefresh") @@ -88,7 +93,6 @@ autoUpdate poll gethtml home ms_delay ms_startdelay = do {- Use long polling to update the status display. -} let delay = show ms_delay let startdelay = show ms_startdelay - addScript $ StaticR jquery_full_js $(widgetFile "longpolling") where ms_to_seconds :: Int -> Int @@ -100,15 +104,13 @@ statusDisplay = do webapp <- lift getYesod time <- show <$> liftIO getCurrentTime - poll <- lift newIdent + updating <- lift newIdent $(widgetFile "status") - autoUpdate poll StatusR HomeR (3000 :: Int) (40 :: Int) + autoUpdate updating StatusR HomeR (3000 :: Int) (40 :: Int) getHomeR :: Handler RepHtml -getHomeR = defaultLayout $ do - statusDisplay - [whamlet|

config|] +getHomeR = defaultLayout statusDisplay {- Called by client to poll for a new webapp status display. - diff --git a/debian/copyright b/debian/copyright index 7f906a64aa..4cab3a048f 100644 --- a/debian/copyright +++ b/debian/copyright @@ -57,7 +57,7 @@ License: MIT or GPL-2 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -Files: static/bootstrap.css +Files: static/*/bootstrap* Copyright: 2011-2012 Twitter, Inc. License: Apache-2.0 Licensed under the Apache License, Version 2.0 (the "License"); @@ -74,383 +74,3 @@ License: Apache-2.0 . The complete text of the Apache License is distributed in /usr/share/common-licenses/Apache-2.0 on Debian systems. - -Files: static/glyphicons* -Copyright: 2010-2012 Jan Kovarik -License: CC-BY-3.0 - Creative Commons Attribution 3.0 License - . - THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS - OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR - "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER - APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS - AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS - PROHIBITED. - . - BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU - ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. - TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A - CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE - IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND - CONDITIONS. - . - 1. Definitions - . - a) "Adaptation" means a work based upon - the Work, or upon the Work and other pre-existing works, - such as a translation, adaptation, derivative work, - arrangement of music or other alterations of a literary - or artistic work, or phonogram or performance and - includes cinematographic adaptations or any other form in - which the Work may be recast, transformed, or adapted - including in any form recognizably derived from the - original, except that a work that constitutes a - Collection will not be considered an Adaptation for the - purpose of this License. For the avoidance of doubt, - where the Work is a musical work, performance or - phonogram, the synchronization of the Work in - timed-relation with a moving image ("synching") will be - considered an Adaptation for the purpose of this - License. - . - b) "Collection" means a collection of - literary or artistic works, such as encyclopedias and - anthologies, or performances, phonograms or broadcasts, - or other works or subject matter other than works listed - in Section 1(f) below, which, by reason of the selection - and arrangement of their contents, constitute - intellectual creations, in which the Work is included in - its entirety in unmodified form along with one or more - other contributions, each constituting separate and - independent works in themselves, which together are - assembled into a collective whole. A work that - constitutes a Collection will not be considered an - Adaptation (as defined above) for the purposes of this - License. - . - c) "Distribute" means to make available - to the public the original and copies of the Work or - Adaptation, as appropriate, through sale or other - transfer of ownership. - . - d) "Licensor" means the individual, - individuals, entity or entities that offer(s) the Work - under the terms of this License. - . - e) "Original Author" means, in the case - of a literary or artistic work, the individual, - individuals, entity or entities who created the Work or - if no individual or entity can be identified, the - publisher; and in addition (i) in the case of a - performance the actors, singers, musicians, dancers, and - other persons who act, sing, deliver, declaim, play in, - interpret or otherwise perform literary or artistic works - or expressions of folklore; (ii) in the case of a - phonogram the producer being the person or legal entity - who first fixes the sounds of a performance or other - sounds; and, (iii) in the case of broadcasts, the - organization that transmits the broadcast. - . - f) "Work" means the literary and/or - artistic work offered under the terms of this License - including without limitation any production in the - literary, scientific and artistic domain, whatever may be - the mode or form of its expression including digital - form, such as a book, pamphlet and other writing; a - lecture, address, sermon or other work of the same - nature; a dramatic or dramatico-musical work; a - choreographic work or entertainment in dumb show; a - musical composition with or without words; a - cinematographic work to which are assimilated works - expressed by a process analogous to cinematography; a - work of drawing, painting, architecture, sculpture, - engraving or lithography; a photographic work to which - are assimilated works expressed by a process analogous to - photography; a work of applied art; an illustration, map, - plan, sketch or three-dimensional work relative to - geography, topography, architecture or science; a - performance; a broadcast; a phonogram; a compilation of - data to the extent it is protected as a copyrightable - work; or a work performed by a variety or circus - performer to the extent it is not otherwise considered a - literary or artistic work. - . - g) "You" means an individual or entity - exercising rights under this License who has not - previously violated the terms of this License with - respect to the Work, or who has received express - permission from the Licensor to exercise rights under - this License despite a previous violation. - . - h) "Publicly Perform" means to perform - public recitations of the Work and to communicate to the - public those public recitations, by any means or process, - including by wire or wireless means or public digital - performances; to make available to the public Works in - such a way that members of the public may access these - Works from a place and at a place individually chosen by - them; to perform the Work to the public by any means or - process and the communication to the public of the - performances of the Work, including by public digital - performance; to broadcast and rebroadcast the Work by any - means including signs, sounds or images. - . - i) "Reproduce" means to make copies of - the Work by any means including without limitation by - sound or visual recordings and the right of fixation and - reproducing fixations of the Work, including storage of a - protected performance or phonogram in digital form or - other electronic medium. - . - 2. Fair Dealing Rights. Nothing in this - License is intended to reduce, limit, or restrict any uses - free from copyright or rights arising from limitations or - exceptions that are provided for in connection with the - copyright protection under copyright law or other - applicable laws. - . - 3. License Grant. Subject to the terms - and conditions of this License, Licensor hereby grants You - a worldwide, royalty-free, non-exclusive, perpetual (for - the duration of the applicable copyright) license to - exercise the rights in the Work as stated below:

- . - a) to Reproduce the Work, to incorporate the Work into - one or more Collections, and to Reproduce the Work as - incorporated in the Collections; - . - b) to create and Reproduce Adaptations provided that any - such Adaptation, including any translation in any medium, - takes reasonable steps to clearly label, demarcate or - otherwise identify that changes were made to the original - Work. For example, a translation could be marked "The - original work was translated from English to Spanish," or - a modification could indicate "The original work has been - modified."; - . - c) to Distribute and Publicly Perform the Work including - as incorporated in Collections; and, - . - d) to Distribute and Publicly Perform Adaptations. - . - e) For the avoidance of doubt: - . - i) Non-waivable Compulsory License - Schemes. In those jurisdictions in which the - right to collect royalties through any statutory or - compulsory licensing scheme cannot be waived, the - Licensor reserves the exclusive right to collect such - royalties for any exercise by You of the rights - granted under this License; - . - ii) Waivable Compulsory License - Schemes. In those jurisdictions in which the - right to collect royalties through any statutory or - compulsory licensing scheme can be waived, the - Licensor waives the exclusive right to collect such - royalties for any exercise by You of the rights - granted under this License; and, - . - iii) Voluntary License Schemes. The - Licensor waives the right to collect royalties, - whether individually or, in the event that the - Licensor is a member of a collecting society that - administers voluntary licensing schemes, via that - society, from any exercise by You of the rights - granted under this License. - . - The above rights may be exercised in all media and - formats whether now known or hereafter devised. The above - rights include the right to make such modifications as are - technically necessary to exercise the rights in other media - and formats. Subject to Section 8(f), all rights not - expressly granted by Licensor are hereby reserved. - . - 4. Restrictions. The license granted in - Section 3 above is expressly made subject to and limited by - the following restrictions: - . - a) You may Distribute or Publicly Perform the Work only - under the terms of this License. You must include a copy - of, or the Uniform Resource Identifier (URI) for, this - License with every copy of the Work You Distribute or - Publicly Perform. You may not offer or impose any terms - on the Work that restrict the terms of this License or - the ability of the recipient of the Work to exercise the - rights granted to that recipient under the terms of the - License. You may not sublicense the Work. You must keep - intact all notices that refer to this License and to the - disclaimer of warranties with every copy of the Work You - Distribute or Publicly Perform. When You Distribute or - Publicly Perform the Work, You may not impose any - effective technological measures on the Work that - restrict the ability of a recipient of the Work from You - to exercise the rights granted to that recipient under - the terms of the License. This Section 4(a) applies to - the Work as incorporated in a Collection, but this does - not require the Collection apart from the Work itself to - be made subject to the terms of this License. If You - create a Collection, upon notice from any Licensor You - must, to the extent practicable, remove from the - Collection any credit as required by Section 4(b), as - requested. If You create an Adaptation, upon notice from - any Licensor You must, to the extent practicable, remove - from the Adaptation any credit as required by Section - 4(b), as requested. - . - b) If You Distribute, or Publicly Perform the Work or - any Adaptations or Collections, You must, unless a - request has been made pursuant to Section 4(a), keep - intact all copyright notices for the Work and provide, - reasonable to the medium or means You are utilizing: (i) - the name of the Original Author (or pseudonym, if - applicable) if supplied, and/or if the Original Author - and/or Licensor designate another party or parties (e.g., - a sponsor institute, publishing entity, journal) for - attribution ("Attribution Parties") in Licensor's - copyright notice, terms of service or by other reasonable - means, the name of such party or parties; (ii) the title - of the Work if supplied; (iii) to the extent reasonably - practicable, the URI, if any, that Licensor specifies to - be associated with the Work, unless such URI does not - refer to the copyright notice or licensing information - for the Work; and (iv) , consistent with Section 3(b), in - the case of an Adaptation, a credit identifying the use - of the Work in the Adaptation (e.g., "French translation - of the Work by Original Author," or "Screenplay based on - original Work by Original Author"). The credit required - by this Section 4 (b) may be implemented in any - reasonable manner; provided, however, that in the case of - a Adaptation or Collection, at a minimum such credit will - appear, if a credit for all contributing authors of the - Adaptation or Collection appears, then as part of these - credits and in a manner at least as prominent as the - credits for the other contributing authors. For the - avoidance of doubt, You may only use the credit required - by this Section for the purpose of attribution in the - manner set out above and, by exercising Your rights under - this License, You may not implicitly or explicitly assert - or imply any connection with, sponsorship or endorsement - by the Original Author, Licensor and/or Attribution - Parties, as appropriate, of You or Your use of the Work, - without the separate, express prior written permission of - the Original Author, Licensor and/or Attribution - Parties. - . - c) Except as otherwise agreed in writing by the Licensor - or as may be otherwise permitted by applicable law, if - You Reproduce, Distribute or Publicly Perform the Work - either by itself or as part of any Adaptations or - Collections, You must not distort, mutilate, modify or - take other derogatory action in relation to the Work - which would be prejudicial to the Original Author's honor - or reputation. Licensor agrees that in those - jurisdictions (e.g. Japan), in which any exercise of the - right granted in Section 3(b) of this License (the right - to make Adaptations) would be deemed to be a distortion, - mutilation, modification or other derogatory action - prejudicial to the Original Author's honor and - reputation, the Licensor will waive or not assert, as - appropriate, this Section, to the fullest extent - permitted by the applicable national law, to enable You - to reasonably exercise Your right under Section 3(b) of - this License (right to make Adaptations) but not - otherwise. - . - 5. Representations, Warranties and - Disclaimer - . - UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN - WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO - REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE - WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, - WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, - FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE - ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE - PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. - SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED - WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. - . - 6. Limitation on Liability. EXCEPT TO - THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL - LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY - SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY - DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, - EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES. - . - 7. Termination - . - a) This License and the rights granted hereunder will - terminate automatically upon any breach by You of the - terms of this License. Individuals or entities who have - received Adaptations or Collections from You under this - License, however, will not have their licenses terminated - provided such individuals or entities remain in full - compliance with those licenses. Sections 1, 2, 5, 6, 7, - and 8 will survive any termination of this License. - . - b) Subject to the above terms and conditions, the - license granted here is perpetual (for the duration of - the applicable copyright in the Work). Notwithstanding - the above, Licensor reserves the right to release the - Work under different license terms or to stop - distributing the Work at any time; provided, however that - any such election will not serve to withdraw this License - (or any other license that has been, or is required to - be, granted under the terms of this License), and this - License will continue in full force and effect unless - terminated as stated above. - . - 8. Miscellaneous - . - a) Each time You Distribute or Publicly Perform the Work - or a Collection, the Licensor offers to the recipient a - license to the Work on the same terms and conditions as - the license granted to You under this License. - . - b) Each time You Distribute or Publicly Perform an - Adaptation, Licensor offers to the recipient a license to - the original Work on the same terms and conditions as the - license granted to You under this License. - . - c) If any provision of this License is invalid or - unenforceable under applicable law, it shall not affect - the validity or enforceability of the remainder of the - terms of this License, and without further action by the - parties to this agreement, such provision shall be - reformed to the minimum extent necessary to make such - provision valid and enforceable. - . - d) No term or provision of this License shall be deemed - waived and no breach consented to unless such waiver or - consent shall be in writing and signed by the party to be - charged with such waiver or consent. - . - e) This License constitutes the entire agreement between - the parties with respect to the Work licensed here. There - are no understandings, agreements or representations with - respect to the Work not specified here. Licensor shall - not be bound by any additional provisions that may appear - in any communication from You. This License may not be - modified without the mutual written agreement of the - Licensor and You. - . - f) The rights granted under, and the subject matter - referenced, in this License were drafted utilizing the - terminology of the Berne Convention for the Protection of - Literary and Artistic Works (as amended on September 28, - 1979), the Rome Convention of 1961, the WIPO Copyright - Treaty of 1996, the WIPO Performances and Phonograms - Treaty of 1996 and the Universal Copyright Convention (as - revised on July 24, 1971). These rights and subject - matter take effect in the relevant jurisdiction in which - the License terms are sought to be enforced according to - the corresponding provisions of the implementation of - those treaty provisions in the applicable national law. - If the standard suite of rights granted under applicable - copyright law includes additional rights not granted - under this License, such additional rights are deemed to - be included in the License; this License is not intended - to restrict the license of any rights under applicable - law. diff --git a/doc/design/assistant/blog/day_45__long_polling/full.png b/doc/design/assistant/blog/day_45__long_polling/full.png new file mode 100644 index 0000000000000000000000000000000000000000..3963ae1dcb26d2590c08ab036d9ec68fe266bbe0 GIT binary patch literal 55185 zcmYg%1z1yW-1cZCML{|Qm6Glj>6Y#ikZwjdQc^1Ah@nV#cL~CP0i(McM%U8=XYR@^(Ip-JmbN}uq=DnIc0WKvj001CRRFKgG05DOj==zV)Q40@u3{TVo(?&{F z3IM1|#JjV=LT#gYXv)6>ln+zyqBiI)6*N@=0KeA&K*%Qm;0CoTWCs8MasdE)<^X`m zcL0FQHM3bm40QnegR;B~0QvXtM_WM>YR_X=1p^P%QsLjfT)%?^syRSWMoQafZhz6+ zSmy$Xb3EOY(MD{LBh(q1o5S2Fzr|cP5owrjU@*%?Ri9=cK;2R8VwVR>*-{!xiNPRC zXC|a3BgT{xAUhO+BOnp*2!BrF$ehz4iGYcw>|5b%;BZrb#CE{2u*&iYEJq-R{!tG7 zX)7~s4)YXcHlI3vH&@)JuS%~_Ukd5XLZ6ai5NKADY;>4L0{UlGyAxp8Rdr=aiSv1_yO}VgDB1zuK0>u{7pu5Zl%e;ma z7Pi<+bn}pU5>{aqK^*1Wks4Pooa84j8FJ%{bJ{)Yi%JxoX(BDGcnkt6{GSribR?U+ zOz9sYLlgQH%D>msydXcUkgEwY&VR4CqlEtVatfA};(#ZzsLm}FQt_8|?0$Hg;(;^- zYbd^u4b30v8HxaUPyO(`PXz*czr~0X1dtyxKPDeAj6r$ma7@V{5hWtYbRa~lJrfq9OhQ${lHKRo^m`*pjz|10uGc&lJBNE=(lZ-*8rHfkI?wHDE z7SSVQWID|m29!Jm8!t<-6u|g&u{?d#eyz)ompyKvijiSR8Hgl`-o*C{-8T1A{jP1Q zuWel5iK(&SWBT*GXWV`#1%avw`@h>31;?`ia_EoW;Dy2$8Rxb>n?O%4FEv?9YK6PGG>dY*5rs#3$ex-~m3;G;PeH~S@AY@q*G;BX zurxf~yqs6JlgzYP^@`J*3I5vXyF+tv|S zk+>%;ySJ5teW#`Q<<-hN`u=LU0MRQayHw+9Y!=$)Y{*ux-XXp$hWyh>5$LBnf4tDf zU}mqz^}^yPbB#+Zi%VOM z&p;1BrVc^Ah`}m4x-70flB*@c>z3QZfZ(ecWh3Q$@l)XbUfZoYo!QZx_o8~q5F3XO zUH$&@5rW3_A>4CjuVPy-S$E_>)U(`dnKnN$8%$_W>wW+5iBxs5*t@2)Gxf!b7a$NQ zZG2o6Iag2MGTOB)^7`+~bR0ZJD;=djCiVWNkayaZlXGLup4NYNe`m|^FC-~Q>#L$Y zl?7YsxGP3^l{qauIDAI$BXL)-=5p`R^SIoh{(l&0+#ePCTOiWE}#Y@@E#RKB2HgRZ@*$~!! ztrupI>n>{{^|K?}O#GBohP%@Gt?7e-AN7CzZ_}asYkU+0(zl*b%ya%n6(r`lJW?yK zcw%f+ri-Lp6z=Xk$v95MTu6N6iabwT&{!~{m70uUlMl3o^oY+7nX&IEH+~iyr|!fF zZhgkQ6#_kf7m!)L<)8|E{P-4!aNi-}*^XjOw@Y0*9gOoUDhMhfI1UoC+8Fdi6kk0p zQYmL)o3yVR9tQf57lM@X+&w%-Yf80WyX+M|`xiUD7N0N4Xlw{4@KVYV?lMK^m~WrA zX<{-)$EgfJD_67GEAA^_LiNut+J`FcPwwN8xBGDR;OD~1Lc#+CA}lMcWlK_4-)}N= zIft9|tG)z|_B5;|*IZ)*+}TW;bK5-?X()(Ci!33$HZaq+bZgH1-8^&Y+a7nh@awQ| zDnDCOlZ-k_u{0c4k04b*pD)b+Qbm=OIDku}#A>xnT2?CL{#sOwjokMIFQ?$DkLHee zR*ETmE_>iQB>wQMGdf`Od%^VSm*UJ!3Sw#_abhOK^UWqExZwy8Y4no39JjYrvK>Sh zyo?EWrKdG+uw3r6#|!#2F<<8(obQYL{aY$Dl%0{0VK^^;YnyB)&e8A1+m@-HxD-Ca zwzL2e5)yL!i~T?Tetw_D*hKi6;{LkaCv80-pwmOlfts33tNV@)AV!p;)LZRn;cRN> z{IE_WZfN{v{g*33qY>ugs^s%_r>>R_9}|$5X9#M&xqh%1m+*7H%)W1yak@M3hTySM z-CL-1B>rkq72D#yElZ=r{!-~pm-Wzb(c0FQ)9h(S^ZertIW@JXx@T=mOGew((-@i8 zNxd?%r==PjY+IiFBx=*{?t6NG$K5{uzK^NrC)lO_#y)rXW;db`=FeiVD(rjdUr~=y zSj7ugxfd^IV-r!Lw7a?XV)C^5sfmNlay>#4Jt3T)y)9E`ZS-B26l=K33$n7U+d&E{ z37dVtGe|cM0+dF^e%IA{x5N01F3>9HdVPX?Sv@hp2Bg*nZVN9MtO5}>`6eq_*V#N= z-P}w(S@tA0A3T1*Nyyd_YErOrkF?lO(lHJC*^s73z=-27(>Xm|ppeCp*MR=d5+@e_ z-}8&J%P@Ho%+5o=+s#rg@qY1I>-X@^m6T;hWI{ta0;I2n$)D5xk%01#;ELyC1x9+~Vdcz7C5<30z0V6?FQ3L_WGLTGy@*mX{W3t}F4wQ{ z67ceA(L0@NGW37m@a5(!U`79zhThbR(#`M0(wIN<=Yt;?(M4L2xL9}{c!Yb4CPEvaPSwYNG!RE;&je_I3 z;4@obGaL)cplQ0?%DR|$tisBAi}d-Xccv7IMEGsH?OhA8^LU#$Kxh>=%%- z`TlgnMiU8tuve>>VU68$SI?e#2*+L!bv%x4cMG43lqc6e{E%*#<<{hK*Vz|6tXIuL z^*wFLyzx7Dsz(0EKga)kZ{XU&a8i2gf6rKc;(#_J=i5^zrUqV{;RHI#pv7iM zn?awg?nKG&4}X#~G^%OEKOhbl{g(p~PV@B#S>8**NB0c{s#&ZlTm*`|9fj|$zR!RI zNpT}aZAak1{F+nurmpVpb?^=?HRNCsSrHpsGHT1r!C|LhN*VupeXj0jcq9wSz}VOa zK|zFt^x=G!hmr03FHupqL$=)i>_9YY)K<*%yhF3hRMR)zkYr^m*V8*SHF@Lr!ZQ-t zChesn2TpZ$nBn-{vbuwMRvYMK}+q(AO&kdlz3JYN=ceA)f>7t2>A zYf9Cal9Ks8VuZ_lyN=BW)>VV;pZYQQMHCU8nwlC12Zum}kDs5Myga10w^+MaZZP`q zd)UYq@x2+uDVXnHXvG3!(0^We!Eb*`*5L2)wuH@`A|$*|%Id|o*S`PO(rv+Xruj!* zXM4l?j3{q=Lod|2!u$2}-%p8XB~si|*M$IK^nKRVGc(_v5uQ#9Q;h+_fd|=eVCB$YH5mqr+Z^6k=r`qfA1#%hd|brfvO4|&lgJjd z9a&*Fs>i1iaD*h#WCw@^?;_i`uWlApjmjtOFK&jjay&)KOe^$QQ_^{c`ja>QNZ&qO zdvAkkSYGA5!i~_Zn5K&N18<|bzR~OWW@BYCNkxDlq)*L885kG{=_FcRSG!O@$f)-H zFEE5vpSmY}rM&Q)GUrNv*acE2AF842iwj}s2lhysx=f@@rmqy$km)GtMAet+C~f9J z39?q4P7iOhsYNn3wzjrbS62@Ymx^^th#BQ6IV)*Vh*#31|y=uWg*8-IOV+mxoyXFeXe=Pd4$tkNZR{pZ=4#J%mv52-Eg z&VnIIM9Nz)M|gTW7HFiBBSQ3wRm(%g)VgCj31i-m(jL?;o@8%F^KgC&u7 zyzyxNFh{``t~iYX{ym^v)^OoCrKe$=8pIB25RO)=W(8y@!6=E)fTryTS6%k6+Gveq zMO#K9h-Ik7gX&jbiKV#DEiRgn$d>75piY{S0^A+TLnYo4ZB{zEj?ByjIY)vNC1H;( z-lKMevu(+Hl-vIJ@#EC};F6|=^1I`KRtRovY>HA^&GxYP`HD1Y8NQkS5T{J zR9K042MXAe3^$z?&iRE(MQ3D3E#9>SQA_~vwrX3j)RRULLV$j%cvkvco`?3W7qOue z1>}SWw0}G*jfFMskBAn|@+&VaEVM}ki#Sm@@SPu$2H)%#Nh``*9`5G9pE#4VZ!<-r zj8k6b?*|nlJg9Bbk1f;jw+{|zXlMe@cSe_kk@tCNrqy7)T+O1-v9VM_@_m_)y170C zW=|#GS*V=PN4+R&mwMKIf1@3fYn<$pb{gH-l@Q)F5y8R!vZZzw z>$e)jZAg%Ms09F(Mo^tawuiHwHjh1HYZujjIU4&}!t`baLYFEWHHVM+#lsPjjWp#* ziEO`Hc+ZrwAX3+rWYpj&nKkqYGY0hQ5WYsr-*q=Ri;*#X_~5cPQS|fYPk_v*tKAuq z=)!Z48RAzWhCT}V1`%V(5t{e?0Jr%As~Xs;H_WwW=B)&vmM!<}hH`l%r6pdg zu#_lHYh!`q@qAT0Lc)4e=tuuK$2_@GpDZs@c)Ts|h`#$tcJ@>@cciE8M?%oemj&?! zQ}eRPhL1HAPS{hGY*Q&fwpr1)jvo!-a(64?L`(ih;xluTP9GAoh@mizVkXTl+T&N1q9$z@f%1pw zFf-(%tod=o5$VE#;c844zEV$Q-ae64`w}u4D~F*^BNRz&@YM!-(K<~3IeG`80&-$y!vkq*=4Lm*z8>(fnu#KYBk zV`Jk+Qb8mRzEdfU;*(D~T>-&n6%g7$&y%%RtSJK!$oAW{RUAmXokDdTK0u`n=}}aa z+J~Oi_Dw65K>)I*{MkK^5i`60@zA{>CMv3fLTU)c* zG^BKtem|eFYHJ@{oGjD+^_49%$na!+0+P)~Sql@ppNOJsLtGjifevwInmiz3u#N!h zOJ&XuA?R=Jw;CF5RuB#`nBvQ^yRf@Vhv^&|1Z7&|*M4pm6+U;zKv^ydCW^-=rnX}p>=MGj%kKNy?qI0(3QLE zVyy4K*UycHhQ{v_E4NJG=*;84S=C={{Zz1`y4>(^BnCqc`nmm9(%)g$sv;%*(}i3u zMWfe6{tt_!El+$UArIiN54ZeK*sUin|-D2D45I~JzJAIX)H@;PY zS(=bwKiT^AjrqtfIRz(fEB(7CzaQgs?qK~QEKOY{*D!~AzH^^e(gw}Z&jM&)ROr+)S>gnk*A0Z>%ta$_9*g(ZqC1qu* z?>?#+A#2~BMl4(}G2W{5335tno!mcZwmWiqc*HCq$ILanp z=oE_j921d z4XC=)6!}r%+@@&My$P}LWrB!^CPT<6o<6$$U<>10DX&Lnik!j*{x86joKo_Yx@W^C zo(=@`j1_|rSY1j9_1lViQ?pVSRoQf(w(}G>do=PsZDISNh`*Er7aOR%TWBu%7()^e zQnB^M7(GNf8z|Klgi(J>yH|0&~dwWaU&c1yzSuz4#1SU+DKAg^4-p=%NPb+ zIi8?}_+B(g0Ll-Mf#Vud9|plfd$dO!;SMv&v>er|9Hjp4*<6ze(5L>PB}lOpU)3|X z3zH$HamJ;7!)XbQcbTxelrDuBurl6fS7JyofNxsbb*{)3r9IrCfR{Br=j4liJ_pPFy)y`~M zgSEjyvwj1z{iYO>)xY$%{hjKIhg3f%0(;nvKJI-Y6eyXRmNsC|vOlmhVf8PwGVz8# z$sqOSOTS31t0Q*8P9-x@XM0W;gO5H^VR_6H?AH7ZU23HaLvVkfxLQ=WUaBl()ayr< z$>`U7kK7bTT6zKAx&~rAt$O4&Lim@Mr{{Tm#%!rKaGqk)+8cP+=*l(n@vEb=Hxm&Z zJh1;H-{X#}fx`CIySrFSK=8}ZJCPtULpriaLaz+@r0|rwDu~FXmSe>o0n$=0u%QYO z)minHh-_wI+liXTi>LaU&7#bZe`pn*Z4V#2vXve;j2@RkAG|87y8->3f+wd4Qe$R) z77LZZV8bn+RG&5-8U}i~c>sX~_Pcl?7B2zKGWFc|i1Q{WKt==b1<2k}TDouV1<+B%kBT zmJCrqjLe6m8bK+%@WMcI+-}7 zOAEg4nTAi5W$@XZW=@;>`cC1wgU)9QvV%4!(}IjI&(isW<0$$4ZW9h_%mNSQ^N@(O zGhTPPPqN5h}k{{p?Txu%x?=Z~FywnmU zQj;^y#Zon39-Y|;Se$<85>{Mier4W3Menv>x~<&Dlo#E;|4Et|o;ih|Oc`{NzE zaaFX{L`f<}OMs(Dru*@7c;Hdn@<-)_;2+~S{lV=LY)b(f*=KS7&R%^z0gHRt?LqBO zb3g~jZ5@5bkGan%Mmreo-eBeiZ`bcvxePsV1Ifg3cnzb)0e!hTY}+`8sYz^K3Z zP{63WdCi<$K8IVgXo%gRjo8U~_HK=blZb5m;f=-0=Aq_$&EB(C;1BByc&!x8Z@^Sb z4x{R}x#fWIT`AF%43KF<9kGGxAtD1NaXD7{#AY`27a5?gY2z|T#gP_VcUTS-;n*Y5 zFH;a`@K=6i>0#zxxl6swwm(^AXgMe5<8Z}ZtgC>ND4zk5tqWfi2}8w)gsm&}6W}es z(+Zs^T>Q@#9XbS~jB0u7MfXH&bBevZe4TwHg52rz*6u39sPVQnEd%T^IwlG?7JVBh zA@RseTJ;0f)*8QICF2*-CO*BV)GGAh2@~pPV`)I~#-V0Ty z4ZMAd=HufdBrJ^fM0RwxXLBGWPPc4N5?Gdx25=Z5+?PC#qH7Ocizz~3b>H(*$W*z> zd^1o#Na|-rA|mup+p}KD8`MzhVt>{FnyR|qyAXW55-Lv%s`b0r`~LlVhk(oXtC8@8 zWb@P9e&vo^uYnCn$JN>yq(BVKeD9eS@(7tKcJgQ9Iy+D#a83)LpI~-6)UX`f;0Rwf zl8+;A@;x&P$0i7Z9|$ge=Y@QILyk=i;f|9*ab7B~qY2tBrqUDByr=3M1@)%S*>)d4 zZt?eoAHvryc|Y2^Rx0H!+)d|8xVim&QO1!ed33O;16e3`K)E0a;JUh2HX&TTWoHxp zC@syW+GsdXO`uqCc#FpbpcAKt^Qju8r?uT?TV~;0WX%j?gv3d)<&lI~?Cuzt(P{D0 z;Kki!mJ66#A1{4c0?5f+iRr&SmJ1(BHu|&Vy;_v$CAm<425mz>ynb33^s{vwV?A&~ zFmibPb^NnX_I?ASw6e_8E;#$brZ{cTDm?qLB?hU;xNe*YJB}OtsKP}WbLYJ#%}5tp61J%GN)W#I6(z#MQ8koCaz znE}SDxobI2SK>x+($Nvz`m$sD`f9ii3%#>P86@X)UG5Sr7|7RE@uP2Lo!!y2*?A^8 z%@4ErrF9yz&U187xW>~L^w|F7+D?aKt};xfWHb|xS`erW*NTWl-fqE#Ipz8n@1rDz z8C6)UWltK!Z8%Dek$vNw^Ny>rdvB0aWg`A;XbR*$3Lwh4;$UqDz>DGPAIDFCeri!_ zLHxDFo3Amiib@p}6JaElfmA$bPhsnL5VOw^s@;Na%<|a}$51%jO zCblwb2sd7&tn^l7Vu}&55b5LS&SvdZOVPYIwMMxzkYk(rQB?z(0o~smUqkHiZmu5J zEftNNoF*t>KK|SMHFs6u%cd$YCeG$wv{B;FV)DvaF7z3e1_>qwlq_t~V6SkVWqTWeVze5Z<}Xh-q4`mY0+|^l&~PI0M$215GBUDpgWxj? zxhdPbwGvr%N&YgA?Pik}t`a-I%I2oQd+mufe*|5y;pLxo^@mgFXT_xaQj?a~Z{ED= z_+h>gh`7JJEncc}GpcuN4L)ZE5G_dBPZpE5`9qxMY7c+AS<<`-mC{@4FzfJM4!-SY z0$at46mE!>98FgoQMt6Ed>J3iTbX%R5)s?}U_Y8bGk<#l@9>3g{SL>5W!?5tRlqcu zsnfyCX-Wig;o7XkvZIqdI=@C6g@oth?5t*!c?)W)YudzGo4pR!4)?aq+2`t3@287|vXa`*?Ts0DR*l#%pG_9334!UZ9S8FuJdknwp!_ zhx4N%B2rRPChx-H+#4Hzes~SS&*ZJ$j5DHG--=;?+S(xQ7mt|kNAae+bjE_~T{4k9 zNCT!#V__^^+{!Rp-p%jkX_nLKtsdpB%V|vLUS2aEuT*mic{KO-Gy^kuI-|=&>0Eg1 zp|!)#<+hEj)n6(tu1bf=&39)8f4mTONP}pI4xM za{5+TR)bF+RO4vD_)GieKt`EUeM$_v+*_=-kHd*SQ+_aX;ensdls3N7Q#Z@dk&bsv z9r&m@1#BQhrRh*&n$NFsr$|-A3hS4mBPgkirkI3kTXP@f0OZg$nAupoE{<2Rev4FY zu})NisNL9G`uy}fb9bp7RRB{s(L*XGZH6;5(eH&6SzoKClMR-lQZZdj!hZQRMH;mj z#~!(Un?gCbeJZ1|QO0uH+^ukzdV$S;N#_mK_||VDXuj?l=>GA6f)yh^w z#MGswKt4$DXQ#u@TiN-McU2|zQ8NqaPh@d0Fv6Yo&jg4lGAOXH=V<{mck3SvR6Pd2 zb#)1BV!2m^koi19hv2<|u@a1ln^)KgRcUwaVd_FWL^L)&W#+)Ae1QiO0*!gg-jXhj z-@Pt2o3exXT@qqzl6Fhn%MMeT@O(7JnsttO)#ENs%3m7YM_iQnVz7+J=k84lJv|ZDvlZ>8 zVs>NQ;n;+Q@@sX2nx`kHPcbbK&f=-aM#sCW7&hHIzM#8L(6n)3Fw2`a)c(jFK=6^9 zB`w$D5nGZHlNcYz%fg=SXT4AwaOTG0;Z|<4IC5}&n6)XYMHGMvK7wSE`)Q`9t{z@) zZufie2(#ci+uO^7laoL}mj{QDPAQkRi<`fGEHZVA^FzCkFI_WaRj6L8pl||@%t`JU zrp3|2y@`l?2OoSgG(3`8+;8y2OPfW!Vf^pw7VbFx|f0kL7ODI}etk{w>TJ_1?-_6aw<5t1_3`42O^(yYdf9{}{;ms_=@ zutA>G!|ii2v`3CC1-z4LtwDYzgTilj_i#g|OVFaj4p$QR5B$%)zj0rFKvxh4?aww_ z;vuM7K40uz>v1+=*J~Ku>13Z&#x~gWl!l}0QtTC9eB%c24Ab&pu_oi1YM(X-0H!Ae zFP{}HD4IL?@f{@>(E4u<8B9Ka{E$rb9Lmgu!G~WTPN@V7XYgBJFt-NIrF=UrWh7PA z`-b^;b5XNkboUH~K4PLiYIn|B5z;6jzBL%=HbqtQv5gx#K7aO8kx14n=G^nEf0XBN zhYvZxsFxVV^BEEb}iNLgny*=EJEM0&Iuod>N#*O{g*Yjeipt z*r^;mi${N^5;jt~gS3lDC+|BVZB-NcqG!gCMY0fl zyUsWV{Z_+?B%@TLaP^Iq z&$LbR`l?I=OUcs*%#q*n*K@JAlhQvpKhR$8OfG>K@UM|CdxjC3kJ)H#B9$mI+#|eBDf_v z?q0ktrn+8pD2#=zV)j5Uc$4zA|D5D^9EtikyDKh%Nc>FS@&G;pszrs)zEw1 z023?IRWD23c`I4U2%xW{ZtGMr+RW{Aud^H>PDDsC$Z+my$Jakv;He z!qlGh!>_e^-CCNmDcq_32YE=v&2DyQS+)(EsO0%ZI6r2(aJ!U~z%SsBHj~lNe2+rz zitQ~!I{HhVx+dc8qpWtn(R2=0OLzSqF~^J+KLYt2#ukSbSNTLd2!_+t;@0bW-^!WN zui^91EmMn{1Ock?rQZ&1q5G4gRqIvG5aldFG`MZn-1KU}OmBtrWJ z+Sx1ig^j7GxHfx3B>jw-NU@GbNY55CKj2BNSi!n*c;~LKE@N~v`mfaOKkkvdxS3Kb z@nOs%4amXE^?n;)a0?SF`r9U5#CY+A7E`>3n^!Xv>jy-;B_s(pb+KetQ(`dd?ChMw z9Qo;!af{c``Abib%IimA85u@%n`{@#Q~A}^W7XA~!DgHQ>XK}slNVA?zJ2?KVz#5A zaJsoV?&~j61UPSYmPUaUNSSO{=qYE%kC1f`qkN)@zxz$GSup5iVm$cnME?EzAF)YY zknMc2cd_eNSZ0Au$8h9)yQP1C@g0gji^8W6K$J}{`<)GmTs){gEH=38tXLc#9)>ad z_+L|txbIk<20L|kqblWi=w`;6?x*LwUQTlabP_y_XVs6AQ9Zv3MPZSDUpEI^=3Ww#3a!Qdn33cw0rC+_2VXb&!Jh;iv^Ul#TG+nq*Uca5*Uj z)h++QH#h5&M0g&NE|#TP|1hmEYjm~H*PrPol61rs_S*mM+uKo5;j%rPg{to&&d)tF zj?m~|Lm!UdQTeb_?MaJVc~nXLOU6sLqleg<;0;+RC>2nwgiId;wukv5PhPhQ4wQl% z%W0U)f=Ojoc5jz_+_p*t#;*?x>g3fkgM;RzS@ZUxNTZ+AHLNKCmuHD^f(0ZyvSwSH z1`HBe@+->@(qC}t{6hH|aZMJRnVIPWMqFIbpo$rLlO?a7qO|9z_;`eRC!kzjhYq8R zw4`mT$)nTDv!IWM=gudi1deo^F3Zb7MwXNqkHUV8@0Oc&EY&%r*?_@^J`4$J6DJoZ z{ZQBuDj*X{21o|pXrXwFEl`0?5V9M2xI0%DI$3E0T@FUko;j#1UF<$<@P(R5N8$T> z96GqbvWya!Bttl8L=PA00=urF>I@g_GWTb|ZH%IxDs5ky1y6ny6xf(UQxnzG_YM!i zz=LAbiZm!Gm7o*(L`SfR$EuJTiEP5UiVN`;YR$rmz>L#a2p(aOUjcBXW_!2cQ%}oD zRd3Y{zuV3ZUTSn(M^TJ+1Z?*QF=|K zyi?c_a(}MQVWsbF#Jf?3+=!AEhu$9isXp{Zcj5aC^@oOl`7!Kzbq$LL#zYl>IVA>) zlB%;EUEAnSMyarXdnCK&3_zc_!t9Epi`Kit#TJycA@kLP?NQY|BgVj}4QSj7xxjoR&PXrM0?qtz>8O>)c zhN-Ko%efc(-|QGWPo<{n?--n1n_}mgg=CnFoVLQh@^dqv`Tp*F)XIFCLmy&6pEM`Y zV^BW13w*-{$#=RHZ*8RuJYKq*DaRqqHg0qNyYH1I1+04d4DUV=E*5WnNL8bES1rQH z8H_5?X%4tQh^i5F6kXrmaU z_=`^i^%Cw8iG!`_pp2xF_sk@?5g8d7*LlzcS5H)x@`HxP*CeGp-RzizcAI`Ad(cA@ zS^L%LSwX%k=bJa@r>7tG9xk=~eZV#bUPnvfS_NwJjdtBXLc>vHe~NHL>$i-g^`j%E zG-zHzn`L9Vf3sY+s;WuT>Gs!Oa<@LW_Dag-W-#t*xkw9?Xj6st?DDj~ukXqmc33$w zQf|^b!QwXFmuM-hK_U#kz3TSm0Z~8E@RbT#*ViD~hTW=g=zZ@NPFVLfW%$aMdx3h` zrhdDx#^FIIosT0fN+cB*|M!#Uf&43UYzp^`Is7J$SVEOc<*Wc2pE_f63erks^7>f% zEII+`n9(`RdVTUsqH`Y^IEK~A-Wh$|eqM)5`2A+5Z)61kIH@v`4mY~1^>g^>W$Ie! zBJPI-kVpD{_#6)z={euQHlIGt@+(tgNLfH$-OmTj*TZ31W@Wd{K#0H|ZyN3y9#vI} z(A4o-Y|V3a!_15%wnts#>agR>%Qatl*c(w1z=-VtiIR11O5Bu1St7OgT!{^gLR~%h zV=r%0(=18}MyU#FY5Ao-SV{`RyT-y|l*dQjz&VfF5beHa65#7|-aX~L%Y*q%GLoy? z>uDE&ITty)Q9X$eO4C?px+HOcn#k~&@Z$7bVCQ0U?)2_1tXp0nCBBCjr~El8Hcr}$i;JmcE4q1mLz}&HNLZIxOVyOu^$*v2Vl6Bz(kcpNf3C&W zLemx(7d=I?l9IIU?XB`Pi?H#@-*;!V|EEgDBqK|6OB6ZhC`u2!+8Qq+8)KY{GQf_+ z#%V>&@xhPfUcLo9856J?A5djV1YCW6ruikfa=%6w7u#$Q-%&@#Sy=oLhm%zJ_~amz%#rmjAfSsu zv{+lIO$x>pC&T(xF%JdYzb-Y=KN4wc2kOsMl<1|T+W%1s+1Xv4ZFibCX?b8_Vd0L5 zW{}Z1zdUc=2HUnRy=B^c{8!*gnbl_cFoYU7aJ9MW{?x8SF?4+BUj|$TjBHgc0Vq_F zz-vnY%+N87@<*A{SEams-g`AQ*0W$2>_`ihf~EVr05l;{QGPC|BJI7sy<*KG{9$ae zw%^^0Z92BhP&af~hCmEz+Fq_EiXlhk5!?ur0-H63Cu;d4YM7F#T`XW>@j^<9K?eS4 z@i3;`RGuq8j?()|=AUvf9hVaqpcJc=wU}knwg5;bNjVm@007=T!3>u&OC*JJ0UGi8 zP&55hw$|3hc3712GzC$g2DuCz*?;X1g$hbNrJg_bu+Dw9S+}zityGt z6jy;%>UZa-7k-;b245FN_<*Enlz{&vzGI~$;{OSqKk+gCe;E*>pB5NY zP$J)qX8c?)Sy@?ClTWWv#OdUO?7zcJ^L;WJjy|lP7Vv95{^_y#M4EB_r|Ta-VgKLR zv7#5+ZMR?kwS7BJ&;Px<(ynR|ci2e8z1AcF~stJet z_~L^o(_gFWquC~GL_c;M^n@m2m<60vF-55#&D9k_|9fwJS=*OQ=uaNWI&=coecxip z61{zF$q*vLO$hiS(@F5T5Q0q@hbH4o2grYPdHr^j@;y2>c}?g()iU!M03#0a=Clo; zMCjbf`X#dn;P5R=+-^ud4_Cgs3A8bP?0^mx6*FW0zh=U z#z}^@)<1#se4mpWR%aPx9?`-3f`e8E1R_58rbx?k)4EC%-@?c8m~{R+#0KZ&N& zziA`78eI=8(>t%GqaZPC)?RvK@ zzCi_^X?_na#Pj*U1-3-fMmd7Ae8 z?FZTw(C}AYo$Om}@nf<&KX)IW%^u7m9dq`Q`NySR?u#T+h9F1P%&aU2J2LPl#t~c~ zSG7=?7^0|d;@#2e)Di}B{lS$&O7c=7@byIkkMs2dqKdcI`6@_y61ZCp_-oUL0;)*z z5ykP>IA~O4LARqU>s|z47&4#yvIwmLcS zj?Q{I6~_UkB6-5s&{$5$Z6rZ3&D)vdX_Ry=`);!*^8A5j6z2*hSPVKu%#7m5!%Zr87-DU-+3AT;nw2xIc?yCNvTE)yQ#2lFq+d zVI3p!8GiDCWL;SL5oUX2T-*mbunt9!k5+l<%oKBPhz-@|@A9$dCfStJ3_ByRBFTy& z)7#rG)n(z4J|N}3y-b2gdfjbDj-S6rG|h#>e@6UX;jE+v#Q4MIEyae*7Km0x5GiEI zm{Yc{g5-ve-q>)}wiZz({0$=;&mC^iIs;E=0Hxxt1Ju<4LmdPvX9p08?78h(ODrX3 zk+-85pBpXHnE@u@$*H4LFZ0u%bCB5rwC~3b8^&M%LDO$%>8JLX%zp_;I*Jtx3~;hw z;BYZMKEafo$;F~m@7#>%3^F}y!;QDhCT`)oV#n)#NK5Uw%9>vC874WTMfSJc>LNj6 zw@Kab1)M+&+;h6y?p8)+qzZ~8ZwC%sc@M?Z`W?ev5(iCETlvnvB6)GJYi|(5BoJ3 zbUv$SX=;pUasGU`Zzqz$0KYb_QIhzxoe5-7zhySf&eTb}8>eb3*8G1@HP!AWBZM(v z5iQqxGXu|^j~`lVZcuN(*?OWutoKS76==1?-w~f3c7iO|4AX8{t5dj`o$``&?77&< z_fDOr>Ae9=XCl$3Tv}KCVy{97iQDrZ8DO{a!@Jc5AjszHi$@zBBJl1zqoqE)se}8A zx}z-&K+s($8$63xGP{pTknb+d#anX3jw56UFUrN2{$?90yN>?smK9sC{1W0u&UK-Oe9; zN;pqJ!M%X-tvWjx-aypZs-EqDIE$4mTS5%{x(~5&D3dJ{wP|^uSSMNm`bF_ZKzCu~ z!NP7nfd(3VNW3Rjd-PLv7cf^ye`DHutZe90IX|<8$5mZa&hLn>pF3F%}5hK#?O;Jy?qMZiMx3(yVw zwHIC{(BhIl=ddO<|Lo%uzBrk0?D>mDW_ZWL>*3DSh`Y6vu8_0+aSfxhW0}WxICoJh z^M3nMz^-R1B&4`dx7^VD)0;3%aQdF z3lK3+nBW_rtEzu@-$s?^{GL$vjBO*Mc*al18>DYE5efh78X9I>2DMX|eqlYyGDs(! z+ibrIg{i=(Tj7Qe)(T0wR>yO>D#k06(h}9g))g; zjZh;xhv>;ll!dKi=WS?aEV(6AyT)U5oYqkzr6Re?O(!MXlsR%UpCV(1NJ1eBz?08| zL(=Yk_CZB{Bgl4UZ3cb;%CNc=&R4DG_<#1F<(Wf@44%qc)`6GXeZ}(5+(?wz>3d*u z0jzihK)^UB&4zk1*&6%_Z}I_u_0xFrWSf0)wvQTcWvk6~6`#R(l=^U7qb9T7p@5*AFH7Whi3VV-=uAu#X7WFE|4=+Fop;pJsJ4A*m6~bum^A&2D=oKRk7|D2m3OO@ zG#f(C90Z@K^(eph1uwv3ZPLC=CEz)C=z;B=-M8W6hwY9)Hi`-O45KNw!X?Lvb5EZY zjQfGQk+085!c(5U`=VFXaDd9s#V6O5mrPb^NT0W{v_%vK8>6w;zU225zkKBx3#!aMRZYT4lP* zNn1QY26x+fp*G&X;&lK1**QQmFS-6XG)K?0VKod(BQ!{Hpqp8C5=#o+=zi9A5Ew#!~0dwTfy1$?Z9kY8&Q+;+OIJe?L# zjouT5wzlC0wwpz_a*Z}8mONoU%#3I;n@ zN2~%tyCuB~YKL@bbB&MP8OBN(Q3zv_O@msIf2Mv_BQkPwh_|Eeka@hO_RjRyWt3s` zT4sUsIslp`Dh>8~wUIbrI{x%B%c!41I(8L*lgEB#SYs&b;h{`CxWkyG8v)kmiFt+3 zXXHabrLdz$^L;c_)_!d<_jTD>C;}Y#;S%OqOLAi+G(n&9k!jO;=1C7?b zFh*Rx?={Dw$#W?aHKu^A&cvh)i_Ndn;`s5$=(FDA)&zo4HD0DO*r{ukF1Uc~ZG=b6 zcqULi+O10GVLlin!QO-OtEh{g9C%N?2EPf~iQqt=H?6nQ{FN_QEGi9HgY{vj#6C_Z z#Tus+NH6=5tFE&{LQ`;dA=xGR!=Jg~mi2_YDX$>-t14=*mojKE*m)RNl_Q30L z)N62N;4ghC=#lb*FE*jg`@%j56ks8Pi}lQt3ykS!xHLm3!R&}PP;ex}p$9`<8Ho6> z;R=E;2-tEmmVLX_S7W~t%4Ey4^2U0Edi`2I|J1usc7Aww*6@X8%tBj>&$fzh76M9)xa3x<9NZguDer zUVWPIyzM#9&VZn_o6_T7D{m)`o)&6bpSgehBhrnzv?4KaW&vF{k5D3UhihQneyB)4 zmt96!DAlp=trdQvV`tB+rjF8zL87t^hp81i20#1#_pgC9nI1yiLdbVX0 zogBn)F|D|h*&-XfG1V(eU|X@9D=(k-DYoN^P4KU4mXw}vJKgVno1_azZ6V00IQ%=z zrh~f@&YxY+n>JtTY*#yqhXFuHFa}C83sZtcc=81En4X}Y%^58PEIo6fH1(%$j+h&z z;AxNsa#)`J_|<_+A7!42fZq-##093Cys(9O_l;n{;Qr~~@zQ|G50Y82=#&M$glm{>cTrnmWBRDu8wRJiWUlC4dEHxGHm~n6L}gjlKGPPkaDuC`bSWP$>>lCAHDP^iHna{n9clM-o^}NYG-HX zcnLg%Clp9@r*8^V_Y}X&t+ejmQC3!_@Hq!kXq0Sof#2pa*W?|?e;FKHC;}-e!31SL z{vR8OKnfY76(almI}k(OAe&^!ztb@PrK}PndNA)ooAQ3(RBOMcV0G3(sP0yIclvpF zp{4kZv=UCxpQ>R0o`vK0smpI459ibSx3Lp6L4${%pzEM2F#_Fu8-rhh!otE*TB!fj z8-z}@&__g0fy$$w9)8^y@A16J{tkNSts>XgBB@Im9qivNF{WTP3nWN7>@HDsE_VbF zp=*#1vpG}!smT=G05||oHfEyD!hs@&`TKY4zX@MplKg)3m2e8y|68Tn90K6s(x-9e zC0(z6C7Y!r72LggRimvH+*?(BYfLarJr+hi%pXE4hUYsSAuytspV2AF_uQX%EATEk zfu_e-I_25ubNfwH;ZhS5U4DUfokmZ~x|=6k`#d#^u@WlLjl=Y<#cIW}OAocl^z{CU z;UCj%UcG6JPmataf?wOP<$!kc^dNw2ivr^lDnf`b!EF^ZUk9G>`uepYkl;2HrETpmH2HdsLRM zN`Ovu2MR%F$qD*ie8^i%t3W$Csfc&+QEb|HAG2fWv**eHD5+EOu@6H94zN0nhi)Bz zD71%Sa5`uGh8p$R6Hcv^t#ojuiR(5+fs1*ebqGh>d}!sXCv!dk*Ra|8GAd+bUK!n# zf_I^HbOCy{YrpRr)j0BDA@|k+cZ3eQg4X!Bn=cv2JEfbq3ApE+Ak?ebq6YiU=3Tn= ztP(UCYN>ugJ69{-$PL)Y)d6Yq_*!fz5Dr69xv-kAZY};HO_$*NbTgBiKkH^(lw&2m zs=pHx)#&j2cLYLql_~`6vH5%|ERKl<{of3jn`P#T(avYuAbx;V1Oa;1QupOBI>ZN) zdwx%ySod`NS)~aMe1=e*w)UspZC2_2yFIYfmHO(MDe^TnU4@6xk6KZCjWxiqOGZP* z0Bf9&M`#`T%%PjQ>emnLWcHhiL=>(srv zf;#P!C~U_tzZM8qCtCvaq6f=$RQO+6QT%k1_AFCEC~C9&;kQwG=?>8)br9#r-a*a8 zufh`0VQ17!GM;L3f%~;u@!WjIGw|1aOTt0CM9O`@hpvLU9vg3~Ix)CtE<#>y(KmpF zj;Jxa4kZjD`IJr^8QP7O4zHcyp$dzRbFpf;ybvQSqO_P^zCtv4MWh;PSy z?2F-hxI?a9n%h^)u-cW5gNLHl0b?gXPT2)*qkZx#y+ikpOu{`Juc7$j)`Z>q-lc1mwm1(nafQ zy5E5EEqf+B&|EguuW8?4(X9pRA^9G=ip$Q!#jDc&9&w4Iz*VV8{2Ez|1Ttp-?&Zy2 zm&BmKc(U&VF!Y;z71w-QWLu|O;sQMR`C?kDj6{qy^);ZiIx+c|)14#x2TmV(n$I&C zR*fkVUaq|#)88z;n#`A7b4HboQW@A(eByqe-#%0IgIST{g!@O9@hGuO$qKhwMAZw=wJ z_tVh+Q8h9Suw8|HukeTanlhdb$GnWrotx_jbkhr7zNk+0hi0EH70W4`vCnd525m(slN<$A}@=t?_Qv=^;~-j#k6mM;7|}9s@MQttXYQ&CYQnNVcN9` z{;Oh6;!ra1c@@XnX?47Q&@P6DcinAW8iTi~LsmKg4fe-&!_`G!{xw05;vVPk-&Zb| z|Aa;mmiS`uUZL!IsMS$QWHYR#BAz}G3c<)dm6Sa(9oGy~8g3jwh!3j}Q(#z-t({3y z>U_rUl4B7A>=H;s$bLW@vGY0IN^m5MWOHjbZld)7}o4yn%hWK^NAYBkv==44pQJ2j5uq+=}#PzJ~j^`C5h% zVAOG1I|!W9N>G+nL${JqbY*;3+RVGr=mtS|st5)(Ehy>(R3xe^%$5w6lQJDM z_Ey`5vJILFgyzV@&hAT1I&&@7qwCt!u>0sKpKBuY9qE*Gtk`?4qyDzdW+YZG;5&>G zxCu|>fDVamC2dcC#C3K{81H+tnx`Yeu{vT-x{qT$*5TzR>uo~@4ROt{vCh`Pi{bjU zf$Xy_8+VU?^89VW`T{dcYprXc&sBu2*`a9nwgd@FnF}-D#ZM~hbIqko_NSc zr%u0dXTr>XYsb2f_0C@yqs@HIRi8;IlQf>QNO;~ zF`0r8eRjB)!&Go!HGMi9@43ihu6EGm@@sQiUesPgcTA4Q(Xzs*zKxx*(@gStmG$vN z!go=F!$Qi2+lOf-K&OF@=F&;?o+No`ep2_)CSTFdcB7>1de4K8PaxrUEs4kYp}8uX}v=?v-9~`zo%omSg!zMy{&@wb0vyB8%6!*D>eS2XK1DSgx+4?dY<8y zIvSKboyemVUx!thw;kJpsm{FC-)!^gJmrq|d0C%Ip_@D71E(~_Jy&p7dv#|b7e52+ z@%LAmOV<`oBSX;UY*T;e_rN8?Ml*l}>NGt7W3mQ#quYi(RUq@T*AncKdLu55}K*>+qKG*hhgRm|4J<%1px<{K@IMG@rvVv}DTH|N8dM}qcHPl#N(gm8| z^Srze@ZE3Y5w}`ah0^{iT#E0NipP57E0;U+A8ZtCTd_6_uy{FhX==j5ELQE#H@}>h z4{44}TM@5&LNA0}A`d#&`hB@`<5 zKmiA$Rhv|38bD9vE4nq(_$qLrvSEsw&EEH!jY$3RsAD!;J-_?D3me4CUme{D2kIh< zE4zh0E1BsAPR56MeNbb}FOY61Z6mr5*!?fW+6jtt`Pv@K@Y~vY7$&BrMsEoJnd;zpoP&`QVrD0aDoN1c z&amrZ7#S08okM=DkfnR7Re9uhO6R&{XY$66q8|f{Hy8eAFqpSlHWG9v;U{z2+U>as z)mMG*_3^~E5NU(lUxwndR--wcfJ>c-dx7iTj}71S2Ho}<1a{bZL@615kcf-q*{3X3 z1FURC;s$kOk%r~zJlWgbLj3_*E+3n1EdIooA}&Kg!yNfhRricOsTv#}QUw`GUt`iej^cdf1w|}=OCuqY zklFH9C_rBxzmx8TkGGaP^smJ}*I}PdA?pVKtt;y0 zGWD}+-Ha&#!$G|ou%iaoQFg6(BYXNn27mUfc&gm+?S$()_ytovO7$A<#Mb|me}>)d8$wn|y;c?JFABTqE*ItB-vBsHmRH_Ogy{9ZZn#)0@nRgxb)IEo@GQ%6BR!@y#es8QX%C}5gwlE|)8zp=s!N`YWrK|r7Os;d7hmy^ z|EYpqT!pg5_NoMzorK^4tf>A(z}(>jC(Q{MQ-1iZwR-oIPCSSk_6sQ^KbdBjzbpWD zYG#cnZ$g?jfssmx9UXRn>qUGQVk(@U^F@eNMqQ0*AVDHR5YT%YU%dMKI2nNk#3>fN z{zO8C-t$@vz3&C^ACo@)R9xI=KTYb`PiAz8crU(y3Xs*_`iBWcy;nqhAKIhwK@_{5 z-G9URW4$PgYW@Rju3mlpf$?$^T{8U_C(J-)v7ab)5Z%kK@7Qhg%o-bO*hiPT?L|eu zR1=eakD%Ye5);*+m74OQAwFmLqL{IYEonS}E?DPwsa%dm@L|3#LEc%nb$1IkVHbin zP0P5RCnMIkF#$W3FQ1_zR6u24m<#p81_4Daj^Px=4XgMWU2;y{{`41xj#@#oHitIL z5mz-fWeKd6Z)+_|QySMs#r{$|OR#wSKvTXFSiZhhqkNxAec4mf5=LCHp*g`B{$e@u z_VE6qTGp@Bo^I}VI7JQfke527F-*hqcj^t$xxpV`l!#`U7e`vEH7D83nO0#Qpdh+vV|MizsVufb~ ziUj#g{@gM_u+;KTjFCd{FN|Sx3V_Sq_{wkJ*0a%0p{iL_ThSB;7wBEH;wR+>Y!%o4 zbe1TIZTK5yu=#Om2n3{hoOC6YjzL4bXlq0W>7aNSG*r1~df0%mZS0tmfS1%U3W;vC zxz>pMkzTGG%axaEKk`o|gpcqbLz4XG%=>wBo#z*apoq++F-*6PGp%#~TN*oe0JQ?p z7K-m5bio!KdD&iUr=VCTLzL_JxS(Gz(AvJ+i9D@o&Nl&sPWEGbQubjUpc0Jk0b4s$nZB`NrRM?HVc#)Snk7sLFJwL87s2(D+DYbngA!V+*NIHZ7MjWbt=* zW`7kV@%7GCzBHq?A7P(Gij_mrj zam<=4KR_S>cJJl$UQA>mcp*Yx*SpuRuJp(9z1&f2@weHwq5p+Z@NwY&0|petybWnO z6M7_0T4jcvePpn;=%$@bQ_u$KBA&r@O>^(?+T;rn#4Go) zqt6_miSgFk3(uz9d#2BBq1|oS3uQ2$*Y|$L#>WyzoLoY$l1>=Skfu|893o#P>s8FH z=H$kV){HwmMOon|8&~zg^t&1B{$!5Rv)CZp=0;Z}llm=uwr4SzB3~!`n83j2hiy9b zk;Jlr0{8=yP^UF7&W~zn5_q*MEr)IvjN@$Amw#g_XG1CyTzgX)!26aAsVm2I2r5JI z1riL;A|;n?e2_Du$$vo*g$T53v|p;g(Pw=sm~>UYqKBC!I7u?EnL<2i-frJuk^U23 zl$z`n$0;N2E|&DRJwD5<4@G@UXlHzDGdLur)Ks&PZ0rbs3o_*Uol&}a`vkML9*FjL zuEx6mSvE5fCIs@A9V^ry`o5WEd4`3{%31F%T!3nY(@Y%pG)EAkw=pcVxJTaE@@)Pt z|8m29fH~nlZg$Qaxbm&?_91u*S2fD??sLVC5dsUwxWV`eIFaP$?*D}}X64rsBx6s{ z1spEw$VjrnF>+6kIUO!oH*mfyzMHWlwn4^n%{xlqM8oh5@x9)OLWO#K;?3aM$~N13 z{Ai!HVkX|?vA`xh_T`4_x2#}YeOxW1bpZo_I+&Rt(+ zqH@OQme>)p)-^^JR1;g9* z>`IIboKi8P5{S5cT9^T%*-I7^5u*qkl078iWK^(Z@7K%T|Hd63!Lr>S5h9{P6LPXx z%E|s6J|F;+a2Cby-{sU(n!S;ROJdiKhtm4|pFl`R@bYX*+rGcl#1Z3TLHgsbrl*ik z%imH=ahCi3g**nbHB1{*ar$1$&~eZO1N5yfbmn{LkWC!Te6PE4gz@yzdIA^#pcqx( z{_$BXi|Y-%VkfmdK{pQcT?v<_NxJD}eEQiGX+Hta{IUT==8Tur1L5}vsBM+YC;hk1 zGDacMta;pT8#z55ell>a=tb`vriYtHuN~&;zovx66|8$!q}fN9DRoqVehdCKL(NI1lB8LFvIwVrE~%who&4^@3XTDrF*6D%QGJ% zxW&6OJ4M9;QG)Tp}A_?i~FCdZSNJs%dp(ssnMNNbX ziMAzXWX9|2-P{NZO=`J(^7DQ%NY6yx!)Ki)KC_c1*+TR=M0!}zbF27ETY=5?V!!nx zCW+;E$k1d)D78@%P`qZ1iOfp;xb5lW!Jw9vP8m1DtxwjNtP~0*t3eA54AFa^joiP$ znq?uA&q%S0IdpVbffs=5;+e=ssHe2N7>2#P8Ej~j{PqhJsl^Uyct{`f9tsg58?c`s z&Fw8)sgkmG6B0mD;ysl7ttpEVaMxV-Bf$YuQ4oQM-d$5fZLz+)*`ziiFDgJ{8H5F# zaJhRlWSWxZ0VSDnT+VzX4TaC!CDG#5Y8lkhEU~nvl=B%q$}fMBIzwxxw5+F&5MDvr z6v(d);&v~;oVxE6<+c+h5pRFynP@B5)1*)3KT>aAnrgOXI+$+8PY8VJiPhEZV5QMK zfmu6)z(&QBd~rw?g4n+^_c(w99tY`J)k`wn5M(X+8sT7ro z7#*d$?jfqSm{Lt*xjOc3lQgFeVgW^b$rp5);k~choLjFURW8tCd;a=z?C`rOoAV+^GLIGHa3J`m zg$zeIJhYuIZ7K)PFa>1|cJHMay9vy*naw7@iX@iipB3Osc$yx|NPV@j1Y6Vg6ilKQ zMxPITvC(Ia8*i(5`A%sI9xdATS%9;V~a^r1PY+{dkT6`0Yy`{s?nYgrXI#`8ekfrMi zm(v?xezYG)Dmy1tV5zM-qIgLQAF1M{a#3?t2XoaL$Pf3iUg;SM=@cKg^YyPvh+`b6b05qkl{>R6K0(e<8AI5^K-(UN3Xv=J3k&a`r@f&a&jKw6Y+}8p%A-UL z9gvhmwpg9Sq@dwbA%2w|BkcX))}nQNas&cobq0P=JmbuG3o6+{f_pcA`rS3o-h4H( zY~hl$uzy!2<1`+aI|wXXM99iMH5xUp4}Q=}H^ zELLW0FzfjZzq>?P=iX*yE0k3l1vA2lvdYB;pNgW$W1$@+Mkw16VwOWk=T=Q}XLyfx zlBTTX^0Z9=2uOra&NO0@A}xJ3B6vXxZ0fFC#o`HSL@lt9)G%(OaV>QtTty%X4*X2k zN_ZRD+W6GF&)&59w7FlhZ0;8}6>4K}63reod-uiK-FdFi!gaMj|L$^=M6TC9F>8XL z-c#`YY=3u)UPved5r6}IXr+h98UWrb1HyZAvcMP~Rn6=|Eqi-mi|SpYo^9p$T56Z1 z&f3Pz0>)vMEI#m0e_D=l{6qw=JV3AGUfIN{6RjXq2R6b*Zb&MwtwX)!45n*8oK#_^ zGL0>+P}a@cPkC#yt7i!|<%tLkS$^ljb%Z#-GCJzQM{Z2e?^3YQeQ#lmJyD)&vNYYw z(Ja1CV=;7KDp}S^V$EW^Jw|Hv_o%?;Zg{msM$jE`vKl;#IyP}dJ!V>Q*_Jg4%&F^c z>9VHcBrl3PN%O@+b+EF%&G&x4<=Ogn>@c`Lr6Au0??>bDuV1N+q>z5?^4)a_{EG>C zWb%|;4AqQ<6I)Q?{Y8*cF=Z$C3<*a`@hi8A`}u^kGvYo5+Fmh0V&7q}26nz%Ax%G< z_+l^u=I5iiEOM1ETp0egqs&{<-6pT)PLSwB4eP-c@tO-K$^)j(c5mC3x$yxJP(#E8 z@^7`DZmIPwyW>TED+2n)14b~knMkB)DT&9oK(aB-P=FeYUBU-6VGB0*p{{@z@CtD! zy<@Qr3$eN>I-8%*Gm=!yGf~A<{Y?m{?7&zHb(cw=v28pYy0gwf^ z`@+}cfM9B)p;ubgqSO*Ke{2G+ns1z zK248EwP5O@z6)d*l-*x$OcLi)1gkJFUlMXJ)>T=~MvD8t!#3=m__FmuOI{Zt5lCz@ zu$9@z+d%FoXI=V1>wR^~V&fmI=6?5HJdco{-$$ANyrFS7vdLmoCdS};zCTfHT7=lO z;C!#y>ol8}kW_#L+7)|x&Q8_}%_oO*%cgCzKM6~;>n z9w4s#VDqC=$xCXw(_-|J?**|mJ}4a2wa|H;ar%h>f6?LVx+Rlwq8Q4N(OrX<)i|k+ zRujw5#Z_x}&uud~)f0nni5<_a<2TtlZ7Rze{!@nxm7^LJU@x+ zabPuo33Eqqy;+5W_-d}z!Ki@EE@l>0v{N{yRAk@JU-G;b&b1Q%7iq8_?Rs*B<}L&S zk+m=|z5@Sm=7F~z7yJs}@Ze%e$8P|S=dxbRjC0s=Kf&8+-|?ux*4u&y=NPI0~>>jZ57!I~I*P-v8g; zJnR1mx?CDBn6hqt%609Ot{Jt_qVu6-ziU@NG&rZuoEeGp#F=^&67fCFn&aX<_`J1>fjC+wnJ+a&UC%`*N<0|#`rQ9Kc2gx=#)go06G zkPJOT3BD(6$uwR$fF~$jz-D3khELdF-9TanU=36b5F>Pe5#qEy{_tx>`y;{&e5E*A z?t@X)>`JdnuXQyGTdL(#db#b+Gko>)51a8yn09#&qQl!%9r|9in#Q6#o&879wJV93m;49V3yl8~p;}<}_RCP#NoSn@r6<79{bs zyGq=yT;4(s{J1NC@T9LqV|UyGy0et2Q+IH|5Qwr=|K#eIzap^ZskRLXZLNF^QFub4 zJ_@~x5F_umA9V!26YNV%u*7DUpHsVvAICsm4RIXd{v1BI%?n$UteP6Loz*4Z81lg0 zxI((+>AE9@K+5(-;?3`t!)iHN{yPK9x9GwW<+#BHxCO;hKUjaOD9v5kMTV}A#u6c< z!6@DZQmH3tC@UaQNE<^ zyQxP~^1vmBEwW?sLX0r>rFckkjq}@(mw!V;#sdOdOP&0)(A+$p>6@+X1&h1(VMv$K zi3oIc{wD1DdzUo9R92=YTJ*!bx%JvLTp4aga zq|AYw71^B)=x~R>zEP99{^LT8*Dgf%Dv_Jz32`q+dv#VJcc-fSPI@owH~wSzSMd>w z;USVjhgn6*(h$~vSt`#5VvGTu(puAa=(grd6spx$9zBTml0*SBbq5(RyOHS%j9HwS zJjAN~{L(}A{rMlWxOO;UFp}o2yJZyqZYVYwKdB%0hz5J|(((=*Dn`^h-wW&Hx72uG zljN2?$-x(RQLW;gUsk%#1itDyZzDkvGva$@UV%;7{Thu>T$+=UQ$YXc9882id|uQgw3d1tkuit;0RmEOQxq|9nooPF}*}~{Ua6Z3e8bJju#EZ zIg9#`k65hS{k<2)K?|Mqq%C$Q^6=4vQGYL8RzX2QN$ro26h>E97g;)6sQqfGhUO)C z><1Ny#>?zkid5MzzkUlO^(SIAb9cr)wXTu_dtnyFe69R%+*IkkHTX zTi1_&2t=p6f9qu-R07xko0j*zODVHqw+>Vq2~sJ-nuDKk7jn(oP>hoxyoQ#b4G;1W z0Wd&T%CNX0k=9b87#toGq!E_@n~0*(sx_V07>vDy)oMME-dfFt*O>mHHUZj*ULQs~ zJ2a4~m`oiFI_pl{p?3Ka*(aQ4E_8m{%WTQ!vSr`(jqnjAWQkrrr?&kmGz!2VSrciZ!IY&fV>`-%`eKTccHV1?g5LsWP~JNa;# zd4BEE_7k7`+l7ix-wL7WWi)bUDjcwI{t3w?%{ApR?{MrfakzuUHmc9sbiyh={lR4? z2l)dRV-12`cUoktNpza!-QF;S!BM`KuxV&*>yGTx((V=;sn{0TD3~3d%C0;ZolRNR z=^&rhLy1TRvdln%?9K)fEDqstK*reFu+2IS;uHpQvwQJ{}3~E(A~nM|k3VSMkY2s(8h0o7EfHHc~ivn9j_h16S-|@NGpC zcCA9~lZIo~2=PfV6?tjb=Z8tXe9W;V-eFy)k#c)bl{YBwP840(;&j^+UvXF_oV0LA zXB#MdW&C1-MvWol9w z9C#%?%!`~Q?v{oCZuRgOe?AbAb&oA$_QF1+?? zXTSiL$z{=d3=9|WA3^HR(V-`>=?VWT9|*#LySg^xLt%>(qJ|$&`5d8a=h-67mtIqF z&Nn%psZM^#%%+&VK^c3QqUy|{z(S3;b`Jsj|q}IXhTHpBS zR|j9ZNdLT!l&Agi)fPp#R-HU{1kv0i*NM-)-;Rr|j=k7q&KIqtwb;qEr7>Nx89%9K zNvNvpXzS%nua21>ORn2W-!eCgpTivN*lH(ViA#x7Z!*s5Qq9B;hQLfXRj!{05pwY; zp|!ISK-zR2OgiAyiAVKvUM7mlO8o4Xp@d=x~n?V*%Tb zr&Z*Z3!@bY)Je%ZgziE=t`h15NAdGbP~v9XUQpH~*(g-fDJlib+Ga9|^T5Xmp+UiP zxuG*cIj0aPb{-n1dlK?!&77-Sjak`OxfGbm3;w825QLxd$y1K|HpPi0bjc&@tJiT6 zXM9nQWJ1SLpMwK7Y8LgSRT-yw zcw=&x=xi0Dx!a8+viG70k7rBF0HzY8E(lfZIW4@`od^Y$X9Jc}N<6o5+;1^yUvS}% zi`dwUL$QX>lo9}~W%FKVAH~@=)N!I7wD#|GVO^ z4c3FFM=cYa11YcE%O<=blEfj64l)^(B(&+D8v@HbFco^KM^9HGbetVOTQBb$v=M!M zoTU2?KbT5gRi?T5a&X$gZq)KoRd3)#U)V3E>ek(?W!eVztY|J?m-AttJv?r36Aew# z%4lyEda|b>xqCQS&5nl1)qKJaLG_;h-A*<#J2$Cy zP?>TQ7iVX}dCXNFW=X>F)}QagR)^JpasM*y2t_jiZCSa%0sk6QR?a!AS$P#=an7JBixD%iZ{fAmxn zX$W10tK8sMD))A9X}i5YGfEZ>Md~iP*3&-O%jqElZk+b%gL3ROvx1k9T-%y!n6C{S zGs~5x%Xg~PLpXI?ZE+6dDXcE9dbBJXps-fyyi8n7-r>KRHXTcJ#s{Xn@^D#Pyv{~& zjA?uNI|Lj}wp_}N?LCGJUr(D{#-+11J``~#CUJ#BIBSJAI6~OSDhzJjM~?@TB(>A4 zo-_vCB`#Zq9K03!BwjvhePz*SA0c6+fqO7p)Wc6Y+~J0?^q2ZS?vzRkX3cA7k6O4d z4}5WWTr78piIxXGaHR25?A)wF0y(#nsC<|cboDlq=4c9pS_@~$BNj-_w}*bUS@t6Q zkjxp?cJJqk3SIx*AKrlbV|!@CKwxoJyEx0AU|%ICG#4-l>!Qa?>;FKz`1Bk9t)iGHHv7$ zH%syn#?pR0Cx_#I_;Jh-;qLb0>-l!Z(fY^|>M`<}nE4!^&@th7 z`Y-i$sq|b!rB&4MuzjM1OT|?4S3?KAOR*XE>oFv@aaT6IX_l8|R0X45kIBu%C{u2Z z;+o>s=e{z;HUi}PT_|2uV90kza9wn5J?Y5T<|bF9Pyx)+v{X+)FXQPJjF4^b`bLq$ z6T4l&)|4I~fng*X9@XifybQ0AYvF&O0^)S;Hj}S0!ldoV|8t>1F}tX#ta6O%%;Wrv zfT9S94IBVJkAvfFfAq0$Y{^a#85 z>0-eiQDM6nX8Q$ny)<1B6Hlv373E3uC6b9s+Nc!>HyR7eTD>Aet%1bku8^Y`)?%KL z&7rEUk0IeLW{~m)6@Hbd6`Nc8)$8ypD&FR;L58Sg`n-&x2nmnNMI)@@Zod`Z_J%~2 zqpj_w9r{wGL%C^e#li*Hm-vmO1~g$O2hDGe2RMPg9w{vr4PYHweA;<<$|)}{{eE+r z0i`BJobP^Sq$w;$j8Aqnq5XQ0xX`BVLAx>^+SJEFr!ANO7J2o>zVhG3Dugz~zq-l? z0II4V-U}(~K3=ISz{G?(9B4RMs0?@S5fB$YfeBymN#wdH9ixk;9GI7@VKe8w6Dc{@F7qVyqY7ysEDWzi9j(<#SXy| zF-IC45V?!Z52uW|(6E;()@G|HQ_hqz?HwAzReP);IaD%sp@-|bz&O0!~5>u{-ZIT#)YN>h_`I~Qj`pru*)&4cW*qJxT2;uqb;L!x8*-q;E<-zaFV+E zoZjhh&Cz*0yhCm|Fu?tN>ew~!+IFH(gYptD&C#3(ycstteX_fFp- z%aE=fDN_VVSHINgI8QP+7_Koc5GY;8*cn}}`i5y>NiTc!&^|LUws@DnRkJ1TNiZ_j zg18OEFt-cqPE2C)^XIYH*nLIL@(gjSJDvQwSaEVdzRYJ-&(lO=y~mAKI2$y}%N5g+ z!`icJx`HSBaD&RRN23oWvn}Z-Wvf>;Bg<3!NUv}AmXM{GTgS@8$)~bp>+!KM5Zw{L zfqXnNq!eG!0pLsl8t+tri>tGf>s}x2yW!kV)V}0x-sQFpr@|b`;pdw3q|x_y4w$T7 z6lHps`xiX=3Gh!pL#2O*gR}QE zEzp7Mg>qv!=TIF(NO1W2$e#pup;h1R8pxaj6;zVJT@$=IA}SCrLVVCX!O%$vJvYvuVd}JU)o)T-Z8;}3M{U}Y!6pQ zre;x=R&1MGU`DAwN=!F5SAGy@Fayn3;v5>8WA;>O%=9u?ySXMvDAjW#*a*-Eaaj)3 zYg}+@NOmfe)1QpnNYdPT?b96dvW-1y62Tp+G&?c^QLXCk`{jpSOiCt0@f~X#RIZSH z>jyhW^6MbGt^n^~TCMwuMZZ}5sC-^-pOlRNc!w`>Uy&%GUY+%S$?Zc4)nMx#W?QO1 zQ{D^?{8A9q_^w~Hg-qXJsVrR&Q1?CAEJ`fNW7(NEU|I?F;xt)+1N6&ke z&)Hm+HHyfnywZMP8azfB=~(gJ0$_2L^zS9tA?!WumR~yEapwt6iJk zDyCgKd-};`P4lJQy?-}+GPrl%;@09H?aK9%@R^X&({e#@SeS^nxI$B`jq%ERQg&lv zrsyu2j(fELmF<)d-mgFqGjr> zxL};2*7x@T;zP*}2wOTWH%%e^AV%!G0^-h?TxZZ)aB&MFCFBiC~hcyIH0>p}PvDiQN!rfPLp!Imw`jc!GbmVb~=b(pWQ+NwJ9!=GeB!0bNd>K?sx{Lah=NPmkL2t#;Xs*op*3z z>0DQtqxC)uRog3`ZCW80UMpOe=5=KT<*L?4GW-q91+ym)2hZ#TKLjrATJfN^`mtS_ zOeK8oVgp&c=9+d6jX(0Z)-E90PK-*O%ni`Ot~ zJ-+>uIysBiFXMsYVvU8o&Cn(Tphlx=H^a}n^?opWjCMJ(&M0Xb$kJM!d%PdNDf%L^ zq~0kX?|Vg9YAKW%p{S%GywvKq+KK6s(jA9LO{5TJAqoG*-7(0 zp5FdH?7ekRn^E^J8fXhOpg?hJgL`p@7J`-HR=l`taSK%(io1KUqQNQd?i$=e&|ra( zlYZxS&zvhWcg~%;f8Cp5@+M^a+IzpxyPmbzvi5%X-A}=LD&@Mwbp^`j9hh((oj%6> zIC;@ajr%VE@WNUYLVMrFAK!x)5 zYiBWKKTBa}G3db;0)htcK2uRpjiSgA%6diWFT!D*7G;cb7^9P%oca>LBvUmgN@9Cx zPj|fZ;*YaQNwp<9$2l3>vEt$+s3ROA3cnX9c}p?vyhlDIo(povxgB}P}iPSqNaMIvRBdYwQnh|S>MsFc3tm^ydfXrUmx_1 zs^E2jN1b*9W|m#dTOXuK%jo}|SdO%;lP%N3oAE04MLnwtS2jc~eO@0}4ULx3WD+w+(RqZ|+ zo4nH27B8t(0{v>ne)o=*3@)=;~B>b2A-xrI8(20c0N~Pj`iw0E@*HI)n5=t$Ma0Su?YsX zKYUXtocSho(jrJFLS-#NI?`5D1E)qP%dcEt!J2ucPxI&2+0_pPJ!|uxj2=FEBQ7uh zcQ1M#+uX{wJT%rUKhZScxl#!%`xWC8YWT)o|6MIa$M47e`IA<@ANR&UI+g_nrMlge+26q7I z-|Fwf>dsg}%k1f#8V^{8)SGcYq*huVUMKj?ppDr-ryiqE6FUU}a`X|*Sh_4ugEGsM znJa_eQVM@mg}1{NJFo9SxXz1};267AmPq48%xsGMGuGewmsBs`rCQ~Y&EDnj%-hDM za^r!Ii8(HKoGlgtba_X0RDzz%Ke_RbJ_vu*`iTF^?C+n&(agCKI+N9AH>JH<*_uS! zVH!`TaQiKm<+IIceT*jM=kfPC-S*Q}0|yTAqLcdhDML0BJd2ixf8Oe)+kY5t#iDNq z1Z5nYi3k*0IXi8scnoj!@Wg0aM_F3tKX3|0w|%5oOH9b5rBvquxaa~Bn3p({l>PZj z_WLwH4`xJutv%r1ce_~sribPF04T0}iia((O;YOnJ0B-}UNT`_;Bewd!~H70b4nH} zdG|qOyrX-hs}vvb_2tRoR(n8eqA|lngVVY)W>=9?pG)MvAa-7+Skf4;-&R6_&Tng8 z0mS=$oThrV$Z0Q}E~)sf*Bo*a>BVx^pJ(*i&ipN?ZDP+ebO&+Q)Q3DlY;aIpVfWtB$84p_j88022GX zzxHq%4Uy5IN+p~TGfyzD&qovYC2q2wjYU{sI`Y;48N2Qea>er;|e)b zPwYM%K}-roj)rDScibyPxs*w@@X7}YYr#)_0c;|2-6 zvD9KP?8M^G|MQqdW)n_g$xN2(qAKxz=D**}%4f19+$#1>x|YCWXOCExKA%K~Ny}*+ zeHpSEyS3;n6Ote06l?s$vA+~HfA$NxeYP=t&agzOw?rV#JJB4pyw2LJd76w>)^v#WNAk_>oh^XsS#gaOBI^a=-9KO5LhC zO2N76lr~IA4Zdpp+6Bo=(j7Ds4PWu|*Sg5KMqgR*^1T+qUgv%BAch5pP=O}fkTj%P z4)V5izG6)$$4=I0yxyj{_xL_&@3dG;?xshVGBVj7Ar0gS&b&oT z(P4j>Zzgi@I0${VPQ6gjj(kq2v&A{hfeo*1G1easfM@;RxOLvU4R1A<$sULG zryf@tU9ER;c}|x9>TG985?@rh4MW^Z)VK@;aFfyyxjKofwe9}>SshaYYN|SFNvhP{ ziM=%$mKqO43T-i!&y^4VVZz|S*mMW*V@B`g{04l{|GDls-yi5XHJgG5=p%sqt{CTMvvcbl_r zHl-ZbW#LnAw&4PqI3`bt!(4hs^N88+TUrycp;P)sR-v>DlXoulmS@7BJCjd|2-S6+ zLaBTL=9*=7U7~did7-!Kaa9}27lH!5!pL?F@$>mw=HNDc%)m8%wgdv{HRH&vBx@SB z`I}*8mT;vp@v9AK`&HVSIytilo*KR^AD2N7M>?h)jO#j$$;sW)XXQS@!*$!a;R(|b z&9rH#@$Xz*_IvK#NBDD!!O@cE-9O7LSjX7uMAj>c58#c=iezs6JE0aHNZ@mad7SX0A3Lqk@ zjr{BkuHGJO{21eCv)DJ0mF>C?6~ZAYEG*F0nvS5zV&N6f{%GolsJ)@vP6YX=h~&we zNCj*t7;S&~W=WQz{*9h3IvJ&ljz@^>@9&p1`lze#@P>}-6ElxyB<4>$?#U3wB&S(h z(3OU8Nt9m9FB7Vd67KU^MVv@jrt^s15-TBgt!shxIjmEKURQDxd*2I%lmt}L(cZt- ziA!3v!Ct|z_kY_^n@|yJkR1)L26yjJBQ9on zX0)XmMO?bI04JBOK12%JsqpJlnKLuME~*634KP|L+}j+V*8e#67^~-6RXAUrL62K5 zW-}^rim%ywdqFOSH&_AY^xSrJ;4pqu1hLd7)WQz5H}Utn^e}40wz)?0OXHpeixylk z!cLnz(QJDKrGCb)8xr@GZ+%h0N=@fpdAML)r)IbywCfu#flgSwm_J9q78~S(&Gu-@!=;Jk<|v$``W+kn>t7aQnT&3eqnY!D{&G?m`G7ZIy%` z{hqtJEgF*-MEC&k3RsAVx-UCwyFX?Vn572c6TSV&r&`%qM?H) zsX~vl+UR)v28rd*b;E_DorP05t{T|%MC;bZ05JT~>O(YKgJH^A#>+9JQ<3SCq% zzx{$t1T?BBSoD`S7@8<<37E38ka)JDl_6s-Py?%g z1HStQ)mNpUIqO}6q{;?SYTddw%v*rgx!Z?pY|Rx1g}TO1IhQZiVe9M;zNoy4OXzm0 z1Tp!6rCmV-E|=*Wz__1W46AQSVbYTaM|Ag)JUy;9&Ua%>ZB4Mo=6q(PHem6;`dk0E|%Y*c91Ps?@YvPmpJ zvM~oRx{Kh7PRtKkBV&%66;8>k2TCV%TV1#bZYRm2k!m>jw6HI$iDvvWCv-*4Q7)#5 zT#yY7QKn6(Wd=iQ8-7F3kiFv{bj+~!2pZR#5Qn8EtDR{uVazjT6Q3(^G&KhYw-6m= zl3FDdb&FQ7$>;O>tRlI&mYeo0B+|A_^d5OXc7}~yzB?Gx#1(Q{GEmd^Uu#mYYMSQ( zZaA=rULT=v-?Ud>Ze{f`;mzPvk_f}VTKqUae+w^+ECovHm|P(5f#{F#h@VI3R0T`i z-0FL(@6jF!C*S*`FBp@WeY`&qI9Ia(1=GsgtpNbQt8X|SHz&;x0=%>C@fr$y0%q!^p({6uMq6j)3pGb+32UquJW3&a#e7 zYIbuw;oH1zH6K7ncc!y=`=9+8k9EdU1JSAPQtVB{^$*!a7W8kx_$2b2hRthV1Uzcy zoFxyQ!$(YNx?h8Tr|rP3&to>EjMJ}F;kO*FLw+;+Xm@mKnDZTCBt4+5(zu!ZaWbEc=}KL}^SzY=+!h<@_O8tygJ6cvI79y?b=e8*OC+5L*;Gb*ypLX}uqA`WkS1rpTG5 z{glg5A$Nyq#KE=)&Q8!>ufqJu*=ZB-W=K)g?CpEEp)u4PTv4V#a+^xg{^{t-RNyRa zB*%?UW@lj_6&665*K$9f@1gOHUO*-0yMl7uWZ455?R1B|k2%EgqrNA)6s zPjN8qV4IkG^7bzwVomHA{K1->$*E}eqONjJ_cl7J!BMGKpvt#V4H<_186w);s&B1O zD-P zYK=a)aq!-&Q<{qxRs>$9U`)Nw#ZjIV<5inZbK7VrRcbY{>izGNZ&KG!?SDd>fcF7$ zo7r2(FDRJsM1Z{B$@}4BCSOLEwCIY6)tiKf zgYB0pf%h@<(HVDl7wd9yl@^G31JyvJUlkqu4dN=VZ#~}1$A=)m3Z4w8@JygvUat5$NcV=D1amHl(8`) zE8F-8XC{Ah`bUE0Xg%ud{t^VU{{fK7S*uUxb0bwxw| zEDy@pM6Wj-CB|k<`gC&%C+cVC!fZf>uO+T+WkKC5ZC}A+f5zvu$Fqs*LpLtNk}|z- zVxXX(?%Qec%%4gE)Q0cXNSK!<8orc&#m1kK*`viL9uAVn#*7J0&?++^py?sY-uz0Q zyY%n&D4|bFEAI%1>c1+Lyt(VBV0Vy$Lzr25iA77YMV$(Y?&9D!%Tb;9P#MU-n~L2w zsaJwcCbZ0zoxQ5Y%cC&BNCqup1Lbt zR?x$Di;Woo67Ctznc;g6070c0<<%_5{%#5JxTLdLtfTea1tVD%Bm<*24D^KzlD5?$ zTcnAyX-DH>Tcn3WAAfNHi=IA1*iJQhA-LUyo8MS1LNtgG@3s?^N2eo1c%JaQ+otK6 z;?zd9mR3^#Tb-pe@@N3y6M#k3Ih{v>wfN7xA&=|X^(jv*B|R~7G`AomA6HvB6Oo^+ zsK}$OOiSoGt@r-7`J|@&cbX2Sqw@_(XnlR3ksik30g+v7ZNfY44E$goIs54_w8^#i zqN{FLgF&Ag1d3m#!+i9f&>nnzecz2a1quKhBuM&vm(2fjV5W&27lzjJysl^{96-k# zQI}(*s@rnamUF|YY|F*9k3I~K>$`bn z#e~$?U}GoHvj6GMkIs^0lJ0h>uo-0kkd~2B&yr_1mo-Uh$r1rWU@X+1DLK$W{3g4L zlcy=#0AgXx<03^bXPFtHG4Az)zKFfxiMg@&r;fXU-tu-z87(zkal2#WTpEV%y-3B= ztwuKGf9Mqhgz#-2B#uWYWn~(z4R9eMlvKGn_@Ul4C4c^Km@WEeu+l^R5-rXey1F8} z^W#}4h#9A*A_@}7Wc5ieA6A^$^7-qyejo5&y30A|i`HVAN!b1o&D@_~o6qB$lK67! zRcxR+%=0fJp>ukCIwhlduEph6KKH0Vi2mube`5N&w~Sw^Lq`vEN>c{9w@nW87Uw_W z1Az>TT|Op>n}eoLnZ~?g%|KhIyr`jBCN1HMP6W{82#&bj0kIS69Px};&;yhi7PTj+obXFoi;Z#VX9(_88 zaj#$yV{_wf#?e6!^aEjx(GA{4h4J0U%gyd!5GYl}zxL{i5s#j^HzTcm?OkY_F^DVO z-xBO3TOf8%+0`ifxlle@Z&`i4hi~bMhV_0h(`Gu;K-gCO{qI&`3IN{sW_^+dgbRV3vj@8zd)8wIhvSIMB70{F^g_~!(Xq8kH_)DS7Q(` zcWLzLW4Pb{Nv-iSdYgOa+7>UEShF|0f%8#OFD9g6LU42uj6=4kBrc9oT364G)`1!d zZEk}iY_Zigeo4(Jr+J{K%}E5(uF3>ej8k0OOR{r!deBC#PPrld6*9+}3dU77z40rJ zeHkLhE3Qk?vRfF`huQCT9)-Gs>!zI~n>M9-736<#(|SZTc%Z(jyMj@DHyA*<0KPwg zg0@Dw=rZWgn_`8l*M03YtghgLaFFXivDFQ%I+7B`theDoEq$1ndZ?>Lq)ybULO{xy z;8vcs&O4_*o*J=$z@em~xwJxSum%fo)9M2OTwFpzK!}@d(2$8x-+rUJaq5nF1z-2M z)#M?9UL;ZYoWkq7q}@jP0xRd{&+wv=6P0>;IUOqH#OUFTTEXsu(c}y^yP3INz_NXl zZF1o%zZ^Qdf2>W!HM#J9hX;vkFt#nM5qQ+@WJ`X4yseANX!o9S3l0gHmRHR*HBRI8 zska@D2S@m+iAU0qtoj|(+pcn_kB%`%&WMjMTHoIs;6YX1PfrsFt!QZwIsK=jr$&*? zw zunq=U#f`goQLnIyfMC-N!U9PW$nLVpTyeqyL!2gq3Oi4(aX<#(d8oUvZ1*N%%@oI`NURF2#pD?H9({$hy4Cd?? zn21@&#cY3SROWp`r!+Z;c)@%{v-u@}d?@IL)?+>!t-i6S$6{)q*n1qIa%Mu#`r@xH zJh0dHKQ+(%@8P74r^V^=4|AoJ=r(jukI4~g0DSM_D*vN>5$xXWXuw+$Iy3ZRQa95M zu4xU?g*^|&!z=0{!0c~;=ia)r0f649W}_rD*x6=KMf|3;li+@h-5-@5_mYu*o(ZXk=3KZ+*)_lfh-G-yQL$%9aZ+o6a5@Y4fj zIyCm1*LRn(5jSa9_`HFcy0&jtkz-I|*U%8pUR7}5wbAB!*TqlubEjJZ6XhO^Pm8v= zi>m9Q(xu(~7woU#5vY3L=l?Miqyu(yQ z{)gYV64Do``cHLaYBL8js6AypLcUpw0V<2iG|Ed&!)Ui1>wQ{*ye!h6b#P{EfWh8I za|)m1in^p*<<4b6WwWr>S$oHj@q}>G^yZH264tqhs!&6FDb#qW6efBM)SdrVNWAT) zra@jOV9KE~<&BwDblTkP?B&&SOamsw{{Dx91fKdJxA71;Sb9k1`!*4-VNM%*FFUHn(b@{1QF zm@?m-U^a}kgU)*S{jEyz{MjeIJ?i7 zsZ9iwl!c%u%hr#0NtDoYDGtkvicRR`Rf7lsV3adqgYXRibtia83`_Ez5Cir0r{2~zi$VjCr+X$K%t;KS*)aexJqWvKT5)P#ae6~Oo${ai$WsfiHUv~@4x=AO)uR7Z1@R#=i~1)9|bx6YdyeY zL+(=$rO|*qIvpdrJu1xmTh5BDJTL&@(inq5XPy7aib37aKjJvLJo#5?&_m2jcY1Gg zMJN34>$Oj-u}3E0RXXMj<|p=E7~NRSlA&?q@2Go`C**)}++`=BCxDkBrOu!` zXv<(rjgD?!o^?h<=!~Gy<(nYB$Ri9bwIXzj3&>V+f-L=$iNu`+H9*Vvls>!J&ffl3 z?B5PS@gJq(8a3u4;H|8}zYBom^}j_9(E9!_0YHrqV|Dg_`yQ2V*D-|DM(cxH7rs5)rwtNM zZ0D4?R}1Ru>QEB@R>^;F+TILNcH!VTQO?9(Ej4O0tYE^1U$h)#lgc)B<;8(XhN{HO zkrTAH zR56_&O$3l{jlaA8F-4VimE@0FJboW|C*3n!ejkhZ5BJUKv$j-5slXiWE9te69GR6~QUlL{0pwC-%cQDsSj}kV7xuV2f)73B}1PwMIsEv3*sA~@w zM)}i7*W@(XK8=lWk!4a#9g(1!zYg+CfV&3RRR&oTE8TWdGD$d&ZXWx-+_NQ!h#91 z_P+e(=CO^&AYnb7!s}^TRjj0*gGYL8k=B?Xo3IO0HV0AfKkPJuv}pJjXiJ(dD}E8V z`BuplKF-DX3O*L#EgdZH;oBD8!yRWGn(MwEV%cxXa!dP~Dug2}aaS;GSP3zY(5Q{D zIs>rF>7MztzV;8v-TttcEO3Su+AfPZK?nqn4lW91ig`(c-03TvDUsib^a*4VhLkXp z0Od#AM3vliY5wd-R;ezNnWpcHUKr1a;T{}B0!P2+%+Md-I&}*`!c>@5tc&7=V=klz zA<8C!AL%O&s-P+q{JVsNuKxErJz}!TBcb1b?3H@Fm^uT&cZoElty)nxS7P*)DN_}B z$k)4* z`ph|8I5LsxnP)!T&zT~`0_c)M8cJnBwV}YpATw}Id%i|(*V4?s#+3(9aDtKq^E_U< zM(U;QLR=NvY}`%1_%NoJR=JipUp3*NIW8zzIfDZ@(-#KHueeSQ!5lhl25MZ{ehJYc zBMa^SQ(}9M+^wytW4~ARs7YTA?ALV*+!fm~A0dRIQ!a0%#Pqg)`|oC)Y+nF9xJ1aV zIN?`djfGcjBOt*YQyRojo zX-rtgF|LHzS&`I>n5|v3>K)Bz(AE(ASXb4^^6sK3wWPFd`QFq;(pZFt0Lh7uC7(RI7CtS%Ny{PS;{z5)ep&+ET;&OnP z&~>Yh7B!T|Et!1L8;kGvc;`i*RCf$>)FvFXrWJdbHY! zoWwlunUs|0zVUKaIa)O|uryVYu-{&9{ekZ#6n$TwnES0U*b6rcM=xIU7s^=u(y0b* zax3Sv&>U48T|Im@(bm=cjNq87%D+~%%-Z+OOt$1q8Rp*hLQ#R1qsi2R(IiB;H2gh- zZ@lZquc;=}8Ae9MjWTu-)+W;@15Y+CuMeU#lgp-j#=`mQxiW6pAX=b`G~xH|Ztu1n zI&3!s)&~P(i;VI-1|P*dEBf6R%HQ-e)G%b_d}=;Li0OXJF~(IWWQC+;sxh~jKit(z zCG3o!NrgOq(~hLDkQJ`KL<630YWw@&a+Lc%*BM{4Tmmv^efFGh2IA%fzQ! zze9idQ@*0OMJXzKXVRFCk;pcv^l!<^yIy*8yrbUar9RT5@)kjc{IJ|XXL0`7H7Dx8 zy!xZUzV6kRh1xcEVL!qMf8xJ$?>7h()rZ7j0v z8Lgcq5lgtu3f!H!JJV0e;CMDCdAc0eUQ$9r=;L|ZQDl&G6{0YjXD_>z_zhRa@3BtY z=ewC*{B6A9HPrA@k>p;{5^sY^UCQeIuKoGQv>3>s!km}$&P-ih8nvM5D*=$fb_xv*Y9 zn4Mxv*5?D4N|up>g&m)rNQ#(8E$sSNoW(ry8}&Av1aG46WkE$=O1GQuo0UKe(sLS4 zULG2&lhJeVTQ_LZWYpcn;^)fNTfHM!Wv7m{{;%=P%tPt&KpfR5n**CCYRzr|-={W7 zTD%gDr>gV}J(#63d&i&o5&d`ZFcFG3*=;vE zTF-^qiu0hYuaOnhqC#Qa#*0Q1-w1-DQu8?n8)~bt-qNuP>V8NU7n|{-mh|y=RUAFc z9{_61Y~846M1-_}r|E%FqDqP$!(S=rJ3V&{a_Ms;o%M1zE6S=xcA2I_biS%!yNgoy zk~>Cdh^o7<3Y#NCR!r*ITLSMRK#oI;dF%UKQp=V?Kk5J|xBvUhR4XN#CC@N{F{U@PO+KnJ zN(td%nv3*@L33#XJA_}W&}(0m>f8=V%npXw?bqur{QV>cQrbj)Vo6CUL z?J`_EfuICmok75tWP-9N>&8+qvj`#42i00h{U4MCW z$(2Kc^*}AWayP!U+4ESWar>{BCh2`~TyJFGxiORvUS%yx$7G{ty(Z&T7oy4VzV-<` zZQA1!>l2BWjEl^b&qS2XzNS6@`+|O#A3uIO4q4D_R1gzRFkJ__VFj_jpXn(?9yW$Q3)7g|l^gJJwO`60S=%kH=pU(??rxCPASyGr8hL>VIb5-d zmamrL4_6pJE>MZqESh3Xw|W&T=>yu!8Y0BPJrT9H{BCMv^ElXxj;A1+lgrM;I~Pukp3i02rR^J zG==&_uTbwlt=0rFXe*pqFe9*K+s5j;9aX$RAXebk&QEjYe^JC&*(zaoBV(Fd9i0L0 z8owf@BCwO3$2_zDHb_h|8Wv$uz9IX(`sTyqQFV;#C>yEki?ss>nbAr+!M2?75~r_4 zn1Z&$`?CkmxoPh*__yb1?p82gWMI9?N5wZMUX$_8V)q*R-1<86UW;tvJ&#FnpFXea z(|k+keb5$RV76Vt$O*$5wDqa^ZwwcDsKg1vS{m-StzwYR8;7YveXAPu~`pN7cH0WOTLVcoS{u+XqcWRk?* zhTN>~OU&QFhMYdTYJwQCW^Ll~O5+#nM-SN~bkvCAGTr;`;>C8-h(GMKNZX=P_#M^d z_Av9Ns828RcA%|ux%JU(b=Mc>B9F6$jSBWrPKC^}lLvqQqlu1eGjH=;yvy_1{((0z z&<5|Uxfk`Z4rU%6`_O3KCSs~T!Q6vty}eb=y2s9*YxXD!Pq##m7evj38-Q{VT<~PE zW$U)-0^=ew^x3b!+B}X+b0~XX)2T6)BjG*5iP7r?543MaL%Qi;09)Dl!DRqT7pajS z8c3MrHxO-aETVr6Qx#}pqws*%5sVR?&f-S!2F|XclG7Z;1%YAuI_=%*U` zne2p)e8WM(k4GlxNb;bxJ zE!*la`1WpvHiQ2x*z3j@mYuK>rOl!hq2`Kl*6|N(eR*R3Gfd%km8FQXBd*fwXkF%} zSO+;fP_y?rTpGF_5AnQS4xmC{f!CswGM+(QW;Sm}>SB>;4@yn6?tcbO`8l>z;BZcy zO5L#>A0``+8PSnhmekU+a-@Lem3&qg)(6h5pOdk2iJGJGz0a1{oP&lR{jiR;Dkz9> z!LU3Dp|y7}17=x|!oKG}*Nm;OeATK`)?52DT*UUy-6Z2__=44kDf@!5?7u|T?*%Ai z^NVXIb-X!x;wOesPXI~L^>Bp`y#=ac_xWm|US$lIa5oew1XWLl2>GTSmj!)m!_XTk z>|CQpzv5po0*SJ$#9OXxQbW|)Cz0(PKgZaj6sQ9X;zwBJpAK0m7)!&F5bMHhBl42A z3IoY;M3vWf7-qq{m4UJ6kSN9DAG6T8OU29>eey^|gw^i~+U)hZ1uI{b7;rk6k8T($ ziJWd+F>}65_;5ewXQ*F33McX#a$V1dN^k-vr^#!}y+o|V(-+rT)#-^!tNiqJ;a*xt zahK&=y+2g-g(aw{*Xnteo^wI^NDGJgN zxGX_Kr39LsL(hD18XcT;PXc+FL~+n=jRyQ?_LM~C%{O2tXE)A}NOxN*$JJlkqW7!M zjaA+4ox}bMp#P6agVibwLLh@GKXN&uR8kl@PwZ*zt>;!+1I|f5&pPuR$7~tU!cMb2 zyZX1zqKPUoz6B|bGWb_aR`+p(ZXCKCr-;lEK;RQ%&HJ-$9<-({ah!ausv=WiBp=;s z2LCEUE{SW}$TsmV7g0>?S!%=*^=Z?4LW;}-Nw+_2Jq!Ss9}|rU%+m7di6NzNhvy5ZpgdQ#MGQf}aHP2`UP#yI?GsqU6sUn9`k<%EG|7t9ktl@S^ zYw&APFJEVfdEp0M$!Ff)J}-ARw-)1kk5=%1u{r&t+yE(;3rFl%M3#^nuH^%%$JARx z53%2Gq*9^?9zbNfr?$dKl0qJ~R*JHb5k{}j(CawEG@T$qxgE6Jo+c350(C=`%2C_% z)_2$hqnoLet*@78Awu;FY(S@&$4Pv~>Bcb)R;30Eqqca@2cX@sgb=yDPp%;$8;Vu5 z5Kv>90T7{J@h#xbd@Bv-n(l#eRf5?+Bp$#<@bblfkodUw4(KqMHPTw8Ry>NL#86cT zlwJp%{HRB2pRV?K$D6xv22asrHZin+5k9tO9=YKXve}?ewkIZXVV9#GDZtWK1Vd~QneJJvg>{*wb1kwEhQ>89!Pis{mPU8| zwQQ7zlKCWa(#U{zeU7EGa*Un={a;E|$FN=yI>Xvkl%yeIZ2JxVU!9f1AvJ@mT+=bX zm}nkRU$@f;JmDkUmtLw+ZdW?>66&OF2T~)iDi4J+<5Fcrma@(zKBVy~Rq3C7PxKHF zaTaG52(E@+D|7c{@WQyDKLh6$ZKGrcd|+NHaS5ouo7*rGc#C71_-S5+31{tg-&06A zytBDPeJ0$Bd9~$}+)5&)PC$w~tFk1G=Z*to;`wcXG{K=hDK% z`-)cPH7E%KP&9o0;U>(1_M_>t`>o3<0G9#AqJkvSlpcMy*-6cwo%ql=>?{crox=|w zsN%B8VnX&XT&?siMXGq!pax46pIMDovJ^!sKhIqQn5R!SOO!(}e14GQk&pS5b*;p1 zg+t>|7+9wJPBC-DW>}$WKj6pF`SgKj(T3#^b!t~#h)rz5+8*P5=j=+_Ojs* zu396MR&@nD_H*{Otb4f)bkk<^ENS`5Y~nTHZtsI_KYRxkDiNhE!#VjU7i%(*UAmE^ z#Y2o?we6BneE3J%?*ABbyBGNARsw!g8JZ+gWu>#Jlom9=cMKoVk>nTjM7$|v=+m<{1*2Dz5gA8VeQAXddc~k{&bQ6kmKF?$@KL%xRPw7F~tMtl|ndod;6Z$e9cq4 zCdYp6ttA&_K@?Lmw~DH&BO~Eqyh)1RXH$h;kNDAz+JjPoDybQP41Gk_lABTE^2+Ia zVg-)NvuR)Pt{ktq=(PN~m_$20w;YyGomR_uMz*<>9KSo%@1phKlQWF}Bw{0Zm$@ zwcll&z%@Hf|SW!pK%77mN~ zEt^@)s*2~T!xrxc2ExNc)tG3#jNAwF_YY9{SS~%2VHWwl>8dF?7v(ok)@Bc;$c8Vo zI$=`muhjRG#zC#aSs7Z#Dnv049hX>5K9gFrM5VoC3_aI8SY~bdg>O(nGu;+wBh~cl z4K|F$X{_;cg*y9;B2$qeA|~3;S8_>ND`@r#x7}^LcGFP9kvxmvW&+ZSEmvN@Wc~3fKCh!xaOS9} zx{hasI&FYmqN{#y&YZy!c8s`)OjV#w=*9>Z0$vj}^!gw`**Q)bq7`{met)B2Zc`FCo>}u6R(u^zqkNE zK!GZ8P%K^hcuyynq+bg1p%%N2#S~lydcCp{d0f8q$7^awO7f!5x`>ma>mM2NKt78L z>-QBZt47P>*Iw)rNxir>mj*Wx^j@z>ST#IkuYzRa;$2qIAZsQkMzxOfvrQ8Bug(ec z5PrBZTi@MnM$Fvs6aT@}8v~N#mjVLJ_+e!&Rs%0l@wWlnBaM|w?IxS9+R-S_!EBLe zgmM<9h`&M8b6(j0M>S%R%8`2m?ffqU%wv=h?Xgj32);=&8Kb=)@>nE+4U2^%%TzI$ zKfOJGnE-l+Ghb}mMx;rIqN8WtsT$p$_Yo}@Nz@a|Fw1Q zBF5w+|Anzy948=()&HuJud2F-#{QNv;O{FJN2fOoA=*oI*>`_k49+(h9Iuekpodl%)XD=%Px|HA|b`WCT~j7XY9E=-p}zS#pFd;o*D}{T$S$0^r)ArsnnQ>`9mT z`J^zr=+Jyul>!+E+U#F!zmu^@)}o8)7717^ssXtZlhl7Hja!08g@v63biKn6+d3l6%QMO(jK%lIzHWHA9K2`fXKh5VMt zkPwvW4Lkd63w3~}C~1Wq+Xn!MfsO5Vy9{PcJhiM@K#G0O+zY@SFWLooKe!hv{*wof z%542lYK*8|>R_vQjBd0#u6odnhLIosYi=n8VM_UbL~Q>r@WlTseEI)N#R6}| z0H0n}(~)$Qc~TiUPx_3+nKk5m+Z_#C0mja^b?Q|abpHbKivA(1BKsauJa5?PVJWqE zlVMNH$(}aictu-U~vw>GXPl2x305#(Oh=x4qi&f8b3HR(1PSMuC|Ahl&^RlL=aMaZPZebt#L?jP(t0M(>3uDSNwc`q zlE28UC84cw zYTf6liLVDQTRW<3?iL~h>@7da>8|<#g0MQDWrsV67*~$i4_z$|!?T3pb=%&pMW|?H zCe87mm^-I0drLiaB_uZ>%c_!7D&I=&M|wS>qio9g2V;Y%IZx5zjnsl?Nv%4ym8;EX z-=+wx>k;+ls6orh?ZeV5$vgc~Tq<4UQ`kB5ZlE_kn~)?8SL2YaZ}!Z2(_YoO!k@D? z!3>g7uR(3U-I>BJB^*%vpJLd_Mjg;i?(=r2>S4>Y^Q#%ZBu7a^2Qne2oRr(Jq04YP ze7ClId!UHSn#-?dPp#E!8~?m3g-?e5(A#UK(y*Sx1JjJ&-EwO-cr5CCTrpz?ebxwP~R!8ua zP3rEQcEZ0AhdEx{uO?cJ^6P40?tbU{zYCu2-aHj*)6=4JTPvOy|7E7jc`y>b%Q;-B zF>kxx1aC;#_{bDjvZ_P3ID;t;ANso!10Py%cBYgb;BTYKd3Q(3eiNvy)2`~8(0Mw$ z^H)v<8yhqR$~T|HH|aO>^Fa;Q>$aC1c5-LU1GW`J{ftE414MlrcGiE`du~BmAAi9F zE|~rj7xbk9IsbYrX>@S8s@#1)(OSsyf?DxT* z>}a*Vuhw&^vi|yMR)D9${v=+CSiNIi@=F7W#*!-JzEIN9s!prh(x#pt$YNrLgHW#? zy{)K3_DDO>XX1}35U7DVo$XE|MLtz3rO6`>4(;Dl?|R?vgdmahKh7VQg@%nhVD;Rt z@q?Y`k(Kk~X(mf2J9X7+P_v&F7Fb_dD9U(Ve5ng9w7ef2x@@Nwlt$Tzumkg+;}y(A zjqBh=Mm;FiscZ^>)i)p4WvxJoF5#}Oz{y_$o~k-)A2UXV+ALv9LrIXdLNnb*1v6EN zkeasE?VIEKPc4?#4gZFziM@FZwten&CKUm@c7F=^`?g2%?^_`b1JU!J!YS@o%Fuwe zMcwM#O>T(en}Y5EydmWwXN*HKTs*J9yY2cSI4d$wh@-9&d1O5#3)=c?ZE`$sMoGgg z#K8~uHO`s&4G~O!PFj^TI{a$^V|lzVi*A$hNxc%hCCEg{|?IRt~>!B_PPh zS6_WQE?ceaXtR)=T&eEM;-ahP5noNq{xm_ya7s!M_kzMayeTi3>L&DH44G&`*wDz^ z$LMX5az*%5c&v%;nDKb1*lNu|0?R+Q*R8BO5=YFdwRFJG(FbI(6~v8c6sC>yI6%09A8l z)VmqgeYU$A^Y0_`gR`68V>qVNs%gZodSy~_OwRxbp%cwFDSNc%Id_SbSb=I|C2hY0 zBpk9DANQ3XCM+S-7TK@Yf=AKDLEvdIdBM2XP&@C)=J_rNXuV7};xMI~t`30D=uzwM zYCfA(%u@4;1Iiz zsG&v;mWPw(72h_w+Z9qaUIE;hHfihI^|75A@$}0%ZGmXySb@7+sDCuS3^bg}_>N^~ z1=a9OnaxfaSdS7g?>TmnSDkuz`Q2-r7|T{T;4|&GM}7|n$RiEnh}f|oN?p>AM#U<_ z8^8z~9bLaw%X9U*=H!y09BC0&md#I87HvmAEEcbV918~5NwG{f^_!GIc|Lcb0QVDY zUL(f~4I1td)|~p1g+*I8Wzx}f>&uf=v~ZxJkT-Vaq>gpnN44dc67ytaFo{}}vt6lC zM)zEkg$UTb9p~QZkF}ODdyXd`4S89DXA;sQ95T5FTd$HppTs+FAHV!6)0rUkPP0dx z>nCv(o_jix=+_iR?|{o`HAK<2RNV*cJ{fmtx;aeHd5Pg`VciE_O?dop{_Ycds6Ho5 zCz*dm-(>R+E(p#n%-_uoE2_kA;jsLVIIOyu7>JYdL79-l+Jt^fw-KyUsn7@<*0om*gql?CD2>KkwmA=GEpQd-^~-6x z@YS6%E9=_eV`iZTE(TH2H@D*a0typ1MHBEb zynESHBe+h)_oO^qobPp?R%o67))A3D_5oR{y0Z;M$aH;3T z$gp`N)*g4uPf9U1`oS20Ay?bqx-Vt{fMO8@Ky?uicoG5>HZ8@#P)3)21jwsjI34~C z$pH%$Q1>sC|KD(F{~&De|89R5!})(``V91rSm3f^e_sP&npTPM(8MSznT)3-0#T=L zoJz0<+xx{OP{{-u8RJXaG2f#*ZK8p%;XR`g@IYeZ0{zGZ40Q*)xL<*~c|y;4o`!*U kGSF07n&ICB$kb>;OzM9Y*n3>!3kVnm!Y}#P`9@^@3Ik%-k^lez literal 0 HcmV?d00001 diff --git a/doc/design/assistant/blog/day_45__long_polling/phone.png b/doc/design/assistant/blog/day_45__long_polling/phone.png new file mode 100644 index 0000000000000000000000000000000000000000..389334d95a8f616818fdb63dd26c273331a689d1 GIT binary patch literal 41602 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 literal 0 HcmV?d00001 diff --git a/static/css/bootstrap-responsive.css b/static/css/bootstrap-responsive.css new file mode 100644 index 0000000000..0bc6de916b --- /dev/null +++ b/static/css/bootstrap-responsive.css @@ -0,0 +1,686 @@ +/*! + * Bootstrap Responsive v2.0.2 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ +.clearfix { + *zoom: 1; +} +.clearfix:before, +.clearfix:after { + display: table; + content: ""; +} +.clearfix:after { + clear: both; +} +.hide-text { + overflow: hidden; + text-indent: 100%; + white-space: nowrap; +} +.input-block-level { + display: block; + width: 100%; + min-height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; +} +.hidden { + display: none; + visibility: hidden; +} +.visible-phone { + display: none; +} +.visible-tablet { + display: none; +} +.visible-desktop { + display: block; +} +.hidden-phone { + display: block; +} +.hidden-tablet { + display: block; +} +.hidden-desktop { + display: none; +} +@media (max-width: 767px) { + .visible-phone { + display: block; + } + .hidden-phone { + display: none; + } + .hidden-desktop { + display: block; + } + .visible-desktop { + display: none; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .visible-tablet { + display: block; + } + .hidden-tablet { + display: none; + } + .hidden-desktop { + display: block; + } + .visible-desktop { + display: none; + } +} +@media (max-width: 480px) { + .nav-collapse { + -webkit-transform: translate3d(0, 0, 0); + } + .page-header h1 small { + display: block; + line-height: 18px; + } + input[type="checkbox"], + input[type="radio"] { + border: 1px solid #ccc; + } + .form-horizontal .control-group > label { + float: none; + width: auto; + padding-top: 0; + text-align: left; + } + .form-horizontal .controls { + margin-left: 0; + } + .form-horizontal .control-list { + padding-top: 0; + } + .form-horizontal .form-actions { + padding-left: 10px; + padding-right: 10px; + } + .modal { + position: absolute; + top: 10px; + left: 10px; + right: 10px; + width: auto; + margin: 0; + } + .modal.fade.in { + top: auto; + } + .modal-header .close { + padding: 10px; + margin: -10px; + } + .carousel-caption { + position: static; + } +} +@media (max-width: 767px) { + body { + padding-left: 20px; + padding-right: 20px; + } + .navbar-fixed-top { + margin-left: -20px; + margin-right: -20px; + } + .container { + width: auto; + } + .row-fluid { + width: 100%; + } + .row { + margin-left: 0; + } + .row > [class*="span"], + .row-fluid > [class*="span"] { + float: none; + display: block; + width: auto; + margin: 0; + } + .thumbnails [class*="span"] { + width: auto; + } + input[class*="span"], + select[class*="span"], + textarea[class*="span"], + .uneditable-input { + display: block; + width: 100%; + min-height: 28px; + /* Make inputs at least the height of their button counterpart */ + + /* Makes inputs behave like true block-level elements */ + + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + } + .input-prepend input[class*="span"], + .input-append input[class*="span"] { + width: auto; + } +} +@media (min-width: 768px) and (max-width: 979px) { + .row { + margin-left: -20px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 20px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 724px; + } + .span12 { + width: 724px; + } + .span11 { + width: 662px; + } + .span10 { + width: 600px; + } + .span9 { + width: 538px; + } + .span8 { + width: 476px; + } + .span7 { + width: 414px; + } + .span6 { + width: 352px; + } + .span5 { + width: 290px; + } + .span4 { + width: 228px; + } + .span3 { + width: 166px; + } + .span2 { + width: 104px; + } + .span1 { + width: 42px; + } + .offset12 { + margin-left: 764px; + } + .offset11 { + margin-left: 702px; + } + .offset10 { + margin-left: 640px; + } + .offset9 { + margin-left: 578px; + } + .offset8 { + margin-left: 516px; + } + .offset7 { + margin-left: 454px; + } + .offset6 { + margin-left: 392px; + } + .offset5 { + margin-left: 330px; + } + .offset4 { + margin-left: 268px; + } + .offset3 { + margin-left: 206px; + } + .offset2 { + margin-left: 144px; + } + .offset1 { + margin-left: 82px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.762430939%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid > .span12 { + width: 99.999999993%; + } + .row-fluid > .span11 { + width: 91.436464082%; + } + .row-fluid > .span10 { + width: 82.87292817100001%; + } + .row-fluid > .span9 { + width: 74.30939226%; + } + .row-fluid > .span8 { + width: 65.74585634900001%; + } + .row-fluid > .span7 { + width: 57.182320438000005%; + } + .row-fluid > .span6 { + width: 48.618784527%; + } + .row-fluid > .span5 { + width: 40.055248616%; + } + .row-fluid > .span4 { + width: 31.491712705%; + } + .row-fluid > .span3 { + width: 22.928176794%; + } + .row-fluid > .span2 { + width: 14.364640883%; + } + .row-fluid > .span1 { + width: 5.801104972%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 714px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 652px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 590px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 528px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 466px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 404px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 342px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 280px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 218px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 156px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 94px; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 32px; + } +} +@media (max-width: 979px) { + body { + padding-top: 0; + } + .navbar-fixed-top { + position: static; + margin-bottom: 18px; + } + .navbar-fixed-top .navbar-inner { + padding: 5px; + } + .navbar .container { + width: auto; + padding: 0; + } + .navbar .brand { + padding-left: 10px; + padding-right: 10px; + margin: 0 0 0 -5px; + } + .navbar .nav-collapse { + clear: left; + } + .navbar .nav { + float: none; + margin: 0 0 9px; + } + .navbar .nav > li { + float: none; + } + .navbar .nav > li > a { + margin-bottom: 2px; + } + .navbar .nav > .divider-vertical { + display: none; + } + .navbar .nav .nav-header { + color: #999999; + text-shadow: none; + } + .navbar .nav > li > a, + .navbar .dropdown-menu a { + padding: 6px 15px; + font-weight: bold; + color: #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + } + .navbar .dropdown-menu li + li a { + margin-bottom: 2px; + } + .navbar .nav > li > a:hover, + .navbar .dropdown-menu a:hover { + background-color: #222222; + } + .navbar .dropdown-menu { + position: static; + top: auto; + left: auto; + float: none; + display: block; + max-width: none; + margin: 0 15px; + padding: 0; + background-color: transparent; + border: none; + -webkit-border-radius: 0; + -moz-border-radius: 0; + border-radius: 0; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; + } + .navbar .dropdown-menu:before, + .navbar .dropdown-menu:after { + display: none; + } + .navbar .dropdown-menu .divider { + display: none; + } + .navbar-form, + .navbar-search { + float: none; + padding: 9px 15px; + margin: 9px 0; + border-top: 1px solid #222222; + border-bottom: 1px solid #222222; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + } + .navbar .nav.pull-right { + float: none; + margin-left: 0; + } + .navbar-static .navbar-inner { + padding-left: 10px; + padding-right: 10px; + } + .btn-navbar { + display: block; + } + .nav-collapse { + overflow: hidden; + height: 0; + } +} +@media (min-width: 980px) { + .nav-collapse.collapse { + height: auto !important; + overflow: visible !important; + } +} +@media (min-width: 1200px) { + .row { + margin-left: -30px; + *zoom: 1; + } + .row:before, + .row:after { + display: table; + content: ""; + } + .row:after { + clear: both; + } + [class*="span"] { + float: left; + margin-left: 30px; + } + .container, + .navbar-fixed-top .container, + .navbar-fixed-bottom .container { + width: 1170px; + } + .span12 { + width: 1170px; + } + .span11 { + width: 1070px; + } + .span10 { + width: 970px; + } + .span9 { + width: 870px; + } + .span8 { + width: 770px; + } + .span7 { + width: 670px; + } + .span6 { + width: 570px; + } + .span5 { + width: 470px; + } + .span4 { + width: 370px; + } + .span3 { + width: 270px; + } + .span2 { + width: 170px; + } + .span1 { + width: 70px; + } + .offset12 { + margin-left: 1230px; + } + .offset11 { + margin-left: 1130px; + } + .offset10 { + margin-left: 1030px; + } + .offset9 { + margin-left: 930px; + } + .offset8 { + margin-left: 830px; + } + .offset7 { + margin-left: 730px; + } + .offset6 { + margin-left: 630px; + } + .offset5 { + margin-left: 530px; + } + .offset4 { + margin-left: 430px; + } + .offset3 { + margin-left: 330px; + } + .offset2 { + margin-left: 230px; + } + .offset1 { + margin-left: 130px; + } + .row-fluid { + width: 100%; + *zoom: 1; + } + .row-fluid:before, + .row-fluid:after { + display: table; + content: ""; + } + .row-fluid:after { + clear: both; + } + .row-fluid > [class*="span"] { + float: left; + margin-left: 2.564102564%; + } + .row-fluid > [class*="span"]:first-child { + margin-left: 0; + } + .row-fluid > .span12 { + width: 100%; + } + .row-fluid > .span11 { + width: 91.45299145300001%; + } + .row-fluid > .span10 { + width: 82.905982906%; + } + .row-fluid > .span9 { + width: 74.358974359%; + } + .row-fluid > .span8 { + width: 65.81196581200001%; + } + .row-fluid > .span7 { + width: 57.264957265%; + } + .row-fluid > .span6 { + width: 48.717948718%; + } + .row-fluid > .span5 { + width: 40.170940171000005%; + } + .row-fluid > .span4 { + width: 31.623931624%; + } + .row-fluid > .span3 { + width: 23.076923077%; + } + .row-fluid > .span2 { + width: 14.529914530000001%; + } + .row-fluid > .span1 { + width: 5.982905983%; + } + input, + textarea, + .uneditable-input { + margin-left: 0; + } + input.span12, textarea.span12, .uneditable-input.span12 { + width: 1160px; + } + input.span11, textarea.span11, .uneditable-input.span11 { + width: 1060px; + } + input.span10, textarea.span10, .uneditable-input.span10 { + width: 960px; + } + input.span9, textarea.span9, .uneditable-input.span9 { + width: 860px; + } + input.span8, textarea.span8, .uneditable-input.span8 { + width: 760px; + } + input.span7, textarea.span7, .uneditable-input.span7 { + width: 660px; + } + input.span6, textarea.span6, .uneditable-input.span6 { + width: 560px; + } + input.span5, textarea.span5, .uneditable-input.span5 { + width: 460px; + } + input.span4, textarea.span4, .uneditable-input.span4 { + width: 360px; + } + input.span3, textarea.span3, .uneditable-input.span3 { + width: 260px; + } + input.span2, textarea.span2, .uneditable-input.span2 { + width: 160px; + } + input.span1, textarea.span1, .uneditable-input.span1 { + width: 60px; + } + .thumbnails { + margin-left: -30px; + } + .thumbnails > li { + margin-left: 30px; + } +} diff --git a/static/bootstrap.css b/static/css/bootstrap.css similarity index 99% rename from static/bootstrap.css rename to static/css/bootstrap.css index 495188af7f..dee87331f3 100644 --- a/static/bootstrap.css +++ b/static/css/bootstrap.css @@ -1395,7 +1395,7 @@ table .span24 { height: 14px; line-height: 14px; vertical-align: text-top; - background-image: url("../img/glyphicons-halflings.png"); + background-image: url("/static/img/glyphicons-halflings.png"); background-position: 14px 14px; background-repeat: no-repeat; *margin-right: .3em; @@ -1405,7 +1405,7 @@ table .span24 { *margin-left: 0; } .icon-white { - background-image: url("../img/glyphicons-halflings-white.png"); + background-image: url("/static/img/glyphicons-halflings-white.png"); } .icon-glass { background-position: 0 0; diff --git a/static/glyphicons-halflings-white.png b/static/glyphicons-halflings-white.png deleted file mode 100644 index a20760bfde58d1c92cee95116059fba03c68d689..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4352 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 diff --git a/static/js/bootstrap-dropdown.js b/static/js/bootstrap-dropdown.js new file mode 100644 index 0000000000..2bf8858749 --- /dev/null +++ b/static/js/bootstrap-dropdown.js @@ -0,0 +1,92 @@ +/* ============================================================ + * bootstrap-dropdown.js v2.0.2 + * http://twitter.github.com/bootstrap/javascript.html#dropdowns + * ============================================================ + * Copyright 2012 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================ */ + + +!function( $ ){ + + "use strict" + + /* DROPDOWN CLASS DEFINITION + * ========================= */ + + var toggle = '[data-toggle="dropdown"]' + , Dropdown = function ( element ) { + var $el = $(element).on('click.dropdown.data-api', this.toggle) + $('html').on('click.dropdown.data-api', function () { + $el.parent().removeClass('open') + }) + } + + Dropdown.prototype = { + + constructor: Dropdown + + , toggle: function ( e ) { + var $this = $(this) + , selector = $this.attr('data-target') + , $parent + , isActive + + if (!selector) { + selector = $this.attr('href') + selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 + } + + $parent = $(selector) + $parent.length || ($parent = $this.parent()) + + isActive = $parent.hasClass('open') + + clearMenus() + !isActive && $parent.toggleClass('open') + + return false + } + + } + + function clearMenus() { + $(toggle).parent().removeClass('open') + } + + + /* DROPDOWN PLUGIN DEFINITION + * ========================== */ + + $.fn.dropdown = function ( option ) { + return this.each(function () { + var $this = $(this) + , data = $this.data('dropdown') + if (!data) $this.data('dropdown', (data = new Dropdown(this))) + if (typeof option == 'string') data[option].call($this) + }) + } + + $.fn.dropdown.Constructor = Dropdown + + + /* APPLY TO STANDARD DROPDOWN ELEMENTS + * =================================== */ + + $(function () { + $('html').on('click.dropdown.data-api', clearMenus) + $('body').on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) + }) + +}( window.jQuery ); diff --git a/templates/bootstrap.hamlet b/templates/bootstrap.hamlet new file mode 100644 index 0000000000..c03c459a64 --- /dev/null +++ b/templates/bootstrap.hamlet @@ -0,0 +1,52 @@ +$doctype 5 + + + #{baseTitle webapp} #{pageTitle page} + <link rel="icon" href=@{StaticR favicon_ico} type="image/x-icon"> + <meta name="viewport" content="width=device-width,initial-scale=1.0"> + <style type="text/css"> + body { + padding-top: 60px; + padding-bottom: 40px; + } + .sidebar-nav { + padding: 9px 0; + } + ^{pageHead page} + <body> + + <div class="navbar navbar-fixed-top"> + <div class="navbar-inner"> + <div class="container"> + <a class="brand" href="#"> + git-annex + <ul class="nav"> + <li class="active"> + <a href="#">Dashboard</a> + <li> + <a href="@{ConfigR}">Config</a> + <ul class="nav pull-right"> + <li class="dropdown" id="menu1"> + <a class="dropdown-toggle" data-toggle="dropdown" href="#menu1"> + Current Repository: #{baseTitle webapp} + <b class="caret"></b> + <ul class="dropdown-menu"> + <li><a href="#">#{baseTitle webapp}</a></li> + <li class="divider"></li> + <li><a href="#">Add new repository</a></li> + + <div class="container-fluid"> + <div class="row-fluid"> + <div class="span3"> + <div class="sidebar-nav"> + <div class="alert alert-info"> + <b>This is just a demo.</b> If this were not just a demo, + I'd not be filling this sidebar with silly alerts. + <div class="alert alert-success"> + <b>Well done!</b> + You successfully read this important alert message. + <div class="alert alert-error"> + <b>Whoops!</b> + Unable to connect to blah blah.. + <div class="span9"> + ^{pageBody page} diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet index bd16969f93..3701e3c42f 100644 --- a/templates/default-layout.hamlet +++ b/templates/default-layout.hamlet @@ -1,10 +1,3 @@ -$doctype 5 -<html> - <head> - <title>#{baseTitle webapp} #{pageTitle page} - <link rel="icon" href=@{StaticR favicon_ico} type="image/x-icon"> - ^{pageHead page} - <body> - $maybe msg <- mmsg - <div #message>#{msg} - ^{pageBody page} +$maybe msg <- mmsg + <div #message>#{msg} +^{widget} diff --git a/templates/longpolling.julius b/templates/longpolling.julius index 351f2f8c60..eff8d3f444 100644 --- a/templates/longpolling.julius +++ b/templates/longpolling.julius @@ -1,5 +1,5 @@ -// Uses long-polling to update a div with id=#{poll} +// Uses long-polling to update a div with id=#{updating} // The gethtml route should return a new div, with the same id. // // Maximum update frequency is controlled by #{startdelay} @@ -16,7 +16,7 @@ $.LongPoll = (function() { 'url': '@{gethtml}', 'dataType': 'html', 'success': function(data, status, jqxhr) { - $('##{poll}').replaceWith(data); + $('##{updating}').replaceWith(data); setTimeout($.LongPoll.send, #{delay}); numerrs=0; }, diff --git a/templates/status.hamlet b/templates/status.hamlet index 1f975b35f4..1da189d1f3 100644 --- a/templates/status.hamlet +++ b/templates/status.hamlet @@ -1,2 +1,26 @@ -<div id="#{poll}"> - polled at #{time} +<span id="#{updating}"> + <div class="hero-unit"> + <div class="row-fluid"> + <h3> + foo ← + <small>usb drive</small> + <small class="pull-right">40% of 10 mb</small> + <div class="progress progress-striped"> + <div class="bar" style="width: 40%;"> + <div class="row-fluid"> + <h3> + some_filenames_are_long_and_ugly_like_this_one.mp3 → + <small>Amazon S3</small> + <small class="pull-right">10% of 50 mb</small> + <div class="progress progress-striped"> + <div class="bar" style="width: 10%;"> + <div class="row-fluid"> + <h3> + bigfile ← + <small>usb drive</small> + <small class="pull-right">0% of 512 mb</small> + <div class="progress progress-striped"> + <div class="bar" style="width: 0%;"> + <footer> + <span> + polled at #{time}