From 99f421cf3db77845f79546a273de7eb3341a434d Mon Sep 17 00:00:00 2001 From: aoneil Date: Tue, 7 Aug 2007 22:43:16 +0000 Subject: [PATCH] Copied tutorial templates into installer git-svn-id: svn://svn.silverstripe.com/silverstripe/open/phpinstaller/trunk@39717 467b73ca-7a2a-4603-9d3b-597d59a354a9 --- tutorial/code/Page.php | 17 ++ tutorial/css/editor.css | 14 ++ tutorial/css/form.css | 64 ++++++ tutorial/css/layout.css | 287 ++++++++++++++++++++++++ tutorial/css/typography.css | 113 ++++++++++ tutorial/images/blueback.gif | Bin 0 -> 285 bytes tutorial/images/body_bg.gif | Bin 0 -> 51 bytes tutorial/images/menu1_left.gif | Bin 0 -> 312 bytes tutorial/images/menu1_left_on.gif | Bin 0 -> 446 bytes tutorial/images/menu1_right.gif | Bin 0 -> 1341 bytes tutorial/images/menu1_right_on.gif | Bin 0 -> 1854 bytes tutorial/images/menu2_arrow.gif | Bin 0 -> 117 bytes tutorial/images/ss_logo.gif | Bin 0 -> 556 bytes tutorial/images/ss_watermark.gif | Bin 0 -> 4227 bytes tutorial/images/treeicons/home-file.gif | Bin 0 -> 173 bytes tutorial/images/treeicons/news-file.gif | Bin 0 -> 176 bytes tutorial/images/welcome.png | Bin 0 -> 19020 bytes tutorial/templates/Page.ss | 26 +++ 18 files changed, 521 insertions(+) create mode 100644 tutorial/code/Page.php create mode 100644 tutorial/css/editor.css create mode 100644 tutorial/css/form.css create mode 100644 tutorial/css/layout.css create mode 100644 tutorial/css/typography.css create mode 100644 tutorial/images/blueback.gif create mode 100644 tutorial/images/body_bg.gif create mode 100644 tutorial/images/menu1_left.gif create mode 100644 tutorial/images/menu1_left_on.gif create mode 100644 tutorial/images/menu1_right.gif create mode 100644 tutorial/images/menu1_right_on.gif create mode 100644 tutorial/images/menu2_arrow.gif create mode 100644 tutorial/images/ss_logo.gif create mode 100644 tutorial/images/ss_watermark.gif create mode 100644 tutorial/images/treeicons/home-file.gif create mode 100644 tutorial/images/treeicons/news-file.gif create mode 100644 tutorial/images/welcome.png create mode 100644 tutorial/templates/Page.ss diff --git a/tutorial/code/Page.php b/tutorial/code/Page.php new file mode 100644 index 0000000..4f88a28 --- /dev/null +++ b/tutorial/code/Page.php @@ -0,0 +1,17 @@ + diff --git a/tutorial/css/editor.css b/tutorial/css/editor.css new file mode 100644 index 0000000..9fe6dc9 --- /dev/null +++ b/tutorial/css/editor.css @@ -0,0 +1,14 @@ +/** + * This support file is used to style the WYSIWYG editor in the CMS + */ + +@import "typography.css"; + +body.mceContentBody { + min-height: 200px; + font-size: 62.5%; +} +body.mceContentBody a.broken { + background-color: #FF7B71; + border: 1px red solid; +} diff --git a/tutorial/css/form.css b/tutorial/css/form.css new file mode 100644 index 0000000..c57567c --- /dev/null +++ b/tutorial/css/form.css @@ -0,0 +1,64 @@ +/* GENERIC FORM STYLING */ +#Content form { + width:378px; +} + #Content form fieldset { + border:0; + padding:12px; + } + #Content .message { + color:red; + background:#ddd; + border:1px solid #ccc; + padding:5px; + margin:5px; + } + #Content span.message { + width: 300px; + } + #Content form div { + margin-top:10px; + width:100%; + } + #Content form label { + font-size:1.1em; + color:#333; + } + #Content form label.left { + float:left; + width:12em; + } + #Content form label.FormHeading { + font-size:1.3em; + color:#ff7200; + font-weight:bold; + } + #Content form input.text, + #Content form textarea, + #Content form select { + width:200px; + color:#000; + background:#f8f8f8; + border:1px solid #aaa; + padding:3px; + } + + #Content form input.numeric { + width:20px; + background:#f0f0f0; + border:1px solid #aaa; + padding:3px; + color:#000; + margin-right:4px; + } + #Content form input.year { + width:35px; + } + #Content form p.Actions { + text-align:right; + padding:0 22px 15px 0; + } + #Content form p.Actions input { + padding:2px; + } + diff --git a/tutorial/css/layout.css b/tutorial/css/layout.css new file mode 100644 index 0000000..dda0219 --- /dev/null +++ b/tutorial/css/layout.css @@ -0,0 +1,287 @@ +/* Global Resetting */ +html{ + width: 100%; + height: 100%; + background:url(../images/body_bg.gif) repeat; +} +body { + width: 100%; + height: 100%; + font-size: 62.5%; + /* reset font-sizes to 1em == 10px */ +} +* { + font-size: 1em; + /* reset font-sizes to 1em == 10px */ + padding: 0; + margin: 0; + font-family:Verdana,Helvetica,sans-serif; + list-style:none; +} +a img{ + border:0; +} +.clear{ + clear:both; +} + +/* Layout CSS */ +#Main { + margin:20px auto; + width:900px; +} +#Header { + background:url(../images/blueback.gif) bottom left repeat-x; + border-left:1px solid #ccc; + border-right:1px solid #ccc; + clear:left; +} + #Header h1 { + color:#fff; + font-size:1.5em; + line-height:4.5em; + padding-left:20px; + } + #Menu1 { + padding:10px 50px 0; + } + #Menu1 li { + float:left; + margin-left:2px; + background:url(../images/menu1_right.gif) no-repeat right top; + } + #Menu1 li.current, + #Menu1 li.section { + background:url(../images/menu1_right_on.gif) no-repeat right top; + } + #Menu1 li a { + display:block; + color:#fff; + font-weight:bold; + font-size:1.1em; + text-decoration:none; + padding:5px 15px; + background:url(../images/menu1_left.gif) no-repeat left top; + } + #Menu1 li a:hover { + color:#d2ebff; + } + #Menu1 li.current a, + #Menu1 li.section a { + background:url(../images/menu1_left_on.gif) no-repeat left top; + color:#d2ebff; + } + +#ContentContainer { + background:#f5f5f5 url(../images/ss_watermark.gif) bottom left no-repeat; + padding-top:20px; + padding-bottom:20px; + overflow: auto; +} + +#Banner { + text-align: center; +} + +#Menu2 { + margin-left: 20px; + width: 17em; + float:left; + background:#f0f0f0; + border:1px solid #ddd; + padding:10px 10px 10px 10px; +} + #Menu2 li { + padding-left:15px; + background:url(../images/menu2_arrow.gif) no-repeat left center; + } + #Menu2 a { + color:#333; + font-weight:bold; + font-size:1.1em; + line-height:1.6em; + text-decoration:none; + } + #Menu2 a:hover { + text-decoration:underline; + } + #Menu2 li.current a, + #Menu2 li.section a { + color:#0083C8; + } + +#Content { + float: left; + margin: 0px 20px; + width:70%; +} + +div.breadcrumbs { + margin-bottom:10px; + font-size:1em; + color:#666; +} +div.breadcrumbs a { + text-decoration:none; +} + +#Footer { + background:#015581; + clear:both; + text-align:right; + padding-right:20px; + border:1px solid #ccc; + border-top:0; +} + #Footer span { + color:#ccc; + font-size:1.1em; + line-height:2em; + font-weight:bold; + padding-left:20px; + background:url(../images/ss_logo.gif) no-repeat; + } + #Footer a { + color:#fff; + } + #Footer a:hover { + text-decoration:none; + } + + +/* The rest of this file is for the second tutorial */ +#NewsList, +#StaffList { + background:#f0f0f0; + border:1px dotted #ccc; + padding:10px; +} + +#NewsList li, +#StaffList li { + margin: 0; + list-style-type: none; +} + #NewsList li.newsDateTitle span { + color:#666; + line-height:2em; + } + #NewsList li.newsDateTitle a { + font-size:1.3em; + font-weight:bold; + color:#0083C8; + text-decoration:none; + padding-left:20px; + background:url(../images/treeicons/news-file.gif) no-repeat left center; + } + #NewsList li.newsDateTitle a:hover { + border-bottom:1px dotted #0083C8; + } + + #NewsList li.newsSummary { + margin-bottom:20px; + } + #NewsList li.newsSummary span { + font-size:1.1em; + line-height:1.5em; + color:#333; + } + #NewsList li.newsSummary a.readMoreLink { + color:#0083C8; + text-decoration:none; + } + #NewsList li.newsSummary a.readMoreLink:hover { + border-bottom:1px dotted #0083C8; + } + +div.newsDetails { + margin-bottom:10px; +} + +div.newsDetails p { + color:#666; + margin:0; + font-size:1em; +} + +div.pageComments { + background:#f0f0f0; + border:1px dotted #ccc; + padding:10px; +} + +#StaffList .staffname { + clear: both; + padding-left: 60px; + height: 1.2em; +} + +#StaffList .staffphoto { + float: left; + margin-left: 3px; + margin-top: -1.2em; +} +#StaffList .staffphoto img { + border:1px solid #AAA; +} + +#StaffList .staffdescription { + margin-left: 60px; + margin-bottom:30px; +} + +#StaffPhoto { + float: left; + margin-right: 10px; +} + +#StaffPhoto img { + border:1px solid #AAA; +} + +#PageComments { + list-style:none; + background:#e9e9e9; + border:1px solid #ccc; + border-bottom:0; + padding:0; + margin:0; +} + #PageComments li { + list-style:none; + padding:5px; + margin:0; + font-size:1em; + border-bottom:1px dotted #bbb; + } + #PageComments li p span { + font-style:italic; + } + #PageComments a.deletelink { + font-weight:bold; + } + + +#PageNumbers { + font-weight:bold; + color:#333; + font-size:1.1em; + text-align:center; + padding:5px; + border:1px solid #ddd; + background:#e9e9e9; +} +#PageNumbers * { + padding:0 5px; + line-height:1.5em; +} +#PageNumbers a { + color:#0083C8; + text-decoration:none; +} + #PageNumbers a:hover { + text-decoration:underline; + } + + + diff --git a/tutorial/css/typography.css b/tutorial/css/typography.css new file mode 100644 index 0000000..21d401f --- /dev/null +++ b/tutorial/css/typography.css @@ -0,0 +1,113 @@ +/** + * This typography file is included in the WYSIWYG editor + */ +.typography * { + font-family:Verdana,Arial,sans-serif; + font-size:1em; +} +.typography blockquote { + margin-left:20px; +} +.typography hr { + padding:5px; +} +.typography p, +.typography ul li, +.typography ol li, +.typography a { + color:#333; + line-height:1.5em; + font-size:1.1em; +} +.typography p { + margin-bottom:20px; +} + + +/** CMS LIST STYLES **/ +.typography ul, +.typography ol { + margin-left:10px; + margin-bottom:20px; +} + .typography ul li, + .typography ol li { + margin:4px 10px; + line-height:1.4em; + } + .typography ul li { + list-style-type:disc; + } + .typography ol li { + list-style-type:decimal; + } + +/* HEADER STYLES */ + +.typography h1, +.typography h2, +.typography h3, +.typography h4 { + margin-bottom:14px; + color:#0083C8; +} +.typography h1, +.typography h4 { + font-weight:bold; +} +.typography h2, +.typography h3 { + font-weight:normal; +} + .typography h1 { + font-size:2.2em; + } + .typography h2 { + font-size:2.2em; + } + .typography h3 { + font-size:1.6em; + } + .typography h4 { + font-size:1.4em; + } + +/* LINK STYLES */ +.typography a { + color:#0083C8; + font-size:1em; + text-decoration:none; +} + .typography a:hover { + text-decoration:underline; + } + + +.typography table { + font-size:1.1em; +} + .typography table tr td { + padding:3px 5px; + } + + +/* WYSIWYG EDITOR ALIGNMENT CLASSES */ +.typography .left { + text-align:left; +} +.typography .center { + text-align:center; +} +.typography .right { + text-align:right; +} +.typography img.right { + float:right; +} +.typography img.left { + float:left; +} + +.typography p.MsoNormal, .typography p.MsoBodyText { + margin: 0; +} \ No newline at end of file diff --git a/tutorial/images/blueback.gif b/tutorial/images/blueback.gif new file mode 100644 index 0000000000000000000000000000000000000000..edc39b2b9cd4810a38923ea1b117f96d42977c64 GIT binary patch literal 285 zcmZ?wbhEHbWMoKTxXQr57~04f+shc;%~-aDv3LVx`aH&hHH=A98N-?xBik7hCo_h( zGG;Gf%v!`)wTrXoB4g7r#)=)xZKoOYS23o}Vyxc7Sa*Q2|N*CI?pl2 z^)n{V;OM@<*l>g~cNt^e3dZtnj8UD8X>*ubPcddL;Of1^(td_9ej;PdK8EHK3={yx zpDbYAIv^6{Ck8evhlTg%d2+Z)@OT3b4s zJ9_$iCw5Qkn>2I!)ETq8<}R4CX#U~}OO`KNIc3G_Rg>4xTDWGzymcFwuHCt1)3&X< xwr@VLchCNPyLTKvcW$l{?moEls6dgy8UPLbmqGvl literal 0 HcmV?d00001 diff --git a/tutorial/images/menu1_left_on.gif b/tutorial/images/menu1_left_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..cf3a3c7e3fdcdea3020884df51502854f36891d8 GIT binary patch literal 446 zcmZ?wbhEHb37z68Jz~k- zLJ6Icsl8HZy~2rI_wU~qP3o3N>EVy-m@;LGKzzrfNt32cn>Km!B{ohnDd_w1 z=FANnHZV{LDE?#to1_CGL4IOj zyY0|nP;3;dC(!5a%w;Jf5U~7Wg_V&~Ym1j`u1HkpjxUU}MW?h@?OotBeGct=!n8d);JB@*L#zcnMEHh@Yuq|R%SIk0=@!6S$FAKSNg`W}D4?gv<;pW2?xnBg*dS{)Kygcz=6;ctcP9c+BU@A^;C~2>{g9)iIgO z`uh5Yh6Xm9-PqX3;c#keYZ(j%nM|&!sbR5LO-)UBJf23Q5s5@Pold1vA3b_hU0qEe z5UQ%GN=r*sDixQ@C6P!aB_(Jy8i&In5C|+53x~rg6bc4|$;!%-%jFdn6;i1*FE6jG ztPF)hA(6=9;$ppC5BMMK{7xA|NG-VE32Q@)<1vQ zFnqKu@%`ff!Nh#$q)~KVV@(fwtILMcSzV!q(lAE9u zKV?SL+r2wGVb$14cOB)~@H|GnG#TkF7mp z`r9~a{-NREB9BO;ndWep#Hs#vu4bS*Bo}ms*Ss)HzrZy6lA4TshOqTtg|$s<6>WEP zQ__yqgf1^=PmBK*?_kCFXOBxVe!E^HCx;Qk1-y^Cac-hY=HG@Gi}eD7H-e7O^-T^l zFAa1G)>jk)tZ8u&|E;-gKRRomtIJ>jbZVT^;Mt)d)3qCR({M}g`RYs)tD~Td&8U(| z#P&G)3`%k$(qQ+yjoV`o+7%zaClhqh`--XUp48dg?|b8+IUHLd>G1;*U0vWiw0Sn) zZW;W#$aSslYA$da<2A;@;f4#w<*@r3+&iBgSBrj%W5oV>(Rg7Ne;Ks}T6%5{JXd}l zldaB*Zz->R63KJd;9wa(8Ukdr+_mcdGW|O4ff-Oui~}abXCs@^=Skb$#Pj4GzQ6^F zB?PiiyLFHABs!Fpy+8vetPzlB?*g@qx4-0Q>n0dtE%RkNP*;B~2XZ+-V&asJB@>Bt z?9L5dVq>=qa+AXb<-V;GAH0{qm1O{LHJ65my`zlAtjD)Z92DPbMP*ndRnHbkuD8!k zWgC)s$t+1y#rw_*Y6E4CN8{sqbH6KFd(VvR+Bm-j_UydX=_QQWuG7DD11&_b9=||K zPTsb&{$N2R-huW)bG4q-%S*0j3ES?bv-|E`%u6nIHAGTLo@7RHzk}@b9rA%x-Uq2Z zX^kUzxV)b#Js$DIt8bsZVDBKrq%UQ-d@Xueat{3|<>eAI|LMJ`+XU@kkiGT@7FtM% zc@-x#ZxIF40$eAOu9>G!da=$NQCcW&c}!X91YRneb*IDAhh%5c8qRm{S7x#-s(w(r zIasBq7PJQVNV0YQt8W}3vh+l9oTGO?F*K@uymsuq?*hYb-bcf}1X_R14T*{JQ@8G_ z@|)=}netP0sh#|lJwhm7A*2!buOx*^{@B26r-0Gn2x!2_*inLDNMWxO$W?mB4XJuK lI-_61t_&3Gawh|Yi@!P=p6f%RGkaD%D-C}om>B{5{srwxvDp9s literal 0 HcmV?d00001 diff --git a/tutorial/images/menu1_right_on.gif b/tutorial/images/menu1_right_on.gif new file mode 100644 index 0000000000000000000000000000000000000000..7048cac3724e2cf542f9dd97c32e012426f5d3d3 GIT binary patch literal 1854 zcmdUs`#Tc~1AsSau2Ct}k=!cGJT9dvC#2)jWv=0zrf*DgJ4dM_w-}qvWn(kuoKBc1 zm)VTiI3`p2m|28SE@Ly7NlV+IP&-fGfAPIPyg$Fs^LqJsLY>290199c003UiQVGu5 z9g0@}1+yzS8yJ)c^h*Kyr|MkCX~D4vBJ%ek@(d#JYCmH%ujTAVd5 z1;DE)VBmdFC|Wfn8yJ`Y3`ht1rvU@*1A|aN-{h>UETHc_jbC#1gy9ZH5wzjhz5mHQ z7*U`Xo)7d(HH^fUm6ZvF!XKgvOG`^}I9zdYadvigNl6KrOh%*8{&#UTH8sJ>`KA%s zI$>B6i8MSsTv=Hu5D2QPt1%c17K>HAnhB1^dEL&<$;qM7XmYt6kH-W4uQ2_h`oCVA z@BaP-pr%AwWuy1yU~##5`2~1FVG)s3OfD&$))c6-O)ot&;`-3&`@ZM|cf$F(ffO;5X>a=BnlYus=7{Ke$kcT>|dv%Rb>Z{H29) z^%rX0>uPVZb=W{_{b;RU^~LgwZ4GZ|KN;B68JfAnQVmo9)Q{EueMu+V8p8N2`V{+? zQan(8iOrblOqNS$rYIN(Rp`>Gy?c}5f!dJas4G!=+2TH;`K5}>9W4_6AC7UegB?$o zhNwr(L$QHNbI*-*LZV5*G{I{ol3#J9leIS0erI)7(8-nwxoE!5J~Ji^ud3qbO{jVf zI?4bS+MZLXomicG8Yg_!)wwB~dr@%I_ZjDle7Q->lku=au6_PGIao%0_I3NSd{sEq z-K|stK$deTRsHC>tc^cCLlgP+EO*dhgg>6 z#X#Z1twe#Wm#G;2*yXC+;|uM;m z()zk54bp~2mQ+fsDm-?g+~F|7P0bk5ACt)3kghgyLE!gH`ao>V?t_u26?(h$tyxn9 z&}6N3EI4khZ8D0s#+puAU1QH-!5`WeU{fY^waIrqY8^T(lgE<(f@K`Vc$}9ziMse>(GNz=j=vJN9nWv|XQ-$NNtL=o05wp7!>oJKQsBkk(f&{P&LB@>Cba$mI~Y zg6Dc-Mllv-zM~lQrosOihmWTH^ZLj=$j0P+M%V3eCo+BG-J1slhvE1>0c*-X4zf8D zF-l;KByY~N&W3M8J`3$+af-KDx{Tyu)WqPXh}bj@ohF6Yrp#*{{l*%j+%x{P@G#AG ztCu?U3!EfthP*4*ex1*bg|bsFfP$LMJcu zM8%FA2@yJq3Oy3Ou8$iO-QVa*7`iW;%}hvBeirdz8DHp?Mdzf_CfC&M4{17?JCq^c z%!LhMck;I_-B+2)jP0X<_2XRN038K-_?O~j2>Z=3W`@>Sx!hR22Pt8sys4({nB}?; z#4r=pcMucjEuYg#Oia*OQ%#MV?u%IvG&ty?CKB3uXoPs%D7{K8!JBIokbrY>q3WK# z`L~H?bIz#wqg{k{rym@eZ@|(;5@J7h#>f6Qe~xGgJLxtV^BMzh6&dg-FYN;w@lhp) zhexB^>|jKK)m?M#`OvmgBP2u;N6fFY>~WToVp4XHT`E@nQ|ry>Dsbc;iTZ_~7V*SF z#SwG8Lp(27OKvIWkcFcL<4WSlU)L&jEZFC*E{ekv^Bzx&On>+01?A&Q7_Is?NFVyo zBgK)m3K7ISihpgRn9_~EVHf5+7^MHSr0>8D2iK0vFegXyP-EmtbLT5w!GWX+n@FeK z9Rk;+z#<_B30;B0pcFD;=`!++p#7CSOI{!wi*RXz`dW?4^EM+R&Jo&&Og6|kB`4f1 Y20Co04+(UQm)QES-7qcSy@0d-0@qGjdH?_b literal 0 HcmV?d00001 diff --git a/tutorial/images/menu2_arrow.gif b/tutorial/images/menu2_arrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..42c722251f008a4f82d9972b0388781b605242b0 GIT binary patch literal 117 zcmV-*0E+)dNk%w1VF&;S0J9DNEOy5*gVt!7(Yns$jj-6~>h4RK=1GjwNP@+2q1I4` z#CNmrWvc8zkl*m|@Bjb+A^8LW000gEEC2ui00;mG000Cc(8)rib>$41L`uuDA&tQ> XAprnE$q0miC`zDR1+d|j6afG`$+j%H)d{Q%;Jd_E~iAw48iI zC2xwuj1%^g4=GQ&pg8G*(!>jPotw0ZXK5GDG?{kRe&!kbNe7IlpR;ORXFU0Y{DcPjs$Z9PT zBjLfu!fGQEBgkTA9}~gP%&DTr9Oj_G5E2t;z`+rv7-PrC&BMqWqu}f-?j8`M%wXlk z=BDi*%^WTlqp8d28WYOJz@#tW9V2bQU~AIE=cgsi9uut2Wa`w{EaajW^n>@6g7e`8 H4h+@+u1Bho literal 0 HcmV?d00001 diff --git a/tutorial/images/ss_watermark.gif b/tutorial/images/ss_watermark.gif new file mode 100644 index 0000000000000000000000000000000000000000..793317f3e440e7779dbbcbb94bbf577c57b160dc GIT binary patch literal 4227 zcmV-}5Pa`PNk%w1VWA^8LW000gEEC2ui0H^^O0RRO5(8)=wy*TU5yZ>M)j$~<` zXsWJk>%MR-&vb3yc&_h!@BhG{a7Zi~kI1BQ$!t2G(5Q4uty-_xY2lFVdcR;FVh~V- z&*-#TL|~8shQfMIuZIf*fB?WB5bS_~f=mep00D=I27`=^jynf=dwi1v2#=VVnkaaP zo{63V3!9{+rWOeUlX`rtlzykNvW{+_wxEXtv%9=&c&)3!zZHNxVOx3qsY+F zO9YX_l-91Su+rS!K%L9s&4`QM=I1u4*X!BB>z3&8@+`ID_T!@S`uiZi?(NwA3E0N3 zpuq_X42`?TFaVc>5cf5Z6tE(@e*+Rk+<1<_0EG?zLpC$;hoebo3shMIcyZ;PhbLq1 z8ndvbNKgah$lO`VV;+`31-k6RvuLJ-H*G3aq|>O=Kof_yoEmhPuBTY%cm%n$tH_*L z!=6b=RcKkMuC9t*i-l&=w_fA0ojb*+*{WyrX1heUZxf_m1H;Ybw{ViEcN3#k44|pu z$3LiX9W2-@U&xqu;9-onGv`W~L*sB;net$gqEpA9_Ve@N*HoXWo~@$5p9E^oa)eLe8w(^l@jKl}XprM8*>c?8<`8Gr$1#+`o*nucJ4hOuT~f%hE< zA!h3}s9|>xUO3l$6NXqJY#n+S7Ju!f*kFk!J|!J_Fj80@dM!S+po%!UM`MjVjVI%e zA~J>@k49yfWqVRi$@l=WApeq8p&x=s@x#wbV8fp%ighs02 zpN?`9iK1;LD%@q2b~C4>pt>hlr`@Q7>8Y9$M=7bi2wLZ>|FIekmzgeVYm|-3It!$* z_S)WVy7sars<#r0my*GrLVy8p`08x`cbpzW009M5TWtc^Vry-+(>jnVa?;f*uCbgU zOUkqbERaAX15i|7yOt!t?Qsp<7V5qInbA|a3NTwIvk1uhZC@T0o9ei*tttq$zqNL7 zVgno?aA7GuYq57=JyJj__Fnu6zy%Ck)EMMGZ1P#r22#Kn1{d3|0%)GpMzi?V?BAU# zkI}KsaD8+@$UKExa?1!)m9ZTJkbH8{Kt&9+NuPSmvtS0uM#mOAOMUat8-d95&|hOS zfWBI#;xN%*oAt8D=F~g&+qoG4lNw3WtTny^Fc7n)XfK_%HFKju0AhX@K4H5Fux*U1 za5rv~+-uZ*_vDHop!h5v{oVKf=6VDU#^Atd9`>G=TyBa-l&8*+0c4-StK+bb)PU)l z6g>Lve~+C89x8DzIA z3@I64{IF*Y@HL`e{p()U&~PLFMNlap*;^XCroav^rd|4Lf=>vzKoSaNek!w{1$*T{ z1gh|YFf`r)LP&*zdC-Ijv)UJ;g2Nt`kR3b5a(D12E8sJvPwb(P zkeA%&IPGa4eEMMjlmbnXLZc8#gnCp|WrP7IDH=9S-l2^XZ74}&q%cTi)K35G!aH9| zQ&9C%2tt#n$t+q0390m_DRt5vdr-`kE)AR~4XRF!>Ls4mU|Amx$vnd_)2P$%(#N}t_B)p4%C{>u1cY! zYYnU&LrMZf*;PbH1%qLMidV*V37Rp`WmKmMhN=qovNfYD4Q$xhC~h@Gp8%@4q_O+nG*$loaT8Pax84;~*XLtLq+p<8KG&L<00GnFaI!m}DKy6qn zG{bN%_qn|P{TgIbP}a3-)(h!0ZgFA9P8k#cx)uE_6lSU0@{(3lk38*1(Rv5hZdbd$ z^6d#w8r@*HH4Az=uX(}yHRO5#xO?=k2(Jm>_g-+i$*pfdntRgyD%imV6mJJ4tIF$k zA-e`H@bYAf0?tAh0DApGX!T2C{${V89$0`n`{)IzYB~er%%u*Qy9wxDTqma`rZ_a5vAV6LJY>`4cpa8+lY8KoUXN>7^p>Sp^f;Er; z9a93$J;k%DZ)ZT(u3)5`W`~S7fYAWk8VG7Gb=*!31mX&G(izb5XpzkXrCD0f3_gOX z9vl=qXF$nPLo!GGm1xS`mk0nBsJ1x(>it?<3I3q=?>vnIA3b{&tF}M^fXQqmKv3B0 zjJ6X}ebrrGAOT_ybYy5e>+6Lw3M|WYJBYo3fcjbsh{m_^1P%nt>haMU=%#4TU4(=e z{E3M@rLqg|?+QfRdoiUazq{R)Z%bk28D)5~YfSMRR9fLfW495U_;FoBnv^wvE4I7; z{p%tOU3n#!00CxQbQw_N-B3!Tle4UDU~ClB6>b7JBu>daH{A!}4&zNbP;L`*ya&$4 zxh>l@b!FzZ#2m-^#Z`WCuHzK_g{Au=!X z?SNhg;v;?Wu*`(IM-bVEUuo-MAb8jV%0ax=dT8>@2szz!1vPcV$f-Te(z~;`!pYdl{0Vr;;i4h)HbE!_jv#R6i7b( z64ZY%Kz??_0jo!1rssOWM`BR-eKG)lvu0=emrC)50|W?w@??H2P+elQYnA7Hmsfn; zcV$Z;fXUjnECaHV!5I1u%w1GeL8G#E??SOW)u zf&JrvFK~hP(mZANcZN1{Iz@k~vVtg(gRa&*1Q2RecmktmgsD@3HWy5j_Hj430g|loNUqz=r!Yd^Zqj<0OUmk#wUWW_E^$v4ey! z5O#FvD=-Lsz@&!`PK7$goXu_ayuZ4H;P?V5C`nJ2d8@bs zXDBY-Xe_eV1LD|NPlkv`W{$swMCk}C-8BU5s6-yXhhoKxK#*Uq*jU@hg|0?}lENEFAK zJIHx7z&lcTD#kfS--%bORhkus07B`U|0z}YIR*OJfhmA%mRSj7^L2jqp+}{gIgoZb zmXa3moa6HmFvEpWhMNF7ng}GJa8rBz@SqC{VtbZ%766q&wxcc+mrk&Jowbe_V54-& zEKK?lPRgRi6`+ClQtU}~?m3?%T3Zd81s>X2DvAM6Dx;|too%6{jf0~iV4%b)qzxsd zIS^(MXnsX_p<>!{G^$u(N+?d50bRD`=fq z8mWi1rIvJ{GBBWsnvMn#hl^yUs#B;SaHW1KsU>CqqB?-0O&N;*nW>~leaORYm$j#c zN~(W)NP+qUITop)Dgt@Rs-20ZRDb}z>Wu#QX_;B8w8}okngjEPrLqbFx#+7fW&pdo z1pjANraF^rx~;GTtam1r&l&=&ny3=zs-FX^#l@+VDXQF>tU+?CMXIBzxvUkiq0$^c!;c5cY7O?GFQTd8+>?(ze ziU9;hu2Y7vHh_-PIs|%Iu_h}>Uy5$W+LR!>l%DFbEy|aSr?9111buq4?%EC;`&3pb zq&vF-*SfGVNvRI|vWsT~^JuV23t}>hv?bgBkU!f2774R3#GE~4o*9<1G%#XIo0G|h zNB`=sQTqY*O0`@xl3ft3-BztQ5VjOcaxJ@A1)H-cM6V_=n?l<-a$~oMX|$o%v`@9N zZ>v*in+2%)wp#0hG@G|pTSHhYY-3vjkUF@mN3>R;rdw=>|EUE4IMOAmhAxr$)9Rq(LgMy67bw5DrUYUl;HOSy?l1XByUOVPM>@whBE zut{*Ut9wK6IlF>;vXRS;uWPnv#kNThx-R&+14g-l6umDXA z0M5_OC@U!c|NmxYW&i*HA^8LW000gEEC2ui01yBW000D9(8)=wm4`_o^gRZl34>RG ziXxKcgf5E$DCKD=OVh-2`|63E%=BvngE5hW!N?h(NaiE}L|7HZMT;6lBxX?x)rbHT bunDdBi71@IQ`n-7z`bB$y}_IHv?WWXYhQuB#6|%3#m$?=6585db?wXHky; literal 0 HcmV?d00001 diff --git a/tutorial/images/welcome.png b/tutorial/images/welcome.png new file mode 100644 index 0000000000000000000000000000000000000000..6cfe95f13bd0d6991461b5fac8f99069d10b3697 GIT binary patch literal 19020 zcmYg%Wmp?q*LH9zPVwS_7PsOK1%gX)cP&=j-5rX%YjM|L#i6)Ekm6e0-<)%v>$|=m z$t0PXJ$uPs>t6R>iBM9ILPsS=1pol((x5LY0068e^z%<-MCkjs5*P#M0mT8NFyf`?3@A{OQUK7p2=5(P^poHBnIPq`OcLIR#-I4>M7Hr78HPni)d5_Jh_ zm$D!>s4zTo^l8hh&}O0YZg1kXX;Emu>MFZo3JHvimIC5X=JZD^7bC-l1Pu-R+S+9n z2|xup0I-l7OevjSs9^y2z5)UaRA8iT0F3+WJ7fS@J`>FPA?ywFNGx3!#y=Pa?3}0U4Zogb8VFnI|8 z3S6`BF91t^K-H9bqy#{d74Y6%c7PYK!~|fK)-VSFYFhx{NvwDE0Aw@(t8#b<9RS`7 zU^q-o?G6Y|2fUa3t08d7P>r=u57kt9y+9j~S0X?MnaL4JLxY*@)1)*3!+S0xSfdOP z=01;fBKCmKn2@V+03a^`4=U}|i~A%-_2eX1Y%_)d(@_uN8XB}5>bMU*Y@J1o?G6%J(JE- z4M-ceY0|&nQO0qM{gM%V#a>JmA(lutNHg8b+7K7~%ylF}Qp%!!bG1}j^J zCOKd*_o=mF2s&Us8X@QOe(DTBffpS{#xdclAho6`E`+Fm?U^G|${_jdl%#}DH@gY|50U;8{z&BRrU;ScrJd7wwCS!F}RcMvJ zh-=lW;5s61Os4AG;Bf*Zz$jesZekQhWTGHVIZcHnP#MJs;AiX=6mAr_VCBA#R7qvB zjkN994+Dh8>}+A0AV%s1oH$$-EU$3!0d62pggE=hws=_Sx+2vXoEga(I~D3f#`4V1 zAY$sIkrh*$dL-T-j1&yRA-mbT{kt5yB)gPLl4CZ8Va}gM3hO0L})?eMp%<3S3)!!MKq+!%FTA1wx5of zZm*_E-%Rg~moSQ&ER#%|OhV71T3%67u~G3(?MiJ-HLhI$t53D08pqe2a+JB0O0|k? zrQ@$8UoFb{%fc!w%IsBzi+r_SA`rFu<@y!Hi7bqU}c zpskx&_I9Q3NP8jeh!U(Q&*v5Akm1m1P`UbHE{wF3=6IjwtbnrrsWkPDKqpk+Uz|@aWoq{NTg#qWWU{Sb8Icris{q z21Hy%nlYC(HcB>1-3m@B zkQR}al2%s!Nd7ECMZT?su7qEXUv6k(e4=1tA)PZ*kZqBDKXX5GF>|xUP}^ObvAL|d z)l9m6SGz>(thv)JM4MNuSW`_~uR-!>_D`CHj-MT+*rja>NeY!Y3l{ygm(3&1&)sbY%O>Eb1q$u7KhXC{$X*5@}Ftpce%-|Hk(zxisFg^ z7ESxqEG8@o8b23nTZ-K(?u^a}gl>ht=k5sY2ykz(Z)h2ebAwxkTgDXo?Q;x5HpTs@ z-%Q^;-=+bj{xmQaa1jBb0Xncx_nzLAJ+Z=kt7f1y;D*Ker42Vm8+rpV!RRl>R3BftQ)Sn#=B6_vZ8IRoHg+ z_PZS~f;5(4JqM5c$-e85Qv7me97etr5xH;$o*x&YSoCH1(KLT?-DqM_J^D!dET~wf zxu(OH#C7S(6#jzfvJ3Kcu>~b2 z#5;;rP|7DYTO3*JnY)fvnT6E94%$Vvu#hDqjo38AS0QLIp*D+^9H?r4TBJv+w=mN% z@0o}g#DNmtru|gSVi5zLtqG1 zN30TPjclg3omZ?p)kv-O?V|ORw+Ybi9S!Vlg0VS%r-u3`#OHWz@l;PylSON@$>=dO zn?wjNBC`7ZDnTlq-_oZw_dg_I_M<)NYd;#xD+k(4r_5)}5BD~ha&$0KDpL1SG3?Nn zR~peb)f-Q5ZY5S(QYSvGb_6wxw-xpXw04@6j!aJQ3#%5XUaLN;a-GerHyJJ7+fAR5 zcy-=>KAB(D>AZUp8tGnDgHe;8H=j3ql74Eq6RwV^IJ{4Jveo;kVC#4~1UCcsf<%qc zyx2B3PdX#0suH)ra4dx}MBe?HeeTAD&V{ZPll5zx+Tn}G?%^HE<{cS2-->IrSJf8M zEV(PG1u2WQSjOKB$;_`APddgr?TX_<(+fu%p3hRNhkJ7Uy36Ad|7~GDhgWdD>&nyqZt(7A z6MxCMNUPR#n;2;g>_!nmd@Awtif)1SJP`!cZeZDQ?Cg( zahT!=ap`emq3EHn3Gi8b@8^#fC#Tb<^Hcw( zCiU2Q7rz{VkBMqlfA#$$>mG6EVAH==e>&}TTXQ2lFWkgb-1VmL`}Ah{P&Dim+RTZqbw0swWf-cQO&(C-u`AQgE4z>@|5@DBn29^RnGLjb^q z6#zIg1OWKb0008}M1w&|06^G6`irQl`^rhSTbi!f&5*F0ELV0gyjac579Koheu#ci zIVcHG0Q&C76^Kd?Yb=WW{=F%(<|i2Jgpwb>y>MaMuw=wOQRc(XG)TKPbllwy@$M*? zpJ!(;XMeZ2_0F-#kuO<$+PF)(d&+UzaOz}5V?*m_MJse~RaHWI##$1%SU+5#_Q9Nj zPcb44HF~e6`xA2wa8haSBY3gCS!E$-NE8Y^G0oxVQX5&>#J-^qb3%N7rglt;tNG6f zqg|G&qW}YdFl=XdO()C=&VBW=XQjQ8g`OewBw-hh#xYzRKsXj#1E2%f)3R~IpN25T z3Y~%{b2WyjZXos5^N3Nv`B_~KM}XNscSvd&&1cK9#$pDL!fsBq=vUc}OIZGMA|#^n zCO~TB6erq5kHW0W687I=q7@unkT2M4Em*jmqGb_=H0>9-_NYEX9}s;Oq6W8(Baqqm zQ(d_e{Tu1MUGj~ctua0$RQ~>9rs|nW_;)caql4yPtA&oHD6QIm6hp1AONy$i_zFF@ zB@W>TI8V`0TqHwZK=?=4X$eidRT{#DF1J= z+1p2khU~?TD3a4KRkj{=)|gJ%#L#PLtALIN2w=reUGwxwd=Mo(7fEy@X0d-PQWI6_ z5)kI^G|E^#b7EuB`=3GP5?lEI(jWMm11B_xCcm8i?_w6zN>RZ4oOqGGe1lPNi|7Hp*s{QLv4%<`F zS9i+9AN1dIsI9iG(FbVUzui?>k4loT&V8o7+#2ci}D-bB%B{m5_F%dqqgcpZ{rp zAMOzuVh-^q<}ETej03yPRvdh|hKq&!1@i=W!TBBbCRu;8nQ6+9_wN&^BjBE5L7nro zoZmr|4$hE{)ykqbDOg;8dzfQjW4f$AziO~B)_wKFf9^GadG--@5ddd>P&mK5Dwz zn9o(A7>DwZVW`P**7o@UbcS)n-Hk%`K#89e8+?0bH(b#n{|NbWOUFuivEK8a z_ck$B-y)VM=~d2eYr=R_Ln9sT+UBN|`U>amrR=#RWHsO%KmA|lvzFK8g*X;T>NQ;< zI>A^_?El=HuU)hjbuO4g<+4?AK0qkyGicPGJ;W|3kk*{Kjx-x4o;(8wHE4U zPLW-X{{@UcAMWGCMl)48IIvS8jls8<$PmvWiiQO8MVL)A@0QVj&G^ro@fa};s-SaKd-(~+#J)9_2!f=~qGkYxnT)53*oRts=;;yt%2ax!SpU5zv+5vIa`UILtzQX810fS?mp2Ht(7 z?k5jLU(5fZi2=3cR&a5kqu@jSzkxhjB_f~~{Go!{Lcl=tzH_G(W`Flj)>EeMR;Jmu=Bm{Q9Gw4D^r?AJM=jJB z^!thL-z69=6BXzQ@lyLe_Xglc==NgHe`#f@m$?9RRM3wiL+Jn0ZSezDtySRaB4QT8 z2cmmBQP>c*Y*~bT>bCxcx-mNJ4{9KRl)--&QZW{?BAf}%N+&P)GT=N%#&R(l|mhl^gz2&4F7p ztiteRm-sdR`Q2Xt*X$`;qtmj4ZVZw+AXC$xFf>6)LEbQPB_Nl=Wlu;xueQRe9HI+> z8K+5e#&9c#?0Uniw{y*rvB7!b*0Nln)B={KuR4|4R!J)T&Rbqti1uOot4PrLL99q0 zs|3jbPf(|FfpiQE4z{Y+aygJU%hYDv2gxEF|6!=*x)iW~2|qtUK!YWNBSY*g%N)Au zOaOB|ZX#8kLj&w188hBDly6yiw1R*WO-qbI_S;2GXnx4k6I2^yg%o7LGNAP@hmWBY z{M58s-0COlqZ`d`ZHcToG$Ndg!7|L*_sI0jxuco7ik~ppI5&(z=l>KY z!SwR7m9u~P$74epdN}mhAZFV<-uKv`&DsB%eYw$`vrh{BWA2m(Y%@l<)uM0Ce$17Cy~flP;&PWEp=3Hp zCiD^mA^?d8yX69vG(DK{vfu>Zt87x`)xHPHBIpeIq%j*@P}CNqR_PeSFT5WJLwAVZ z_i!;HbT##6Sr9z%*kA^ugF=qva_$7q2UyWIN57hWh9Q6}g-P!#7`*Ca@Nej6{Wf*~ ziZxJtD+p9xdb1Olx_Sj<;f8KSM&G%?<{+G13!E>4@NRB6n(q*er)?H|`2==a7zCy= z2}8Gv!d=fXpV60Ck6)ewYC??ejmX0M+R3~!Iw+3nAn3rUWbJSIaIYwx2#k}SKSetAbCF!(waWN4WTIASfjP9+=rv#m&^k1-gy^@3~Q*He&n_BI~vm31hPePL??vj)jjNepN=OST)e`bIm ze79FIxLZp{VqXhL8k1p1>;IH@orcO6NRBelGkuL(ai{<2S9?H$Cl$r6ULn0LN;85TrV!S%E1#$PVq zf^q3jVxjV@lb}Kacz`?MI|1!2^G28sgzn6Y+U`sLh5!SV%zzU&*d9j7gm0&n)bVP$ z9csOGn}qk(V}$xhSfN`~5Cp-)LJpxRXUvi|mSYZoK^GlG)3!AQHOCvV=2jJE(dXSK z&zwcQ$sgB=!<%N247P7wU;{PI(w(}=nVx;~NQRf!C(yK&$5rK=H_rgM%P9fBUFf&at@1YH-cX>#qqlx(`IGE1jru8~Dcc@*18-@xWc*+=JsT^~Nu_M-?>hKzn);4s(j!4c5P>7M5AtmSjMR*O?0e8aszYgRc0 zUaa?ng}?~yQ$Q6=XX(C;_{(!7tV#v#;b_r{JmD-?qKe;|)#)pkN=7&KrU*tqz$+?m zIn_0~-*R>uI5}4M_~U}s)!&#=`yHgCDRj0xHUtc9@wmw?ygM1u`W20t%dX|KWyvAB9&-`X;)CF7#x@f|E;w&T8s^t!NwaIe0=kO2_Ir zCiHGOQc?B4Y)37E40Av1sPwkLZT^hL(VPN|1x#CSfokm1aO(2u=xcAGLDLB01eOws zzv*)J^dB0oM;^?o<>70`X4m_bEzm<^UN$9{5jD4EWwRjYoV)&-t$$Kl?%$oC%Kd}| zc@NP9-uLJ|ooj$iNm9@X?YC8W{i7{>i(6?aed=f(1eKzqB7NUIf4*3+_4HbXNJPxc?X+fzwHy=eGcAN`gqk)@{Z*J!3L>q$n0 zuZ=?-<*d38j}0my$cvf}?(bU|tu!e{r>up34R+2x`e-BA%)1ArPCuZ^lMaCcOLl7A zh)_S>w?Ro(jck0br!A$`yd*qrv;XB*Cn^Qc)$R*uP(^(mD4KZsC{OQEbIA@;}Gne>&OnB9s|wXY7SiN~f{ld6TI zJI{C{TAV9aon?eo4e|2z5O`lZ={Uo|kjs`NUhKmp2wD0DyP2D(>ki z_>%qd(RAb@RbVQL9nYXBXePoLvBOP@kL%mg8}RBrA{W4Yh*PKBu$$|NMTiL9 zI?=m%x`}z_oaUAZ%ym392aFWikmGJU_=WOten)M>P;v`DO0<4VC?>&deV?}Lu~7}G zjz)yY5}`lHyV8dsSHrzxE+M!pbNuWHx^GqdvKHhw4$}0@@9xR=eZv7x+K>S67Vznh zCh64_!;J1T_B~P$U;lv!arD|@$CrK*J)XC%m$+A5AR!Us4dz^^L{9-ELovDc0yuIW zJc*h&MFNIatVu+c38_`Bsiv@IZ!5w zzAytDo}@v>GgtkrCw3vE+9~^hCh#|mXRTFFT2|OP%@>NDr?CXWI{xb?I$-KAAf84X zY#}sVHx6X`;9rmqgm7VxnEK&5pw%MZFF@s~p*QrRBW-M!{BA%B&kA)eOf`2wn3HHt zO!8S@qGBH**R}hIuIxWr(aA=H((g6RS`6D%9ZH0pxT`OnR>?2F$wRTQd@8E%AC+DO z6l|?G#7RXZgVQ~gUc+#G`CIBDG+9~Z%lv?SFUz5xjToNxk*iKG?Bm&H5XDIcSR4u) zqLlsN=C%{tvIoI*Ir}e?OdOfihe$c7{THXpu0*A}XM=#=0>6Wnr(F z<9sO8o_m^r07DLg8ABrMm?HRw-v5a*8H4;&Cc;>8;1-A`mih@AZE#R{A0lKC6k%{- zH@mdAxL$BBH%^lLU(2P8m&mQcv1l4bSQg(y0as?rGBp|jm3j@*-}^JCb?;YCw*uzl zryA3!rnGY=8maU!R{ znyFr>-r<3B0|ROwV?Z&3hs<~%l*%Qccq)4L#~cxyp2oinn zjjmfGQ8Ok9>G1N$#C3Q+{(mFc?x={qv7>L3Q?#LJEL%;DM1Xnmmd=wb#T zH03QF9MiunnE2b5cIo(@sq|u-ZS3Qs@SM5)kGr6#1^h~JvIsbTg?*k>@KF#jtd~Vt zP5X~4J9@8)q;8mN0rOTjo12sm&Su6#V@SP~2j5sS_t6^zRGb`bf%yiHoIIkoRkwU0 zLGkS|BvegUZ1Ydy-`Lw-y5!9*pMxvwxjXcKiF5?%^V^j9f2i6wMX7yXuJ(X3^3shdQ2e4@ zlj|~|JL>|*>PlJRxb66C+!LglcP3`RG>0uBy#7jcI&}z&`JH;*PL~W`C0mk4xKgJ- z3oXmjE~!y$6g>Q^H5*aWw4x&b8wgd{!I`fL`X2MPQ7-tVW+`jH-3 z>b&E@xUYY;6AAF)BXNf>Z*a8_PTu7Q=U{KM&k3!|7^I&IS1y|QM2q;M-Uq$Dp&Cx0 z)xDx#kl-;}Nglm8mPKZvAGQm;+2V;#4AYm?5y4i9*Bm-uUMYj}mt1aIiLX6h)KVn& zKuszi#9r|yQg8U$+Wfuh_!oX#^b_2)qSDnqlU>v{@4wnv$nBqMIqc}tr&YrCBsv3D z;kz@H&qzB|f0wCeBz-H2`eS0a3U+%Z_dJ|?4K^I`>TdWMT#!%M5*7_K7wc4$IXx%?$);(EW_81+Qno|Af*+7) zsJ0171>WEVQiskFE0Iaxo49mvR@&bJ6hw_>xFYT+Dqu(%+2O;B=f{nBq7{vZRUY{)0-8|w{E|c*!pQt&fZfROb?EKF< zuz8Sqgtjvj-c?c3tFwoUhJqk}jqyJ3!)*TcBj}5L)B^)#u-#jUdUxtJ6)Ijj0(_a*L=z zLz*y-n_fRn%t1A-Tm)v-geEWUP1}h}-);|m;_LkH@))9xUI~xZ;TSl|osqjD5$qER zzh8NpkQ+`ool_p&AlCvG^Nt+NW?H8&ln#ZrT0dF~guWTnl^JQ?kH(+ocReUw(C*V! z^ZmV_%m|mb@@zUO^3#Y!QeVL%fPL2>WHWh?x)ab-4mq(iUP`H(FvHF@(}t{Qt&1UU zr+k||KAG~gubv+Bx>WQOzP(QOLUahyzq{!=xoUzk+}wvE8s7qv;T67@8_vp{@LcE- z-k&jMV|AK~>kz!gYL3dv40gd@fL4EX@b&rNZxUCHXL(?TsJk-V%3n(%I;dIn4`bs|{P5Qh$!+t&0kj-Gn4ZlB%P=k%!jpdu<-wTr_J%B8?> z60Tqk_l`d_&4a6JEY?dAG)rziL@hA!*pSlAZAfS>3;;1MaDmoVA!$3$`H_VU?<{5E z9O@J>wsSB!Zn`rfG(XHPo;`*?c~wR3eUm(H*g_j1)?o~oUwvgkeDNoN79#u?dO9@3 zSodc}si;Cxn&VTYa_M`x^h`Qz#Oya0`1@)3k}==pNxrw(4p zP9{m%)~OL34N9C%XKoyjknDMsE9pRJC0<2oC3WiI&3CzlClCmFV z>Vrg)+;Awiu@x07Qmep}^q2(O;+L}1R#=ohy#lcYK^s4~CiyU!%~=c4Tlg*Z(;ofB z#dqG^Q^kQ+;Wmvk(V}Y|`)U<1^k=^3D!rzVN^l+hH^E1Id%zHM7od2YY876c+?)eg zLS;wcE=7*fa@^m*)JH$(-^vm@jdZEb#(hr9=kJ$1d7q?mQLdd(0Kb4dFgTm3`J*Y^ zEktnWi1vXN4{;~Lbt0I)$~OqUs^trELL-d{!|5h&1O}PCSXJKD29qko;&(iZJ4)say#~aG%W#_;t}gt-wVK0u zHzZSAKb-mkW(5)F-)$?bN1nVSOH4am&Va|BruDX}d_g=-ow`S=0Ck|k32b{i+bpa{ za^!BvN-8&;@ZxbXrL1aBdEdo|-N3xtO|p-?cfsmw)EP%CS66dNS>98r!d`d6Ja^`i zpaXk7PFu@bE>-}-1#T)T8M3#=^gvR;`CfT^*LZOtdcxo*i-c&eK zCC=3tlg;4AYWX7{{?OC)W$_|~2*1H~0Kr=_x;656Y#F?$`t4_A+DVqEUFz{hxGb9& zj)2ZbX$@!U>VmT|%!H-NE2`=^Hoj#WMzJ@+_^ctu8xa1bk+hW(q~i{5Q!h|+s3zZ4 z3nL4f3U}Iorp`|DHX=aEj`pEZIz)R7S$EQ{N-)o zmd$qequ&IvBu=wSpby{LF?`1!B)8BBd*_#m+QP#CDFI`C8W-?kO$?+=LaCjfYJ=&aZUnL1@POI(ogZv33{CUQhD|4XN*7v{L%o%Y!*yxB{&cAW0Y z$CJB@LH)^OATo6#f&Q#eQ@kesL@2jrp%lr>L#~IWy>o0a0erIY_e;Qb&D=NmH7Ita zNF0;_N><~iV|WW)tT*9(>wm;M3*wf83dR}1UAQTGZcX>{K0*T3MD?Zj$3kQimUJ@K zpwhMmz;&p->a2To*QyCz#GC3ayST%5@$<-tKWApyR~PFK!KW%(?OUIFSR6R#PY!rE zUM*O8ep2u3(N+pvjxO~2G2)sU6dd{XRqdts?;qnL=V~Y&HIpMr(kox|&g8bY1n=FG|wC$zRuvMo++vEAJSN$@orNC=obQl9oaPXXzX%E+U-TE%7)D z%(0je`ox=&19Nk!_xIY)A`$fkKc%!<{A}u#L)u+QC|cAx?+pz9oW%BJpTEL9r-X-L)$_Yul$Ny_ z?{uXsW)Vk(RnW$hJhsn;F-mM5k(O54#MUtCYtv6^zy01aJwo|5QoYZhSlWgnG% zUeW;25V|AJjXPJuqVE2di`boM4_o=2k#?i+Gon`LItd>Z!2%HIx^oOVnYRSmFF2X; z{Q3xO6p;^VE{^|9iS%pyF$23r+f!n>8Z?skNq;_Foy|jT(3I;2M7iOumw$KE++KE3 z5{tigOD>_g2r!b`yGdgD#r0)Pw&{n7g=cU)BU0Q@*5by+2R){o4pZHlpqq{HJv$j( zKl}<#nhwwv9|9C!v_@1*`z7^#g5am3o;jE2nfCsMvNjIo5Ef5+dmR&#B^5|8*bPb; z{FIX^{M>fDg=hEcSjhud+rS*=@{;t%dZIOFqwTM6V3pWY%w*2_BGOSbJG%BcW%cN% zW{Nk!lqXP7++^y&yOM(}wBwo%iPK1qI2V))cAk06 zapsQilfiD42aLPfsj zqwKl&$*u+Ds)$z1zg=3HheAXqbSP?bKE#*H?YlidZ=G$8V1aZ_*^R{e zqJmjjR;4b9XY0PHgS=(ZsPJ%&!_Dcw#{AWbnF~G3LfK(8hV6}!=0FUQ!241PI$lYo ztkx=-iFg84&{A?AQ(Lg*yCZeJh^55p;w*Ct^_ozeE_|G9j1tX5I9lv%To!3G36)jv z6P4ZxDC4oEA{uu_l!}T7rKU1u5x%;p@F%XA;IPtOtdAFQLNhDerz#4c@-*0xHp}Sk znOI=!GqK*7hABHvxq@G$woQ(*@})ucI`=U{xj=qHt6;;%9aiO>nTLSC8(ed&yB}Mn zhAFv>_gRv2SG%%A<5^?*f$fOn+23@$9;wB^{$Tgd!M2}W8-M*taz`1lxOP&HE4LBZ z{(UQ|{#~ewqr!?$lf~jjY*ZRwGnp_eRVmAvKzVVDAN$F7xE~ z$Z#y1?GY!m!Kzi&fzwz^o)0b_?RW_0N{{~jV`7wDz^&h76O>g6i>y`V)6&&Ix^jY9ei?eNzWs0+4K>>pUp<+P?hUhG&W42F6IDWRX@@lIyNzj$|(j-lv;F8K> z+!V7%_Crj6I-4_+r2!euOpTJVhjz5Xnw&vtIoKP$ZdYES%G~~#vw=0>PU_uYT+nEk zBHe3b*SM`kLymsZv4nTCkcvWD0cilu(G6Kjj8|_ zD_t-zGdN!!ZpMVNxFmiEyF*(`KZQ<@HfeSf*!)l%)UB}arl`?-lNDJ_ghIq~F2b&4 z@h+hWdrX}B7UfR#Whw zn-}(=H4Z;7#0#Ostk0=`@^iHrT)$ZF=EEM-0Fm#AeB!HRhP&#b-S2G5KO)%DtlS!# zavu9LvdzZtH>ogZL^kDv-JCdodx^yeG;|4k9BAqTLZX2P^%l@Bu#tUNg}@9KgGX}O z+Qi;Je802NPv)aezm?WFf_(ZuCN#ohDlN|ou$2D+%B-Cf!i^8H^{l5K>=r1?j)&np z8GgbE;(#}*7UiB%nT4vJG_~{BDjb*bL!Nw|;9sH^RIT9)Ij*0 zNp(NLm9X=n;vdXq-o@RBU&7O4;crCi5C)cqN2}3UD-MM~^|G}n5sE@WM)H})unZn+ zKcSV#wdm)Rjr80_*zTg5p@f10Zk6=bObk3vui5$FCthH7uMc()No0{lxH0ke-e^(I zF4G!ey2aaoT(WoyCz|Q%UOM9;ceL3JTw#@_RnF|HWr=<=PC+u1pA@nEM7^6K`q8wFA#4u(wZZi`rA8CYu+Ux zaR=K>6Rhxv7sJ@5jSZ$iRO(M_r-b_GoG%jGaUsrFK~gT zZ2Jfc*hm|}@VRD^3=nOK`ja=j+>sO*u&V${51WF^yfftDM~(<0M)ZzyPt`4VC$B3a zC1A58%Olu3sp@q>n|7p&N)RhwW~A)K-~0%||Fi$e2mfi@L~~&^2F=obD`BhS%4${{ z3;%~>q5RY5^_sVt*AKCpJlTGU>|_$AHM{9s{8wB4F`f+7-zT&;#niVy#4>`0i^x^b4c!qidSXVaEI)j) zs>+J_Qu8;faOlBzz~WfRgkb@8^Mxb=i8HZx9>mmJ6j}Ll)ApHb>&4w{u4)5>;qu;G z?VETN`@4ijGz|*10Zfs=UpwYoFIXCSZRBgR@tReixzy4Ai82 zkV|f(5fIZpCf3pyj>o9k#lPelDBy${#`v}lno=}t&ws9xvf925rAS%%wjs$_!$Ezv z90O8+3^l&g8znC>bk45zgYH${2bUO@K@+$DP>B05X{Qu+Q=TIr`2!^Qm-UcdeO$&L3pZk2>Rj)bAo`rg2;4f9p-WG-Isc|Ln#@*>EiN@p3!)H>T9nh^7&}qfE{7W*i5)dxBaLS zt7-~xwC^Fj?C2`X=cz(Va3M(CTK~i%?S^s|(+ZDSmiU?_Ef+zCtC_qt1`4@>ODMib zudaQS@UHEt4y29r9ggh#-hhMR8n+zbD|{BrB5r|tmE4}2JEI@Y*9X|jN*)5V2&(;u-Is>+E<>TbZAYI z4wk`~+P(kAADJ4nHrvY{D?>x-<9}dyedDt5-F@8t9N6N8Rm6JSz&5l%?%0dZam$$f zm0sp~{G(@+iNaAI2L5LZlZCt~k=4K7y7Wp5o>fhyFD5|Qy~ZkvMkA~?3H>81yf)n@ zd17>#bVSC@q;=*jqmPr412tt#h#hc#u*@^Zhmr#s`pgM8UxC>5%6)dU%gnvl;RO4O zKUiWE*wS$B&xGryzIU9__a*TnR>?M7^i4l|W(qp!0ja z{edo7mPZ?9p`=0IgzcVE&*XaV@S7mV#;I+A$;Tc8)815bbRdjFyX`R*gQrw#TaOP= zX!etk23!Zt5)BWcBZ_bS=wlQ5$Z;q%zg!YuR(J3L?;8j|V;dx$3DPG`li~@x{UKZ{ zWRz2+)cSd~<+%Mb7%suog#>Sl$5nJqNcnDBhfnEt{4Z|k-=ia@SCOBT>6L3jQjW)t zrxJ?;h36{nFuT@@?;iyr91=^D(;!U|F1P9QL*c89)`V)uP#uc4<4EZs46NmO9KQHQ z(mxzE_tm64qUU;rJdAJ(auu>lgY)U2{0H>PTE7}-OJ+Mt)ovZUbO!#AhB4W2$oEf) z(Vrtf9&D_u(~ALr4(K2}@4*cGNx?h~FXv^he8K=1gE}=7i9)L!mU;HBj;Rr+o{7)r z8|=nDp449um7Q-h`67=D=ST~adf(CYwJqaBgj7xuUz4BqHXnVmf9W)C5OQGal3lL- zI?e@UrmSPqDb|QDU*U_0#p`%bB05INkg8|*#kG{N9f0+H69=SIaL^9W4!Zn4>oi$} z7V39F6_-S8Dz{dCss=lErM%BQ|kMWxu)tKk=;UwQwaO z*)Hm5C2fJw`%YA0&yx%iHdwbGX7s?$xFZZ+35WIksG#YF_aFG-{Al>v4&-^OI2ruM z4v+NhV0~+-D!Co$V?bmTV~50I7Z^BEYS>X>=6yoJYjuT^XEt~HV6uSo4H;uNC|Qh< zR)O1Q{bvojO(Jhdld1)xu+nvGLwCXFC(}C0J#Qnf>N~;THfgh?71FY31J$IBmbPv* z2&T=4(zEX9hU9EO-bAg>(8o;j$n&;$Bq2Z2&i(u~n}v?#_k-OVzhdg|TIGgn9@HaD zxQ4sfd`O&QH#my_j7A4M8y>^i@hkCi`%W^A|7)6!sz*3+V_RT=w2fZ$ZqM&f_vaBM zgRi}WZrwu>v;j>s>61XPX0@q8tIGbnv|;a-2k zz?sP>PN?n=Towl>q{S$LvLd&=irxUpoaI!EFeS+<2 zZkrhfKedsw6S|@QbgPW_ajG)Sa^8o#?8ca*$vjKMyFJhx2=bG$=cgSo5gC#}Y-TcR zTSVTnHgOEYNaQaEjhMm}MbFqi-q8SO{hUJ6Zd5;^Ne1pH)cs=sbsr`%eF-C9r^!>kc$h1VL4 zH}6wbhj`-)>lW_sN@WiT3=M?3+Hk5>R^b76gXhH>O>6;_##f!)HK& z)KYQa%k|0=qNJNHlmWk3pZOQBQ1U7BH;+C&=mF;?^fyqTsl*KX;_E<6B18F#9TC+o z>40FPm_h$FOgqZ@Q@!w9!1W-qjRK83rj|sqtl>m~#ieliLJlsr#>4_|cS~G1pK37k z?^n{u9~Xy{^G&Ku8s)~$;}z|QTn0j!2r)Jn+ZkRWt1~CFjdDoKzTq7lnJmXP?U7Y( zH=ggXW!Kv2iQTA$h>kKnyBJv@-qqvvf6>&GzmprUuZo3?#-k|{ryLMh9dB{i@oaZ@ z!#fU@3{Fr$-mY(|yS1B6`{VDMbldubL<2|9S@M{Aemgy9BOfoDhtph@@;zh(%yG(f z+#yy#Hi#WbhqN|Rjt3xa(m3tVj?REt=r&_Xk{C%%dp&>$`ZuYb#1)ZLRM+1l$M|X+ ziwpsUO{k*!O9(n1=G48F1eBFA?S-W!^BM`o8+SwF6@}<@4_%8SWD7fS47ASz4>e@b zJ46HM?%3-r2-Srb$tLHp`_uuaZRpTG4`?~mq)ouyX-4*rBvfRH%*={c?=45NvEx$% zyfURgY0#q$!m~O4_T>7<W2K<@gmo};ZJr!;pb>#jOI@_4vAMJz*8wI=)XVOWD#buWv`G)*k6Z&z;prULZI5# zM|xv3Qcbv*Q>5-p?E|!_GJytXe*pueW8;~sg-qP<<5`=)70%y3X!?%B<4z9`Wh(b0 z6t$)$oz0JPP{)(vRk&&htTHLH*%a3!7~<~LqFxHl2Gwg4CNeioekPNP>Ams1T+&@I z;fa5Za_-WNXeE2of!Oa;SC5Hpm!}+!*D@FQWq3YBTZ^uFMAg$KhsZHbAx!>`P*Q9o z9no^tVQIdUTL1O)eGW6V9oMVdKzpXPwYc^ zq%!j-j+IxbL}8+jOXh?0w{+4GtUV!hrK<0TZ&xWAdDs+}n&!w-nKD-Wl`f@)`Ox~u ziO3{X3B_K((CY32D=c28$s3a&H04#$L@K0Fk? zGFSe}jDLd6`9$nlIi2x+dxT!=RWOn-ozeb*@XCRwEBz@fCr)&0vf$nPyb@Sz&d5(= zai&W!NQbd}TgD;GSI!aM z+!Gb@^GkEy9}k@Eh1o}3NH;R>Z&nCy(Pn1ByaCpq1}A3}(;J;0w7$gR1DLLRGk3&t zDuq{?e(p}ziIJYw_P*ptj2tkl`KWgkXZiXm-4s%DdK9+FO@a|v5^jMgPW|lAh7Pk0 zHYYS;ZQd0&7;JFew6#VeK>@tLm$+9=eA}UQ{7GC5LwR6fxLKF=Yl)Xs(NfP9d{Yj) zLBY@4&2H?-v2n7DkhY4}%j3`!fz2x$KJb1kG;VfUJw|Ryx8DCGFLj&|4hzf*{4gt? z9+B9O-(p+gJy$%(Qsc+|R4k=Ln<|dislWdcRkGdO^2cNW#^M+gzpl-->TGz($v@yf zE&qjdeN16-p=B_}?VhXeIF(n|Oj?J_0RLit%vp`h7dclw+IwpwdgDYc( zs-_psyUXcq8|>9F1+ah|dd)+70LM1d$gN)Z9FEoN`1;LeNq?v~wjUD}&OvopB~@%~ z1%oI|G@sEDGSy^ve|6L3)$5)nwWl-!#Ydti&S|S?x5|>*((c=7P-nI~VdL|an`TK(=vjCG`Fr9O-79J*r$F zbIjpg4e^(lYEZ4{e3+dULze|qMs)cKZGww=kZ*2uzSqy&gw%vucDohpZ(ACKkrk4l zbr}JVXAEw!D~imz4N=!Loz4tHnw@rN48+d8idgwep)v@L%d|>O9u--8qY~0iQ<9vG zB#W0lACq4b)|fEWI-zwX%S)pz1Ab zT0OD(ESZmgN}&a7Hvm=*o<5Go0B^J*`AR8zVN6J{fi&@>BVlU6i1OSk39BPOJ0!D3 zRSF0wemd_!qPzA#^!}u5y2$`>Qs(Npurf+^GV`+E+`vtUVMX@8Tmd(0P_NHYo=L3& zA5&%Ae^kQi{MIgpj@wxS&l@i0&zqfeAVk?OO>)g-j>Sbl+Q4^6;Gq`17A=7g20{%I zsS@lSsf^72j~>oP*J1Lj=j|4`^(tD{7eCt5% zZLr*XHX}D2oe^X>dI+t4cKdh6+U_ODq-NQ}RxspXUDOt($rTME1FXY@CaJw|CMd@; z^WGn0R2z{o+_YMkhBWGuBpMY>Dhv1CH?!p2)XewgzDN;}ud!OlCa3o4tyZ+t%<>&L zzd%8n881_nGXTSPVkk)l;+Yj9#T9#!V$<}u%s$|yM@W6%isdN#eH%(t zw&R|Q$veWC&T0aQD^_?2EWJP8NTzx~=~eZOkU9Y>KFa2t-^E;CbO3U|Fk5=&0Rg!a zLnVtdi}JKlOi`*@nLWRcLTyLuQTGtryVT29W$ERyI6E^J_!}Gdj-FT_kh1z3an+w5 z?JJ+6VfwtlH|`=Fky3d>ZZ?s;9`n-Lq-)7f4;t1T%%Q>Fz$6ZW2Cb5pQ@Q7;#R^H_eg`5y)REr{1@$H8bL)VI?+d=n6+)?*wNd=$eyw{!K}VQoBc%8vI4N) z7T(Jnjut39PGt`{h{hdfj4hb>l)lUF)P1US{r}g6&C7oczwLYZ*3Ul`9c>g L?JTOyD6#(qU(1|f literal 0 HcmV?d00001 diff --git a/tutorial/templates/Page.ss b/tutorial/templates/Page.ss new file mode 100644 index 0000000..0c8ffb2 --- /dev/null +++ b/tutorial/templates/Page.ss @@ -0,0 +1,26 @@ + + + + + <% base_tag %> + + + + + +
+ +
+
+ $Content +
+
+ +
+ $SilverStripeNavigator + +