Un moment s'il vous plaît ...
Apprendre est en cours de chargement.
no
Ici avec une liste numérotée et un CSS associé. Bien sûr, la classe de style peut être dissociée de ce tiddler et être enregistrée dans un tiddler séparé que l'on pensera a affecter du tag `$:/tags/Stylesheet` <style> .myClass { color:red; font-size:1.1em; } </style> <ol class="myClass"> <$list filter="[[Tiddler-A]] [[Tiddler-B]] [[Tiddler-C]]"> <li><<currentTiddler>></li> </$list> </ol>
\define dbadge(subject,status, type:"primary") <div class="dbadge"><span class="dbadge-subject">$subject$</span><span class="dbadge-status dbadge-$type$ ">$status$</span></div> \end
CSS standard: ``` .tc-sidebar-header { color: <<colour sidebar-foreground>>; fill: <<colour sidebar-foreground>>; } ``` CSS à tester: ``` <style> .tc-sidebar-header { /*color: yellow !important;*/ fill: orange !important; } </style> ``` !Agit sur quoi ? Dans la SideBar uniquement. __''Color''__: sur la couleur des boutons de la `page toolbar`, mais pas sur la couleur des options de bordures choisies dans `Toolbar Button Style`, rounded ou boxed qui possèdent leurs propres classes CSS. Et à la condition que les boutons ne possèdent pas de classe ajoutée (par exemple le bouton Sauvegarder le wiki). !Exemples: !!La propriété fill ``` <div class="tc-sidebar-header"> <$transclude tiddler="$:/core/ui/Buttons/home"/> </div> ``` Le bouton `home` prend la couleur indiquée par la propriété `fill` de la classe `.tc-sidebar-header` ``` <div class="tc-sidebar-header"> <$transclude tiddler="$:/core/ui/Buttons/new-tiddler"/> </div> ``` Le bouton `new-tiddler` prend la couleur indiquée par la propriété `fill` de la classe `.tc-sidebar-header` ``` <div class="tc-sidebar-header"> <div class="tc-page-controls svg.tc-image-save-button"> <$transclude tiddler="$:/core/ui/Buttons/save-wiki"/> </div> </div> ``` Le bouton de contrôle de sauvegarde du wiki possède une classe CSS supplémentaire affectant la couleur rouge au bouton. La couleur est indiquée dans la palette utilisée, à la ligne Toolbar 'save' button foreground (toolbar-save-button) !!La propriété color Elle s'applique aux en-têtes des tables de la SideBar: *👉 Recent: Sur les dates précédent la liste des tiddlers récents. *👉 More: Sur les nombres de tiddlers que comportent les tags systèmes. *👉 Sommaire: Sur les chiffres de numérotation des listes (et des sous-listes) composant les titres de sommaire. *👉 En-Cours: Sur le titre du bloc "Assistance" et sur les textes qu'il contient. Également sur le titre `Glisser/déplacer pour ré-ordonner les tiddlers`.
``` .tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button { border: none; outline: none; background: transparent; color: FireBrick; /*#666*/ fill: FireBrick; /*#666*/ } ``` Postes prenant la couleur: #Dans l'onglet ''Menus'' : Couleur du lien Créer un nouveau menu (color) et de l'icône (fill) #Dans l'onglet ''Open'' : couleur des boutons close (x) #Dans l'onglet ''Recent'': Rien #Dans l'onglet ''More'': Tous les titres des sous-onglets. De plus ##Sous-onglet ''All'' : Rien ##Sous-onglet ''Recent'': Rien ##Sous-onglet ''Tag'' : Le lien tag manager ##Sous-onglet ''System tags'' : Rien ##Sous-onglet ''Missing'' : Tous les liens de la liste ##Sous-onglet ''Draft'' : Rien ##Sous-onglet ''Orphans'' : Rien ##Sous-onglet ''Types'' : Rien ##Sous onglet ''System'' : Rien ##Sous-onglet ''Shadows'' : Rien ##Sous-onglet ''Explorer'' : Rien #Sous-onglet ''Plugins'' : Les titres des sous-menus horizontaux (Languages, Plugins et Themes), mais rien dans leurs liens de contenus. ##Sous-onglet ''Core-Explorer'' : Les dossiers, pas les liens dans les listes des dossiers. #Sous-onglet ''System Images'' : Les icônes liens, pas leurs titres. #Sous-onglet ''Administration'' : Le lien "Activer le mode lecture.
<style> .tc-sidebar-lists a.tc-tiddlylink { color: firebrick !important; } </style> ``` .tc-sidebar-lists a.tc-tiddlylink { color: firebrick !important; } ``` Couleur des liens internes dans la SideBar, sauf onglet Sommaire.
``` .tc-tabbed-table-of-contents { display: -webkit-flex; display: flex; } ```
``` .tc-tabbed-table-of-contents-content{...} ```
``` .tc-tiddler-frame { position: relative; margin-bottom: 28px; background-color: <<colour tiddler-background>>; border: 1px solid <<colour tiddler-border>>; } ```
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
!!Barre de navigation transparente 👉 Toutes les tables du wiki et les tiddlers d'une manière générale passent au dessus de la barre de navigation lorsqu'elles sont déroulées vers le haut. Elles devraient passer en dessous. !!Solution Ce problème provient à priori du Z index de la feuille de style attachée [[$:/cssNavBar]]. Fixé à 100 les Tiddlers passent "au dessus" de la barre. J'ai fixé cet index à 1000 ce qui résout semble il ce problème.
{ "task": "*task\n*Reacaux" }
icon
\define leaf-node(prefix) <li> <$list filter="""[[$prefix$$(chunk)$]is[shadow]] [[$prefix$$(chunk)$]is[tiddler]] +[removeprefix[$prefix$]] +[limit[1]]""" emptyMessage="""<$text text="$prefix$$(chunk)$"/>"""> <span>{{$:/core/images/file}}</span> <$link to="""$prefix$$(chunk)$"""> <$view field="title"/> </$link> </$list> </li> \end \define branch-node(prefix) <$reveal type="nomatch" text="" default="""$(chunk)$"""> <li> <$list filter="""[all[shadows+tiddlers]prefix[$prefix$$(chunk)$]] -[[$prefix$$(chunk)$]] +[limit[1]]"""> <$reveal type="nomatch" state="""$:/state/tree/$prefix$$(chunk)$""" text="show"> <$button set="""$:/state/tree/$prefix$$(chunk)$""" setTo="show" class="tc-btn-invisible">{{$:/core/images/folder}} """$(chunk)$"""</$button> </$reveal> <$reveal type="match" state="""$:/state/tree/$prefix$$(chunk)$""" text="show"> <$button set="""$:/state/tree/$prefix$$(chunk)$""" setTo="hide" class="tc-btn-invisible">{{$:/core/images/folder}} """$(chunk)$"""</$button> </$reveal> </$list> <$list filter="""[all[shadows+tiddlers]prefix[$prefix$$(chunk)$]] -[[$prefix$$(chunk)$]] +[limit[1]]"""><span>(<$count filter="""[all[shadows+tiddlers]prefix[$prefix$$(chunk)$]] -[[$prefix$$(chunk)$]]"""/>)</span> <$reveal type="match" state="""$:/state/tree/$prefix$$(chunk)$""" text="show"> <$macrocall $name="tree-node" prefix="""$prefix$$(chunk)$"""/> </$reveal> </$list> </li> </$reveal> \end \define tree-node(prefix) <ol> <$list filter="[all[shadows+tiddlers]removeprefix[$prefix$]splitbefore[/]sort[title]] +[!suffix[/]]" variable="chunk"> <<leaf-node """$prefix$""">> </$list> <$list filter="[all[shadows+tiddlers]removeprefix[$prefix$]splitbefore[/]sort[title]] +[suffix[/]]" variable="chunk"> <<branch-node """$prefix$""">> </$list> </ol> \end \define tree(prefix) <div class="tc-tree"> <span><$text text="""$prefix$"""/></span> <div> <$macrocall $name="tree-node" prefix="""$prefix$"""/> </div> </div> \end
<<tree "$:/core/">>
<div style="display: inline-block; margin: 0 2px;"> <$button to=<<currentTiddler>> tooltip=<<currentTiddler>> class="tc-btn-invisible tc-system-image-btn" > <$transclude /> </$button> </div>
<div class="tc-system-image-btn"> <$button to=<<currentTiddler>> class="tc-btn-invisible" > <$transclude /> </$button><$view field="title"/> </div>
\define searchable-list( filter, template:"$:/core/ui/ListItemTemplate", state:"$:/_moro/temp/stare/macro/searchable-list", placeholder: "Search" ) <div> <$edit-text tiddler="$state$" type="search" tag="input" placeholder="$placeholder$" /> <$reveal state="$state$" type="nomatch" text=""> <$button class="tc-btn-invisible tc-image-button"> <$action-setfield $tiddler="$state$" $field="text" $value=""/> {{$:/core/images/close-button}} </$button> </$reveal> </div> <$reveal state="$state$" type="match" text=""> <$list filter="$filter$" template="$template$"/> </$reveal> <$reveal state="$state$" type="nomatch" text=""> <$list filter="$filter$+[search{$state$}]" template="$template$"/> </$reveal> \end `<<searchable-list filter:"[all[shadows]]+[tag[$:/tags/Image]]">>` <<searchable-list filter:"[all[shadows]]+[tag[$:/tags/Image]]">>
.tc-tree div { padding-left: 14px; } .tc-tree ol { list-style-type: none; padding-left: 0; margin-top: 0; } .tc-tree ol ol { padding-left: 1em; } .tc-tree button { color: #acacac; } .tc-tree svg { fill: #acacac; } .tc-tree span svg { width: 1em; height: 1em; vertical-align: baseline; } .tc-tree li span { color: lightgray; }
<<tabs "[tag[System images tab]!has[draft.of]]">>
<div style="max-width: 200px;"> <<searchable-list filter: "[all[shadows+tiddlers]]+[tag[$:/tags/Image]]" template: "$:/_morosanuae/core/ui/system-image-grid-template" >> </div>
<<searchable-list filter: "[all[shadows+tiddlers]]+[tag[$:/tags/Image]]" , template: "$:/_morosanuae/core/ui/system-images-list-template" >>
Logo
``` <$list filter="[all[shadows+tiddlers]tags[]is[system]sort[title]]"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <small class="tc-menu-list-count"><$count filter="[all[current]tagging[]]"/></small> </$list> ``` ;Soit : <$list filter="[all[shadows+tiddlers]tags[]is[system]sort[title]]"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <small class="tc-menu-list-count"><$count filter="[all[current]tagging[]]"/></small> </$list>
.goleft {float: left;} .goright {float: right;} .middle { text-align: center } .left { float: left; } .right { float: right; }
\define extract(tiddler,start:""" """,end:"""ç-noEnd-ç""",prefix:"""""",suffix:"""""", limit:"yes",class:"", rmQuotes:'no' mode:"block") <$vars start="""$start$""" end="""$end$""" prefix="""$prefix$""" suffix="""$suffix$"""> <$set name="tid" filter="[field:title[$tiddler$]]" value="""$tiddler$""" emptyValue=<<currentTiddler>>> <$list variable="fulltext" filter="""[<tid>get[text]addprefix[ ]addsuffix[ç-noEnd-ç]]""" emptyValue="$start$ error: no text field $end$ ç-noEnd-ç"> <$list variable="beforeStart" emptyMessage="filter error" filter="""[<fulltext>splitbefore<start>]"""> <$list variable="firstRest" filter="[<fulltext>removeprefix<beforeStart>]"> <span class="te-summary $class$"> <$macrocall $name="extractSnippet" rest=<<firstRest>> start=<<start>> end=<<end>> prefix=<<prefix>> suffix=<<suffix>> limit="$limit$" rmQuotes='$rmQuotes$' mode="$mode$"/> </span> </$list> </$list> </$list> </$set> </$vars> \end \define extractSnippet(rest,start,end,prefix,suffix,limit,rmQuotes,mode) <$vars text="""$rest$""" start="""$start$""" end="""$end$""" prefix="""$prefix$""" suffix="""$suffix$"""> <$list variable="snippet" filter="""[<text>splitbefore<end>removesuffix<end>]""" emptyValue="summary empty"> <$set name="mymode" filter="""[[$mode$]removeprefix[block]]""" value="blockOutput" emptyValue="inlineOutput"> <$set name="snipify" filter="""[[$mode$]removeprefix[link]]""" value="linkedOutput" emptyValue=<<mymode>>> <$set name="extracted" filter="""[[$rmQuotes$]removeprefix[no]]""" value=<<noQuotes>> emptyValue=<<removeQuotes>>> <$macrocall $name=<<snipify>>/> </$set> </$set> </$set> <$list variable="newRest" filter="""[<text>removeprefix<snippet>removeprefix<end>]""" emptyValue="never empty"> <$set name="unlimited" filter="""[[$limit$]removeprefix[y]]""" emptyValue="checkRest"> <$macrocall $name=<<unlimited>> rest=<<newRest>> start=<<start>> end=<<end>> prefix=<<prefix>> suffix=<<suffix>> limit="$limit$" rmQuotes='$rmQuotes$' mode="$mode$"/> </$set> </$list> </$list> </$vars> \end \define linkedOutput() $(prefix)$[[$(extracted)$]]$(suffix)$ \end \define inlineOutput() $(prefix)$$(extracted)$$(suffix)$ \end \define blockOutput() <span> $(prefix)$$(extracted)$$(suffix)$ </span> \end \define checkRest(rest,start,end,prefix,suffix,limit,rmQuotes,mode) <$set name="text" value="""$rest$"""> <$list variable="beforeStart" filter="""[<text>splitbefore[$start$]]"""> <$set name="proceed" filter="""[<beforeStart>removesuffix[$start$]] +[addsuffix[ç-TestPassed-ç]]""" emptyValue="es"> <$set name="proceedto" filter="""[<proceed>removesuffix[ç-TestPassed-ç]regexp[es]]""" emptyValue="extractSnippet"> <$list variable="newRest" filter="""[<text>removeprefix<beforeStart>]"""> <$macrocall $name=<<proceedto>> rest=<<newRest>> start="""$start$""" end="""$end$""" prefix="""$prefix$""" suffix="""$suffix$""" limit="$limit$" rmQuotes='$rmQuotes$' mode="$mode$"/> </$list> </$set> </$set> </$list> </$set> \end \define es() <span class='summaryend'></span> \end \define removeQuotes() <$vars output=$(snippet)$> <<output>> </$vars> \end \define noQuotes() $(snippet)$ \end <!-- !! Extract Macro Documentation * Version: 0.9.3 ** Bugfix for capturing the beginning of a text with no start parameter ** Minor cleanup * parameters ** tiddler – if not provided, the current tiddler is used ** start and end – text-identifiers that sourround the snippet you want to extract ** prefix and suffix – text to attach to the result ** limit – defaults to "yes" and produces one result, collects all matches if set to "no" ** class – CSS class(es) to append to the surrounding span ** rmQuotes – defaults to 'no', removes surrounding quotes (") when set to "yes" ** mode – defaults to "block", set to "inline" to omit surrounding tags, set to "link" to get links in inline mode !!! Advantages * find content to extract based on common markup or comments * handle wiki syntax where start and end are the same, e.g. `''` or `//` * ''start or end can be omitted when extracting the beginning or to the end of the text'' * to collect several snippets from the same tiddler set limit to "no" --> <!-- !!! FAQ ; The output is something like " end:" – what can I do? : This happens, when you try to extract from the tiddler, where the extract macro is called: the macro call contains the start marker. Solutions: * if you are using a filter, exclude the calling tiddler using ![tiddler] * transclude the macrocall from somewhere else, e.g. from a field in the tiddler ; The list widget produces results only for tiddlers without spaces in the title? : Lists need to be constructed carefully according to the examples below. Macro calls from lists with the parameter `tiddler=<<tiddler>>` and similar work only for titles without spaces. * see: http://tid.li/tw5/hacks.html#Tweeting for a working example * or: http://tid.li/tw5/numbers.html ; Can I use start or end markers containing " (quotes)? : This will not work – but you can remove surrounding quotes by setting rmQuotes to "yes". --> <!-- !!! Procedure – How it Works * get the text field of the tiddler ** cut off everything before the first start tag, including start tag * extract a snippet from the rest ** ''put texts in variables to avoid problems with square brackets'' ** cut after end tag, remove end tag ** prepend prefix, output snippet, append the suffix * check, if limit is "no", else exit via es() ** es() prints an empty span which can be used for design purposes * check the rest ** cut off everything before start tag, including start tag and save in //beforeStart// (contains all text if no start tag is found) ** try to remove start tag from beforeStart, if found, add a confirmation suffix *** no start tag? => exit via es() ** if a start tag exists, proceed with extracting !!! Missing – Ideas for Improvement * allow users to specify an empty-message * support for some kinds of transclusion (e.g. from a tiddler’s own fields) * Possible optimisations (low priority) ** limit to a defined number of loops ** limit to a defined number of chars – this might not be useful as tags could get cut in pieces. -->
\define trad(data) \define trad2(language) <$reveal type="nomatch" state="$language$/myTabs##$data$" text="">{{$language$/myTabs##$data$}}</$reveal><$reveal type="match" state="$language$/myTabs##$data$" text="">$data$</$reveal> <$reveal type="match" state="$:/language" text="$:/languages/en-GB"> $data$ </$reveal> <$reveal type="nomatch" state="$:/language" text="$:/languages/en-GB"> <$reveal type="match" state={{$:/language}} text=""> $data$ </$reveal> <$reveal type="nomatch" state={{$:/language}} text=""> <$macrocall $name="trad2" language={{$:/language}}/> </$reveal> </$reveal> \end <<trad "This is a translation macro">>
\define f2t-toggle() <$vars newlist={{$:/temp/$(currentTiddler)$}} temp="""$:/temp/$(currentTiddler)$"""> <$checkbox field="mode" checked="-edit" unchecked="" default=" " class="f2t-btn" actions="""<$action-createtiddler $basetitle=<<temp>> text={{$(currentTiddler)$!!list}}/>""" uncheckactions="""<$action-setfield $tiddler=<<currentTiddler>> list=<<newlist>> /><$action-deletetiddler $tiddler=<<temp>> />""" > <div class="f2t-btn$(mode)$">{{$:/core/images/edit-button}}</div> </$checkbox> </$vars> \end \define f2t-header() <$list filter=<<fieldnames>>> <th class="f2t-header">{{!!title}}</th> </$list> \end \define f2t-header-edit() <$set name=colspan filter="$(fieldnames)$ +[count[]]"> <td colspan=<<colspan>> class="f2t-td-edit f2t-note"> <$edit-text tiddler="""$:/temp/$(currentTiddler)$""" class="f2t-editor f2t-header-editor" default={{$(currentTiddler)$!!list}} tag=input/> </td> </$set> \end \define f2t-td-edit() <td class="f2t-td-edit"><$edit-text tiddler=<<tid>> field={{!!title}} size=1 class="f2t-editor" placeholder={{!!title}}/></td> \define f2t-td() <td><$transclude tiddler=<<tid>> field={{!!title}} /></td> \define fields2table-inner() <table class="f2t-table"> <tr> <th><<f2t-toggle>></th> <<f2t-header$(mode)$>> </tr> <$list filter="""$(filter)$""" variable=tid> <tr> <td> <$link to=<<tid>>><$view tiddler=<<tid>> field=title/></$link> </td> <$list filter=<<fieldnames>>> <<f2t-td$(mode)$>> </$list> </tr> </$list> </table> \end \define fields2table(filter) <$vars filter="""$filter$""" fieldnames={{!!list}} mode={{!!mode}}> <<fields2table-inner "$filter$">> </$vars> \end
.f2t-table { width:100%; } .f2t-td-edit { padding:0; } .f2t-header { text-transform:capitalize } .f2t-editor { padding-top:0; padding-bottom:0; border:0; outline:1px solid lightgreen; width:100%; padding-left:5px; } .f2t-editor::placeholder { color: lightgreen; } .f2t-header-editor { font-weight:bold; } .f2t-note:before { content:"Note: Headings must use field name format!"; position:absolute; margin-top:-1.5em; color: green; font-style:italic; font-size:80%; } .f2t-btn input { position: absolute; opacity: 0; height: 0; width: 0; } .f2t-btn svg { height:1.4em; float:left; } .f2t-btn-edit svg { background:lightgreen; }
{ "onp-KiwiCeriseClémentine": "Clémentine", "onp-BleuBlancRouge": "Blanc", "onp-OuiNonPeut-être": "Oui", "onp-ABC": "A", "onp-123": "3", "onp-LibertéÉgalitéFraternité": "Égalité" }
\define pourcent(p) $p$% \end \define concat(text,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,19,20) $text$ \end \define puce(tagName) <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> <a xlink:href=#$tagName$ target="_parent" > <style> #pop$tagName$ { pointer-events: none; } </style> <g> <circle id="twcircle$tagName$" r="30" cx="50" cy="50" fill={{$tagName$!!color}} /> <text id="pop$tagName$" x="13.5%" y="40%" font-size="30" fill="#00000044" visibility="visible">$tagName$ </text> </g> </a> <animate xlink:href="#twcircle$tagName$" attributeName="r" from="30" to="20%" dur="1s" begin="mouseover; click + 0.5s" fill="freeze" values="30; 25; 20; 25; 30" id="anim" /> <animate xlink:href="#pop$tagName$" attributeName="opacity" from="1" to="0%" dur="1s" begin="1s" fill="freeze" repeatCount="indefinite" values="1;0; 1" id="animtext" /> </svg> \end \define progress(tagName) <svg width="100%" height="30" viewBox="0 0 100% 36" class="bar-chart" xmlns="http://www.w3.org/2000/svg" > <style> svg.bar-chart text { font: 600 1em/1 'Oswald', sans-serif; } @keyframes progression { 0% { width: 0 100%; } } .bar$tagName$ { fill:{{$tagName$!!color}}22 ; stroke-width: 2.8; stroke-linecap: round; animation: progression 4s ease-out forwards; } .bar2$tagName$ { fill:{{$tagName$!!color}}; stroke-width: 2.8; stroke-linecap: round; animation: progression 2s ease-out forwards; } </style> <g> <rect id="r1" class="bar$tagName$" x="5" y="0" width="100%" height="30" ></rect> <rect id="r$tagName$" class="bar2$tagName$" width={{$tagName$!!pour}} x="5" y="0" height="30"></rect> <text x="10" y="20" font-family="Verdana" font-size="1em" fill="#00000055"> {{$tagName$!!description}} - {{$tagName$!!progress}}%</text> </g> <animate xlink:href="#r$tagName$" attributeName="width" from="0" to={{$tagName$!!pour}} dur="2s" begin="1s;click" fill="freeze" /> </svg> \end \define circular(p,co) <svg width="30" height="30" viewBox="0 0 36 36" class="circular-chart"> <style> .circular-chart { margin: 10px auto; height: auto; max-height: 150px; max-width: 150px; padding: 1em; width: 33%; } svg.circular-chart text { font: 400 0.5em/1 'Oswald', sans-serif; text-anchor: middle; } @keyframes progressionc { 0% { stroke-dasharray: 0 100; } } .circle1 { fill: none; stroke-width: 2.8; stroke-linecap: round; animation: progressionc 4s ease-out forwards; } .circle2 { fill: none; stroke-width: 2.8; stroke-linecap: round; animation: progressionc 2s ease-out forwards; } </style> <path id="c2" class="circle2" stroke=$co$22 stroke-dasharray="100, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831" /> <path id="c1" class="circle1" stroke=$co$ stroke-dasharray="$p$, 100" d="M18 2.0845 a 15.9155 15.9155 0 0 1 0 31.831 a 15.9155 15.9155 0 0 1 0 -31.831" /><text x="50%" y="56%" fill=$co$88 >$p$%</text> </svg> \end
\define texte(class:"C" texte:"" taille:"1em") <style> .$C$ { font-size:$taille$ } </style> <span class=$C$>$texte$</span> \end
/*\ title: $:/.tb/demo/example.js type: application/javascript module-type: macro <<examplemacro>> <<examplemacro "foo bar">> \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* An example js macro rendering an internal link. */ exports.name = "examplemacro"; exports.params = [ { name: "tid" } ]; /* Run the macro */ exports.run = function(tid) { var tid = tid || "GettingStarted", output ="[[" + tid + "]]"; return output; }; })();
(function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* enables js via <<script>> and disables with <<script 0>> */ exports.name = "script"; exports.params = [ {name: "run"}, ]; /* Run the macro */ exports.run = function(run) { var off = run ? run.toLowerCase() : false; if(off && ["0","no","off","false"].indexOf(off) > -1) { $tw.config.htmlUnsafeElements = ["script"]; } else { $tw.config.htmlUnsafeElements = []; } return ""; }; })();
\define searchInField(field, for, ci) <$list filter="[!is[shadow]!is[system]regexp:$field$[$for$$ci$]limit[1]]"> <dt>$field$</dt> </$list> <$list filter="[!is[shadow]!is[system]regexp:$field$[$for$$ci$]]"> <dd><$link><$view field="title"/></$link></dd> </$list> \end <style>.tc-advanced-search-check imput {width:auto !important;}</style> Search in fields... <span class="tc-advanced-search-check"><$checkbox field="case-insensitive" tiddler="$:/temp/advancedsearch" checked="(?i)"> case insensitive</$checkbox></span> <div class="tc-search"> <$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/> <$select field="field" tiddler="$:/temp/advancedsearch" default=""> <option value="">*any</option> <$list filter="[!is[shadow]!is[system]fields[]sort[]]" variable="field"> <option value=<<field>>><<field>></option> </$list> </$select> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/advancedsearch" $field="text" $value=""/> {{$:/core/images/close-button}} </$button> </$reveal> </div> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$reveal state="$:/temp/advancedsearch!!field" type="match" text=""> <dl> <$list filter="[!is[shadow]!is[system]fields[]]" variable="field"> <$reveal type=nomatch text=text default=<<field>>> <$macrocall $name="searchInField" field=<<field>> for={{$:/temp/advancedsearch}} ci={{$:/temp/advancedsearch!!case-insensitive}}/> </$reveal> </$list> </dl> </$reveal> <$reveal state="$:/temp/advancedsearch!!field" type="nomatch" text=""> <dl> <$macrocall $name="searchInField" field={{$:/temp/advancedsearch!!field}} for={{$:/temp/advancedsearch}} ci={{$:/temp/advancedsearch!!case-insensitive}}/> </dl> </$reveal> </$reveal>
<$list filter="[all[current]has[statut]]"> <$transclude field="statut" mode="block"/></$list> <$list filter="[all[current]has[summary]]"> @@color:grey; //<$transclude field="summary" mode="block"/> //@@ </$list> <$list filter="[all[current]has[description]]"> @@color:grey; //<$transclude field="description" mode="block"/> //@@ </$list> <$list filter="[all[current]has[url]]"> <$transclude field="url" mode="block"/> </$list>
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='1000px'></$radio> </td> <td align="center"> 1000px </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal4" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-118}} </td> </$reveal>
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='1200px'></$radio> </td> <td align="center"> 1200px </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal3" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-117}} </td> </$reveal>
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='1500px'></$radio> </td> <td align="center"> 1500px </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal2" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-116}} </td> </$reveal>
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='600px'> </$radio> </td> <td align="center"> 600px </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal7" text="show"><$button set="$:/state/SampleRowReveal7" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal7" text="show"><$button set="$:/state/SampleRowReveal7" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal7" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-121}} </td> </$reveal>
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='770px'></$radio> </td> <td align="center"> 770px </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal6" text="show"><$button set="$:/state/SampleRowReveal6" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal6" text="show"><$button set="$:/state/SampleRowReveal6" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal6" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-120}} </td> </$reveal>
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='900px'></$radio> </td> <td align="center"> 900px </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal5" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-119}} </td> </$reveal>
Contenu du Tiddler $:/A
<div align="center"> !Frame your website as you like ! </div> Bonjour et bienvenue sur le wiki ~TiddlyFrame. Voici quelques informations préalables issues de la documentation concernant l'utilisation de ce wiki. <$details summary="Remerciements"> {{$:/doc-user-065}} </$details> <$details summary="Se connecter (Optionnel)"> {{$:/doc-user-063}} </$details> <$details summary="Importer ce wiki"> {{$:/doc-user-064}} </$details> <$details summary="Qu'est-ce que TiddlyFrame"> {{$:/doc-user-066}} </$details> <$details summary="Contenu de la version française de TiddlyFrame"> {{$:/doc-user-062}} </$details> <$details summary="Utiliser la Documentation"> {{$:/doc-user-067}} </$details> <$details summary="Par où commencer"> {{$:/doc-user-069}} </$details> <$details summary="Plus d'Informations ?"> {{$:/doc-user-070}} </$details> <$details summary="RoadMap"> {{$:/doc-user-071}} </$details>
\define notesTiddler() $(currentTiddler)$: Notes \define notesTags() [[$(currentTiddler)$]] Notes <$button class="tc-btn-invisible" popup=<<qualify "$:/temp/notesTiddler">> tooltip="Annoter"><$action-setfield $tiddler=<<notesTiddler>> tags=<<notesTags>>/>{{$:/new_notes_icon.svg}}</$button> <$reveal state=<<qualify "$:/temp/notesTiddler">> type="popup" text="" position="bottom right" default="" class="tc-popup-keep tc-block-dropdown"> <div class="container_notes"> <div class="close_note"> <$button class="tc-btn-invisible"> <$action-deletetiddler $tiddler=<<qualify "$:/temp/notesTiddler">> /> X</$button> </div> <div class="heading_note" > <$view tiddler=<<notesTiddler>> field="title" /> </div> <div style="clear: both;" ></div> </div> <div class="container_notes"> <div> <$edit-text class="notes" tiddler=<<notesTiddler>> default="" tag="textarea" /> </div> </div> </$reveal> <!-- Le code original position="above" remplacé par position="under" -->
\define visibility(tiddler) $:/config/ViewToolbarButtons/Visibility/$tiddler$ \define admin() <$button class="tc-btn-big-green admin"><i class="fa fa-toggle-on" aria-hidden="true"></i> Se déconnecter <!-- hide buttons --> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/more-tiddler-actions">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/edit">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/close">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/plugins/danielo/encryptTiddler/crypt-button">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/plugins/ajh/favorites/template">> text="hide" /> <!-- Cacher le Menu gauche --> <$fieldmangler tiddler="$:/plugins/TWaddle/LeftBar/Toggle"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageTemplate'/> </$fieldmangler> <!-- clear cache --> <$action-setfield $tiddler="$:/temp/verlauf" text="" /> <$action-setfield $tiddler="$:/HistoryList" text="" /> <$action-setfield $tiddler="$:/temp/search" text="" /> <!-- set switch --> <$action-setfield $tiddler="$:/admin/switch" text="web" /> <!-- set sidebar --> <$action-setfield $tiddler="$:/state/sidebar" text={{$:/user/config!!show-sidebar}} /> <!-- hide chevron --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="" /> <!-- Cacher la barre de navigation --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Cacher le menu dans la barre de navigation --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- hide page toolbar buttons --> <$fieldmangler tiddler="$:/core/ui/Buttons/close-all"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageControls'/> </$fieldmangler> <$fieldmangler tiddler="$:/admin/Buttons/mode-web"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageControls'/> </$fieldmangler> <!-- hide Contenus tab --> <!-- save wiki --> <$action-sendmessage $message="tm-save-wiki" /> </$button> <br> \end <$macrocall $name={{$:/admin/switch}} />
/*Fenêtre de connexion*/ .tc-modal { margin-top: 5em; border-radius: 8px; text-align: center; background: #f4f4f4; width: 30%; position: fixed; left: 35%; right: 35%; } /*Identifiants*/ .login { padding: 5px; border-radius: 2px; border: solid 1px #b3b3b3; } /*Bouton se connecter*/ .connect { font-size: 1.1em; width: 60%; text-decoration: none; background-color: #468cd2; border-radius: 2px; } .connect:hover { background-color: #3070cf; } /*Boutons admin*/ .admin { font-size: 0.9em; text-decoration: none; background-color: #468cd2; border-radius: 4px; } .admin:hover { background-color: #3070cf; } /*Bouton Affichage*/ .bta:hover { color: #2c66beff; } /*Titres settings*/ .titleset { font-size: 1.1em; color: #2c66be; border-bottom: solid #DBD9E2; border-width: 0px 0px 1px 0px; } /*Boutons modules*/ .btmod { font-size: 0.8em; } .btemod:hover { background-color: #f2f2f2; } /*Aspect des tiddlers config*/ .cadre { padding: 10px; margin: 15px -2px 15px -2px; background: #f2f2f2; border-radius: 2px; } /*Colonne module profile*/ .colpro { float: left; width: 160px; } /*Tableau module profile*/ .tabpro td { width: 345px; padding: 8px; } /*Scrollbox*/ .tc-scrollable { height: 350px; } /*Aide*/ .help { padding: 10px; background: #ffff99; border-radius: 15px; border: 1px solid #ccc; }
\define visibility(tiddler) $:/config/ViewToolbarButtons/Visibility/$tiddler$ \define admin() <$button class="tc-btn-invisible" tooltip="Déconnexion Admin"> {{$:/core/images/right-arrow}} <!-- hide buttons --> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/more-tiddler-actions">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/edit">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/close">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/plugins/danielo/encryptTiddler/crypt-button">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/plugins/ajh/favorites/template">> text="hide" /> <!-- Cacher le Menu gauche --> <$fieldmangler tiddler="$:/plugins/TWaddle/LeftBar/Toggle"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageTemplate'/> </$fieldmangler> <!-- clear cache --> <$action-setfield $tiddler="$:/temp/verlauf" text="" /> <$action-setfield $tiddler="$:/HistoryList" text="" /> <$action-setfield $tiddler="$:/temp/search" text="" /> <!-- set switch --> <$action-setfield $tiddler="$:/admin/switch" text="web" /> <!-- set sidebar --> <$action-setfield $tiddler="$:/state/sidebar" text={{$:/user/config!!show-sidebar}} /> <!-- hide chevron --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="" /> <!-- Cacher la barre de navigation --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Cacher le menu dans la barre de navigation --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- hide page toolbar buttons --> <$fieldmangler tiddler="$:/admin/Buttons/mode-web"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageControls'/> </$fieldmangler> <$fieldmangler tiddler="$:/core/ui/Buttons/close-all"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageControls'/> </$fieldmangler> <!-- save wiki --> <$action-sendmessage $message="tm-save-wiki" /> </$button> <$macrocall $name={{$:/admin/switch}} />
<div style="font-size:4em;"> {{$:/user/profile!!icon}} </div> <br> <form> <i class="fa fa-user" aria-hidden="true"></i> <$edit-text tiddler='$:/temp/profile' field='user-name' placeholder="Nom d'utilisateur" tag="input" class="login" type="text"/> <i class="fa fa-lock" aria-hidden="true"></i> <$edit-text tiddler='$:/temp/profile' field='password' placeholder="Mot de passe" tag="input" class="login" type="password"/> <br> <$reveal type='match' state='$:/temp/profile!!user-name' text={{$:/user/profile!!user-name}}> <$reveal type='match' state='$:/temp/profile!!password' text={{$:/user/profile!!password}}> {{$:/admin/connect/Buttons/mode-admin}} </$reveal> </$reveal> </form>
\define visibility(tiddler) $:/config/ViewToolbarButtons/Visibility/$tiddler$ \define web() <$button class="tc-btn-big-green connect"><i class="fa fa-sign-in" aria-hidden="true"></i> Se connecter <!-- set switch --> <$action-setfield $tiddler="$:/admin/switch" text="admin" /> <!-- show buttons --> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/more-tiddler-actions">> text="show" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/edit">> text="show" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/close">> text="show" /> <$action-setfield $tiddler=<<visibility "$:/plugins/danielo/encryptTiddler/crypt-button">> text="show" /> <$action-setfield $tiddler=<<visibility "$:/plugins/ajh/favorites/template">> text="show" /> <!-- Voir le Menu gauche --> <$fieldmangler tiddler="$:/plugins/TWaddle/LeftBar/Toggle"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/PageTemplate'/> </$fieldmangler> <!-- show sidebar --> <$action-setfield $tiddler="$:/state/sidebar" text="yes" /> <!-- show chevron --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="$:/tags/TopRightBar" /> <!-- Voir la barre de navigation --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Voir le menu dans la barre de navigation --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- show page toolbar buttons --> <$fieldmangler tiddler="$:/core/ui/Buttons/close-all"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/PageControls'/> </$fieldmangler> <$fieldmangler tiddler="$:/admin/Buttons/mode-web"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/PageControls'/> </$fieldmangler> <!-- show Contenus tab --> <$action-setfield $tiddler='$:/temp/profile' user-name='' password=''/> <$action-sendmessage $message='tm-close-tiddler' $param="$:/admin/connect"/> </$button> <$macrocall $name={{$:/admin/switch}} />
<i class="fa fa-user" aria-hidden="true"></i> <$edit-text tiddler='$:/temp/profile' field='user-name' placeholder="Nouveau nom d'utilisateur" tag="input" type=" "/> <i class="fa fa-lock" aria-hidden="true"></i> <$edit-text tiddler='$:/temp/profile' field='password' placeholder="Nouveau mot de passe" tag="input" type="password"/> <i class="fa fa-lock" aria-hidden="true"></i> <$edit-text tiddler='$:/temp/profile' field='password-conf' placeholder="Confirmer le mot de passe" tag="input" type="password"/> <br> <$reveal type='nomatch' state='$:/temp/profile!!user-name' text=""> <$reveal type='nomatch' state='$:/temp/profile!!password' text=""> <$reveal type='match' state='$:/temp/profile!!password-conf' text={{$:/temp/profile!!password}}> {{$:/admin/identity/Buttons/change}} </$reveal> </$reveal> </$reveal>
<$button class="tc-btn-big-green connect" message="tm-notify" param="$:/admin/identity/notify"><i class="fa fa-key" aria-hidden="true"></i> Changer <$action-setfield $tiddler="$:/user/profile" user-name={{$:/temp/profile!!user-name}} /> <$action-setfield $tiddler="$:/user/profile" password={{$:/temp/profile!!password}} /> <$action-setfield $tiddler='$:/temp/profile' user-name='' password='' password-conf=''/> <$action-sendmessage $message='tm-close-tiddler' $param="$:/admin/identity"/> </$button>
<div class="cadre"> !!!Utilisateur <div class="colpro"> <div style="font-size:3em; text-align:center"> {{$:/user/profile!!icon}} </div> <div style="text-align:center"> <$view tiddler="$:/user/profile" field="user-name"/> </div> </div> |tabpro|k |Nom d'utilisateur : |<$view tiddler="$:/user/profile" field="user-name"/> | |Mot de passe : |•••••••••• | |Avatar : <span style="float:right"><a href="http://fontawesome.io/icons/" target="_blank" style="color:#000000"><i class="fa fa-font-awesome" aria-hidden="true" title="Icônes Font Awesome"></i></a></span> |<$edit-text class='tc-edit-texteditor' tiddler='$:/user/profile' field='icon'/> | <div style="margin-left: 150px;"> <$button class="tc-btn-big-green admin" message="tm-modal" param="$:/admin/identity"> <i class="fa fa-lock" aria-hidden="true"></i> Changer d'identifiants </$button> </div> </div>
web
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details>
{{$:/Administration||caption}}
<tr> <td> <$link to="$:/Afficher en PopUp/Cacher le bouton d'accès au contenu de la SideBar">{{$:/core/images/SideBarTabs}} Afficher en PopUp/Cacher le bouton d'accès au contenu de la ~SideBar.</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/Buttons/SideBarTabs' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal20" text="show"><$button set="$:/state/SampleRowReveal20" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal20" text="show"><$button set="$:/state/SampleRowReveal20" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal20" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-027}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher l'onglet Commentaires">Afficher l'onglet Commentaires <<dbadge "Version" "5.1.18" success>></$link> </td> <td align="center"> <$checkbox tiddler='$:/plugins/tiddlywiki/comments/sidebar' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar29" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar29" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar29" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar29" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar29" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-108}} </td> </$reveal>
<tr> <td> [[Afficher l'onglet Contrôles|$:/core/ui/Sidebar/Paramètres]] </td> <td align="center"> <$checkbox tiddler='$:/core/ui/Sidebar/Paramètres' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked="" /> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal5" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-015}} </td> </$reveal>
<tr> <td> [[Afficher l'onglet Menu|$:/ButtonNewMenu]] </td> <td align="center"> <$checkbox tiddler='$:/ButtonNewMenu' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal9" text="show"><$button set="$:/state/SampleRowReveal9" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal9" text="show"><$button set="$:/state/SampleRowReveal9" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal9" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-016}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher l'onglet More"> Afficher l'onglet More (plus)</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBar/More' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar06" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar06" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar06" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar06" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar06" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-104}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher l'onglet Open"> Afficher l'onglet open</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBar/Open' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar07" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar07" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar07" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar07" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar07" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-105}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher l'onglet Recent"> Afficher l'onglet Recent</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBar/Recent' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar08" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar08" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar08" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar08" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar08" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-106}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher l'onglet Sommaire"> Afficher l'onglet Sommaire</$link> </td> <td align="center"> <$checkbox tiddler='TableOfContents' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar05" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar05" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar05" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar05" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar05" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-103}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher l'onglet Tools"> Afficher l'onglet Tools (Outils)</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBar/Tools' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar09" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar09" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar09" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar09" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar09" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-107}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher la barre de recherche"> {{$:/core/images/advanced-search-button}} Afficher la barre de recherche</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBarSegments/search' tag='$:/tags/SideBarSegment' checked='$:/tags/SideBarSegment' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar23" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar23" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar23" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar23" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar23" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-136}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher la barre de recherche aux boutons de contrôle"><i class="fa fa-search"></i> Afficher la barre de recherche aux boutons de contrôle</$link> </td> <td align="center"> <$checkbox tiddler='SearchBtnVisu' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal21" text="show"><$button set="$:/state/SampleRowReveal21" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal21" text="show"><$button set="$:/state/SampleRowReveal21" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal21" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-055}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher la bordure">Afficher la bordure</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssNavBar' field='navbar-border' checked=solid unchecked=none/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav06" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav06" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav06" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav06" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav06" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-005}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher la SideBar si déconnecté"> Afficher la ~SideBar si déconnecté</$link> </td> <td align="center"> <$checkbox tiddler='$:/user/config' field='show-sidebar' checked='yes' unchecked=no/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar22" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar22" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar22" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar22" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar22" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-026}} </td> </$reveal>
<tr> <td> {{$:/core/images/cancel-button}} Afficher le bouton Cancel </td> <td align="center"> <$checkbox tiddler='$:/config/EditToolbarButtons/Visibility/$:/core/ui/Buttons/cancel' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal40" text="show"><$button set="$:/state/SampleRowReveal40" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal40" text="show"><$button set="$:/state/SampleRowReveal40" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal40" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-165}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton Close">{{$:/core/images/close-button}} Afficher le bouton Close</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal12" text="show"><$button set="$:/state/SampleRowReveal12" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal12" text="show"><$button set="$:/state/SampleRowReveal12" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal12" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-162}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton d'édition">{{$:/core/images/edit-button}} Afficher le bouton d'édition</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal8" text="show"><$button set="$:/state/SampleRowReveal8" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal8" text="show"><$button set="$:/state/SampleRowReveal8" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal8" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-052}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton d'encryption de la barre d'outils">Afficher le bouton d'encryption de la barre d'outils</$link> </td> <td align="center"> <$checkbox tiddler='$:/plugins/danielo/encryptTiddler/crypt-button' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal16" text="show"><$button set="$:/state/SampleRowReveal16" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal16" text="show"><$button set="$:/state/SampleRowReveal16" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal16" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-053}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton de contrôle"> {{$:/core/images/options-button}} Afficher le bouton de contrôle</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar17" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar17" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar17" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar17" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar17" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-110}} </td> </$reveal>
<tr> <td> {{$:/core/images/delete-button}} Afficher le bouton Delete </td> <td align="center"> <$checkbox tiddler='$:/config/EditToolbarButtons/Visibility/$:/core/ui/Buttons/delete' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal38" text="show"><$button set="$:/state/SampleRowReveal38" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal38" text="show"><$button set="$:/state/SampleRowReveal38" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal38" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-163}} </td> </$reveal>
<tr> <td> {{$:/core/images/done-button}} Afficher le bouton Done </td> <td align="center"> <$checkbox tiddler='$:/config/EditToolbarButtons/Visibility/$:/core/ui/Buttons/done' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal42" text="show"><$button set="$:/state/SampleRowReveal42" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal42" text="show"><$button set="$:/state/SampleRowReveal42" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal42" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-167}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton Info">{{$:/core/images/info-button}} Afficher le bouton Info</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal10" text="show"><$button set="$:/state/SampleRowReveal10" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal10" text="show"><$button set="$:/state/SampleRowReveal10" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal10" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-159}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton Nouveau Tiddler"> {{$:/core/images/new-button}} Afficher le bouton Nouveau Tiddler</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar13" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar13" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar13" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar13" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar13" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-155}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton Panneau de contrôle aux boutons de contrôle"> {{$:/core/images/options-button}} Afficher le bouton Panneau de contrôle aux boutons de contrôle.</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/Buttons/control-panel' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal19" text="show"><$button set="$:/state/SampleRowReveal19" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal19" text="show"><$button set="$:/state/SampleRowReveal19" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal19" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-125}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton Sauvegarder le wiki aux boutons de contrôle">{{$:/core/images/save-button}} Afficher le bouton Sauvegarder le wiki aux boutons de contrôle.</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/Buttons/save-wiki' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal18" text="show"><$button set="$:/state/SampleRowReveal18" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal18" text="show"><$button set="$:/state/SampleRowReveal18" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal18" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-093}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton Sauver"> {{$:/core/images/save-button}} Afficher le bouton Sauver</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/save-wiki' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar15" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar15" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar15" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar15" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar15" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-109}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le bouton SideBarTabs"> {{$:/core/images/SideBarTabs}} Tables de la Sidebar en popup</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/SideBarTabs' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar19" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar19" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar19" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar19" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar19" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-111}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le fil sur chaque Tiddler">Afficher le fil sur chaque Tiddler</$link> </td> <td align="center"> <$checkbox tiddler='$:/Tiddler Breadcrumbs Template' tag='$:/tags/ViewTemplate'></$checkbox> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/ari01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari01" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/ari01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari01" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/ari01" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-045}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le pied de page">Afficher le pied de page</$link> </td> <td align="center"> <$checkbox tiddler="$:/PageFooter" tag="$:/tags/BelowStory"></$checkbox> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int03" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int03" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int03" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-034}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le slogan">Afficher l'en-tête</$link> </td> <td align="center"> <$checkbox tiddler="$:/SiteHeader" tag="$:/tags/AboveStory"></$checkbox> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int04" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int04" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int04" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-041}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le sous-titre du wiki">Afficher le sous-titre du wiki</$link> </td> <td align="center"> <$checkbox tiddler='$:/centralisation/css' field='site-subtitle' checked='yes' unchecked=none/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int02" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int02" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int02" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-033}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le sous-titre du wiki dans la SideBar"> Afficher le sous-titre du wiki dans la Sidebar</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBarSegments/site-subtitle' tag='$:/tags/SideBarSegment' checked='$:/tags/SideBarSegment' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar30" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar30" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar30" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar30" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar30" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-008}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le titre du wiki">Afficher le titre du wiki</$link> </td> <td align="center"> <$checkbox tiddler='$:/centralisation/css' field='site-title' checked='yes' unchecked=none/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int01" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int01" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int01" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-032}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher le titre du wiki dans la SideBar"> Afficher le titre du wiki dans la Sidebar</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/SideBarSegments/site-title' tag='$:/tags/SideBarSegment' checked='$:/tags/SideBarSegment' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar30" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar30" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar30" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar30" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar30" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-007}} </td> </$reveal>
\define wsconfig(name) $:/config/Whitespace/$name$ \define drop-actions() <$action-listops $tiddler="$:/tags/SideBar" $subfilter="+[insertbefore:currentTiddler<actionTiddler>]"/> \end <tr> <td> <$link to="$:/Afficher les boutons au survol souris">Afficher les boutons au survol souris</$link> </td> <td align="center"> <$checkbox tiddler=<<wsconfig Spacious>> field="text" checked="yes" unchecked="no" default="yes"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal7" text="show"><$button set="$:/state/SampleRowReveal7" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal7" text="show"><$button set="$:/state/SampleRowReveal7" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal7" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-039}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher les tags du tiddler">Afficher les tags du tiddler</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/ViewTemplate/tags' tag='$:/tags/ViewTemplate' checked='$:/tags/ViewTemplate' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal6" text="show"><$button set="$:/state/SampleRowReveal6" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal6" text="show"><$button set="$:/state/SampleRowReveal6" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal6" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-051}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher une ligne de séparation sous le titre du tiddler">Afficher une ligne de séparation sous le titre du tiddler</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/ViewTemplate/blackline' tag='$:/tags/ViewTemplate' checked='$:/tags/ViewTemplate' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal5" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-024}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Cacher la barre de navigation">Afficher la barre de navigation</$link> </td> <td align="center"> <$reveal type="match" state="$:/state/navbar" text="show"> <$button set="$:/state/navbar" setTo="hide" class="tc-btn-invisible"> <$fieldmangler tiddler="$:/cssNavBar"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <input type="checkbox" checked /> </$button> <!--[[ Afficher/Supprimer la barre de navigation|$:/navbar/button]]--> </$reveal> <$reveal type="nomatch" state="$:/state/navbar" text="show"> <$button set="$:/state/navbar" setTo="show" class="tc-btn-invisible"> <$fieldmangler tiddler="$:/cssNavBar"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <input type="checkbox" /> </$button> <!--[[ Afficher/Supprimer la barre de navigation|$:/navbar/button]]--> </$reveal> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav01" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav01" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav01" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-001}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Retirer le bouton Stycky Notes">{{$:/new_notes_icon.svg}} Afficher/Retirer le bouton Stycky Notes</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/ViewTemplate/note' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal22" text="show"><$button set="$:/state/SampleRowReveal22" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal22" text="show"><$button set="$:/state/SampleRowReveal22" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal22" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-010}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Supprimer le bouton de gestion des tags en mode visu">{{$:/plugins/tongerner/toolbar/images/tagging}} Afficher/Supprimer le bouton de gestion des tags en mode visu</$link> </td> <td align="center"> <$checkbox tiddler='$:/config/ViewToolbarButtons/Visibility/$:/plugins/tongerner/toolbar/buttons/toggle-tagging' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal14" text="show"><$button set="$:/state/SampleRowReveal14" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal14" text="show"><$button set="$:/state/SampleRowReveal14" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal14" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-123}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Supprimer le menu de la barre de navigation">Afficher/Supprimer le menu de la barre de navigation</$link> </td> <td align="center"> <$checkbox tiddler='$:/NavBarContent' tag='$:/tags/TopLeftBar' checked='$:/tags/SideBar' unchecked=""/><!-- [[Afficher/Supprimer le menu de la barre de navigation|$:/NavBarContent]]--> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav02" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav02" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav02" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-002}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Supprimer le sous-titre des tiddlers">Afficher/Supprimer le sous-titre des tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/ViewTemplate/subtitle' tag='$:/tags/ViewTemplate' checked='$:/tags/ViewTemplate' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal4" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-050}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Supprimer les boutons de contrôle des tiddlers">Afficher/Supprimer les boutons de contrôle des tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/ViewTemplate/titleControls' tag='$:/tags/ViewTemplate' checked='$:/tags/ViewTemplate' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal3" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-122}} </td> </$reveal>
<tr> <td> <$link to="$:/Afficher/Supprimer titres des tiddlers">Afficher/Supprimer titres des tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/ViewTemplate/titleTitle' tag='$:/tags/ViewTemplate' checked='$:/tags/ViewTemplate' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal1" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-092}} </td> </$reveal>
<tr> <td> {{$:/plugins/tongerner/toolbar/images/fields}} Afficher/upprimer le bouton de gestion des champs en mode visu </td> <td align="center"> <$checkbox tiddler='$:/config/ViewToolbarButtons/Visibility/$:/plugins/tongerner/toolbar/buttons/toggle-field-handling' field='text' checked='show' unchecked=hide/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal15" text="show"><$button set="$:/state/SampleRowReveal15" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal15" text="show"><$button set="$:/state/SampleRowReveal15" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal15" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-124}} </td> </$reveal>
\define lingo-base() $:/language/ThemeTweaks/ <tr> <td> <$link to="$:/Agencement de la barre latérale"> Agencement de la ~SideBar</$link> </td> <td> <$select tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout"><option value="fixed-fluid"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value="fluid-fixed"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar04" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar04" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar04" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-021}} </td> </$reveal>
<tr> <td> <$link to="$:/Ajouter Créer un nouveau Tiddler aux boutons de contrôle">{{$:/core/images/new-button}} Ajouter "Créer un nouveau Tiddler" aux boutons de contrôle</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/Buttons/new-tiddler' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal17" text="show"><$button set="$:/state/SampleRowReveal17" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal17" text="show"><$button set="$:/state/SampleRowReveal17" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal17" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-054}} </td> </$reveal>
<tr> <td> <$link to="$:/Ajouter Ombre portée aux bordures"> Ajouter Ombre portée aux bordures</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssTiddlersShadowBorderHover' tag='$:/tags/Stylesheet' checked='$:/tags/Stylesheet ' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal27" text="show"><$button set="$:/state/SampleRowReveal27" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal27" text="show"><$button set="$:/state/SampleRowReveal27" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal27" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-127}} </td> </$reveal>
@charset "UTF-8"; /*! * animate.css -http://daneden.me/animate * Version - 3.5.1 * Licensed under the MIT license - http://opensource.org/licenses/MIT * * Copyright (c) 2016 Daniel Eden */ .animated { -webkit-animation-duration: 1s; animation-duration: 1s; -webkit-animation-fill-mode: both; animation-fill-mode: both; } .animated.infinite { -webkit-animation-iteration-count: infinite; animation-iteration-count: infinite; } .animated.hinge { -webkit-animation-duration: 2s; animation-duration: 2s; } .animated.flipOutX, .animated.flipOutY, .animated.bounceIn, .animated.bounceOut { -webkit-animation-duration: .75s; animation-duration: .75s; } @-webkit-keyframes bounce { from, 20%, 53%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0,-4px,0); transform: translate3d(0,-4px,0); } } @keyframes bounce { from, 20%, 53%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); -webkit-transform: translate3d(0,0,0); transform: translate3d(0,0,0); } 40%, 43% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -30px, 0); transform: translate3d(0, -30px, 0); } 70% { -webkit-animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); -webkit-transform: translate3d(0, -15px, 0); transform: translate3d(0, -15px, 0); } 90% { -webkit-transform: translate3d(0,-4px,0); transform: translate3d(0,-4px,0); } } .bounce { -webkit-animation-name: bounce; animation-name: bounce; -webkit-transform-origin: center bottom; transform-origin: center bottom; } @-webkit-keyframes flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } } @keyframes flash { from, 50%, to { opacity: 1; } 25%, 75% { opacity: 0; } } .flash { -webkit-animation-name: flash; animation-name: flash; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes pulse { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes pulse { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 50% { -webkit-transform: scale3d(1.05, 1.05, 1.05); transform: scale3d(1.05, 1.05, 1.05); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .pulse { -webkit-animation-name: pulse; animation-name: pulse; } @-webkit-keyframes rubberBand { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(.95, 1.05, 1); transform: scale3d(.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, .95, 1); transform: scale3d(1.05, .95, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes rubberBand { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 30% { -webkit-transform: scale3d(1.25, 0.75, 1); transform: scale3d(1.25, 0.75, 1); } 40% { -webkit-transform: scale3d(0.75, 1.25, 1); transform: scale3d(0.75, 1.25, 1); } 50% { -webkit-transform: scale3d(1.15, 0.85, 1); transform: scale3d(1.15, 0.85, 1); } 65% { -webkit-transform: scale3d(.95, 1.05, 1); transform: scale3d(.95, 1.05, 1); } 75% { -webkit-transform: scale3d(1.05, .95, 1); transform: scale3d(1.05, .95, 1); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .rubberBand { -webkit-animation-name: rubberBand; animation-name: rubberBand; } @-webkit-keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } @keyframes shake { from, to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } 10%, 30%, 50%, 70%, 90% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 20%, 40%, 60%, 80% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } } .shake { -webkit-animation-name: shake; animation-name: shake; } @-webkit-keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-transform: translateX(0); transform: translateX(0); } } @keyframes headShake { 0% { -webkit-transform: translateX(0); transform: translateX(0); } 6.5% { -webkit-transform: translateX(-6px) rotateY(-9deg); transform: translateX(-6px) rotateY(-9deg); } 18.5% { -webkit-transform: translateX(5px) rotateY(7deg); transform: translateX(5px) rotateY(7deg); } 31.5% { -webkit-transform: translateX(-3px) rotateY(-5deg); transform: translateX(-3px) rotateY(-5deg); } 43.5% { -webkit-transform: translateX(2px) rotateY(3deg); transform: translateX(2px) rotateY(3deg); } 50% { -webkit-transform: translateX(0); transform: translateX(0); } } .headShake { -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; -webkit-animation-name: headShake; animation-name: headShake; } @-webkit-keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } @keyframes swing { 20% { -webkit-transform: rotate3d(0, 0, 1, 15deg); transform: rotate3d(0, 0, 1, 15deg); } 40% { -webkit-transform: rotate3d(0, 0, 1, -10deg); transform: rotate3d(0, 0, 1, -10deg); } 60% { -webkit-transform: rotate3d(0, 0, 1, 5deg); transform: rotate3d(0, 0, 1, 5deg); } 80% { -webkit-transform: rotate3d(0, 0, 1, -5deg); transform: rotate3d(0, 0, 1, -5deg); } to { -webkit-transform: rotate3d(0, 0, 1, 0deg); transform: rotate3d(0, 0, 1, 0deg); } } .swing { -webkit-transform-origin: top center; transform-origin: top center; -webkit-animation-name: swing; animation-name: swing; } @-webkit-keyframes tada { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes tada { from { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } 10%, 20% { -webkit-transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); } 30%, 50%, 70%, 90% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); } 40%, 60%, 80% { -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); } to { -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .tada { -webkit-animation-name: tada; animation-name: tada; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes wobble { from { -webkit-transform: none; transform: none; } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { -webkit-transform: none; transform: none; } } @keyframes wobble { from { -webkit-transform: none; transform: none; } 15% { -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); } 30% { -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); } 45% { -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); } 60% { -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); } 75% { -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); } to { -webkit-transform: none; transform: none; } } .wobble { -webkit-animation-name: wobble; animation-name: wobble; } @-webkit-keyframes jello { from, 11.1%, to { -webkit-transform: none; transform: none; } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); transform: skewX(-0.78125deg) skewY(-0.78125deg); } 77.7% { -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); transform: skewX(0.390625deg) skewY(0.390625deg); } 88.8% { -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } @keyframes jello { from, 11.1%, to { -webkit-transform: none; transform: none; } 22.2% { -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); transform: skewX(-12.5deg) skewY(-12.5deg); } 33.3% { -webkit-transform: skewX(6.25deg) skewY(6.25deg); transform: skewX(6.25deg) skewY(6.25deg); } 44.4% { -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); transform: skewX(-3.125deg) skewY(-3.125deg); } 55.5% { -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); transform: skewX(1.5625deg) skewY(1.5625deg); } 66.6% { -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); transform: skewX(-0.78125deg) skewY(-0.78125deg); } 77.7% { -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); transform: skewX(0.390625deg) skewY(0.390625deg); } 88.8% { -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); transform: skewX(-0.1953125deg) skewY(-0.1953125deg); } } .jello { -webkit-animation-name: jello; animation-name: jello; -webkit-transform-origin: center; transform-origin: center; } @-webkit-keyframes bounceIn { from, 20%, 40%, 60%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(.97, .97, .97); transform: scale3d(.97, .97, .97); } to { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } @keyframes bounceIn { from, 20%, 40%, 60%, 80%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 20% { -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } 40% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 60% { opacity: 1; -webkit-transform: scale3d(1.03, 1.03, 1.03); transform: scale3d(1.03, 1.03, 1.03); } 80% { -webkit-transform: scale3d(.97, .97, .97); transform: scale3d(.97, .97, .97); } to { opacity: 1; -webkit-transform: scale3d(1, 1, 1); transform: scale3d(1, 1, 1); } } .bounceIn { -webkit-animation-name: bounceIn; animation-name: bounceIn; } @-webkit-keyframes bounceInDown { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } to { -webkit-transform: none; transform: none; } } @keyframes bounceInDown { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(0, -3000px, 0); transform: translate3d(0, -3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, 25px, 0); transform: translate3d(0, 25px, 0); } 75% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 90% { -webkit-transform: translate3d(0, 5px, 0); transform: translate3d(0, 5px, 0); } to { -webkit-transform: none; transform: none; } } .bounceInDown { -webkit-animation-name: bounceInDown; animation-name: bounceInDown; } @-webkit-keyframes bounceInLeft { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } to { -webkit-transform: none; transform: none; } } @keyframes bounceInLeft { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } 0% { opacity: 0; -webkit-transform: translate3d(-3000px, 0, 0); transform: translate3d(-3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(25px, 0, 0); transform: translate3d(25px, 0, 0); } 75% { -webkit-transform: translate3d(-10px, 0, 0); transform: translate3d(-10px, 0, 0); } 90% { -webkit-transform: translate3d(5px, 0, 0); transform: translate3d(5px, 0, 0); } to { -webkit-transform: none; transform: none; } } .bounceInLeft { -webkit-animation-name: bounceInLeft; animation-name: bounceInLeft; } @-webkit-keyframes bounceInRight { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } to { -webkit-transform: none; transform: none; } } @keyframes bounceInRight { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(3000px, 0, 0); transform: translate3d(3000px, 0, 0); } 60% { opacity: 1; -webkit-transform: translate3d(-25px, 0, 0); transform: translate3d(-25px, 0, 0); } 75% { -webkit-transform: translate3d(10px, 0, 0); transform: translate3d(10px, 0, 0); } 90% { -webkit-transform: translate3d(-5px, 0, 0); transform: translate3d(-5px, 0, 0); } to { -webkit-transform: none; transform: none; } } .bounceInRight { -webkit-animation-name: bounceInRight; animation-name: bounceInRight; } @-webkit-keyframes bounceInUp { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes bounceInUp { from, 60%, 75%, 90%, to { -webkit-animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); } from { opacity: 0; -webkit-transform: translate3d(0, 3000px, 0); transform: translate3d(0, 3000px, 0); } 60% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } 75% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 90% { -webkit-transform: translate3d(0, -5px, 0); transform: translate3d(0, -5px, 0); } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .bounceInUp { -webkit-animation-name: bounceInUp; animation-name: bounceInUp; } @-webkit-keyframes bounceOut { 20% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } to { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } } @keyframes bounceOut { 20% { -webkit-transform: scale3d(.9, .9, .9); transform: scale3d(.9, .9, .9); } 50%, 55% { opacity: 1; -webkit-transform: scale3d(1.1, 1.1, 1.1); transform: scale3d(1.1, 1.1, 1.1); } to { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } } .bounceOut { -webkit-animation-name: bounceOut; animation-name: bounceOut; } @-webkit-keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes bounceOutDown { 20% { -webkit-transform: translate3d(0, 10px, 0); transform: translate3d(0, 10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, -20px, 0); transform: translate3d(0, -20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .bounceOutDown { -webkit-animation-name: bounceOutDown; animation-name: bounceOutDown; } @-webkit-keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes bounceOutLeft { 20% { opacity: 1; -webkit-transform: translate3d(20px, 0, 0); transform: translate3d(20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .bounceOutLeft { -webkit-animation-name: bounceOutLeft; animation-name: bounceOutLeft; } @-webkit-keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes bounceOutRight { 20% { opacity: 1; -webkit-transform: translate3d(-20px, 0, 0); transform: translate3d(-20px, 0, 0); } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .bounceOutRight { -webkit-animation-name: bounceOutRight; animation-name: bounceOutRight; } @-webkit-keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes bounceOutUp { 20% { -webkit-transform: translate3d(0, -10px, 0); transform: translate3d(0, -10px, 0); } 40%, 45% { opacity: 1; -webkit-transform: translate3d(0, 20px, 0); transform: translate3d(0, 20px, 0); } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .bounceOutUp { -webkit-animation-name: bounceOutUp; animation-name: bounceOutUp; } @-webkit-keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } .fadeIn { -webkit-animation-name: fadeIn; animation-name: fadeIn; } @-webkit-keyframes fadeInDown { from { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInDown { from { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInDown { -webkit-animation-name: fadeInDown; animation-name: fadeInDown; } @-webkit-keyframes fadeInDownBig { from { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInDownBig { from { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInDownBig { -webkit-animation-name: fadeInDownBig; animation-name: fadeInDownBig; } @-webkit-keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInLeft { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInLeft { -webkit-animation-name: fadeInLeft; animation-name: fadeInLeft; } @-webkit-keyframes fadeInLeftBig { from { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInLeftBig { from { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInLeftBig { -webkit-animation-name: fadeInLeftBig; animation-name: fadeInLeftBig; } @-webkit-keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInRight { from { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInRight { -webkit-animation-name: fadeInRight; animation-name: fadeInRight; } @-webkit-keyframes fadeInRightBig { from { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInRightBig { from { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInRightBig { -webkit-animation-name: fadeInRightBig; animation-name: fadeInRightBig; } @-webkit-keyframes fadeInUp { from { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInUp { from { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInUp { -webkit-animation-name: fadeInUp; animation-name: fadeInUp; } @-webkit-keyframes fadeInUpBig { from { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes fadeInUpBig { from { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } to { opacity: 1; -webkit-transform: none; transform: none; } } .fadeInUpBig { -webkit-animation-name: fadeInUpBig; animation-name: fadeInUpBig; } @-webkit-keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } } .fadeOut { -webkit-animation-name: fadeOut; animation-name: fadeOut; } @-webkit-keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes fadeOutDown { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .fadeOutDown { -webkit-animation-name: fadeOutDown; animation-name: fadeOutDown; } @-webkit-keyframes fadeOutDownBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } @keyframes fadeOutDownBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, 2000px, 0); transform: translate3d(0, 2000px, 0); } } .fadeOutDownBig { -webkit-animation-name: fadeOutDownBig; animation-name: fadeOutDownBig; } @-webkit-keyframes fadeOutLeft { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes fadeOutLeft { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .fadeOutLeft { -webkit-animation-name: fadeOutLeft; animation-name: fadeOutLeft; } @-webkit-keyframes fadeOutLeftBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } @keyframes fadeOutLeftBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(-2000px, 0, 0); transform: translate3d(-2000px, 0, 0); } } .fadeOutLeftBig { -webkit-animation-name: fadeOutLeftBig; animation-name: fadeOutLeftBig; } @-webkit-keyframes fadeOutRight { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes fadeOutRight { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .fadeOutRight { -webkit-animation-name: fadeOutRight; animation-name: fadeOutRight; } @-webkit-keyframes fadeOutRightBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } @keyframes fadeOutRightBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(2000px, 0, 0); transform: translate3d(2000px, 0, 0); } } .fadeOutRightBig { -webkit-animation-name: fadeOutRightBig; animation-name: fadeOutRightBig; } @-webkit-keyframes fadeOutUp { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes fadeOutUp { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .fadeOutUp { -webkit-animation-name: fadeOutUp; animation-name: fadeOutUp; } @-webkit-keyframes fadeOutUpBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } @keyframes fadeOutUpBig { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(0, -2000px, 0); transform: translate3d(0, -2000px, 0); } } .fadeOutUpBig { -webkit-animation-name: fadeOutUpBig; animation-name: fadeOutUpBig; } @-webkit-keyframes flip { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(.95, .95, .95); transform: perspective(400px) scale3d(.95, .95, .95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { -webkit-transform: perspective(400px); transform: perspective(400px); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } @keyframes flip { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -360deg); transform: perspective(400px) rotate3d(0, 1, 0, -360deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 40% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } 50% { -webkit-transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 80% { -webkit-transform: perspective(400px) scale3d(.95, .95, .95); transform: perspective(400px) scale3d(.95, .95, .95); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } to { -webkit-transform: perspective(400px); transform: perspective(400px); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } } .animated.flip { -webkit-backface-visibility: visible; backface-visibility: visible; -webkit-animation-name: flip; animation-name: flip; } @-webkit-keyframes flipInX { from { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInX { from { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); transform: perspective(400px) rotate3d(1, 0, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); transform: perspective(400px) rotate3d(1, 0, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInX { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInX; animation-name: flipInX; } @-webkit-keyframes flipInY { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } @keyframes flipInY { from { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; opacity: 0; } 40% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); transform: perspective(400px) rotate3d(0, 1, 0, -20deg); -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } 60% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); transform: perspective(400px) rotate3d(0, 1, 0, 10deg); opacity: 1; } 80% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); transform: perspective(400px) rotate3d(0, 1, 0, -5deg); } to { -webkit-transform: perspective(400px); transform: perspective(400px); } } .flipInY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipInY; animation-name: flipInY; } @-webkit-keyframes flipOutX { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } @keyframes flipOutX { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); transform: perspective(400px) rotate3d(1, 0, 0, -20deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); transform: perspective(400px) rotate3d(1, 0, 0, 90deg); opacity: 0; } } .flipOutX { -webkit-animation-name: flipOutX; animation-name: flipOutX; -webkit-backface-visibility: visible !important; backface-visibility: visible !important; } @-webkit-keyframes flipOutY { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } @keyframes flipOutY { from { -webkit-transform: perspective(400px); transform: perspective(400px); } 30% { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); transform: perspective(400px) rotate3d(0, 1, 0, -15deg); opacity: 1; } to { -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); transform: perspective(400px) rotate3d(0, 1, 0, 90deg); opacity: 0; } } .flipOutY { -webkit-backface-visibility: visible !important; backface-visibility: visible !important; -webkit-animation-name: flipOutY; animation-name: flipOutY; } @-webkit-keyframes lightSpeedIn { from { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); opacity: 1; } to { -webkit-transform: none; transform: none; opacity: 1; } } @keyframes lightSpeedIn { from { -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); transform: translate3d(100%, 0, 0) skewX(-30deg); opacity: 0; } 60% { -webkit-transform: skewX(20deg); transform: skewX(20deg); opacity: 1; } 80% { -webkit-transform: skewX(-5deg); transform: skewX(-5deg); opacity: 1; } to { -webkit-transform: none; transform: none; opacity: 1; } } .lightSpeedIn { -webkit-animation-name: lightSpeedIn; animation-name: lightSpeedIn; -webkit-animation-timing-function: ease-out; animation-timing-function: ease-out; } @-webkit-keyframes lightSpeedOut { from { opacity: 1; } to { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } @keyframes lightSpeedOut { from { opacity: 1; } to { -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); transform: translate3d(100%, 0, 0) skewX(30deg); opacity: 0; } } .lightSpeedOut { -webkit-animation-name: lightSpeedOut; animation-name: lightSpeedOut; -webkit-animation-timing-function: ease-in; animation-timing-function: ease-in; } @-webkit-keyframes rotateIn { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateIn { from { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, -200deg); transform: rotate3d(0, 0, 1, -200deg); opacity: 0; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: none; transform: none; opacity: 1; } } .rotateIn { -webkit-animation-name: rotateIn; animation-name: rotateIn; } @-webkit-keyframes rotateInDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInDownLeft { -webkit-animation-name: rotateInDownLeft; animation-name: rotateInDownLeft; } @-webkit-keyframes rotateInDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInDownRight { -webkit-animation-name: rotateInDownRight; animation-name: rotateInDownRight; } @-webkit-keyframes rotateInUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInUpLeft { -webkit-animation-name: rotateInUpLeft; animation-name: rotateInUpLeft; } @-webkit-keyframes rotateInUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } @keyframes rotateInUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -90deg); transform: rotate3d(0, 0, 1, -90deg); opacity: 0; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: none; transform: none; opacity: 1; } } .rotateInUpRight { -webkit-animation-name: rotateInUpRight; animation-name: rotateInUpRight; } @-webkit-keyframes rotateOut { from { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } @keyframes rotateOut { from { -webkit-transform-origin: center; transform-origin: center; opacity: 1; } to { -webkit-transform-origin: center; transform-origin: center; -webkit-transform: rotate3d(0, 0, 1, 200deg); transform: rotate3d(0, 0, 1, 200deg); opacity: 0; } } .rotateOut { -webkit-animation-name: rotateOut; animation-name: rotateOut; } @-webkit-keyframes rotateOutDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } @keyframes rotateOutDownLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, 45deg); transform: rotate3d(0, 0, 1, 45deg); opacity: 0; } } .rotateOutDownLeft { -webkit-animation-name: rotateOutDownLeft; animation-name: rotateOutDownLeft; } @-webkit-keyframes rotateOutDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutDownRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutDownRight { -webkit-animation-name: rotateOutDownRight; animation-name: rotateOutDownRight; } @-webkit-keyframes rotateOutUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } @keyframes rotateOutUpLeft { from { -webkit-transform-origin: left bottom; transform-origin: left bottom; opacity: 1; } to { -webkit-transform-origin: left bottom; transform-origin: left bottom; -webkit-transform: rotate3d(0, 0, 1, -45deg); transform: rotate3d(0, 0, 1, -45deg); opacity: 0; } } .rotateOutUpLeft { -webkit-animation-name: rotateOutUpLeft; animation-name: rotateOutUpLeft; } @-webkit-keyframes rotateOutUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } @keyframes rotateOutUpRight { from { -webkit-transform-origin: right bottom; transform-origin: right bottom; opacity: 1; } to { -webkit-transform-origin: right bottom; transform-origin: right bottom; -webkit-transform: rotate3d(0, 0, 1, 90deg); transform: rotate3d(0, 0, 1, 90deg); opacity: 0; } } .rotateOutUpRight { -webkit-animation-name: rotateOutUpRight; animation-name: rotateOutUpRight; } @-webkit-keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } to { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } @keyframes hinge { 0% { -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 20%, 60% { -webkit-transform: rotate3d(0, 0, 1, 80deg); transform: rotate3d(0, 0, 1, 80deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; } 40%, 80% { -webkit-transform: rotate3d(0, 0, 1, 60deg); transform: rotate3d(0, 0, 1, 60deg); -webkit-transform-origin: top left; transform-origin: top left; -webkit-animation-timing-function: ease-in-out; animation-timing-function: ease-in-out; opacity: 1; } to { -webkit-transform: translate3d(0, 700px, 0); transform: translate3d(0, 700px, 0); opacity: 0; } } .hinge { -webkit-animation-name: hinge; animation-name: hinge; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollIn { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; -webkit-transform: none; transform: none; } } @keyframes rollIn { from { opacity: 0; -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); } to { opacity: 1; -webkit-transform: none; transform: none; } } .rollIn { -webkit-animation-name: rollIn; animation-name: rollIn; } /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ @-webkit-keyframes rollOut { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } @keyframes rollOut { from { opacity: 1; } to { opacity: 0; -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); } } .rollOut { -webkit-animation-name: rollOut; animation-name: rollOut; } @-webkit-keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } } @keyframes zoomIn { from { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } 50% { opacity: 1; } } .zoomIn { -webkit-animation-name: zoomIn; animation-name: zoomIn; } @-webkit-keyframes zoomInDown { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInDown { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInDown { -webkit-animation-name: zoomInDown; animation-name: zoomInDown; } @-webkit-keyframes zoomInLeft { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInLeft { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInLeft { -webkit-animation-name: zoomInLeft; animation-name: zoomInLeft; } @-webkit-keyframes zoomInRight { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInRight { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInRight { -webkit-animation-name: zoomInRight; animation-name: zoomInRight; } @-webkit-keyframes zoomInUp { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomInUp { from { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } 60% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomInUp { -webkit-animation-name: zoomInUp; animation-name: zoomInUp; } @-webkit-keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } to { opacity: 0; } } @keyframes zoomOut { from { opacity: 1; } 50% { opacity: 0; -webkit-transform: scale3d(.3, .3, .3); transform: scale3d(.3, .3, .3); } to { opacity: 0; } } .zoomOut { -webkit-animation-name: zoomOut; animation-name: zoomOut; } @-webkit-keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomOutDown { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomOutDown { -webkit-animation-name: zoomOutDown; animation-name: zoomOutDown; } @-webkit-keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); transform: scale(.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } @keyframes zoomOutLeft { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(-2000px, 0, 0); transform: scale(.1) translate3d(-2000px, 0, 0); -webkit-transform-origin: left center; transform-origin: left center; } } .zoomOutLeft { -webkit-animation-name: zoomOutLeft; animation-name: zoomOutLeft; } @-webkit-keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(2000px, 0, 0); transform: scale(.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } @keyframes zoomOutRight { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); } to { opacity: 0; -webkit-transform: scale(.1) translate3d(2000px, 0, 0); transform: scale(.1) translate3d(2000px, 0, 0); -webkit-transform-origin: right center; transform-origin: right center; } } .zoomOutRight { -webkit-animation-name: zoomOutRight; animation-name: zoomOutRight; } @-webkit-keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } @keyframes zoomOutUp { 40% { opacity: 1; -webkit-transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); -webkit-animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); } to { opacity: 0; -webkit-transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); -webkit-transform-origin: center bottom; transform-origin: center bottom; -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); } } .zoomOutUp { -webkit-animation-name: zoomOutUp; animation-name: zoomOutUp; } @-webkit-keyframes slideInDown { from { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInDown { from { -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInDown { -webkit-animation-name: slideInDown; animation-name: slideInDown; } @-webkit-keyframes slideInLeft { from { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInLeft { from { -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInLeft { -webkit-animation-name: slideInLeft; animation-name: slideInLeft; } @-webkit-keyframes slideInRight { from { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInRight { from { -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInRight { -webkit-animation-name: slideInRight; animation-name: slideInRight; } @-webkit-keyframes slideInUp { from { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } @keyframes slideInUp { from { -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); visibility: visible; } to { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } } .slideInUp { -webkit-animation-name: slideInUp; animation-name: slideInUp; } @-webkit-keyframes slideOutDown { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } @keyframes slideOutDown { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, 100%, 0); transform: translate3d(0, 100%, 0); } } .slideOutDown { -webkit-animation-name: slideOutDown; animation-name: slideOutDown; } @-webkit-keyframes slideOutLeft { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } @keyframes slideOutLeft { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(-100%, 0, 0); transform: translate3d(-100%, 0, 0); } } .slideOutLeft { -webkit-animation-name: slideOutLeft; animation-name: slideOutLeft; } @-webkit-keyframes slideOutRight { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } @keyframes slideOutRight { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(100%, 0, 0); transform: translate3d(100%, 0, 0); } } .slideOutRight { -webkit-animation-name: slideOutRight; animation-name: slideOutRight; } @-webkit-keyframes slideOutUp { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } @keyframes slideOutUp { from { -webkit-transform: translate3d(0, 0, 0); transform: translate3d(0, 0, 0); } to { visibility: hidden; -webkit-transform: translate3d(0, -100%, 0); transform: translate3d(0, -100%, 0); } } .slideOutUp { -webkit-animation-name: slideOutUp; animation-name: slideOutUp; }
<$set name="currentTiddler" value={{$:/fonts}}> <table class="table table-striped table-hover"> <thead> <tr> <th>Balise</th> <th>Police</th> <th>Taille</th> <th>Couleur</th> </tr> </thead> <tbody> <tr> <td>H1</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-h1'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-h1'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color-h1' type='color'/></td> </tr> <tr> <td>H2</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-h2'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-h2'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color-h2' type='color'/></td> </tr> <tr> <td>H3</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-h3'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-h3'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color-h3' type='color'/></td> </tr> <tr> <td>H4</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-h4'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-h4'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color-h4' type='color'/></td> </tr> <tr> <td>H5</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-h5'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-h5'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color-h5' type='color'/></td> </tr> <tr> <td>H6</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-h6'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-h6'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color-h6' type='color'/></td> </tr> <tr> <td>Titre</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-site-title'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-site-title'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='site-title-foreground' type='color'/></td> </tr> <tr> <td>s/Titre</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-family-site-subtitle'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-size-site-subtitle'/></td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='site-subtitle-foreground' type='color'/></td> </tr> </tbody> </table>
\define pslider(label,tiddler) <$button popup="$:/state/$tiddler$" class="tc-btn-invisible tgc-slider"><$text text="$label$ »"/></$button> <$reveal type="nomatch" text="" default="" state="$:/state/$tiddler$" animate="yes"> @@.sliderBG <div> {{$tiddler$}} </div> @@ --- </$reveal> \end ``` \define pslider(label,tiddler) <$button popup="$:/state/$tiddler$" class="tc-btn-invisible tgc-slider"><$text text="$label$ »"/></$button> <$reveal type="nomatch" text="" default="" state="$:/state/$tiddler$" animate="yes"> @@.sliderBG <div> {{$tiddler$}} </div> @@ --- </$reveal> \end ``` ``` Usage: <<pslider "label" "tiddler">> ``` Exemples: * <<pslider "Tutoriel" "Tutoriel">> * <<pslider "Calendriers" "Calendriers">>
.jump-to-top { width: 100%; position: sticky; bottom: 0.5em; text-align: right; overflow: hidden; } .jump-to-top button { background-color: white; border-radius: 100%; padding: 0.5em; opacity: 0.4; -o-transition: 0.3s; -ms-transition: 0.3s; -moz-transition: 0.3s; -webkit-transition: 0.3s; transition: 0.3s; } .jump-to-top button:hover { opacity: 1; } .jump-to-top button svg { fill: #dc972f; }
<div class="jump-to-top"> <$button class="tc-btn-invisible btn-jump-to-top"> <$action-navigate $to=<<currentTiddler>>/> {{$:/core/images/chevron-up}} </$button> </div>
<$button class="bttn-fill bttn-sm bttn-primary" to='$:/ChoixMenu' tooltip="Nouvelle entrée de menu"> {{$:/core/images/menu-button}} Créer un Nouveau Menu <!-- Fermeture du tiddler après action --> <$action-sendmessage $message='tm-close-tiddler' param='$:/ButtonNewMenu'/> </$button>
<tr> <td> <$link to="$:/Cacher la SideBar (Espace Comblé)"> Voir/Cacher la ~SideBar (espace comblé)</$link> </td> <td align="center"> <$checkbox tiddler='$:/state/sidebar' field='text' checked='yes' unchecked=no/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar11" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar11" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar11" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar11" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar11" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-019}} </td> </$reveal>
<tr> <td> <$link to="$:/Cacher la SideBar au démarrage">Cacher la sidebar au démarrage</$link> </td> <td> <$edit-text tiddler="$:/config/HideSidebarOnStartup" default="" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar03" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar03" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar03" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-014}} </td> </$reveal>
<svg xmlns="http://www.w3.org/2000/svg" aria-label="Calendar" role="img" viewBox="0 0 512 512"> <path d="M512 455c0 32-25 57-57 57H57c-32 0-57-25-57-57V128c0-31 25-57 57-57h398c32 0 57 26 57 57z" fill="#e0e7ec"/> <path d="M484 0h-47c2 4 4 9 4 14a28 28 0 1 1-53-14H124c3 4 4 9 4 14A28 28 0 1 1 75 0H28C13 0 0 13 0 28v157h512V28c0-15-13-28-28-28z" fill="#dd2f45"/> <g fill="#f3aab9"> <circle cx="470" cy="142" r="14"/> <circle cx="470" cy="100" r="14"/> <circle cx="427" cy="142" r="14"/> <circle cx="427" cy="100" r="14"/> <circle cx="384" cy="142" r="14"/> <circle cx="384" cy="100" r="14"/> </g> <text id="month" x="32" y="164" fill="#fff" font-family="monospace" font-size="140px" style="text-anchor: left; text-transform: uppercase;"><<now mmm>></text> <text id="day" x="256" y="400" fill="#66757f" font-family="monospace" font-size="256px" style="text-anchor: middle"><<now DD>></text> <text id="weekday" x="256" y="480" fill="#66757f" font-family="monospace" font-size="64px" style="text-anchor: middle"><<now DDD>></text> </svg>
/* Cacher le titre et sous-titre de la sidebar */ body.tc-body .tc-site-title { display: {{!!site-title}}; } body.tc-body .tc-site-subtitle { display: {{!!site-subtitle}}; }
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline @media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { html .tc-page-container { text-align: center; } html .tc-story-river { position: relative; width: 770px; padding: 42px; margin: 0 auto; text-align: left; } html .tc-sidebar-scrollable { text-align: left; left: 50%; right: 0; margin-left: 343px; } }
<tr> <td> <$link to="$:/Choisissez votre palette de couleurs">Choisissez votre palette de couleurs</$link> </td> <td align="center"> {{$:/ColorPalette}} </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int07" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int07" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int07" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int07" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int07" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-036}} </td> </$reveal>
\define myway(par1 par2) <$button> <$action-navigate $to="$:/$par1$$par2$"/> Ouvrir </$button> \end <$details summary="Assistant de création"> Indiquer dans la première liste déroulante de gauche le type de menu (simple ou déroulant) et dans la seconde liste déroulante de droite son emplacement (En haut -> ~NavBar, à gauche -> ~LeftBar, à droite -> ~SideBar). Les trois barres supportent les menus simples et les menus déroulants. Les positions des menus peuvent même être intercalées (par exemple un menu déroulant en position 1 et un menu simple en position 2) </$details> <$select tiddler='$:/ChoixMenu' field='ouvtype'> <option>Simple</option> <option>Déroulant</option> </$select> <$select tiddler='$:/ChoixMenu' field='emplacement'> <option>NavBar</option> <option>SideBar</option> </$select> Vous avez choisi de créer un menu {{!!ouvtype}} dans la {{!!emplacement}} <$macrocall $name="myway" par1={{!!ouvtype}} par2={{!!emplacement}}/> <!-- 1- Définir une variable 2- Stocker cette variable 3- Utiliser cette variable - Dans l'exemple la constante est la concaténation de deux champs existant, constituant ensuite le nom de tiddlers - Ces deux champs sont choisis par l'utilisateur dans une liste de possibles. - Les champs choisis sont ensuite ouverts en mode visu. -->
<$details summary="Assistant de création"> Indiquer dans la liste déroulante ci-dessous le type de menu (simple ou déroulant) et son emplacement (En haut -> ~NavBar, à gauche -> ~LeftBar, à droite -> ~SideBar). Les trois barres supportent les menus simples et les menus déroulants. Les positions des menus peuvent même être intercalées (par exemple un menu déroulant en position 1 et un menu simple en position 2) </$details> <$selectInvokeActions field='emplacement'> <option><$action-setfield $tiddler='$:/ChoixMenu' select-option="$:/SimpleNavBar"/>SimpleNavBar</option> <option><$action-setfield $tiddler='$:/ChoixMenu' select-option="$:/SimpleLeftBar"/>SimpleLeftBar</option> <option><$action-setfield $tiddler='$:/ChoixMenu' select-option="$:/SimpleSideBar"/>SimpleSideBar</option> <option><$action-setfield $tiddler='$:/ChoixMenu' select-option="$:/DéroulantNavBar"/>DéroulantNavBar</option> <option><$action-setfield $tiddler='$:/ChoixMenu' select-option="$:/DéroulantLeftBar"/>DéroulantLeftBar</option> <option><$action-setfield $tiddler='$:/ChoixMenu' select-option="$:/DéroulantSideBar"/>DéroulantSideBar</option> </$selectInvokeActions> <$button class="bttn-fill bttn-sm bttn-primary" to={{!!select-option}} tooltip="Nouvelle entrée de menu"> <i class="fa fa-spinner"></i> Créer le menu <!-- Fermeture du tiddler après action --> <$action-sendmessage $message='tm-close-tiddler' param='$:/ChoixMenu'/> </$button>
\define colorbar(color, width:"100",height:"20") <svg width="$width$" height="$height$"> <rect fill="$color$" x="0" y="0" width="$width$" height="$height$"/> </svg> \end ``` \define colorbar(color, width:"100",height:"20") <svg width="$width$" height="$height$"> <rect fill="$color$" x="0" y="0" width="$width$" height="$height$"/> </svg> \end ``` ``` usage: <<colorbar #FFFFFF width height>> <<colorbar red 100 20>> ```
<span class="tc-popup-keep"> <$button popup=<<qualify "$:/state/popup/palette">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected"> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"><span class="demo-big-icon demo-green-icon"> {{$:/core/images/palette}}</span> </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/Palette/Caption}}/></span> </$list> </$button> </span> <$reveal state=<<qualify "$:/state/popup/palette">> type="popup" position="below" animate="yes"> <div class="tc-drop-down" style="font-size:0.7em;"> {{$:/snippets/paletteswitcher}} </div> </$reveal>
no
4f4e90ffac9dc589cba07478abe92347
https://prolegomenes.github.io/learn/Learn2215117.html
{ "journals":{ "lastDayOfWeek":"0", "formatter":"$:/macros/bj/Calendar/journalfmt.js", "titlebold":"no", "highlightThisDay":"no", "highlightThisDate":"yes" }, "default":{ "lastDayOfWeek":"0", "formatter":"$:/macros/bj/Calendar/journalslinked.js", "titlebold":"yes", "highlightThisDay":"no", "highlightLinks":"yes" }, "diary":{ "lastDayOfWeek":"0", "formatter":"$:/macros/bj/Calendar/diary.js", "titlebold":"yes", "highlightThisDay":"no", "highlightLinks":"yes" }, "plain":{ "lastDayOfWeek":"0", "formatter":"", "titlebold":"yes", "highlightThisDay":"yes", "highlightThisDate":"no" } }
$:/plugins/ajh/favorites/SideBar
hide
show
show
show
show
show
yes
top
no
show
hide
show
show
show
hide
show
hide
show
show
hide
show
hide
show
hide
show
hide
restored
restored
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
yes
no
no
no
yes
yes
yes
yes
no
yes
no
sticky
tc-btn-boxed
yes
no
hide
hide
hide
hide
hide
hide
hide
hide
hide
Bouton d'ouverture de la SideBar en PopUp depuis un tiddler
Gestion typo polices et taille
hide
hide
hide
hide
show
show
hide
hide
no
<$select tiddler='$:/Contacts/ContactTemp' field='group'> <$list filter='[tag[ContactGroup]]'> <option><$view field='title'/></option> </$list> </$select>
<p> <$tiddler tiddler={{!!title}} > <$set name="tiddlerName" value={{!!title}} > <$set name="textstyle1" value={{$:/Contacts/ContactDisplayTemplate1!!text_style}} > <<contactSlider {{$:/Contacts/ContactDisplayTemplate1!!button_type}}>> </$set> </$set> </$tiddler> </p>
<p class='tc-tiddler-frame' style='width:100%; background-color:#f1f1f1'> ''Settings'':<br> __Button Style__: <$select tiddler='$:/Contacts/ContactDisplayTemplate1' field="button_type"> <option value='tc-btn-invisible'>No button</option> <option value=''>Normal button</option></$select> <br> __Text Style__: <$select tiddler='$:/Contacts/ContactDisplayTemplate1' field="text_style"> <option value="">Plain text</option> <option value="''">Bold text</option> <option value="//">Italic text</option> <option value="__">Underlined text</option> </$select> </p>
\define contactsTabsMacro() <<tabs "$(thing)$ [[$:/Contacts/New Contact Form]] [[$:/Contacts/Contacts Settings]]" $(thing)$>> \end <$set name=thing value={{!!contact_list_template}}> <<contactsTabsMacro {{!!contact_list_template}}>> </$set>
!!Choix des templates d'affichage des contacts: This is how each individual contact will be displayed in the list of contacts<br> <div class='tc-tiddler-frame' style='width:100%; background-color:#fafafa'> <$select tiddler='$:/Contacts/Contacts' field='contact_display_template'> <$list filter='[plugintiddlers[]tag[ContactDisplayTemplate]][tag[ContactDisplayTemplate]]'> <option value={{!!title}}><$view field='display_name'/></option> </$list> </$select> <$tiddler tiddler={{$:/Contacts/Contacts!!contact_display_template}}> <$transclude tiddler={{!!settings_tiddler}}/> </$tiddler> <br> Preview: <br> <div class='tc-tiddler-frame' style='width:100%; background-color:#f0f0f0'> <$tiddler tiddler={{$:/Contacts/Contacts!!contact_display_template}}><$transclude/></$tiddler> </div> </div> !!Contact List template to use: This is the template used to generate the list of contacts, click on the name to see the template (How it looks changes based on the display template selected above).<br> <div class='tc-tiddler-frame' style='width:100%; background-color:#fafafa'> <$select tiddler='Contacts' field='contact_list_template'> <$list filter='[plugintiddlers[]tag[ContactListTemplate]][tag[ContactListTemplate]]'> <option value={{!!title}}><$view field=display_name/></option> </$list> </$select> <$tiddler tiddler={{$:/Contacts/Contacts!!contact_list_template}}> <$transclude tiddler={{!!settings_tiddler}}/> </$tiddler> <br> Preview:<br> <div class='tc-tiddler-frame' style='width:100%; background-color:#f0f0f0'> <$tiddler tiddler={{$:/Contacts/Contacts!!contact_list_template}}> <$transclude/> </$tiddler> </div> </div>
\define contactSlider(buttonType) <$tiddler tiddler="""$(tiddlerName)$"""> <$reveal type="nomatch" state="$:/state/$(tiddlerName)$" text="show"> <$button set="$:/state/$(tiddlerName)$" setTo="show" class=$buttonType$>{{$:/core/images/right-arrow}}$(textstyle1)$$(tiddlerName)$$(textstyle1)$</$button> - {{$(tiddlerName)$!!blurb}} </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$" text="show"> <$button set="$:/state/$(tiddlerName)$" setTo="hide" class=$buttonType$>{{$:/core/images/down-arrow}}$(textstyle1)$$(tiddlerName)$$(textstyle1)$</$button> - {{$(tiddlerName)$!!blurb}} <$link to="$(tiddlerName)$">Open Contact</$link> |!Adresse Mail Personnelle |<<editEmailField1 personal_email_address>> |<<editField2 personal_email_address>> | |!Adresse Mail de Travail |<<editEmailField1 work_email_address>> |<<editField2 work_email_address>> | |!Autre Adresse Mail |<<editEmailField1 other_email_address>> |<<editField2 other_email_address>> | |!Num. tél. privé |<<editField1 home_phone_number>> |<<editField2 home_phone_number>> | |!Num. Tel Portable |<<editField1 cell_phone_number>> |<<editField2 cell_phone_number>> | |!Num. Tel. Prof. |<<editField1 work_phone_number>> |<<editField2 work_phone_number>> | |!Notice |<<editField1 blurb>> |<<editField2 blurb>> | |!Groupe |<<contactEditGroup group>> |<<editField2 group>> | <<contactAddress>> <<contactAbout>> </$reveal> </$tiddler> \end \define getAddress() mailto:$(address)$ \end \define editEmailField1(fieldName) <$reveal type="nomatch" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$set name=address value={{$(tiddlerName)$!!$fieldName$}}> <a href=<<getAddress>> target="_top">{{$(tiddlerName)$!!$fieldName$}}</a> </$set> </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$edit-text tiddler="$(tiddlerName)$" field="$fieldName$"/> </$reveal> \end \define editField1(fieldName) <$reveal type="nomatch" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> {{$(tiddlerName)$!!$fieldName$}} </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$edit-text tiddler="$(tiddlerName)$" field="$fieldName$"/> </$reveal> \end \define editField2(fieldName) <$reveal type="nomatch" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$button set="$:/state/$(tiddlerName)$$fieldName$" setTo="show">Edit</$button> </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$button set="$:/state/$(tiddlerName)$$fieldName$" setTo="hide">Edit</$button> </$reveal> \end \define contactAddress() <$reveal type="nomatch" state="$:/state/$(tiddlerName)$Address" text="show"> Address (<$button set="$:/state/$(tiddlerName)$Address" setTo="show">Edit</$button>) :<br> {{$(tiddlerName)$!!street_address}}<br> {{$(tiddlerName)$!!city}}, {{$(tiddlerName)$!!state_or_provence}}<br> {{$(tiddlerName)$!!zip_code}} {{$(tiddlerName)$!!country}} </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$Address" text="show"> Address (<$button set="$:/state/$(tiddlerName)$Address" setTo="hide">Edit</$button>): <br> <$edit-text tiddler="$(tiddlerName)$" field="street_address" focusPopup="Edit" placeholder="Street Address"/> <br> <$edit-text tiddler="$(tiddlerName)$" field="city" focusPopup="Edit" placeholder="City"/>, <$edit-text tiddler="$(tiddlerName)$" field="state_or_provence" focusPopup="Edit" placeholder="State or Provence"/> <br> <$edit-text tiddler="$(tiddlerName)$" field="zip_code" focusPopup="Edit" placeholder="Zip Code"/> <$edit-text tiddler="$(tiddlerName)$" field="country" focusPopup="Edit" placeholder="Country"/> </$reveal> \end \define contactAbout() <$reveal type="nomatch" state="$:/state/$(tiddlerName)$About" text="show"> About (<$button set="$:/state/$(tiddlerName)$About" setTo="show">Edit</$button>) :<br> <$view tiddler="$(tiddlerName)$" field="text"/> </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$About" text="show"> About (<$button set="$:/state/$(tiddlerName)$About" setTo="hide">Edit</$button>): <br> <$edit-text tiddler="$(tiddlerName)$" field="text" size="120" class='tc-edit-texteditor'/> <br> </$reveal> \end \define newContactAddGroup1() <$reveal type="nomatch" state="$:/state/NewContactFormAddGroup" text="show"> <$button set="$:/state/NewContactFormAddGroup" setTo="show">New Group</$button> </$reveal> <$reveal type="match" state="$:/state/NewContactFormAddGroup" text="show"> <$button set="$:/state/NewContactFormAddGroup" setTo="hide"> <$action-setfield $tiddler={{$:/Contacts/ContactTemp!!group}} tags="ContactGroup" title={{$:/plugins/inmysocks/Contacts/ContactTemp!!group}}/>Add Group</$button> <$button set="$:/state/NewContactFormAddGroup" setTo="hide">Cancel</$button> </$reveal> \end \define newContactAddGroup2() <$reveal type="nomatch" state="$:/state/NewContactFormAddGroup" text="show"> {{$:/Contacts/Contact Group Selector}} </$reveal> <$reveal type="match" state="$:/state/NewContactFormAddGroup" text="show"> <$edit-text tiddler="$:/Contacts/ContactTemp" field="group" size="20"/> </$reveal> \end \define contactEditGroup(fieldName) <$reveal type="nomatch" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> {{$(tiddlerName)$!!$fieldName$}} </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$select tiddler='$(tiddlerName)$' field='group'> <$list filter='[tag[ContactGroup]]'> <option><$view field='title'/></option> </$list> </$select> </$reveal> \end
\define collapsibleGroupContactListTemplate() <$reveal type="nomatch" state="$:/state/$(tiddlerGroup)$" text="show"> <$button set="$:/state/$(tiddlerGroup)$" setTo="show" class={{$:/Contacts/GroupContactListTemplate!!button_type}}>{{$:/core/images/right-arrow}}$(textstyle)${{$(tiddlerTitle)$!!group}}$(textstyle)$</$button> </$reveal> <$reveal type="match" state="$:/state/$(tiddlerGroup)$"text="show"> <$button set="$:/state/$(tiddlerGroup)$" setTo="hide" class={{$:/Contacts/GroupContactListTemplate!!button_type}}>{{$:/core/images/down-arrow}}$(textstyle)${{$(tiddlerTitle)$!!group}}$(textstyle)$</$button> <$list filter="[tag[Contacts]sort[title]group{$(tiddlerTitle)$!!group}]" template={{$:/Contacts!!contact_display_template}}> </$list> </$reveal> \end \define groupContactListTemplate() !!$(textstyle)${{$(tiddlerTitle)$!!group}}$(textstyle)$ <$list filter="[tag[Contacts]sort[title]group{$(tiddlerTitle)$!!group}]" template={{$:/Contacts!!contact_display_template}}> </$list> \end <$tiddler tiddler={{!!title}}> <$set name="textstyle" value={{$:/Contacts/GroupContactListTemplate!!text_style}}> <$set name="tiddlerGroup" value={{!!group}}> <$set name="tiddlerTitle" value={{!!title}}> {{$:/Contacts/GroupContactListGroupTemplate!!group_type}} </$set> </$set> </$set> </$tiddler>
\define allButtonMacro() <$reveal type="nomatch" state="$:/state/GroupContactListTemplateAll" text="show"> <$button set="$:/state/GroupContactListTemplateAll" setTo="show" class={{$:/Contacts/GroupContactListTemplate!!button_type}}>{{$:/core/images/right-arrow}}$(textstyle)$All$(textstyle)$</$button> </$reveal> <$reveal type="match" state="$:/state/GroupContactListTemplateAll" text="show"> <$button set="$:/state/GroupContactListTemplateAll" setTo="hide" class={{$:/Contacts/GroupContactListTemplate!!button_type}}>{{$:/core/images/down-arrow}}$(textstyle)$All$(textstyle)$</$button> <$list filter="[tag[Contacts]!tag[Templates]]" template={{$:/Contacts/Contacts!!contact_display_template}}> </$reveal> </$list> \end <$list filter="[tag[Contacts]sort[group]each[group]]" template="$:/Contacts/GroupContactListGroupTemplate"> <$view field="group"/> </$list> <$set name="textstyle" value={{$:/Contacts/GroupContactListTemplate!!text_style}}> <<allButtonMacro>> </$set>
<p class='tc-tiddler-frame' style='width:100%; background-color:#f1f1f1'> ''Settings'':<br> __Grouping Type__: <$select tiddler='$:/Contacts/GroupContactListGroupTemplate' field="group_type"> <option value='<<collapsibleGroupContactListTemplate>>'>Collapsible Groups</option> <option value='<<groupContactListTemplate>>'>Static Groups</option></$select> <br> __Button Style__: <$select tiddler='$:/Contacts/GroupContactListTemplate' field="button_type"> <option value='tc-btn-invisible'>No button</option> <option value=''>Normal button</option></$select> <br> __Text Style__: <$select tiddler='$:/Contacts/GroupContactListTemplate' field="text_style"> <option value="">Plain text</option> <option value="''">Bold text</option> <option value="//">Italic text</option> <option value="__">Underlined text</option> </$select> </p>
\define getFullName() $(FirstName)$ $(LastName)$ ($(NickName)$) |!Nom |<$edit-text tiddler="$:/Contacts/ContactTemp" field="firstname" placeholder="Nom" size="40"/>| |!Prénom |<$edit-text tiddler="$:/Contacts/ContactTemp" field="lastname" placeholder="Prénom" size="40"/>| |!Pseudo |<$edit-text tiddler="$:/Contacts/ContactTemp" field="nickname" placeholder="Pseudo" size="40"/>| |!Adresse Mail Personnelle |<$edit-text tiddler="$:/Contacts/ContactTemp" field="personalemailaddress" placeholder="Adresse Mail Personnelle" size="40"/>| |!Adresse Mail de Travail |<$edit-text tiddler="$:/Contacts/ContactTemp" field="workemailaddress" placeholder="Adresse Mail de Travail" size="40"/>| |!Autre Adresse Mail |<$edit-text tiddler="$:/Contacts/ContactTemp" field="otheremailaddress" placeholder="Autre Adresse Mail" size="40"/>| |!Num. tél. privé |<$edit-text tiddler="$:/Contacts/ContactTemp" field="homephonenumber" placeholder="Numéro de téléphone privé" size="40"/>| |!Num. Tel Portable |<$edit-text tiddler="$:/Contacts/ContactTemp" field="cellphonenumber" placeholder="Numéro de téléphone portable" size="40"/>| |!Num. Tel. Prof. |<$edit-text tiddler="$:/Contacts/ContactTemp" field="workphonenumber" placeholder="Numéro de téléphone Professionnel" size="40"/>| |!Adresse |<$edit-text tiddler="$:/Contacts/ContactTemp" field="streetaddress" placeholder="Adresse" size="40"/>| |!Ville |<$edit-text tiddler="$:/Contacts/ContactTemp" field="city" placeholder="Ville" size="40"/>| |!État/Province |<$edit-text tiddler="$:/Contacts/ContactTemp" field="stateprovence" placeholder="État/Province" size="40"/>| |!Code Postal |<$edit-text tiddler="$:/Contacts/ContactTemp" field="zipcode" placeholder="Code Postal" size="40"/>| |!Pays |<$edit-text tiddler="$:/Contacts/ContactTemp" field="country" placeholder="Pays" size="40"/>| |!Notice |<$edit-text tiddler="$:/Contacts/ContactTemp" field="blurb" placeholder="Brève Description" size="40"/>| |!Groupe |<<newContactAddGroup2>> <<newContactAddGroup1>>| <$set name="FirstName" value={{$:/Contacts/ContactTemp!!firstname}}> <$set name="LastName" value={{$:/Contacts/ContactTemp!!lastname}}> <$set name="NickName" value={{$:/Contacts/ContactTemp!!nickname}}> <$set name="grouptag" value={{$:/Contacts/ContactTemp!!group}}> <$fieldmangler> <$button>Create Contact <$action-setfield $tiddler=<<getFullName>> first_name={{$:/Contacts/ContactTemp!!firstname}} last_name={{$:/Contacts/ContactTemp!!lastname}} nick_name={{$:/Contacts/ContactTemp!!nickname}} personal_email_address={{$:/Contacts/ContactTemp!!personalemailaddress}} work_email_address={{$:/Contacts/ContactTemp!!workemailaddress}} other_email_address={{$:/Contacts/ContactTemp!!otheremailaddress}} home_phone_number={{$:/Contacts/ContactTemp!!homephonenumber}} work_phone_number={{$:/Contacts/ContactTemp!!workphonenumber}} cell_phone_number={{$:/ContactTemp!!cellphonenumber}} street_address={{$:/Contacts/ContactTemp!!streetaddress}} country={{$:/ContactTemp!!country}} state_or_provence={{$:/Contacts/ContactTemp!!stateprovence}} zip_code={{$:/Contacts/ContactTemp!!zipcode}} city={{$:/Contacts/ContactTemp!!city}} blurb={{$:/Contacts/ContactTemp!!blurb}} group={{$:/Contacts/ContactTemp!!group}} tags="Contacts"/> <$action-setfield $tiddler='$:/Contacts/ContactTemp' firstname="" lastname="" nickname="" personalemailaddress="" workemailaddress="" otheremailaddress="" homephonenumber="" workphonenumber="" cellphonenumber="" streetaddress="" country="" stateprovence="" zipcode="" city="" blurb=""/> </$button> <$button>Clear Form <$action-setfield $tiddler='$:/Contacts/ContactTemp' firstname="" lastname="" nickname="" personalemailaddress="" workemailaddress="" otheremailaddress="" homephonenumber="" workphonenumber="" cellphonenumber="" streetaddress="" country="" stateprovence="" zipcode="" city="" blurb=""/> </$button> </$fieldmangler> </$set> </$set> </$set>
<$link to={{!!title}}>{{!!title}}</$link><br> {{!!home_phone_number}}<br>
<$list filter=[tag[Contacts]] template= {{$:/Contacts/Contacts!!contact_display_template}}> </$list>
<div class="tc-control-panel"> <<tabs "[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]" "$:/core/ui/ControlPanel/Info""""tc-vertical">> </div>
{ "tiddlers": { "$:/Acknowledgements": { "title": "$:/Acknowledgements", "text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n" }, "$:/core/copyright.txt": { "title": "$:/core/copyright.txt", "type": "text/plain", "text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2018, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." }, "$:/core/icon": { "title": "$:/core/icon", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>" }, "$:/core/images/add-comment": { "title": "$:/core/images/add-comment", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-add-comment tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M56 56H36a8 8 0 1 0 0 16h20v20a8 8 0 1 0 16 0V72h20a8 8 0 1 0 0-16H72V36a8 8 0 1 0-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\" fill-rule=\"evenodd\"/></svg>" }, "$:/core/images/advanced-search-button": { "title": "$:/core/images/advanced-search-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-advanced-search-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M74.5651535,87.9848361 C66.9581537,93.0488876 57.8237115,96 48,96 C21.490332,96 0,74.509668 0,48 C0,21.490332 21.490332,0 48,0 C74.509668,0 96,21.490332 96,48 C96,57.8541369 93.0305793,67.0147285 87.9377231,74.6357895 L122.284919,108.982985 C125.978897,112.676963 125.973757,118.65366 122.284271,122.343146 C118.593975,126.033442 112.613238,126.032921 108.92411,122.343793 L74.5651535,87.9848361 Z M48,80 C65.673112,80 80,65.673112 80,48 C80,30.326888 65.673112,16 48,16 C30.326888,16 16,30.326888 16,48 C16,65.673112 30.326888,80 48,80 Z\"></path>\n <circle cx=\"48\" cy=\"48\" r=\"8\"></circle>\n <circle cx=\"28\" cy=\"48\" r=\"8\"></circle>\n <circle cx=\"68\" cy=\"48\" r=\"8\"></circle>\n </g>\n</svg>" }, "$:/core/images/auto-height": { "title": "$:/core/images/auto-height", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-auto-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M67.9867828,114.356363 L67.9579626,99.8785426 C67.9550688,98.4248183 67.1636987,97.087107 65.8909901,96.3845863 L49.9251455,87.5716209 L47.992126,95.0735397 L79.8995411,95.0735397 C84.1215894,95.0735397 85.4638131,89.3810359 81.686497,87.4948823 L49.7971476,71.5713518 L48.0101917,79.1500092 L79.992126,79.1500092 C84.2093753,79.1500092 85.5558421,73.4676733 81.7869993,71.5753162 L49.805065,55.517008 L48.0101916,63.0917009 L79.9921259,63.0917015 C84.2035118,63.0917016 85.5551434,57.4217887 81.7966702,55.5218807 L65.7625147,47.4166161 L67.9579705,50.9864368 L67.9579705,35.6148245 L77.1715737,44.8284272 C78.7336709,46.3905243 81.2663308,46.3905243 82.8284279,44.8284271 C84.390525,43.2663299 84.390525,40.7336699 82.8284278,39.1715728 L66.8284271,23.1715728 C65.2663299,21.6094757 62.73367,21.6094757 61.1715729,23.1715729 L45.1715729,39.1715729 C43.6094757,40.73367 43.6094757,43.26633 45.1715729,44.8284271 C46.73367,46.3905243 49.26633,46.3905243 50.8284271,44.8284271 L59.9579705,35.6988837 L59.9579705,50.9864368 C59.9579705,52.495201 60.806922,53.8755997 62.1534263,54.5562576 L78.1875818,62.6615223 L79.9921261,55.0917015 L48.0101917,55.0917009 C43.7929424,55.0917008 42.4464755,60.7740368 46.2153183,62.6663939 L78.1972526,78.7247021 L79.992126,71.1500092 L48.0101917,71.1500092 C43.7881433,71.1500092 42.4459197,76.842513 46.2232358,78.7286665 L78.1125852,94.6521971 L79.8995411,87.0735397 L47.992126,87.0735397 C43.8588276,87.0735397 42.4404876,92.5780219 46.0591064,94.5754586 L62.024951,103.388424 L59.9579785,99.8944677 L59.9867142,114.32986 L50.8284271,105.171573 C49.26633,103.609476 46.73367,103.609476 45.1715729,105.171573 C43.6094757,106.73367 43.6094757,109.26633 45.1715729,110.828427 L61.1715729,126.828427 C62.73367,128.390524 65.2663299,128.390524 66.8284271,126.828427 L82.8284278,110.828427 C84.390525,109.26633 84.390525,106.73367 82.8284279,105.171573 C81.2663308,103.609476 78.7336709,103.609476 77.1715737,105.171573 L67.9867828,114.356363 L67.9867828,114.356363 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n</svg>" }, "$:/core/images/blank": { "title": "$:/core/images/blank", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"></svg>" }, "$:/core/images/bold": { "title": "$:/core/images/bold", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-bold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M41.1456583,51.8095238 L41.1456583,21.8711485 L67.4985994,21.8711485 C70.0084159,21.8711485 72.4285598,22.0802967 74.7591036,22.4985994 C77.0896475,22.9169022 79.1512515,23.6638602 80.9439776,24.7394958 C82.7367036,25.8151314 84.170863,27.3090474 85.2464986,29.2212885 C86.3221342,31.1335296 86.859944,33.5835518 86.859944,36.5714286 C86.859944,41.9496067 85.2465147,45.8337882 82.0196078,48.2240896 C78.792701,50.614391 74.6694929,51.8095238 69.6498599,51.8095238 L41.1456583,51.8095238 Z M13,0 L13,128 L75.0280112,128 C80.7647346,128 86.3519803,127.28292 91.789916,125.848739 C97.2278517,124.414559 102.068139,122.203563 106.310924,119.215686 C110.553709,116.22781 113.929959,112.373506 116.439776,107.652661 C118.949592,102.931816 120.204482,97.3445701 120.204482,90.8907563 C120.204482,82.8832466 118.262391,76.0411115 114.378151,70.3641457 C110.493911,64.6871798 104.607883,60.7133634 96.719888,58.442577 C102.456611,55.6937304 106.788968,52.1680887 109.717087,47.8655462 C112.645206,43.5630037 114.109244,38.1849062 114.109244,31.7310924 C114.109244,25.7553389 113.123259,20.7357813 111.151261,16.6722689 C109.179262,12.6087565 106.400578,9.35201972 102.815126,6.90196078 C99.2296739,4.45190185 94.927196,2.68908101 89.907563,1.61344538 C84.8879301,0.537809748 79.3305627,0 73.2352941,0 L13,0 Z M41.1456583,106.128852 L41.1456583,70.9915966 L71.8011204,70.9915966 C77.896389,70.9915966 82.7964334,72.3958776 86.5014006,75.2044818 C90.2063677,78.0130859 92.0588235,82.7039821 92.0588235,89.2773109 C92.0588235,92.6237329 91.4911355,95.3725383 90.3557423,97.5238095 C89.2203491,99.6750808 87.6965548,101.378145 85.7843137,102.633053 C83.8720726,103.887961 81.661077,104.784311 79.1512605,105.322129 C76.641444,105.859947 74.0121519,106.128852 71.2633053,106.128852 L41.1456583,106.128852 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/cancel-button": { "title": "$:/core/images/cancel-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n\t<g fill-rule=\"evenodd\">\n\t <path d=\"M64,76.3137085 L47.0294734,93.2842351 C43.9038742,96.4098343 38.8399231,96.4084656 35.7157288,93.2842712 C32.5978915,90.166434 32.5915506,85.0947409 35.7157649,81.9705266 L52.6862915,65 L35.7157649,48.0294734 C32.5901657,44.9038742 32.5915344,39.8399231 35.7157288,36.7157288 C38.833566,33.5978915 43.9052591,33.5915506 47.0294734,36.7157649 L64,53.6862915 L80.9705266,36.7157649 C84.0961258,33.5901657 89.1600769,33.5915344 92.2842712,36.7157288 C95.4021085,39.833566 95.4084494,44.9052591 92.2842351,48.0294734 L75.3137085,65 L92.2842351,81.9705266 C95.4098343,85.0961258 95.4084656,90.1600769 92.2842712,93.2842712 C89.166434,96.4021085 84.0947409,96.4084494 80.9705266,93.2842351 L64,76.3137085 Z M64,129 C99.346224,129 128,100.346224 128,65 C128,29.653776 99.346224,1 64,1 C28.653776,1 1.13686838e-13,29.653776 1.13686838e-13,65 C1.13686838e-13,100.346224 28.653776,129 64,129 Z M64,113 C90.509668,113 112,91.509668 112,65 C112,38.490332 90.509668,17 64,17 C37.490332,17 16,38.490332 16,65 C16,91.509668 37.490332,113 64,113 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/chevron-down": { "title": "$:/core/images/chevron-down", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-down tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 40.500000) rotate(-270.000000) translate(-64.000000, -40.500000) translate(-22.500000, -26.500000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>" }, "$:/core/images/chevron-left": { "title": "$:/core/images/chevron-left", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\" version=\"1.1\">\n <g fill-rule=\"evenodd\" transform=\"translate(92.500000, 64.000000) rotate(-180.000000) translate(-92.500000, -64.000000) translate(6.000000, -3.000000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n </g>\n</svg>" }, "$:/core/images/chevron-right": { "title": "$:/core/images/chevron-right", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-right tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" transform=\"translate(-48.000000, -3.000000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n </g>\n</svg>" }, "$:/core/images/chevron-up": { "title": "$:/core/images/chevron-up", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-chevron-up tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\" transform=\"translate(64.000000, 89.500000) rotate(-90.000000) translate(-64.000000, -89.500000) translate(-22.500000, 22.500000)\">\n <path d=\"M112.743107,112.12741 C111.310627,113.561013 109.331747,114.449239 107.145951,114.449239 L27.9777917,114.449239 C23.6126002,114.449239 20.0618714,110.904826 20.0618714,106.532572 C20.0618714,102.169214 23.6059497,98.6159054 27.9777917,98.6159054 L99.2285381,98.6159054 L99.2285381,27.365159 C99.2285381,22.9999675 102.77295,19.4492387 107.145205,19.4492387 C111.508562,19.4492387 115.061871,22.993317 115.061871,27.365159 L115.061871,106.533318 C115.061871,108.71579 114.175869,110.694669 112.743378,112.127981 Z\" transform=\"translate(67.561871, 66.949239) rotate(-45.000000) translate(-67.561871, -66.949239) \"></path>\n <path d=\"M151.35638,112.12741 C149.923899,113.561013 147.94502,114.449239 145.759224,114.449239 L66.5910645,114.449239 C62.225873,114.449239 58.6751442,110.904826 58.6751442,106.532572 C58.6751442,102.169214 62.2192225,98.6159054 66.5910645,98.6159054 L137.841811,98.6159054 L137.841811,27.365159 C137.841811,22.9999675 141.386223,19.4492387 145.758478,19.4492387 C150.121835,19.4492387 153.675144,22.993317 153.675144,27.365159 L153.675144,106.533318 C153.675144,108.71579 152.789142,110.694669 151.356651,112.127981 Z\" transform=\"translate(106.175144, 66.949239) rotate(-45.000000) translate(-106.175144, -66.949239) \"></path>\n\t</g>\n</svg>" }, "$:/core/images/clone-button": { "title": "$:/core/images/clone-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-clone-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M32.2650915,96 L32.2650915,120.002359 C32.2650915,124.419334 35.8432884,128 40.2627323,128 L120.002359,128 C124.419334,128 128,124.421803 128,120.002359 L128,40.2627323 C128,35.8457573 124.421803,32.2650915 120.002359,32.2650915 L96,32.2650915 L96,48 L108.858899,48 C110.519357,48 111.853018,49.3405131 111.853018,50.9941198 L111.853018,108.858899 C111.853018,110.519357 110.512505,111.853018 108.858899,111.853018 L50.9941198,111.853018 C49.333661,111.853018 48,110.512505 48,108.858899 L48,96 L32.2650915,96 Z\"></path>\n <path d=\"M40,56 L32.0070969,56 C27.5881712,56 24,52.418278 24,48 C24,43.5907123 27.5848994,40 32.0070969,40 L40,40 L40,32.0070969 C40,27.5881712 43.581722,24 48,24 C52.4092877,24 56,27.5848994 56,32.0070969 L56,40 L63.9929031,40 C68.4118288,40 72,43.581722 72,48 C72,52.4092877 68.4151006,56 63.9929031,56 L56,56 L56,63.9929031 C56,68.4118288 52.418278,72 48,72 C43.5907123,72 40,68.4151006 40,63.9929031 L40,56 Z M7.9992458,0 C3.58138434,0 0,3.5881049 0,7.9992458 L0,88.0007542 C0,92.4186157 3.5881049,96 7.9992458,96 L88.0007542,96 C92.4186157,96 96,92.4118951 96,88.0007542 L96,7.9992458 C96,3.58138434 92.4118951,0 88.0007542,0 L7.9992458,0 Z M19.0010118,16 C17.3435988,16 16,17.336731 16,19.0010118 L16,76.9989882 C16,78.6564012 17.336731,80 19.0010118,80 L76.9989882,80 C78.6564012,80 80,78.663269 80,76.9989882 L80,19.0010118 C80,17.3435988 78.663269,16 76.9989882,16 L19.0010118,16 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/close-all-button": { "title": "$:/core/images/close-all-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-close-all-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" transform=\"translate(-23.000000, -23.000000)\">\n <path d=\"M43,131 L22.9976794,131 C18.5827987,131 15,127.418278 15,123 C15,118.590712 18.5806831,115 22.9976794,115 L43,115 L43,94.9976794 C43,90.5827987 46.581722,87 51,87 C55.4092877,87 59,90.5806831 59,94.9976794 L59,115 L79.0023206,115 C83.4172013,115 87,118.581722 87,123 C87,127.409288 83.4193169,131 79.0023206,131 L59,131 L59,151.002321 C59,155.417201 55.418278,159 51,159 C46.5907123,159 43,155.419317 43,151.002321 L43,131 Z\" transform=\"translate(51.000000, 123.000000) rotate(-45.000000) translate(-51.000000, -123.000000) \"></path>\n <path d=\"M43,59 L22.9976794,59 C18.5827987,59 15,55.418278 15,51 C15,46.5907123 18.5806831,43 22.9976794,43 L43,43 L43,22.9976794 C43,18.5827987 46.581722,15 51,15 C55.4092877,15 59,18.5806831 59,22.9976794 L59,43 L79.0023206,43 C83.4172013,43 87,46.581722 87,51 C87,55.4092877 83.4193169,59 79.0023206,59 L59,59 L59,79.0023206 C59,83.4172013 55.418278,87 51,87 C46.5907123,87 43,83.4193169 43,79.0023206 L43,59 Z\" transform=\"translate(51.000000, 51.000000) rotate(-45.000000) translate(-51.000000, -51.000000) \"></path>\n <path d=\"M115,59 L94.9976794,59 C90.5827987,59 87,55.418278 87,51 C87,46.5907123 90.5806831,43 94.9976794,43 L115,43 L115,22.9976794 C115,18.5827987 118.581722,15 123,15 C127.409288,15 131,18.5806831 131,22.9976794 L131,43 L151.002321,43 C155.417201,43 159,46.581722 159,51 C159,55.4092877 155.419317,59 151.002321,59 L131,59 L131,79.0023206 C131,83.4172013 127.418278,87 123,87 C118.590712,87 115,83.4193169 115,79.0023206 L115,59 Z\" transform=\"translate(123.000000, 51.000000) rotate(-45.000000) translate(-123.000000, -51.000000) \"></path>\n <path d=\"M115,131 L94.9976794,131 C90.5827987,131 87,127.418278 87,123 C87,118.590712 90.5806831,115 94.9976794,115 L115,115 L115,94.9976794 C115,90.5827987 118.581722,87 123,87 C127.409288,87 131,90.5806831 131,94.9976794 L131,115 L151.002321,115 C155.417201,115 159,118.581722 159,123 C159,127.409288 155.419317,131 151.002321,131 L131,131 L131,151.002321 C131,155.417201 127.418278,159 123,159 C118.590712,159 115,155.419317 115,151.002321 L115,131 Z\" transform=\"translate(123.000000, 123.000000) rotate(-45.000000) translate(-123.000000, -123.000000) \"></path>\n </g>\n</svg>" }, "$:/core/images/close-button": { "title": "$:/core/images/close-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M65.0864256,75.4091629 L14.9727349,125.522854 C11.8515951,128.643993 6.78104858,128.64922 3.65685425,125.525026 C0.539017023,122.407189 0.5336324,117.334539 3.65902635,114.209145 L53.7727171,64.0954544 L3.65902635,13.9817637 C0.537886594,10.8606239 0.532659916,5.79007744 3.65685425,2.6658831 C6.77469148,-0.451954124 11.8473409,-0.457338747 14.9727349,2.66805521 L65.0864256,52.7817459 L115.200116,2.66805521 C118.321256,-0.453084553 123.391803,-0.458311231 126.515997,2.6658831 C129.633834,5.78372033 129.639219,10.8563698 126.513825,13.9817637 L76.4001341,64.0954544 L126.513825,114.209145 C129.634965,117.330285 129.640191,122.400831 126.515997,125.525026 C123.39816,128.642863 118.32551,128.648248 115.200116,125.522854 L65.0864256,75.4091629 L65.0864256,75.4091629 Z\"></path>\n </g>\n</svg>\n" }, "$:/core/images/close-others-button": { "title": "$:/core/images/close-others-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-close-others-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z M64,96 C81.673112,96 96,81.673112 96,64 C96,46.326888 81.673112,32 64,32 C46.326888,32 32,46.326888 32,64 C32,81.673112 46.326888,96 64,96 Z M64,80 C72.836556,80 80,72.836556 80,64 C80,55.163444 72.836556,48 64,48 C55.163444,48 48,55.163444 48,64 C48,72.836556 55.163444,80 64,80 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/copy-clipboard": { "title": "$:/core/images/copy-clipboard", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-copy-clipboard tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\">\n\t\t<rect x=\"40\" y=\"40\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"82\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"54\" width=\"17\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"96\" width=\"33\" height=\"8\" rx=\"4\"></rect>\n\t\t<rect x=\"40\" y=\"68\" width=\"12\" height=\"8\" rx=\"4\"></rect>\n\t\t<path d=\"M40,16 L23.9992458,16 C19.5813843,16 16,19.5907123 16,24 C16,24.0016363 16.0000005,24.0032725 16.0000015,24.0049086 C16.0000005,24.0065441 16,24.0081803 16,24.0098166 L16,119.990183 C16,119.99182 16.0000005,119.993456 16.0000015,119.995092 C16.0000005,119.996727 16,119.998364 16,120 C16,124.409288 19.5813843,128 23.9992458,128 L104.000754,128 C106.205061,128 108.203844,127.105595 109.652065,125.659342 C111.102424,124.21251 112,122.214511 112,120.007595 L112,103.992405 C112,99.5776607 108.418278,96 104,96 C99.5907123,96 96,99.5783218 96,103.992405 L96,112 L32,112 L32,32 L96,32 L96,40.0075946 C96,44.4223393 99.581722,48 104,48 C108.409288,48 112,44.4216782 112,40.0075946 L112,23.9924054 C112,21.7851587 111.104671,19.7871591 109.657101,18.3409203 C108.203844,16.8944047 106.205061,16 104.000754,16 L88,16 C88,11.5907123 84.4151006,8 79.9929031,8 L48.0070969,8 C43.5881712,8 40,11.581722 40,16 Z M44,14.9958262 C44,12.7889923 45.7964248,11 48.0000255,11 L79.9999745,11 C82.2091276,11 84,12.7965212 84,14.9958262 L84,19.0041738 C84,21.2110077 82.2035752,23 79.9999745,23 L48.0000255,23 C45.7908724,23 44,21.2034788 44,19.0041738 L44,14.9958262 Z\"></path>\n\t\t<rect x=\"62\" y=\"64\" width=\"66\" height=\"16\" rx=\"8\"></rect>\n\t\t<path d=\"M60.6568542,85.6568542 L76.6568542,69.6568543 L65.3431458,69.6568542 L81.3431458,85.6568542 C84.4673401,88.7810486 89.5326599,88.7810486 92.6568542,85.6568542 C95.7810486,82.5326599 95.7810486,77.4673401 92.6568542,74.3431458 L76.6568542,58.3431458 C73.5326599,55.2189514 68.4673401,55.2189514 65.3431458,58.3431457 L49.3431458,74.3431457 C46.2189514,77.4673401 46.2189514,82.5326599 49.3431457,85.6568542 C52.4673401,88.7810486 57.5326599,88.7810486 60.6568542,85.6568542 L60.6568542,85.6568542 Z\" transform=\"translate(71.000000, 72.000000) rotate(-90.000000) translate(-71.000000, -72.000000) \"></path>\n\t</g>\n</svg>" }, "$:/core/images/delete-button": { "title": "$:/core/images/delete-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\" transform=\"translate(12.000000, 0.000000)\">\n <rect x=\"0\" y=\"11\" width=\"105\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"28\" y=\"0\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"8\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"8\" y=\"112\" width=\"88\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"80\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"56\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n <rect x=\"32\" y=\"16\" width=\"16\" height=\"112\" rx=\"8\"></rect>\n </g>\n</svg>" }, "$:/core/images/done-button": { "title": "$:/core/images/done-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M3.52445141,76.8322939 C2.07397484,75.3828178 1.17514421,73.3795385 1.17514421,71.1666288 L1.17514421,23.1836596 C1.17514421,18.7531992 4.75686621,15.1751442 9.17514421,15.1751442 C13.5844319,15.1751442 17.1751442,18.7606787 17.1751442,23.1836596 L17.1751442,63.1751442 L119.173716,63.1751442 C123.590457,63.1751442 127.175144,66.7568662 127.175144,71.1751442 C127.175144,75.5844319 123.592783,79.1751442 119.173716,79.1751442 L9.17657227,79.1751442 C6.96796403,79.1751442 4.9674142,78.279521 3.51911285,76.8315312 Z\" id=\"Rectangle-285\" transform=\"translate(64.175144, 47.175144) rotate(-45.000000) translate(-64.175144, -47.175144) \"></path>\n </g>\n</svg>" }, "$:/core/images/down-arrow": { "title": "$:/core/images/down-arrow", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <path d=\"M109.35638,81.3533152 C107.923899,82.7869182 105.94502,83.6751442 103.759224,83.6751442 L24.5910645,83.6751442 C20.225873,83.6751442 16.6751442,80.1307318 16.6751442,75.7584775 C16.6751442,71.3951199 20.2192225,67.8418109 24.5910645,67.8418109 L95.8418109,67.8418109 L95.8418109,-3.40893546 C95.8418109,-7.77412698 99.3862233,-11.3248558 103.758478,-11.3248558 C108.121835,-11.3248558 111.675144,-7.78077754 111.675144,-3.40893546 L111.675144,75.7592239 C111.675144,77.9416955 110.789142,79.9205745 109.356651,81.3538862 Z\" transform=\"translate(64.175144, 36.175144) rotate(45.000000) translate(-64.175144, -36.175144) \"></path>\n</svg>" }, "$:/core/images/download-button": { "title": "$:/core/images/download-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-download-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path class=\"tc-image-download-button-ring\" d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"/><path d=\"M34.3496823,66.4308767 L61.2415823,93.634668 C63.0411536,95.4551107 65.9588502,95.4551107 67.7584215,93.634668 L94.6503215,66.4308767 C96.4498928,64.610434 96.4498928,61.6588981 94.6503215,59.8384554 C93.7861334,58.9642445 92.6140473,58.4731195 91.3919019,58.4731195 L82.9324098,58.4731195 C80.3874318,58.4731195 78.3243078,56.3860674 78.3243078,53.8115729 L78.3243078,38.6615466 C78.3243078,36.0870521 76.2611837,34 73.7162058,34 L55.283798,34 C52.7388201,34 50.675696,36.0870521 50.675696,38.6615466 L50.675696,38.6615466 L50.675696,53.8115729 C50.675696,56.3860674 48.612572,58.4731195 46.0675941,58.4731195 L37.608102,58.4731195 C35.063124,58.4731195 33,60.5601716 33,63.134666 C33,64.3709859 33.4854943,65.5566658 34.3496823,66.4308767 L34.3496823,66.4308767 Z\"/></g></svg>" }, "$:/core/images/edit-button": { "title": "$:/core/images/edit-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M116.870058,45.3431458 L108.870058,45.3431458 L108.870058,45.3431458 L108.870058,61.3431458 L116.870058,61.3431458 L116.870058,45.3431458 Z M124.870058,45.3431458 L127.649881,45.3431458 C132.066101,45.3431458 135.656854,48.9248678 135.656854,53.3431458 C135.656854,57.7524334 132.07201,61.3431458 127.649881,61.3431458 L124.870058,61.3431458 L124.870058,45.3431458 Z M100.870058,45.3431458 L15.6638275,45.3431458 C15.5064377,45.3431458 15.3501085,45.3476943 15.1949638,45.3566664 L15.1949638,45.3566664 C15.0628002,45.3477039 14.928279,45.3431458 14.7913977,45.3431458 C6.68160973,45.3431458 -8.34314575,53.3431458 -8.34314575,53.3431458 C-8.34314575,53.3431458 6.85614548,61.3431458 14.7913977,61.3431458 C14.9266533,61.3431458 15.0596543,61.3384973 15.190398,61.3293588 C15.3470529,61.3385075 15.5049057,61.3431458 15.6638275,61.3431458 L100.870058,61.3431458 L100.870058,45.3431458 L100.870058,45.3431458 Z\" transform=\"translate(63.656854, 53.343146) rotate(-45.000000) translate(-63.656854, -53.343146) \"></path>\n <path d=\"M35.1714596,124.189544 C41.9594858,123.613403 49.068777,121.917633 58.85987,118.842282 C60.6854386,118.268877 62.4306907,117.705515 65.1957709,116.802278 C81.1962861,111.575575 87.0734839,109.994907 93.9414474,109.655721 C102.29855,109.242993 107.795169,111.785371 111.520478,118.355045 C112.610163,120.276732 115.051363,120.951203 116.97305,119.861518 C118.894737,118.771832 119.569207,116.330633 118.479522,114.408946 C113.146151,105.003414 104.734907,101.112919 93.5468356,101.66546 C85.6716631,102.054388 79.4899908,103.716944 62.7116783,109.197722 C59.9734132,110.092199 58.2519873,110.64787 56.4625698,111.20992 C37.002649,117.322218 25.6914684,118.282267 16.8654804,112.957098 C14.9739614,111.815848 12.5154166,112.424061 11.3741667,114.31558 C10.2329168,116.207099 10.84113,118.665644 12.7326489,119.806894 C19.0655164,123.627836 26.4866335,124.926678 35.1714596,124.189544 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/erase": { "title": "$:/core/images/erase", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-erase tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60.0870401,127.996166 L123.102318,64.980888 C129.636723,58.4464827 129.629513,47.8655877 123.098967,41.3350425 L99.4657866,17.7018617 C92.927448,11.1635231 82.3486358,11.1698163 75.8199411,17.698511 L4.89768189,88.6207702 C-1.63672343,95.1551755 -1.6295126,105.736071 4.90103262,112.266616 L20.6305829,127.996166 L60.0870401,127.996166 Z M25.1375576,120.682546 L10.812569,106.357558 C7.5455063,103.090495 7.54523836,97.793808 10.8048093,94.5342371 L46.2691086,59.0699377 L81.7308914,94.5317205 L55.5800654,120.682546 L25.1375576,120.682546 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/excise": { "title": "$:/core/images/excise", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-excise tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M56,107.313709 L53.6568542,109.656854 C50.5326599,112.781049 45.4673401,112.781049 42.3431457,109.656854 C39.2189514,106.53266 39.2189514,101.46734 42.3431458,98.3431457 L58.3431458,82.3431457 C61.4673401,79.2189514 66.5326599,79.2189514 69.6568542,82.3431458 L85.6568542,98.3431458 C88.7810486,101.46734 88.7810486,106.53266 85.6568542,109.656854 C82.5326599,112.781049 77.4673401,112.781049 74.3431458,109.656854 L72,107.313708 L72,121.597798 C72,125.133636 68.418278,128 64,128 C59.581722,128 56,125.133636 56,121.597798 L56,107.313709 Z M0,40.0070969 C0,35.5848994 3.59071231,32 8,32 C12.418278,32 16,35.5881712 16,40.0070969 L16,71.9929031 C16,76.4151006 12.4092877,80 8,80 C3.581722,80 0,76.4118288 0,71.9929031 L0,40.0070969 Z M32,40.0070969 C32,35.5848994 35.5907123,32 40,32 C44.418278,32 48,35.5881712 48,40.0070969 L48,71.9929031 C48,76.4151006 44.4092877,80 40,80 C35.581722,80 32,76.4118288 32,71.9929031 L32,40.0070969 Z M80,40.0070969 C80,35.5848994 83.5907123,32 88,32 C92.418278,32 96,35.5881712 96,40.0070969 L96,71.9929031 C96,76.4151006 92.4092877,80 88,80 C83.581722,80 80,76.4118288 80,71.9929031 L80,40.0070969 Z M56,8.00709688 C56,3.58489938 59.5907123,0 64,0 C68.418278,0 72,3.58817117 72,8.00709688 L72,39.9929031 C72,44.4151006 68.4092877,48 64,48 C59.581722,48 56,44.4118288 56,39.9929031 L56,8.00709688 Z M112,40.0070969 C112,35.5848994 115.590712,32 120,32 C124.418278,32 128,35.5881712 128,40.0070969 L128,71.9929031 C128,76.4151006 124.409288,80 120,80 C115.581722,80 112,76.4118288 112,71.9929031 L112,40.0070969 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/export-button": { "title": "$:/core/images/export-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-export-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00348646,127.999999 C8.00464867,128 8.00581094,128 8.00697327,128 L119.993027,128 C122.205254,128 124.207939,127.101378 125.657096,125.651198 L125.656838,125.65759 C127.104563,124.210109 128,122.21009 128,119.999949 L128,56.0000511 C128,51.5817449 124.409288,48 120,48 C115.581722,48 112,51.5797863 112,56.0000511 L112,112 L16,112 L16,56.0000511 C16,51.5817449 12.4092877,48 8,48 C3.581722,48 7.10542736e-15,51.5797863 7.10542736e-15,56.0000511 L7.10542736e-15,119.999949 C7.10542736e-15,124.418255 3.59071231,128 8,128 C8.00116233,128 8.0023246,128 8.00348681,127.999999 Z M56.6235633,27.3113724 L47.6580188,36.2769169 C44.5333664,39.4015692 39.4634864,39.4061295 36.339292,36.2819351 C33.2214548,33.1640979 33.2173444,28.0901742 36.3443103,24.9632084 L58.9616908,2.34582788 C60.5248533,0.782665335 62.5748436,0.000361191261 64.624516,2.38225238e-14 L64.6193616,0.00151809229 C66.6695374,0.000796251595 68.7211167,0.781508799 70.2854358,2.34582788 L92.9028163,24.9632084 C96.0274686,28.0878607 96.0320289,33.1577408 92.9078345,36.2819351 C89.7899973,39.3997724 84.7160736,39.4038827 81.5891078,36.2769169 L72.6235633,27.3113724 L72.6235633,88.5669606 C72.6235633,92.9781015 69.0418413,96.5662064 64.6235633,96.5662064 C60.2142756,96.5662064 56.6235633,92.984822 56.6235633,88.5669606 L56.6235633,27.3113724 L56.6235633,27.3113724 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/file": { "title": "$:/core/images/file", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-file tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M111.96811,30.5 L112,30.5 L112,119.999079 C112,124.417866 108.419113,128 104.000754,128 L23.9992458,128 C19.5813843,128 16,124.417687 16,119.999079 L16,8.00092105 C16,3.58213437 19.5808867,0 23.9992458,0 L81,0 L81,0.0201838424 C83.1589869,-0.071534047 85.3482153,0.707077645 86.9982489,2.35711116 L109.625176,24.9840387 C111.151676,26.510538 111.932942,28.4998414 111.96811,30.5 L111.96811,30.5 Z M81,8 L24,8 L24,120 L104,120 L104,30.5 L89.0003461,30.5 C84.5818769,30.5 81,26.9216269 81,22.4996539 L81,8 Z\"></path>\n <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"68\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"84\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"100\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n </g>\n</svg>" }, "$:/core/images/fixed-height": { "title": "$:/core/images/fixed-height", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fixed-height tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60,35.6568542 L50.8284271,44.8284271 C49.26633,46.3905243 46.73367,46.3905243 45.1715729,44.8284271 C43.6094757,43.26633 43.6094757,40.73367 45.1715729,39.1715729 L61.1715729,23.1715729 C62.73367,21.6094757 65.2663299,21.6094757 66.8284271,23.1715728 L82.8284278,39.1715728 C84.390525,40.7336699 84.390525,43.2663299 82.8284279,44.8284271 C81.2663308,46.3905243 78.7336709,46.3905243 77.1715737,44.8284272 L68,35.6568539 L68,93.3431461 L77.1715737,84.1715728 C78.7336709,82.6094757 81.2663308,82.6094757 82.8284279,84.1715729 C84.390525,85.7336701 84.390525,88.2663301 82.8284278,89.8284272 L66.8284271,105.828427 C65.2663299,107.390524 62.73367,107.390524 61.1715729,105.828427 L45.1715729,89.8284271 C43.6094757,88.26633 43.6094757,85.73367 45.1715729,84.1715729 C46.73367,82.6094757 49.26633,82.6094757 50.8284271,84.1715729 L60,93.3431458 L60,35.6568542 L60,35.6568542 Z M16,116 L112,116 C114.209139,116 116,114.209139 116,112 C116,109.790861 114.209139,108 112,108 L16,108 C13.790861,108 12,109.790861 12,112 C12,114.209139 13.790861,116 16,116 L16,116 Z M16,20 L112,20 C114.209139,20 116,18.209139 116,16 C116,13.790861 114.209139,12 112,12 L16,12 C13.790861,12 12,13.790861 12,16 C12,18.209139 13.790861,20 16,20 L16,20 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/fold-all-button": { "title": "$:/core/images/fold-all-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M64.0292774,58.6235628 C61.9791013,58.6242848 59.9275217,57.8435723 58.3632024,56.279253 L35.7458219,33.6618725 C32.6211696,30.5372202 32.6166093,25.4673401 35.7408036,22.3431458 C38.8586409,19.2253085 43.9325646,19.2211982 47.0595304,22.348164 L64.0250749,39.3137085 L80.9906194,22.348164 C84.1152717,19.2235117 89.1851518,19.2189514 92.3093461,22.3431458 C95.4271834,25.460983 95.4312937,30.5349067 92.3043279,33.6618725 L69.6869474,56.279253 C68.1237851,57.8424153 66.0737951,58.6247195 64.0241231,58.6250809 Z\" transform=\"translate(64.024316, 39.313708) scale(1, -1) translate(-64.024316, -39.313708) \"></path>\n <path d=\"M64.0292774,123.621227 C61.9791013,123.621949 59.9275217,122.841236 58.3632024,121.276917 L35.7458219,98.6595365 C32.6211696,95.5348842 32.6166093,90.4650041 35.7408036,87.3408098 C38.8586409,84.2229725 43.9325646,84.2188622 47.0595304,87.345828 L64.0250749,104.311373 L80.9906194,87.345828 C84.1152717,84.2211757 89.1851518,84.2166154 92.3093461,87.3408098 C95.4271834,90.458647 95.4312937,95.5325707 92.3043279,98.6595365 L69.6869474,121.276917 C68.1237851,122.840079 66.0737951,123.622383 64.0241231,123.622745 Z\" transform=\"translate(64.024316, 104.311372) scale(1, -1) translate(-64.024316, -104.311372) \"></path>\n </g>\n</svg>" }, "$:/core/images/fold-button": { "title": "$:/core/images/fold-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M64.0292774,63.6235628 C61.9791013,63.6242848 59.9275217,62.8435723 58.3632024,61.279253 L35.7458219,38.6618725 C32.6211696,35.5372202 32.6166093,30.4673401 35.7408036,27.3431458 C38.8586409,24.2253085 43.9325646,24.2211982 47.0595304,27.348164 L64.0250749,44.3137085 L80.9906194,27.348164 C84.1152717,24.2235117 89.1851518,24.2189514 92.3093461,27.3431458 C95.4271834,30.460983 95.4312937,35.5349067 92.3043279,38.6618725 L69.6869474,61.279253 C68.1237851,62.8424153 66.0737951,63.6247195 64.0241231,63.6250809 Z\" transform=\"translate(64.024316, 44.313708) scale(1, -1) translate(-64.024316, -44.313708) \"></path>\n <path d=\"M64.0049614,105.998482 C61.9547853,105.999204 59.9032057,105.218491 58.3388864,103.654172 L35.7215059,81.0367916 C32.5968535,77.9121393 32.5922933,72.8422592 35.7164876,69.7180649 C38.8343248,66.6002276 43.9082485,66.5961173 47.0352144,69.7230831 L64.0007589,86.6886276 L80.9663034,69.7230831 C84.0909557,66.5984308 89.1608358,66.5938705 92.2850301,69.7180649 C95.4028673,72.8359021 95.4069777,77.9098258 92.2800119,81.0367916 L69.6626314,103.654172 C68.099469,105.217334 66.0494791,105.999639 63.999807,106 Z\" transform=\"translate(64.000000, 86.688628) scale(1, -1) translate(-64.000000, -86.688628) \"></path>\n </g>\n</svg>" }, "$:/core/images/fold-others-button": { "title": "$:/core/images/fold-others-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-fold-others tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"56.0314331\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M101.657101,104.948818 C100.207918,103.498614 98.2051847,102.599976 95.9929031,102.599976 L72,102.599976 L72,78.6070725 C72,76.3964271 71.1036108,74.3936927 69.6545293,72.9441002 L69.6571005,72.9488183 C68.2079177,71.4986143 66.2051847,70.5999756 63.9929031,70.5999756 L32.0070969,70.5999756 C27.5881712,70.5999756 24,74.1816976 24,78.5999756 C24,83.0092633 27.5848994,86.5999756 32.0070969,86.5999756 L56,86.5999756 L56,110.592879 C56,112.803524 56.8963895,114.806259 58.3454713,116.255852 L58.3429,116.251133 C59.7920828,117.701337 61.7948156,118.599976 64.0070969,118.599976 L88,118.599976 L88,142.592879 C88,147.011804 91.581722,150.599976 96,150.599976 C100.409288,150.599976 104,147.015076 104,142.592879 L104,110.607072 C104,108.396427 103.103611,106.393693 101.654529,104.9441 Z\" transform=\"translate(64.000000, 110.599976) rotate(-45.000000) translate(-64.000000, -110.599976) \"></path>\n <path d=\"M101.725643,11.7488671 C100.27646,10.2986632 98.2737272,9.40002441 96.0614456,9.40002441 L72.0685425,9.40002441 L72.0685425,-14.5928787 C72.0685425,-16.8035241 71.1721533,-18.8062584 69.7230718,-20.255851 L69.725643,-20.2511329 C68.2764602,-21.7013368 66.2737272,-22.5999756 64.0614456,-22.5999756 L32.0756394,-22.5999756 C27.6567137,-22.5999756 24.0685425,-19.0182536 24.0685425,-14.5999756 C24.0685425,-10.1906879 27.6534419,-6.59997559 32.0756394,-6.59997559 L56.0685425,-6.59997559 L56.0685425,17.3929275 C56.0685425,19.6035732 56.964932,21.6063078 58.4140138,23.0559004 L58.4114425,23.0511823 C59.8606253,24.5013859 61.8633581,25.4000244 64.0756394,25.4000244 L88.0685425,25.4000244 L88.0685425,49.3929275 C88.0685425,53.8118532 91.6502645,57.4000244 96.0685425,57.4000244 C100.47783,57.4000244 104.068542,53.815125 104.068542,49.3929275 L104.068542,17.4071213 C104.068542,15.1964759 103.172153,13.1937416 101.723072,11.744149 Z\" transform=\"translate(64.068542, 17.400024) scale(1, -1) rotate(-45.000000) translate(-64.068542, -17.400024) \"></path>\n </g>\n</svg>" }, "$:/core/images/folder": { "title": "$:/core/images/folder", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-folder tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M55.6943257,128.000004 L7.99859666,128.000004 C3.5810937,128.000004 0,124.413822 0,119.996384 L0,48.0036243 C0,43.5833471 3.58387508,40.0000044 7.99859666,40.0000044 L16,40.0000044 L16,31.9999914 C16,27.5817181 19.5783731,24 24.0003461,24 L55.9996539,24 C60.4181231,24 64,27.5800761 64,31.9999914 L64,40.0000044 L104.001403,40.0000044 C108.418906,40.0000044 112,43.5861868 112,48.0036243 L112,59.8298353 L104,59.7475921 L104,51.9994189 C104,49.7887607 102.207895,48.0000044 99.9972215,48.0000044 L56,48.0000044 L56,36.0000255 C56,33.7898932 54.2072328,32 51.9957423,32 L28.0042577,32 C25.7890275,32 24,33.7908724 24,36.0000255 L24,48.0000044 L12.0027785,48.0000044 C9.78987688,48.0000044 8,49.7906032 8,51.9994189 L8,116.00059 C8,118.211248 9.79210499,120.000004 12.0027785,120.000004 L58.7630167,120.000004 L55.6943257,128.000004 L55.6943257,128.000004 Z\"></path>\n <path d=\"M23.8728955,55.5 L119.875702,55.5 C124.293205,55.5 126.87957,59.5532655 125.650111,64.5630007 L112.305967,118.936999 C111.077582,123.942356 106.497904,128 102.083183,128 L6.08037597,128 C1.66287302,128 -0.923492342,123.946735 0.305967145,118.936999 L13.650111,64.5630007 C14.878496,59.5576436 19.4581739,55.5 23.8728955,55.5 L23.8728955,55.5 L23.8728955,55.5 Z M25.6530124,64 L113.647455,64 C115.858129,64 117.151473,66.0930612 116.538306,68.6662267 L105.417772,115.333773 C104.803671,117.910859 102.515967,120 100.303066,120 L12.3086228,120 C10.0979492,120 8.8046054,117.906939 9.41777189,115.333773 L20.5383062,68.6662267 C21.1524069,66.0891409 23.4401107,64 25.6530124,64 L25.6530124,64 L25.6530124,64 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/full-screen-button": { "title": "$:/core/images/full-screen-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-full-screen-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g>\n <g>\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(104.000000, 104.000000) rotate(-180.000000) translate(-104.000000, -104.000000) translate(80.000000, 80.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(24.000000, 104.000000) rotate(-90.000000) translate(-24.000000, -104.000000) translate(0.000000, 80.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n <g transform=\"translate(104.000000, 24.000000) rotate(90.000000) translate(-104.000000, -24.000000) translate(80.000000, 0.000000)\">\n <path d=\"M5.29777586e-31,8 C1.59060409e-15,3.581722 3.581722,0 8,0 L40,0 C44.418278,0 48,3.581722 48,8 C48,12.418278 44.418278,16 40,16 L16,16 L16,40 C16,44.418278 12.418278,48 8,48 C3.581722,48 -3.55271368e-15,44.418278 0,40 L3.55271368e-15,8 Z\"></path>\n </g>\n </g>\n</svg>" }, "$:/core/images/github": { "title": "$:/core/images/github", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-github tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M63.9383506,1.60695328 C28.6017227,1.60695328 -0.055756057,30.2970814 -0.055756057,65.6906208 C-0.055756057,94.003092 18.2804728,118.019715 43.7123154,126.493393 C46.9143781,127.083482 48.0812647,125.104717 48.0812647,123.405261 C48.0812647,121.886765 48.02626,117.85449 47.9948287,112.508284 C30.1929317,116.379268 26.4368926,103.916587 26.4368926,103.916587 C23.5255693,96.5129372 19.3294921,94.5420399 19.3294921,94.5420399 C13.5186324,90.5687739 19.7695302,90.6474524 19.7695302,90.6474524 C26.1933001,91.099854 29.5721638,97.2525155 29.5721638,97.2525155 C35.2808718,107.044059 44.5531024,104.215566 48.1991321,102.575118 C48.7806109,98.4366275 50.4346826,95.612068 52.2616263,94.0109598 C38.0507543,92.3941159 23.1091047,86.8944862 23.1091047,62.3389152 C23.1091047,55.3443933 25.6039634,49.6205298 29.6978889,45.1437211 C29.0378318,43.5229433 26.8415704,37.0044266 30.3265147,28.1845627 C30.3265147,28.1845627 35.6973364,26.4615028 47.9241083,34.7542205 C53.027764,33.330139 58.5046663,32.6220321 63.9462084,32.5944947 C69.3838216,32.6220321 74.856795,33.330139 79.9683085,34.7542205 C92.1872225,26.4615028 97.5501864,28.1845627 97.5501864,28.1845627 C101.042989,37.0044266 98.8467271,43.5229433 98.190599,45.1437211 C102.292382,49.6205298 104.767596,55.3443933 104.767596,62.3389152 C104.767596,86.9574291 89.8023734,92.3744463 75.5482834,93.9598188 C77.8427675,95.9385839 79.8897303,99.8489072 79.8897303,105.828476 C79.8897303,114.392635 79.8111521,121.304544 79.8111521,123.405261 C79.8111521,125.120453 80.966252,127.114954 84.2115327,126.489459 C109.623731,117.996111 127.944244,93.9952241 127.944244,65.6906208 C127.944244,30.2970814 99.2867652,1.60695328 63.9383506,1.60695328\"></path>\n </g>\n </svg>\n" }, "$:/core/images/gitter": { "title": "$:/core/images/gitter", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-gitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 18 25\">\n <rect x=\"15\" y=\"5\" width=\"2\" height=\"10\"></rect>\n <rect x=\"10\" y=\"5\" width=\"2\" height=\"20\"></rect>\n <rect x=\"5\" y=\"5\" width=\"2\" height=\"20\"></rect>\n <rect width=\"2\" height=\"15\"></rect>\n</svg>\n" }, "$:/core/images/globe": { "title": "$:/core/images/globe", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-globe tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M72.8111354,37.1275855 C72.8111354,37.9789875 72.8111354,38.8303894 72.8111354,39.6817913 C72.8111354,41.8784743 73.7885604,46.5631866 72.8111354,48.5143758 C71.3445471,51.4420595 68.1617327,52.0543531 66.4170946,54.3812641 C65.2352215,55.9575873 61.7987417,64.9821523 62.7262858,67.3005778 C66.6959269,77.2228204 74.26087,70.4881886 80.6887657,76.594328 C81.5527211,77.415037 83.5758191,78.8666631 83.985137,79.8899578 C87.2742852,88.1128283 76.4086873,94.8989524 87.7419325,106.189751 C88.9872885,107.430443 91.555495,102.372895 91.8205061,101.575869 C92.6726866,99.0129203 98.5458765,96.1267309 100.908882,94.5234439 C102.928056,93.1534443 105.782168,91.8557166 107.236936,89.7775886 C109.507391,86.5342557 108.717505,82.2640435 110.334606,79.0328716 C112.473794,74.7585014 114.163418,69.3979002 116.332726,65.0674086 C120.230862,57.2857361 121.054075,67.1596684 121.400359,67.5059523 C121.757734,67.8633269 122.411167,67.5059523 122.916571,67.5059523 C123.011132,67.5059523 124.364019,67.6048489 124.432783,67.5059523 C125.0832,66.5705216 123.390209,49.5852316 123.114531,48.2089091 C121.710578,41.1996597 116.17083,32.4278331 111.249523,27.7092761 C104.975994,21.6942076 104.160516,11.5121686 92.9912146,12.7547535 C92.7872931,12.7774397 87.906794,22.9027026 85.2136766,26.2672064 C81.486311,30.9237934 82.7434931,22.1144904 78.6876623,22.1144904 C78.6065806,22.1144904 77.5045497,22.0107615 77.4353971,22.1144904 C76.8488637,22.9942905 75.9952305,26.0101404 75.1288269,26.5311533 C74.8635477,26.6906793 73.4071369,26.2924966 73.2826811,26.5311533 C71.0401728,30.8313939 81.5394677,28.7427264 79.075427,34.482926 C76.7225098,39.9642538 72.747373,32.4860199 72.747373,43.0434079\"></path>\n <path d=\"M44.4668556,7.01044608 C54.151517,13.1403033 45.1489715,19.2084878 47.1611905,23.2253896 C48.8157833,26.5283781 51.4021933,28.6198851 48.8753629,33.038878 C46.8123257,36.6467763 42.0052989,37.0050492 39.251679,39.7621111 C36.2115749,42.8060154 33.7884281,48.7028116 32.4624592,52.6732691 C30.8452419,57.5158356 47.0088721,59.5388126 44.5246867,63.6811917 C43.1386839,65.9923513 37.7785192,65.1466282 36.0880227,63.8791519 C34.9234453,63.0059918 32.4946425,63.3331166 31.6713597,62.0997342 C29.0575851,58.1839669 29.4107339,54.0758543 28.0457962,49.9707786 C27.1076833,47.1493864 21.732611,47.8501656 20.2022714,49.3776393 C19.6790362,49.8998948 19.8723378,51.1703278 19.8723378,51.8829111 C19.8723378,57.1682405 26.9914913,55.1986414 26.9914913,58.3421973 C26.9914913,72.9792302 30.9191897,64.8771867 38.1313873,69.6793121 C48.1678018,76.3618966 45.9763926,76.981595 53.0777543,84.0829567 C56.7511941,87.7563965 60.8192437,87.7689005 62.503478,93.3767069 C64.1046972,98.7081071 53.1759798,98.7157031 50.786754,100.825053 C49.663965,101.816317 47.9736094,104.970571 46.5680513,105.439676 C44.7757187,106.037867 43.334221,105.93607 41.6242359,107.219093 C39.1967302,109.040481 37.7241465,112.151588 37.6034934,112.030935 C35.4555278,109.88297 34.0848666,96.5511248 33.7147244,93.7726273 C33.1258872,89.3524817 28.1241923,88.2337027 26.7275443,84.7420826 C25.1572737,80.8164061 28.2518481,75.223612 25.599097,70.9819941 C19.0797019,60.557804 13.7775712,56.4811506 10.2493953,44.6896152 C9.3074899,41.5416683 13.5912267,38.1609942 15.1264825,35.8570308 C17.0029359,33.0410312 17.7876232,30.0028946 19.8723378,27.2224065 C22.146793,24.1888519 40.8551166,9.46076832 43.8574051,8.63490613 L44.4668556,7.01044608 Z\"></path>\n <path d=\"M64,126 C98.2416545,126 126,98.2416545 126,64 C126,29.7583455 98.2416545,2 64,2 C29.7583455,2 2,29.7583455 2,64 C2,98.2416545 29.7583455,126 64,126 Z M64,120 C94.927946,120 120,94.927946 120,64 C120,33.072054 94.927946,8 64,8 C33.072054,8 8,33.072054 8,64 C8,94.927946 33.072054,120 64,120 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-1": { "title": "$:/core/images/heading-1", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-1 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M14,30 L27.25,30 L27.25,60.104 L61.7,60.104 L61.7,30 L74.95,30 L74.95,105.684 L61.7,105.684 L61.7,71.552 L27.25,71.552 L27.25,105.684 L14,105.684 L14,30 Z M84.3350766,43.78 C86.8790893,43.78 89.3523979,43.5680021 91.7550766,43.144 C94.1577553,42.7199979 96.3307336,42.0133383 98.2740766,41.024 C100.21742,40.0346617 101.87807,38.7626744 103.256077,37.208 C104.634084,35.6533256 105.535075,33.7453446 105.959077,31.484 L115.817077,31.484 L115.817077,105.684 L102.567077,105.684 L102.567077,53.32 L84.3350766,53.32 L84.3350766,43.78 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-2": { "title": "$:/core/images/heading-2", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-2 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M125.519077,105.684 L74.8510766,105.684 C74.9217436,99.5359693 76.4057288,94.1653563 79.3030766,89.572 C82.2004244,84.9786437 86.1577182,80.986017 91.1750766,77.594 C93.5777553,75.8273245 96.0863969,74.113675 98.7010766,72.453 C101.315756,70.792325 103.718399,69.0080095 105.909077,67.1 C108.099754,65.1919905 109.901736,63.1250111 111.315077,60.899 C112.728417,58.6729889 113.47041,56.1113478 113.541077,53.214 C113.541077,51.8713266 113.382078,50.4403409 113.064077,48.921 C112.746075,47.4016591 112.127748,45.9883399 111.209077,44.681 C110.290405,43.3736601 109.018418,42.2783377 107.393077,41.395 C105.767735,40.5116622 103.647756,40.07 101.033077,40.07 C98.6303979,40.07 96.6340846,40.5469952 95.0440766,41.501 C93.4540687,42.4550048 92.1820814,43.762325 91.2280766,45.423 C90.2740719,47.083675 89.5674123,49.0446554 89.1080766,51.306 C88.648741,53.5673446 88.3837436,56.0053203 88.3130766,58.62 L76.2290766,58.62 C76.2290766,54.5213128 76.7767378,50.7230175 77.8720766,47.225 C78.9674154,43.7269825 80.610399,40.7060127 82.8010766,38.162 C84.9917542,35.6179873 87.6593942,33.6216739 90.8040766,32.173 C93.948759,30.7243261 97.6057224,30 101.775077,30 C106.297766,30 110.078395,30.7419926 113.117077,32.226 C116.155758,33.7100074 118.611401,35.5826554 120.484077,37.844 C122.356753,40.1053446 123.681739,42.5609868 124.459077,45.211 C125.236414,47.8610133 125.625077,50.3873213 125.625077,52.79 C125.625077,55.7580148 125.165748,58.4433213 124.247077,60.846 C123.328405,63.2486787 122.091751,65.4569899 120.537077,67.471 C118.982402,69.4850101 117.215753,71.3399915 115.237077,73.036 C113.2584,74.7320085 111.209087,76.3219926 109.089077,77.806 C106.969066,79.2900074 104.849087,80.7033266 102.729077,82.046 C100.609066,83.3886734 98.6480856,84.7313266 96.8460766,86.074 C95.0440676,87.4166734 93.47175,88.8123261 92.1290766,90.261 C90.7864032,91.7096739 89.8677458,93.2466585 89.3730766,94.872 L125.519077,94.872 L125.519077,105.684 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-3": { "title": "$:/core/images/heading-3", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-3 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M94.8850766,62.224 C96.8637532,62.294667 98.8424001,62.1533351 100.821077,61.8 C102.799753,61.4466649 104.566402,60.8283378 106.121077,59.945 C107.675751,59.0616623 108.930072,57.8426744 109.884077,56.288 C110.838081,54.7333256 111.315077,52.8253446 111.315077,50.564 C111.315077,47.3839841 110.237421,44.8400095 108.082077,42.932 C105.926733,41.0239905 103.153094,40.07 99.7610766,40.07 C97.641066,40.07 95.8037511,40.4939958 94.2490766,41.342 C92.6944022,42.1900042 91.4047484,43.3383261 90.3800766,44.787 C89.3554048,46.2356739 88.5957458,47.860991 88.1010766,49.663 C87.6064075,51.465009 87.3944096,53.3199905 87.4650766,55.228 L75.3810766,55.228 C75.5224107,51.623982 76.1937373,48.2850154 77.3950766,45.211 C78.596416,42.1369846 80.2393995,39.4693446 82.3240766,37.208 C84.4087537,34.9466554 86.9350618,33.1800064 89.9030766,31.908 C92.8710915,30.6359936 96.2277246,30 99.9730766,30 C102.870424,30 105.714729,30.4239958 108.506077,31.272 C111.297424,32.1200042 113.806065,33.3566585 116.032077,34.982 C118.258088,36.6073415 120.042403,38.6743208 121.385077,41.183 C122.72775,43.6916792 123.399077,46.5713171 123.399077,49.822 C123.399077,53.5673521 122.551085,56.8356527 120.855077,59.627 C119.159068,62.4183473 116.509095,64.4499936 112.905077,65.722 L112.905077,65.934 C117.145098,66.7820042 120.448731,68.8843166 122.816077,72.241 C125.183422,75.5976835 126.367077,79.6786426 126.367077,84.484 C126.367077,88.017351 125.660417,91.1796527 124.247077,93.971 C122.833736,96.7623473 120.925755,99.129657 118.523077,101.073 C116.120398,103.016343 113.329093,104.517995 110.149077,105.578 C106.969061,106.638005 103.612428,107.168 100.079077,107.168 C95.7683884,107.168 92.005426,106.549673 88.7900766,105.313 C85.5747272,104.076327 82.8894207,102.327345 80.7340766,100.066 C78.5787325,97.8046554 76.9357489,95.0840159 75.8050766,91.904 C74.6744043,88.7239841 74.0737436,85.1906861 74.0030766,81.304 L86.0870766,81.304 C85.9457426,85.8266893 87.0587315,89.5896517 89.4260766,92.593 C91.7934218,95.5963483 95.3443863,97.098 100.079077,97.098 C104.107097,97.098 107.481396,95.9496782 110.202077,93.653 C112.922757,91.3563219 114.283077,88.0880212 114.283077,83.848 C114.283077,80.9506522 113.717749,78.6540085 112.587077,76.958 C111.456404,75.2619915 109.972419,73.9723378 108.135077,73.089 C106.297734,72.2056623 104.230755,71.6580011 101.934077,71.446 C99.6373985,71.2339989 97.2877553,71.163333 94.8850766,71.234 L94.8850766,62.224 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-4": { "title": "$:/core/images/heading-4", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-4 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8,30 L21.25,30 L21.25,60.104 L55.7,60.104 L55.7,30 L68.95,30 L68.95,105.684 L55.7,105.684 L55.7,71.552 L21.25,71.552 L21.25,105.684 L8,105.684 L8,30 Z M84.5890766,78.548 L107.061077,78.548 L107.061077,45.9 L106.849077,45.9 L84.5890766,78.548 Z M128.049077,88.088 L118.509077,88.088 L118.509077,105.684 L107.061077,105.684 L107.061077,88.088 L75.2610766,88.088 L75.2610766,76.11 L107.061077,31.484 L118.509077,31.484 L118.509077,78.548 L128.049077,78.548 L128.049077,88.088 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-5": { "title": "$:/core/images/heading-5", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-5 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M83.7550766,31.484 L122.127077,31.484 L122.127077,42.296 L92.7650766,42.296 L88.9490766,61.164 L89.1610766,61.376 C90.7864181,59.5386575 92.8533974,58.1430048 95.3620766,57.189 C97.8707558,56.2349952 100.361731,55.758 102.835077,55.758 C106.509762,55.758 109.795729,56.3763272 112.693077,57.613 C115.590424,58.8496729 118.0284,60.5809889 120.007077,62.807 C121.985753,65.0330111 123.487405,67.6653181 124.512077,70.704 C125.536748,73.7426819 126.049077,77.028649 126.049077,80.562 C126.049077,83.5300148 125.572081,86.5863176 124.618077,89.731 C123.664072,92.8756824 122.144754,95.7376538 120.060077,98.317 C117.9754,100.896346 115.30776,103.016325 112.057077,104.677 C108.806394,106.337675 104.919766,107.168 100.397077,107.168 C96.7930586,107.168 93.454092,106.691005 90.3800766,105.737 C87.3060613,104.782995 84.6030883,103.35201 82.2710766,101.444 C79.939065,99.5359905 78.0840835,97.1863473 76.7060766,94.395 C75.3280697,91.6036527 74.5684107,88.3353521 74.4270766,84.59 L86.5110766,84.59 C86.8644117,88.6180201 88.2423979,91.7096559 90.6450766,93.865 C93.0477553,96.0203441 96.2277235,97.098 100.185077,97.098 C102.729089,97.098 104.884401,96.6740042 106.651077,95.826 C108.417752,94.9779958 109.848738,93.8120074 110.944077,92.328 C112.039415,90.8439926 112.816741,89.1126766 113.276077,87.134 C113.735412,85.1553234 113.965077,83.0353446 113.965077,80.774 C113.965077,78.7246564 113.682413,76.763676 113.117077,74.891 C112.55174,73.018324 111.703749,71.3753404 110.573077,69.962 C109.442404,68.5486596 107.976086,67.4180042 106.174077,66.57 C104.372068,65.7219958 102.269755,65.298 99.8670766,65.298 C97.3230639,65.298 94.9380878,65.7749952 92.7120766,66.729 C90.4860655,67.6830048 88.8784149,69.4673203 87.8890766,72.082 L75.8050766,72.082 L83.7550766,31.484 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/heading-6": { "title": "$:/core/images/heading-6", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-heading-6 tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M6,30 L19.25,30 L19.25,60.104 L53.7,60.104 L53.7,30 L66.95,30 L66.95,105.684 L53.7,105.684 L53.7,71.552 L19.25,71.552 L19.25,105.684 L6,105.684 L6,30 Z M112.587077,50.246 C112.304409,47.2073181 111.226753,44.751676 109.354077,42.879 C107.481401,41.006324 104.955093,40.07 101.775077,40.07 C99.584399,40.07 97.6940846,40.4763293 96.1040766,41.289 C94.5140687,42.1016707 93.1714154,43.1793266 92.0760766,44.522 C90.9807378,45.8646734 90.0974133,47.401658 89.4260766,49.133 C88.7547399,50.864342 88.2070787,52.6839905 87.7830766,54.592 C87.3590745,56.5000095 87.0587442,58.390324 86.8820766,60.263 C86.7054091,62.135676 86.5464107,63.8846585 86.4050766,65.51 L86.6170766,65.722 C88.2424181,62.7539852 90.4860623,60.5456739 93.3480766,59.097 C96.2100909,57.6483261 99.3017267,56.924 102.623077,56.924 C106.297762,56.924 109.583729,57.5599936 112.481077,58.832 C115.378424,60.1040064 117.834067,61.8529889 119.848077,64.079 C121.862087,66.3050111 123.399071,68.9373181 124.459077,71.976 C125.519082,75.0146819 126.049077,78.300649 126.049077,81.834 C126.049077,85.438018 125.466082,88.7769846 124.300077,91.851 C123.134071,94.9250154 121.455754,97.6103219 119.265077,99.907 C117.074399,102.203678 114.459758,103.987994 111.421077,105.26 C108.382395,106.532006 105.025762,107.168 101.351077,107.168 C95.9097161,107.168 91.4400941,106.16101 87.9420766,104.147 C84.4440591,102.13299 81.6880867,99.3770175 79.6740766,95.879 C77.6600666,92.3809825 76.2644138,88.2823568 75.4870766,83.583 C74.7097394,78.8836432 74.3210766,73.8133605 74.3210766,68.372 C74.3210766,63.9199777 74.7980719,59.4326893 75.7520766,54.91 C76.7060814,50.3873107 78.278399,46.2710186 80.4690766,42.561 C82.6597542,38.8509815 85.5393921,35.8300117 89.1080766,33.498 C92.6767611,31.1659883 97.0757171,30 102.305077,30 C105.273091,30 108.064397,30.4946617 110.679077,31.484 C113.293756,32.4733383 115.608067,33.8513245 117.622077,35.618 C119.636087,37.3846755 121.27907,39.5046543 122.551077,41.978 C123.823083,44.4513457 124.529743,47.2073181 124.671077,50.246 L112.587077,50.246 Z M100.927077,97.098 C103.117754,97.098 105.025735,96.6563378 106.651077,95.773 C108.276418,94.8896623 109.636738,93.7413404 110.732077,92.328 C111.827415,90.9146596 112.640074,89.271676 113.170077,87.399 C113.700079,85.526324 113.965077,83.6006766 113.965077,81.622 C113.965077,79.6433234 113.700079,77.7353425 113.170077,75.898 C112.640074,74.0606575 111.827415,72.4530069 110.732077,71.075 C109.636738,69.6969931 108.276418,68.5840042 106.651077,67.736 C105.025735,66.8879958 103.117754,66.464 100.927077,66.464 C98.736399,66.464 96.8107516,66.8703293 95.1500766,67.683 C93.4894017,68.4956707 92.0937489,69.5909931 90.9630766,70.969 C89.8324043,72.3470069 88.9844128,73.9546575 88.4190766,75.792 C87.8537405,77.6293425 87.5710766,79.5726564 87.5710766,81.622 C87.5710766,83.6713436 87.8537405,85.6146575 88.4190766,87.452 C88.9844128,89.2893425 89.8324043,90.9323261 90.9630766,92.381 C92.0937489,93.8296739 93.4894017,94.9779958 95.1500766,95.826 C96.8107516,96.6740042 98.736399,97.098 100.927077,97.098 L100.927077,97.098 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/help": { "title": "$:/core/images/help", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-help tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M36.0548906,111.44117 C30.8157418,115.837088 20.8865444,118.803477 9.5,118.803477 C7.86465619,118.803477 6.25937294,118.742289 4.69372699,118.624467 C12.612543,115.984876 18.7559465,110.02454 21.0611049,102.609942 C8.74739781,92.845129 1.04940554,78.9359851 1.04940554,63.5 C1.04940554,33.9527659 29.2554663,10 64.0494055,10 C98.8433448,10 127.049406,33.9527659 127.049406,63.5 C127.049406,93.0472341 98.8433448,117 64.0494055,117 C53.9936953,117 44.48824,114.999337 36.0548906,111.44117 L36.0548906,111.44117 Z M71.4042554,77.5980086 C71.406883,77.2865764 71.4095079,76.9382011 71.4119569,76.5610548 C71.4199751,75.3262169 71.4242825,74.0811293 71.422912,72.9158546 C71.4215244,71.736154 71.4143321,70.709635 71.4001396,69.8743525 C71.4078362,68.5173028 71.9951951,67.7870427 75.1273009,65.6385471 C75.2388969,65.5619968 76.2124091,64.8981068 76.5126553,64.6910879 C79.6062455,62.5580654 81.5345849,60.9050204 83.2750652,58.5038955 C85.6146327,55.2762841 86.8327108,51.426982 86.8327108,46.8554323 C86.8327108,33.5625756 76.972994,24.9029551 65.3778484,24.9029551 C54.2752771,24.9029551 42.8794554,34.5115163 41.3121702,47.1975534 C40.9043016,50.4989536 43.2499725,53.50591 46.5513726,53.9137786 C49.8527728,54.3216471 52.8597292,51.9759763 53.2675978,48.6745761 C54.0739246,42.1479456 60.2395837,36.9492759 65.3778484,36.9492759 C70.6427674,36.9492759 74.78639,40.5885487 74.78639,46.8554323 C74.78639,50.4892974 73.6853224,52.008304 69.6746221,54.7736715 C69.4052605,54.9593956 68.448509,55.6118556 68.3131127,55.7047319 C65.6309785,57.5445655 64.0858213,58.803255 62.6123358,60.6352315 C60.5044618,63.2559399 59.3714208,66.3518252 59.3547527,69.9487679 C59.3684999,70.8407274 59.3752803,71.8084521 59.3765995,72.9300232 C59.3779294,74.0607297 59.3737237,75.2764258 59.36589,76.482835 C59.3634936,76.8518793 59.3609272,77.1924914 59.3583633,77.4963784 C59.3568319,77.6778944 59.3556368,77.8074256 59.3549845,77.8730928 C59.3219814,81.1994287 61.9917551,83.9227111 65.318091,83.9557142 C68.644427,83.9887173 71.3677093,81.3189435 71.4007124,77.9926076 C71.4014444,77.9187458 71.402672,77.7856841 71.4042554,77.5980086 Z M65.3778489,102.097045 C69.5359735,102.097045 72.9067994,98.7262189 72.9067994,94.5680944 C72.9067994,90.4099698 69.5359735,87.0391439 65.3778489,87.0391439 C61.2197243,87.0391439 57.8488984,90.4099698 57.8488984,94.5680944 C57.8488984,98.7262189 61.2197243,102.097045 65.3778489,102.097045 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/home-button": { "title": "$:/core/images/home-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112.9847,119.501583 C112.99485,119.336814 113,119.170705 113,119.003406 L113,67.56802 C116.137461,70.5156358 121.076014,70.4518569 124.133985,67.3938855 C127.25818,64.2696912 127.260618,59.2068102 124.131541,56.0777326 L70.3963143,2.34250601 C68.8331348,0.779326498 66.7828947,-0.000743167069 64.7337457,1.61675364e-05 C62.691312,-0.00409949529 60.6426632,0.777559815 59.077717,2.34250601 L33,28.420223 L33,28.420223 L33,8.00697327 C33,3.58484404 29.4092877,0 25,0 C20.581722,0 17,3.59075293 17,8.00697327 L17,44.420223 L5.3424904,56.0777326 C2.21694607,59.2032769 2.22220878,64.2760483 5.34004601,67.3938855 C8.46424034,70.5180798 13.5271213,70.5205187 16.6561989,67.3914411 L17,67.04764 L17,119.993027 C17,119.994189 17.0000002,119.995351 17.0000007,119.996514 C17.0000002,119.997675 17,119.998838 17,120 C17,124.418278 20.5881049,128 24.9992458,128 L105.000754,128 C109.418616,128 113,124.409288 113,120 C113,119.832611 112.99485,119.666422 112.9847,119.501583 Z M97,112 L97,51.5736087 L97,51.5736087 L64.7370156,19.3106244 L33,51.04764 L33,112 L97,112 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/import-button": { "title": "$:/core/images/import-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-import-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M105.449437,94.2138951 C105.449437,94.2138951 110.049457,94.1897106 110.049457,99.4026111 C110.049457,104.615512 105.163246,104.615511 105.163246,104.615511 L45.0075072,105.157833 C45.0075072,105.157833 0.367531803,106.289842 0.367532368,66.6449212 C0.367532934,27.0000003 45.0428249,27.0000003 45.0428249,27.0000003 L105.532495,27.0000003 C105.532495,27.0000003 138.996741,25.6734987 138.996741,55.1771866 C138.996741,84.6808745 105.727102,82.8457535 105.727102,82.8457535 L56.1735087,82.8457535 C56.1735087,82.8457535 22.6899229,85.1500223 22.6899229,66.0913753 C22.6899229,47.0327282 56.1735087,49.3383013 56.1735087,49.3383013 L105.727102,49.3383013 C105.727102,49.3383013 111.245209,49.3383024 111.245209,54.8231115 C111.245209,60.3079206 105.727102,60.5074524 105.727102,60.5074524 L56.1735087,60.5074524 C56.1735087,60.5074524 37.48913,60.5074528 37.48913,66.6449195 C37.48913,72.7823862 56.1735087,71.6766023 56.1735087,71.6766023 L105.727102,71.6766029 C105.727102,71.6766029 127.835546,73.1411469 127.835546,55.1771866 C127.835546,35.5304025 105.727102,38.3035317 105.727102,38.3035317 L45.0428249,38.3035317 C45.0428249,38.3035317 11.5287276,38.3035313 11.5287276,66.6449208 C11.5287276,94.9863103 45.0428244,93.9579678 45.0428244,93.9579678 L105.449437,94.2138951 Z\" transform=\"translate(69.367532, 66.000000) rotate(-45.000000) translate(-69.367532, -66.000000) \"></path>\n </g>\n</svg>" }, "$:/core/images/info-button": { "title": "$:/core/images/info-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <g transform=\"translate(0.049406, 0.000000)\">\n <path d=\"M64,128 C99.346224,128 128,99.346224 128,64 C128,28.653776 99.346224,0 64,0 C28.653776,0 0,28.653776 0,64 C0,99.346224 28.653776,128 64,128 Z M64,112 C90.509668,112 112,90.509668 112,64 C112,37.490332 90.509668,16 64,16 C37.490332,16 16,37.490332 16,64 C16,90.509668 37.490332,112 64,112 Z\"></path>\n <circle cx=\"64\" cy=\"32\" r=\"8\"></circle>\n <rect x=\"56\" y=\"48\" width=\"16\" height=\"56\" rx=\"8\"></rect>\n </g>\n </g>\n</svg>" }, "$:/core/images/italic": { "title": "$:/core/images/italic", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-italic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <polygon points=\"66.7114846 0 89.1204482 0 62.4089636 128 40 128\"></polygon>\n </g>\n</svg>" }, "$:/core/images/left-arrow": { "title": "$:/core/images/left-arrow", "created": "20150315234410875", "modified": "20150315235324760", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-left-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path transform=\"rotate(135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25075c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056z\"/>\n</svg>\n" }, "$:/core/images/line-width": { "title": "$:/core/images/line-width", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-line-width tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M128,-97 L112.992786,-97 C112.452362,-97 112,-96.5522847 112,-96 C112,-95.4438648 112.444486,-95 112.992786,-95 L128,-95 L128,-97 Z M128,-78.6794919 L111.216185,-88.3696322 C110.748163,-88.6398444 110.132549,-88.4782926 109.856406,-88 C109.578339,-87.5183728 109.741342,-86.9117318 110.216185,-86.6375814 L128,-76.3700908 L128,-78.6794919 Z M78.6794919,-128 L88.3696322,-111.216185 C88.6437826,-110.741342 88.4816272,-110.134474 88,-109.856406 C87.5217074,-109.580264 86.9077936,-109.748163 86.6375814,-110.216185 L76.3700908,-128 L78.6794919,-128 Z M97,-128 L97,-112.992786 C97,-112.444486 96.5561352,-112 96,-112 C95.4477153,-112 95,-112.452362 95,-112.992786 L95,-128 L97,-128 Z M115.629909,-128 L105.362419,-110.216185 C105.088268,-109.741342 104.481627,-109.578339 104,-109.856406 C103.521707,-110.132549 103.360156,-110.748163 103.630368,-111.216185 L113.320508,-128 L115.629909,-128 Z M128,-113.320508 L111.216185,-103.630368 C110.741342,-103.356217 110.134474,-103.518373 109.856406,-104 C109.580264,-104.478293 109.748163,-105.092206 110.216185,-105.362419 L128,-115.629909 L128,-113.320508 Z M48,-96 C48,-96.5522847 48.4523621,-97 48.9927864,-97 L79.0072136,-97 C79.5555144,-97 80,-96.5561352 80,-96 C80,-95.4477153 79.5476379,-95 79.0072136,-95 L48.9927864,-95 C48.4444856,-95 48,-95.4438648 48,-96 Z M54.4307806,-120 C54.706923,-120.478293 55.3225377,-120.639844 55.7905589,-120.369632 L81.7838153,-105.362419 C82.2586577,-105.088268 82.4216611,-104.481627 82.1435935,-104 C81.8674512,-103.521707 81.2518365,-103.360156 80.7838153,-103.630368 L54.7905589,-118.637581 C54.3157165,-118.911732 54.152713,-119.518373 54.4307806,-120 Z M104,-82.1435935 C104.478293,-82.4197359 105.092206,-82.2518365 105.362419,-81.7838153 L120.369632,-55.7905589 C120.643783,-55.3157165 120.481627,-54.7088482 120,-54.4307806 C119.521707,-54.1546382 118.907794,-54.3225377 118.637581,-54.7905589 L103.630368,-80.7838153 C103.356217,-81.2586577 103.518373,-81.865526 104,-82.1435935 Z M96,-80 C96.5522847,-80 97,-79.5476379 97,-79.0072136 L97,-48.9927864 C97,-48.4444856 96.5561352,-48 96,-48 C95.4477153,-48 95,-48.4523621 95,-48.9927864 L95,-79.0072136 C95,-79.5555144 95.4438648,-80 96,-80 Z M88,-82.1435935 C88.4782926,-81.8674512 88.6398444,-81.2518365 88.3696322,-80.7838153 L73.3624186,-54.7905589 C73.0882682,-54.3157165 72.4816272,-54.152713 72,-54.4307806 C71.5217074,-54.706923 71.3601556,-55.3225377 71.6303678,-55.7905589 L86.6375814,-81.7838153 C86.9117318,-82.2586577 87.5183728,-82.4216611 88,-82.1435935 Z M82.1435935,-88 C82.4197359,-87.5217074 82.2518365,-86.9077936 81.7838153,-86.6375814 L55.7905589,-71.6303678 C55.3157165,-71.3562174 54.7088482,-71.5183728 54.4307806,-72 C54.1546382,-72.4782926 54.3225377,-73.0922064 54.7905589,-73.3624186 L80.7838153,-88.3696322 C81.2586577,-88.6437826 81.865526,-88.4816272 82.1435935,-88 Z M1.30626177e-08,-41.9868843 L15.0170091,-57.9923909 L20.7983821,-52.9749272 L44.7207091,-81.2095939 L73.4260467,-42.1002685 L85.984793,-56.6159488 L104.48741,-34.0310661 L127.969109,-47.4978019 L127.969109,7.99473128e-07 L1.30626177e-08,7.99473128e-07 L1.30626177e-08,-41.9868843 Z M96,-84 C102.627417,-84 108,-89.372583 108,-96 C108,-102.627417 102.627417,-108 96,-108 C89.372583,-108 84,-102.627417 84,-96 C84,-89.372583 89.372583,-84 96,-84 Z\"></path>\n <path d=\"M16,18 L112,18 C113.104569,18 114,17.1045695 114,16 C114,14.8954305 113.104569,14 112,14 L16,14 C14.8954305,14 14,14.8954305 14,16 C14,17.1045695 14.8954305,18 16,18 L16,18 Z M16,35 L112,35 C114.209139,35 116,33.209139 116,31 C116,28.790861 114.209139,27 112,27 L16,27 C13.790861,27 12,28.790861 12,31 C12,33.209139 13.790861,35 16,35 L16,35 Z M16,56 L112,56 C115.313708,56 118,53.3137085 118,50 C118,46.6862915 115.313708,44 112,44 L16,44 C12.6862915,44 10,46.6862915 10,50 C10,53.3137085 12.6862915,56 16,56 L16,56 Z M16,85 L112,85 C117.522847,85 122,80.5228475 122,75 C122,69.4771525 117.522847,65 112,65 L16,65 C10.4771525,65 6,69.4771525 6,75 C6,80.5228475 10.4771525,85 16,85 L16,85 Z M16,128 L112,128 C120.836556,128 128,120.836556 128,112 C128,103.163444 120.836556,96 112,96 L16,96 C7.163444,96 0,103.163444 0,112 C0,120.836556 7.163444,128 16,128 L16,128 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/link": { "title": "$:/core/images/link", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-link tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M128.719999,57.568543 C130.219553,53.8628171 131.045202,49.8121445 131.045202,45.5685425 C131.045202,27.8915447 116.718329,13.5685425 99.0452364,13.5685425 L67.0451674,13.5685425 C49.3655063,13.5685425 35.0452019,27.8954305 35.0452019,45.5685425 C35.0452019,63.2455403 49.3720745,77.5685425 67.0451674,77.5685425 L99.0452364,77.5685425 C100.406772,77.5685425 101.748384,77.4835732 103.065066,77.3186499 C96.4792444,73.7895096 91.1190212,68.272192 87.7873041,61.5685425 L67.0506214,61.5685425 C58.2110723,61.5685425 51.0452019,54.4070414 51.0452019,45.5685425 C51.0452019,36.7319865 58.2005234,29.5685425 67.0506214,29.5685425 L99.0397824,29.5685425 C107.879331,29.5685425 115.045202,36.7300436 115.045202,45.5685425 C115.045202,48.9465282 113.99957,52.0800164 112.21335,54.6623005 C114.314383,56.4735917 117.050039,57.5685425 120.041423,57.5685425 L128.720003,57.5685425 Z\" transform=\"translate(83.045202, 45.568542) rotate(-225.000000) translate(-83.045202, -45.568542)\"></path>\n <path d=\"M-0.106255113,71.0452019 C-1.60580855,74.7509276 -2.43145751,78.8016001 -2.43145751,83.0452019 C-2.43145751,100.7222 11.8954151,115.045202 29.568508,115.045202 L61.568577,115.045202 C79.2482381,115.045202 93.5685425,100.718314 93.5685425,83.0452019 C93.5685425,65.3682041 79.2416699,51.0452019 61.568577,51.0452019 L29.568508,51.0452019 C28.206973,51.0452019 26.8653616,51.1301711 25.5486799,51.2950943 C32.1345,54.8242347 37.4947231,60.3415524 40.8264403,67.0452019 L61.563123,67.0452019 C70.4026721,67.0452019 77.5685425,74.206703 77.5685425,83.0452019 C77.5685425,91.8817579 70.413221,99.0452019 61.563123,99.0452019 L29.573962,99.0452019 C20.7344129,99.0452019 13.5685425,91.8837008 13.5685425,83.0452019 C13.5685425,79.6672162 14.6141741,76.533728 16.4003949,73.9514439 C14.2993609,72.1401527 11.5637054,71.0452019 8.5723215,71.0452019 L-0.106255113,71.0452019 Z\" transform=\"translate(45.568542, 83.045202) rotate(-225.000000) translate(-45.568542, -83.045202)\"></path>\n </g>\n</svg>" }, "$:/core/images/linkify": { "title": "$:/core/images/linkify", "tags": "$:/tags/Image", "text": "<svg class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"><path d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\" fill-rule=\"evenodd\"/></svg>" }, "$:/core/images/list-bullet": { "title": "$:/core/images/list-bullet", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-list-bullet tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M11.6363636,40.2727273 C18.0629498,40.2727273 23.2727273,35.0629498 23.2727273,28.6363636 C23.2727273,22.2097775 18.0629498,17 11.6363636,17 C5.20977746,17 0,22.2097775 0,28.6363636 C0,35.0629498 5.20977746,40.2727273 11.6363636,40.2727273 Z M11.6363636,75.1818182 C18.0629498,75.1818182 23.2727273,69.9720407 23.2727273,63.5454545 C23.2727273,57.1188684 18.0629498,51.9090909 11.6363636,51.9090909 C5.20977746,51.9090909 0,57.1188684 0,63.5454545 C0,69.9720407 5.20977746,75.1818182 11.6363636,75.1818182 Z M11.6363636,110.090909 C18.0629498,110.090909 23.2727273,104.881132 23.2727273,98.4545455 C23.2727273,92.0279593 18.0629498,86.8181818 11.6363636,86.8181818 C5.20977746,86.8181818 0,92.0279593 0,98.4545455 C0,104.881132 5.20977746,110.090909 11.6363636,110.090909 Z M34.9090909,22.8181818 L128,22.8181818 L128,34.4545455 L34.9090909,34.4545455 L34.9090909,22.8181818 Z M34.9090909,57.7272727 L128,57.7272727 L128,69.3636364 L34.9090909,69.3636364 L34.9090909,57.7272727 Z M34.9090909,92.6363636 L128,92.6363636 L128,104.272727 L34.9090909,104.272727 L34.9090909,92.6363636 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/list-number": { "title": "$:/core/images/list-number", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-list-number tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M33.8390805,22.3563218 L128,22.3563218 L128,34.1264368 L33.8390805,34.1264368 L33.8390805,22.3563218 Z M33.8390805,57.6666667 L128,57.6666667 L128,69.4367816 L33.8390805,69.4367816 L33.8390805,57.6666667 Z M33.8390805,92.9770115 L128,92.9770115 L128,104.747126 L33.8390805,104.747126 L33.8390805,92.9770115 Z M0.379509711,42.6307008 L0.379509711,40.4082314 L1.37821948,40.4082314 C2.20382368,40.4082314 2.82301754,40.268077 3.23581964,39.9877642 C3.64862174,39.7074513 3.85501969,39.0400498 3.85501969,37.9855395 L3.85501969,22.7686318 C3.85501969,21.3270228 3.66193774,20.4327047 3.27576803,20.0856507 C2.88959832,19.7385967 1.79768657,19.5650723 0,19.5650723 L0,17.4226919 C3.50215975,17.2758613 6.25191314,16.4683055 8.24934266,15 L10.3666074,15 L10.3666074,37.865406 C10.3666074,38.786434 10.5164123,39.4404875 10.8160268,39.8275862 C11.1156412,40.2146849 11.764796,40.4082314 12.7635108,40.4082314 L13.7622206,40.4082314 L13.7622206,42.6307008 L0.379509711,42.6307008 Z M0.0798967812,77.9873934 L0.0798967812,76.0852799 C7.27064304,69.5312983 10.8659622,63.5046623 10.8659622,58.005191 C10.8659622,56.4434479 10.5397203,55.195407 9.88722667,54.2610308 C9.23473303,53.3266546 8.36253522,52.8594735 7.27060709,52.8594735 C6.3784219,52.8594735 5.61608107,53.1764892 4.98356173,53.8105302 C4.35104238,54.4445712 4.03478745,55.1753759 4.03478745,56.0029663 C4.03478745,56.9773871 4.28113339,57.8316611 4.77383268,58.5658139 C4.88036225,58.7259926 4.93362624,58.8461249 4.93362624,58.9262143 C4.93362624,59.0730449 4.77383427,59.2065252 4.45424555,59.3266593 C4.2411864,59.4067486 3.70188852,59.6336652 2.83633573,60.0074156 C1.99741533,60.3811661 1.47809145,60.5680386 1.2783485,60.5680386 C1.03865696,60.5680386 0.765679018,60.1976307 0.459406492,59.4568039 C0.153133966,58.715977 0,57.9184322 0,57.0641453 C0,55.1153036 0.848894811,53.5202138 2.5467099,52.2788283 C4.24452499,51.0374428 6.34512352,50.4167594 8.84856852,50.4167594 C11.3120649,50.4167594 13.3793735,51.0874979 15.0505562,52.4289952 C16.7217389,53.7704924 17.5573177,55.5224215 17.5573177,57.684835 C17.5573177,58.9662652 17.2743527,60.2076321 16.7084144,61.4089729 C16.142476,62.6103138 14.7875733,64.4623531 12.6436656,66.9651465 C10.4997579,69.4679398 8.40914641,71.7804862 6.3717683,73.902855 L17.8169822,73.902855 L16.7982982,79.6292176 L14.6810335,79.6292176 C14.7609307,79.3489048 14.8008787,79.0952922 14.8008787,78.8683723 C14.8008787,78.4812736 14.7010087,78.237672 14.5012658,78.1375603 C14.3015228,78.0374485 13.9020429,77.9873934 13.3028141,77.9873934 L0.0798967812,77.9873934 Z M12.2042333,97.1935484 C13.9486551,97.2335931 15.4400468,97.8309175 16.6784531,98.9855395 C17.9168594,100.140162 18.5360532,101.75861 18.5360532,103.840934 C18.5360532,106.830938 17.4041935,109.233584 15.14044,111.048943 C12.8766866,112.864303 10.1402492,113.771969 6.93104577,113.771969 C4.92030005,113.771969 3.26245842,113.388213 1.95747114,112.62069 C0.652483855,111.853166 0,110.848727 0,109.607341 C0,108.833144 0.26964894,108.209124 0.808954909,107.735261 C1.34826088,107.261399 1.93749375,107.024472 2.57667119,107.024472 C3.21584864,107.024472 3.73850152,107.224692 4.14464552,107.625139 C4.55078953,108.025586 4.92696644,108.67964 5.27318756,109.587319 C5.73925445,110.855401 6.51158227,111.489433 7.59019421,111.489433 C8.85523291,111.489433 9.87723568,111.012241 10.6562332,110.057842 C11.4352307,109.103444 11.8247236,107.371536 11.8247236,104.862069 C11.8247236,103.153495 11.7048796,101.838714 11.4651881,100.917686 C11.2254966,99.9966584 10.6728827,99.5361513 9.80732989,99.5361513 C9.22141723,99.5361513 8.62219737,99.843156 8.00965231,100.457175 C7.51695303,100.951059 7.07752513,101.197998 6.69135542,101.197998 C6.3584505,101.197998 6.08880156,101.051169 5.88240051,100.757508 C5.67599946,100.463847 5.57280049,100.183539 5.57280049,99.916574 C5.57280049,99.5962164 5.67599946,99.3225818 5.88240051,99.0956618 C6.08880156,98.8687419 6.57150646,98.5016711 7.33052967,97.9944383 C10.2068282,96.0722929 11.6449559,93.9766521 11.6449559,91.7074527 C11.6449559,90.5194601 11.3386879,89.615131 10.7261429,88.9944383 C10.1135978,88.3737455 9.37455999,88.0634038 8.5090072,88.0634038 C7.71003539,88.0634038 6.98431355,88.3270274 6.33181991,88.8542825 C5.67932627,89.3815377 5.35308434,90.0122321 5.35308434,90.7463849 C5.35308434,91.3871 5.60608828,91.9810874 6.11210376,92.5283648 C6.28521432,92.7285883 6.3717683,92.8954387 6.3717683,93.028921 C6.3717683,93.1490551 5.80250943,93.4560598 4.6639746,93.9499444 C3.52543978,94.4438289 2.80970494,94.6907675 2.51674861,94.6907675 C2.10394651,94.6907675 1.76771758,94.3570667 1.50805174,93.6896552 C1.24838591,93.0222436 1.11855494,92.4082342 1.11855494,91.8476085 C1.11855494,90.0989901 2.04734573,88.6240327 3.90495518,87.4226919 C5.76256463,86.2213511 7.86982116,85.6206897 10.226788,85.6206897 C12.2907985,85.6206897 14.0784711,86.0678487 15.5898594,86.9621802 C17.1012478,87.8565117 17.8569306,89.0778566 17.8569306,90.6262514 C17.8569306,91.987771 17.2876717,93.2491599 16.1491369,94.4104561 C15.0106021,95.5717522 13.6956474,96.4994404 12.2042333,97.1935484 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/list": { "title": "$:/core/images/list", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-list tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M0.719999312,185.568543 C2.21955287,181.862817 3.0452019,177.812144 3.0452019,173.568542 C3.0452019,155.891545 -11.2816707,141.568542 -28.9547636,141.568542 L-60.9548326,141.568542 C-78.6344937,141.568542 -92.9547981,155.895431 -92.9547981,173.568542 C-92.9547981,191.24554 -78.6279255,205.568542 -60.9548326,205.568542 L-28.9547636,205.568542 C-27.593228,205.568542 -26.2516158,205.483573 -24.9349335,205.31865 C-31.5207556,201.78951 -36.8809788,196.272192 -40.2126959,189.568542 L-60.9493786,189.568542 C-69.7889277,189.568542 -76.9547981,182.407041 -76.9547981,173.568542 C-76.9547981,164.731986 -69.7994766,157.568542 -60.9493786,157.568542 L-28.9602176,157.568542 C-20.1206685,157.568542 -12.9547981,164.730044 -12.9547981,173.568542 C-12.9547981,176.946528 -14.0004297,180.080016 -15.7866505,182.6623 C-13.6856165,184.473592 -10.949961,185.568542 -7.9585771,185.568542 L0.720002586,185.568542 Z\" transform=\"translate(-44.954798, 173.568542) rotate(-225.000000) translate(44.954798, -173.568542) \"></path>\n <path d=\"M87.7480315,128 L23.9992458,128 C19.5813843,128 16,124.409247 16,119.993027 L16,8.00697327 C16,3.58484404 19.5881049,0 23.9992458,0 L104.000754,0 C108.418616,0 112,3.59075293 112,8.00697327 L112,104 L91.2492027,104 C90.2848199,104 89.410573,104.391703 88.7768998,105.025201 C88.1373658,105.661376 87.7480315,106.53563 87.7480315,107.501171 L87.7480315,128 Z M95.7480315,127.879386 L111.627417,112 L95.7480315,112 L95.7480315,127.879386 Z M40,15.5089165 C40,13.5709954 41.5636015,12 43.4998101,12 L98.5001899,12 C100.433082,12 102,13.5614718 102,15.5089165 L102,16.4910835 C102,18.4290046 100.436399,20 98.5001899,20 L43.4998101,20 C41.5669183,20 40,18.4385282 40,16.4910835 L40,15.5089165 Z M32,22 C35.3137085,22 38,19.3137085 38,16 C38,12.6862915 35.3137085,10 32,10 C28.6862915,10 26,12.6862915 26,16 C26,19.3137085 28.6862915,22 32,22 Z M40,31.5089165 C40,29.5709954 41.5636015,28 43.4998101,28 L98.5001899,28 C100.433082,28 102,29.5614718 102,31.5089165 L102,32.4910835 C102,34.4290046 100.436399,36 98.5001899,36 L43.4998101,36 C41.5669183,36 40,34.4385282 40,32.4910835 L40,31.5089165 Z M40,47.5089165 C40,45.5709954 41.5636015,44 43.4998101,44 L98.5001899,44 C100.433082,44 102,45.5614718 102,47.5089165 L102,48.4910835 C102,50.4290046 100.436399,52 98.5001899,52 L43.4998101,52 C41.5669183,52 40,50.4385282 40,48.4910835 L40,47.5089165 Z M40,63.5089165 C40,61.5709954 41.5636015,60 43.4998101,60 L98.5001899,60 C100.433082,60 102,61.5614718 102,63.5089165 L102,64.4910835 C102,66.4290046 100.436399,68 98.5001899,68 L43.4998101,68 C41.5669183,68 40,66.4385282 40,64.4910835 L40,63.5089165 Z M40,79.5089165 C40,77.5709954 41.5636015,76 43.4998101,76 L98.5001899,76 C100.433082,76 102,77.5614718 102,79.5089165 L102,80.4910835 C102,82.4290046 100.436399,84 98.5001899,84 L43.4998101,84 C41.5669183,84 40,82.4385282 40,80.4910835 L40,79.5089165 Z M40,95.5089165 C40,93.5709954 41.5636015,92 43.4998101,92 L98.5001899,92 C100.433082,92 102,93.5614718 102,95.5089165 L102,96.4910835 C102,98.4290046 100.436399,100 98.5001899,100 L43.4998101,100 C41.5669183,100 40,98.4385282 40,96.4910835 L40,95.5089165 Z M40,111.508916 C40,109.570995 41.5680474,108 43.4972017,108 L76.5027983,108 C78.4342495,108 80,109.561472 80,111.508916 L80,112.491084 C80,114.429005 78.4319526,116 76.5027983,116 L43.4972017,116 C41.5657505,116 40,114.438528 40,112.491084 L40,111.508916 Z M32,38 C35.3137085,38 38,35.3137085 38,32 C38,28.6862915 35.3137085,26 32,26 C28.6862915,26 26,28.6862915 26,32 C26,35.3137085 28.6862915,38 32,38 Z M32,54 C35.3137085,54 38,51.3137085 38,48 C38,44.6862915 35.3137085,42 32,42 C28.6862915,42 26,44.6862915 26,48 C26,51.3137085 28.6862915,54 32,54 Z M32,70 C35.3137085,70 38,67.3137085 38,64 C38,60.6862915 35.3137085,58 32,58 C28.6862915,58 26,60.6862915 26,64 C26,67.3137085 28.6862915,70 32,70 Z M32,86 C35.3137085,86 38,83.3137085 38,80 C38,76.6862915 35.3137085,74 32,74 C28.6862915,74 26,76.6862915 26,80 C26,83.3137085 28.6862915,86 32,86 Z M32,102 C35.3137085,102 38,99.3137085 38,96 C38,92.6862915 35.3137085,90 32,90 C28.6862915,90 26,92.6862915 26,96 C26,99.3137085 28.6862915,102 32,102 Z M32,118 C35.3137085,118 38,115.313708 38,112 C38,108.686292 35.3137085,106 32,106 C28.6862915,106 26,108.686292 26,112 C26,115.313708 28.6862915,118 32,118 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/locked-padlock": { "title": "$:/core/images/locked-padlock", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-locked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M96.4723753,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L32.0000269,64 C32.0028554,48.2766389 32.3030338,16.2688026 64.1594984,16.2688041 C95.9543927,16.2688056 96.4648869,48.325931 96.4723753,64 Z M80.5749059,64 L48.4413579,64 C48.4426205,47.71306 48.5829272,31.9999996 64.1595001,31.9999996 C79.8437473,31.9999996 81.1369461,48.1359182 80.5749059,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/mail": { "title": "$:/core/images/mail", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-mail tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M122.826782,104.894066 C121.945525,105.22777 120.990324,105.41043 119.993027,105.41043 L8.00697327,105.41043 C7.19458381,105.41043 6.41045219,105.289614 5.67161357,105.064967 L5.67161357,105.064967 L39.8346483,70.9019325 L60.6765759,91.7438601 C61.6118278,92.679112 62.8865166,93.0560851 64.0946097,92.8783815 C65.2975108,93.0473238 66.5641085,92.6696979 67.4899463,91.7438601 L88.5941459,70.6396605 C88.6693095,70.7292352 88.7490098,70.8162939 88.8332479,70.9005321 L122.826782,104.894066 Z M127.903244,98.6568194 C127.966933,98.2506602 128,97.8343714 128,97.4103789 L128,33.410481 C128,32.7414504 127.917877,32.0916738 127.763157,31.4706493 L94.2292399,65.0045665 C94.3188145,65.0797417 94.4058701,65.1594458 94.4901021,65.2436778 L127.903244,98.6568194 Z M0.205060636,99.2178117 C0.0709009529,98.6370366 0,98.0320192 0,97.4103789 L0,33.410481 C0,32.694007 0.0944223363,31.9995312 0.27147538,31.3387595 L0.27147538,31.3387595 L34.1777941,65.2450783 L0.205060636,99.2178117 L0.205060636,99.2178117 Z M5.92934613,25.6829218 C6.59211333,25.5051988 7.28862283,25.4104299 8.00697327,25.4104299 L119.993027,25.4104299 C120.759109,25.4104299 121.500064,25.5178649 122.201605,25.7184927 L122.201605,25.7184927 L64.0832611,83.8368368 L5.92934613,25.6829218 L5.92934613,25.6829218 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/menu-button": { "title": "$:/core/images/menu-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <rect x=\"0\" y=\"16\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"56\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"96\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n</svg>" }, "$:/core/images/mono-block": { "title": "$:/core/images/mono-block", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-mono-block tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M23.9653488,32.9670593 L24.3217888,32.9670593 C25.0766067,32.9670593 25.6497006,33.1592554 26.0410876,33.5436534 C26.4324747,33.9280514 26.6281653,34.4906619 26.6281653,35.2315017 C26.6281653,36.0562101 26.4219913,36.6502709 26.009637,37.0137017 C25.5972828,37.3771326 24.9158602,37.5588453 23.9653488,37.5588453 L17.6542639,37.5588453 C16.6897744,37.5588453 16.0048573,37.380627 15.5994921,37.0241852 C15.1941269,36.6677435 14.9914474,36.0701882 14.9914474,35.2315017 C14.9914474,34.4207713 15.1941269,33.8406885 15.5994921,33.4912358 C16.0048573,33.141783 16.6897744,32.9670593 17.6542639,32.9670593 L18.388111,32.9670593 L17.5284616,30.5139133 L8.47069195,30.5139133 L7.5691084,32.9670593 L8.30295547,32.9670593 C9.25346691,32.9670593 9.93488953,33.1452775 10.3472438,33.5017193 C10.759598,33.8581611 10.965772,34.4347494 10.965772,35.2315017 C10.965772,36.0562101 10.759598,36.6502709 10.3472438,37.0137017 C9.93488953,37.3771326 9.25346691,37.5588453 8.30295547,37.5588453 L2.89345418,37.5588453 C1.92896463,37.5588453 1.24404754,37.3771326 0.838682371,37.0137017 C0.433317198,36.6502709 0.230637652,36.0562101 0.230637652,35.2315017 C0.230637652,34.4906619 0.426328248,33.9280514 0.817715312,33.5436534 C1.20910238,33.1592554 1.78219626,32.9670593 2.53701417,32.9670593 L2.89345418,32.9670593 L8.51262607,17.3256331 L6.83526132,17.3256331 C5.88474988,17.3256331 5.20332727,17.1439204 4.79097304,16.7804895 C4.37861882,16.4170587 4.1724448,15.8299869 4.1724448,15.0192565 C4.1724448,14.1945481 4.37861882,13.6004873 4.79097304,13.2370565 C5.20332727,12.8736257 5.88474988,12.691913 6.83526132,12.691913 L14.6979086,12.691913 C15.9419603,12.691913 16.815579,13.3628521 17.318791,14.7047506 L17.318791,14.7676518 L23.9653488,32.9670593 Z M12.9786097,17.3256331 L9.9383861,26.1737321 L16.0188333,26.1737321 L12.9786097,17.3256331 Z M35.3809383,26.6979086 L35.3809383,33.0928616 L38.5259972,33.0928616 C40.7485166,33.0928616 42.3140414,32.8482484 43.2226185,32.3590146 C44.1311956,31.8697807 44.5854773,31.0520736 44.5854773,29.9058686 C44.5854773,28.7456855 44.1521624,27.9209895 43.2855197,27.4317556 C42.4188769,26.9425218 40.9022748,26.6979086 38.7356678,26.6979086 L35.3809383,26.6979086 Z M46.0741385,24.370565 C47.5977525,24.9296893 48.7159844,25.6949794 49.428868,26.666458 C50.1417516,27.6379366 50.498188,28.8784752 50.498188,30.388111 C50.498188,31.6601189 50.1906743,32.8202846 49.5756374,33.8686428 C48.9606006,34.917001 48.0799929,35.7766419 46.933788,36.4475911 C46.2628387,36.8389782 45.5115266,37.1220307 44.6798291,37.296757 C43.8481316,37.4714834 42.6704935,37.5588453 41.1468796,37.5588453 L39.3856466,37.5588453 L30.2020747,37.5588453 C29.2795194,37.5588453 28.6190637,37.3771326 28.2206876,37.0137017 C27.8223114,36.6502709 27.6231264,36.0562101 27.6231264,35.2315017 C27.6231264,34.4906619 27.811828,33.9280514 28.189237,33.5436534 C28.5666459,33.1592554 29.118773,32.9670593 29.8456347,32.9670593 L30.2020747,32.9670593 L30.2020747,17.3256331 L29.8456347,17.3256331 C29.118773,17.3256331 28.5666459,17.1299425 28.189237,16.7385554 C27.811828,16.3471683 27.6231264,15.7740744 27.6231264,15.0192565 C27.6231264,14.2085262 27.8258059,13.6179599 28.2311711,13.24754 C28.6365363,12.8771201 29.2934976,12.691913 30.2020747,12.691913 L39.8469219,12.691913 C42.796303,12.691913 45.0362615,13.2650068 46.5668644,14.4112118 C48.0974674,15.5574168 48.8627574,17.2347648 48.8627574,19.443306 C48.8627574,20.5335986 48.6286276,21.4945792 48.1603609,22.3262767 C47.6920943,23.1579742 46.9966938,23.8393968 46.0741385,24.370565 L46.0741385,24.370565 Z M35.3809383,17.1998307 L35.3809383,22.4835296 L38.2114913,22.4835296 C39.9307988,22.4835296 41.1433816,22.2808501 41.8492761,21.8754849 C42.5551706,21.4701197 42.9081126,20.7852027 42.9081126,19.8207131 C42.9081126,18.912136 42.5901154,18.2481858 41.9541114,17.8288425 C41.3181074,17.4094992 40.2872373,17.1998307 38.8614701,17.1998307 L35.3809383,17.1998307 Z M71.244119,13.3838259 C71.5236812,12.880614 71.8102281,12.5241775 72.1037684,12.3145059 C72.3973087,12.1048342 72.7677231,12 73.2150226,12 C73.8999499,12 74.3856819,12.1817127 74.6722332,12.5451435 C74.9587844,12.9085744 75.1020579,13.5305909 75.1020579,14.4112118 L75.143992,19.8626472 C75.143992,20.8271368 74.9867406,21.4771091 74.6722332,21.8125837 C74.3577257,22.1480584 73.7881263,22.3157932 72.9634178,22.3157932 C72.3763372,22.3157932 71.92555,22.1760142 71.6110425,21.896452 C71.2965351,21.6168898 71.0274605,21.0997075 70.8038107,20.3448896 C70.4403799,19.0169692 69.8602971,18.0629775 69.0635448,17.482886 C68.2667926,16.9027945 67.1625385,16.612753 65.7507494,16.612753 C63.5981206,16.612753 61.9487284,17.3396038 60.8025235,18.7933272 C59.6563185,20.2470506 59.0832246,22.3507245 59.0832246,25.104412 C59.0832246,27.8441215 59.6633074,29.9477954 60.8234905,31.4154969 C61.9836736,32.8831984 63.6400547,33.6170381 65.7926836,33.6170381 C67.2603851,33.6170381 68.878327,33.1278116 70.6465578,32.149344 C72.4147886,31.1708763 73.5295261,30.6816498 73.9908037,30.6816498 C74.53595,30.6816498 74.9937262,30.9122852 75.3641461,31.3735628 C75.734566,31.8348404 75.9197732,32.4079343 75.9197732,33.0928616 C75.9197732,34.3229353 74.836486,35.4831009 72.669879,36.5733935 C70.5032721,37.663686 68.0641285,38.2088241 65.3523753,38.2088241 C61.6901107,38.2088241 58.7267959,36.9997358 56.4623422,34.5815228 C54.1978885,32.1633099 53.0656786,29.0043046 53.0656786,25.104412 C53.0656786,21.3443006 54.2118664,18.22024 56.5042763,15.7321366 C58.7966863,13.2440331 61.7040894,12 65.226573,12 C66.2190187,12 67.1974717,12.1118232 68.1619613,12.3354729 C69.1264508,12.5591227 70.1538264,12.9085702 71.244119,13.3838259 L71.244119,13.3838259 Z M81.4645862,32.9670593 L81.4645862,17.3256331 L81.1081461,17.3256331 C80.3533282,17.3256331 79.7802344,17.1299425 79.3888473,16.7385554 C78.9974602,16.3471683 78.8017696,15.7740744 78.8017696,15.0192565 C78.8017696,14.2085262 79.0114381,13.6179599 79.4307814,13.24754 C79.8501247,12.8771201 80.5280528,12.691913 81.4645862,12.691913 L85.4063933,12.691913 L86.6434498,12.691913 C89.5648747,12.691913 91.7034933,12.8177141 93.0593699,13.06932 C94.4152465,13.320926 95.5684233,13.740263 96.5189347,14.3273436 C98.210286,15.3337675 99.5067362,16.7699967 100.408324,18.6360743 C101.309912,20.5021519 101.7607,22.6582429 101.7607,25.104412 C101.7607,27.6903623 101.247012,29.9512876 100.219621,31.8872557 C99.1922296,33.8232239 97.7350336,35.2874089 95.8479888,36.2798546 C94.9953241,36.7271541 93.9959043,37.0521403 92.8496993,37.2548229 C91.7034944,37.4575055 89.9981906,37.5588453 87.7337369,37.5588453 L85.4063933,37.5588453 L81.4645862,37.5588453 C80.5000966,37.5588453 79.8151795,37.380627 79.4098143,37.0241852 C79.0044492,36.6677435 78.8017696,36.0701882 78.8017696,35.2315017 C78.8017696,34.4906619 78.9974602,33.9280514 79.3888473,33.5436534 C79.7802344,33.1592554 80.3533282,32.9670593 81.1081461,32.9670593 L81.4645862,32.9670593 Z M86.8740874,17.2417648 L86.8740874,32.9670593 L88.0692098,32.9670593 C90.7110725,32.9670593 92.6609895,32.3205814 93.9190194,31.0276063 C95.1770492,29.7346312 95.8060547,27.7462749 95.8060547,25.0624779 C95.8060547,22.4206153 95.1665658,20.4497314 93.8875688,19.1497672 C92.6085718,17.849803 90.6831161,17.1998307 88.1111439,17.1998307 C87.7756693,17.1998307 87.5205727,17.2033252 87.3458463,17.2103142 C87.1711199,17.2173033 87.0138685,17.2277867 86.8740874,17.2417648 L86.8740874,17.2417648 Z M121.94052,17.1159625 L112.190837,17.1159625 L112.190837,22.4835296 L115.88104,22.4835296 L115.88104,22.2319249 C115.88104,21.4351727 116.055763,20.841112 116.405216,20.4497249 C116.754669,20.0583378 117.285829,19.8626472 117.998713,19.8626472 C118.627728,19.8626472 119.141415,20.0408655 119.539792,20.3973072 C119.938168,20.753749 120.137353,21.2045363 120.137353,21.7496826 C120.137353,21.7776388 120.144342,21.8684951 120.15832,22.0222543 C120.172298,22.1760135 120.179287,22.3297704 120.179287,22.4835296 L120.179287,26.8237109 C120.179287,27.7602442 120.011552,28.4311834 119.676077,28.8365486 C119.340603,29.2419138 118.795465,29.4445933 118.040647,29.4445933 C117.327763,29.4445933 116.789614,29.2558917 116.426183,28.8784827 C116.062752,28.5010738 115.88104,27.9419578 115.88104,27.201118 L115.88104,26.8237109 L112.190837,26.8237109 L112.190837,33.0928616 L121.94052,33.0928616 L121.94052,30.5977816 C121.94052,29.6612482 122.118738,28.9903091 122.47518,28.5849439 C122.831622,28.1795787 123.415199,27.9768992 124.225929,27.9768992 C125.022682,27.9768992 125.592281,28.1760842 125.934745,28.5744604 C126.277208,28.9728365 126.448438,29.6472701 126.448438,30.5977816 L126.448438,35.6718099 C126.448438,36.4266278 126.30167,36.9298322 126.008129,37.1814382 C125.714589,37.4330442 125.134506,37.5588453 124.267863,37.5588453 L107.095842,37.5588453 C106.173287,37.5588453 105.512831,37.3771326 105.114455,37.0137017 C104.716079,36.6502709 104.516894,36.0562101 104.516894,35.2315017 C104.516894,34.4906619 104.705595,33.9280514 105.083004,33.5436534 C105.460413,33.1592554 106.01254,32.9670593 106.739402,32.9670593 L107.095842,32.9670593 L107.095842,17.3256331 L106.739402,17.3256331 C106.026518,17.3256331 105.477886,17.126448 105.093488,16.7280719 C104.70909,16.3296957 104.516894,15.7600963 104.516894,15.0192565 C104.516894,14.2085262 104.719573,13.6179599 105.124938,13.24754 C105.530304,12.8771201 106.187265,12.691913 107.095842,12.691913 L124.267863,12.691913 C125.120528,12.691913 125.697116,12.8212085 125.997646,13.0798036 C126.298175,13.3383986 126.448438,13.8520864 126.448438,14.6208824 L126.448438,19.3175037 C126.448438,20.2680151 126.273714,20.9494377 125.924261,21.361792 C125.574808,21.7741462 125.008703,21.9803202 124.225929,21.9803202 C123.415199,21.9803202 122.831622,21.7706517 122.47518,21.3513084 C122.118738,20.9319652 121.94052,20.254037 121.94052,19.3175037 L121.94052,17.1159625 Z M19.7719369,47.6405477 C20.037521,47.1373358 20.3205734,46.7808993 20.6211028,46.5712277 C20.9216322,46.361556 21.295541,46.2567218 21.7428405,46.2567218 C22.4277678,46.2567218 22.9134998,46.4384345 23.2000511,46.8018653 C23.4866023,47.1652962 23.6298758,47.7873127 23.6298758,48.6679336 L23.6718099,54.119369 C23.6718099,55.0838586 23.5145586,55.7338309 23.2000511,56.0693055 C22.8855436,56.4047802 22.3089553,56.572515 21.4702687,56.572515 C20.8831881,56.572515 20.4254119,56.4292415 20.0969263,56.1426902 C19.7684407,55.856139 19.4993662,55.3424512 19.2896945,54.6016114 C18.9122856,53.2597129 18.3322027,52.3022267 17.5494286,51.7291243 C16.7666545,51.1560218 15.6693894,50.8694748 14.2576003,50.8694748 C12.1049715,50.8694748 10.4590738,51.5963256 9.31985785,53.050049 C8.18064193,54.5037724 7.61104252,56.6074463 7.61104252,59.3611338 C7.61104252,62.1148214 8.20859773,64.2429566 9.40372609,65.7456034 C10.5988544,67.2482501 12.2936748,67.9995623 14.488238,67.9995623 C14.9914499,67.9995623 15.5645438,67.9401562 16.2075368,67.8213423 C16.8505299,67.7025283 17.6053364,67.5173212 18.4719792,67.2657152 L18.4719792,63.9529198 L16.1027015,63.9529198 C15.1521901,63.9529198 14.4777564,63.7781961 14.0793803,63.4287433 C13.6810042,63.0792906 13.4818191,62.4992078 13.4818191,61.6884774 C13.4818191,60.8497908 13.6810042,60.2522356 14.0793803,59.8957938 C14.4777564,59.5393521 15.1521901,59.3611338 16.1027015,59.3611338 L23.6718099,59.3611338 C24.6502776,59.3611338 25.3386891,59.5358576 25.7370653,59.8853103 C26.1354414,60.2347631 26.3346265,60.8218348 26.3346265,61.6465433 C26.3346265,62.3873831 26.1354414,62.9569825 25.7370653,63.3553586 C25.3386891,63.7537347 24.7621008,63.9529198 24.0072829,63.9529198 L23.6718099,63.9529198 L23.6718099,68.9430799 L23.6718099,69.1946846 C23.6718099,69.6419841 23.6228873,69.9529924 23.5250405,70.1277188 C23.4271937,70.3024451 23.2315031,70.4806634 22.9379628,70.6623788 C22.1412106,71.1376345 20.8762107,71.5569715 19.1429251,71.9204023 C17.4096396,72.2838332 15.6554131,72.4655459 13.8801932,72.4655459 C10.2179286,72.4655459 7.25461383,71.2564576 4.99016011,68.8382446 C2.72570638,66.4200317 1.59349651,63.2610264 1.59349651,59.3611338 C1.59349651,55.6010224 2.73968428,52.4769618 5.03209423,49.9888583 C7.32450417,47.5007549 10.2319073,46.2567218 13.7543909,46.2567218 C14.7328585,46.2567218 15.7078171,46.368545 16.6792957,46.5921947 C17.6507743,46.8158445 18.6816444,47.165292 19.7719369,47.6405477 L19.7719369,47.6405477 Z M35.611576,51.5823548 L35.611576,56.4047785 L42.4678043,56.4047785 L42.4678043,51.5823548 L42.1323314,51.5823548 C41.3775135,51.5823548 40.8009251,51.3866642 40.402549,50.9952772 C40.0041729,50.6038901 39.8049878,50.0307962 39.8049878,49.2759783 C39.8049878,48.4512699 40.0111618,47.8572091 40.4235161,47.4937783 C40.8358703,47.1303474 41.5172929,46.9486347 42.4678043,46.9486347 L47.8773056,46.9486347 C48.8278171,46.9486347 49.5022507,47.1303474 49.9006269,47.4937783 C50.299003,47.8572091 50.498188,48.4512699 50.498188,49.2759783 C50.498188,50.0307962 50.3059919,50.6038901 49.9215939,50.9952772 C49.5371959,51.3866642 48.9745854,51.5823548 48.2337456,51.5823548 L47.8773056,51.5823548 L47.8773056,67.2237811 L48.2337456,67.2237811 C48.9885636,67.2237811 49.5616574,67.4159772 49.9530445,67.8003752 C50.3444316,68.1847732 50.5401222,68.7473837 50.5401222,69.4882235 C50.5401222,70.3129319 50.3374426,70.9069927 49.9320774,71.2704235 C49.5267123,71.6338543 48.8417952,71.815567 47.8773056,71.815567 L42.4678043,71.815567 C41.5033148,71.815567 40.8183977,71.6373488 40.4130325,71.280907 C40.0076674,70.9244652 39.8049878,70.32691 39.8049878,69.4882235 C39.8049878,68.7473837 40.0041729,68.1847732 40.402549,67.8003752 C40.8009251,67.4159772 41.3775135,67.2237811 42.1323314,67.2237811 L42.4678043,67.2237811 L42.4678043,61.0384986 L35.611576,61.0384986 L35.611576,67.2237811 L35.9470489,67.2237811 C36.7018668,67.2237811 37.2784552,67.4159772 37.6768313,67.8003752 C38.0752074,68.1847732 38.2743925,68.7473837 38.2743925,69.4882235 C38.2743925,70.3129319 38.0682185,70.9069927 37.6558642,71.2704235 C37.24351,71.6338543 36.5620874,71.815567 35.611576,71.815567 L30.2020747,71.815567 C29.2375851,71.815567 28.552668,71.6373488 28.1473029,71.280907 C27.7419377,70.9244652 27.5392581,70.32691 27.5392581,69.4882235 C27.5392581,68.7473837 27.7349487,68.1847732 28.1263358,67.8003752 C28.5177229,67.4159772 29.0908168,67.2237811 29.8456347,67.2237811 L30.2020747,67.2237811 L30.2020747,51.5823548 L29.8456347,51.5823548 C29.1047949,51.5823548 28.5421844,51.3866642 28.1577864,50.9952772 C27.7733884,50.6038901 27.5811923,50.0307962 27.5811923,49.2759783 C27.5811923,48.4512699 27.7803773,47.8572091 28.1787534,47.4937783 C28.5771296,47.1303474 29.2515632,46.9486347 30.2020747,46.9486347 L35.611576,46.9486347 C36.5481093,46.9486347 37.2260374,47.1303474 37.6453807,47.4937783 C38.064724,47.8572091 38.2743925,48.4512699 38.2743925,49.2759783 C38.2743925,50.0307962 38.0752074,50.6038901 37.6768313,50.9952772 C37.2784552,51.3866642 36.7018668,51.5823548 35.9470489,51.5823548 L35.611576,51.5823548 Z M67.365213,51.5823548 L67.365213,67.2237811 L70.887679,67.2237811 C71.8381904,67.2237811 72.519613,67.4019993 72.9319673,67.7584411 C73.3443215,68.1148829 73.5504955,68.6914712 73.5504955,69.4882235 C73.5504955,70.2989538 73.340827,70.8895201 72.9214837,71.25994 C72.5021404,71.6303599 71.8242123,71.815567 70.887679,71.815567 L58.4332458,71.815567 C57.4827343,71.815567 56.8013117,71.6338543 56.3889575,71.2704235 C55.9766033,70.9069927 55.7704292,70.3129319 55.7704292,69.4882235 C55.7704292,68.6774931 55.9731088,68.0974103 56.378474,67.7479575 C56.7838391,67.3985048 57.4687562,67.2237811 58.4332458,67.2237811 L61.9557117,67.2237811 L61.9557117,51.5823548 L58.4332458,51.5823548 C57.4827343,51.5823548 56.8013117,51.4006421 56.3889575,51.0372113 C55.9766033,50.6737805 55.7704292,50.0867087 55.7704292,49.2759783 C55.7704292,48.4512699 55.9731088,47.8641981 56.378474,47.5147453 C56.7838391,47.1652926 57.4687562,46.9905689 58.4332458,46.9905689 L70.887679,46.9905689 C71.8801247,46.9905689 72.5720308,47.1652926 72.9634178,47.5147453 C73.3548049,47.8641981 73.5504955,48.4512699 73.5504955,49.2759783 C73.5504955,50.0867087 73.347816,50.6737805 72.9424508,51.0372113 C72.5370856,51.4006421 71.8521685,51.5823548 70.887679,51.5823548 L67.365213,51.5823548 Z M97.8608265,51.5823548 L97.8608265,63.1771386 L97.8608265,63.5755127 C97.8608265,65.4485794 97.7385199,66.8044357 97.493903,67.6431222 C97.2492861,68.4818088 96.8404325,69.2296264 96.26733,69.8865976 C95.5264902,70.7392623 94.4991146,71.3822457 93.1851723,71.815567 C91.87123,72.2488884 90.2917273,72.4655459 88.4466169,72.4655459 C87.1466527,72.4655459 85.8921362,72.3397448 84.6830298,72.0881388 C83.4739233,71.8365328 82.3102631,71.4591296 81.1920144,70.9559176 C80.5769776,70.6763554 80.175113,70.31293 79.9864085,69.8656305 C79.797704,69.418331 79.7033532,68.6914802 79.7033532,67.6850564 L79.7033532,63.3658422 C79.7033532,62.1637247 79.8780769,61.3250508 80.2275297,60.849795 C80.5769824,60.3745393 81.185021,60.136915 82.0516638,60.136915 C83.2957156,60.136915 83.9806326,61.0524675 84.1064356,62.8835998 C84.1204137,63.2050963 84.1413806,63.4497096 84.1693368,63.6174469 C84.3370741,65.2389076 84.7144774,66.3466561 85.301558,66.9407258 C85.8886386,67.5347954 86.8251579,67.8318258 88.1111439,67.8318258 C89.7046484,67.8318258 90.8263749,67.4089943 91.476357,66.5633187 C92.126339,65.7176431 92.4513252,64.1765796 92.4513252,61.9400821 L92.4513252,51.5823548 L88.9288593,51.5823548 C87.9783478,51.5823548 87.2969252,51.4006421 86.884571,51.0372113 C86.4722168,50.6737805 86.2660427,50.0867087 86.2660427,49.2759783 C86.2660427,48.4512699 86.4652278,47.8641981 86.8636039,47.5147453 C87.26198,47.1652926 87.9503916,46.9905689 88.9288593,46.9905689 L99.6220595,46.9905689 C100.600527,46.9905689 101.288939,47.1652926 101.687315,47.5147453 C102.085691,47.8641981 102.284876,48.4512699 102.284876,49.2759783 C102.284876,50.0867087 102.078702,50.6737805 101.666348,51.0372113 C101.253994,51.4006421 100.572571,51.5823548 99.6220595,51.5823548 L97.8608265,51.5823548 Z M112.505343,51.5823548 L112.505343,57.9353738 L118.984165,51.4565525 C118.257303,51.3726838 117.747109,51.1665098 117.453569,50.8380242 C117.160029,50.5095387 117.013261,49.9888619 117.013261,49.2759783 C117.013261,48.4512699 117.212446,47.8572091 117.610822,47.4937783 C118.009198,47.1303474 118.683632,46.9486347 119.634143,46.9486347 L124.771073,46.9486347 C125.721584,46.9486347 126.396018,47.1303474 126.794394,47.4937783 C127.19277,47.8572091 127.391955,48.4512699 127.391955,49.2759783 C127.391955,50.0447743 127.19277,50.6213627 126.794394,51.0057607 C126.396018,51.3901587 125.812441,51.5823548 125.043645,51.5823548 L124.561402,51.5823548 L118.459988,57.641835 C119.592215,58.4805215 120.626579,59.5812811 121.563113,60.9441468 C122.499646,62.3070125 123.596911,64.400203 124.854941,67.2237811 L125.127513,67.2237811 L125.546854,67.2237811 C126.371563,67.2237811 126.98659,67.4124827 127.391955,67.7898917 C127.79732,68.1673006 128,68.7334056 128,69.4882235 C128,70.3129319 127.793826,70.9069927 127.381472,71.2704235 C126.969118,71.6338543 126.287695,71.815567 125.337183,71.815567 L122.758235,71.815567 C121.626008,71.815567 120.710456,71.0537715 120.01155,69.5301576 C119.885747,69.2505954 119.787902,69.026949 119.718012,68.8592117 C118.795456,66.9022764 117.949793,65.3926632 117.180997,64.3303269 C116.412201,63.2679906 115.510627,62.2965265 114.476247,61.4159056 L112.505343,63.302941 L112.505343,67.2237811 L112.840816,67.2237811 C113.595634,67.2237811 114.172222,67.4159772 114.570599,67.8003752 C114.968975,68.1847732 115.16816,68.7473837 115.16816,69.4882235 C115.16816,70.3129319 114.961986,70.9069927 114.549631,71.2704235 C114.137277,71.6338543 113.455855,71.815567 112.505343,71.815567 L107.095842,71.815567 C106.131352,71.815567 105.446435,71.6373488 105.04107,71.280907 C104.635705,70.9244652 104.433025,70.32691 104.433025,69.4882235 C104.433025,68.7473837 104.628716,68.1847732 105.020103,67.8003752 C105.41149,67.4159772 105.984584,67.2237811 106.739402,67.2237811 L107.095842,67.2237811 L107.095842,51.5823548 L106.739402,51.5823548 C105.998562,51.5823548 105.435952,51.3866642 105.051554,50.9952772 C104.667156,50.6038901 104.474959,50.0307962 104.474959,49.2759783 C104.474959,48.4512699 104.674145,47.8572091 105.072521,47.4937783 C105.470897,47.1303474 106.14533,46.9486347 107.095842,46.9486347 L112.505343,46.9486347 C113.441877,46.9486347 114.119805,47.1303474 114.539148,47.4937783 C114.958491,47.8572091 115.16816,48.4512699 115.16816,49.2759783 C115.16816,50.0307962 114.968975,50.6038901 114.570599,50.9952772 C114.172222,51.3866642 113.595634,51.5823548 112.840816,51.5823548 L112.505343,51.5823548 Z M13.439885,96.325622 L17.4445933,84.4372993 C17.6961993,83.6545252 18.0456468,83.0849258 18.4929463,82.728484 C18.9402458,82.3720422 19.5343065,82.193824 20.2751463,82.193824 L23.5460076,82.193824 C24.496519,82.193824 25.1779416,82.3755367 25.5902958,82.7389675 C26.0026501,83.1023984 26.2088241,83.6964591 26.2088241,84.5211676 C26.2088241,85.2759855 26.009639,85.8490794 25.6112629,86.2404664 C25.2128868,86.6318535 24.6362984,86.8275441 23.8814805,86.8275441 L23.5460076,86.8275441 L24.1330852,102.46897 L24.4895252,102.46897 C25.2443431,102.46897 25.8104481,102.661166 26.187857,103.045564 C26.565266,103.429962 26.7539676,103.992573 26.7539676,104.733413 C26.7539676,105.558121 26.5547826,106.152182 26.1564064,106.515613 C25.7580303,106.879044 25.0835967,107.060756 24.1330852,107.060756 L19.4154969,107.060756 C18.4649855,107.060756 17.7905518,106.882538 17.3921757,106.526096 C16.9937996,106.169654 16.7946145,105.572099 16.7946145,104.733413 C16.7946145,103.992573 16.9868106,103.429962 17.3712086,103.045564 C17.7556066,102.661166 18.325206,102.46897 19.0800239,102.46897 L19.4154969,102.46897 L19.1219581,89.6790642 L16.0607674,99.1981091 C15.8371177,99.9109927 15.5191204,100.42468 15.1067662,100.739188 C14.694412,101.053695 14.1248126,101.210947 13.3979509,101.210947 C12.6710892,101.210947 12.0945008,101.053695 11.6681685,100.739188 C11.2418362,100.42468 10.91685,99.9109927 10.6932002,99.1981091 L7.65297664,89.6790642 L7.35943781,102.46897 L7.69491075,102.46897 C8.44972866,102.46897 9.01932808,102.661166 9.40372609,103.045564 C9.78812409,103.429962 9.98032022,103.992573 9.98032022,104.733413 C9.98032022,105.558121 9.77764067,106.152182 9.3722755,106.515613 C8.96691032,106.879044 8.29597114,107.060756 7.35943781,107.060756 L2.62088241,107.060756 C1.68434908,107.060756 1.01340989,106.879044 0.608044719,106.515613 C0.202679546,106.152182 0,105.558121 0,104.733413 C0,103.992573 0.192196121,103.429962 0.57659413,103.045564 C0.960992139,102.661166 1.53059155,102.46897 2.28540946,102.46897 L2.62088241,102.46897 L3.22892713,86.8275441 L2.89345418,86.8275441 C2.13863627,86.8275441 1.56204791,86.6318535 1.16367179,86.2404664 C0.765295672,85.8490794 0.5661106,85.2759855 0.5661106,84.5211676 C0.5661106,83.6964591 0.772284622,83.1023984 1.18463885,82.7389675 C1.59699308,82.3755367 2.27841569,82.193824 3.22892713,82.193824 L6.49978838,82.193824 C7.22665007,82.193824 7.81022738,82.3685477 8.25053783,82.7180005 C8.69084827,83.0674532 9.05077919,83.6405471 9.33034138,84.4372993 L13.439885,96.325622 Z M43.8935644,98.3803938 L43.8935644,86.8275441 L42.7403761,86.8275441 C41.8178209,86.8275441 41.1573651,86.6458314 40.758989,86.2824006 C40.3606129,85.9189697 40.1614278,85.3318979 40.1614278,84.5211676 C40.1614278,83.7104372 40.3606129,83.119871 40.758989,82.7494511 C41.1573651,82.3790312 41.8178209,82.193824 42.7403761,82.193824 L48.6950209,82.193824 C49.6035981,82.193824 50.2605593,82.3790312 50.6659245,82.7494511 C51.0712897,83.119871 51.2739692,83.7104372 51.2739692,84.5211676 C51.2739692,85.2620074 51.0817731,85.8316068 50.6973751,86.2299829 C50.3129771,86.628359 49.7643445,86.8275441 49.051461,86.8275441 L48.6950209,86.8275441 L48.6950209,105.865634 C48.6950209,106.522605 48.6251315,106.934953 48.4853504,107.10269 C48.3455693,107.270428 48.0310665,107.354295 47.5418327,107.354295 L45.4451268,107.354295 C44.7741775,107.354295 44.3024234,107.284406 44.0298503,107.144625 C43.7572771,107.004843 43.5231473,106.76023 43.3274538,106.410777 L34.6051571,91.0838571 L34.6051571,102.46897 L35.8212466,102.46897 C36.7298237,102.46897 37.379796,102.643694 37.7711831,102.993147 C38.1625701,103.3426 38.3582607,103.922682 38.3582607,104.733413 C38.3582607,105.558121 38.1590757,106.152182 37.7606995,106.515613 C37.3623234,106.879044 36.7158456,107.060756 35.8212466,107.060756 L29.8037005,107.060756 C28.8951234,107.060756 28.2381621,106.879044 27.832797,106.515613 C27.4274318,106.152182 27.2247522,105.558121 27.2247522,104.733413 C27.2247522,103.992573 27.4134539,103.429962 27.7908629,103.045564 C28.1682718,102.661166 28.7273878,102.46897 29.4682276,102.46897 L29.8037005,102.46897 L29.8037005,86.8275441 L29.4682276,86.8275441 C28.755344,86.8275441 28.203217,86.628359 27.8118299,86.2299829 C27.4204428,85.8316068 27.2247522,85.2620074 27.2247522,84.5211676 C27.2247522,83.7104372 27.4309263,83.119871 27.8432805,82.7494511 C28.2556347,82.3790312 28.9091015,82.193824 29.8037005,82.193824 L33.2422983,82.193824 C34.0670067,82.193824 34.6261227,82.3021527 34.919663,82.5188134 C35.2132033,82.7354741 35.5416839,83.1722835 35.9051148,83.8292546 L43.8935644,98.3803938 Z M64.6604624,86.3662688 C62.8572863,86.3662688 61.4420239,87.0931196 60.4146329,88.546843 C59.3872418,90.0005663 58.873554,92.0203728 58.873554,94.6063231 C58.873554,97.1922733 59.3907363,99.2190688 60.4251164,100.68677 C61.4594965,102.154472 62.8712644,102.888312 64.6604624,102.888312 C66.4636385,102.888312 67.8823953,102.157966 68.9167754,100.697254 C69.9511555,99.2365414 70.4683378,97.2062514 70.4683378,94.6063231 C70.4683378,92.0203728 69.95465,90.0005663 68.9272589,88.546843 C67.8998679,87.0931196 66.4776166,86.3662688 64.6604624,86.3662688 L64.6604624,86.3662688 Z M64.6604624,81.501911 C68.0990773,81.501911 70.929602,82.7319662 73.1521214,85.1921135 C75.3746408,87.6522607 76.4858838,90.7902992 76.4858838,94.6063231 C76.4858838,98.4503032 75.3816297,101.595331 73.1730884,104.0415 C70.9645471,106.487669 68.1270335,107.710735 64.6604624,107.710735 C61.2358256,107.710735 58.4053009,106.477185 56.1688034,104.010049 C53.9323059,101.542913 52.8140739,98.4083688 52.8140739,94.6063231 C52.8140739,90.7763211 53.9218224,87.6347881 56.1373528,85.1816299 C58.3528831,82.7284717 61.1938912,81.501911 64.6604624,81.501911 L64.6604624,81.501911 Z M87.4611651,98.1707232 L87.4611651,102.46897 L89.6207722,102.46897 C90.5293493,102.46897 91.1758272,102.643694 91.5602252,102.993147 C91.9446232,103.3426 92.1368193,103.922682 92.1368193,104.733413 C92.1368193,105.558121 91.9411287,106.152182 91.5497417,106.515613 C91.1583546,106.879044 90.5153712,107.060756 89.6207722,107.060756 L82.3661697,107.060756 C81.4436145,107.060756 80.7831587,106.879044 80.3847826,106.515613 C79.9864065,106.152182 79.7872214,105.558121 79.7872214,104.733413 C79.7872214,103.992573 79.9759231,103.429962 80.353332,103.045564 C80.730741,102.661166 81.282868,102.46897 82.0097297,102.46897 L82.3661697,102.46897 L82.3661697,86.8275441 L82.0097297,86.8275441 C81.2968461,86.8275441 80.7482136,86.628359 80.3638155,86.2299829 C79.9794175,85.8316068 79.7872214,85.2620074 79.7872214,84.5211676 C79.7872214,83.7104372 79.989901,83.119871 80.3952661,82.7494511 C80.8006313,82.3790312 81.4575926,82.193824 82.3661697,82.193824 L91.0255652,82.193824 C94.450202,82.193824 97.0396079,82.8507853 98.7938606,84.1647276 C100.548113,85.4786699 101.425227,87.414609 101.425227,89.972603 C101.425227,92.6703781 100.551608,94.7111515 98.8043442,96.0949843 C97.0570805,97.4788171 94.4641801,98.1707232 91.0255652,98.1707232 L87.4611651,98.1707232 Z M87.4611651,86.8275441 L87.4611651,93.4531348 L90.4384875,93.4531348 C92.0879044,93.4531348 93.328443,93.1735768 94.1601405,92.6144525 C94.9918381,92.0553281 95.4076806,91.2166541 95.4076806,90.0984053 C95.4076806,89.0500471 94.9778602,88.2428234 94.1182064,87.67671 C93.2585527,87.1105966 92.031992,86.8275441 90.4384875,86.8275441 L87.4611651,86.8275441 Z M114.727851,107.396229 L113.092421,109.03166 C113.69348,108.835966 114.284046,108.689198 114.864137,108.591352 C115.444229,108.493505 116.013828,108.444582 116.572953,108.444582 C117.677223,108.444582 118.840883,108.608823 120.063968,108.937308 C121.287053,109.265794 122.031376,109.430034 122.29696,109.430034 C122.744259,109.430034 123.327837,109.279772 124.047709,108.979242 C124.767582,108.678713 125.253314,108.52845 125.50492,108.52845 C126.02211,108.52845 126.45193,108.727636 126.794394,109.126012 C127.136858,109.524388 127.308087,110.024098 127.308087,110.625156 C127.308087,111.421909 126.836333,112.099837 125.892811,112.658961 C124.949288,113.218086 123.792617,113.497643 122.422762,113.497643 C121.486229,113.497643 120.28413,113.277492 118.816428,112.837181 C117.348727,112.396871 116.286406,112.176719 115.629435,112.176719 C114.636989,112.176719 113.518757,112.449288 112.274706,112.994434 C111.030654,113.53958 110.261869,113.812149 109.968329,113.812149 C109.36727,113.812149 108.857077,113.612964 108.437734,113.214588 C108.01839,112.816212 107.808722,112.337469 107.808722,111.778345 C107.808722,111.386958 107.941512,110.971115 108.207096,110.530805 C108.47268,110.090494 108.94094,109.520895 109.611889,108.821989 L111.729562,106.683349 C109.395218,105.830685 107.536157,104.29661 106.152324,102.08108 C104.768491,99.8655494 104.076585,97.3180772 104.076585,94.4385866 C104.076585,90.6365409 105.180839,87.5299526 107.389381,85.1187288 C109.597922,82.7075049 112.442425,81.501911 115.922974,81.501911 C119.389545,81.501911 122.227059,82.7109994 124.4356,85.1292123 C126.644141,87.5474252 127.748395,90.650519 127.748395,94.4385866 C127.748395,98.2126762 126.65113,101.322759 124.456567,103.768928 C122.262004,106.215097 119.480402,107.438163 116.111677,107.438163 C115.888028,107.438163 115.660887,107.434669 115.430248,107.42768 C115.199609,107.420691 114.965479,107.410207 114.727851,107.396229 L114.727851,107.396229 Z M115.922974,86.3662688 C114.119798,86.3662688 112.704535,87.0931196 111.677144,88.546843 C110.649753,90.0005663 110.136065,92.0203728 110.136065,94.6063231 C110.136065,97.1922733 110.653248,99.2190688 111.687628,100.68677 C112.722008,102.154472 114.133776,102.888312 115.922974,102.888312 C117.72615,102.888312 119.144907,102.157966 120.179287,100.697254 C121.213667,99.2365414 121.730849,97.2062514 121.730849,94.6063231 C121.730849,92.0203728 121.217161,90.0005663 120.18977,88.546843 C119.162379,87.0931196 117.740128,86.3662688 115.922974,86.3662688 L115.922974,86.3662688 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/mono-line": { "title": "$:/core/images/mono-line", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-mono-line tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M60.4374591,84.522627 L61.3450888,84.522627 C63.2671377,84.522627 64.7264493,85.0120303 65.7230673,85.9908515 C66.7196852,86.9696727 67.2179868,88.4022896 67.2179868,90.288745 C67.2179868,92.3887615 66.6929905,93.9014625 65.6429823,94.8268935 C64.5929741,95.7523244 62.857817,96.215033 60.4374591,96.215033 L44.3670747,96.215033 C41.9111232,96.215033 40.1670679,95.7612227 39.1348565,94.8535884 C38.102645,93.9459542 37.586547,92.424355 37.586547,90.288745 C37.586547,88.2243221 38.102645,86.747214 39.1348565,85.8573766 C40.1670679,84.9675391 41.9111232,84.522627 44.3670747,84.522627 L46.235724,84.522627 L44.0467348,78.2759992 L20.9822627,78.2759992 L18.6864935,84.522627 L20.5551429,84.522627 C22.9755008,84.522627 24.7106579,84.9764373 25.7606661,85.8840716 C26.8106743,86.7917058 27.3356705,88.2599156 27.3356705,90.288745 C27.3356705,92.3887615 26.8106743,93.9014625 25.7606661,94.8268935 C24.7106579,95.7523244 22.9755008,96.215033 20.5551429,96.215033 L6.78052766,96.215033 C4.32457622,96.215033 2.58052094,95.7523244 1.54830946,94.8268935 C0.516097994,93.9014625 0,92.3887615 0,90.288745 C0,88.4022896 0.498301511,86.9696727 1.49491948,85.9908515 C2.49153745,85.0120303 3.95084902,84.522627 5.87289797,84.522627 L6.78052766,84.522627 L21.0890427,44.6937008 L16.8178442,44.6937008 C14.3974863,44.6937008 12.6623292,44.2309922 11.612321,43.3055613 C10.5623128,42.3801303 10.0373165,40.8852258 10.0373165,38.8208028 C10.0373165,36.7207864 10.5623128,35.2080854 11.612321,34.2826544 C12.6623292,33.3572234 14.3974863,32.8945149 16.8178442,32.8945149 L36.8390873,32.8945149 C40.0069087,32.8945149 42.231469,34.6029772 43.512835,38.0199531 L43.512835,38.180123 L60.4374591,84.522627 Z M32.4611088,44.6937008 L24.7195615,67.224273 L40.2026561,67.224273 L32.4611088,44.6937008 Z M89.5058233,68.5590225 L89.5058233,84.8429669 L97.5143205,84.8429669 C103.173687,84.8429669 107.160099,84.22009 109.473676,82.9743176 C111.787254,81.7285451 112.944025,79.6463566 112.944025,76.7276897 C112.944025,73.7734293 111.840643,71.6734444 109.633846,70.4276719 C107.427049,69.1818994 103.565213,68.5590225 98.0482204,68.5590225 L89.5058233,68.5590225 Z M116.734714,62.6327346 C120.614405,64.0564746 123.461842,66.0051894 125.277111,68.4789376 C127.092379,70.9526857 128,74.1115614 128,77.9556593 C128,81.1946677 127.216955,84.1488838 125.650841,86.8183962 C124.084727,89.4879087 121.84237,91.676876 118.923703,93.385364 C117.215215,94.3819819 115.302093,95.1027395 113.18428,95.5476582 C111.066467,95.9925769 108.06776,96.215033 104.188068,96.215033 L99.7033098,96.215033 L76.3184979,96.215033 C73.9693269,96.215033 72.2875593,95.7523244 71.2731446,94.8268935 C70.2587299,93.9014625 69.7515301,92.3887615 69.7515301,90.288745 C69.7515301,88.4022896 70.2320352,86.9696727 71.1930596,85.9908515 C72.1540841,85.0120303 73.5600062,84.522627 75.4108682,84.522627 L76.3184979,84.522627 L76.3184979,44.6937008 L75.4108682,44.6937008 C73.5600062,44.6937008 72.1540841,44.1953993 71.1930596,43.1987813 C70.2320352,42.2021633 69.7515301,40.7428518 69.7515301,38.8208028 C69.7515301,36.7563799 70.2676281,35.2525771 71.2998396,34.3093494 C72.3320511,33.3661217 74.0049204,32.8945149 76.3184979,32.8945149 L100.877889,32.8945149 C108.388118,32.8945149 114.09189,34.3538264 117.989378,37.2724934 C121.886867,40.1911603 123.835581,44.4623161 123.835581,50.0860889 C123.835581,52.8623819 123.239399,55.3093982 122.047017,57.4272114 C120.854635,59.5450246 119.083885,61.2801816 116.734714,62.6327346 L116.734714,62.6327346 Z M89.5058233,44.3733609 L89.5058233,57.8276363 L96.7134708,57.8276363 C101.091471,57.8276363 104.179161,57.3115383 105.976633,56.2793268 C107.774104,55.2471153 108.672827,53.50306 108.672827,51.0471086 C108.672827,48.7335312 107.863087,47.0428653 106.243583,45.9750604 C104.624078,44.9072554 101.999097,44.3733609 98.3685602,44.3733609 L89.5058233,44.3733609 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/new-button": { "title": "$:/core/images/new-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/new-here-button": { "title": "$:/core/images/new-here-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-here-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n \t<g transform=\"translate(52.233611, 64.389922) rotate(75.000000) translate(-52.233611, -64.389922) translate(-7.734417, 3.702450)\">\n\t <path d=\"M18.9270186,45.959338 L18.9080585,49.6521741 C18.8884833,53.4648378 21.0574548,58.7482162 23.7526408,61.4434022 L78.5671839,116.257945 C81.2617332,118.952495 85.6348701,118.950391 88.3334363,116.251825 L115.863237,88.7220241 C118.555265,86.0299959 118.564544,81.6509578 115.869358,78.9557717 L61.0548144,24.1412286 C58.3602652,21.4466794 53.0787224,19.2788426 49.2595808,19.3006519 L25.9781737,19.4336012 C22.1633003,19.4553862 19.0471195,22.5673232 19.0275223,26.3842526 L18.9871663,34.2443819 C19.0818862,34.255617 19.1779758,34.2665345 19.2754441,34.2771502 C22.6891275,34.6489512 27.0485594,34.2348566 31.513244,33.2285542 C31.7789418,32.8671684 32.075337,32.5211298 32.4024112,32.1940556 C34.8567584,29.7397084 38.3789778,29.0128681 41.4406288,30.0213822 C41.5958829,29.9543375 41.7503946,29.8866669 41.9041198,29.8183808 L42.1110981,30.2733467 C43.1114373,30.6972371 44.0473796,31.3160521 44.8614145,32.1300869 C48.2842088,35.5528813 48.2555691,41.130967 44.7974459,44.5890903 C41.4339531,47.952583 36.0649346,48.0717177 32.6241879,44.9262969 C27.8170558,45.8919233 23.0726921,46.2881596 18.9270186,45.959338 Z\"></path>\n\t <path d=\"M45.4903462,38.8768094 C36.7300141,42.6833154 26.099618,44.7997354 18.1909048,43.9383587 C7.2512621,42.7468685 1.50150083,35.8404432 4.66865776,24.7010202 C7.51507386,14.6896965 15.4908218,6.92103848 24.3842626,4.38423012 C34.1310219,1.60401701 42.4070208,6.15882777 42.4070209,16.3101169 L34.5379395,16.310117 C34.5379394,11.9285862 31.728784,10.3825286 26.5666962,11.8549876 C20.2597508,13.6540114 14.3453742,19.4148216 12.2444303,26.8041943 C10.4963869,32.9523565 12.6250796,35.5092726 19.0530263,36.2093718 C25.5557042,36.9176104 35.0513021,34.9907189 42.7038419,31.5913902 L42.7421786,31.6756595 C44.3874154,31.5384763 47.8846101,37.3706354 45.9274416,38.6772897 L45.9302799,38.6835285 C45.9166992,38.6895612 45.9031139,38.6955897 45.8895238,38.7016142 C45.8389288,38.7327898 45.7849056,38.7611034 45.7273406,38.7863919 C45.6506459,38.8200841 45.571574,38.8501593 45.4903462,38.8768094 Z\"></path>\n </g>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n </g>\n </g>\n</svg>" }, "$:/core/images/new-image-button": { "title": "$:/core/images/new-image-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M81.3619177,73.6270062 L97.1875317,46.2162388 C97.91364,44.9585822 97.4824378,43.3533085 96.2260476,42.6279312 L46.2162388,13.7547547 C44.9585822,13.0286463 43.3533085,13.4598485 42.6279312,14.7162388 L30.0575956,36.4886988 L40.0978909,31.2276186 C43.1404959,29.6333041 46.8692155,31.3421319 47.6479264,34.6877101 L51.2545483,52.3903732 L61.1353556,53.2399953 C63.2899974,53.4346096 65.1046382,54.9309951 65.706105,57.0091178 C65.7395572,57.1246982 65.8069154,57.3539875 65.9047035,57.6813669 C66.0696435,58.2335608 66.2581528,58.852952 66.4667073,59.5238092 C67.0618822,61.4383079 67.6960725,63.3742727 68.3393254,65.2021174 C68.5462918,65.7902259 68.7511789,66.3583016 68.953259,66.9034738 C69.5777086,68.5881157 70.1617856,70.0172008 70.6783305,71.110045 C70.9334784,71.6498566 71.1627732,72.0871602 71.4035746,72.5373068 C71.6178999,72.7492946 71.9508843,72.9623307 72.4151452,73.1586945 C73.5561502,73.6412938 75.1990755,73.899146 77.0720271,73.9171651 C77.9355886,73.9254732 78.7819239,73.8832103 79.5638842,73.8072782 C80.0123946,73.7637257 80.3172916,73.7224469 80.4352582,73.7027375 C80.7503629,73.6500912 81.0598053,73.6256267 81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 L81.3619177,73.6270062 Z M37.4707881,2.64867269 C38.9217993,0.135447653 42.1388058,-0.723707984 44.6486727,0.725364314 L108.293614,37.4707881 C110.806839,38.9217993 111.665994,42.1388058 110.216922,44.6486727 L73.4714982,108.293614 C72.0204871,110.806839 68.8034805,111.665994 66.2936136,110.216922 L2.64867269,73.4714982 C0.135447653,72.0204871 -0.723707984,68.8034805 0.725364314,66.2936136 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 L37.4707881,2.64867269 Z M80.3080975,53.1397764 C82.8191338,54.5895239 86.0299834,53.7291793 87.4797308,51.218143 C88.9294783,48.7071068 88.0691338,45.4962571 85.5580975,44.0465097 C83.0470612,42.5967622 79.8362116,43.4571068 78.3864641,45.968143 C76.9367166,48.4791793 77.7970612,51.6900289 80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 L80.3080975,53.1397764 Z M96,112 L88.0070969,112 C83.5881712,112 80,108.418278 80,104 C80,99.5907123 83.5848994,96 88.0070969,96 L96,96 L96,88.0070969 C96,83.5881712 99.581722,80 104,80 C108.409288,80 112,83.5848994 112,88.0070969 L112,96 L119.992903,96 C124.411829,96 128,99.581722 128,104 C128,108.409288 124.415101,112 119.992903,112 L112,112 L112,119.992903 C112,124.411829 108.418278,128 104,128 C99.5907123,128 96,124.415101 96,119.992903 L96,112 L96,112 Z M33.3471097,51.7910932 C40.7754579,59.7394511 42.3564368,62.4818351 40.7958321,65.1848818 C39.2352273,67.8879286 26.9581062,62.8571718 24.7019652,66.7649227 C22.4458242,70.6726735 23.7947046,70.0228006 22.2648667,72.6725575 L41.9944593,84.0634431 C41.9944593,84.0634431 36.3904568,75.8079231 37.7602356,73.4353966 C40.2754811,69.0788636 46.5298923,72.1787882 48.1248275,69.4162793 C50.538989,65.234829 43.0222016,59.7770885 33.3471097,51.7910932 L33.3471097,51.7910932 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/new-journal-button": { "title": "$:/core/images/new-journal-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-new-journal-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M102.545455,112.818182 L102.545455,124.636364 L102.545455,124.636364 L102.545455,124.636364 C102.545455,125.941761 103.630828,127 104.969697,127 L111.030303,127 C112.369172,127 113.454545,125.941761 113.454545,124.636364 L113.454545,112.818182 L125.575758,112.818182 C126.914626,112.818182 128,111.759982 128,110.454545 L128,104.545455 C128,103.240018 126.914626,102.181818 125.575758,102.181818 L113.454545,102.181818 L113.454545,90.3636364 C113.454545,89.0582 112.369172,88 111.030303,88 L104.969697,88 L104.969697,88 C103.630828,88 102.545455,89.0582 102.545455,90.3636364 L102.545455,102.181818 L90.4242424,102.181818 L90.4242424,102.181818 C89.0853705,102.181818 88,103.240018 88,104.545455 L88,110.454545 L88,110.454545 L88,110.454545 C88,111.759982 89.0853705,112.818182 90.4242424,112.818182 L102.545455,112.818182 Z\"></path>\n <g transform=\"translate(59.816987, 64.316987) rotate(30.000000) translate(-59.816987, -64.316987) translate(20.316987, 12.816987)\">\n <g transform=\"translate(0.000000, 0.000000)\">\n <path d=\"M9.99631148,0 C4.4755011,0 -2.27373675e-13,4.48070044 -2.27373675e-13,9.99759461 L-2.27373675e-13,91.6128884 C-2.27373675e-13,97.1344074 4.46966773,101.610483 9.99631148,101.610483 L68.9318917,101.610483 C74.4527021,101.610483 78.9282032,97.1297826 78.9282032,91.6128884 L78.9282032,9.99759461 C78.9282032,4.47607557 74.4585355,0 68.9318917,0 L9.99631148,0 Z M20.8885263,26 C24.2022348,26 26.8885263,23.3137085 26.8885263,20 C26.8885263,16.6862915 24.2022348,14 20.8885263,14 C17.5748178,14 14.8885263,16.6862915 14.8885263,20 C14.8885263,23.3137085 17.5748178,26 20.8885263,26 Z M57.3033321,25.6783342 C60.6170406,25.6783342 63.3033321,22.9920427 63.3033321,19.6783342 C63.3033321,16.3646258 60.6170406,13.6783342 57.3033321,13.6783342 C53.9896236,13.6783342 51.3033321,16.3646258 51.3033321,19.6783342 C51.3033321,22.9920427 53.9896236,25.6783342 57.3033321,25.6783342 Z\"></path>\n <text font-family=\"Helvetica\" font-size=\"47.1724138\" font-weight=\"bold\" fill=\"#FFFFFF\">\n <tspan x=\"42\" y=\"77.4847912\" text-anchor=\"middle\"><<now \"DD\">></tspan>\n </text>\n </g>\n </g>\n </g>\n</svg>" }, "$:/core/images/opacity": { "title": "$:/core/images/opacity", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-opacity tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M102.361773,65 C101.833691,67.051742 101.183534,69.0544767 100.419508,71 L82.5835324,71 C83.7602504,69.1098924 84.7666304,67.1027366 85.581205,65 L102.361773,65 Z M102.834311,63 C103.256674,61.0388326 103.568427,59.0365486 103.762717,57 L87.6555706,57 C87.3692052,59.0609452 86.9083652,61.0660782 86.2884493,63 L102.834311,63 Z M99.5852583,73 C98.6682925,75.0747721 97.6196148,77.0783056 96.4498253,79 L75.8124196,79 C77.8387053,77.2115633 79.6621163,75.1985844 81.2437158,73 L99.5852583,73 Z M95.1689122,81 C93.7449202,83.1155572 92.1695234,85.1207336 90.458251,87 L60.4614747,87 C65.1836162,85.86248 69.5430327,83.794147 73.3347255,81 L95.1689122,81 Z M87.6555706,47 L103.762717,47 C101.246684,20.6269305 79.0321807,0 52,0 C23.281193,0 0,23.281193 0,52 C0,77.2277755 17.9651296,98.2595701 41.8000051,103 L62.1999949,103 C67.8794003,101.870444 73.2255333,99.8158975 78.074754,97 L39,97 L39,95 L81.2493857,95 C83.8589242,93.2215015 86.2981855,91.2116653 88.5376609,89 L39,89 L39,87 L43.5385253,87 C27.7389671,83.1940333 16,68.967908 16,52 C16,32.117749 32.117749,16 52,16 C70.1856127,16 85.2217929,29.4843233 87.6555706,47 Z M87.8767787,49 L103.914907,49 C103.971379,49.9928025 104,50.9930589 104,52 C104,53.0069411 103.971379,54.0071975 103.914907,55 L87.8767787,55 C87.958386,54.0107999 88,53.0102597 88,52 C88,50.9897403 87.958386,49.9892001 87.8767787,49 Z\"></path>\n <path d=\"M76,128 C104.718807,128 128,104.718807 128,76 C128,47.281193 104.718807,24 76,24 C47.281193,24 24,47.281193 24,76 C24,104.718807 47.281193,128 76,128 L76,128 Z M76,112 C95.882251,112 112,95.882251 112,76 C112,56.117749 95.882251,40 76,40 C56.117749,40 40,56.117749 40,76 C40,95.882251 56.117749,112 76,112 L76,112 Z\"></path>\n <path d=\"M37,58 L90,58 L90,62 L37,62 L37,58 L37,58 Z M40,50 L93,50 L93,54 L40,54 L40,50 L40,50 Z M40,42 L93,42 L93,46 L40,46 L40,42 L40,42 Z M32,66 L85,66 L85,70 L32,70 L32,66 L32,66 Z M30,74 L83,74 L83,78 L30,78 L30,74 L30,74 Z M27,82 L80,82 L80,86 L27,86 L27,82 L27,82 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/open-window": { "title": "$:/core/images/open-window", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-open-window tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M16,112 L104.993898,112 C108.863261,112 112,115.590712 112,120 C112,124.418278 108.858091,128 104.993898,128 L7.00610161,128 C3.13673853,128 0,124.409288 0,120 C0,119.998364 4.30952878e-07,119.996727 1.29273572e-06,119.995091 C4.89579306e-07,119.993456 0,119.99182 0,119.990183 L0,24.0098166 C0,19.586117 3.59071231,16 8,16 C12.418278,16 16,19.5838751 16,24.0098166 L16,112 Z\"></path>\n <path d=\"M96,43.1959595 L96,56 C96,60.418278 99.581722,64 104,64 C108.418278,64 112,60.418278 112,56 L112,24 C112,19.5907123 108.415101,16 103.992903,16 L72.0070969,16 C67.5881712,16 64,19.581722 64,24 C64,28.4092877 67.5848994,32 72.0070969,32 L84.5685425,32 L48.2698369,68.2987056 C45.1421332,71.4264093 45.1434327,76.4904296 48.267627,79.614624 C51.3854642,82.7324612 56.4581306,82.7378289 59.5835454,79.6124141 L96,43.1959595 Z M32,7.9992458 C32,3.58138434 35.5881049,0 39.9992458,0 L120.000754,0 C124.418616,0 128,3.5881049 128,7.9992458 L128,88.0007542 C128,92.4186157 124.411895,96 120.000754,96 L39.9992458,96 C35.5813843,96 32,92.4118951 32,88.0007542 L32,7.9992458 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/options-button": { "title": "$:/core/images/options-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-options-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/paint": { "title": "$:/core/images/paint", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-paint tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M83.5265806,76.1907935 C90.430962,69.2864121 91.8921169,59.0000433 87.9100453,50.6642209 L125.812763,12.7615036 C128.732035,9.84223095 128.72611,5.10322984 125.812796,2.18991592 C122.893542,-0.729338085 118.161775,-0.730617045 115.241209,2.18994966 L77.3384914,40.092667 C69.002669,36.1105954 58.7163002,37.5717503 51.8119188,44.4761317 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 L83.5265806,76.1907935 Z M80.8836921,78.8336819 L49.1690303,47.1190201 C49.1690303,47.1190201 8.50573364,81.242543 0,80.2820711 C0,80.2820711 3.78222974,85.8744423 6.82737483,88.320684 C20.8514801,82.630792 44.1526049,63.720771 44.1526049,63.720771 L44.8144806,64.3803375 C44.8144806,64.3803375 19.450356,90.2231043 9.18040433,92.0477601 C10.4017154,93.4877138 13.5343883,96.1014812 15.4269991,97.8235871 C20.8439164,96.3356979 50.1595367,69.253789 50.1595367,69.253789 L50.8214124,69.9133555 L18.4136144,100.936036 L23.6993903,106.221812 L56.1060358,75.2002881 L56.7679115,75.8598546 C56.7679115,75.8598546 28.9040131,106.396168 28.0841366,108.291555 C28.0841366,108.291555 34.1159238,115.144621 35.6529617,116.115796 C36.3545333,113.280171 63.5365402,82.6307925 63.5365402,82.6307925 L64.1984159,83.290359 C64.1984159,83.290359 43.6013016,107.04575 39.2343772,120.022559 C42.443736,123.571575 46.7339155,125.159692 50.1595362,126.321151 C47.9699978,114.504469 80.8836921,78.8336819 80.8836921,78.8336819 L80.8836921,78.8336819 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/palette": { "title": "$:/core/images/palette", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-palette tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M80.2470434,39.1821571 C75.0645698,38.2680897 69.6261555,37.7814854 64.0193999,37.7814854 C28.6624616,37.7814854 0,57.1324214 0,81.0030106 C0,90.644534 4.67604329,99.5487133 12.5805659,106.738252 C23.5031767,91.1899067 26.3405471,72.3946229 36.8885698,63.5622337 C52.0716764,50.8486559 63.4268694,55.7343343 63.4268694,55.7343343 L80.2470434,39.1821571 Z M106.781666,48.8370714 C119.830962,56.749628 128.0388,68.229191 128.0388,81.0030106 C128.0388,90.3534932 128.557501,98.4142085 116.165191,106.082518 C105.367708,112.763955 112.341384,99.546808 104.321443,95.1851533 C96.3015017,90.8234987 84.3749007,96.492742 86.1084305,103.091059 C89.3087234,115.272303 105.529892,114.54645 92.4224435,119.748569 C79.3149955,124.950687 74.2201582,124.224536 64.0193999,124.224536 C56.1979176,124.224536 48.7040365,123.277578 41.7755684,121.544216 C51.620343,117.347916 69.6563669,109.006202 75.129737,102.088562 C82.7876655,92.4099199 87.3713218,80.0000002 83.3235694,72.4837191 C83.1303943,72.1250117 94.5392656,60.81569 106.781666,48.8370714 Z M1.13430476,123.866563 C0.914084026,123.867944 0.693884185,123.868637 0.473712455,123.868637 C33.9526848,108.928928 22.6351223,59.642592 59.2924543,59.6425917 C59.6085574,61.0606542 59.9358353,62.5865065 60.3541977,64.1372318 C34.4465025,59.9707319 36.7873124,112.168427 1.13429588,123.866563 L1.13430476,123.866563 Z M1.84669213,123.859694 C40.7185279,123.354338 79.9985412,101.513051 79.9985401,79.0466836 C70.7284906,79.0466835 65.9257264,75.5670082 63.1833375,71.1051511 C46.585768,64.1019718 32.81846,116.819636 1.84665952,123.859695 L1.84669213,123.859694 Z M67.1980193,59.8524981 C62.748213,63.9666823 72.0838429,76.2846822 78.5155805,71.1700593 C89.8331416,59.8524993 112.468264,37.2173758 123.785825,25.8998146 C135.103386,14.5822535 123.785825,3.26469247 112.468264,14.5822535 C101.150703,25.8998144 78.9500931,48.9868127 67.1980193,59.8524981 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/permalink-button": { "title": "$:/core/images/permalink-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-permalink-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M80.4834582,48 L73.0956761,80 L73.0956761,80 L47.5165418,80 L54.9043239,48 L80.4834582,48 Z M84.1773493,32 L89.8007299,7.64246248 C90.7941633,3.33942958 95.0918297,0.64641956 99.3968675,1.64031585 C103.693145,2.63218977 106.385414,6.93288901 105.390651,11.2416793 L100.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L96.9043239,48 L89.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L85.8226507,96 L80.1992701,120.357538 C79.2058367,124.66057 74.9081703,127.35358 70.6031325,126.359684 C66.3068546,125.36781 63.6145865,121.067111 64.6093491,116.758321 L69.401785,96 L43.8226507,96 L38.1992701,120.357538 C37.2058367,124.66057 32.9081703,127.35358 28.6031325,126.359684 C24.3068546,125.36781 21.6145865,121.067111 22.6093491,116.758321 L27.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L31.0956761,80 L38.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L42.1773493,32 L47.8007299,7.64246248 C48.7941633,3.33942958 53.0918297,0.64641956 57.3968675,1.64031585 C61.6931454,2.63218977 64.3854135,6.93288901 63.3906509,11.2416793 L58.598215,32 L84.1773493,32 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/permaview-button": { "title": "$:/core/images/permaview-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-permaview-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M81.4834582,48 L79.6365127,56 L79.6365127,56 L74.0573784,56 L75.9043239,48 L81.4834582,48 Z M85.1773493,32 L90.8007299,7.64246248 C91.7941633,3.33942958 96.0918297,0.64641956 100.396867,1.64031585 C104.693145,2.63218977 107.385414,6.93288901 106.390651,11.2416793 L101.598215,32 L104.000754,32 C108.411895,32 112,35.581722 112,40 C112,44.4092877 108.418616,48 104.000754,48 L97.9043239,48 L96.0573784,56 L104.000754,56 C108.411895,56 112,59.581722 112,64 C112,68.4092877 108.418616,72 104.000754,72 L92.3634873,72 L90.5165418,80 L104.000754,80 C108.411895,80 112,83.581722 112,88 C112,92.4092877 108.418616,96 104.000754,96 L86.8226507,96 L81.1992701,120.357538 C80.2058367,124.66057 75.9081703,127.35358 71.6031325,126.359684 C67.3068546,125.36781 64.6145865,121.067111 65.6093491,116.758321 L70.401785,96 L64.8226507,96 L59.1992701,120.357538 C58.2058367,124.66057 53.9081703,127.35358 49.6031325,126.359684 C45.3068546,125.36781 42.6145865,121.067111 43.6093491,116.758321 L48.401785,96 L42.8226507,96 L37.1992701,120.357538 C36.2058367,124.66057 31.9081703,127.35358 27.6031325,126.359684 C23.3068546,125.36781 20.6145865,121.067111 21.6093491,116.758321 L26.401785,96 L23.9992458,96 C19.5881049,96 16,92.418278 16,88 C16,83.5907123 19.5813843,80 23.9992458,80 L30.0956761,80 L31.9426216,72 L23.9992458,72 C19.5881049,72 16,68.418278 16,64 C16,59.5907123 19.5813843,56 23.9992458,56 L35.6365127,56 L37.4834582,48 L23.9992458,48 C19.5881049,48 16,44.418278 16,40 C16,35.5907123 19.5813843,32 23.9992458,32 L41.1773493,32 L46.8007299,7.64246248 C47.7941633,3.33942958 52.0918297,0.64641956 56.3968675,1.64031585 C60.6931454,2.63218977 63.3854135,6.93288901 62.3906509,11.2416793 L57.598215,32 L63.1773493,32 L68.8007299,7.64246248 C69.7941633,3.33942958 74.0918297,0.64641956 78.3968675,1.64031585 C82.6931454,2.63218977 85.3854135,6.93288901 84.3906509,11.2416793 L79.598215,32 L85.1773493,32 Z M53.9043239,48 L52.0573784,56 L57.6365127,56 L59.4834582,48 L53.9043239,48 Z M75.9426216,72 L74.0956761,80 L74.0956761,80 L68.5165418,80 L70.3634873,72 L75.9426216,72 L75.9426216,72 Z M48.3634873,72 L46.5165418,80 L52.0956761,80 L53.9426216,72 L48.3634873,72 L48.3634873,72 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/picture": { "title": "$:/core/images/picture", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-picture tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112,68.2332211 L112,20.0027785 C112,17.7898769 110.207895,16 107.997221,16 L20.0027785,16 C17.7898769,16 16,17.792105 16,20.0027785 L16,58.312373 L25.2413115,43.7197989 C28.041793,39.297674 34.2643908,38.7118128 37.8410347,42.5335275 L56.0882845,63.1470817 L69.7748997,56.7400579 C72.766567,55.3552503 76.3013751,55.9473836 78.678437,58.2315339 C78.8106437,58.3585731 79.0742301,58.609836 79.4527088,58.9673596 C80.0910923,59.570398 80.8117772,60.2441563 81.598127,60.9705595 C83.8422198,63.043576 86.1541548,65.1151944 88.3956721,67.0372264 C89.1168795,67.6556396 89.8200801,68.2492007 90.5021258,68.8146755 C92.6097224,70.5620551 94.4693308,72.0029474 95.9836366,73.0515697 C96.7316295,73.5695379 97.3674038,73.9719282 98.0281481,74.3824999 C98.4724987,74.4989557 99.0742374,74.5263881 99.8365134,74.4317984 C101.709944,74.1993272 104.074502,73.2878514 106.559886,71.8846196 C107.705822,71.2376318 108.790494,70.5370325 109.764561,69.8410487 C110.323259,69.4418522 110.694168,69.1550757 110.834827,69.0391868 C111.210545,68.7296319 111.600264,68.4615815 112,68.2332211 L112,68.2332211 Z M0,8.00697327 C0,3.58484404 3.59075293,0 8.00697327,0 L119.993027,0 C124.415156,0 128,3.59075293 128,8.00697327 L128,119.993027 C128,124.415156 124.409247,128 119.993027,128 L8.00697327,128 C3.58484404,128 0,124.409247 0,119.993027 L0,8.00697327 L0,8.00697327 Z M95,42 C99.418278,42 103,38.418278 103,34 C103,29.581722 99.418278,26 95,26 C90.581722,26 87,29.581722 87,34 C87,38.418278 90.581722,42 95,42 L95,42 Z M32,76 C47.8587691,80.8294182 52.0345556,83.2438712 52.0345556,88 C52.0345556,92.7561288 32,95.4712486 32,102.347107 C32,109.222965 33.2849191,107.337637 33.2849191,112 L67.999999,112 C67.999999,112 54.3147136,105.375255 54.3147136,101.200691 C54.3147136,93.535181 64.9302432,92.860755 64.9302432,88 C64.9302432,80.6425555 50.8523779,79.167282 32,76 L32,76 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/plugin-generic-language": { "title": "$:/core/images/plugin-generic-language", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M61.2072232,68.1369825 C56.8829239,70.9319564 54.2082892,74.793177 54.2082892,79.0581634 C54.2082892,86.9638335 63.3980995,93.4821994 75.2498076,94.3940006 C77.412197,98.2964184 83.8475284,101.178858 91.5684735,101.403106 C86.4420125,100.27851 82.4506393,97.6624107 80.9477167,94.3948272 C92.8046245,93.4861461 102,86.9662269 102,79.0581634 C102,70.5281905 91.3014611,63.6132813 78.1041446,63.6132813 C71.5054863,63.6132813 65.5315225,65.3420086 61.2072232,68.1369825 Z M74.001066,53.9793443 C69.6767667,56.7743182 63.7028029,58.5030456 57.1041446,58.5030456 C54.4851745,58.5030456 51.9646095,58.2307276 49.6065315,57.7275105 C46.2945155,59.9778212 41.2235699,61.4171743 35.5395922,61.4171743 C35.4545771,61.4171743 35.3696991,61.4168523 35.2849622,61.4162104 C39.404008,60.5235193 42.7961717,58.6691298 44.7630507,56.286533 C37.8379411,53.5817651 33.2082892,48.669413 33.2082892,43.0581634 C33.2082892,34.5281905 43.9068281,27.6132812 57.1041446,27.6132812 C70.3014611,27.6132812 81,34.5281905 81,43.0581634 C81,47.3231498 78.3253653,51.1843704 74.001066,53.9793443 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/plugin-generic-plugin": { "title": "$:/core/images/plugin-generic-plugin", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M40.3972881,76.4456988 L40.3972881,95.3404069 L54.5170166,95.3404069 L54.5170166,95.3404069 C54.5165526,95.3385183 54.516089,95.3366295 54.515626,95.3347404 C54.6093153,95.3385061 54.7034848,95.3404069 54.7980982,95.3404069 C58.6157051,95.3404069 61.710487,92.245625 61.710487,88.4280181 C61.710487,86.6197822 61.01617,84.9737128 59.8795929,83.7418666 L59.8795929,83.7418666 C59.8949905,83.7341665 59.9104102,83.7265043 59.925852,83.7188798 C58.8840576,82.5086663 58.2542926,80.9336277 58.2542926,79.2114996 C58.2542926,75.3938927 61.3490745,72.2991108 65.1666814,72.2991108 C68.9842884,72.2991108 72.0790703,75.3938927 72.0790703,79.2114996 C72.0790703,81.1954221 71.2432806,82.9841354 69.9045961,84.2447446 L69.9045961,84.2447446 C69.9333407,84.2629251 69.9619885,84.281245 69.9905383,84.2997032 L69.9905383,84.2997032 C69.1314315,85.4516923 68.6228758,86.8804654 68.6228758,88.4280181 C68.6228758,91.8584969 71.1218232,94.7053153 74.3986526,95.2474079 C74.3913315,95.2784624 74.3838688,95.3094624 74.3762652,95.3404069 L95.6963988,95.3404069 L95.6963988,75.5678578 L95.6963988,75.5678578 C95.6466539,75.5808558 95.5967614,75.5934886 95.5467242,75.6057531 C95.5504899,75.5120637 95.5523907,75.4178943 95.5523907,75.3232809 C95.5523907,71.505674 92.4576088,68.4108921 88.6400019,68.4108921 C86.831766,68.4108921 85.1856966,69.105209 83.9538504,70.2417862 L83.9538504,70.2417862 C83.9461503,70.2263886 83.938488,70.2109688 83.9308636,70.1955271 C82.7206501,71.2373215 81.1456115,71.8670865 79.4234834,71.8670865 C75.6058765,71.8670865 72.5110946,68.7723046 72.5110946,64.9546976 C72.5110946,61.1370907 75.6058765,58.0423088 79.4234834,58.0423088 C81.4074059,58.0423088 83.1961192,58.8780985 84.4567284,60.2167829 L84.4567284,60.2167829 C84.4749089,60.1880383 84.4932288,60.1593906 84.511687,60.1308407 L84.511687,60.1308407 C85.6636761,60.9899475 87.0924492,61.4985032 88.6400019,61.4985032 C92.0704807,61.4985032 94.9172991,58.9995558 95.4593917,55.7227265 C95.538755,55.7414363 95.6177614,55.761071 95.6963988,55.7816184 L95.6963988,40.0412962 L74.3762652,40.0412962 L74.3762652,40.0412962 C74.3838688,40.0103516 74.3913315,39.9793517 74.3986526,39.9482971 L74.3986526,39.9482971 C71.1218232,39.4062046 68.6228758,36.5593862 68.6228758,33.1289073 C68.6228758,31.5813547 69.1314315,30.1525815 69.9905383,29.0005925 C69.9619885,28.9821342 69.9333407,28.9638143 69.9045961,28.9456339 C71.2432806,27.6850247 72.0790703,25.8963113 72.0790703,23.9123888 C72.0790703,20.0947819 68.9842884,17 65.1666814,17 C61.3490745,17 58.2542926,20.0947819 58.2542926,23.9123888 C58.2542926,25.6345169 58.8840576,27.2095556 59.925852,28.419769 L59.925852,28.419769 C59.9104102,28.4273935 59.8949905,28.4350558 59.8795929,28.4427558 C61.01617,29.674602 61.710487,31.3206715 61.710487,33.1289073 C61.710487,36.9465143 58.6157051,40.0412962 54.7980982,40.0412962 C54.7034848,40.0412962 54.6093153,40.0393953 54.515626,40.0356296 L54.515626,40.0356296 C54.516089,40.0375187 54.5165526,40.0394075 54.5170166,40.0412962 L40.3972881,40.0412962 L40.3972881,52.887664 L40.3972881,52.887664 C40.4916889,53.3430132 40.5412962,53.8147625 40.5412962,54.2980982 C40.5412962,58.1157051 37.4465143,61.210487 33.6289073,61.210487 C32.0813547,61.210487 30.6525815,60.7019313 29.5005925,59.8428245 C29.4821342,59.8713744 29.4638143,59.9000221 29.4456339,59.9287667 C28.1850247,58.5900823 26.3963113,57.7542926 24.4123888,57.7542926 C20.5947819,57.7542926 17.5,60.8490745 17.5,64.6666814 C17.5,68.4842884 20.5947819,71.5790703 24.4123888,71.5790703 C26.134517,71.5790703 27.7095556,70.9493053 28.919769,69.9075109 L28.919769,69.9075109 C28.9273935,69.9229526 28.9350558,69.9383724 28.9427558,69.95377 C30.174602,68.8171928 31.8206715,68.1228758 33.6289073,68.1228758 C37.4465143,68.1228758 40.5412962,71.2176578 40.5412962,75.0352647 C40.5412962,75.5186004 40.4916889,75.9903496 40.3972881,76.4456988 Z M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/plugin-generic-theme": { "title": "$:/core/images/plugin-generic-theme", "tags": "$:/tags/Image", "text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M29.4078519,91.4716406 L51.4693474,69.4101451 L51.4646675,69.4054652 C50.5969502,68.5377479 50.5929779,67.1348725 51.4693474,66.2585029 C52.3396494,65.3882009 53.7499654,65.3874786 54.6163097,66.2538229 L64.0805963,75.7181095 C64.9483136,76.5858268 64.9522859,77.9887022 64.0759163,78.8650718 C63.2056143,79.7353737 61.7952984,79.736096 60.9289541,78.8697517 L60.9242741,78.8650718 L60.9242741,78.8650718 L38.8627786,100.926567 C36.2518727,103.537473 32.0187578,103.537473 29.4078519,100.926567 C26.796946,98.3156614 26.796946,94.0825465 29.4078519,91.4716406 Z M60.8017407,66.3810363 C58.3659178,63.6765806 56.3370667,61.2899536 54.9851735,59.5123615 C48.1295381,50.4979488 44.671561,55.2444054 40.7586738,59.5123614 C36.8457866,63.7803174 41.789473,67.2384487 38.0759896,70.2532832 C34.3625062,73.2681177 34.5917646,74.3131575 28.3243876,68.7977024 C22.0570105,63.2822473 21.6235306,61.7636888 24.5005999,58.6166112 C27.3776691,55.4695337 29.7823103,60.4247912 35.6595047,54.8320442 C41.5366991,49.2392972 36.5996215,44.2825646 36.5996215,44.2825646 C36.5996215,44.2825646 48.8365511,19.267683 65.1880231,21.1152173 C81.5394952,22.9627517 59.0022276,18.7228947 53.3962199,38.3410355 C50.9960082,46.7405407 53.8429162,44.7613399 58.3941742,48.3090467 C59.7875202,49.3951602 64.4244828,52.7100463 70.1884353,56.9943417 L90.8648751,36.3179019 L92.4795866,31.5515482 L100.319802,26.8629752 L103.471444,30.0146174 L98.782871,37.8548326 L94.0165173,39.4695441 L73.7934912,59.6925702 C86.4558549,69.2403631 102.104532,81.8392557 102.104532,86.4016913 C102.104533,93.6189834 99.0337832,97.9277545 92.5695848,95.5655717 C87.8765989,93.8506351 73.8015497,80.3744087 63.8173444,69.668717 L60.9242741,72.5617873 L57.7726319,69.4101451 L60.8017407,66.3810363 L60.8017407,66.3810363 Z M63.9533761,1.42108547e-13 L118.512977,32 L118.512977,96 L63.9533761,128 L9.39377563,96 L9.39377563,32 L63.9533761,1.42108547e-13 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/preview-closed": { "title": "$:/core/images/preview-closed", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-preview-closed tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M0.0881363238,64 C-0.210292223,65.8846266 0.249135869,67.8634737 1.4664206,69.4579969 C16.2465319,88.8184886 39.1692554,100.414336 64,100.414336 C88.8307446,100.414336 111.753468,88.8184886 126.533579,69.4579969 C127.750864,67.8634737 128.210292,65.8846266 127.911864,64 C110.582357,78.4158332 88.3036732,87.0858436 64,87.0858436 C39.6963268,87.0858436 17.4176431,78.4158332 0.0881363238,64 Z\"></path>\n <rect x=\"62\" y=\"96\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(80.000000, 101.000000) rotate(-5.000000) translate(-80.000000, -101.000000) \" x=\"78\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(48.000000, 101.000000) rotate(-355.000000) translate(-48.000000, -101.000000) \" x=\"46\" y=\"93\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(32.000000, 96.000000) rotate(-350.000000) translate(-32.000000, -96.000000) \" x=\"30\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(96.000000, 96.000000) rotate(-10.000000) translate(-96.000000, -96.000000) \" x=\"94\" y=\"88\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(112.000000, 88.000000) rotate(-20.000000) translate(-112.000000, -88.000000) \" x=\"110\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n <rect transform=\"translate(16.000000, 88.000000) rotate(-340.000000) translate(-16.000000, -88.000000) \" x=\"14\" y=\"80\" width=\"4\" height=\"16\" rx=\"4\"></rect>\n </g>\n</svg>" }, "$:/core/images/preview-open": { "title": "$:/core/images/preview-open", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-preview-open tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64.1099282,99.5876785 C39.2791836,99.5876785 16.3564602,87.9918313 1.57634884,68.6313396 C-0.378878622,66.070184 -0.378878622,62.5174945 1.57634884,59.9563389 C16.3564602,40.5958472 39.2791836,29 64.1099282,29 C88.9406729,29 111.863396,40.5958472 126.643508,59.9563389 C128.598735,62.5174945 128.598735,66.070184 126.643508,68.6313396 C111.863396,87.9918313 88.9406729,99.5876785 64.1099282,99.5876785 Z M110.213805,67.5808331 C111.654168,66.0569335 111.654168,63.9430665 110.213805,62.4191669 C99.3257042,50.8995835 82.4391647,44 64.1470385,44 C45.8549124,44 28.9683729,50.8995835 18.0802717,62.4191669 C16.6399094,63.9430665 16.6399094,66.0569335 18.0802717,67.5808331 C28.9683729,79.1004165 45.8549124,86 64.1470385,86 C82.4391647,86 99.3257042,79.1004165 110.213805,67.5808331 Z\"></path>\n <path d=\"M63.5,88 C76.4786916,88 87,77.4786916 87,64.5 C87,51.5213084 76.4786916,41 63.5,41 C50.5213084,41 40,51.5213084 40,64.5 C40,77.4786916 50.5213084,88 63.5,88 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/print-button": { "title": "$:/core/images/print-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M112,71 L112,30.5 L111.96811,30.5 L111.96811,30.5 C111.932942,28.4998414 111.151676,26.510538 109.625176,24.9840387 L86.9982489,2.35711116 C85.3482153,0.707077645 83.1589869,-0.071534047 81,0.0201838424 L81,0 L23.9992458,0 C19.5808867,0 16,3.58213437 16,8.00092105 L16,71 L24,71 L24,8 L81,8 L81,22.4996539 C81,26.9216269 84.5818769,30.5 89.0003461,30.5 L104,30.5 L104,71 L112,71 Z\"></path>\n <rect x=\"32\" y=\"36\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"52\" width=\"64\" height=\"8\" rx=\"4\"></rect>\n <rect x=\"32\" y=\"20\" width=\"40\" height=\"8\" rx=\"4\"></rect>\n <path d=\"M0,80.0054195 C0,71.1658704 7.15611005,64 16.0008841,64 L111.999116,64 C120.83616,64 128,71.1553215 128,80.0054195 L128,111.99458 C128,120.83413 120.84389,128 111.999116,128 L16.0008841,128 C7.16383982,128 0,120.844679 0,111.99458 L0,80.0054195 Z M104,96 C108.418278,96 112,92.418278 112,88 C112,83.581722 108.418278,80 104,80 C99.581722,80 96,83.581722 96,88 C96,92.418278 99.581722,96 104,96 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/quote": { "title": "$:/core/images/quote", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-quote tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M51.2188077,117.712501 L51.2188077,62.1993386 L27.4274524,62.1993386 C27.4274524,53.3075754 29.1096526,45.797753 32.4741035,39.669646 C35.8385544,33.541539 42.0867267,28.9154883 51.2188077,25.7913554 L51.2188077,2 C43.7689521,2.96127169 36.8599155,5.18417913 30.4914905,8.668789 C24.1230656,12.1533989 18.6559149,16.5391352 14.0898743,21.8261295 C9.52383382,27.1131238 5.97919764,33.2411389 3.45585945,40.2103586 C0.932521268,47.1795784 -0.208971741,54.6293222 0.0313461819,62.5598136 L0.0313461819,117.712501 L51.2188077,117.712501 Z M128,117.712501 L128,62.1993386 L104.208645,62.1993386 C104.208645,53.3075754 105.890845,45.797753 109.255296,39.669646 C112.619747,33.541539 118.867919,28.9154883 128,25.7913554 L128,2 C120.550144,2.96127169 113.641108,5.18417913 107.272683,8.668789 C100.904258,12.1533989 95.4371072,16.5391352 90.8710666,21.8261295 C86.3050261,27.1131238 82.7603899,33.2411389 80.2370517,40.2103586 C77.7137136,47.1795784 76.5722206,54.6293222 76.8125385,62.5598136 L76.8125385,117.712501 L128,117.712501 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/refresh-button": { "title": "$:/core/images/refresh-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-refresh-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M106.369002,39.4325143 C116.529932,60.3119371 112.939592,86.1974934 95.5979797,103.539105 C73.7286194,125.408466 38.2713806,125.408466 16.4020203,103.539105 C-5.46734008,81.6697449 -5.46734008,46.2125061 16.4020203,24.3431458 C19.5262146,21.2189514 24.5915344,21.2189514 27.7157288,24.3431458 C30.8399231,27.4673401 30.8399231,32.5326599 27.7157288,35.6568542 C12.0947571,51.2778259 12.0947571,76.6044251 27.7157288,92.2253967 C43.3367004,107.846368 68.6632996,107.846368 84.2842712,92.2253967 C97.71993,78.7897379 99.5995262,58.1740623 89.9230597,42.729491 L83.4844861,54.9932839 C81.4307001,58.9052072 76.5945372,60.4115251 72.682614,58.3577391 C68.7706907,56.3039532 67.2643728,51.4677903 69.3181587,47.555867 L84.4354914,18.7613158 C86.4966389,14.8353707 91.3577499,13.3347805 95.273202,15.415792 L124.145886,30.7612457 C128.047354,32.8348248 129.52915,37.6785572 127.455571,41.5800249 C125.381992,45.4814927 120.53826,46.9632892 116.636792,44.8897102 L106.369002,39.4325143 Z M98.1470904,27.0648707 C97.9798954,26.8741582 97.811187,26.6843098 97.6409651,26.4953413 L98.6018187,26.1987327 L98.1470904,27.0648707 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/right-arrow": { "title": "$:/core/images/right-arrow", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-right-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M80.3563798,109.353315 C78.9238993,110.786918 76.9450203,111.675144 74.7592239,111.675144 L-4.40893546,111.675144 C-8.77412698,111.675144 -12.3248558,108.130732 -12.3248558,103.758478 C-12.3248558,99.3951199 -8.78077754,95.8418109 -4.40893546,95.8418109 L66.8418109,95.8418109 L66.8418109,24.5910645 C66.8418109,20.225873 70.3862233,16.6751442 74.7584775,16.6751442 C79.1218352,16.6751442 82.6751442,20.2192225 82.6751442,24.5910645 L82.6751442,103.759224 C82.6751442,105.941695 81.7891419,107.920575 80.3566508,109.353886 Z\" transform=\"translate(35.175144, 64.175144) rotate(-45.000000) translate(-35.175144, -64.175144) \"></path>\n</svg>" }, "$:/core/images/rotate-left": { "title": "$:/core/images/rotate-left", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-rotate-left tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect x=\"48\" y=\"96\" width=\"80\" height=\"32\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 0 1-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 1 1-5.657 5.657L49.172 43.142a4 4 0 0 1 0-5.657l11.313-11.313a4 4 0 1 1 5.657 5.656l-4.821 4.822z\"/></g></svg>" }, "$:/core/images/save-button": { "title": "$:/core/images/save-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M120.78304,34.329058 C125.424287,43.1924006 128.049406,53.2778608 128.049406,63.9764502 C128.049406,99.3226742 99.3956295,127.97645 64.0494055,127.97645 C28.7031816,127.97645 0.0494055385,99.3226742 0.0494055385,63.9764502 C0.0494055385,28.6302262 28.7031816,-0.0235498012 64.0494055,-0.0235498012 C82.8568763,-0.0235498012 99.769563,8.08898558 111.479045,21.0056358 L114.159581,18.3250998 C117.289194,15.1954866 122.356036,15.1939641 125.480231,18.3181584 C128.598068,21.4359957 128.601317,26.5107804 125.473289,29.6388083 L120.78304,34.329058 Z M108.72451,46.3875877 C110.870571,51.8341374 112.049406,57.767628 112.049406,63.9764502 C112.049406,90.4861182 90.5590735,111.97645 64.0494055,111.97645 C37.5397375,111.97645 16.0494055,90.4861182 16.0494055,63.9764502 C16.0494055,37.4667822 37.5397375,15.9764502 64.0494055,15.9764502 C78.438886,15.9764502 91.3495036,22.308215 100.147097,32.3375836 L58.9411255,73.5435552 L41.975581,56.5780107 C38.8486152,53.4510448 33.7746915,53.4551552 30.6568542,56.5729924 C27.5326599,59.6971868 27.5372202,64.7670668 30.6618725,67.8917192 L53.279253,90.5090997 C54.8435723,92.073419 56.8951519,92.8541315 58.9380216,92.8558261 C60.987971,92.8559239 63.0389578,92.0731398 64.6049211,90.5071765 L108.72451,46.3875877 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/size": { "title": "$:/core/images/size", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-size tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <path d=\"M92.3431458,26 L83.1715729,35.1715729 C81.6094757,36.73367 81.6094757,39.26633 83.1715729,40.8284271 C84.73367,42.3905243 87.26633,42.3905243 88.8284271,40.8284271 L104.828427,24.8284271 C106.390524,23.26633 106.390524,20.73367 104.828427,19.1715729 L88.8284271,3.17157288 C87.26633,1.60947571 84.73367,1.60947571 83.1715729,3.17157288 C81.6094757,4.73367004 81.6094757,7.26632996 83.1715729,8.82842712 L92.3431457,18 L22,18 C19.790861,18 18,19.790861 18,22 L18,92.3431458 L8.82842712,83.1715729 C7.26632996,81.6094757 4.73367004,81.6094757 3.17157288,83.1715729 C1.60947571,84.73367 1.60947571,87.26633 3.17157288,88.8284271 L19.1715729,104.828427 C20.73367,106.390524 23.26633,106.390524 24.8284271,104.828427 L40.8284271,88.8284271 C42.3905243,87.26633 42.3905243,84.73367 40.8284271,83.1715729 C39.26633,81.6094757 36.73367,81.6094757 35.1715729,83.1715729 L26,92.3431458 L26,22 L22,26 L92.3431458,26 L92.3431458,26 Z M112,52 L112,116 L116,112 L52,112 C49.790861,112 48,113.790861 48,116 C48,118.209139 49.790861,120 52,120 L116,120 C118.209139,120 120,118.209139 120,116 L120,52 C120,49.790861 118.209139,48 116,48 C113.790861,48 112,49.790861 112,52 L112,52 Z\"></path>\n</svg>" }, "$:/core/images/spiral": { "title": "$:/core/images/spiral", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-spiral tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074.14-2.64-1.89-4.89-4.52-5.03-2.64-.14-4.89 1.88-5.03 4.52-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01-.02-.015-.054-.045-.094-.088-.06-.064-.12-.145-.17-.244-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"></path>\n </g>\n</svg>" }, "$:/core/images/stamp": { "title": "$:/core/images/stamp", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-stamp tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M49.7334301,64 L16.0098166,64 C11.5838751,64 8,67.5829053 8,72.002643 L8,74.4986785 L8,97 L120,97 L120,74.4986785 L120,72.002643 C120,67.5737547 116.413883,64 111.990183,64 L78.2665699,64 C76.502049,60.7519149 75.5,57.0311962 75.5,53.0769231 C75.5,46.6017951 78.1869052,40.7529228 82.5087769,36.5800577 C85.3313113,32.7688808 87,28.0549983 87,22.952183 C87,10.2760423 76.7025492,0 64,0 C51.2974508,0 41,10.2760423 41,22.952183 C41,28.0549983 42.6686887,32.7688808 45.4912231,36.5800577 C49.8130948,40.7529228 52.5,46.6017951 52.5,53.0769231 C52.5,57.0311962 51.497951,60.7519149 49.7334301,64 Z M8,104 L120,104 L120,112 L8,112 L8,104 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/star-filled": { "title": "$:/core/images/star-filled", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-star-filled tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"nonzero\">\n <path d=\"M61.8361286,96.8228569 L99.1627704,124.110219 C101.883827,126.099427 105.541968,123.420868 104.505636,120.198072 L90.2895569,75.9887263 L89.0292911,79.8977279 L126.314504,52.5528988 C129.032541,50.5595011 127.635256,46.2255025 124.273711,46.2229134 L78.1610486,46.1873965 L81.4604673,48.6032923 L67.1773543,4.41589688 C66.1361365,1.19470104 61.6144265,1.19470104 60.5732087,4.41589688 L46.2900957,48.6032923 L49.5895144,46.1873965 L3.47685231,46.2229134 C0.115307373,46.2255025 -1.28197785,50.5595011 1.43605908,52.5528988 L38.7212719,79.8977279 L37.4610061,75.9887263 L23.2449266,120.198072 C22.2085954,123.420868 25.8667356,126.099427 28.5877926,124.110219 L65.9144344,96.8228569 L61.8361286,96.8228569 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/storyview-classic": { "title": "$:/core/images/storyview-classic", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-storyview-classic tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/storyview-pop": { "title": "$:/core/images/storyview-pop", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-storyview-pop tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.5776607 16,23.9924054 L16,40.0075946 C16,44.4216782 19.5881049,48 23.9992458,48 L104.000754,48 C108.418616,48 112,44.4223393 112,40.0075946 L112,23.9924054 C112,19.5783218 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z M16.0098166,56 C11.586117,56 8,59.5776607 8,63.9924054 L8,80.0075946 C8,84.4216782 11.5838751,88 16.0098166,88 L111.990183,88 C116.413883,88 120,84.4223393 120,80.0075946 L120,63.9924054 C120,59.5783218 116.416125,56 111.990183,56 L16.0098166,56 L16.0098166,56 Z M23.9992458,96 C19.5813843,96 16,99.5907123 16,104 C16,108.418278 19.5881049,112 23.9992458,112 L104.000754,112 C108.418616,112 112,108.409288 112,104 C112,99.581722 108.411895,96 104.000754,96 L23.9992458,96 L23.9992458,96 Z M23.9992458,64 C19.5813843,64 16,67.5907123 16,72 C16,76.418278 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.4092877 112,72 C112,67.581722 108.411895,64 104.000754,64 L23.9992458,64 L23.9992458,64 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/storyview-zoomin": { "title": "$:/core/images/storyview-zoomin", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-storyview-zoomin tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M8.00697327,0 C3.58484404,0 0,3.59075293 0,8.00697327 L0,119.993027 C0,124.415156 3.59075293,128 8.00697327,128 L119.993027,128 C124.415156,128 128,124.409247 128,119.993027 L128,8.00697327 C128,3.58484404 124.409247,0 119.993027,0 L8.00697327,0 L8.00697327,0 Z M23.9992458,16 C19.5813843,16 16,19.578055 16,24.0085154 L16,71.9914846 C16,76.4144655 19.5881049,80 23.9992458,80 L104.000754,80 C108.418616,80 112,76.421945 112,71.9914846 L112,24.0085154 C112,19.5855345 108.411895,16 104.000754,16 L23.9992458,16 L23.9992458,16 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/strikethrough": { "title": "$:/core/images/strikethrough", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M92.793842,38.7255689 L108.215529,38.7255689 C107.987058,31.985687 106.70193,26.1883331 104.360107,21.3333333 C102.018284,16.4783336 98.8197436,12.4516001 94.7643909,9.25301205 C90.7090382,6.05442399 85.9969032,3.71263572 80.6278447,2.22757697 C75.2587862,0.742518233 69.4328739,0 63.1499331,0 C57.552404,0 52.0977508,0.713959839 46.7858099,2.14190094 C41.473869,3.56984203 36.7331757,5.74027995 32.5635877,8.65327979 C28.3939997,11.5662796 25.0526676,15.2788708 22.5394913,19.7911647 C20.026315,24.3034585 18.7697456,29.6438781 18.7697456,35.8125837 C18.7697456,41.4101128 19.883523,46.0651309 22.1111111,49.7777778 C24.3386992,53.4904246 27.3087722,56.5176144 31.021419,58.8594378 C34.7340659,61.2012612 38.9321497,63.0861151 43.6157965,64.5140562 C48.2994433,65.9419973 53.068695,67.1985666 57.9236948,68.2838019 C62.7786945,69.3690371 67.5479462,70.4256977 72.231593,71.4538153 C76.9152398,72.4819329 81.1133237,73.8241773 84.8259705,75.480589 C88.5386174,77.1370007 91.5086903,79.2788802 93.7362784,81.9062918 C95.9638666,84.5337035 97.0776439,87.9607107 97.0776439,92.1874163 C97.0776439,96.6425926 96.1637753,100.298067 94.3360107,103.153949 C92.5082461,106.009831 90.109341,108.265944 87.1392236,109.922356 C84.1691061,111.578768 80.827774,112.749662 77.1151272,113.435074 C73.4024803,114.120485 69.7184476,114.463186 66.0629183,114.463186 C61.4935068,114.463186 57.0383974,113.892018 52.6974565,112.749665 C48.3565156,111.607312 44.5582492,109.836692 41.3025435,107.437751 C38.0468378,105.03881 35.4194656,101.983062 33.4203481,98.270415 C31.4212305,94.5577681 30.4216867,90.1312171 30.4216867,84.9906292 L15,84.9906292 C15,92.4159229 16.3422445,98.8415614 19.0267738,104.267738 C21.711303,109.693914 25.3667774,114.149023 29.9933066,117.633199 C34.6198357,121.117376 39.9888137,123.71619 46.1004016,125.429719 C52.2119895,127.143248 58.6947448,128 65.5488621,128 C71.1463912,128 76.7723948,127.343157 82.4270415,126.029451 C88.0816882,124.715745 93.1936407,122.602424 97.7630522,119.689424 C102.332464,116.776425 106.073613,113.006717 108.986613,108.380187 C111.899613,103.753658 113.356091,98.1847715 113.356091,91.6733601 C113.356091,85.6188899 112.242314,80.5926126 110.014726,76.5943775 C107.787137,72.5961424 104.817065,69.2833688 101.104418,66.6559572 C97.3917708,64.0285455 93.193687,61.9437828 88.5100402,60.4016064 C83.8263934,58.85943 79.0571416,57.5171855 74.2021419,56.3748327 C69.3471422,55.2324798 64.5778904,54.1758192 59.8942436,53.2048193 C55.2105968,52.2338193 51.012513,51.0058084 47.2998661,49.5207497 C43.5872193,48.0356909 40.6171463,46.1222786 38.3895582,43.7804552 C36.1619701,41.4386318 35.0481928,38.3828836 35.0481928,34.6131191 C35.0481928,30.6148841 35.8192694,27.273552 37.3614458,24.5890228 C38.9036222,21.9044935 40.9598265,19.762614 43.5301205,18.1633199 C46.1004145,16.5640259 49.041929,15.4216902 52.3547523,14.7362784 C55.6675757,14.0508667 59.0374661,13.708166 62.4645248,13.708166 C70.9179361,13.708166 77.8576257,15.6786952 83.2838019,19.6198126 C88.709978,23.56093 91.8799597,29.9294518 92.793842,38.7255689 L92.793842,38.7255689 Z\"></path>\n <rect x=\"5\" y=\"54\" width=\"118\" height=\"16\"></rect>\n </g>\n</svg>" }, "$:/core/images/subscript": { "title": "$:/core/images/subscript", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-subscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,128.411516 L85.3276227,128.411516 C85.3870139,123.24448 86.6342108,118.730815 89.0692508,114.870386 C91.5042907,111.009956 94.8301491,107.654403 99.0469256,104.803624 C101.066227,103.318844 103.174584,101.878629 105.372059,100.482935 C107.569534,99.0872413 109.588805,97.5876355 111.429933,95.9840726 C113.271061,94.3805097 114.785514,92.6433426 115.973338,90.7725192 C117.161163,88.9016958 117.784761,86.7487964 117.844152,84.3137564 C117.844152,83.1853233 117.710524,81.9826691 117.443264,80.7057579 C117.176003,79.4288467 116.656338,78.2410402 115.884252,77.1423026 C115.112166,76.0435651 114.04314,75.123015 112.677142,74.3806248 C111.311144,73.6382345 109.529434,73.267045 107.331959,73.267045 C105.312658,73.267045 103.634881,73.6679297 102.298579,74.4697112 C100.962276,75.2714926 99.8932503,76.3702137 99.0914688,77.7659073 C98.2896874,79.161601 97.6957841,80.8096826 97.3097412,82.7102016 C96.9236982,84.6107206 96.7009845,86.6596869 96.6415933,88.857162 L86.4857457,88.857162 C86.4857457,85.4124713 86.9460207,82.2202411 87.8665846,79.2803758 C88.7871485,76.3405105 90.1679736,73.801574 92.0091014,71.6634901 C93.8502292,69.5254062 96.092214,67.8476295 98.7351233,66.6301095 C101.378033,65.4125895 104.451482,64.8038386 107.955564,64.8038386 C111.756602,64.8038386 114.933984,65.4274371 117.487807,66.6746527 C120.041629,67.9218683 122.105443,69.4957119 123.67931,71.3962309 C125.253178,73.2967499 126.366746,75.3605638 127.02005,77.5877345 C127.673353,79.8149053 128,81.9381095 128,83.9574109 C128,86.4518421 127.613963,88.7086746 126.841877,90.727976 C126.069791,92.7472774 125.03046,94.6032252 123.723854,96.2958749 C122.417247,97.9885247 120.932489,99.5475208 119.269534,100.97291 C117.60658,102.398299 115.884261,103.734582 114.102524,104.981797 C112.320788,106.229013 110.539078,107.416819 108.757341,108.545253 C106.975605,109.673686 105.327523,110.802102 103.813047,111.930535 C102.298571,113.058968 100.977136,114.231927 99.8487031,115.449447 C98.7202699,116.666967 97.9481956,117.958707 97.5324571,119.324705 L127.910914,119.324705 L127.910914,128.411516 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/superscript": { "title": "$:/core/images/superscript", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-superscript tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M2.27170276,16 L22.1825093,16 L43.8305003,49.6746527 L66.4138983,16 L85.1220387,16 L53.5854592,61.9685735 L87.3937414,111.411516 L67.0820462,111.411516 L43.295982,74.9306422 L19.1090291,111.411516 L0,111.411516 L33.8082822,61.9685735 L2.27170276,16 Z M127.910914,63.4115159 L85.3276227,63.4115159 C85.3870139,58.2444799 86.6342108,53.7308149 89.0692508,49.8703857 C91.5042907,46.0099565 94.8301491,42.654403 99.0469256,39.8036245 C101.066227,38.318844 103.174584,36.8786285 105.372059,35.4829349 C107.569534,34.0872413 109.588805,32.5876355 111.429933,30.9840726 C113.271061,29.3805097 114.785514,27.6433426 115.973338,25.7725192 C117.161163,23.9016958 117.784761,21.7487964 117.844152,19.3137564 C117.844152,18.1853233 117.710524,16.9826691 117.443264,15.7057579 C117.176003,14.4288467 116.656338,13.2410402 115.884252,12.1423026 C115.112166,11.0435651 114.04314,10.123015 112.677142,9.38062477 C111.311144,8.63823453 109.529434,8.26704499 107.331959,8.26704499 C105.312658,8.26704499 103.634881,8.6679297 102.298579,9.46971115 C100.962276,10.2714926 99.8932503,11.3702137 99.0914688,12.7659073 C98.2896874,14.161601 97.6957841,15.8096826 97.3097412,17.7102016 C96.9236982,19.6107206 96.7009845,21.6596869 96.6415933,23.857162 L86.4857457,23.857162 C86.4857457,20.4124713 86.9460207,17.2202411 87.8665846,14.2803758 C88.7871485,11.3405105 90.1679736,8.80157397 92.0091014,6.6634901 C93.8502292,4.52540622 96.092214,2.84762946 98.7351233,1.63010947 C101.378033,0.412589489 104.451482,-0.196161372 107.955564,-0.196161372 C111.756602,-0.196161372 114.933984,0.427437071 117.487807,1.67465266 C120.041629,2.92186826 122.105443,4.49571195 123.67931,6.39623095 C125.253178,8.29674995 126.366746,10.3605638 127.02005,12.5877345 C127.673353,14.8149053 128,16.9381095 128,18.9574109 C128,21.4518421 127.613963,23.7086746 126.841877,25.727976 C126.069791,27.7472774 125.03046,29.6032252 123.723854,31.2958749 C122.417247,32.9885247 120.932489,34.5475208 119.269534,35.97291 C117.60658,37.3982993 115.884261,38.7345816 114.102524,39.9817972 C112.320788,41.2290128 110.539078,42.4168194 108.757341,43.5452525 C106.975605,44.6736857 105.327523,45.8021019 103.813047,46.9305351 C102.298571,48.0589682 100.977136,49.2319272 99.8487031,50.4494472 C98.7202699,51.6669672 97.9481956,52.9587068 97.5324571,54.3247048 L127.910914,54.3247048 L127.910914,63.4115159 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/tag-button": { "title": "$:/core/images/tag-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-tag-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M18.1643182,47.6600756 L18.1677196,51.7651887 C18.1708869,55.5878829 20.3581578,60.8623899 23.0531352,63.5573673 L84.9021823,125.406414 C87.5996731,128.103905 91.971139,128.096834 94.6717387,125.396234 L125.766905,94.3010679 C128.473612,91.5943612 128.472063,87.2264889 125.777085,84.5315115 L63.9280381,22.6824644 C61.2305472,19.9849735 55.9517395,17.801995 52.1318769,17.8010313 L25.0560441,17.7942007 C21.2311475,17.7932358 18.1421354,20.8872832 18.1452985,24.7049463 L18.1535504,34.6641936 C18.2481119,34.6754562 18.3439134,34.6864294 18.4409623,34.6971263 C22.1702157,35.1081705 26.9295004,34.6530132 31.806204,33.5444844 C32.1342781,33.0700515 32.5094815,32.6184036 32.9318197,32.1960654 C35.6385117,29.4893734 39.5490441,28.718649 42.94592,29.8824694 C43.0432142,29.8394357 43.1402334,29.7961748 43.2369683,29.7526887 L43.3646982,30.0368244 C44.566601,30.5115916 45.6933052,31.2351533 46.6655958,32.2074439 C50.4612154,36.0030635 50.4663097,42.1518845 46.6769742,45.94122 C43.0594074,49.5587868 37.2914155,49.7181264 33.4734256,46.422636 C28.1082519,47.5454734 22.7987486,48.0186448 18.1643182,47.6600756 Z\"></path>\n <path d=\"M47.6333528,39.5324628 L47.6562932,39.5834939 C37.9670934,43.9391617 26.0718874,46.3819521 17.260095,45.4107025 C5.27267473,44.0894301 -1.02778744,36.4307276 2.44271359,24.0779512 C5.56175386,12.9761516 14.3014034,4.36129832 24.0466405,1.54817001 C34.7269254,-1.53487574 43.7955833,3.51606438 43.7955834,14.7730751 L35.1728168,14.7730752 C35.1728167,9.91428944 32.0946059,8.19982862 26.4381034,9.83267419 C19.5270911,11.8276553 13.046247,18.2159574 10.7440788,26.4102121 C8.82861123,33.2280582 11.161186,36.0634845 18.2047888,36.8398415 C25.3302805,37.6252244 35.7353482,35.4884477 44.1208333,31.7188498 L44.1475077,31.7781871 C44.159701,31.7725635 44.1718402,31.7671479 44.1839238,31.7619434 C45.9448098,31.0035157 50.4503245,38.3109156 47.7081571,39.5012767 C47.6834429,39.512005 47.6585061,39.5223987 47.6333528,39.5324628 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/theme-button": { "title": "$:/core/images/theme-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-theme-button tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M55.854113,66.9453198 C54.3299482,65.1432292 53.0133883,63.518995 51.9542746,62.1263761 C40.8899947,47.578055 35.3091807,55.2383404 28.9941893,62.1263758 C22.6791979,69.0144112 30.6577916,74.5954741 24.6646171,79.4611023 C18.6714426,84.3267304 19.0414417,86.0133155 8.92654943,77.1119468 C-1.18834284,68.2105781 -1.88793412,65.7597832 2.7553553,60.6807286 C7.39864472,55.601674 11.2794845,63.5989423 20.7646627,54.5728325 C30.2498409,45.5467226 22.2819131,37.5470737 22.2819131,37.5470737 C22.2819131,37.5470737 42.0310399,-2.82433362 68.4206088,0.157393922 C94.8101776,3.13912147 58.4373806,-3.70356506 49.3898693,27.958066 C45.5161782,41.5139906 50.1107906,38.3197672 57.4560458,44.0453955 C59.1625767,45.3756367 63.8839488,48.777453 70.127165,53.3625321 C63.9980513,59.2416709 58.9704753,64.0315459 55.854113,66.9453198 Z M67.4952439,79.8919946 C83.5082212,96.9282402 105.237121,117.617674 112.611591,120.312493 C123.044132,124.12481 128.000001,117.170903 128,105.522947 C127.999999,98.3705516 104.170675,78.980486 84.0760493,63.7529565 C76.6683337,70.9090328 70.7000957,76.7055226 67.4952439,79.8919946 Z\"></path>\n <path d=\"M58.2852966,138.232794 L58.2852966,88.3943645 C56.318874,88.3923153 54.7254089,86.7952906 54.7254089,84.8344788 C54.7254089,82.8684071 56.3175932,81.2745911 58.2890859,81.2745911 L79.6408336,81.2745911 C81.608998,81.2745911 83.2045105,82.8724076 83.2045105,84.8344788 C83.2045105,86.7992907 81.614366,88.3923238 79.6446228,88.3943645 L79.6446228,88.3943646 L79.6446228,138.232794 C79.6446228,144.131009 74.8631748,148.912457 68.9649597,148.912457 C63.0667446,148.912457 58.2852966,144.131009 58.2852966,138.232794 Z M65.405072,-14.8423767 L72.5248474,-14.8423767 L76.0847351,-0.690681892 L72.5248474,6.51694947 L72.5248474,81.2745911 L65.405072,81.2745911 L65.405072,6.51694947 L61.8451843,-0.690681892 L65.405072,-14.8423767 Z\" transform=\"translate(68.964960, 67.035040) rotate(45.000000) translate(-68.964960, -67.035040) \"></path>\n </g>\n</svg>" }, "$:/core/images/timestamp-off": { "title": "$:/core/images/timestamp-off", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-timestamp-off tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/>\n </g>\n</svg>\n" }, "$:/core/images/timestamp-on": { "title": "$:/core/images/timestamp-on", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-timestamp-on tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10c-2.762 0-5-2.24-5-5-.004-2.756 2.238-5 5-5H66.69c2.762 0 5.002 2.24 5 5 .006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178c-2.116 1.775-5.27 1.498-7.045-.613-1.772-2.11-1.498-5.27.616-7.047l9.95-8.348c2.115-1.774 5.27-1.5 7.045.618 1.775 2.108 1.498 5.27-.616 7.043l-9.95 8.348zM102.983 27.178c2.116 1.775 5.27 1.498 7.045-.613 1.772-2.11 1.498-5.27-.616-7.047l-9.95-8.348c-2.114-1.774-5.27-1.5-7.044.618-1.775 2.108-1.498 5.27.616 7.043l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/>\n </g>\n</svg>\n" }, "$:/core/images/tip": { "title": "$:/core/images/tip", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-tip tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,128.241818 C99.346224,128.241818 128,99.5880417 128,64.2418177 C128,28.8955937 99.346224,0.241817675 64,0.241817675 C28.653776,0.241817675 0,28.8955937 0,64.2418177 C0,99.5880417 28.653776,128.241818 64,128.241818 Z M75.9358659,91.4531941 C75.3115438,95.581915 70.2059206,98.8016748 64,98.8016748 C57.7940794,98.8016748 52.6884562,95.581915 52.0641341,91.4531941 C54.3299053,94.0502127 58.8248941,95.8192805 64,95.8192805 C69.1751059,95.8192805 73.6700947,94.0502127 75.9358659,91.4531941 L75.9358659,91.4531941 Z M75.9358659,95.9453413 C75.3115438,100.074062 70.2059206,103.293822 64,103.293822 C57.7940794,103.293822 52.6884562,100.074062 52.0641341,95.9453413 C54.3299053,98.5423599 58.8248941,100.311428 64,100.311428 C69.1751059,100.311428 73.6700947,98.5423599 75.9358659,95.9453413 L75.9358659,95.9453413 Z M75.9358659,100.40119 C75.3115438,104.529911 70.2059206,107.74967 64,107.74967 C57.7940794,107.74967 52.6884562,104.529911 52.0641341,100.40119 C54.3299053,102.998208 58.8248941,104.767276 64,104.767276 C69.1751059,104.767276 73.6700947,102.998208 75.9358659,100.40119 L75.9358659,100.40119 Z M75.9358659,104.893337 C75.3115438,109.022058 70.2059206,112.241818 64,112.241818 C57.7940794,112.241818 52.6884562,109.022058 52.0641341,104.893337 C54.3299053,107.490356 58.8248941,109.259423 64,109.259423 C69.1751059,109.259423 73.6700947,107.490356 75.9358659,104.893337 L75.9358659,104.893337 Z M64.3010456,24.2418177 C75.9193117,24.2418188 88.0000013,32.0619847 88,48.4419659 C87.9999987,64.8219472 75.9193018,71.7540963 75.9193021,83.5755932 C75.9193022,89.4486648 70.0521957,92.8368862 63.9999994,92.8368862 C57.947803,92.8368862 51.9731007,89.8295115 51.9731007,83.5755932 C51.9731007,71.1469799 39.9999998,65.4700602 40,48.4419647 C40.0000002,31.4138691 52.6827796,24.2418166 64.3010456,24.2418177 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/transcludify": { "title": "$:/core/images/transcludify", "tags": "$:/tags/Image", "text": "<svg class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\"><path d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 0 0 2.75-.932 6.762 6.762 0 0 0 2.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 0 0-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 0 0-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 0 0 2.75-.932 6.762 6.762 0 0 0 2.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 0 0-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 0 0-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 0 0-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 0 0 .71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 0 0-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 0 0 2.262 2.084 8.868 8.868 0 0 0 2.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 0 0-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 0 0 .71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 0 0-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 0 0 2.262 2.084 8.868 8.868 0 0 0 2.75 1.02c.946.177 1.745.266 2.395.266v7.806z\" fill-rule=\"evenodd\"/></svg>\n" }, "$:/core/images/twitter": { "title": "$:/core/images/twitter", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-twitter tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M41.6263422,115.803477 C27.0279663,115.803477 13.4398394,111.540813 1.99987456,104.234833 C4.02221627,104.472643 6.08004574,104.594302 8.16644978,104.594302 C20.277456,104.594302 31.4238403,100.47763 40.270894,93.5715185 C28.9590538,93.3635501 19.4123842,85.9189246 16.1230832,75.6885328 C17.7011365,75.9892376 19.320669,76.1503787 20.9862896,76.1503787 C23.344152,76.1503787 25.6278127,75.8359011 27.7971751,75.247346 C15.9709927,72.8821073 7.06079851,62.4745062 7.06079851,49.9982394 C7.06079851,49.8898938 7.06079851,49.7820074 7.06264203,49.67458 C10.5482779,51.6032228 14.5339687,52.7615103 18.7717609,52.8951059 C11.8355159,48.277565 7.2714207,40.3958845 7.2714207,31.4624258 C7.2714207,26.7434257 8.54621495,22.3200804 10.7713439,18.5169676 C23.5211299,34.0957738 42.568842,44.3472839 64.0532269,45.4210985 C63.6126256,43.5365285 63.3835682,41.5711584 63.3835682,39.5529928 C63.3835682,25.3326379 74.95811,13.8034766 89.2347917,13.8034766 C96.6697089,13.8034766 103.387958,16.930807 108.103682,21.9353619 C113.991886,20.780288 119.52429,18.6372496 124.518847,15.6866694 C122.588682,21.6993889 118.490075,26.7457211 113.152623,29.9327334 C118.381769,29.3102055 123.363882,27.926045 127.999875,25.8780385 C124.534056,31.0418981 120.151087,35.5772616 115.100763,39.2077561 C115.150538,40.3118708 115.175426,41.4224128 115.175426,42.538923 C115.175426,76.5663154 89.1744164,115.803477 41.6263422,115.803477\"></path>\n </g>\n</svg>\n" }, "$:/core/images/underline": { "title": "$:/core/images/underline", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-underline tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M7,117.421488 L121.247934,117.421488 L121.247934,128 L7,128 L7,117.421488 Z M104.871212,98.8958333 L104.871212,0 L88.6117424,0 L88.6117424,55.8560606 C88.6117424,60.3194668 88.0060035,64.432115 86.7945076,68.1941288 C85.5830116,71.9561425 83.7657949,75.239885 81.342803,78.0454545 C78.9198111,80.8510241 75.8911167,83.0189317 72.2566288,84.5492424 C68.6221409,86.0795531 64.3182067,86.844697 59.344697,86.844697 C53.0959284,86.844697 48.1862552,85.0593613 44.6155303,81.4886364 C41.0448054,77.9179114 39.2594697,73.0720003 39.2594697,66.9507576 L39.2594697,0 L23,0 L23,65.0378788 C23,70.3939662 23.5419769,75.2717583 24.625947,79.6714015 C25.709917,84.0710447 27.5908957,87.864883 30.2689394,91.0530303 C32.9469831,94.2411776 36.4538925,96.6960141 40.7897727,98.4176136 C45.125653,100.139213 50.545422,101 57.0492424,101 C64.3182182,101 70.630655,99.5653553 75.9867424,96.6960227 C81.3428298,93.8266902 85.742407,89.33147 89.1856061,83.2102273 L89.5681818,83.2102273 L89.5681818,98.8958333 L104.871212,98.8958333 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/unfold-all-button": { "title": "$:/core/images/unfold-all-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-unfold-all tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"0\" y=\"64\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M85.598226,8.34884273 C84.1490432,6.89863875 82.1463102,6 79.9340286,6 L47.9482224,6 C43.5292967,6 39.9411255,9.581722 39.9411255,14 C39.9411255,18.4092877 43.5260249,22 47.9482224,22 L71.9411255,22 L71.9411255,45.9929031 C71.9411255,50.4118288 75.5228475,54 79.9411255,54 C84.3504132,54 87.9411255,50.4151006 87.9411255,45.9929031 L87.9411255,14.0070969 C87.9411255,11.7964515 87.0447363,9.79371715 85.5956548,8.34412458 Z\" transform=\"translate(63.941125, 30.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -30.000000) \"></path>\n <path d=\"M85.6571005,72.2899682 C84.2079177,70.8397642 82.2051847,69.9411255 79.9929031,69.9411255 L48.0070969,69.9411255 C43.5881712,69.9411255 40,73.5228475 40,77.9411255 C40,82.3504132 43.5848994,85.9411255 48.0070969,85.9411255 L72,85.9411255 L72,109.934029 C72,114.352954 75.581722,117.941125 80,117.941125 C84.4092877,117.941125 88,114.356226 88,109.934029 L88,77.9482224 C88,75.737577 87.1036108,73.7348426 85.6545293,72.2852501 Z\" transform=\"translate(64.000000, 93.941125) scale(1, -1) rotate(-45.000000) translate(-64.000000, -93.941125) \"></path>\n </g>\n</svg>" }, "$:/core/images/unfold-button": { "title": "$:/core/images/unfold-button", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-unfold tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <rect x=\"0\" y=\"0\" width=\"128\" height=\"16\" rx=\"8\"></rect>\n <path d=\"M85.598226,11.3488427 C84.1490432,9.89863875 82.1463102,9 79.9340286,9 L47.9482224,9 C43.5292967,9 39.9411255,12.581722 39.9411255,17 C39.9411255,21.4092877 43.5260249,25 47.9482224,25 L71.9411255,25 L71.9411255,48.9929031 C71.9411255,53.4118288 75.5228475,57 79.9411255,57 C84.3504132,57 87.9411255,53.4151006 87.9411255,48.9929031 L87.9411255,17.0070969 C87.9411255,14.7964515 87.0447363,12.7937171 85.5956548,11.3441246 Z\" transform=\"translate(63.941125, 33.000000) scale(1, -1) rotate(-45.000000) translate(-63.941125, -33.000000) \"></path>\n <path d=\"M85.6571005,53.4077172 C84.2079177,51.9575133 82.2051847,51.0588745 79.9929031,51.0588745 L48.0070969,51.0588745 C43.5881712,51.0588745 40,54.6405965 40,59.0588745 C40,63.4681622 43.5848994,67.0588745 48.0070969,67.0588745 L72,67.0588745 L72,91.0517776 C72,95.4707033 75.581722,99.0588745 80,99.0588745 C84.4092877,99.0588745 88,95.4739751 88,91.0517776 L88,59.0659714 C88,56.855326 87.1036108,54.8525917 85.6545293,53.4029991 Z\" transform=\"translate(64.000000, 75.058875) scale(1, -1) rotate(-45.000000) translate(-64.000000, -75.058875) \"></path>\n </g>\n</svg>" }, "$:/core/images/unlocked-padlock": { "title": "$:/core/images/unlocked-padlock", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-unlocked-padlock tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M48.6266053,64 L105,64 L105,96.0097716 C105,113.673909 90.6736461,128 73.001193,128 L55.998807,128 C38.3179793,128 24,113.677487 24,96.0097716 L24,64 L30.136303,64 C19.6806213,51.3490406 2.77158986,28.2115132 25.8366966,8.85759246 C50.4723026,-11.8141335 71.6711028,13.2108337 81.613302,25.0594855 C91.5555012,36.9081373 78.9368488,47.4964439 69.1559674,34.9513593 C59.375086,22.4062748 47.9893192,10.8049522 35.9485154,20.9083862 C23.9077117,31.0118202 34.192312,43.2685325 44.7624679,55.8655518 C47.229397,58.805523 48.403443,61.5979188 48.6266053,64 Z M67.7315279,92.3641717 C70.8232551,91.0923621 73,88.0503841 73,84.5 C73,79.8055796 69.1944204,76 64.5,76 C59.8055796,76 56,79.8055796 56,84.5 C56,87.947435 58.0523387,90.9155206 61.0018621,92.2491029 L55.9067479,115.020857 L72.8008958,115.020857 L67.7315279,92.3641717 L67.7315279,92.3641717 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/up-arrow": { "title": "$:/core/images/up-arrow", "created": "20150316000544368", "modified": "20150316000831867", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-up-arrow tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n<path transform=\"rotate(-135, 63.8945, 64.1752)\" d=\"m109.07576,109.35336c-1.43248,1.43361 -3.41136,2.32182 -5.59717,2.32182l-79.16816,0c-4.36519,0 -7.91592,-3.5444 -7.91592,-7.91666c0,-4.36337 3.54408,-7.91667 7.91592,-7.91667l71.25075,0l0,-71.25074c0,-4.3652 3.54442,-7.91592 7.91667,-7.91592c4.36336,0 7.91667,3.54408 7.91667,7.91592l0,79.16815c0,2.1825 -0.88602,4.16136 -2.3185,5.59467l-0.00027,-0.00056l0.00001,-0.00001z\" />\n</svg>\n \n" }, "$:/core/images/video": { "title": "$:/core/images/video", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-video tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M64,12 C29.0909091,12 8.72727273,14.9166667 5.81818182,17.8333333 C2.90909091,20.75 1.93784382e-15,41.1666667 0,64.5 C1.93784382e-15,87.8333333 2.90909091,108.25 5.81818182,111.166667 C8.72727273,114.083333 29.0909091,117 64,117 C98.9090909,117 119.272727,114.083333 122.181818,111.166667 C125.090909,108.25 128,87.8333333 128,64.5 C128,41.1666667 125.090909,20.75 122.181818,17.8333333 C119.272727,14.9166667 98.9090909,12 64,12 Z M54.9161194,44.6182253 C51.102648,42.0759111 48.0112186,43.7391738 48.0112186,48.3159447 L48.0112186,79.6840553 C48.0112186,84.2685636 51.109784,85.9193316 54.9161194,83.3817747 L77.0838806,68.6032672 C80.897352,66.0609529 80.890216,61.9342897 77.0838806,59.3967328 L54.9161194,44.6182253 Z\"></path>\n </g>\n</svg>" }, "$:/core/images/warning": { "title": "$:/core/images/warning", "tags": "$:/tags/Image", "text": "<svg class=\"tc-image-warning tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path d=\"M57.0717968,11 C60.1509982,5.66666667 67.8490018,5.66666667 70.9282032,11 L126.353829,107 C129.433031,112.333333 125.584029,119 119.425626,119 L8.57437416,119 C2.41597129,119 -1.43303051,112.333333 1.64617093,107 L57.0717968,11 Z M64,37 C59.581722,37 56,40.5820489 56,44.9935776 L56,73.0064224 C56,77.4211534 59.5907123,81 64,81 C68.418278,81 72,77.4179511 72,73.0064224 L72,44.9935776 C72,40.5788466 68.4092877,37 64,37 Z M64,104 C68.418278,104 72,100.418278 72,96 C72,91.581722 68.418278,88 64,88 C59.581722,88 56,91.581722 56,96 C56,100.418278 59.581722,104 64,104 Z\"></path>\n </g>\n</svg>" }, "$:/language/Buttons/AdvancedSearch/Caption": { "title": "$:/language/Buttons/AdvancedSearch/Caption", "text": "advanced search" }, "$:/language/Buttons/AdvancedSearch/Hint": { "title": "$:/language/Buttons/AdvancedSearch/Hint", "text": "Advanced search" }, "$:/language/Buttons/Cancel/Caption": { "title": "$:/language/Buttons/Cancel/Caption", "text": "cancel" }, "$:/language/Buttons/Cancel/Hint": { "title": "$:/language/Buttons/Cancel/Hint", "text": "Discard changes to this tiddler" }, "$:/language/Buttons/Clone/Caption": { "title": "$:/language/Buttons/Clone/Caption", "text": "clone" }, "$:/language/Buttons/Clone/Hint": { "title": "$:/language/Buttons/Clone/Hint", "text": "Clone this tiddler" }, "$:/language/Buttons/Close/Caption": { "title": "$:/language/Buttons/Close/Caption", "text": "close" }, "$:/language/Buttons/Close/Hint": { "title": "$:/language/Buttons/Close/Hint", "text": "Close this tiddler" }, "$:/language/Buttons/CloseAll/Caption": { "title": "$:/language/Buttons/CloseAll/Caption", "text": "close all" }, "$:/language/Buttons/CloseAll/Hint": { "title": "$:/language/Buttons/CloseAll/Hint", "text": "Close all tiddlers" }, "$:/language/Buttons/CloseOthers/Caption": { "title": "$:/language/Buttons/CloseOthers/Caption", "text": "close others" }, "$:/language/Buttons/CloseOthers/Hint": { "title": "$:/language/Buttons/CloseOthers/Hint", "text": "Close other tiddlers" }, "$:/language/Buttons/ControlPanel/Caption": { "title": "$:/language/Buttons/ControlPanel/Caption", "text": "control panel" }, "$:/language/Buttons/ControlPanel/Hint": { "title": "$:/language/Buttons/ControlPanel/Hint", "text": "Open control panel" }, "$:/language/Buttons/CopyToClipboard/Caption": { "title": "$:/language/Buttons/CopyToClipboard/Caption", "text": "copy to clipboard" }, "$:/language/Buttons/CopyToClipboard/Hint": { "title": "$:/language/Buttons/CopyToClipboard/Hint", "text": "Copy this text to the clipboard" }, "$:/language/Buttons/Delete/Caption": { "title": "$:/language/Buttons/Delete/Caption", "text": "delete" }, "$:/language/Buttons/Delete/Hint": { "title": "$:/language/Buttons/Delete/Hint", "text": "Delete this tiddler" }, "$:/language/Buttons/Edit/Caption": { "title": "$:/language/Buttons/Edit/Caption", "text": "edit" }, "$:/language/Buttons/Edit/Hint": { "title": "$:/language/Buttons/Edit/Hint", "text": "Edit this tiddler" }, "$:/language/Buttons/Encryption/Caption": { "title": "$:/language/Buttons/Encryption/Caption", "text": "encryption" }, "$:/language/Buttons/Encryption/Hint": { "title": "$:/language/Buttons/Encryption/Hint", "text": "Set or clear a password for saving this wiki" }, "$:/language/Buttons/Encryption/ClearPassword/Caption": { "title": "$:/language/Buttons/Encryption/ClearPassword/Caption", "text": "clear password" }, "$:/language/Buttons/Encryption/ClearPassword/Hint": { "title": "$:/language/Buttons/Encryption/ClearPassword/Hint", "text": "Clear the password and save this wiki without encryption" }, "$:/language/Buttons/Encryption/SetPassword/Caption": { "title": "$:/language/Buttons/Encryption/SetPassword/Caption", "text": "set password" }, "$:/language/Buttons/Encryption/SetPassword/Hint": { "title": "$:/language/Buttons/Encryption/SetPassword/Hint", "text": "Set a password for saving this wiki with encryption" }, "$:/language/Buttons/ExportPage/Caption": { "title": "$:/language/Buttons/ExportPage/Caption", "text": "export all" }, "$:/language/Buttons/ExportPage/Hint": { "title": "$:/language/Buttons/ExportPage/Hint", "text": "Export all tiddlers" }, "$:/language/Buttons/ExportTiddler/Caption": { "title": "$:/language/Buttons/ExportTiddler/Caption", "text": "export tiddler" }, "$:/language/Buttons/ExportTiddler/Hint": { "title": "$:/language/Buttons/ExportTiddler/Hint", "text": "Export tiddler" }, "$:/language/Buttons/ExportTiddlers/Caption": { "title": "$:/language/Buttons/ExportTiddlers/Caption", "text": "export tiddlers" }, "$:/language/Buttons/ExportTiddlers/Hint": { "title": "$:/language/Buttons/ExportTiddlers/Hint", "text": "Export tiddlers" }, "$:/language/Buttons/Fold/Caption": { "title": "$:/language/Buttons/Fold/Caption", "text": "fold tiddler" }, "$:/language/Buttons/Fold/Hint": { "title": "$:/language/Buttons/Fold/Hint", "text": "Fold the body of this tiddler" }, "$:/language/Buttons/Fold/FoldBar/Caption": { "title": "$:/language/Buttons/Fold/FoldBar/Caption", "text": "fold-bar" }, "$:/language/Buttons/Fold/FoldBar/Hint": { "title": "$:/language/Buttons/Fold/FoldBar/Hint", "text": "Optional bars to fold and unfold tiddlers" }, "$:/language/Buttons/Unfold/Caption": { "title": "$:/language/Buttons/Unfold/Caption", "text": "unfold tiddler" }, "$:/language/Buttons/Unfold/Hint": { "title": "$:/language/Buttons/Unfold/Hint", "text": "Unfold the body of this tiddler" }, "$:/language/Buttons/FoldOthers/Caption": { "title": "$:/language/Buttons/FoldOthers/Caption", "text": "fold other tiddlers" }, "$:/language/Buttons/FoldOthers/Hint": { "title": "$:/language/Buttons/FoldOthers/Hint", "text": "Fold the bodies of other opened tiddlers" }, "$:/language/Buttons/FoldAll/Caption": { "title": "$:/language/Buttons/FoldAll/Caption", "text": "fold all tiddlers" }, "$:/language/Buttons/FoldAll/Hint": { "title": "$:/language/Buttons/FoldAll/Hint", "text": "Fold the bodies of all opened tiddlers" }, "$:/language/Buttons/UnfoldAll/Caption": { "title": "$:/language/Buttons/UnfoldAll/Caption", "text": "unfold all tiddlers" }, "$:/language/Buttons/UnfoldAll/Hint": { "title": "$:/language/Buttons/UnfoldAll/Hint", "text": "Unfold the bodies of all opened tiddlers" }, "$:/language/Buttons/FullScreen/Caption": { "title": "$:/language/Buttons/FullScreen/Caption", "text": "full-screen" }, "$:/language/Buttons/FullScreen/Hint": { "title": "$:/language/Buttons/FullScreen/Hint", "text": "Enter or leave full-screen mode" }, "$:/language/Buttons/Help/Caption": { "title": "$:/language/Buttons/Help/Caption", "text": "help" }, "$:/language/Buttons/Help/Hint": { "title": "$:/language/Buttons/Help/Hint", "text": "Show help panel" }, "$:/language/Buttons/Import/Caption": { "title": "$:/language/Buttons/Import/Caption", "text": "import" }, "$:/language/Buttons/Import/Hint": { "title": "$:/language/Buttons/Import/Hint", "text": "Import many types of file including text, image, TiddlyWiki or JSON" }, "$:/language/Buttons/Info/Caption": { "title": "$:/language/Buttons/Info/Caption", "text": "info" }, "$:/language/Buttons/Info/Hint": { "title": "$:/language/Buttons/Info/Hint", "text": "Show information for this tiddler" }, "$:/language/Buttons/Home/Caption": { "title": "$:/language/Buttons/Home/Caption", "text": "home" }, "$:/language/Buttons/Home/Hint": { "title": "$:/language/Buttons/Home/Hint", "text": "Open the default tiddlers" }, "$:/language/Buttons/Language/Caption": { "title": "$:/language/Buttons/Language/Caption", "text": "language" }, "$:/language/Buttons/Language/Hint": { "title": "$:/language/Buttons/Language/Hint", "text": "Choose the user interface language" }, "$:/language/Buttons/Manager/Caption": { "title": "$:/language/Buttons/Manager/Caption", "text": "tiddler manager" }, "$:/language/Buttons/Manager/Hint": { "title": "$:/language/Buttons/Manager/Hint", "text": "Open tiddler manager" }, "$:/language/Buttons/More/Caption": { "title": "$:/language/Buttons/More/Caption", "text": "more" }, "$:/language/Buttons/More/Hint": { "title": "$:/language/Buttons/More/Hint", "text": "More actions" }, "$:/language/Buttons/NewHere/Caption": { "title": "$:/language/Buttons/NewHere/Caption", "text": "new here" }, "$:/language/Buttons/NewHere/Hint": { "title": "$:/language/Buttons/NewHere/Hint", "text": "Create a new tiddler tagged with this one" }, "$:/language/Buttons/NewJournal/Caption": { "title": "$:/language/Buttons/NewJournal/Caption", "text": "new journal" }, "$:/language/Buttons/NewJournal/Hint": { "title": "$:/language/Buttons/NewJournal/Hint", "text": "Create a new journal tiddler" }, "$:/language/Buttons/NewJournalHere/Caption": { "title": "$:/language/Buttons/NewJournalHere/Caption", "text": "new journal here" }, "$:/language/Buttons/NewJournalHere/Hint": { "title": "$:/language/Buttons/NewJournalHere/Hint", "text": "Create a new journal tiddler tagged with this one" }, "$:/language/Buttons/NewImage/Caption": { "title": "$:/language/Buttons/NewImage/Caption", "text": "new image" }, "$:/language/Buttons/NewImage/Hint": { "title": "$:/language/Buttons/NewImage/Hint", "text": "Create a new image tiddler" }, "$:/language/Buttons/NewMarkdown/Caption": { "title": "$:/language/Buttons/NewMarkdown/Caption", "text": "new Markdown tiddler" }, "$:/language/Buttons/NewMarkdown/Hint": { "title": "$:/language/Buttons/NewMarkdown/Hint", "text": "Create a new Markdown tiddler" }, "$:/language/Buttons/NewTiddler/Caption": { "title": "$:/language/Buttons/NewTiddler/Caption", "text": "new tiddler" }, "$:/language/Buttons/NewTiddler/Hint": { "title": "$:/language/Buttons/NewTiddler/Hint", "text": "Create a new tiddler" }, "$:/language/Buttons/OpenWindow/Caption": { "title": "$:/language/Buttons/OpenWindow/Caption", "text": "open in new window" }, "$:/language/Buttons/OpenWindow/Hint": { "title": "$:/language/Buttons/OpenWindow/Hint", "text": "Open tiddler in new window" }, "$:/language/Buttons/Palette/Caption": { "title": "$:/language/Buttons/Palette/Caption", "text": "palette" }, "$:/language/Buttons/Palette/Hint": { "title": "$:/language/Buttons/Palette/Hint", "text": "Choose the colour palette" }, "$:/language/Buttons/Permalink/Caption": { "title": "$:/language/Buttons/Permalink/Caption", "text": "permalink" }, "$:/language/Buttons/Permalink/Hint": { "title": "$:/language/Buttons/Permalink/Hint", "text": "Set browser address bar to a direct link to this tiddler" }, "$:/language/Buttons/Permaview/Caption": { "title": "$:/language/Buttons/Permaview/Caption", "text": "permaview" }, "$:/language/Buttons/Permaview/Hint": { "title": "$:/language/Buttons/Permaview/Hint", "text": "Set browser address bar to a direct link to all the tiddlers in this story" }, "$:/language/Buttons/Print/Caption": { "title": "$:/language/Buttons/Print/Caption", "text": "print page" }, "$:/language/Buttons/Print/Hint": { "title": "$:/language/Buttons/Print/Hint", "text": "Print the current page" }, "$:/language/Buttons/Refresh/Caption": { "title": "$:/language/Buttons/Refresh/Caption", "text": "refresh" }, "$:/language/Buttons/Refresh/Hint": { "title": "$:/language/Buttons/Refresh/Hint", "text": "Perform a full refresh of the wiki" }, "$:/language/Buttons/Save/Caption": { "title": "$:/language/Buttons/Save/Caption", "text": "ok" }, "$:/language/Buttons/Save/Hint": { "title": "$:/language/Buttons/Save/Hint", "text": "Confirm changes to this tiddler" }, "$:/language/Buttons/SaveWiki/Caption": { "title": "$:/language/Buttons/SaveWiki/Caption", "text": "save changes" }, "$:/language/Buttons/SaveWiki/Hint": { "title": "$:/language/Buttons/SaveWiki/Hint", "text": "Save changes" }, "$:/language/Buttons/StoryView/Caption": { "title": "$:/language/Buttons/StoryView/Caption", "text": "storyview" }, "$:/language/Buttons/StoryView/Hint": { "title": "$:/language/Buttons/StoryView/Hint", "text": "Choose the story visualisation" }, "$:/language/Buttons/HideSideBar/Caption": { "title": "$:/language/Buttons/HideSideBar/Caption", "text": "hide sidebar" }, "$:/language/Buttons/HideSideBar/Hint": { "title": "$:/language/Buttons/HideSideBar/Hint", "text": "Hide sidebar" }, "$:/language/Buttons/ShowSideBar/Caption": { "title": "$:/language/Buttons/ShowSideBar/Caption", "text": "show sidebar" }, "$:/language/Buttons/ShowSideBar/Hint": { "title": "$:/language/Buttons/ShowSideBar/Hint", "text": "Show sidebar" }, "$:/language/Buttons/TagManager/Caption": { "title": "$:/language/Buttons/TagManager/Caption", "text": "tag manager" }, "$:/language/Buttons/TagManager/Hint": { "title": "$:/language/Buttons/TagManager/Hint", "text": "Open tag manager" }, "$:/language/Buttons/Timestamp/Caption": { "title": "$:/language/Buttons/Timestamp/Caption", "text": "timestamps" }, "$:/language/Buttons/Timestamp/Hint": { "title": "$:/language/Buttons/Timestamp/Hint", "text": "Choose whether modifications update timestamps" }, "$:/language/Buttons/Timestamp/On/Caption": { "title": "$:/language/Buttons/Timestamp/On/Caption", "text": "timestamps are on" }, "$:/language/Buttons/Timestamp/On/Hint": { "title": "$:/language/Buttons/Timestamp/On/Hint", "text": "Update timestamps when tiddlers are modified" }, "$:/language/Buttons/Timestamp/Off/Caption": { "title": "$:/language/Buttons/Timestamp/Off/Caption", "text": "timestamps are off" }, "$:/language/Buttons/Timestamp/Off/Hint": { "title": "$:/language/Buttons/Timestamp/Off/Hint", "text": "Don't update timestamps when tiddlers are modified" }, "$:/language/Buttons/Theme/Caption": { "title": "$:/language/Buttons/Theme/Caption", "text": "theme" }, "$:/language/Buttons/Theme/Hint": { "title": "$:/language/Buttons/Theme/Hint", "text": "Choose the display theme" }, "$:/language/Buttons/Bold/Caption": { "title": "$:/language/Buttons/Bold/Caption", "text": "bold" }, "$:/language/Buttons/Bold/Hint": { "title": "$:/language/Buttons/Bold/Hint", "text": "Apply bold formatting to selection" }, "$:/language/Buttons/Clear/Caption": { "title": "$:/language/Buttons/Clear/Caption", "text": "clear" }, "$:/language/Buttons/Clear/Hint": { "title": "$:/language/Buttons/Clear/Hint", "text": "Clear image to solid colour" }, "$:/language/Buttons/EditorHeight/Caption": { "title": "$:/language/Buttons/EditorHeight/Caption", "text": "editor height" }, "$:/language/Buttons/EditorHeight/Caption/Auto": { "title": "$:/language/Buttons/EditorHeight/Caption/Auto", "text": "Automatically adjust height to fit content" }, "$:/language/Buttons/EditorHeight/Caption/Fixed": { "title": "$:/language/Buttons/EditorHeight/Caption/Fixed", "text": "Fixed height:" }, "$:/language/Buttons/EditorHeight/Hint": { "title": "$:/language/Buttons/EditorHeight/Hint", "text": "Choose the height of the text editor" }, "$:/language/Buttons/Excise/Caption": { "title": "$:/language/Buttons/Excise/Caption", "text": "excise" }, "$:/language/Buttons/Excise/Caption/Excise": { "title": "$:/language/Buttons/Excise/Caption/Excise", "text": "Perform excision" }, "$:/language/Buttons/Excise/Caption/MacroName": { "title": "$:/language/Buttons/Excise/Caption/MacroName", "text": "Macro name:" }, "$:/language/Buttons/Excise/Caption/NewTitle": { "title": "$:/language/Buttons/Excise/Caption/NewTitle", "text": "Title of new tiddler:" }, "$:/language/Buttons/Excise/Caption/Replace": { "title": "$:/language/Buttons/Excise/Caption/Replace", "text": "Replace excised text with:" }, "$:/language/Buttons/Excise/Caption/Replace/Macro": { "title": "$:/language/Buttons/Excise/Caption/Replace/Macro", "text": "macro" }, "$:/language/Buttons/Excise/Caption/Replace/Link": { "title": "$:/language/Buttons/Excise/Caption/Replace/Link", "text": "link" }, "$:/language/Buttons/Excise/Caption/Replace/Transclusion": { "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion", "text": "transclusion" }, "$:/language/Buttons/Excise/Caption/Tag": { "title": "$:/language/Buttons/Excise/Caption/Tag", "text": "Tag new tiddler with the title of this tiddler" }, "$:/language/Buttons/Excise/Caption/TiddlerExists": { "title": "$:/language/Buttons/Excise/Caption/TiddlerExists", "text": "Warning: tiddler already exists" }, "$:/language/Buttons/Excise/Hint": { "title": "$:/language/Buttons/Excise/Hint", "text": "Excise the selected text into a new tiddler" }, "$:/language/Buttons/Heading1/Caption": { "title": "$:/language/Buttons/Heading1/Caption", "text": "heading 1" }, "$:/language/Buttons/Heading1/Hint": { "title": "$:/language/Buttons/Heading1/Hint", "text": "Apply heading level 1 formatting to lines containing selection" }, "$:/language/Buttons/Heading2/Caption": { "title": "$:/language/Buttons/Heading2/Caption", "text": "heading 2" }, "$:/language/Buttons/Heading2/Hint": { "title": "$:/language/Buttons/Heading2/Hint", "text": "Apply heading level 2 formatting to lines containing selection" }, "$:/language/Buttons/Heading3/Caption": { "title": "$:/language/Buttons/Heading3/Caption", "text": "heading 3" }, "$:/language/Buttons/Heading3/Hint": { "title": "$:/language/Buttons/Heading3/Hint", "text": "Apply heading level 3 formatting to lines containing selection" }, "$:/language/Buttons/Heading4/Caption": { "title": "$:/language/Buttons/Heading4/Caption", "text": "heading 4" }, "$:/language/Buttons/Heading4/Hint": { "title": "$:/language/Buttons/Heading4/Hint", "text": "Apply heading level 4 formatting to lines containing selection" }, "$:/language/Buttons/Heading5/Caption": { "title": "$:/language/Buttons/Heading5/Caption", "text": "heading 5" }, "$:/language/Buttons/Heading5/Hint": { "title": "$:/language/Buttons/Heading5/Hint", "text": "Apply heading level 5 formatting to lines containing selection" }, "$:/language/Buttons/Heading6/Caption": { "title": "$:/language/Buttons/Heading6/Caption", "text": "heading 6" }, "$:/language/Buttons/Heading6/Hint": { "title": "$:/language/Buttons/Heading6/Hint", "text": "Apply heading level 6 formatting to lines containing selection" }, "$:/language/Buttons/Italic/Caption": { "title": "$:/language/Buttons/Italic/Caption", "text": "italic" }, "$:/language/Buttons/Italic/Hint": { "title": "$:/language/Buttons/Italic/Hint", "text": "Apply italic formatting to selection" }, "$:/language/Buttons/LineWidth/Caption": { "title": "$:/language/Buttons/LineWidth/Caption", "text": "line width" }, "$:/language/Buttons/LineWidth/Hint": { "title": "$:/language/Buttons/LineWidth/Hint", "text": "Set line width for painting" }, "$:/language/Buttons/Link/Caption": { "title": "$:/language/Buttons/Link/Caption", "text": "link" }, "$:/language/Buttons/Link/Hint": { "title": "$:/language/Buttons/Link/Hint", "text": "Create wikitext link" }, "$:/language/Buttons/Linkify/Caption": { "title": "$:/language/Buttons/Linkify/Caption", "text": "wikilink" }, "$:/language/Buttons/Linkify/Hint": { "title": "$:/language/Buttons/Linkify/Hint", "text": "Wrap selection in square brackets" }, "$:/language/Buttons/ListBullet/Caption": { "title": "$:/language/Buttons/ListBullet/Caption", "text": "bulleted list" }, "$:/language/Buttons/ListBullet/Hint": { "title": "$:/language/Buttons/ListBullet/Hint", "text": "Apply bulleted list formatting to lines containing selection" }, "$:/language/Buttons/ListNumber/Caption": { "title": "$:/language/Buttons/ListNumber/Caption", "text": "numbered list" }, "$:/language/Buttons/ListNumber/Hint": { "title": "$:/language/Buttons/ListNumber/Hint", "text": "Apply numbered list formatting to lines containing selection" }, "$:/language/Buttons/MonoBlock/Caption": { "title": "$:/language/Buttons/MonoBlock/Caption", "text": "monospaced block" }, "$:/language/Buttons/MonoBlock/Hint": { "title": "$:/language/Buttons/MonoBlock/Hint", "text": "Apply monospaced block formatting to lines containing selection" }, "$:/language/Buttons/MonoLine/Caption": { "title": "$:/language/Buttons/MonoLine/Caption", "text": "monospaced" }, "$:/language/Buttons/MonoLine/Hint": { "title": "$:/language/Buttons/MonoLine/Hint", "text": "Apply monospaced character formatting to selection" }, "$:/language/Buttons/Opacity/Caption": { "title": "$:/language/Buttons/Opacity/Caption", "text": "opacity" }, "$:/language/Buttons/Opacity/Hint": { "title": "$:/language/Buttons/Opacity/Hint", "text": "Set painting opacity" }, "$:/language/Buttons/Paint/Caption": { "title": "$:/language/Buttons/Paint/Caption", "text": "paint colour" }, "$:/language/Buttons/Paint/Hint": { "title": "$:/language/Buttons/Paint/Hint", "text": "Set painting colour" }, "$:/language/Buttons/Picture/Caption": { "title": "$:/language/Buttons/Picture/Caption", "text": "picture" }, "$:/language/Buttons/Picture/Hint": { "title": "$:/language/Buttons/Picture/Hint", "text": "Insert picture" }, "$:/language/Buttons/Preview/Caption": { "title": "$:/language/Buttons/Preview/Caption", "text": "preview" }, "$:/language/Buttons/Preview/Hint": { "title": "$:/language/Buttons/Preview/Hint", "text": "Show preview pane" }, "$:/language/Buttons/PreviewType/Caption": { "title": "$:/language/Buttons/PreviewType/Caption", "text": "preview type" }, "$:/language/Buttons/PreviewType/Hint": { "title": "$:/language/Buttons/PreviewType/Hint", "text": "Choose preview type" }, "$:/language/Buttons/Quote/Caption": { "title": "$:/language/Buttons/Quote/Caption", "text": "quote" }, "$:/language/Buttons/Quote/Hint": { "title": "$:/language/Buttons/Quote/Hint", "text": "Apply quoted text formatting to lines containing selection" }, "$:/language/Buttons/RotateLeft/Caption": { "title": "$:/language/Buttons/RotateLeft/Caption", "text": "rotate left" }, "$:/language/Buttons/RotateLeft/Hint": { "title": "$:/language/Buttons/RotateLeft/Hint", "text": "Rotate image left by 90 degrees" }, "$:/language/Buttons/Size/Caption": { "title": "$:/language/Buttons/Size/Caption", "text": "image size" }, "$:/language/Buttons/Size/Caption/Height": { "title": "$:/language/Buttons/Size/Caption/Height", "text": "Height:" }, "$:/language/Buttons/Size/Caption/Resize": { "title": "$:/language/Buttons/Size/Caption/Resize", "text": "Resize image" }, "$:/language/Buttons/Size/Caption/Width": { "title": "$:/language/Buttons/Size/Caption/Width", "text": "Width:" }, "$:/language/Buttons/Size/Hint": { "title": "$:/language/Buttons/Size/Hint", "text": "Set image size" }, "$:/language/Buttons/Stamp/Caption": { "title": "$:/language/Buttons/Stamp/Caption", "text": "stamp" }, "$:/language/Buttons/Stamp/Caption/New": { "title": "$:/language/Buttons/Stamp/Caption/New", "text": "Add your own" }, "$:/language/Buttons/Stamp/Hint": { "title": "$:/language/Buttons/Stamp/Hint", "text": "Insert a preconfigured snippet of text" }, "$:/language/Buttons/Stamp/New/Title": { "title": "$:/language/Buttons/Stamp/New/Title", "text": "Name as shown in menu" }, "$:/language/Buttons/Stamp/New/Text": { "title": "$:/language/Buttons/Stamp/New/Text", "text": "Text of snippet. (Remember to add a descriptive title in the caption field)." }, "$:/language/Buttons/Strikethrough/Caption": { "title": "$:/language/Buttons/Strikethrough/Caption", "text": "strikethrough" }, "$:/language/Buttons/Strikethrough/Hint": { "title": "$:/language/Buttons/Strikethrough/Hint", "text": "Apply strikethrough formatting to selection" }, "$:/language/Buttons/Subscript/Caption": { "title": "$:/language/Buttons/Subscript/Caption", "text": "subscript" }, "$:/language/Buttons/Subscript/Hint": { "title": "$:/language/Buttons/Subscript/Hint", "text": "Apply subscript formatting to selection" }, "$:/language/Buttons/Superscript/Caption": { "title": "$:/language/Buttons/Superscript/Caption", "text": "superscript" }, "$:/language/Buttons/Superscript/Hint": { "title": "$:/language/Buttons/Superscript/Hint", "text": "Apply superscript formatting to selection" }, "$:/language/Buttons/Transcludify/Caption": { "title": "$:/language/Buttons/Transcludify/Caption", "text": "transclusion" }, "$:/language/Buttons/Transcludify/Hint": { "title": "$:/language/Buttons/Transcludify/Hint", "text": "Wrap selection in curly brackets" }, "$:/language/Buttons/Underline/Caption": { "title": "$:/language/Buttons/Underline/Caption", "text": "underline" }, "$:/language/Buttons/Underline/Hint": { "title": "$:/language/Buttons/Underline/Hint", "text": "Apply underline formatting to selection" }, "$:/language/ControlPanel/Advanced/Caption": { "title": "$:/language/ControlPanel/Advanced/Caption", "text": "Advanced" }, "$:/language/ControlPanel/Advanced/Hint": { "title": "$:/language/ControlPanel/Advanced/Hint", "text": "Internal information about this TiddlyWiki" }, "$:/language/ControlPanel/Appearance/Caption": { "title": "$:/language/ControlPanel/Appearance/Caption", "text": "Appearance" }, "$:/language/ControlPanel/Appearance/Hint": { "title": "$:/language/ControlPanel/Appearance/Hint", "text": "Ways to customise the appearance of your TiddlyWiki." }, "$:/language/ControlPanel/Basics/AnimDuration/Prompt": { "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt", "text": "Animation duration:" }, "$:/language/ControlPanel/Basics/Caption": { "title": "$:/language/ControlPanel/Basics/Caption", "text": "Basics" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint", "text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt", "text": "Default tiddlers:" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint", "text": "Choose which tiddlers are displayed at startup:" }, "$:/language/ControlPanel/Basics/Language/Prompt": { "title": "$:/language/ControlPanel/Basics/Language/Prompt", "text": "Hello! Current language:" }, "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt", "text": "Title of new journal tiddlers" }, "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt", "text": "Text for new journal tiddlers" }, "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt", "text": "Tags for new journal tiddlers" }, "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt", "text": "Title of new tiddlers" }, "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt", "text": "Number of overridden shadow tiddlers:" }, "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt", "text": "Number of shadow tiddlers:" }, "$:/language/ControlPanel/Basics/Subtitle/Prompt": { "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt", "text": "Subtitle:" }, "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt", "text": "Number of system tiddlers:" }, "$:/language/ControlPanel/Basics/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/Tags/Prompt", "text": "Number of tags:" }, "$:/language/ControlPanel/Basics/Tiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt", "text": "Number of tiddlers:" }, "$:/language/ControlPanel/Basics/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/Title/Prompt", "text": "Title of this ~TiddlyWiki:" }, "$:/language/ControlPanel/Basics/Username/Prompt": { "title": "$:/language/ControlPanel/Basics/Username/Prompt", "text": "Username for signing edits:" }, "$:/language/ControlPanel/Basics/Version/Prompt": { "title": "$:/language/ControlPanel/Basics/Version/Prompt", "text": "~TiddlyWiki version:" }, "$:/language/ControlPanel/EditorTypes/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Caption", "text": "Editor Types" }, "$:/language/ControlPanel/EditorTypes/Editor/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption", "text": "Editor" }, "$:/language/ControlPanel/EditorTypes/Hint": { "title": "$:/language/ControlPanel/EditorTypes/Hint", "text": "These tiddlers determine which editor is used to edit specific tiddler types." }, "$:/language/ControlPanel/EditorTypes/Type/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Type/Caption", "text": "Type" }, "$:/language/ControlPanel/Info/Caption": { "title": "$:/language/ControlPanel/Info/Caption", "text": "Info" }, "$:/language/ControlPanel/Info/Hint": { "title": "$:/language/ControlPanel/Info/Hint", "text": "Information about this TiddlyWiki" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt", "text": "Type shortcut here" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption", "text": "add shortcut" }, "$:/language/ControlPanel/KeyboardShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption", "text": "Keyboard Shortcuts" }, "$:/language/ControlPanel/KeyboardShortcuts/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint", "text": "Manage keyboard shortcut assignments" }, "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption", "text": "No keyboard shortcuts assigned" }, "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint", "text": "remove keyboard shortcut" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All", "text": "All platforms" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac", "text": "Macintosh platform only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac", "text": "Non-Macintosh platforms only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux", "text": "Linux platform only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux", "text": "Non-Linux platforms only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows", "text": "Windows platform only" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows", "text": "Non-Windows platforms only" }, "$:/language/ControlPanel/LoadedModules/Caption": { "title": "$:/language/ControlPanel/LoadedModules/Caption", "text": "Loaded Modules" }, "$:/language/ControlPanel/LoadedModules/Hint": { "title": "$:/language/ControlPanel/LoadedModules/Hint", "text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process." }, "$:/language/ControlPanel/Palette/Caption": { "title": "$:/language/ControlPanel/Palette/Caption", "text": "Palette" }, "$:/language/ControlPanel/Palette/Editor/Clone/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption", "text": "clone" }, "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt", "text": "It is recommended that you clone this shadow palette before editing it" }, "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified", "text": "This shadow palette has been modified" }, "$:/language/ControlPanel/Palette/Editor/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt", "text": "Editing" }, "$:/language/ControlPanel/Palette/Editor/Reset/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption", "text": "reset" }, "$:/language/ControlPanel/Palette/HideEditor/Caption": { "title": "$:/language/ControlPanel/Palette/HideEditor/Caption", "text": "hide editor" }, "$:/language/ControlPanel/Palette/Prompt": { "title": "$:/language/ControlPanel/Palette/Prompt", "text": "Current palette:" }, "$:/language/ControlPanel/Palette/ShowEditor/Caption": { "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption", "text": "show editor" }, "$:/language/ControlPanel/Parsing/Caption": { "title": "$:/language/ControlPanel/Parsing/Caption", "text": "Parsing" }, "$:/language/ControlPanel/Parsing/Hint": { "title": "$:/language/ControlPanel/Parsing/Hint", "text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation." }, "$:/language/ControlPanel/Parsing/Block/Caption": { "title": "$:/language/ControlPanel/Parsing/Block/Caption", "text": "Block Parse Rules" }, "$:/language/ControlPanel/Parsing/Inline/Caption": { "title": "$:/language/ControlPanel/Parsing/Inline/Caption", "text": "Inline Parse Rules" }, "$:/language/ControlPanel/Parsing/Pragma/Caption": { "title": "$:/language/ControlPanel/Parsing/Pragma/Caption", "text": "Pragma Parse Rules" }, "$:/language/ControlPanel/Plugins/Add/Caption": { "title": "$:/language/ControlPanel/Plugins/Add/Caption", "text": "Get more plugins" }, "$:/language/ControlPanel/Plugins/Add/Hint": { "title": "$:/language/ControlPanel/Plugins/Add/Hint", "text": "Install plugins from the official library" }, "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint", "text": "This plugin is already installed at version <$text text=<<installedVersion>>/>" }, "$:/language/ControlPanel/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Disable/Caption": { "title": "$:/language/ControlPanel/Plugins/Disable/Caption", "text": "disable" }, "$:/language/ControlPanel/Plugins/Disable/Hint": { "title": "$:/language/ControlPanel/Plugins/Disable/Hint", "text": "Disable this plugin when reloading page" }, "$:/language/ControlPanel/Plugins/Disabled/Status": { "title": "$:/language/ControlPanel/Plugins/Disabled/Status", "text": "(disabled)" }, "$:/language/ControlPanel/Plugins/Empty/Hint": { "title": "$:/language/ControlPanel/Plugins/Empty/Hint", "text": "None" }, "$:/language/ControlPanel/Plugins/Enable/Caption": { "title": "$:/language/ControlPanel/Plugins/Enable/Caption", "text": "enable" }, "$:/language/ControlPanel/Plugins/Enable/Hint": { "title": "$:/language/ControlPanel/Plugins/Enable/Hint", "text": "Enable this plugin when reloading page" }, "$:/language/ControlPanel/Plugins/Install/Caption": { "title": "$:/language/ControlPanel/Plugins/Install/Caption", "text": "install" }, "$:/language/ControlPanel/Plugins/Installed/Hint": { "title": "$:/language/ControlPanel/Plugins/Installed/Hint", "text": "Currently installed plugins:" }, "$:/language/ControlPanel/Plugins/Languages/Caption": { "title": "$:/language/ControlPanel/Plugins/Languages/Caption", "text": "Languages" }, "$:/language/ControlPanel/Plugins/Languages/Hint": { "title": "$:/language/ControlPanel/Plugins/Languages/Hint", "text": "Language pack plugins" }, "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": { "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint", "text": "No ''\"<$text text=<<currentTab>>/>\"'' found" }, "$:/language/ControlPanel/Plugins/NotInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint", "text": "This plugin is not currently installed" }, "$:/language/ControlPanel/Plugins/OpenPluginLibrary": { "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary", "text": "open plugin library" }, "$:/language/ControlPanel/Plugins/ClosePluginLibrary": { "title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary", "text": "close plugin library" }, "$:/language/ControlPanel/Plugins/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Plugins/Hint": { "title": "$:/language/ControlPanel/Plugins/Plugins/Hint", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Reinstall/Caption": { "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption", "text": "reinstall" }, "$:/language/ControlPanel/Plugins/Themes/Caption": { "title": "$:/language/ControlPanel/Plugins/Themes/Caption", "text": "Themes" }, "$:/language/ControlPanel/Plugins/Themes/Hint": { "title": "$:/language/ControlPanel/Plugins/Themes/Hint", "text": "Theme plugins" }, "$:/language/ControlPanel/Saving/Caption": { "title": "$:/language/ControlPanel/Saving/Caption", "text": "Saving" }, "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description", "text": "Permit automatic saving for the download saver" }, "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint", "text": "Enable Autosave for Download Saver" }, "$:/language/ControlPanel/Saving/DownloadSaver/Caption": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption", "text": "Download Saver" }, "$:/language/ControlPanel/Saving/DownloadSaver/Hint": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint", "text": "These settings apply to the HTML5-compatible download saver" }, "$:/language/ControlPanel/Saving/General/Caption": { "title": "$:/language/ControlPanel/Saving/General/Caption", "text": "General" }, "$:/language/ControlPanel/Saving/General/Hint": { "title": "$:/language/ControlPanel/Saving/General/Hint", "text": "These settings apply to all the loaded savers" }, "$:/language/ControlPanel/Saving/Hint": { "title": "$:/language/ControlPanel/Saving/Hint", "text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module" }, "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading", "text": "Advanced Settings" }, "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir", "text": "Backup Directory" }, "$:/language/ControlPanel/Saving/TiddlySpot/Backups": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups", "text": "Backups" }, "$:/language/ControlPanel/Saving/TiddlySpot/Caption": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption", "text": "~TiddlySpot Saver" }, "$:/language/ControlPanel/Saving/TiddlySpot/Description": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description", "text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server" }, "$:/language/ControlPanel/Saving/TiddlySpot/Filename": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename", "text": "Upload Filename" }, "$:/language/ControlPanel/Saving/TiddlySpot/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading", "text": "~TiddlySpot" }, "$:/language/ControlPanel/Saving/TiddlySpot/Hint": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint", "text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//" }, "$:/language/ControlPanel/Saving/TiddlySpot/Password": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password", "text": "Password" }, "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL", "text": "Server URL" }, "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir", "text": "Upload Directory" }, "$:/language/ControlPanel/Saving/TiddlySpot/UserName": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName", "text": "Wiki Name" }, "$:/language/ControlPanel/Settings/AutoSave/Caption": { "title": "$:/language/ControlPanel/Settings/AutoSave/Caption", "text": "Autosave" }, "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description", "text": "Do not save changes automatically" }, "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description", "text": "Save changes automatically" }, "$:/language/ControlPanel/Settings/AutoSave/Hint": { "title": "$:/language/ControlPanel/Settings/AutoSave/Hint", "text": "Attempt to automatically save changes during editing when using a supporting saver" }, "$:/language/ControlPanel/Settings/CamelCase/Caption": { "title": "$:/language/ControlPanel/Settings/CamelCase/Caption", "text": "Camel Case Wiki Links" }, "$:/language/ControlPanel/Settings/CamelCase/Hint": { "title": "$:/language/ControlPanel/Settings/CamelCase/Hint", "text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect" }, "$:/language/ControlPanel/Settings/CamelCase/Description": { "title": "$:/language/ControlPanel/Settings/CamelCase/Description", "text": "Enable automatic ~CamelCase linking" }, "$:/language/ControlPanel/Settings/Caption": { "title": "$:/language/ControlPanel/Settings/Caption", "text": "Settings" }, "$:/language/ControlPanel/Settings/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption", "text": "Editor Toolbar" }, "$:/language/ControlPanel/Settings/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint", "text": "Enable or disable the editor toolbar:" }, "$:/language/ControlPanel/Settings/EditorToolbar/Description": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description", "text": "Show editor toolbar" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption", "text": "Tiddler Info Panel Mode" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint", "text": "Control when the tiddler info panel closes:" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description", "text": "Tiddler info panel closes automatically" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description", "text": "Tiddler info panel stays open until explicitly closed" }, "$:/language/ControlPanel/Settings/Hint": { "title": "$:/language/ControlPanel/Settings/Hint", "text": "These settings let you customise the behaviour of TiddlyWiki." }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption", "text": "Navigation Address Bar" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint", "text": "Behaviour of the browser address bar when navigating to a tiddler:" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description", "text": "Do not update the address bar" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description", "text": "Include the target tiddler" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description", "text": "Include the target tiddler and the current story sequence" }, "$:/language/ControlPanel/Settings/NavigationHistory/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption", "text": "Navigation History" }, "$:/language/ControlPanel/Settings/NavigationHistory/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint", "text": "Update browser history when navigating to a tiddler:" }, "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description", "text": "Do not update history" }, "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description", "text": "Update history" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption", "text": "Permalink/permaview Mode" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint", "text": "Choose how permalink/permaview is handled:" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description", "text": "Copy permalink/permaview URL to clipboard" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description", "text": "Update address bar with permalink/permaview URL" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption", "text": "Performance Instrumentation" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint", "text": "Displays performance statistics in the browser developer console. Requires reload to take effect" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description", "text": "Enable performance instrumentation" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption", "text": "Toolbar Button Style" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint", "text": "Choose the style for toolbar buttons:" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless", "text": "Borderless" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed", "text": "Boxed" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded", "text": "Rounded" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption", "text": "Toolbar Buttons" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint", "text": "Default toolbar button appearance:" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description", "text": "Include icon" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description", "text": "Include text" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption", "text": "Default Sidebar Tab" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint", "text": "Specify which sidebar tab is displayed by default" }, "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": { "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption", "text": "Default More Sidebar Tab" }, "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": { "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint", "text": "Specify which More sidebar tab is displayed by default" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption", "text": "Tiddler Opening Behaviour" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint", "text": "Navigation from //within// the story river" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint", "text": "Navigation from //outside// the story river" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove", "text": "Open above the current tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow", "text": "Open below the current tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop", "text": "Open at the top of the story river" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom", "text": "Open at the bottom of the story river" }, "$:/language/ControlPanel/Settings/TitleLinks/Caption": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption", "text": "Tiddler Titles" }, "$:/language/ControlPanel/Settings/TitleLinks/Hint": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint", "text": "Optionally display tiddler titles as links" }, "$:/language/ControlPanel/Settings/TitleLinks/No/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description", "text": "Do not display tiddler titles as links" }, "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description", "text": "Display tiddler titles as links" }, "$:/language/ControlPanel/Settings/MissingLinks/Caption": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption", "text": "Wiki Links" }, "$:/language/ControlPanel/Settings/MissingLinks/Hint": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint", "text": "Choose whether to link to tiddlers that do not exist yet" }, "$:/language/ControlPanel/Settings/MissingLinks/Description": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Description", "text": "Enable links to missing tiddlers" }, "$:/language/ControlPanel/StoryView/Caption": { "title": "$:/language/ControlPanel/StoryView/Caption", "text": "Story View" }, "$:/language/ControlPanel/StoryView/Prompt": { "title": "$:/language/ControlPanel/StoryView/Prompt", "text": "Current view:" }, "$:/language/ControlPanel/Stylesheets/Caption": { "title": "$:/language/ControlPanel/Stylesheets/Caption", "text": "Stylesheets" }, "$:/language/ControlPanel/Stylesheets/Expand/Caption": { "title": "$:/language/ControlPanel/Stylesheets/Expand/Caption", "text": "Expand All" }, "$:/language/ControlPanel/Stylesheets/Hint": { "title": "$:/language/ControlPanel/Stylesheets/Hint", "text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>" }, "$:/language/ControlPanel/Stylesheets/Restore/Caption": { "title": "$:/language/ControlPanel/Stylesheets/Restore/Caption", "text": "Restore" }, "$:/language/ControlPanel/Theme/Caption": { "title": "$:/language/ControlPanel/Theme/Caption", "text": "Theme" }, "$:/language/ControlPanel/Theme/Prompt": { "title": "$:/language/ControlPanel/Theme/Prompt", "text": "Current theme:" }, "$:/language/ControlPanel/TiddlerFields/Caption": { "title": "$:/language/ControlPanel/TiddlerFields/Caption", "text": "Tiddler Fields" }, "$:/language/ControlPanel/TiddlerFields/Hint": { "title": "$:/language/ControlPanel/TiddlerFields/Hint", "text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)." }, "$:/language/ControlPanel/Toolbars/Caption": { "title": "$:/language/ControlPanel/Toolbars/Caption", "text": "Toolbars" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption", "text": "Edit Toolbar" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint", "text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering" }, "$:/language/ControlPanel/Toolbars/Hint": { "title": "$:/language/ControlPanel/Toolbars/Hint", "text": "Select which toolbar buttons are displayed" }, "$:/language/ControlPanel/Toolbars/PageControls/Caption": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption", "text": "Page Toolbar" }, "$:/language/ControlPanel/Toolbars/PageControls/Hint": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint", "text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption", "text": "Editor Toolbar" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint", "text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption", "text": "View Toolbar" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint", "text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering" }, "$:/language/ControlPanel/Tools/Download/Full/Caption": { "title": "$:/language/ControlPanel/Tools/Download/Full/Caption", "text": "Download full wiki" }, "$:/language/Date/DaySuffix/1": { "title": "$:/language/Date/DaySuffix/1", "text": "st" }, "$:/language/Date/DaySuffix/2": { "title": "$:/language/Date/DaySuffix/2", "text": "nd" }, "$:/language/Date/DaySuffix/3": { "title": "$:/language/Date/DaySuffix/3", "text": "rd" }, "$:/language/Date/DaySuffix/4": { "title": "$:/language/Date/DaySuffix/4", "text": "th" }, "$:/language/Date/DaySuffix/5": { "title": "$:/language/Date/DaySuffix/5", "text": "th" }, "$:/language/Date/DaySuffix/6": { "title": "$:/language/Date/DaySuffix/6", "text": "th" }, "$:/language/Date/DaySuffix/7": { "title": "$:/language/Date/DaySuffix/7", "text": "th" }, "$:/language/Date/DaySuffix/8": { "title": "$:/language/Date/DaySuffix/8", "text": "th" }, "$:/language/Date/DaySuffix/9": { "title": "$:/language/Date/DaySuffix/9", "text": "th" }, "$:/language/Date/DaySuffix/10": { "title": "$:/language/Date/DaySuffix/10", "text": "th" }, "$:/language/Date/DaySuffix/11": { "title": "$:/language/Date/DaySuffix/11", "text": "th" }, "$:/language/Date/DaySuffix/12": { "title": "$:/language/Date/DaySuffix/12", "text": "th" }, "$:/language/Date/DaySuffix/13": { "title": "$:/language/Date/DaySuffix/13", "text": "th" }, "$:/language/Date/DaySuffix/14": { "title": "$:/language/Date/DaySuffix/14", "text": "th" }, "$:/language/Date/DaySuffix/15": { "title": "$:/language/Date/DaySuffix/15", "text": "th" }, "$:/language/Date/DaySuffix/16": { "title": "$:/language/Date/DaySuffix/16", "text": "th" }, "$:/language/Date/DaySuffix/17": { "title": "$:/language/Date/DaySuffix/17", "text": "th" }, "$:/language/Date/DaySuffix/18": { "title": "$:/language/Date/DaySuffix/18", "text": "th" }, "$:/language/Date/DaySuffix/19": { "title": "$:/language/Date/DaySuffix/19", "text": "th" }, "$:/language/Date/DaySuffix/20": { "title": "$:/language/Date/DaySuffix/20", "text": "th" }, "$:/language/Date/DaySuffix/21": { "title": "$:/language/Date/DaySuffix/21", "text": "st" }, "$:/language/Date/DaySuffix/22": { "title": "$:/language/Date/DaySuffix/22", "text": "nd" }, "$:/language/Date/DaySuffix/23": { "title": "$:/language/Date/DaySuffix/23", "text": "rd" }, "$:/language/Date/DaySuffix/24": { "title": "$:/language/Date/DaySuffix/24", "text": "th" }, "$:/language/Date/DaySuffix/25": { "title": "$:/language/Date/DaySuffix/25", "text": "th" }, "$:/language/Date/DaySuffix/26": { "title": "$:/language/Date/DaySuffix/26", "text": "th" }, "$:/language/Date/DaySuffix/27": { "title": "$:/language/Date/DaySuffix/27", "text": "th" }, "$:/language/Date/DaySuffix/28": { "title": "$:/language/Date/DaySuffix/28", "text": "th" }, "$:/language/Date/DaySuffix/29": { "title": "$:/language/Date/DaySuffix/29", "text": "th" }, "$:/language/Date/DaySuffix/30": { "title": "$:/language/Date/DaySuffix/30", "text": "th" }, "$:/language/Date/DaySuffix/31": { "title": "$:/language/Date/DaySuffix/31", "text": "st" }, "$:/language/Date/Long/Day/0": { "title": "$:/language/Date/Long/Day/0", "text": "Sunday" }, "$:/language/Date/Long/Day/1": { "title": "$:/language/Date/Long/Day/1", "text": "Monday" }, "$:/language/Date/Long/Day/2": { "title": "$:/language/Date/Long/Day/2", "text": "Tuesday" }, "$:/language/Date/Long/Day/3": { "title": "$:/language/Date/Long/Day/3", "text": "Wednesday" }, "$:/language/Date/Long/Day/4": { "title": "$:/language/Date/Long/Day/4", "text": "Thursday" }, "$:/language/Date/Long/Day/5": { "title": "$:/language/Date/Long/Day/5", "text": "Friday" }, "$:/language/Date/Long/Day/6": { "title": "$:/language/Date/Long/Day/6", "text": "Saturday" }, "$:/language/Date/Long/Month/1": { "title": "$:/language/Date/Long/Month/1", "text": "January" }, "$:/language/Date/Long/Month/2": { "title": "$:/language/Date/Long/Month/2", "text": "February" }, "$:/language/Date/Long/Month/3": { "title": "$:/language/Date/Long/Month/3", "text": "March" }, "$:/language/Date/Long/Month/4": { "title": "$:/language/Date/Long/Month/4", "text": "April" }, "$:/language/Date/Long/Month/5": { "title": "$:/language/Date/Long/Month/5", "text": "May" }, "$:/language/Date/Long/Month/6": { "title": "$:/language/Date/Long/Month/6", "text": "June" }, "$:/language/Date/Long/Month/7": { "title": "$:/language/Date/Long/Month/7", "text": "July" }, "$:/language/Date/Long/Month/8": { "title": "$:/language/Date/Long/Month/8", "text": "August" }, "$:/language/Date/Long/Month/9": { "title": "$:/language/Date/Long/Month/9", "text": "September" }, "$:/language/Date/Long/Month/10": { "title": "$:/language/Date/Long/Month/10", "text": "October" }, "$:/language/Date/Long/Month/11": { "title": "$:/language/Date/Long/Month/11", "text": "November" }, "$:/language/Date/Long/Month/12": { "title": "$:/language/Date/Long/Month/12", "text": "December" }, "$:/language/Date/Period/am": { "title": "$:/language/Date/Period/am", "text": "am" }, "$:/language/Date/Period/pm": { "title": "$:/language/Date/Period/pm", "text": "pm" }, "$:/language/Date/Short/Day/0": { "title": "$:/language/Date/Short/Day/0", "text": "Sun" }, "$:/language/Date/Short/Day/1": { "title": "$:/language/Date/Short/Day/1", "text": "Mon" }, "$:/language/Date/Short/Day/2": { "title": "$:/language/Date/Short/Day/2", "text": "Tue" }, "$:/language/Date/Short/Day/3": { "title": "$:/language/Date/Short/Day/3", "text": "Wed" }, "$:/language/Date/Short/Day/4": { "title": "$:/language/Date/Short/Day/4", "text": "Thu" }, "$:/language/Date/Short/Day/5": { "title": "$:/language/Date/Short/Day/5", "text": "Fri" }, "$:/language/Date/Short/Day/6": { "title": "$:/language/Date/Short/Day/6", "text": "Sat" }, "$:/language/Date/Short/Month/1": { "title": "$:/language/Date/Short/Month/1", "text": "Jan" }, "$:/language/Date/Short/Month/2": { "title": "$:/language/Date/Short/Month/2", "text": "Feb" }, "$:/language/Date/Short/Month/3": { "title": "$:/language/Date/Short/Month/3", "text": "Mar" }, "$:/language/Date/Short/Month/4": { "title": "$:/language/Date/Short/Month/4", "text": "Apr" }, "$:/language/Date/Short/Month/5": { "title": "$:/language/Date/Short/Month/5", "text": "May" }, "$:/language/Date/Short/Month/6": { "title": "$:/language/Date/Short/Month/6", "text": "Jun" }, "$:/language/Date/Short/Month/7": { "title": "$:/language/Date/Short/Month/7", "text": "Jul" }, "$:/language/Date/Short/Month/8": { "title": "$:/language/Date/Short/Month/8", "text": "Aug" }, "$:/language/Date/Short/Month/9": { "title": "$:/language/Date/Short/Month/9", "text": "Sep" }, "$:/language/Date/Short/Month/10": { "title": "$:/language/Date/Short/Month/10", "text": "Oct" }, "$:/language/Date/Short/Month/11": { "title": "$:/language/Date/Short/Month/11", "text": "Nov" }, "$:/language/Date/Short/Month/12": { "title": "$:/language/Date/Short/Month/12", "text": "Dec" }, "$:/language/RelativeDate/Future/Days": { "title": "$:/language/RelativeDate/Future/Days", "text": "<<period>> days from now" }, "$:/language/RelativeDate/Future/Hours": { "title": "$:/language/RelativeDate/Future/Hours", "text": "<<period>> hours from now" }, "$:/language/RelativeDate/Future/Minutes": { "title": "$:/language/RelativeDate/Future/Minutes", "text": "<<period>> minutes from now" }, "$:/language/RelativeDate/Future/Months": { "title": "$:/language/RelativeDate/Future/Months", "text": "<<period>> months from now" }, "$:/language/RelativeDate/Future/Second": { "title": "$:/language/RelativeDate/Future/Second", "text": "1 second from now" }, "$:/language/RelativeDate/Future/Seconds": { "title": "$:/language/RelativeDate/Future/Seconds", "text": "<<period>> seconds from now" }, "$:/language/RelativeDate/Future/Years": { "title": "$:/language/RelativeDate/Future/Years", "text": "<<period>> years from now" }, "$:/language/RelativeDate/Past/Days": { "title": "$:/language/RelativeDate/Past/Days", "text": "<<period>> days ago" }, "$:/language/RelativeDate/Past/Hours": { "title": "$:/language/RelativeDate/Past/Hours", "text": "<<period>> hours ago" }, "$:/language/RelativeDate/Past/Minutes": { "title": "$:/language/RelativeDate/Past/Minutes", "text": "<<period>> minutes ago" }, "$:/language/RelativeDate/Past/Months": { "title": "$:/language/RelativeDate/Past/Months", "text": "<<period>> months ago" }, "$:/language/RelativeDate/Past/Second": { "title": "$:/language/RelativeDate/Past/Second", "text": "1 second ago" }, "$:/language/RelativeDate/Past/Seconds": { "title": "$:/language/RelativeDate/Past/Seconds", "text": "<<period>> seconds ago" }, "$:/language/RelativeDate/Past/Years": { "title": "$:/language/RelativeDate/Past/Years", "text": "<<period>> years ago" }, "$:/language/Docs/ModuleTypes/allfilteroperator": { "title": "$:/language/Docs/ModuleTypes/allfilteroperator", "text": "A sub-operator for the ''all'' filter operator." }, "$:/language/Docs/ModuleTypes/animation": { "title": "$:/language/Docs/ModuleTypes/animation", "text": "Animations that may be used with the RevealWidget." }, "$:/language/Docs/ModuleTypes/authenticator": { "title": "$:/language/Docs/ModuleTypes/authenticator", "text": "Defines how requests are authenticated by the built-in HTTP server." }, "$:/language/Docs/ModuleTypes/bitmapeditoroperation": { "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation", "text": "A bitmap editor toolbar operation." }, "$:/language/Docs/ModuleTypes/command": { "title": "$:/language/Docs/ModuleTypes/command", "text": "Commands that can be executed under Node.js." }, "$:/language/Docs/ModuleTypes/config": { "title": "$:/language/Docs/ModuleTypes/config", "text": "Data to be inserted into `$tw.config`." }, "$:/language/Docs/ModuleTypes/filteroperator": { "title": "$:/language/Docs/ModuleTypes/filteroperator", "text": "Individual filter operator methods." }, "$:/language/Docs/ModuleTypes/global": { "title": "$:/language/Docs/ModuleTypes/global", "text": "Global data to be inserted into `$tw`." }, "$:/language/Docs/ModuleTypes/info": { "title": "$:/language/Docs/ModuleTypes/info", "text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin." }, "$:/language/Docs/ModuleTypes/isfilteroperator": { "title": "$:/language/Docs/ModuleTypes/isfilteroperator", "text": "Operands for the ''is'' filter operator." }, "$:/language/Docs/ModuleTypes/library": { "title": "$:/language/Docs/ModuleTypes/library", "text": "Generic module type for general purpose JavaScript modules." }, "$:/language/Docs/ModuleTypes/macro": { "title": "$:/language/Docs/ModuleTypes/macro", "text": "JavaScript macro definitions." }, "$:/language/Docs/ModuleTypes/parser": { "title": "$:/language/Docs/ModuleTypes/parser", "text": "Parsers for different content types." }, "$:/language/Docs/ModuleTypes/route": { "title": "$:/language/Docs/ModuleTypes/route", "text": "Defines how individual URL patterns are handled by the built-in HTTP server." }, "$:/language/Docs/ModuleTypes/saver": { "title": "$:/language/Docs/ModuleTypes/saver", "text": "Savers handle different methods for saving files from the browser." }, "$:/language/Docs/ModuleTypes/startup": { "title": "$:/language/Docs/ModuleTypes/startup", "text": "Startup functions." }, "$:/language/Docs/ModuleTypes/storyview": { "title": "$:/language/Docs/ModuleTypes/storyview", "text": "Story views customise the animation and behaviour of list widgets." }, "$:/language/Docs/ModuleTypes/texteditoroperation": { "title": "$:/language/Docs/ModuleTypes/texteditoroperation", "text": "A text editor toolbar operation." }, "$:/language/Docs/ModuleTypes/tiddlerdeserializer": { "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer", "text": "Converts different content types into tiddlers." }, "$:/language/Docs/ModuleTypes/tiddlerfield": { "title": "$:/language/Docs/ModuleTypes/tiddlerfield", "text": "Defines the behaviour of an individual tiddler field." }, "$:/language/Docs/ModuleTypes/tiddlermethod": { "title": "$:/language/Docs/ModuleTypes/tiddlermethod", "text": "Adds methods to the `$tw.Tiddler` prototype." }, "$:/language/Docs/ModuleTypes/upgrader": { "title": "$:/language/Docs/ModuleTypes/upgrader", "text": "Applies upgrade processing to tiddlers during an upgrade/import." }, "$:/language/Docs/ModuleTypes/utils": { "title": "$:/language/Docs/ModuleTypes/utils", "text": "Adds methods to `$tw.utils`." }, "$:/language/Docs/ModuleTypes/utils-node": { "title": "$:/language/Docs/ModuleTypes/utils-node", "text": "Adds Node.js-specific methods to `$tw.utils`." }, "$:/language/Docs/ModuleTypes/widget": { "title": "$:/language/Docs/ModuleTypes/widget", "text": "Widgets encapsulate DOM rendering and refreshing." }, "$:/language/Docs/ModuleTypes/wikimethod": { "title": "$:/language/Docs/ModuleTypes/wikimethod", "text": "Adds methods to `$tw.Wiki`." }, "$:/language/Docs/ModuleTypes/wikirule": { "title": "$:/language/Docs/ModuleTypes/wikirule", "text": "Individual parser rules for the main WikiText parser." }, "$:/language/Docs/PaletteColours/alert-background": { "title": "$:/language/Docs/PaletteColours/alert-background", "text": "Alert background" }, "$:/language/Docs/PaletteColours/alert-border": { "title": "$:/language/Docs/PaletteColours/alert-border", "text": "Alert border" }, "$:/language/Docs/PaletteColours/alert-highlight": { "title": "$:/language/Docs/PaletteColours/alert-highlight", "text": "Alert highlight" }, "$:/language/Docs/PaletteColours/alert-muted-foreground": { "title": "$:/language/Docs/PaletteColours/alert-muted-foreground", "text": "Alert muted foreground" }, "$:/language/Docs/PaletteColours/background": { "title": "$:/language/Docs/PaletteColours/background", "text": "General background" }, "$:/language/Docs/PaletteColours/blockquote-bar": { "title": "$:/language/Docs/PaletteColours/blockquote-bar", "text": "Blockquote bar" }, "$:/language/Docs/PaletteColours/button-background": { "title": "$:/language/Docs/PaletteColours/button-background", "text": "Default button background" }, "$:/language/Docs/PaletteColours/button-border": { "title": "$:/language/Docs/PaletteColours/button-border", "text": "Default button border" }, "$:/language/Docs/PaletteColours/button-foreground": { "title": "$:/language/Docs/PaletteColours/button-foreground", "text": "Default button foreground" }, "$:/language/Docs/PaletteColours/dirty-indicator": { "title": "$:/language/Docs/PaletteColours/dirty-indicator", "text": "Unsaved changes indicator" }, "$:/language/Docs/PaletteColours/code-background": { "title": "$:/language/Docs/PaletteColours/code-background", "text": "Code background" }, "$:/language/Docs/PaletteColours/code-border": { "title": "$:/language/Docs/PaletteColours/code-border", "text": "Code border" }, "$:/language/Docs/PaletteColours/code-foreground": { "title": "$:/language/Docs/PaletteColours/code-foreground", "text": "Code foreground" }, "$:/language/Docs/PaletteColours/download-background": { "title": "$:/language/Docs/PaletteColours/download-background", "text": "Download button background" }, "$:/language/Docs/PaletteColours/download-foreground": { "title": "$:/language/Docs/PaletteColours/download-foreground", "text": "Download button foreground" }, "$:/language/Docs/PaletteColours/dragger-background": { "title": "$:/language/Docs/PaletteColours/dragger-background", "text": "Dragger background" }, "$:/language/Docs/PaletteColours/dragger-foreground": { "title": "$:/language/Docs/PaletteColours/dragger-foreground", "text": "Dragger foreground" }, "$:/language/Docs/PaletteColours/dropdown-background": { "title": "$:/language/Docs/PaletteColours/dropdown-background", "text": "Dropdown background" }, "$:/language/Docs/PaletteColours/dropdown-border": { "title": "$:/language/Docs/PaletteColours/dropdown-border", "text": "Dropdown border" }, "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected", "text": "Dropdown tab background for selected tabs" }, "$:/language/Docs/PaletteColours/dropdown-tab-background": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background", "text": "Dropdown tab background" }, "$:/language/Docs/PaletteColours/dropzone-background": { "title": "$:/language/Docs/PaletteColours/dropzone-background", "text": "Dropzone background" }, "$:/language/Docs/PaletteColours/external-link-background-hover": { "title": "$:/language/Docs/PaletteColours/external-link-background-hover", "text": "External link background hover" }, "$:/language/Docs/PaletteColours/external-link-background-visited": { "title": "$:/language/Docs/PaletteColours/external-link-background-visited", "text": "External link background visited" }, "$:/language/Docs/PaletteColours/external-link-background": { "title": "$:/language/Docs/PaletteColours/external-link-background", "text": "External link background" }, "$:/language/Docs/PaletteColours/external-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover", "text": "External link foreground hover" }, "$:/language/Docs/PaletteColours/external-link-foreground-visited": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited", "text": "External link foreground visited" }, "$:/language/Docs/PaletteColours/external-link-foreground": { "title": "$:/language/Docs/PaletteColours/external-link-foreground", "text": "External link foreground" }, "$:/language/Docs/PaletteColours/foreground": { "title": "$:/language/Docs/PaletteColours/foreground", "text": "General foreground" }, "$:/language/Docs/PaletteColours/message-background": { "title": "$:/language/Docs/PaletteColours/message-background", "text": "Message box background" }, "$:/language/Docs/PaletteColours/message-border": { "title": "$:/language/Docs/PaletteColours/message-border", "text": "Message box border" }, "$:/language/Docs/PaletteColours/message-foreground": { "title": "$:/language/Docs/PaletteColours/message-foreground", "text": "Message box foreground" }, "$:/language/Docs/PaletteColours/modal-backdrop": { "title": "$:/language/Docs/PaletteColours/modal-backdrop", "text": "Modal backdrop" }, "$:/language/Docs/PaletteColours/modal-background": { "title": "$:/language/Docs/PaletteColours/modal-background", "text": "Modal background" }, "$:/language/Docs/PaletteColours/modal-border": { "title": "$:/language/Docs/PaletteColours/modal-border", "text": "Modal border" }, "$:/language/Docs/PaletteColours/modal-footer-background": { "title": "$:/language/Docs/PaletteColours/modal-footer-background", "text": "Modal footer background" }, "$:/language/Docs/PaletteColours/modal-footer-border": { "title": "$:/language/Docs/PaletteColours/modal-footer-border", "text": "Modal footer border" }, "$:/language/Docs/PaletteColours/modal-header-border": { "title": "$:/language/Docs/PaletteColours/modal-header-border", "text": "Modal header border" }, "$:/language/Docs/PaletteColours/muted-foreground": { "title": "$:/language/Docs/PaletteColours/muted-foreground", "text": "General muted foreground" }, "$:/language/Docs/PaletteColours/notification-background": { "title": "$:/language/Docs/PaletteColours/notification-background", "text": "Notification background" }, "$:/language/Docs/PaletteColours/notification-border": { "title": "$:/language/Docs/PaletteColours/notification-border", "text": "Notification border" }, "$:/language/Docs/PaletteColours/page-background": { "title": "$:/language/Docs/PaletteColours/page-background", "text": "Page background" }, "$:/language/Docs/PaletteColours/pre-background": { "title": "$:/language/Docs/PaletteColours/pre-background", "text": "Preformatted code background" }, "$:/language/Docs/PaletteColours/pre-border": { "title": "$:/language/Docs/PaletteColours/pre-border", "text": "Preformatted code border" }, "$:/language/Docs/PaletteColours/primary": { "title": "$:/language/Docs/PaletteColours/primary", "text": "General primary" }, "$:/language/Docs/PaletteColours/select-tag-background": { "title": "$:/language/Docs/PaletteColours/select-tag-background", "text": "`<select>` element background" }, "$:/language/Docs/PaletteColours/select-tag-foreground": { "title": "$:/language/Docs/PaletteColours/select-tag-foreground", "text": "`<select>` element text" }, "$:/language/Docs/PaletteColours/sidebar-button-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground", "text": "Sidebar button foreground" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover", "text": "Sidebar controls foreground hover" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground", "text": "Sidebar controls foreground" }, "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow", "text": "Sidebar foreground shadow" }, "$:/language/Docs/PaletteColours/sidebar-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground", "text": "Sidebar foreground" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover", "text": "Sidebar muted foreground hover" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground", "text": "Sidebar muted foreground" }, "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected", "text": "Sidebar tab background for selected tabs" }, "$:/language/Docs/PaletteColours/sidebar-tab-background": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background", "text": "Sidebar tab background" }, "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected", "text": "Sidebar tab border for selected tabs" }, "$:/language/Docs/PaletteColours/sidebar-tab-border": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border", "text": "Sidebar tab border" }, "$:/language/Docs/PaletteColours/sidebar-tab-divider": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider", "text": "Sidebar tab divider" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected", "text": "Sidebar tab foreground for selected tabs" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground", "text": "Sidebar tab foreground" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover", "text": "Sidebar tiddler link foreground hover" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground", "text": "Sidebar tiddler link foreground" }, "$:/language/Docs/PaletteColours/site-title-foreground": { "title": "$:/language/Docs/PaletteColours/site-title-foreground", "text": "Site title foreground" }, "$:/language/Docs/PaletteColours/static-alert-foreground": { "title": "$:/language/Docs/PaletteColours/static-alert-foreground", "text": "Static alert foreground" }, "$:/language/Docs/PaletteColours/tab-background-selected": { "title": "$:/language/Docs/PaletteColours/tab-background-selected", "text": "Tab background for selected tabs" }, "$:/language/Docs/PaletteColours/tab-background": { "title": "$:/language/Docs/PaletteColours/tab-background", "text": "Tab background" }, "$:/language/Docs/PaletteColours/tab-border-selected": { "title": "$:/language/Docs/PaletteColours/tab-border-selected", "text": "Tab border for selected tabs" }, "$:/language/Docs/PaletteColours/tab-border": { "title": "$:/language/Docs/PaletteColours/tab-border", "text": "Tab border" }, "$:/language/Docs/PaletteColours/tab-divider": { "title": "$:/language/Docs/PaletteColours/tab-divider", "text": "Tab divider" }, "$:/language/Docs/PaletteColours/tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tab-foreground-selected", "text": "Tab foreground for selected tabs" }, "$:/language/Docs/PaletteColours/tab-foreground": { "title": "$:/language/Docs/PaletteColours/tab-foreground", "text": "Tab foreground" }, "$:/language/Docs/PaletteColours/table-border": { "title": "$:/language/Docs/PaletteColours/table-border", "text": "Table border" }, "$:/language/Docs/PaletteColours/table-footer-background": { "title": "$:/language/Docs/PaletteColours/table-footer-background", "text": "Table footer background" }, "$:/language/Docs/PaletteColours/table-header-background": { "title": "$:/language/Docs/PaletteColours/table-header-background", "text": "Table header background" }, "$:/language/Docs/PaletteColours/tag-background": { "title": "$:/language/Docs/PaletteColours/tag-background", "text": "Tag background" }, "$:/language/Docs/PaletteColours/tag-foreground": { "title": "$:/language/Docs/PaletteColours/tag-foreground", "text": "Tag foreground" }, "$:/language/Docs/PaletteColours/tiddler-background": { "title": "$:/language/Docs/PaletteColours/tiddler-background", "text": "Tiddler background" }, "$:/language/Docs/PaletteColours/tiddler-border": { "title": "$:/language/Docs/PaletteColours/tiddler-border", "text": "Tiddler border" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover", "text": "Tiddler controls foreground hover" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected", "text": "Tiddler controls foreground for selected controls" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground", "text": "Tiddler controls foreground" }, "$:/language/Docs/PaletteColours/tiddler-editor-background": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-background", "text": "Tiddler editor background" }, "$:/language/Docs/PaletteColours/tiddler-editor-border-image": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image", "text": "Tiddler editor border image" }, "$:/language/Docs/PaletteColours/tiddler-editor-border": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border", "text": "Tiddler editor border" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even", "text": "Tiddler editor background for even fields" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd", "text": "Tiddler editor background for odd fields" }, "$:/language/Docs/PaletteColours/tiddler-info-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-background", "text": "Tiddler info panel background" }, "$:/language/Docs/PaletteColours/tiddler-info-border": { "title": "$:/language/Docs/PaletteColours/tiddler-info-border", "text": "Tiddler info panel border" }, "$:/language/Docs/PaletteColours/tiddler-info-tab-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background", "text": "Tiddler info panel tab background" }, "$:/language/Docs/PaletteColours/tiddler-link-background": { "title": "$:/language/Docs/PaletteColours/tiddler-link-background", "text": "Tiddler link background" }, "$:/language/Docs/PaletteColours/tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground", "text": "Tiddler link foreground" }, "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground", "text": "Tiddler subtitle foreground" }, "$:/language/Docs/PaletteColours/tiddler-title-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground", "text": "Tiddler title foreground" }, "$:/language/Docs/PaletteColours/toolbar-new-button": { "title": "$:/language/Docs/PaletteColours/toolbar-new-button", "text": "Toolbar 'new tiddler' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-options-button": { "title": "$:/language/Docs/PaletteColours/toolbar-options-button", "text": "Toolbar 'options' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-save-button": { "title": "$:/language/Docs/PaletteColours/toolbar-save-button", "text": "Toolbar 'save' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-info-button": { "title": "$:/language/Docs/PaletteColours/toolbar-info-button", "text": "Toolbar 'info' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-edit-button": { "title": "$:/language/Docs/PaletteColours/toolbar-edit-button", "text": "Toolbar 'edit' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-close-button": { "title": "$:/language/Docs/PaletteColours/toolbar-close-button", "text": "Toolbar 'close' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-delete-button": { "title": "$:/language/Docs/PaletteColours/toolbar-delete-button", "text": "Toolbar 'delete' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-cancel-button": { "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button", "text": "Toolbar 'cancel' button foreground" }, "$:/language/Docs/PaletteColours/toolbar-done-button": { "title": "$:/language/Docs/PaletteColours/toolbar-done-button", "text": "Toolbar 'done' button foreground" }, "$:/language/Docs/PaletteColours/untagged-background": { "title": "$:/language/Docs/PaletteColours/untagged-background", "text": "Untagged pill background" }, "$:/language/Docs/PaletteColours/very-muted-foreground": { "title": "$:/language/Docs/PaletteColours/very-muted-foreground", "text": "Very muted foreground" }, "$:/language/EditTemplate/Body/External/Hint": { "title": "$:/language/EditTemplate/Body/External/Hint", "text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself" }, "$:/language/EditTemplate/Body/Placeholder": { "title": "$:/language/EditTemplate/Body/Placeholder", "text": "Type the text for this tiddler" }, "$:/language/EditTemplate/Body/Preview/Type/Output": { "title": "$:/language/EditTemplate/Body/Preview/Type/Output", "text": "output" }, "$:/language/EditTemplate/Field/Remove/Caption": { "title": "$:/language/EditTemplate/Field/Remove/Caption", "text": "remove field" }, "$:/language/EditTemplate/Field/Remove/Hint": { "title": "$:/language/EditTemplate/Field/Remove/Hint", "text": "Remove field" }, "$:/language/EditTemplate/Field/Dropdown/Caption": { "title": "$:/language/EditTemplate/Field/Dropdown/Caption", "text": "field list" }, "$:/language/EditTemplate/Field/Dropdown/Hint": { "title": "$:/language/EditTemplate/Field/Dropdown/Hint", "text": "Show field list" }, "$:/language/EditTemplate/Fields/Add/Button": { "title": "$:/language/EditTemplate/Fields/Add/Button", "text": "add" }, "$:/language/EditTemplate/Fields/Add/Name/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder", "text": "field name" }, "$:/language/EditTemplate/Fields/Add/Prompt": { "title": "$:/language/EditTemplate/Fields/Add/Prompt", "text": "Add a new field:" }, "$:/language/EditTemplate/Fields/Add/Value/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder", "text": "field value" }, "$:/language/EditTemplate/Fields/Add/Dropdown/System": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System", "text": "System fields" }, "$:/language/EditTemplate/Fields/Add/Dropdown/User": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User", "text": "User fields" }, "$:/language/EditTemplate/Shadow/Warning": { "title": "$:/language/EditTemplate/Shadow/Warning", "text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>" }, "$:/language/EditTemplate/Shadow/OverriddenWarning": { "title": "$:/language/EditTemplate/Shadow/OverriddenWarning", "text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler" }, "$:/language/EditTemplate/Tags/Add/Button": { "title": "$:/language/EditTemplate/Tags/Add/Button", "text": "add" }, "$:/language/EditTemplate/Tags/Add/Placeholder": { "title": "$:/language/EditTemplate/Tags/Add/Placeholder", "text": "tag name" }, "$:/language/EditTemplate/Tags/Dropdown/Caption": { "title": "$:/language/EditTemplate/Tags/Dropdown/Caption", "text": "tag list" }, "$:/language/EditTemplate/Tags/Dropdown/Hint": { "title": "$:/language/EditTemplate/Tags/Dropdown/Hint", "text": "Show tag list" }, "$:/language/EditTemplate/Title/BadCharacterWarning": { "title": "$:/language/EditTemplate/Title/BadCharacterWarning", "text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles" }, "$:/language/EditTemplate/Title/Exists/Prompt": { "title": "$:/language/EditTemplate/Title/Exists/Prompt", "text": "Target tiddler already exists" }, "$:/language/EditTemplate/Title/Relink/Prompt": { "title": "$:/language/EditTemplate/Title/Relink/Prompt", "text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers" }, "$:/language/EditTemplate/Title/References/Prompt": { "title": "$:/language/EditTemplate/Title/References/Prompt", "text": "The following references to this tiddler will not be automatically updated:" }, "$:/language/EditTemplate/Type/Dropdown/Caption": { "title": "$:/language/EditTemplate/Type/Dropdown/Caption", "text": "content type list" }, "$:/language/EditTemplate/Type/Dropdown/Hint": { "title": "$:/language/EditTemplate/Type/Dropdown/Hint", "text": "Show content type list" }, "$:/language/EditTemplate/Type/Delete/Caption": { "title": "$:/language/EditTemplate/Type/Delete/Caption", "text": "delete content type" }, "$:/language/EditTemplate/Type/Delete/Hint": { "title": "$:/language/EditTemplate/Type/Delete/Hint", "text": "Delete content type" }, "$:/language/EditTemplate/Type/Placeholder": { "title": "$:/language/EditTemplate/Type/Placeholder", "text": "content type" }, "$:/language/EditTemplate/Type/Prompt": { "title": "$:/language/EditTemplate/Type/Prompt", "text": "Type:" }, "$:/language/Exporters/StaticRiver": { "title": "$:/language/Exporters/StaticRiver", "text": "Static HTML" }, "$:/language/Exporters/JsonFile": { "title": "$:/language/Exporters/JsonFile", "text": "JSON file" }, "$:/language/Exporters/CsvFile": { "title": "$:/language/Exporters/CsvFile", "text": "CSV file" }, "$:/language/Exporters/TidFile": { "title": "$:/language/Exporters/TidFile", "text": "\".tid\" file" }, "$:/language/Docs/Fields/_canonical_uri": { "title": "$:/language/Docs/Fields/_canonical_uri", "text": "The full URI of an external image tiddler" }, "$:/language/Docs/Fields/bag": { "title": "$:/language/Docs/Fields/bag", "text": "The name of the bag from which a tiddler came" }, "$:/language/Docs/Fields/caption": { "title": "$:/language/Docs/Fields/caption", "text": "The text to be displayed on a tab or button" }, "$:/language/Docs/Fields/color": { "title": "$:/language/Docs/Fields/color", "text": "The CSS color value associated with a tiddler" }, "$:/language/Docs/Fields/component": { "title": "$:/language/Docs/Fields/component", "text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]" }, "$:/language/Docs/Fields/current-tiddler": { "title": "$:/language/Docs/Fields/current-tiddler", "text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]" }, "$:/language/Docs/Fields/created": { "title": "$:/language/Docs/Fields/created", "text": "The date a tiddler was created" }, "$:/language/Docs/Fields/creator": { "title": "$:/language/Docs/Fields/creator", "text": "The name of the person who created a tiddler" }, "$:/language/Docs/Fields/dependents": { "title": "$:/language/Docs/Fields/dependents", "text": "For a plugin, lists the dependent plugin titles" }, "$:/language/Docs/Fields/description": { "title": "$:/language/Docs/Fields/description", "text": "The descriptive text for a plugin, or a modal dialogue" }, "$:/language/Docs/Fields/draft.of": { "title": "$:/language/Docs/Fields/draft.of", "text": "For draft tiddlers, contains the title of the tiddler of which this is a draft" }, "$:/language/Docs/Fields/draft.title": { "title": "$:/language/Docs/Fields/draft.title", "text": "For draft tiddlers, contains the proposed new title of the tiddler" }, "$:/language/Docs/Fields/footer": { "title": "$:/language/Docs/Fields/footer", "text": "The footer text for a wizard" }, "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": { "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against", "text": "A temporary storage field used in [[$:/core/templates/static.content]]" }, "$:/language/Docs/Fields/icon": { "title": "$:/language/Docs/Fields/icon", "text": "The title of the tiddler containing the icon associated with a tiddler" }, "$:/language/Docs/Fields/library": { "title": "$:/language/Docs/Fields/library", "text": "If set to \"yes\" indicates that a tiddler should be saved as a JavaScript library" }, "$:/language/Docs/Fields/list": { "title": "$:/language/Docs/Fields/list", "text": "An ordered list of tiddler titles associated with a tiddler" }, "$:/language/Docs/Fields/list-before": { "title": "$:/language/Docs/Fields/list-before", "text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty" }, "$:/language/Docs/Fields/list-after": { "title": "$:/language/Docs/Fields/list-after", "text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty" }, "$:/language/Docs/Fields/modified": { "title": "$:/language/Docs/Fields/modified", "text": "The date and time at which a tiddler was last modified" }, "$:/language/Docs/Fields/modifier": { "title": "$:/language/Docs/Fields/modifier", "text": "The tiddler title associated with the person who last modified a tiddler" }, "$:/language/Docs/Fields/name": { "title": "$:/language/Docs/Fields/name", "text": "The human readable name associated with a plugin tiddler" }, "$:/language/Docs/Fields/plugin-priority": { "title": "$:/language/Docs/Fields/plugin-priority", "text": "A numerical value indicating the priority of a plugin tiddler" }, "$:/language/Docs/Fields/plugin-type": { "title": "$:/language/Docs/Fields/plugin-type", "text": "The type of plugin in a plugin tiddler" }, "$:/language/Docs/Fields/revision": { "title": "$:/language/Docs/Fields/revision", "text": "The revision of the tiddler held at the server" }, "$:/language/Docs/Fields/released": { "title": "$:/language/Docs/Fields/released", "text": "Date of a TiddlyWiki release" }, "$:/language/Docs/Fields/source": { "title": "$:/language/Docs/Fields/source", "text": "The source URL associated with a tiddler" }, "$:/language/Docs/Fields/subtitle": { "title": "$:/language/Docs/Fields/subtitle", "text": "The subtitle text for a wizard" }, "$:/language/Docs/Fields/tags": { "title": "$:/language/Docs/Fields/tags", "text": "A list of tags associated with a tiddler" }, "$:/language/Docs/Fields/text": { "title": "$:/language/Docs/Fields/text", "text": "The body text of a tiddler" }, "$:/language/Docs/Fields/title": { "title": "$:/language/Docs/Fields/title", "text": "The unique name of a tiddler" }, "$:/language/Docs/Fields/type": { "title": "$:/language/Docs/Fields/type", "text": "The content type of a tiddler" }, "$:/language/Docs/Fields/version": { "title": "$:/language/Docs/Fields/version", "text": "Version information for a plugin" }, "$:/language/Filters/AllTiddlers": { "title": "$:/language/Filters/AllTiddlers", "text": "All tiddlers except system tiddlers" }, "$:/language/Filters/RecentSystemTiddlers": { "title": "$:/language/Filters/RecentSystemTiddlers", "text": "Recently modified tiddlers, including system tiddlers" }, "$:/language/Filters/RecentTiddlers": { "title": "$:/language/Filters/RecentTiddlers", "text": "Recently modified tiddlers" }, "$:/language/Filters/AllTags": { "title": "$:/language/Filters/AllTags", "text": "All tags except system tags" }, "$:/language/Filters/Missing": { "title": "$:/language/Filters/Missing", "text": "Missing tiddlers" }, "$:/language/Filters/Drafts": { "title": "$:/language/Filters/Drafts", "text": "Draft tiddlers" }, "$:/language/Filters/Orphans": { "title": "$:/language/Filters/Orphans", "text": "Orphan tiddlers" }, "$:/language/Filters/SystemTiddlers": { "title": "$:/language/Filters/SystemTiddlers", "text": "System tiddlers" }, "$:/language/Filters/ShadowTiddlers": { "title": "$:/language/Filters/ShadowTiddlers", "text": "Shadow tiddlers" }, "$:/language/Filters/OverriddenShadowTiddlers": { "title": "$:/language/Filters/OverriddenShadowTiddlers", "text": "Overridden shadow tiddlers" }, "$:/language/Filters/SystemTags": { "title": "$:/language/Filters/SystemTags", "text": "System tags" }, "$:/language/Filters/StoryList": { "title": "$:/language/Filters/StoryList", "text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>" }, "$:/language/Filters/TypedTiddlers": { "title": "$:/language/Filters/TypedTiddlers", "text": "Non wiki-text tiddlers" }, "GettingStarted": { "title": "GettingStarted", "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n" }, "$:/language/Help/build": { "title": "$:/language/Help/build", "description": "Automatically run configured commands", "text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n" }, "$:/language/Help/clearpassword": { "title": "$:/language/Help/clearpassword", "description": "Clear a password for subsequent crypto operations", "text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n" }, "$:/language/Help/default": { "title": "$:/language/Help/default", "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n" }, "$:/language/Help/editions": { "title": "$:/language/Help/editions", "description": "Lists the available editions of TiddlyWiki", "text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n" }, "$:/language/Help/fetch": { "title": "$:/language/Help/fetch", "description": "Fetch tiddlers from wiki by URL", "text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n" }, "$:/language/Help/help": { "title": "$:/language/Help/help", "description": "Display help for TiddlyWiki commands", "text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n" }, "$:/language/Help/import": { "title": "$:/language/Help/import", "description": "Import tiddlers from a file", "text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n" }, "$:/language/Help/init": { "title": "$:/language/Help/init", "description": "Initialise a new wiki folder", "text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n" }, "$:/language/Help/listen": { "title": "$:/language/Help/listen", "description": "Provides an HTTP server interface to TiddlyWiki", "text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n" }, "$:/language/Help/load": { "title": "$:/language/Help/load", "description": "Load tiddlers from a file", "text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath>\n--load <dirpath>\n```\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n" }, "$:/language/Help/makelibrary": { "title": "$:/language/Help/makelibrary", "description": "Construct library plugin required by upgrade process", "text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n" }, "$:/language/Help/notfound": { "title": "$:/language/Help/notfound", "text": "No such help item" }, "$:/language/Help/output": { "title": "$:/language/Help/output", "description": "Set the base output directory for subsequent commands", "text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n" }, "$:/language/Help/password": { "title": "$:/language/Help/password", "description": "Set a password for subsequent crypto operations", "text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n" }, "$:/language/Help/render": { "title": "$:/language/Help/render", "description": "Renders individual tiddlers to files", "text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''template'': Optional template through which each tiddler is rendered\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n" }, "$:/language/Help/rendertiddler": { "title": "$:/language/Help/rendertiddler", "description": "Render an individual tiddler as a specified ContentType", "text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n" }, "$:/language/Help/rendertiddlers": { "title": "$:/language/Help/rendertiddlers", "description": "Render tiddlers matching a filter to a specified ContentType", "text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n" }, "$:/language/Help/save": { "title": "$:/language/Help/save", "description": "Saves individual raw tiddlers to files", "text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n" }, "$:/language/Help/savetiddler": { "title": "$:/language/Help/savetiddler", "description": "Saves a raw tiddler to a file", "text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n" }, "$:/language/Help/savetiddlers": { "title": "$:/language/Help/savetiddlers", "description": "Saves a group of raw tiddlers to a directory", "text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n" }, "$:/language/Help/server": { "title": "$:/language/Help/server", "description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)", "text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n" }, "$:/language/Help/setfield": { "title": "$:/language/Help/setfield", "description": "Prepares external tiddlers for use", "text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n" }, "$:/language/Help/unpackplugin": { "title": "$:/language/Help/unpackplugin", "description": "Unpack the payload tiddlers from a plugin", "text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n" }, "$:/language/Help/verbose": { "title": "$:/language/Help/verbose", "description": "Triggers verbose output mode", "text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n" }, "$:/language/Help/version": { "title": "$:/language/Help/version", "description": "Displays the version number of TiddlyWiki", "text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n" }, "$:/language/Import/Imported/Hint": { "title": "$:/language/Import/Imported/Hint", "text": "The following tiddlers were imported:" }, "$:/language/Import/Listing/Cancel/Caption": { "title": "$:/language/Import/Listing/Cancel/Caption", "text": "Cancel" }, "$:/language/Import/Listing/Hint": { "title": "$:/language/Import/Listing/Hint", "text": "These tiddlers are ready to import:" }, "$:/language/Import/Listing/Import/Caption": { "title": "$:/language/Import/Listing/Import/Caption", "text": "Import" }, "$:/language/Import/Listing/Select/Caption": { "title": "$:/language/Import/Listing/Select/Caption", "text": "Select" }, "$:/language/Import/Listing/Status/Caption": { "title": "$:/language/Import/Listing/Status/Caption", "text": "Status" }, "$:/language/Import/Listing/Title/Caption": { "title": "$:/language/Import/Listing/Title/Caption", "text": "Title" }, "$:/language/Import/Listing/Preview": { "title": "$:/language/Import/Listing/Preview", "text": "Preview:" }, "$:/language/Import/Listing/Preview/Text": { "title": "$:/language/Import/Listing/Preview/Text", "text": "Text" }, "$:/language/Import/Listing/Preview/TextRaw": { "title": "$:/language/Import/Listing/Preview/TextRaw", "text": "Text (Raw)" }, "$:/language/Import/Listing/Preview/Fields": { "title": "$:/language/Import/Listing/Preview/Fields", "text": "Fields" }, "$:/language/Import/Listing/Preview/Diff": { "title": "$:/language/Import/Listing/Preview/Diff", "text": "Diff" }, "$:/language/Import/Listing/Preview/DiffFields": { "title": "$:/language/Import/Listing/Preview/DiffFields", "text": "Diff (Fields)" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible", "text": "Blocked incompatible or obsolete plugin" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Version": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version", "text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)" }, "$:/language/Import/Upgrader/Plugins/Upgraded": { "title": "$:/language/Import/Upgrader/Plugins/Upgraded", "text": "Upgraded plugin from <<incoming>> to <<upgraded>>" }, "$:/language/Import/Upgrader/State/Suppressed": { "title": "$:/language/Import/Upgrader/State/Suppressed", "text": "Blocked temporary state tiddler" }, "$:/language/Import/Upgrader/System/Suppressed": { "title": "$:/language/Import/Upgrader/System/Suppressed", "text": "Blocked system tiddler" }, "$:/language/Import/Upgrader/ThemeTweaks/Created": { "title": "$:/language/Import/Upgrader/ThemeTweaks/Created", "text": "Migrated theme tweak from <$text text=<<from>>/>" }, "$:/language/AboveStory/ClassicPlugin/Warning": { "title": "$:/language/AboveStory/ClassicPlugin/Warning", "text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:" }, "$:/language/BinaryWarning/Prompt": { "title": "$:/language/BinaryWarning/Prompt", "text": "This tiddler contains binary data" }, "$:/language/ClassicWarning/Hint": { "title": "$:/language/ClassicWarning/Hint", "text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details." }, "$:/language/ClassicWarning/Upgrade/Caption": { "title": "$:/language/ClassicWarning/Upgrade/Caption", "text": "upgrade" }, "$:/language/CloseAll/Button": { "title": "$:/language/CloseAll/Button", "text": "close all" }, "$:/language/ColourPicker/Recent": { "title": "$:/language/ColourPicker/Recent", "text": "Recent:" }, "$:/language/ConfirmCancelTiddler": { "title": "$:/language/ConfirmCancelTiddler", "text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?" }, "$:/language/ConfirmDeleteTiddler": { "title": "$:/language/ConfirmDeleteTiddler", "text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?" }, "$:/language/ConfirmOverwriteTiddler": { "title": "$:/language/ConfirmOverwriteTiddler", "text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?" }, "$:/language/ConfirmEditShadowTiddler": { "title": "$:/language/ConfirmEditShadowTiddler", "text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?" }, "$:/language/Count": { "title": "$:/language/Count", "text": "count" }, "$:/language/DefaultNewTiddlerTitle": { "title": "$:/language/DefaultNewTiddlerTitle", "text": "New Tiddler" }, "$:/language/Diffs/CountMessage": { "title": "$:/language/Diffs/CountMessage", "text": "<<diff-count>> differences" }, "$:/language/DropMessage": { "title": "$:/language/DropMessage", "text": "Drop here (or use the 'Escape' key to cancel)" }, "$:/language/Encryption/Cancel": { "title": "$:/language/Encryption/Cancel", "text": "Cancel" }, "$:/language/Encryption/ConfirmClearPassword": { "title": "$:/language/Encryption/ConfirmClearPassword", "text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki" }, "$:/language/Encryption/PromptSetPassword": { "title": "$:/language/Encryption/PromptSetPassword", "text": "Set a new password for this TiddlyWiki" }, "$:/language/Encryption/Username": { "title": "$:/language/Encryption/Username", "text": "Username" }, "$:/language/Encryption/Password": { "title": "$:/language/Encryption/Password", "text": "Password" }, "$:/language/Encryption/RepeatPassword": { "title": "$:/language/Encryption/RepeatPassword", "text": "Repeat password" }, "$:/language/Encryption/PasswordNoMatch": { "title": "$:/language/Encryption/PasswordNoMatch", "text": "Passwords do not match" }, "$:/language/Encryption/SetPassword": { "title": "$:/language/Encryption/SetPassword", "text": "Set password" }, "$:/language/Error/Caption": { "title": "$:/language/Error/Caption", "text": "Error" }, "$:/language/Error/EditConflict": { "title": "$:/language/Error/EditConflict", "text": "File changed on server" }, "$:/language/Error/Filter": { "title": "$:/language/Error/Filter", "text": "Filter error" }, "$:/language/Error/FilterSyntax": { "title": "$:/language/Error/FilterSyntax", "text": "Syntax error in filter expression" }, "$:/language/Error/IsFilterOperator": { "title": "$:/language/Error/IsFilterOperator", "text": "Filter Error: Unknown operand for the 'is' filter operator" }, "$:/language/Error/LoadingPluginLibrary": { "title": "$:/language/Error/LoadingPluginLibrary", "text": "Error loading plugin library" }, "$:/language/Error/RecursiveTransclusion": { "title": "$:/language/Error/RecursiveTransclusion", "text": "Recursive transclusion error in transclude widget" }, "$:/language/Error/RetrievingSkinny": { "title": "$:/language/Error/RetrievingSkinny", "text": "Error retrieving skinny tiddler list" }, "$:/language/Error/SavingToTWEdit": { "title": "$:/language/Error/SavingToTWEdit", "text": "Error saving to TWEdit" }, "$:/language/Error/WhileSaving": { "title": "$:/language/Error/WhileSaving", "text": "Error while saving" }, "$:/language/Error/XMLHttpRequest": { "title": "$:/language/Error/XMLHttpRequest", "text": "XMLHttpRequest error code" }, "$:/language/InternalJavaScriptError/Title": { "title": "$:/language/InternalJavaScriptError/Title", "text": "Internal JavaScript Error" }, "$:/language/InternalJavaScriptError/Hint": { "title": "$:/language/InternalJavaScriptError/Hint", "text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser" }, "$:/language/InvalidFieldName": { "title": "$:/language/InvalidFieldName", "text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)" }, "$:/language/LazyLoadingWarning": { "title": "$:/language/LazyLoadingWarning", "text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>" }, "$:/language/LoginToTiddlySpace": { "title": "$:/language/LoginToTiddlySpace", "text": "Login to TiddlySpace" }, "$:/language/Manager/Controls/FilterByTag/None": { "title": "$:/language/Manager/Controls/FilterByTag/None", "text": "(none)" }, "$:/language/Manager/Controls/FilterByTag/Prompt": { "title": "$:/language/Manager/Controls/FilterByTag/Prompt", "text": "Filter by tag:" }, "$:/language/Manager/Controls/Order/Prompt": { "title": "$:/language/Manager/Controls/Order/Prompt", "text": "Reverse order" }, "$:/language/Manager/Controls/Search/Placeholder": { "title": "$:/language/Manager/Controls/Search/Placeholder", "text": "Search" }, "$:/language/Manager/Controls/Search/Prompt": { "title": "$:/language/Manager/Controls/Search/Prompt", "text": "Search:" }, "$:/language/Manager/Controls/Show/Option/Tags": { "title": "$:/language/Manager/Controls/Show/Option/Tags", "text": "tags" }, "$:/language/Manager/Controls/Show/Option/Tiddlers": { "title": "$:/language/Manager/Controls/Show/Option/Tiddlers", "text": "tiddlers" }, "$:/language/Manager/Controls/Show/Prompt": { "title": "$:/language/Manager/Controls/Show/Prompt", "text": "Show:" }, "$:/language/Manager/Controls/Sort/Prompt": { "title": "$:/language/Manager/Controls/Sort/Prompt", "text": "Sort by:" }, "$:/language/Manager/Item/Colour": { "title": "$:/language/Manager/Item/Colour", "text": "Colour" }, "$:/language/Manager/Item/Fields": { "title": "$:/language/Manager/Item/Fields", "text": "Fields" }, "$:/language/Manager/Item/Icon/None": { "title": "$:/language/Manager/Item/Icon/None", "text": "(none)" }, "$:/language/Manager/Item/Icon": { "title": "$:/language/Manager/Item/Icon", "text": "Icon" }, "$:/language/Manager/Item/RawText": { "title": "$:/language/Manager/Item/RawText", "text": "Raw text" }, "$:/language/Manager/Item/Tags": { "title": "$:/language/Manager/Item/Tags", "text": "Tags" }, "$:/language/Manager/Item/Tools": { "title": "$:/language/Manager/Item/Tools", "text": "Tools" }, "$:/language/Manager/Item/WikifiedText": { "title": "$:/language/Manager/Item/WikifiedText", "text": "Wikified text" }, "$:/language/MissingTiddler/Hint": { "title": "$:/language/MissingTiddler/Hint", "text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create" }, "$:/language/No": { "title": "$:/language/No", "text": "No" }, "$:/language/OfficialPluginLibrary": { "title": "$:/language/OfficialPluginLibrary", "text": "Official ~TiddlyWiki Plugin Library" }, "$:/language/OfficialPluginLibrary/Hint": { "title": "$:/language/OfficialPluginLibrary/Hint", "text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team." }, "$:/language/PluginReloadWarning": { "title": "$:/language/PluginReloadWarning", "text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to plugins to take effect" }, "$:/language/RecentChanges/DateFormat": { "title": "$:/language/RecentChanges/DateFormat", "text": "DDth MMM YYYY" }, "$:/language/SystemTiddler/Tooltip": { "title": "$:/language/SystemTiddler/Tooltip", "text": "This is a system tiddler" }, "$:/language/SystemTiddlers/Include/Prompt": { "title": "$:/language/SystemTiddlers/Include/Prompt", "text": "Include system tiddlers" }, "$:/language/TagManager/Colour/Heading": { "title": "$:/language/TagManager/Colour/Heading", "text": "Colour" }, "$:/language/TagManager/Count/Heading": { "title": "$:/language/TagManager/Count/Heading", "text": "Count" }, "$:/language/TagManager/Icon/Heading": { "title": "$:/language/TagManager/Icon/Heading", "text": "Icon" }, "$:/language/TagManager/Info/Heading": { "title": "$:/language/TagManager/Info/Heading", "text": "Info" }, "$:/language/TagManager/Tag/Heading": { "title": "$:/language/TagManager/Tag/Heading", "text": "Tag" }, "$:/language/Tiddler/DateFormat": { "title": "$:/language/Tiddler/DateFormat", "text": "DDth MMM YYYY at hh12:0mmam" }, "$:/language/UnsavedChangesWarning": { "title": "$:/language/UnsavedChangesWarning", "text": "You have unsaved changes in TiddlyWiki" }, "$:/language/Yes": { "title": "$:/language/Yes", "text": "Yes" }, "$:/language/Modals/Download": { "title": "$:/language/Modals/Download", "subtitle": "Download changes", "footer": "<$button message=\"tm-close-tiddler\">Close</$button>", "help": "https://tiddlywiki.com/static/DownloadingChanges.html", "text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n" }, "$:/language/Modals/SaveInstructions": { "title": "$:/language/Modals/SaveInstructions", "subtitle": "Save your work", "footer": "<$button message=\"tm-close-tiddler\">Close</$button>", "help": "https://tiddlywiki.com/static/SavingChanges.html", "text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n" }, "$:/config/NewJournal/Title": { "title": "$:/config/NewJournal/Title", "text": "DDth MMM YYYY" }, "$:/config/NewJournal/Text": { "title": "$:/config/NewJournal/Text", "text": "" }, "$:/config/NewJournal/Tags": { "title": "$:/config/NewJournal/Tags", "text": "Journal" }, "$:/language/Notifications/Save/Done": { "title": "$:/language/Notifications/Save/Done", "text": "Saved wiki" }, "$:/language/Notifications/Save/Starting": { "title": "$:/language/Notifications/Save/Starting", "text": "Starting to save wiki" }, "$:/language/Notifications/CopiedToClipboard/Succeeded": { "title": "$:/language/Notifications/CopiedToClipboard/Succeeded", "text": "Copied to clipboard!" }, "$:/language/Notifications/CopiedToClipboard/Failed": { "title": "$:/language/Notifications/CopiedToClipboard/Failed", "text": "Failed to copy to clipboard!" }, "$:/language/Search/DefaultResults/Caption": { "title": "$:/language/Search/DefaultResults/Caption", "text": "List" }, "$:/language/Search/Filter/Caption": { "title": "$:/language/Search/Filter/Caption", "text": "Filter" }, "$:/language/Search/Filter/Hint": { "title": "$:/language/Search/Filter/Hint", "text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]" }, "$:/language/Search/Filter/Matches": { "title": "$:/language/Search/Filter/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/Matches": { "title": "$:/language/Search/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/Matches/All": { "title": "$:/language/Search/Matches/All", "text": "All matches:" }, "$:/language/Search/Matches/Title": { "title": "$:/language/Search/Matches/Title", "text": "Title matches:" }, "$:/language/Search/Search": { "title": "$:/language/Search/Search", "text": "Search" }, "$:/language/Search/Search/TooShort": { "title": "$:/language/Search/Search/TooShort", "text": "Search text too short" }, "$:/language/Search/Shadows/Caption": { "title": "$:/language/Search/Shadows/Caption", "text": "Shadows" }, "$:/language/Search/Shadows/Hint": { "title": "$:/language/Search/Shadows/Hint", "text": "Search for shadow tiddlers" }, "$:/language/Search/Shadows/Matches": { "title": "$:/language/Search/Shadows/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/Standard/Caption": { "title": "$:/language/Search/Standard/Caption", "text": "Standard" }, "$:/language/Search/Standard/Hint": { "title": "$:/language/Search/Standard/Hint", "text": "Search for standard tiddlers" }, "$:/language/Search/Standard/Matches": { "title": "$:/language/Search/Standard/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/Search/System/Caption": { "title": "$:/language/Search/System/Caption", "text": "System" }, "$:/language/Search/System/Hint": { "title": "$:/language/Search/System/Hint", "text": "Search for system tiddlers" }, "$:/language/Search/System/Matches": { "title": "$:/language/Search/System/Matches", "text": "//<small><<resultCount>> matches</small>//" }, "$:/language/SideBar/All/Caption": { "title": "$:/language/SideBar/All/Caption", "text": "All" }, "$:/language/SideBar/Contents/Caption": { "title": "$:/language/SideBar/Contents/Caption", "text": "Contents" }, "$:/language/SideBar/Drafts/Caption": { "title": "$:/language/SideBar/Drafts/Caption", "text": "Drafts" }, "$:/language/SideBar/Explorer/Caption": { "title": "$:/language/SideBar/Explorer/Caption", "text": "Explorer" }, "$:/language/SideBar/Missing/Caption": { "title": "$:/language/SideBar/Missing/Caption", "text": "Missing" }, "$:/language/SideBar/More/Caption": { "title": "$:/language/SideBar/More/Caption", "text": "More" }, "$:/language/SideBar/Open/Caption": { "title": "$:/language/SideBar/Open/Caption", "text": "Open" }, "$:/language/SideBar/Orphans/Caption": { "title": "$:/language/SideBar/Orphans/Caption", "text": "Orphans" }, "$:/language/SideBar/Recent/Caption": { "title": "$:/language/SideBar/Recent/Caption", "text": "Recent" }, "$:/language/SideBar/Shadows/Caption": { "title": "$:/language/SideBar/Shadows/Caption", "text": "Shadows" }, "$:/language/SideBar/System/Caption": { "title": "$:/language/SideBar/System/Caption", "text": "System" }, "$:/language/SideBar/Tags/Caption": { "title": "$:/language/SideBar/Tags/Caption", "text": "Tags" }, "$:/language/SideBar/Tags/Untagged/Caption": { "title": "$:/language/SideBar/Tags/Untagged/Caption", "text": "untagged" }, "$:/language/SideBar/Tools/Caption": { "title": "$:/language/SideBar/Tools/Caption", "text": "Tools" }, "$:/language/SideBar/Types/Caption": { "title": "$:/language/SideBar/Types/Caption", "text": "Types" }, "$:/SiteSubtitle": { "title": "$:/SiteSubtitle", "text": "a non-linear personal web notebook" }, "$:/SiteTitle": { "title": "$:/SiteTitle", "text": "My ~TiddlyWiki" }, "$:/language/Snippets/ListByTag": { "title": "$:/language/Snippets/ListByTag", "tags": "$:/tags/TextEditor/Snippet", "caption": "List of tiddlers by tag", "text": "<<list-links \"[tag[task]sort[title]]\">>\n" }, "$:/language/Snippets/MacroDefinition": { "title": "$:/language/Snippets/MacroDefinition", "tags": "$:/tags/TextEditor/Snippet", "caption": "Macro definition", "text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n" }, "$:/language/Snippets/Table4x3": { "title": "$:/language/Snippets/Table4x3", "tags": "$:/tags/TextEditor/Snippet", "caption": "Table with 4 columns by 3 rows", "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n" }, "$:/language/Snippets/TableOfContents": { "title": "$:/language/Snippets/TableOfContents", "tags": "$:/tags/TextEditor/Snippet", "caption": "Table of Contents", "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>" }, "$:/language/ThemeTweaks/ThemeTweaks": { "title": "$:/language/ThemeTweaks/ThemeTweaks", "text": "Theme Tweaks" }, "$:/language/ThemeTweaks/ThemeTweaks/Hint": { "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint", "text": "You can tweak certain aspects of the ''Vanilla'' theme." }, "$:/language/ThemeTweaks/Options": { "title": "$:/language/ThemeTweaks/Options", "text": "Options" }, "$:/language/ThemeTweaks/Options/SidebarLayout": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout", "text": "Sidebar layout" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid", "text": "Fixed story, fluid sidebar" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed", "text": "Fluid story, fixed sidebar" }, "$:/language/ThemeTweaks/Options/StickyTitles": { "title": "$:/language/ThemeTweaks/Options/StickyTitles", "text": "Sticky titles" }, "$:/language/ThemeTweaks/Options/StickyTitles/Hint": { "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint", "text": "Causes tiddler titles to \"stick\" to the top of the browser window" }, "$:/language/ThemeTweaks/Options/CodeWrapping": { "title": "$:/language/ThemeTweaks/Options/CodeWrapping", "text": "Wrap long lines in code blocks" }, "$:/language/ThemeTweaks/Settings": { "title": "$:/language/ThemeTweaks/Settings", "text": "Settings" }, "$:/language/ThemeTweaks/Settings/FontFamily": { "title": "$:/language/ThemeTweaks/Settings/FontFamily", "text": "Font family" }, "$:/language/ThemeTweaks/Settings/CodeFontFamily": { "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily", "text": "Code font family" }, "$:/language/ThemeTweaks/Settings/EditorFontFamily": { "title": "$:/language/ThemeTweaks/Settings/EditorFontFamily", "text": "Editor font family" }, "$:/language/ThemeTweaks/Settings/BackgroundImage": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImage", "text": "Page background image" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment", "text": "Page background image attachment" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll", "text": "Scroll with tiddlers" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed", "text": "Fixed to window" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize", "text": "Page background image size" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto", "text": "Auto" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover", "text": "Cover" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain", "text": "Contain" }, "$:/language/ThemeTweaks/Metrics": { "title": "$:/language/ThemeTweaks/Metrics", "text": "Sizes" }, "$:/language/ThemeTweaks/Metrics/FontSize": { "title": "$:/language/ThemeTweaks/Metrics/FontSize", "text": "Font size" }, "$:/language/ThemeTweaks/Metrics/LineHeight": { "title": "$:/language/ThemeTweaks/Metrics/LineHeight", "text": "Line height" }, "$:/language/ThemeTweaks/Metrics/BodyFontSize": { "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize", "text": "Font size for tiddler body" }, "$:/language/ThemeTweaks/Metrics/BodyLineHeight": { "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight", "text": "Line height for tiddler body" }, "$:/language/ThemeTweaks/Metrics/StoryLeft": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft", "text": "Story left position" }, "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint", "text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page" }, "$:/language/ThemeTweaks/Metrics/StoryTop": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop", "text": "Story top position" }, "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint", "text": "how far the top margin of the story river<br>is from the top of the page" }, "$:/language/ThemeTweaks/Metrics/StoryRight": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight", "text": "Story right" }, "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint", "text": "how far the left margin of the sidebar <br>is from the left of the page" }, "$:/language/ThemeTweaks/Metrics/StoryWidth": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth", "text": "Story width" }, "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint", "text": "the overall width of the story river" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth", "text": "Tiddler width" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint", "text": "within the story river" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint", "text": "Sidebar breakpoint" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint", "text": "the minimum page width at which the story<br>river and sidebar will appear side by side" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth", "text": "Sidebar width" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint", "text": "the width of the sidebar in fluid-fixed layout" }, "$:/language/TiddlerInfo/Advanced/Caption": { "title": "$:/language/TiddlerInfo/Advanced/Caption", "text": "Advanced" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint", "text": "none" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading", "text": "Plugin Details" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint", "text": "This plugin contains the following shadow tiddlers:" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading", "text": "Shadow Status" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint", "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint", "text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source", "text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint", "text": "It is overridden by an ordinary tiddler" }, "$:/language/TiddlerInfo/Fields/Caption": { "title": "$:/language/TiddlerInfo/Fields/Caption", "text": "Fields" }, "$:/language/TiddlerInfo/List/Caption": { "title": "$:/language/TiddlerInfo/List/Caption", "text": "List" }, "$:/language/TiddlerInfo/List/Empty": { "title": "$:/language/TiddlerInfo/List/Empty", "text": "This tiddler does not have a list" }, "$:/language/TiddlerInfo/Listed/Caption": { "title": "$:/language/TiddlerInfo/Listed/Caption", "text": "Listed" }, "$:/language/TiddlerInfo/Listed/Empty": { "title": "$:/language/TiddlerInfo/Listed/Empty", "text": "This tiddler is not listed by any others" }, "$:/language/TiddlerInfo/References/Caption": { "title": "$:/language/TiddlerInfo/References/Caption", "text": "References" }, "$:/language/TiddlerInfo/References/Empty": { "title": "$:/language/TiddlerInfo/References/Empty", "text": "No tiddlers link to this one" }, "$:/language/TiddlerInfo/Tagging/Caption": { "title": "$:/language/TiddlerInfo/Tagging/Caption", "text": "Tagging" }, "$:/language/TiddlerInfo/Tagging/Empty": { "title": "$:/language/TiddlerInfo/Tagging/Empty", "text": "No tiddlers are tagged with this one" }, "$:/language/TiddlerInfo/Tools/Caption": { "title": "$:/language/TiddlerInfo/Tools/Caption", "text": "Tools" }, "$:/language/Docs/Types/application/javascript": { "title": "$:/language/Docs/Types/application/javascript", "description": "JavaScript code", "name": "application/javascript", "group": "Developer", "group-sort": "2" }, "$:/language/Docs/Types/application/json": { "title": "$:/language/Docs/Types/application/json", "description": "JSON data", "name": "application/json", "group": "Developer", "group-sort": "2" }, "$:/language/Docs/Types/application/x-tiddler-dictionary": { "title": "$:/language/Docs/Types/application/x-tiddler-dictionary", "description": "Data dictionary", "name": "application/x-tiddler-dictionary", "group": "Developer", "group-sort": "2" }, "$:/language/Docs/Types/image/gif": { "title": "$:/language/Docs/Types/image/gif", "description": "GIF image", "name": "image/gif", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/jpeg": { "title": "$:/language/Docs/Types/image/jpeg", "description": "JPEG image", "name": "image/jpeg", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/png": { "title": "$:/language/Docs/Types/image/png", "description": "PNG image", "name": "image/png", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/svg+xml": { "title": "$:/language/Docs/Types/image/svg+xml", "description": "Structured Vector Graphics image", "name": "image/svg+xml", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/x-icon": { "title": "$:/language/Docs/Types/image/x-icon", "description": "ICO format icon file", "name": "image/x-icon", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/text/css": { "title": "$:/language/Docs/Types/text/css", "description": "Static stylesheet", "name": "text/css", "group": "Developer", "group-sort": "2" }, "$:/language/Docs/Types/text/html": { "title": "$:/language/Docs/Types/text/html", "description": "HTML markup", "name": "text/html", "group": "Text", "group-sort": "0" }, "$:/language/Docs/Types/text/plain": { "title": "$:/language/Docs/Types/text/plain", "description": "Plain text", "name": "text/plain", "group": "Text", "group-sort": "0" }, "$:/language/Docs/Types/text/vnd.tiddlywiki": { "title": "$:/language/Docs/Types/text/vnd.tiddlywiki", "description": "TiddlyWiki 5", "name": "text/vnd.tiddlywiki", "group": "Text", "group-sort": "0" }, "$:/language/Docs/Types/text/x-tiddlywiki": { "title": "$:/language/Docs/Types/text/x-tiddlywiki", "description": "TiddlyWiki Classic", "name": "text/x-tiddlywiki", "group": "Text", "group-sort": "0" }, "$:/languages/en-GB/icon": { "title": "$:/languages/en-GB/icon", "type": "image/svg+xml", "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n" }, "$:/languages/en-GB": { "title": "$:/languages/en-GB", "name": "en-GB", "description": "English (British)", "author": "JeremyRuston", "core-version": ">=5.0.0\"", "text": "Stub pseudo-plugin for the default language" }, "$:/core/modules/commander.js": { "title": "$:/core/modules/commander.js", "text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/commands/build.js": { "title": "$:/core/modules/commands/build.js", "text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/clearpassword.js": { "title": "$:/core/modules/commands/clearpassword.js", "text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/editions.js": { "title": "$:/core/modules/commands/editions.js", "text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/fetch.js": { "title": "$:/core/modules/commands/fetch.js", "text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/help.js": { "title": "$:/core/modules/commands/help.js", "text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/import.js": { "title": "$:/core/modules/commands/import.js", "text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/init.js": { "title": "$:/core/modules/commands/init.js", "text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/listen.js": { "title": "$:/core/modules/commands/listen.js", "text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/load.js": { "title": "$:/core/modules/commands/load.js", "text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count) {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/makelibrary.js": { "title": "$:/core/modules/commands/makelibrary.js", "text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.pluginsPath));\n\tcollectPublisherPlugins(path.resolve($tw.boot.corePath,$tw.config.themesPath));\n\tcollectPlugins(path.resolve($tw.boot.corePath,$tw.config.languagesPath));\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers},null,$tw.config.preferences.jsonSpaces)\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/output.js": { "title": "$:/core/modules/commands/output.js", "text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/password.js": { "title": "$:/core/modules/commands/password.js", "text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/render.js": { "title": "$:/core/modules/commands/render.js", "text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/rendertiddler.js": { "title": "$:/core/modules/commands/rendertiddler.js", "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/rendertiddlers.js": { "title": "$:/core/modules/commands/rendertiddlers.js", "text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/save.js": { "title": "$:/core/modules/commands/save.js", "text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/savelibrarytiddlers.js": { "title": "$:/core/modules/commands/savelibrarytiddlers.js", "text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler,null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{text: undefined, readme: readmeContent, icon: iconContent}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/savetiddler.js": { "title": "$:/core/modules/commands/savetiddler.js", "text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/savetiddlers.js": { "title": "$:/core/modules/commands/savetiddlers.js", "text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/server.js": { "title": "$:/core/modules/commands/server.js", "text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/setfield.js": { "title": "$:/core/modules/commands/setfield.js", "text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/unpackplugin.js": { "title": "$:/core/modules/commands/unpackplugin.js", "text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/verbose.js": { "title": "$:/core/modules/commands/verbose.js", "text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/commands/version.js": { "title": "$:/core/modules/commands/version.js", "text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" }, "$:/core/modules/config.js": { "title": "$:/core/modules/config.js", "text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, OElig:338, oelig:339, Scaron:352, scaron:353, Yuml:376, fnof:402, circ:710, tilde:732, Alpha:913, Beta:914, Gamma:915, Delta:916, Epsilon:917, Zeta:918, Eta:919, Theta:920, Iota:921, Kappa:922, Lambda:923, Mu:924, Nu:925, Xi:926, Omicron:927, Pi:928, Rho:929, Sigma:931, Tau:932, Upsilon:933, Phi:934, Chi:935, Psi:936, Omega:937, alpha:945, beta:946, gamma:947, delta:948, epsilon:949, zeta:950, eta:951, theta:952, iota:953, kappa:954, lambda:955, mu:956, nu:957, xi:958, omicron:959, pi:960, rho:961, sigmaf:962, sigma:963, tau:964, upsilon:965, phi:966, chi:967, psi:968, omega:969, thetasym:977, upsih:978, piv:982, ensp:8194, emsp:8195, thinsp:8201, zwnj:8204, zwj:8205, lrm:8206, rlm:8207, ndash:8211, mdash:8212, lsquo:8216, rsquo:8217, sbquo:8218, ldquo:8220, rdquo:8221, bdquo:8222, dagger:8224, Dagger:8225, bull:8226, hellip:8230, permil:8240, prime:8242, Prime:8243, lsaquo:8249, rsaquo:8250, oline:8254, frasl:8260, euro:8364, image:8465, weierp:8472, real:8476, trade:8482, alefsym:8501, larr:8592, uarr:8593, rarr:8594, darr:8595, harr:8596, crarr:8629, lArr:8656, uArr:8657, rArr:8658, dArr:8659, hArr:8660, forall:8704, part:8706, exist:8707, empty:8709, nabla:8711, isin:8712, notin:8713, ni:8715, prod:8719, sum:8721, minus:8722, lowast:8727, radic:8730, prop:8733, infin:8734, ang:8736, and:8743, or:8744, cap:8745, cup:8746, int:8747, there4:8756, sim:8764, cong:8773, asymp:8776, ne:8800, equiv:8801, le:8804, ge:8805, sub:8834, sup:8835, nsub:8836, sube:8838, supe:8839, oplus:8853, otimes:8855, perp:8869, sdot:8901, lceil:8968, rceil:8969, lfloor:8970, rfloor:8971, lang:9001, rang:9002, loz:9674, spades:9824, clubs:9827, hearts:9829, diams:9830 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n", "type": "application/javascript", "module-type": "config" }, "$:/core/modules/deserializers.js": { "title": "$:/core/modules/deserializers.js", "text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n", "type": "application/javascript", "module-type": "tiddlerdeserializer" }, "$:/core/modules/editor/engines/framed.js": { "title": "$:/core/modules/editor/engines/framed.js", "text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/editor/engines/simple.js": { "title": "$:/core/modules/editor/engines/simple.js", "text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/editor/factory.js": { "title": "$:/core/modules/editor/factory.js", "text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag);\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\t\t\t\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/editor/operations/bitmap/clear.js": { "title": "$:/core/modules/editor/operations/bitmap/clear.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n", "type": "application/javascript", "module-type": "bitmapeditoroperation" }, "$:/core/modules/editor/operations/bitmap/resize.js": { "title": "$:/core/modules/editor/operations/bitmap/resize.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n", "type": "application/javascript", "module-type": "bitmapeditoroperation" }, "$:/core/modules/editor/operations/bitmap/rotate-left.js": { "title": "$:/core/modules/editor/operations/bitmap/rotate-left.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n", "type": "application/javascript", "module-type": "bitmapeditoroperation" }, "$:/core/modules/editor/operations/text/excise.js": { "title": "$:/core/modules/editor/operations/text/excise.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/make-link.js": { "title": "$:/core/modules/editor/operations/text/make-link.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/prefix-lines.js": { "title": "$:/core/modules/editor/operations/text/prefix-lines.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,event.paramObject.count);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== event.paramObject.count) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/replace-all.js": { "title": "$:/core/modules/editor/operations/text/replace-all.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/replace-selection.js": { "title": "$:/core/modules/editor/operations/text/replace-selection.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/save-selection.js": { "title": "$:/core/modules/editor/operations/text/save-selection.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/wrap-lines.js": { "title": "$:/core/modules/editor/operations/text/wrap-lines.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/editor/operations/text/wrap-selection.js": { "title": "$:/core/modules/editor/operations/text/wrap-selection.js", "text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix unless they comprise the entire text\n\t\t\tif(operation.selStart > event.paramObject.prefix.length || (operation.selEnd + event.paramObject.suffix.length) < operation.text.length ) {\n\t\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\t\toperation.replacement = \"\";\n\t\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t\t}\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "texteditoroperation" }, "$:/core/modules/filters/addprefix.js": { "title": "$:/core/modules/filters/addprefix.js", "text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/addsuffix.js": { "title": "$:/core/modules/filters/addsuffix.js", "text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/after.js": { "title": "$:/core/modules/filters/after.js", "text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/all/current.js": { "title": "$:/core/modules/filters/all/current.js", "text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/missing.js": { "title": "$:/core/modules/filters/all/missing.js", "text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/orphans.js": { "title": "$:/core/modules/filters/all/orphans.js", "text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/shadows.js": { "title": "$:/core/modules/filters/all/shadows.js", "text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/tags.js": { "title": "$:/core/modules/filters/all/tags.js", "text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all/tiddlers.js": { "title": "$:/core/modules/filters/all/tiddlers.js", "text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n", "type": "application/javascript", "module-type": "allfilteroperator" }, "$:/core/modules/filters/all.js": { "title": "$:/core/modules/filters/all.js", "text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/backlinks.js": { "title": "$:/core/modules/filters/backlinks.js", "text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/before.js": { "title": "$:/core/modules/filters/before.js", "text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/commands.js": { "title": "$:/core/modules/filters/commands.js", "text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/contains.js": { "title": "$:/core/modules/filters/contains.js", "text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/count.js": { "title": "$:/core/modules/filters/count.js", "text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/days.js": { "title": "$:/core/modules/filters/days.js", "text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/each.js": { "title": "$:/core/modules/filters/each.js", "text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/eachday.js": { "title": "$:/core/modules/filters/eachday.js", "text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/editiondescription.js": { "title": "$:/core/modules/filters/editiondescription.js", "text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/editions.js": { "title": "$:/core/modules/filters/editions.js", "text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/decodeuricomponent.js": { "title": "$:/core/modules/filters/decodeuricomponent.js", "text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/enlist.js": { "title": "$:/core/modules/filters/enlist.js", "text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar list = $tw.utils.parseStringArray(operator.operand);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/field.js": { "title": "$:/core/modules/filters/field.js", "text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/fields.js": { "title": "$:/core/modules/filters/fields.js", "text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/get.js": { "title": "$:/core/modules/filters/get.js", "text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/getindex.js": { "title": "$:/core/modules/filters/getindex.js", "text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/has.js": { "title": "$:/core/modules/filters/has.js", "text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/haschanged.js": { "title": "$:/core/modules/filters/haschanged.js", "text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/indexes.js": { "title": "$:/core/modules/filters/indexes.js", "text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/insertbefore.js": { "title": "$:/core/modules/filters/insertbefore.js", "text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/is/current.js": { "title": "$:/core/modules/filters/is/current.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/image.js": { "title": "$:/core/modules/filters/is/image.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/missing.js": { "title": "$:/core/modules/filters/is/missing.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/orphan.js": { "title": "$:/core/modules/filters/is/orphan.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/shadow.js": { "title": "$:/core/modules/filters/is/shadow.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/system.js": { "title": "$:/core/modules/filters/is/system.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/tag.js": { "title": "$:/core/modules/filters/is/tag.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is/tiddler.js": { "title": "$:/core/modules/filters/is/tiddler.js", "text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "isfilteroperator" }, "$:/core/modules/filters/is.js": { "title": "$:/core/modules/filters/is.js", "text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/limit.js": { "title": "$:/core/modules/filters/limit.js", "text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/links.js": { "title": "$:/core/modules/filters/links.js", "text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/list.js": { "title": "$:/core/modules/filters/list.js", "text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/listed.js": { "title": "$:/core/modules/filters/listed.js", "text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/listops.js": { "title": "$:/core/modules/filters/listops.js", "text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/lookup.js": { "title": "$:/core/modules/filters/lookup.js", "text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/minlength.js": { "title": "$:/core/modules/filters/minlength.js", "text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/modules.js": { "title": "$:/core/modules/filters/modules.js", "text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/moduletypes.js": { "title": "$:/core/modules/filters/moduletypes.js", "text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/next.js": { "title": "$:/core/modules/filters/next.js", "text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/plugintiddlers.js": { "title": "$:/core/modules/filters/plugintiddlers.js", "text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/prefix.js": { "title": "$:/core/modules/filters/prefix.js", "text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/previous.js": { "title": "$:/core/modules/filters/previous.js", "text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/range.js": { "title": "$:/core/modules/filters/range.js", "text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/regexp.js": { "title": "$:/core/modules/filters/regexp.js", "text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/removeprefix.js": { "title": "$:/core/modules/filters/removeprefix.js", "text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/removesuffix.js": { "title": "$:/core/modules/filters/removesuffix.js", "text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/sameday.js": { "title": "$:/core/modules/filters/sameday.js", "text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/search.js": { "title": "$:/core/modules/filters/search.js", "text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/shadowsource.js": { "title": "$:/core/modules/filters/shadowsource.js", "text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/sort.js": { "title": "$:/core/modules/filters/sort.js", "text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/splitbefore.js": { "title": "$:/core/modules/filters/splitbefore.js", "text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/storyviews.js": { "title": "$:/core/modules/filters/storyviews.js", "text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/subfilter.js": { "title": "$:/core/modules/filters/subfilter.js", "text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/subtiddlerfields.js": { "title": "$:/core/modules/filters/subtiddlerfields.js", "text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/suffix.js": { "title": "$:/core/modules/filters/suffix.js", "text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/tag.js": { "title": "$:/core/modules/filters/tag.js", "text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [];\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/tagging.js": { "title": "$:/core/modules/filters/tagging.js", "text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/tags.js": { "title": "$:/core/modules/filters/tags.js", "text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/title.js": { "title": "$:/core/modules/filters/title.js", "text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/untagged.js": { "title": "$:/core/modules/filters/untagged.js", "text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/wikiparserrules.js": { "title": "$:/core/modules/filters/wikiparserrules.js", "text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters/x-listops.js": { "title": "$:/core/modules/filters/x-listops.js", "text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1 || index > (results.length - 2)) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index < 0) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,prepend.length);\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n", "type": "application/javascript", "module-type": "filteroperator" }, "$:/core/modules/filters.js": { "title": "$:/core/modules/filters.js", "text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tif(results.length === 0) {\n\t\t\t\t\t\t\t// Main result so far is empty\n\t\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter\",function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikimethod" }, "$:/core/modules/info/platform.js": { "title": "$:/core/modules/info/platform.js", "text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n", "type": "application/javascript", "module-type": "info" }, "$:/core/modules/keyboard.js": { "title": "$:/core/modules/keyboard.js", "text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/language.js": { "title": "$:/core/modules/language.js", "text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/macros/changecount.js": { "title": "$:/core/modules/macros/changecount.js", "text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/contrastcolour.js": { "title": "$:/core/modules/macros/contrastcolour.js", "text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/csvtiddlers.js": { "title": "$:/core/modules/macros/csvtiddlers.js", "text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/displayshortcuts.js": { "title": "$:/core/modules/macros/displayshortcuts.js", "text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/dumpvariables.js": { "title": "$:/core/modules/macros/dumpvariables.js", "text": "/*\\\ntitle: $:/core/modules/macros/dumpvariables.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to dump all active variable values\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"dumpvariables\";\n\nexports.params = [\n];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\tvar output = [\"|!Variable |!Value |\"],\n\t\tvariables = [], variable;\n\tfor(variable in this.variables) {\n\t\tvariables.push(variable);\n\t}\n\tvariables.sort();\n\tfor(var index=0; index<variables.length; index++) {\n\t\tvar variable = variables[index];\n\t\toutput.push(\"|\" + variable + \" |<input size=50 value=<<\" + variable + \">>/> |\")\n\t}\n\treturn output.join(\"\\n\");\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/jsontiddler.js": { "title": "$:/core/modules/macros/jsontiddler.js", "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/jsontiddlers.js": { "title": "$:/core/modules/macros/jsontiddlers.js", "text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter) {\n\treturn this.wiki.getTiddlersAsJson(filter);\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/makedatauri.js": { "title": "$:/core/modules/macros/makedatauri.js", "text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type) {\n\treturn $tw.utils.makeDataUri(text,type);\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/now.js": { "title": "$:/core/modules/macros/now.js", "text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/qualify.js": { "title": "$:/core/modules/macros/qualify.js", "text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/resolvepath.js": { "title": "$:/core/modules/macros/resolvepath.js", "text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/macros/version.js": { "title": "$:/core/modules/macros/version.js", "text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/core/modules/parsers/audioparser.js": { "title": "$:/core/modules/parsers/audioparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/binaryparser.js": { "title": "$:/core/modules/parsers/binaryparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar BinaryParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/csvparser.js": { "title": "$:/core/modules/parsers/csvparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/htmlparser.js": { "title": "$:/core/modules/parsers/htmlparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/imageparser.js": { "title": "$:/core/modules/parsers/imageparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/utils/parseutils.js": { "title": "$:/core/modules/utils/parseutils.js", "text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/parsers/pdfparser.js": { "title": "$:/core/modules/parsers/pdfparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/textparser.js": { "title": "$:/core/modules/parsers/textparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/videoparser.js": { "title": "$:/core/modules/parsers/videoparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/wikiparser/rules/codeblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/codeinline.js": { "title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/commentblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/commentinline.js": { "title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/dash.js": { "title": "$:/core/modules/parsers/wikiparser/rules/dash.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": { "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": { "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": { "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": { "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": { "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": { "title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/entity.js": { "title": "$:/core/modules/parsers/wikiparser/rules/entity.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/extlink.js": { "title": "$:/core/modules/parsers/wikiparser/rules/extlink.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": { "title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": { "title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/heading.js": { "title": "$:/core/modules/parsers/wikiparser/rules/heading.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/horizrule.js": { "title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/html.js": { "title": "$:/core/modules/parsers/wikiparser/rules/html.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/image.js": { "title": "$:/core/modules/parsers/wikiparser/rules/image.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/import.js": { "title": "$:/core/modules/parsers/wikiparser/rules/import.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/list.js": { "title": "$:/core/modules/parsers/wikiparser/rules/list.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"p\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": { "title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/macrodef.js": { "title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": { "title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/prettylink.js": { "title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/quoteblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/rules.js": { "title": "$:/core/modules/parsers/wikiparser/rules/rules.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/styleblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/styleinline.js": { "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/syslink.js": { "title": "$:/core/modules/parsers/wikiparser/rules/syslink.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/table.js": { "title": "$:/core/modules/parsers/wikiparser/rules/table.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": { "title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/typedblock.js": { "title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/whitespace.js": { "title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/rules/wikilink.js": { "title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n", "type": "application/javascript", "module-type": "wikirule" }, "$:/core/modules/parsers/wikiparser/wikiparser.js": { "title": "$:/core/modules/parsers/wikiparser/wikiparser.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n", "type": "application/javascript", "module-type": "parser" }, "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": { "title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js", "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/pluginswitcher.js": { "title": "$:/core/modules/pluginswitcher.js", "text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/saver-handler.js": { "title": "$:/core/modules/saver-handler.js", "text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tthis.numChanges = 0;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\",\n\t\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/savers/andtidwiki.js": { "title": "$:/core/modules/savers/andtidwiki.js", "text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t// Strip the file://\n\tif(pathname.indexOf(\"file://\") === 0) {\n\t\tpathname = pathname.substr(7);\n\t}\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Save the file\n\twindow.twi.saveFile(pathname,text);\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/beaker.js": { "title": "$:/core/modules/savers/beaker.js", "text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/download.js": { "title": "$:/core/modules/savers/download.js", "text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/fsosaver.js": { "title": "$:/core/modules/savers/fsosaver.js", "text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/manualdownload.js": { "title": "$:/core/modules/savers/manualdownload.js", "text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/msdownload.js": { "title": "$:/core/modules/savers/msdownload.js", "text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/put.js": { "title": "$:/core/modules/savers/put.js", "text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/tiddlyfox.js": { "title": "$:/core/modules/savers/tiddlyfox.js", "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/tiddlyie.js": { "title": "$:/core/modules/savers/tiddlyie.js", "text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/twedit.js": { "title": "$:/core/modules/savers/twedit.js", "text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/savers/upload.js": { "title": "$:/core/modules/savers/upload.js", "text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n", "type": "application/javascript", "module-type": "saver" }, "$:/core/modules/server/authenticators/basic.js": { "title": "$:/core/modules/server/authenticators/basic.js", "text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + credentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n", "type": "application/javascript", "module-type": "authenticator" }, "$:/core/modules/server/authenticators/header.js": { "title": "$:/core/modules/server/authenticators/header.js", "text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\");\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n", "type": "application/javascript", "module-type": "authenticator" }, "$:/core/modules/server/routes/delete-tiddler.js": { "title": "$:/core/modules/server/routes/delete-tiddler.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-favicon.js": { "title": "$:/core/modules/server/routes/get-favicon.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-file.js": { "title": "$:/core/modules/server/routes/get-file.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\");\n\tvar filename = path.resolve($tw.boot.wikiPath,\"files\",decodeURIComponent(state.params[0])),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tif(err.code === \"ENOENT\") {\n\t\t\t\tstatus = 404;\n\t\t\t\tcontent = \"File '\" + filename + \"' not found\";\n\t\t\t} else if(err.code === \"EACCES\") {\n\t\t\t\tstatus = 403;\n\t\t\t\tcontent = \"You do not have permission to access the file '\" + filename + \"'\";\n\t\t\t} else {\n\t\t\t\tstatus = 500;\n\t\t\t\tcontent = err.toString();\n\t\t\t}\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-index.js": { "title": "$:/core/modules/server/routes/get-index.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": state.server.get(\"root-serve-type\")});\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\"));\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-login-basic.js": { "title": "$:/core/modules/server/routes/get-login-basic.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-status.js": { "title": "$:/core/modules/server/routes/get-status.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-tiddler-html.js": { "title": "$:/core/modules/server/routes/get-tiddler-html.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-tiddler.js": { "title": "$:/core/modules/server/routes/get-tiddler.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/get-tiddlers-json.js": { "title": "$:/core/modules/server/routes/get-tiddlers-json.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/tiddlers.json\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\tstate.wiki.forEachTiddler({sortField: \"title\"},function(title,tiddler) {\n\t\tvar tiddlerFields = {};\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tif(name !== \"text\") {\n\t\t\t\ttiddlerFields[name] = tiddler.getFieldString(name);\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\ttiddlers.push(tiddlerFields);\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/routes/put-tiddler.js": { "title": "$:/core/modules/server/routes/put-tiddler.js", "text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n", "type": "application/javascript", "module-type": "route" }, "$:/core/modules/server/server.js": { "title": "$:/core/modules/server/server.js", "text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"path-prefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"hist\" variable)\n*/\nServer.prototype.listen = function(port,host) {\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t$tw.utils.log(\"Serving on \" + this.protocol + \"://\" + host + \":\" + port,\"brown/orange\");\n\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Listen\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n", "type": "application/javascript", "module-type": "library" }, "$:/core/modules/browser-messaging.js": { "title": "$:/core/modules/browser-messaging.js", "text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\tconsole.log(\"browser-messaging: \",document.location.toString())\n\t\tconsole.log(\"browser-messaging: Received message from\",event.origin);\n\t\tconsole.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/commands.js": { "title": "$:/core/modules/startup/commands.js", "text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/favicon.js": { "title": "$:/core/modules/startup/favicon.js", "text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/info.js": { "title": "$:/core/modules/startup/info.js", "text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin\n\tvar fields = {\n\t\ttitle: \"$:/temp/info-plugin\",\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo();\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/load-modules.js": { "title": "$:/core/modules/startup/load-modules.js", "text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/password.js": { "title": "$:/core/modules/startup/password.js", "text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/render.js": { "title": "$:/core/modules/startup/render.js", "text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar DRAFT_TIDDLER_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only drafts have changed\n\t\tvar onlyDraftsHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !tiddler.hasField(\"draft.of\")) {\n\t\t\t\tonlyDraftsHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyDraftsHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = DRAFT_TIDDLER_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/rootwidget.js": { "title": "$:/core/modules/startup/rootwidget.js", "text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tevent.event.target.ownerDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tevent.event.target.ownerDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(event.event.target.ownerDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tevent.event.target.ownerDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tevent.event.target.ownerDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup.js": { "title": "$:/core/modules/startup.js", "text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-US\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t} \n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({wiki: $tw.wiki, dirtyTracking: !$tw.syncadaptor});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/story.js": { "title": "$:/core/modules/startup/story.js", "text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers();\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// If a target tiddler was specified add it to the history stack\n\tif(target && target !== \"\") {\n\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t}\n\t\t$tw.wiki.addToHistory(target);\n\t} else if(storyList.length > 0) {\n\t\t$tw.wiki.addToHistory(storyList[0]);\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/startup/windows.js": { "title": "$:/core/modules/startup/windows.js", "text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = title;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t},{\n\t\t\tname: \"click\",\n\t\t\thandlerObject: $tw.popup,\n\t\t\thandlerMethod: \"handleEvent\"\n\t\t}]);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/core/modules/story.js": { "title": "$:/core/modules/story.js", "text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/storyviews/classic.js": { "title": "$:/core/modules/storyviews/classic.js", "text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Get the current height of the tiddler\n\tvar currWidth = targetElement.offsetWidth,\n\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t// Remove the dom nodes of the widget at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"translateX(0px)\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.classic = ClassicStoryView;\n\n})();", "type": "application/javascript", "module-type": "storyview" }, "$:/core/modules/storyviews/pop.js": { "title": "$:/core/modules/storyviews/pop.js", "text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n", "type": "application/javascript", "module-type": "storyview" }, "$:/core/modules/storyviews/zoomin.js": { "title": "$:/core/modules/storyviews/zoomin.js", "text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n", "type": "application/javascript", "module-type": "storyview" }, "$:/core/modules/syncer.js": { "title": "$:/core/modules/syncer.js", "text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store. If a syncadaptor is used then individual tiddlers are synchronised through it. If there is no syncadaptor then the entire wiki is saved via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || this.throttleInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\t\tcolour: \"cyan\",\n\t\t\tenable: this.logging\n\t\t});\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\t// Tasks are {type: \"load\"/\"save\"/\"delete\", title:, queueTime:, lastModificationTime:}\n\tthis.taskQueue = {}; // Hashmap of tasks yet to be performed\n\tthis.taskInProgress = {}; // Hash of tasks in progress\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.syncToServer(changes);\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI) {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.filterFn.call(this.wiki);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: tiddler.fields.revision,\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title),\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t});\n};\n\n/*\nCreate an tiddlerInfo structure if it doesn't already exist\n*/\nSyncer.prototype.createTiddlerInfo = function(title) {\n\tif(!$tw.utils.hop(this.tiddlerInfo,title)) {\n\t\tthis.tiddlerInfo[title] = {\n\t\t\trevision: null,\n\t\t\tadaptorInfo: {},\n\t\t\tchangeCount: -1,\n\t\t\thasBeenLazyLoaded: false\n\t\t};\n\t}\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\treturn (this.numTasksInQueue() > 0) || (this.numTasksInProgress() > 0);\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields,hasBeenLazyLoaded) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: tiddlerFields.revision,\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title),\n\t\thasBeenLazyLoaded: hasBeenLazyLoaded !== undefined ? hasBeenLazyLoaded : true\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Set the various status tiddlers\n\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\tif(isLoggedIn) {\n\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tif(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tvar self = this;\n\t\tif(this.pollTimerId) {\n\t\t\tclearTimeout(this.pollTimerId);\n\t\t\tthis.pollTimerId = null;\n\t\t}\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\t// Trigger the next sync\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert($tw.language.getString(\"Error/RetrievingSkinny\") + \":\",err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null;\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Do a full load if we've already got a fat version of the tiddler\n\t\t\t\t\tif(tiddler && tiddler.fields.text !== undefined) {\n\t\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\t\tself.enqueueSyncTask({\n\t\t\t\t\t\t\ttype: \"load\",\n\t\t\t\t\t\t\ttitle: tiddlerFields.title\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Load the skinny version of the tiddler\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields,false);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nSynchronise a set of changes to the server\n*/\nSyncer.prototype.syncToServer = function(changes) {\n\tvar self = this,\n\t\tnow = Date.now(),\n\t\tfilteredChanges = this.filterFn.call(this.wiki,function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t$tw.utils.each(changes,function(change,title,object) {\n\t\t// Process the change if it is a deletion of a tiddler we're already syncing, or is on the filtered change list\n\t\tif((change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) || filteredChanges.indexOf(title) !== -1) {\n\t\t\t// Queue a task to sync this tiddler\n\t\t\tself.enqueueSyncTask({\n\t\t\t\ttype: change.deleted ? \"delete\" : \"save\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Don't lazy load the same tiddler twice\n\tvar info = this.tiddlerInfo[title];\n\tif(!info || !info.hasBeenLazyLoaded) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.filterFn.call(this.wiki).indexOf(title) !== -1) {\n\t\t\tthis.createTiddlerInfo(title);\n\t\t\tthis.tiddlerInfo[title].hasBeenLazyLoaded = true;\n\t\t\t// Queue up a sync task to load this tiddler\n\t\t\tthis.enqueueSyncTask({\n\t\t\t\ttype: \"load\",\n\t\t\t\ttitle: title\n\t\t\t});\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(null,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nQueue up a sync task. If there is already a pending task for the tiddler, just update the last modification time\n*/\nSyncer.prototype.enqueueSyncTask = function(task) {\n\tvar self = this,\n\t\tnow = Date.now();\n\t// Set the timestamps on this task\n\ttask.queueTime = now;\n\ttask.lastModificationTime = now;\n\t// Fill in some tiddlerInfo if the tiddler is one we haven't seen before\n\tthis.createTiddlerInfo(task.title);\n\t// Bail if this is a save and the tiddler is already at the changeCount that the server has\n\tif(task.type === \"save\" && this.wiki.getChangeCount(task.title) <= this.tiddlerInfo[task.title].changeCount) {\n\t\treturn;\n\t}\n\t// Check if this tiddler is already in the queue\n\tif($tw.utils.hop(this.taskQueue,task.title)) {\n\t\t// this.logger.log(\"Re-queueing up sync task with type:\",task.type,\"title:\",task.title);\n\t\tvar existingTask = this.taskQueue[task.title];\n\t\t// If so, just update the last modification time\n\t\texistingTask.lastModificationTime = task.lastModificationTime;\n\t\t// If the new task is a save then we upgrade the existing task to a save. Thus a pending load is turned into a save if the tiddler changes locally in the meantime. But a pending save is not modified to become a load\n\t\tif(task.type === \"save\" || task.type === \"delete\") {\n\t\t\texistingTask.type = task.type;\n\t\t}\n\t} else {\n\t\t// this.logger.log(\"Queuing up sync task with type:\",task.type,\"title:\",task.title);\n\t\t// If it is not in the queue, insert it\n\t\tthis.taskQueue[task.title] = task;\n\t\tthis.updateDirtyStatus();\n\t}\n\t// Process the queue\n\t$tw.utils.nextTick(function() {self.processTaskQueue.call(self);});\n};\n\n/*\nReturn the number of tasks in progress\n*/\nSyncer.prototype.numTasksInProgress = function() {\n\treturn $tw.utils.count(this.taskInProgress);\n};\n\n/*\nReturn the number of tasks in the queue\n*/\nSyncer.prototype.numTasksInQueue = function() {\n\treturn $tw.utils.count(this.taskQueue);\n};\n\n/*\nTrigger a timeout if one isn't already outstanding\n*/\nSyncer.prototype.triggerTimeout = function() {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},self.taskTimerInterval);\n\t}\n};\n\n/*\nProcess the task queue, performing the next task if appropriate\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress() === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(task) {\n\t\t\t// Remove the task from the queue and add it to the in progress list\n\t\t\tdelete this.taskQueue[task.title];\n\t\t\tthis.taskInProgress[task.title] = task;\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// Dispatch the task\n\t\t\tthis.dispatchTask(task,function(err) {\n\t\t\t\tif(err) {\n\t\t\t\t\tself.logger.alert(\"Sync error while processing '\" + task.title + \"':\\n\" + err);\n\t\t\t\t}\n\t\t\t\t// Mark that this task is no longer in progress\n\t\t\t\tdelete self.taskInProgress[task.title];\n\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t// Process the next task\n\t\t\t\tself.processTaskQueue.call(self);\n\t\t\t});\n\t\t} else {\n\t\t\t// Make sure we've set a time if there wasn't a task to perform, but we've still got tasks in the queue\n\t\t\tif(this.numTasksInQueue() > 0) {\n\t\t\t\tthis.triggerTimeout();\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nChoose the next applicable task\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar self = this,\n\t\tcandidateTask = null,\n\t\tnow = Date.now();\n\t// Select the best candidate task\n\t$tw.utils.each(this.taskQueue,function(task,title) {\n\t\t// Exclude the task if there's one of the same name in progress\n\t\tif($tw.utils.hop(self.taskInProgress,title)) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is a save and the tiddler has been modified recently, but not hit the fallback time\n\t\tif(task.type === \"save\" && (now - task.lastModificationTime) < self.throttleInterval &&\n\t\t\t(now - task.queueTime) < self.fallbackInterval) {\n\t\t\treturn;\n\t\t}\n\t\t// Exclude the task if it is newer than the current best candidate\n\t\tif(candidateTask && candidateTask.queueTime < task.queueTime) {\n\t\t\treturn;\n\t\t}\n\t\t// Now this is our best candidate\n\t\tcandidateTask = task;\n\t});\n\treturn candidateTask;\n};\n\n/*\nDispatch a task and invoke the callback\n*/\nSyncer.prototype.dispatchTask = function(task,callback) {\n\tvar self = this;\n\tif(task.type === \"save\") {\n\t\tvar changeCount = this.wiki.getChangeCount(task.title),\n\t\t\ttiddler = this.wiki.getTiddler(task.title);\n\t\tthis.logger.log(\"Dispatching 'save' task:\",task.title);\n\t\tif(tiddler) {\n\t\t\tthis.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn callback(err);\n\t\t\t\t}\n\t\t\t\t// Adjust the info stored about this tiddler\n\t\t\t\tself.tiddlerInfo[task.title] = {\n\t\t\t\t\tchangeCount: changeCount,\n\t\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\t\trevision: revision\n\t\t\t\t};\n\t\t\t\t// Invoke the callback\n\t\t\t\tcallback(null);\n\t\t\t},{\n\t\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t\t});\n\t\t} else {\n\t\t\tthis.logger.log(\" Not Dispatching 'save' task:\",task.title,\"tiddler does not exist\");\n\t\t\treturn callback(null);\n\t\t}\n\t} else if(task.type === \"load\") {\n\t\t// Load the tiddler\n\t\tthis.logger.log(\"Dispatching 'load' task:\",task.title);\n\t\tthis.syncadaptor.loadTiddler(task.title,function(err,tiddlerFields) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Store the tiddler\n\t\t\tif(tiddlerFields) {\n\t\t\t\tself.storeTiddler(tiddlerFields,true);\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else if(task.type === \"delete\") {\n\t\t// Delete the tiddler\n\t\tthis.logger.log(\"Dispatching 'delete' task:\",task.title);\n\t\tthis.syncadaptor.deleteTiddler(task.title,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tdelete self.tiddlerInfo[task.title];\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t},{\n\t\t\ttiddlerInfo: self.tiddlerInfo[task.title]\n\t\t});\n\t}\n};\n\nexports.Syncer = Syncer;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/tiddler.js": { "title": "$:/core/modules/tiddler.js", "text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = [];\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields.push(field + \": \" + this.getFieldString(field));\n\t\t\t}\n\t\t}\n\t}\n\treturn fields.join(\"\\n\");\n};\n\n/*\nCompare two tiddlers for equality\ntiddler: the tiddler to compare\nexcludeFields: array of field names to exclude from the comparison\n*/\nexports.isEqual = function(tiddler,excludeFields) {\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\treturn false;\n\t}\n\texcludeFields = excludeFields || [];\n\tvar self = this,\n\t\tdifferences = []; // Fields that have differences\n\t// Add to the differences array\n\tfunction addDifference(fieldName) {\n\t\t// Check for this field being excluded\n\t\tif(excludeFields.indexOf(fieldName) === -1) {\n\t\t\t// Save the field as a difference\n\t\t\t$tw.utils.pushTop(differences,fieldName);\n\t\t}\n\t}\n\t// Returns true if the two values of this field are equal\n\tfunction isFieldValueEqual(fieldName) {\n\t\tvar valueA = self.fields[fieldName],\n\t\t\tvalueB = tiddler.fields[fieldName];\n\t\t// Check for identical string values\n\t\tif(typeof(valueA) === \"string\" && typeof(valueB) === \"string\" && valueA === valueB) {\n\t\t\treturn true;\n\t\t}\n\t\t// Check for identical array values\n\t\tif($tw.utils.isArray(valueA) && $tw.utils.isArray(valueB) && $tw.utils.isArrayEqual(valueA,valueB)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise the fields must be different\n\t\treturn false;\n\t}\n\t// Compare our fields\n\tfor(var fieldName in this.fields) {\n\t\tif(!isFieldValueEqual(fieldName)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// There's a difference for every field in the other tiddler that we don't have\n\tfor(fieldName in tiddler.fields) {\n\t\tif(!(fieldName in this.fields)) {\n\t\t\taddDifference(fieldName);\n\t\t}\n\t}\n\t// Return whether there were any differences\n\treturn differences.length === 0;\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n", "type": "application/javascript", "module-type": "tiddlermethod" }, "$:/core/modules/upgraders/plugins.js": { "title": "$:/core/modules/upgraders/plugins.js", "text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"] && incomingTiddler.version) {\n\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n", "type": "application/javascript", "module-type": "upgrader" }, "$:/core/modules/upgraders/system.js": { "title": "$:/core/modules/upgraders/system.js", "text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n", "type": "application/javascript", "module-type": "upgrader" }, "$:/core/modules/upgraders/themetweaks.js": { "title": "$:/core/modules/upgraders/themetweaks.js", "text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n", "type": "application/javascript", "module-type": "upgrader" }, "$:/core/modules/utils/crypto.js": { "title": "$:/core/modules/utils/crypto.js", "text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/csv.js": { "title": "$:/core/modules/utils/csv.js", "text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/diff-match-patch/diff_match_patch.js": { "text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);", "type": "application/javascript", "title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js", "module-type": "library" }, "$:/core/modules/utils/dom/animations/slide.js": { "title": "$:/core/modules/utils/dom/animations/slide.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n", "type": "application/javascript", "module-type": "animation" }, "$:/core/modules/utils/dom/animator.js": { "title": "$:/core/modules/utils/dom/animator.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/browser.js": { "title": "$:/core/modules/utils/dom/browser.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/csscolorparser.js": { "title": "$:/core/modules/utils/dom/csscolorparser.js", "text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom.js": { "title": "$:/core/modules/utils/dom.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t}\n\tel.className = c.join(\" \");\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\ttry {\n\t\tif(window.localStorage) {\n\t\t\tlocalStorage.setItem(\"tw5-password-\" + name,password);\n\t\t}\n\t} catch(e) {\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\ttry {\n\t\treturn window.localStorage ? localStorage.getItem(\"tw5-password-\" + name) : \"\";\n\t} catch(e) {\n\t\treturn \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/dragndrop.js": { "title": "$:/core/modules/utils/dom/dragndrop.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/http.js": { "title": "$:/core/modules/utils/dom/http.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tdata = results.join(\"&\");\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,options.url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!$tw.utils.hop(headers,\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e);\n\t}\n\treturn request;\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/keyboard.js": { "title": "$:/core/modules/utils/dom/keyboard.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/modal.js": { "title": "$:/core/modules/utils/dom/modal.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler && tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/notifier.js": { "title": "$:/core/modules/utils/dom/notifier.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/popup.js": { "title": "$:/core/modules/utils/dom/popup.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/dom/scroller.js": { "title": "$:/core/modules/utils/dom/scroller.js", "text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/edition-info.js": { "title": "$:/core/modules/utils/edition-info.js", "text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils-node" }, "$:/core/modules/utils/fakedom.js": { "title": "$:/core/modules/utils/fakedom.js", "text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis.style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this.style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this.style) {\n\t\t\t\tstyle.push(s + \":\" + this.style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\")\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/utils/filesystem.js": { "title": "$:/core/modules/utils/filesystem.js", "text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils-node" }, "$:/core/modules/utils/logger.js": { "title": "$:/core/modules/utils/logger.js", "text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n}\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tif(this.enable && console !== undefined && console.log !== undefined) {\n\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t}\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/parsetree.js": { "title": "$:/core/modules/utils/parsetree.js", "text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/performance.js": { "title": "$:/core/modules/utils/performance.js", "text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap of current values of measurements\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n}\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tself.measures = {};\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\tfor(var m in self.measures) {\n\t\t\t\tself.logger.log(\"+\" + m + \": \" + self.measures[m].toFixed(2) + \"ms\");\n\t\t\t}\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments),\n\t\t\t\tvalue = self.measures[name] || 0;\n\t\t\tself.measures[name] = value + $tw.utils.timer(startTime);\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n", "type": "application/javascript", "module-type": "global" }, "$:/core/modules/utils/pluginmaker.js": { "title": "$:/core/modules/utils/pluginmaker.js", "text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/transliterate.js": { "title": "$:/core/modules/utils/transliterate.js", "text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/utils/utils.js": { "title": "$:/core/modules/utils/utils.js", "text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nCheck if an array is equal by value and by reference.\n*/\nexports.isArrayEqual = function(array1,array2) {\n\tif(array1 === array2) {\n\t\treturn true;\n\t}\n\tarray1 = array1 || [];\n\tarray2 = array2 || [];\n\tif(array1.length !== array2.length) {\n\t\treturn false;\n\t}\n\treturn array1.every(function(value,index) {\n\t\treturn value === array2[index];\n\t});\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nPush entries onto an array, removing them first if they already exist in the array\n\tarray: array to modify (assumed to be free of duplicates)\n\tvalue: a single value to push or an array of values to push\n*/\nexports.pushTop = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\t// Remove any array entries that are duplicated in the new values\n\t\tif(value.length !== 0) {\n\t\t\tif(array.length !== 0) {\n\t\t\t\tif(value.length < array.length) {\n\t\t\t\t\tfor(t=0; t<value.length; t++) {\n\t\t\t\t\t\tp = array.indexOf(value[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(p,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor(t=array.length-1; t>=0; t--) {\n\t\t\t\t\t\tp = value.indexOf(array[t]);\n\t\t\t\t\t\tif(p !== -1) {\n\t\t\t\t\t\t\tarray.splice(t,1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Push the values on top of the main array\n\t\t\tarray.push.apply(array,value);\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t\tarray.push(value);\n\t}\n\treturn array;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds());\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10);\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\tif($tw.browser) {\n\t\t// TODO\n\t\tthrow \"$tw.utils.base64Decode() doesn't work in the browser\";\n\t} else {\n\t\treturn Buffer.from(string64,\"base64\").toString();\n\t}\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tparts.push(\"data:\");\n\tparts.push(type);\n\tparts.push(isBase64 ? \";base64\" : \"\");\n\tparts.push(\",\");\n\tparts.push(isBase64 ? text : encodeURIComponent(text));\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "utils" }, "$:/core/modules/widgets/action-createtiddler.js": { "title": "$:/core/modules/widgets/action-createtiddler.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.generateNewTitle(this.actionBaseTitle),\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-deletefield.js": { "title": "$:/core/modules/widgets/action-deletefield.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-deletetiddler.js": { "title": "$:/core/modules/widgets/action-deletetiddler.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-listops.js": { "title": "$:/core/modules/widgets/action-listops.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-navigate.js": { "title": "$:/core/modules/widgets/action-navigate.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-sendmessage.js": { "title": "$:/core/modules/widgets/action-sendmessage.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/action-setfield.js": { "title": "$:/core/modules/widgets/action-setfield.js", "text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/browse.js": { "title": "$:/core/modules/widgets/browse.js", "text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/button.js": { "title": "$:/core/modules/widgets/button.js", "text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/checkbox.js": { "title": "$:/core/modules/widgets/checkbox.js", "text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/codeblock.js": { "title": "$:/core/modules/widgets/codeblock.js", "text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/count.js": { "title": "$:/core/modules/widgets/count.js", "text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = undefined;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/diff-text.js": { "title": "$:/core/modules/widgets/diff-text.js", "text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/draggable.js": { "title": "$:/core/modules/widgets/draggable.js", "text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedTiddlers.tag || changedTiddlers[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/droppable.js": { "title": "$:/core/modules/widgets/droppable.js", "text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t]);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/dropzone.js": { "title": "$:/core/modules/widgets/dropzone.js", "text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = \"tc-dropzone\";\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"}\n\t]);\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-binary.js": { "title": "$:/core/modules/widgets/edit-binary.js", "text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Construct the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"transclude\",\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t}\n\t}]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-bitmap.js": { "title": "$:/core/modules/widgets/edit-bitmap.js", "text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370;\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\tif(tiddler) {\n\t\t// data URIs look like \"data:<type>;base64,<text>\"\n\t\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\t\tposColon = dataURL.indexOf(\":\"),\n\t\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\t\tposComma = dataURL.indexOf(\",\"),\n\t\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\t\ttext = dataURL.substring(posComma+1);\n\t\tvar update = {type: type, text: text};\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n\t}\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-shortcut.js": { "title": "$:/core/modules/widgets/edit-shortcut.js", "text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit-text.js": { "title": "$:/core/modules/widgets/edit-text.js", "text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/edit.js": { "title": "$:/core/modules/widgets/edit.js", "text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/element.js": { "title": "$:/core/modules/widgets/element.js", "text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\ttag = \"h\" + headingLevel;\n\t}\n\t// Create the DOM node\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/encrypt.js": { "title": "$:/core/modules/widgets/encrypt.js", "text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/entity.js": { "title": "$:/core/modules/widgets/entity.js", "text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/fieldmangler.js": { "title": "$:/core/modules/widgets/fieldmangler.js", "text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/fields.js": { "title": "$:/core/modules/widgets/fields.js", "text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t// Get the exclusion list\n\tvar exclude;\n\tif(this.exclude) {\n\t\texclude = this.exclude.split(\" \");\n\t} else {\n\t\texclude = [\"text\"]; \n\t}\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tfields.push(fieldName);\n\t\t\t}\n\t\t}\n\t\tfields.sort();\n\t\tfor(var f=0; f<fields.length; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tif(exclude.indexOf(fieldName) === -1) {\n\t\t\t\tvar row = this.template,\n\t\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\t\tif(reMatch) {\n\t\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\t\ttext.push(row);\n\t\t\t}\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude || changedAttributes.stripTitlePrefix || changedTiddlers[this.tiddlerTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/image.js": { "title": "$:/core/modules/widgets/image.js", "text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/importvariables.js": { "title": "$:/core/modules/widgets/importvariables.js", "text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar self = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\tvar widgetStackStart,widgetStackEnd;\n\tfunction addWidgetNode(widgetNode) {\n\t\tif(widgetNode) {\n\t\t\tif(!widgetStackStart && !widgetStackEnd) {\n\t\t\t\twidgetStackStart = widgetNode;\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t} else {\n\t\t\t\twidgetStackEnd.children = [widgetNode];\n\t\t\t\twidgetStackEnd = widgetNode;\n\t\t\t}\n\t\t}\n\t}\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = self.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\taddWidgetNode({\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t});\n\t\t\t\tparseTreeNode = parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\t// Add our own children to the end of the pile\n\tvar parseTreeNodes;\n\tif(widgetStackStart && widgetStackEnd) {\n\t\tparseTreeNodes = [widgetStackStart];\n\t\twidgetStackEnd.children = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/keyboard.js": { "title": "$:/core/modules/widgets/keyboard.js", "text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.key = this.getAttribute(\"key\");\n\tthis.tag = this.getAttribute(\"tag\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/link.js": { "title": "$:/core/modules/widgets/link.js", "text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/linkcatcher.js": { "title": "$:/core/modules/widgets/linkcatcher.js", "text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/list.js": { "title": "$:/core/modules/widgets/list.js", "text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/macrocall.js": { "title": "$:/core/modules/widgets/macrocall.js", "text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/navigator.js": { "title": "$:/core/modules/widgets/navigator.js", "text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList}\n\t));\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tvar p = storyList.indexOf(title);\n\twhile(p !== -1) {\n\t\tstoryList.splice(p,1);\n\t\tp = storyList.indexOf(title);\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tvar pos = storyList.indexOf(oldTitle);\n\tif(pos !== -1) {\n\t\tstoryList[pos] = newTitle;\n\t\tdo {\n\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\tif(pos !== -1) {\n\t\t\t\tstoryList.splice(pos,1);\n\t\t\t}\n\t\t} while(pos !== -1);\n\t} else {\n\t\tstoryList.splice(0,0,newTitle);\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{openLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),openLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")});\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.wiki.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.wiki.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-renaming-tiddler\", event);\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\t$tw.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/password.js": { "title": "$:/core/modules/widgets/password.js", "text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/qualify.js": { "title": "$:/core/modules/widgets/qualify.js", "text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/radio.js": { "title": "$:/core/modules/widgets/radio.js", "text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/range.js": { "title": "$:/core/modules/widgets/range.js", "text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\n\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif($tw.utils.hop(tiddler.fields,this.tiddlerField)) {\n\t\t\tvalue = tiddler.fields[this.tiddlerField] || \"\";\n\t\t} else {\n\t\t\tvalue = this.defaultValue || \"\";\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleChangeEvent = function(event) {\n\tthis.wiki.setText(this.tiddlerTitle ,this.tiddlerField, null,this.inputDomNode.value);\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/raw.js": { "title": "$:/core/modules/widgets/raw.js", "text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/reveal.js": { "title": "$:/core/modules/widgets/reveal.js", "text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tdomNode.style.left = Math.max(0, this.popup.left - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = Math.max(0, this.popup.top - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = Math.max(0, this.popup.top + this.popup.height - domNode.offsetHeight) + \"px\";\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tdomNode.style.left = (this.popup.left + this.popup.width) + \"px\";\n\t\t\tdomNode.style.top = this.popup.top + \"px\";\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tdomNode.style.left = Math.max(0, this.popup.left + this.popup.width - domNode.offsetWidth) + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tdomNode.style.left = this.popup.left + \"px\";\n\t\t\tdomNode.style.top = (this.popup.top + this.popup.height) + \"px\";\n\t\t\tbreak;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state = this.stateTitle ? (this.stateField ? this.wiki.getTiddler(this.stateTitle).getFieldString(this.stateField) :\n\t\t(this.stateIndex ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) :\n\t\t\tthis.wiki.getTiddlerText(this.stateTitle))) || this[\"default\"] || this.getVariable(\"currentTiddler\") :\n\t\t(this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"]);\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) == 0);\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) == 0);\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen || (this.stateTiddlerTitle && changedTiddlers[this.stateTiddlerTitle])) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/scrollable.js": { "title": "$:/core/modules/widgets/scrollable.js", "text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/select.js": { "title": "$:/core/modules/widgets/select.js", "text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tif(values.indexOf(select.children[i].value) != -1) {\n\t\t\t\tselect.children[i].selected = true;\n\t\t\t}\n\t\t}\n\t\t\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/set.js": { "title": "$:/core/modules/widgets/set.js", "text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/text.js": { "title": "$:/core/modules/widgets/text.js", "text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/tiddler.js": { "title": "$:/core/modules/widgets/tiddler.js", "text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/transclude.js": { "title": "$:/core/modules/widgets/transclude.js", "text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/vars.js": { "title": "$:/core/modules/widgets/vars.js", "text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/view.js": { "title": "$:/core/modules/widgets/view.js", "text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/widget.js": { "title": "$:/core/modules/widgets/widget.js", "text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tif(arguments.length > 0) {\n\t\tthis.initialise(parseTreeNode,options);\n\t}\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.render(parent,nextSibling);\n\t});\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar self = this,\n\t\trefreshed = false;\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\trefreshed = childWidget.refresh(changedTiddlers) || refreshed;\n\t});\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/widgets/wikify.js": { "title": "$:/core/modules/widgets/wikify.js", "text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/core/modules/wiki-bulkops.js": { "title": "$:/core/modules/wiki-bulkops.js", "text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = (tiddler.fields.tags || []).slice(0),\n\t\t\t\t\tlist = (tiddler.fields.list || []).slice(0),\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n", "type": "application/javascript", "module-type": "wikimethod" }, "$:/core/modules/wiki.js": { "title": "$:/core/modules/wiki.js", "text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\t// Count up the links\n\t\tvar links = [],\n\t\t\tcheckParseTree = function(parseTree) {\n\t\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\tif(parser) {\n\t\t\tcheckParseTree(parser.tree);\n\t\t}\n\t\treturn links;\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinks = [];\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\tbacklinks.push(title);\n\t\t}\n\t});\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\tvar self = this;\n\treturn this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\tvar tagmap = self.getTagMap();\n\t\treturn self.sortByList(tagmap[tag],tag);\n\t});\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\tfunction replaceItem(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\treplaceItem(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\treplaceItem(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// We get the currPos //after// figuring out the newPos, because recursive replaceItem calls might alter title's currPos\n\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\tif(newPos === -1) {\n\t\t\t\t\tnewPos = currPos;\n\t\t\t\t}\n\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t}\n\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\treplaceItem(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(tiddler.fields.text !== undefined) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text;\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n})();\n\n", "type": "application/javascript", "module-type": "wikimethod" }, "$:/palettes/Blanca": { "title": "$:/palettes/Blanca", "name": "Blanca", "description": "A clean white palette to let you focus", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Blue": { "title": "$:/palettes/Blue", "name": "Blue", "description": "A blue theme", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Muted": { "title": "$:/palettes/Muted", "name": "Muted", "description": "Bright tiddlers on a muted background", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/ContrastLight": { "title": "$:/palettes/ContrastLight", "name": "Contrast (Light)", "description": "High contrast and unambiguous (light version)", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n" }, "$:/palettes/ContrastDark": { "title": "$:/palettes/ContrastDark", "name": "Contrast (Dark)", "description": "High contrast and unambiguous (dark version)", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n" }, "$:/palettes/DarkPhotos": { "title": "$:/palettes/DarkPhotos", "created": "20150402111612188", "description": "Good with dark photo backgrounds", "modified": "20150402112344080", "name": "DarkPhotos", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Rocker": { "title": "$:/palettes/Rocker", "name": "Rocker", "description": "A dark theme", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/SolarFlare": { "title": "$:/palettes/SolarFlare", "name": "Solar Flare", "description": "Warm, relaxing earth colours", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/palettes/Vanilla": { "title": "$:/palettes/Vanilla", "name": "Vanilla", "description": "Pale and unobtrusive", "tags": "$:/tags/Palette", "type": "application/x-tiddler-dictionary", "text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n" }, "$:/core/readme": { "title": "$:/core/readme", "text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n" }, "$:/library/sjcl.js/license": { "title": "$:/library/sjcl.js/license", "type": "text/plain", "text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA" }, "$:/core/templates/MOTW.html": { "title": "$:/core/templates/MOTW.html", "text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> " }, "$:/core/templates/alltiddlers.template.html": { "title": "$:/core/templates/alltiddlers.template.html", "type": "text/vnd.tiddlywiki-html", "text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n" }, "$:/core/templates/canonical-uri-external-image": { "title": "$:/core/templates/canonical-uri-external-image", "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>" }, "$:/core/templates/canonical-uri-external-raw": { "title": "$:/core/templates/canonical-uri-external-raw", "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>" }, "$:/core/templates/canonical-uri-external-text": { "title": "$:/core/templates/canonical-uri-external-text", "text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid" }, "$:/core/templates/css-tiddler": { "title": "$:/core/templates/css-tiddler", "text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`" }, "$:/core/templates/exporters/CsvFile": { "title": "$:/core/templates/exporters/CsvFile", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/CsvFile}}", "extension": ".csv", "text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n" }, "$:/core/templates/exporters/JsonFile": { "title": "$:/core/templates/exporters/JsonFile", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/JsonFile}}", "extension": ".json", "text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n" }, "$:/core/templates/exporters/StaticRiver": { "title": "$:/core/templates/exporters/StaticRiver", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/StaticRiver}}", "extension": ".html", "text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n" }, "$:/core/templates/exporters/StaticRiver/Content": { "title": "$:/core/templates/exporters/StaticRiver/Content", "text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n" }, "$:/core/templates/exporters/TidFile": { "title": "$:/core/templates/exporters/TidFile", "tags": "$:/tags/Exporter", "description": "{{$:/language/Exporters/TidFile}}", "extension": ".tid", "text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>" }, "$:/core/save/all-external-js": { "title": "$:/core/save/all-external-js", "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n" }, "$:/core/templates/tiddlywiki5.js": { "title": "$:/core/templates/tiddlywiki5.js", "text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n" }, "$:/core/templates/tiddlywiki5.js/tiddlers": { "title": "$:/core/templates/tiddlywiki5.js/tiddlers", "text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n$tw.preloadTiddlerArray([{\n\ttitle: \"$:/config/SaveWikiButton/Template\",\n\ttext: \"$:/core/save/all-external-js\"\n}]);\n`\n" }, "$:/core/templates/tiddlywiki5-external-js.html": { "title": "$:/core/templates/tiddlywiki5-external-js.html", "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\">\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n" }, "$:/core/templates/html-div-tiddler": { "title": "$:/core/templates/html-div-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n" }, "$:/core/templates/html-tiddler": { "title": "$:/core/templates/html-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />" }, "$:/core/templates/javascript-tiddler": { "title": "$:/core/templates/javascript-tiddler", "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`" }, "$:/core/templates/json-tiddler": { "title": "$:/core/templates/json-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>" }, "$:/core/templates/module-tiddler": { "title": "$:/core/templates/module-tiddler", "text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`" }, "$:/core/templates/plain-text-tiddler": { "title": "$:/core/templates/plain-text-tiddler", "text": "<$view field=\"text\" format=\"text\" />" }, "$:/core/templates/raw-static-tiddler": { "title": "$:/core/templates/raw-static-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />" }, "$:/core/save/all": { "title": "$:/core/save/all", "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/save/empty": { "title": "$:/core/save/empty", "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/save/lazy-all": { "title": "$:/core/save/lazy-all", "text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/save/lazy-images": { "title": "$:/core/save/lazy-images", "text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n" }, "$:/core/templates/server/static.sidebar.wikitext": { "title": "$:/core/templates/server/static.sidebar.wikitext", "text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n" }, "$:/core/templates/server/static.tiddler.html": { "title": "$:/core/templates/server/static.tiddler.html", "text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>" }, "$:/core/templates/server/static.tiddler.wikitext": { "title": "$:/core/templates/server/static.tiddler.wikitext", "text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n" }, "$:/core/templates/single.tiddler.window": { "title": "$:/core/templates/single.tiddler.window", "text": "<$set name=\"themeTitle\" value={{$:/view}}>\n\n<$set name=\"tempCurrentTiddler\" value=<<currentTiddler>>>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=<<tempCurrentTiddler>>>\n\n<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</$importvariables>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n" }, "$:/core/templates/split-recipe": { "title": "$:/core/templates/split-recipe", "text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n" }, "$:/core/templates/static-tiddler": { "title": "$:/core/templates/static-tiddler", "text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>" }, "$:/core/templates/static.area": { "title": "$:/core/templates/static.area", "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n" }, "$:/core/templates/static.content": { "title": "$:/core/templates/static.content", "text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n" }, "$:/core/templates/static.template.css": { "title": "$:/core/templates/static.template.css", "text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n" }, "$:/core/templates/static.template.html": { "title": "$:/core/templates/static.template.html", "type": "text/vnd.tiddlywiki-html", "text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n" }, "$:/core/templates/static.tiddler.html": { "title": "$:/core/templates/static.tiddler.html", "text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`" }, "$:/core/templates/store.area.template.html": { "title": "$:/core/templates/store.area.template.html", "text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>" }, "$:/core/templates/tid-tiddler": { "title": "$:/core/templates/tid-tiddler", "text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />" }, "$:/core/templates/tiddler-metadata": { "title": "$:/core/templates/tiddler-metadata", "text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>" }, "$:/core/templates/tiddlywiki5.html": { "title": "$:/core/templates/tiddlywiki5.html", "text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n</html>\n" }, "$:/core/templates/version": { "title": "$:/core/templates/version", "text": "<<version>>" }, "$:/core/templates/wikified-tiddler": { "title": "$:/core/templates/wikified-tiddler", "text": "<$transclude />" }, "$:/core/ui/AboveStory/tw2-plugin-check": { "title": "$:/core/ui/AboveStory/tw2-plugin-check", "tags": "$:/tags/AboveStory", "text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n" }, "$:/core/ui/Actions/new-image": { "title": "$:/core/ui/Actions/new-image", "tags": "$:/tags/Actions", "description": "create a new image tiddler", "text": "\\define get-type()\nimage/$(imageType)$\n\\end\n<$vars imageType={{$:/config/NewImageType}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>>/>\n</$vars>\n" }, "$:/core/ui/Actions/new-journal": { "title": "$:/core/ui/Actions/new-journal", "tags": "$:/tags/Actions", "description": "create a new journal tiddler", "text": "<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n" }, "$:/core/ui/Actions/new-tiddler": { "title": "$:/core/ui/Actions/new-tiddler", "tags": "$:/tags/Actions", "description": "create a new empty tiddler", "text": "<$action-sendmessage $message=\"tm-new-tiddler\"/>\n" }, "$:/core/ui/AdvancedSearch/Filter": { "title": "$:/core/ui/AdvancedSearch/Filter", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/Filter/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": { "title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export", "tags": "$:/tags/AdvancedSearch/FilterButton", "text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Shadows": { "title": "$:/core/ui/AdvancedSearch/Shadows", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/Shadows/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/Standard": { "title": "$:/core/ui/AdvancedSearch/Standard", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/Standard/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n" }, "$:/core/ui/AdvancedSearch/System": { "title": "$:/core/ui/AdvancedSearch/System", "tags": "$:/tags/AdvancedSearch", "caption": "{{$:/language/Search/System/Caption}}", "text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n" }, "$:/AdvancedSearch": { "title": "$:/AdvancedSearch", "icon": "$:/core/images/advanced-search-button", "color": "#bbb", "text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n" }, "$:/core/ui/AlertTemplate": { "title": "$:/core/ui/AlertTemplate", "text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/delete-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DD MM YYYY\"/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n" }, "$:/core/ui/BinaryWarning": { "title": "$:/core/ui/BinaryWarning", "text": "\\define lingo-base() $:/language/BinaryWarning/\n<div class=\"tc-binary-warning\">\n\n<<lingo Prompt>>\n\n</div>\n" }, "$:/core/ui/Components/plugin-info": { "title": "$:/core/ui/Components/plugin-info", "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1>\n''<$view field=\"description\"><$view field=\"title\"/></$view>'' $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n" }, "$:/core/ui/Components/tag-link": { "title": "$:/core/ui/Components/tag-link", "text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>" }, "$:/core/ui/ControlPanel/Advanced": { "title": "$:/core/ui/ControlPanel/Advanced", "tags": "$:/tags/ControlPanel/Info", "caption": "{{$:/language/ControlPanel/Advanced/Caption}}", "text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n" }, "$:/core/ui/ControlPanel/Appearance": { "title": "$:/core/ui/ControlPanel/Appearance", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Appearance/Caption}}", "text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n" }, "$:/core/ui/ControlPanel/Basics": { "title": "$:/core/ui/ControlPanel/Basics", "tags": "$:/tags/ControlPanel/Info", "caption": "{{$:/language/ControlPanel/Basics/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Tags\" default=\"\" tag=\"input\"/> |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n" }, "$:/core/ui/ControlPanel/EditorTypes": { "title": "$:/core/ui/ControlPanel/EditorTypes", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ControlPanel/Info": { "title": "$:/core/ui/ControlPanel/Info", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Info/Caption}}", "text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n" }, "$:/core/ui/ControlPanel/KeyboardShortcuts": { "title": "$:/core/ui/ControlPanel/KeyboardShortcuts", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip=<<lingo Remove/Hint>>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n×\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>prefix[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ControlPanel/LoadedModules": { "title": "$:/core/ui/ControlPanel/LoadedModules", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n" }, "$:/core/ui/ControlPanel/Modals/AddPlugins": { "title": "$:/core/ui/ControlPanel/Modals/AddPlugins", "subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}", "text": "\\define install-plugin-button()\n<$button>\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\"\"\">\n{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\n</$list>\n</$button>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-small-icon\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<h1><$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n</div>\n<div class=\"tc-plugin-info-chunk\">\n<<install-plugin-button>>\n</div>\n</div>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\" emptyMessage=\"\"\"{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\"\"\">\n<em>\n{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}\n</em>\n</$list>\n</div>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[description]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<div class=\"tc-plugin-library\">\n\n!! <$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link>\n\n//<$view field=\"url\"/>//\n\n<$transclude/>\n\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n\n<<display-server-connection>>\n</div>\n</$list>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n" }, "$:/core/ui/ControlPanel/Palette": { "title": "$:/core/ui/ControlPanel/Palette", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/Palette/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/snippets/paletteeditor}}\n\n</$reveal>\n\n" }, "$:/core/ui/ControlPanel/Parsing": { "title": "$:/core/ui/ControlPanel/Parsing", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/Parsing/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>" }, "$:/core/ui/ControlPanel/Plugins/Add/Languages": { "title": "$:/core/ui/ControlPanel/Plugins/Add/Languages", "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)", "text": "<<display-server-assets language>>\n" }, "$:/core/ui/ControlPanel/Plugins/Add/Plugins": { "title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)", "text": "<<display-server-assets plugin>>\n" }, "$:/core/ui/ControlPanel/Plugins/Add/Themes": { "title": "$:/core/ui/ControlPanel/Plugins/Add/Themes", "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)", "text": "<<display-server-assets theme>>\n" }, "$:/core/ui/ControlPanel/Plugins/AddPlugins": { "title": "$:/core/ui/ControlPanel/Plugins/AddPlugins", "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green\" style=\"background:blue;\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n" }, "$:/core/ui/ControlPanel/Plugins/Installed/Languages": { "title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages", "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)", "text": "<<plugin-table language>>\n" }, "$:/core/ui/ControlPanel/Plugins/Installed/Plugins": { "title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)", "text": "<<plugin-table plugin>>\n" }, "$:/core/ui/ControlPanel/Plugins/Installed/Themes": { "title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes", "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)", "text": "<<plugin-table theme>>\n" }, "$:/core/ui/ControlPanel/Plugins": { "title": "$:/core/ui/ControlPanel/Plugins", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Plugins/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[description]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n" }, "$:/core/ui/ControlPanel/Saving/DownloadSaver": { "title": "$:/core/ui/ControlPanel/Saving/DownloadSaver", "tags": "$:/tags/ControlPanel/Saving", "caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Saving/General": { "title": "$:/core/ui/ControlPanel/Saving/General", "tags": "$:/tags/ControlPanel/Saving", "caption": "{{$:/language/ControlPanel/Saving/General/Caption}}", "list-before": "", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Saving/TiddlySpot": { "title": "$:/core/ui/ControlPanel/Saving/TiddlySpot", "tags": "$:/tags/ControlPanel/Saving", "caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>" }, "$:/core/ui/ControlPanel/Saving": { "title": "$:/core/ui/ControlPanel/Saving", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Saving/Caption}}", "text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n" }, "$:/core/buttonstyles/Borderless": { "title": "$:/core/buttonstyles/Borderless", "tags": "$:/tags/ToolbarButtonStyle", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}", "text": "tc-btn-invisible" }, "$:/core/buttonstyles/Boxed": { "title": "$:/core/buttonstyles/Boxed", "tags": "$:/tags/ToolbarButtonStyle", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}", "text": "tc-btn-boxed" }, "$:/core/buttonstyles/Rounded": { "title": "$:/core/buttonstyles/Rounded", "tags": "$:/tags/ToolbarButtonStyle", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}", "text": "tc-btn-rounded" }, "$:/core/ui/ControlPanel/Settings/CamelCase": { "title": "$:/core/ui/ControlPanel/Settings/CamelCase", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": { "title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab", "caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}", "tags": "$:/tags/ControlPanel/Settings", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": { "title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab", "caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}", "tags": "$:/tags/ControlPanel/Settings", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/EditorToolbar": { "title": "$:/core/ui/ControlPanel/Settings/EditorToolbar", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n" }, "$:/core/ui/ControlPanel/Settings/InfoPanelMode": { "title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/LinkToBehaviour": { "title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/MissingLinks": { "title": "$:/core/ui/ControlPanel/Settings/MissingLinks", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n" }, "$:/core/ui/ControlPanel/Settings/NavigationAddressBar": { "title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/NavigationHistory": { "title": "$:/core/ui/ControlPanel/Settings/NavigationHistory", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": { "title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": { "title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings/TitleLinks": { "title": "$:/core/ui/ControlPanel/Settings/TitleLinks", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n" }, "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": { "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n" }, "$:/core/ui/ControlPanel/Settings/ToolbarButtons": { "title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons", "tags": "$:/tags/ControlPanel/Settings", "caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n" }, "$:/core/ui/ControlPanel/Settings": { "title": "$:/core/ui/ControlPanel/Settings", "tags": "$:/tags/ControlPanel", "caption": "{{$:/language/ControlPanel/Settings/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n" }, "$:/core/ui/ControlPanel/StoryView": { "title": "$:/core/ui/ControlPanel/StoryView", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/StoryView/Caption}}", "text": "{{$:/snippets/viewswitcher}}\n" }, "$:/core/ui/ControlPanel/Stylesheets": { "title": "$:/core/ui/ControlPanel/Stylesheets", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n" }, "$:/core/ui/ControlPanel/Theme": { "title": "$:/core/ui/ControlPanel/Theme", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/Theme/Caption}}", "text": "{{$:/snippets/themeswitcher}}\n" }, "$:/core/ui/ControlPanel/TiddlerFields": { "title": "$:/core/ui/ControlPanel/TiddlerFields", "tags": "$:/tags/ControlPanel/Advanced", "caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}" }, "$:/core/ui/ControlPanel/Toolbars/EditToolbar": { "title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>" }, "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": { "title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate", "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n" }, "$:/core/ui/ControlPanel/Toolbars/EditorToolbar": { "title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n" }, "$:/core/ui/ControlPanel/Toolbars/ItemTemplate": { "title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate", "text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n" }, "$:/core/ui/ControlPanel/Toolbars/PageControls": { "title": "$:/core/ui/ControlPanel/Toolbars/PageControls", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/ControlPanel/Toolbars/ViewToolbar": { "title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar", "tags": "$:/tags/ControlPanel/Toolbars", "caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/ControlPanel/Toolbars": { "title": "$:/core/ui/ControlPanel/Toolbars", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ControlPanel/Toolbars/Caption}}", "text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n" }, "$:/ControlPanel": { "title": "$:/ControlPanel", "icon": "$:/core/images/options-button", "color": "#bbb", "text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n" }, "$:/core/ui/DefaultSearchResultList": { "title": "$:/core/ui/DefaultSearchResultList", "tags": "$:/tags/SearchResults", "caption": "{{$:/language/Search/DefaultResults/Caption}}", "text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n" }, "$:/core/ui/EditTemplate/body/preview/diffs-current": { "title": "$:/core/ui/EditTemplate/body/preview/diffs-current", "tags": "$:/tags/EditPreview", "caption": "differences from current", "list-after": "$:/core/ui/EditTemplate/body/preview/output", "text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n" }, "$:/core/ui/EditTemplate/body/preview/diffs-shadow": { "title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow", "tags": "$:/tags/EditPreview", "caption": "differences from shadow (if any)", "list-after": "$:/core/ui/EditTemplate/body/preview/output", "text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n" }, "$:/core/ui/EditTemplate/body/preview/output": { "title": "$:/core/ui/EditTemplate/body/preview/output", "tags": "$:/tags/EditPreview", "caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}", "text": "<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n" }, "$:/state/showeditpreview": { "title": "$:/state/showeditpreview", "text": "no" }, "$:/core/ui/EditTemplate/body/editor": { "title": "$:/core/ui/EditTemplate/body/editor", "text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n" }, "$:/core/ui/EditTemplate/body/toolbar/button": { "title": "$:/core/ui/EditTemplate/body/toolbar/button", "text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>" }, "$:/core/ui/EditTemplate/body": { "title": "$:/core/ui/EditTemplate/body", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\"></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n" }, "$:/core/ui/EditTemplate/controls": { "title": "$:/core/ui/EditTemplate/controls", "tags": "$:/tags/EditTemplate", "text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n" }, "$:/core/ui/EditTemplate/fields": { "title": "$:/core/ui/EditTemplate/fields", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define new-field()\n<$vars name={{$:/temp/newfieldname}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>>\n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=\"$:/temp/newfieldname\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</span>\n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/newfieldname\">\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<<currentField>>\n</$link>\n</$list>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$edit-text tiddler=\"$:/temp/newfieldvalue\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\"/>\n</span>\n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n" }, "$:/core/ui/EditTemplate/shadow": { "title": "$:/core/ui/EditTemplate/shadow", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>" }, "$:/core/ui/EditTemplate/tags": { "title": "$:/core/ui/EditTemplate/tags", "tags": "$:/tags/EditTemplate", "text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">×</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n\\define tag-picker-actions()\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n</$fieldmangler>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</div>\n" }, "$:/core/ui/EditTemplate/title": { "title": "$:/core/ui/EditTemplate/title", "tags": "$:/tags/EditTemplate", "text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus=\"true\"/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n" }, "$:/core/ui/EditTemplate/type": { "title": "$:/core/ui/EditTemplate/type", "tags": "$:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/EditTemplate/\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-popup-handle\"/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n" }, "$:/core/ui/EditTemplate": { "title": "$:/core/ui/EditTemplate", "text": "\\define actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n\\define frame-classes()\ntc-tiddler-frame tc-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$\n\\end\n<div class=<<frame-classes>> data-tiddler-title=<<currentTiddler>>>\n<$fieldmangler>\n<$set name=\"storyTiddler\" value=<<currentTiddler>>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$set>\n</$fieldmangler>\n</div>\n" }, "$:/core/ui/Buttons/cancel": { "title": "$:/core/ui/Buttons/cancel", "tags": "$:/tags/EditToolbar", "caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}", "description": "{{$:/language/Buttons/Cancel/Hint}}", "text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/delete": { "title": "$:/core/ui/Buttons/delete", "tags": "$:/tags/EditToolbar $:/tags/ViewToolbar", "caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}", "description": "{{$:/language/Buttons/Delete/Hint}}", "text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/save": { "title": "$:/core/ui/Buttons/save", "tags": "$:/tags/EditToolbar", "caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}", "description": "{{$:/language/Buttons/Save/Hint}}", "text": "<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldname\"/>\n<$action-deletetiddler $tiddler=\"$:/temp/newfieldvalue\"/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n" }, "$:/core/ui/EditorToolbar/bold": { "title": "$:/core/ui/EditorToolbar/bold", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/bold", "caption": "{{$:/language/Buttons/Bold/Caption}}", "description": "{{$:/language/Buttons/Bold/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((bold))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n" }, "$:/core/ui/EditorToolbar/clear-dropdown": { "title": "$:/core/ui/EditorToolbar/clear-dropdown", "text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n" }, "$:/core/ui/EditorToolbar/clear": { "title": "$:/core/ui/EditorToolbar/clear", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/erase", "caption": "{{$:/language/Buttons/Clear/Caption}}", "description": "{{$:/language/Buttons/Clear/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/clear-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/editor-height-dropdown": { "title": "$:/core/ui/EditorToolbar/editor-height-dropdown", "text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n" }, "$:/core/ui/EditorToolbar/editor-height": { "title": "$:/core/ui/EditorToolbar/editor-height", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/fixed-height", "custom-icon": "yes", "caption": "{{$:/language/Buttons/EditorHeight/Caption}}", "description": "{{$:/language/Buttons/EditorHeight/Hint}}", "condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]", "dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown", "text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n" }, "$:/core/ui/EditorToolbar/excise-dropdown": { "title": "$:/core/ui/EditorToolbar/excise-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n" }, "$:/core/ui/EditorToolbar/excise": { "title": "$:/core/ui/EditorToolbar/excise", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/excise", "caption": "{{$:/language/Buttons/Excise/Caption}}", "description": "{{$:/language/Buttons/Excise/Hint}}", "condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]", "shortcuts": "((excise))", "dropdown": "$:/core/ui/EditorToolbar/excise-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/heading-1": { "title": "$:/core/ui/EditorToolbar/heading-1", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-1", "caption": "{{$:/language/Buttons/Heading1/Caption}}", "description": "{{$:/language/Buttons/Heading1/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((heading-1))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-2": { "title": "$:/core/ui/EditorToolbar/heading-2", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-2", "caption": "{{$:/language/Buttons/Heading2/Caption}}", "description": "{{$:/language/Buttons/Heading2/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-2))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-3": { "title": "$:/core/ui/EditorToolbar/heading-3", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-3", "caption": "{{$:/language/Buttons/Heading3/Caption}}", "description": "{{$:/language/Buttons/Heading3/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-3))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-4": { "title": "$:/core/ui/EditorToolbar/heading-4", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-4", "caption": "{{$:/language/Buttons/Heading4/Caption}}", "description": "{{$:/language/Buttons/Heading4/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-4))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-5": { "title": "$:/core/ui/EditorToolbar/heading-5", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-5", "caption": "{{$:/language/Buttons/Heading5/Caption}}", "description": "{{$:/language/Buttons/Heading5/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-5))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n" }, "$:/core/ui/EditorToolbar/heading-6": { "title": "$:/core/ui/EditorToolbar/heading-6", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/heading-6", "caption": "{{$:/language/Buttons/Heading6/Caption}}", "description": "{{$:/language/Buttons/Heading6/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((heading-6))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n" }, "$:/core/ui/EditorToolbar/italic": { "title": "$:/core/ui/EditorToolbar/italic", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/italic", "caption": "{{$:/language/Buttons/Italic/Caption}}", "description": "{{$:/language/Buttons/Italic/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((italic))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n" }, "$:/core/ui/EditorToolbar/line-width-dropdown": { "title": "$:/core/ui/EditorToolbar/line-width-dropdown", "text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n" }, "$:/core/ui/EditorToolbar/line-width": { "title": "$:/core/ui/EditorToolbar/line-width", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/line-width", "caption": "{{$:/language/Buttons/LineWidth/Caption}}", "description": "{{$:/language/Buttons/LineWidth/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown", "text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>" }, "$:/core/ui/EditorToolbar/link-dropdown": { "title": "$:/core/ui/EditorToolbar/link-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>" }, "$:/core/ui/EditorToolbar/link": { "title": "$:/core/ui/EditorToolbar/link", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/link", "caption": "{{$:/language/Buttons/Link/Caption}}", "description": "{{$:/language/Buttons/Link/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((link))", "dropdown": "$:/core/ui/EditorToolbar/link-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/linkify": { "title": "$:/core/ui/EditorToolbar/linkify", "caption": "{{$:/language/Buttons/Linkify/Caption}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "description": "{{$:/language/Buttons/Linkify/Hint}}", "icon": "$:/core/images/linkify", "list-before": "$:/core/ui/EditorToolbar/mono-block", "shortcuts": "((linkify))", "tags": "$:/tags/EditorToolbar", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n" }, "$:/core/ui/EditorToolbar/list-bullet": { "title": "$:/core/ui/EditorToolbar/list-bullet", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/list-bullet", "caption": "{{$:/language/Buttons/ListBullet/Caption}}", "description": "{{$:/language/Buttons/ListBullet/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((list-bullet))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n" }, "$:/core/ui/EditorToolbar/list-number": { "title": "$:/core/ui/EditorToolbar/list-number", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/list-number", "caption": "{{$:/language/Buttons/ListNumber/Caption}}", "description": "{{$:/language/Buttons/ListNumber/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((list-number))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n" }, "$:/core/ui/EditorToolbar/mono-block": { "title": "$:/core/ui/EditorToolbar/mono-block", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/mono-block", "caption": "{{$:/language/Buttons/MonoBlock/Caption}}", "description": "{{$:/language/Buttons/MonoBlock/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((mono-block))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n" }, "$:/core/ui/EditorToolbar/mono-line": { "title": "$:/core/ui/EditorToolbar/mono-line", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/mono-line", "caption": "{{$:/language/Buttons/MonoLine/Caption}}", "description": "{{$:/language/Buttons/MonoLine/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((mono-line))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n" }, "$:/core/ui/EditorToolbar/more-dropdown": { "title": "$:/core/ui/EditorToolbar/more-dropdown", "text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n" }, "$:/core/ui/EditorToolbar/more": { "title": "$:/core/ui/EditorToolbar/more", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/down-arrow", "caption": "{{$:/language/Buttons/More/Caption}}", "description": "{{$:/language/Buttons/More/Hint}}", "condition": "[<targetTiddler>]", "dropdown": "$:/core/ui/EditorToolbar/more-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/opacity-dropdown": { "title": "$:/core/ui/EditorToolbar/opacity-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/EditorToolbar/opacity": { "title": "$:/core/ui/EditorToolbar/opacity", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/opacity", "caption": "{{$:/language/Buttons/Opacity/Caption}}", "description": "{{$:/language/Buttons/Opacity/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown", "text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n" }, "$:/core/ui/EditorToolbar/paint-dropdown": { "title": "$:/core/ui/EditorToolbar/paint-dropdown", "text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n" }, "$:/core/ui/EditorToolbar/paint": { "title": "$:/core/ui/EditorToolbar/paint", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/paint", "caption": "{{$:/language/Buttons/Paint/Caption}}", "description": "{{$:/language/Buttons/Paint/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/paint-dropdown", "text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n" }, "$:/core/ui/EditorToolbar/picture-dropdown": { "title": "$:/core/ui/EditorToolbar/picture-dropdown", "text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n" }, "$:/core/ui/EditorToolbar/picture": { "title": "$:/core/ui/EditorToolbar/picture", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/picture", "caption": "{{$:/language/Buttons/Picture/Caption}}", "description": "{{$:/language/Buttons/Picture/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((picture))", "dropdown": "$:/core/ui/EditorToolbar/picture-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/preview-type-dropdown": { "title": "$:/core/ui/EditorToolbar/preview-type-dropdown", "text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n" }, "$:/core/ui/EditorToolbar/preview-type": { "title": "$:/core/ui/EditorToolbar/preview-type", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/chevron-down", "caption": "{{$:/language/Buttons/PreviewType/Caption}}", "description": "{{$:/language/Buttons/PreviewType/Hint}}", "condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]", "button-classes": "tc-text-editor-toolbar-item-adjunct", "dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown" }, "$:/core/ui/EditorToolbar/preview": { "title": "$:/core/ui/EditorToolbar/preview", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/preview-open", "custom-icon": "yes", "caption": "{{$:/language/Buttons/Preview/Caption}}", "description": "{{$:/language/Buttons/Preview/Hint}}", "condition": "[<targetTiddler>]", "button-classes": "tc-text-editor-toolbar-item-start-group", "shortcuts": "((preview))", "text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n" }, "$:/core/ui/EditorToolbar/quote": { "title": "$:/core/ui/EditorToolbar/quote", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/quote", "caption": "{{$:/language/Buttons/Quote/Caption}}", "description": "{{$:/language/Buttons/Quote/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((quote))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n" }, "$:/core/ui/EditorToolbar/rotate-left": { "title": "$:/core/ui/EditorToolbar/rotate-left", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/rotate-left", "caption": "{{$:/language/Buttons/RotateLeft/Caption}}", "description": "{{$:/language/Buttons/RotateLeft/Hint}}", "condition": "[<targetTiddler>is[image]]", "text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n" }, "$:/core/ui/EditorToolbar/size-dropdown": { "title": "$:/core/ui/EditorToolbar/size-dropdown", "text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n" }, "$:/core/ui/EditorToolbar/size": { "title": "$:/core/ui/EditorToolbar/size", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/size", "caption": "{{$:/language/Buttons/Size/Caption}}", "description": "{{$:/language/Buttons/Size/Hint}}", "condition": "[<targetTiddler>is[image]]", "dropdown": "$:/core/ui/EditorToolbar/size-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/stamp-dropdown": { "title": "$:/core/ui/EditorToolbar/stamp-dropdown", "text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n" }, "$:/core/ui/EditorToolbar/stamp": { "title": "$:/core/ui/EditorToolbar/stamp", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/stamp", "caption": "{{$:/language/Buttons/Stamp/Caption}}", "description": "{{$:/language/Buttons/Stamp/Hint}}", "condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]", "shortcuts": "((stamp))", "dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown", "text": "" }, "$:/core/ui/EditorToolbar/strikethrough": { "title": "$:/core/ui/EditorToolbar/strikethrough", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/strikethrough", "caption": "{{$:/language/Buttons/Strikethrough/Caption}}", "description": "{{$:/language/Buttons/Strikethrough/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((strikethrough))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n" }, "$:/core/ui/EditorToolbar/subscript": { "title": "$:/core/ui/EditorToolbar/subscript", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/subscript", "caption": "{{$:/language/Buttons/Subscript/Caption}}", "description": "{{$:/language/Buttons/Subscript/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((subscript))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n" }, "$:/core/ui/EditorToolbar/superscript": { "title": "$:/core/ui/EditorToolbar/superscript", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/superscript", "caption": "{{$:/language/Buttons/Superscript/Caption}}", "description": "{{$:/language/Buttons/Superscript/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((superscript))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n" }, "$:/core/ui/EditorToolbar/transcludify": { "title": "$:/core/ui/EditorToolbar/transcludify", "caption": "{{$:/language/Buttons/Transcludify/Caption}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "description": "{{$:/language/Buttons/Transcludify/Hint}}", "icon": "$:/core/images/transcludify", "list-before": "$:/core/ui/EditorToolbar/mono-block", "shortcuts": "((transcludify))", "tags": "$:/tags/EditorToolbar", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n" }, "$:/core/ui/EditorToolbar/underline": { "title": "$:/core/ui/EditorToolbar/underline", "tags": "$:/tags/EditorToolbar", "icon": "$:/core/images/underline", "caption": "{{$:/language/Buttons/Underline/Caption}}", "description": "{{$:/language/Buttons/Underline/Hint}}", "condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]", "shortcuts": "((underline))", "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n" }, "$:/core/Filters/AllTags": { "title": "$:/core/Filters/AllTags", "tags": "$:/tags/Filter", "filter": "[tags[]!is[system]sort[title]]", "description": "{{$:/language/Filters/AllTags}}", "text": "" }, "$:/core/Filters/AllTiddlers": { "title": "$:/core/Filters/AllTiddlers", "tags": "$:/tags/Filter", "filter": "[!is[system]sort[title]]", "description": "{{$:/language/Filters/AllTiddlers}}", "text": "" }, "$:/core/Filters/Drafts": { "title": "$:/core/Filters/Drafts", "tags": "$:/tags/Filter", "filter": "[has[draft.of]sort[title]]", "description": "{{$:/language/Filters/Drafts}}", "text": "" }, "$:/core/Filters/Missing": { "title": "$:/core/Filters/Missing", "tags": "$:/tags/Filter", "filter": "[all[missing]sort[title]]", "description": "{{$:/language/Filters/Missing}}", "text": "" }, "$:/core/Filters/Orphans": { "title": "$:/core/Filters/Orphans", "tags": "$:/tags/Filter", "filter": "[all[orphans]sort[title]]", "description": "{{$:/language/Filters/Orphans}}", "text": "" }, "$:/core/Filters/OverriddenShadowTiddlers": { "title": "$:/core/Filters/OverriddenShadowTiddlers", "tags": "$:/tags/Filter", "filter": "[is[shadow]]", "description": "{{$:/language/Filters/OverriddenShadowTiddlers}}", "text": "" }, "$:/core/Filters/RecentSystemTiddlers": { "title": "$:/core/Filters/RecentSystemTiddlers", "tags": "$:/tags/Filter", "filter": "[has[modified]!sort[modified]limit[50]]", "description": "{{$:/language/Filters/RecentSystemTiddlers}}", "text": "" }, "$:/core/Filters/RecentTiddlers": { "title": "$:/core/Filters/RecentTiddlers", "tags": "$:/tags/Filter", "filter": "[!is[system]has[modified]!sort[modified]limit[50]]", "description": "{{$:/language/Filters/RecentTiddlers}}", "text": "" }, "$:/core/Filters/ShadowTiddlers": { "title": "$:/core/Filters/ShadowTiddlers", "tags": "$:/tags/Filter", "filter": "[all[shadows]sort[title]]", "description": "{{$:/language/Filters/ShadowTiddlers}}", "text": "" }, "$:/core/Filters/StoryList": { "title": "$:/core/Filters/StoryList", "tags": "$:/tags/Filter", "filter": "[list[$:/StoryList]] -$:/AdvancedSearch", "description": "{{$:/language/Filters/StoryList}}", "text": "" }, "$:/core/Filters/SystemTags": { "title": "$:/core/Filters/SystemTags", "tags": "$:/tags/Filter", "filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]", "description": "{{$:/language/Filters/SystemTags}}", "text": "" }, "$:/core/Filters/SystemTiddlers": { "title": "$:/core/Filters/SystemTiddlers", "tags": "$:/tags/Filter", "filter": "[is[system]sort[title]]", "description": "{{$:/language/Filters/SystemTiddlers}}", "text": "" }, "$:/core/Filters/TypedTiddlers": { "title": "$:/core/Filters/TypedTiddlers", "tags": "$:/tags/Filter", "filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]", "description": "{{$:/language/Filters/TypedTiddlers}}", "text": "" }, "$:/core/ui/ImportListing": { "title": "$:/core/ui/ImportListing", "text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" stateTitle=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ImportPreviews/Diff": { "title": "$:/core/ui/ImportPreviews/Diff", "tags": "$:/tags/ImportPreview", "caption": "{{$:/language/Import/Listing/Preview/Diff}}", "text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n" }, "$:/core/ui/ImportPreviews/DiffFields": { "title": "$:/core/ui/ImportPreviews/DiffFields", "tags": "$:/tags/ImportPreview", "caption": "{{$:/language/Import/Listing/Preview/DiffFields}}", "text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n" }, "$:/core/ui/ImportPreviews/Fields": { "title": "$:/core/ui/ImportPreviews/Fields", "tags": "$:/tags/ImportPreview", "caption": "{{$:/language/Import/Listing/Preview/Fields}}", "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n" }, "$:/core/ui/ImportPreviews/Text": { "title": "$:/core/ui/ImportPreviews/Text", "tags": "$:/tags/ImportPreview", "caption": "{{$:/language/Import/Listing/Preview/Text}}", "text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n" }, "$:/core/ui/ImportPreviews/TextRaw": { "title": "$:/core/ui/ImportPreviews/TextRaw", "tags": "$:/tags/ImportPreview", "caption": "{{$:/language/Import/Listing/Preview/TextRaw}}", "text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>" }, "$:/core/ui/KeyboardShortcuts/new-image": { "title": "$:/core/ui/KeyboardShortcuts/new-image", "tags": "$:/tags/KeyboardShortcut", "key": "((new-image))", "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n" }, "$:/core/ui/KeyboardShortcuts/new-journal": { "title": "$:/core/ui/KeyboardShortcuts/new-journal", "tags": "$:/tags/KeyboardShortcut", "key": "((new-journal))", "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n" }, "$:/core/ui/KeyboardShortcuts/new-tiddler": { "title": "$:/core/ui/KeyboardShortcuts/new-tiddler", "tags": "$:/tags/KeyboardShortcut", "key": "((new-tiddler))", "text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n" }, "$:/core/ui/ListItemTemplate": { "title": "$:/core/ui/ListItemTemplate", "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</div>" }, "$:/Manager/ItemMain/Fields": { "title": "$:/Manager/ItemMain/Fields", "tags": "$:/tags/Manager/ItemMain", "caption": "{{$:/language/Manager/Item/Fields}}", "text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n" }, "$:/Manager/ItemMain/RawText": { "title": "$:/Manager/ItemMain/RawText", "tags": "$:/tags/Manager/ItemMain", "caption": "{{$:/language/Manager/Item/RawText}}", "text": "<pre><code><$view/></code></pre>\n" }, "$:/Manager/ItemMain/WikifiedText": { "title": "$:/Manager/ItemMain/WikifiedText", "tags": "$:/tags/Manager/ItemMain", "caption": "{{$:/language/Manager/Item/WikifiedText}}", "text": "<$transclude mode=\"block\"/>\n" }, "$:/Manager/ItemSidebar/Colour": { "title": "$:/Manager/ItemSidebar/Colour", "tags": "$:/tags/Manager/ItemSidebar", "caption": "{{$:/language/Manager/Item/Colour}}", "text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n" }, "$:/Manager/ItemSidebar/Icon": { "title": "$:/Manager/ItemSidebar/Icon", "tags": "$:/tags/Manager/ItemSidebar", "caption": "{{$:/language/Manager/Item/Icon}}", "text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n" }, "$:/Manager/ItemSidebar/Tags": { "title": "$:/Manager/ItemSidebar/Tags", "tags": "$:/tags/Manager/ItemSidebar", "caption": "{{$:/language/Manager/Item/Tags}}", "text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n" }, "$:/Manager/ItemSidebar/Tools": { "title": "$:/Manager/ItemSidebar/Tools", "tags": "$:/tags/Manager/ItemSidebar", "caption": "{{$:/language/Manager/Item/Tools}}", "text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n" }, "$:/Manager": { "title": "$:/Manager", "icon": "$:/core/images/list", "color": "#bbb", "text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n" }, "$:/core/ui/MissingTemplate": { "title": "$:/core/ui/MissingTemplate", "text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n" }, "$:/core/ui/MoreSideBar/All": { "title": "$:/core/ui/MoreSideBar/All", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/All/Caption}}", "text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Drafts": { "title": "$:/core/ui/MoreSideBar/Drafts", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Drafts/Caption}}", "text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Explorer": { "title": "$:/core/ui/MoreSideBar/Explorer", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Explorer/Caption}}", "text": "<<tree \"$:/\">>\n" }, "$:/core/ui/MoreSideBar/Missing": { "title": "$:/core/ui/MoreSideBar/Missing", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Missing/Caption}}", "text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Orphans": { "title": "$:/core/ui/MoreSideBar/Orphans", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Orphans/Caption}}", "text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Plugins": { "title": "$:/core/ui/MoreSideBar/Plugins", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/ControlPanel/Plugins/Caption}}", "text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n" }, "$:/core/ui/MoreSideBar/Recent": { "title": "$:/core/ui/MoreSideBar/Recent", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Recent/Caption}}", "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n" }, "$:/core/ui/MoreSideBar/Shadows": { "title": "$:/core/ui/MoreSideBar/Shadows", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Shadows/Caption}}", "text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/System": { "title": "$:/core/ui/MoreSideBar/System", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/System/Caption}}", "text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/MoreSideBar/Tags": { "title": "$:/core/ui/MoreSideBar/Tags", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Tags/Caption}}", "text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n" }, "$:/core/ui/MoreSideBar/Types": { "title": "$:/core/ui/MoreSideBar/Types", "tags": "$:/tags/MoreSideBar", "caption": "{{$:/language/SideBar/Types/Caption}}", "text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n" }, "$:/core/ui/MoreSideBar/Plugins/Languages": { "title": "$:/core/ui/MoreSideBar/Plugins/Languages", "tags": "$:/tags/MoreSideBar/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}", "text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n" }, "$:/core/ui/MoreSideBar/Plugins/Plugins": { "title": "$:/core/ui/MoreSideBar/Plugins/Plugins", "tags": "$:/tags/MoreSideBar/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}", "text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n" }, "$:/core/ui/MoreSideBar/Plugins/Theme": { "title": "$:/core/ui/MoreSideBar/Plugins/Theme", "tags": "$:/tags/MoreSideBar/Plugins", "caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}", "text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n" }, "$:/core/ui/Buttons/advanced-search": { "title": "$:/core/ui/Buttons/advanced-search", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}", "description": "{{$:/language/Buttons/AdvancedSearch/Hint}}", "text": "\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/close-all": { "title": "$:/core/ui/Buttons/close-all", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}", "description": "{{$:/language/Buttons/CloseAll/Hint}}", "text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/control-panel": { "title": "$:/core/ui/Buttons/control-panel", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}", "description": "{{$:/language/Buttons/ControlPanel/Hint}}", "text": "\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/encryption": { "title": "$:/core/ui/Buttons/encryption", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}", "description": "{{$:/language/Buttons/Encryption/Hint}}", "text": "<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>" }, "$:/core/ui/Buttons/export-page": { "title": "$:/core/ui/Buttons/export-page", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}", "description": "{{$:/language/Buttons/ExportPage/Hint}}", "text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>" }, "$:/core/ui/Buttons/fold-all": { "title": "$:/core/ui/Buttons/fold-all", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}", "description": "{{$:/language/Buttons/FoldAll/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/full-screen": { "title": "$:/core/ui/Buttons/full-screen", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}", "description": "{{$:/language/Buttons/FullScreen/Hint}}", "text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/home": { "title": "$:/core/ui/Buttons/home", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}", "description": "{{$:/language/Buttons/Home/Hint}}", "text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/import": { "title": "$:/core/ui/Buttons/import", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}", "description": "{{$:/language/Buttons/Import/Hint}}", "text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>" }, "$:/core/ui/Buttons/language": { "title": "$:/core/ui/Buttons/language", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}", "description": "{{$:/language/Buttons/Language/Hint}}", "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/manager": { "title": "$:/core/ui/Buttons/manager", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}", "description": "{{$:/language/Buttons/Manager/Hint}}", "text": "\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/more-page-actions": { "title": "$:/core/ui/Buttons/more-page-actions", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}", "description": "{{$:/language/Buttons/More/Hint}}", "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>" }, "$:/core/ui/Buttons/new-image": { "title": "$:/core/ui/Buttons/new-image", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}", "description": "{{$:/language/Buttons/NewImage/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n" }, "$:/core/ui/Buttons/new-journal": { "title": "$:/core/ui/Buttons/new-journal", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}", "description": "{{$:/language/Buttons/NewJournal/Hint}}", "text": "\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n" }, "$:/core/ui/Buttons/new-tiddler": { "title": "$:/core/ui/Buttons/new-tiddler", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}", "description": "{{$:/language/Buttons/NewTiddler/Hint}}", "text": "<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n" }, "$:/core/ui/Buttons/palette": { "title": "$:/core/ui/Buttons/palette", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}", "description": "{{$:/language/Buttons/Palette/Hint}}", "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/print": { "title": "$:/core/ui/Buttons/print", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}", "description": "{{$:/language/Buttons/Print/Hint}}", "text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/refresh": { "title": "$:/core/ui/Buttons/refresh", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}", "description": "{{$:/language/Buttons/Refresh/Hint}}", "text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/save-wiki": { "title": "$:/core/ui/Buttons/save-wiki", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}", "description": "{{$:/language/Buttons/SaveWiki/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>" }, "$:/core/ui/Buttons/storyview": { "title": "$:/core/ui/Buttons/storyview", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}", "description": "{{$:/language/Buttons/StoryView/Hint}}", "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/tag-manager": { "title": "$:/core/ui/Buttons/tag-manager", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}", "description": "{{$:/language/Buttons/TagManager/Hint}}", "text": "\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n" }, "$:/core/ui/Buttons/theme": { "title": "$:/core/ui/Buttons/theme", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}", "description": "{{$:/language/Buttons/Theme/Hint}}", "text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>" }, "$:/core/ui/Buttons/timestamp": { "title": "$:/core/ui/Buttons/timestamp", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}", "description": "{{$:/language/Buttons/Timestamp/Hint}}", "text": "<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>" }, "$:/core/ui/Buttons/unfold-all": { "title": "$:/core/ui/Buttons/unfold-all", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}", "description": "{{$:/language/Buttons/UnfoldAll/Hint}}", "text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>" }, "$:/core/ui/PageTemplate/pagecontrols": { "title": "$:/core/ui/PageTemplate/pagecontrols", "text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$reveal>\n</$list>\n</div>\n\n" }, "$:/core/ui/PageStylesheet": { "title": "$:/core/ui/PageStylesheet", "text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/PageTemplate/alerts": { "title": "$:/core/ui/PageTemplate/alerts", "tags": "$:/tags/PageTemplate", "text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n" }, "$:/core/ui/PageTemplate/drafts": { "title": "$:/core/ui/PageTemplate/drafts", "tags": "$:/tags/PageTemplate", "text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n" }, "$:/core/ui/PageTemplate/pluginreloadwarning": { "title": "$:/core/ui/PageTemplate/pluginreloadwarning", "tags": "$:/tags/PageTemplate", "text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n" }, "$:/core/ui/PageTemplate/sidebar": { "title": "$:/core/ui/PageTemplate/sidebar", "tags": "$:/tags/PageTemplate", "text": "\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>" }, "$:/core/ui/PageTemplate/story": { "title": "$:/core/ui/PageTemplate/story", "tags": "$:/tags/PageTemplate", "text": "<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template=\"$:/core/ui/ViewTemplate\" editTemplate=\"$:/core/ui/EditTemplate\" storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n" }, "$:/core/ui/PageTemplate/topleftbar": { "title": "$:/core/ui/PageTemplate/topleftbar", "tags": "$:/tags/PageTemplate", "text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n" }, "$:/core/ui/PageTemplate/toprightbar": { "title": "$:/core/ui/PageTemplate/toprightbar", "tags": "$:/tags/PageTemplate", "text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n" }, "$:/core/ui/PageTemplate": { "title": "$:/core/ui/PageTemplate", "text": "\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$set name=\"currentTiddler\" value=\"\">\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/PluginInfo": { "title": "$:/core/ui/PluginInfo", "text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n" }, "$:/core/ui/PluginInfo/Default/contents": { "title": "$:/core/ui/PluginInfo/Default/contents", "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n" }, "$:/core/ui/PluginListItemTemplate": { "title": "$:/core/ui/PluginListItemTemplate", "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"description\">\n<$view field=\"title\"/>\n</$view>\n</$link>\n</div>" }, "$:/core/ui/SearchResults": { "title": "$:/core/ui/SearchResults", "text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n" }, "$:/core/ui/SideBar/More": { "title": "$:/core/ui/SideBar/More", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/More/Caption}}", "text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical\" />\n</div>" }, "$:/core/ui/SideBar/Open": { "title": "$:/core/ui/SideBar/Open", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/Open/Caption}}", "text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=\"$:/StoryList\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" storyview=\"pop\">\n<div style=\"position: relative;\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div>\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">×</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$droppable>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<drop-actions>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\n</$droppable>\n</$tiddler>\n" }, "$:/core/ui/SideBar/Recent": { "title": "$:/core/ui/SideBar/Recent", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/Recent/Caption}}", "text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n" }, "$:/core/ui/SideBar/Tools": { "title": "$:/core/ui/SideBar/Tools", "tags": "$:/tags/SideBar", "caption": "{{$:/language/SideBar/Tools/Caption}}", "text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/SideBarLists": { "title": "$:/core/ui/SideBarLists", "text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n" }, "$:/core/ui/SideBarSegments/page-controls": { "title": "$:/core/ui/SideBarSegments/page-controls", "tags": "$:/tags/SideBarSegment", "text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n" }, "$:/core/ui/SideBarSegments/search": { "title": "$:/core/ui/SideBarSegments/search", "tags": "$:/tags/SideBarSegment", "text": "<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n" }, "$:/core/ui/SideBarSegments/site-subtitle": { "title": "$:/core/ui/SideBarSegments/site-subtitle", "tags": "$:/tags/SideBarSegment", "text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n" }, "$:/core/ui/SideBarSegments/site-title": { "title": "$:/core/ui/SideBarSegments/site-title", "tags": "$:/tags/SideBarSegment", "text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n" }, "$:/core/ui/SideBarSegments/tabs": { "title": "$:/core/ui/SideBarSegments/tabs", "tags": "$:/tags/SideBarSegment", "text": "<div class=\"tc-sidebar-lists\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" />\n\n</div>\n" }, "$:/TagManager": { "title": "$:/TagManager", "icon": "$:/core/images/tag-button", "color": "#bbb", "caption": "{{$:/language/TagManager/Caption}}", "text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n" }, "$:/core/ui/TagTemplate": { "title": "$:/core/ui/TagTemplate", "text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n" }, "$:/core/ui/TiddlerFieldTemplate": { "title": "$:/core/ui/TiddlerFieldTemplate", "text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>" }, "$:/core/ui/TiddlerFields": { "title": "$:/core/ui/TiddlerFields", "text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n" }, "$:/core/ui/TiddlerInfo/Advanced/PluginInfo": { "title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo", "tags": "$:/tags/TiddlerInfo/Advanced", "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n" }, "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": { "title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo", "tags": "$:/tags/TiddlerInfo/Advanced", "text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n" }, "$:/core/ui/TiddlerInfo/Advanced": { "title": "$:/core/ui/TiddlerInfo/Advanced", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}", "text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n" }, "$:/core/ui/TiddlerInfo/Fields": { "title": "$:/core/ui/TiddlerInfo/Fields", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Fields/Caption}}", "text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n" }, "$:/core/ui/TiddlerInfo/List": { "title": "$:/core/ui/TiddlerInfo/List", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/List/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/TiddlerInfo/Listed": { "title": "$:/core/ui/TiddlerInfo/Listed", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Listed/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/TiddlerInfo/References": { "title": "$:/core/ui/TiddlerInfo/References", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/References/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>" }, "$:/core/ui/TiddlerInfo/Tagging": { "title": "$:/core/ui/TiddlerInfo/Tagging", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n" }, "$:/core/ui/TiddlerInfo/Tools": { "title": "$:/core/ui/TiddlerInfo/Tools", "tags": "$:/tags/TiddlerInfo", "caption": "{{$:/language/TiddlerInfo/Tools/Caption}}", "text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n" }, "$:/core/ui/TiddlerInfo": { "title": "$:/core/ui/TiddlerInfo", "text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>" }, "$:/core/ui/TopBar/menu": { "title": "$:/core/ui/TopBar/menu", "tags": "$:/tags/TopRightBar", "text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n" }, "$:/core/ui/UntaggedTemplate": { "title": "$:/core/ui/UntaggedTemplate", "text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/body": { "title": "$:/core/ui/ViewTemplate/body", "tags": "$:/tags/ViewTemplate", "text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/classic": { "title": "$:/core/ui/ViewTemplate/classic", "tags": "$:/tags/ViewTemplate $:/tags/EditTemplate", "text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n" }, "$:/core/ui/ViewTemplate/import": { "title": "$:/core/ui/ViewTemplate/import", "tags": "$:/tags/ViewTemplate", "text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n" }, "$:/core/ui/ViewTemplate/plugin": { "title": "$:/core/ui/ViewTemplate/plugin", "tags": "$:/tags/ViewTemplate", "text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n" }, "$:/core/ui/ViewTemplate/subtitle": { "title": "$:/core/ui/ViewTemplate/subtitle", "tags": "$:/tags/ViewTemplate", "text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/tags": { "title": "$:/core/ui/ViewTemplate/tags", "tags": "$:/tags/ViewTemplate", "text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate/title": { "title": "$:/core/ui/ViewTemplate/title", "tags": "$:/tags/ViewTemplate", "text": "\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}/>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>" }, "$:/core/ui/ViewTemplate/unfold": { "title": "$:/core/ui/ViewTemplate/unfold", "tags": "$:/tags/ViewTemplate", "text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n" }, "$:/core/ui/ViewTemplate": { "title": "$:/core/ui/ViewTemplate", "text": "\\define frame-classes()\ntc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$ $(userClass)$\n\\end\n\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">> userClass={{!!class}}><$tiddler tiddler=<<currentTiddler>>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class=<<frame-classes>>><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$tiddler></$vars>\n" }, "$:/core/ui/Buttons/clone": { "title": "$:/core/ui/Buttons/clone", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}", "description": "{{$:/language/Buttons/Clone/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/close-others": { "title": "$:/core/ui/Buttons/close-others", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}", "description": "{{$:/language/Buttons/CloseOthers/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/close": { "title": "$:/core/ui/Buttons/close", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}", "description": "{{$:/language/Buttons/Close/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/edit": { "title": "$:/core/ui/Buttons/edit", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}", "description": "{{$:/language/Buttons/Edit/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/export-tiddler": { "title": "$:/core/ui/Buttons/export-tiddler", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}", "description": "{{$:/language/Buttons/ExportTiddler/Hint}}", "text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>" }, "$:/core/ui/Buttons/fold-bar": { "title": "$:/core/ui/Buttons/fold-bar", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}", "description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}", "text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->" }, "$:/core/ui/Buttons/fold-others": { "title": "$:/core/ui/Buttons/fold-others", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}", "description": "{{$:/language/Buttons/FoldOthers/Hint}}", "text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/fold": { "title": "$:/core/ui/Buttons/fold", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}", "description": "{{$:/language/Buttons/Fold/Hint}}", "text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n" }, "$:/core/ui/Buttons/info": { "title": "$:/core/ui/Buttons/info", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}", "description": "{{$:/language/Buttons/Info/Hint}}", "text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>" }, "$:/core/ui/Buttons/more-tiddler-actions": { "title": "$:/core/ui/Buttons/more-tiddler-actions", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}", "description": "{{$:/language/Buttons/More/Hint}}", "text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>" }, "$:/core/ui/Buttons/new-here": { "title": "$:/core/ui/Buttons/new-here", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}", "description": "{{$:/language/Buttons/NewHere/Hint}}", "text": "\\whitespace trim\n\\define newHereButtonTags()\n[[$(currentTiddler)$]]\n\\end\n\\define newHereButton()\n<$button tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<newHereButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>" }, "$:/core/ui/Buttons/new-journal-here": { "title": "$:/core/ui/Buttons/new-journal-here", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}", "description": "{{$:/language/Buttons/NewJournalHere/Hint}}", "text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>" }, "$:/core/ui/Buttons/open-window": { "title": "$:/core/ui/Buttons/open-window", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}", "description": "{{$:/language/Buttons/OpenWindow/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/permalink": { "title": "$:/core/ui/Buttons/permalink", "tags": "$:/tags/ViewToolbar", "caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}", "description": "{{$:/language/Buttons/Permalink/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/core/ui/Buttons/permaview": { "title": "$:/core/ui/Buttons/permaview", "tags": "$:/tags/ViewToolbar $:/tags/PageControls", "caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}", "description": "{{$:/language/Buttons/Permaview/Hint}}", "text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>" }, "$:/DefaultTiddlers": { "title": "$:/DefaultTiddlers", "text": "GettingStarted\n" }, "$:/temp/advancedsearch": { "title": "$:/temp/advancedsearch", "text": "" }, "$:/snippets/allfields": { "title": "$:/snippets/allfields", "text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n" }, "$:/config/AnimationDuration": { "title": "$:/config/AnimationDuration", "text": "400" }, "$:/config/AutoSave": { "title": "$:/config/AutoSave", "text": "yes" }, "$:/config/BitmapEditor/Colour": { "title": "$:/config/BitmapEditor/Colour", "text": "#444" }, "$:/config/BitmapEditor/ImageSizes": { "title": "$:/config/BitmapEditor/ImageSizes", "text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]" }, "$:/config/BitmapEditor/LineWidth": { "title": "$:/config/BitmapEditor/LineWidth", "text": "3px" }, "$:/config/BitmapEditor/LineWidths": { "title": "$:/config/BitmapEditor/LineWidths", "text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px" }, "$:/config/BitmapEditor/Opacities": { "title": "$:/config/BitmapEditor/Opacities", "text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0" }, "$:/config/BitmapEditor/Opacity": { "title": "$:/config/BitmapEditor/Opacity", "text": "1.0" }, "$:/config/DefaultMoreSidebarTab": { "title": "$:/config/DefaultMoreSidebarTab", "text": "$:/core/ui/MoreSideBar/Tags" }, "$:/config/DefaultSidebarTab": { "title": "$:/config/DefaultSidebarTab", "text": "$:/core/ui/SideBar/Open" }, "$:/config/DownloadSaver/AutoSave": { "title": "$:/config/DownloadSaver/AutoSave", "text": "no" }, "$:/config/Drafts/TypingTimeout": { "title": "$:/config/Drafts/TypingTimeout", "text": "400" }, "$:/config/EditTemplateFields/Visibility/title": { "title": "$:/config/EditTemplateFields/Visibility/title", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/tags": { "title": "$:/config/EditTemplateFields/Visibility/tags", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/text": { "title": "$:/config/EditTemplateFields/Visibility/text", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/creator": { "title": "$:/config/EditTemplateFields/Visibility/creator", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/created": { "title": "$:/config/EditTemplateFields/Visibility/created", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/modified": { "title": "$:/config/EditTemplateFields/Visibility/modified", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/modifier": { "title": "$:/config/EditTemplateFields/Visibility/modifier", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/type": { "title": "$:/config/EditTemplateFields/Visibility/type", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/draft.title": { "title": "$:/config/EditTemplateFields/Visibility/draft.title", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/draft.of": { "title": "$:/config/EditTemplateFields/Visibility/draft.of", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/revision": { "title": "$:/config/EditTemplateFields/Visibility/revision", "text": "hide" }, "$:/config/EditTemplateFields/Visibility/bag": { "title": "$:/config/EditTemplateFields/Visibility/bag", "text": "hide" }, "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": { "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4", "text": "hide" }, "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": { "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5", "text": "hide" }, "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": { "title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6", "text": "hide" }, "$:/config/EditorTypeMappings/image/gif": { "title": "$:/config/EditorTypeMappings/image/gif", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/webp": { "title": "$:/config/EditorTypeMappings/image/webp", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/heic": { "title": "$:/config/EditorTypeMappings/image/heic", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/heif": { "title": "$:/config/EditorTypeMappings/image/heif", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/jpeg": { "title": "$:/config/EditorTypeMappings/image/jpeg", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/jpg": { "title": "$:/config/EditorTypeMappings/image/jpg", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/png": { "title": "$:/config/EditorTypeMappings/image/png", "text": "bitmap" }, "$:/config/EditorTypeMappings/image/x-icon": { "title": "$:/config/EditorTypeMappings/image/x-icon", "text": "bitmap" }, "$:/config/EditorTypeMappings/text/vnd.tiddlywiki": { "title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki", "text": "text" }, "$:/config/Manager/Show": { "title": "$:/config/Manager/Show", "text": "tiddlers" }, "$:/config/Manager/Filter": { "title": "$:/config/Manager/Filter", "text": "" }, "$:/config/Manager/Order": { "title": "$:/config/Manager/Order", "text": "forward" }, "$:/config/Manager/Sort": { "title": "$:/config/Manager/Sort", "text": "title" }, "$:/config/Manager/System": { "title": "$:/config/Manager/System", "text": "system" }, "$:/config/Manager/Tag": { "title": "$:/config/Manager/Tag", "text": "" }, "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": { "title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText", "text": "hide" }, "$:/config/MissingLinks": { "title": "$:/config/MissingLinks", "text": "yes" }, "$:/config/Navigation/UpdateAddressBar": { "title": "$:/config/Navigation/UpdateAddressBar", "text": "no" }, "$:/config/Navigation/UpdateHistory": { "title": "$:/config/Navigation/UpdateHistory", "text": "no" }, "$:/config/NewImageType": { "title": "$:/config/NewImageType", "text": "jpeg" }, "$:/config/OfficialPluginLibrary": { "title": "$:/config/OfficialPluginLibrary", "tags": "$:/tags/PluginLibrary", "url": "https://tiddlywiki.com/library/v5.1.19/index.html", "caption": "{{$:/language/OfficialPluginLibrary}}", "text": "{{$:/language/OfficialPluginLibrary/Hint}}\n" }, "$:/config/Navigation/openLinkFromInsideRiver": { "title": "$:/config/Navigation/openLinkFromInsideRiver", "text": "below" }, "$:/config/Navigation/openLinkFromOutsideRiver": { "title": "$:/config/Navigation/openLinkFromOutsideRiver", "text": "top" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme", "text": "hide" }, "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": { "title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all", "text": "hide" }, "$:/config/Performance/Instrumentation": { "title": "$:/config/Performance/Instrumentation", "text": "no" }, "$:/config/SaveWikiButton/Template": { "title": "$:/config/SaveWikiButton/Template", "text": "$:/core/save/all" }, "$:/config/SaverFilter": { "title": "$:/config/SaverFilter", "text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]" }, "$:/config/Search/AutoFocus": { "title": "$:/config/Search/AutoFocus", "text": "true" }, "$:/config/Search/MinLength": { "title": "$:/config/Search/MinLength", "text": "3" }, "$:/config/SearchResults/Default": { "title": "$:/config/SearchResults/Default", "text": "$:/core/ui/DefaultSearchResultList" }, "$:/config/ShortcutInfo/bold": { "title": "$:/config/ShortcutInfo/bold", "text": "{{$:/language/Buttons/Bold/Hint}}" }, "$:/config/ShortcutInfo/cancel-edit-tiddler": { "title": "$:/config/ShortcutInfo/cancel-edit-tiddler", "text": "{{$:/language/Buttons/Cancel/Hint}}" }, "$:/config/ShortcutInfo/excise": { "title": "$:/config/ShortcutInfo/excise", "text": "{{$:/language/Buttons/Excise/Hint}}" }, "$:/config/ShortcutInfo/heading-1": { "title": "$:/config/ShortcutInfo/heading-1", "text": "{{$:/language/Buttons/Heading1/Hint}}" }, "$:/config/ShortcutInfo/heading-2": { "title": "$:/config/ShortcutInfo/heading-2", "text": "{{$:/language/Buttons/Heading2/Hint}}" }, "$:/config/ShortcutInfo/heading-3": { "title": "$:/config/ShortcutInfo/heading-3", "text": "{{$:/language/Buttons/Heading3/Hint}}" }, "$:/config/ShortcutInfo/heading-4": { "title": "$:/config/ShortcutInfo/heading-4", "text": "{{$:/language/Buttons/Heading4/Hint}}" }, "$:/config/ShortcutInfo/heading-5": { "title": "$:/config/ShortcutInfo/heading-5", "text": "{{$:/language/Buttons/Heading5/Hint}}" }, "$:/config/ShortcutInfo/heading-6": { "title": "$:/config/ShortcutInfo/heading-6", "text": "{{$:/language/Buttons/Heading6/Hint}}" }, "$:/config/ShortcutInfo/italic": { "title": "$:/config/ShortcutInfo/italic", "text": "{{$:/language/Buttons/Italic/Hint}}" }, "$:/config/ShortcutInfo/link": { "title": "$:/config/ShortcutInfo/link", "text": "{{$:/language/Buttons/Link/Hint}}" }, "$:/config/ShortcutInfo/list-bullet": { "title": "$:/config/ShortcutInfo/list-bullet", "text": "{{$:/language/Buttons/ListBullet/Hint}}" }, "$:/config/ShortcutInfo/list-number": { "title": "$:/config/ShortcutInfo/list-number", "text": "{{$:/language/Buttons/ListNumber/Hint}}" }, "$:/config/ShortcutInfo/mono-block": { "title": "$:/config/ShortcutInfo/mono-block", "text": "{{$:/language/Buttons/MonoBlock/Hint}}" }, "$:/config/ShortcutInfo/mono-line": { "title": "$:/config/ShortcutInfo/mono-line", "text": "{{$:/language/Buttons/MonoLine/Hint}}" }, "$:/config/ShortcutInfo/new-image": { "title": "$:/config/ShortcutInfo/new-image", "text": "{{$:/language/Buttons/NewImage/Hint}}" }, "$:/config/ShortcutInfo/new-journal": { "title": "$:/config/ShortcutInfo/new-journal", "text": "{{$:/language/Buttons/NewJournal/Hint}}" }, "$:/config/ShortcutInfo/new-tiddler": { "title": "$:/config/ShortcutInfo/new-tiddler", "text": "{{$:/language/Buttons/NewTiddler/Hint}}" }, "$:/config/ShortcutInfo/picture": { "title": "$:/config/ShortcutInfo/picture", "text": "{{$:/language/Buttons/Picture/Hint}}" }, "$:/config/ShortcutInfo/preview": { "title": "$:/config/ShortcutInfo/preview", "text": "{{$:/language/Buttons/Preview/Hint}}" }, "$:/config/ShortcutInfo/quote": { "title": "$:/config/ShortcutInfo/quote", "text": "{{$:/language/Buttons/Quote/Hint}}" }, "$:/config/ShortcutInfo/save-tiddler": { "title": "$:/config/ShortcutInfo/save-tiddler", "text": "{{$:/language/Buttons/Save/Hint}}" }, "$:/config/ShortcutInfo/stamp": { "title": "$:/config/ShortcutInfo/stamp", "text": "{{$:/language/Buttons/Stamp/Hint}}" }, "$:/config/ShortcutInfo/strikethrough": { "title": "$:/config/ShortcutInfo/strikethrough", "text": "{{$:/language/Buttons/Strikethrough/Hint}}" }, "$:/config/ShortcutInfo/subscript": { "title": "$:/config/ShortcutInfo/subscript", "text": "{{$:/language/Buttons/Subscript/Hint}}" }, "$:/config/ShortcutInfo/superscript": { "title": "$:/config/ShortcutInfo/superscript", "text": "{{$:/language/Buttons/Superscript/Hint}}" }, "$:/config/ShortcutInfo/underline": { "title": "$:/config/ShortcutInfo/underline", "text": "{{$:/language/Buttons/Underline/Hint}}" }, "$:/config/SyncFilter": { "title": "$:/config/SyncFilter", "text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]" }, "$:/config/Tags/MinLength": { "title": "$:/config/Tags/MinLength", "text": "0" }, "$:/config/TextEditor/EditorHeight/Height": { "title": "$:/config/TextEditor/EditorHeight/Height", "text": "400px" }, "$:/config/TextEditor/EditorHeight/Mode": { "title": "$:/config/TextEditor/EditorHeight/Mode", "text": "auto" }, "$:/config/TiddlerInfo/Default": { "title": "$:/config/TiddlerInfo/Default", "text": "$:/core/ui/TiddlerInfo/Fields" }, "$:/config/TiddlerInfo/Mode": { "title": "$:/config/TiddlerInfo/Mode", "text": "popup" }, "$:/config/Tiddlers/TitleLinks": { "title": "$:/config/Tiddlers/TitleLinks", "text": "no" }, "$:/config/Toolbar/ButtonClass": { "title": "$:/config/Toolbar/ButtonClass", "text": "tc-btn-invisible" }, "$:/config/Toolbar/Icons": { "title": "$:/config/Toolbar/Icons", "text": "yes" }, "$:/config/Toolbar/Text": { "title": "$:/config/Toolbar/Text", "text": "no" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions", "text": "show" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar", "text": "hide" }, "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": { "title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others", "text": "hide" }, "$:/config/shortcuts-mac/bold": { "title": "$:/config/shortcuts-mac/bold", "text": "meta-B" }, "$:/config/shortcuts-mac/italic": { "title": "$:/config/shortcuts-mac/italic", "text": "meta-I" }, "$:/config/shortcuts-mac/underline": { "title": "$:/config/shortcuts-mac/underline", "text": "meta-U" }, "$:/config/shortcuts-mac/new-image": { "title": "$:/config/shortcuts-mac/new-image", "text": "ctrl-I" }, "$:/config/shortcuts-mac/new-journal": { "title": "$:/config/shortcuts-mac/new-journal", "text": "ctrl-J" }, "$:/config/shortcuts-mac/new-tiddler": { "title": "$:/config/shortcuts-mac/new-tiddler", "text": "ctrl-N" }, "$:/config/shortcuts-not-mac/bold": { "title": "$:/config/shortcuts-not-mac/bold", "text": "ctrl-B" }, "$:/config/shortcuts-not-mac/italic": { "title": "$:/config/shortcuts-not-mac/italic", "text": "ctrl-I" }, "$:/config/shortcuts-not-mac/underline": { "title": "$:/config/shortcuts-not-mac/underline", "text": "ctrl-U" }, "$:/config/shortcuts-not-mac/new-image": { "title": "$:/config/shortcuts-not-mac/new-image", "text": "alt-I" }, "$:/config/shortcuts-not-mac/new-journal": { "title": "$:/config/shortcuts-not-mac/new-journal", "text": "alt-J" }, "$:/config/shortcuts-not-mac/new-tiddler": { "title": "$:/config/shortcuts-not-mac/new-tiddler", "text": "alt-N" }, "$:/config/shortcuts/cancel-edit-tiddler": { "title": "$:/config/shortcuts/cancel-edit-tiddler", "text": "escape" }, "$:/config/shortcuts/excise": { "title": "$:/config/shortcuts/excise", "text": "ctrl-E" }, "$:/config/shortcuts/heading-1": { "title": "$:/config/shortcuts/heading-1", "text": "ctrl-1" }, "$:/config/shortcuts/heading-2": { "title": "$:/config/shortcuts/heading-2", "text": "ctrl-2" }, "$:/config/shortcuts/heading-3": { "title": "$:/config/shortcuts/heading-3", "text": "ctrl-3" }, "$:/config/shortcuts/heading-4": { "title": "$:/config/shortcuts/heading-4", "text": "ctrl-4" }, "$:/config/shortcuts/heading-5": { "title": "$:/config/shortcuts/heading-5", "text": "ctrl-5" }, "$:/config/shortcuts/heading-6": { "title": "$:/config/shortcuts/heading-6", "text": "ctrl-6" }, "$:/config/shortcuts/link": { "title": "$:/config/shortcuts/link", "text": "ctrl-L" }, "$:/config/shortcuts/linkify": { "title": "$:/config/shortcuts/linkify", "text": "alt-shift-L" }, "$:/config/shortcuts/list-bullet": { "title": "$:/config/shortcuts/list-bullet", "text": "ctrl-shift-L" }, "$:/config/shortcuts/list-number": { "title": "$:/config/shortcuts/list-number", "text": "ctrl-shift-N" }, "$:/config/shortcuts/mono-block": { "title": "$:/config/shortcuts/mono-block", "text": "ctrl-shift-M" }, "$:/config/shortcuts/mono-line": { "title": "$:/config/shortcuts/mono-line", "text": "ctrl-M" }, "$:/config/shortcuts/picture": { "title": "$:/config/shortcuts/picture", "text": "ctrl-shift-I" }, "$:/config/shortcuts/preview": { "title": "$:/config/shortcuts/preview", "text": "alt-P" }, "$:/config/shortcuts/quote": { "title": "$:/config/shortcuts/quote", "text": "ctrl-Q" }, "$:/config/shortcuts/save-tiddler": { "title": "$:/config/shortcuts/save-tiddler", "text": "ctrl+enter" }, "$:/config/shortcuts/stamp": { "title": "$:/config/shortcuts/stamp", "text": "ctrl-S" }, "$:/config/shortcuts/strikethrough": { "title": "$:/config/shortcuts/strikethrough", "text": "ctrl-T" }, "$:/config/shortcuts/subscript": { "title": "$:/config/shortcuts/subscript", "text": "ctrl-shift-B" }, "$:/config/shortcuts/superscript": { "title": "$:/config/shortcuts/superscript", "text": "ctrl-shift-P" }, "$:/config/shortcuts/transcludify": { "title": "$:/config/shortcuts/transcludify", "text": "alt-shift-T" }, "$:/config/WikiParserRules/Inline/wikilink": { "title": "$:/config/WikiParserRules/Inline/wikilink", "text": "enable" }, "$:/snippets/currpalettepreview": { "title": "$:/snippets/currpalettepreview", "text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>" }, "$:/snippets/download-wiki-button": { "title": "$:/snippets/download-wiki-button", "text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>" }, "$:/language": { "title": "$:/language", "text": "$:/languages/en-GB" }, "$:/snippets/languageswitcher": { "title": "$:/snippets/languageswitcher", "text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>" }, "$:/core/macros/CSS": { "title": "$:/core/macros/CSS", "tags": "$:/tags/Macro", "text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"/></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n" }, "$:/core/macros/colour-picker": { "title": "$:/core/macros/colour-picker", "tags": "$:/tags/Macro", "text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<div style=\"background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/> \n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n" }, "$:/core/macros/copy-to-clipboard": { "title": "$:/core/macros/copy-to-clipboard", "tags": "$:/tags/Macro", "text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n" }, "$:/core/macros/diff": { "title": "$:/core/macros/diff", "tags": "$:/tags/Macro", "text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n" }, "$:/core/macros/export": { "title": "$:/core/macros/export", "tags": "$:/tags/Macro", "text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n" }, "$:/core/macros/image-picker": { "title": "$:/core/macros/image-picker", "created": "20170715180840889", "modified": "20170715180914005", "tags": "$:/tags/Macro", "type": "text/vnd.tiddlywiki", "text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n" }, "$:/core/macros/lingo": { "title": "$:/core/macros/lingo", "tags": "$:/tags/Macro", "text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n" }, "$:/core/macros/list": { "title": "$:/core/macros/list", "tags": "$:/tags/Macro", "text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\">\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\">\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\")\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\">\n<$elementTag$ class=\"tc-droppable-placeholder\">\n \n</$elementTag$>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\">\n<$elementTag$ class=\"tc-droppable-placeholder\">\n \n</$elementTag$>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n\\end\n" }, "$:/core/macros/tabs": { "title": "$:/core/macros/tabs", "tags": "$:/tags/Macro", "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n" }, "$:/core/macros/tag-picker": { "title": "$:/core/macros/tag-picker", "tags": "$:/tags/Macro", "text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{$:/temp/NewTagName}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\">\n$(actions)$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker(actions)\n<$set name=\"actions\" value=\"\"\"$actions$\"\"\">\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=\"$:/temp/NewTagName\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\"/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{$:/temp/NewTagName}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n$actions$\n<$action-deletetiddler $tiddler=\"$:/temp/NewTagName\"/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$list filter=\"[{$:/temp/NewTagName}minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[{$:/temp/NewTagName}minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title{$:/temp/NewTagName}sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</div>\n</$reveal>\n</div>\n</$set>\n\\end\n" }, "$:/core/macros/tag": { "title": "$:/core/macros/tag", "tags": "$:/tags/Macro", "text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/> <$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n" }, "$:/core/macros/thumbnails": { "title": "$:/core/macros/thumbnails", "tags": "$:/tags/Macro", "text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n" }, "$:/core/macros/timeline": { "title": "$:/core/macros/timeline", "created": "20141212105914482", "modified": "20141212110330815", "tags": "$:/tags/Macro", "text": "\\define timeline-title()\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}>\n<<timeline-title>>\n</$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n" }, "$:/core/macros/toc": { "title": "$:/core/macros/toc", "tags": "$:/tags/Macro", "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}} excluded=\"\"\"[enlist<__exclude__>] -[<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\" \")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> excluded=\"\"\"[enlist<__exclude__>] -[<__tag__>]\"\"\" path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item\" value=\"toc-item-selected\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> excluded=\"\"\"[enlist<__exclude__>] -[<__tag__>]\"\"\" path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]field:title<__selectedTiddler__>]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n" }, "$:/core/macros/translink": { "title": "$:/core/macros/translink", "tags": "$:/tags/Macro", "text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n" }, "$:/core/macros/tree": { "title": "$:/core/macros/tree", "tags": "$:/tags/Macro", "text": "\\define leaf-link(full-title, chunk)\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix, chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix, chunk)\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}}/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix)\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore[/]sort[]!suffix[/]]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore[/]sort[]suffix[/]]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>>/>\n</div>\n</div>\n\\end\n" }, "$:/snippets/minilanguageswitcher": { "title": "$:/snippets/minilanguageswitcher", "text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>" }, "$:/snippets/minithemeswitcher": { "title": "$:/snippets/minithemeswitcher", "text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>" }, "$:/snippets/modules": { "title": "$:/snippets/modules", "text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n" }, "$:/palette": { "title": "$:/palette", "text": "$:/palettes/Vanilla" }, "$:/snippets/paletteeditor": { "title": "$:/snippets/paletteeditor", "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<table>\n<tbody>\n<$list filter=\"[all[current]indexes[]]\" variable=\"colourName\">\n<tr>\n<td>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<$edit-text index=<<colourName>> tag=\"input\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</$set>\n" }, "$:/snippets/palettepreview": { "title": "$:/snippets/palettepreview", "text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n" }, "$:/snippets/paletteswitcher": { "title": "$:/snippets/paletteswitcher", "text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>" }, "$:/snippets/peek-stylesheets": { "title": "$:/snippets/peek-stylesheets", "text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/config/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/config/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n" }, "$:/temp/search": { "title": "$:/temp/search", "text": "" }, "$:/tags/AdvancedSearch": { "title": "$:/tags/AdvancedSearch", "list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]" }, "$:/tags/AdvancedSearch/FilterButton": { "title": "$:/tags/AdvancedSearch/FilterButton", "list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete" }, "$:/tags/ControlPanel": { "title": "$:/tags/ControlPanel", "list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals" }, "$:/tags/ControlPanel/Info": { "title": "$:/tags/ControlPanel/Info", "list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced" }, "$:/tags/ControlPanel/Plugins": { "title": "$:/tags/ControlPanel/Plugins", "list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]" }, "$:/tags/EditTemplate": { "title": "$:/tags/EditTemplate", "list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]" }, "$:/tags/EditToolbar": { "title": "$:/tags/EditToolbar", "list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]" }, "$:/tags/EditorToolbar": { "title": "$:/tags/EditorToolbar", "list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type" }, "$:/tags/Manager/ItemMain": { "title": "$:/tags/Manager/ItemMain", "list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields" }, "$:/tags/Manager/ItemSidebar": { "title": "$:/tags/Manager/ItemSidebar", "list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools" }, "$:/tags/MoreSideBar": { "title": "$:/tags/MoreSideBar", "list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]", "text": "" }, "$:/tags/PageControls": { "title": "$:/tags/PageControls", "list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]" }, "$:/tags/PageTemplate": { "title": "$:/tags/PageTemplate", "list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]", "text": "" }, "$:/tags/SideBar": { "title": "$:/tags/SideBar", "list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]", "text": "" }, "$:/tags/SideBarSegment": { "title": "$:/tags/SideBarSegment", "list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]" }, "$:/tags/TiddlerInfo": { "title": "$:/tags/TiddlerInfo", "list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]", "text": "" }, "$:/tags/TiddlerInfo/Advanced": { "title": "$:/tags/TiddlerInfo/Advanced", "list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]" }, "$:/tags/ViewTemplate": { "title": "$:/tags/ViewTemplate", "list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]" }, "$:/tags/ViewToolbar": { "title": "$:/tags/ViewToolbar", "list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]" }, "$:/snippets/themeswitcher": { "title": "$:/snippets/themeswitcher", "text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>" }, "$:/core/wiki/title": { "title": "$:/core/wiki/title", "text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}" }, "$:/view": { "title": "$:/view", "text": "classic" }, "$:/snippets/viewswitcher": { "title": "$:/snippets/viewswitcher", "text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>>\n<$transclude tiddler=<<icon>>/>\n<$text text=<<storyview>>/>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>" } } }
<svg width="24pt" height="24pt" viewBox="0 0 24 24"><path d="M20 9H4v2h16V9zM4 15h16v-2H4v2z"/></svg>
<svg class="tgc-image-tiddlersbar-off tc-image-button" viewBox="0 0 22 22" width="22pt" height="22pt"><path d="m7.3572,12.30506c-0.13915,-0.39832 -0.23057,-0.82001 -0.23057,-1.26429c0,-2.13671 1.74588,-3.87591 3.889,-3.87591c0.44658,0 0.8689,0.09111 1.26856,0.2298l1.84701,-1.84079c-1.05983,-0.44185 -2.12289,-0.73293 -3.11557,-0.73293c-6.10492,0 -10.92187,6.21983 -10.92187,6.21983s1.75316,2.2504 4.47392,4.04523l2.78953,-2.78094zm9.7407,-5.14664l-2.47239,2.46407c0.17556,0.44024 0.27911,0.91757 0.27911,1.4191c0,2.1351 -1.74588,3.87591 -3.889,3.87591c-0.50321,0 -0.98135,-0.10321 -1.42389,-0.27818l-1.99749,1.99157c1.07358,0.38622 2.22078,0.63134 3.42138,0.63134c4.6689,0 10.92188,-6.22064 10.92188,-6.22064s-2.13664,-2.11816 -4.8396,-3.88316zm1.63747,-5.05392l-16.73636,16.68002l1.14477,1.14173l16.73555,-16.68083l-1.14396,-1.14092z"/></svg>
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
<svg class="tc-image-button" viewBox="0 0 512 512" width="22pt" height="22pt"><path d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 448c-110.532 0-200-89.431-200-200 0-110.495 89.472-200 200-200 110.491 0 200 89.471 200 200 0 110.53-89.431 200-200 200zm107.244-255.2c0 67.052-72.421 68.084-72.421 92.863V300c0 6.627-5.373 12-12 12h-45.647c-6.627 0-12-5.373-12-12v-8.659c0-35.745 27.1-50.034 47.579-61.516 17.561-9.845 28.324-16.541 28.324-29.579 0-17.246-21.999-28.693-39.784-28.693-23.189 0-33.894 10.977-48.942 29.969-4.057 5.12-11.46 6.071-16.666 2.124l-27.824-21.098c-5.107-3.872-6.251-11.066-2.644-16.363C184.846 131.491 214.94 112 261.794 112c49.071 0 101.45 38.304 101.45 88.8zM298 368c0 23.159-18.841 42-42 42s-42-18.841-42-42 18.841-42 42-42 42 18.841 42 42z"/></svg> <!-- Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) -->
<svg class="tgc-image-tiddlersbar-on tc-image-button" viewBox="0 0 22 22" width="22pt" height="22pt"> <path d="m10.98438,4.786c-6.10492,0 -10.92187,6.2141 -10.92187,6.2141s4.81695,6.2149 10.92187,6.2149c4.6689,0 10.92188,-6.2149 10.92188,-6.2149s-6.25298,-6.2141 -10.92188,-6.2141zm0,10.08643c-2.14311,0 -3.889,-1.73759 -3.889,-3.87233s1.74588,-3.87233 3.889,-3.87233s3.889,1.7384 3.889,3.87233s-1.74588,3.87233 -3.889,3.87233zm0,-6.13273c-1.25318,0 -2.27013,1.01178 -2.27013,2.2604c0,1.24862 1.01614,2.2604 2.27013,2.2604c1.25399,0 2.27013,-1.01179 2.27013,-2.2604c0,-1.24781 -1.01614,-2.2604 -2.27013,-2.2604z"/> </svg>
iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAD3SURBVEhL3Y+9DgFBFEY3RCJREVFpRafzAuh0Op2XUHkDjeg8gU6nU+o8gUqj0ShUEpHwndnRiJ2dtdtwkpPcn+9uZoO/pmPNlLZ8WKkzYyFfH6bOhJK8yL2VmllqRpKXjq3UzFKzlTdZs1IzS0VT8sKV6UKombH7mqnkI33ThVAzY/cVBXmSR5lnYKFmxo5MYgaSl81k+U1m7MgkZi05dkkmEXV5l/zyJkJ2ZMh6M5G8aGi6z7AjQ9aLnDzIsywyiIAdGbLcxNKVvGRuOjdkyHITy1ISbpnODRmy3DipyKvcmc4PstxwG0lV9mTDdH6Q5YbbnyUInrWwRP2tNDuOAAAAAElFTkSuQmCC
\define thumbnail(link,icon,color,background-color,image,caption,width:"280",height:"157") <$link to="""$link$"""><div class="tc-thumbnail-wrapper"> <div class="tc-thumbnail-image" style="width:$width$px;height:$height$px;"><$reveal type="nomatch" text="" default="""$image$""" tag="div" style="width:$width$px;height:$height$px;"> [img[$image$]] </$reveal><$reveal type="match" text="" default="""$image$""" tag="div" class="tc-thumbnail-background" style="width:$width$px;height:$height$px;background-color:$background-color$;"></$reveal></div><div class="tc-thumbnail-icon" style="fill:$color$;color:$color$;"> $icon$ </div><div class="tc-thumbnail-caption"> $caption$ </div> </div></$link> \end \define thumbnail-right(link,icon,color,background-color,image,caption,width:"280",height:"157") <div class="tc-thumbnail-right-wrapper"><<thumbnail """$link$""" """$icon$""" """$color$""" """$background-color$""" """$image$""" """$caption$""" """$width$""" """$height$""">></div> \end \define list-thumbnails(filter,width:"280",height:"157") <$list filter="""$filter$"""><$macrocall $name="thumbnail" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width="""$width$""" height="""$height$"""/></$list> \end
/*\ title: $:/core/modules/filters/split.js type: application/javascript module-type: filteroperator Filter operator for splitting each current list element into several new elements. \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Export our filter function */ exports.split = function(source,operator,options) { //console.log(source,operator,options); var results = [], fieldname = (operator.suffix || operator.operator || "title").toLowerCase(); source(function(tiddler,title) { if(tiddler) { var splitted, text = tiddler.getFieldString(fieldname); if(operator.regexp) { splitted = text.split(operator.regexp); } else { splitted = text.split(operator.operand); } if(splitted) { $tw.utils.pushTop(results,splitted); } } }); return results; }; })();
// (c) Dean McNamee <dean@gmail.com>, 2012. // // https://github.com/deanm/css-color-parser-js // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. // http://www.w3.org/TR/css3-color/ var kCSSColorTable = { "transparent": [0,0,0,0], "aliceblue": [240,248,255,1], "antiquewhite": [250,235,215,1], "aqua": [0,255,255,1], "aquamarine": [127,255,212,1], "azure": [240,255,255,1], "beige": [245,245,220,1], "bisque": [255,228,196,1], "black": [0,0,0,1], "blanchedalmond": [255,235,205,1], "blue": [0,0,255,1], "blueviolet": [138,43,226,1], "brown": [165,42,42,1], "burlywood": [222,184,135,1], "cadetblue": [95,158,160,1], "chartreuse": [127,255,0,1], "chocolate": [210,105,30,1], "coral": [255,127,80,1], "cornflowerblue": [100,149,237,1], "cornsilk": [255,248,220,1], "crimson": [220,20,60,1], "cyan": [0,255,255,1], "darkblue": [0,0,139,1], "darkcyan": [0,139,139,1], "darkgoldenrod": [184,134,11,1], "darkgray": [169,169,169,1], "darkgreen": [0,100,0,1], "darkgrey": [169,169,169,1], "darkkhaki": [189,183,107,1], "darkmagenta": [139,0,139,1], "darkolivegreen": [85,107,47,1], "darkorange": [255,140,0,1], "darkorchid": [153,50,204,1], "darkred": [139,0,0,1], "darksalmon": [233,150,122,1], "darkseagreen": [143,188,143,1], "darkslateblue": [72,61,139,1], "darkslategray": [47,79,79,1], "darkslategrey": [47,79,79,1], "darkturquoise": [0,206,209,1], "darkviolet": [148,0,211,1], "deeppink": [255,20,147,1], "deepskyblue": [0,191,255,1], "dimgray": [105,105,105,1], "dimgrey": [105,105,105,1], "dodgerblue": [30,144,255,1], "firebrick": [178,34,34,1], "floralwhite": [255,250,240,1], "forestgreen": [34,139,34,1], "fuchsia": [255,0,255,1], "gainsboro": [220,220,220,1], "ghostwhite": [248,248,255,1], "gold": [255,215,0,1], "goldenrod": [218,165,32,1], "gray": [128,128,128,1], "green": [0,128,0,1], "greenyellow": [173,255,47,1], "grey": [128,128,128,1], "honeydew": [240,255,240,1], "hotpink": [255,105,180,1], "indianred": [205,92,92,1], "indigo": [75,0,130,1], "ivory": [255,255,240,1], "khaki": [240,230,140,1], "lavender": [230,230,250,1], "lavenderblush": [255,240,245,1], "lawngreen": [124,252,0,1], "lemonchiffon": [255,250,205,1], "lightblue": [173,216,230,1], "lightcoral": [240,128,128,1], "lightcyan": [224,255,255,1], "lightgoldenrodyellow": [250,250,210,1], "lightgray": [211,211,211,1], "lightgreen": [144,238,144,1], "lightgrey": [211,211,211,1], "lightpink": [255,182,193,1], "lightsalmon": [255,160,122,1], "lightseagreen": [32,178,170,1], "lightskyblue": [135,206,250,1], "lightslategray": [119,136,153,1], "lightslategrey": [119,136,153,1], "lightsteelblue": [176,196,222,1], "lightyellow": [255,255,224,1], "lime": [0,255,0,1], "limegreen": [50,205,50,1], "linen": [250,240,230,1], "magenta": [255,0,255,1], "maroon": [128,0,0,1], "mediumaquamarine": [102,205,170,1], "mediumblue": [0,0,205,1], "mediumorchid": [186,85,211,1], "mediumpurple": [147,112,219,1], "mediumseagreen": [60,179,113,1], "mediumslateblue": [123,104,238,1], "mediumspringgreen": [0,250,154,1], "mediumturquoise": [72,209,204,1], "mediumvioletred": [199,21,133,1], "midnightblue": [25,25,112,1], "mintcream": [245,255,250,1], "mistyrose": [255,228,225,1], "moccasin": [255,228,181,1], "navajowhite": [255,222,173,1], "navy": [0,0,128,1], "oldlace": [253,245,230,1], "olive": [128,128,0,1], "olivedrab": [107,142,35,1], "orange": [255,165,0,1], "orangered": [255,69,0,1], "orchid": [218,112,214,1], "palegoldenrod": [238,232,170,1], "palegreen": [152,251,152,1], "paleturquoise": [175,238,238,1], "palevioletred": [219,112,147,1], "papayawhip": [255,239,213,1], "peachpuff": [255,218,185,1], "peru": [205,133,63,1], "pink": [255,192,203,1], "plum": [221,160,221,1], "powderblue": [176,224,230,1], "purple": [128,0,128,1], "red": [255,0,0,1], "rosybrown": [188,143,143,1], "royalblue": [65,105,225,1], "saddlebrown": [139,69,19,1], "salmon": [250,128,114,1], "sandybrown": [244,164,96,1], "seagreen": [46,139,87,1], "seashell": [255,245,238,1], "sienna": [160,82,45,1], "silver": [192,192,192,1], "skyblue": [135,206,235,1], "slateblue": [106,90,205,1], "slategray": [112,128,144,1], "slategrey": [112,128,144,1], "snow": [255,250,250,1], "springgreen": [0,255,127,1], "steelblue": [70,130,180,1], "tan": [210,180,140,1], "teal": [0,128,128,1], "thistle": [216,191,216,1], "tomato": [255,99,71,1], "turquoise": [64,224,208,1], "violet": [238,130,238,1], "wheat": [245,222,179,1], "white": [255,255,255,1], "whitesmoke": [245,245,245,1], "yellow": [255,255,0,1], "yellowgreen": [154,205,50,1]} function clamp_css_byte(i) { // Clamp to integer 0 .. 255. i = Math.round(i); // Seems to be what Chrome does (vs truncation). return i < 0 ? 0 : i > 255 ? 255 : i; } function clamp_css_float(f) { // Clamp to float 0.0 .. 1.0. return f < 0 ? 0 : f > 1 ? 1 : f; } function parse_css_int(str) { // int or percentage. if (str[str.length - 1] === '%') return clamp_css_byte(parseFloat(str) / 100 * 255); return clamp_css_byte(parseInt(str)); } function parse_css_float(str) { // float or percentage. if (str[str.length - 1] === '%') return clamp_css_float(parseFloat(str) / 100); return clamp_css_float(parseFloat(str)); } function css_hue_to_rgb(m1, m2, h) { if (h < 0) h += 1; else if (h > 1) h -= 1; if (h * 6 < 1) return m1 + (m2 - m1) * h * 6; if (h * 2 < 1) return m2; if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6; return m1; } function parseCSSColor(css_str) { // Remove all whitespace, not compliant, but should just be more accepting. var str = css_str.replace(/ /g, '').toLowerCase(); // Color keywords (and transparent) lookup. if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup. // #abc and #abc123 syntax. if (str[0] === '#') { if (str.length === 4) { var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing. if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN. return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), 1]; } else if (str.length === 7) { var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing. if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN. return [(iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, 1]; } return null; } var op = str.indexOf('('), ep = str.indexOf(')'); if (op !== -1 && ep + 1 === str.length) { var fname = str.substr(0, op); var params = str.substr(op+1, ep-(op+1)).split(','); var alpha = 1; // To allow case fallthrough. switch (fname) { case 'rgba': if (params.length !== 4) return null; alpha = parse_css_float(params.pop()); // Fall through. case 'rgb': if (params.length !== 3) return null; return [parse_css_int(params[0]), parse_css_int(params[1]), parse_css_int(params[2]), alpha]; case 'hsla': if (params.length !== 4) return null; alpha = parse_css_float(params.pop()); // Fall through. case 'hsl': if (params.length !== 3) return null; var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1 // NOTE(deanm): According to the CSS spec s/l should only be // percentages, but we don't bother and let float or percentage. var s = parse_css_float(params[1]); var l = parse_css_float(params[2]); var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s; var m1 = l * 2 - m2; return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255), clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255), clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255), alpha]; default: return null; } } return null; } try { exports.parseCSSColor = parseCSSColor } catch(e) { }
/*\ title: $:/core/modules/widgets/CheckboxEx.js type: application/javascript module-type: widget CheckboxEx widget \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var CheckboxExWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; /* Inherit from the base widget class */ CheckboxExWidget.prototype = new Widget(); /* Render this widget into the DOM */ CheckboxExWidget.prototype.render = function(parent,nextSibling) { // Save the parent dom node this.parentDomNode = parent; // Compute our attributes this.computeAttributes(); // Execute our logic this.execute(); // Create our elements this.spanDomNode = this.document.createElement("span"); this.spanDomNode.setAttribute("class",this.CheckboxExClass); this.inputDomNode = this.document.createElement("input"); this.inputDomNode.setAttribute("type","Checkbox"); if(this.getValue()) { this.inputDomNode.setAttribute("checked","true"); } this.labelDomNode = this.document.createElement("label"); this.labelDomNode.setAttribute("data-on",this.CheckboxExChecked); this.labelDomNode.setAttribute("data-off",this.CheckboxExUnchecked); this.spanDomNode.appendChild(this.inputDomNode); this.spanDomNode.appendChild(this.labelDomNode); //this.inputDomNode.appendChild(this.labelDomNode); // Add a click event handler $tw.utils.addEventListeners(this.inputDomNode,[ {name: "change", handlerObject: this, handlerMethod: "handleChangeEvent"} ]); // Insert the label into the DOM and render any children parent.insertBefore(this.spanDomNode,nextSibling); this.renderChildren(this.inputDomNode,null); this.renderChildren(this.labelDomNode,null); this.domNodes.push(this.spanDomNode); }; CheckboxExWidget.prototype.getValue = function() { var tiddler = this.wiki.getTiddler(this.CheckboxExTitle); if(tiddler) { if(this.CheckboxExTag) { if(this.CheckboxExInvertTag) { return !tiddler.hasTag(this.CheckboxExTag); } else { return tiddler.hasTag(this.CheckboxExTag); } } if(this.CheckboxExField) { var value; if($tw.utils.hop(tiddler.fields,this.CheckboxExField)) { value = tiddler.fields[this.CheckboxExField] || ""; } else { value = this.CheckboxExDefault || ""; } if(value === this.CheckboxExChecked) { return true; } if(value === this.CheckboxExUnchecked) { return false; } } if(this.CheckboxExIndex) { var value = this.wiki.extractTiddlerDataItem(tiddler,this.CheckboxExIndex,this.CheckboxExDefault || ""); if(value === this.CheckboxExChecked) { return true; } if(value === this.CheckboxExUnchecked) { return false; } } } else { if(this.CheckboxExTag) { return false; } if(this.CheckboxExField) { if(this.CheckboxExDefault === this.CheckboxExChecked) { return true; } if(this.CheckboxExDefault === this.CheckboxExUnchecked) { return false; } } } return false; }; CheckboxExWidget.prototype.handleChangeEvent = function(event) { var checked = this.inputDomNode.checked, tiddler = this.wiki.getTiddler(this.CheckboxExTitle), fallbackFields = {text: ""}, newFields = {title: this.CheckboxExTitle}, hasChanged = false, tagCheck = false, hasTag = tiddler && tiddler.hasTag(this.CheckboxExTag), value = checked ? this.CheckboxExChecked : this.CheckboxExUnchecked; if(this.CheckboxExTag && this.CheckboxExInvertTag === "yes") { tagCheck = hasTag === checked; } else { tagCheck = hasTag !== checked; } // Set the tag if specified if(this.CheckboxExTag && (!tiddler || tagCheck)) { newFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : []; var pos = newFields.tags.indexOf(this.CheckboxExTag); if(pos !== -1) { newFields.tags.splice(pos,1); } if(this.CheckboxExInvertTag === "yes" && !checked) { newFields.tags.push(this.CheckboxExTag); } else if(this.CheckboxExInvertTag !== "yes" && checked) { newFields.tags.push(this.CheckboxExTag); } hasChanged = true; } // Set the field if specified if(this.CheckboxExField) { if(!tiddler || tiddler.fields[this.CheckboxExField] !== value) { newFields[this.CheckboxExField] = value; hasChanged = true; } } // Set the index if specified if(this.CheckboxExIndex) { var indexValue = this.wiki.extractTiddlerDataItem(this.CheckboxExTitle,this.CheckboxExIndex); if(!tiddler || indexValue !== value) { hasChanged = true; } } if(hasChanged) { if(this.CheckboxExIndex) { this.wiki.setText(this.CheckboxExTitle,"",this.CheckboxExIndex,value); } else { this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields())); } } // Trigger actions if(this.CheckboxExActions) { this.invokeActionString(this.CheckboxExActions,this,event); } if(this.CheckboxExUncheckActions && !checked) { this.invokeActionString(this.CheckboxExUncheckActions,this,event); } }; /* Compute the internal state of the widget */ CheckboxExWidget.prototype.execute = function() { // Get the parameters from the attributes this.CheckboxExActions = this.getAttribute("actions"); this.CheckboxExUncheckActions = this.getAttribute("uncheckactions"); this.CheckboxExTitle = this.getAttribute("tiddler",this.getVariable("currentTiddler")); this.CheckboxExTag = this.getAttribute("tag"); this.CheckboxExField = this.getAttribute("field"); this.CheckboxExIndex = this.getAttribute("index"); this.CheckboxExChecked = this.getAttribute("checked"); this.CheckboxExUnchecked = this.getAttribute("unchecked"); this.CheckboxExDefault = this.getAttribute("default"); this.CheckboxExClass = this.getAttribute("class",""); this.CheckboxExInvertTag = this.getAttribute("invertTag",""); // Make the child widgets this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ CheckboxExWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes["default"] || changedAttributes["class"]) { this.refreshSelf(); return true; } else { var refreshed = false; if(changedTiddlers[this.CheckboxExTitle]) { this.inputDomNode.checked = this.getValue(); refreshed = true; } return this.refreshChildren(changedTiddlers) || refreshed; } }; exports.checkboxex = CheckboxExWidget; })();
/*\ title: $:/core/modules/widgets/macrorefresh.js type: application/javascript module-type: widget Macrocall widget \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var MacroCallWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; /* Inherit from the base widget class */ MacroCallWidget.prototype = new Widget(); /* Render this widget into the DOM */ MacroCallWidget.prototype.render = function(parent,nextSibling) { this.parentDomNode = parent; this.computeAttributes(); this.execute(); this.renderChildren(parent,nextSibling); }; /* Compute the internal state of the widget */ MacroCallWidget.prototype.execute = function() { var self = this; // Get the parse type if specified this.parseType = this.getAttribute("$type","text/vnd.tiddlywiki"); this.renderOutput = this.getAttribute("$output","text/html"); // Merge together the parameters specified in the parse tree with the specified attributes this.params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : []; $tw.utils.each(this.attributes,function(attribute,name) { if(name.charAt(0) !== "$") { self.params.push({name: name, value: attribute}); } }); // Get the macro value var text = this.getVariable(this.parseTreeNode.name || this.getAttribute("$name"),{params: this.params}), parseTreeNodes; // Are we rendering to HTML? if(this.renderOutput === "text/html") { // If so we'll return the parsed macro var parser = this.wiki.parseText(this.parseType,text, {parseAsInline: !this.parseTreeNode.isBlock}); parseTreeNodes = parser ? parser.tree : []; } else { // Otherwise, we'll render the text var plainText = this.wiki.renderText("text/plain",this.parseType,text,{parentWidget: this}); parseTreeNodes = [{type: "text", text: plainText}]; } // Construct the child widgets this.makeChildWidgets(parseTreeNodes); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ MacroCallWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if($tw.utils.count(changedAttributes) > 0) { // Rerender ourselves this.refreshSelf(); return true; } //else if (this.getAttribute("$refresh")) { var params = this.params.slice(0); params.push({name: "changedTiddlers", value: changedTiddlers}); if (this.getVariable(this.getAttribute("$refresh"),{params: params})) { // Rerender ourselves this.refreshSelf(); return true; } //else } return this.refreshChildren(changedTiddlers); }; exports.macrorefresh = MacroCallWidget; })();
\define lingo-base() $:/language/Search/ <<lingo Filter/Hint>> <div class="tc-search tc-advanced-search"> <$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/> <$list filter="[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]"><$transclude/></$list> </div> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$set name="resultCount" value="""<$count filter={{$:/temp/advancedsearch}}/>"""> <div class="tc-search-results"> <<lingo Filter/Matches>> <$list filter={{$:/temp/advancedsearch}} template="$:/core/ui/ListItemTemplate"/> </div> </$set> </$reveal>
\define lingo-base() $:/language/Search/ <$linkcatcher to="$:/temp/advancedsearch"> <<lingo Shadows/Hint>> <div class="tc-search"> <$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/advancedsearch" $field="text" $value=""/> {{$:/core/images/close-button}} </$button> </$reveal> </div> </$linkcatcher> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$list filter="[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem"> <$set name="resultCount" value="""<$count filter="[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]"/>"""> <div class="tc-search-results"> <<lingo Shadows/Matches>> <$list filter="[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/> </div> </$set> </$list> </$reveal> <$reveal state="$:/temp/advancedsearch" type="match" text=""> </$reveal>
\define lingo-base() $:/language/Search/ <$linkcatcher to="$:/temp/advancedsearch"> <<lingo System/Hint>> <div class="tc-search"> <$edit-text tiddler="$:/temp/advancedsearch" type="search" tag="input"/> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/advancedsearch" $field="text" $value=""/> {{$:/core/images/close-button}} </$button> </$reveal> </div> </$linkcatcher> <$reveal state="$:/temp/advancedsearch" type="nomatch" text=""> <$list filter="[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem"> <$set name="resultCount" value="""<$count filter="[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]"/>"""> <div class="tc-search-results"> <<lingo System/Matches>> <$list filter="[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]" template="$:/core/ui/ListItemTemplate"/> </div> </$set> </$list> </$reveal> <$reveal state="$:/temp/advancedsearch" type="match" text=""> </$reveal>
<<CheckBox2 "flat" "black" "#006200" "#2F4858" "style" "Changer la couleur du fil d'Ariane">>
<$button message="tm-close-all-tiddlers" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/core/images/close-all-button}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span> </$list> </$button>
\define control-panel-button(class) <$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class="""$(tv-config-toolbar-class)$ $class$"""> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/core/images/options-button}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span> </$list> </$button> \end <$list filter="[list[$:/StoryList]] +[field:title[$:/ControlPanel]]" emptyMessage=<<control-panel-button>>> <<control-panel-button "tc-selected">> </$list>
<$button message="tm-home" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/core/images/home-button}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/Home/Caption}}/></span> </$list> </$button>
<$button message="tm-new-tiddler" tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/core/images/new-button}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span> </$list> </$button>
<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>> <$action-sendmessage $message="tm-add-tag" $param={{$:/temp/NewTagName}}/> <$action-deletetiddler $tiddler="$:/temp/NewTagName"/> <$action-sendmessage $message="tm-add-field" $name={{$:/temp/newfieldname}} $value={{$:/temp/newfieldvalue}}/> <$action-deletetiddler $tiddler="$:/temp/newfieldname"/> <$action-deletetiddler $tiddler="$:/temp/newfieldvalue"/> <$action-sendmessage $message="tm-save-tiddler"/> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/core/images/done-button}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/Save/Caption}}/></span> </$list> </$button></$fieldmangler>
<$button message="tm-save-wiki" param={{$:/config/SaveWikiButton/Template}} tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>> <span class="tc-dirty-indicator"> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/core/images/save-button}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span> </$list> </span> </$button>
<$button message="tm-open-window" param="$:/core/ui/SideBarLists" tooltip="Ouvrir le menu en PopUp" aria-label="Menu" class=<<tv-config-toolbar-class>>>{{$:/core/images/SideBarTabs}}</$button>
<$button class='tc-btn-invisible' to='$:/Polices-Alignements' tooltip='Changer de paramètres Polices/Tailles/Couleur'>{{$:/core/images/typography}}</$button>
\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/ \define new-shortcut(title) <div class="tc-dropdown-item-plain"> <$edit-shortcut tiddler="$title$" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} style="width:auto;"/> <$button> <<lingo Add/Caption>> <$action-listops $tiddler="$(shortcutTitle)$" $field="text" $subfilter="[{$title$}]" /> <$action-deletetiddler $tiddler="$title$" /> </$button> </div> \end \define shortcut-list-item(caption) <td> </td> <td style="text-align:right;font-size:0.7em;"> <<lingo Platform/$caption$>> </td> <td> <div style="position:relative;"> <$button popup=<<qualify "$:/state/dropdown/$(shortcutTitle)$">> class="tc-btn-invisible"> {{$:/core/images/edit-button}} </$button> <$macrocall $name="displayshortcuts" $output="text/html" shortcuts={{$(shortcutTitle)$}} prefix="<kbd>" separator="</kbd> <kbd>" suffix="</kbd>"/> <$reveal state=<<qualify "$:/state/dropdown/$(shortcutTitle)$">> type="popup" position="below" animate="yes"> <div class="tc-block-dropdown-wrapper"> <div class="tc-block-dropdown tc-edit-type-dropdown tc-popup-keep"> <$list filter="[list[$(shortcutTitle)$!!text]sort[title]]" variable="shortcut" emptyMessage=""" <div class="tc-dropdown-item-plain"> //<<lingo NoShortcuts/Caption>>// </div> """> <div class="tc-dropdown-item-plain"> <$button class="tc-btn-invisible" tooltip=<<lingo Remove/Hint>>> <$action-listops $tiddler="$(shortcutTitle)$" $field="text" $subfilter="+[remove<shortcut>]" /> × </$button> <kbd> <$macrocall $name="displayshortcuts" $output="text/html" shortcuts=<<shortcut>>/> </kbd> </div> </$list> <hr/> <$macrocall $name="new-shortcut" title=<<qualify "$:/state/new-shortcut/$(shortcutTitle)$">>/> </div> </div> </$reveal> </div> </td> \end \define shortcut-list(caption,prefix) <tr> <$list filter="[all[tiddlers+shadows][$prefix$$(shortcutName)$]]" variable="shortcutTitle"> <<shortcut-list-item "$caption$">> </$list> </tr> \end \define shortcut-editor() <<shortcut-list "All" "$:/config/shortcuts/">> <<shortcut-list "Mac" "$:/config/shortcuts-mac/">> <<shortcut-list "NonMac" "$:/config/shortcuts-not-mac/">> <<shortcut-list "Linux" "$:/config/shortcuts-linux/">> <<shortcut-list "NonLinux" "$:/config/shortcuts-not-linux/">> <<shortcut-list "Windows" "$:/config/shortcuts-windows/">> <<shortcut-list "NonWindows" "$:/config/shortcuts-not-windows/">> \end \define shortcut-preview() <$macrocall $name="displayshortcuts" $output="text/html" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix="<kbd>" separator="</kbd> <kbd>" suffix="</kbd>"/> \end \define shortcut-item-inner() <tr> <td> <$reveal type="nomatch" state=<<dropdownStateTitle>> text="open"> <$button class="tc-btn-invisible"> <$action-setfield $tiddler=<<dropdownStateTitle>> $value="open" /> {{$:/core/images/right-arrow}} </$button> </$reveal> <$reveal type="match" state=<<dropdownStateTitle>> text="open"> <$button class="tc-btn-invisible"> <$action-setfield $tiddler=<<dropdownStateTitle>> $value="close" /> {{$:/core/images/down-arrow}} </$button> </$reveal> ''<$text text=<<shortcutName>>/>'' </td> <td> <$transclude tiddler="$:/config/ShortcutInfo/$(shortcutName)$"/> </td> <td> <$list filter="$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/" variable="shortcutPrefix"> <<shortcut-preview>> </$list> </td> </tr> <$set name="dropdownState" value={{$(dropdownStateTitle)$}}> <$list filter="[<dropdownState>prefix[open]]" variable="listItem"> <<shortcut-editor>> </$list> </$set> \end \define shortcut-item() <$set name="dropdownStateTitle" value=<<qualify "$:/state/dropdown/keyboardshortcut/$(shortcutName)$">>> <<shortcut-item-inner>> </$set> \end <table> <tbody> <$list filter="[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]" variable="shortcutName"> <<shortcut-item>> </$list> </tbody> </table>
\define lingo-base() $:/language/ControlPanel/Palette/ {{$:/snippets/paletteswitcher}} <$reveal type="nomatch" state="$:/state/ShowPaletteEditor" text="yes"> <$button set="$:/state/ShowPaletteEditor" setTo="yes"><<lingo ShowEditor/Caption>></$button> </$reveal> <$reveal type="match" state="$:/state/ShowPaletteEditor" text="yes"> <$button set="$:/state/ShowPaletteEditor" setTo="no"><<lingo HideEditor/Caption>></$button> {{$:/snippets/paletteeditor}} </$reveal>
<$action-sendmessage $message="tm-edit-text-operation" $param="wrap-selection" prefix="<<pageLink class:'tc-btn-invisible tc-tiddlylink' text:'" suffix="' tiddlers:'TiddlerUn [[Tiddler Deux]]' target:'TiddlerUn'>>" />
<$set name="tv-config-toolbar-icons" value="yes"> <$set name="tv-config-toolbar-text" value="yes"> <$set name="tv-config-toolbar-class" value=""> {{$:/core/ui/Buttons/tag-manager}} </$set> </$set> </$set> <$list filter={{$:/core/Filters/AllTags!!filter}}> <$transclude tiddler="$:/core/ui/TagTemplate"/> <small class="tc-menu-list-count"><$count filter="[all[current]tagging[]]"/></small> </$list> <hr class="tc-untagged-separator"> {{$:/core/ui/UntaggedTemplate}} <small class="tc-menu-list-count"><$count filter="[untagged[]!is[system]] -[tags[]]"/></small>
<div class="tc-alerts"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]" template="$:/core/ui/AlertTemplate" storyview="pop"/> </div>
\whitespace trim <$reveal state="$:/status/IsReadOnly" type="nomatch" text="yes" tag="div" class="tc-drafts-list"> <$list filter="[has[draft.of]!sort[modified]] -[list[$:/StoryList]]"> <$link> {{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/> </$link> </$list> </$reveal>
\define config-title() $:/config/PageControlButtons/Visibility/$(listItem)$ \end <div class="tc-page-controls"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem"> <$reveal type="nomatch" state=<<config-title>> text="hide"> <$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"> <$transclude tiddler=<<listItem>> mode="inline"/> </$set> </$reveal> </$list> </div>
\define lingo-base() $:/language/ <$list filter="[has[plugin-type]haschanged[]!plugin-type[import]limit[1]]"> <$reveal type="nomatch" state="$:/temp/HidePluginWarning" text="yes"> <div class="tc-plugin-reload-warning"> <$set name="tv-config-toolbar-class" value=""> <<lingo PluginReloadWarning>> <$button set="$:/temp/HidePluginWarning" setTo="yes" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> </$set> </div> </$reveal> </$list>
<<script 0>>
\define config-title() $:/config/SideBarSegments/Visibility/$(listItem)$ \end <$scrollable fallthrough="no" class="tc-sidebar-scrollable"> <div class="tc-sidebar-header"> <$reveal state="$:/state/sidebar" type="match" text="yes" default="yes" retain="yes" animate="yes"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]" variable="listItem"> <$reveal type="nomatch" state=<<config-title>> text="hide" tag="div"> <$transclude tiddler=<<listItem>> mode="block"/> </$reveal> </$list> </$reveal> </div> </$scrollable>
<span class="tc-topbar tc-topbar-right"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]" variable="listItem"> <$transclude tiddler=<<listItem>> mode="inline"/> </$list> </span>
<div class="tc-more-sidebar"> <$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]" default={{$:/config/DefaultMoreSidebarTab}} state="$:/state/tab/moresidebar" class="tc-vertical" /> </div>
\define lingo-base() $:/language/CloseAll/ \define drop-actions() <$action-listops $tiddler="$:/StoryList" $subfilter="+[insertbefore:currentTiddler<actionTiddler>]"/> \end <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop"> <div style="position: relative;"> <$droppable actions=<<drop-actions>>> <div class="tc-droppable-placeholder"> </div> <div> <$button message="tm-close-tiddler" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class="tc-btn-invisible tc-btn-mini">×</$button> <$link to={{!!title}}><$view field="title"/><$reveal type="match" state="$:/HistoryList!!current-tiddler" text=<<currentTiddler>>>✓</$reveal></$link> </div> </$droppable> </div> </$list> <$tiddler tiddler=""> <$droppable actions=<<drop-actions>>> <div class="tc-droppable-placeholder"> </div> <$button message="tm-close-all-tiddlers" class="tc-btn-invisible tc-btn-mini"><<lingo Button>></$button> </$droppable> </$tiddler> <!-- Vous pouvez également accéder à cette table des matières via le bouton "Aide" {{$:/core/images/help}} qui se trouve dans la barre d'outils de la SideBar ou dans le menu "Contrôles" de la NavBar. -->
<$macrocall $name="timeline" format={{$:/language/RecentChanges/DateFormat}}/>
\define lingo-base() $:/language/ControlPanel/ \define config-title() $:/config/PageControlButtons/Visibility/$(listItem)$ \end <<lingo Basics/Version/Prompt>> <<version>> <$set name="tv-config-toolbar-icons" value="yes"> <$set name="tv-config-toolbar-text" value="yes"> <$set name="tv-config-toolbar-class" value=""> <$list filter="[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]" variable="listItem"> <div style="position:relative;" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}> <$checkbox tiddler=<<config-title>> field="text" checked="show" unchecked="hide" default="show"/> <$transclude tiddler=<<listItem>>/> <i class="tc-muted"><$transclude tiddler=<<listItem>> field="description"/></i> </div> </$list> </$set> </$set> </$set>
<div class="tc-sidebar-lists"> <$set name="searchTiddler" value="$:/temp/search"> <div class="tc-search"> <$edit-text tiddler="$:/temp/search" type="search" tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">> class="tc-popup-handle"/> <$reveal state="$:/temp/search" type="nomatch" text=""> <$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/advancedsearch" text={{$:/temp/search}}/> <$action-setfield $tiddler="$:/temp/search" text=""/> <$action-navigate $to="$:/AdvancedSearch"/> {{$:/core/images/advanced-search-button}} </$button> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/search" text="" /> {{$:/core/images/close-button}} </$button> <$button popup=<<qualify "$:/state/popup/search-dropdown">> class="tc-btn-invisible"> {{$:/core/images/down-arrow}} <$list filter="[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]" variable="listItem"> <$set name="searchTerm" value={{{ [<searchTiddler>get[text]] }}}> <$set name="resultCount" value="""<$count filter="[!is[system]search<searchTerm>]"/>"""> {{$:/language/Search/Matches}} </$set> </$set> </$list> </$button> </$reveal> <$reveal state="$:/temp/search" type="match" text=""> <$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible"> {{$:/core/images/advanced-search-button}} </$button> </$reveal> </div> <$reveal tag="div" class="tc-block-dropdown-wrapper" state="$:/temp/search" type="nomatch" text=""> <$reveal tag="div" class="tc-block-dropdown tc-search-drop-down tc-popup-handle" state=<<qualify "$:/state/popup/search-dropdown">> type="nomatch" text="" default=""> <$list filter="[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem"> {{$:/core/ui/SearchResults}} </$list> </$reveal> </$reveal> </$set> </div>
<div class="tc-site-subtitle"> <$transclude tiddler="$:/SiteSubtitle" mode="inline"/> </div>
<h1 class="tc-site-title"> <$transclude tiddler="$:/SiteTitle" mode="inline"/> </h1>
<table class="tc-view-field-table"> <tbody> <$list filter="[all[current]fields[]sort[title]] -text" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> </tbody> </table>
<$reveal state="$:/state/sidebar" type="nomatch" text="no"> <$button set="$:/state/sidebar" setTo="no" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class="tc-btn-invisible">{{$:/core/images/chevron-right}}</$button> </$reveal> <$reveal state="$:/state/sidebar" type="match" text="no"> <$button set="$:/state/sidebar" setTo="yes" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class="tc-btn-invisible">{{$:/core/images/chevron-left}}</$button> </$reveal>
\define frame-classes() tc-tiddler-frame tc-tiddler-view-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ $(tiddlerTagClasses)$ $(classfield)$ \end \define folded-state() $:/state/folded/$(currentTiddler)$ \end <$set name="storyTiddler" value=<<currentTiddler>>><$set name="tiddlerInfoState" value=<<qualify "$:/state/popup/tiddler-info">>><$tiddler tiddler=<<currentTiddler>>><$set name="classfield" value={{!!tc-extra}}><div class=<<frame-classes>>><$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]" variable="listItem"><$transclude tiddler=<<listItem>>/></$list> </div></$set> </$tiddler></$set></$set>
<$list filter='[is[current]]'> <hr> </$list>
<$list filter='[is[current]]'> {{||$:/AddNewNotes}} </$list>
<div align="right"><small>Document créé le : <$view field="created" format="date" template="DD MMM YYYY"/></small></div>
<$reveal type="nomatch" stateTitle=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes"> <div class="tc-tags-wrapper"><$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/></div> </$reveal>
\define title-styles() fill:$(foregroundColor)$; \end \define config-title() $:/config/ViewToolbarButtons/Visibility/$(listItem)$ \end <div class="tc-tiddler-title"> <div class="tc-titlebar"> <span class="tc-tiddler-controls"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$set name="tv-config-toolbar-class" filter="[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list> </span> <$set name="tv-wikilinks" value={{$:/config/Tiddlers/TitleLinks}}> <$link> <$set name="foregroundColor" value={{!!color}}> <span class="tc-tiddler-title-icon" style=<<title-styles>>> <$transclude tiddler={{!!icon}}/> </span> </$set> <$list filter="[all[current]removeprefix[$:/]]"> <h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}> <span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/> </h2> </$list> <$list filter="[all[current]!prefix[$:/]]"> <h2 class="tc-title"> <$view field="title"/> </h2> </$list> </$link> </$set> </div> <$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup-handle" animate="yes" retain="yes"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]" variable="listItem"><$transclude tiddler=<<listItem>> mode="block"/></$list> </$reveal> </div>
<$details summary="Note" open="yes">Article totalement ré-écrit le 16 décembre 2018</$details> <div class="note"> J'ai modifié la présentation des tiddlers en mode visualisation parce que je trouve que le modèle standard ne laisse pas assez de place au titre des tiddlers qui peuvent souvent dépasser la place attribuée et donc s'étendre sur une ligne supplémentaire (ou plusieurs), quand bien même il est possible de ne voir apparaître les boutons de contrôle qu'au seul passage de la souris (voir [[Afficher les boutons au survol de la souris|$:/cssButtonsOnHover]]), ce qui ne libère pas pour autant d'espace supplémentaire au titre du tiddler qui ne peut ainsi occuper le supplément d'espace ainsi attribué. </div> La modification du template de vue du titre d'un tiddler comporte deux points particuliers: #Le remplacement (en visualisation) d'un titre natif en anglais par sa traduction en français. (pour plus d'explications, se reporter à [[Titres Natifs remplacés par Titres traduits|TradTitle]] #Le remplacement du shadow Tiddler $:/core/ui/ViewTemplate/title par le tiddler $:/core/ui/ViewTemplate/titleTitle Remarque: Le Tiddler source $:/core/ui/ViewTemplate/title n'est pas directement modifié mais son tag $:/tags/ViewTemplate est retiré, le soustrayant ainsi à la liste des templates de vue. ;Source du tiddler $:/core/ui/ViewTemplate/title en version 5.1.18 {{$:/core/ui/ViewTemplate/title||code}} Ce tiddler est normalement affecté du tag `$:/tags/ViewTemplate` qui a été ôté comme expliqué plus haut. !!1- Création d'un tiddler template relatif au titre d'un tiddler Il faut d'abord remarquer : #Que nous voulons voir le seul titre du tiddler sur la première ligne. #Que les [[boutons de contrôle en mode visu|$:/core/ui/ControlPanel/Toolbars/ViewToolbar]] sont accolés au titre du tiddler. #Que nous allons les déplacer sur la seconde ligne, c'est à dire sur la même ligne que celle du template $:/core/ui/ViewTemplate/subtitle dite ligne de sous-titre. Pour ce faire le Tiddler $:/core/ui/ViewTemplate/title sera dupliqué deux fois: ''1ère duplication'': $:/core/ui/ViewTemplate/titleTitle qui ne contient plus que le titre du tiddler seul, plus le code permettant la traduction d'un titre natif anglais en français (Voir [[Titres Natifs remplacés par Titres traduits|TradTitle]]) ``` \define title-styles() fill:$(foregroundColor)$; \end \define config-title() $:/config/ViewToolbarButtons/Visibility/$(listItem)$ \end <div class="tc-tiddler-title"> <$list filter="[all[current]removeprefix[$:/]]"> <h2 class="tc-title" title={{$:/language/SystemTiddler/Tooltip}}> <span class="tc-system-title-prefix">$:/</span><$text text=<<currentTiddler>>/> </h2> </$list> <$list filter="[all[current]!prefix[$:/]]"> <h2 class="tc-title"> <$view field="fr-title"> <$view field="title"/> </$view> </h2> </$list> </div> <$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup" animate="yes" retain="yes"> <$transclude tiddler="$:/core/ui/TiddlerInfo"/> </$reveal> ``` !!2- Création d'un tiddler template relatif aux boutons de contrôle ''2ème duplication'': $:/core/ui/ViewTemplate/titleControls et ne contient que les boutons de contrôle. ``` \define title-styles() fill:$(foregroundColor)$; \end \define config-title() $:/config/ViewToolbarButtons/Visibility/$(listItem)$ \end <div class="tc-titlebar"> <span class="tc-tiddler-controls"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$transclude tiddler=<<listItem>>/></$reveal></$list> </span> <$set name="foregroundColor" value={{!!color}}> <span style=<<title-styles>>> <$transclude tiddler={{!!icon}}/> </span> </$set> </div> <$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup" animate="yes" retain="yes"> <$transclude tiddler="$:/core/ui/TiddlerInfo"/> </$reveal> ``` <$button>1</$button> Avec le champ list-before : $:/core/ui/ViewTemplate/subtitle <$button>2</$button> Pour déplacer les boutons de contrôle de la droite vers la gauche : $:/cssTiddlersControls, sinon, c'est ans le thème vanilla. <$button>3</$button> Pour changer la taille des boutons de contrôle $:/cssTiddlerTitle. Par exemple : `.tc-titlebar{ font-size:25px; }` <$button>4</$button> Pour centrer le titre du tiddler avec effet de soulignement, ajouter la feuille de style $:/cssTiddlerTitle <$button>5</$button> Pour modifier le comportement du titre d'un tiddler (voir ou cacher le titre) , voyez le tiddler de configuration $:/TemplateTiddler <$button>6</$button> Pour voir ou cacher les boutons de contrôle, voir [[Afficher les boutons au survol de la souris|$:/cssButtonsOnHover]] !!3- Pour résumer Le tiddler template source $:/core/ui/ViewTemplate/title #N'a pas été supprimé mais simplement désactivé par suppression de son tag `$:/tags/ViewTemplate` #A été réparti (dispatché) en deux nouveaux templates de vue : ##$:/core/ui/ViewTemplate/titleTitle pour la présentation du titre seul ##$:/core/ui/ViewTemplate/titleControls pour l'ajout des boutons de contrôle sur la seconde ligne (qui elle passe à la troisième)
\define title-styles() fill:$(foregroundColor)$; \end \define config-title() $:/config/ViewToolbarButtons/Visibility/$(listItem)$ \end <div class="tc-titlebar"> <span class="tc-tiddler-controls"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]" variable="listItem"><$reveal type="nomatch" state=<<config-title>> text="hide"><$transclude tiddler=<<listItem>>/></$reveal></$list> </span> <$set name="foregroundColor" value={{!!color}}> <span style=<<title-styles>>> <$transclude tiddler={{!!icon}}/> </span> </$set> </div>
\define title-styles() fill:$(foregroundColor)$; \end \define config-title() $:/config/ViewToolbarButtons/Visibility/$(listItem)$ \end <div class="toast text-center toast-primary"> <$list filter="[all[current]removeprefix[$:/]]"> <span class="h4 text-secondary" title={{$:/language/SystemTiddler/Tooltip}}> <span class="h4 text-secondary">$:/</span><$text text=<<currentTiddler>>/> </span> </$list> <$list filter="[all[current]!prefix[$:/]]"> <span class="h4 text-secondary"> <$view field="fr-title"> <$view field="title"/> </$view> </span> </$list> <$reveal type="nomatch" text="" default="" state=<<tiddlerInfoState>> class="tc-tiddler-info tc-popup" animate="yes" retain="yes"> <$transclude tiddler="$:/core/ui/TiddlerInfo"/> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> {{$:/core/images/cancel-button}} Couleur du bouton Cancel </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-cancel-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal41" text="show"><$button set="$:/state/SampleRowReveal41" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal41" text="show"><$button set="$:/state/SampleRowReveal41" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal41" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-166}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur Bouton Close">{{$:/core/images/close-button}} Couleur du bouton Close</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-close-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal13" text="show"><$button set="$:/state/SampleRowReveal13" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal13" text="show"><$button set="$:/state/SampleRowReveal13" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal13" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-161}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> {{$:/core/images/delete-button}} Couleur du bouton Delete </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-delete-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal39" text="show"><$button set="$:/state/SampleRowReveal39" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal39" text="show"><$button set="$:/state/SampleRowReveal39" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal39" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-164}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> {{$:/core/images/done-button}} Couleur du bouton Done </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-done-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal43" text="show"><$button set="$:/state/SampleRowReveal43" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal43" text="show"><$button set="$:/state/SampleRowReveal43" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal43" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-168}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur Bouton édition">{{$:/core/images/edit-button}} Couleur du bouton Édition</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-edit-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal9" text="show"><$button set="$:/state/SampleRowReveal9" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal9" text="show"><$button set="$:/state/SampleRowReveal9" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal9" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-158}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur Bouton Info">{{$:/core/images/info-button}} Couleur du bouton Info</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-edit-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal11" text="show"><$button set="$:/state/SampleRowReveal11" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal11" text="show"><$button set="$:/state/SampleRowReveal11" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal11" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-160}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur colonnes de la NavBar">Couleur colonnes NavBar</$link> </td> <td align="center"> 01<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col01' type="color" tag="input"/><br/> 02<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col02' type="color" tag="input"/><br/> 03<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col03' type="color" tag="input"/><br/> 04<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col04' type="color" tag="input"/><br/> 05<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col05' type="color" tag="input"/><br/> 06<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col06' type="color" tag="input"/><br/> 07<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col07' type="color" tag="input"/><br/> 08<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col08' type="color" tag="input"/><br/> 09<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col09' type="color" tag="input"/><br/> 10<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col10' type="color" tag="input"/><br/> 11<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col11' type="color" tag="input"/><br/> 12<$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavbarCols' field='col12' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/Men01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/Men01" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/Men01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/Men01" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/Men01" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-030}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur de fond de la page">Couleur du fond de page</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[page-background]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int09" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int09" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int09" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int09" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int09" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-171}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur de fond du bloc tiddler">Couleur de fond des blocs tiddlers</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[tiddler-background]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal31" text="show"><$button set="$:/state/SampleRowReveal31" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal31" text="show"><$button set="$:/state/SampleRowReveal31" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal31" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-152}} </td> </$reveal>
<tr> <td> [[Couleur de fond du menu de la NavBar|$:/detail/css]] </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/detail/css' field='background' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal2" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-047}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur de fond éditeur">Couleur de fond éditeur</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssEditeur' field='background-color' type='color'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal35" text="show"><$button set="$:/state/SampleRowReveal35" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal35" text="show"><$button set="$:/state/SampleRowReveal35" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal35" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-140}} </td> </$reveal>
<tr> <td> Couleur de fond search/champs </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssEditeur' field='background-color-textarea' type='color'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal37" text="show"><$button set="$:/state/SampleRowReveal37" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal37" text="show"><$button set="$:/state/SampleRowReveal37" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal37" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-142}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur de fond SideBar"> Couleur de fond de la SideBar</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssSideBarBackground' field='gradient-color' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar27" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar27" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar27" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar27" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar27" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-174}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur de la barre">Couleur de la barre</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavBar' field='background-color' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav03" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav03" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav03" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-003}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur de la bordure">Couleur de la bordure</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavBar' field='navbar-bordercolor' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav07" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav07" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav07" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav07" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav07" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-144}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur de la police">Couleur de la police</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssEditeur' field='text-color' type='color'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal34" text="show"><$button set="$:/state/SampleRowReveal34" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal34" text="show"><$button set="$:/state/SampleRowReveal34" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal34" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-139}} </td> </$reveal>
<tr> <td> <$link to="$:/Couleur du bouton bas de page">Couleur du bouton (bas de page)</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssFooter' field='button-color' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int05" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int05" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int05" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int05" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int05" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-035}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur du bouton Control Panel"> {{$:/core/images/options-button}} Couleur du bouton Control Panel</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-options-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar18" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar18" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar18" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar18" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar18" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-154}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur du bouton Nouveau Tiddler"> {{$:/core/images/new-button}} Couleur du bouton Nouveau Tiddler</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-new-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar14" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar14" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar14" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar14" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar14" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-156}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur du bouton Sauver"> {{$:/core/images/save-button}} Couleur du bouton Sauver</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[toolbar-save-button]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar16" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar16" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar16" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar16" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar16" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-153}} </td> </$reveal>
<tr> <td> [[Couleur du titre de menu de la NavBar|$:/detail/css]] </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/detail/css' field='background-container' type="color" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal1" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-028}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur hover tous boutons"> Couleur hover de tous les boutons de la SideBar</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[sidebar-controls-foreground-hover]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar26" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar26" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar26" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar26" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar26" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-170}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur hover tous boutons Tiddlers">Couleur hover de tous les boutons des Tiddlers</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[tiddler-controls-foreground-hover]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal45" text="show"><$button set="$:/state/SampleRowReveal45" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal45" text="show"><$button set="$:/state/SampleRowReveal45" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal45" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-173}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur tous boutons SideBar"> Couleur de tous les boutons de la SideBar</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[sidebar-controls-foreground]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar25" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar25" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar25" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar25" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar25" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-169}} </td> </$reveal>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <tr> <td> <$link to="$:/Couleur tous boutons Tiddlers">Couleur de tous les boutons des Tiddlers</$link> </td> <td align="center"> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[tiddler-controls-foreground]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal44" text="show"><$button set="$:/state/SampleRowReveal44" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal44" text="show"><$button set="$:/state/SampleRowReveal44" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal44" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-172}} </td> </$reveal>
/* Sidebar Tabs Alternate Style */ .tc-sidebar-lists .tc-tab-buttons button { cursor: pointer; font-size: 13px; line-height: 1; padding: 0 5px 5px 2px; text-align: center; color: #9a9a9a; -webkit-transition: color .1s ease-in; transition: color .1s ease-in; background: none; border: none; /* border-bottom: 1px solid #e0e0e0; */ margin-right: 30px; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { background: none; border: none; border-bottom: solid 1px #737373 !important; font-weight: bold; color: #DB4C3F !important; }
.cssload-jar { position: relative; width: 195px; margin: 49px auto 0; text-align: center; } .cssload-jar .cssload-mouth { width: 39px; height: 10px; margin: 0 auto -1px; border-right: 4px solid rgb(0,0,0); border-left: 4px solid rgb(0,0,0); border-radius: 19px; -o-border-radius: 19px; -ms-border-radius: 19px; -webkit-border-radius: 19px; -moz-border-radius: 19px; } .cssload-jar .cssload-neck { width: 34px; height: 46px; margin: 0 auto -7px; z-index: 7; position: relative; background-color: rgb(255,255,255); border-right: 4px solid rgb(0,0,0); border-left: 4px solid rgb(0,0,0); } .cssload-jar .cssload-bubble { width: 10px; height: 10px; position: absolute; background-color: rgb(53,238,251); opacity: 0.4; left: 90px; z-index: 8; top: 107px; border-radius: 100%; -o-border-radius: 100%; -ms-border-radius: 100%; -webkit-border-radius: 100%; -moz-border-radius: 100%; animation: cssload-buble 2.3s linear 1.15s infinite; -o-animation: cssload-buble 2.3s linear 1.15s infinite; -ms-animation: cssload-buble 2.3s linear 1.15s infinite; -webkit-animation: cssload-buble 2.3s linear 1.15s infinite; -moz-animation: cssload-buble 2.3s linear 1.15s infinite; } .cssload-jar .cssload-bubble + .cssload-bubble { left: 85px; top: 117px; width: 15px; height: 15px; animation-duration: 3.45s; -o-animation-duration: 3.45s; -ms-animation-duration: 3.45s; -webkit-animation-duration: 3.45s; -moz-animation-duration: 3.45s; } .cssload-jar .cssload-base { margin: auto; width: 117px; height: 97px; border: 4px solid rgb(0,0,0); border-radius: 50%; -o-border-radius: 50%; -ms-border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%; overflow: hidden; position: relative; z-index: 5; } .cssload-jar .cssload-base .cssload-bubble { left: 15px; top: 49px; animation: cssload-bounce 2.65s linear 0s infinite alternate; -o-animation: cssload-bounce 2.65s linear 0s infinite alternate; -ms-animation: cssload-bounce 2.65s linear 0s infinite alternate; -webkit-animation: cssload-bounce 2.65s linear 0s infinite alternate; -moz-animation: cssload-bounce 2.65s linear 0s infinite alternate; } .cssload-jar .cssload-base .cssload-bubble + .cssload-bubble { left: 73px; top: 39px; animation-duration: 3.45s; -o-animation-duration: 3.45s; -ms-animation-duration: 3.45s; -webkit-animation-duration: 3.45s; -moz-animation-duration: 3.45s; } .cssload-jar .cssload-liquid { height: 39px; background-color: rgb(53,238,251); position: absolute; bottom: 0; left: 0; right: 0; } .cssload-jar .cssload-wave { width: 58px; height: 19px; position: absolute; background-color: rgb(53,238,251); left: 0; top: 56px; animation: cssload-wave 1.15s linear 1.15s infinite alternate; -o-animation: cssload-wave 1.15s linear 1.15s infinite alternate; -ms-animation: cssload-wave 1.15s linear 1.15s infinite alternate; -webkit-animation: cssload-wave 1.15s linear 1.15s infinite alternate; -moz-animation: cssload-wave 1.15s linear 1.15s infinite alternate; border-radius: 50%; -o-border-radius: 50%; -ms-border-radius: 50%; -webkit-border-radius: 50%; -moz-border-radius: 50%; } .cssload-jar .cssload-wave + .cssload-wave { left: auto; right: 0; } @keyframes cssload-wave { from { transform: translateX(97px); } to { transform: translateX(-97px); } } @-o-keyframes cssload-wave { from { -o-transform: translateX(97px); } to { -o-transform: translateX(-97px); } } @-ms-keyframes cssload-wave { from { -ms-transform: translateX(97px); } to { -ms-transform: translateX(-97px); } } @-webkit-keyframes cssload-wave { from { -webkit-transform: translateX(97px); } to { -webkit-transform: translateX(-97px); } } @-moz-keyframes cssload-wave { from { -moz-transform: translateX(97px); } to { -moz-transform: translateX(-97px); } } @keyframes cssload-bounce { 0% { transform: translate(5px, 15px); } 50% { transform: translate(0, -15px); } 100% { transform: translate(-5px, -36px); opacity: 1; } } @-o-keyframes cssload-bounce { 0% { -o-transform: translate(5px, 15px); } 50% { -o-transform: translate(0, -15px); } 100% { -o-transform: translate(-5px, -36px); opacity: 1; } } @-ms-keyframes cssload-bounce { 0% { -ms-transform: translate(5px, 15px); } 50% { -ms-transform: translate(0, -15px); } 100% { -ms-transform: translate(-5px, -36px); opacity: 1; } } @-webkit-keyframes cssload-bounce { 0% { -webkit-transform: translate(5px, 15px); } 50% { -webkit-transform: translate(0, -15px); } 100% { -webkit-transform: translate(-5px, -36px); opacity: 1; } } @-moz-keyframes cssload-bounce { 0% { -moz-transform: translate(5px, 15px); } 50% { -moz-transform: translate(0, -15px); } 100% { -moz-transform: translate(-5px, -36px); opacity: 1; } } @keyframes cssload-buble { 0% { transform: translate(3px, 10px); } 25% { transform: translate(0, 0px); } 50% { transform: translate(-3px, -24px); } 75% { transform: translate(0, -49px); opacity: 1; } 100% { transform: translate(3px, -97px); opacity: 0; } } @-o-keyframes cssload-buble { 0% { -o-transform: translate(3px, 10px); } 25% { -o-transform: translate(0, 0px); } 50% { -o-transform: translate(-3px, -24px); } 75% { -o-transform: translate(0, -49px); opacity: 1; } 100% { -o-transform: translate(3px, -97px); opacity: 0; } } @-ms-keyframes cssload-buble { 0% { -ms-transform: translate(3px, 10px); } 25% { -ms-transform: translate(0, 0px); } 50% { -ms-transform: translate(-3px, -24px); } 75% { -ms-transform: translate(0, -49px); opacity: 1; } 100% { -ms-transform: translate(3px, -97px); opacity: 0; } } @-webkit-keyframes cssload-buble { 0% { -webkit-transform: translate(3px, 10px); } 25% { -webkit-transform: translate(0, 0px); } 50% { -webkit-transform: translate(-3px, -24px); } 75% { -webkit-transform: translate(0, -49px); opacity: 1; } 100% { -webkit-transform: translate(3px, -97px); opacity: 0; } } @-moz-keyframes cssload-buble { 0% { -moz-transform: translate(3px, 10px); } 25% { -moz-transform: translate(0, 0px); } 50% { -moz-transform: translate(-3px, -24px); } 75% { -moz-transform: translate(0, -49px); opacity: 1; } 100% { -moz-transform: translate(3px, -97px); opacity: 0; } }
/* ** $:/themes/telmiger/bricks/000-base.css ** */ \rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock html { -ms-text-size-adjust: 100%; -webkit-text-size-adjust: 100%; } html, body, div, article, section, main, footer, header, form, fieldset, legend, pre, code, p, a, h1, h2, h3, h4, h5, h6, ul, ol, li, dl, dt, dd, textarea, input[type="email"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="url"], .border-box { box-sizing: border-box; max-width: 100%; } html { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } html:-webkit-full-screen { background-color: ; /*rgb(250, 238, 215)*/ } body { line-height: 1.5; font-family: 'helvetica neue', helvetica, sans-serif; -moz-tab-size: 3; tab-size: 3; } body.tc-body { word-wrap: break-word; overflow-wrap: break-word; color: rgb(13, 13, 13); fill: rgb(13, 13, 13); background-color: ; /*rgb(250, 238, 215)*/ } a { overflow-wrap: break-word; word-wrap: break-word; display: inline-block; vertical-align: top; } @media (min-width: 28rem) { a { display: unset; vertical-align: unset; } } dl dt { font-weight: bold; margin-top: 6px; } hr { height: 1px; margin-top: 2rem; margin-bottom: 2rem; border: none; background-color: rgb(16, 111, 48); } .tc-drop-down hr { margin-bottom: 0.5em; margin-top: 0.5em; } .tc-float-right { float: right; } .tc-muted { color: rgb(102, 102, 102); } .tc-icon-wrapper > svg, .tc-image-button, .tc-image-button svg { height: 1em; width: 1em; } .tc-tiddler-frame img, .tc-tiddler-frame svg, .tc-tiddler-frame canvas, .tc-tiddler-frame embed, .tc-tiddler-frame iframe { max-width: 100%; } .tc-tiddler-body > embed, .tc-tiddler-body > iframe { width: 100%; height: 600px; } .tc-file-input-wrapper { position: relative; overflow: hidden; display: inline-block; vertical-align: middle; } .tc-file-input-wrapper input[type=file] { position: absolute; top: 0; left: 0; right: 0; bottom: 0; font-size: 999px; max-width: 100%; max-height: 100%; filter: alpha(opacity=0); opacity: 0; outline: none; background: white; cursor: pointer; display: inline-block; } .tc-droppable > .tc-droppable-placeholder { display: none; }
/* ** $:/themes/telmiger/bricks/components/dropdown.css ** */ .tc-btn-dropdown { text-align: left; } .tc-btn-dropdown svg, .tc-btn-dropdown img { height: 1em; width: 1em; } .tc-drop-down-wrapper { position: relative; } .tc-drop-down { width: 22rem; border-style: solid; border-width: 1px; padding: .5rem; border-radius: .125rem; margin-top: .25rem; line-height: 1.5; text-shadow: none; border-color: rgb(102, 102, 102); background-color: rgb(250, 250, 250); } .tc-drop-down .tc-drop-down { margin-left: 1rem; } .tc-drop-down p { padding-left: .25rem; padding-right: .25rem; } .tc-drop-down svg { fill: rgb(102, 102, 102); height: 1em; width: 1em; margin-right: .5rem; } .tc-drop-down img { width: 1em; margin-right: .5rem; } .tc-drop-down .tc-prompt { padding-left: 1rem; padding-right: 1rem; } .tc-drop-down a, .tc-drop-down button { display: block; padding-left: 1rem; padding-right: 1rem; width: 100%; text-align: left; /* L'alignement du texte dans le bloc wraper*/ line-height: 1.4; color: rgb(13, 13, 13); } .tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button { color: rgb(245, 245, 245); background-color: #00449e; text-decoration: none; } .tc-drop-down button svg.tc-image-button, .tc-drop-down a svg.tc-image-button { fill: rgb(13, 13, 13); } .tc-drop-down button.tc-btn-invisible:hover svg.tc-image-button { fill: rgb(245, 245, 245); } .tc-drop-down .tc-file-input-wrapper { width: 100%; } .tc-drop-down .tc-file-input-wrapper button { color: rgb(13, 13, 13); } .tc-block-dropdown-wrapper { position: relative; } .tc-block-dropdown { position: absolute; min-width: 220px; border-radius: .25rem; font-size: .875rem; padding-top: .25rem; padding-bottom: .25rem; padding-left: .5rem; padding-right: .5rem; margin-left: .5rem; z-index: 1000; text-shadow: none; border-style: solid; border-width: 1px; border-color: rgb(102, 102, 102); background-color: rgb(250, 250, 250); } .tc-block-dropdown a { display: block; padding-top: .25rem; padding-bottom: .25rem; } .tc-block-dropdown a:hover { color: rgb(245, 245, 245); background-color: rgb(72, 167, 104); text-decoration: none; } .tc-drop-down .tc-dropdown-item, .tc-block-dropdown .tc-dropdown-item { color: rgb(102, 102, 102); } .tc-drop-down .tc-dropdown-item-plain, .tc-block-dropdown .tc-dropdown-item-plain .tc-drop-down .tc-dropdown-item, .tc-block-dropdown .tc-dropdown-item { padding-top: .25rem; padding-bottom: .25rem; padding-right: 1rem; padding-left: .5rem; }
.leftbar-content { background: {{!!background-color}}; border-right: {{!!border-right-width}} solid {{!!border-right-color}}; text-align:left; }
/* Flat complément/correction */ .tc-tab-content em { color: #BDC3C7; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { background-color: rgba(255,255,255, 0.9); border-bottom: 2px solid <<color site-title-foreground>>; } .tc-sidebar-lists em { color: #7F8C8D; }
/* TWO COLUMN MODE */ .twocolumns { display:block; -moz-column-count:2; -moz-column-gap:1em; -webkit-column-count: 2; -webkit-column-gap:1em; }
body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols { max-height:600vh; -moz-columns:2; -webkit-columns:2; columns:2; /*font-size: 18px; */ } body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols p { margin: 0 0 0.5em 0; } body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols p { /*font-size: 18px;*/ text-align: left; }
@import url(https://fonts.googleapis.com/css?family=Arvo:700); @import url(https://fonts.googleapis.com/css?family=Seaweed+Script); .plate-container { background: maroon; /*#222;*/ overflow: hidden; } .plate { min-width: 410px; margin: 10% auto; } .shadow { color: #fff; font-family: Arvo; font-weight: bold; text-shadow: -3px -3px 0 #800000, 3px -3px 0 #800000, -3px 3px 0 #800000, 3px 3px 0 #800000, 4px 4px 0 #fff, 5px 5px 0 #fff, 6px 6px 0 #fff, 7px 7px 0 #fff; line-height: 0.8em; letter-spacing: 0.1em; transform: scaleY(0.7); -webkit-transform: scaleY(0.7); -moz-transform: scaleY(0.7); margin:0; text-align: center; } .script { font-family: "Seaweed Script"; color: #fff; text-align: center; font-size: 40px; position: relative; margin:0; } .script span { background-color: maroon; /*#222;*/ padding: 0 0.3em; } .script:before { content:""; display: block; position: absolute; z-index:-1; top: 50%; width: 100%; border-bottom: 3px solid #fff; } .text1 { font-size: 60px; } .text2 { font-size: 169px; } .text3 { font-size: 100px; }
/* FOUR COLUMN MODE */ .fourcolumns { display:block; -moz-column-count:4; -moz-column-gap:1em; -webkit-column-count: 4; -webkit-column-gap:1em; }
""" /*<div class="toast">Modifications des onglets du control panel</div>*/ .tc-tab-buttons{ padding-top: 1rem; } .tc-tab-buttons button{ cursor: pointer; color: rgb(13, 13, 13); line-height: 1.5; padding-top: .25rem; padding-bottom: .25rem; padding-left: .5rem; padding-right: .5rem; margin-bottom: 0; margin-left: 0; margin-right: .25rem; font-weight: 600; background: inherit; background-color: rgba(220,20,60,0.9); <!--0.125--> border-style: solid; border-width: 1px; border-radius: .25rem; border-bottom-left-radius: 0; border-bottom-right-radius: 0; border-color: rgba(220,20,60,0.9); color:#FFFFFF; } .tc-tab-buttons button:not(.tc-tab-selected) { position:relative; } .tc-tab-buttons button:not(.tc-tab-selected)::before { background-color: rgb(245, 245, 245); content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; opacity: 0; border-radius: .25rem; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .tc-tab-buttons button:not(.tc-tab-selected):hover::before, .tc-tab-buttons button:not(.tc-tab-selected):focus::before { opacity: .35; } .tc-sidebar-lists .tc-tab-buttons button { margin-right: .125rem; } /*<div class="toast">Modifications des onglets des balises pre</div>*/ pre { display: block; padding: ; /*TW5 :14px */ padding-top: .25rem; <!-- Added --> padding-bottom: .25rem; <!-- Added --> padding-left: .5rem; <!-- Added --> padding-right: .5rem; <!-- Added --> margin-top: 1em; margin-bottom: 1em; word-break: normal; word-wrap: break-word; <!-- Ou "normal" à tester --> white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}}; <!-- Ou "pre" à tester --> background-color: <<colour pre-background>>; border: 1px solid <<colour pre-border>>; border-width: 1px; <!-- Added --> border-color: rgba(0,0,0,.2); <!-- Added --> background-color: rgba(0,0,0,0.08); <!-- Added --> padding: 0 3px 2px; border-radius: 3px; font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}}; overflow-x: auto; <!-- Added --> overflow-y: hidden; <!-- Added --> overflow: scroll; <!-- Added --> font-size: 0.875em; <!-- Added --> } pre.doc { border-color: #8cc84b; <!-- Bloc Ajouté --> } code { color: <<colour code-foreground>>; background-color: <<colour code-background>>; border: 1px solid <<colour code-border>>; white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}}; padding: ; /*TW5 : 0 3px 2px */ padding-left: .25rem; <!-- Added --> padding-right: .25rem; <!-- Added --> border-style: solid; <!-- Added --> border-width: 1px; <!-- Added --> border-color: rgba(0,0,0,0.08); <!-- Added --> color: #e7040f; <!-- Added --> background-color: rgba(0,0,0,0.03);<!-- Added --> border-radius: 3px; font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}}; } pre > code { padding: 0; border: none; border-style: none; <!-- Added --> border-width: 0; <!-- Added --> background-color: transparent !important; <!-- (TW5 : inherit) sinon il y a un background-color sur les textes --> color: inherit; } /*<div class="toast">Modifications liens internes/externes</div>*/ button.tc-tiddlylink,a.tc-tiddlylink { text-decoration: none; border-bottom: 3px solid #ec6; /*wire*/ font-weight: 500; color: <<colour tiddler-link-foreground>>; -webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */ } button.tc-tiddlylink,a.tc-tiddlylink:hover{ color: #000000; /* Ce paramètre n'est pas proposé dans la palette. Nécessaire pour unifier les couleurs de liens dans les tiddlers et dans la sidebar */ } .tc-sidebar-lists a.tc-tiddlylink { color: <<colour sidebar-tiddler-link-foreground>>; } .tc-sidebar-lists a.tc-tiddlylink:hover { color: <<colour sidebar-tiddler-link-foreground-hover>>; } button.tc-tiddlylink:hover, a.tc-tiddlylink:hover { text-decoration: none !important; /* TW5 : underline. wire : none*/ background-color: #ec6; /*wire*/ } a.tc-tiddlylink-resolves { } a.tc-tiddlylink-shadow { font-weight: bold; } a.tc-tiddlylink-shadow.tc-tiddlylink-resolves { font-weight: normal; } a.tc-tiddlylink-missing { font-style: italic; } a.tc-tiddlylink-external { text-decoration: none !important; /*TW5 : underline. wired : none*/ color: crimson !important; /* ou :<<colour external-link-foreground>> */ background-color: <<colour external-link-background>>; border-bottom: 3px solid #c0c0c0; /*wired, avec couleur modifiée*/ } a.tc-tiddlylink-external:visited { text-decoration: none; /*wired*/ color: <<colour external-link-foreground-visited>>; background-color: <<colour external-link-background-visited>>; border-bottom: 3px solid #c0c0c0; /*wired, avec couleur modifiée*/ } a.tc-tiddlylink-external:hover { color: red; /* ou : <<colour external-link-foreground-hover>> */ background-color: <<colour external-link-background-hover>>; } a.tc-tiddlylink-external:visited:hover { color: <<colour external-link-foreground-hover>>; /* Ajout Wired modifié */ background-color: <<colour external-link-background-hover>>; /* Ajout Wired modifié */ } /*<div class="toast">Numérotation des listes de la TableOfContents dans SideBar et tiddlers</div>*/ .tc-table-of-contents ol { list-style-type: decimal-inside !important; /*TW5 : none. Spectre : decimal inside*/ padding-left: 0; } .tc-table-of-contents ol ol { padding-left: 1em; list-style-type: decimal-inside; /* Spectre : lower-alpha ou decimal-inside*/ } .tc-tree ol { list-style-type: decimal-inside; /* TW5 : none */ } /*<div class="toast">CSS du tiddler Plus ($:/core/ui/SideBar/More) édité dans la StoryRiver</div>*/ .tc-tab-buttons.tc-vertical button { background-color:crimson !important; <!-- Vanilla : <<colour tab-background>> --> } .tc-tab-buttons.tc-vertical button.tc-tab-selected { background-color: #006400 !important; /* Vanilla : <<colour tab-background-selected>> */ } /*<div class="toast">Concerne la barre de menu de la SideBar (Ouverts, Params, TOC et Plus) et les onglets de la table plus (more). Ils leur donne une épaisseur un fond et une largeur plus importante.</div>*/ .tc-sidebar-lists .tc-tab-buttons button { display: inline-block !important; font-size: 14px !important; font-weight: 700 !important; margin: 0 10px !important; text-transform: uppercase; */uppercase*/ color: {{!!theme_color}} !important ; text-decoration: none !important; padding-right: 15px !important; line-height: 1.8 !important; text-align: center !important; padding: 0 !important; background: none !important; border: none !important; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { background-color: transparent !important; border-left: none !important; border-top: none !important; border-right: none !important; color: crimson !important;/*#666. Exemple: si "Plus (more)" est sélectionné il prendra cette couleur*/ } .tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button { border: none; outline: none; background: transparent; /* */ color: #666666; /* Couleur des titres des tables de l'onglet Plus : Tout, Récents Tags etc... */ fill: #666666; /* Couleur de l'icone > de la liste de la TOC (numérotée ou pas) */ } .tc-sidebar-lists .tc-tab-content i.tc-muted { display: none; } /*<div class="toast">Gestion CSS des boutons encadrés en général. Boutons : tag manager, validation des champs, Boutons de la SideBar, des tiddlers en mode visu...</div>*/ .tc-btn-boxed:hover { background: rgb(102, 102, 102); /* Au passage de la souris la couleur de fond des boutons change */ color: rgb(245, 245, 245); } html body.tc-body .tc-btn-boxed:hover svg { fill: rgb(245, 245, 245); /* La couleur des boutons également */ } /*<div class="toast">Plugin officiel "Comments" [[$:/plugins/tiddlywiki/comments]]. Pas de modifications directesdans le tiddler CSS de l'application.</div>*/ .tc-comments-segment { border-top: 0px solid #d7eef4; /* Suppression de la bordure haute standard */ } /*<div class="toast toast-success"> Règle CSS concernant la taille de la barre de recherche dans la SideBar</div>*/ .tc-tiddler-frame .tc-tiddler-body { color: #333 !important; <!-- Pour que la couleur des numéros de la TOC dans la StoryRiver prenne bien la même couleur que celle des textes --> } """
/*Attention*/ .att { padding: 10px; background: #ffff99; border-radius: 15px; border: 1px solid #ccc; }
\define wsconfig(name) $:/config/Whitespace/$name$ .jd-sidebar-column-header > .tc-btn-invisible { color: <<colour foreground>>; margin-top: -3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } <$reveal state=<<wsconfig Spacious>> type="match" text="yes" default="yes"> .tc-tiddler-view-frame .tc-tiddler-controls svg { opacity: 0; <<transition "opacity 150ms ease-in-out">> } .tc-tiddler-view-frame .tc-tiddler-controls:hover svg { opacity: 1; } </$reveal>
""" /*<div class="toast">ICONS</div>*/ html body.tc-body .tc-image-edit-button { stroke: white; fill:{{!!edit}}; } html body.tc-body .tc-image-delete-button { stroke: white; fill:{{!!delete}}; } html body.tc-body .tc-image-cancel-button { stroke: white; fill:{{!!cancel}}; } html body.tc-body .tc-image-done-button { stroke: white; fill:{{!!done}}; } html body.tc-body .tc-image-home-button { stroke: white; fill:{{!!home}}; height:{{!!home-height}}; } html body.tc-body .tc-image-palette { stroke: white; fill:{{!!palette}}; } html body.tc-body .tc-image-new-button { stroke: white; fill:{{!!new}}; } html body.tc-body .tc-image-heading-1 { stroke: white; fill:{{!!heading-1}}; } html body.tc-body .tc-image-favicon { stroke: white; fill:{{!!favicon}}; } html body.tc-body .tc-image-stamp { stroke: white; fill:{{!!stamp}}; } """
.dynamic-table { max-width:700px; /* could transclude tiddler width instead */ -ms-box-orient: vertical; /* might be unnecessary */ display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: inline-flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; flex-direction: row; } .item { max-width:200px; min-width:200px; flex: 0 0 2em; /* -grow, -shrink, -basis */ }
/* CONTACT */ form.contact { width:100%; } form.contact input, form.contact button, form.contact textarea { color:#333 !important; display:block; width:100%; margin:5px 0; padding:3px; border:1px solid #ddd; -webkit-box-shadow: 1px 1px 5px 0 rgba(204,204,204,1); -moz-box-shadow: 1px 1px 5px 0 rgba(204,204,204,1); box-shadow: 1px 1px 5px 0 rgba(204,204,204,1); } form.contact textarea { height:150px; } form.contact .gotcha { display:none; } .contact-response { width: 100%; overflow: hidden; height: 120px; display:none; } .contact-response iframe { overflow: hidden; margin: -155px 0px 0 0px; border: 0; width: 600px; height: 1000px; }
.yellow-clear {background: #ffff80} .bisque { background: bisque; } .aquamarine {background: aquamarine;} .aliceblue {background: aliceblue;} .springgreen {background: springgreen;} .yellow {background: yellow;} .antiquewhite {background: antiquewhite;} .azure {background: azure;} .beige {background: beige;} /*.black {background: black;color: white;}*/ .blanchedalmond {background: blanchedalmond;} .blue {background: blue;color:white;} .blueviolet {background: blueviolet;color: white;} .brown {background: brown;color: white;} .burlywood {background: burlywood;} .cadetblue {background: cadetblue;color: white;} .chartreuse {background: chartreuse;} .chocolate {background: chocolate;color: white;} .coral {background: coral;} .cornflowerblue {background: cornflowerblue;} .cornsilk {background: cornsilk;} .crimson {background: crimson;color: white;} .cyan {background: cyan;} .darkblue {background: darkblue;color: white;} .darkcyan {background: darkcyan;color: white} .darkgoldenrod {background: darkgoldenrod;color: white;} .darkgray {background: darkgray;color: white;} .darkgreen {background: darkgreen;color: white;} .darkgrey {background: darkgrey;} .darkkhaki {background: darkkhaki;color: white;} .darkmagenta {background: darkmagenta;color: white;} .darkolivegreen {background: darkolivegreen;color: white;} .darkorange {background: darkorange;} .darkorchid {background: darkorchid;color: white;} .darkred {background: darkred;color: white;} .darksalmon {background: darksalmon;} .darkseagreen {background: darkseagreen;} .darkslateblue {background: darkslateblue;color: white;} .darkslategray {background: darkslategray;color: white;} .darkturquoise {background: darkturquoise;} .darkviolet {background: darkviolet;} .deeppink {background: deeppink;} .deepskyblue {background: deepskyblue;} .dimgray {background: dimgray;} .dimgrey {background: dimgrey;} .dodgerblue {background: dodgerblue;} .firebrick {background: firebrick;} .floralwhite {background: floralwhite;} .forestgreen {background: forestgreen;} .fuchsia {background: fuchsia;} .gainsboro {background: gainsboro;} .ghostwhite {background: ghostwhite;} .gold {background: gold;} .goldenrod {background: goldenrod;} .gray {background: gray;color:white;} .green {background: green;color:white;} .greenyellow {background: greenyellow;} .grey {background: grey;} .lavender {background: lavender;} .navy{background:navy; color:white;} .honeydew {background: honeydew;} .hotpink {background: hotpink;} .indianred {background: indianred;} .indigo {background: indigo;} .ivory {background: ivory;} .khaki {background: khaki;} .lavenderblush {background: lavenderblush;} .lawngreen {background: lawngreen;} .lemonchiffon {background: lemonchiffon;} .lightblue {background: lightblue;} .lightcoral {background: lightcoral;} .lightcyan {background: lightcyan;} .lightgoldenrod {background: lightgoldenrod;} .lightgoldenrodyellow {background: lightgoldenrodyellow;} .lightgray {background: lightgray;} .lightgreen {background: lightgreen;} .lightgrey {background: lightgrey;} .lightpink {background: lightpink;} .lightsalmon {background: lightsalmon;} .lightseagreen {background: lightseagreen;} .lightskyblue {background: lightskyblue;} .lightslateblue {background: lightslateblue;} .lightslategray {background: lightslategray;} .lightslategrey {background: lightslategrey;} .lightsteelblue {background: lightsteelblue;} .lightyellow {background: lightyellow;} .lime {background: lime;} .limegreen {background: limegreen;} .linen {background: linen;} .magenta {background: magenta;} .maroon {background: maroon;color: white;} .mediumaquamarine {background: mediumaquamarine;} .mediumblue {background: mediumblue;} .mediumorchid {background: mediumorchid;} .mediumpurple {background: mediumpurple;} .mediumseagreen {background: mediumseagreen;} .mediumslateblue {background: mediumslateblue;} .mediumspringgreen {background: mediumspringgreen;} .mediumturquoise {background: mediumturquoise;} .mediumvioletred {background: mediumvioletred;} .midnightblue {background: midnightblue;} .mintcream {background: mintcream;} .mistyrose {background: mistyrose;} .moccasin {background: moccasin;} .navajowhite {background: navajowhite;} .navy {background: navy;} .navyblue {background: navyblue;} .oldlace {background: oldlace;} .olive {background: olive;color:white;} .olivedrab {background: olivedrab;} .orange {background: orange;} .orangered {background: orangered;} .orchid {background: orchid;} .palegoldenrod {background: palegoldenrod;} .palegreen {background: palegreen;} .paleturquoise {background: paleturquoise;} .palevioletred {background: palevioletred;} .papayawhip {background: papayawhip;} .peachpuff {background: peachpuff;} .peru {background: peru;} .pink {background: pink;} .plum {background: plum;} .powderblue {background: powderblue;} .purple {background: purple;color:white;} .red {background: red;color:white;} .rosybrown {background: rosybrown;} .royalblue {background: royalblue;} .saddlebrown {background: saddlebrown;} .salmon {background: salmon;} .sandybrown {background: sandybrown;} .seagreen {background: seagreen;} .seashell {background: seashell;} .sienna {background: sienna;} .silver {background: silver;} .skyblue {background: skyblue;} .slateblue {background: slateblue;} .slategray {background: slategray;} .slategrey {background: slategrey;} .snow {background: snow;} .springgreen {background: springgreen;} .steelblue {background: steelblue;} .tan {background: tan;} .teal {background: teal;color: white;} .thistle {background: thistle;} .tomato {background: tomato;} .turquoise {background: turquoise;} .violet {background: violet;} .violetred {background: violetred;} .wheat {background: wheat;} .white {background: white;} .whitesmoke {background: whitesmoke;} .yellow {background: yellow;} .yellowgreen {background: yellowgreen;}
/*div.tc-tagged-TableOfContents {background-color: bisque;} div.tc-tagged-Level2 {background-color: thistle ;}*/ div.tc-tagged-blanchedalmond {background-color: blanchedalmond;} div.tc-tagged-silver {background-color: silver;} div.tc-tagged-cornsilk {background-color: cornsilk;} div.tc-tagged-beige {background-color: beige;} div.tc-tagged-bisque {background-color: bisque;} div.tc-tagged-white {background-color: white;} div.tc-tagged-antiquewhite {background-color: antiquewhite;} div.tc-tagged-blue {background-color: blue;} div.tc-tagged-aliceblue {background-color: aliceblue;} div.tc-tagged-darkslateblue {background-color: darkslateblue;} div.tc-tagged-cornflowerblue {background-color: cornflowerblue;} div.tc-tagged-cadetblue {background-color: cadetblue;} div.tc-tagged-azure {background-color: azure;} div.tc-tagged-darkblue {background-color: darkblue;} div.tc-tagged-navy {background-color: navy;} div.tc-tagged-aquamarine {background-color: aquamarine;} div.tc-tagged-blueviolet {background-color: blueviolet;} div.tc-tagged-burlywood {background-color: burlywood;} div.tc-tagged-maroon {background-color: maroon;} div.tc-tagged-brown {background-color: brown;} div.tc-tagged-chartreuse {background-color: chartreuse;} div.tc-tagged-chocolate {background-color: chocolate;} div.tc-tagged-coral {background-color: coral;} div.tc-tagged-crimson {background-color: crimson;} div.tc-tagged-cyan {background-color: cyan;} div.tc-tagged-darkcyan {background-color: darkcyan;} div.tc-tagged-fuchsia {background-color: fuchsia;} div.tc-tagged-gray {background-color: gray;} div.tc-tagged-darkslategray {background-color: darkslategray;} div.tc-tagged-darkgray {background-color: darkgray;} div.tc-tagged-yellow {background-color: yellow;} div.tc-tagged-darkkhaki {background-color: darkkhaki;} div.tc-tagged-darkmagenta {background-color: darkmagenta;} div.tc-tagged-black {background-color: black;} div.tc-tagged-olive {background-color: olive;} div.tc-tagged-darkorange {background-color: darkorange;} div.tc-tagged-red {background-color: red;} div.tc-tagged-teal {background-color: teal;} div.tc-tagged-darksalmon {background-color: darksalmon;} div.tc-tagged-darkgoldenrod {background-color: darkgoldenrod;} div.tc-tagged-green {background-color: green;} div.tc-tagged-lime {background-color: lime;} div.tc-tagged-darkgreen {background-color: darkgreen;} div.tc-tagged-darkseagreen {background-color: darkseagreen;} div.tc-tagged-darkolivegreen {background-color: darkolivegreen;} div.tc-tagged-purple {background-color: purple;} <!-- Feuille de style pour les exemples de couleur de fond des tiddlers. Par exemple le tiddler [[Argent]]. Sont également définis les styles des tiddlers Tagués TableOfContent et [[Level2]] -->
/*Credits: Nishant Srivastava https://codepen.io/nisrulz/pen/bpQWLW Mohammad Rahmani: https://github.com/kookma */ .dbadge { display: inline-block; margin: 0.0em; } .dbadge > span { color: #ffffff; font-size: 0.8em; font-weight: 400; line-height: 1; padding: .2em .6em; text-align: center; vertical-align: baseline; white-space: nowrap;} .dbadge-subject{ background-color: #656565; border-bottom-left-radius: 0.25em; border-top-left-radius: 0.25em;} .dbadge-status { border-bottom-right-radius: 0.25em; border-top-right-radius: 0.25em;} .dbadge-primary { background-color: #337ab7;} .dbadge-success { background-color: #5cb85c;} .dbadge-info { background-color: #5bc0de;} .dbadge-warning { background-color: #f0ad4e;} .dbadge-danger { background-color: #d9534f;}
""" <!-- Le CSS ".tc-tiddler-edit-frame textarea" fonctionne mais uniquement pour la famille de police, sa taille et sa couleur--> /*<div class="toast">couleur de fond des textArea : barre de recherche (visu et édition), Champs en mode édition (spectrexxx)</div>*/ textarea, input[type=text], input[type=search], input[type=""], input:not([type]) { color: #000; background: {{!!background-color-textarea}}; } /*<div class="toast">Éditeur couleur de fond, police, taille, bordures</div>*/ .tc-tiddler-frame textarea.tc-edit-texteditor, .tc-tiddler-frame iframe.tc-edit-texteditor { border: 0px solid #ccc; background-color: {{!!background-color}}; line-height: {{!!line-height}}; font-family: {{!!font-family}}; color: {{!!text-color}}; font-size: {{!!font-size}}; } """
ul li ul li { margin: 0px; } code { color: #333333; } .hzone-focus { border-color: firebrick; } .flash-message { border: 1px solid lightgray; padding: 5px; margin: 6px 0; display: block; color: #333333; } button.tc-tiddlylink, a.tc-tiddlylink, a.tc-tiddlylink-external, a.tc-tiddlylink-external:hover, a.tc-tiddlylink-external:visited { color: ; } a.tc-tiddlylink-external { text-decoration: none; } a.tc-tiddlylink-external:before { font-family: FontAwesome; padding-right: 2px; content: "\f14c"; color: gray; } a.tc-tiddlylink-external:hover::before { content: "\f14c"; /* \f08e */ color: firebrick; }
.tc-tagged-special { background-image: url(img/Savoir.jpg); background-color: yellow; background-repeat: no-repeat; color: red; font-weight: bold; }
.footer { color: {{!!button-color}}; background-color: transparent; text-align: center; margin-left: 5em; margin-right:5em; margin-bottom:3.5em; margin-top:1em; } .grow { transition: all .2s ease-in-out; } .grow:hover { transform: scale(1.4); }
.tc-drop-down dd { max-width:300px; word-break: break; white-space:normal; padding :0; padding-left: 5px;} .tc-drop-down dl { padding: 5px; } tc-drop-down a {display:inline;padding:0}
/* ========================================================================== GRIDLEX Just a Flexbox Grid System - v. 2.6.1 ========================================================================== */ [class~="grid"], [class*="grid-"], [class*="grid_"] { box-sizing: border-box; display: flex; flex-flow: row wrap; margin: 0 -0.5rem; } [class~="col"], [class*="col-"], [class*="col_"] { box-sizing: border-box; padding: 0 0.5rem 1rem; max-width: 100%; } [class~="col"], [class*="col_"] { flex: 1 1 0%; } [class*="col-"] { flex: none; } [class~="grid"][class~="col"], [class~="grid"][class*="col-"], [class~="grid"][class*="col_"], [class*="grid-"][class~="col"], [class*="grid-"][class*="col-"], [class*="grid-"][class*="col_"], [class*="grid_"][class~="col"], [class*="grid_"][class*="col-"], [class*="grid_"][class*="col_"] { margin: 0; padding: 0; } /************************ HELPERS SUFFIXES *************************/ [class*="grid-"][class*="-noGutter"] { margin: 0; } [class*="grid-"][class*="-noGutter"] > [class~="col"], [class*="grid-"][class*="-noGutter"] > [class*="col-"] { padding: 0; } [class*="grid-"][class*="-noWrap"] { flex-wrap: nowrap; } [class*="grid-"][class*="-center"] { justify-content: center; } [class*="grid-"][class*="-right"] { justify-content: flex-end; align-self: flex-end; margin-left: auto; } [class*="grid-"][class*="-top"] { align-items: flex-start; } [class*="grid-"][class*="-middle"] { align-items: center; } [class*="grid-"][class*="-bottom"] { align-items: flex-end; } [class*="grid-"][class*="-reverse"] { flex-direction: row-reverse; } [class*="grid-"][class*="-column"] { flex-direction: column; } [class*="grid-"][class*="-column"] > [class*="col-"] { flex-basis: auto; } [class*="grid-"][class*="-column-reverse"] { flex-direction: column-reverse; } [class*="grid-"][class*="-spaceBetween"] { justify-content: space-between; } [class*="grid-"][class*="-spaceAround"] { justify-content: space-around; } [class*="grid-"][class*="-equalHeight"] > [class~="col"], [class*="grid-"][class*="-equalHeight"] > [class*="col-"], [class*="grid-"][class*="-equalHeight"] > [class*="col_"] { align-self: stretch; } [class*="grid-"][class*="-equalHeight"] > [class~="col"] > *, [class*="grid-"][class*="-equalHeight"] > [class*="col-"] > *, [class*="grid-"][class*="-equalHeight"] > [class*="col_"] > * { height: 100%; } [class*="grid-"][class*="-noBottom"] > [class~="col"], [class*="grid-"][class*="-noBottom"] > [class*="col-"], [class*="grid-"][class*="-noBottom"] > [class*="col_"] { padding-bottom: 0; } [class*="col-"][class*="-top"] { align-self: flex-start; } [class*="col-"][class*="-middle"] { align-self: center; } [class*="col-"][class*="-bottom"] { align-self: flex-end; } [class*="col-"][class*="-first"] { order: -1; } [class*="col-"][class*="-last"] { order: 1; } /************************ GRID BY NUMBER *************************/ [class*="grid-1"] > [class~="col"], [class*="grid-1"] > [class*="col-"], [class*="grid-1"] > [class*="col_"] { flex-basis: 100%; max-width: 100%; } [class*="grid-2"] > [class~="col"], [class*="grid-2"] > [class*="col-"], [class*="grid-2"] > [class*="col_"] { flex-basis: 50%; max-width: 50%; } [class*="grid-3"] > [class~="col"], [class*="grid-3"] > [class*="col-"], [class*="grid-3"] > [class*="col_"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class*="grid-4"] > [class~="col"], [class*="grid-4"] > [class*="col-"], [class*="grid-4"] > [class*="col_"] { flex-basis: 25%; max-width: 25%; } [class*="grid-5"] > [class~="col"], [class*="grid-5"] > [class*="col-"], [class*="grid-5"] > [class*="col_"] { flex-basis: 20%; max-width: 20%; } [class*="grid-6"] > [class~="col"], [class*="grid-6"] > [class*="col-"], [class*="grid-6"] > [class*="col_"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class*="grid-7"] > [class~="col"], [class*="grid-7"] > [class*="col-"], [class*="grid-7"] > [class*="col_"] { flex-basis: 14.28571%; max-width: 14.28571%; } [class*="grid-8"] > [class~="col"], [class*="grid-8"] > [class*="col-"], [class*="grid-8"] > [class*="col_"] { flex-basis: 12.5%; max-width: 12.5%; } [class*="grid-9"] > [class~="col"], [class*="grid-9"] > [class*="col-"], [class*="grid-9"] > [class*="col_"] { flex-basis: 11.11111%; max-width: 11.11111%; } [class*="grid-10"] > [class~="col"], [class*="grid-10"] > [class*="col-"], [class*="grid-10"] > [class*="col_"] { flex-basis: 10%; max-width: 10%; } [class*="grid-11"] > [class~="col"], [class*="grid-11"] > [class*="col-"] { flex-basis: 9.09091%; max-width: 9.09091%; } [class*="grid-12"] > [class~="col"], [class*="grid-12"] > [class*="col-"], [class*="grid-12"] > [class*="col_"] { flex-basis: 8.33333%; max-width: 8.33333%; } @media (max-width: 80em) { [class*="_lg-1"] > [class~="col"], [class*="_lg-1"] > [class*="col-"], [class*="_lg-1"] > [class*="col_"] { flex-basis: 100%; max-width: 100%; } [class*="_lg-2"] > [class~="col"], [class*="_lg-2"] > [class*="col-"], [class*="_lg-2"] > [class*="col_"] { flex-basis: 50%; max-width: 50%; } [class*="_lg-3"] > [class~="col"], [class*="_lg-3"] > [class*="col-"], [class*="_lg-3"] > [class*="col_"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class*="_lg-4"] > [class~="col"], [class*="_lg-4"] > [class*="col-"], [class*="_lg-4"] > [class*="col_"] { flex-basis: 25%; max-width: 25%; } [class*="_lg-5"] > [class~="col"], [class*="_lg-5"] > [class*="col-"], [class*="_lg-5"] > [class*="col_"] { flex-basis: 20%; max-width: 20%; } [class*="_lg-6"] > [class~="col"], [class*="_lg-6"] > [class*="col-"], [class*="_lg-6"] > [class*="col_"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class*="_lg-7"] > [class~="col"], [class*="_lg-7"] > [class*="col-"], [class*="_lg-7"] > [class*="col_"] { flex-basis: 14.28571%; max-width: 14.28571%; } [class*="_lg-8"] > [class~="col"], [class*="_lg-8"] > [class*="col-"], [class*="_lg-8"] > [class*="col_"] { flex-basis: 12.5%; max-width: 12.5%; } [class*="_lg-9"] > [class~="col"], [class*="_lg-9"] > [class*="col-"], [class*="_lg-9"] > [class*="col_"] { flex-basis: 11.11111%; max-width: 11.11111%; } [class*="_lg-10"] > [class~="col"], [class*="_lg-10"] > [class*="col-"], [class*="_lg-10"] > [class*="col_"] { flex-basis: 10%; max-width: 10%; } [class*="_lg-11"] > [class~="col"], [class*="_lg-11"] > [class*="col-"] { flex-basis: 9.09091%; max-width: 9.09091%; } [class*="_lg-12"] > [class~="col"], [class*="_lg-12"] > [class*="col-"], [class*="_lg-12"] > [class*="col_"] { flex-basis: 8.33333%; max-width: 8.33333%; } } @media (max-width: 64em) { [class*="_md-1"] > [class~="col"], [class*="_md-1"] > [class*="col-"], [class*="_md-1"] > [class*="col_"] { flex-basis: 100%; max-width: 100%; } [class*="_md-2"] > [class~="col"], [class*="_md-2"] > [class*="col-"], [class*="_md-2"] > [class*="col_"] { flex-basis: 50%; max-width: 50%; } [class*="_md-3"] > [class~="col"], [class*="_md-3"] > [class*="col-"], [class*="_md-3"] > [class*="col_"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class*="_md-4"] > [class~="col"], [class*="_md-4"] > [class*="col-"], [class*="_md-4"] > [class*="col_"] { flex-basis: 25%; max-width: 25%; } [class*="_md-5"] > [class~="col"], [class*="_md-5"] > [class*="col-"], [class*="_md-5"] > [class*="col_"] { flex-basis: 20%; max-width: 20%; } [class*="_md-6"] > [class~="col"], [class*="_md-6"] > [class*="col-"], [class*="_md-6"] > [class*="col_"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class*="_md-7"] > [class~="col"], [class*="_md-7"] > [class*="col-"], [class*="_md-7"] > [class*="col_"] { flex-basis: 14.28571%; max-width: 14.28571%; } [class*="_md-8"] > [class~="col"], [class*="_md-8"] > [class*="col-"], [class*="_md-8"] > [class*="col_"] { flex-basis: 12.5%; max-width: 12.5%; } [class*="_md-9"] > [class~="col"], [class*="_md-9"] > [class*="col-"], [class*="_md-9"] > [class*="col_"] { flex-basis: 11.11111%; max-width: 11.11111%; } [class*="_md-10"] > [class~="col"], [class*="_md-10"] > [class*="col-"], [class*="_md-10"] > [class*="col_"] { flex-basis: 10%; max-width: 10%; } [class*="_md-11"] > [class~="col"], [class*="_md-11"] > [class*="col-"] { flex-basis: 9.09091%; max-width: 9.09091%; } [class*="_md-12"] > [class~="col"], [class*="_md-12"] > [class*="col-"], [class*="_md-12"] > [class*="col_"] { flex-basis: 8.33333%; max-width: 8.33333%; } } @media (max-width: 48em) { [class*="_sm-1"] > [class~="col"], [class*="_sm-1"] > [class*="col-"], [class*="_sm-1"] > [class*="col_"] { flex-basis: 100%; max-width: 100%; } [class*="_sm-2"] > [class~="col"], [class*="_sm-2"] > [class*="col-"], [class*="_sm-2"] > [class*="col_"] { flex-basis: 50%; max-width: 50%; } [class*="_sm-3"] > [class~="col"], [class*="_sm-3"] > [class*="col-"], [class*="_sm-3"] > [class*="col_"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class*="_sm-4"] > [class~="col"], [class*="_sm-4"] > [class*="col-"], [class*="_sm-4"] > [class*="col_"] { flex-basis: 25%; max-width: 25%; } [class*="_sm-5"] > [class~="col"], [class*="_sm-5"] > [class*="col-"], [class*="_sm-5"] > [class*="col_"] { flex-basis: 20%; max-width: 20%; } [class*="_sm-6"] > [class~="col"], [class*="_sm-6"] > [class*="col-"], [class*="_sm-6"] > [class*="col_"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class*="_sm-7"] > [class~="col"], [class*="_sm-7"] > [class*="col-"], [class*="_sm-7"] > [class*="col_"] { flex-basis: 14.28571%; max-width: 14.28571%; } [class*="_sm-8"] > [class~="col"], [class*="_sm-8"] > [class*="col-"], [class*="_sm-8"] > [class*="col_"] { flex-basis: 12.5%; max-width: 12.5%; } [class*="_sm-9"] > [class~="col"], [class*="_sm-9"] > [class*="col-"], [class*="_sm-9"] > [class*="col_"] { flex-basis: 11.11111%; max-width: 11.11111%; } [class*="_sm-10"] > [class~="col"], [class*="_sm-10"] > [class*="col-"], [class*="_sm-10"] > [class*="col_"] { flex-basis: 10%; max-width: 10%; } [class*="_sm-11"] > [class~="col"], [class*="_sm-11"] > [class*="col-"] { flex-basis: 9.09091%; max-width: 9.09091%; } [class*="_sm-12"] > [class~="col"], [class*="_sm-12"] > [class*="col-"], [class*="_sm-12"] > [class*="col_"] { flex-basis: 8.33333%; max-width: 8.33333%; } } @media (max-width: 36em) { [class*="_xs-1"] > [class~="col"], [class*="_xs-1"] > [class*="col-"], [class*="_xs-1"] > [class*="col_"] { flex-basis: 100%; max-width: 100%; } [class*="_xs-2"] > [class~="col"], [class*="_xs-2"] > [class*="col-"], [class*="_xs-2"] > [class*="col_"] { flex-basis: 50%; max-width: 50%; } [class*="_xs-3"] > [class~="col"], [class*="_xs-3"] > [class*="col-"], [class*="_xs-3"] > [class*="col_"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class*="_xs-4"] > [class~="col"], [class*="_xs-4"] > [class*="col-"], [class*="_xs-4"] > [class*="col_"] { flex-basis: 25%; max-width: 25%; } [class*="_xs-5"] > [class~="col"], [class*="_xs-5"] > [class*="col-"], [class*="_xs-5"] > [class*="col_"] { flex-basis: 20%; max-width: 20%; } [class*="_xs-6"] > [class~="col"], [class*="_xs-6"] > [class*="col-"], [class*="_xs-6"] > [class*="col_"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class*="_xs-7"] > [class~="col"], [class*="_xs-7"] > [class*="col-"], [class*="_xs-7"] > [class*="col_"] { flex-basis: 14.28571%; max-width: 14.28571%; } [class*="_xs-8"] > [class~="col"], [class*="_xs-8"] > [class*="col-"], [class*="_xs-8"] > [class*="col_"] { flex-basis: 12.5%; max-width: 12.5%; } [class*="_xs-9"] > [class~="col"], [class*="_xs-9"] > [class*="col-"], [class*="_xs-9"] > [class*="col_"] { flex-basis: 11.11111%; max-width: 11.11111%; } [class*="_xs-10"] > [class~="col"], [class*="_xs-10"] > [class*="col-"], [class*="_xs-10"] > [class*="col_"] { flex-basis: 10%; max-width: 10%; } [class*="_xs-11"] > [class~="col"], [class*="_xs-11"] > [class*="col-"] { flex-basis: 9.09091%; max-width: 9.09091%; } [class*="_xs-12"] > [class~="col"], [class*="_xs-12"] > [class*="col-"], [class*="_xs-12"] > [class*="col_"] { flex-basis: 8.33333%; max-width: 8.33333%; } } /************************ COLS SIZES *************************/ [class~="grid"] > [class*="col-1"], [class*="grid-"] > [class*="col-1"], [class*="grid_"] > [class*="col-1"] { flex-basis: 8.33333%; max-width: 8.33333%; } [class~="grid"] > [class*="col-2"], [class*="grid-"] > [class*="col-2"], [class*="grid_"] > [class*="col-2"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class~="grid"] > [class*="col-3"], [class*="grid-"] > [class*="col-3"], [class*="grid_"] > [class*="col-3"] { flex-basis: 25%; max-width: 25%; } [class~="grid"] > [class*="col-4"], [class*="grid-"] > [class*="col-4"], [class*="grid_"] > [class*="col-4"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class~="grid"] > [class*="col-5"], [class*="grid-"] > [class*="col-5"], [class*="grid_"] > [class*="col-5"] { flex-basis: 41.66667%; max-width: 41.66667%; } [class~="grid"] > [class*="col-6"], [class*="grid-"] > [class*="col-6"], [class*="grid_"] > [class*="col-6"] { flex-basis: 50%; max-width: 50%; } [class~="grid"] > [class*="col-7"], [class*="grid-"] > [class*="col-7"], [class*="grid_"] > [class*="col-7"] { flex-basis: 58.33333%; max-width: 58.33333%; } [class~="grid"] > [class*="col-8"], [class*="grid-"] > [class*="col-8"], [class*="grid_"] > [class*="col-8"] { flex-basis: 66.66667%; max-width: 66.66667%; } [class~="grid"] > [class*="col-9"], [class*="grid-"] > [class*="col-9"], [class*="grid_"] > [class*="col-9"] { flex-basis: 75%; max-width: 75%; } [class~="grid"] > [class*="col-10"], [class*="grid-"] > [class*="col-10"], [class*="grid_"] > [class*="col-10"] { flex-basis: 83.33333%; max-width: 83.33333%; } [class~="grid"] > [class*="col-11"], [class*="grid-"] > [class*="col-11"], [class*="grid_"] > [class*="col-11"] { flex-basis: 91.66667%; max-width: 91.66667%; } [class~="grid"] > [class*="col-12"], [class*="grid-"] > [class*="col-12"], [class*="grid_"] > [class*="col-12"] { flex-basis: 100%; max-width: 100%; } [class~="grid"] > [data-push-left*="off-0"], [class*="grid-"] > [data-push-left*="off-0"], [class*="grid_"] > [data-push-left*="off-0"] { margin-left: 0; } [class~="grid"] > [data-push-left*="off-1"], [class*="grid-"] > [data-push-left*="off-1"], [class*="grid_"] > [data-push-left*="off-1"] { margin-left: 8.33333%; } [class~="grid"] > [data-push-left*="off-2"], [class*="grid-"] > [data-push-left*="off-2"], [class*="grid_"] > [data-push-left*="off-2"] { margin-left: 16.66667%; } [class~="grid"] > [data-push-left*="off-3"], [class*="grid-"] > [data-push-left*="off-3"], [class*="grid_"] > [data-push-left*="off-3"] { margin-left: 25%; } [class~="grid"] > [data-push-left*="off-4"], [class*="grid-"] > [data-push-left*="off-4"], [class*="grid_"] > [data-push-left*="off-4"] { margin-left: 33.33333%; } [class~="grid"] > [data-push-left*="off-5"], [class*="grid-"] > [data-push-left*="off-5"], [class*="grid_"] > [data-push-left*="off-5"] { margin-left: 41.66667%; } [class~="grid"] > [data-push-left*="off-6"], [class*="grid-"] > [data-push-left*="off-6"], [class*="grid_"] > [data-push-left*="off-6"] { margin-left: 50%; } [class~="grid"] > [data-push-left*="off-7"], [class*="grid-"] > [data-push-left*="off-7"], [class*="grid_"] > [data-push-left*="off-7"] { margin-left: 58.33333%; } [class~="grid"] > [data-push-left*="off-8"], [class*="grid-"] > [data-push-left*="off-8"], [class*="grid_"] > [data-push-left*="off-8"] { margin-left: 66.66667%; } [class~="grid"] > [data-push-left*="off-9"], [class*="grid-"] > [data-push-left*="off-9"], [class*="grid_"] > [data-push-left*="off-9"] { margin-left: 75%; } [class~="grid"] > [data-push-left*="off-10"], [class*="grid-"] > [data-push-left*="off-10"], [class*="grid_"] > [data-push-left*="off-10"] { margin-left: 83.33333%; } [class~="grid"] > [data-push-left*="off-11"], [class*="grid-"] > [data-push-left*="off-11"], [class*="grid_"] > [data-push-left*="off-11"] { margin-left: 91.66667%; } [class~="grid"] > [data-push-right*="off-0"], [class*="grid-"] > [data-push-right*="off-0"], [class*="grid_"] > [data-push-right*="off-0"] { margin-right: 0; } [class~="grid"] > [data-push-right*="off-1"], [class*="grid-"] > [data-push-right*="off-1"], [class*="grid_"] > [data-push-right*="off-1"] { margin-right: 8.33333%; } [class~="grid"] > [data-push-right*="off-2"], [class*="grid-"] > [data-push-right*="off-2"], [class*="grid_"] > [data-push-right*="off-2"] { margin-right: 16.66667%; } [class~="grid"] > [data-push-right*="off-3"], [class*="grid-"] > [data-push-right*="off-3"], [class*="grid_"] > [data-push-right*="off-3"] { margin-right: 25%; } [class~="grid"] > [data-push-right*="off-4"], [class*="grid-"] > [data-push-right*="off-4"], [class*="grid_"] > [data-push-right*="off-4"] { margin-right: 33.33333%; } [class~="grid"] > [data-push-right*="off-5"], [class*="grid-"] > [data-push-right*="off-5"], [class*="grid_"] > [data-push-right*="off-5"] { margin-right: 41.66667%; } [class~="grid"] > [data-push-right*="off-6"], [class*="grid-"] > [data-push-right*="off-6"], [class*="grid_"] > [data-push-right*="off-6"] { margin-right: 50%; } [class~="grid"] > [data-push-right*="off-7"], [class*="grid-"] > [data-push-right*="off-7"], [class*="grid_"] > [data-push-right*="off-7"] { margin-right: 58.33333%; } [class~="grid"] > [data-push-right*="off-8"], [class*="grid-"] > [data-push-right*="off-8"], [class*="grid_"] > [data-push-right*="off-8"] { margin-right: 66.66667%; } [class~="grid"] > [data-push-right*="off-9"], [class*="grid-"] > [data-push-right*="off-9"], [class*="grid_"] > [data-push-right*="off-9"] { margin-right: 75%; } [class~="grid"] > [data-push-right*="off-10"], [class*="grid-"] > [data-push-right*="off-10"], [class*="grid_"] > [data-push-right*="off-10"] { margin-right: 83.33333%; } [class~="grid"] > [data-push-right*="off-11"], [class*="grid-"] > [data-push-right*="off-11"], [class*="grid_"] > [data-push-right*="off-11"] { margin-right: 91.66667%; } @media (max-width: 80em) { [class~="grid"] > [class*="_lg-1"], [class*="grid-"] > [class*="_lg-1"], [class*="grid_"] > [class*="_lg-1"] { flex-basis: 8.33333%; max-width: 8.33333%; } [class~="grid"] > [class*="_lg-2"], [class*="grid-"] > [class*="_lg-2"], [class*="grid_"] > [class*="_lg-2"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class~="grid"] > [class*="_lg-3"], [class*="grid-"] > [class*="_lg-3"], [class*="grid_"] > [class*="_lg-3"] { flex-basis: 25%; max-width: 25%; } [class~="grid"] > [class*="_lg-4"], [class*="grid-"] > [class*="_lg-4"], [class*="grid_"] > [class*="_lg-4"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class~="grid"] > [class*="_lg-5"], [class*="grid-"] > [class*="_lg-5"], [class*="grid_"] > [class*="_lg-5"] { flex-basis: 41.66667%; max-width: 41.66667%; } [class~="grid"] > [class*="_lg-6"], [class*="grid-"] > [class*="_lg-6"], [class*="grid_"] > [class*="_lg-6"] { flex-basis: 50%; max-width: 50%; } [class~="grid"] > [class*="_lg-7"], [class*="grid-"] > [class*="_lg-7"], [class*="grid_"] > [class*="_lg-7"] { flex-basis: 58.33333%; max-width: 58.33333%; } [class~="grid"] > [class*="_lg-8"], [class*="grid-"] > [class*="_lg-8"], [class*="grid_"] > [class*="_lg-8"] { flex-basis: 66.66667%; max-width: 66.66667%; } [class~="grid"] > [class*="_lg-9"], [class*="grid-"] > [class*="_lg-9"], [class*="grid_"] > [class*="_lg-9"] { flex-basis: 75%; max-width: 75%; } [class~="grid"] > [class*="_lg-10"], [class*="grid-"] > [class*="_lg-10"], [class*="grid_"] > [class*="_lg-10"] { flex-basis: 83.33333%; max-width: 83.33333%; } [class~="grid"] > [class*="_lg-11"], [class*="grid-"] > [class*="_lg-11"], [class*="grid_"] > [class*="_lg-11"] { flex-basis: 91.66667%; max-width: 91.66667%; } [class~="grid"] > [class*="_lg-12"], [class*="grid-"] > [class*="_lg-12"], [class*="grid_"] > [class*="_lg-12"] { flex-basis: 100%; max-width: 100%; } [class~="grid"] > [data-push-left*="_lg-0"], [class*="grid-"] > [data-push-left*="_lg-0"], [class*="grid_"] > [data-push-left*="_lg-0"] { margin-left: 0; } [class~="grid"] > [data-push-left*="_lg-1"], [class*="grid-"] > [data-push-left*="_lg-1"], [class*="grid_"] > [data-push-left*="_lg-1"] { margin-left: 8.33333%; } [class~="grid"] > [data-push-left*="_lg-2"], [class*="grid-"] > [data-push-left*="_lg-2"], [class*="grid_"] > [data-push-left*="_lg-2"] { margin-left: 16.66667%; } [class~="grid"] > [data-push-left*="_lg-3"], [class*="grid-"] > [data-push-left*="_lg-3"], [class*="grid_"] > [data-push-left*="_lg-3"] { margin-left: 25%; } [class~="grid"] > [data-push-left*="_lg-4"], [class*="grid-"] > [data-push-left*="_lg-4"], [class*="grid_"] > [data-push-left*="_lg-4"] { margin-left: 33.33333%; } [class~="grid"] > [data-push-left*="_lg-5"], [class*="grid-"] > [data-push-left*="_lg-5"], [class*="grid_"] > [data-push-left*="_lg-5"] { margin-left: 41.66667%; } [class~="grid"] > [data-push-left*="_lg-6"], [class*="grid-"] > [data-push-left*="_lg-6"], [class*="grid_"] > [data-push-left*="_lg-6"] { margin-left: 50%; } [class~="grid"] > [data-push-left*="_lg-7"], [class*="grid-"] > [data-push-left*="_lg-7"], [class*="grid_"] > [data-push-left*="_lg-7"] { margin-left: 58.33333%; } [class~="grid"] > [data-push-left*="_lg-8"], [class*="grid-"] > [data-push-left*="_lg-8"], [class*="grid_"] > [data-push-left*="_lg-8"] { margin-left: 66.66667%; } [class~="grid"] > [data-push-left*="_lg-9"], [class*="grid-"] > [data-push-left*="_lg-9"], [class*="grid_"] > [data-push-left*="_lg-9"] { margin-left: 75%; } [class~="grid"] > [data-push-left*="_lg-10"], [class*="grid-"] > [data-push-left*="_lg-10"], [class*="grid_"] > [data-push-left*="_lg-10"] { margin-left: 83.33333%; } [class~="grid"] > [data-push-left*="_lg-11"], [class*="grid-"] > [data-push-left*="_lg-11"], [class*="grid_"] > [data-push-left*="_lg-11"] { margin-left: 91.66667%; } [class~="grid"] > [data-push-right*="_lg-0"], [class*="grid-"] > [data-push-right*="_lg-0"], [class*="grid_"] > [data-push-right*="_lg-0"] { margin-right: 0; } [class~="grid"] > [data-push-right*="_lg-1"], [class*="grid-"] > [data-push-right*="_lg-1"], [class*="grid_"] > [data-push-right*="_lg-1"] { margin-right: 8.33333%; } [class~="grid"] > [data-push-right*="_lg-2"], [class*="grid-"] > [data-push-right*="_lg-2"], [class*="grid_"] > [data-push-right*="_lg-2"] { margin-right: 16.66667%; } [class~="grid"] > [data-push-right*="_lg-3"], [class*="grid-"] > [data-push-right*="_lg-3"], [class*="grid_"] > [data-push-right*="_lg-3"] { margin-right: 25%; } [class~="grid"] > [data-push-right*="_lg-4"], [class*="grid-"] > [data-push-right*="_lg-4"], [class*="grid_"] > [data-push-right*="_lg-4"] { margin-right: 33.33333%; } [class~="grid"] > [data-push-right*="_lg-5"], [class*="grid-"] > [data-push-right*="_lg-5"], [class*="grid_"] > [data-push-right*="_lg-5"] { margin-right: 41.66667%; } [class~="grid"] > [data-push-right*="_lg-6"], [class*="grid-"] > [data-push-right*="_lg-6"], [class*="grid_"] > [data-push-right*="_lg-6"] { margin-right: 50%; } [class~="grid"] > [data-push-right*="_lg-7"], [class*="grid-"] > [data-push-right*="_lg-7"], [class*="grid_"] > [data-push-right*="_lg-7"] { margin-right: 58.33333%; } [class~="grid"] > [data-push-right*="_lg-8"], [class*="grid-"] > [data-push-right*="_lg-8"], [class*="grid_"] > [data-push-right*="_lg-8"] { margin-right: 66.66667%; } [class~="grid"] > [data-push-right*="_lg-9"], [class*="grid-"] > [data-push-right*="_lg-9"], [class*="grid_"] > [data-push-right*="_lg-9"] { margin-right: 75%; } [class~="grid"] > [data-push-right*="_lg-10"], [class*="grid-"] > [data-push-right*="_lg-10"], [class*="grid_"] > [data-push-right*="_lg-10"] { margin-right: 83.33333%; } [class~="grid"] > [data-push-right*="_lg-11"], [class*="grid-"] > [data-push-right*="_lg-11"], [class*="grid_"] > [data-push-right*="_lg-11"] { margin-right: 91.66667%; } [class~="grid"] [class*="_lg-first"], [class*="grid-"] [class*="_lg-first"], [class*="grid_"] [class*="_lg-first"] { order: -1; } [class~="grid"] [class*="_lg-last"], [class*="grid-"] [class*="_lg-last"], [class*="grid_"] [class*="_lg-last"] { order: 1; } } @media (max-width: 64em) { [class~="grid"] > [class*="_md-1"], [class*="grid-"] > [class*="_md-1"], [class*="grid_"] > [class*="_md-1"] { flex-basis: 8.33333%; max-width: 8.33333%; } [class~="grid"] > [class*="_md-2"], [class*="grid-"] > [class*="_md-2"], [class*="grid_"] > [class*="_md-2"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class~="grid"] > [class*="_md-3"], [class*="grid-"] > [class*="_md-3"], [class*="grid_"] > [class*="_md-3"] { flex-basis: 25%; max-width: 25%; } [class~="grid"] > [class*="_md-4"], [class*="grid-"] > [class*="_md-4"], [class*="grid_"] > [class*="_md-4"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class~="grid"] > [class*="_md-5"], [class*="grid-"] > [class*="_md-5"], [class*="grid_"] > [class*="_md-5"] { flex-basis: 41.66667%; max-width: 41.66667%; } [class~="grid"] > [class*="_md-6"], [class*="grid-"] > [class*="_md-6"], [class*="grid_"] > [class*="_md-6"] { flex-basis: 50%; max-width: 50%; } [class~="grid"] > [class*="_md-7"], [class*="grid-"] > [class*="_md-7"], [class*="grid_"] > [class*="_md-7"] { flex-basis: 58.33333%; max-width: 58.33333%; } [class~="grid"] > [class*="_md-8"], [class*="grid-"] > [class*="_md-8"], [class*="grid_"] > [class*="_md-8"] { flex-basis: 66.66667%; max-width: 66.66667%; } [class~="grid"] > [class*="_md-9"], [class*="grid-"] > [class*="_md-9"], [class*="grid_"] > [class*="_md-9"] { flex-basis: 75%; max-width: 75%; } [class~="grid"] > [class*="_md-10"], [class*="grid-"] > [class*="_md-10"], [class*="grid_"] > [class*="_md-10"] { flex-basis: 83.33333%; max-width: 83.33333%; } [class~="grid"] > [class*="_md-11"], [class*="grid-"] > [class*="_md-11"], [class*="grid_"] > [class*="_md-11"] { flex-basis: 91.66667%; max-width: 91.66667%; } [class~="grid"] > [class*="_md-12"], [class*="grid-"] > [class*="_md-12"], [class*="grid_"] > [class*="_md-12"] { flex-basis: 100%; max-width: 100%; } [class~="grid"] > [data-push-left*="_md-0"], [class*="grid-"] > [data-push-left*="_md-0"], [class*="grid_"] > [data-push-left*="_md-0"] { margin-left: 0; } [class~="grid"] > [data-push-left*="_md-1"], [class*="grid-"] > [data-push-left*="_md-1"], [class*="grid_"] > [data-push-left*="_md-1"] { margin-left: 8.33333%; } [class~="grid"] > [data-push-left*="_md-2"], [class*="grid-"] > [data-push-left*="_md-2"], [class*="grid_"] > [data-push-left*="_md-2"] { margin-left: 16.66667%; } [class~="grid"] > [data-push-left*="_md-3"], [class*="grid-"] > [data-push-left*="_md-3"], [class*="grid_"] > [data-push-left*="_md-3"] { margin-left: 25%; } [class~="grid"] > [data-push-left*="_md-4"], [class*="grid-"] > [data-push-left*="_md-4"], [class*="grid_"] > [data-push-left*="_md-4"] { margin-left: 33.33333%; } [class~="grid"] > [data-push-left*="_md-5"], [class*="grid-"] > [data-push-left*="_md-5"], [class*="grid_"] > [data-push-left*="_md-5"] { margin-left: 41.66667%; } [class~="grid"] > [data-push-left*="_md-6"], [class*="grid-"] > [data-push-left*="_md-6"], [class*="grid_"] > [data-push-left*="_md-6"] { margin-left: 50%; } [class~="grid"] > [data-push-left*="_md-7"], [class*="grid-"] > [data-push-left*="_md-7"], [class*="grid_"] > [data-push-left*="_md-7"] { margin-left: 58.33333%; } [class~="grid"] > [data-push-left*="_md-8"], [class*="grid-"] > [data-push-left*="_md-8"], [class*="grid_"] > [data-push-left*="_md-8"] { margin-left: 66.66667%; } [class~="grid"] > [data-push-left*="_md-9"], [class*="grid-"] > [data-push-left*="_md-9"], [class*="grid_"] > [data-push-left*="_md-9"] { margin-left: 75%; } [class~="grid"] > [data-push-left*="_md-10"], [class*="grid-"] > [data-push-left*="_md-10"], [class*="grid_"] > [data-push-left*="_md-10"] { margin-left: 83.33333%; } [class~="grid"] > [data-push-left*="_md-11"], [class*="grid-"] > [data-push-left*="_md-11"], [class*="grid_"] > [data-push-left*="_md-11"] { margin-left: 91.66667%; } [class~="grid"] > [data-push-right*="_md-0"], [class*="grid-"] > [data-push-right*="_md-0"], [class*="grid_"] > [data-push-right*="_md-0"] { margin-right: 0; } [class~="grid"] > [data-push-right*="_md-1"], [class*="grid-"] > [data-push-right*="_md-1"], [class*="grid_"] > [data-push-right*="_md-1"] { margin-right: 8.33333%; } [class~="grid"] > [data-push-right*="_md-2"], [class*="grid-"] > [data-push-right*="_md-2"], [class*="grid_"] > [data-push-right*="_md-2"] { margin-right: 16.66667%; } [class~="grid"] > [data-push-right*="_md-3"], [class*="grid-"] > [data-push-right*="_md-3"], [class*="grid_"] > [data-push-right*="_md-3"] { margin-right: 25%; } [class~="grid"] > [data-push-right*="_md-4"], [class*="grid-"] > [data-push-right*="_md-4"], [class*="grid_"] > [data-push-right*="_md-4"] { margin-right: 33.33333%; } [class~="grid"] > [data-push-right*="_md-5"], [class*="grid-"] > [data-push-right*="_md-5"], [class*="grid_"] > [data-push-right*="_md-5"] { margin-right: 41.66667%; } [class~="grid"] > [data-push-right*="_md-6"], [class*="grid-"] > [data-push-right*="_md-6"], [class*="grid_"] > [data-push-right*="_md-6"] { margin-right: 50%; } [class~="grid"] > [data-push-right*="_md-7"], [class*="grid-"] > [data-push-right*="_md-7"], [class*="grid_"] > [data-push-right*="_md-7"] { margin-right: 58.33333%; } [class~="grid"] > [data-push-right*="_md-8"], [class*="grid-"] > [data-push-right*="_md-8"], [class*="grid_"] > [data-push-right*="_md-8"] { margin-right: 66.66667%; } [class~="grid"] > [data-push-right*="_md-9"], [class*="grid-"] > [data-push-right*="_md-9"], [class*="grid_"] > [data-push-right*="_md-9"] { margin-right: 75%; } [class~="grid"] > [data-push-right*="_md-10"], [class*="grid-"] > [data-push-right*="_md-10"], [class*="grid_"] > [data-push-right*="_md-10"] { margin-right: 83.33333%; } [class~="grid"] > [data-push-right*="_md-11"], [class*="grid-"] > [data-push-right*="_md-11"], [class*="grid_"] > [data-push-right*="_md-11"] { margin-right: 91.66667%; } [class~="grid"] [class*="_md-first"], [class*="grid-"] [class*="_md-first"], [class*="grid_"] [class*="_md-first"] { order: -1; } [class~="grid"] [class*="_md-last"], [class*="grid-"] [class*="_md-last"], [class*="grid_"] [class*="_md-last"] { order: 1; } } @media (max-width: 48em) { [class~="grid"] > [class*="_sm-1"], [class*="grid-"] > [class*="_sm-1"], [class*="grid_"] > [class*="_sm-1"] { flex-basis: 8.33333%; max-width: 8.33333%; } [class~="grid"] > [class*="_sm-2"], [class*="grid-"] > [class*="_sm-2"], [class*="grid_"] > [class*="_sm-2"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class~="grid"] > [class*="_sm-3"], [class*="grid-"] > [class*="_sm-3"], [class*="grid_"] > [class*="_sm-3"] { flex-basis: 25%; max-width: 25%; } [class~="grid"] > [class*="_sm-4"], [class*="grid-"] > [class*="_sm-4"], [class*="grid_"] > [class*="_sm-4"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class~="grid"] > [class*="_sm-5"], [class*="grid-"] > [class*="_sm-5"], [class*="grid_"] > [class*="_sm-5"] { flex-basis: 41.66667%; max-width: 41.66667%; } [class~="grid"] > [class*="_sm-6"], [class*="grid-"] > [class*="_sm-6"], [class*="grid_"] > [class*="_sm-6"] { flex-basis: 50%; max-width: 50%; } [class~="grid"] > [class*="_sm-7"], [class*="grid-"] > [class*="_sm-7"], [class*="grid_"] > [class*="_sm-7"] { flex-basis: 58.33333%; max-width: 58.33333%; } [class~="grid"] > [class*="_sm-8"], [class*="grid-"] > [class*="_sm-8"], [class*="grid_"] > [class*="_sm-8"] { flex-basis: 66.66667%; max-width: 66.66667%; } [class~="grid"] > [class*="_sm-9"], [class*="grid-"] > [class*="_sm-9"], [class*="grid_"] > [class*="_sm-9"] { flex-basis: 75%; max-width: 75%; } [class~="grid"] > [class*="_sm-10"], [class*="grid-"] > [class*="_sm-10"], [class*="grid_"] > [class*="_sm-10"] { flex-basis: 83.33333%; max-width: 83.33333%; } [class~="grid"] > [class*="_sm-11"], [class*="grid-"] > [class*="_sm-11"], [class*="grid_"] > [class*="_sm-11"] { flex-basis: 91.66667%; max-width: 91.66667%; } [class~="grid"] > [class*="_sm-12"], [class*="grid-"] > [class*="_sm-12"], [class*="grid_"] > [class*="_sm-12"] { flex-basis: 100%; max-width: 100%; } [class~="grid"] > [data-push-left*="_sm-0"], [class*="grid-"] > [data-push-left*="_sm-0"], [class*="grid_"] > [data-push-left*="_sm-0"] { margin-left: 0; } [class~="grid"] > [data-push-left*="_sm-1"], [class*="grid-"] > [data-push-left*="_sm-1"], [class*="grid_"] > [data-push-left*="_sm-1"] { margin-left: 8.33333%; } [class~="grid"] > [data-push-left*="_sm-2"], [class*="grid-"] > [data-push-left*="_sm-2"], [class*="grid_"] > [data-push-left*="_sm-2"] { margin-left: 16.66667%; } [class~="grid"] > [data-push-left*="_sm-3"], [class*="grid-"] > [data-push-left*="_sm-3"], [class*="grid_"] > [data-push-left*="_sm-3"] { margin-left: 25%; } [class~="grid"] > [data-push-left*="_sm-4"], [class*="grid-"] > [data-push-left*="_sm-4"], [class*="grid_"] > [data-push-left*="_sm-4"] { margin-left: 33.33333%; } [class~="grid"] > [data-push-left*="_sm-5"], [class*="grid-"] > [data-push-left*="_sm-5"], [class*="grid_"] > [data-push-left*="_sm-5"] { margin-left: 41.66667%; } [class~="grid"] > [data-push-left*="_sm-6"], [class*="grid-"] > [data-push-left*="_sm-6"], [class*="grid_"] > [data-push-left*="_sm-6"] { margin-left: 50%; } [class~="grid"] > [data-push-left*="_sm-7"], [class*="grid-"] > [data-push-left*="_sm-7"], [class*="grid_"] > [data-push-left*="_sm-7"] { margin-left: 58.33333%; } [class~="grid"] > [data-push-left*="_sm-8"], [class*="grid-"] > [data-push-left*="_sm-8"], [class*="grid_"] > [data-push-left*="_sm-8"] { margin-left: 66.66667%; } [class~="grid"] > [data-push-left*="_sm-9"], [class*="grid-"] > [data-push-left*="_sm-9"], [class*="grid_"] > [data-push-left*="_sm-9"] { margin-left: 75%; } [class~="grid"] > [data-push-left*="_sm-10"], [class*="grid-"] > [data-push-left*="_sm-10"], [class*="grid_"] > [data-push-left*="_sm-10"] { margin-left: 83.33333%; } [class~="grid"] > [data-push-left*="_sm-11"], [class*="grid-"] > [data-push-left*="_sm-11"], [class*="grid_"] > [data-push-left*="_sm-11"] { margin-left: 91.66667%; } [class~="grid"] > [data-push-right*="_sm-0"], [class*="grid-"] > [data-push-right*="_sm-0"], [class*="grid_"] > [data-push-right*="_sm-0"] { margin-right: 0; } [class~="grid"] > [data-push-right*="_sm-1"], [class*="grid-"] > [data-push-right*="_sm-1"], [class*="grid_"] > [data-push-right*="_sm-1"] { margin-right: 8.33333%; } [class~="grid"] > [data-push-right*="_sm-2"], [class*="grid-"] > [data-push-right*="_sm-2"], [class*="grid_"] > [data-push-right*="_sm-2"] { margin-right: 16.66667%; } [class~="grid"] > [data-push-right*="_sm-3"], [class*="grid-"] > [data-push-right*="_sm-3"], [class*="grid_"] > [data-push-right*="_sm-3"] { margin-right: 25%; } [class~="grid"] > [data-push-right*="_sm-4"], [class*="grid-"] > [data-push-right*="_sm-4"], [class*="grid_"] > [data-push-right*="_sm-4"] { margin-right: 33.33333%; } [class~="grid"] > [data-push-right*="_sm-5"], [class*="grid-"] > [data-push-right*="_sm-5"], [class*="grid_"] > [data-push-right*="_sm-5"] { margin-right: 41.66667%; } [class~="grid"] > [data-push-right*="_sm-6"], [class*="grid-"] > [data-push-right*="_sm-6"], [class*="grid_"] > [data-push-right*="_sm-6"] { margin-right: 50%; } [class~="grid"] > [data-push-right*="_sm-7"], [class*="grid-"] > [data-push-right*="_sm-7"], [class*="grid_"] > [data-push-right*="_sm-7"] { margin-right: 58.33333%; } [class~="grid"] > [data-push-right*="_sm-8"], [class*="grid-"] > [data-push-right*="_sm-8"], [class*="grid_"] > [data-push-right*="_sm-8"] { margin-right: 66.66667%; } [class~="grid"] > [data-push-right*="_sm-9"], [class*="grid-"] > [data-push-right*="_sm-9"], [class*="grid_"] > [data-push-right*="_sm-9"] { margin-right: 75%; } [class~="grid"] > [data-push-right*="_sm-10"], [class*="grid-"] > [data-push-right*="_sm-10"], [class*="grid_"] > [data-push-right*="_sm-10"] { margin-right: 83.33333%; } [class~="grid"] > [data-push-right*="_sm-11"], [class*="grid-"] > [data-push-right*="_sm-11"], [class*="grid_"] > [data-push-right*="_sm-11"] { margin-right: 91.66667%; } [class~="grid"] [class*="_sm-first"], [class*="grid-"] [class*="_sm-first"], [class*="grid_"] [class*="_sm-first"] { order: -1; } [class~="grid"] [class*="_sm-last"], [class*="grid-"] [class*="_sm-last"], [class*="grid_"] [class*="_sm-last"] { order: 1; } } @media (max-width: 36em) { [class~="grid"] > [class*="_xs-1"], [class*="grid-"] > [class*="_xs-1"], [class*="grid_"] > [class*="_xs-1"] { flex-basis: 8.33333%; max-width: 8.33333%; } [class~="grid"] > [class*="_xs-2"], [class*="grid-"] > [class*="_xs-2"], [class*="grid_"] > [class*="_xs-2"] { flex-basis: 16.66667%; max-width: 16.66667%; } [class~="grid"] > [class*="_xs-3"], [class*="grid-"] > [class*="_xs-3"], [class*="grid_"] > [class*="_xs-3"] { flex-basis: 25%; max-width: 25%; } [class~="grid"] > [class*="_xs-4"], [class*="grid-"] > [class*="_xs-4"], [class*="grid_"] > [class*="_xs-4"] { flex-basis: 33.33333%; max-width: 33.33333%; } [class~="grid"] > [class*="_xs-5"], [class*="grid-"] > [class*="_xs-5"], [class*="grid_"] > [class*="_xs-5"] { flex-basis: 41.66667%; max-width: 41.66667%; } [class~="grid"] > [class*="_xs-6"], [class*="grid-"] > [class*="_xs-6"], [class*="grid_"] > [class*="_xs-6"] { flex-basis: 50%; max-width: 50%; } [class~="grid"] > [class*="_xs-7"], [class*="grid-"] > [class*="_xs-7"], [class*="grid_"] > [class*="_xs-7"] { flex-basis: 58.33333%; max-width: 58.33333%; } [class~="grid"] > [class*="_xs-8"], [class*="grid-"] > [class*="_xs-8"], [class*="grid_"] > [class*="_xs-8"] { flex-basis: 66.66667%; max-width: 66.66667%; } [class~="grid"] > [class*="_xs-9"], [class*="grid-"] > [class*="_xs-9"], [class*="grid_"] > [class*="_xs-9"] { flex-basis: 75%; max-width: 75%; } [class~="grid"] > [class*="_xs-10"], [class*="grid-"] > [class*="_xs-10"], [class*="grid_"] > [class*="_xs-10"] { flex-basis: 83.33333%; max-width: 83.33333%; } [class~="grid"] > [class*="_xs-11"], [class*="grid-"] > [class*="_xs-11"], [class*="grid_"] > [class*="_xs-11"] { flex-basis: 91.66667%; max-width: 91.66667%; } [class~="grid"] > [class*="_xs-12"], [class*="grid-"] > [class*="_xs-12"], [class*="grid_"] > [class*="_xs-12"] { flex-basis: 100%; max-width: 100%; } [class~="grid"] > [data-push-left*="_xs-0"], [class*="grid-"] > [data-push-left*="_xs-0"], [class*="grid_"] > [data-push-left*="_xs-0"] { margin-left: 0; } [class~="grid"] > [data-push-left*="_xs-1"], [class*="grid-"] > [data-push-left*="_xs-1"], [class*="grid_"] > [data-push-left*="_xs-1"] { margin-left: 8.33333%; } [class~="grid"] > [data-push-left*="_xs-2"], [class*="grid-"] > [data-push-left*="_xs-2"], [class*="grid_"] > [data-push-left*="_xs-2"] { margin-left: 16.66667%; } [class~="grid"] > [data-push-left*="_xs-3"], [class*="grid-"] > [data-push-left*="_xs-3"], [class*="grid_"] > [data-push-left*="_xs-3"] { margin-left: 25%; } [class~="grid"] > [data-push-left*="_xs-4"], [class*="grid-"] > [data-push-left*="_xs-4"], [class*="grid_"] > [data-push-left*="_xs-4"] { margin-left: 33.33333%; } [class~="grid"] > [data-push-left*="_xs-5"], [class*="grid-"] > [data-push-left*="_xs-5"], [class*="grid_"] > [data-push-left*="_xs-5"] { margin-left: 41.66667%; } [class~="grid"] > [data-push-left*="_xs-6"], [class*="grid-"] > [data-push-left*="_xs-6"], [class*="grid_"] > [data-push-left*="_xs-6"] { margin-left: 50%; } [class~="grid"] > [data-push-left*="_xs-7"], [class*="grid-"] > [data-push-left*="_xs-7"], [class*="grid_"] > [data-push-left*="_xs-7"] { margin-left: 58.33333%; } [class~="grid"] > [data-push-left*="_xs-8"], [class*="grid-"] > [data-push-left*="_xs-8"], [class*="grid_"] > [data-push-left*="_xs-8"] { margin-left: 66.66667%; } [class~="grid"] > [data-push-left*="_xs-9"], [class*="grid-"] > [data-push-left*="_xs-9"], [class*="grid_"] > [data-push-left*="_xs-9"] { margin-left: 75%; } [class~="grid"] > [data-push-left*="_xs-10"], [class*="grid-"] > [data-push-left*="_xs-10"], [class*="grid_"] > [data-push-left*="_xs-10"] { margin-left: 83.33333%; } [class~="grid"] > [data-push-left*="_xs-11"], [class*="grid-"] > [data-push-left*="_xs-11"], [class*="grid_"] > [data-push-left*="_xs-11"] { margin-left: 91.66667%; } [class~="grid"] > [data-push-right*="_xs-0"], [class*="grid-"] > [data-push-right*="_xs-0"], [class*="grid_"] > [data-push-right*="_xs-0"] { margin-right: 0; } [class~="grid"] > [data-push-right*="_xs-1"], [class*="grid-"] > [data-push-right*="_xs-1"], [class*="grid_"] > [data-push-right*="_xs-1"] { margin-right: 8.33333%; } [class~="grid"] > [data-push-right*="_xs-2"], [class*="grid-"] > [data-push-right*="_xs-2"], [class*="grid_"] > [data-push-right*="_xs-2"] { margin-right: 16.66667%; } [class~="grid"] > [data-push-right*="_xs-3"], [class*="grid-"] > [data-push-right*="_xs-3"], [class*="grid_"] > [data-push-right*="_xs-3"] { margin-right: 25%; } [class~="grid"] > [data-push-right*="_xs-4"], [class*="grid-"] > [data-push-right*="_xs-4"], [class*="grid_"] > [data-push-right*="_xs-4"] { margin-right: 33.33333%; } [class~="grid"] > [data-push-right*="_xs-5"], [class*="grid-"] > [data-push-right*="_xs-5"], [class*="grid_"] > [data-push-right*="_xs-5"] { margin-right: 41.66667%; } [class~="grid"] > [data-push-right*="_xs-6"], [class*="grid-"] > [data-push-right*="_xs-6"], [class*="grid_"] > [data-push-right*="_xs-6"] { margin-right: 50%; } [class~="grid"] > [data-push-right*="_xs-7"], [class*="grid-"] > [data-push-right*="_xs-7"], [class*="grid_"] > [data-push-right*="_xs-7"] { margin-right: 58.33333%; } [class~="grid"] > [data-push-right*="_xs-8"], [class*="grid-"] > [data-push-right*="_xs-8"], [class*="grid_"] > [data-push-right*="_xs-8"] { margin-right: 66.66667%; } [class~="grid"] > [data-push-right*="_xs-9"], [class*="grid-"] > [data-push-right*="_xs-9"], [class*="grid_"] > [data-push-right*="_xs-9"] { margin-right: 75%; } [class~="grid"] > [data-push-right*="_xs-10"], [class*="grid-"] > [data-push-right*="_xs-10"], [class*="grid_"] > [data-push-right*="_xs-10"] { margin-right: 83.33333%; } [class~="grid"] > [data-push-right*="_xs-11"], [class*="grid-"] > [data-push-right*="_xs-11"], [class*="grid_"] > [data-push-right*="_xs-11"] { margin-right: 91.66667%; } [class~="grid"] [class*="_xs-first"], [class*="grid-"] [class*="_xs-first"], [class*="grid_"] [class*="_xs-first"] { order: -1; } [class~="grid"] [class*="_xs-last"], [class*="grid-"] [class*="_xs-last"], [class*="grid_"] [class*="_xs-last"] { order: 1; } } /************************ HIDING COLS *************************/ @media (max-width: 80em) { [class*="lg-hidden"] { display: none; } } @media (max-width: 64em) { [class*="md-hidden"] { display: none; } } @media (max-width: 48em) { [class*="sm-hidden"] { display: none; } } @media (max-width: 36em) { [class*="xs-hidden"] { display: none; } }
/****** * DEMO *******/ /* /!\ */ /* Demo specific css ========================================================================== */ *{ box-sizing: border-box; } *::after,*::before{ box-sizing: border-box; } ul{ padding:0; list-style-position: inside; } li{ font-size: 0.9rem; margin: 0; } table { width: 100%; border-collapse: collapse; } table td, table th { border: 1px solid rgba(147, 128, 108, 0.5); padding: .5em; } /**/ .demo { width: 100%; background: rgba(147, 128, 108, 0.2); text-align: center; } .demo-left { text-align: left; } .demo p { margin: 0; padding: 1rem; } @media screen and (max-width: 35.5em) { .demo p { padding: .5rem; } } .demo-explain { margin: 0; padding: 0; } .demo img, .demo-card img { display: block; max-width: 100%; height: auto; } .withBorder { border: 1px solid rgba(147, 128, 108, 0.5); } .withBorder .col, .withBorder [class*='col-'] { padding: 0; } .withBorder .demo { border: 1px solid rgba(147, 128, 108, 0.5); } /* Tooltip */ /*section:nth-child(n+3) [class*="grid-"], section:nth-child(n+3) [class*="col-"] { position: relative; cursor: help; } section:nth-child(n+3) [class*="grid-"]:hover:after, section:nth-child(n+3) [class*="col-"]:hover:after { content: attr(class); padding: 2px 8px; position: absolute; left: 0.5rem; top: 0; white-space: nowrap; z-index: 20; background-color: #555; color: #fff; font-size: .8rem; }*/
body.tc-body h1 { font-family: {{!!font-family-h1}}; font-size: {{!!font-size-h1}}; color: {{!!font-color-h1}}; } body.tc-body h2 { font-family: {{!!font-family-h2}}; font-size: {{!!font-size-h2}}; color: {{!!font-color-h2}}; } body.tc-body h3 { font-family: {{!!font-family-h3}}; font-size: {{!!font-size-h3}}; color: {{!!font-color-h3}}; } body.tc-body h4 { font-family: {{!!font-family-h4}}; font-size: {{!!font-size-h4}}; color: {{!!font-color-h4}}; } body.tc-body h5 { font-family: {{!!font-family-h5}}; font-size: {{!!font-size-h5}}; color: {{!!font-color-h5}}; } body.tc-body h6 { font-family: {{!!font-family-h6}}; font-size: {{!!font-size-h6}}; color: {{!!font-color-h6}}; } body.tc-body .tc-site-title{ font-family: {{!!font-family-site-title}}; font-size: {{!!font-size-site-title}}; color: {{!!site-title-foreground}}; } body.tc-body .tc-site-subtitle{ font-family: {{!!font-family-site-subtitle}}; font-size: {{!!font-size-site-subtitle}}; color: {{!!site-subtitle-foreground}}; } .tc-tiddler-frame .tc-tiddler-body { color: {{!!font-color}}; }
.tw-admin-content { margin:0 auto; width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: .8em; /*margin-top:-2em;*/ margin-bottom:-0em; fill:crimson; }
body.tc-body .tc-tiddler-frame .tc-tiddler-body { text-align: justify; }
a { } a:hover { } a:active { } button.tc-tiddlylink, a.tc-tiddlylink { text-decoration: solid; font-weight: 500; color: ; -webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */ } /* ** Links */ .tc-sidebar-lists a.tc-tiddlylink:hover { color: <<colour sidebar-tiddler-link-foreground-hover>>; } button.tc-tiddlylink:hover, a.tc-tiddlylink:hover { text-decoration: underline; } a.tc-tiddlylink-resolves { } a.tc-tiddlylink-shadow { font-weight: bold; } a.tc-tiddlylink-shadow.tc-tiddlylink-resolves { font-weight: normal; } a.tc-tiddlylink-missing { font-style: italic; } a.tc-tiddlylink-external { text-decoration: underline; color: <<colour external-link-foreground>>; background-color: <<colour external-link-background>>; } a.tc-tiddlylink-external:visited { color: <<colour external-link-foreground-visited>>; background-color: <<colour external-link-background-visited>>; } a.tc-tiddlylink-external:hover { color: <<colour external-link-foreground-hover>>; background-color: <<colour external-link-background-hover>>; }
.tc-topbar-left { top: 0; left: 0; position: fixed; z-index: 1000; display: block; padding: 5px 0px 0px 5px; color: #000000; width: 100%; height: {{!!navbar-hauteur}}; background: {{!!background-color}}; border-bottom: {{!!navbar-borderheight}} {{!!navbar-border}} {{!!navbar-bordercolor}}; Alignement du texte: {{!!text-align}}; Espace entre les menus: {{!!navbar-menuspace}}; } <!-- Le titre original de ce tiddler `$:/navbar/css` est remplacé par `$:/cssNavBar`<br/> Les champs et les contenus du tiddler `$:/navbar/css/user` sont regroupés dans le présent tiddler, puis supprimé. -->
.col-6{ background-color: {{!!col06}}; } .col-3{ background-color: {{!!col03}}; } .col-2{ background-color: {{!!col02}}; } .col-1{ background-color: {{!!col01}}; }
<!-- Notification d'enregistrement de la sauvegarde du wiki Les notifications dans le template de vue possèdent un style builtin. Donc il faut utiliser 'important' pour forcer la prise en compte de ce css --> .tc-notification { position: fixed !important; top: 35px !important; right: 50px !important; z-index: 1300 !important; width: 150px !important; height: 150px !important; background-color: crimson !important; border: none !important; color: white !important; text-align: center !important; line-height: normal !important; padding-top: 50px !important; }
""" /*Cette feuille de style contient les paramètres propres à Frame, [[TW5 Vanilla|$:/themes/tiddlywiki/vanilla/base]] modifiés et Spectre modifiés ([[spectre.css]]), plugin DETAILS modifié, __Point important__ : Pour modifier les règles CSS sans difficultés, penser à [[Gérer les champs en mode visu]] <i class="icon icon-forward"></i> {{$:/plugins/tongerner/toolbar/buttons/toggle-field-handling}}. Les numéros sont inscrits devant les règles.*/ /*<div class="toast">SPECTRE (spectrexxx)</div>*/ .btn.btn-link { /*001*/ color: {{!!spectre001}} !important; } .btn.btn-link:focus{ /*002*/ color: {{!!spectre002}} !important; } .menu .menu-item > a:focus, .menu .menu-item > a:hover { background: #ec6 !important; /* Source : #f1f1fc */ color: #000 !important; /* source : #5755d9 */ } /*<div class="toast">Plugin DETAILS (detailsxxx)</div>*/ details { /*details001*/ background-color: #F5F5DC; } details summary { padding-top:0.6em; padding-bottom:0.6em; } """
.tc-tiddler-frame { page-break-before:always; }
.img-thumbnail { padding: 4px; background-color: #fff; border: 1px solid #ddd; border-radius: 4px; } .tc-alert.tc-alert-info { background-color: #F5F5DC; border-color: #696969; } .tc-alert.tc-toc-box { margin: 0; color: #000; max-width: 350px; text-shadow: none; }
.tc-tabbed-table-of-contents-content { height: 300px ; overflow: scroll ; }
.tc-sidebar-lists .tc-search .tc-popup-handle { width: {{!!width}}; }
div.tc-sidebar-scrollable { <$set name="cssVar" filter= "[title[$:/state/sidebar]field:text[yes]]" value="linear-gradient(to right, transparent, {{!!gradient-color}} {{!!gradient-percent}});" emptyValue="" > background: <<cssVar>> </$set> } <!-- Une façon de gérer la couleur de fond de la SideBar Fichier assistance : [[Changer la couleur d'arrière plan de la Sidebar]] -->
[data-tip] { position: relative; } [data-tip]:before, [data-tip]:after { position: absolute; -webkit-transform: translateX(-50%); -ms-transform: translateX(-50%); transform: translateX(-50%); opacity: 0; transition: opacity 0.3s ease, -webkit-transform 0.3s ease, visibility 0.3s ease; transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s ease; visibility: hidden; font-size: 12px; line-height: 12px; } [data-tip]:hover:before { transition: all 300ms 800ms cubic-bezier(0.25, 0, 0.15, 1.50); } [data-tip].data-tip-mask { z-index: 999; box-shadow: inset 0 0 0 500px rgba(220, 220, 200, 0), 0 0 0 5000px rgba(240, 220, 200, 0); transition: all 500ms 500ms; } [data-tip].data-tip-mask:hover { box-shadow: inset 0 0 0 500px rgba(240, 220, 200, 0.70), 0 0 0 5000px rgba(240, 220, 200, 0.70); } [data-tip]:before { content: ""; border: 6px solid transparent; } [data-tip]:after { content: attr(data-tip); padding: 7px 10px; background-color: #333; display: block; color: #fff; white-space: nowrap; } [data-tip]:hover:before, [data-tip].data-tip-visible:before, [data-tip]:hover:after, [data-tip].data-tip-visible:after { opacity: 1; visibility: visible; z-index: 9999; } [data-tip].data-tip-bottom:before, [data-tip].data-tip-bottom:after { top: 100%; left: 50%; } [data-tip].data-tip-bottom:before { margin-top: -12px; border-bottom-color: #333; } [data-tip].data-tip-bottom:hover:before, [data-tip].data-tip-bottom.data-tip-visible:before, [data-tip].data-tip-bottom:hover:after, [data-tip].data-tip-bottom.data-tip-visible:after { -webkit-transform: translateX(-50%) translateY(8px); -ms-transform: translateX(-50%) translateY(8px); transform: translateX(-50%) translateY(8px); } [data-tip].data-tip-top:before, [data-tip].data-tip-top:after { bottom: 100%; left: 50%; } [data-tip].data-tip-top:before { margin-bottom: -12px; border-top-color: #333; } [data-tip].data-tip-top:hover:before, [data-tip].data-tip-top.data-tip-visible:before, [data-tip].data-tip-top:hover:after, [data-tip].data-tip-top.data-tip-visible:after { -webkit-transform: translateX(-50%) translateY(-8px); -ms-transform: translateX(-50%) translateY(-8px); transform: translateX(-50%) translateY(-8px); } [data-tip].data-tip-left:before, [data-tip].data-tip-left:after { top: 50%; right: 100%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); } [data-tip].data-tip-left:before { margin-right: -12px; border-left-color: #333; } [data-tip].data-tip-left:hover:before, [data-tip].data-tip-left.data-tip-visible:before, [data-tip].data-tip-left:hover:after, [data-tip].data-tip-left.data-tip-visible:after { -webkit-transform: translateY(-50%) translateX(-8px); -ms-transform: translateY(-50%) translateX(-8px); transform: translateY(-50%) translateX(-8px); } [data-tip].data-tip-right:before, [data-tip].data-tip-right:after { top: 50%; left: 100%; -webkit-transform: translateY(-50%); -ms-transform: translateY(-50%); transform: translateY(-50%); } [data-tip].data-tip-right:before { margin-left: -12px; border-right-color: #333; } [data-tip].data-tip-right:hover:before, [data-tip].data-tip-right.data-tip-visible:before, [data-tip].data-tip-right:hover:after, [data-tip].data-tip-right.data-tip-visible:after { -webkit-transform: translateY(-50%) translateX(8px); -ms-transform: translateY(-50%) translateX(8px); transform: translateY(-50%) translateX(8px); } [data-tip].data-tip-success:after { background-color: #458746; } [data-tip].data-tip-success.data-tip-top:before { border-top-color: #458746; } [data-tip].data-tip-success.data-tip-left:before { border-left-color: #458746; } [data-tip].data-tip-success.data-tip-right:before { border-right-color: #458746; } [data-tip].data-tip-success.data-tip-bottom:before { border-bottom-color: #458746; } [data-tip].data-tip-warning:after { background-color: #c09854; } [data-tip].data-tip-warning.data-tip-top:before { border-top-color: #c09854; } [data-tip].data-tip-warning.data-tip-left:before { border-left-color: #c09854; } [data-tip].data-tip-warning.data-tip-right:before { border-right-color: #c09854; } [data-tip].data-tip-warning.data-tip-bottom:before { border-bottom-color: #c09854; } [data-tip].data-tip-danger:after { background-color: #b34e4d; } [data-tip].data-tip-danger.data-tip-top:before { border-top-color: #b34e4d; } [data-tip].data-tip-danger.data-tip-left:before { border-left-color: #b34e4d; } [data-tip].data-tip-danger.data-tip-right:before { border-right-color: #b34e4d; } [data-tip].data-tip-danger.data-tip-bottom:before { border-bottom-color: #b34e4d; } [data-tip].data-tip-info:after { background-color: #3986ac; } [data-tip].data-tip-info.data-tip-top:before { border-top-color: #3986ac; } [data-tip].data-tip-info.data-tip-left:before { border-left-color: #3986ac; } [data-tip].data-tip-info.data-tip-right:before { border-right-color: #3986ac; } [data-tip].data-tip-info.data-tip-bottom:before { border-bottom-color: #3986ac; } [data-tip].data-tip-white:after { background-color: Whitesmoke; color:#222; } [data-tip].data-tip-white.data-tip-top:before { border-top-color: Whitesmoke; } [data-tip].data-tip-white.data-tip-left:before { border-left-color: Whitesmoke; } [data-tip].data-tip-white.data-tip-right:before { border-right-color: Whitesmoke; } [data-tip].data-tip-white.data-tip-bottom:before { border-bottom-color: Whitesmoke; } [data-tip].data-tip-no-animation:before, [data-tip].data-tip-no-animation:after { transition: none; } [data-tip].data-tip-rounded:after { border-radius: 6px; } [data-tip].data-tip-fast:before, [data-tip].data-tip-fast:after { transition: opacity 0.1s ease, -webkit-transform 0.1s ease, visibility 0.1s ease; transition: opacity 0.1s ease, transform 0.1s ease, visibility 0.1s ease; } [data-tip].data-tip-shadow:after { box-shadow: 4px 4px 8px rgba(0,0,0,0.3); }
ul ul, ol ul { list-style-type: none; } ul ul li, ol ul li { font-size: smaller; } ul li:before { content: "✨↕ \0020" !important; }
.main { margin: 0 auto; width: 100%; display: grid; grid-gap: 10px; justify-content: end; align-self: end; align-content: space-evenly; grid-template-columns: repeat(12, calc(8.3334% -10 px)) } .one { grid-column: auto / span 1 } .two { grid-column: auto / span 2 } .three { grid-column: auto / span 3 } .four { grid-column: auto / span 4 } .five { grid-column: auto / span 5 } .six { grid-column: auto / span 6 } .seven { grid-column: auto / span 7 } .eight { grid-column: auto / span 8 } .nine { grid-column: auto / span 9 } .ten { grid-column: auto / span 10 } .eleven { grid-column: auto / span 11 } .twelve { grid-column: auto / span 12 } .merge-two-rows{ grid-row: auto / span 2 } .merge-three-rows{ grid-row: auto / span 3 } .merge-four-rows{ grid-row: auto / span 4 } .merge-five-rows{ grid-row: auto / span 5 } .merge-six-rows{ grid-row: auto / span 6 } .nested{ display: grid; grid-gap: 10px; grid-template-columns: repeat(12, calc(8.3334% - 9px)) } @media only screen and (max-width: 480px) { .main{ width: 100% } .one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.eleven{ grid-column: auto / span 12 } }
.center{ text-align: center; } .styling { background-color: pink; color: #000; border: 1px #E01266 solid; border-radius: 4px; padding: 12px; } .styling1 { background-color:crimson; color: #ffffff; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .styling1:hover { opacity:0.7; } .styling2 { background-color:#FEFEFE; color: #000; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .styling1:hover { opacity:0.7; } @media only screen and (max-width: 480px) { .main{ width: 100% } .one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.eleven{ grid-column: auto / span 12 } }
/* Statut Brouillon */ .statutWarning { font-size:2em; text-align: center; background-color: rgba(232, 86, 0, .95); padding: 1.5em 1em; } /* Statut Attente */ .statutError { font-size:2em; text-align: center; background-color: rgba(255, 183, 0, .95); padding: 1.5em 1em; } /* Statut Validé */ .statutSuccess { font-size:2em; text-align: center; background-color: rgba(50, 182, 67, .95); padding: 1.5em 1em; } rgba(255, 183, 0, .95); warning -> Brouillon rgba(50, 182, 67, .95); success Validé background: rgba(232, 86, 0, .95); error -> Attente
body.tc-body .tc-story-river { padding: {{!!padding}}; }
.reactive-table tr:hover{ background-color:#f5f5f5;} .reactive-table .editable input{background-color:#fbfbfb; border:0px;} .reactive-table .editable{background-color:#fbfbfb; border:0px;} .reactive-table input { height:100%; margin:0; border:#fbfbfb;text-align:center; width:100%; } .reactive-table td{padding:0;margin:0;} .reactive-table td span{display:block; padding:2px; width:100%;height:100%; text-align:center;} .reactive-table td span .buttons{display:inline;} .reactive-table td .tw-reveal{width:100%;border:0px;text-align:center;}
/* Tableau */ .tw th {background-color:#5778D8;color:#f6f6f6;font-weight:900;padding: 5px 5px;font-family:"open_sanslight";} table th { background-color:cornflowerblue; color:#f6f6f6; font-weight:900; padding: 5px 5px; font-family:"open_sanslight"; } tr:nth-child(even) td {background-color:#f6f6f6;padding: 8px 5px} tr:nth-child(odd) td {background-color:#e9e9e9;padding: 8px 5px}
button.tc-tag-label, span.tc-tag-label { display: inline-block; padding: 0.16em 0.7em; font-size: 0.9em; font-weight: 400; line-height: 1.9em; color: ; white-space: nowrap; vertical-align: baseline; border-radius: 0em; }
body.tc-body .tc-tiddler-frame { /*border: 0px; */ margin-bottom: 0px; min-height: 0; box-shadow: 0 0px 0px; border-radius: 0px; }
.tc-tiddler-frame .tc-tiddler-body { font-family: {{$:/state/Site Accessability Options!!fontfamily}}; font-weight: {{$:/state/Site Accessability Options!!fontweight}}; font-size: {{$:/state/Site Accessability Options!!fontsize}}; line-height: {{$:/state/Site Accessability Options!!lineheight}}; word-spacing: {{$:/state/Site Accessability Options!!wordspacing}}; letter-spacing: {{$:/state/Site Accessability Options!!letterspacing}}; text-decoration: {{$:/state/Site Accessability Options!!textdecoration}}; }
body.tc-body .tc-tiddler-frame { border: 0px; box-shadow: 0 0px 0px; border-radius: 0px; }
<!-- Passe les boutons de contrôle à gauche et leur donne la taille choisie--> <!-- Première solution --> /*.tc-tiddler-frame .tc-tiddler-controls { float: none; font-size:1.75em; } .tc-tiddler-edit-frame .tc-tiddler-controls { font-size: 1.75em; }*/ <!-- Solution retenue --> .tc-tiddler-frame .tc-tiddler-controls { float: right; font-size:1.5rem; }
.tc-tiddler-frame { box-shadow: 0 5px 20px lightgray; border-radius: 15px; }
.tc-tiddler-frame:hover { box-shadow: 0 8px 17px 0 rgba(0, 0, 0, .2); }
/* Tiddler Subtitle */ div.tc-tiddler-frame .tc-subtitle { color: {{!!font-color}}; font-size: {{!!font-size}}; font-weight: {{!!fontweight}}; line-height: 1; margin: 0px auto 0; text-align: {{!!text-align}}; text-transform: {{!!text-transform}}; display: block; margin-block-start: 1em; margin-block-end: 1em; padding-bottom: {{!!padding-bottom}}; } .tc-subtitle>a{ display:none !important; }
body.tc-body {background-color: #474747; } .tc-tiddler-frame {background-color:#ffffff;}
div.tc-tiddler-body .nr, div.tc-tiddler-preview-preview .nr { counter-reset: h1counter; } div.tc-tiddler-body .nr h1, div.tc-tiddler-preview-preview .nr h1 { counter-increment: h1counter; counter-reset: h2counter; } div.tc-tiddler-body .nr h2, div.tc-tiddler-preview-preview .nr h2 { counter-increment: h2counter; counter-reset: h3counter; } div.tc-tiddler-body .nr h1::before, div.tc-tiddler-preview-preview .nr h1::before { content: counter(h1counter) ".\0000a0\0000a0"; } div.tc-tiddler-body .nr h2::before, div.tc-tiddler-preview-preview .nr h2::before { content: counter(h1counter)"."counter(h2counter) ".\0000a0\0000a0"; } div.tc-tiddler-body .nr h3::before, div.tc-tiddler-preview-preview .nr h3::before { content: counter(h1counter)"."counter(h2counter) "." counter(h3counter) ".\0000a0\0000a0"; counter-increment: h3counter; }
/*sets explicit heights for thead and tfoot*/ .customTable thead{ line-height:40px; } .customTable tfoot{ line-height:100px; } /*set a specific height for a specific body row*/ .customTable tr:nth-child(3){ line-height:100px; } /* specifie width for the entire table*/ .customTable{ width:100%; } .customTable{ width:700px; } /*sets explicit widths for each column*/ all columns: .customTable tr td { width: 20px; } the second column: .customTable tr td:nth-child(2){ width:60px; } /*apply a specific font-family definition to a specific row, specific column, alternating rows, alternating columns*/ /*even rows:*/ .customTable tr:nth-child(even){ font-family:cursive; color:red; } /*odd rows:*/ .customTable tr:nth-child(odd){ background-color:orange; font-family:fantasy; } /*every other column AFTER the 3rd column*/ .customTable tr td:nth-child(2n+3){ font-family:georgia; font-weight:bold; font-size:20px; } /*and here are some for fun*/ .customTable tr:hover{ background-color:pink; color: purple; } .customTable tr td:hover{ text-align: center; font-size:40px; } <!-- Note: Cette feuille de style offre un large spectre, certains paramètres en annulant d'autres (principe du cascading style sheet). Voyez à ce sujet [[Personnaliser les tableaux TiddlyWiki|Customising TiddlyWiki Tables]]. Il convient donc, parmis toutes les options offertes ici de choisir celle(s) qui vous convien(t)nent. -->
<pre>/* TW-version added to site title */ .tc-site-title:before { content:"TW <<version>>"; position:absolute; margin-top:-1.9em; color:silver; font-size:13px; } </pre>
@media print { .tc-subtitle {display:none;} .tc-tags-wrapper {display:none;} }
{ "Tiddlers": "1" }
{ "Test": "1" }
<div style="text-align:center"> {{$:/admin}} </div>
\define menuTitle() $(menu)$ \end Nom du menu<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantLeftBar' field='menu-title' placeholder='e.g. Accueil'/> Indice<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantLeftBar' field='indice' placeholder='Ordre dans le menu (e.g. 1,2...)'/> <$set name=menu value={{$:/TemplateDéroulantLeftBar!!menu-title}}> Contenu du menu :<$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantLeftBar' field='contenu' tag='textarea' placeholder='Un espace entre les lignes pour un contenu vertical, sans espace pour un contenu horizontal.'/> <span style="color:#ff3300">*</span> <span style="font-size:0.8em;font-style:italic;font-weight:bold">Champs obligatoires</span> <$reveal type='nomatch' state='$:/TemplateDéroulantLeftBar!!indice' text=''> <$reveal type='nomatch' state='$:/TemplateDéroulantLeftBar!!menu-title' text=''> <$button>Créer le menu <$action-setfield $tiddler='$:/TemplateDéroulantLeftBar' title=<<menuTitle>>/> <$action-setfield $tiddler='$:/TemplateDéroulantLeftBar' menu-title='' /> <$action-setfield $tiddler='$:/TemplateDéroulantLeftBar' indice='' /> <$action-setfield $tiddler='$:/TemplateDéroulantLeftBar' contenu='' /> </$button> </$reveal> </$reveal> </$set>
\define menuTitle() $(menu)$ \end Nom du menu<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantNavBar' field='menu-title' placeholder='e.g. Accueil'/> Rang<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantNavBar' field='rank' placeholder='Ordre dans le menu (e.g. 1,2...)'/> <$set name=menu value={{$:/TemplateDéroulantNavBar!!menu-title}}> Contenu du menu :<$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantNavBar' field='contenu' tag='textarea' placeholder='Un espace entre les lignes pour un contenu vertical, sans espace pour un contenu horizontal.'/> <span style="color:#ff3300">*</span> <span style="font-size:0.8em;font-style:italic;font-weight:bold">Champs obligatoires</span> <$reveal type='nomatch' state='$:/TemplateDéroulantNavBar!!rank' text=''> <$reveal type='nomatch' state='$:/TemplateDéroulantNavBar!!menu-title' text=''> <$button>Créer le menu <$action-setfield $tiddler='$:/TemplateDéroulantNavBar' title=<<menuTitle>>/> <$action-setfield $tiddler='$:/TemplateDéroulantNavBar' menu-title='' /> <$action-setfield $tiddler='$:/TemplateDéroulantNavBar' rank='' /> <$action-setfield $tiddler='$:/TemplateDéroulantNavBar' rank='' /> <$action-setfield $tiddler='$:/TemplateDéroulantNavBar' contenu='' /> </$button> </$reveal> </$reveal> </$set>
\define menuTitle() $(menu)$ \end Nom du menu<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantSideBar' field='menu-title' placeholder='e.g. Accueil'/> statut<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantSideBar' field='statut' placeholder='Ordre dans le menu (e.g. 1,2...)'/> <$set name=menu value={{$:/TemplateDéroulantSideBar!!menu-title}}> Contenu du menu :<$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateDéroulantSideBar' field='contenu' tag='textarea' placeholder='Un espace entre les lignes pour un contenu vertical, sans espace pour un contenu horizontal.'/> <span style="color:#ff3300">*</span> <span style="font-size:0.8em;font-style:italic;font-weight:bold">Champs obligatoires</span> <$reveal type='nomatch' state='$:/TemplateDéroulantSideBar!!statut' text=''> <$reveal type='nomatch' state='$:/TemplateDéroulantSideBar!!menu-title' text=''> <$button>Créer le menu <$action-setfield $tiddler='$:/TemplateDéroulantSideBar' title=<<menuTitle>>/> <$action-setfield $tiddler='$:/TemplateDéroulantSideBar' menu-title='' /> <$action-setfield $tiddler='$:/TemplateDéroulantSideBar' statut='' /> <$action-setfield $tiddler='$:/TemplateDéroulantSideBar' contenu='' /> </$button> </$reveal> </$reveal> </$set>
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cocher la case pour afficher la barre de navigation a pour effet d'ajouter le tag `$:/tags/Stylesheet` au tiddler feuille de style [[$:/cssNavBar]]. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Décocher la case pour supprimer la barre de navigation a pour effet de supprimer le tag `$:/tags/Stylesheet` au tiddler feuille de style [[$:/cssNavBar]]. Le contenu de la barre reste cependant affiché. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Feuille de style : [[$:/cssNavBar]]
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cocher la case affichera le contenu de la barre de navigation. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Décocher la case ôtera le contenu de la barre de navigation, mais pas la barre elle-même. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Tiddler associé : [[$:/NavBarContent]] tagué `$:/tags/TopLeftBar` présent ou ôté suivant que l'on demande ou pas l'affichage de son contenu.
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cliquer sur l'indicateur de couleur et choisir une couleur dans le panel choix de couleurs proposé. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Si aucune de ces couleurs ne convient, il est possible d'en choisir une particulière en indiquant sa correspondance hexa-décimale dans la colonne Red, green, blue. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Feuille de style : [[$:/cssNavBar]] <button class="btn btn-error btn-sm"><i class="icon icon-stop"></i></button> Sans couleur de fond attribuée, la barre est transparente.
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Livrée en standard à 40px, elle peut être librement agrandie, dans le cas, par exemple où vous souhaitez y intégrer un bandeau large. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Feuille de style associée : [[$:/cssNavBar]] <button class="btn btn-error btn-sm"><i class="icon icon-stop"></i></button> Veiller à modifier également la taille de la [[Story Top Position|$:/themes/tiddlywiki/vanilla/metrics/storytop]]
<<doc>> ;{{!!caption}} <i class="icon icon-forward"></i> Cocher la case pour afficher la bordure. <i class="icon icon-forward"></i> Feuille de style associée : [[$:/cssNavBar]]
<<doc>> <i class="icon icon-forward"></i> Ajouter une image de fond. <i class="icon icon-forward"></i> Feuille de style associée : [[$/cssPageBackgroundImage]] <i class="icon icon-forward"></i> Source : https://www.svgbackgrounds.com/#flat-mountains
<<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Afficher le titre du wiki dans la SideBar
<<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Afficher le sous-titre du wiki dans la SideBar
<<doc>> *👉 Vous devez installer la macro [[StickyNotes|https://prolegomenes.github.io/learn/Learn225117.html#Sticky notes]] pour que cette option soit prise en compte.
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
<<doc>> Si vous souhaitez ôter l'onglet "Contrôles" du panneau de contrôle pour ne la conserver que dans la ~SideBar, veuillez cocher la case à cocher ci-après (conserver) ou la décocher (retirer) <<rojo "👉 ''Attention!'' : Ne décochez pas en même temps les cases onglet dans la sidebar ET dans panneau de contrôle, car dans ce cas l'onglet n'apparaîtra nulle part! ">>
<<doc>> <i class="icon icon-forward"></i> Indiquer ici la largeur que doit occuper la ~SideBar. : ⚠ Attention : Ce paramètre n'est pris en compte que si la ligne `Sidebar layout` dans la table `Appearance -> Theme Tweaks` est en position ''fluid story-fixed sidebar''.
<<doc>> ''Indépendamment'' des options de paramétrages choisies, il est possible de cacher la ~SideBar à l'ouverture du wiki. <i class="icon icon-forward"></i> Pour obtenir la ~SideBar cachée à l'ouverture de votre wiki, renseignez son contenu (le champ text) à `yes` <i class="icon icon-forward"></i> Position actuelle : {{$:/config/HideSidebarOnStartup}}
<<doc>> 👉 Cet onglet contient le bouton de création des menus du wiki
<<doc>> 👉 Bouton en haut et à droite de l'écran.
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
<<doc>> 👉 Il y a deux manières de cacher le contenu de la ~SideBar, soit en la couvrant par la Story River (C'est l'objet de ce paramètre), soit en l'ôtant, c'est l'objet du paramètre suivant.
<<doc>> 👉 La création des menus s'effectue dans l'onglet "''Menus''" de la ~SideBar !!Process de création des menus Il s'agit de la première étape de la création de menus, consistant à indiquer à quel endroit les menus doivent se placer. !!!Solution 1 La solution actuelle n'est pas celle mise en place dans un premier temps puisque je n'arrivais pas a implémenter le choix via deux boites de dialogue déroulantes ([[voir ce post|https://forum.tiddlywiki.fr/t/ouvrir-un-tiddler-en-fonction-de-la-valeur-de-champs/503?u=prolegomenes]] Dans un premier temps une seule boite de dialogue avec les six solutions possibles via le plugin $:/plugins/inmysocks/WidgetsInvokeActions. On peut voir cette solution qui reste disponible [[ICI|$:/ChoixMenu(old)]] !!Solution 2 Le choix se passe en deux temps; le premier demande le type de menu choisi, Simple ou déroulant, le second demande son emplacement, ~NavBar, ~SideBar ou ~LeftBar Une variante dans la fonction d'appel: ``` \define myway(par1 par2) <$button> <$action-sendmessage $message="tm-new-tiddler" title="$par1$$par2$" /> Créer </$button> \end ``` Ici, les tiddlers de choix d'emplacement des menus sont bien appelés mais s'ouvrent en mode ''édition''. Dans cette variante, les tiddlers s'ouvrent en mode ''visualisation'' ``` \define myway(par1 par2) <$button> <$action-navigate $to="$par1$$par2$"/> Ouvrir </$button> \end ```
<<doc>> Deux positions concernant la ~SideBar sont prévues en standard dans ~TiddlyWiki : 👉 Dans Panneau de contrôle <i class="fa fa-arrow-right"></i> Apparence <i class="fa fa-arrow-right"></i> Réglages du thème <i class="fa fa-arrow-right"></i> Agencement de la barre latérale #Fluid Story / Fixed ~SideBar (Déroulé Extensible / Barre latérale Fixe). #Fixed Story / Fluid ~SideBar (Déroulé Fixe / Barre latérale extensible) La présence de la barre latérale gauche réduit logiquement l’extension de la ~SideBar si cette dernière est fixée en position Fixed Story / Fluid ~SideBar
<<doc>> En l'état, ce wiki ne gère qu'un seul utilisateur : l'Administrateur du site. Il est prévu ultérieurement de pouvoir également gérer deux niveaux d'administration. [[Voir ébauche|$:/plugins/TWaddle/tw-admin/content]]
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end @@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle Admin|$:/TemplateAdmin]]<<f-i edit 'x5'>> </div> </div> </div> @@ <<doc>> ;<<text "👉 Cette page permet de gérer la connexion/déconnexion au site et les paramètres de l'administrateur du wiki." "red" "">> ;<<text "👉 En l'état actuel du développement, la déconnexion supprime tous les droits et la Connexion attribue tous les droits. Ce comportement devrait être modulé ultérieurement avec la mise en place additionnelle d'un droit d'accès ~SuperAdmin." "blue" "">>
<<doc>> 👉 Il s'agit du tiddler $:/core/ui/ViewTemplate/blackline Ce tiddler doit être tagué `$:/tags/ViewTemplate` pour que ce paramètre soit pris en compte.
<<doc>> <div class="tw-admin-content"> Basé sur le plugin de Mat [ext[http://tw-admin.tiddlyspot.com/]]. 👉 ''TW Admin'' ajoute un {{$:/plugins/TWaddle/tw-admin/icon}} bouton qui ouvre, depuis la SideBar, une fenêtre en Popup contenant les paramètres de contrôle de l'Administrateur. 👉 L’objectif est de pouvoir s'en servir comme outil de super contrôle réservé à l'administrateur. Cette partie sera développée dans une prochaine version. <i class="icon icon-forward"></i> En cochant la case à cocher, le bouton sera ajouté à la liste des boutons de contrôle de la SideBar. <i class="icon icon-forward"></i> En décochant la case à cocher, le bouton sera retiré de la liste des boutons de contrôle de la SideBar. [[Voyez l'exemple de paramétrages utilisés sur ce wiki|$:/tw-admin/content]] que vous pouvez modifier suivant vos besoins ou vos idées. <style> .tw-admin-content { /*margin:0 auto;*/ width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: 1em; margin: auto .4em -.7em .5em; fill:crimson; } </style>
<<doc>> 👉 En principe, quitter le wiki via le module de déconnexion à notamment pour effet de couvrir les barres latérales. Il est possible d'éviter la couverture de la ~SideBar en cochant cette option. À la réouverture du wiki, la ~SideBar reste cependant couverte.
<<doc>> 👉 Vous pouvez visualiser le contenu de la barre latérale gauche (~SideBar) directement depuis un tiddler. Cette option est utile si vous choisissez le gabarit "[[Aucune barre|$:/Page Blanche]]" c'est à dire une présentation en ligne ne contenant aucune barre de menu.
<<doc>> Ce paramètre concerne la couleur donnée aux menus déroulants créés via le gestionnaire de menu de la ~NavBar. *➡ Couleur de fond du titre de menu : Couleur du titre seul *➡ Couleur de fond du container de menu : couleur du contenu d'un titre Ces couleurs seront affectées à tous les menus de cette nature quel que soit leur emplacements. Initialement placés dans la Barre de Navigation, ces menus peuvent être placés également ailleurs : Dans la ~LeftBar ou dans la ~SideBar. ⚠ Attention : Sans affectation d'une couleur de fond, la barre est transparente.
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Spectre : la zone de menu est divisée en zones. Chacune peut être dotée d'une couleur spécifique. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> CSS associé : [[$:/cssNavbarCols]]
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> @@color:red;Attention! : Cette combinaison de positionnement fonctionne correctement si Panneau de contrôle -> Apparence -> Réglages du thème -> Agencement de la barre latérale est en position ''Fluid Story / Fixed ~SideBar''@@ Pour empêcher la couverture des barres par la Story River, aller dans Panneau de contrôle -> Contrôles -> [[Contrôle Interface|$:/Interface]] -> et cochez le bouton "''Empêcher la story River de recouvrir les barres latérales''" @@color:#339900;Pour conserver une visibilité optimale sur ce wiki (et notamment en présence active de la barre de menu gauche), il est conseillé de conserver le paramètre "Agencement de la barre latérale" dans le panneau de contrôle en position "''Déroulé fixe, Barre latérale extensible''".@@ <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> CSS associé : [[$:/centraliser]] |Position actuelle|<<text "{{$:/centraliser!!tags}}" "white" "white">>| {{$:/centraliser!!tags}}
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Affiche (yes) ou masque (none) le titre du wiki. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> CSS associé : [[$:/centralisation/css]] |Position actuelle|<<text "{{$:/centralisation/css!!site-title}}" "white" "crimson">>|
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Affiche (yes) ou masque (none) le sous-titre du wiki <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> CSS associé : [[$:/centralisation/css]] |Position actuelle|<<text "{{$:/centralisation/css!!site-subtitle}}" "white" "crimson">>|
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Affiche ou masque le pied de page. Le pied de page dispose d'un bouton permettant de remonter au début de la page. |Position actuelle|<<text "{{$:/PageFooter!!tags}}" "white" "white">>|
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> La couleur attribuée au bouton est également répercutée sur les textes. (Comportement à modifier dans une prochaine version). <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> CSS associé : [[$:/PageFooter]] |Couleur actuelle|<<text "{{$:/cssFooter!!button-color}}" "white" "crimson">>|
<<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cliquez sur l'icône Palette et choisissez une des palettes de couleur proposée. <button class="btn btn-error btn-sm"><i class="icon icon-stop"></i></button> @@color:red;Attention :@@ Le panneau s'ouvre en haut du tiddler. Si vous ne le voyez pas au clic, remonter en haut de la page.
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
;{{!!caption}} 👉 Les boutons de contrôle Tiddlers (Edit toolbar) peuvent soit rester visibles en permanence (case décochée) ou bien visibles au passage de la souris (case cochée) <div class="note"> Noter que même si ces boutons ne sont pas visibles, ils ne libèrent pas pour autant d'espace supplémentaire destiné au titre du tiddler. </div> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> L'en-tête (ou slogan) est un tiddler affiché de manière ''permanente en haut de la Story River'' tout comme le pied de page l'est en bas. Cet en-tête contient trois informations : *Le Titre du wiki *Le Sous-Titre du wiki *Le lien d'accès au billet à consulter en premier : [[À Propos de...|À Propos de TiddlyLearn]] Titre et Sous-Titre peuvent être supprimés individuellement. Le présent paramètre aura pour effet, s'il est décoché de supprimer totalement l'en-tête. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> CSS associé : [[$:/SiteHeader]] |Position actuelle|<<text "{{$:/SiteHeader!!tags}}" "white" "white">>|
<<doc>> Frame propose 9 gabarits (Templates) Pré-Paramétrés, en fonction de vos objectifs: Aucune barre de menu, une, deux ou trois barres etc. Ces pré-paramétrages incluent leurs paramètres collatéraux.
<<doc>> Cette configuration rendra le wiki ''vierge de toute barre de menu''. Les accès au menu principal (Obligatoirement ~SimpleSideBar et/ou ~DéroulantSideBar), à la création de tiddlers et à la sauvegarde du wiki se font par ajout de boutons de contrôle directement dans les tiddlers. Cette configuration convient à une présentation du wiki sur de petits écrans Tablettes et smartphones.
;{{!!caption}} [ ] Les listes déroulantes (Tags, Recherche...) sont stoppées en bas de page, sans qu'une barre latérale de défilement ne permettent d'en voir la liste complète. Ce comportement ne survient qu'à l'intérieur du plugin Summary: `<$details summary="Navbar - Roadmap">{{$:/doc-user-xxx}}</$details>`
;{{!!caption}} Le chemin est structuré autour de la ''hiérarchie des tags''. Pour activer ou désactiver cette option, cliquez sur le bouton "Afficher le fil sur chaque Tiddler". <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Via le tiddler [[$:/core/ui/ViewTemplate/titleTitle]] (tagué $:/tags/ViewTemplate). Par la classe `<div class="toast text-center toast-xxx">`où ''xxx'' peut prendre les valeurs `primary`, `success`, `warning`, `error`. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Et où les `<span class="Hn text-yyy"...</span>` ''Hn'' peut prendre les valeurs H1 à H6 et les ''yyy'' peuvent prendre les valeurs `primary`, `secondary`, `success`, `warning`, `error`.
;{{!!caption}} 👉 En général on attribuera au fond des menus la même couleur que celle du fond de la barre de menus. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end <<doc>> <<text "Avertissement : Fonctionnalité indisponible." "#FFFFFF" "crimson">> 👉 La ~SideBar peut être déplacée à gauche, avec cependant un impératif: L'agencement de la barre latérale du Panneau de contrôle <i class="icon icon-forward"></i> Apparence <i class="icon icon-forward"></i> Réglage du thème DOIT être positionné en "Déroulé extensible/Barre latérale fixe". @@color:#d40000;Le gabarit ''~SideBar Seule'' inclus cet impératif. En utilisant ce gabarit, vous n'avez donc aucune action particulière à effectuer.@@ Pour déplacer la ~SideBar de la droite vers la gauche, cocher la case "Afficher la ~SideBar à gauche. Pour la replacer à droite, décocher cette case.
;{{!!caption}} 👉 Le contenu de la SideBar est vidé, mais elle n'est pas couverte par la StoryRiver (Voyez le paramètre précédent). <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 C'est à dire la seconde ligne, celle indiquant la date de création et sa dernière modification. Il reste encore une modification à effectuer puisque ce paramètre supprime également les boutons de contrôle. Il faut séparer les deux. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Supprime la troisième ligne de l'en-tête, montrant le(s) tag(s) associé(s) au tiddler. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 En décochant cette case, il n'est plus possible de passer en mode saisie. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Le plugin de Danielo, encryptTiddler doit être installé.
;{{!!caption}} 👉 Ajoute la possibilité de créer un nouveau tiddler directement depuis un tiddler. Cette option est utile si vous choisissez le gabarit "[[Aucune barre|$:/Page Blanche]]" c'est à dire une présentation en ligne ne contenant aucune barre de menu. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Il reste un CSS qui tient la route à faire. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Affiche ou supprime un espace entre les tiddlers et les bords gauche et droit du wiki. Voir le gabarit [[AKA ~TiddlyOueb|$:/TiddlyOueb]] pour un exemple d'utilisation de ce paramètre. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Affiche ou supprime un espace entre les tiddlers. Voir le gabarit [[AKA ~TiddlyOueb|$:/TiddlyOueb]] pour un exemple d'utilisation de ce paramètre. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Les quatre angles sont arrondis. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} ;👉 Position à 600 pixels Cette taille possède une caractéristique particulière : vous pouvez, pendant la lecture d'un tiddler, modifier la situation d'une ou des deux barres latérales, sans pour autant que le nombre de caractères à la ligne soit changé. Pratique pour une lecture continue sans gêne visuelle. Exemple en image : [img[$:/doc-user-011]] [img[$:/doc-user-012]] [img[$:/doc-user-018]] [img[$:/doc-user-037]] Les césures de passage à la ligne restent identiques dans les quatre positions. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end @@text-align:right; <div class="column"> <div class="hero hero-sm bg-secondary"> <div class="hero-body"> !![[Contrôle Surface|$:/TemplateWidth]]<<f-i airplay 'x5'>> </div> </div> </div> @@ ;<<text "👉 Gestion de l'espace alloué au contenu des tiddlers en fonction du positionnement des barres latérales." "red" "">> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Dans le cas ou la ~SideBar est ouverte (visible) sa taille prédomine (supplante) la taille allouée aux tiddlers sans cependant que celle-ci soit inférieure à la taille minimum de 600px. *<i class="fa fa-arrow-right"></i> Par exemple une surface de lecture allouée de 900px ou de 1000px ne sera prise en compte que si la ~SideBar est couverte. Si elle est ouverte la surface de lecture imposée sera de 600px. *<i class="fa fa-arrow-right"></i> Ou encore si la surface de lecture allouée est de 600px, cette surface restera identique que la ~SideBar soit ouverte ou couverte. 👉 La barre latérale gauche ne fait que déplacer les tiddlers et la ~SideBar sur la droite. Cependant, selon la largeur qui lui sera allouée, il peut y avoir une incidence sur la surface de lecture des Tiddlers. Il va sans dire que ces paramètres sont sans effet sur de petits écrans de types tablette ou smartphone <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> <<< *[[Details|https://tid.li/tw5/plugins.html#DetailsWidget]] Telmiger *[[TiddlyOueb|https://tiddlyoueb.aerobaticapp.com/#Wiki]] Svink <<< *👉 Le widget de ''Telmiger'' largement utilisé surce site. *👉 ''Svink'' pour la partie connexion -utilisateur, mais surtout sans qui ce wiki n'aurait probablement jamais vu le jour. Cette production est en quelque sorte une réponse factuelle à toutes ces passionnantes discussions que nous avons eu ensemble sur ce forum.
;{{!!caption}} ''~TiddlyFrame'' fournis les outils nécessaires à l'obtention d'un cadre visuel général dépassant la seule barre de menu de droite (~SideBar} disponible sur la version standard de Tiddlywiki. <<pslider "À qui s'adresse TiddlyFrame ?" "$:/doc-user-113">> <<pslider "Objectifs de TiddlyFrame" "$:/doc-user-114">> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> La documentation de ce wiki est ''consultable'' de deux manières différentes : *👉 <<rojo "Contextuelle">>, Dans la SideBar <i class="fa fa-arrow-right"></i> l'onglet [[Paramètres]] (<i class="icon icon-apps" alt="Paramètres" title="Paramètres"></i>). #À la ligne, à la marge de chaque option de paramétrage, un bouton <i class="fa fa-plus-circle"></i> procure une aide précise sur le paramètre étudié. #Éventuellement, en bas de tableau, peuvent être fournies des informations générales supplémentaires concernant l'ensemble de la page de contrôle étudiée. 👉 <<rojo "En ligne">>, ~SideBar <i class="fa fa-arrow-right"></i> Onglet [[Sommaire|TableOfContents]] <i class="icon icon-menu" alt="Sommaire" title="Sommaire"></i>, Titre lien [[Paramètres|$:/Frame]]. Pour supprimer la documentation, voir [[Supprimer la documentation|$:/doc-user-068]]
Vous pouvez supprimer la documentation embarquée. <<rojo "''Attention !'' Suppression physique des tiddlers de documentation. Cette action est définitive">> <div align="center"> <$button class="btn btn-lg btn-error"> <$action-deletetiddler $filter="[prefix[$:/doc-user]]"/> <$action-deletetiddler $filter="[tag[$:/Paramètres]]"/> <$action-deletetiddler $tiddler=""/> 👉 Supprimer la documentation </$button> </div>
<<doc>> <mark class="roundedmark">La gestion des espaces</mark> consiste à définir le positionnement et la répartition des zones d'occupation des données sur l'écran: :<i class="icon icon-forward"></i> Barre latérale et de navigation, :<i class="icon icon-forward"></i> Zone centrale sur lesquelles viendront s'organiser ces données. :<i class="icon icon-forward"></i> Ajout et retrait d'éléments, en s'assurant du maintient correct de la disposition des données. Cette gestion est assurée par les contrôles suivants: :👉 [[Contrôle de la Barre de Navigation|$:/TemplateNavBar]] :👉 [[Contrôle de la barre de menu droite|$:/TemplateSideBar]] :👉 Contrôle de la ~StoryRiver, c'est à dire l'espace principal de saisie de vos données
<<doc>> <mark class="roundedmark">La gestion des Menus</mark> consiste à affecter aux emplacements dédiés la structure adéquate pour accueillir les différents menus et informations. Les entrées de menus simples (liens uniques) ou déroulantes sont positionnés de manière indépendante via le [[gestionnaire de menu|$:/ButtonNewMenu]] sur la barre de navigation (~NavBar) et la barre de navigation de droite (~SideBar). La création de menu simples présente la particularité de pouvoir ouvrir simultanément plusieurs tiddlers. Cette caractéristique sera conservée mais la prochaine version conduira à ''fusionner'' les tiddlers appelés au lieu de les ''additionner'' comme c'est le cas actuellement. <$details summary="Plus de détails"> La suppression possible de l'espacement entre les tiddlers et des en-têtes de tiddlers donne l'illusion de la fusion. De même une meilleure adaptation au mode ~ZoomIn est à l'étude, cette version contenant quelques fonctions incompatibles avec ce mode de visualisation qui est pourtant plus proche des standards du web (un tiddler = une page) </$details>
<<doc>> <mark class="roundedmark">La gestion des données</mark> *👉 [[Contrôler les paramètres généraux|$:/TemplateInterface]] *👉 [[Contrôler la gestion de vos tiddlers|$:/TemplateTiddler]] *👉 [[Contrôler tailles, couleurs et polices utilisées|$:/Polices-Alignements]] *👉 [[Contrôler la présentation visuelle de vos contenus|$:/TemplateWidth]] *👉 [[Contrôler la forme et la présentation des menus|$:/TemplateMenu]]
<<doc>> La <mark class="roundedmark">Gestion des droits</mark> via un système de Connexion/Déconnexion efficace qui gère les droits des différents types d'utilisateurs (Administrateurs, Rédacteurs et Visiteurs). Cette section est en cours de développement, ''n'est pas achevée et fera l'objet d'une future mise à jour de ce wiki''. *👉 [[Contrôler l'administration du site|$:/TemplateAdmin]]
;{{!!caption}} Ce wiki est livré libre d'accès, c'est à dire que le module de gestion d'accès est désactivé. Vous pouvez l'activer de différentes façons: #En quittant le wiki via le menu Administration -> Déconnexion, ou par le bouton "Déconnexion Admin" ({{$:/core/images/right-arrow}}) qui se trouve dans la ~SideBar. #Via l'onglet Plus -> ''Administration'' qui se trouve dans la SideBar et en cliquant sur le lien "Activer le mode lecture". À la réouverture de votre wiki, un login et mot de passe vous sera demandé, Toute sortie du wiki par sauvegarde standard ({{$:/core/images/save-button}}) vous libère à la réouverture du module de gestion d'accès. ''Le programme vous laisse donc libre de vos choix en la matière.'' <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Le système de login est appelé par le menu Administration -> Connexion. Un login + Mot de Passe sont réclamés pour accéder aux options de paramétrage accessibles seulement à l'administrateur. Le passage du mode web au mode admin est effectué par le tiddler $:/admin/connect/Buttons/mode-admin, Il positionne le switch $:/admin/switch à la position admin. <<rojo "La connexion peut également se faire en ajoutant `#admin` à la fin de l'URL puis en cliquant sur le bouton `Connexion`.">> Les actions provoquées par ce système de gestion des droits sont également gérables manuellement dans le Panneau de contrôle, onglet [[$:/Template]]. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Connexion et Déconnexion agissent en + et - (Montre/Cache) sur les éléments de contrôle. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} #$:/admin: #$:/admin/connect/Buttons/mode-admin : #$:/admin/Buttons/mode-web : <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Ne pas confondre le [[bouton de déconnexion|$:/admin]] et l'[[icône de déconnexion|$:/admin/Buttons/mode-web]]. L'icône est une répétition du lien Déconnexion du menu Administration, mais se trouve dans la ~SideBar. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Bouton de connexion donnant l'accès au mode Administrateur. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} La sortie via le bouton de déconnexion limite les capacités du wiki. Généralement utilisé avant une mise en ligne limitant les visiteurs dans leur capacité à modifier tout ou partie des paramètres et/ou des données du wiki. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Ce menu est présent dans la barre de navigation. Vous pouvez le placer ailleurs en recopiant le code ci-dessous à l'endroit choisi : ``` {{$:/Administrateur}} ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> Cette configuration ne comprend que la seule Barre de navigation. Le menu approprié sera ~SimpleNavBar et/ou ~DéroulantNavBar. Cette configuration permet de conserver un espace maximum pour la ~StoryRiver.
;{{!!caption}} Pour les utilisateurs de ~TiddlyOueb, voici un gabarit reproduisant le template de la version 3. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Cette configuration dispose d'une barre de navigation et d'une barre latérale droite. Les menus appropriés seront ~SimpleNavBar et/ou ~DéroulantSNavBar, ainsi que ~SimpleSideBar et/ou ~DéroulantSideBar. La barre est placée à droite. Utilisez les boutons ci-dessous pour en inverser le sens. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> ;{{!!caption}} <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Affiche ou supprime le titre des Tiddlers. Les boutons de contrôle adjacents demeurent visible. Voir le gabarit [[AKA ~TiddlyOueb|$:/TiddlyOueb]] pour un exemple d'utilisation de ce paramètre.
;{{!!caption}} 👉 Permet de sauvegarder le wiki depuis un tiddler. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end @@text-align:right; <div class="column"> <div class="hero hero-sm bg-secondary"> <div class="hero-body"> !![[Contrôle Polices|$:/Polices-Alignements]]<<f-i target 'x5'>> </div> </div> </div> @@ ;<<text "👉 Cet écran concerne le paramétrage des balises de titre H1 à H5 et de vos contenus. Vous y indiquerez les choix opérés en ce qui concerne la police la taille et la couleur." "red" "">> ;Les paramètres de polices actuels sont les suivants : <ul class="step"> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="40px"><h1>H1</h1></a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="32px"><h2>H2</h2></a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="28px"><h3>H3</h3></a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="24px"><h4>H4</h4></a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="20px"><h5>H5</h5></a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="16px"><h6>H6</h6></a> </li> </ul> Ne pas oublier d'importer le tiddler CSS $:/cssTiddlerPolices <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Ce wiki contient 5 plugins dont 2 sont obligatoires et 3 sont facultatifs : |$:/plugins/telmiger/details|~DetailsWidget| OBLIGATOIRE | |$:/plugins/TWaddle/LeftBar|~LeftBar - a menu type sidebar, on the left| OBLIGATOIRE | |$:/plugins/wikilabs/link-to-tabs|Internal links are added to tabs if selected| FACULTATIF | |$:/plugins/wikilabs/remove-states|Remove all state tiddlers. Simple UI| FACULTATIF | |$:/languages/fr-FR|Français (France)| FACULTATIF | <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} ;Notification de mise à disposition et organisation des mises-à jour. La gestion des mises-à-jour sont effectives à compter de la mise en ligne de la version 2.2.0. Chaque nouvelle version est mise en ligne à l'adresse https://prolegomenes.github.io/learn/Frame.html et s'appuie sur la version 5.1.17 de ~TiddlyWiki. ;Gestion des mises-à-jour ultérieures. Le millésime de la première mise à jour sera l2.2.1, suivi de 2.2.2 etc... Les mises-à jour seront notifiées sur le [[forum TiddlyWiki|https://forum.tiddlywiki.fr/]] et livrées sous la forme de 3 fichiers .json compressés (ZIP) que vous devrez d'abord décompresser puis télécharger sur votre votre wiki: *~TiddlyFrame - Tiddlers exclus (tf0.json) *~TiddlyFrame - Main (tf1.json) *~TiddlyFrame - Tiddlers d'aide en ligne (tf2.json) *~TiddlyFrame - Fonts (tf3.json) 👉 Le fichier Tiddlers exclus (tf0.json) concerne les tiddlers embarqués lors d'une installation initiale qui ne doivent plus faire l'objet de mise à jour ultérieurement. Il s'agit de tiddlers de paramètres modifiables par l'utilisateur. Le fichier (tf0.json) ne fait donc pas partie des mises-à jour. 👉 @@color:red;Le fichier "Main" (tf1.json) doit ''obligatoirement'' être téléchargé".@@ 👉 Le téléchargement des fichiers d'aide (tf2.json) et polices (Fonts) (tf3) reste facultatif. Les Mise à jour sont globales. Elles ne sont pas successives : Une nouvelle version remplace la précédente quel que soit son millésime. ~TiddlyFrame est fusionné avec ~TiddlyWiki. Vous devez donc si c'est votre première utilisation, installer ce wiki et y appliquer ultérieurement les mises-à-jour. ~TiddlyFrame n'est pas un plugin, mais une application autonome. L'installation d'une nouvelle version doit d'abord être testée sur une <<rojo "COPIE">> de votre wiki, pas sur votre version en production. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 L'idée est de ''ne pas taguer directement'' les tiddlers inachevés (Encours) `task` et `done` mais de passer par un ''tiddler intermédiaire'' via le bouton `+ Encours` qui fera référence au Tiddler source. 👉 La création d'un nouvel Encours se matérialise par la création d'un nouveau tiddler dont le titre est `(T)->`. Faire suivre ce titre par le nom du tiddler source pour lequel il reste des travaux à réaliser. Par exemple (T)->[[TiddlyWiki Listing]] 👉 L'intérêt de cette solution réside dans la possibilité de visualiser dans un même endroit la liste précise et isolée des travaux restant à faire ou à finaliser. 👉 Lorsque les travaux à réaliser sont achevés, cliquer sur la case à cocher pour faire descendre la tâche de Travaux inachevés vers Travaux finalisés. 👉 Pour supprimer définitivement un tiddler de la liste des travaux finalisés on peut : #Soit supprimer le tiddler #Soit, pour en conserver la trace, lui ôter les deux tags `task` et `done` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Afficher l'onglet Recent <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> <i class="icon icon-forward"></i> À n'utiliser que si le plugin officiel "[[Comments|$:/plugins/tiddlywiki/comments]]" a été installé.
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> Ce bouton permet d'ouvrir les boutons de la SideBar dans une fenêtre PopUp en les supprimant (ou pas) de la SideBar.
<<doc>> #Que vous souhaitiez ''une structure simple mais efficace dédiée à la mise en ligne d'un site web sur smartphone'' ou au contraire avoir à disposition un ''cadre général doté d'une barre de navigation et de deux barres latérales'', cet outil est fait pour vous. #Au delà de cette composition, ce cadre vous offre également la possibilité d'organiser visuellement la présentation de vos textes.
<<doc>> Ce wiki poursuit deux objectifs : :👉 Le premier est de ''permettre la mise en ligne d'un site web'' simple mais disposant de suffisamment d'options pour qu'il s'approche des standards du web. :👉 Le second est de ''pouvoir changer le look de son wiki ''sans avoir besoin de faire grand-chose. On peut toujours changer de thème, bien qu'on n'en dénombre que peu, encore faut il qu'il corresponde à vos besoins. Sur ce point Frame propose un grand nombre de paramétrages supplémentaires
<<doc>> Occupe 100% de l'espace disponible
;{{!!caption}} Convient pour la lecture sur un moniteur 24 pouces <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Convient pour lecture sur un moniteur 17 pouces <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Convient pour lecture sur une tablette 10 pouces <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Largeur par défaut de TiddlyWiki <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} ~SideBar ouverte ou fermée => Surface de lecture à l'écran identique <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Cocher la case pour afficher les boutons de contrôle des Tiddlers et la décocher pour les supprimer. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Affiche ou supprime le bouton permettant de visualiser les tags affectés aux tiddlers. Ce paramètre s'applique à l'ensemble des tiddlers pas seulement au tiddler sur lequel il est appliqué. Il est équivalent au bouton que vous trouvez dans la SideBar, situé au dessus de la barre de recherche. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Affiche ou supprime le bouton permettant de visualiser les champs affectés aux tiddlers. Ce paramètre s'applique à l'ensemble des tiddlers pas seulement au tiddler sur lequel il est appliqué. Il est équivalent au bouton que vous trouvez dans la SideBar, situé au dessus de la barre de recherche. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Affiche ou supprime le bouton "Panneau de contrôle"aux boutons de contrôle. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Affiche ou supprime les bordures des tiddlers. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Au passage de la souris sur le tiddler, une ombre portée apparaît sur son pourtour. Les bordures peuvent de plus être enjolivées. [[Plus de détails sur ce billet|CSS ombre portée sur les bords de tiddler]] <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Justifie les textes de tous les tiddlers. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <i class="fa fa-arrow-right"></i> 0.1 => Totalement transparent; 0,9 opaque. La couleur sera alors celle indiquée dans "Couleur de fond du bloc tiddler". Dans la présente livraison, elle est blanche. Vous pouvez la changer. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ;{{!!caption}} <i class="fa fa-arrow-right"></i> |Position actuelle|<<text "{{Teaser list below story!!tags}}" "white" "crimson">>| <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> 👉 Referme les tiddlers temporaires restés ouverts.
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ;{{!!caption}} 👉 <<text "Non documenté" "crimson" "">> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ;{{!!caption}} 👉 <<text "Non documenté" "crimson" "">> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ;{{!!caption}} 👉 <<text "Non documenté" "crimson" "">> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ;{{!!caption}} 👉 <<text "This is defined in the tiddler [[$:/TemplateCss]], see [[About Advanced Settings]] for more information." "crimson" "">> On retrouve ici tous les tiddlers tagués [[$:/tags/Advanced Settings]] et [[Advanced Settings Category]]. Ils représentent les catégories de CSS traités et contiennent éventuellement des sous-catégories actives. Chaque nouvelle propriété ajoutée crée un nouveau Tiddler dont le nom sera par exemple [[.tc-site-subtitle Class Override]] si vous créez une ou des propriétés à la classe Site Subtitle. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Cocher la case pour voir la barre de recherche dans la SideBar, la décocher pour l'ôter. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 N/A <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 N/A <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 N/A <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 N/A <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 N/A <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 N/A <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> ;{{!!caption}} <i class="icon icon-forward"></i> La Story Top Position indique à quelle hauteur les contenus de la story river doivent apparaître à l'écran. <i class="icon icon-forward"></i> Paramètre associé : [[$:/themes/tiddlywiki/vanilla/metrics/storytop]]
<<doc>> ;{{!!caption}} <i class="icon icon-forward"></i> Choisissez la couleur de la bordure. <i class="icon icon-forward"></i> La couleur n'est modifiable que si la case "Afficher la bordure" est cochée. <i class="icon icon-forward"></i> Feuille de style associée : [[$:/cssNavBar]]
<<doc>> ;{{!!caption}} <i class="icon icon-forward"></i> Indiquer ici l'épaisseur de la bordure en px. <i class="icon icon-forward"></i> L'épaisseur de la bordure n'est modifiable que si la case "Afficher la bordure" est cochée. <i class="icon icon-forward"></i> Feuille de style associée : $:/cssNavBar
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ;{{!!caption}} ;<<text "👉 C'est ici un point de paramétrage important concernant la ''qualité visuelle'' de votre wiki." "red" "">> En fonction du statut des barres latérales (ouvertes ou cachées - Une barre ou deux barres - couvertes ou découvertes) la place centrale occupée par la story river sera différente. Et conséquemment l'espace occupé par le contenu textuel de vos tiddlers le sera également. Se pose donc la question de connaître quel espace optimal les textes doivent occuper. Par exemple, si vos deux barres latérales sont couvertes, les tiddlers et leur contenu occuperons la totalité de l'espace disponible, soit la pleine largeur de votre écran. C'est bien ou pas ? Il est difficile et fatiguant de lire un long texte s'étalant sur une grande largeur d'écran. En revanche un grand tableau de type "prévisions de trésorerie à un an", avec une colonne d'intitulé et une colonne pour chaque mois de l'année sera ridicule, ou illisible si la surface de présentation est trop étroite. Cette question est résolue par la possibilité d'attribuer la surface de lecture occupée par les Tiddlers ''quelque soit la taille de ces derniers''. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Fixez la largeur de la SideBar en pourcentage, px, em etc... <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 la couleur du fond peut être exprimée en ''Décimal RGB'', en ''Hexadécimal'', en ''code Hex'' ou en ''couleur nommée''. <i class="fa fa-arrow-right"></i> Cette règle s'applique ''aux surfaces occupées par les tiddlers'' uniquement; ils ne concernent pas la surface occupée par la ~StoryRiver. La ~StoryRiver est le contenant de tous les tiddlers. <i class="fa fa-arrow-right"></i> La couleur de fond générale peut être soit une couleur, soit une image. Dans ce dernier cas la transparence des tiddlers glissera vers une visibilité plus ou moins affichée ce dette dernière. <i class="fa fa-arrow-right"></i> Pour vous aider à convertir une couleur Hexa décimale en Décimale, vous pouvez par exemple le faire sur le site web http://www.proftnj.com/RGB3.htm mais il en existe bien d'autres également. <i class="fa fa-arrow-right"></i> La transparence ne produit effet qu'avec RGBA <i class="fa fa-arrow-right"></i> Les effet produits par la transparence sont plus spectaculaires lorsque le fond général est une image, mais ils donnent également de bons résultats sur un fond simplement doté de couleur (comme sur cette livraison). ;Règle CSS: Couleur Palette: ``` .tc-tiddler-frame { background-color: <<colour tiddler-background>>; } ``` Ou couleur Décimale RGB: ``` .tc-tiddler-frame { background-color: rgba(255, 255,255, 0); } ``` Ou couleur HEX: ``` .tc-tiddler-frame { background-color: #f4f4f4; } ``` Ou couleur nommée ``` .tc-tiddler-frame { background-color: white; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} La couleur de ce bouton est définie dans la palette de couleurs. Vous pouvez la modifier ici. Règle CSS : ``` .tc-page-controls svg.tc-image-save-button { fill: <<colour toolbar-save-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} La couleur de ce bouton est définie dans la palette de couleurs. Vous pouvez la modifier ici. Règle CSS: ``` .tc-page-controls svg.tc-image-options-button { fill: <<colour toolbar-options-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} Afficher/Supprimer le bouton Nouveau Tiddler. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} La couleur de ce bouton est définie dans la palette de couleurs. Vous pouvez la modifier ici. Règle CSS : ``` .tc-page-controls svg.tc-image-new-button { fill: <<colour toolbar-new-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> <div class="tw-admin-content"> Voir [[$:/doc-user-025]]. 👉 ''TW Admin'' ajoute un {{$:/plugins/TWaddle/tw-admin/icon}} bouton qui ouvre une fenêtre en Popup contenant les paramètres de contrôle de l'Administrateur. 👉 Ici, on ajoute ou l'on retire ce paramètre du panneau de contrôle, onglet "Paramétrages". [[Voyez l'exemple de paramétrages utilisés sur ce wiki|$:/tw-admin/content]] que vous pouvez modifier suivant vos besoins ou vos idées. <style> .tw-admin-content { /*margin:0 auto;*/ width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: 1em; margin: auto .4em -.7em .5em; fill:crimson; } </style>
;{{!!caption}} 👉 Règle CSS: ``` .tc-tiddler-controls button svg.tc-image-edit-button { fill: <<colour toolbar-edit-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Règle CSS: ``` .tc-tiddler-controls button svg.tc-image-info-button { fill: <<colour toolbar-info-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Règle CSS: ``` .tc-tiddler-controls button svg.tc-image-close-button { fill: <<colour toolbar-close-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Règle CSS: ``` .tc-tiddler-controls button svg.tc-image-delete-button { fill: <<colour toolbar-delete-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Règle CSS: ``` .tc-tiddler-controls button svg.tc-image-cancel-button { fill: <<colour toolbar-cancel-button>>; } ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Il y un problème sur ce parmètre qui ne fonctionne pas. Dans [[$:/core/ui/ControlPanel/Toolbars/EditToolbar]] le clic sur le bouton ok fonctionne. <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
;{{!!caption}} 👉 Règle CSS: ``` .tc-tiddler-controls button svg.tc-image-done-button { fill: <<colour toolbar-done-button>>; ``` <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<<doc>> <i class="icon icon-forward"></i> Ne supplante pas la couleurs des boutons ayant fait l'objet d'une mise en couleur individualisée.
<<doc>> <i class="icon icon-forward"></i> Il s'agit de la couleur des boutons non bordurés. Sans effet sur les boutons bordurés.
<<doc>> <i class="icon icon-forward"></i> C'est la couleur de fond de la page entière. <i class="icon icon-forward"></i> Origine : Palette ligne `<<colour page-background>>`
<<doc>> ;{{!!caption}} 👉 Agit sur la ligne de palette: ``` tiddler-controls-foreground ```
<<doc>> ;{{!!caption}} Ce paramètre fonctionne si et seulement si les boutons ne sont pas bordurés; autrement dit si Control-panel -> Settings -> Toolbar Button Style se trouve positionné à : ''Borderless''. 👉 Règle CSS: ``` ```
<<doc>> ;{{!!caption}} 👉 Il n'y a pas actuellement de moyen simple pour changer l'arrière-plan de la barre latérale (On ne peut dans le gestionnaire de palettes que changer les couleurs de premier plan). On peut toujours utiliser (C'est un exemple) cette feuille de style à chaque changement de couleur désiré: ``` <style> div.tc-sidebar-scrollable { <$set name="cssVar" filter= "[title[$:/state/sidebar]field:text[yes]]" value="linear-gradient(to right, transparent, #E6E6FA 50%);" emptyValue="" > background: <<cssVar>> </$set> } </style> ``` La valeur de la couleur gradient peut être une couleur nommée ou une couleur Hexa (lightblue ou #ccc par exemple) Voir feuille de style associée : [[$:/cssSideBarBackground]]
<<doc>> <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> 0% => Pas d'opacité. 100% => Opacité maximum. L'image de fond d'écran est conforme au degré d'opacité. <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> 0 => L'image de fond d'écran est couverte par la couleur de fond de la SideBar <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> 1 =>L'image de fond d'écran couvre la couleur de fond de la SideBar.
\define toc-caption() <$set name="tv-wikilinks" value="no"> <$transclude field="caption"> <$view field="fr-title"> <$view field="title"/> </$view> </$transclude> </$set> \end
\define .concat(1,2,3,4,5) $1$$2$$3$$4$$5$ \define .def(_) <dfn class="doc-def">$_$</dfn> \define .em(_) <em class="doc-em">$_$</em> \define .strong(_) <strong class="doc-strong">$_$</strong> \define .place(_) <code class="doc-place">$_$</code> \define .word(_) "$_$" \define .preamble(_) :.doc-preamble $_$ \define .note(_) @@.doc-note ;Note : $_$ @@ \end \define .tid(_) <code class="doc-tiddler">$_$</code> \define .tag(_) <code class="doc-tag">$_$</code> \define .field(_) <code class="doc-field">$_$</code> \define .value(_) <code class="doc-value">$_$</code> \define .op(_) <code class="doc-operator">$_$</code> \define .var(_) <code class="doc-var">$_$</code> \define .wid(_) <code class="doc-widget">$$_$</code> \define .attr(_) <code class="doc-attr">$_$</code> \define .param(_) <code class="doc-param">$_$</code> \define .mtitle(_) $_$ Macro \define .otitle(_) $_$ Operator \define .vtitle(_) $_$ Variable \define .link(_,to) <$link to="$to$">$_$</$link> \define .clink(_,to) <span class="doc-clink"><<.link """$_$""" "$to$">></span> \define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/> \define .dlink-ex(_,to) <a href="$to$" class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer"><<.def "$_$">></a> \define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/> \define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/> \define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> \define .olink(_) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$_$">>/> \define .olink2(_,to) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$to$">>/> \define .vlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.vtitle "$_$">>/> \define .vlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/> \define .wlink(to) <$macrocall $name=".link" _=<<.wid {{$to$!!caption}}>> to="$to$"/> \define .wlink2(_,to) <$macrocall $name=".link" _="$_$" to="$to$"/> \define .key(_) <span class="doc-key">$_$</span> \define .combokey(_) <$macrocall $name=".if" cond="$_$" then=<<.key '$_$'>>/> \define .keycombo(1,2,3,4) <<.combokey "$1$">><<.if "$2$" +>><<.combokey "$2$">><<.if "$3$" +>><<.combokey "$3$">><<.if "$4$" +>><<.combokey "$4$">> \define .tab(_) <span class="doc-tab">{{$_$!!caption}}</span> \define .sidebar-tab(_) <<.tab "$:/core/ui/SideBar/$_$">> \define .more-tab(_) <<.tab "$:/core/ui/MoreSideBar/$_$">> \define .info-tab(_) <<.tab "$:/core/ui/TiddlerInfo/$_$">> \define .controlpanel-tab(_) <<.tab "$:/core/ui/ControlPanel/$_$">> \define .advancedsearch-tab(_) <<.tab "$:/core/ui/AdvancedSearch/$_$">> \define .toc-tab() <<.tab "TableOfContents">> \define .example-tab(_) <span class="doc-tab">$_$</span> \define .button(_) <span class="doc-button">{{$:/core/ui/Buttons/$_$!!caption}}</span> \define .tip(_) <div class="doc-icon-block"><div class="doc-block-icon">{{$:/core/images/tip}}</div> $_$</div> \define .warning(_) <div class="doc-icon-block"><div class="doc-block-icon">{{$:/core/images/warning}}</div> $_$</div> \define .state-prefix() $:/state/editions/tw5.com/ \define .lorem() Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. \end \define .toc-lorem() This is an example tiddler. See [[Table-of-Contents Macros (Examples)]]. <<.lorem>> \end \define .example(n,eg,egvar:NO-SUCH-VAR) <div class="doc-example"> <$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> <$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/> <$codeblock code="""$eg$"""/> </$reveal> <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> <!-- allow an example to contain """ --> <$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/> <$codeblock code=<<$egvar$>>/> </$reveal> <$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state"> <$reveal state=<<.state>> type="nomatch" text="show"> <dl> <dd><$button set=<<.state>> setTo="show">Try it</$button></dd> </dl> </$reveal> <$reveal state=<<.state>> type="match" text="show"> <dl> <dd><$button set=<<.state>> setTo="">Hide</$button></dd> </dl> <blockquote class="doc-example-result"> <$reveal default="$egvar$" type="match" text="NO-SUCH-VAR"> $eg$ </$reveal> <$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR"> <<$egvar$>> </$reveal> </blockquote> </$reveal> </$list> \end <pre><$view field="text"/></pre>
\define wikitext-example(src) <div class="doc-example"> <$macrocall $name="copy-to-clipboard-above-right" src=<<__src__>>/> ``` $src$ ``` That renders as: $src$ ... and the underlying HTML is: $$$text/vnd.tiddlywiki>text/html $src$ $$$ </div> \end \define wikitext-example-without-html(src) <div class="doc-example"> <$macrocall $name="copy-to-clipboard-above-right" src=<<__src__>>/> ``` $src$ ``` That renders as: $src$ </div> \end \define tw-code(tiddler) <$codeblock language={{$tiddler$!!type}} code={{$tiddler$}}/> \end \define tw-code-link(tiddler) [[$tiddler$]]: <<tw-code $tiddler$>> \end
Résultat étonnant. Pour voir le résultat, retirer les balises de formatage. Une idée pour les mises-à-jour de TiddlyFrame ? ``` \define saveTiddlerFilter() [[$:/core]] [[$:/isEncrypted]] [[$:/plugins/tiddlywiki/fullscreen]] [[$:/themes/tiddlywiki/vanilla]] [[$:/themes/welford/phasersonkill]] [[$:/themes/welford/readonly]] [[$:/theme]] [[$:/plugins/tiddlywiki/codemirror]] [[$:/plugins/tiddlywiki/katex]] [[$:/plugins/tiddlywiki/highlight]] [[$:/plugins/welford/twexe]] [[$:/plugins/welford/htalink]] [[$:/plugins/welford/twpin]] [tag[blog]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \end \define savingEmpty() yes \end {{$:/core/templates/tiddlywiki5.html}} ```
<tr> <td> <$link to="$:/Empêcher la story River de recouvrir les barres latérales">Empêcher la story River de recouvrir les barres latérales</$link> </td> <td align="center"> <$checkbox tiddler='$:/centraliser' tag='$:/tags/Stylesheet' checked='$:/tags/Stylesheet' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int06" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int06" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int06" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int06" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int06" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-031}} </td> </$reveal>
<tr> <td> <$link to="$:/Enjoliver les bordures des tiddlers">Enjoliver les bordures des tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssTiddlersShadowBorder' tag='$:/tags/Stylesheet' checked='$:/tags/Stylesheet ' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal26" text="show"><$button set="$:/state/SampleRowReveal26" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal26" text="show"><$button set="$:/state/SampleRowReveal26" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal26" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-058}} </td> </$reveal>
<tr> <td> <$link to="$:/Espacement des lignes">Espacement des lignes</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssEditeur' field='line-height'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal36" text="show"><$button set="$:/state/SampleRowReveal36" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal36" text="show"><$button set="$:/state/SampleRowReveal36" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal36" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-141}} </td> </$reveal>
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAABILAAASCwAAAAAAAAAAAAA7EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/KSC5ACkguQA7EZz/OxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/ykguQApILkAOxGc/zsRnP87EZz/OxGc/zsRnP87EZz/OxGc/zsRnP8pILkAKSC5ADsRnP87EZz/MAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMAwAADAMAAAwDAAAMAwAAA==
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg width="130px" height="70px" viewBox="0 0 130 70" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"> <!-- Generator: Sketch Beta 3.2 (9961) - http://www.bohemiancoding.com/sketch --> <title>feather</title> <desc>Created with Sketch Beta.</desc> <defs></defs> <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage"> <g id="feather" sketch:type="MSArtboardGroup" stroke-width="1.5" stroke="#FFFFFF" fill="#000000"> <path d="M62.7545597,80.9293443 L62.7545597,91.4097889 C62.7545597,92.4644569 63.6105221,93.3204193 64.6651901,93.3204193 C65.719858,93.3204193 66.5758205,92.4644569 66.5758205,91.4097889 L66.5758205,80.9293443 L70.2404096,80.822349 C70.8161462,80.8057902 71.354944,80.5293857 71.7039525,80.0695606 L84.4414884,63.3324383 C84.9892025,62.6140413 84.9573587,61.6090497 84.366337,60.9263178 L78.959253,54.6696401 L84.014781,51.1438902 C84.5268299,50.7872391 84.8325308,50.2013125 84.8325308,49.5771732 L84.8325308,2.83933241 C84.8325308,2.42026748 84.6949654,2.01394008 84.4402147,1.68021663 L66.1835044,-22.240876 C66.1401967,-22.2981949 66.0803303,-22.3351337 66.0306539,-22.3873576 C65.9555025,-22.4663303 65.8841723,-22.5453031 65.7962833,-22.6115383 C65.7134893,-22.6726784 65.6230528,-22.7134385 65.53389,-22.7605674 C65.4689286,-22.7949588 65.4128834,-22.8420877 65.342827,-22.8688365 C65.187429,-22.9159654 65.0855288,-22.9287029 64.9836285,-22.9452617 C64.893192,-22.9605467 64.805303,-22.9822006 64.7148665,-22.9834743 C64.6244299,-22.9860218 64.5352672,-22.969463 64.4435569,-22.959273 C64.3365616,-22.9465355 64.2333876,-22.9350717 64.1302136,-22.9057753 C63.9951957,-22.8739315 63.9506143,-22.8344451 63.8945691,-22.8102438 C63.7939426,-22.7656624 63.6958636,-22.7198073 63.6041533,-22.6573934 C63.5264543,-22.6051695 63.4602192,-22.5440293 63.3927102,-22.4816154 C63.3417601,-22.4357603 63.2831674,-22.4039164 63.2373123,-22.3516925 L50.5354414,-8.03979708 C50.051415,-7.49335679 49.9202184,-6.7189146 50.1978967,-6.04382519 L53.0676635,0.926154503 L46.407206,0.926154503 C45.352538,0.926154503 44.4965756,1.78211692 44.4965756,2.8367849 L44.4965756,43.126885 C44.4965756,43.6121851 44.6812698,44.0783789 45.0124458,44.4324824 L50.8385947,50.65859 L44.7513263,61.2205549 C44.3666527,61.886728 44.4201504,62.7197629 44.8863442,63.3311646 L57.6238802,80.0682869 C57.9741624,80.5293857 58.5129602,80.807064 59.0886968,80.822349 L62.7545597,80.9293443 Z M75.0360919,52.7488197 C74.5915519,53.0583418 74.301136,53.5423682 74.2336271,54.0786184 C74.1661182,54.6161425 74.3291586,55.156214 74.6845359,55.5650889 L80.463556,62.2522953 L69.2163117,77.0303846 L66.5758205,77.1080835 L66.5758205,75.761726 L66.5758205,-15.4288417 L81.01127,3.48512548 L81.01127,48.5823717 L75.0360919,52.7488197 Z M54.5961679,49.0829568 L48.3178364,42.3740966 L48.3178364,4.74996281 L55.9208716,4.74996281 C56.5577484,4.74996281 57.1538651,4.43152441 57.5079686,3.90291666 C57.8620721,3.37303517 57.929581,2.70176702 57.6875678,2.1120191 L54.1860192,-6.39283368 L62.7558334,-16.0491597 L62.7558334,45.4056302 L56.7131463,40.6914681 C55.8788377,40.0418538 54.6789618,40.190883 54.031895,41.0226441 C53.3822807,41.8544052 53.5300361,43.0555548 54.363071,43.7038954 L62.7571072,50.2522626 L62.7571072,65.3844554 L56.7144201,60.6715671 C55.8801115,60.0219527 54.6802356,60.1709819 54.0331688,61.002743 C53.3835544,61.8345041 53.5313099,63.0356538 54.3643447,63.6839943 L62.7583809,70.2310878 L62.7583809,75.7629997 L62.7583809,77.1093573 L60.116616,77.0316583 L48.7012362,62.0319359 L54.8572873,51.3425957 C55.2763523,50.6140087 55.1706307,49.6969061 54.5961679,49.0829568 Z" sketch:type="MSShapeGroup" transform="translate(64.664190, 35.168341) rotate(90.000000) translate(-64.664190, -35.168341) "></path> </g> </g> </svg>
{{$:/FichiersContrôles||caption}}
.image-float-right { float: right; text-align: center; padding: 0.5em 0 1em 1em; } .image-float-left { float: left; text-align: center; padding: 0.5em 1em 1em 0; } .image-center { margin-left: auto; margin-right: auto; text-align:center; } .image-text:after, .clearfix:after { content: ""; display: table; clear: both; }
\define image-left(name, width:"33%", tooltip, caption) <div class="image-float-left" style="width:$width$"> [img width="100%" [$tooltip$|$name$]] $caption$ </div> \end \define image-right(name, width:"33%", tooltip, caption) <div class="image-float-right" style="width:$width$"> [img width="100%" [$tooltip$|$name$]] $caption$ </div> \end \define image-center(name, width:"33%", tooltip, caption) <div class="image-center" style="width:$width$"> [img width="100%" [$tooltip$|$name$]] $caption$ </div> \end
/*! * FontAwesome 4.7.0 pour TiddlyWiki préparé par @naudinsylvain le 26/10/2016 * http://sylvain.naud.in * https://forum.tiddlywiki.fr * Howto : base64 -w 0 fontawesome-webfont.woff > fontawesome-webfont.txt * * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; src: url(data:application/font-woff;base64,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) format('woff'); font-weight: normal; font-style: normal; } .fa { display: inline-block; font: normal normal normal 14px/1 FontAwesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } /* makes the font 33% larger relative to the icon container */ .fa-lg { font-size: 1.33333333em; line-height: 0.75em; vertical-align: -15%; } .fa-2x { font-size: 2em; } .fa-3x { font-size: 3em; } .fa-4x { font-size: 4em; } .fa-5x { font-size: 5em; } .fa-fw { width: 1.28571429em; text-align: center; } .fa-ul { padding-left: 0; margin-left: 2.14285714em; list-style-type: none; } .fa-ul > li { position: relative; } .fa-li { position: absolute; left: -2.14285714em; width: 2.14285714em; top: 0.14285714em; text-align: center; } .fa-li.fa-lg { left: -1.85714286em; } .fa-border { padding: .2em .25em .15em; border: solid 0.08em #eeeeee; border-radius: .1em; } .fa-pull-left { float: left; } .fa-pull-right { float: right; } .fa.fa-pull-left { margin-right: .3em; } .fa.fa-pull-right { margin-left: .3em; } /* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } .fa.pull-left { margin-right: .3em; } .fa.pull-right { margin-left: .3em; } .fa-spin { -webkit-animation: fa-spin 2s infinite linear; animation: fa-spin 2s infinite linear; } .fa-pulse { -webkit-animation: fa-spin 1s infinite steps(8); animation: fa-spin 1s infinite steps(8); } @-webkit-keyframes fa-spin { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); transform: rotate(359deg); } } @keyframes fa-spin { 0% { -webkit-transform: rotate(0deg); transform: rotate(0deg); } 100% { -webkit-transform: rotate(359deg); transform: rotate(359deg); } } .fa-rotate-90 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; -webkit-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -webkit-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); } :root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270, :root .fa-flip-horizontal, :root .fa-flip-vertical { filter: none; } .fa-stack { position: relative; display: inline-block; width: 2em; height: 2em; line-height: 2em; vertical-align: middle; } .fa-stack-1x, .fa-stack-2x { position: absolute; left: 0; width: 100%; text-align: center; } .fa-stack-1x { line-height: inherit; } .fa-stack-2x { font-size: 2em; } .fa-inverse { color: #ffffff; } /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen readers do not read off random characters that represent icons */ .fa-glass:before { content: "\f000"; } .fa-music:before { content: "\f001"; } .fa-search:before { content: "\f002"; } .fa-envelope-o:before { content: "\f003"; } .fa-heart:before { content: "\f004"; } .fa-star:before { content: "\f005"; } .fa-star-o:before { content: "\f006"; } .fa-user:before { content: "\f007"; } .fa-film:before { content: "\f008"; } .fa-th-large:before { content: "\f009"; } .fa-th:before { content: "\f00a"; } .fa-th-list:before { content: "\f00b"; } .fa-check:before { content: "\f00c"; } .fa-remove:before, .fa-close:before, .fa-times:before { content: "\f00d"; } .fa-search-plus:before { content: "\f00e"; } .fa-search-minus:before { content: "\f010"; } .fa-power-off:before { content: "\f011"; } .fa-signal:before { content: "\f012"; } .fa-gear:before, .fa-cog:before { content: "\f013"; } .fa-trash-o:before { content: "\f014"; } .fa-home:before { content: "\f015"; } .fa-file-o:before { content: "\f016"; } .fa-clock-o:before { content: "\f017"; } .fa-road:before { content: "\f018"; } .fa-download:before { content: "\f019"; } .fa-arrow-circle-o-down:before { content: "\f01a"; } .fa-arrow-circle-o-up:before { content: "\f01b"; } .fa-inbox:before { content: "\f01c"; } .fa-play-circle-o:before { content: "\f01d"; } .fa-rotate-right:before, .fa-repeat:before { content: "\f01e"; } .fa-refresh:before { content: "\f021"; } .fa-list-alt:before { content: "\f022"; } .fa-lock:before { content: "\f023"; } .fa-flag:before { content: "\f024"; } .fa-headphones:before { content: "\f025"; } .fa-volume-off:before { content: "\f026"; } .fa-volume-down:before { content: "\f027"; } .fa-volume-up:before { content: "\f028"; } .fa-qrcode:before { content: "\f029"; } .fa-barcode:before { content: "\f02a"; } .fa-tag:before { content: "\f02b"; } .fa-tags:before { content: "\f02c"; } .fa-book:before { content: "\f02d"; } .fa-bookmark:before { content: "\f02e"; } .fa-print:before { content: "\f02f"; } .fa-camera:before { content: "\f030"; } .fa-font:before { content: "\f031"; } .fa-bold:before { content: "\f032"; } .fa-italic:before { content: "\f033"; } .fa-text-height:before { content: "\f034"; } .fa-text-width:before { content: "\f035"; } .fa-align-left:before { content: "\f036"; } .fa-align-center:before { content: "\f037"; } .fa-align-right:before { content: "\f038"; } .fa-align-justify:before { content: "\f039"; } .fa-list:before { content: "\f03a"; } .fa-dedent:before, .fa-outdent:before { content: "\f03b"; } .fa-indent:before { content: "\f03c"; } .fa-video-camera:before { content: "\f03d"; } .fa-photo:before, .fa-image:before, .fa-picture-o:before { content: "\f03e"; } .fa-pencil:before { content: "\f040"; } .fa-map-marker:before { content: "\f041"; } .fa-adjust:before { content: "\f042"; } .fa-tint:before { content: "\f043"; } .fa-edit:before, .fa-pencil-square-o:before { content: "\f044"; } .fa-share-square-o:before { content: "\f045"; } .fa-check-square-o:before { content: "\f046"; } .fa-arrows:before { content: "\f047"; } .fa-step-backward:before { content: "\f048"; } .fa-fast-backward:before { content: "\f049"; } .fa-backward:before { content: "\f04a"; } .fa-play:before { content: "\f04b"; } .fa-pause:before { content: "\f04c"; } .fa-stop:before { content: "\f04d"; } .fa-forward:before { content: "\f04e"; } .fa-fast-forward:before { content: "\f050"; } .fa-step-forward:before { content: "\f051"; } .fa-eject:before { content: "\f052"; } .fa-chevron-left:before { content: "\f053"; } .fa-chevron-right:before { content: "\f054"; } .fa-plus-circle:before { content: "\f055"; } .fa-minus-circle:before { content: "\f056"; } .fa-times-circle:before { content: "\f057"; } .fa-check-circle:before { content: "\f058"; } .fa-question-circle:before { content: "\f059"; } .fa-info-circle:before { content: "\f05a"; } .fa-crosshairs:before { content: "\f05b"; } .fa-times-circle-o:before { content: "\f05c"; } .fa-check-circle-o:before { content: "\f05d"; } .fa-ban:before { content: "\f05e"; } .fa-arrow-left:before { content: "\f060"; } .fa-arrow-right:before { content: "\f061"; } .fa-arrow-up:before { content: "\f062"; } .fa-arrow-down:before { content: "\f063"; } .fa-mail-forward:before, .fa-share:before { content: "\f064"; } .fa-expand:before { content: "\f065"; } .fa-compress:before { content: "\f066"; } .fa-plus:before { content: "\f067"; } .fa-minus:before { content: "\f068"; } .fa-asterisk:before { content: "\f069"; } .fa-exclamation-circle:before { content: "\f06a"; } .fa-gift:before { content: "\f06b"; } .fa-leaf:before { content: "\f06c"; } .fa-fire:before { content: "\f06d"; } .fa-eye:before { content: "\f06e"; } .fa-eye-slash:before { content: "\f070"; } .fa-warning:before, .fa-exclamation-triangle:before { content: "\f071"; } .fa-plane:before { content: "\f072"; } .fa-calendar:before { content: "\f073"; } .fa-random:before { content: "\f074"; } .fa-comment:before { content: "\f075"; } .fa-magnet:before { content: "\f076"; } .fa-chevron-up:before { content: "\f077"; } .fa-chevron-down:before { content: "\f078"; } .fa-retweet:before { content: "\f079"; } .fa-shopping-cart:before { content: "\f07a"; } .fa-folder:before { content: "\f07b"; } .fa-folder-open:before { content: "\f07c"; } .fa-arrows-v:before { content: "\f07d"; } .fa-arrows-h:before { content: "\f07e"; } .fa-bar-chart-o:before, .fa-bar-chart:before { content: "\f080"; } .fa-twitter-square:before { content: "\f081"; } .fa-facebook-square:before { content: "\f082"; } .fa-camera-retro:before { content: "\f083"; } .fa-key:before { content: "\f084"; } .fa-gears:before, .fa-cogs:before { content: "\f085"; } .fa-comments:before { content: "\f086"; } .fa-thumbs-o-up:before { content: "\f087"; } .fa-thumbs-o-down:before { content: "\f088"; } .fa-star-half:before { content: "\f089"; } .fa-heart-o:before { content: "\f08a"; } .fa-sign-out:before { content: "\f08b"; } .fa-linkedin-square:before { content: "\f08c"; } .fa-thumb-tack:before { content: "\f08d"; } .fa-external-link:before { content: "\f08e"; } .fa-sign-in:before { content: "\f090"; } .fa-trophy:before { content: "\f091"; } .fa-github-square:before { content: "\f092"; } .fa-upload:before { content: "\f093"; } .fa-lemon-o:before { content: "\f094"; } .fa-phone:before { content: "\f095"; } .fa-square-o:before { content: "\f096"; } .fa-bookmark-o:before { content: "\f097"; } .fa-phone-square:before { content: "\f098"; } .fa-twitter:before { content: "\f099"; } .fa-facebook-f:before, .fa-facebook:before { content: "\f09a"; } .fa-github:before { content: "\f09b"; } .fa-unlock:before { content: "\f09c"; } .fa-credit-card:before { content: "\f09d"; } .fa-feed:before, .fa-rss:before { content: "\f09e"; } .fa-hdd-o:before { content: "\f0a0"; } .fa-bullhorn:before { content: "\f0a1"; } .fa-bell:before { content: "\f0f3"; } .fa-certificate:before { content: "\f0a3"; } .fa-hand-o-right:before { content: "\f0a4"; } .fa-hand-o-left:before { content: "\f0a5"; } .fa-hand-o-up:before { content: "\f0a6"; } .fa-hand-o-down:before { content: "\f0a7"; } .fa-arrow-circle-left:before { content: "\f0a8"; } .fa-arrow-circle-right:before { content: "\f0a9"; } .fa-arrow-circle-up:before { content: "\f0aa"; } .fa-arrow-circle-down:before { content: "\f0ab"; } .fa-globe:before { content: "\f0ac"; } .fa-wrench:before { content: "\f0ad"; } .fa-tasks:before { content: "\f0ae"; } .fa-filter:before { content: "\f0b0"; } .fa-briefcase:before { content: "\f0b1"; } .fa-arrows-alt:before { content: "\f0b2"; } .fa-group:before, .fa-users:before { content: "\f0c0"; } .fa-chain:before, .fa-link:before { content: "\f0c1"; } .fa-cloud:before { content: "\f0c2"; } .fa-flask:before { content: "\f0c3"; } .fa-cut:before, .fa-scissors:before { content: "\f0c4"; } .fa-copy:before, .fa-files-o:before { content: "\f0c5"; } .fa-paperclip:before { content: "\f0c6"; } .fa-save:before, .fa-floppy-o:before { content: "\f0c7"; } .fa-square:before { content: "\f0c8"; } .fa-navicon:before, .fa-reorder:before, .fa-bars:before { content: "\f0c9"; } .fa-list-ul:before { content: "\f0ca"; } .fa-list-ol:before { content: "\f0cb"; } .fa-strikethrough:before { content: "\f0cc"; } .fa-underline:before { content: "\f0cd"; } .fa-table:before { content: "\f0ce"; } .fa-magic:before { content: "\f0d0"; } .fa-truck:before { content: "\f0d1"; } .fa-pinterest:before { content: "\f0d2"; } .fa-pinterest-square:before { content: "\f0d3"; } .fa-google-plus-square:before { content: "\f0d4"; } .fa-google-plus:before { content: "\f0d5"; } .fa-money:before { content: "\f0d6"; } .fa-caret-down:before { content: "\f0d7"; } .fa-caret-up:before { content: "\f0d8"; } .fa-caret-left:before { content: "\f0d9"; } .fa-caret-right:before { content: "\f0da"; } .fa-columns:before { content: "\f0db"; } .fa-unsorted:before, .fa-sort:before { content: "\f0dc"; } .fa-sort-down:before, .fa-sort-desc:before { content: "\f0dd"; } .fa-sort-up:before, .fa-sort-asc:before { content: "\f0de"; } .fa-envelope:before { content: "\f0e0"; } .fa-linkedin:before { content: "\f0e1"; } .fa-rotate-left:before, .fa-undo:before { content: "\f0e2"; } .fa-legal:before, .fa-gavel:before { content: "\f0e3"; } .fa-dashboard:before, .fa-tachometer:before { content: "\f0e4"; } .fa-comment-o:before { content: "\f0e5"; } .fa-comments-o:before { content: "\f0e6"; } .fa-flash:before, .fa-bolt:before { content: "\f0e7"; } .fa-sitemap:before { content: "\f0e8"; } .fa-umbrella:before { content: "\f0e9"; } .fa-paste:before, .fa-clipboard:before { content: "\f0ea"; } .fa-lightbulb-o:before { content: "\f0eb"; } .fa-exchange:before { content: "\f0ec"; } .fa-cloud-download:before { content: "\f0ed"; } .fa-cloud-upload:before { content: "\f0ee"; } .fa-user-md:before { content: "\f0f0"; } .fa-stethoscope:before { content: "\f0f1"; } .fa-suitcase:before { content: "\f0f2"; } .fa-bell-o:before { content: "\f0a2"; } .fa-coffee:before { content: "\f0f4"; } .fa-cutlery:before { content: "\f0f5"; } .fa-file-text-o:before { content: "\f0f6"; } .fa-building-o:before { content: "\f0f7"; } .fa-hospital-o:before { content: "\f0f8"; } .fa-ambulance:before { content: "\f0f9"; } .fa-medkit:before { content: "\f0fa"; } .fa-fighter-jet:before { content: "\f0fb"; } .fa-beer:before { content: "\f0fc"; } .fa-h-square:before { content: "\f0fd"; } .fa-plus-square:before { content: "\f0fe"; } .fa-angle-double-left:before { content: "\f100"; } .fa-angle-double-right:before { content: "\f101"; } .fa-angle-double-up:before { content: "\f102"; } .fa-angle-double-down:before { content: "\f103"; } .fa-angle-left:before { content: "\f104"; } .fa-angle-right:before { content: "\f105"; } .fa-angle-up:before { content: "\f106"; } .fa-angle-down:before { content: "\f107"; } .fa-desktop:before { content: "\f108"; } .fa-laptop:before { content: "\f109"; } .fa-tablet:before { content: "\f10a"; } .fa-mobile-phone:before, .fa-mobile:before { content: "\f10b"; } .fa-circle-o:before { content: "\f10c"; } .fa-quote-left:before { content: "\f10d"; } .fa-quote-right:before { content: "\f10e"; } .fa-spinner:before { content: "\f110"; } .fa-circle:before { content: "\f111"; } .fa-mail-reply:before, .fa-reply:before { content: "\f112"; } .fa-github-alt:before { content: "\f113"; } .fa-folder-o:before { content: "\f114"; } .fa-folder-open-o:before { content: "\f115"; } .fa-smile-o:before { content: "\f118"; } .fa-frown-o:before { content: "\f119"; } .fa-meh-o:before { content: "\f11a"; } .fa-gamepad:before { content: "\f11b"; } .fa-keyboard-o:before { content: "\f11c"; } .fa-flag-o:before { content: "\f11d"; } .fa-flag-checkered:before { content: "\f11e"; } .fa-terminal:before { content: "\f120"; } .fa-code:before { content: "\f121"; } .fa-mail-reply-all:before, .fa-reply-all:before { content: "\f122"; } .fa-star-half-empty:before, .fa-star-half-full:before, .fa-star-half-o:before { content: "\f123"; } .fa-location-arrow:before { content: "\f124"; } .fa-crop:before { content: "\f125"; } .fa-code-fork:before { content: "\f126"; } .fa-unlink:before, .fa-chain-broken:before { content: "\f127"; } .fa-question:before { content: "\f128"; } .fa-info:before { content: "\f129"; } .fa-exclamation:before { content: "\f12a"; } .fa-superscript:before { content: "\f12b"; } .fa-subscript:before { content: "\f12c"; } .fa-eraser:before { content: "\f12d"; } .fa-puzzle-piece:before { content: "\f12e"; } .fa-microphone:before { content: "\f130"; } .fa-microphone-slash:before { content: "\f131"; } .fa-shield:before { content: "\f132"; } .fa-calendar-o:before { content: "\f133"; } .fa-fire-extinguisher:before { content: "\f134"; } .fa-rocket:before { content: "\f135"; } .fa-maxcdn:before { content: "\f136"; } .fa-chevron-circle-left:before { content: "\f137"; } .fa-chevron-circle-right:before { content: "\f138"; } .fa-chevron-circle-up:before { content: "\f139"; } .fa-chevron-circle-down:before { content: "\f13a"; } .fa-html5:before { content: "\f13b"; } .fa-css3:before { content: "\f13c"; } .fa-anchor:before { content: "\f13d"; } .fa-unlock-alt:before { content: "\f13e"; } .fa-bullseye:before { content: "\f140"; } .fa-ellipsis-h:before { content: "\f141"; } .fa-ellipsis-v:before { content: "\f142"; } .fa-rss-square:before { content: "\f143"; } .fa-play-circle:before { content: "\f144"; } .fa-ticket:before { content: "\f145"; } .fa-minus-square:before { content: "\f146"; } .fa-minus-square-o:before { content: "\f147"; } .fa-level-up:before { content: "\f148"; } .fa-level-down:before { content: "\f149"; } .fa-check-square:before { content: "\f14a"; } .fa-pencil-square:before { content: "\f14b"; } .fa-external-link-square:before { content: "\f14c"; } .fa-share-square:before { content: "\f14d"; } .fa-compass:before { content: "\f14e"; } .fa-toggle-down:before, .fa-caret-square-o-down:before { content: "\f150"; } .fa-toggle-up:before, .fa-caret-square-o-up:before { content: "\f151"; } .fa-toggle-right:before, .fa-caret-square-o-right:before { content: "\f152"; } .fa-euro:before, .fa-eur:before { content: "\f153"; } .fa-gbp:before { content: "\f154"; } .fa-dollar:before, .fa-usd:before { content: "\f155"; } .fa-rupee:before, .fa-inr:before { content: "\f156"; } .fa-cny:before, .fa-rmb:before, .fa-yen:before, .fa-jpy:before { content: "\f157"; } .fa-ruble:before, .fa-rouble:before, .fa-rub:before { content: "\f158"; } .fa-won:before, .fa-krw:before { content: "\f159"; } .fa-bitcoin:before, .fa-btc:before { content: "\f15a"; } .fa-file:before { content: "\f15b"; } .fa-file-text:before { content: "\f15c"; } .fa-sort-alpha-asc:before { content: "\f15d"; } .fa-sort-alpha-desc:before { content: "\f15e"; } .fa-sort-amount-asc:before { content: "\f160"; } .fa-sort-amount-desc:before { content: "\f161"; } .fa-sort-numeric-asc:before { content: "\f162"; } .fa-sort-numeric-desc:before { content: "\f163"; } .fa-thumbs-up:before { content: "\f164"; } .fa-thumbs-down:before { content: "\f165"; } .fa-youtube-square:before { content: "\f166"; } .fa-youtube:before { content: "\f167"; } .fa-xing:before { content: "\f168"; } .fa-xing-square:before { content: "\f169"; } .fa-youtube-play:before { content: "\f16a"; } .fa-dropbox:before { content: "\f16b"; } .fa-stack-overflow:before { content: "\f16c"; } .fa-instagram:before { content: "\f16d"; } .fa-flickr:before { content: "\f16e"; } .fa-adn:before { content: "\f170"; } .fa-bitbucket:before { content: "\f171"; } .fa-bitbucket-square:before { content: "\f172"; } .fa-tumblr:before { content: "\f173"; } .fa-tumblr-square:before { content: "\f174"; } .fa-long-arrow-down:before { content: "\f175"; } .fa-long-arrow-up:before { content: "\f176"; } .fa-long-arrow-left:before { content: "\f177"; } .fa-long-arrow-right:before { content: "\f178"; } .fa-apple:before { content: "\f179"; } .fa-windows:before { content: "\f17a"; } .fa-android:before { content: "\f17b"; } .fa-linux:before { content: "\f17c"; } .fa-dribbble:before { content: "\f17d"; } .fa-skype:before { content: "\f17e"; } .fa-foursquare:before { content: "\f180"; } .fa-trello:before { content: "\f181"; } .fa-female:before { content: "\f182"; } .fa-male:before { content: "\f183"; } .fa-gittip:before, .fa-gratipay:before { content: "\f184"; } .fa-sun-o:before { content: "\f185"; } .fa-moon-o:before { content: "\f186"; } .fa-archive:before { content: "\f187"; } .fa-bug:before { content: "\f188"; } .fa-vk:before { content: "\f189"; } .fa-weibo:before { content: "\f18a"; } .fa-renren:before { content: "\f18b"; } .fa-pagelines:before { content: "\f18c"; } .fa-stack-exchange:before { content: "\f18d"; } .fa-arrow-circle-o-right:before { content: "\f18e"; } .fa-arrow-circle-o-left:before { content: "\f190"; } .fa-toggle-left:before, .fa-caret-square-o-left:before { content: "\f191"; } .fa-dot-circle-o:before { content: "\f192"; } .fa-wheelchair:before { content: "\f193"; } .fa-vimeo-square:before { content: "\f194"; } .fa-turkish-lira:before, .fa-try:before { content: "\f195"; } .fa-plus-square-o:before { content: "\f196"; } .fa-space-shuttle:before { content: "\f197"; } .fa-slack:before { content: "\f198"; } .fa-envelope-square:before { content: "\f199"; } .fa-wordpress:before { content: "\f19a"; } .fa-openid:before { content: "\f19b"; } .fa-institution:before, .fa-bank:before, .fa-university:before { content: "\f19c"; } .fa-mortar-board:before, .fa-graduation-cap:before { content: "\f19d"; } .fa-yahoo:before { content: "\f19e"; } .fa-google:before { content: "\f1a0"; } .fa-reddit:before { content: "\f1a1"; } .fa-reddit-square:before { content: "\f1a2"; } .fa-stumbleupon-circle:before { content: "\f1a3"; } .fa-stumbleupon:before { content: "\f1a4"; } .fa-delicious:before { content: "\f1a5"; } .fa-digg:before { content: "\f1a6"; } .fa-pied-piper-pp:before { content: "\f1a7"; } .fa-pied-piper-alt:before { content: "\f1a8"; } .fa-drupal:before { content: "\f1a9"; } .fa-joomla:before { content: "\f1aa"; } .fa-language:before { content: "\f1ab"; } .fa-fax:before { content: "\f1ac"; } .fa-building:before { content: "\f1ad"; } .fa-child:before { content: "\f1ae"; } .fa-paw:before { content: "\f1b0"; } .fa-spoon:before { content: "\f1b1"; } .fa-cube:before { content: "\f1b2"; } .fa-cubes:before { content: "\f1b3"; } .fa-behance:before { content: "\f1b4"; } .fa-behance-square:before { content: "\f1b5"; } .fa-steam:before { content: "\f1b6"; } .fa-steam-square:before { content: "\f1b7"; } .fa-recycle:before { content: "\f1b8"; } .fa-automobile:before, .fa-car:before { content: "\f1b9"; } .fa-cab:before, .fa-taxi:before { content: "\f1ba"; } .fa-tree:before { content: "\f1bb"; } .fa-spotify:before { content: "\f1bc"; } .fa-deviantart:before { content: "\f1bd"; } .fa-soundcloud:before { content: "\f1be"; } .fa-database:before { content: "\f1c0"; } .fa-file-pdf-o:before { content: "\f1c1"; } .fa-file-word-o:before { content: "\f1c2"; } .fa-file-excel-o:before { content: "\f1c3"; } .fa-file-powerpoint-o:before { content: "\f1c4"; } .fa-file-photo-o:before, .fa-file-picture-o:before, .fa-file-image-o:before { content: "\f1c5"; } .fa-file-zip-o:before, .fa-file-archive-o:before { content: "\f1c6"; } .fa-file-sound-o:before, .fa-file-audio-o:before { content: "\f1c7"; } .fa-file-movie-o:before, .fa-file-video-o:before { content: "\f1c8"; } .fa-file-code-o:before { content: "\f1c9"; } .fa-vine:before { content: "\f1ca"; } .fa-codepen:before { content: "\f1cb"; } .fa-jsfiddle:before { content: "\f1cc"; } .fa-life-bouy:before, .fa-life-buoy:before, .fa-life-saver:before, .fa-support:before, .fa-life-ring:before { content: "\f1cd"; } .fa-circle-o-notch:before { content: "\f1ce"; } .fa-ra:before, .fa-resistance:before, .fa-rebel:before { content: "\f1d0"; } .fa-ge:before, .fa-empire:before { content: "\f1d1"; } .fa-git-square:before { content: "\f1d2"; } .fa-git:before { content: "\f1d3"; } .fa-y-combinator-square:before, .fa-yc-square:before, .fa-hacker-news:before { content: "\f1d4"; } .fa-tencent-weibo:before { content: "\f1d5"; } .fa-qq:before { content: "\f1d6"; } .fa-wechat:before, .fa-weixin:before { content: "\f1d7"; } .fa-send:before, .fa-paper-plane:before { content: "\f1d8"; } .fa-send-o:before, .fa-paper-plane-o:before { content: "\f1d9"; } .fa-history:before { content: "\f1da"; } .fa-circle-thin:before { content: "\f1db"; } .fa-header:before { content: "\f1dc"; } .fa-paragraph:before { content: "\f1dd"; } .fa-sliders:before { content: "\f1de"; } .fa-share-alt:before { content: "\f1e0"; } .fa-share-alt-square:before { content: "\f1e1"; } .fa-bomb:before { content: "\f1e2"; } .fa-soccer-ball-o:before, .fa-futbol-o:before { content: "\f1e3"; } .fa-tty:before { content: "\f1e4"; } .fa-binoculars:before { content: "\f1e5"; } .fa-plug:before { content: "\f1e6"; } .fa-slideshare:before { content: "\f1e7"; } .fa-twitch:before { content: "\f1e8"; } .fa-yelp:before { content: "\f1e9"; } .fa-newspaper-o:before { content: "\f1ea"; } .fa-wifi:before { content: "\f1eb"; } .fa-calculator:before { content: "\f1ec"; } .fa-paypal:before { content: "\f1ed"; } .fa-google-wallet:before { content: "\f1ee"; } .fa-cc-visa:before { content: "\f1f0"; } .fa-cc-mastercard:before { content: "\f1f1"; } .fa-cc-discover:before { content: "\f1f2"; } .fa-cc-amex:before { content: "\f1f3"; } .fa-cc-paypal:before { content: "\f1f4"; } .fa-cc-stripe:before { content: "\f1f5"; } .fa-bell-slash:before { content: "\f1f6"; } .fa-bell-slash-o:before { content: "\f1f7"; } .fa-trash:before { content: "\f1f8"; } .fa-copyright:before { content: "\f1f9"; } .fa-at:before { content: "\f1fa"; } .fa-eyedropper:before { content: "\f1fb"; } .fa-paint-brush:before { content: "\f1fc"; } .fa-birthday-cake:before { content: "\f1fd"; } .fa-area-chart:before { content: "\f1fe"; } .fa-pie-chart:before { content: "\f200"; } .fa-line-chart:before { content: "\f201"; } .fa-lastfm:before { content: "\f202"; } .fa-lastfm-square:before { content: "\f203"; } .fa-toggle-off:before { content: "\f204"; } .fa-toggle-on:before { content: "\f205"; } .fa-bicycle:before { content: "\f206"; } .fa-bus:before { content: "\f207"; } .fa-ioxhost:before { content: "\f208"; } .fa-angellist:before { content: "\f209"; } .fa-cc:before { content: "\f20a"; } .fa-shekel:before, .fa-sheqel:before, .fa-ils:before { content: "\f20b"; } .fa-meanpath:before { content: "\f20c"; } .fa-buysellads:before { content: "\f20d"; } .fa-connectdevelop:before { content: "\f20e"; } .fa-dashcube:before { content: "\f210"; } .fa-forumbee:before { content: "\f211"; } .fa-leanpub:before { content: "\f212"; } .fa-sellsy:before { content: "\f213"; } .fa-shirtsinbulk:before { content: "\f214"; } .fa-simplybuilt:before { content: "\f215"; } .fa-skyatlas:before { content: "\f216"; } .fa-cart-plus:before { content: "\f217"; } .fa-cart-arrow-down:before { content: "\f218"; } .fa-diamond:before { content: "\f219"; } .fa-ship:before { content: "\f21a"; } .fa-user-secret:before { content: "\f21b"; } .fa-motorcycle:before { content: "\f21c"; } .fa-street-view:before { content: "\f21d"; } .fa-heartbeat:before { content: "\f21e"; } .fa-venus:before { content: "\f221"; } .fa-mars:before { content: "\f222"; } .fa-mercury:before { content: "\f223"; } .fa-intersex:before, .fa-transgender:before { content: "\f224"; } .fa-transgender-alt:before { content: "\f225"; } .fa-venus-double:before { content: "\f226"; } .fa-mars-double:before { content: "\f227"; } .fa-venus-mars:before { content: "\f228"; } .fa-mars-stroke:before { content: "\f229"; } .fa-mars-stroke-v:before { content: "\f22a"; } .fa-mars-stroke-h:before { content: "\f22b"; } .fa-neuter:before { content: "\f22c"; } .fa-genderless:before { content: "\f22d"; } .fa-facebook-official:before { content: "\f230"; } .fa-pinterest-p:before { content: "\f231"; } .fa-whatsapp:before { content: "\f232"; } .fa-server:before { content: "\f233"; } .fa-user-plus:before { content: "\f234"; } .fa-user-times:before { content: "\f235"; } .fa-hotel:before, .fa-bed:before { content: "\f236"; } .fa-viacoin:before { content: "\f237"; } .fa-train:before { content: "\f238"; } .fa-subway:before { content: "\f239"; } .fa-medium:before { content: "\f23a"; } .fa-yc:before, .fa-y-combinator:before { content: "\f23b"; } .fa-optin-monster:before { content: "\f23c"; } .fa-opencart:before { content: "\f23d"; } .fa-expeditedssl:before { content: "\f23e"; } .fa-battery-4:before, .fa-battery:before, .fa-battery-full:before { content: "\f240"; } .fa-battery-3:before, .fa-battery-three-quarters:before { content: "\f241"; } .fa-battery-2:before, .fa-battery-half:before { content: "\f242"; } .fa-battery-1:before, .fa-battery-quarter:before { content: "\f243"; } .fa-battery-0:before, .fa-battery-empty:before { content: "\f244"; } .fa-mouse-pointer:before { content: "\f245"; } .fa-i-cursor:before { content: "\f246"; } .fa-object-group:before { content: "\f247"; } .fa-object-ungroup:before { content: "\f248"; } .fa-sticky-note:before { content: "\f249"; } .fa-sticky-note-o:before { content: "\f24a"; } .fa-cc-jcb:before { content: "\f24b"; } .fa-cc-diners-club:before { content: "\f24c"; } .fa-clone:before { content: "\f24d"; } .fa-balance-scale:before { content: "\f24e"; } .fa-hourglass-o:before { content: "\f250"; } .fa-hourglass-1:before, .fa-hourglass-start:before { content: "\f251"; } .fa-hourglass-2:before, .fa-hourglass-half:before { content: "\f252"; } .fa-hourglass-3:before, .fa-hourglass-end:before { content: "\f253"; } .fa-hourglass:before { content: "\f254"; } .fa-hand-grab-o:before, .fa-hand-rock-o:before { content: "\f255"; } .fa-hand-stop-o:before, .fa-hand-paper-o:before { content: "\f256"; } .fa-hand-scissors-o:before { content: "\f257"; } .fa-hand-lizard-o:before { content: "\f258"; } .fa-hand-spock-o:before { content: "\f259"; } .fa-hand-pointer-o:before { content: "\f25a"; } .fa-hand-peace-o:before { content: "\f25b"; } .fa-trademark:before { content: "\f25c"; } .fa-registered:before { content: "\f25d"; } .fa-creative-commons:before { content: "\f25e"; } .fa-gg:before { content: "\f260"; } .fa-gg-circle:before { content: "\f261"; } .fa-tripadvisor:before { content: "\f262"; } .fa-odnoklassniki:before { content: "\f263"; } .fa-odnoklassniki-square:before { content: "\f264"; } .fa-get-pocket:before { content: "\f265"; } .fa-wikipedia-w:before { content: "\f266"; } .fa-safari:before { content: "\f267"; } .fa-chrome:before { content: "\f268"; } .fa-firefox:before { content: "\f269"; } .fa-opera:before { content: "\f26a"; } .fa-internet-explorer:before { content: "\f26b"; } .fa-tv:before, .fa-television:before { content: "\f26c"; } .fa-contao:before { content: "\f26d"; } .fa-500px:before { content: "\f26e"; } .fa-amazon:before { content: "\f270"; } .fa-calendar-plus-o:before { content: "\f271"; } .fa-calendar-minus-o:before { content: "\f272"; } .fa-calendar-times-o:before { content: "\f273"; } .fa-calendar-check-o:before { content: "\f274"; } .fa-industry:before { content: "\f275"; } .fa-map-pin:before { content: "\f276"; } .fa-map-signs:before { content: "\f277"; } .fa-map-o:before { content: "\f278"; } .fa-map:before { content: "\f279"; } .fa-commenting:before { content: "\f27a"; } .fa-commenting-o:before { content: "\f27b"; } .fa-houzz:before { content: "\f27c"; } .fa-vimeo:before { content: "\f27d"; } .fa-black-tie:before { content: "\f27e"; } .fa-fonticons:before { content: "\f280"; } .fa-reddit-alien:before { content: "\f281"; } .fa-edge:before { content: "\f282"; } .fa-credit-card-alt:before { content: "\f283"; } .fa-codiepie:before { content: "\f284"; } .fa-modx:before { content: "\f285"; } .fa-fort-awesome:before { content: "\f286"; } .fa-usb:before { content: "\f287"; } .fa-product-hunt:before { content: "\f288"; } .fa-mixcloud:before { content: "\f289"; } .fa-scribd:before { content: "\f28a"; } .fa-pause-circle:before { content: "\f28b"; } .fa-pause-circle-o:before { content: "\f28c"; } .fa-stop-circle:before { content: "\f28d"; } .fa-stop-circle-o:before { content: "\f28e"; } .fa-shopping-bag:before { content: "\f290"; } .fa-shopping-basket:before { content: "\f291"; } .fa-hashtag:before { content: "\f292"; } .fa-bluetooth:before { content: "\f293"; } .fa-bluetooth-b:before { content: "\f294"; } .fa-percent:before { content: "\f295"; } .fa-gitlab:before { content: "\f296"; } .fa-wpbeginner:before { content: "\f297"; } .fa-wpforms:before { content: "\f298"; } .fa-envira:before { content: "\f299"; } .fa-universal-access:before { content: "\f29a"; } .fa-wheelchair-alt:before { content: "\f29b"; } .fa-question-circle-o:before { content: "\f29c"; } .fa-blind:before { content: "\f29d"; } .fa-audio-description:before { content: "\f29e"; } .fa-volume-control-phone:before { content: "\f2a0"; } .fa-braille:before { content: "\f2a1"; } .fa-assistive-listening-systems:before { content: "\f2a2"; } .fa-asl-interpreting:before, .fa-american-sign-language-interpreting:before { content: "\f2a3"; } .fa-deafness:before, .fa-hard-of-hearing:before, .fa-deaf:before { content: "\f2a4"; } .fa-glide:before { content: "\f2a5"; } .fa-glide-g:before { content: "\f2a6"; } .fa-signing:before, .fa-sign-language:before { content: "\f2a7"; } .fa-low-vision:before { content: "\f2a8"; } .fa-viadeo:before { content: "\f2a9"; } .fa-viadeo-square:before { content: "\f2aa"; } .fa-snapchat:before { content: "\f2ab"; } .fa-snapchat-ghost:before { content: "\f2ac"; } .fa-snapchat-square:before { content: "\f2ad"; } .fa-pied-piper:before { content: "\f2ae"; } .fa-first-order:before { content: "\f2b0"; } .fa-yoast:before { content: "\f2b1"; } .fa-themeisle:before { content: "\f2b2"; } .fa-google-plus-circle:before, .fa-google-plus-official:before { content: "\f2b3"; } .fa-fa:before, .fa-font-awesome:before { content: "\f2b4"; } .fa-handshake-o:before { content: "\f2b5"; } .fa-envelope-open:before { content: "\f2b6"; } .fa-envelope-open-o:before { content: "\f2b7"; } .fa-linode:before { content: "\f2b8"; } .fa-address-book:before { content: "\f2b9"; } .fa-address-book-o:before { content: "\f2ba"; } .fa-vcard:before, .fa-address-card:before { content: "\f2bb"; } .fa-vcard-o:before, .fa-address-card-o:before { content: "\f2bc"; } .fa-user-circle:before { content: "\f2bd"; } .fa-user-circle-o:before { content: "\f2be"; } .fa-user-o:before { content: "\f2c0"; } .fa-id-badge:before { content: "\f2c1"; } .fa-drivers-license:before, .fa-id-card:before { content: "\f2c2"; } .fa-drivers-license-o:before, .fa-id-card-o:before { content: "\f2c3"; } .fa-quora:before { content: "\f2c4"; } .fa-free-code-camp:before { content: "\f2c5"; } .fa-telegram:before { content: "\f2c6"; } .fa-thermometer-4:before, .fa-thermometer:before, .fa-thermometer-full:before { content: "\f2c7"; } .fa-thermometer-3:before, .fa-thermometer-three-quarters:before { content: "\f2c8"; } .fa-thermometer-2:before, .fa-thermometer-half:before { content: "\f2c9"; } .fa-thermometer-1:before, .fa-thermometer-quarter:before { content: "\f2ca"; } .fa-thermometer-0:before, .fa-thermometer-empty:before { content: "\f2cb"; } .fa-shower:before { content: "\f2cc"; } .fa-bathtub:before, .fa-s15:before, .fa-bath:before { content: "\f2cd"; } .fa-podcast:before { content: "\f2ce"; } .fa-window-maximize:before { content: "\f2d0"; } .fa-window-minimize:before { content: "\f2d1"; } .fa-window-restore:before { content: "\f2d2"; } .fa-times-rectangle:before, .fa-window-close:before { content: "\f2d3"; } .fa-times-rectangle-o:before, .fa-window-close-o:before { content: "\f2d4"; } .fa-bandcamp:before { content: "\f2d5"; } .fa-grav:before { content: "\f2d6"; } .fa-etsy:before { content: "\f2d7"; } .fa-imdb:before { content: "\f2d8"; } .fa-ravelry:before { content: "\f2d9"; } .fa-eercast:before { content: "\f2da"; } .fa-microchip:before { content: "\f2db"; } .fa-snowflake-o:before { content: "\f2dc"; } .fa-superpowers:before { content: "\f2dd"; } .fa-wpexplorer:before { content: "\f2de"; } .fa-meetup:before { content: "\f2e0"; } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } .sr-only-focusable:active, .sr-only-focusable:focus { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }
/* Generated by Font Squirrel (http://www.fontsquirrel.com) on March 8, 2015 */ @font-face { font-family: 'leckerlioneregular'; src: url(data:application/x-font-woff;charset=utf-8;base64,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) format('woff'), url('LeckerliOne-Regular-webfont.ttf') format('truetype'); font-weight: normal; font-style: normal; }
/* Generated by Font Squirrel (https://www.fontsquirrel.com) on August 24, 2016 */ @font-face { font-family: 'open_sansbold'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAGRwABMAAAAAtxwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABqAAAABwAAAAcaWK2nEdERUYAAAHEAAAAHgAAACABFwAER1BPUwAAAeQAAASiAAAJmCwaFlhHU1VCAAAGiAAAAIEAAACooF6Ikk9TLzIAAAcMAAAAYAAAAGCiSZvkY21hcAAAB2wAAAGGAAAB2s9AWKBjdnQgAAAI9AAAADAAAAAwDu4TqmZwZ20AAAkkAAABsQAAAmVTtC+nZ2FzcAAACtgAAAAIAAAACAAAABBnbHlmAAAK4AAAULEAAJiIh82Z7WhlYWQAAFuUAAAANAAAADYOcFx2aGhlYQAAW8gAAAAeAAAAJBAGBpBobXR4AABb6AAAAioAAAOmEPdMNGxvY2EAAF4UAAABzQAAAdYpBQRAbWF4cAAAX+QAAAAgAAAAIAIHAaFuYW1lAABgBAAAAgAAAASKUq2eNHBvc3QAAGIEAAAB7QAAAuUaeDKocHJlcAAAY/QAAAB0AAAAiOUtDl93ZWJmAABkaAAAAAYAAAAGS61XvQAAAAEAAAAAzD2izwAAAADJQhegAAAAANPi/Cx42mNgZGBg4ANiCQYQYGJgBMKXQMwC5jEAAA5NARwAAHjarZZLbFRVGMf/M51hxoKWqtH4CBoyNrUGjQ1J27GwatpaDZZpi4MOig/iAkJCY0hMExaFgbgwIQYrOTxqCkyh0FmQUpryMkxXLNzhaW3jyuVJV8QFIY6/c9sp4EjVxHz55dw597vf43/OPXMVklSpbn2qSEvru916/rOvenep5oveHTtVv+uTL3droyL4qFiU9/0316GdO3p3K+6vAiIKB2NcoXhv4Lldt3QrdDg0ELoDd8PpcA6mw7+GcxWrw+mKfTAW+SlyL3IvnIvOr/gtdDj2TKw2loLPudoL/ndt7MdYKp6MJ2N740ni3b1vRMvBgqUfNOIGFp2v2BfEKVntwxbfDklPeDo6T6V3gqoHAt5UorhHDXpVTZCEZj2tlmJercWs2qAdOooFdcJmSPG7i7GbsYdxC6Shnzj74QBk4SAcgkHiDeF7ipin4QzkYBjOwjnujcB5uACjMAaXYBwuwwRMwhXyXIVrcB0KzE0RP6R1mtCzqika1UE9rIcG8jcWrZrwS0IzfM38EfgOBuB7OAoGjuF7HE7ASRjE/ybzU4whouXJESVmJdRwvw7WhSrJZ8lng3xNeCVhIZcllyWXJZcllyWXJVcptg1iT/PcLDylKp6shkQQrUA0RzSnt/jdzLgB+rneDwcgCwfhUBDREc1phufnYNVSjaX6lqvH1+J17OO5KmqqhrXsB1/JozLO4DMHL6BKBlUyZRkboJGamhiTQQ+FZas4hu9xOAEnYRD/BZUKqJRBpYweV9Ufv6saEqyNV2ZBFUONhhoNNRpqNNRoNIPfHLQGXa0O9C11tqe8XuZbyNHKvTZohw7oJNJmSHHdxdjN2MO4hVhpxq08+wF8CBnYRp5HvRHL9T/E/VPkPw1nIAfDcBbOcW8EzsMFGIUxuATjcBkmYBKuUNNVuAbX4cbiChe4d5vafobS6q1EGYsqFkW8jo6qHVU7qnZU7aja7yqLNyuIt8HbLGqYR0OHhg4NHRo69LPoZ9HPop9FP4d+Dv0c+ln0c+hn0c+hn0M/nzVP1jxZ82TNkzVP1jxaObRyaOXQyqGVQyuHVg6tLFpZtLJoZdHKopVFK4tWFq0sWlm0smhl0cqilUUri1YWrSxaWbRyaOXQyqGVQyeHTn53Gzo22vCX9yFbtmta8GqFNmiHDubun5dm8bw0i+dlPjgvtwXvVZaus3SdpessXWfpOvsPO8TQtaFrQ9eGrg1dG7o2dG3o2tC1oWtD14auDV0bujZ0beja0LUpO0sXdodZ2hWrytZ1ubXwmkU4BRyngONNdbypXC/NlL8fLtiTJU+eRdtKmIZZ8DN9zPQx08dMn558aFf5ndQd6PHfVtuv7Bpip4id+tu9+mDk/2N/+YzT5JqFx5Yyl076tUHPqeDU9h7+5PZKWnTz+lj0sXx5+JqjwVfOSs7pKlWrQgmeXaHX9QarVa/1eoLzayN3WjjtnlO73taLegdbo03YS+pUl15WD5bQ+9gr2irObH2E1alf3+g1fYs16IiOqlFGP7D7hzRMxBGNqkMXsU0a07je4x93gnonsS7d0E2+vqawtG7rF+LOYR//CRxXWnQAAHjaY2BkYGDgYohiyGBgcXHzCWGQSq4symFQSS9KzWbQy0ksyWOwYGABqmH4/x9IYGMJMDD5+vsoMAgE+fsCSbAoyFTGnMz0RAYOEAuMWcB6GIEijAx6YJoFaLMQgxSDAsNLBmYGTwZ/hhdg2ofhOQMTkPcMSPoAVTIyeAIAoLkaBQAAAAADBIICvAAFAAQFmgUzAAABHwWaBTMAAAPRAGYB/AgCAgsIBgMFBAICBOAAAu9AACBbAAAAKAAAAAAxQVNDACAADfsEBmb+ZgAACI0CgCAAAZ8AAAAABF4FtgAAACAAA3jaY2BgYGaAYBkGRgYQuALkMYL5LAw7gLQWgwKQxcXAy1DH8J8xmLGC6RjTHQUuBREFKQU5BSUFNQV9BSuFeIU1ikqqf36z/P8P1MML1LOAMQiqlkFBQEFCQQaq1hKulvH///9f/z/+f+h/wX+fv///vnpw/MGhB/sf7Huw+8GOBxseLH/Q/MD8/qFbL1mfQt1GJGBkY4BrYGQCEkzoCoBeZmFlY+fg5OLm4eXjFxAUEhYRFROXkJSSlpGVk1dQVFJWUVVT19DU0tbR1dM3MDQyNjE1M7ewtLK2sbWzd3B0cnZxdXP38PTy9vH18w8IDAoOCQ0Lj4iMio6JjYtPSGRoa+/snjxj3uJFS5YtXb5y9ao1a9ev27Bx89Yt23Zs37N77z6GopTUzLsVCwuyn5RlMXTMYihmYEgvB7sup4Zhxa7G5DwQO7f2XlJT6/RDh69eu3X7+o2dDAePMDx+8PDZc4bKm3cYWnqae7v6J0zsmzqNYcqcubMZjh4rBGqqAmIAN0SKoAAAAAAEXgW2AQIA4gD2AP4BMQExATYA1AD0APwBLAEmAQ0AyQERARwBFwEIAIcARAUReNpdUbtOW0EQ3Q0PA4HE2CA52hSzmZDGe6EFCcTVjWJkO4XlCGk3cpGLcQEfQIFEDdqvGaChpEibBiEXSHxCPiESM2uIojQ7O7NzzpkzS8qRqnfpa89T5ySQwt0GzTb9Tki1swD3pOvrjYy0gwdabGb0ynX7/gsGm9GUO2oA5T1vKQ8ZTTuBWrSn/tH8Cob7/B/zOxi0NNP01DoJ6SEE5ptxS4PvGc26yw/6gtXhYjAwpJim4i4/plL+tzTnasuwtZHRvIMzEfnJNEBTa20Emv7UIdXzcRRLkMumsTaYmLL+JBPBhcl0VVO1zPjawV2ys+hggyrNgQfYw1Z5DB4ODyYU0rckyiwNEfZiq8QIEZMcCjnl3Mn+pED5SBLGvElKO+OGtQbGkdfAoDZPs/88m01tbx3C+FkcwXe/GUs6+MiG2hgRYjtiKYAJREJGVfmGGs+9LAbkUvvPQJSA5fGPf50ItO7YRDyXtXUOMVYIen7b3PLLirtWuc6LQndvqmqo0inN+17OvscDnh4Lw0FjwZvP+/5Kgfo8LK40aA4EQ3o3ev+iteqIq7wXPrIn07+xWgAAAAABAAH//wAPeNq1vQtgE1X2Pz53ZjJJmufk2fSZNG1D6SM0oa3hDaKyKBUQERARERQRFUQWEVlERHwjPhFdl0VA1mXdmTSg8sUXioiusq4Lrl901a+iVlFcX4vQDv9z7p1J0xe63+/vLzadTNKZe88995zPeQ7HcyM5jp9pOpcTODNXpxIuPihtFgNfJVTJ9N6gtMDDIacKeNqEp9NmKdg2KE3wfFKOyBUROTKSD2vlZK0223TusT+OFN/g4JLcwhOHyNum7ZyNc3Hnc2k7z1Ur1nhGEDivWE0Ud1zhDij2REayciViteIwjlqcEmepzrjMXD6cdsUzTnqkyqRadbpkj2oVUilOtQuyR3Gm+tU39W9MJgJ+nxQtq/RGhOjCKRPPOX/q+AlTRTIl+f3qCRMnjT/7/Mmma9viHB3XSmGzMALGhfM9i0tzOC4xieOywP2kBD2jvyWKJa4IBzK8mZPhQ96tmkl1RqLvVCsMyMzDgIgIA+pXjzcn8LOSBKt2k6X4atre/g3vbv8G71vLcaJmynCFXCmZyqULOK467Q+EksmkwsVbfMH8wvJgEq7V2sLLRcXlwYQixlsEd0kpnjbBacma58DT5njaYrPD3xElHFcKDmRCbHQhtxqA0fnpO7h0XnXLML/XWt1i8QeAoGb2LXM8Y2HfMFvwG2bRWq343aoN/tTOJhYh1UpjwY4hO747k/NX5+0YcvC77/FAKXC38AVmb3WLQF8lfIXbtlhDFjgIuFvyAjYvXq3F4bfDF9z0VaavPnzF7wTpd+Cv8ulfwTULjesUGdcpxu+0lBjfLMXzwjA3LyAN3DISq6i4pLSuy3/KsAJch4ZIU7Qh4k0KSfzxR8wRPyyLNwo/FcmmaC3xx9tIZMzBMa80v9P8jdYaJ7z2zpj3mned9c5owr0cf5k88Obnb5EHtcvw563P39TmkAfw583PgWsmnbhVHCl5uDBXydVw93BKIK54k2qR2KrEEulAERI14Aei2uJKRRJ2UasiJNKSDc9LQGyi1FLWz0+oEXOrEnGrflKdForKE4lExmfmbLA0JlsM3ik+t1oFTOY2t6p1+LsKud+C3F8UAO7PTyk2eRtndYfKa8qDKUXyKBbYEN7+jU0NSX8gaK6MySU87AyzP9qAxyQox+pIhS8QbJBIY0P/ytikj1+/9dAz0x7Z+NKmMZ/uu/X7p8/7Yfqpr2witYNHLid5t4wcKYbW/Jfvofvzxn8xzKm9e+aVN0363YveN/aaxhFL9Qi4SEHzU6tqUiVfetsOBC/sO6AU95iJG3ria+lH0+tcHufj8rko8L7Cpf3I8RF4UWNiazoAuyzNw4vqEVszFmeEd1SrFjgsrKaHhWIrUeqQUhkbEwU2t+oGJjWxdya3GoJ35exdOaVUpoSJijgSyyZ70hben0qlFJMMtFLLQ0CzQEqpktOFkWAKyWiJyZ6WUEl5FZBP9RTCG5PNzcEboKI7YkiVJl8gmWjoHy2TvCRpJT19MJRM/sO29NZNmbbaxPTpidqxQvU3bfvJy11OizzZ+9V7n3721T+XLW07tuT4ctP2Y6PJDjx56LOv3qcnOeCx8ScOSxzQrxh4rJ5byqXzkXaFSLuI0Jq2ItniSKAEEkgtsbYqJW4lFj4gqxLwlBRXY2Y8pdYAJezAPkn4XSLB/IWUWgOTzlgLI+UuZBq7nHaHopQakXz4QiilxIGpJHuAUoWxUx1pMKSsmTQ2RSTeTCIxIEF5BZKgiTiJ1xccAt+qBGKMX3zvmSNbX9rxwW3rSNEZ/cmQ8t+MJbXaqgXP/+t77X/I8OWzfjNLyww4deKFE6eOSp06htx+64sTJv72grU7/rRm0e7J2pcLn16lnbhYOzh/5YfvTbxkMBldM51fOmlOvwuGNAwexnEEZTh5hMrwMq6zvBZz5LVqItW6XF5pSGPkT8KN13byi+HvHSCNQcVx8IdOymogJCvgD13sD92epqQEG8gTjFby4x++59idd997y9F71/H1xErefPJFLfH9D1rTM0+QV+Cag+GaM41rcsY1bQcyYqdrJgMe2c2bo42ehv784GP3rnv4nqOr7rvbtP3PWr32E/wbsOVpsvfH78mbcM2h/ESxWPJxTtChihAnoA5xD+B1mkxCRKgImrxmG4l5h8bIFVVEqiILI9rWDz5+5NbD74ueY7PJPO3u2W352juLSUrbu4hUwTUncR+LKXE36OVzYVfGFTNVOooJFB9BGcXlWavThMNDIqC4sseVvAMKn8hYmQYRE2lrHn5sNcM386x4mMdZq1UHG1lDRAZg4I/IUXkSWXGQrNCWHuRnHiQ3a9cd1JaR5Tgv7Sh5nfuak7gKHEOGFzgrrp45rvAHVBEY1gIMK4JyVSSqWj1NkaAkDB1eTvJd/a+Hv847HHxN+xLXcjDZwk/kN1BegGupxNSKP8gKKgcyQbAiZxi80BDxD+ZDZMuxY/i3FKOQFNCijusAJ1mMYqc8wWCJ/kufZC7oyAIOA2swHnPCRh5JeTQA/ID7l1CmgGGxsSRJhDj5CPG3f4BiADHC6BOHxVGmN2A8QcBlaStueJeplbKo6sdJ5dMND1tasbtVDxBJsraiIFQ99iw08iNKkrgUlWKeSIIDhouUccQNW7VRduMWHX2MiO1EOK4db9dOkOQFV86dftHlV0zjYbXIVdoN2l3acu1ucj1ZoH3XepjkEceXlNaLYU7NMKc8WLe02DEnUHXiAVWAodhhKIII60bouhGEiEOJ5CKLyTua9rpgGlOyRRxKFh0bLTTfvnZM/ipKq2bARmOpvDuHS8s4ayeIORFnXSDArEviSvCAajG3pi1BZDeLGzgvSPFLUAbOKwWCqk4ZbutJKQUyfKsY5b7oUTgkwhA+mSghfp+TuAjwZaSBDOGZqDI3z71ry+xb/3bNGffv3MkvbePJVY/NrLlo3LnrzxOPTT2rambmmlnqjq2qU2t7hyx4fPmVAydNbB7FxgxrNQLGXMldw6UrcMwirFQ+1Wim1ozdVpEPasxuam3xV+RbgEgx2GsH1DKQ1W4U1IUwG3chTsFtgyn0wSmIFTIOGdS6SspgAnaPWlIKv/2y4k4pHo9SmFLyZVBiwIGgzmE5YRrVpIEe4HRijZGESDU+zleMlDWf+5eZD92z5emr5j/x27+Ouv/81a8S/8fEvPkBdbv2pvbJ1wOJubpx9oJLJ341ee7mfgP33/30xltfKJcCf1zz9pcML0dhbebTNfdyMxlPUr2d4WxWUNSAnVUOMI6UIIovrlgR0+NKIeixUNlgkWCxrHSxrCgmAO6oFitoZ94tU71j4yi/KDzOEvcoAQnij1LjAvROU1QyR/nlpFhRtL9p68n0PMFS0Z/E3xGUtsu+0d4i8W+ODjnsHd/M9t1MWJcGGG8hN4GhbFWUWtMOXBe30JrxWQocsC4+3ExFcUU6oAaBbYthTEHQj2Bh4IjEArYOFjlNbAgVFJ9Htcspg+7hhv4RpLYXmEloYqKAi5TNPPtv00ihdrDhhj5LmoRQ+4+F0cFT/n4cRv3Z9wOJrW/D5+/77SP4Vu2Y9pHZ+fW+H7SjjMajYMxjTXsAK5VzVzGkpBYZ+94C3OQq8wsOKguIUkFFQAhIDIi/FLc+yMtK+B0COqZtdgeOt1ROCy4Kfjwe1UQxY1kRzI/zwCmXrNhhcihcUURwkUTQD7vBScxJfS4g1niq2hvZPhlFriJXLj1j8nm/2zvT6rj4v1/+p3b0iw3/WkGSS6dfPOfimdNW8leQNNni+rdv+s4/PfHju19oRx4g4amLNq5ccvmS63Bdmugez4DMD3NpE8yQCmvc3eY4insObE8KUGBIoD5AODaJofZ3QKtWiAoRdx13igpiI6TVaNNekJBlILV/rVML4CKDRTUIi+KURPkIhXCrReEg362WMFopHrdix9NVcFwVp/ioH3yUr+OjqijgQH9hxIrwqERWXEC7GsCGCIo8kcpOoKg8ybYb3W0GHKLIWvICzDYQ0aiV9y69kohv/Y2Q62/buFr79NNvtK9JybWzF1w9f9n+xJhZM5pnNp99EVmwdNfoszOX/3bX8xvm/fm0Sc9fnTn4lzcmTr943KkLR8zgmwZdmKibPvS0seOQZ0ZQOuzhQiCLgWfyOumKKPBMsDgPeSaIPFNJCVIAEy5wq2E0XGHSMfhdgDyTZ3chp4RlVQBmV8yetMfro1szCKpEcaSUYlnxppSoRzUztdKfAz7x+IF1ymINMOUhpCnqJMA1uUwzgtg+3fDdjdp92uobT50w9eFX51jsA9Ze/fx7pHrGzGk3L71o+lzh9S+JvFb74FVtrDbRedR//kt/nHbWD/+cc/2SsYs23tThRxAXUJ2Y4tIuAqLHTxV0rjshv4s7wWMcoXLsorDlnpQ3/r5gXIcSF27Hg3GTJ+EYEK/gGCTOww0EWuMY3PqdvSjWMw52WzGhONwqD3Tm46oP6OsADJOW8typVAeOsZGcARiYZrMxgCy4Ed/KjoCjuO11MQX7RuI4kJB+K/FPEj5qn8Bv5ZevJt98o72kfXYExzqJbAB8x1H/RgFDRADvEHXgzrDE0W+hIyECP3CRtlLhI7LhIOj+gwe73aupwUrgdpP4re0ThI9eP0JCZPA3mns1XRvpxCFhPehA5EHYidScA35TovFMMVuiUJwyX8GBTJh5dxzhAgv1NAAmVsJuSiSTzox2B1gmvBwsjuLWA3a0grRSTT4ZDVtODRUDLU0+O9BS5YOyrtwNu8RJiglVF/qmM3tzqCx9cOzN72beMT2p/Xv8FZedOn3iAy8sN1be1Lz0lU1Xrp95xuhBg0ZPv2vsmdMGDB85o60oi+Z47pITl0h7QOb054ZyD3MUmGQqRM4HU0jEMzXsyBNX7MlME3tTklAGxzP59A1RhlEgWcXwcxW1+DMN7F2DG/0tuk9GHQ5UiDTInmFWu+jJr6iJJwYCKUD+JGC6/UCYy0o8pTR5QCgpg+WMhfNH0EpT8hEa4L70lAMA8CDUgVnHojj3BrpZg4KPbsw6+EDkcecmGpv8UiTMEfxgKMEde8m7ZA0xvUem7Jy65arRV4fccx9X/0Ls/5i479TgWcPOuvm7R17TDvyOxEj+HG3JAe24dpN2Hn/R1inT8hzJYUtv56f8m9x7KKNl3r37yC1nDFi+/5m3CR8JasHb/+vB3//7xs3anje0w9q78doXzid3k6VvL1v9vu0RpC86DVaadgLHOrgzGVpWhCQFlxnJwhEQYxJqCmqkqWaAUGa3KiLUBN3tQlPBDDKb8BYrpRaxALXsQI960CIRsJO8ER4kMi+SJbykpee0fznnabL03gpLxLTz2EgyVdvITyfvXl9+A+6ap0FPfQ/4wQXyJsxdChKHY9CBsXdYas3kB13ooshHyRqhQ3LDkPITipvxsx3eFaGGMcHwypDBgYUB81CJ6qZjAxhHTyhhj2KCkQJODucAt6hAFysSbTAw3tNkD2kioSWX3L5E++DoV6/dcJ3W9kLmN/OXrHzMtF19ccUWOa/0iTtf/ZBwM2Zt/7F5yoRfwT5eBDriLdifAe40Lu2jGsLA1XlCa4vZJyIwDdIpOGCs+aiGXT6Go81ymnMgQlPFPFnHCsBfyUTQjEwEPBRJNMlSNMwt2kya3tr/zszxm8f++QVy1bqDmX9qL2pP8u9+Qs576tK22ADtpy+14Bit7UyygsoNoLFpIdDYAlQ+hUtbcGRWg8IuqVV3D6tWIKTVTY0KJKVMhwfQMUsyMG24iJAMy+5I9GnyOrmE3KHN0q6fvZK8oE3fZNqu3az9SXtQu4Fw5CPyDpVtuL489UufwTiN3hlZDYFixsTYzYSDsGcHgTYvNYmtgNXBFmbGr24MMmuX/shPC6PbD5Mjmsz74O7a85q26gRn3FfQ4L5WbliOPUjvaTHRe1rwnnnsnubce4IZrt/Q1uWGTwunt39JQB7jzVa1tz/H7gXrborBuheAxUZ9R9SeYmgSMLDHm4/IwINbqpDezwZzZP411W+mzgC3n5omHrhpkeFOEyz5KWaNgFWuOtFd5E+pXg/iSlsK4TJ8oAhseRiuNFcip1AnkYz0AbkE/ELuJ5d+9Nal6/+099uXdlw0U/uSH3nnTzdq27TH+PfJDHLHlKNjtW8/+fq4j9QTvj2vroKsNGhouoSu3VBdSpiZlFBMyYyQR6koCNmVw1nxCZwY4EugJ0qOjjXL/nuaNPKnkgbt9fZnTdvbX+IHHxvNL2q/ld2PfE1t+EgXGx4vj8IHf0zZK8KVmCnPkROztfH0bx1cLZeWcIy2uMrrUswE1iwTXZzK2xjGkmSq0MwUQMHF3Hy0LLZ27IhLJpHGLw5d1vyAb9kq05RjW05w2veBLE+ZxsI97Fw/nR6WLD2I4mC+AkoE1WkgbFXIS7HdIzeRiBUkpBnHfR25g0zSeJ7X1mvLVwAdLt5K/tW+uO0tfva09h/1fTMU7mXiavR9I+j7hiiSQY+0QDlWMAHbmHMIjSQeZ9p+fPQJY9zS3+FaPu42/VpmV5KNXOVNGNnw0yv6zK0Z2cyVgp700RAFc2+6mQMkjvEOjFTseu8rHw1QuOqcivsFVbD9ZFL4FwROFdx1daSFF1xuPT6g2lAUm5xoXMtAdd3qsDOKkCTB0fZv9EaBLlGPHwa+mUyRwPp5XPunYLdqq7RPtPVWL0xlgzgN+CRTfwPxHV8lLtE2LGyfZKzJXqo/LtDXxKqviTlpyDUXDN/lViW0hOHQ4kYnIc4SYBrGuVy4TjYAOsAUKp/HXBlCylhAW8oYLo+MYox0Fb/E7CJB7dftN9ERPkOKf81njo0Wx2sHl7aPBbmLcuEz6l/yd/iXDMngRd4MZHnG7qZDQf9SEH7L6F8SqArzon+Jk1L6JmdCGHFEgAriMmkRuYyMg3+ztLWaAv/WktN2PEMWaKuf2cl/QK4gy7XrwSi4X7uO3Ewu/+Eo+Yp8/ZOhF8QndF/DCH3HUZ3gBSlptXGoda0oJX10mHkotRJKnptiANQQfuRyr03upFTFSDREOvTo2ySP+LV3tW9WXrL6rkXL7jRtP/Tx4WPtRwVp/twrZtNxLNI2Ujq5ANlO49IOjpEn7fAidztABzCSBZFkBVkE4KbIjpKsECUpqPoWwWanhiTs7jykHUBcxZpSgnIXCqJHHWVjD1R8SiXTtQXa98FeSalpj43TFpFRPdDTNAro6QQsc77OjXlJHacDSR0uSlKHlPUsOmEaroTidKtenaToXPQ6GWgxAWixIQu4HBSTwzQ6oxcuCJPIJfYTpC8puetGMnqmtkV7bNPMe+9Y/cA00/Z331++N6V57+br2/cJtTMumz2JyoVpgFeCoLdi3HwuXUl9N0B1Dw43BHglUOlBvNInrrgOqEWwcYpoQJba9/4EjZUVudhIzfI20eYJhdFcR7s1EKF+nUrm1wnILcRVFKVRnxDVYjkOtToSq+OpaR9gSEfy+0pIUDfxp933xrmXXNHvgtU33zyWmD+/et/8mQsfGj1pWuU5D7+xVvtY+2IkCY9obB5TfeqQkUOvWXfprn821v+rX+X4EVWDU6Nn7F79yicwzyrgc4w/mLkBoBuyWIAT0G1Gg87SASR+2iQhw5kAAKQlE40gogdNt+B09VUljgXueE3MEF7Tjp8lZphueBL2OlAaLNYmLu1GWkq6vAYWoGYrE9mK4KahbNjzFLxaMbDuTuk38BnayCeJwJ1PkoZbfrv2VtKwRvv6v7RPtVd5i/Bk2/I/PPq7J4Slbc0bvr+RRODeiOeTVE8P5tI2nB8Ns1uShmYmcF9C1TLCK9TJcAxSJY9yF2dsYBBtQPnGJoTxJEW8wXrJNoz4SUpzaU+atretG/NGn6mfCpdQlcvua94J9y0mAS5djNzuTdJbqxYZtUoJu7mZ3lzWXWelerjb/c2FqEScismtmF9QC+0/KaEXdryw7ceb2el8txJ4QbU5flIcL+wY8vR3w+C0Db7cIpnM3uodLxz5oZiesblb7DaHtxr+oCWYH4CPhvz+27/TjwrdLQWFIS8upjl8W/i2qAQbK5WGc/gL/irnJPwp/OKG2c2O/EKTZLMHgqGC3Gg36f0jUHQE5gcE9RZTgoLlrIiUoF70SjV5I14gLD0AA6mSjzmJWYiQ+v+qD0jV3v2kYr+zry2vxrOD1Gt3aL97xdYgSv0cu7X1QPT/eX9D6sgIIdn2RtP/jGtuHSWUHBstcFWE1DQeSbbz+jqYJtL1r+zAJbyBS0BxOyjwQWUmUjRSb6VQhP5PDmkDyEQykDSQZq2BfK09qm3VtvLf8i+3f8s726vbS/mq9neM9RY1akcA/jFn+UyAm1iptx1FcR6FDUAAHinBDpASCH2AsclYEgeY2awVan8B2LOZn9K2on0PH8fr1+u+bytXZ+AUw36iMDMvThG5amYebJBWuqGURB82OjHlev7Z9oliQftIft9e4SvCvdrmYRhotbaTX2DIACqRRbEVfaG6n4aGI60YF8PYm4niA+OEkOiQAf6onPSvJp98+KG2Uzr29rGtb7O9YAd7Y4QRfxIM2uTEn3Dp7cTPR7QvGWglXBLGFKRjOpXTp8nGxOljMh+Ae6NnDUchuTOEwRYSxzf64MyGiymYlKMNQIbkBx+QT7Si+aYJb/8k0bFZeIs42PQcJ3Eyp0NI3QlMY0YkaiUWsv1ucuSI9pz2OciY7W2j+RXtSxFXt2k7heYTo2BexRgTzXAiZwfKsF8508OsD1EY3/bk03fgPclZ4rvCnVIEeKUPB4AVY47Uf2ellBZZlDCP8qVEV7NfPWmIBIL+aB38MZk4dOtrQ7+X7P5ZrxbW7AZSTgRdNVBcyOVzZdyNLGqVDhiuaDtBXhFbM0I4YHdUZwTdERRlvnsr9d2XMKMEwKBarrvvVSuCvRI5bbYH0NRyeRQvcG2hDB95vNRHi/pLQB4GHYdIwu4BYEE90kMJBoHMMer2kqMxwyMLEnwwMTvJxJ+O73ry5m2zXvzyo2/2D7SMeWzF758hqfvmLPv1yhtJc/oPVqn+iXFvznr51fbg2ovOfHrL8utmTRXFSTDX9TDXjOQDXVLKXazjMifONWBqTVsIi1YAF9CMJJig10wNLy/N0UAzDH1cqhd9zSYJfaFKCJCEE0VTgKPqRimSFRuNSeh4QvbRYISHmUFRszfHsWxeT+rt9sv/9sqHn+3ZPc+fHHX5NdOumnfR/Nm85NMeOG3tZu117TvtS+2vq5fwycwjf9q0adPt65Hvpp44LLwvLgD0O1j3hzjQY44TsJqy6NfGIC+nOtATIqcUq5zm2LA727YIDmQ3DKuJ2rVTSRGx7lo3ZdT1Q77+etIDZ45+cEH7j3wVKSa1Zx0urtCe1J6OJ7Tj8XKKzWAs4nydpjO4tB1p6qLmQgcZgU+8TEvmAUUB59KoD2y2JCWoxSt7MoLTHShGlAMkNTlgjHkIgDjVCoA9wzmc9EMaCU4mgslK1OVR6hjkCSVpE6Pp1EN7374qL0gSXwx0zN6/+yPScPWchVeYrlp6yXy+lsCm3Lh0Brnkp8NrNpEEsW3adMtjEaCsPo8ZQFMfV8hdxqU9SFWbqFM1BFvAb/EIsAX8+hYoolMD6xcgG1g+aMOhVUdDcAELehlsnhSzfFgwzuaRqb/TIivOlOLX3b5uLpkAPR+hoK3JT/0KJELh2lQSOvoVsbTHTXffOCszY+z2Fdq32l/JILKVv/qii67kYwQQqvbt1/fdeE/fusN9YgBR185fsoThMmGhVAr8MYXxBw03YIaSwiXSPGFGvKSzig+zIiivOxNprw/hmVcGpOajVoIPkRplI5uLYX4wAWh+VkMTzaahvhEJpkAdR1Vbdu57dEnz1ObhA4hFO6rtExbfO37880r8w+Ixg04/1LZKWIxyXeAkzSdeAfSu4hq5YdwHXLo/UjwMfOzBsMRQKgcVX4JFSoYyd3QsnqmlR5mCAf1dsBoF+moMjyv2A2oTZgslFC58QM70ZSK9yY15jphbBcZ9k1sdjBFS+FrQrZTj1/oxD36/OKZgYX7LCPhCXxZCU5qoZBrsyRS5wrFaZM5+shIBcwGhNqf2rwVxVs4xcQZfL/CoUgm8GyCr1iL4PdST9gfRzQ86xMg+yuYgBSN+M/XqxwkA84EEXfxiJCfyVE3KJENaAIF/c1389NGnT7r06/fjyz3k5j/3O/5BU218y3NPv6g9o735xb+JZfEVG3dcueDRCfOvOufciWM3b9k+65Zi3/nJYedWVW65+qlXZfHh2jMvyOwVTOU1Ix596OV/PPbHoaOmNA/td7Yw5vw5c85/jelbEDDiFtjP1LKmmMeRpCKRCRU/E4l+N3piVIeZWdV+jgIGxSmrZmpbU2+EbIhAF2EBWfRJoB0ig+Azm92X/HP3X7R9mRuuBnH3UsWtUzb+/ZX2GH/nt0++1P4tlS33woA+gLFYAAU06TF7DFph9ifovSiuvIMG67kE9aWI1EEENgAsjJlnsar+yQQNnqAZcO/mzeecs9lB6k3L7r//jLOPB8VpxzfQ2PWJpZqP3ssBOOMMsGb0TcKDQvDHMUpG7xZEnxfsE+rv8CTQ06xaTHA3tx+n3ZsPDO8fI8ZIVpz+qzFnkPo3n104gQToiD72TpwgPnG8Kv1iyDweR9axFj/SvKkBHVavGUdGaBIVtXTpglCXp5MCURMOxEwP7YaHzJzM+siA9G5xJVghk7SR5B1tvfbcCsnXPlp7gkzQCttXkd2XaRv1e5O34N4CyHV2b7yn7jGEZcefDo8hXFXy/XSY/Z15BOzrKDdPx5pyAfrEYNRs6I6kWgpEDYCBWE6vhmZv1E1dDXpkFxOCZLh+BRrFHMX8SqGsmOkWy8Nwg0d3epWia0K05lHdkJSTweQQgvoBXxm/VVKGyx6sb62Sa5+48vjkwto/X/ncS9qb486bd5W2b9x5C+eI01aPOW9j88SX3kEuXLx4/ZPt+/D31t2UHY29QXXEWTpNbDkzU90oULMeP3T1ocffBhNB5eDTJ2LHicDQ3eiIElO54w50GWiy5eqXXtP2TZx2w9UwuHHnvL2HjeyPr+CImM5aC+NxcCHcrTR2LhtIgAbMC7LeECeL6Zh1p47PqbtQOTWIqEwPiCMg0APinTMnpoIFK/z+x5u0D7UT8Is0XbHkusvnLrluLl9PPKTfHdoxRTui/eVOYlE2P/GHxzdv3oR4C2R8BsbnBR66VPc/wbAYySQDb3Gd8JYvi7esuXhLdBl4S3LQQTtg0HgOERcIaWIQ04vEpIjLx+Ouiwb8IYoQZB1zHa12IuS6bNeK3fPc7suveWPWXEBcmk8avWaz9qb2TYt29LbVdwS0gWJp5hEynmEuoDXMZT5d+zBqVUSLhiY1omd+BAOMkTHwYXXj2qMQwdiZzY8gx+XJL0U9UgjQWHKy5F2QGS2cRM/r+CYQTDZRBy7LRuiEcKYe2jPn0UGWQsJrbzoc9RvmvPIhabp8/jVzTVcteQcgjof0Hzth9U/byf7Bl4+bABahfcvmlZsrMo8w/hUWwRzcGK1icYAs89rREJSZDxA4Fregm3Es8Kq9O68GBZ1PP6t19VdnD6kKVjTc85g4bee0BVbtf/IeWNW+hzOw6la4ZwV3uZERZKAqq2ikdGAWOaVVNruFBtJpRlUUDYltgtXpLypD0nk8aclloqQr8rP0casMBPSE8FMD2TJkgjjK7wsEafo4RpIbEGfpvrGpn/39teenTrjnrFXn3bviugFHvr5u65nn7h+3uWbulOWLm4SB9z826b3yul9VDRrYMPXac7ZmIuG2Po3Ty2tTlY1TF9G5xWFuTaazQFfO0/P97MDdJpybhWEtE80XM4lWxiw63srGxXxG/ilCL581F2+pVp9u69vlXOBoYjadt2EoSfoRc9GglJ9GyOX4lkkvkZS251eDxs67evNTjwuLl19y+OtD7YeGD4l+nHzmGb6QjnsdyI0N4jQmx3BXMrgr6VuTOtb8hqQ3HGuGHKOONQ8m99GUIsmhp5t1cbQZdts6Uo/yi9R/UeWuzyzY/SpZyb/bvgCFGO88vmF187lvZ30gd8KYbBijYr42kvW1MUcL9adl3T/JRur1IUP/UW6VTH3eIUO1idoecVr7isVzp6/kl1LFTmCOnLQbrlvMfar70oJJeukWkucPlAe7utPQ8x3ocKft8hx5j8ZkOLdS/IITvqHwL+x48e/fvIlnTUpenVNxvqAWiNTLNnjPkTOYl83vVnwvmJSAWwnC1x/417vUcZbnbrHlOb3VLXb66sDXNJzp8Jeh0xc021O8zRcqsDucHV4yG59n8wVDBcU5Z3UfGfOMqaKbrgIjzlCCzjEBNyulk41EhYiP9FteGpbEUvdtZOwKUXY7iGSty7uZVGvPaZmJ15j/oj0tTtPklV+ctelcPr/988DEiy4oGnW8hhw5voGsIl+33Y40BUUjPkDXKtcvRnr3iyUBexRSBGIjeWSJtpZMefcgmaLdR5Zqm748zA/ko9ojZGb7++27yTJtOeUHkLfIDwGumjNYAcAeJqUiDGMxfo+DbQ1O1iefwxnIfTSpC0hBmt8uzJNs4X3kDC02/F+/P/uspuHjFpd5gFtuHz/v0vP5hce9f35S/tZx8cwmluMnPAH3zvGXgcwSCXMk/Yy/DBOSIv4mXtJCwgjNwudl+BdbX2kf18owRKm2k99v2g4a8UqOpfrliWgMq/koMeIs5xvUYdEBkBBYBVVKq8rSflqR4w+BrLAm0kU0rF2EsgJVpL+IObtVLh+dpWh8EFl1ydSMVlHRoMRA/wkmjYGV6Zclsz9QTGC/Bv0oOfpXlv7mxl3fX3ym9MkXo2d+v2sFefHIpPEWMuShpR8Jp4/U9u8ss0dVq7Z/5OnC/yxdRwaeN5XOh+zR4vwGyUn9WDo+zAg0C0j/paNEIidlsuegFjd/cDTCahcEC9ChDOngpgkTQIAy6qMD2KKGkA5RLINQbAmsiCll5mCJgDMvKcDYVQkN0gIRFFeC+p5KBD3HCvMBVVMJQwxYa6S4PKrNR02xIaRBRksMa4n6g0rAnGoZY/t+1GeYcjT+4jN/veBjafTMx58bt2Tl0hXjn318Bj/yDFJtm3i5bC/bSapPHyl81LDgSm1X3oQJR8ZfpO2ed3WDnnPGx8SUsBR0QpKjiT5J1AUtXovTwtyQtgRqAWZS6wEpVbDIhlintiFV91Smx1DLTrr0oV8tP3P5jIbfNM56eMS1U1ZMb1rKxz67IhxuGpb67IqCilNOZTmG2mryNvCtwLm40zmq1zOOjkJFEe2kTB5L8ROMI5CDoqUaa02M8kQePe5mBzWfCknSm5vntzD5fVLbjAl+mHemrRb2tdWbKsZNnjR+wkQaN14NusVtep0rxHqfEMpxmmZmF7AiDKOxSAMpkSmQQ6IDED8AwGDCcKe4rDSgDOgPx5dPq8gwiyM/hCud7wd2R/9KfkhmecwcGBc07oX1P5zVp/u2LAxI6eVjLPblZiTFGrLy1W+9nd68Eh1ci6/5avxNM5fdltam8oeIiRSVbn7UOvzL4vLH/6g9U1qrDbbufHkgq7UBmTeH5vb/WpcJhUIrLQdFyJ0xS5zdgboFRYXiT1CtAgS3JKizCxg3JOIcQsWYBBMKAvuKdFIixxL/1RCWGxSil1SXKrKZCTe7TAtEkw1DyGASbUh29br4feaIPP7SMen0obdeeumC3y5onkAWabc+yL95tObqmWsOvrT33fGfDpt8zosHVz/RrLUBn8znNDEiPgFrFOOu55hgq4Bhe+JqKcq3PnEldCBTxDL7ityIX7F6DTczDU4C+bfxPj8JFiLkKpNVD2BDxebZJpmtDpebJq+VeuBLDqcbBAx+qUJWQzaaALCN4yWLtZCh3aYgzqUpiK4Qc9CMtVgxc6ypsqF/UzDH+ph/77Lz51x2/rIHljc0LL1n2YWzFkxYumZZY+NDV4wdd9X8s5uvEoP3LmtoWr56+eQrL5+6dM3SZHLJmqUXzL7kwt1jrrqyeeyV8+gaSrCGt4LMCXDXcdTxa8RZMm7ZyTkwxSHjZp4mkDk+Pz1nSmZ87Jw5QR0AzgNo+Tsw4SGRdjiNUDrW3Dod+M7ptqKoos4Bh9OI2Pj1iI2XGuJJf9SPP5EGXFH4kcggIhELoLflL/3444/aR//+97+fY4Gcdn/6tvT778MLx+fIWzPY2HplL6oKvbhXMo706AVJyhjJRtl78CCZ1vaWqAjxtreovJgD+HWZVMXVgj2wlkvXAEUyIptrYTzr6UzFFQdOOVPHxDqrTlTq3FiOh24zvFmwKpFQynOcbeoAmH0dgkMbaGZVKpE9T4l5/sJITX0jBqzLk2DV5ZdVUiAv1rCAdqG8jXjyq+g30EWKPNKUg9mpB62yoQPcSxTdE2AefEEvD7ynietOMmfcK6fvqpgy9qnbRg1e+cH2J14cP/LO5nGjL776sXVLhww9svf1qTde0zxrZUXDwH1VqYWxfsmy0b9dePaKPhPuX/HohOfCybp+9aNrh/3hCvWcPpeNvu/Pwtmnzq5LTR45rd55NqxDUDwq7JZEms8dx6orxZ/EaBqqIhpUY4kIRqKPbtWwLO5cgVqRc0yCZw4bceZZw4edSe4dN2j4mOZhg8aZlg4/ffTgQb86fejpw0cNHTxqOKz8zBOHpZEgi1yAIhq4e5nXHbnULuritohFk5K1dhCymSTzmUb70HdRfV0bqa52MyHrpvn0mWrGRNVuZF7M5oXP1CYUudWwfnafWBSt6JekG7wWFlCpTyl95O0Wd36Yq+zHchSUimyGJWbw8lhPwDf5PGIyUY7FguWYuBvskGGGZIb5z3yVTHsNf3ZpG/66T9vw0l0bSdGGjaTwsY3aJxs2aoceO/j+nvsfGT1/9kVzXk/dlLr2pr98yB+kf6RteG23tvmv+8iUV/B7OX+3/r0fmrcMuG+F9nlJ8fOpY8j3cf4b/mnTHli5CHc3q+nPSMzh7I9nCtlRaRz3Ag3GlVFK5TPa5BsRL6ztxxMuNyZ3IRHluBpFWnF6mixGwCQ7LV+hNhPIdj/6Cj20sgUZXqQRMOpRxwiY1YiA0QCY7hKKxqghRat0MQImxTc9c/GycbeMGPG7i2+9f1Vp9fWjFy59oy48ZvLFa4R9V1xhFRcOXhVO3LVCO/3KAcMWzq0sP2d4uZQH8x7PTRPXwaQkzkGz74NWYtZ/jScLDmqtJHhwFbn6PTx4j48WkD2LtI3axkVkd/ZQz6s/ChhnKGdCjMMy842qS1oZLqHq0+FfWhSyas6crayMypOEj7Ccsv0ZMpf7v9U/ip32Qw3siMd63xFlDXQPlLFPGspwbA1hkNd9Ej3viBq2yLUJpcat1sOJCnaiotsWqQchlrH7ivqKusKLVaVoSnsfWPgGsOZhn3D5FX1r9dKbk+8QItP6bDPW+3dkIv38DiG1xLLtD6u/0tLx0hGpU04r/tkN0n6vcN8dq58Yqs0j47UnybHUiOGNFMueOCb5REl6n8WouXiGMDlCdAGSjVELsBySaJd8e/eymKAQEhADOrkCrlmvM2A1BGAcZjz6n9OU3Y5NRKsJ9PoBTNWl5Z927Emh5mNqrkUv2cFdwaogs5tCd1FOXT9t6u8vuGD9BWv2Pj95xIgp5w8fdr44H89umHrB76fsWTNsytQhQ6dNpWMEsCqmTDzFyjN1RMcqTBQbbVSBZpZIk5VEJ6A1E4VvJrOVYWkAAaBpHWzwHThAAE7Ky+IAtEzEBM33RvxGK1U6ioqxYsUoLD54kN9wkKzUlrDSYvQt8aP552jO+xSWV2GgEKCgVacggBH5AOZU4D4zyXSAmNQn02HLdthy1EzGGCqGJXwyfIsG5PnOVScuxJEN2ZKT+L3P3vrotOWXkentiz+8JNWvz7iLTaOXr1x47gMLL3x1y8GZkxOVfSbBGAfyKX67aS9XQWv7cYwyk53lcUwVsLPapjxdilZi7CQTYSRzYvCtkI3cSctHnVYYLnr9CjGeUlyCCy+UM1xglVUSYcYsfqDIsuorZJvLT60m2sAgW0JKHb26+PSxUgRQLwPvW7J6UvO8qeeMSyTjE1Kzhjx46bINT0ybrexYzS97bsrlDQ3r+6cqYWp3xofcMHt1k8N35dmLb++Wc8F1VGuxnAtTNudCNekeU8y5aGyKgKFtJmdtHUom9j9+hvhu4auz/P3fSOixBM0nbgFbLR/Xt0cfHHWMh7IlgHwCVY/hiSvQ9QzaPlaZ+uM8WX9c2klrJnvxyMVKCcZrJk37zdWk/rNqV99rJw2ZHTaZ0AWOjrk/vYyOuQfOPbeu5tzfai/AWOdrbeJqyQc75WwOAKeeBpK2UMlucaBFY8mzoqVG90beAayxRxlqdWc4K2cWsUgS/eESa3xhY4Ym7U3QmMTNgP8QAcz/78/5qb/fvGHIhH+8LnqIqB39XBr7EyB0zzGsc+eryNtgW//Hde7erqVyaMDyb3cUppETBzUfQY+hB32iWMmRMTMOdhu8TJMNgYPZpmdlcSY91wVTtI1yE5XD9AULy2cRGHiNNSUNhBqrKDw/NGpz84uFoyc9+GjzSO0ts3PIOaF1g/NnDbvhaj/1mcPeH2XUp+eUphseFaM6XSVmFuOsAJDP6tOnktrnvxZMhf2axde/bLuPPDfvwvK+g0HepQDzfASYB/FqM+sWgQhf36MufYYUtOoNdPTSfKNPULY6n2VP51bn51A3VyCnWh5bu+Op3z30zOvDR40aOnTUqOHi1D/s2r35jy/ufnzmrFkzZ158Masb7oRLmqykifhJBfs1ngS0Lw6SBdqdpDR7uB+mOXWRlirQBi7qOKQuZOAMTrqH0s7JhQDf/ZZ5k9HrS5NG7cmMq8BGHJhTqU8bzPV0gQt5ucBjZXAvS2v0foMMVQoTmSA74Umkg/m0ZN8PojafFvLnu0B2RfVVSROzDWVsvpy2OwvwKOhRZRq1KnCxLCEiq0IJJV3HymHCWEUDWGpoFkYbYmDnN4H8qMsu6Cah+kjbfrKYLD+8dOnXr7wiWRtcuYt8PIP5b2vX8cPb39jy4INbNk6cUTA3iLkWSJOMTpMKbh1HW7CAmtOVcpYwchQJg0LcpwvsTnRAOORjItsXprEK9MKFaRAjXKhL71wKhOVtdofTJedTgyG/ECZfBCaCnBF9QrgCURLzcAA5zHndyWElPaunbiT5sbu+6k4YgXTTYMgvU4A2CtVhVVx/bhD3E8vYVhLJdAx7++SotUzfhsp8YJy6ZKYvY5x+iXRDXwoha61gCgv4caacfTnPSt8Z2m/wz2s/bKKUxLBDIpMwUGc6kcSPE/2A0skEHib7AqWH6HoyXVxShaVtIEQ9aqwBaJ6Q1Zo+yGsNfYG41SmqQ1UOl6M3LRr7T7RoL2w6pXfl+ke2SGNz+fYkCrd9T89sDHJisLZYeAd0JvqtlnDpUvRvVhgFuiwy0Ce3MAVgZKaMOTmtZUUWKspKqXcCFVSp7s5ysXp9VcLGAqKDEipj94RKKyjbevR+SxVymjP7s9k86IyLsIJdPwvPBql2zbXtB1+0+sIGYpk894rUeZPPzky/ZMa/57x3nDQb7tPiuY9eBsb9wNEz7hrTPGloavSAvu+fctqL4nVZf6rAakrNCzgz5wYsOKZrVancUVUa7KmqNF+vKt1GeAsIb1ZXKuu1Atm6UiNBtHuBqahnjM7rXGhqnsYSSI+PZAWnuePEDJqJJ6l+Pek4t2P1q1MO0FiuTJNFey2EFQyM1UNF7EoddXWpjCV/6wBhuWP2A09d2HXMgY4xF/U0ZnRFm7O2vig/RXibXfYzh6fA0hNg8NjjrKBj8DYKDUsIEBzmYO5O8iHPnkpmlT406vXfjml+sLoz3aXqwmfn9W85vfCCc8Zd2NagV/t2zGU6zKWUqyCWrnMJG3PB2JklP5l1dLoSLUXuoAU0XDJjo6dUuzeRMHotdJlyjEVFDw95KUyjooV1iqtOKXSrdvdPuOPy3T/tOLRh959ptNPubnHYXd7qFie+YtVAqDAf3hbgaxo+ygl7OrF8IB+PQimuxeFkhQDkKdQf+aGCwk4lAV2J7g2WhiM60X00EYuEgejluUSnZiOP+zSJ+7SOR+nWnfhVttW/rjp7zOjy0pTjftuaa4zjs7qsQ9WajZFYuH8j/oo0NLY1saUQ9XWYCOvgpf0ElnZdCV92JeS4Ek2qNjgq7kpvzJXFzC6nmyL9MByGO62C6sQcU4nQkEcBNoZTwp60iTaKg+n7aGJEzobp1F0SJ517JpcApYYL8iE242lZR6Qx9X26Q/L4X+mc+V8bjkmqT9n887LzX995/kpx0tCmOZSIxpH3DCuxExkyBcyUYA0/sIsmvnN2JobFzPIPC0DD+Wg1elrOpxDEKatIE3S0mTBcxAgDWA05iMZFeyeRkINlc0m0ZNX8K+++a968WwYzEg3v169vY2Pfvo1ZEhXPXX7TpXNvuqFNZVLn5dr+/Wtrk0nWI8BcQesqvbSfKO0gk+woGxclTCzMON12LGlzCljKTQ9NesGg44AiJ7LV3NTRYOWp20EvrvZTk6eedFRzY3sfAmYWv1p8oP0N3tn+LZ9se1DzPwDm6XXLOgq8maDkm1ntoE+vua/iVrEs4kxphz8NC+8xHbeAnjJK8PsaJfjYPqSoIzpQjVEjMExbgiWlMdyo5fK2PJdPpLsWYHEMVqUK/RPwhUg5hgfMpcDenMPzS+r2SXcbq5dSfrK8s+3VY2l/+4zOBhmr5+TN2LvFx437uWp7/89V29MkGpRgdhZiza27z5Zq5BTgtxNdB3cslKF+u4xtwv91bIo78TPD0zVu7vA2G6o2OzzQUrqW5bk/w/h8ZpajOI5F3bDeNO2iHcZgfN6A0+WgpbE0XdFJO1lRK4u61IIhOixmbtHcuiBNXWSD83bSpULOUP+cq0V3dQy3kwb9aX9OdwNBp+VEaiNHMTJ6MmoiMSNJrDsG49DIZT0Jaa1uxYPNNPSabw/LEETcU6KnuqKbTkXPTVeq9xIuyl0EZw+Ro4712Nc1hsSfeAU2uRnWBXOrY0ZuNXU10IxqWkeZzaXmJTooIYsTYVQDdK58kjQa7Hj0E71tAKz74/Dy+S+9vmDpWE1kL1hI+XGdrXaQxiw/4XrRG/AnMJfRRPlKRi8Jjea66PU9lIlkuD7W/soYgLWx0XfCXXCL6bk8MobepzNv0HsJJ9rhhn+kfOECnDhZr3JxsFbQSojF/bwsi8FOsxhaJJfdUq1yZprTI5lbW9z0RECvELFzuiNFDaAfxRti9M1VQTC+3PeCscD/RRqzOjm7sD/Nw8FK+7Lry8X13iR2Lh9zb2lusMOo+vMBJ3MkTwRj1p9UOYnlYISwzycmk6MA9yXSDtrs14G5CjaqZ2zo0Haw/hqYSFyQbcZgZqlnDUYzkyoik2RYRmMSDcX4rR1NTbQZpHEF2fXXvz321Vf8BI2faTQ3gTdbyUefH9HWaXrN917Asy4uRgLdOhAopXHVHU4aHgwYfkt5fimg2Ggy42Uo1leIKLbPzzYqqOoCaaN1SrAOE9J9AGmDgDpyIa3P3eL3BQHDBvAVvtUSiYbhbRm+puGjHEgbSKXhNB5FANL6A5EyBml9YCGEI2XRTpAWjdAWm90tsyL7bXyet5CpStoyQbHIalFx6uStE4QeMW6XhgrVvQDc7o0WumJcZmfQ3gtU3/i5EqyU6KH7QmlP3RfCeveFFsEaKKBq/2cbMGTt0pN0YjDpYqjXjgzCHbqu7Dr2sf/52DMw9lAJWyK1oDD1yyahC7WTTOKALut6nQQ/Oddu7ZhHCPTUZH0excY8IjgPpo8KrLSgolSfR4XeKo/qdqVU3ia43P4Qa+wAUshH2ycX9zyhzpr2JE0ypFypekdvHTPEZ3It2XRHu4fs/KbD/KJcLex4Nr+YMb9qVLlx1V6UzKbmeBMtYV8h7P9S6tTF/e8O4v6nrbfVciAD661NyRDvsuVL6xRvnVIKgg22vBeQa+6Wd7tbZLcX9rgHX+FbLcWlRdjWHV/T8FHOlvek0nAaj4phy8ue4hK25d2yx5vb6Z1u+fLsQlThQliDhVF9IfJRHajVsZ4XosddfrIFKexly1/e69o81cW6zRjLI+prM5HuoQhXy83pYRfhJqpOYq8LpSK7BvqWQnip97zAsog+cNinY6Nhy3Ns8NkiuLzWXygkekFHJ9luJd3BUu87r70rdiLccmIX3eI6oAHnbbLS/AkriZHla0ktqX9I20dq79f2aW8/QKpEbp22n1Q/AG/fgk+1/fBi8Phm02eSCFZgIVfGzdWrY0oMKoaEVqPM2meltUQog/KsrMbap1cbh+VtJsHlCBYh4+TRLtNqCQYAgWisXKaFywuUMddI2mS2pLJVPjTpTqadLzHhjviCtHWeF8naP0aJ98o9E9ZP2oXk2337lA1TXiGnnUKOTbjsmZ3PnzWbLEgykp2+dPaKXaDCgWrDV829ZRdZ/vw1/Pe1P7WfFiNfZRZSLEh7eIC88sBcR/bUxaOopy4eiJME3CMol7DGw+0PYo1Hzy09srqiW2+PvYaG6N7jQxqXtaP+92PEgogWtzdQyPrQq8H8VC9jzJpP3cZIthoaoPsgTSUdsj93nGH0BncfZ6SncZZ1oWXGHQgWhemAPUyR9ULUXKHfbdSbcyV9zyPvkPHA82zsE2HsJVxf7I3TdfRI5D5JNQCCowwER7UxlRavwAF6DplzJ9VSYbfCyVIzyhu1ApA1PiYgBKuhBoqoelPdEs7Wo5b16XVJepEe3VdI6EFo9DDlXV3FBfP5iBq1hWSuf9cOH55shw+v3uEjzdtZR+nuXT6yLu/cdh/5WQO8o+2H0JZlmo5+VHaQ2WfmdIDL2BzUmrWZWjOCn7Wdk3K7Z6m8I5EwgJDZ6Cfgx6oLMwOgfto5uEtrqsa0Ruzax9qxh2auuWvZLdebth/6+qNDR7WDfOll110+m+U/AC/MljB/cZk+Itrgr1RsVerj2INcT8dSG2B9G9zYWNzwiNKKB+DvOjSncVSYfdWnAda9CMNZdXImv1SsqEc3UsRp9FFSUSJyailHs6yVejlt9helGIzuX07bjTvF3mrFSE5DVlq+XEH470ll32Gjh/VtGHHPZcnWjy++e1DDpmFbwuNH/2bG6aePGbJs5jU3igv2fqzeP+yiswb06xso7N/n/BnXNW99srjs2/LEkqrkoL6jFo0bNqe+aWzdoHGXTT++luoF2o9DioDVFuGqudtzO3KUd+rIUdWpI0cNpRV2ZS9zUy+93pGjFhUq2hbWvBCibiUmZ8z2QCGtQnR50l6MBAJdyrOtOar+49YcHeGjk/boeEiXw1N7bdVhmq1HlW40enbk0qMM6HHrL+1QUtNLh5LaLh1KtgExopXVBjVifSg1/t80Kski/5N1LOmrb96TdC4Rktm9bNAjDPSo5Ppxd+bSo6oTPeo60aOe0iMG9IjRx6kY9EgAPWIcPkkF+IN2GauhDFJUzkjS4i0Ol1EgVpWlSd3/gkM6uV5Oyibn5yoVb6+8IvbPtR+uMRgmZw85gUb9uAGkKZdGyU40OiWHRkqfuBqqApMiwt6GEy21kT5gUtQkMXkUTYricjQpBlJS1gMp691qYwcpB3WxKmrqlHAdZo0Wg1URBusj16oodreUFKPnoBRf4VstfWuq4G01vqbhoxyrojSVhtN41BesipLSvtXMqgCDIlzVt7qmk1VRbywmTcdupAxe1KfWWM1IRSVdzWR2NU/5z1ez51jaSVd1RS82SKT3BU52MUIW5qyxqK+xSJ81UMcN4LbnrnKs0yrX5K5yWVw5JakWAcLoWMsKABOhCk4HExVutW92VZU4KpkGtrxUcgBtlApKp1JPS1GgjDpp4qCI7KkUTbpokb2JUyiRY1ki1/znRM71BWZJmwtXeiLzHgOkXK3TNWJglZ4o/K6OVdqchqR5p1Msj9E4naXxnl9M40yCJcicEtcTr7uROhNnkbzO1G7AxJhSliE4KFdUq/EKlobRgOKpLIYWj1oK1FZlmiLws6RWT0nAN0pDqZMRnfRI9NyeTT2K8pgREPQwqt9sBAR70nERPTZ4/Aed6GKpER3UZZekiQu5PlyCO4XbwaXD6PmsTKoFgIyqE2kHJod6aFGh0pTIJINhR7bCQxESStKd6ddRuAMUrwJBVeXGJ68hkbH3TTKBfs3+rEkyrdOp4vSmhSDb0xZHpZ605orC7/5y2lMQpg2TPboPsiCMGbr4YVBOc0U0A8mSZFvDIas2Vw6RK3UqB1FoGJ2OaKOjsspYF4XJGh9N/PZfz08ec8emi59t/XjBiD9d+z7h2mtNd9/48tNnP33zrR+NmrH70d+/RFJ3zLp2/vXX8xvIk/ycSe8ySk84bcSY12atGDZc+6r1vhvvmXQ41mfWZQsnP/sYI/V5xDzvetbLQe+f1Ye7RY9tlrDYptFES6mMZ0I651bl9pYuJNWZKItq9tVbFKQDxQgbsKlDqITSLurZZnX4hNIwFQMhbNfZh4Y3A8Vh2q7TWoLhTUmmBYvySZpx9RDb7LE/F+G7RDZ76NelHeqSaYr8RvteAb7yccWwy6/p2vmqDDZ3Cet8VaKzVUW281UJ7XxVqne+wme3WJCR/AHduWjzBEOFuk+rpyZYJSdpgpWTk3SSblgGpryw96ZY4o8MVLZ9gs2xusy5kD2p5me7fVX00u2rUu/2hXMtKi1nnuEWp0sPbP/HPb+ykPFnmn+VGu6CXpqAkR25/uKO+ZZxVdhLvfN8QZJnomy+Rm1Y3+x8o3S+5fp8q/U1TvsDZci75XSV80Nhtsow86KSHmYePelCd06HOslqX5ILDW29L7nwUg42bN+vr7uo00GkPVxiXJJ7tCslKoASEUYJHQWWxJX6pJovoOwlSv8sWSKJFr8FEUMhjSdR87QODsv0hxeqDZihiTk6+SUxpFQfucXmETClUK0rg01SXd97c7jIycjVKU2FEitXa/VMuDcMWHCVTjRSlPVh9LBjLtVxQfs8IB0/LQcT8CceBuP9PVoLkRPXJTlxXfPPxI1n6Vv2RVJvtKE81pjtw8WtgZe//dLr9xQ3XqNvjZ2kPltycTym34A/cTO8fAnX7xQ3JjlxY/PPx42vy+XDs+l9Ovgtey/hxMdwrzW0RrRT3Jj0Fjc2//8QNy42lv5ZUn9+t6LSY7twsKalHXFj2lNKitIc2xmsgp86ZSrirPcFC6gWWbMe/IC1lVWFUwyB4YwyebtglZzukA2lQsCTlr0ealZXlKJvjqM6TzVJ2UcwBZsqqRM61hSgbmlsQBUt4zr3nxLff+N0y6lLP52pjB016+6rP5r5xCP3af888YP236Tp2nlL5lx3+eKrSGsrkWeIGxbd9cjlDTFl+Fm3r5u9Wrv/c+1zbQ/xtN5x18bH5t54K+Uz1ufOCbKghuT10s1LKY+r/gowCYuZMChKtFQVl4NJ2McIPKuhMJoRtT01/arrYg/2qVOK6jDYEQJ7EIhXkWsPhtwtBSEMKxXiK3yrpbJPBbyN4WsaPsqxBwtTaTiNR5VgDxYUVsaYPRgqKCyqqIz16WQPYqigRfQHaph3OmPOL6ZPRFVsnnQ4UsbSBX+mF1nPgeUuHcr29WLhdetcJr7TU1yZ8V2EZg+XYWyWZiwUGN3MwqZsPATTgwC/FusuSVRNQU5vQqQUyxnBnedjic7hgl46m+V4rHptcbZGl1Mzeu10Jt6uI4tLjZZnneYRyplH565s0Z66spXrXdkyQl5BMQ3ZmGX62MRf2KEtBzr00qptmAEaemvZxhMDNeTOAyXBZH0epcY8Kkw9yQJzjixIO12FKSoNtgkyAME8OiXWOZMKgp4XprOjqNfVmdMp9NDrEgmTcpHApG7r5IT5VXD1RNLnV2XMLw67vziuOktg9wfY7vcnWsoCxbD7I0m9REb1hHD3s6cXVwIZKtmjipEMyS67P1Kn+OuwwsMDu9/vVktyd7/H3eL1+PHx4vgK32opjZTA2zC+puGjnN3vS8G+LWF+Ia7F6ysNs93v8fr8JaXhSKfdX8kWoiJFDWNYiLyAzluedAjjPrAY8areFqMXP0+vi7KsFxEQ7X19JnaWBe1Tskuk47W1oD8dNJO4HiMFdJWKjVWKYveYuBJPqjJo0qrsWhRYW1ucBQjPfDnPCoSTNeYwnKw0o32n1uhPlPahmJDxkYGVcouQpz+2zaNWxZE80eLeyNPJWdBBlM5wrBOBsu6ZeQZFSDQLxLrRps1wz3xn7M9NHT0gJnHviylxD61fLuT6cwCPMmaBKxSrjWflheIZLz1B8YV4AJM7sf9yIIGyU6+iN/XyQEF8KN+K0SNG/Gr08OFnjh5x6ij8zc88ePDIWWc2/+r08c2CeOaYcWecPq6Z7qWMuFZcQ2PZUcwIYLFsY5VoK6fy3Fh2RI9lVxixbIC+EaB9RyTb1D2SnccFov9ZJBtXJEaX4KZrmtYOuAtX4TdzT103ci1p8pLB1UOvm3tHZeN1l9sZ7fuPnzvhYe04kr921mUzHyG+aaPIweAmLd/1h8fHDWL4lPbO0+3lyb12zyvpqXteqRGEpQayVW4xzOOc0t2TtdLLaq1uPfXO13VV9956pjF6hLvr2M/9z8dOA90efz5t022T065QARUgPzfubNi7ey/ASUb0o9vAxYKOHOKOcZdhlU4v4472NO5yneaGwYpU181VAEBgrf6iGXRWS92mMS5XGfU4lZwwOOwXNh9mh9agB6rn+m9YiL7M9izPYkyYXotfMAzPjom2xGwYDI/AyUhcjTH4qRbCiqU9+ThJ2F9YIWH1qOV9seZPVh2uXzT1XgLk3YiwtXt8vAdSPNctPI7xcez1B+sb4Ep76vYXjqPA+OXd/jqC5L20/UsaJfk9tP8T3+rgO9q/lvbCjnCX6E9QBGGWthIm3rCqHbsilxmtsVU+kEgYPWAxfh7Vm2O3mCRafKcUyqqV0j2E9hvKNnw2rx0XhnkBgfQuQhG48cyAUtK5gS32znYmNlz2yocf7Nk/22k2d/SwtXDa4mtHjTuXPjgAxNitQ6Z17mMr6LQWKcquQwuvM7Wx9WBNEh9XrlQm6BOIgwfUYuCqYjedTJX+lOHiIJafoxyLgimH7b+qWOe9X7xIvfVA6mXN9nZnr56Wz7Swh/yLRScOm8ea3oA5R7EeK/tkdvroBJgqfa4dPpErmz+ZyXP48NmCeVJWdeWYHYjcrYm0s5hW7mKbjQqdJGlZYE8cpn2/ikGVySoXpEkoSkkWQQRzSnOcxtOy0ONL3TmLyDlkyOCbosLMjlqdyrtqtRc1hQzdunH4dZXRlU2bt/IfkMvJCqfVSPK32sht5NLvf/J7hNu9geM6xjUvERfQXZXgnmDPUFSKAC2JrSzdIqrraGCADuzbT2zN1Djw2Yr6M2GJkqQkCFtpGVplRypGrS5mMZhQiVGBIoEVXUmgGpRaT4tFzq9h6kKvzJOxQ6UfPlUdUSCRD3Fpmguj21wV+sk5D/MOYG84dH/5c/xfManrM71NhsewkPDzXj3j7iPfE3d7wHz/yst3zBz37CrtX/ffeWzD0ZUdZpBgJrv4hbOnXQ9a309qzx7zCHq/LMvu7Ft3ONbn4YfvIBZVB1x9r1q6gNVWipp5ImehEnte5wwe9BuVJLF/spKfoOlXLJ2nxSWZLXon6Dj17fjpCZDbuq2EhfJ2WuGEzRQUPqUWSvjgiPyS3rJ/etszOclAO3sqBOnICxLXd9sfhNshviuWUlsvgv1NgBmyPTWccfZ0R9Shii3VteJmR67m6+QGw+vuE98R7RI+tW0bp7jiKucGa8piNNNr8VlcFtqGgYUNVdGG1lR+nPZ/zLWdvHWKuQ4Tc0Wwncw0TbfDdhLdLSbRDMaShK/wrRbZ68Z0XXxNw0c5tpOUSsNpPJLBdkKZzGwn0SSZMUe3U1NdmGuPBlCvjo4e/Bq5fa24Tl2r/i+fjScZ4Ul+HXwWNPpv4U/uQ5HgT8YLU0nm00/Z982/4Ptm4/sh4UWykT4/KaZ3CgHLworsYDGa2lHcIbHKefz7Rk9TkjdHQoFZDQdHRLXPhXfOJ9752g9fcDnXk/B6tJcRp1/PHFf4A6oI18OKV5Gn+z/7hHEhdBooP2fiN/D3fd4I7NY+ZfPH55i/zn0N16ug/Xj4X3Y14xnl2UeTo26AsQmL6FxdmPcp8KwzBpuw4kwYz7rUG/nphbksYZlNH532Igg93V1skKKiK0nI7m7ECRhE6hgH9kAZyaiE7SgZoWjrSacxO2D5LL51dUwU+wCZqTHhyJl0sjMlj8LvfFcORTsIS58PLzxK6ergRlBJYE7qxAV9938cgUH9f3ddBWMxCDeDPMmvF6ty+/uYWX8fc6f+PhbW38fSY3+fGffdfusDD95y2/384XWPbXxo7ebN1L+48MQhaQZJ6bV9Y/D6qj+SNCSd6ipMJLJSrzynk5DevjHjYe88rO9bCWsvVEFv39SLXK7o2nYIn9POnzHlPDw6dyo/yji3Wn9I+7guv2nf2WlAE+yNE+Eoh7OOU2b2+DRLp6ZTXXv55bTw03vYdrsWfSgbvVzHtQheq6lr/539uZ12CDcCbJgVphdhR9/DpcupbxCAlM3oh8uRcpujWilI4hPNmO88Y5bouUASWyv5aDtn6kMEngqZW9MhnjbILaINcgPYMZ82yOU52luV+hVDPJZtx2giJ7YGK0OcqUT0XrlO2pTewQrRKhuaog3JRi7bKRQfpGb2I/QKsMLhMi424tcif83KCjLyu50bZ5x27fDrHg2Se7VpPE8u1p5MEufqm65Rf9BeriIfpYOxBuVbEhr/eWn0zpvB1oykv0ud4AaSvC+ZX8DNHzJtoHIkn9vJujapeXbgL4lyb9ri9CUSCb0HADtFj9kD3+jzMvGJWAf0/lg9PzJTMbGaeL0zcj59YqxeE4/VeLRj/ZHD/6Ba01fnVPwvqDb/TyYlD58ibPPjU4TzbD6/8RRhF4IxO02M5ST9iT2oCrAdF5GThdg8Vm6KCvAvCNZI/z1byCP/Xv/EN1tE6cm7NplFU+T++9tf5gfBz1saT7T2OFm7uP0IL1+lTdN7+k8Xp8Pui+U8byLbJdzKdjfjPqaHAOvI+CfHqa2Czxc9Sp9jVQLWyn0sU0MpTdKAnRJO9vBEK3x8veTOFOvP64n+ksdbIbLAdv+BhFqG7kLWS7zUiw2uLNSDrRbn0yhtsfEErLQlUMA8UD0+BYvkPnSo2yOx+IPGY4i6PxyLlzo9mIinNPiC0iCEnacpBQLJ3h/oVfBLZ4wpDLDtqKkaMOaa+5SvtAUrGXqfY49T+7ynSbWtog8Hoj5dmI/FSedTzfXnTuE+0p9gV9WQ1GdV0ZikK5vmAjHcMji9dD6bI1ZcwzTVoroEXeckXWfF5las4QMysAbNiypJ0OSnX0YHzD7LT6Bhq5Qn0lW0nVNVDL7WtwoP+4IkwvypBvhaTUI9Bb7WL0GTpvoaRFMb0IOOriTlFFlN1hlPdVFr+vVOvsj/hnHmdzvzj95Z6WdYi+0vC6evRZzbZaxEjb4SSsXPrQNI9W6E7/f/mPAYUIkDn9Z3InmNQXIO3sNhbd1/TOpfSOFDv4S2Oof/f+Gph+0AAAB42mNgZGBgYJScFZnzriSe3+YrgzwHAwhcfvRHB0b/z/gnwsHHXszAyMDBwAQSBQCGCg1xeNpjYGRg4Oj92wAkF/zP+N/GwccAFEEBLwGTvAaoAAB42m2TT2gTQRjF386/DRIkh4IEKUVEZJEapEgpEgLBQwhSJEgQCaVIkCh4CCKhlB56iCAiofRWQZYg6kk9lbX0bBEPIiIi8daDl+BBxEPRru/bbCFoAz/e5Jv5Zmff21FDXAR/ZgJQQhV39Q669gymzRqu+udRckBNnUBXbVI3UTQNlGRO1VBS6yiqCnvmcZS1Klki8yknSZNUyGyqZVkvvbLHAfoDnD+NG7YL2EVENo+OHSIyy6TJ/+/QcVOI1FMhbtnLrHcR+Q8QuVWywPUu1QrnWlgwfQQuixd2BvC3uW+d77lP+jjHfXo8c5Y6Y8rI6Gr82wy8S+YT6jaH0EyiQW2YLTR0HgGf5WwZoWpjXbXjFfMrGYf+AKHUzc9kfSg9uo9Q71GXUODchnkIuC+YMCGOyFh/w6w+jSnT8naotcTL1HuOe0RqbeKSNbu4xbMdc8/R1DkUzDDtofdSM4j39G2eVXzMoEAuyLvQh9AW0Ra/vSfxgPWGPo456fezOJtyjd4XE98PwX9MZRZJDiNeijKDN/TuGTUkf5hV4SCHf+G5VpMxsxhHspDM7Cv6R98Pw69TJ0c5jMMMHtH/Neo9spv4n+bwH/KNjeY3xpEskqyp/lt0/I9cK9/HAFvkvX7N+h3mlapaBryvpDgC36kr1Juck3uQYnhfMsTbRl5QV1DSPeQFc4pjhevuMzNhr/rBO0VkX7kbdh85s8hz3UcgZEIECP4C6sPUuAAAeNpjYGDQgcIKhi2MM5i0mE4xRzFXMS9hPsf8g8WKJYGljmUNyzFWMVYn1jlsAmwZbIfYTdgj2O9wBHBM4rjC8YKTi1OOcxKXE1cH1ztuK+4K7i3cr3jCePp41vDc4xXhteJdwfuNz42vi+8dvxv/Lv43AloCaYJagnGCfYJ7BN8IsQlZCUUIlQjNERYSLhPeI6Ig0iZyQ3SJ6CsxBbEssRViR8SNxKvET0kYSEySOCNpJTlN8oEUj9Q2qRfSatIh0nukb8i4yDQB4RFZA9lpckJyJXKz5C3kyxTEFCYpbFN4oPBPcZXiMSUJpQylXcp6yhHK65Q/qSiopKlMULmnyqLapyaj9kk9R/2AhpRGg6aL5hGtEK0V2nraNdpndJR0Zuic0Pmhq6fboftCb4u+kH6Z/jODLYZmhhGG54wUjEqMLhn7GfcZ3zBJMXljWmLGZvbDfJVFiqWY5RwrMas+ayHrLdZPbERsvGyW2ErYPrBzsVthL2H/yqHCYZ+jieMkx3dOYU73nLWcp7jwuXS56rnOcz3l5oMDRrlluJW59bktczvn9s1dxj3BfZH7Iw8BjxwgnOSxw2OHp4PnKc9XXjleV7xn+bgAAAgTlO8AAAAAAQAAAOoAQQAFAAAAAAACAAEAAgAWAAABAAFcAAAAAHjanZO9TttQFMf/jmkIKs3AgFDUwQNDh8Y1FCHElrYJQoragaosLMYJITQhcGO3SqcOHZl4hi68BwMfGxtS1SeoeAb+9/hgCKEMyLrHP597vu81gCn8hQtnbAKA4UrZod4o51DAL2UXNRwoj+ElLpSfYQZXynmUnLzyOH47nnIBr5xj5edYcv4pT2IjN6v8gvxTuYjPuT/KJ5h2A+VTBG5N+QxF95vyOVnrvHRRcg/xAW20uGKuH2iiAY8r5HdIitDDHgbs01ptU+vhiGseAea4ykpzeE3tCq17tOswjof3ZENvK0OJ38MufHyirknysEb9Lvp4x50Os1bIkew1KA0tylyj9l7mYSlh5JRtRcGj9l8kbl9rsR6+eN343HiUM4+HorVF2vnE0puttsu3wVfqetgamUUoPXliNeB7U7SGsiXRYqkrnX5bskWisaeQfu+wTyO2Dcoom2efHYzO7eHZ2/OLqV3GGz7f5fG5P+wdqa8v1KXlU/1i9ronXTVl5i3apvP3JWaX06lLN03pJO0/udNHTDs7qQrjhLRLv4Z97M27f67zzBD8t+7bWL7U3OJuZyhmn5o6VjnHKj7y5Kty023Mde5u8oRtnlhvUKptSJ0Jo9n8C5QB3jK3ZSuXsv9mUfrbYhUJ88YyIyN5E8paFnsN+3K7jdyNzjVUj7gceNpt0EdMVHEQx/HvwLILS+8d7L3se7uPYt8F1t57F4UtioCLq2JDY6/RmHjT2C5q7DUa9aDG3mKJevBsjwf1qgvv7825fDKTzGTyI4q2+uPDx//qM0iURBONhRis2IglDjvxJJBIEsmkkEoa6WSQSRbZ5JBLHvkUUEgRxbSjPR3oSCc604WudKM7PehJL3rTh7440NBx4sKghFLKKKcf/RnAQAYxmCG48VBBJVV4GcowhjOCkYxiNGMYyzjGM4GJTGIyU5jKNKYzg5nMYjZzmMs8qsXCUTayiRvs5yOb2c0ODnCcYxLDdt6zgX1iFRu7JJat3OaDxHGQE/ziJ785wikecI/TzGcBe6jhEbXc5yHPeMwTnvIpkt5LnvOCM/j5wV7e8IrXBPjCN7axkCCLWEwd9RyigSU0EqKJMEtZxvJIyitYSTOrWMNqrnKYFtayjvV85TvXOMs5rvOWd2KXeEmQREmSZEmRVEmTdMmQTMmSbM5zgctc4Q4XucRdtnBScrjJLcmVPHZKvhRIoRRJsdVf19wY0Gzh+qDD4ag0dTuUqvfoSqfSUJa3qkcWlZpSVzqVLqWhLFGWKsuU/+65TTV1V9PsvqA/HKqtqW4KmCPda2p4LVXhUENbY3grWvV6zD8i6kqn0vUXCWqe4gAAAHja28H4v3UDYy+D9waOgIiNjIx9kRvd2LQjFDcIRHpvEAkCMhoiZTewacdEMGxgVnDdwKztsoFNwXUT8y8mbTCHFchhy4FyWIAcVhUIh3EDO1Q9h4LrLgb2+v8MTNobmd3KgCKcQHUct2DcyA0i2gCHRClgAAFXvUusAAA=) format('woff'); font-weight: normal; font-style: normal; }
/* Generated by Font Squirrel (https://www.fontsquirrel.com) on August 24, 2016 */ @font-face { font-family: 'open_sansextrabold'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; }
/* Generated by Font Squirrel (https://www.fontsquirrel.com) on August 24, 2016 */ @font-face { font-family: 'open_sanslight'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; }
/* Generated by Font Squirrel (https://www.fontsquirrel.com) on August 24, 2016 */ @font-face { font-family: 'open_sansregular'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; }
/* Generated by Font Squirrel (https://www.fontsquirrel.com) on August 24, 2016 */ @font-face { font-family: 'open_sanssemibold'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; }
@font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: 500; font-style: normal; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: bold; font-style: italic; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: bold; font-style: normal; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: italic; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAVs0ABIAAAACvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAFbGAAAABwAAAAca2+GxUdERUYAASMAAAABNgAAAcJiI2RLR1BPUwABMTQAACniAABXJNiqEs1HU1VCAAEkOAAADPsAADDo6mgGW09TLzIAAAIQAAAAVwAAAGCgQ7GSY21hcAAADNwAAANEAAAErjOWwQZjdnQgAAAR8AAAAFIAAABSA58pmGZwZ20AABAgAAABOgAAAbxz9x+rZ2FzcAABIvQAAAAMAAAADAAIABNnbHlmAAAb7AAA7z0AAdZ8g/hk8WhlYWQAAAGUAAAANgAAADb4OasBaGhlYQAAAcwAAAAhAAAAJAqpCmtobXR4AAACaAAACnMAABOIlL+xKmxvY2EAABJEAAAJpgAACcbFY0r4bWF4cAAAAfAAAAAgAAAAIAcPAt1uYW1lAAELLAAAAnsAAAUBq2XwZ3Bvc3QAAQ2oAAAVSgAAL7XjqEIbcHJlcAAAEVwAAACSAAAAuIWQbTMAAQAAAAIAADYAoJBfDzz1AB8IAAAAAADE8BEuAAAAANDbTo76IP3VCRoIcwAAAAgAAgAAAAAAAHjaY2BkYGDP+cfDwMBp/kvhnyunFANQBBmwPAIAbQ4FJgAAAAABAAAE4gCPABYAWQAFAAEAAAAAAA4AAAIAAfMAAwABeNpjYGaZyKjDwMrAwDqL1ZiBgVEeQjNfZEhjYmBgAGEIeMDA9T+AQbEeyFQE8d39/d0ZHBgY/v9lY/jHwJDGPouJQYGBcT5IjsWKdQOQUmBgAgB6dg4bAHjajVgJcFbVGT3vvXvv/7OJdLCAogjIpimLKFABgxAnLBFLoYNAJAESqCGsBghCIAIqpgmbBkiAhH3TRoKFEgZoq1RF1GmK2tFhRlTKUqEs1rZDkdfz3bz3N/6aoZk5c/633eX7zrfceIXIAP+cq0DIzgcocVOwXO3AL9Q0PK3PY4q6gGwnFXPcIhS669Day8SdagmGOEvRxx2Mbs55rPR+grv4fi6xl3iKGE8MIHYSi4jHiCwi06nAQmc5+qhmvDcFxaod5nubMSIyFDOUz3HO4oC+H4t1XxxQRUQ+r3OxUu/CAbc1TqhJSNYNeb8nDpgLfFZBZCFPXbQ8VzfFPnUYT6i38YDuj83qElpFEtBX/RU91btoro5htPMVtngd0JUMbwQe83LguIMwSQ1CBte4TrXCWDUT2aoNRrvbkaim83cG1jvHUeyc8Nd6X9nfuyPNsFplYr2ah9H2u9nIdit53QiZ7io047O13idob6JI9E6jq/c+7iaPdLciyTmKveR6+hmstLY/ikI1BnPUKjypj9HubyPBOYRy9RdM9GZgucnEZK8AG7xtmKeexHyxvcnisyxkeYY+64sR7mmkEMluP8xXOdjM+YY7/8IWjj+e9xd4pXjB20i/voenTUNkmB6Y7b1KW4ndfwCRQWgivrB+qAX6oRHxrtvav0Fc1GPQOvRDPFRX7kd+0xe1YX1xBL9Ve7DG2v0HYI5Sh+IL+qE2nHf8L5x3UE4+QbxBvRbH/BCPQgykLUaJL2pDfKEWoNyy7FfmjGO7d85fJ1OjOops2b9aQY2IfWSNN2HRs2iqTqbWRW96MW20CKCN3+I+15H/QF5NvkJ+iz7o4Bz3r5PfpD12mqU44ZXRFowR50O/UOJEtKpG0t49sYea3ShxQ54k7I7Dbss7yA/hNrcJWogfxZbxrDL9al3K2MrBButX2jaeI3ORHcmgXRiDEgcBh9eLbVwyNupkxqyNG+GDAa/CLVYv9Nn/yxLvEnOiMevfIO4l9uLZqcYOXcJ4KvP/qF/GEvUMRumZHGcP1ooNQy1ILIge7V5FT3Frtu+2QqqTjYe96djoJaHAm8zYHIcC2vtldx5muUAfbx7vaeS6U7EBuH4K+LaEvJs8hdyFnO5G8Lb3EUpkbolfdcXfZBr5Fe5z/hG9ANCd/e56GBq6E/0tYc5UWajSLyHBaox7Ew3p8ZgtOVN0oLsgKcyXai5ybEzuwmHJm7xOlH2InfQB7ou5Ui/DPOo7V+Lb2u9ZTFOjMJl7L3MnYr9KZr6Te4dR6f2N8+ZgjDz3LmGQvKOKUWDfE+1NQjebj5gLvYvMcRKXb6K7fS+ZY8zkt1IPOKaejxmSKxkLc81avMg9Vtu55Buy3FNr8Jwa7FebwegV5iT9D/SwNhjIZ/SN7NuunbEQnYHu0c04aKahh7VFBQ5pzT1uRZXYj78rYzZ8F8kyXqQ+9fcG7SjvClrisC5DR2vDXUGuC+xn84HUGxnzClKs/fbhdT0cr0Z+if2RAuw33fx/mgocVGewl2ssigxEtTqNVJtvJmEcfbDLS6OvV9MPzBGmLW3eiHV0IbZatOOzZ5GgP8Euey32EA7qFXXeUbTO3D5N7KeW8Vl/TDWjsNVMRpmuj7bG5bcDCdrcPEt+Ak/G8mqGf8bOn0wfU9e21jG3Sr0zH+Mec5rjzfIv23VwXhtX5Mjt2G1WY4M643+rkv0vI+3xZ/01tqv30U71QouIwWljcMw8x7yxA2XRbaiOZLEvuAs53mfMDaIz+lq0qp5nXF1ES+8K9VTD9er1RF50IP0gzxl3kVs53wTaL5hX38r+ogs19DmWMn62EAsZQznEDuDa3URH8Z+1VbBGfQt+wx5mnRpP7eZTg1m4j3uHKkOV9x+Uie+t/el/8YH43u77HF5XP2f96up/rVz/GzMbw3Qyutt8zfGjjbGP+imLdkSl+RNtfpW1+veYHdYL0Yj4yeYliZmQqRfxmbmKtvohtBTdiO/0UPJErCFvl3pg6uMedYA6Clg0HlurrK0X10aNWp1sodYYX+HawjGtfqkh20vF1bswx8XqFPOi5LSQ4+2i1rFnI0L7xjisC4FPY0zdi/YkTqxW4zlYo8ShaFHixWq2CC28wWgS2inGxRgifZpJRIr5jJoeRl+0R2eVxLW5mB45hP5mOrpHjuOwWc9e7QqWquaYpXeyX7kDA7ieFZKzQpuFdhAbSW8X1pF4rqtfCLjlTZ7fnG/eRySRG9f1nL49yn6ghFzFOC6qq14H3LTO52E9vBnH1+Ggft6Ma9fnH2K958Zi1RSIdmJsBuxWEfXZL6fyHiPd7crfm3mAqa45x7j90U2ge6DcJCBPwJ43gXV5vNRmZxw6kUe5GZjgPoUkdxg6Mf8OYJ81wl2NVd4mbNetsR1n8GDkA4yxZx+eidgrZRPjvPUo8VbjYfbTvb2xjO98tGDPnm46ML/+ClXRsdjHPqiruZ35RXrCaRiu89DWO8d6dwfj8hFk6TaM8y/Ye1dhjOQKdZka/BGKTStMMCeRzxjMZW8/Wa3ku/1RwbyUyLG2qbHoF83heiL+i1xvpj0/NcOjqj1ran30ZN+wg2ud5ZzFXJXC+BiDRFNeA7FNtDOeiD6IVHc/0lh/E9l/J5r5yPSusY7OQZpT7Rc5L2OZV45iL4/9yyJiLs8i9TDFm+Wv5H5T+azAeYs9+3DWxz4oVbl8no9S7q/UO8nrvTwHkp1PmVuPozdrTCnPd6X6Gz47Rezi+bCf5Uzm37WMx8GqNe5TLzA2B6A57Xi/+inuVW1xm7obQ9wveV76EguIFCKZ6E1kE+nEw8TjxBAvHXk8T+1hP9tHvcIck4SDkre9v6NcdyR/zLOUzGXo7/twu1fJNXA+ux6y9xLr/lGu9RR66zTeu0ycRT5zUhvZY6QH2kUe5T5Gca18Tz3C31E8YFqwzj2Iocy/cm+jeo3XTandRrxOwQDTDKUm3b6r9Are607kIM0MJE/Fz1RLNDYj+U0Gv/01Nuo7eeaq4tzDuP8luNf04vwchyjVq9CA6x1r55N1cy/eEepU7F7CHDaVmktAOnuJNPpuOjUymmfSdSqP/pb8IGeLVO5pE5HLfmYfeT/y2Wtu5LuLrU3GMq+8Z/U9UjROZBPphNx7nBiiJtN3nTHYvMY1rOc8/0ae87lf6HxE8BzCvuGasNVHvv+hhfhYNFMXaGOroVpwPvXPU0fbyZ8Sx2L6iYdopzZEO3Fjfwf5350nhNVubVgd+5uJDcT7XEsDoryWrleKtkPY9Z2qpfMQovMQosHaELuEiN9HABsTsqcgJmKI/1/LYvplDQpj58jw7Pa/urKipj74PeijBrE83xRL3Er/d0H+Hq8qblyw/TB7S/t/GNbYGIdn0+BsGTtj1pwrl4e1Mzb3xWCcmjPg8987611CKzkXhByrseE5Tfx3j1+gm/vl7o/9V9Tr/nWV5vdhLe8Q5iDrO7FHkHfENzbfhLlGbCu2Y16xOuJv63PRO30g38j90K8Sv7GxK4PxzwVjngzGlRzQL8h/Mr7kLInLk8E9zmHj9VzNeDanxNV3xkjRfwFLw+eWAHjazdRbUFVVHMfx79r/AyqYCASi5nadjaBpqWkpKKIIXihQylLhKGJoFw1JpVFrvKYGZt6mi91R0IpMhKGLhjWTU009NJMPTTNpefY+z00zXWYqz94tgZx66bn/rL3WrNkvn//8f3sDQu9zE8rsWK3mpnruIavRnK+xg0Tsa6+4gW1quzqojqhj6oz6SQXWcGuqVWl1W59bX1iXrZ9FicgASZFs2Sf75Zh8JRflm9DehHRb2TPtPfbvI8t1sk7VGdrWjh6tJ+rJepou0CW6QW/XrfqU7tDn9PlwQjg9nBl2wrnh8eFqx3ISnRQnzRnm2M44Z75T46zO+fJH67cLf4b8IIgHAfT5NM09vmbVbnx/WFl9vs+M71vj47pvt/EdkBb52vgINdrYhfYOu9n40IN1uh6itc4xvkk6/7qvRZ80vrO6+1++SJ8v9R++VcanjE8Z31XjU6jg1yAWXAi6gs7gRHA0qAwqgrxghH/Vf8k/7B/yd/l1/kq/xo/4i/3iuBd349H4lfj38e/infGO2KexplhpbIJ3yRvr5Xo53igv2wt7Q70sL91L85LdS+5Ft9097ba5Le5xN+IucMvcoiu17hQ3KfrgD/XRSLQquihaES2JjommRgddbstoGNjVf1Noq+zsnfv/uBKtpGuH6lk9Wf27lJk5fbP/7+rtMUSCyXI/+jOAJJIZaBIziBQGk0oa6dxIBpkMIYuhDGO4+QZGmOSPNKkK45DNKHLIZTRjuJmxjOMWbmU8E5jIbUxiMrdzB1OYSh75TGM6BcygkJnMoojZFFPCHOYyj/mUcid3UUY5C1hIBXdzD4u4l/tYzBKWUkkVEZaxnGpWUMNK7jf+p2hkH/t5lhd5nVZaOMEbnORN2jjF27zDac7QTgeddPEe7/I+Z/mA83TzER9LMRtZzQOskTls4TjreURq2cRaWU8TL8s6GmSDbOQhNsvDslbWqGapp46tqom3+JBdrKJe6lSJPKoeYx3bZB61PMlejqoMlSl5ki+zpEgKZAbnpIFP1HRZKFVSJuWyWbZICY9LocyWUvbwDLs5wNMc4jBHOMjzvGA6fI5XzR/nFX5RS1Q1G1SViqhlPKFWqOVq6V/QjwzBeNpdkM1KAzEUhRNn1NYfcCkEIWGoLSXBvatZZArSzeh0kevCH2zBduULCLMRhix8ljO76a6P05cQTVst6iYn51zycW7A9BDt3NWcv1PDP99gz+p2dH9nwLWU2dSCPxjsaPC+Moi0HCDqDG5cQtJLfzX2ciCfH8eIO2sNg4mnCwlWuGk4R04hJbG9ToguDeIVJl5jPAXA7BswWwPC+w+DXT2UiM5zd+1QWoHUklBKZljkDgsrFJHB3rZj0Nfp6abtvsZe36C1IRQOqQAj7zcuUSi9Fz5s8OMXf33D2f8g/R2EH8gaXubrSZkosQoSlajQkKxBWw8Ll4WKKlQ80OhmBocavSBHuu7ySvrCzVMWs6emxaqRm7NutHwhgSTAZdWcsG222vJYI60ayW5d3WNWzFkvWloyX1htiNMAAHja28CjvYFBm2ETIzeTNuMmHkYguZ3HykBTToiBQ5thO2NupKuRLJC5nakuPcACzGIuS/A2A7NYmlP8rMAsVncriJbtbBPLY6yUQSx2uF6OQCcTVXEQi9NSX0VKAMTigqvjhpnHsImXlx3oHAXX2kwJl00bBBmLNwUIMpZsagARBYKMpZv4ZYFi+bKMpQCsACuXAAAAKgBoAFoAYABWAKAATgBuAIwAyABOAGAAxAAAABT+YAAUApsAEP85AA3+lwASAyEACwQ6ABQEjQAQBbAAFAYYABUGwAAQAlsAEgcEAAUAAAAAAAB42nXCf1DahQIAcFNj5ow5InNkziFDZIqKyBgSOkAldWqMmBlz5hjZIucjHqERM/cVGS1DRGRIy8w58sycI0dkxMzImZk5M38gIvLjK/M8z/M8z/O89/56/737fIKCgir+Rx80/Az1GUswLXg6GAyJCmGESELuhJhDJkM2QiGh3FBlqOPZ0mcNzx5ABBD9obhDtw7pDnUfmj10EIYNkz9HeE70nCscH14fPhq+f5h3uPuw7fB2BDGiLMIY4Xme+rzy+Q1oPtQMdR9BHmEdMR7ZikRGlkXKIrWRlkjP0aCjsUcNR/dhJbD+F2AvVL3gg+PgfPggfPdF+IvyF2ei0FHNUVsv4V8yvLQZTYzmRw8fgxzLP9ZwbOTYAiIawf0vLWLr5fKXR2JQMYyYwCuxr4zEkmNzY3mxguMxx/HHRcdNcaFxojh1nO8E/ATphORE94mNE3tIOBKHZCL7kXakE7kTD41Hx1Pje+OH4ifjffEHqCgUDpWLKkeJUU7UzknoSfRJ6knOyeqTfWgMOhtdiq5BK9Cd6O2EsgRhgjKhK8GSMJ0QwPRihjCTGB/mIDEqEZNITmQl8hMdidvYCCwKS8GysQLs8CniqaJT/FOyU9pT/UmRSZik7CRWEi9JnORJBpK1ycZkW/JsMpi8h4vAxeJScRRcbwomJTuFlcJLEac0p3SmwlINqaZUe6ozdTsNkhadhk2jpDHTytKEaUCaD1+I5+GleA2+D2/FT+EdeDA9KD0mHZNOSC9M56XXpEvTx9Jd6VvpB4RwQhwhlZBNKCHoCXOEzYzgDGgGIgOfwcjgZpiIMCKKSCQyiWXEamLD6bDT/adtp6dPO08HSMEkOCmJxCBxSUKSjKQkGUj9JAvJTnKSAmeSzujPDJ4ZP+M4s0EOIsPIaDKZXESuJNszCZmFmbxMaaY6syfTmjmbuUGBUGIpBAqfMvkq6VUjFUrlUUeps1Q3dSMLkhWdlZrFzGJnVWQJsiRZvdmR2dHZjOyr2cJsXbY5e/ss6iz/rP6s8+w+DUFD0bg0Dc1Em6ZH01H0JDqJzqCX0Ln0KrqIrqLr6J10O32HfsCAMKAMLeMOo4cxw3AwPDmknOyc6hxxzmCOJWckl5hLzdXnhebF5BHyCvN4edI8dV4fE800MKdeY75my4fnl+c7CyIK4AWCAlGBtGCjYKcwv7D7XOi58nNd53xF7CJu0XAxpphSXFRcUSwsBooPSkpLJkt8JQevV75e9/omq5zFZ8lYctbBecn5ifOe8/tsKDufzWL3sgfZljfgb8S8cYsTxqFxyjiVnH7OEMfKsXMmObMcJ8d3AXuh60LvBU8pppRfOvBm2JuCN81luDLzW/C3Yt5ScyO4eK6Cq7oYelF6cejiWDmivLK8t3z3UtAl3CXiJeWloUvWisIKdoWyYvLtiLdL3jZWhldyKicusy73X7ZfXuCxeQKeiwfyNq+EXYm8Ir+yyy/ni/nN/G6+653cd/qq4FWyd0PfbX534Sr2qvY9yHvS99YFkveD39dXk6tp1fnV09eKrmmuLVzbqgmviapB1qhq9v5lEgqFux/IPpgRoUVckVjUK7KJZv9tFMPEOHG+ePDDuA8lH65LEBKGBJCM1iJqa2qltYpaTW1nbV+tuS6qTlLn+ojxkeGjfWmYFC6tkFo+jv5YLIuSGWUmmU02IZuTuWTgdcJ14LrquuH6en1qPaWeWa+vD3yS9Anhk94GRAO6Ad9AbmA1XG2w30i6QbrBuNELwIBYAAsQARpQBJQBlYAIkAN3gEHAAowAC8B6I6exvFHc2NzY02htnG70yJnyHrlVPivfaII0IZpwTcQmahOnqapJ2tTc1Nk02GRvmmvaVIQqohVYBVFBU5Qr6hRKhV7Roxi8Cb1ZfXP45qgSoxz4FPmp+tO9W9xbE58RPxtoTmqWNy98jvu8/vN9VagqUhWjwqgIqkIVTyVVaVR9qlGVQ7XdEtQS0RLbktrCbKlokbSoWowttpa5lk11hBqjpqhL1Dy1RK1SG9XD6in1emtYK7w1rhXfymjltopab7V2tw63zrSua0I1MRqCpkQj0Mg0Ko1BY9SYNDbNnCbQFtyGaMO35bdVttW1qdt62+xt7rY9LUyL1dK0ZVqhVqnt0vZrLVq7dlrr0e60Q9vR7dR2Tnt1u7z9TvtQ+0j7ZLuv/UAXrovSYXRkHUtXpRP9X1IdoGvW6XU9umHdgm7nNvx26m3KbebtuttmPUJP1efry/TCDmZHSUdph6hD3XGnY7DDbog0IA39X7C/8Hyxecf5JfPLii9dnYrOra9qvhrvonTNfU35erI7qbu529g90u3o3rnLu6u8O3J3rgfa09MTuFd9b+De6L05I8yINpYYhUbHN6RvJnpLe0v7kH2KPlOf7dvcbwP90f2qfkv/1Hf47xq+sw6kDsgHJu9H32ffF98fGsQMSgdHH4Q9oD7ofOB8sGfCmUQmnSnwPep78fe2oeghyZDnIfRh4UPpw2lzjLnQDJinzAc/lPxgtUAsVy3jlt0fxT86ftwapgyv/1T607AVYi20Nlunfmb+bLJhbWyb8lHoI+Ij4NHQo72RqpGRXzC/yH/ZG60e3f01/1flr2472W76LfU3wW/DY5CxwjHF2MTjiMecx32PzeOQ8brxg99Lf9dPoCYUE+AfzD9m/nBNEibrJ6f+hP0p+9M1RZuy/JX71/R01fTCE+oT9ZPNJ7szRTNDfyP+lv69M8uatf4D/afmn7m54LnSOWDOMY+aJ80XzpfPC+eBecP8wAJsgbRgXoxbFC/KFuWLzYv6xS5HmAPnYDsqHEIH4NA7BhxjDpdj3bG7FLmEWaIucZYESw1L+qXBpfEl99K2M8KJclKcbKfACTgNTpNz3OlYZi6XLQuXgWXtsnHZujy1DLrKXDUuhUvv6nOZXVMucCVoBbYSu0JYKVwpXaleqVtRrXSumFdGVxwrG+4gN9yNduPdDDfHLXBL3Eq31t3nNrun3G739mrEatxqw6p+dWB1bNW1uuuBeqI8sR60B+cheqieEk+lp86j9vR6RjwLni1vuBfpJXtZ3qveBq/eO+i1ese9s163d8O754P4YL5YH9HH9LF9FT6BT+IDfCqfwWf02XxzPo9v07fvD/PD/XF+kr/IX+bn+4V+mV/p1/q7/P1+i9/un/Y7/QH/ln8PDAbDQRiIAJEgFsSDZJAG5oMskA9KQCVoALvBPtAGjoEucAc8WIOsQdei1nBrxDXqWu5a0RpnrXyNv1a9thPgBkYC44HZABjYexr8FPoU8RT9FP+U+h/PHMEUAAB42rS9B3wURdgwPrPlLj13SS6XBEJyqZAEDnIpdBBBOgFpIUDoIUDoJYGEIh0JhN577xxLFxBUiiJIAFEUVEQsFAUVQcjd3Dczu7e3ezl83//v/30/5S67Nzv7zMwzT3+eATwYCABbnbcCFmiAN/ADgWCk4KfT64PqWf10VlBOPjX005t++pcDK2iRbWXMVQ4xkY170AuAL4B/4x4CxwD8pMCLX1rxy4t+WX3uCn7iDX/xBqOzBtytXacG1JtYvTfUQ9YE06GJrW5vyJzPQH+gD6DfA4ZFCDJ2O299vY3X2iczhRV6psiey+TOZXIBA1Y7/oWNKfz+oIGgCQgkPWsI5B7g9MMXfgRODe+TnG26XeV5Dysst0Jz7TowlrWwaRmpoYYQTUwCrDpSU/J+SruaNdulwOVcldcrYszmGFPNmgDgd5ZxDeAPGgA4PGMGYGXNVqYcv8iqLbeyOqtXee06wWxssMVIPv4O6cj2exLSievHj0OX4IVS8oH76IofP4ThrgKiQBlwQecEVYcvdM4LOgh/6SICX0SQQUT6MXiwJdZIc5gAWHlAXLk1kq4Z/vQtt/qaBS/Xj754zsvJZ1C51UtnDaGtQsutQGcNo3eqYejxGsQGx6abgk34n4Ul/yyGWNZkwPfxlYn5E11sP6C9A+o6o4ewRtaALNgga2DWzy87Awd62n7gXdigM7oA16A8uKY3PNkXbkL0X1/Usje+9xKexNMIIBjrqM3aNQtAMigS2JSaeDDA6mOmg/TGg/RWLZvzIhpfRAdLFzH4IobMBRPjTRbeWycEQ3mwjE4Id13F6KxR5fhTqCHfw0NNS0isBdPTMjLTLYZq0BCblhAbozGEhHL4IkSjNcSm458tIaGW1Ax21qJj9499ui/P+lHh1gULNy6BfTZmXT086LO7Rce2LjwMB49c0KTlJ2u3fh5w+bLut0vrTy4vKZpTOHx5/rbPAj484//ThXWHVuFx82C44zE/k7+Ad1sESABpoC4YCqzpZmumuTLKxuGLOLL0eLf4lOPpEXSccoBG11WczhqJ19OM/xCSXLcjdUIdzjXiYILkkTBEExuTkG6kA2sExVFD50+VfuEToXH45n83bywp3tZvcPeug/K7dB7ClGx+sRX/33dw926DBnfrko+82jKX2nKrpu/dO7fltL273tf2LprYt3XviUUDbTen79n9fkv8MZfPLZrYv3Xf8RMG/FabG1Mb79wCxxPuGn8eVAM1QDqYKNTMyCSLWVNnNZaTz2hpL2vwXGicExOML4KdeyIMX4QRPPDXBBMKYxC/qolfUfKCC3HinRT6hemEYFEiA8UEC6EBgRBm4GXXGmMTAyCZKYwhwakZmTBRS7CDDTFmNsaNyeTAZd2zjq2ev2/HJrio58hplxZNybo2tvz55PV7eu5tjoYE1Dp/pM6cGU3fLcjpP46NGLK902phc8mi+SWo1tIP/t3725IO2beEoWcm2N9q3xLeDozdtGLGRi5l0o6BtUa06TBkCtknhVwzcF9DMMcPWDmJ2lAiE5Ruua/P4fP4segarL4Cty1FScxwTV8QBHSCV3AI3VP4kUDSPi0CZhoDGMYQEgGN2gQfWDrqdklks+l5TfrsGBg59fZwpt23cC3s2qaT+ci/6PPz19EU9E2b9u1gZ7iSwGHCfTO4bz3uWxsU7Ow7gJDPEB+oTcyIwHPiAxMzQyMgwwz/6r3I/jv79t3dN3LKV6OYRnfREHSgQ/t3YAKc8/M1+B40t2jfHh1AA0nfkcxktg2mhwEgWlxsDi8pRxe7PBwzmDDMf8IxWQjD74rP5DGxjjfywVpfmAiHoCPRsB2X7wWbm9DhH7p+daUr+1vBoGI4Bs2fOmgs+rYJrIOuNxJpTluwhKvDHQO+eO/h7giHw0RD4yITLCWABpM+Vo/Jn97CTICnUIuJqAMUJjIPRqFq8P4oeIP21RA9g4HgNNDiGbF6mQWOV2yzREpSQma07MmOR8/SJs1YO7kcP1OH6cjomKMY6/EzjFmASvzDL2R0yAR/YDoOwm0XY97WEKwDXphL0DnR4jnRUnKneFMm2bVkzy6u2bFWrY41W8XWqfMO5lQQVHPMYB5R3hiMn1cTl9p1jLHQMn8407dgsoawNcyTihxP2Jd4H/rj970j+FSNpGxbZ9VL+88HP+vj3H8svmDJ/vPRCXrF9OmEMOWQdExsDMPqdUGW1KBgbRq+0mj1IeQqk315/+7tX9gHd24/4Iq2bt+yjdm9edN2yPRBV9BHsB5Mhjy0wIboGvpa8xqC18/R/VfoX8i8InMvYICP8Uex1FJPBI7H8PCVBRLAk0FwZoF1EQGGJTdr1zHF6vn0eAtzrAiNg89C+Oilo06Qvodg3hyO5yEcdBC8I6pQPCe96nGv+kqvCFMwnHKB01PZRq8TvF0vDKU3iaiTDp1kA7OaxpDSGo0Wmrhw2yj4d0nfLQuXHi0ceXXGpz9O3YSGMvZeTEbZB9nvbz69ovjy2BtH8/46itIp7vXHa/Ucw5gMpghVJd5ZSW6oii+qEhhhVR2BCpqFPhD2Fsz440gW7AOZ0VYdphMuSH11VWlDzEEU4CdBQjRNYidVdUKccoUtqZ6GRNlnbIzMPHGLZAiXlgxe02nDstLDRWMuF198MGvc3NLnV6Z/U1j08aq1+08dK2LDW0/tXLph+5zRp/Junx5yKCXh5LRTD/JPlcw/uHHlkjUYR9/Ga9MW47QPphStQWVZgZINOmRvThoy41ogLBVBIhUJXhpfKonSRmQQhli64THCmfRaNv+nn4rsnZktM+wjmIh0eGsQWgRHNWdttni2aS86/7swzwrFcESCPCGiWpQ8/xC/HzqB8ccX/mSP4PlU4J8W+hPQtGZB709m1uqvE0JcQGp1QoSrcSRtXLtOFUKUWMydgujEJiRaqkFxXsmW+rYlc9teZhm//sKjB9c+fKIfq99Vtm6jsKbrlHeYR8zFkSikowPc+gV9eXb56ovHN11Obozncjoegxd/CoSCWNBfYOPiCSws4brAheLOsQTii0DKb3UKoiV4ASpxY+rHe5G/BKNrIIE6oZoSUwyx0YAlGIKHQLgqaAR1IJ7F4BucOMK2DUAV6Etdww/Gnvtp6MWp19FrOBC2vDPmgumTdaX79/OnhqCr6GnnnujlVwsfTIXmZ0VwDtzP2dfMyc/78Nn3u/eVi3S+PcYTH7w+GpDqgT7QVSKD4VULAyTC4A1jCS3mfOxLJjNDbefZM/yw18v5NnmkbxYMxfPmjfdeKOZVKWCaEFezFpmDOKojxREZWnxlCH5LiPOVFEsJYiZ5E65sTcJ7MYnsxSSyF5P6JDGjlcvOJkWQ2QyMSJLkWtdMWkPcdqBru1E5hUox0aFsWkK0RkcFV6dQS/7+aWbBlFXo+k37kqkF0x7CaY/f/RjdOPfBxrWnE/bPnrt797w5e7l6ow8nJZ+bcurOt6dLPk5OOjz66Fe3bcvnHtyHHm3fxraYvHPzjGnr1lOeMcjxD/sEz4URxIFcISo+gYAbRfaYOAe+eNi+zjkIwhdBZA7YIF+Ka2ZrkAr1VdwDqykK0Q2Pk+AMGRxFIb1BB0yxmZY4EI/lsnTnENlxTT8cWfJh/shL0+88R1a0MxQmYT6iQ7uLzlY/uX7hsYPMltzB0+7PXvRkBsakXwrQBDQun4PRn5SNafH9Pz8f2PkDAA4HmIp5bwqXqUsAQX8AnRYEOZ6xa/F9wvNN+H4ivvMzu1anAToJ335m53INML7VF4DWS6YHFO3CCcvWUk6kYvkE/TSKEQZDA+YQhnLmhO0C24ApQ19OgcX94KQpIn9eDrewX7M7MQZqQTzA9AMLK3gOBaCiHZybREHEGPZr24dsM/KPbTTUXjFU3CMl4Ff2M64Rhrm2QlkmwCo2OK8lWiYehwpSbwInTGffttdj29sOM0uhuRjN7odmlWA4uzj+ZdtinAjDONFa8BZxwptoJx54lKzCVXXp5Fgow+KKTslD8VgacxKxi5W5jMbASgI7QX5YxDS8WC9qVmHRUqaQ+XbXvkv9542ek5yYULNmQmIyXDZh0Sed+jWeXDZv/LYLn+0rODOlz1EkyIo9A0ajBppf+FKQAZqBEiHu7ebSrm6K4U42Wy1mFYdR72qthXASQUe/8AjJlq3v0ruxImPRCZGMfCMZ72HXFR5qE0aJ6Qyh8GRMmRlBZIBGVkN2b2YQMMVwPjCIIxdGsiHimOAIGGeJ5oIgYQhVIJkiRvMt33//mH6TQgo+LH0/KLDw7PD249pbfLK6F6/2DkY70OabaP/5sPWw0Z1eQsOoelfyX6NVh/38voPT/gEO2H9PxSnfnDYns2u+3XPk1nYMXFoxJ6/Xx39d3QocZclv2S+Om/bnF3A5XH0Tawhe6L0vUmI7Jlh+hDthFRgK9z++hfIQHDgcOBiuziH0GZnbapge/4jpsRZz7nfcJXx3EwdV9MisenMU+byVOC740JuimQLza0yqIXvZPmzFe0zieCZxmu010wrdhatQPm993ZGBbDih2Viw4yZQ/cKIqfZwgTHFSDYofTn5jCr3wL8VMh6V6sLMgjkM0+xABf8LDCO/YKaoc+1CqCZcFr1JKRRBfEn5drxJlJxMJ+CBR38VD5u69tX3aBkcveHkoXVoFuy4ZvfBQ+gqb/3o9OidcVU/nvrRN8xp+77NZXPWD2bnzyqdRfbwDMyLzuK9VhU0FdjIajLdUdlMZFndTycEqahtuHKDaTiMcExielpQnCWVM8biOWL0BiKsZ2RyZ8PRw9+2vJoL5wLHjkcwMLSkFlp78fHPn3x03ggv/vJ8C6xx9szHMGWr/Qc4Ft1GFYINfXnyJFl7Mvdn8Nz7AgPWKwyhRjJjBh0Wl/9jzskk+rlgxRPs7zalXFAkDGE4Op9An54GEk/AlYdh1Y0b0I8foN9hyC8wFP1xj7duReUfz/4E3djGt6wwwTqQm1aBVX2RBhLYmlHYOnswMsjSpK+G7mtfjAC+GAEUFJfTqQRMpTRNUFRPVEn6j71r784G2iaws2wvmN3MB/YDGEGH2O+44CB2TG9Me968O6QNUUIUYTcgNOrXxkov/dbeo5idbfuH2cnssmeTF16m71uM8eYmxpsY0EvwjY2T8UbFr514IwSylF/7uqOPQmCJ8WVJkxizCvXjCU7FYZzCzJqgVC1MsQhOEVKVmZFJeBN3syl6unsverEEwlTI/AiDIoqrXNt55Y/RN+dtHNMmDk1kmP0987bBlI9PQDPs8/Nnm7aj79G/+3Y4SlNNKbAo3zl/T+k6dvKwjirNVcYw1Qp7a4BEaszeeIUZxSCwnkgmFOOc3sI9LbGdKy5mm5bgFXyHt9rHMAvJ+2/ijw5U1478DwM57csCOxQX46Z0HVpiPe44vggEWIKmdncPsjcVIgiQfirFSy+KfKKClck2KHn62ZcPinesnH+Q4a02eO3F95c2bDyxQcavX+n8tBO8/fzl96jQjNoXPFJkOoEEAkARUNA4abCWTgy0YJGZAVeLi5lHa+0bmMUrmJuX7S8xFE9Zvb3IdluGgcUw8KD6f+E4UOIPwWILTGOu2Y6W5OeTWaP9aCyUlvfwMFmqiVcxay984eXv7guAgHJurfjlA0SN0Jux4JEFY+4SjL9hTyacqbKt2Md+v4/9gQ9evdcVPI+5yyTm/dc2zmGfap8uw8Y9p/u4nQB9fNVyYKQSEI/oKO84hhddKDyQTBWQTDTECPi82HaqpIR9ZxL3fUUMb60wcT9gGjsZ72cihwdi/HtH4KhGismCNdiTHC7Piq/KXs4pNzTRKzBxjSGUNSgOixdGLbXlYLmbWG/03JP5CO12oIsLIAM7QljKFv9x7fM/n31x/REz7zNUvg0OhxkrLkHL9i3o9ic6qIVJ6BZ6vgrZ0XWYDH0lvrCE6vLBoL3gE2KQ7E1+Esx0MtxVNsGXhRIpBipaFKQEndC/VI5w23iR2SaaoKUYPvsJau3P0EI4/vDpU/vQDKaT/SBv/e3zqz/k71m18jAjytkTsdzyG55LA9aL3xG8RL3Yy2WHVtmBZKTSq7wNXjohWj2XWl4LNSIxFBlskCFRPaO/LZ0Lvbuir9/tugPZF0I8sTv3QGZB8R/ll/98+kX5E2ZeOfo869d2EBq3wZoXtpLJ3Ya++BSqJzcJTy4dx1E8v6ckmaefEBoWTsYRqrPy5f+TAOY0XAg6UQDTqQQwX7pHCLqEVmI6dNK1WNWHkpBjYm6jHiXwm4dQs+19WDDD9gpOXHv6/CG0ncm1b+Gt9z8v/aqGfbk/c8laumYPpRPZGJcL8PwnggGCd/Ua8h5SGXoi8UUk3SmRxPUjBHhHSpqyXuUBMipYFG1JHCLxahdQXCJWnPGSVHIAEeblJLDssz2oYf4yGPzV4p+nlFzZt/OiAOdezkO//7gGOWYV/3J2zxcwb+KCqW2H7tt5fdSnxcuPLi8aWTps7Kbh+8pHXJy2RlhBxpaG12QZlYNreeBT8iJgOULJ3sud04vZ5TLkX4wCuL58y9cn+ZZDcJ9b8HxtxX3qQUOBl+zylciiavJkhhKg2jRE7YhLxPQ8JDQ6I13PbYXTHq78BT3mJ92A+dcxNa+29NvxFd+zj22JJz6/coz9VuRhUXhM+FfgBep42LgqpiK/GEqmlnhjJpXhLcxIL294eY79/gT7/dlHoqI42+uOlElC0AjTe8xLQJCT3qv6VxFT1dZ0Mi2V/Qq/2YdyMPHLn37hwVM4JGAStQQieKFmJmw4EtbNqA21U9D8CehYfBw6MAGVToHz7t/m6lRc+/YBl/i6Izd20aKKBSL9z8RzcVApT6qEW5UcouJNsmkfQMqHNOIXCzTkSxROiNpNGC3938KMhWuWomrwz2UoG3VbAv9CkUvZVky+PdVejSmxz2TuM1+I6xOGYTqgXB8VTKr1kcUhEQz6RkJM8esGwDML7X8V2/9ewqxgI2zj7HeZOLaU9J+D+x9DeV5z8GY5QklBOEDJilYn8K6b3ryWvjIT8/x0YrkwPGVnVPzG9rV9wH6fn9+bezQkm45nK/oU/q6ZhvdQDHVAac1usjCrxGrMNokkDH+/cQMdg200Ea9C8rTUzl/bMYPlnf4RxqzaM7XrBGNMqD2e6Tuet766Sd8L8Hvb0vfG0/bQTAgMr9L7lGK4nthesBgB26KjN29qpv3bKk/zhNiKmG8YG7VNJqtsRU60FqCWlWzXQGR2PCEAkra7/cE4mJwDk8bxQfZLzNf2GhQ26FjLjqHWySpALUkoxSme2ILG2MrY0YMGibgxmPsOHuOf4+eiABkQtSgdCWSjWIaoOQQO6n4TIyTgseH3F+EnjJS/DMSy6yWuA/XbThOMSckEVKOLTxoxCMZwT2KOTAYYIxVz/OgXlsmOmP2a+DG9cS8KfVoINvrRWVCq1USXjVUK6QlOT21cA6c/IpEah4z6EKOBGgljAyAxEbYM4pt8MnzdR1D7+JuyeZO3FT07ePQ6a0JeRWeSvzp8eY5l4Ls9DszacKJ43KxpOfC9M0e3ILC+g1+3cf3+YKaO7FlExr4W01xWA7C8VQUMFIJFX1mwKLt4mV0SZribSUO9Nrwf3d4+9IuMKPjN2nkIJs6JWiJtEyeAPlG0hekJa+LYe2fuj+NHFY65d+6Hoh0rx26qkfNg2U4myI6+3rVMA+zrD6E7qIL96uHo4SjsyiO87rl47a7gtYsEbQWdwn9BbXPhbrKNcuuyXsQLJITovKhgoGSwmJrjWbYQLsI0gqIvSFT5NFhTD2VSJu/WjuXHnCm49WrU9VLhV6+xXjunbjl8uNOCUQO29oLVX8dtejH7y/1T1z26GXvtN1GGKcBw3qTzHIFlmLAq1D0VpsN4CvCcumYz/D9lfJ71ovMsfgW/0V0ZnIYlMSOe4lhifGP0NAoiU09muuDHj+6MLRzFj/3h1M8Td6z8rnfvOyt3MYk2mLyf6fMaLMISGQTaa08/gbabv4uw52DYb+E5NuK91V/wjjZJdtCwcoU8474/hKredC9UNSsMHsT84ZJvBYPYxFsNPB9TC0rTHhQJTaK9P9OogRhNTOm1INPk/R9KJt6ecuFXm+3mpr5LG7adiZ7OORnCzON3hcz9e2Xyutdl6O+HbxtP/PNO+3pnWdvFnf7rzmNcaYIHc0hjwPJwnhBIrTfANddRSpwOV7LhSjtfr/QckSgGL6VRh1jhgsutIeXEuhObbqGhGEZtAsUeogb+dfjw7pXNG3inNhgwAjIIsbf7z9gh6Af6FY+e3d9WXcIX1In9Es85iayZIcQlVpdsuL5KnUK1KZ0XVEMKlC4o6RIxx0j9ML5GyQCiVywD/Y3QqmoqjIqrhFGZkq6emEnXJF2JXHR/YOz6bqxm1KNPR19t8PbUgyt2sWPvnn5A8KxX0oaRBNEQrGFdV3H3+vNBXVqtO7R+7iaYAhz8tacX4cv84b9TWr4Ok/8reK8Eg9aCH9WmgDXIwx5xyhquDU/3OKsV/X9qK4O4i7EIQOGk6j4MbnBi+IE9sBBOnDVyb43CQnZGv6Hnz9vrM5cWL5w/wV5FI/krMFD1sRzPAj/QWND4B0ixebBc7W5QYwnjDFvT8CoTjBieR6PzYoqKFojBeVx9WC/GbG5eqxZgHKtQW5iO3+cHQvEM+BvDRN+qHAuoIshU0gkkhh8lSyEYGIx3Hq8Ui8nS0ZVL1wcTCPBCpmXAyEWlGRYmpZbQMDElJTEhOZmrX9FixYbgAf5XuZPwfQJTc7O8LiR+x89pm6LvjlJSrHBPWhjFSLI0PoyXpBqDckHjxcjzKBtgMqlgCNfPKyoaDTesROnw7zLGNBMN0ABbjUlwJaprX0hhwRoWpgfAzU4V5dlOheeZLiV+Disvmpl4X0WDQoGntnPFUMKVOoZqQcPdKDG9MOALg/OiGr6oJjrs/ajgS7/c9LgIMlIjRsVo+hEsomMAHbyMl9Cba3hkBAQt6n88HvbSFsHi+e8JPkXwvdmjtyQWcfWt/fvfGDQczbTXYj5bXMpsHW9PY27Mn/feVHsEV1/eP3iMwaCz4C/tn0pjVA1LxW0o0aMj4bwk/Vhpsqbwu20lGMA1OjZCsZW4+icHDlFuJQKZxEu4aAxbIJa23ha4qGg3+44KRpnvqY07VVR0iUADMF+mnnhXvB+FzZAz8bvS29Bv4t0FX6O/iz7buuWzXjuGbbrM1Fz3ej66/jp8fcVcaH7t/fGrV1eMJV+MrvicykSoL8dQGKuCEUIw9UY4ZaJK+0+FK5QQB1aWjlhROmI9SkcRlaQjshWMKumIxkhwzL3T308oHKkZ//3H3xXtWTViQ1LypuErd1P5aJ39Nv/t6v3oW1TBXXs2dJD9Ve/+fzp5SV/2Jh1PFTBMCBdlvHBR9vhvXkLxIrCyFOInSiF+laWQcE88I1bvgVF8cmeMZlTRhK8/fDBx94qv+9bcOGTlHsoedi59ncAkrKF84cbTU0xQvyFPnfSHWYrHEQDeEXwDdWofUbgnMiRLq3jSGa3L80blVDzbCU5WQGbbyCxKSB611lQ4nulzIzWS/VI7udAeztXfd85fpB2DsBy0Dr8/nthzEhLV9pxw91glpqq3GJpTVaIDOpU9x2VyEqJpSxKQFOtmz5EDOd3ieam5nOIEG1eG7m1s/9XOo3eKNk6cUFYIG6xv951w5nGRduvsyWtgcI+CRlljOk3beXhRnylDunTq0abLhC7zth0vHTJ+BBmT0fGEac1nYZmojxCgkImoah2ujFENrxwMJDm4VVFBJAjIS4kSxDEZROiengQnURQw0gEQ4UgPu92791a7am/z5k7Foy5d4rPQ4/52c062T3992XzmRn9oEOd+FZ77y5iI6EBHwUcfJMOpQlcKWnilQB+V8u5Po3t8VL4dItFg5qOzRGcSmZntUvD7/iNM4WvItSgaN2/9ZxeYc/Ys9PnXbGDFRQxLAqavhzAsGlBXpfeq5swZMOGmxPKsaC4SjUXwd9i6GBX0Q0OLt7PLKy6K9BvLqfxH+E+1ncgjgqsE1DfYifSinUj88tf7KOxVxsxghZ1oY1AY5PIgrGr8vgRdyEOP/P3R0zx0sRiTErah7fMxQ9jGFRfZnAYNbTtFeg5BbTwXAr5Q24lUEIX/t53IR7QT+fxPdiL4DMYtRIvh1AXoCrqyAE5BixcwM+Bx++/2b+BllMEkMsEiTNGoLWuluPK2wCpwRQUanR93ui2AQE0l9MCv1mIUMUNjakYTiK/+hg3fQ6lhPT5IxmJl9vCEdJQ/Yx+7sCKg7oWAAZruQ5dwdSgc3fHc7MFwqO1J4f//7UmPmbO2/cwi+0w2eNCgbLZ4cA/6vuaogFmjaQTCQIrgGx5Bx+2P5WazoPUHUqSeRmGN0Ij9QqJu6WLTU/XpjSHem3pDiDY0EgYZmcm79vz6K9y1O+L5iRPc36gg9f6p76A2H/I/H79vyeqALt160br9nw/Q3U70/QL6CxrfGKdLDFjQOGgQ+kvzobhO3hjePhK8/hK8vmYSnaD3pTKv3qzUFvkgPYU3OCM4PS0zAcOcmFkNRkKdxRCjJ9Z677+5jz56HrF356+/7tmFTneCcffszZtX3IIN22VZfv7gB1SRj159d+p+KvEbw53cL2wwfnddIUh6dyANow7UWQ3lWLZT0rRAd5rmV07j1WJjapFIYINWNNCIkYzcLzvfazX5WHZqjwEFW2a3mdXr7b6Z2fmMbfm5zM01JoyCy880freJZcpwyptL0WpYB/MUd90CKGOVVShjEGOVtW5hRsTQFxwbTPQKol8cGKktmSfqFoxQ8Ss/KAaL8Vi7oHH4Dl/2Zz4BmECWUCUm1qlfSeYeFUlxbVNWEZtFMjj0NOsGq8JVWHe7CSTpJgnEdBIkpqMojSctind7j/W6uqzo5Jc3Pyha+6nGaTyZP2b+ed2Dn42w2sO472Gs8e4d3Y11ChsKBL0B4N7BepEJS2VVJbgrxSfKJrkonsYnRqmMqqo4SZLo5EVzhvzLSaxfYLlgFB8KUQuZMDhUSzafJSMzI5HFbItVceVgkwEu82aaMQ9tVfpbIkIY79MnvL87eexm8Yr3Ji/zhtnMLPT4QE5+vn9um3dhaD6M+fT3m4fmLDu0Fn2fj3FguONnvg/3J5bOkkATgU1OkeJXo8vVJlCrrpxEZLFKlxyxXFVXUisiBidqEzMT8B5JzDRmRBszjdpQvKWNWkjDFUisTi0YHQC5YR0+HX1/+9quG0tm7eq6czvct31Pt73TJ23tVvHve/envXdv2ozvHeDejFmtOq3a0G3zrjs/7d3bfU/pwv3ZB/fc+3r3tu5M8fvP5pc+fX/+07lzn+L1ScHrsxTv/1AwRgQ8FAMeWilpDfiFSg48WC4Eihd461GN9UhgcFQw05skf3H4lk4IYpRBz3hv4jXTmsmGDHD94lMuGvjxGhnklAfyH7QwfeD2MtQAjkS5cAvKLUb94Qb8bwRqWMZ8z9yw63tcyUanYfPsKz2Yp3gtNso0TItpg5OKOZ1bmCyzyXin6S3hhJxtLCoqQn+xrM3Ofsq8oPs5D+m5PhhHM0ALME2If6clGV28ztq4XEzTwJ3F487iSWdN4qnc10Rp/hLYsCaSeS2QpnQoCGCm2D5TJ6S6bkZlpkqvqFGOP4WUN0TUJiakZ0rRybWgKFjSCNs4pXiJt2o1Jp5Yl6vBKDHEP5HrUzy8Zz/bN8M/aj676NqhTadbbEIbDvQYP7RbL8jcuveq6Nzm7R80XrXx/Jls++CCCS03f95r1MzZ++HBgfNNtUtHbDtXt96YK8y6g/NHt8/t0Hdw2aCBC0zm0oLNn9y/uuT4vLFZue1qWgYvfOo/rkfnvu3qVvUf263/hLpifiIfxzzkL2DZwihmuQisi+jR2cGUmmaCyaGT8Yq/y+SIyaMpCdS2kcKPo2GStWpFS9/U0zDM8Zh/QeM8q4NMsFyIrFtP9K+SHEP8mSbtwxS8cClOdE7DF2lUzk9LEQNijwQyUQzTW/BKSRNDyY8AL50XvuFHLR1KhMXyv0G+EsJEs0iaToh0pbul6IR4TrWU0ZjlkYBovFoSMSWrGR9CgijjgtLTmLjYGI7RilEOBhr0EMdw/bahL4+fgEk7BtweOm1KwdDhto+3woRdO2HMzh3ou5170bebup6CbeE02ObUEXT04gV09BjTZ9WWL4/mHLi1edW9LQt6zt46dMIkK7pyRICWwwKsc+gYKj9wGeZcuoR2XL6Adl2/BrPJeq1nDjP/0hi+eDBVCKQaEtmyzjhyJzkQuIRQMZtFZF0CE0qFP18uVIyIwLRBCJTZihDkS2T2pv5+QVWDUoIaBrUL6hWk6U0sAZHKjFDBpOBEUAw7xVju5kUx6EOMohMlBs/RvEBN9znjZ+7cMr9jp5zBw3bMLlkSgYT0sVHv/cJ8lGwpGD9wxKRGXXNbttLkzSibjS706t6pYcquJVNobHUxWMY2ZdfrEth2gb/rtGw72NzxO4lHhtPZXawX4AnW4kHS1Fx1gB0Vh4gTa1eRvR2bAqfDqkNpn1JeVRAWgAHJzM3DuPkXzWWqClJBA7BGqN+wEZml+jpCJPFnOP00eYo1kQ1vek6lo8tXQjUx2q2aWYgW/4rGWButi8ZYa6lGbTMWsyLcV0iItND2OmvNcmu0TmjAqNR9J+ZFxzGZGC+jXWjJ06AKwoeqYcQ1GmITyKokitkSibF5Igq2PXUMHUUTMAp23YlVkg4wbvsW9N3eXei7HfBaf8gs3bCgVV0v77yAtjmnj3Ya0n3oAeYbJyJeQruuYUS8dBhdOXQIpgtWWPvIIXTtT7STbVk8eVbTiOGrmht1cUt6tOnZpUXX1owoUwzls1gvSu/1gCbZsOqoc9bL3p/ZwGf1I/SI/ZKZgNfCG4SAhgJrCJX4dFC5m7vYrxxzO4FllOHsQYxqM8eKYhofEurMfWEmLBw4aNGSi2VobI+Z3bo1eyuHu5y/sOyLpUsHv52d/XaLnByyx7pggvUb9zemiYFYT3SyFFkn99Z5ygQkOnmAQpAOkMwfivRAmrPXD85BE0cSFjkS9redYd9mG+WhNvBYHjxW4T+Izlc7ZjWzlj+JeXxXwYtapsWxB2AIAlShYHqMd6GMMqeMBVS6DcDCtAujfAOo5zSE/kbnHGbIaVg0jz2QMTFr7Rdg06GdsrrnDtlgWzgh8z48xqxuC+uPaN2kfY/WBQtL8gZNyrxO4hCZhcx8DF8CGCdEU6+JB/jC8UU4gQ+GB9AwVGgOE0ZCOJrApnXB5gMDpCyyeNfNkHiaRRYZHy6a0YRo5cpaFElkEivShhqUAY7packQ+nbr1Kdbp3Z9h6wvnLak3TtbNkx/b+vQIV269/6iNdeZadWwcZs29fuWFOXVzQ1LWppXMnVw407tmi0ktIX7Dl6hfu5qoq+fENAjgSAKYKmJITa9cEwDiJvbwsbCBot/HcI/Rw9FXN9C7YD1sXY2UAhQ2IUrm4JV5oVAT+YFOp80M9GFV35e1MSg85JCUfSi587phiRmTRg+Zd7MNZFFw7X9b53oXsjVt888cnLsOJapuLjmwGT7S/5bDGdnjOMmGnuSLLCKGE9V6I/sZ8R6pBhaqBezakADqGd2F6z4fgL0eXCP8Rp3a/4t4HjdUZyDrUwxbM9GAy8QI7DePnLfVLUykgQI3i3HnGhUW1NISmoKczW2du13zGaSt4jawzLcYwBoIwCFLVJlAVbAqBEDIUhAlFajDLTw1yiiwUVUSRSJYuYLv+0b5mp7jO7eI7KpYUWvgg5vZdZP8ZpKxzGFWQ/L+cNvyAuTN6Aib5RR8R5terwFlg/9DTYPYNYzK9/JGSbaiucwAhtA+U0EaCr4iH5qRe6sHNvhU4XyCx+srLMqNzSrmj+LpyR9vDvmHFqy9JB1yVKhYHT+gLHjPh3LFaw+e3ZD7uoPz2zkx8yeWdRn7Ky54wHliWPBFkyKrJjPtg8CmM+2h52k+4Av5A/oEtm9jn+YVfg7C4YCL72WPcB8hB/VqWemdh38zED8zDr6TBZ4hOUz8uwvzCr8zD4Wup5xohp9ZgJ+5hF/kva/gz5zgE0DAD+zH5iZ1c5nTPgZE30Gz2M2eo/twrUH4SAW5AjeYuylIneINg5X+i6JXm/CIo1LxMWcPRwvnC5cilBQZOIawnXiHgtgtFJGHFG8pcy5jCaQGgLSCf4yiUzqaWOn2dMKFzJFzI29wudDy7pqmbmSceBg8YTT1YbMeK+0dPyOC5/uH3l5TsvhLWCWLB/j8dOcF605KAHLdXjUoDkMhQ2ojUcZfOl3t3Yd4LF9ITzrai/jqb9b+zrO9rA7+MJD/4Fu7Y1y+1xwBTav1H+AW3sgwzOM9h/q1n/IXaxw0/UW24+W++8F28OmntqHl9O1xpKaNorGvgeBeUIQrVZgDSK1SzyERnqO2teLUft68xuTMAQfsQnecGYf2Nstp0TB3YM0ziRtliQWYR4fTP9BE6uNsl3T2/f9soQdzfa1tzEy7e3HI5gPX+9n/GPhLFTMW/PsP+TZt8DFbCM8DzNQc5KTg+chEZDcwWJ43/ES36e5Jtp0fL+GiA/AAd9yzr88WNf6urcvhLs8tA9wa5/pbI/x4biH9jq39hq5/2G0fahbe8NdLCTT9fXHBLQXhaemCL9jh6t/Oeyel/u/jAljhKJ9Iejgai8L3BpnewfC7WtQ+GuK8DtyPfTvJbf/HbdvSeEX+x9G24e6tfeX8c2Ex3uH4lskyP+vqgGsSP1Zs9CHJSm6LEnRZfuwzGglmunL1WE5xEhWRWXtrOqMZVFkKwWb5HQl/NdXR4+6cpZM6AoMfEyTltB9mMYcymNWy7lLzCH7cTl3yV7uXL/ndD+nivsZRrv2sxwW68InmiOgbYDbWyR61BK2dLaXEwSi3ti+ED7z0D7arX0jZ3uMfw4P7WPc2sfK7XOBHXZ0tpcT2Exu7f1keIbR/kPd+k+8a7WQ9SZ2z4HsRfYLLA/VJVWaBG/RkextFjiW+hh9vKmDGXI+kkbClwta6lAhLMcX95LpDfH/Rm+o9Ya9YR7anQW7we5ZaDfMy0Jr0NrDcDjM7Yi20A+0NAsWoGXUNjLZsZ97zf9Isw1rgDyBE6MjOVqjB38meMqFlclahI4q9rH0yxqrs1YpJ4wsUhERobPGkY6EhEoZG4na2MwEvZhkYMzEslEwrzMSly2jj09LhKGu7I0PZg3Kn3dsAWR23Vs2bPDy2dDmN4kpKjz7+Z/sxI72xcNWO3M5+m365gTsspQkHJTu/v0I+nUDqljNPppBkg40NxfaYrvQlA68RjQWnfKwehKONXbxJDn8OVheU/f2hfBXV3s5mjvErX0dZ3uMYy889B/q1h7I/Q+j7UPd2le5a00UaRyNldbWwO0bSfBshunO/uW4aV+xf0xTjuP2rTBN8QcG0F3QibmNOlduoyoGX7YrQOArBfjqxL90ZmUcEtS5BeabUsVyVETtDCbpo7qERGiGLcq+HP38JjpQVASbrz93fCVvReV5Z4pP/sih0/jvYfaFe2HYXo7IvSvxPLTSeIEU0EGIpfUKACZ+lTmrMzZHCOSJoiNUVaRPGHgpCjdJnRwnKWwBjCGkGiNZTTOl6hS1GCxMUc2OhYFFZ/esPlulZXjnsz2+3NblWPWY+DVvT1qWfbzXlCk9X3Lc4E+/2f1+/b7vvVu7bv7CeVlLjtSOHhSZNq1/o9Gz57Tve69L70L0BVlTGnfMP8dr1ELio18D4FwjOeg4WcYB9/aFcJqH9ilu7V8422McK/PQvpZb+7ty+1ywAHhXal/Trf0FGZ5htP9Qt/aWu9YmIk7S9poMuf9eMADwntrXJXSPBV0dTzSTuA4gGWSCJuATgW36lkTfzLRCXQMJN2nVrHBlHJbHYG05G5utJpbv04iBdWZrmCocMsSf3BeqiK0a0i9rQ7MQo5K4El0P1BCbaJTGd2Jyqa3gsTo6KD4mwVWHy6SO7hajqgxivGumUUOMlHpTjCYQhoSKoa9pCdyf8y81bPhg/u4PvrsKA6ZOmb6j8OGxyYeqNzwz7vyPjN333L6T882LK172PFXTAebt84Yz2OkzjwQzxZtDhvfrX7B70frDbPbMZdOH+C86MmzowNF/fjM08rOfJnSfObBXU5gyaUhIv1HsqvO7otYcJuubi5qTODK8Xi0l+a87lf9oPDDFw9YS3l524ZUcDOPid+7tC+FYD+1j3Nq/cLbHeDvdQ/s4t/YX5P6H0fahbu1r3LWmUzx03MeEpA7/G27/XJL/ih3PMaYTewqV+nCfG3Gbp3IbDSiMpS1Ys0LOI7myiH/k7AfPjgX3E+wWFOqS8z7GhLYqf1J+7zDa3o++1ynd0XhTTOOiNElYuksBuUKAWJUlQGeNkfCdmq+i3D20AeE07jXATGxSiuojATol5mrd6gaGBos1bIjlJIggYAJ1HiZmhhozjWyiGEUXIhJBNvkPzajLU6Z/WfL00sD9DZJ2/Wj5Yt4XiX/t/NiSwSQeGLn5cM7GQQsO8sbXKH/ERseC4p/m/gwD2r9dsWt+62lD3x7cqnRia9vjep373jg5+PCgVzfJPNNYRf4OnpN3JZozD3ipdD8yh0blWnPRFJc6S7h3zYUbcvvoN7YvhEUe2pvc2r9wtse4N8dD+1i39nfk9rlglgf4Y9zaX5DhGUb7D3VrX/2uNU2kga3ADa4Wt5TGBxgwz9OKnFlL7bz4U1cull/TKnxLh3zxxe0qd3sc0kh/YE58KNB5M0T6QzRwQ6eNS+/8g6tli2B/sX8k2rwky9fMcbCVaPyya8g3dZ1hqHo4xnFR3IfUzlGTyIe1zJJ8GE3lwyRPcZ1yhGkkR0I6hET6ZU0kriIiCyrc25E6a3UaZpBUKeiTyIQk/iNEdHnHZopFuqiIqDHEpyVQGTEjvcfE70rHDOyQOzA3f9Ld0oJeWbkDBo4obNkCzmrbc/Nl5utmTdDk5t02f0aDQmtvutLq0VLTOtvcGps/b/nHqhEfNmIjkis+9x18rIntUcyrK3gNaSwaxakeEg5ed+GIHOMTJK+5e/tCOMnVXo5ZC3Zr/8LZHuPgPA/9G9zaX5D7H0bbh7q1j7iLhXXKh2l8FIWntwRPY1f/cpBUsCwbbkR9OS3NXalKcoRU8bBvzBH6vxMFq/cQBau9d+a7CUVF4++e+0EMgk3aMMoVBKvdZN+2h2YJ0SjYlzkD/gTymC9IY9aAYe3lGZJThaQZctmMNM9lm9EYcMmlk3qweYmy0ElZFhoD5mJ+gTmG0WxNkniKaFfSyXalHPA1nnlvsfik1Ebs55YsI+WAVXiXif2IkhcDqqEB3G9YVide8UIhQrTRRryh3hldmUD3emGq8HW8FlpWIbSTorpBZiEc0Jy9cLNipYQIepOWFiNhAnIwJ5ZnqLmJNUHmAyYxeEibrhmWwLc6dMzJfXe5WNTmEalnQ2rZdBxSp4upS0qPjs3ey4BLSX0bWydS3Ybm4qEB7HUs89XCes56wVi/gZSLV9tTLl4NfFEj0C0AXxUFRDyVko+ZN4oZetXEDD331Dw/Sldr6IQ4VmkIMasS9ZRVVuP/O1HPfXqUiXstdB4T93SuSeuF7khJfJylr8csPnkS33pvrjOhj9jsSB0dbRvRZkf39k+wG8EfPOIoCcdozhzd/y2lNiQfFbfRmUXOKffTztkPpkF/4X7ebNMQ+3wh9amB3QfLFEXeXzGqvv3lvnvC8zKMCSoYjzthxG3qyTAmqvppLfeTDTnYQ+rHpOrnLxmu7ImM1EuMyn54RpuG21QX+wFH8V73pnmkEVI/pLbvEw3UJWCOTHwQhewJvpObLW68lIFI9Gan7fcN5TxpOQzilunDEcMcRwxzXB+OGa3MLNN5MMxFKDMh/p8a5mjOIjcd030jiAGlQjStrmONFn1BIebKEdeea1+ZQ0ilKfJhZKhl3KgqwsD50+CYQH+xQEM52eyY/mhUNkh/tyoUsc7ExnQx0ZEEe1kMFuhKc+SmHxRzHEm6I/oYNi48aBvgTHfkHlYYxUTHAJL3CFvlHTpk+8SV8+i0KWteyzblMRgb2vyHjVvUQU5IOogGjCn2IhjkbVbIoqKdOlS2a+eAcyKeacyid0Pu50tZ98kB8wEj9RQrtRFh+1fupyec58E+bnCD7bjcZ0/YRdxLuM8atBUEJzBPIfWjqoJZgl5Rf4vSW1XtzEBP4dyyuaWKkZr6qpgFcxV1gSmDqsAUS4L5BB9FZTm3NGFSbaoSi1GVoGrmIpc5HexmRT0qmTY2nZIh16ZiQA5aQPNYE4EZzBTiateRciqre8pjpfX8DO4bN0XMWE35H5NaMfekwXoxqiAlb3Ww5psyXQOhRjnuTPaNma/13m08Rma07d6YBNvFnJqbLU5J717sKzEhVoGTaTIuZYPPXHKOjEt6N1z6S8albLBMxs84CT9pTS7KO5Il3lHh4h0K+7azT5rrSnlHW5F3TAYq74psBZP7Tpb7znHSfF8X7xD7+1Lqj+yh2SKMrEsWE/vxl/vpCa+KPAj3k6Lq57jcT0+YJe4b3E9tZz+oAak/JvZD+AL8BP3pfFYzwPksWwZ7gvrSs8mKffyU+olSxHmCoa59LAcTufxcVFfWEvtZO2leU2FT0mew2RomyYZhAPCkvFQwptpSFC7dte5lfoQQWuYW03FBFxIomm6PBOqidExvIjCRfHhWuVm9iFOBxEVroWLLkkBwHQ2fDtSJST5SAWL8j3AlWmqMlqD9evHiYtu54nnzitmmxbYWbFPbOa5/3wpEqo9xTF/YAQmwg33MPVqfAo/zEeY7VcA4gaPZasAaZq6cVeMsWqmuySpWNiQfVYLCJFqk4DcM7y1ZfwOUO5gEs1chR0hQ0lM5w5EkclsMJmYguqpOGv7gg0Jo4R6iNerUYe4h5ikOh+MiXpTB2kjZF5jr6OXiI7LvUCvbiNbi9g35ctmmlOuo47BX2g2u9h/h9n0onxJ9h2Mc3T30z8ntV+D2afx+2QY1xpHi6l+2Wcm+T8efuL2F8iwR/hzHYJFnkXNCRDymY/TiP5NhznE0dLxUtwGJaDDsy1vFfnQa2PsxR/u3oQEktxrfby/ePyfi+icYEfIpjxPf2xOYPfhQJf5L6ljjj2iuvls+cLjnfODooiKav4Tfc9PxhL/NW3UiXFpQizHR+8uxvgj48zoRLi3oAD+n91tiujFDa8Jw1ZL27AmY7IRLVrxkP4+jFLVleP5qUALhudRGWN/xtap9uNqXjenJr3SezBI9mUPpyTrUgORe4/tZ0n09+pPEdGEaQsbtB/p5MLT8L3KyNQxl2BrzkZGaqRqm95EUTUP8pSyd6wOleMFYqpJbxBztbfMmTpwNTy1B0UzQKvgM6bj6KBres/9pv4XhtZIaedTHWVvymafBsEoxGrJtFGzC6/dMOxm37yi1j4PzlBZXaW5YOje1pTkYR+dmMGpAcsHFZ8l9xx/0vlSnzwkDbr+flyN8nD4zSd/fg3G4G5XvO0ptY7B8ryEGDmozcesL84Kz9i3kd2/xd/J8Rw1wPo9/N9oPkt+1ZurDNWCahqh/raeHwqaysAz9nIFigJR4d5OYNMqqyOIZPaRUN6CVBkgSBIw38FRE0qZn4nWqDS3oKvOF7djGjSVsnX45/eyL85mDqTmpzE6yZ7DKDf/FdNYXtFHMSVSlCvSiW/lNMJWTlAxAa4aTI4NgpoHQSxGAFocPFx05UsT2eqfnOzYHcwN/MTeBy+dvdvr8QSET7PJ/yj5/PzXvozrru5LOWiLyYs4sekkl/HhO1yhVwo/b8t4R/RjvSvebyvjxXFtLjjvIhmmwcSXZJ9ANhr9kW3U2WC/KFZzEf/F+v05rVzDONhgXs/l3K9mDQ2S6dRS15R5ivAgBAwUNjSj2YMNRVQOTY30rJbl6KAUhBAB/mqQN/J0xmc4iEBmNoFSLkXu4ZVH9TP+aGdl9bJ8UF7ONeOur13uPBOfppk3oxt2vqMZbK6K4Hym86zFdJDJ0VZAr+Cv0BFWKqiqg1HnOkwvDAmn1MrEuvMoGqCrDZ5RMKTK86fo0Z7429PIZ8fsRgdlc1qRRQM23svtOWTBuc3VM1E9cuf2N3WePEDw4sHgC83jfrlGjbK+dtF6MuwBy3MUY8C/sKMlP1Vz6FxdN9bjOUptpwEtaY6f9ROynqhzvkQO9MM8V+zGp+vlS9gvkgEUyrsSo+nlH7qcPHABbEn9QMNEarTFOW6TYl0Puqw94DIB0ho7prjXW6TcqcDzWetMa9rFghQDFmEOos0aUeyA5lQO23as6Ec+RwkIWJEZvB2HNLggLVyEq/Sf0TbXv/ZTRHiQoTUNrM+vTSDlwo1xUmBfVdoacqaL1th05M2nd87nM7BfrZh1hWxK9jih8FZNnjZsw6+w9eN+wDPrvgfX3waAVIVi9y7cfCAvg/gpA//6IPv8J/Y2lgFzHE20UxlMT5tMZYJegyawrZVYmEjpqTfXkl1AlWzrPYlJX99D6UOewhX6R5AiFFBmmtGkLBrFlFbFlfLlQQ/yLU7mJfZQmRqdnQ3IGO1VCUQ9MdCtwkRCtMTj9wrkT77y/8G7jhl9NufCLnbu45sbYtFnP535fv9GdBV+jl0UXt2y6cAmdu8htmH4imJm2i6m53jZ3/qwpS17d6Rt58u/Cd99fVDL9fVII48KLF9eMn/z77xfw4uWN1ZacpPhH629SWp0h0d51mFaLuOy0j5HaDFspfe4m8e+vRfrsZxa1R9IPps+nKH3OkOhwHqXDuagBqesgPkv598/0vvjeWs73Ynp7xkWfZRt8pEyfZ2AYrJQ+dxNtfa8YCQKXb4XW5KSxYJnSWKyu2C45wDxJbk9rPtBxdZfad/Pgi67u1n8jZ/9YRzv7v+j/hdQ/1n0HVe7dqbNmo9aknqjYN/XHCw4b6QO1JHUpxD7o/a6O1zIs9WVYssF1kU55u3Rc8f1/ye/PLnRq8y4Y01B7UusTt6kr9b+J3jei9kwxn4XvZ4v3wROxPakNqk0S29P3noP1/8N2RmpQLNe01En9YLzox69U1BgNxPpu5bKTcv58oA8jppCqS40SlRQLJz6q1G2atx0raacklR7rp+ziZ8WvXpFSpMj/mXi6RB7cOGQI6odhCMCwjeGzsFYxVQhyPx/HSSqq4Isq7s7NN9XHgBQsjVmpSetVNeK1NANdQ4+NY2mCV4RcP4NArKAJdBzOOhqwKnog1dKYOIopL5fKaaCXeWgDrajx/mw4PA9606IackyZUY5BywXPXbYfWeZw9zPelf2SuWCOKz5ItgS7xbhRH1o9iZc+FXVHPCdBEv6JfZ6UfZdjwHTRb6Zx0Q0RTp0MZw5wiH4z3I9B1c8tGbYcsET0m+F+QlT9jJb76QXHw6aEjwLKb4Oc/Jb2ReOUekjtvMQz6zREBrDqne3E/urL/fXBkkADqb+Qu9SWIPf3gvLvHhL//l3k3xpCmWgOq5SfM4/Wv40G/YQQRW0qlSxI2ZKKiTuNlDQNnnoXQsKkPCtvVnnYTlWorgamVZtXM7XqornTS/JaOW2Lgzooy+fGr/yxQft8ycbatw+vKqULwSo0gP0eC12kxlYVxThUvjtVnJZTLKwsjMjHI+J9zLNKgw1Nhhf0YuxVsDph3+RuOE50q/HCnlc4KDszinovLufk9IwZbqVf8FrSGr40brOBpP8/dOktsr3FFa9Ca7lQ+t5Tat8aVLZuutqLcZvJzrhNzD+srrhND7HQol/7hdOvDbu3r+x3c+4R2je1FTWS4gRI337Uz1XtLlbgnPImqYNL+X1jOXb0v3QzWueE8shcqX0jD/EKrva0f81fzv6xrjzd1b9s9wx26/+4s3/cvpqH/oPV/VO5obHEfz52yQ1y/4Fu/f8t9Y95YC5bqfdAyU+CFWdmkMaA9fhUwZee0uuhFJ6MwZz66B+L3lUL0qDfuXVp01a61Mz+BdyZ7YeD+/pPGV3RlMjxJY4nfDSt2x4J+gtA9CmGloM3y+0CT7MoSSRsgCpPSMyudJPQebWrhY8G+nRTug7ExmgTM0z4iqTwJqYGZWLxM4i5hR6iD7ka6OWzxwcT90EDjIMdV6M/t15EvrYuthD4LqxZ+Db0gclFvWajFeijkgvoY+sQaH6V/hv6h9A1xwXUltmD5ywajFbRNZoPHqXMgXLSgyh8EaWqpESIQ5TOrZSHj8qCG1BOigKEupXuiFVpkLQeZ6aiIKeFyX6+uaxuZkB8w+y+R470eHd+01aBNZv2z3/O3q64hhXJAVgJ5ur0n7Ev593gAf7Fo2eLvqSZeI12aSJBOEgEPQWOVncnHtm4cgU7rBQPr/OXjlUSjIzSuRmpVda3i6sUCi8X2yeaQbqF5JS6H2PwNwmE34lsC2ApZHfN+brtsKEjp5Z2Zif9UU5OMyBV90kE/HZY8/zWizB15+A+/IyVW88a1n/lV7nsPgN6YN62iTuAdcl4PL4QMZc/hATwe9CbZM6j4UJEY6Lgzyg5TxVV/b6YyqFc8qgM7nX86F4hIVw3ZuW0HzxkaBY76W7pN+ifws+2bf7s8pbNYi2/Rdq8GUvXBM06VHOdbS6s/Uqs6HeuouJzsa48/0Tjhdeqi+CvOAfzf7axCFAsnATNipRlsmAG1XmAEvSV684XDR66Zadb8fmb3nPWXjyltXfwWIMeywrcN9xaDGu+oFPAqgqwUtVj83g0iGAIpphmUCZ+ChrxppdSrxerhIj+dAWHNGRkZqRz38woHadkjpOjdNzabYt42wZVVbRZmk418lz2bpa/LNu7sx3tHN+6yXxiHNQ8MQ4Ky/tHYT3yqBQfniXGPpH74LXjAr5P8+to/tU8yVb48j/93TRunPKj3VL7VaIuGma2NpNtL/u519qxuM1aqY0GTlVxzkhVLD2Nc6Q84pTE41rhu+52vdouPRDrugpdDes0JVSnHYQaKHU1fD+K3k/D7RU6Fr4/lN43Yt24tUvHYgvBMWL3J/MMk7CM5Q/MKj6kMr15MAiqTYDpepi0aWG9TP/kutl9uPoVw3cfFgneUkLjeuH1KJfqPg/yUPdZ9S75BLkA0fEdYHb3iwPvSsWeCbdSUetUOaAzoRGUAuQxU4KpGYQZhcJ/Z35TPPHG5Iu/MPYL6yasSbfMhsy0k8H2abu4DnP/WVZ3xcvSV9/0izzxT7PMzvNt7KebIiUbRmOuLdRrQJCGbUT32SbuEfM5/0I8S4AzuyJlAQ1bZegnrTV0LBAjn1nL9hZYrXTKqiE2URubHmxhPh+5a+fwP9pxz32OH/cHDtzv+9wPzHH+Gckvd9X+OBYIo6AZ4i4AR2PqvMqpXwFmWgxsLJtugZv3DX3S7fEwvtbHfqgCanwpzFJtCp0GjKEwv89dZ67wN7DEFinmgXHKSlZas1h3wllegsTC4hVmrqyfOX1j3gDrAP7G2IULxnXO7pWF+1rGG2E9/jjwJXUvVJV11AV1lsmlc/JcJXMwboznTsCXmjrAB4QCM7UXiBX3m7BZLNObrHKARmkSDNF46D8mwVmSiKzz+NEds8aM2DGifbPUOs3fMdd5mx/bccSIjlkFBVmpzd6ypDdrTs+qHgDHY7qhA/ECL9X205nVtmWe/Q9NAPZ0Sf4lrkiRNsvri/VAuGesL38Ty14NRd8TVdUDNbA3UcW9y8lINTpy3IbyyB5WwRuoPicugRwSWI2h8fO+o99tt7ieuUnO8G61mzdsVKPWW/zVvuNHNK7L9iqKSYppVlc6v5orZ715B61B1eC/qjwQqYcvJ1IfIxkVCJBa/KNWLAFBzjpgY5mJi9DDiRnzfh3OOzCDN6Pr4nvWozL4hWM3XsMQ8Jainok/3t8GaUGPAVbHRrNsb+Lk98c4p1rVYMWqGlWrShc1RrM+p2mT7OwpPVuLZaR/afRu54YNOmY1jKpePSo6KYnyPNs97jtkdta0oG4m8aR0qBOPiJcKK4lHNyDz8PuLpaMbALSvxs8+VNTDoPvtCNlvHuphoOzFv+VL9TAcDtse7pmjLX9Tp4W5tqZifWj7cO4GWqPpAQJBBuVZdKceaeKVRQo5BQAvkbQJUKM8IUmrmAaYLlYAyaRzEQjtZd07Du+lnbe+Z1fI3ZisTaxdM7V9blazzlqsnDA2M/cAfcb/Qde6Ga1A0wTC3sopEJeBnGRhJssASN2fcExa6I/i6rPS6pMZEhfd/tVEdGM1A4e/XsA9gD7oBfQRx9cXXUa8Y6i47wkNUex7XrHv7X2dG/9Xxb6H4BLPwTmatP9l/RH9hOGdNWmoXMwVWM3HsXU10/BfgVi+sdDilHR06l78VcUNg0j1GsxyMPMmnWpjeXW5Lwnl4DezW/VDPzmBhq/F8gaaaTZd5ZJfcnx3miSDaODgZ+J9qT5IkAZMovLMZtxuhyZdlwBqDMT8Fw5G32Lu63AcwHp9Z00Gvp8i3f8VMPj+h3iSBI2FxBNI9186iGwDsAwKNGn4viWE3nfUo/1bcD9B9H4jqX0BhcMPv/cKuQ/nSe1b0PZbHS+YZpphWL5aTeWrfIeP4zGo6maDq3KXmEeq6Nzi2bF8oSHjlXyfE+h1Al1XzCW5RHqmXfJ/HarF6VTnsIiHOXGJdv9idgQ9yMmK6UoKHlMfWlNJQ3iD55Pt3GrHaBhnxVeTNzkI1Zvp9voqk4+as3dROAkax/9OcMddMWsU9houfZ9eN5Z/f0qvUyjeTcAy9QNav5+chFamOAkNlP+P56EJrN5LkUR/5CB7FjO4I1PZMpJGf5CFo50p9WXOHHvhB3xXqar+95FqpnQTr9byKh1Sx16wf8UkwSii48lnqu0ih9VNkg9V2zpoKlHw5BPVPBxXlyTmNktnPOL5qSnP16/0Wqzz3xxfP6Dn+tT5jwPs1NU2xQN+xCPHMQVilqKMWUxIIWOYxdkqOLKAcrwhOfMwiPQtxwHQ61S6VuPwtb9Uf9HXGcGmOhrLU91c3st5uHMpj9doKl/Gk8XhyeJgVMR/p+D7Qi/yMZF8aFTLoSz3mykVzGDxv3HsatvgfswX9tSu7GhbWX4+qx/Ceg2RfbdYvtcQ3y2eszMY7sf0PLS6/9uiH0SO8HA8p4l7XGz7tJirJe4naY6W0DlKA1J9aPyrFdOIhh7mR064UZ7PXa4eJpYR6FYzmNK9IfGCQOYjFM52sekZxo7Yk7bH8HvmV/t7+b2YtUyv3kPs52W/DoWjrstWSa8b0bXDGgo/AMNF7FZxYLzgI56Y7UPC6sjnf58nD0KofoD1GS/xZHkvMwlrAfQsC7UBy0t5Wg8pJFqNho3HEcErlSMMgYs1xKaTM+/SMuIs6ZZwMYk7wSQeH89W2Ql9V6xAz3eU7EbPlyyDvrtKmPKKCiRcr3h9g3s+99/Vq17PO3du/suVq1/OP43u2DY+uXD+ye8Xzj8m45bORsPjbkjXoxiPm+BsGOglAKmWcCUSqiqQoIqqVpxJ6iPNgPIsDzoFNC6xMSSm6xBAIiASALUzVINGvYWxn/oGFqNfX5b8jh6xxQOECSXwaeDvZxgvu/0v9E0gKoazA2HMQ0Zn/7fk41G+7EciLy/C4ziB6WI8hlurqGdPIzYiPUWYxOGLOHIRqDrWIqCcUNIIndqlZY0pp7EJ8RlBmelphJxh1S7IiHHOJBYHJnycJi2Q4rrM76v3MfdPn/lh/yZUB0bPXDnnn/UbXsxePQ2aUHphOsx4NP0prIZ++HPUE3QuozC/H2z16dgPoGn9RnTvxLjP0LHc/P/PtVTeaBMPddtXQXcxitH2Ix2PuUkaL8x/F1P+OxiOc3zptANQxCb8N0G2AwzDOvRvGi1uv1xqn+S4qbKli7nJzvYbUD/2Fu1/pdS+hat/2V/g8rEdw/KAidglqDyA5ZhXZz1HF+K2azEsn1PZYTttmx8vSw5y25i7xOsYQ+o70lozdLzUBhALSgSTyDlNJFzWbcj/faaIHLTkpfSFCr4h9CCrUPpFBD+FoTBEJ5hUZguX15Okfpihjp4uARWHSrA34EBDpL5GvQ69A0b8fPQ7H3jv7E8FAfaSbSvv9E7ZOGz5Lq6+7cZRr97GnkMvQP7nJtAb1rl60n7hyk9/wk1T5v0r6kWH0GgsXxD7exIYIgCxHnN4uaxoVs6vI7u3BqAHvtQwK0qZCJqEGjTMSfwNqOQAPzc5QHm2OnXt6tMaQ8kAqpfKUCQkxqZbopl3T/w4uM/c5f9cHXSsYdHIj+GSTdMn76t5tGCzYF21pAdM5s/f2jNoe83Eiwsu/NS8IeL5Y6POjkCzJq4T3rddadV177KyQzCP0oAUjG+fcPWxDljHg1FHdboCxT5qTdKIhxg4j1SExky2ZQkaXYRGlcAGoWFc/YqfUTP4IVfFdrRHD3FOe2J+GaapgiX8mqC/YBCzhA2u/GDaeZR7ZiKrqoDlb2DFgg2KZGChapK/2JWbWVm28YeEGimVoXZlWpM8sRZkiYWWnhKTiGf328tbt0zzKV0wfM6cheU/Ft6Zfwv9c2UZLBinuQCbf9JrU+/tX/DexSubDX6r55r8+Ibo54tVVz2bCWP/DDsC/at4Jc23tzz9+MmF0IFHJ+qenKXzSvc91x5L1zOFEEUdSlVErpOcCiFecWIw/pGRIVNDsKaZFYJFF3NIkxAiaoaUhWAJRnFgCBMaQnMZxafwllKE0cUpA66E6DgvsWZ+Wmals0RMFjHBhlpgLBTphv04YNj9iydfFh6dWboVWg6dW7Xx4NKyU0X2C5eewxqf1o+d0mHxFuucnoUFfT8eCPsX9Bs/fcCKI/vxeFujyex6zAOrgUYCQ0/1EevpK7aLEBIIpOLq3qrgMZVf2gApTFFQrBSTSJA+jlSvTgvGkjK7Ho2aMnB0qdCn5aC3mhdmoZ9Kq9d7DgfaG/HWDohd/3NRn1Fxlmqdm7fcnliv3zBzWqs2qa0KX2EcPSbiO6WvmJ7pQWfBT3HG7JvjF6kLMLDy6auBnk4Zk4IWY2moIo1U9NeM+e3EQVg0tfR5qyJymMynNyr2c+03rrXbDTQwkQXv473hQ2suGvD8lQmseCoSrSxLPquUewh/kcW8AHryKzFK9Akg+knA2QCMNFkBfQKY0Ud+CHiKr4SyAKKakJ+nBpTh+8SbHqyywhpVAXwqmyzVRNh0qokE8ybMyqMZA098g/hGJufz29dfPmIf3frqIWP7l1m0H326l1lkH7Vv/ap9LFbgvkDH4Duwxp+wNmyFTqNbWV1fQ2/0wn68xT/oMeRf4DWhPIzasqv/l2GZUxuxFQfJwFpvtTOn8pmti0dhAv9ldnefgYFl89kkEqMhxsdjWa2Crn8dxz9cI/4PEA46CIFO/4pZdYKcOj7eJdIIgTqa2RUEdJV8qniHpUZBjLMWiUURPcgME2IxAtvWNY+Ay6rWT0r2CkvpkJeCXqIds+Dm3oEpXc28if9j9VsV19rU5wb4dhzNfGKbw1V9aurF9fGVYmjEmq0Y/iJ6LZ09g69zxLMc0Ax2LcadFDBAYKV6SAT+JAx/khNXqKOVhIkkKTUOwatmkihnKz3GVUOTpMOIFLGfcd5ergOTRMqhOI1Im5hJKiRxzpLyhPSys6cWb7XCsSVTv3qwG07PrtGz9TvJ7dqhPROb71s3Yd4/t1eM49NrTB72x+AT+2fv7V/nbUvjBWn1E1tk1ajTpEX+ioIVN1LiV/bfeLimM/6V64DH3JmO2eJ4wZEDaAxYbvVXnFmkkkVUqymXrg1RuZB9VKfeyi5kvOuCxTgxZaSVmNNk4oafbNqeItvEUQyKLzrG1Wdv2hvnZGOce382c9VWk705WOR5G1BfjqXnVUWA7oJezNPXu872UKG5KgRGLuriDUhRF6WsDdQnlcLUIOKuF8slZASxLnO6lul49Zc7574fV8T8UdTz7sqd21Yu2Au5Dugqeq57jn5cZb/LaX6A3rYPT/14/5uK78/QuR2J5tKzwkygiwAUZ2yoYKX+R4NbfLfARThjDbTK+m7qw+Nk/hMJdbwCezCFF89aZRod/XHMxlnrT8DFS/sMqN8sMuutQU+fj8UwXRemr/3rqgkd7R+X26XRmoR6EW26pKWHpkHvG8lr/53nkjMKMG7osaTRTqgq+qyqEsu9h3Nh5QQynQotvJX+XYIWVWlWmOyaIlIEsJigykXNFaCLwycW3Xn/a/QS+n7NmG2DL27ZeOni1k0X2JvNf1xqWvYXOWou7CGMs9+48OKfcuPJ35+KskJ7LCt8RmFuLfgqeJIKVhmFdf8LFKaWOSWFJJXMP0PDW7SLeSuiXs+p49AitoT90t64bx99j6jFa5gzeRgOqh9gOEh1c517LoLH8+7kQzfVtJkIq0HpDGsJDTIQ7kFIdDAsGbfiA3bM9Pq1/yo/fIqrb++6bgsEn0MNDFvoAAuRA127fYPZhtdwNIrhAzAcESAO9BF0ohVBJ/LBcHNlwdTjKa3qBF1iQPan5Qf1arWCTwB6LBIaA6AWC4o0PodgJdGxgzOC0sX6R0wJQn/PK26SO4y5/nFR7+IvxqH7tqKij+4zJ0prpAXrYAqEe2FQ5+4t/phz7YWeNeaOKX254m90TYfSmdo64Dj7wat6oq1NOi8L07JedO0noha8Dx1rtgAohQDUdfqfkrhHQqeqHEBzMv8Pd+8B3cSxtw/vzO5K7pbcK7bcRDdgbIcklIQOIYSWAKEX2/SObWwwvYPpvddQAmIx/dJrSAKiJZBQEkroJZBCsUb/KavVriy4ufd933O+83GwbK12R9PnV58HGKiWC/C+kJrEp+B2GTiR2g54Y4oxJCDUCJ+evMZPGtPgPXQXoew/0GsxBx4/hM/QcH8AbrwA4uSHo9ED9L0P+gJsNIKyIAAg5HXdzgXwvzEbwiT7I50/rn8i11aKVtkQSu4XbvNBaKAPDWBS8V3F0H3EzypFB0awYwfyCpQ4U4Qgaw50aINkDMGcmfy0EXkTYC4cPzy/kJ81psmHp7dnf1X605dFp2o2Et5Ht9GLM8+P7QeV0Ln9x59ZgQcwLbLjyYeu5I+ygdKcfQ4Qp7M4hnNYJilH/PHMzo7l+Y/tD+XYzviruHKyXZ2uGXrfWoYr095xV1kW2ek4v4hOL+dvZIIaWKf3lPM3VLo51ePXyvcE2Q/KcROh8j20r8Xf8T0b2D2wvX2/fE9pOf93HP6uIaKVi8W6ay+pNNNdSzvxKDS2HSXtLCGCpp0lqKFeCGK/ty5CRrbTaBjE3hahhsDDQ6TTBzM4FGM6G6P01CSyUTLOjTSip+P5Rs4lYUj9DvDS6aN3c8CKmXNn8vfR7xvGLtjUooGtz+md4onmXQBcHa27duH20wugPkTbVm9bte63YOB9yWfubutB9JUuFGSt+S4AdAchQ3uQ+LJzWMYbI+7DsnNDKULWPUro6VSnjC4BZa/ZPg1WKYKTwetl7VFPVVyyDWBJjsj2gaHpgTWAEFC9anRY+bQG8ehuHrqTUD+1fFh0lRpt+if/HBL2U5V+4r7Ijv51mthm27bAz2GvT2r7d4jqkIUCGjUBD/q0xeP0Hh7LRMrxl8T1lzwYv7OH00aq2dM0pOtK3Y3qg0DyMNIhxOKLwUrCx6nJVSXIS7E6KrZSI2l8CJMZyNJJrZqOxRo+yWzS6bWrTJe4rvXBTX9/1vSvTQdbzxcfHxc6F3/RBY4dkj+OrrHBY/kL379A6MfiYlAG/X420/bj9du/XT3z/MQ+EI7u7T/+3D3+8z/Di/6HeM54D0qz/ykux7pnJNdXCpLzxUvMdSoDuxKqk1msdiNEhMhRlD4aRm9Roy2x0yTcmSku0KA1syx46RmlhrDAdrrZ9nqPgW7Q5Tngq/1Hdq1Zm48+E7qI9W0PYhIf3Rxxsk/XnQs37apte1+sT30K1AdH+gkMlmOMVLjUijHZQ8kdJGv9MJb9Y7mREq+Kq9TkeSl6okEB3lIF5YSyi6HJUmEoVhE7kpfkUIJGE9oxFOuPBaGF+Jc6YofX2hcoByxZ/gLN60qlVl0hNB6a4qCe0nERNTEtXTgcju7fW/VqIpiI1j8A/iF5FdGiY/cF2NG28s7Rw8dCwYnf/lgFyhz81xFQfo3tBhiErv9VMatyMbq4Zw9uK81lwW01E+5VGm3phhMiGr+Jpj47z2jKuER/uXAwa/IMpbhoT8b1JCW6cK8Sk0MClQa05KvEUefg8uCfbUQfZs0BgT/MvDMi/7vN609IYOLpDPT410XIPi7vt4Mbz4CM3GkFjXtuXn+u/6m8uTvm5vSb2mvQij6brX1PjFwkzXPjj/uPbdj18dmxiz5fkcrAKRznAfF6COfiuMGSF8Pt8XLmAWr2RQ2IgpP6mQVrARrE5a3xZAZq8H1VeESBVL6isrLRRAB0hXiC1eKFj4b41PQaICASEARgKuwLu8CAGZcHouKbKNZmjQtqsXBM1dKZWdUMCXwsyPrq0N6VosW2AvQ4NOLoHbxg1qH96OcxMAuIOcAXhMM1tvdsIy2zpm7lSXv34vamUMyLKG6mBBg+HXDaqJUuU3Aiot3ReTsFKegjB312BGQ9kJdC8iKwD4RkLbIx8YoHaey6wVofeYoMfCzoTVSNTFH6AaTy7+WBnrN/GozQdRRRfCovj98OsjYc3LeGN8Lltind9g4/8Csg+Y+4Q+JtC7+aPnE9JHsex4lHqa+tvYa3V+Nb05jgFYVYowNLArO9Cy6INooSbDKmqbAwHJvbfNu5f+1+/YDPB5sO7tqfhxoKnfEw3Uq5chW1Bqu2rKlqq4U3NYdvWWdneAZ0T1sAvN/B1fAvfP8zugeelnG3Bzr3QMUf463cn25/KHxP8CnAJTnv52cFuytYjtnfg5ZTvDxvroHCmKRZAxpHndvDVpv0Trg2jXRYSXfsycdjiMrnIxOJURAbvP4MLQedXWMuiF8Bv8+hGAAh3JeSF2VPIuvS4C4/VznmfTTDBX28GNucev55qeUzhp3E5htZgM41F2PzAz3m/jQIYUE4hu+L32VtOLB7HR6437vuGXH4Gp5hMbaF62dOXg1Lxog4zifynpxPuD310XJxIm6PH56FX0oBDJk0gMWPweR3hMFzaiZsErrEOaAMmPjiq96wK1VOTOGZazwlDe8hJsB2FeHxYpD3Zmde536T/CL4xOJG/Ae274J8C7JQOuiMR+CbwWA/8IR+r3cLN1BHVIwalYgdIfzXHKf7g66jCW4OFE31NeEhbrHOtMHwBk8oB/snG8jZatDiYQlWyYMaFIm25m2VAjmDE2UjnlEepyhwG0KPNXkbUMASGIk854LTlrzN4PQc5AmjFsMdtsb05xk8ZOsLZ9Gfj2z+TEYgukc3fG6W4fIkM8Xud4Fh0shG3hrvnM47hKKz0l8WM26HmbTDTMQDc0czlgucmQqSMcFM051DvBm5p1RKe54ySixZXMJKgJEcpAyx1enZqgH4Cyd2LTuTN+LW+EfAZ3oOiEK3fp/1bFjeT+v3/3DgxN6inQeEqpOWfTVq8K7M84f7bSn7CXq8/2a//flTd6yfNnc27AmmsXbTfQSPqydX182hpyQBlRhKJaCFUTFLnvQX8XURPYDAnwhD8vKKj+bnk5gW4fqbONHyJl69d4U49i7QFo/gu3gs9jtiX/g9tM6l8ftbuM5GrokkqOxAmqprwm+ch7cmxdTTxStBdinNOSzcyrMtVJ+6NMLKzTn71pgdJb7KNRZGbtdDuk+MUu5X4lccuI30fjNXIq4E9wPd02k/1Nb0g0JbUCKeQlFkOQpVo5JYGDGs3hHxXhOCFLgMLJtp+z6h55nqJu/gmvmNw2varkyD3vzaN9Xr7vfupi+oMFpI5njuE/sxcYP4iMpR5bgOkk/5CkyCxpIUeSW+S+9kApAaEs5mvRx/Kvl5h8sx8Cxi2E+Nuo1FJLI+4p0X4ihyVgjjTtST0BUSDEZiwT4ALHiFS60Kk0Ech6XpGGDk0+I2AMOCeVhxTsyJ2oyeLlwIAjZF5UT/BITn3577GRU//+5DMQrMQX+vWo1ezoOXLs0GXmtWA+85VnS6uAHQXf4eQC+Aii+fs3NegN/NuYtr2Y5WigPoufmxwsPm8e+OT3cnps55YtKtfDs5MQs9B77ZL5+Ye/Ge3ZF+52Zch4V07BtI4tvWgGaPdiwIyY9C0+bjXg9TKfVs+juSW4hem24UFuZ/v//lIyy9fL3/4Ldk7sN51X64DpajrG0rq8FtxCeF57zkkBlKVEATEKfZTBRvlTb6SsekYqNDbABVYL08WCfvtSD3AJUb8PeRPtiJVuo/pHnvLekE+w++3pm45PL1ZCJ6WS1QUw92rjrqMtmzz6tnqursQB+CjrRKHLT/heXNNbLs0sGN7KKpn3MOcLK0QjYoH/Wp/w7xhXcvvnjBror0EovC8DsmvVhsE5n00sg2ziG98EQnEB/S8Qviwrg+UiCNyyI6CrSS1xB3PlVNWJZGeFbwLTkvDzlGy0cTj6ZxcjirjxevQ9InYn+qswV5rPp8XSzxv+cqftkqy/3OSbLMSNrRRPJgMfoexMzvpv5KzOp/X8sKJWv4XknhEHDT8B5+CssVMdxoiadeFjf6RxR+E0XrE0UDFlSyhVcQYxZMLmrq1dELixIdCalZIXkh9GZFBV6F5OpWLzBA7U4K0lCdGWghuCnU4WCknN9VYXwsH5+GNXeax6ojGXnAI/zE/uO3bStgpwcn0aKKeSEg4O4bUHnSq1UP0INQcOLgdlCJsyf0SLCBsmjazddoIfp+yxF0YeVft/EYnLM/0p3EbQ3hErhZksj8EaIzblgjt2v0Sw1lpiL++jMZ3h/rl/5ElvLv6E/Ch/1J28mFAv9CckEFWxHgAvyrjYyiwcMkh5fCs5kYDa9LBLHuJIkdtqMT6I+8POAzDUDwGYkfzntylqSHOgiSQB+QFmNrjge760+girsYYsKPRHLD8LysIe8HnaUgth8EEUHWjXzpFl5ICvDmZEAhFdacCOhJ6q22MxBuTxOIB4yuHG9YWGQ0EWoU/ghqj46MA19MmwPEx2Bv8dkdWPNCB6TDsJltKxxU+UThmfuvP+Nfz7DAaV87cdqpL7kuXV+d8TwupTNyUVhC7i55MHYrDyefMh3OmBLryyNAXl/+ATSCLZRekCI8ODkix6Tx2JbWuEA5px/RwKXT5FE/oMf/sfgbrIL3gZ+dAdyQn6f/gP4G3KO5uZn1ps5Y+02pWoeLT6xcdewkOnCMf45eXI+Y/XAMiH7SCQ/oLHNY8/ot+9YOjbhzqGUWCgrfdefuvyI2/HCFxplswGPmLbyP9TWS0TdVgsw7CgmiM3l12J412CaKPy0M0LaFJRf1CysII3FJYYVheJouDwMDpaZhJF4prCa+Lp0lF/xVlmn/MNkvbNCYjkppMuNN6vA3x6Yfn2hKIL9MG8C0M1e7dOg56sJhtAF8OWHWrAloLUgGEYsXoAfC+7OnNyuIDpreoXApeI4GZnVp27Ob8K+uXxK+V9zwGrjN2ryG8H+U18DXsF3LgYv5C8UVcAmQq4qOCI1p/wURfZftxQEkH4eCDLmHk3LRdxlcng9NJdMbZH1X0Oq7NUFaJLUaUa03kMx1Ho5JHREYCAv6ZxdfGAQuw89RL9+A7nU3gYZgSXE51B7UQEfAar47uouGKzi9dJ43pDJFGJZnOBozMcMN2LEGxlvjevgneq5R1nOL+hkKDHhiJBtqGkgMm0GbBfGfKbz8jzNyClH/BeAQGjgTdJ2ZMwt0nY36g8MLwR/Ih/zActAfJYKfyQ9BnaTt7GJ/zK+S4+6CVXF3GmgvJb7QS6vvelGqsAT6y5KA25NQkEDak1AzgbQnAc/xgoTCBDzp41SHUFwCxXsO9pLjEKPcKb5v44JOKoeXfxofMmvk4LXZdzfstXZqZ725b8eTnK9HTFo8fdbaPa/4qC49s7+cYFkx+9MR8dW+mbVx5+wuYwZ17dMpS4fbizU0/mfhfRc9VxO7Fv5uPVfP9Fy9q57Ld83Jse3Ozhbef3OCzy2eILxfPJ7prfQ7xUNYz30g29xm2p/Ifkhf2eaG150QTHFJ+/zv4JJKTXVki9HVJBilBbpCnQYr/y0YpUfW5eauAdPmozrg8TIVRukL2wUS+4rbcRXX0UD0bTmXtEQX/tf6th/EQ4t39/RA/moOqhvo8/Ho3hUTM9v6hdAevYB6/fq4f08IjxVDH2azwPuzmEr7rI2bjZj2TLgrRl+JZenMp/CmfCsi++XhzWJ2E+UBptCP8AXYMicHdWqFWmcvXcUvwNXKKZ7ITy0ejGvhnFveJCq+RBCCZkW5Z7X19OIYUWVRP88CTzJunoWeeNyaepKh9KyJL0nLPfFp4SYNhmoo/M85tj05ObB+jjx4keCOikdJFRPmqKs2/yb8v8m/YV/Kp7N9n/jmUScB0u9qSb+LckoIn3LRXGOZ8cFNvI5TVnBOUt7DQLnuDR4yo7M6kiuRUjgTmU2GhA8JjafhJ1haCIHlh2/QDxIH7u996VX/c1Olux6DPNYXrNq+vdm0/l1XtwOlXyes+Gv8xa8Lljy4EH/2HuewJ/FraZ9UdtMnyrLTGVyA00Sr4wRMNfFr0dAcNI4fzl8sLs9fzFAwh2gMS3sqV/RDncT2FK87CX9TgaSvkiJzVJnoIVfeSqGuSoTZamYQPU78XTHUNECMeLeO0biinOZHS1mrJYbwAlaqHEjzAmTqoBiFSoi4us2JzEFLtt5EJ1dEv7O7ejTMbtT3a6snsO7o/Wl2k8xNZ7yEoUunZbxXs/PUJcVg3rQONd/vPHUhDAIeoEoy+BVFpqAHLz/6G91KRvXAnoqAv/PRT6/LF+8z/3rmu1tl+HplXnFu433WoINCQ7qmPtAaUzSYDeH/gTFlDVkefT37Fp/HO3Q5/hKWBtqCj8h39cXfvYzGlTXQ2NE0u69m0jqDp+hBnY8FgzBNbJdJY0ohoQL8spw5E348ImTDcctnTs4BJ9P2nwIJ6ObiSUIl6OdYm+Jp2uYGbjZYzZTQHFj/1JYSBX7NAddyXv/k6AD+0psTwvtyvPdBXT38tz/XWBHS/uHXv8WW4unOhBICbuaAqzmjPfu+PuusBRsKKjvG4/NwB41xJvYTwPQl4NTjS8aC/tf2k0CH/USnsZ/EAyt4L2dH+x93oVZoPX6TNmp2YT7eU7O/WJSxdD9/EWWjiNEDeo+Dsq4gNqNjxuwnemY/0dNsPL2L/SRcbT8Jf7f9JPQfWyZ0Je0nsUoLsln14XN8OmyjDcAtMcoNsO2gfY7bwN+U2/BW20n4/8B24lLDkrUrUTMWY4vPDxJjG8NNkAwq20nJdSlnTP2zI0SKpp9ZopOlg9H4gO0XXRBNpNfomuRXQXRhNDGoRBNtDX+sJVxTnDNkx2RxXExCTcdnQEUAxfx1g/sc6HWy2AsMtk6S7gxeO2LeLj0KBfc9d/D3Cgd0WdMJ3b/ZZMmrCT9uGrXkl4Pdd11l9qsN9ke6CNxWknm9WPJj+WN+TgwZDaEDnSXhLoQOLmsxIJj55ov6gQJAxEJApHJQCOCAouVgKyAtBjXJJwfxJ2qV01eTfSW6ZmHXgClOzdzM3PSaCF88vqniiMvjfwS+w65OPYv+8kLfZmeDTQoQVZM5j0ci6+swAkEVfhOFC+/bzjtxqCA5LUnsvmwz8WV7gK8zTuHtcqcirQcwTraAZLXeoucdgdeBrlKobDVJI00JZTaTbTnIgl6OBYZ+eReK0O+5vUEbdGZ4IRFKQRH6BByNXjdgtgXt6zgMgr053H/N9+rKx+pDfe+pVy2xMt6l/TcsR3yH5YZEbrTkL8eOxrnh+XCYETV8dlJyHOH5IC+JUXEUYtmF5yNKDncyagY9TBPlUMpqSTTQGjlZP9wijjv4Pxqgbxn/x4oZNar7lfu4defc8YQGZOfObJAqXEAWQgNS/KsMHMdHzJ1B2UAuZJw8yfAliD1CvIF1pzsyTvJd+8MSOFLOGC+SR3aF7hXjNXvF/0TWlCLZxcjkooLIwki8cPpFFkSShRNZM5IsqUi8cA7il6LlkVvJhah/IqaSJN5SAFbL2+BJBdUfXjoF1SWSHjxGgXqp2ZSBRFw1I5Msrl45mHH4sgOHmMrYXzD+Ddz496mPsMk7uHNDXLg+wq9i+ZVy/C5AjfFqJc9/SvehBI7TTcVrj/DY50qeNFpOjWVFXeBujy4l5YsLkQ8G4r1T5dJrc6E5zRTzcGW1CgkNYQToJh7K/tj0QJNyhvCnwXv/6tX1YhH6FDUNNk6Zm55ENEa4mBwos4bDSaBD66mztgOsPn6Efn7Ey/qj7QGqNTyzaw6gbcXylm4JjS2NxCsL0IhIImsEWt1Qo2isPQ7t2yXXzehgeRe8oTMAyldjkVaFhXmrw6EcAVAO4ndN/FM8iCK6Xd2vz160oMZU1TsI0grmzM2HU8EW1FTYPHuOBUKz7QreS3Eb83pkDKXrwv6M8iwwjiDu/2McQS3RQS1H0ObN2VgMvIHWuHAE3cjYt4/tCUKweB3vCY8cfIz2B5oYqXANXimzv9xw2F/wfmx17iGKEOHtghF7ScGIbfs5XwIjNki226xBy2Wdv657/UQjLys0m28R152SMpWSyWCjNTloKROR35wggVJEUAfcRiwn9KPYx50k/duwjzXYpxpnnQYEURGf9ZxAyS/UrndSJSrgMPZOh1PYGfWcbtT1Axf3DtpesVLR0KJzfD6YOWzMfCxszB45Yi4QLW8enL6d1bNn1o2TQqk39+dvleYKIW8ezJW2zRNC2J691P5QvIWbZSJteVsOFW2Lhmsg/N1tCaNtUcUZRrtrC95f6MGVYpRjucVb8NiGrFXlKqzpueYwzAaf1Oo6ZErO+IH9xkO8pqrvudC+U6f21n3wmO3jBc1qr54K99nqTlu1dDI8Sv2+Ntn/SGIr+0oci60MsXIlYzCUmgYaqNISqF1SBqcmQzAtAmmmEtQETnqVCJx0uijltaVoM7Az+s7pqtyxIw9UxReow1LIROeoy1LIzLh1C0HFa0nacwuvnV913rQ9gyUv1h4vgxZeN1K9X0S6+vICtAF5ftqG+f7TVulYq8jqcLaqO9oH0nOKOlzegVoeP453Rvw+dfSs6XlYh5jUenmP1YeE97uD3miO7QDymDCk/yQez7fz9se6qeJxfMbNlHjqnWRticc1jncbpGHCb0y+avR6qvRHCnJ+fbIvaG8BVslDiJQpK7w0crQqGyRS3VgplBXhb7DEWGWxysApAeFGZzx4ik7lswRNgAAqv7kLAmhY+ImHMND2+Pbxw8dC80LRgwev0CVUnJfHlwcpIOP1TTAIXUYvuzd6iax79tz+C/QEFT+2VZNjJ9bZH4ljsLyUwK2WolV9QVPt3dpYNH2heKz9ogQWwVPUz6+ApFA39SM2S7+aJLlaTqKmHRQld5C3Jp1aJRBEaTuIlWskHUSs7WkBrhJUiiJgmaktG5R65f33N7IgNX+7F7iMzOKOJQ57oPUv/Ut8bLa5B3yJPGU9mPHNFWYTDHuKfKkenIjX8DEaQ+DHff4ORKV3hL/6MoAlXxeOBcnPA6p8ODzFfgImnl/0NPfmppEwJBsGjLRVAQiBn1AS+aHBNnXhMSKnhMv+SG/OoKlX+H9QL+gh1wto6uXvvl5mPSzelCPNygfHeoDj+bajYMQCc2nwJVpLfqgKdBhkjR7NdNfbWI66RPe+EC7/34WSu4XhfUeQeTCUAXoJdE6wQY1I5UXJH/ysUgiUAUdNFNVPbksgWzMmHnQEm8FHpIs30u7egvLy8mBp3NuwLt/r9WeOPicuMtFSPJf0OmnXN7I9LpAL4wrciIS0XeH/Zbs4g+waJ8tDJT55U8cnjcq3BFul0IB3Ns2sBx+B5sCTjNJsOmIz0JWcHGBlA3YY5uKhkocNtEXr8FE2QR44yC3F7SPx3tH4BB4qlaInMCECd+zxb4fm0nBrKTYrT53sxiDGcU8NI3MYuUC0SJ3WnJCCxcMPAGmcQ0Y0xxMR0UxFRdxk01Lhyi9dUTOhL2rW4daPWMqYvnm9Z55u3eZZAkwwgk62ZDDl0CG41vbl0cMoF4yePxH42/rABV6jZ6NBvDf8UM4xx231wGNJkFWGqvKdg9zZVzRt1cj6DpoFSc+YqfW0rXqNyz6EGv6irEQu1vjuU2uQBgHc0uD4VE1Lg0FKoGmZYL2G9vJL0N4LF/gcOGVZI69sfaO1UyDYGfTK9vr84YPgHgo7eOzs2fnjgAElgJte4xecgc3BKBJ7w3EeHngsE7jS3AwptExZmQ++tNUNxpbmwHPbPs2Bp9n+JSDIWo4lkQbMAY23IdRKgiQEl6RHU3DK28Y43kjoislsJrd8wneupBpsOH3dZnmw82EPlJiXJxjomPM+QBny8XPHQeeQg3FHOtraihbbl3joIeG71H1LZcxEbp6UyPDZE53xePQgc4x7LH4T63ZBa9aww6OvTevnYoWSqGT+VqY8yzYUjoJ9xbpA17tOCD+gx+/lbsFSj4nMDjFONSvaLhkt5MKuqC0+0Z7TOVOaTBHYXDM7hDGFP3x/qCMKwkJRGJk7JM4Y98lglMmf0WdzZbgquE+SU6qSeiczTH7/ZEsy02aScMOSSkTMxSTRgyQmWeoYQ+KwyEuUypoSFSMH9qiQAZLU7ZX8k7HMlEyYxSxVknf6V4mpklyFby+VTa5CnixntZRj0Mw09L0cYXgOCdVT49wHQIkEiDViKdCUaqoiKNjQ/K4pI0Ecuv+wzsr2TcpnTJkx60PLhe+PjB0BCorWoZ3gg18AQKO+pvjRQuV+m8o3QY93XeWHv9ctunXi4lY9h66atGxGJggvmAMzvgPnFIBpyHXA/dVbVxGvrMrcJqkC89pVYHFAWJeu6EadVoyyoiZywiyGsRSBomRzTTOWkJabt5qJ0GQmdmhzAfm7EP8tLTeDgepO86FZA0SkdiYVWioaLJWtlsq4EyvHVE6ujDuxTEXK1V3WaimbTIMqaB8pARWa3oyl+Lu0M5U+hNeWTEeXQcyp27273315ocryLz+r0GPCTBAz77Ntm8aOAg3QTdaBfHTLziBzybhPCxI+/NfUzUJ+erdSrc0LcS9WbV8zq30mH4T77zXQUxxNGfcvQAcmUj1bzuXH77/S4I4auQiKOyow67dAiZ0EZ/yg+ySZQMYVgdWojoEE1yfwYCDB9QnsGEhwfQKfBpI+DSRzlXxcEFiIrxPZPFSdkefCvBD7dmYJISBUNKWymEHR5GCVuF0ScbTYl88loKMkJuSpwiuhgR2tbHLEDI4KVYBHecopQTj5/LlgrH1Nl3yY9uVDZQIf5/msEc8VfLVwH9of4VgiDy8IJ5MrnJgpw4n5P7wwnJj/w7eGEytmeE3y62m4HV9US+I+GiuV4ILfQ42ZigMgVcSieGwaJdirCAj/BDP7X0F/8k1s5TyPgw+PoGWLTnrCS94nKQWFw/Jf6VWZXbfvwa13pKJbzB4QheVcq3gUS7n1JF9VnIlGDtHo0k53h85XTsD30MBMpRMwyBR9nF6nJ4Cr0BQTA6qUn9grFlSJ+iwZ5QxBoeM5e58+/J5pw0Fvr+ipb9oRBYnGvAhAaILnZD0JqnzCmtAAjXGZasSsLn5yXby1dQmkFB4kXZ5WBkhJZY4n9GpSPc4YFteiDDrTCY3NB/6TJsGBvTqHdPQZUDwNH1x4vdB+0d0PSIJJNI6ou1Cde+Ow6Sr9EcCYtPD9nqTu4hF8v5ndz/9kv+i4X7FjBhIEQ3r/cNTYM4JyOKdQfrr2Yk/mn0CNPcoJnxooHgO5LuTR82OofaBwW1cNz84yXCtJYLGggoFC/5UgUndA9MhMcwHkVXViENY2vSbJI4nCwkMdOQOTsOZbNSAtPTUlOIQzmqtCM76og3qsHIfia2kBqcLt/Dvzcu6ieyPuL8i5CwzDvinKKfqeP7sjp+gbOGkfurLRb/jwIJAJkub+C5Te5JuTG4YWoaueT4A5bMjQEHT9wcbn6MegIUNCQOk/KJ9LPl57+7DMb+ZaSzzjq+ENlmirG/wzxffIgMUZmohBnSJNViyvFgMtkSQsoWoAbRID9STthKl4ohIHGmmgHwHQCcENbHPvQPaRuw8OZh+4B6Onrl07NXvSuvUTs2GFa6BsyIABIejHOxE30A9BgwaHAPMdVDv0RVHEhr9Cc3ND/toWYXkWMoThiW+0P9T11lfBc/pDri63WfKqV1+25lSheLM13eHNKiJ+EIV/9iV4+ZKXb5CMTBessXOoJIDYIF/G40lQC8tbyeNVrZaq+Ji04pNSqgDVxxeVAaRqzmtVDZZaVkutZEtdq6VuMpONjEEKrWdSKkGeCSZyowvQCfFABQZTLgHcg8zmDOjEwdKUcKfoPLhQNLSoUqWiITsunN85bCaYmTdmPsgH88fmFxbm9y81wVZ7bjswumeb4v7Iow7fA3xSRdzy5Lzt0KUnmT17Zj75EX5w4VnWrhW2g6v2SHOItjhH2rcCVl+xDzRquXStKWvICogu1Kjfq0dKVgTu82n2h+IF8THu85pcA26r5NWwkdznKbTP67vDBXXX53gB/Zfdnma1pCndrpEa6IBIHzi7Pc1gqW211E62NLBaGrjpdrO226uDlGDZBix3u5kYZnDHMxIH1vFEhOu97hA4tL7X2grl1/akf/YZDUb3HTIlG04d1GsUP7rPvFITC+o3N8/7ckzP5PaFQ1BKbb5n00pCvWvH0aMTN9p37tz+2nEQdOJG9w2z0IO5m1ZPffFm0rK1hSB67ibQs1XT8nFronoPjWtjRier1++dkdozHK9haiPXPediscQ2SdIzXQirZInW/yNbOVG0zFYs1mF1y1I6WYpzEo6UJl9rSUz+B+b0xFRTqInsb+8wqxfHwRcQFfV7t3n9WfPmAwbI3BXExo6PNBPeq3FfsL1aTwDv/49s7ZYwR19gTScuWYp39kUc7Yukf2SOB+msM95hli9uD+ELHm3v/2/s8yCxWbMxY/CZPhrNFjaLxym/FVBxRmlyg2iHBLtiqPtBL7Z81XISVLswqQ1NPq+oIZesCIrk/AGAz/JuoWeT0cr7wOCR73N056HHdw5/gmaDtgFgIIhbfBBU+qr4l21H0DfFS9+gIwxfbhaNfXFb1/D/qq7hvLauimNaQZrDh04KnJB94NagCxOl24NWjVqyd/uiFmgWaGcE5vvxi19OurIxf+XvZ0xHngu4jliaF3JFwhgYqIBxOSYK/gpRn8jHByami/Qnhcfv4UfAlIau7Z3wK7qRChKvouvpIP7bsb+DxPfRL8CyueNGtA1M39RhE5i8qdMmkIXabuqwkXKfrBYO2f3Fvzg94ePAOjavphLB88SENxxbYH+A+oof5J3uvY88UyCG2j/XBeMnytGYNkYCwrZUDqrFXScLG937okF81fg4P0gzrdNRj55j2s01fza5IKNszz8a6oKH9o5aY2plbsUv0FGukMFiRfShrjPjPgXy9xCGk5TgUL1t8OQa1cSr46bmViT3rsf39nPc62D0wPea0824Ab9UqwGmiBUr5k4dx3m8jkXHwD5xK74zAksjqdzHXFOuHdeTG8bhs9HSItnSKdnyXrLG3qrmOqpL0ybqGqRPBLV5pgW1RLQwSG2cl/Gy7GQguncng5TpvIyP5/cMUk1BHaef5kTGBRqc3EDlXYmPXJ9yV4SmBPKRzXfQgcH9UypVTAHXB7fvOGRAasXyKQ2GtO84uH9quxT07WD6V8UKKbamjhttTQbLf6HrjhtTh7BnK6QIL1pmZbWsmJ5aCT1smZXZqnJV/Jdnq8yslpWrple0vSKfkr/QbXZfekUxQnlCdV+rTPYsHnuP16VRV5ApnuAELHX7UUtxNBeHRyuRopZFJ1viky2mZJLxHJDsyFF1ZKJWqiyG4hXCm/HiAOlicCJeIakiSE8MFYFeNCfyZj49EIQG6nlUzntYp3rv++AXGO0LmqB1b4b4ou2gLb8Eglp10M/F+FQ4VBcklTPO+egE38k45+NjH/qhr0FnYZUfaI5WIKNPfpf6H5AXsMWwsM6p4unGhXVPwdsQ1KuLLhXfgmhffVBOzs9HR8Wujvx8g5nl5xv1nEFo6cRkVw5RZ57+GnRUaOrIdyDPkXwH8hxfyw2Wu/zc/299p11pe4a/zXf67jzIf+s7DaDJaMbk/8yJqm3eW52oYiNbLnWiio0ytm8v/trhQsXyRBEeq0KKZRJJskFYzAy11LyDAkUKoawneBWo3WK8S/gLiX0goBf6UL1ZF59I60jqn25OB5XywbNbwGNsQeMp/VeAsC/2bUZjweDBTbM/IRmMouXet+f6F9ZZUvVYq5nzt0PbwPgJdZj8I+ck4LFIxHMrlNl/Q532X40Kr0nvegvQrIECzfrRX9pwMaLHasA8DKwlNKw+hSBeB2AVlgXK0fx6c3poWqoAR/Rt0rv90OtDs/vphlw/ci1n44K+y8qWW9GnU/2+n2Y2hwHoxbwJtcfVWGK7LP608Gv0E3ojnH3Ws7vtVfsuVSbWHpl9nsgLBDPHpA/Au1AViffydm87eVtGB4gPZpEnKYIJ2nzz4MscsSEkrCqgC4kNx/O5ujgbn73/eW6gMYWvbruSA805LE0EtGG2nnIyj5Iv1/Bd3DVv8acS1UhndaWkASYHYT1ujgkWorV506fzfW2+4Et41FYdHs2AE3rYbtLv5+R8R+33h/9vfn83tCtn9Wq42HYNNAR/IS/wVwa4nokmMR4pdFtoiNtPEI68aYQrh2dcSQRGxSETrA1vDg5kZEtkxXtr1pTRJaQsljM6YffKAQcR1RkQBcr1OzMVLCt68stZSktl+wP9gJ4ufjWxy7PTt57YklluPckN+IPfiPvqbXUN/1+rK4MI1Jux1JUm15V/33Z10htg6PZVr9jJs3h44dCUHLiEv4CWvbiScWRoYLuYrydt2GN7RcKjKA/oUr2J4oyeojyg43WRjIMHLdVFCu/j6/fYdTFYtnE1J7g/+Po37DpYbt+Br3dBLUh+JL5+X76eat9JMFvQFNGblE+waMh1QbQ/IbFpaKmQSst/xK7zjCNqO57nF3FHBjny+0qSYrgNL1BOOn8vH1USPEt8lzPhVZQPwIPC7Iuyja1SZU8Yz3z6LM2PpvoJ81FT8GQJatguY0Z+/oyMzmC4aLHVshmgBd0C0bbP8LueIAL9BufRuhNM+JoU5ziPK7k/aiwXmgR+J+S+l68mOEQOCFHHiEjL/cBANa468PSTW+KnagmBemEtwUcYbokvWgemLkPbG2dMzM2dmPEJMGEl8C+bFTx78oRlL/7+O/iFA/YXxO9L+3+sm31GI1xo+l9x9LLIDQdtACMHYKQB6lAKD4epRlAfByRCQSAnthQA/FRxFiyaCW8SLP0SBp3Ku349D3ijP4/AlMW2jXD0QrjJ1kqonQH06FUGOgeX2Kraokg8559433qN1Y4gR0QCbY9bcvC3tMegbk9RR79+/8OmEJlCaQrYMTnnwIEcUBGdHwHmzESNwM0Z0N/2u3A548iRDNsycAwF2Irw3GrGcbr+VI4Y6Oag0mjkmnYoFn8PHZRB+Tt6kHHxIOPi0dFD2xh80KnI83yAh7PqplRHpfn8U3kEKEXT+Vj0sXVT+p1YxmnOqR838t/leLqvr6cX/Gc5ntxba0+xJkvUHt5cn4P6Q4+1YOoCVBs8ofm7/IVMmsD7h+28jBWLloptKW9yeXnfainL7EuFenTfeirvW7Xo2t/BcfqD9Hzu6CaiR7NvuY84AlBHM+NAchiRUQUNpIGHi4wqix8kCqAyX4v/1FYhr/hQfj4fB6dnvN4J99rqKWcRHofR9NzOdxORo2H/fku9fHSaxBg5J4blx8gZMcsBGPgfVToE1oeJqAVLwm0F7mQWV2CJuLTO29Aj/WnKe5YlBci8Z3LIsMbgqMnmVKJqQKhRjrfw0BDCAE14YahLUou7Y58e/TfWqA/+tYxCj6+tOfnNMkUlO/t1E3E73lb38P+TuitiQGqaqu78D8sAB4K6rOsbO2U2vHJkZY5tdw7/Hhzw54+ZB7OD2sVaxm3cbXul4FDk2e+KC8XjXBkunZsjlX2vGvWNO/1UGn8yjf14Jw+hBIVYWQ3zdYU1DdEkNpTR2N1UtvdYg1RVDapPkaUTZDjgUGYuJOm2im0uINgYBPUhKYQQLi1AzrMJFhee2zD96yL0YAk/5Nxofva/8n+Z2e2LOYu77Rhk+WVMdu50W4sl03LGzisYNi+83sebwfvHrq8HgQt6o6fXTn6Fns6N6AySLLZFf09Al/624+l558t42GIT+rthQ6BfBzwPPXx4nPn5Hgojse5E/IJTJaFqqqzrmdV4PuFqTOHwf9N/0XL/+bhmRQRp+i9J039l1T4PSyWro98YjDJxS5Buw71WETAcdeJW09FOCwlNM6bKvBMjV0ztN23y9VxwcH77USdXN6zZJ2fdxHGbWjVp28/2vH/mgsxmrbr4pNeaA/jlzc8Cnx7n1jY8i4pDm9yb0fPICzt3vtPIy59EgXNjTn44CoAO807tWEQx+rD8eJDy15tlOfEalR87oOYk9x1fry9fb06vV8X7rZq/fjwU6D5cGi0lOeh4H/5Dvn90Se5I/F7mIQvQgdkOvBLyOT6X2khe/gZtjqQmxCu6pJ3YW5YEtLqNn8ySLHlpgkNT6XGDX/g5f+T9eQiVngX2gP3TkfkgjLD9BiMy+ErFv/ERxVYNX5qBa+dGv9IIkrRC/u+cOToVFR6LZKWAMHgmKFUjvn5SubJ/5fx1FU2mBGsgLR9Nviag7mBxBn+5eEfr1nzj4tIMww+Pw0k6Dh/K595hloeOx+FnMg4kD52OD8NLiUcrad5FINeaI2aXdx+JiiaEpy/QgLiy2E5PYpxSx4r7WRnBrSxMKRnTYBsaCKbng43ocwoFOODNv8SGGQBkvIlRwQGS2Al0UHjiyN/2dQMioPBT8ppzjaP+eJ1aKyMQszoi8LEqaarTEF2Ax9AvsAHLpOcvZmQUz1Ry6XH/bcZyBqT61xW5X4tpv/bF/e1J5/cr+TqvwTEM5ZpJQli4+3wWjTioBLoIlCwwn1J8660uuVUGKyNYoQAH6RQjiEYUVARmIyjNbyjKKFyRn792csaz+7xoQZ02LoOgFdriWQFuIyiHFT1e/gl//BksJ3Wcj2XukzQnrpmkU9VRgzSiSYxT8AEMIQwfwJAcpoZnE2iwAMGNNin1SqWeQEd9+ZM5GRmZ3+3JAXkzM/u1zwEnE303rNUd+R4EobsLpgkgEf3iZyLAAYBbh/twNsWCrKfBgtTggGoWlpKCJDKwKlENk0yiclNc0KzXOYAgNx3cfZ6oidV+uI46gwVb1lSzNSXju4TlmeF96hOWR2h/KM4Qj3LR+PToJfkz3gZ/FmNYQvNSuiuG4R7FJKsPBIFCVlCKW1WSoBTpwEhSBY/gDQHLPakMLjeUueI4o5xMkR6qAyZGsBrMb0WP0IH5y7K69Zj2ai4CpYrrvrx5a03SYlsQX+uXw3vvBIPaoNRMgzQvc5S/aTOIXIo2ovPd591HL7PbjeGblruHtbXb92TMR/sjoQU+J6O4BNxWwHDvgBMnTONWVdpq8qP1NyWr46Sx2mtytFWViBrB7vVTh/+RY5CceLSxoQTID597JoaLRppKIrJwT8D9k2/k9xvUfUwk4LYcv1tcfGFFp9kfNh6Lnk7YEwQniV8FTXwxv1zoovz15m/foBf3a4fu/rNek2oH+eIT632XUD7jBFSbjGVAEuwj74k/2NfZ7fa/0Jek3fh6X/nM+t1+wA1vNsWOpv6EUzLe72Un3q8ihIUrfgSKwUX9CPfk+zvYn2juD3feT/FXTwqb6B7SRfKQ16e/my3abTy7DGBMgN2TBdCebH7+mnBuQQs/Y5Jhk4CgFrDjTSA5P38rjJtjuwYMoOyAM9PAol0PfkFY7rcNgIW2/hD9iJ4teT2x+8Pvf3nK6r0KveB/o/tKjsTJ9dYnl0wt0GwtSgJBUIjh33JhqjAguSA/5vrX6jHEOaC1uNHWwUoXbnVd29c0YR4Pz5/em5s7HmyaDz8PunOk278GB7WP3jRmzTYHSpQsvxwVP6f7/vc0Vswg1LdfoPLKUeEzuu8/Ztf5j+wEU2ovaky41LlgbpTkpcLlfzt+qyY0nUoTJLsdBHIqDoKireAgUeAKHXwERU1BR6zdaXEpiPoRUCL3Up3OTtQNkMqn562cUa2aX7n3Wncs/iYPj2QruOnV601FgRmGkUPhc1s3h47UmL9EMePGlGyL23xQ922BfCCTj4v6wQJIRhEWQqKaQjKwsCYkYA34b5fWQBc7qvvWYBU1Z2VhtXS/xOqtO2E9lYFEvekjZ+DDhrK6Sm0FR8UuTlsBHssWdCyJf+9Tp60Aj2VNeh2f+eQMV5358Y4zn+DqOM98WNZRvm4FLb8yK0ecScvZgL93A73/ify9i+h11/2E8gXoDfj5RBlX7UdQQ+aJ8pM5oCh+Jc3lrSvfs4DjyT2hyZYK8j2sHM5RDteLOwM+cMRJKgkTQQyJQSnzuKNMfH8hw2vAZda8ainr4Loycpw+htZ3En3fyv5IN4zm7G9Q8faEOHh7cN0OOfdDZZPyd8GJuOjAicD3T8EnrCfFiYiX+azy7Y/EWMrFHE3wOUvJYfiKz1GzrpRofl9OTgsj541zEkmB7LqHRrH1dcnRj6XAsUI8OXFNqQaOUj+BKgHp5LiFm0EC+Gwh+n01uo8OCGXQ388ebjVvBjVOIO/ilsXiMTQPHc4/jo5YQHNQIbs28ALlctqNfz0TJL9KvYf+JO1uh9ttJf0GWtF+oG3UXcbnzSS5/2+BQMd4KQ00X7WksPGiz5PxIs8TzrERnOZuxihuSXWMGzundI5ziusFzjr5ZJRzKuaqpZzCiY7PKYvjnML3t7I/1NwfrrmfcgzoI5mvgda/CHxO5o+3dv5QbEbqk7jP6t3ITu7ySrZ8eBUr35TLaQDWzX0pl1MfSVRxOWkOPCW1B2qpTBhkv8j0Pyz7GRhcgQZMlmQuqKUtMVzOQ0s1hQKZ38eFloDvZUvisyCqe+uBnTs7+mJ2/oHZy3ZuloaL9Xt0sv3N37l46Jesg6OnFa2ftm0z6E7PwAFoCM1tjOQ6Ke3wSdZY9txW3UeuutEHyvAlQf+86iTszFl3QyKueldbRb47RA2vPhl0ccLIizm5++et2IWW5fMXMtvbnnrc/m74/u6Zh0ZN2bV+OmjpmenkMdC9VjhYBoJ40OgdHCwMj2CNgkcwkBtl/8NxvwKp5e3C8aJTyu8Fyjrno1J+4FWaIquUb1HK78VNdM5HRf923k/5CPQ+ATTum95vB/XJTAtMtqRcxeKrPB8phiDd91rI901g+x7eb6uy0uh9ch5HgA4m0PdyHgN+n+j8XA/w+k2Q2xMCPiyxvipctVRj9aPPixfw/YlsHeT5yd9a5SrN6sf3UHxtfRRu8w25TA58Qe4KUmHo4PsolhTdC+ysrH60BR7KXQ6OHDqel+Tx+RaPJ+PICZDPDIYRsceBEcENrOcp32F04drRKeX04s7jcWOxYXh3CnDUiZV1XCmrVxNOvivpqsWoqpO+lsLb0xGkOeeAwrQSdtUSxO4nZe4V7XKZ+H4SGSCXGsiYFul3U72b1vGKXMdiVkdOW0eKjUfn1Ct5L3oo95t8F+G7wee/md4zmJ3z3EKG4YPP/xr0PL8jXx9Jr1PMeb3OkASue3AGM1dBWCqP3UFn2xSbVdxVS0X2PRRrTbTg5xCJL+L+ECrLz2U557milDufC8eyZkP63OA4zpDEFy2pg2szjpvBsfEy4j7LEN7Hn98pTT9fOY5+Plb+PB0/f15lKxrHr5dtRY2J/K7YisbBfYyXg/FDYDmglxuQb030j3usWSPbj41YJTESJhmjKyMOiQPSE45WYkkykrQDYqUj0MD4xWmoW3MaXJqDWqPPZ4FL3x1C9WaDRWDRbFTvANxtawDzbWPh7gw4y7YAZtn64nrLGIy43gPcGDg0Wuxb6u0n17so2VjTiAXYfsYC/EuzgbNbHJWXfP0cNsYStS99CXSchr5D300D7b85hnZNwxJFwnS06yx4iTzAaZQGXmaAq6gh2IUSqM2hMe53I+53Ly6A+0wSAoNke7Wv1Y09RHFSc4CXE7F5TXgC5wpWm2I0xSWkVk1IBwQfzBASys/NR1HXUTHgboBeaMG6w/vW8J/Abq8/u3P08E1gi4L5G9D1rYwjqjfZf6h9pAGt6ydYdvChOmss11ZGciFuVgfOksZ+q+iqeg9H1rEWPsnLKhmYyKbXCmlyjYlGQBCU0swppQiCeryZNIHkAsKKpAHwGuidn5M7QRBqDY0oA4Wz0hM0f+3hPSvvHD3yK8BN2gnAkhkbtrWwfLHn5yzcrpkzCKUcbkc/+13dp7owLEuXxdpPOONRDTdYyqhzyGPc6UDUfVQCW0PkQ1mElmooJCO9KIWzz3gNanykNtVYQTXFZzttcHpoiN4LxOsoh6dZJmYnPhZzv18OXhqQ06PD7A0CX3tIaDIvPD55++N+z3dc84K32/4w96s1839uJ8Ig4Akqb4ZD33w0chK8e3njPdBm1xhkRz8LZ04D8Q5ocuzvZ9/9cqQOJ3Ou3xVP4XEtw3WVM6Pc0GXF4Tdx1D9WVqYPdKHV1qtgsxmSXZyGjTEyjrmCA0mAcqqhDEiVcaNCjCQxg400brgOxuuSzMQ+gSzbN6GJaDkY8OD1pDFXQEarSZsEvu6w0Eq88OLA3MW6uePhqp5gzhwQ0AMe2VOwu2xt9Hvzrjnwj1Ob77beN/IlOi+sXdN4+kLcxor2OwLBgy6NZTYzza7gSqZPK6hYvBrhnjjQpLAysQwhX53OEmuQSikB6lJScBiDYXYMozxvaWvKAXMKTV41m8y03Xo8j0/Vbjh6Ei80yossC4WLW0bn69D38Oeh4+eOQc91IPDAxQPb4KVGNeCO5ctXNFve9NunwsCCJnu78d1bdxgKu8I1M75qUHknG8Mu6Hv+iriVsmo7cGIikt9BowkS/+kwRhukYFE1W8n4GZLiTY7xKwXwvkJTZ8xp6fFJFFLxm6Jte7ftQ7+BmN9ejs8tKOCFwQ3qNGgrVKuzZTGclcHPAxHLMsC3J4bsKBe7Hv1QNmjqFxtqVc2ZUGdb7qTFpD390UV+OR6vGNyeGBkbLyS5pFcmHL8Jp+3xCC/ZHg+1m0AmEcIrXTKq22NOwftNoimdJh3rQ6KBsy144Ewn4R/AE/2FdkOQcuzc4YOZjT6u30asbwLIBi5k6I5+p8tYPm/3x5W/7Tu13YYPqw4bET+i2xk6Jh/bH+qb4nUVx3WROMrU6SaWVuPxd1BmE6upNqZC5YiOUas8UrifDI6uZQEjFPHpVdLIZoJnoRfNWRFa2k6YgprNG/2+uXsWFh34sj3azVovwNq5EeWg8PT40lVQrG9biw6j6xOELCAOBN7AH+58s2HUeHD/0ubfQJfTmciGru2wOPaNhzojHqNY0j5Xjlq3MGKO2aclPiS6j4oQJVqj1of6iI72qUD1SOuUrVJHaej5higz2Dh5flpi9y/9QuGY7l+MmisIdYeQ3eLHXfOXUFi9608JrN7eP2ApW8yYCQAe27PuR9BSyrmJ0J4i0qb99lv6JKqjzpACVDqqxhahiYBQCAc0lk5VDIwXF8xIBELlHOcb4U9JjnPHcGL8Cz9I/i4MJ8Y/cqFpeEeS78zSnl2CjZXzgQ2pwCto6sK6Xm1nrxP4OrmRZChPoDP+Nv/8fPi7aHmzevgYeO/iukeO4fMAQ8HHtu6ixdYSbiZtnofPwwg8jlHcXDmS/T+C9VeWoJ6FnemTi/rpC/TEuqsnWdx6ksWtL9STLG79Vj3J4tbXJL+e6u34onoihKuNhFKgw5erYMYbHQdFunJQ8M1t/8rJgXWyQWZLPOB8HXnAZy3WgYcoWHgfBYOHtuDho/FYL78uj7Wwey/JBcJ6yizxOJ6/9TXzV7NhKj4oTxfEQNVBIEXIYU4ioXYz0px7mjNNgyOch4FOgDtXYv1vGuBWnh1Vevyqw8+fH16zW+BTh8UGAQG9Cl4BIrcC3VYQueKTznXQrw/QLfQrlFYtOju3sO7Zp7jOQ+wP+WMUM7SOFKDCDNUY392Qk0iCV4CMxqABpk9Lr2pOCdHLlDVVlWxvllkVAj99JYYNjgLCsa/Po1cDzozb83lcx+kLiipX7vwZ/9OwgfM+X7gBVHpVav7rKTU7vvf3t6W+WF99OJlTJixTlKLxQ02kEDkGp4StR1k6sCRMPQnIVYVY+sNgxSASbDLqXCSlJDOMs9mFkTYb6NVuzloBkoWAhaMT81d7iPV79CgOGDUOPrJaboKsjaOoILRjP93DatvvCgtprJCbeob/79VTEQXACTScn4IGgN7tRs7De++QiqFAuLJj7moP/lL37raxoyfAnV8vOA0WTa3+wx+kloCbQW0Ux7G0miMlUmmVK7kNKeQaGpJPKoMmhVKjWRJWzZKIapZEtpmkjkl47ZlVAquZSA1SFLs5VI2QQ5LbqdmJkBnFx+LjMi2dEjaZNBTaWAiI9wPA5+HZXY/yxtiXoGJ0ZuGC0QtBDAAznk/Mu7Px+A3rqUMHLl4FE6avK5o2Yn+fm/snSEllt/Y9eClj95Ax6xdPm1QIGM8n1j8IPu49oUmADsyV/TWNxTZOfw0/Tqgox5c0Flo4/TVY12XxEqXQLMrRS23lBj3oBNpxPLGJo1mUJ4raxMl17iC9Trkw9cnMxk+wOuEu8EGJ3CGnzWQevn8sxU5uJt9/xg12crxyf3V8/9+0/A8Yties7Cxf8RsFKffX5DjxMC3/S5kveaazfEUvCXpr+dnwJ2f5im8g+K3lZ8P3neUrm3+wS/mcUn4vcN/pe1DqH3XVUprZMFj5x5XyewHCVxTiUn/n/aXQac14ZQjXGK8XOq0Zrwyhlsqnsk3xqXQTToHWsk/FW+1T0Q1VfCrdhElctOxTKavxqSx0lMNP466C9xz1VPFYO+xVuEwhQ9fRUSa+f6kdOe5XIgwrKDZ9Vv58pfyp3GlQs4TPBpcfyO6PonVup5Q/lZvCCe7Kr6Iu/75S/hTujJv6+yi2L1L/OrqtSvlTuEI39S931VJZXf5ZpfzJ3Lcgxl35wSqfk26uUv5kbqr9jrv6V1WNu76yPO5m8AXxaRnl8S8xf50+JjovxL/keUGeK6RjTOeH4znl+yoqz7H27FbaM4n7jtkRqS/OEuawI7J2DFfaMYmbxulk3xmufbrjPtfypv/D8qa/qzyPdKW8iZwV1HY3X0LV/V2slDuRm8l5uOvvNPV4vlTKn4DLb+ysb7i2vvuVcifgcg3O+r6n1JeOn0EZP+rbfOv4+bmM3yVl/Ki/863jV0F5bje6SHm+qS+S7gfbOS+aF/Md5UWjPkd6fQQHFd/lLsV32U3YBjqQPUCXjGct2wOov1I3RPFXdhPysTzM/JWx8j2snGilnA7cDqfv5K0+0J+VMjtwI/G4vP18IOVP1y93lI/3leOghmMclfKNyjojPo42ug6O8vH9M+w2x/2q8i1l2P11aP2XKuVP5baDuiXK91f2OX/aJ1/K5ev4qSN4d6WXdswDUv/e+qdK+VO4Xc76K1S2vso+R+qfrtui1H8KN9pN/U3Mf6j0/yWl/MlcEUh0V/8QpXxc/zlK/ScX3HZXuuLDpPNKny7PK7Kf7AIfGeX5VWKcDc5xJvOO7kMN5edGy/sQnn8lxjtBee4YFkB/p/OyAptz/BdsXsJkiyDPuYX4nhO6Hg5sfHxPebwGtffsQWdAB7oeKrB5z7fhBOJnQhcpzn4Swdmn1yvQdTIcr9dH9HqKvE7scjtOUN4tGTsJX59gL1Z8bvsdPje8Nl6Bbo52KX6CUup5L8TStdRCvn8UW0t4f4mR68zKXOsok58GfEGdEn6UeGXsSZkd6FxvIc/1uc65osgqcYoswcpfrZQ/lXuD9zjX8vHoJ7H7g2idv1TKn8qN4fgS5ccq9WHl/6mUP4Wzu6k/Lj/RWf8P6VxvId8/wU39Y5X6sPJ/VsqfzBWDco77lbjdGKW9rM/nKOVP5sbab7vrnzIO/Cw8B/TV5TlA5qwd1DfKc6HE2Map5jqeI3Sut5CfmyDPdTxXSsiOzr1trP2R+BU540FdWdbUg+ol4unKKvcTP+oKIpuCejJu/hg3smnpt5ZfB3RwU36Zt5Zfh/vJTflml/K3O8oH3UQDPq9cyy+tLZ+sAVY+XgNT8RpwLT/JpfxwpfwOIAg/6Vp+OZf6/6yU34Gb4TxblPKd7R2LTotf6aJZ+XRtsxjnNuiwsELYwsqh16fb/8bXV+H5sZruKdXk6w/o/QvwmX2a+g/byNfr0+urcH1WU1m8mtzeZ0wW55x+6AV4Pz5NZfE28j1jmCyukz3RrBzxkT4V16e+PO63sSwlt4tampiO4WgXLlO4QvkSGsj3j3LyJdCQtXDN/a7l1wEfOMtXcA0i31p+He6ys3wlXibSpfxdjvJxGx/jsXEtP0Jbvq6To3x8/2ROX6L8CJfyo5XyO3C/O2UQpX+iXep/Uim/AzfdGb+h9I/z/lXopPhI58HKp+N7125j4y5cERazcuj1Rs5cD30ZPKbV5f55CVJLxJN4ufBV/OHw9eP75zrXnZIKGuCMq0VnaS4JLZ9+79ecSMupQHkKaTnkuhhg76rUZ5OjPrg/N4LmcrSDpzoegs7D9vI99dk8BM55yMoxKuV04LaAGo56Kk5ZH5d2XVV4ODo09tTcrWjqdjsag8ewimgl2IX1iL2iALHYk8rwM2iAOww6Eo3n5v1yuEWYzAcZ6vG9r3CffF+LnqNwi7gTX6vP97YP5biMjFqsPm+7Xh59xS+lkQi1uXJ2X6OOq12O4/y5Wp4c/q5YWAkK7R0xyl2EziBNF0D2FcnD04vZnSh4tJBcqXJgKE0CqJr2pEFbPruxLiBl6MSR/dttZM/WEBoDXDiZyxLv4UmfFRTooEAzQ1sbV78tP1RoXDV33Jju5+hzZezhXDH3PX4uXBLk5zzk73Q8HWpOq0mcNP3rt/AA2Xer9ste1N2Kn22Dv7OC/J2c/KyqvsEhofqk6sDKt20wVceNGZdbddTZ7qRPugqdYRVdgCGJ/xCQ8fiQY3tjHaEx9NaR6IrqOnK9Ovea+o/L2A3gN+4R/h5/rpzkaTDKfEOilcNTWK6rj5XEhHlYaeahUm/aasfv/vXb8Nkd6rfmc55VzZu8evSVUVWHTcG/qF2SYGNQXP/Gbpzr/yCR1+tdzJ/Emi6Y0Gc5qBHYmQMs/LniZP5cDzAUTcbf3RJ1EirTvKF8rmSekObrSgZY/NOkKOLiUjl9PClZtpFm8QRYqYZQBsiVlStMknqEyqhuLvoCbCA/uWAfqot/OoEV3fm+maT2mcWz2PybBaOgyK8mfGwS7+dP5wKfvM0Lf+HlyKsUE5Zmi8iUzbMyWjTPgBktWmbAZ027dW5SulmnLs3IHFhnfwkfckvwWg0IJvG9AWArJ18XBinXzew6+ZxPp9+fChtxW+E+IkNKnCA6vp9zfn98asrWYcNgIwJ6p+O+tD/UZ1CctySuKvcx9xnXktstwVafyyzupSiLexn6mkpfG9DXFnjONaPAWgoyeLQ6BJ9mT1nxV0s6nnIk4o72JCxXpLsNyVJgCC+jysdbCe5TiEEqK6jhLio735U1YJ3fUpmAb1riDVI9Qc2D0USLuEX6lgK1kbxGJxQmBdKSL6VqKfhELSGf5l2gGYTyn67Ma5kbG5/fIm/V8vyWw+Njc1rkrbb5rny5cnl+3hq+ZffWn3fP/LxVBrjSvXWr7hmft8x8UzXzi1bds1q26PGwETzZCHQfvbHpxx833TC5/qhNTT/6qOmGiXz+6E2bJtYfuemrycXH2+fmdmnYaUh2l0btc7O7Nuo8eEhXeL99Tm6nhu1zh3V5c7eSMLASGfts4WPuJo2L8aZzoVD4ANyg7ym2GtebWw+KeQt+ZyCyjQT1OhYjj0cdxINUkHIPBPVAV4C5ByyH8kFeIMgjz3XmVoHnjucIXpyeYyAk5LlgEmv0LTCjKz1BEHrEW9DIQDQOjAWTaR0W2l/yPiRejBPpPBQB80HX4HL5pmIkiyPHmyGpRDruzYmkQ3Jpi+jzH8A5cKe4AWsOW/AWN0ejtVKt3co4pPLgFPhY3ItPpBaStypvS+Mf1QD306AKoxqTyEgR+f0d5CoqiL9AMmdiwwnSnwy0fy4oaXgzENRP3NcyK7S/+PWkep+h00gPbOe/bGT7gY8jdSdcIzWojFCW6j5F9iVoED61JH9fwA4zwHXC99QTj2HNfqlkUsW4aLD0FflJ7ZiXykTR4SujAeDTwByQbd6TBrj5WS1l6NLCr8FWS3DyTv/gmODkYL69FADVbk4nWjcBP02g4FgUZdIUGkK4YlJT0tLTkklomZn8aFDmQvHnoSb4J1ojwI/h/eLILikRQVA4sE/cuV1/bc/OC3nzRg2fowOZaAkWRMC1PlvaZmX5dmjUvG+bDW1/OPX4wrYJc7Yt/qHtBjxX4vHmw1N/dwz+m1g+DkjRDHEzmpIARNOdIZrCYEY7Y6QohYBbf7iGdkBJ2jP4UO83Ph6DrCT/xz8oJgi2Jw0nRAME+1Udxx1jJV/K04zDKEI2xLIP1Qn43layG+qtUlIoiauWzJ4RMsl9cHww/jHGO6CNUil2CYHqASazScSnSWIKj88WsdIF/C8ffYUC887hf3mgN/gpr7gm+GocugbTgAH1Qk1v3ODrfcfPyjiRgfDJT37wn7CU7SYsVbzzxIkTGeCTNy9AMpUL9mC57jnuyxiuNLdKimcYrvEE9EzFQxit5mBwTLxS+E2pcHdUDQpITSnNeY5Pd1FDX4cnnr9VMgWFlMzPK0WQoAmsX4gLw0U8BS5ND6WbsZFQOFCUDrxzM+ydFBmHQbzxy0eflKotJjfL67/a+/7Z37NBm29eBK3N+eVNs5vri4rW3uYv25LbtvbqYiycAs/vOS/YdomWwztAMHqIhny9fNXXbI/ZYX+kf0T3qDS6R30hfMYRaQ1vQfoGtN/iOTNXDr9P5d4H/lK1Dz4kralGT79qdB5WI6uEvJajrxXoa2WrG9+yZoLS/o1+J7eNJwvP95ShMCV/EbQnE1PUZBp7umRAE4i8AMqXEURFlxDyAJnSIp24noQIgFyPo38n0L+T6N+l6d9laQnlrVIy+3ov0hqpqpwqQPCQpWr0DdkZAlN4PLHJ7sDH8/SH7Q58SiD5zGSOF1PSTeQHxMeA9ETyAlKSgV4YC5YMGzFiy6n3AId+mzx0KWq9YugUdA+9d2LziBF5YNmsvk9A71oPUacnH6GF/MAn6WgRCNldMa1S8Z1diRXTQJQlJTGBPwYeoaCMa91tt2EU+el+LYNcAY+Kz10j/9CBpT/dnj375mVYd+uMGTKWHceJIyj2SSQ3QPJg2HseTiw7Tb6ZJmlQw/GiANWrIoNEo5wHTIIx1C54hsbk78CEpuwtNJ+MSJEMvhhLI3CaZR2fzQ8ch5ZmgwXZoMOkQXw2WI+VymOn0WbwxdxCUFye0EbBX21jZ8yB22ztzjKe197ILowmegGJizWY+SKwEn6Addna3AZ7N9xSyT+aRPNEs8MHcC2wDh6Az55EbprkLXPhKmjFJWAiE8O8HIy38J3rnTLCkFd60NTyZCdNzWBBc9aEaeg3gumEDCATklLcKBsAx6fKWyXhdGMhICStH8+1yqj9lRNDMrwGD3yFbvGH8D9Q6lXXcV79+5z4EaxG7cFqmGK89jyuVymQBHSRbda0BX6gfEyf+Me3267Bxy45Y8SO9IwhKKPluSNSZIWKlJmTUslF0iURSda0m9BzhSvZW42xIXkl0Vg+r2QZ9yFWh5cr5RDBmmxZQ9nYspXKCu1dguh4zQaqV78j4Ax6g6yAhBAAfLKK9TL/E+k0L7oB8QZqcQXOoyWVbpjB8SR4EP/SmUBVM+62tERTktkEyF+ge95J/A8823q7yqHVHrqV+7uiuWCIly0JXvWwRcGt7c6jAlhk+wSMuUygIfk63Td3/2vcgO5lK1Ywd38BNlYsv7n0/UmCzTZFkHGd+B20Px0rys2ZrCyfCG0eVYS3nDksqlYMu+ivoQES6c4m0J2No70RbmUstyl6fFbEg+B4GtOabko3ER6gdBM/B10cFnDYtNzv6bfg0XTba7B6alGAba8JJhilJT/G8c3E+l0tPbYet+30hZmtQWF+j7zZYg+GvWH/i5dwm0pxcyUhJlZpk5IuognaDzSKDEqVgAOHJu/kQg2hsaFYyArTkDQwsSyUDiiWF7wogoUq5wovHIZMGshIHqxkWeEN30mfLpUSjWz3pWmDcWajPjU9Ff+Q4PRgfTD+MVYJCEzlpcmoeEO5T3/A//Ke439nHgJeHHAKnV3rBTe0G9puVbsh7cAwtC9rSNaqrCE9bGNAGeAxiOmqPfEi+YHGILWTOFUMkgasSINmrtkbHTBGUggN96FhslZy2Puqg+1xE0I4IzHYmJMIuKcORmPp0sClp6bAnx4CY3aPjJ3ZRd/ngMDfsvl+IWghunb2wss5hSHFxTwfgi6/OH8Gj3lWyLdsX8drWjhFsSBjuHyJY9xkYVbu7RCBUghLewtxxW4JodgtIRRCwJvsY94x3sneNb3x8lUZCALxh5Rcx8cFsVQt5VEsVsq1mCgDxprgFTRj2Hf4H3j2G+CLH6AJoD+aAYZuObRvDcoDLdDXoEWPuVnw7/unvvsVzLVtWDzPIpA2CgRLSBxLdfJEvOYIHlMEw2OKoFQHEXTfiiCHNEfIItLchFtT1jIWPSir4b6ePDMXSQaNnh0iOEN6eU9ZcsQiRFQy0bXLaHTtSmpdm+rS1RWEaha5R0Q3RdfG0l2oVtXGCiCcNWvwkJXLH8zu3HZRRuanDduB8JV/rcb/O2V+QfTolllI3xiebCx4dpmweVz9gi0Tu33UMr9T/bZ5rWrY2o3eiJVo/DJR7JBDleahXe/JyiQktgz+PZ0nns9xXFvJh0Y+Ew4ggmHlm+ySHeIrZ4eopSy646jXsp48TJJ5YzVQErjZuvjUKukyX3MwISbBDeXTAlhLjfCgtH9owehBcOLgjFH8N+tH5P49YELNlPHBj382lx1QGdbZemzdlOTjaHb3rpstsF5rELsktk8mus/GfxuWS9eIh7DubOCi8cm1Ukpk3Cr4zAX05BXoq0O+17CPafjqNCgOGlJSJeJbR4lYcPdAK14yEuDVOcxBvPoYi3TmHMTGk4UnJcYkKVGHeNhjFROLc9yJTSUeMILuFP0s2ybYyjZlG0iQtsyZa+k9MLPL4IHfDUAXR9ma5IyCO4aCbZ1h24X79i7PnL9v7xJh4KiRQ3v0HzNu0JuFwvU3caLljUm4Qca6Fz9fIPysPk60UE1jNauB+hsI4jsI1jmC9T3JOY5PZnpBsOIl7ylDkXiTk3ebr2wxI1f8KYgtPqNJIBPAAjBpTiRIMcq4oakm/vcFVRc0/HLFirYNEFjecDmYIKajTmA9agPDUXOwxXYXXETlwcW6pO5zsVw2Q/iUMlZ1kSDDvIbO/HO3hlUpglEVRCRLBl6NZxDoHJVghc0gRGXcSKT4XwzgpRQIDTYZifAF4vRGkzFJCNy1b+YfE2a8HDvu1ljexmUvOrYZzZg/DEYN6jBwKQCzCwG/fMqLGTXQ7r7D+LLD0ENQagCxXdv/FFeIS7AUusl+B47Hv5tyj6kVROJ98Sw2aKO0qO93pP1PXQOxCN/7NVcNziHPgLXyMzuczzjSFOgzOfiZZHETvncr5wPn0WfGyc8scT7j8IzQZ3rhut0UN+N7t3EV4Hz6TKz8TFN3dcNj0tP+UKgivsAjUpZrKQWz3KxgxmXkm6xF6uN8g+UsOF+Nksa5iLwlmAu9KCOvOZ0g7QTiXUPnCH4OdeyeAQSjBtYaeKSu8cb2ZuMbh1bIXVYMgkD+r9N/QK+G/jB71fGjqzZ+E/sdj7p0AAGgWpkqHaIboeZoaN1/oUtrQKlH4TNu52dc2xlWdB+U/bNiv6n4nN9i96WYR3q8l1B3hnqxCHRPcQG5Fh0IiLNzbN45/J0XuuqvjupW47JqohfCYrruUhkng9pFwKtLIfqsBvTZoicItUQyTfUEJEoZ8JH/r7f3gI+ieP/Hd2b37tLvLpdKIIWQhCKekECQ3gQpgkgvIdSEHkK70It0CL1DCL2XsALSRaVIUaIgiKIioqhgQ0SB3Nxv5pm9vd3Lgd/v9/V//f18csduJrszz8w8zzNPeT/Od8ULz7bgbs5tUnTJWNwSN3ZGZvUQBVHKyHJa6fu24n3iT2IY5YVWAfiTTgTTjfdTyUmxCd6XRds2VHwXAcKrPgDWVSUOGZgklANEA9fkNQo53SwAjZYostzKH8NC0eoJJLDXX6t/f/jmm9Kpp2/iKVm8TpTDdd/0O+AYvSTUE/JkU/0GSlZiBVDfa2j3slLSi5/ZQ+kLISZeDg8N4NoL27GaNL1QHSoiPUhV0yHs1NbFR3uKw7jj6LkBnO50QxivllMDKg4Zw5PS4NuMwiN5ISjT72O/mLHuyVvt/1lzmfw99saMdf+0b/903fTrefhfV+cNA+d82cDY4MsZ6z4wzulakDXry3omv7o3Zq/9EPsvK1nw+aWPr6L0R9HLSxZc+/jjawseL7GPvTzq3qeVbee+dp4PHHsl99vTkZVjTt5+dlFArjmkFR5uDKd6Wz1ZUHCx1c2uy3lk6C5+OneNFvDSoIK1QHkr94kRVdqwoFZt8yuVT29a1vB1S/X0PkN679wd1sfyjyFy00Fbr+CJSo2f/qiNFCL+SPtRlc6a4WW7YvBgOI2i228mAoSvny7xQtQZCkPch7UyxSzdjZ4m4+xMJUtg+FvammZldJiMScx09Eo1VtyuZhyCMzCbOTtKNlHGIPq+PeiVyY3farmhYcu3s8VXxjVu03hz07aNJ7zi/8okentb3dfV283eoLfFfnWb4sS3ys2bVLdpXIc43Koh+aXuazixY8x8uBOPWzWie2W5sFq8Ib0r2Kh+qS8NwVaqDVKmbSD56OnMorM4m5mIhMSolHQq+mx0F9oi6RE0QUwQbzh/X9V86lVk2U8aoZKC5jPukVtF6BraRP6pdHsQqjYIWSrdG0SugD3jNQGJs6WqliwhXujZUHh1DeXQQ1wbnO2ZDT1O4mYM5veg7S5IdtquvKbdZ0o7o2JrxyyXXPyE7n+D4C/Ukv0A2Z/ZfFDx8/CSwDUoADvwgy9mx/VHif4S+qwXWkeyepG+6CI5glqhFoYiZ4qzEr5B9Zfdzl24E7ctbhe2o47Sj8wTR9fUfquJfkdLLRWvh7+7bocwGhege/SsJVIu/JKPVA/Vs4ot3G3rdp3amOZEf2706YMsffrQxxTQPhWw89tYV0uUJjC+Xl71dbt91ocFySLFS2KGtxP4dPPXxJGH0/oM79XgPdovlse+ge7LMKo1z5T94BSoxcIpXcNPl5Osy9KK8+WCVXNYLHp4x+JSyExu/2sqHKvUzW0FqzqDErt78OCJ3TMXhI2b9I/TiZvm5Ylf9MnZ+16d7BrENbRPSUXAZGIyio5pHx1TpDBUtmkwCHXea50HGRTEOF/47Koz06aTbbrimfwwT5cOz1/iYMdsDJDVZE0U05f1yR6OMCF577yD9qyZ8MRhWBA7Pncm7TMdwtwte+s9rUjnguUt/EX7zfxJ++VQroOEeupS6+ZCrU1Zyo5fiV5U0pk2fU6MO7EaLlLoRQq7sHrPUgRgXEboqr4Ggws4vpixOyrukkpPGiOD9xQynYJN48N33tm5smkd/+p1+g5DH8OMTpzwDyEOkirNgUl9e5ts7RdECaTMrnMwUIrPMFLpVEkolMM0PrXn0weOPv+9Vt0ZhXCRRC+SfJJEv3Bhs7DzQTmgSiKQJKUYzHW+qKIsCqt2sSRY9URBe1ZPfJIHq0YkTkoYLVHmbt5H14tmBTGYVpbf0oWMMN037BOChTJCRcoN6wlNhBZCW6GT0E3oKfQRsoRBwjBhjDBOmCRME2YKc4UF6C/ZsnARx4ZknIJ+xsDnK/BZFz7rw2cz+GwJn2/CZ2f47A6fveGzL3xmw+dQ+BwOnw74HA+fk+FzOnzOhs/5dH3X46pkM0r0ZuykNqmFWEUeP45+OKbRj8m16UdAvWaK7RVMGsxoFmJXbKhUSuVAuEVRjl3en4NyD2fm5ORMzhEzGvpfyfk25/ccV46UIbvobw6ac+Jy8IiG/uz3C3MKc6QR8ptGzyHqzRzlEBVr1Er/JM+VGSIiKtmZGsBrRqZ5flnPItcN1FwVDS5mFKGkoXSsaykaUlw0oLioXzGLZqhtKWpUXNTMIjf3/EVmMSMppW1L9puiXsVFPYqLuhQXtSouamEpasMwh+V22r7IYwLUKwdQdpylaEZx0Xig7yRL0ZziosmMykXTLEX5xW7TTUoNHi1hs6ZCAjpLqk9EanU7sORwbLzkGqlhcGlNpRs5gZUxsCJrQnhieFINVioJhVNtLC3FxnR65Qdp/m1jv02ugpDbWkZ/kjT/FmtO7Zc1BU8a0H8KbnKiz4gO1dOKycKWjRq2bNm4YQvxWI+Bb3UZmjGgUs0nZ3LPGCqez/l3KKpxxvAA1cwp6TEpu88lFOHsjsKdPVAYDvD8+0TGmNp1M0r+zIX/TOVz4D90rc/YvJ6jMyfk9STv4KQWb3SID25WdS16/bU2bV4bzj5QWzKzTUa79t1rvlRyAdW5mJt7kZw1xqFyo3buHEW+31lyeGf7tySx5Sj470kt/nzxzJuVYsnVkklPS8KfTOJflE0JPZyfm274jaRyvyzVcirQfdlMYEXOkpToLAZhyi0vwYJSPod7quU47MZ3jY2D0iCxdrlsLOC0lKXy3F80pNVMB2gHdqhM5dUJw0whVLtPDAePHfuRosT3ShqVNJXMsRVa9ti+fNEGfAnXrvJqrYzu9osXL7aSJCxJxrdKqpVUE6/8Wbt2VMqsllNWzpucmtYwLbNuox6tu+9ytpYC1ktUPmVKY3FfQzEdFatoxZDYoPgFOz8iO7OSKhFvyAYl0lPDefl0lDFzynvNSS7uUa1Ve2kJqh9OLqGWvSe8Xr3C9DeVfEDpY2O4JVloCf7Zlrgsl+OuB1IO5fMVhSVymAY7Q6eG6LDUQYxF++LmqlBPsciC+B/+bNbIA5SrRd4wA38sW+zlxU6BOiX8lKXI/prpHBU4Verh9mKPHYHOnSufV63vYKYHdHlrfvPDnW6rLux5c/AXfVCL0DKTcp81pPx+9o6ub1WpTMZxnaa/64GxuuE3SqGJclSr1kCL1zjPrE+HVl8HJeK+aEEvWkR7hUTARRV6UQW03xZg9npNd7qpbzkQ5zZ/VbHI1b2c97pR17BAEm4s9uTjSryKGuMbsYozvwJL22ViMJlznXIo1Rh3O79yuiH1jdxx6IMPvu2elVg5Ma9w7JiFDlSnoPXX8sn7eabNMyeuWUhuF75xffuY3pX3zt52gNGr+aXAPtZVK/HJPi2Q1Ld904F9h72eOWlgh3ZdW3YY02HOlnfnDxw9rEPXIfXajmg3ZXuV/h3y1hw51pjTsRbVDd81sFin6l55hDqnn0HrtKMLhmNBMNAlZnN417l9LO5YQsTJhsFPlxtaZnEdP5O0E7+U2lDpmyxMkBM5jnMiOy350E90yij4VcxeYD9ufJ9AHS5FuAr6E6s7nCbq6s4zYJ90hXtzaFNmsi7/MkqHRQvKR3jmww/vjAju/9OVt040qTBvQ8GWUbcmfTQ07+jqWxmdb689ilOeoqqHNz37527Jy5W6v3HySJ+N+U8LLz06jx5f/+tTeqbPJ61QFWGWECQkyQHBIe64V9VrxE7y/lrbSjg71UJ36iFUBRfmv5oeXLHOu7N+2rrflm0u+ZzOzwJSgIzCeMovQ8FWBbyRcxhYfKnImJdH23zD7KhSMf7AuJfqOxWEruz4LgcEaIxNjDUFu72rVjvT0iLscoMIlMHwtKKLKYNgem05z99QTS/BqMEDoZqcW1q6ARDT2dXLmJEPgqP4AscfrJw8ZWVWj47te/TNbBxvf6t8eEp64x5NXxlRPiyllmFrT4ejZ5NWrZr807ybtWZgamVz0x4tA9Kr0DHMle7g08ZHQiDlqK/BGPw8PQAXM3dPMTs9D+21FbPzenCQDcoJe/SWMsFKvEaYMR66yww8KVxApDPRYDSF49OrScnqvr33Zd5CHVtndzPNWNG5vaGox4gRPRo3b9EQDTYkVEqqVK91o5pNTemwpudK3+KrRgedY4tQF/rnb/SiMe+WSVHDuDehYbA5OC7YHtwguG1wZrAxQ0tG2q+UVFMivrrx7ekbs/vLfYcN3dXWUJQ5YkRm09dbNzz/CXvvUOkuLjGyfVpWmA0R8lznk4qjAcReoN8C/RaVAgwNA83GOKPd2MDY1mjIkLERvF0BxZTxNwxsENA2IDMgJ2BygCGD9/Kw2Rxntpvp8dhtlGOKVIRRKxiiPVcRFoXnp5gSk1K91wAsDFwy+cJHk1FU5rUO9eLtLctHJNgbdn61Wl7F8nbp7p49P39at4utVnB6SnCjnl3syYIyRvGQ8QAdY5jQW3jO6Lhw5WP0d49RYiMEB4aJOzBMCt1lP1Mw1Fw0atBMTApqHHQ+EpYEXxF0QfBeSzNvolb1txhGzV4u3T127OGo4YZyyW+0bNckz5zGcdsXSxfpfHShfQ0Qev2v+yoaORiZYl8z0T8x0T/xs7hnyBwQF2APYPNkyFC7akhMScUl+cePz0fBo8jJ/odmSRf37n3Y6h6lXQ/pqnjB2FvTH16xGJQq+nIhTrBTxULKYG/F9H3YHiVLIqhURnpp5D3mUcmwjmknTHEmBhHT1kSXiT/rWzTtXBSzCRlYjxBdtWjQKBQ8//jxfHx3zuEsw9mHe/eiBfeE//VegShofoKheyUkLoSVeGO10krtFTplmr1C5g2d10a3WZCwUjqMmhkrCX5COU++hPtsG8dtz7rMiaeta2JHurFStT6d50yrM4P1PZLqYLWlfMFE6dlMk80V4wt5Rw1R9ZeUQl3aUI8AyQ2fIyYyWzr9Fps6L02YgL4cia6Pd+ahu3+idHJByn82EhXg3mBPX0M/btH3h9CexAnj5Wju2Y8G7Tja4+sECR3jjfUXxUszRNnlzCiUcTAuyh6FMw62jcqMwrma4E3ZzxwFnhsdaD3SO/aZNz+C44sxLUYtAcs9+0kJa9CIT6737zloxs33yRVUY/aKhZPIMRQwZxm5Q/6R8jcu7zKjXPjarHW7cQqp7xic7cC9srMvG+g8DXX9IUVLBZSjtZFFDd4RSP8Yb7ukOVBUpH+oTtBr0HrLioGc0nrzP5RTdx/i0qXo8L8uXCNPHF8u+ui38LzQTYU7Pnhv68atNpRz9ByKfTZl/V9vXzg6e+ndy9PP/zh/AV0LdC6kcDoXgUK40EwOjFC0kKLwF80BI2OQzhcW7EVU5ntk+Pmi1R0SsAb1WfNoDp7xd8Gvdz+4d+dDKX/6nyuHrv1zJpaSSxr8cinzw1+YzsbWxi7oT0eNIS/GO8cj0ChBR+0HWRwH1sOAPt96pxYogx/xLed7eHXJH2KQczBuhCuRuv2l/Gwy0N2PbbQf/kLDF+wQn5uCdcBYquCr+4UO5W3hzvvsZR3pu/LoWqlM10q80EMO1GBE6daKOnRzoFR6rUi6tRLPm8TbdWUxkowmxQkplF45LAFGqpzSZtbx78lPyO+7M/ejHRH75u8595mcvbsqeRednpeW3Agl/zPpIYo/smPihDsXp537tVpVVK6PoNBLagTz1sbHvMGJLOaFWTv+Rl4Rxp/ybqyvK6FCc0mNHM7mDgc+6sBBzkdSvvMHHMNr/KJK9N2iUE5jbfd+HS9RgSrl5Un5/HxQx/WHmE4vzIJdNkCGlYaXxni7EnWgpx5jCVcITo29vP3YlbxFU3PnSPklH67/4J1NYx3zRggqberR9wQJ7TXnkBitidIn61Ur+ghQ20lGgFUmG/lVAFaKNpqAPOm8zuSJ3Q7HNnR2pdOFqyzDaYVkMCXT6p3olPOJc5yyrkfTvhjoSfsF61pbsDiJl7G04n7OJEf//ox68BxDN+DhvWSkqa+lo51uHnTBZW6kff04kSCBnsO/AuCLFTplVYpYVouNBdimow/QB4WOQFKrG6kd6KDkjhbvUenyNY4rkcS/nT+RRJhgTvdmsIdf+y+669akypaxQYD+wBdbP+7YFqmZw9mYLsRTDpbVRrtgFz/lesFAupcb0L0cQjl/M4XzM+UjtPgF/P9FjJ9pCIKH4wuRJp3ZTmpAHt/+lvyV993imyjYOObC3t0XLu7Zdw4HPSZfoopPhm18PIv88Hvo5Xv3Psu59MtPn3KeL9LdA3gTb8hSWLiCBxykPbvGeNcqD+S1ygO9a5WHlqpVDhJVCY5LTEBWB9p//u43F8gZVGtp4aaF5Dy6QqpJ+ac3bzmMsiaPGjOb+WpdqXSPFNCTYDylmx/H/fXjMRmqrSPGe/WYdYUY/PRlgFixO15oXOF5pWhXb+Lwb9q5mrb4mvyJQr7+ktLPcWHvrgsf7dlP6bfjUaN3WnxiRSlPcv5GlVQaXv4ZaLiKrq0IRYcZIBvA88R8y25f2vMVKrXyqYXLDov9YANLW4seDjoQ1r6+gqJbknD6stBYNf4wl6x3oIIL388fidKmOMeiutPWbVxEbrA4JCn/xJaRu+NJTACuPXPQ6JmI86SWlPddpfROFvrKFrBeaJKx3P2GxCXAeyvLLEdysH9Zd1yhbgloUAoToCULINQFxHisQhGlbUdqyQGx23Syelf7BydPPczbkz9v2xLUfm+XP9+f/sX4vJObFuxGCV2HdO8xvsOsXWfX5M4e3q39wE493+4yf1vHwmGOWblq/XTxb9BtX/Yhh9SJMHplrnrSVsW/SScH6SxelJKffSklZwOG4x+SQJ9pFerKknc+mk92okq1YD22JrekAQgzk7mS8MflS7+JY/avXLEPUS7y2+HPrxwUy5T8Nnfd6rliuLuOYRX6bj+hmo/NCalupSQVUkxYSnwLSsV+0WVQzlRSbTSpNu3zLp3Fo89GKjyyOuXjT+m/Q5lVpdTzdYMCL1uML8epimmMxACQUPwrGL7owKEfkek21pkUE+sRWhCXhMw5KLBCwp08cmYUuRseTr4ZST4ci+JXLRAdJbMWrBWHPBspbu/YsaSr0tfKDMccdIz2PpRTnY6hEzZAJS7VQLAY+ZcosJOqongwgx9EA7D/p+IY1GkR6Yv2LiRryLoFaDfpvRDvQt8733fKrIAtboMb8PVGJ0kK0s6Prk+6+VEXBe8GvJExTPo6Cxo5hzTII43nYCue4CxDuqI9+Dv2/FZ0PV8HGdZUKP1IH/LaXbfLpLV2y/4GbhhIZ24awI28ix+WjMbXnQ3EHv37dxA/y24H8quz6288V4wXgoVoJr/KxCjyy6qNcYr0ll8BFtmKtRwhEntHDysuqPAUtvs5B66B5y6b/vYKvHTmrKUDu3Yp6tZlP2q2Y+eOjYs2FRVtCRo1/vGykZOecDpPoh/FYoRgdMd7wWqP9BZSkgEpqQei2gMZK/uB6n8mesRGxYN+Qk1D8Mpm3QbDs1vTga+lY44Q6KnRO14p0vv8GaF5sBABC0mtQueHNRw8BIx2Aq8KXgnVQDWVkquJEEcdZsYJeK3zLGo4qF3bzj0Hri9ZMCb9DjrcCtUe1qLBG11bDFkwIav/uHSOWdCczss82sdkIUeO1/BrXR89QNUh0WqRadotk6dbASEcwtoiJ3luhiWBfalcdIiCXR2vnb5Ut+OJdTyVS5+IcJ3+m1YFocBO7TI7tWvda2CBY8qS1s02rZ82dfOggR06Z3zSAh3Dr9et37Jl7V4T8rJq9YyqvDRrwuTs+u1aN17A1lwd+nGYsrsAKk3f0oihSO+Ng/wlHtJ72IzikB2JGTLGWgsqRPTKfoFGLq0kT7ZmYo2EFMQSNE04ffLkgSRXQvk5ZAxKiEO2LsePN8ZRToKmVOe51ZTWq0QWsTtUjtac3WG3RXqJcRaWq1lrJhysxJobuHXOGmwCV59FDsOaWHM52vM3ZaODoaMxLELApJCYbRlwqQDtzWhKNfQJmRPbuOeEJYtnjVxjGmDq9dr+Xt3aVy+L8tHs7neT54wet3B8v9eavPNGz3gb7OVedBwrxXKUt8cJ3WUbt7LYPD4KWNKRpdI9LDLy9M0guIsh2Tzdp+pqGe0KCY8XPb1maQLpYnmjKdxdAgnHkQ+jWr09at6KCTM2fH1+5qsDbdntW/XqKZbrSn7pvtAxas2WuQ0/+0Eky+vYX+k5LLttu0wlr1zAS+k86P03kd6y3GCRJU+HORCC6r/BS8niHDSMxOCO+AtnRXyiK4/pbEtps5Tup0ghQagq5Mr+PDrQH6L8/FkmsuAJaYr0zjSu4h8O+6sKPazGeN4tVmHsUjbHVFHUpDisDRFO0jNFk+o6U6BuGQ1FiKJnxkAxTa3JUBNPfL1es47r356xvkPzeq8vHjd+SYcBm7Kyt/QP7/F6q07dWrTsgpvV6xFVpm/T7Ly87Kb9oqO71+s3xkFeadC2TcOmLVqjXbVbt6pTt3lLXg/E9QRPoWO30XWRLfvxdeHHvJ0aGJBIb9mOzX4cYeCwGcdhOxYzmPqtYftYt8SpMh6jHa8yUAUPw5SYnlpBZPGqMMqwCBzRfOroBYXjZi3FVy+FIxuquK1hZnifdm/0zkRdui4dk7dh25Jmn11HnTDC9V5JHTQoZ0N/tkYm4n34uxfEDOPvnOtwPxYzLApF0mDcxjiX/ssslBHqQbA3N9WC56mhtQFuizMxKzK4EBfi/dhPiaiT2woog4X92Ip5mghjKqZEU5pn1ae7F3t5Izo/62K3cV0bN+rcpWGjbk2rJyVWr94szTj3+CcNundr2KBzl/rl06olpaSmsXVYl7QUH0ptqG5TS2gmrJX9mr+uzEY1FnxUVFeZE523GwK9zODg5vmIWvnvF5ECT7DLZr8IJeUuXWNHTGeRM3K8H7SK0AUc0zmr67lKschNdN5glvEBXj26KusgNnIOuEGXL/1Qy4xHJqAQBOuWCY6ERFGXFyQ+3N1jwPHc1k1bTD3w3sUZD5acezC4b+Osjr1/3N+6KWrvnNZx0LblOYcGkJ8/3r59rGPbponjN4s3es4P7V7QPaxWi94r53RY37NgYpclL7/caWi7qiu6Raw+E1YSGzWlZbchjXJqH8cze+fPH2DJXrRwGK/Dcl9Ko/RlPHCwXI6v9XLM0iz8B9KMO+XNqypOgBVkC/+K0CV76g6fjDTYjljZlYhIW6poS1QsbTXA7ibmVz8359DXAej2e7PfT606pveAMc5KW1aO3REfv8OxfAequXkHMvzQgNVY2bkFveq847yLXJe//+rDth9/8y8d1zGqd1407Ic6Ob3lOH5ejmNhGT7C4VVXty4bPYoX+InSG/SFKKWWTJzvc32ELTwsMlwpweE55NcYj37/+dnc8f8aXpvYZM9qMhz1P3J6/3GSjxc5hxv2Xz435lCV2uTPJUsbRTV5d+T8lQNWLJxfwGoh0HE8ghyDDKE0rocOkEh3ilahyI0YdAKjXc40soxo9oE040FGT612ABygggELH40f/wFOXevchaetxrudHQ1Fzn54nTPNWZb2qZBuzB+NgsdeB32K+88iBWqf1CIFesqaSvcEbZyblzcJLVtMWqI7i7DZ+adRKBmDzpBQ50GQgYw+xwCjqbWPiVUBT0vNsgeeH8w2soF/+QtKpQttH2qNHx+Ed210puF/CvFZZx1KjK54OxAD+sDosdcYRenR+v9GD0ExXPKvAOXApSdERWteXgD6eB0x4NgVWHKWGKNK2qMrBDvPcHuFTbxqGEnP98Nl20tVfdsr1EQ3XTEhMQ6MFxb/8opUtumMF54UQDkZygexqP5KvowXLKZai0XP7RdKlXKdBePajv57L3lMGJ/t63/qR50JY8rWgC9uWj6Y6zFjTN0a8O23QSdXgiUDMXRY8SOpgHKtXDlGU4MBgDtivH1zsWFGJWpMkP4LPiYYMpBjmVtSjuJ/F6ZNR9biw9RHHB4mmRtuWPhPHErAT0l/0b87PlKyKqD+60bx1HHJ7709e9/J+8kxziih9Tii6aO8rCxb8Zymncdf+uXcSRSzY+t4vpbKCCxYPZ/yrVVqbedSx2aQbzGlrOBBcNryRwqIhmz2p1IZ/J0NbWYpTrJLDaS2UqaUI02WFkr+GQfZBc6VDZIOW0PSYmv4g3tWk4fOj+VMEQdoArAJsf/RU3o4GjmbjEJVyEaEepENeWQD+0Ivk9GzsQVPdI7ojNt1cgmuTu074wWKrX0S2Nqry8ho0tc8KWWSkiw6qzu3R4mTnEsd+C7YovKZPHPbg0TBT6grG8ADzLqPi1/g+pANmBuyNc+vhKgKk2JCCVKVZ7+iK6MTykSTo/h9Kf/zzl1K9oOO7LZli2CVnaWpxoZAD4rwZZtVjS2i2cSRpeRMkRWDEDNFnHtwoViofmUcjBPt9Eu+IiJdiRa9WdfkJVlZudIXmcTFIc6fcNTV59jFw7NynmcZ19vbaskmjX/dJ131p1MT5nwtlXvCU0xrplG6oitTyeIy0cwBLh7p3IXRtTn9aA1zaKJ8vb9sCApWZhHBUvTX6ial5tLjHJNNAUpi80EWzEAJKen0ET/ddNdIEBN4Bo/YuuSZaHjDuRIPfIP9KwudzULLs1WfSWWwnzaQkRvf0NuM6nP83nmFCe68wsp5zkyHuMi9hhE774snwR/WSja6Y8m8rY2qxqUR5gausegyDamwDVAOfJpsQ1yPrMC/lExieH1iK2dbNADXJi9lZaBf0Y8Z2aQWX990rH+DXTeK8tmBboSBcGCTZYuF0lZPjyXRauJpoTLd11z/UNiruViXGMo4jFzWcyMCQBKk8DCByY1kgVUhrJFKRUyKtT5KCouItIYg/MvvqCz5/jfHA3IHlf3NgZZdOfve5yV9rp7+sFhKMpZc/Zw89Rs61IjwzWtO4wDnh3tOGp1hxrNF8odGfN/4PqMxG9tMOjZvvAcd79GNDUIRY7xFd4QU+EK8B6riUxluNAGQWjKuAfWTIq2p+OC+vQ6UM+6nsXf+yEPy9rFomfXeWVSXvP9g/ioz+RS9HIKiS9j1pe9C8BNYe1NonwdSflOB9tmk1JdTMUdivM6jeugDszZukvF1wE7Qwq9YIWGPQdIk1UfKsRPqDzE5B0cX4CX0Fmb5bfijFTPxuf17zs9ZS3r+OWTy2O8Wf43MY0b+TTJHpf96JvXUTz+eS/jwcZ1R/Zs5Tyet/Gsm+eJhzDukpHV/LufKux4YAkHODZZNGjmn4yNqwpEWfshXASB6qMP8UMfMeWbdiS3MizeGJ1jdx9Ia8da05Hg6M6iAzBAnkjHrtxd/9+lZFLeOnNmeJyVnZ5MhTU+c2X+8PzIundnMeZ333R27EidMl0WN7vE/j12RI/jNCPvBhRGFEawQWQSL1YmwR7BYnYjMCCYD2G9yNaWimDbm2Spy3IsiXkA4Pz/ohcGo+Qp8+f6LLBtEvjBZmiQIxt/pHDF8kTGyxHe/xABAfGx91dat835YdTHlAfrSYlaRA8h4DTHKy0fJAkMCELOIVK/JiurRg1aSOxDJ+Pv1E6QhCQ61Lt5kxxWGZQSH4a9Rgw9vOpNQ49mrF81AvTacwlIyiSXvEYKG3KXaWVnyyolOxDxzzNAZvBYp5elGAj6eGEGWEcfHQsya4WNN6gatw4DxeHnMWEFWyET0tHWFfhxciAoRxF+hEQfbokzE5pfdopNOdUi6ABrQ38gSVpCBmAE6WBe+olHKA70XtVWN00rgwSBqoBay4rUORg9GJmd/h0MM5XTBI3AMpcNGSh0lVuSihyTcT2gIozQJZ1VmIerJBy10KG4qZJ7P/cnR1PzsGjak244cIiyxPNuM29yb8dsrYh5auHO9sheHNjl1kcioWUE+24pUFpNdIIsDhbYyAh0BSjL8X6JrdCi4bthbJaimMhmVR0Y58MY8sgt1oorKTSnFvW7EByCnw4WeshihVJlV6wbr+IGachCow4ISA/25FsjkYPBzUqx5WJY6w0hxa1vFCc7l7snFd8gNNrFEliqS5TCxrKswpcQM/U0jB6Qi8MmH0f6GhkcoOZXMJuJnLy3+fJSwY04EExjetJHOFnY20M1sAwRbNRXImGhLZXsYT0+barXhT2bklYzKQzfxVlLWEpnVaB/qhb54dpO0Qm3JEbRPPE0mkymwBin/MTyCNbheRpo1qDvTgp/B5+b0GaapW6r0zKuEGMiZFqaDWzItdGPGWewWujEXWgot+tKIDBrFIigZgoHFsk2weE7qUIiaHtbVI7t4dmLeRDJkDfqQDFuOBo3Pm4AGLyVD0dm1ONp5D37a4vrOv3Aw/Jx37qFjbuP6Q7xAZUsKlS2JgHTjQ9dV84gDdKkZxgAocpkMX6zUHFSZi0u2J2N3sbmDC5MLWc05TUaPJRFqzpUJD+AwH/rDhG/HFjvPu9NZGPphvFh/8/Lpu/IeyR9/P2rA748/HndxVB6W52/ZvmX92oWojthlwOhxvRbJO1b0npdY//N1B9qtHDRo6vjBYwaiLE8M2Bvgx20tC5Ct7iOGwKdvV+/b595d2V9Q4m7ZCmSpElbxusPhrONwwEHjZkmKlF+STN+7gb63DOzhLE/ehvdGeH4ImsekJblNWpkmRnR+3vhP89bm+Q7HPHRkKYnC4QVsSVBGzBbDWec+wb0HJMaHLSwSyRrqmy46y5YndEwHtuenrYytWCxBrDZA9XG6TQpzkGCrdVFhGk5q9VbVgEhGJyo3axGZ/CUOQWL384fxa7xP8a4HEO8RKjSRjVAt3UdohG4ruvskIxFi83RhHxD9oGbD1GRXz8qno/j5pFX9/OzGsYHhDRp2r0Ia56OjnUbhwyV1JmcE9DbVbyfuAxlwQHoPZMBrsv//VAZoIg309h+q/KaKGs6/3H9oSTvG+bMYe1JZP8eGFw8ADZrJIRoaPD8iRD2gBvNi7MF2zXEUjoPu6BeOVGJNFQ/kgQx04MXbuxbVzUNPqQBEbcihtXMrx+Aq7n1jmKDIQIMy/lJy+r+lYSlLGMjAVDclDBOexTrQqTx0ysGJoBAC6G8MhRjRLnKgEiP6n/QHVf4/J8MNJaCdEujMxOX+w566eH+0M8M7hQWJ7pnTQBMm5wxczhk8+pxub6v6gC4smu5nxXTAtlGQztgSqjMbcHT8WGQxpqhi2U4akBXoDmpx/Pr1D+asXDSdCuXkbPIKPk5On+o3a7RbJLtcwPfoGduSLH4DdTNXiZd1ugWLQXxT9uMxiH4e37QuVFM9a/gZROUYJGq3O9v81lJaNSiNHl3iAdMiQFck2VyR4LpzPlUTSX+PHoGETHr+CYTzz0zd+Udne1Vj44SyYRxdzBNsE8bD5OwH2/pn+lNplOnPNGT/Qn+mDvvb2Rdc5cpX/FGuDpVOd4KwwINeqWbjsojZIXkGcCK3eykOuJTrtq0bt58kCLk+2FG4KdQR+vuFL5Ekjfoq//LDUJSzcN6PX2aZP7q7dPbBT8j3vyxb/8f0SwfZHLj+MHxDx2kTEoS1slQ+UTn/RPnS78BtFOMrfFednSA/0O6DqIwIYtpGUGYQk8hBheoXHX6QPYhZ/ILouDWnc4vF65AUWyoA1qoIFl+RnIZvyOPb35A/Hzscj1HI1z4iYVOQ4PyZCp8//tHEcirxsG/StXiVrsVgehLsLZsgAohpfmHFPkKudPq1GhBg5TD6VrtmVcoo0KREYmlV3VTEff1gHEM2OgC6v8ob30QpYybTs/nxPDKT/FF53mLUlJxclI+jYtaO2bDz2UhUQiSx0Yih6Az4B+hKFX+GPr8pC0rtieeKcsqSlXxzr5NLMGTU6expbm2vBq+GkYpHPs57/BjfdS57jCOcv+CILGzNJp1Adiu8MZqeKv0gUkyFCdOtFt2+AUDiGF+F23VJy2qUbKQFoLsi6aKKZIsqMjOSqbCR9ki2iyIL6ZVmIcmCKZJzQy2Ohwm0WXOkiWfTArSfP6hOiT5UW8mO8gYPa0WG+FBvcQdiJa1RW18aLvCODVReVwF9ZoYsKPqMQhPddtLZzH2SQQ4JhJGH0JGHsJGHZIawkYfYQ9jIQwpDvEceUmrk+mHC6LABHRuS04AkK5oZfovY3CPiyhkfB+Xbs+g4woRRsh9IGB92YIDSifE1fSperMHor8QPZRqY3miwG+j2LzSgXAX4XLNf/PiAzRBeUSM1XNEhWfAWdB9Fdsyqh95dBsokSa6f1dHhwFP+YuQ/59yLo3/8kQ2B6y9W2v/HcBacJgua/ITnC23fQdr+RneCDzBxztC9mLgeANqjachBSsl2oD5UmOHu58nz8shy9P1cnWKckuXRjFkewX1DU2mrUEGoLoyXy6SmKZiwbhz6GNrBmNLRrhCtgqUYHqnDAK8ho1gr4fW2lgoMyEau6LkRY5HtOgDUFGNivGCtkRaaCsiFLKAhvQJcVw8Fa2lEKjOj1kdKhIfJ0PTKhilbyX3yyZOP8bpDD7/p2oz8dkY+cHHU0GFznLlzFwwfN3nGuGk4rHYd1Ba9Gv4EVRj464Vo4iQ/23ah3Ko/IRNx/l57K/m3UxmcvONx48Z/bal39NKHR5g+ocTbUn1iB+gTB4Ve5CaLDab7Lh32XYYsKvvOZC/tWtTtO92S9fgZOTqov24qA5G/J0q4Buwpfahwv5ycZt7BwiQCsa3liRhGQnlywPAh6JM9lKpOqj6pY93/rULq4CgDAHxasHjplNz+xHTKl0HVJ9OZ4UnV95Ozs0saMp3So+9HUj1b0tirdUxL55dVVWtLoKAYGUw64WKxAMQXU/y5jzzF7RywKtr/rLezzh+XHHj8kqzFY6n6/6rf59f8Tp1C7cjhRfP9kZE8C6nhOQdIfuCrafYfMfil4lwkwU+JCdYey2yp3na5NXkbtiqnEWaRyyeGpmCPa7V2LrPHYSHQ9ZuhCeR0VhD6ySHgoWCwQLG+/KAqeQLNgpI3I+mQpvXow2YdnmggQ9xim09gGKEstiCyPgbvhAqnj+hOY+qgOPwPcmfH/gFjxkqT7sx5gPxKVtw4fWr2S4uIc8tlI354LhTF/FPF72DB0Mmm1b9PJ3/9PTz19O3MjCFS83snkw9doOPq6foN/LzhQjl6nvCLjfPChfNJY8rc/Li2x0Zi1S1MjfM2yCuXCTwsikGfa7OmlJpUSU9nA8O1fkPRE75fcJ/8Iw6CUSxGeMvHktN8Tiog3z2euP7vuSjw0Yjq79MBDH12hA8A1kcb12/iBbo+yghDZENMWd/nRNWcjS2lI+ZlA3aHuloCseLSsGmx6rXzZWCBooozGmnyWBSrUUJiDVF0jhYTRDLu8r2nF8ZdGsnsRev2k6IRdNtlkBx8eNWWk+1XDho0Y8bYXwfo/O0hVA+NFWbJImDUM4trGOBPln1RDpkcFShq86J5QvTBhVGF6pc7WVq+EoW0qdJM3w7Tmd/LviD9THG7KLNn9E5Ac0YwpdsZgX9hCrhXGtokf6pyo7pGqn1rYlw8qNeCB+GuVPiHMShWCfQyszoMgD/Q0J95FxpQFgt1GBDl/br4F5OkXYiBOg+hCcI5jW7iRkL0eJliuXwsmPJjvTKYWD0k5nQyuiNj0hkgTopXdEwk6oY2kL4GtIpkBzaDCJnqTU2n3jecOIo9MTJ4a+cJ/p0PdM/KMi8d1Nl/Qucm7igZXteNruUJlC6Jwi45oEKSShcd+1XVxMQIjuRO6ZLI5j0xM5HqJJMTUe5BS2J8IrPS6eJfJB0GUhArs8bIkWjhaCOUpDa7rYGtrY2R1EZJqsGQ10MD2qByhYXzKpTAlr4CFqQgfgH8HYDhmXiZDyNpF7JpTe+hwSMGnvsldNf27Tst989lTAnIGrpuQzAqIm2QjLZveic+K/bu551ndL75S1x2/OHtnWdwrHQqA0yjpEKI9Y2jq2eHUmWL4WrR5ZAAoFQJnlxLwEp306sivajo09CqOpF1wOkmi4I5B7HBB1nlSkpKDWR6iEUOF7V2k7IecO7y3OacklCRJ2JxyHRPpTovrHwNaHpL53c4zrlZXrxEfmfh4oNDR2T1Hj2yf9+R5IE749TZB/254ui7BXVXHzq83pgzZdLoekOnTh1e8o4mFRULFVm9MsW3OcVn7YSY/2PthGB37YS2gZmBxv9R/YSkBKbCq/UTIkrVT5hHbuadof+hYydufXGYHGQl6FDjmWuWTiPv/PTTT1lZWXjkhS2bz4lZlxeNGr1YVOr+uB5IkUYBkPP7yWFcboVx/5S/XV/dVhu94VUuEhI05EBPnoZOV44phcCcYmJHKTqbodYUrvFyi6YUOfTcpB9GBWU5Rtw+92ve4bUjN1SqunnYqndxaCGZs2eVUXAWHCDXiMt4+a/coSSq/4C/uezq5Xog3pTa0FG0ki0wCh/YZ6rc1TrXLGBttsGX3oZCiU6FamoI9g0WgV8dv9N/pGHEySE3CBl1I1++5zfSb/vkbcdOtps3ou/mHqhSScK6f2df2zt53Z+fJFy+zzGvaD+/NLJKrjFCbzmK+5GjWNEJKK9cCvbKd5K3gZvIA/iX7bmucQ5sxVxsLIUX8y2jolmd+WqkY5D/qNunH419d83XGRlfrXsXp/yL7Htx5lNh6XZU41/Txb/PoJKrjz4FO+RwOoBRBlbnNvwUGwurZV6R0twqJAhNNLYvXf5utPdpMEK3NGJ1vVWAuLlNjiq76RyRmxKfByx0m/DtvLnfTMITbs+d9/Uk7Oi5c1BhcebOgYXFuOqap/lzHq98ae2zubMfrwwc98nIkguRY6+MdJ3n65z0kiJoX81U8xwm23hOuc2Trw2k1UG/6YDHzN6agiGIg6LDF9ur+knQhYKGYVaQhi74SLbgFbObe8FH/HH6mzGOfiGj7py4H+g4WjBsfeUqG4auOYZDH5Pidc4vDF/SBf/7z1UvPB7U3/kko89jN3ZaL8BOs9DxDJbL8PGU8cSu62gPm1Y3OLP3rBglyLQK5F/67Vum1BwxrDTwRahLCuYnc8jFabdGBg7MG3Pj7J9jj6650atq4cCCIzhha8n8XSueJuPkNcj+2HDh4XEc2ntgibKGxM/pOCLozu0j+3P+4+/R03RT4cGvAaMA09OCdRAqmuiZMMF9Ai2rO4qrYUoR2oMAU8TijbjdwntT825M+ehuScmtHfsmV5nq3IHn7iQ/vRs2668VtVY/yn/6dZ+oI49y2k/FC8utOHaRz8UQ0k68puLYVeA4dhX+f8Kx0ypYNstzcOywVTtNQ75/7/bI4Kyfr7Qrqldh5pJ1W0feOvn92G0rv+5ReX3Oip04AWFU5dDGZ7/feVyxfGbTdw8P3IAqCi7TJ/fPoX8HDP0d4sxc96V/DWepZGwjB2ns+7qSQupusTxnm+gilRQ4NqOUWL4CppMUWiG1uqTwW0wZbiiPVPo3hvzw/V5yv2A1Ctv7PYqPGV/2c3nel+PGfzPvwJVYdO7Ok0Oo9cd1P0GtD5d89+7J1eSHA/X2kR/Wy++7++2CGm895BBNjTd3EQ29pzjUEKJkpYbrDjGeKZCTQgxKGbjyWsFhAqCYCjilxnPGAWAxLv+G4+btPEpubEWrUNi++6hsufGxXx6Y+9W46Q9XTvusIhmH0d6gN1+peQK1LU75FL1x9M7lzZsKyPdy+UPkm82taqC8AXwNshyHx5DjEElP92aOpWDmckVXCv1/h0EkhbJqPZIJgoVC02uk4eSUk2jVKZS2D+0ilz4g36OwjSQfz/13naGoiLz30auXyPsyNjR/lrAMBe9usBdZlmPWP0p3QypdL1aqkTeTJdDItbICGFE5b1tcsMVLXMTp+aqkJTHjrJixVlZdCIgcmm5IXUPu79xO7q9H61DE9h0ofB0aN+7rOTO/moDGfz171s0JGJ/6mBw6fgy1/Kj2ZfTG8aPk8CVpHyqzfh25t6vuPvLjhlUocq/Ax+APY2CI481kP77P/diBx0cNNFVwW7UMlJ3sE/VjMBlMSbqlEhqeoh1HPAxj9zIU3pFc7vjmDvJgPVqPwthYCsZN+GrOjJuT8LhvkOXL8Qif+ors6fLdG0+jjqJWH6V9jN46fpzs/xgVodj1a8mPu+vsI/c2rkFR+wW3fRoz+7Q+N7S02xfyXSAfXO+LNtRISsWzHGQR+ihO/HfT0Iv0mW/TdRgvbRCihK6yvyZm1reb26NryTgSwutFXizSqqsUGSTwTDHBquaBa/Kp3Ui+KEGKL5mHI9u3XT59xXFH3meTTlw7T1riD9qhGy2ndsydumfO8PeGHFl18B0ywW0PEydRXmASqqv1AJ4Ll6WvSwhRIzy7wJjH0guGGM6QPhCcjQQz2Sx+Az4dyssVn06QXWdK8Wk6CVLKZAbpbEEGrUoqRxsi1QpS4dxoIrmjInigjZjsrC72Ij2vPMl3CdsuflZePvbpv9cvt5aSs7uQ14Mend30cGp2927fnz58AjeCdV2fHJY2gB9Znzv+Yiw7ncXejSbIFCrZzxjEc8d5fE2SAmZfg+eOi1+dPZtX8pVom1vyL170cr/+5F3UornU/NkNcW1b0DM7Y8pQDEdo0120e6vcNa7B08C2l5XVuIZa2KvwYcNepRb2Kt+1sFkdUPq8VdBuP7TzVQOpF22z0nCItinSPkstgWFTnlWfvnMpPOuA9lm6uk1t6bOWQv9laBOtSYNmz4opZpWSkqBSN3tmK7wYT4H272jfrSbuxSg1vfuTDWKJNF+IFXrJZZTai2a9fV7rQjcgM09YMStRR6H8X2bd8cykL6MITZQ0erFmenW2wjxxN3zPmdHCDFF09miUc3Xq2UFTH6y9vb/yvC8P3D66ZuD0KhXRevzbcGIZiEffWrj28cwR3bP/OrG1+JWa6RwzhxwWHwLPSQKUUi3beRGE8EPn6gm4X8kNcYdU/2meITeL40QZc6UCIYxSZJkcwS19ER69S2fje76fSpWGgfrAAdUkb9WJSJuu/h3WqQYB+uNXJWRwnxwNKmKeIcmaxA+QxlxnU7KB2/1Qe3yeYdoxNL1nd1EQebj7wkWLYvWzZJOBWaRuSKB4Lghc7lzmDyfbJIu0keqdKUI7uTyveVee2VwESDbQukAidNZaY0SIYgeM0VUO0qowhuqhNn4MqwEsNtRm5aU10yNsatI5VaDR9Qt/S3VP5E77eHhu8eQfnuC5hGxdOiVm/KdTTicd37Hw2NFHqDYKaddl6t15Sx/MIrfIX+SPz8iZPQ16vYqlGTlDfvjxl8Pb79LxTKS62QQ6Hiudz2ZyMJ/PYA+Ooi6MU6sjhL/A2oChmhtTJ5ntKNQT9BAaH1pDmjD55xXL70+d/PPK5T9NEfNuHNh/8wbKuoqry+Tf/HzkV1TpAPJbOJe4dktflDy7Vf8aIUi44XK55pNWqLJU22JEHdge9r4WdtDFHi/VDjUKj+D3T8lQlEqvk9k1bZVxKqB0OyaT6HnoPl3TCUKmHAQnag3ziPFyy+gSNrWRSdHhFkAhsWtgS1jYphZ/L4lv6KTEGoifRxOtHFrAbYpPQRu79J+6jHzaA0V0XTRtGhpz4r2hxzqSz0+d//zIhAEz0uZN/MrYE9XOXrvd6Y//vHm1W29yyG/bwj0f1AC+5rrGcTFDk8WlUE3uoKuza5hgF2RXNAt5j0a5cmE0GnHYHB0XbY8WM9j9XLkt+/iWtciMVkoV/X/7LDe+FX3WZjYX4sFuN+E+YLoarfT+IvYOoanwHj2V+gOudtAtzv+92zjQALVNsK6NTWljRJ0d5dw8XQ0rM2vbGp6obXuOTna3VbWxEF3bO+62wmD63Aiv54bdAkuyZjzt3X1FPYTHQnlff8HAGNT2Q3h7i0k8JNxx3aH3h5LXWS4Lvb8E6g2MR9Ndz3hcmrgLaLFModcuQR2pqkQF33LT3bu9A7X3tFfNySFe7W1Ke0rHPqWfblFoA22BNss4bfqotFHbht8qSlBo4/qZbrZa0JdV0L7pNPXZqrvLoDx7G237WNPWUVltq4azGnlb15eUMRugz6uA5p1dtYXST/Zzj9F1gbZPhH5De2EwtI/wah+szhHgMcJ6KYDn9xSOCck6jUFPc/CHQd/XK3P0o6c/qoCMfW57B1rI13egvShOoQdvY3O3QZ2F9T6emaB/JvR5vdLndZ4+q+3jvdrfUfswGJ4f4dU++VZRdU4TwJaDPm9RxviNpz+qJmtTn+/d3oFmedqrB5Uwr/Y2d3s63hU+nh+hbw/936L0f4Wn/2r7mFtFKbz/EI8B/dmh9Ke15/lq5EWg+nzOB66rfGDE8ORS/EXHrwwPVR7QTZgixCv8iu80LESSvlJDiFsoIzjkMuD5ZbbESF++azDwmH0FlasZB/T8YhI1cNFKFcdoASlCyaNCyWXgJuh5DPDE7f1iSAEiw8OmH7gfuh42sGXHmqnmRm3e7Narg4ODYx9Dd/9kEehvDqzWIaHDS13fbDy9JrIznGynBfdmfIvl4AFdlyh0nVFqLfM2NncbOrfLfKzlOJX20N5wTW3fHWWpz0zWPdOitulCOUi80ibBw6+kcGizFHhbl47QgmrEZfT8D+aZ87QR3ZN9c1e17UOVV3YbDM8z2rmk0Tzvmpv/0r6n+eDX4UoNPha33RdwpMsKs2SrBsNLl+UKARtmX5CBav3XspESr8JzMK6svaweaDpcBzQtsmqJcoBn8UR6hT4wHbrUQtFBUad7Vkq3Ns71GlxqdZ00nFSTY1SrMsai0q3LqPhSFLEqNAaMaVgrK5S1UuBjrSSq9Ib2MCcrlL3nWQcVtM+EOVmhzEmOup4qu9uQOgzbmrehctmB+pE/lTXUCPqzUunPOz7kqUWVNZvoZm8CfJjLpp6uWh4+rEoyk9qeShhcB9Yfl00jXKme9nopCe0/pu3NMF7+/G6uJny82M6fSvscSPqipqB7reJ68BVOq0K64JoCHUDGou6BpaWme63XoTTzg3Gv5uNG9TzjVpmVh3+vofSrB+9co9AvBui3mOE4A39Yy+V6eLlSupefe3+ROgzzmbeFZ5Rxz4HnvpXd7y5+7bYKuNeEoo95taVzPchppSdhKhM8sh36U6Dwq72ecamyPUg3rmbwvAKlTyPVddEM1nSBwn8+EUqvarOXvL2uytsRwko6z3wNltPKfJjb9cpa3q6u5XidXlBWbZOJMO1/kMJvVd2L4/7CODcq43xN1aHLKM9aRccWAWPbqIzNAmPjf2tR/pbu1yy3NCurjgdweeH5m5Tn9+DP97cXVVKez9vYlDZUtxxcWqKrbUkrhvPL24L+28tF1GdY1Gd0mRivvKWK2pcqdN14zhpsHBEwDjiDwN9u5n87NP65vL0KaaN9Bn1/awGpesYTVS/pSWVXcik9JtxLL7mu6iUjhIV8ngV7UajyLt7mofrMbnRnxittwrVt4FzB2/RA4Z5zhVa/iffoZyKsC94+U3jK1wV9Jj19RHBDGBJmk8mQMxYv9JRtGgx/nf6hEz5gEQjXRlKDvNF4921llYgEP1Gb2GYxI6NWiKSbvECFb9cf4RYjudW0+ML/kH96V+/ZhUuSrH5YCzZMxwpYwLCutim8qY9Q+rQQqc4J1/1siu5H12H3cr61eXdb0Ct38DNOd1WrVNuG3iqKde8zwL2FfbBT2Qdv+JAPHn4C7YEH71T408s+2tv07WEN7+RreFh8qdbucy7D0og2nAk10h6z6z6uB+IjuI6E6yb0960MRfQ6ittFXA+kCLiOhuv+rr/FB4YzFiPtEbueT38fCNdhYex6Mb2+amoZmsx2Foz1Aeqk8KckpQ/gpzU8om1aKW2G0YH4Q3KBe68fYVhqJjttU52fJdAgVEe3M8vpdPF1lAaX4ZlvKWePq/QXNi8nvGcPxtLnf2dKoe2TgMb9pTz0qu5MXg7mpMjC904/Sqfzhl9p+9eU9q/SuxGCvqRwlVtFdt6eavlSY1NV2r6S0r43aqA7CZfj50krbw/+d8MD2r6F0v4lF9Ht5Wg4y4G5msr4mgxDGJ5flbcXTZ7ng6QuBzoBpAfS9oG0/VbDbW73Yu3xLddDXftobXthIp3HB6ZU2j5V6c9OKh20Z79yoI8XJar9l+Kh/+2V9tU8/VfpH38LSpPR9tMpfY4D/Wsq7Tv6oH/0raJyvP/vMfxUeH4nZbyLfNDHcgtQr+jzN9H+bIbnv6o8f4Pn+aoHw3aLHq6gPdsHF2F+uyrtUz3zq8ZthHIu6XKRB7T/94xplmRU1I/KApRNkmBdHSHXpDF0vyRTjs7uZ0lLhAB6fy15n/Jegd5vptxf6fpHaX8S2ldU7m+E9kPIRSrTWPvXlfvblOfX0banciwT5NgQKt807VXdlD3/d2j/En+OwQbPX0euiZehfWvl+fPh/hEYl4vetyt7cxUK1Glj5XS2Ibbv7pjSaPu2SvtM1JDtZYNd5TlHXC9L96APduVdF+h+on/rShbvQB/aKvfbCz2UPovQ/hXl/mHo20JyDaVB+zf5fdHO+0yuGVOhfTVljKfg/gp6f7rUht5vp9y/6m7PcBo5b4H7ZTw0gfZvKe+dptJkiakGvZ+mjPFt1EgnS8rp7A4sxgkbfqHtOyjt17ge67SaaN1Z9hDtz3HoT03lvTvgvTPJF3gp9KeTMt5kIYTe70LOSUMoz05mleOh/SlXCePN5Iy4Dtp3Vu73dj2l99PIRWkZPL+Wcn8Pt1+Qi7iFoS2930V5/r9wP46O91NTOXq/tqLPfIhalhqvR14ls3wLw2e0fTduO63n0llN2GgDlLUQR8f6KfSlttKXD2CsyZT2B8Au3025Xwvu16Nz+A+0r6PM1V2434BcM7wP7bsr95vD/W70+SOgfX3lOSfgfmf6/F3Qvqdyvwfc53YZq9vWirJdl8jXlN/MZbiZhjALPY/W5fv7Q3Kb3qfnI2miIZTeX6nc/4J8Q+/vpvy1v8FK769S7t+F55RQnasF3F8fwJ9fA+7Xpc95He7vUNqPZveFFHp/pMFC719Q2vcit9z9pLqnkfVTOcPcguvFHpsCXC/z6ARwvVPNXW4E1yvhWqkzRK9Xqb+vB9dr3NesJg69Xuc5m1Dd28jOFMr7HsHvC3W2fCPTjT25TfR6B1wr9Q7o9fYX2FuD4IxKub7k1p186VpBYJ+JVWWVL5tzENhcqLwM8rSZBDrY6VJnHT/tWQTGuMkXjf7HfVZqMdG/W+2hLbx7jfLuJkLpE67nHAiYDaD731BtSErrUNo6VLVy/g/XxSS4Pu1znQCWB7zrmnLOOOs5o/qwY3uvC+915WOdMNwfen3W57pR8Lno9RKf60i3blhuDNUdGeZKJWGlnAQR8z4wV1RM6f8GYKnIAVgq2uXMiiyns6K9IgNgqZhZkWWaVCykX3KSxhmdVJEjrxRFFctlVRiWuP+CYTFBatYLgViuHcrb88kLgFgW7w0mmWiT+eB8DxoLsw0WSHshB2+RLLrrfvnIwfMZJq8PJAnkidWBlBSBzJcXyBL9AwsDKQVcgSzJJhCNYHdzD7JoeUYe9ssMd9W6BuzXknfutVrvzJoq7c0brJQ8G0IKUF9P3bNnv3GsNtJRwWobIJfVxDKWzh80+wIyUwcSGmIsHS1o1Ec5GkPceGwc7O+5RQht1/bmnbrjowjh7jPBpA9aH4bK3XnbqxShD/4XSN5i+XZ0n/0K+tlMvM51SN1/1937TxghHFJtAW6ZyfnBdTc/APszPy15zoAK/iN933l+viF9pe9ADiaBXMtgZyx2jiF9xfOgI7zG7wufKnrlUKkxtK+ktG+qyNP+LC6Yn0vgvlnA9H4+1cWqq350pjtUFQL+H7W65p4AAAB42pWUMW/TQBTH/7bbVG3TqhUIuoBODAyosZOqXdqFKKqqQtQhRUyowk2uiVXXF9lOoyIWRgYkPgdfgIWdgYHPgWBmYOLv82tISweIdXe/e3fv3v+9OwXAfSeBg/IX4KWwgyo+CLuYw2dhj/ZvwjOoOivCs7jjPBWu0P5aeA7K+SI8j4rzS3gRC+5d4SpuuU+El+C7n4SX8chrCq+g4r0SXsWs945KnJl5zo6sqoIdrOG9sEvvj8Ie7V+FZ8g/hWex7twTrmDNORaew2PnrfA8c/khvIjbriNcxUP3gfASXrhHwst45n4XXkHVi4VXseC9QQsGQ1wgRYQ+BsihsIE6GvwU9rhqaI+hOdtHgi58UpOWmGNn4pXZmeaoedY5+x53omWGF2nUH+Rqo95oqD1j+rFW+0nXV804Vp1iKVMdnen0XPfo0GG8Y7acTaE9OR8dc2xyo9qFB2yoPkYUETIcOro/isP0P9z/adtzm0zGZcPUi8L4LE1ZnC22nUmxNrlZp1lkErXh15nqVmOnSHnzaqza37FqN0qKbEFDtpwKQhZT48zmekqbwcm1y/En0qNMhSpPw54+C9NTZU6k6Nwx7YDSimundMlnl4t+15BbVJtaQTn70BaiFFsUp7j5ojhoDdIoy6MwURSi0zwzNBbZdrkvse+iR88RuWc9i9QG9l01+QJD7itnV33Wabn5GtCOujrJdE+Nkp5OVT7QqjkMuxxkZV1N3Qls0XOG2uafSoCx/XwG/hPcZ4CUtQhYjWkRGS1tPv8WdnGAQ/a1SxGDPB9uB8F4PPZDG9w3aT+ISwFZ0N5v7R4c7tasgOkrluvC9IMoX8Jvu6bhtgB42m2ZBXgbuRLHh+I01JSOmbkXc3xsWLcppZTSQc9J3MStY+cMpWNmZmZmZmZmZmZ47x3js1fjZJ1Lv6/5z2hX89NoLWm1AgL73z8u6IZh/slHAEjIKMAgUAMuqIURUAf10ACN0AQjoRlGwWgYA2NhHKwCq8JqsDqsAWvCWrA2rAPrwnqwPmwAG8JGsDFsApvCZrA5bAFbwlawNWwD42FbaAE3eMALPvBDAILQCiHYDraHHWBH2Al2hl0gDBGIQgwsiMMEmAhtMAkmwxSYCtOgHabDDJgJs2A2dMAcmAvzYD4sgF1hN9gd9oCFsCcksAYuhkPgULgXToMv4DA4Do6Gc+FKuARdcBS8BQfDyViLI+BYOB2OgIfhPayD8+Aq+Al+hJ/hIrgWnoTH4TrohC44odRXT0MSnoCn4Hl4Bp6F5+BLWAQvwwvwIlwPPfADnAivwSvwKvTC1/AtHAmLIQVLoA/SkIELIAt7QT/kIA9FKMBSWAZfwXJYCStgb9gX9oE74ELYH/aDA+BA+Aa+g7uwHhuwEZtwJDbDX/A3jsLROAbHwj8IOA5XwVURcTVcHdfANXEtXBvXwXVxPVwfN8AN4Vf4DTfCjXET3BQ3w81xC9wSt8KtcRscj9tiC7rRA7/D6+hFH/oxgEFsxRBuh9vjDrgj7oQ74y4Yho/gY4xgFGNoYRwn4ERsw0k4GafgVJyG7TgdboAbcQbOxFk4GztwDs7FeTgfF8Af8Cd8Ap/irrgb7o574ELcExPYiV3YjUlchD3YiylcjEswjX2YwSz2w924F+YwjwX4DD7HIi6Fy3AZLscVuBL3xn1wX9wP98cD8EA8CA/GQ/BQPAwPxyPgDfgQj4S34R14Fz6AN+F9PAqPxmPwWDwOj8cT8EQ8CU/GU/BUPA1PxzPwTDwLz8Zz8Fw8D67A8/ECvBAvwovxErwUL8PL8Qq8Eq/Cq/EavBavw+vxBrwRzseb8Ga8BW/F2/B2vAPvxLvwbrwH78X78H58AB/Eh/BhfAQfxcfwcTgbn8An8Sl8Gp/BZ/E5fB5fwBfxJXwZX8FX8TV8Hd/AN/EtfBvfwXfxPXwfP8AP8SP8GD/BT/Ez/By/wC/xK/wav8Fv8Tv8Hn/A/+B/8X/4I/6EP+Mv+Cv+hr/jH/gn/oV/4z8EhETEJFRDLqqlEVRH9dRAjdREI6mZRtFoGkNjaRytQqvSarQ6rUFr0lq0Nq1D69J6tD5tQBvSRrQxbUKb0ma0OW1BW9JWtDVtQ+NpW2ohN3nISz7yU4CC1Eoh2o62px1oR9qJdqZdKEwRilKMLIrTBJpIbTSJJtMUmkrTqJ2m0wyaSbNoNnXQHJpL82g+LaBdaTfanfaghbQnJaiTuqibkrSIeqiXUrSYllCa+ihDWeqnvShHeSpQkZbSMlpOK2gl7U370L60H+1PB9CBdBAdTIfQoXQYHU5H0JF0FB1Nx9CxdBwdTyfQiXQSnUyn0Kl0Gp1OZ9CZdBadTefQuXQenU8X0IV0EV1Ml9CldBldTlfQlXQVXU3X0LV0HV1PN9CNdBPdTLfQrXQb3U530J10F91N99C9dB/dTw/Qg/QQPUyP0KP0GD1OT9CT9BQ9Tc/Qs/QcPU8v0Iv0Er1Mr9Cr9Bq9Tm/Qm/QWvU3v0Lv0Hr1PH9CH9BF9TJ/Qp/QZfU5f0Jf0FX1N39C39B19Tz/Qf+i/9D/6kX6in+kX+pV+o9/pD/qT/qK/6R8GRiZmFq5hF9fyCK7jem7gRm7ikdzMo3g0j+GxPI5X4VV5NV6d1+A1eS1em9fhdXk9Xp834A15I96YN+FNeTPenLfgLXkr3pq34fG8Lbewmz3sZR/7OcBBbuUQb8fb8w68I+/EO/MuHOYIRznGFsd5Ak/kNp7Ek3kKT+Vp3M7TeQbP5Fk8mzt4Ds/leTyfF/CuvBvvznvATXAzL+Q94Ta4HR7hBNwCt8KjcBA8BIdzJ1zNXfAYd3MS7oP7eRHcwz3cC79wihfzEk5zH2c4y/28F+c4zwUu8lJexsvhGF7BK3lv3of3hTPgLDgTvodL4SQ4By6H4+EUOBXu5P14fz6AD+SD+GA+hA/lw/hwPoKP5KP4aD6Gj+Xj+Hg+gU/kk/hkPoVP5dP4dD6Dz+Sz+Gw+h8/l8/h8voAv5Iv4Yr6EL+XL+HK+gq/kq/hqvoav5ev4er6Bb+Sb+Ga+hW/l2/h2voPv5Lv4br6H7+X7+H5+gB/kh/hhfoQf5cf4cX6Cn+Sn+Gl+hp/l5/h5foFf5Jf4ZX6FX+XX+HV+g9/kt/htfoff5ff4ff6AP+SP+GP+hD/lz/hz/oK/5K/4a/6Gv+Xv+Hv+gf/D/+X/8Y/8E//Mv/Cv/Bv/zn/wn/wX/83/CAgKCYtIjbikVkZIndRLgzRKk4yUZhklo2WMjJVxsoqsKqvJ6rKGrClrydqyjqwr68n6soFsKBvJxrKJbCqbyeayhWwpW8nWso2Ml22lRdziEa/4xC8BCUqrhGQ72V52kB1lJ9lZdpGwRCQqMbEkLhNkorTJJJksU2SqTJN2mS4zZKbMktnSIXNkrsyT+bJAdpXdZHfZQxbKnpKQTumSbknKIumRXknJYlkiaemTjGSlX/aSnOSlIEVZKstkuayQlbK37CP7yn6yvxwgB8pBcrAcIofKYXK4HCFHylFytBwjx8pxcrycICfKSXKynCKnymlyupwhZ8pZcracI+fKeXK+XCAXykVysVwil8plcrlcIVfKVXK1XCPXynVyvdwgN8pNcrPcIrfKbXK73CF3yl1yt9wj98p9cr88IA/KQ/KwPCKPymPyuDwhT8pT8rQ8I8/Kc/K8vCAvykvysrwir8pr8rq8IW/KW/K2vCPvynvyvnwgH8pH8rF8Ip/KZ/K5fCFfyle1xUyqpfRPNabqMRrW8rCWR7Q84lUN1Yb7El25bKY2YdQV7swllyZdCVtqw9mebCa5pDZhtCHalcp1FfsWpZPLG7oG7fpod7aQ6OpKZgr1XQOmK9aVKIfsNhIrxU8Uai0FJhVoGWDSlnprMFBywKy1tBlJoy7LREza0jDB0ageR6MmDMbqGYxVTtzt8ah6GyY6avcO2jKxM5GT3tIfV1shle5OulK21LZp+1Pa/jbT/pTpsDZtacootU2i1OKGSQ7G4kHbtMEbUA02LunJJZOZdCLTnepyTUl0FQtJV9oWvSWiGnVNMV2QtkWmlPKTdOmPa5qplXHU8vlVA65pplbGdFwm0Z/NF3LZ/t4kW5keTmZ6ats1vaym127Sy9rS1N5bzPQkcsW+dKJYaMo6PddMQ845yH5NzR90zTTknJFZ5t68LQ2zHN2TH9o9AX1UAa9rtqlcMDnPLj+gQvkBdZgHVDQPqEMzKGoGHSaDoi01HblUpqemWP7b1FGVTdHp1XbogyzqL3+uo43LHPZ8h71i0HYtMBmutKV+weBPceWAWZPOZnryJrvWeE17bzaXqcnafzvsv8XyX3M93lIfLrfZhEsMmLVhy2giafqyPZ9O5HuNnR207Sged6tqSDWsan5XHm/QqF+vR6JGo+rHvXU9ucTSZFe2r7POjmtbdr+XrabebHZJojNr7rDreFvijaWMO5Pp7LJyYU0hm8nmm7pTyVwyn8rbXn043d+bsM26RCZbSKaTqUSj1Z9PlXrILh5hFfR6W1atxva+VPn5GqfDcXN9e1+yx9w0OlW6vYpVY7MkkiwkaiYk+voStcqRBaUiLnFqZveWLCmDaiYn+vsTpZHY19mdoKlFmlakealaJdP0FM/szdbMSvX0JXh2olirreDpvSmOlv5Pz6ca2xwtaNYbKn59YiDxxqQz3WQl3VQl3XHF6qomGbu+dJaT6SknU9OdTBcStRpLVpZTKl8s2CmVg9UssVNK2ymZJxSJUqZIy1OlMW/nxbnerCtfTspdYwsXSrkpn/tLeXWV/pfcmmy5oxudfdw8pJmNWedTKjqfUnbgKbns5rlHaO+4XfYlt906n65tvpaK71H1qvpU/aoB1aBqq2pINawaUY2qxlQt1bhRt/Ldyncr3618t/Ldyncr3618HXM+HXM+HXM+HXM+t/Ldyncr3618j/I9ytely+dRvkf5HuV7lO9Rvkf5HuV7lO9Rvkf5HuV7lO9Rvlf5XuV7le9Vvlf5XuXrcubTucTnVb5X+V7l61rm8yrfq3yv8r3K9ynfp3yf8n3K9ylfVzmfT/k+5fuU71O+T/k+5fuU71O+T/k+5fuV71e+X/l+5fuV71e+rnk+v/L9ytc51edXvl/5fuX7le9Xvl/5AeUHlK/roS+g/IDyA8oPKD+g/IDyA8oPKD+g/IDyA8oPKD+g/KDyg8oPKj+o/KDyg8oPKj+o/KDyg8oPKj+o/KDyg8oPKj+o/Fbltyq/Vfmtym9VfqvyW5XfqtxW5bYqt1W5rcptVW6rcluVG1JuSLkh5YaUG1JuSLkh5YY075DyQ8oPKT+k/JDyQ8oPKT+kfH1394WVH1Z+WPlh5YeVH1Z+WPlh5YeVH1Z+WPlh5evewBdWflj5EeVHlK97B5/uHXwR5UeUH1F+RPkR5UeUH1F+RPn6buGLKD+i/Ijyo8qPKj+q/Kjyo8qPKj+q/Kjyo8rXdxdfVPlR5UeVH1V+VPlR5ceUH1N+TPkx5ceUH1N+TPkx5ceUH1N+TPkx5ceUH1N+TPkx5VvKt5RvKd9SvqV8S/mW8i3lW8q3lG8p31K+pXxL+ZbyLeXHlR9Xflz5ceXHlR9Xflz5ceXHlR9Xflz5ceXHlR9Xflz5ccP367rv13Xfr+u+X9d9v677fl33/bru+3Xd9+u679d136/rvl/Xfb+u+35d9/267vt13ffruu/Xdd+v677frPtuy7SvpG6jZt0qadw1135Jdi0zMtfsBJbZUje38mZUt6ximXphjRfWeGa8l1R5ZryX1K8aUA2qtqqGVMOqEdWoakxV22vGu9uKKD+i/IjyI8qPKD+i/IjyI8qPKD+i/IjyI8qPKD+i/IjyI8qPKj+q/Kjyo8qPKj+q/Kjyo8qPKj+q/Kjyo8qPKj+q/Kjyo8qPKT+m/JjyY8qPKT+m/JjyY8qPKT+m/JjyY8qPKT+m/JjyY8q3lG8p31K+pXxL+ZbyLeVbyreUbynfUr6lfEv5lvIt5VvKjys/7nbNNz/cFbZoqdLjSo8rPa70uNLNaHfHzduUR79MldSt6lH1qvpU/aoB1aBqq2pINawaMerW+G6N7/Y3FTPdyVy+K5tLdnemm/YqlvaT5Z1/Lp/sHllYli1tRpOZdDJRuslU8QRdfamM/TmitG3NdNcll3eVtkelyuZ6UJsYjEs6lUsYJxxw9SfzpV2LutrMsDYzHJbu0uZerGIua0oi2sCI3hHRRMywKKnpMLd2hNtMMyUN1CXzhVRfopDsrstmkslUT2+ht7HQm0uqnW9YlFpasRvzpVQz6pQjWDpBldTu+njADKh4xJSX1KNaKbfzjVtmIo7HzURd0tiInvSK/l6vLzBi0cJF47vTqZ6SUTBGXo16uwHj+zPFPlfP+Hy+JWBqlfYPFcNTMbwVw1cx/BVjoFawYrRWjJAavpaK4XaFx3d58l2uiJGokZgRy0jcyAQjE420GZlkZLKRKUamGplmpN3IdCMzjMw0MsvIbCMdRuYYmWtknpH5RhbYUrcymcuO785k+0aUHqwxSj9Q26i3H7Bt1i3KFnNqlR60uS+fWm7uM91tm/ZTNzdmUpWApouCld4LhsxTcZtPD2XTU0qjJN5S+iXxuZYYsT2/8fwN3dl0OpGzm92ULw2odCrTY3sjVpTwZaPe/ppizFj5K4Qx7Y8pttlgPqPYdu28lNHpRuvtbygm4PTelBp5vWh/z7HNRv0E4HR8TifkdMJOJ+J04g7H7XY6zmjugNMJOp1Wp+PkuJ0cj9fpOKN5nNE8zmgeZwoeZ2hPVeio04k5HcvpODMNOfst5GxOyMkJOUOHW5yOs6ER55WIM3TE2YmRqjpOTsTJiTlvs5yhLXOlrjz5Gqs8qw7cUJ4iB53SPGqGWKc997i6jHSbmag8zOyZKWuK+43sZSRZlqAZH8HSJGIXTjASM9JuZIYtjeVw2XR3vrAinWwsj9wBR3eQdlNGmqFcudZkD+eKZ+aARblElxnmxioP87JlD/OyocPcNs0wt2+0h3nZarKrVIKONHdX3Np284tosm8faIdNrnhmevAHfRXDXzECFSNYMVqbe5K5vkSmtELmzcg2Rztm1FqFXvOUyt/nzeWw/SKhtv0abNujwoPfy/Wi/SXZ9Fq48nps5gD767dtNg9+CDdpRbuS3anS9GRiWA6Y5YBZQ2AjrSpAQ5ujXpujXtvQem3V9aYNtrmh3RGj3RGjfWii7Y5E26vjdThidDhidAxtR0d1vfmD9zbqoZ52qn3woRfMaYa5EHVEjw6J3jx4oqc324culcc9YDdaTpQ1iGq2qgM0Wk60NRhh1IShnTPBEWXCkCh6emdqThxas22wWxvbnA1rc/RBm6MhzW3V8UdNGhKyUY/oKivYYB/rgZxeGMynrnwWpz+Nobf7/HrB0YHtzna2D7ZzTNVZm7k8c2hAvzZspuPpzHI81llD0mmaVTVWZjnaoQdC5sLsIRfcAY/+Ih093OFsecdgy+s7BsbqmI5/JdHY4ej/UXOHNHDU/KE/8/nVP/MFg9k1LxjyG10w2Gr7Rao81euLVNk0M6yxytOlbdlzom3Z82HZGjVh4cDZ1viurr7+UT1DC6YtHDgHMwWZIQUjwwv19Mu4iWrXqnaT1W5blbtKKct0Mp9PVd/UXu1mq92Z1W6u2u2odotV7mqVY5ghSY+NLHQe5JmyzmHKYsOUdf+7bGRsoe5HjNtd5Y6dOEyU3n+XjZo89NksGdruycNEWjJM2ZRhytLDlE0dpqxvmLJpw5Rlhslg+tAM+odmMHOYSLlhymYNU5Yfpmz2MGWFYVo2Z+HA0a4pWDqkYOycYSItHaZs7jBly4YpWzBM2cp/lzUPnhjbw32087DYzHSVE2NdtLNOd7Tz7NiUdAwN0Dx4iqxvIPaGyZ7iI5U9TeWQ2hQvqBSXj6tNUZlrqttHyWbTM7VYmfpTAxPoiJm95p12xOyEXu5wxB4R1V3RaOd5sl0ybsihsnOf49zatDg3Iy1+p+PcCrQ4dyYtzrfyFuf7eotzl+F2vq+7nVsBtxPqdkLdzn2O2xna7dzNuKs4zt2Mxwn1ODP1OFvgcUJDznzCztvCzp1J2AmNOB3LWceq2mn5ql+x0tmudGPC6VhOJ+lw6uwXa7fHF/o/58tjewAAAAEAAgAIAAL//wAPeNod0VlL1GEUx/HfOc8/ccTrAk291ZZXkHrrhd7pa3GCBGUmDcwVJZNyyZXG1EJxydxu3BfIVyDoCNbcZi40fZEvD+fz3B04Mkn5kn1nuqpkSvCSes2vmUwt5HqjVvxWbbhdHbhTXbhbPbhX73Afmd6Tq18f8EcN4EEN4WFyfdIIHtUYHifTBLkmlcJT+oKnNYNn9RV/0xye1wJeJNMSuZa1gn9oFa9pHW+Qa1M7eFd7eF9n+JxcaV3iX/qNM/qLr3WDb8l0p6zcZA9klmMxnGcP8SMrwIX2GBdZMS6xJ/ipPcPP7QUutwpcadW4xmpxnW/JfNsP5H7oR/jYf+ITT+MLZwfP+B985f9wNuTKQiyUykNZiOOX4RVuCI24KSRwMqqXRfHoszxKRafsHN1fTP8B5WdU4QAAeNrtmglUVVUXx/f0EBARBRGZRGQSFBRnHHIeAIeQzMgGQa0Uhw+HyvyaNNOywTE1p9QmMyU1c87UnHMgM1NTM0sjm8hMyeE7d78rQrrK8lsNaz1Y67fvu/d/9zn3nL33vfe9AwgAnnjIkQTSqk1qOgRmPZiTDe3uyenVF4Zm9xjcH+aBGA1cugTljRFwgAeUAR+oCEFQGapCNMRBAtSG+tAIboKWxdRott3A06jLQQAEQxhEQAxUh5pQBxpAY2gGrYqpyWyXgtJGXR4qQQhUgUioBjWgFtSFhtAEmkNrc7Zb84zWYZDeMi3dsEOn1DB4uGPzrmEwP61ThzDYl35LWhiSevQFNh7dwct49DafAiEUwiEKYiEeEqEeJEFTaAFt7NavaH9b6VtC6fcHtBX+gNb/urVlf6O/bbMSB2XhAuVi5XLl2qysfgNxY8/s++7BHco85X7l4Z79B/TD48p85ffKM71zemTheSPpQW5K7+z+Q/qRnzJQGaaMyh6QlU3VlYnKBmZ3DjVVtlImKzsPsPRdld2Vmcp7B1rsrxysHKZ8dFC/rIE0SjlWOV45ZdCgmrVopnKecr4y1zCRlilXK9crtxjWpp3KvcoDyqOGdehL5SllgfKsYV26aJFF6an0MazH/spgZbgyxrA+xyvrKJOUzQabq+A2ylRlmrKbSQIEVLKSlNYfmZn20E/eSh9lWWUZZUtla2UrZQtDNtnYzGSN5aGc5i7abKxsqmyibKT0VHopSyvbKtsr2ynbKGsqE5W1lAnKBsokZUNlfaVDWUrpphSln9JfWUHpqwxQBiorKSsqg5WhyhBlkDJMGa6soqysjFBGKSOVVZUxylhlNWW0sroyXllDGaeso6ynrKusDSkwBWbDa5ALy2EdbIHdsB/yoQAKkdATy2MghmMsJmIStsBkTMMMzMQ+mIPD8HF8CsfjNJyD83ExrsT1uA3z8AAew3wswEIi8qTyFEjhFEuJlEQtKJnSKIMyqQ/l0DB6nJ6i8TSN5tB8WkwraT1tozw6QMconwqcUUSZTus46rQedzqt1yGn9clwWt8GTuvv77QBp3V+3ILygk4H+wc3CM4IHu6cq+CxTkVVL9uWt22A83jVWNt2tu1Q20637Xrb2j2qetFpI8i2brb1tK23be12IuweRgTaNtS24baNsm2sbeNta19hRAvbptq2q23vtm0f2w627cO2zbXtMaeN9LNtG9um29Ye8ciBtrXPj5xt2/W2Pe60Ufb1RsXYNtm22bZ91rZ2+1F5tj3ttNH2eETb1xdtz2j0cNvOdGZa9Bz78ybb2tcRnW9bO2KiC502xp6PGHt8Y5Jsa49XTA4QboQjvIaf53E8nifwRJ7Ek/kFnsJTeRq/yNN5Bs/kWTybX+I5PJfn8cv8Cr/Kr/HrvJbflRAJlcoSJlUkXCIkUqIkWmKkmsRKnFSXIKkh8ZIgNaWWJEptqSN1pZ7Ul0rSQBpKkjSSxtJEmspNEijNpLm0kJbSSlpLG2kr7aS9JEuKpEoH6SidpLPcLGnSRdLlFukqt0o3uU0ypJzcLt3lDrlT7pK7pYf0lCwJll7SW+6Re+U+6SN9JVv6SX8ZIAOlqmTKfHlDFsibslAWSa68JYt5Hb8nS2SpvM3rZZm8wxtkOW+UFfy+rORNskpW82ZZw1t4q6yVd2Udb5P3eLuslw2yUd7nHfwB75RNspl3yRbeLVtlG++R7ZzHH/Je2cEf8T75QHbKLtkteyRPPuSP5ZDs5f38CR/gg3yIP+XDfISP8mfi4GP8uXzEx/kL/lL28Qn5WPbzSf6K8/lrPsXfyCf8LX8nB/h7Ocg/cAGf5h/NXB4x95VIUxujTTWsZmphnKl+NUztSzDVvZap7bVN1atral59U9UbmpreyNw3mpi7Rm+4F0bASHgCRsGTMBqegqdhLDwDz8Jz8DyMg/EwASbCJJgML5gKORWmwwyYCbNMrZwDG+B92AxbYTt8ALtgD3wIH8HH8AkchE9Nfz6Dz+ELOAFfwzfwHfwAP8LPcA7Ow0VzayR0Q3dTV8tiOfTFClgRK2EQhmBlrIJVMRKjsRrGYQ1MwFpYG+tifWyIjbAxNsVmWn3vw76Yjf2wPw7AgaYKD8LBOASH4v34AD5oavJDOBz/i4/go/iYqc8jcCQ+gaPwSRyNY0y1fhqX4FJ8G5fhO7gcV5iavQpX4xpci+vwPVO/N+BGfB834WbcgltNNd+OO/AD3Im7cDfuMbX9Q9yLH+E+/Bj34yem0h/EQ/gpHsYjeBQ/o+bUktpSe0qhDnQzdaHb6Ha6i3pQFvWi+6gv9aMBNIbG0QSaSrO4C2fwXZzpykJXFrqy0JWFrix0ZaErC11Z6MpCVxb+7Vk4GN75Mzn4J/Ov31+cf1ey70Yz5Ley7w9lj8mad6C19V0vtIP2kAwpkAodoCN0gs5wM6RBF0iHW6Ar3Ard4DbIgNuhO9wBd8JcmAcvwyvwKrwG8+ENWABvwkJYBLnwFiyGJbAU3oZlxvdyWAGrYQ2shXdhHayHjbAJtsA22AE7YTfkwV7YB/vhAByCw3AUjsFx+BJOwin4Fr6HAjgNZ6EQLsAlRGQshR5YGn2wPPqhPwZgIAZjKIZhOEZgFMZgLFbHeKyJiVgH62EDTMImeBM2xxTsgsfwczyOX+CXeAJP4leYj1/jKfwGv8Xv8Hv8AQvwRzyNP+EZ/BnP4jksxF/wPF7Ai3iJTGASk5CD3KgUuZMHeVJp8qIy5E0+VI5aUCtqR8mUSh0pjdIpg7rT3ZRJPak39aFs6k8D9Ru3iTSNZrui3BXlrih3Rbkryl1R7opyV5T/C6Kc7d9+rd9Vrd9wkvW35g5AgNgDe+lvxddSdPxdRcHvKcj9dxWev6soLKZAt1DzBphjYmGhmeltcB69zbwkY098GJ83b0Gn8AwFUKIZn6E0mubQDjrMPhzIEVyP7+UcHs6jTD6vNPF7xuRrosmq/vKoLDYxfdjh7gh0RDjiHQ0cLRzZjsmOdY58Nz9wA29d5xFm3kyry0NmanrRHsOetMuwt3nnJMwyb5+EmeYtlLCH9eu2jNZj1u/cW/UIGT9eMhaI75en9FhJv/9Vv19bvugr9X5CVWP17KfVr9PH/brnC8uTtvTsNbw9ot7OWUfoZ8sbqGfzNmyd+5x6Y/O2bc6R8ZZKnEfOqdfLRyaq54u673yxq5isfjfrHgd4mfkKgFCIkCnq6UHLO7pbZ6GbaiZq2yV7+Jj28IJe6S/azhRVTdYzJhWN4zT9LOAJPuAPwTJd27DGuRdW0jYqquJyn2dax7GzHgkp1ufZuj9Nr6VkT56wfHEFqyfsq6o47ckMPXt6sZGfp23P0aOX23tFx2K7paWtqi02IhxtaTlSfVe1lFxFNbOL9ew1bbOx7inZs+E6Rnk6Rrt1jF7Rtuepdm7RGI0pirVtxfw+o7H29DWi42H1e0pjLV+9n1TVAj37jSK/D+hna+u5yy1YuWi2Ll/9BB2RcaorLBE7k1R3SfddKNarF3S8tlwVO1PV0zCNHQ+dvVKqWXqN2Hlc+39Re35e21muqmV6xttF/X/xV7EzQ9sYqbETqG0ElIidWToTN+uR0GJ9fkn3d7lG7IzS2PHX+fVTVXXtyRo9e3Wx2HlZ255bInZe1bHYobGz7arYidHYiVLfERo74apZV6xnr2ubTS7PE6YWbXUs2upQtNXpqlF/VEfyrFYIjQdzN7U0i67qTTntQVntUxntU2lLwx6/9snlVemjSm9VeqnS8yplZVWGqDJIlZVUWfEqZZgqQ1UZrMpAVQYUReiT9qiU01WDAHFQw3hIgDpmrOtBIzPe1jeFfubJo72JhRRz9wsyTxzpxntX84QRoU8YsTDG/FeHF81/DXjd/MfDKvOfYJ4KTkNNbI3toBbmYi7U1XVMCdY6LayC4b/6RKY1kU/lsByRo5qXm80TyEE4pGuRyMRjsHP+2FRB6MZmFvROJ/y49VlXfyWb559/kjpU1X56zNQFM37W1jB7y6jMuSVV5j5gnuisrYfsrcsqN+6rTw8p17tN1toexHHXu216j7pe63q2rR4Tr+CV2sMEExU3smcVr77hPaFmPi4K8CVBIf6Jz/DPPJLPcSH/ouvzrO/H46C2iULnU3SK/cz8bzvTC5jP8wW+oKse20MKj/y/7PUHd/EVFhE3KSVlxUesJ0p3E5cVzLGKpqZUMtkf8k9Qmq0re0M0c9x5BJ+V/0iODJLBMkSG/hOUMvTKXh4hQ37j2v9W5a/26RWVnAvx/ZuVVu1prLXHWsdtrWm9vC7Xet8hXRUboqt2iTtxJ/NSNJ+XaHUIBE9xh+EwBIaKh3hKafGSMuJd7BzL9+Qb+Hw9bfy1mijwMdf/Bi/gN3khL+JcfosX8xLxFz+pKAFSQT7TNdHFoyHQjH6wOd/6VqHAvD17UuH/AIY8t7QAeNrtnHl8VNX58J/n3EACCZmwioiIC1tRAa11Q8T+WlHoBra8FaXir/WtWov9aau1VRtbVKRKUXBHCYuUKtipgoDKohJkMZCwBIjDFiYzQ3LDTDKJ1l8x5/3eO5MNImrf9/39Ze7nm3P3e57lPM9z7iQjKiId5Xp5TjK+deV3fii9fnrPHbfJwJ/fcdMv5Bu33fjryfItyeAcsVYMTUaLLW21ZVptOay3++mv7vyV9PV/9/d/n+3/Pu8XN90xWS7iVBX1fzv+b+P/Fv83V0uOdJPecpacnT7ra6lW3VTrvJpq2/3Kv9JknndpMXs6cuVZchVr+yRL+kl/GSADZRBXD+ZO58i5MkSGyjA5T86Xr8sF8g25kL5cLJfIpTJcLpMR8r/lZvmTTJEH5SF5WKbKNPmzPCqPyXT5i8yQx+UJmSmz5El5Sp6WZ+RZmS0vyIsyRwrkPSmU92WjbJYi2Solsl12yi7ZIx/KXtkvB+WQVEhUqqRa4lIjSflYPpGj0oAajLbXLO2oAe2sXbW7nqQn6yl6qp6mp+uZ2k8H6CAdrOfoEB2m5+sFeqFerJfqcB2hI3W0jtNb9Bd6m/5SJ+vt+iu9Q+/UX+tv9C69W3+r9+jv9Pd6r96nf9B8fUD/qH/SKfqgPqQP61R9RKfpn/V1XarL9A1drit0pb6pb+nbukpX61p9R9/V93SdFup6fV836EbdpJv1Ay3SLbpVi7VEt+l23aE7tVR36W7do2X6oYZ0r+7T/XpAD5orzH+YUeZqM8Z814w115hrzXXmBnOj+am5ydxifmF+aW43j5jHzUzzrJnjXONMcG5w/vMrS35lya8s+ZUlv7Lk/x9LDrvEy9b6uvMr5zmWAucj52jG5IzfZkzLCGasz8K4WWdkDcy6y1vLmJa1IGt9h6s6vJZ1RsdZHd/seCB7RPaG7Mqcs3NG50zKubXTrE4vwqzcWTmjc9/M3RDoHxgZmMDvSc7R5oV7B1OLf/fUfaFx4Xn+kj2C+zYvk1KLd/fGJdA/Z3Sgv3M05+xGuHdq8e4UzJl0LFnSaVbjU5skSy3+kRSdZmVMy20CSVg6vOYtjX3zlo5vZo8I9Pc1wOI9vcNrgXno8GhKsoxp2SM8Xeb19vZkb0jJmTXQOeodzSv1tNm5uMNr2SO6bOl4oOviLMke0WlWNyTq9oNuEzrNOqlnz9pA/5N3587qta1XrNeRXnW9K3snTu1/6o/pF9o7tTSvd0qK02KnxfrmZg3suyBLnKN9j3jPPP1ARrDjgbPO9Z7YpOUFGb/t8FrfBR0PeNtn/dO7rv/0AT8YsC/n7IHDB/UYNHvQwpxJgQmDigf9t2fDwZN8DU84J3Ju3yGjh4zOGT3kNs8Gg2YPOeJtB/qfFhsy2jmaO6sjtvAYVJwzOq/3oNl5vTseCEzgyalFvOemtOXt97TsH/f71WS7YMrC3hFf7/Sg74JA/0a8+w6a7R31zvbshAeytLT/F6Etv2jtI56ucmd9FrmzUt7pSdNMxjTnuaE9/THkL0PnDd0wdNvQ0ND/HpYzrM+woSmfJG5eZHdrPxgA42AprIIddrcZCxPhJrubyHqdZEt3ImY3YmYXYmYPYl8PvVC66MW0l8Lt8CD8WXqY/tLNDIQbWL8RNkoXsxmKpItzuvRwzoR+MID7qHS1fampz7TvyY9tXK6z+3WUPaIP2Qqdakv0eemsC+wGXS9ddZ8t1Dq7yYyzc8wtdqy51f7e/JLtyXavecTWmmX2N2Y522vs981a+6jzlK13XoT59n1nga1xXrJFzkK711lk14kxvSWbMyPEnE78vsLWyY02zr2qpYM8Qi/+YJP6J5vQ522lrmd7nz3A+QecGbba+autJ+uMtkfobyX3TXDfau6bkC2SZ3tIF+hnx8u5Df8k13STb9t9MspWyVVwNYyBa+BHMJ6nX2srZYKNyUT4E9dNgQfhIXgYpsJ87rEAXoKF8FdYBC9zj1dgMSyBV2EZvAHLYQWshLd5xipYDWtgLc96F97j3uu4TyHtetr3aTfQbuKaD2ALFMM2KIXdUAYh2AcHoBzCEIGPG/6pebZKu0A36AH9pJsOgLPR5bkwFM6Dr8M34BIb0ys57yrWR9vxOsbu03Gcfwvrd8Bv4F54lHNmcM7jtDO55gWYw/o8mA8vcewVQBe6hHYp93iT/qyifZfrd9CWc+8oxxOQhHru8ZGtMgYcaA95NmZ62vGmH+sDWB8Eg1kfAufDWLx7Au31MJH1SRy/ifYBrvmj3WewoZlCO5Xj04B+m2fgOZgNBZw/DxbAa2y/DkthNWAHgx3MVtpi2hLabbTbaXfQ7qQtpd1Fu5t2D20Z7Ye0Idq9tPto99MeoD1Ii8zmEG2YtoI2QhvjWZXgwhFAH6YW6sDTx1FosFWOALpxMgDdOFnQEXIgF7C1g62dboyEHtATekFv6AN94Qwbc86C/jAQRtgezjfhShgFM+xayWKMd9eIdGdshxnbFYztMGP6EGO6nJEXZn49A//qyph7h/hQSFxYqofsLmLCStPVvmbOsdvMMLuB+FDA9YXEhLB5w35gVsBau9m8Y+POEzz9KRshLkSdAhslrl1nFzgzpCtHkhyp4UgtR2qIGpcSNcoY3T9kdD/O6L6ccPxjySU6zCEq7NO5xKj1dpFGiDn/sIfo3XrpS1TdKZfQ20utK5fZvVJg9xJldxJld+qF1tWL2b4UxrF9O+2D8GdYyvYq2GF3mv70fCCMZX0i3ECEuxFuYn2jdc1mKLKuczrR7EzoBwNgBr3rRQ+C9KCapxfz9GKeHuTpQZ5czJOLeXKQJxfz5GKeXMyTgzw5yJODPLmaJ1fz5CBPDvLkYp5czJODPK2YpxXztGKeVkxkyyA7jLfL0OH7MrlhhdxvB6Kd78rf7HR5y87FSq/qk/Z+fdb+XAvsw2jsJqz2oi60t+oie6f+zf4EDb6k+ySAJcMatgVo89d62OZj1df0U3ufWptv1N5jOtv7sPIfsPIzWLnMjLQPmG+y/j32j7Ovmx/7Vr8Xr3mOKH4b1o9glV/gAU/gAUvM22SLNRLAEx7HE2qx1t+x+UpsvhKbr8TmK5159m3sXoO9a4jxXiboRPS+QjojZbnciJfMsEu5ag9X7eGqPVy1xz8rwFk5nFXFWbmctZmzDnNWtMnTTkIbO/QZW53OaQfQQhQtVKCFI/h+FzRwGKl3Ic0uJNmOJKVI4vlx1CyTTma55ND7Ur/3re9+WM6QjvTQ622u3UpfupCdKunPbrJqpddzmWxfxT5F2KcA+7yDfdbSo2J9gjj5pF2vT0knencYW5Viqxi2epNeHqaXm+llGb183/m23Y5sr/D0Ip6+madv5umb0VkSnSXRWZwxch0yPeRfFcYjO3F2NWdXcbbL2a7kyblkzothNrwAL8Ic+BhNDIZzYAgMg/PhAnjTHnG6QnfOy0RPCbyhBk9Ioq8arJzEyofRz3ZpR78r8aMjnBXkqMteVwxb9c5ljI3R0p4+ZEPKul3IzTFyc4zcHCM3x8jLMV9nL9O+AothCbwKm+AD2ALFsA1KYTeUQQj2wQEohzBE0GcPP8fFdLzkkcdi5LAYeStG3oqRj2LkIi8PxchDMfJQjDzk5ZwYOSdGzomRb2Lkmxg5JUZOiZFTYuQTL3/EyB8x8keM/BEjrseI6zHieoy4HiOux4jrMeJ6jLgeI3bHiN0xYneMuB1zhkuecxlcDiPhChgNY9CPp7O1vs4uQ0cuOnLRkYuOXHTkoh8X/bjox0U/Lvpx0Y+Lflz046IfF/246MdFPy76cdGPi35c9OOiHxf9uOjHRT8u+nHRjYtuXHTjohsX3bjoxkU3Lrpx0Y2Lblx046IbF9246MZFNy66cdGNi25cdOOiGxfduOjGRTcuunHRjYtuXHTjohsX3bjoxkU3Lrpx0Y2Lblx040qHtCetQA+V+FsCf6vBo6rwt3rPq3zdOHhUgMxwHnVyZzmJys6lAnOpwFwqMJcKzKUCc6mKXKoil6rIpWpxqVJc9XrQD56B2XAUGrivANKSdV2yrkvWdcm0Lp47mnFaINmMz0pdIDn0bgMxscbzaTuFynMK2XUK2XUK2XUK2XWKqH/cG3Uuo85l1LmMOpdR5zLqXEady6hzGXUuo85l1LmMOpdR5zLqXEady6hzpY+0t7WSDRNsklo1SQ2ZpIZMUr8ldbytpSZLUpMlvZFGXZWkjkpSPyWpn5LUSEnqniR1T5K6J0lNkKQmSFITJKkJks5wotplcDmMhCtgNIzheecSyX5JXHlUJn+6Ru5vuE8eaXibKDaYKDaGWHMjESygzzbEiFyn6dyGCux2pS5sqNZFDZ/q3xr2kGXGkWXaEWNXkWWu1khDA1mmKz29mSyTS5bpSpbJJMvkYufOaGw4tl5MlulOlhlOlsnF7reSZa4mNucQmy83kxtqiM1rzT8a4vjDMOLPDWSZjmSZdvjGUOL0ThkhyC+D4Xy4AKbBk/AUPA3PwLPwPGyEzVAEW2E/HIRDUIFeA9AZukJ3+DZ8DybDPZAPz+MfREMthu3ougugZ/M1OBvOhaFwHlwL1wH9MPTB0AezCv4Fn4LFLgoOtINM6ADZ0Anoj0N/HOzrNADnZ3B+hqG/lyN5BMkjSB5B8giSR5A8guQRJI8geQTJI0geQfIIkkeQPILkESSPIHkEySNIHkHyCJJHkDyC5BEkjyB5BMkjSB5B8gh+8C7S5yF9BOkjSB9B+gjSR5A+gvQRpI8gfQTpI0gfQfoI0keQPoL0EaSPIH0E6SNIH0H6CNJHkD6C9BGkjyB9BOkjSB9B+gjSR5A+gvQRpI8gfUQuZP4XluF2G1XYduZ0YeZ0YeZ0YeZ0YeZ0YeZ0Yaqz7cy/wsy9wsy7wlRo26nQtjMHCjP3CVOlbWf+E2b+E2b+E6Zi264P221UbdupQMuZ04R1A9u7qHx7Ui+Oor2ByuFG+Cnrd8AD7Of55jHWlwDPYm4RZl4RZk4RZj4RZi4RZh4RZg4RZv4QZu4QZt4QZs4QZr4QpvLbTuW3ncpvO5XfdhlArOlDrOmDlEVIV4R0RUhXhHRFSFeEdEVIVoRkRUhWhERFSFSENEVIU4Q0RUSwWiQooudF9LKIXhbRuyJ6V0TviuhdEb0rondF9K6I3hXRuyJ6V0TviuhdEb0rIt71Id71Id71Id71EcULcsldC6i1yF/yd3JXiNwVIneFyF0hGYt/joNrbKn8kPZH7LuWWn2CPUhcO0heC5HXQuS1EHktRF4LyVLOW8b5b8ByWAEr4W2uWwWrYQ2s5fp3YRPXfABboBi2QSnshjIIwT44AOUQhogNKWNMGWPKGNMcyKMe6wLdoAfHz2aucC4MhfPg6/ANuMQeJH+GmEPvJYeGdDrXzmD9cdZncoyRp4xzarwqarzDxOmD+qJNkIm8ei9Kvg2Rb0No7RDz6L3UfVuo4HZQ933InHov2aqUOfVe9eJQlPMqaavAhSMQhwTn1NDWQpJz6nnGR7T/ZPu/gbiixAkjYGyIXB4yxBXyecggq8mFgJ83DpIVS8kdB8kdB8n1IXJ9iFwfMsM5/h3AbmY8TGDf9TCJ84iB5vfwB5jKvmmALswstom3ZNlS6oIQmbaUXHSQXHSQXHTQLOLYy7AYXuP467AUVsMG9sVoK8GFI5CAWqgD5CNrl5K1S8napWTtUrJ2KVm7lKxdSk0RoqYIUVOEyOCl1BUh5sp7mSvvZa68l7nyXubKe5kr72WuvJe8eJC8eJC8eJC8eFDuIuuWkXXL8OIEXpzAixN4cQKvTeC1cbw2hNeG8NoEXpvAaxN4bQKvTeCdcbwzjnfG8c443hnCO0N4ZwLvTOCdCbwzgXcm8M4E3pnAOxN4ZwLvTOCdCbwzgXcm8M4EHpjAA+N4YBwPjOOBcTwwjgfG8cAQHpjAA+NUA2V4YQIPjOOBCTwwhOe5jMwAnhfC4yrxuAQel8Dj1uFxcX8+9ArtEoiyPwn1nPsRdZcBB9pDHhofAINgMNtD4HyYANfDJPZPpZ0G9AGLJ7B2CGuHsHYICyewcAILJ7BwAusmsG4C6yawbgLrJrBuwnhzDJ6NBRNYMIEFE1gvgfXiWC+O9eJYL4714lgvjvXiWC+E9UJYL4T1QlQ1ZVQ1ZVQ1ZVQ1ZVQ1ZVQ1ZVQ1ZXIxlqWSg9HM4K6lRptgC7FkIVarwWo1WK0Gq9VgtUKsVojma9B8DZqvQfM1aL4Gzdeg+UK0XoPWC9B4DdouRNtH/Gz4AuvMutByX7Rcg4Zr0HANmi1Ek4VoshBNFqK1QrRUiJYK0VIhUtYgZQ1S1iBlDVLWIGUNUtYgZSFSFiJlIVIWImUBUhYgZQFSFiBlAVIWIGUBFdAoZr9XwdUwBn4EL8MrsBiWwKuwCT6ALVAM26AUdkMZhGAfHIByCEMEn+kBV8Kj8Dh4PjaPdj5EIQkfMYc24EB7GAxD4HyYANfDVJgG3AefieInUfwkip9E8ZMofhLFT6L4SRQ/ieInUfwkip9E8ZMofhLFT6L4SRQ/ibaah77SNA9VtnbyewEz0Puo2nNoc1rNQEez7c1Cr2Hm7s1EJ3DGRGhrNrqMc96A5bACVnpvdjn3Xfh3Z6p59LoLdANv1noJs43UzDWnaeY6k30vwBzO8WYjjTNZb0aymH3ejDZB681q6zl+7MyW+TcRvtIMoB0Ebc10J7G/5Wz3Gc73ZryzaXmmmQdo8cvOgInWlUTrSqJ1JdG6kmhdSbSuJFpXtpodowd/hnyGZDtnQX8YCMMlhxlzDjPmHGbMOcyYc5gx5zBjznFm2DXOE/aI8xRzphdttfe+w5nnfQYhuc5L0slZJJ18D9hNe72tlp9Qo1wGl8MVEPNrlpf1Y1ttroKfwZ0wHV7l/ByuquWqWq6q5aparqrlqlquqOWKWq6o5Yparqjlilo5jahS5181kfYn/qytjmhSR9So4y5J7pLkLkmiRh3Ros6/Wz2td8c8W0eEqCNC1Pl3n0Tb8gkFbM+DBcDTiAx1RIY6IkMdkaFOphDjNhHjNslF1MKX2B3UxHV+TTzWllCDlVB/ldDDCD2M08OIXxMvZd9a1t+lZsm0JdRDJdRDJdRDJdqPencAeLXyJRz36uVxbI+3m/x6OVUj1/k18nTOn+nXPSVIFtGlnLcK1qLlDZyzg/WdrO9ifQ+1yj7qnQrOjZGBKmmrwIUjEIcaqIU6uxENRdBQnNqmhNqmhNqmhNqmhNqmhJqmhHqmhHqmhHqmBC1GmFVWmP52B9qMmIG0zBqYYR6inimhbve0G6euKTFjqdHH2XXUNyXUNyVmYrqmn8T5qbres0Dc3MT+n1O73AJ3sO9O9t3D+b+He9n3B9rH2D+d/bNYfwrm4EUF3Gcu7Tza+bQLaF/ya6ASaqASaqAS5gmeNeNmGf303nQsJ8Kt4Xlr7UbqoRJ/PnAGMx5vTsDsyp8X9KdlboDVI+SDTeSDTeSDTeSDTeSDTeSDTeSDTdIBLb+HBrci5RZ6H2UuvZ8nlfAUl6cU8JQS6Ye/rMYvPJ/wqpY4vhDH9qux/WrsHsfmq7FtHLvGsetq7Loae67m7hu5+37sE0fvcfRejc7j6DuOvqvQ72qevB+9rkannh5X04PD6CWOTuLoI55+u3MAGePIF0e2OHLFpYuut6/qPtqwPUBkX6KHqXg/5W6KdjrbA+YcZBpp95pv2nLzPbZ/DLdy98m2zPzDrjJvc+4a6SzDkS/CeIgyHmoZD1H8v0a8OrwffoWP4N9RfDuKnBH8OopfR/HrWvw6irwR5I3gx0fw41rkjuDHR/DjWvw4hg4i+HANeijGR2vwuyg+F8XPvBhRgw4ivvYZb/hWFL+K4lde7KhBHxH8KoZlYviVN9Jr8KcYvuSN+Bp86Aj+cwTfOYLfxPAVL87UYMEoFqz2PlNFd8X4SBT/iOIbUfwiKjOxaZ4MIMcQ64U4LxfARfYAWjiABvbLnzg+BR6Eh+BhmArEf3kSnoKn4Rl4Fp6HAq57j3MK4X3YyL7NUARbYT8chENQgWYC0Bm6Qnfohx0HwMV4zKXwbfaNpmr6Hu049t/C+mTWb+fYHaz/Bu5h+17afNoH2f9nWMq5b7D9FvtXsf4u7XrppkW05F7dDjvYn4oy+I501WqOfYJ/ZEue6eJ94kh7Fm1/9g2Er7F+NpwLQ+E8GMv+a2mvg4ms34A/3Qg3se5Fg5tpvYhwK+1k2ru4593gRYT72PcA6+jZPIJPokuDHg169CPAQo4v417L7T6zknNWsX8N2+9gYXRs1gF6NluhBLbDTtgFe+BD2Av74SAcggr4F/f5FCy5VIEawGkHmdABsqETYBsH2+A5+/Gc/XjOfjxnvzOIfQ3A9Rlcn0EdIefJKYybixgzZLF0TkngDQksWoNFa7BoAosmsGIN1ktgqUQ6LySwVo2+ZeuxVA1jKOnngiK2d7C9k20vH+zzx00dlqjz4/NYtifCDcwKbgQvDt/Ethd77yJeeLF2DnPFuTAfvBi6DM0th5UcX+NpkUrgdGYQZ0I/GECfb2JcBNLRIEJcyEWSCGMhwFgIMBYCjIUAYyHAWAggYQR/D+DvAfw90CJaeJkwgu8G/IhxC+3ttHfQ/gbuhQfZflhy0UDEjyBvse5HEeqzdznu/Y3FBvYVgR9R2L+L9T22wo8o+9FKhNhXzbnUvPhuDN8N4LcBNOVltYgZJbnp6BJNRxcva0XMT9mfiiwV+KgXXSrwUSIM+++Cu7nHvey7j30PsI785jH2z6G+mwvz4SWOL/QiDvuXca/lsJL1VMSJ4qO5+GgAHw3gowF8NICPBvDRAD4awEcD+GgAHw3gowF8NICPBvDRAFbxspmXybwsFpGhWOQQflWBNbz3dGE0fQhNH0LTYTQdRsuH0LD3Ti6MX1Wg1TBaPYRfVaDVQ/jVYbJFOb5VgW9VoNFD+NZhfKtCq6lAs2EUEo2lBpgIN9gwmgrjVxVo6hB+VYFfVZi7Oe8x2jmM2LkwH5awvRLWcP57tOuoVE+3YSQII0EYCcJyJhKUI4HX83J6Xk6Py+mp18tyehmml+XpXh6kl2F6GaaX5elehslvYXpaRU+r6Kn3aXQ5PS2nh2F6WE4Pw/QwTA+r6GH4mB6G6aHXuzC9q5KT6E0VukyiyyQ9qqJHVegyiS6T9KwKXSbRZRI9JulhFb2rojdevq7iqVXoJ4l+kjy5ClmTyJpE1qTjvV//BtVknGoyTjUZJ5MmqCDjVI5xKsc4lWOcyjFONRinEoxT4cX9WRnzfqq8OFVenCovTpUXp8qLU+XFqfLi+PgRsmeCCi9OhRenwotT4cWp8OJUeHEqvDgVXpwKz6sy6vzPhoazfhXR4Tu09IcqLk4VFyezJsikCSq0OBVanOosTjZNUJnFqcziVF9xqq841VecbJrAn+NUWnE5vcVnLvXUQvXUQvXUQvXUQPXpz1zqqYHq6W0dNU89NU89vamn5qmn5qmnF/XUOfXUN/XUN/XUN15tU09tU09tU09tU09tU3/Cz18M+tpIbXNEOhIBuvGsakZ/tR7FC8aR82+GW+E+WAjU19KRnjPz83vp3d377LWeu9dz93ruXs/d67l7vVx73Jut1N9GJdp8o9XW3zb9u2+zWv+dUsJ/e+W9tXrcfy9a1fSGyvt7Iu+NVOpvhhLHvZHy/k7IexN1jv83Qq3fRrV8E5X6G6CE/zdAX/It1Of8PU7zG6rU3+MkmIVWMQs9zCy0illolcyV9sw5s+HbSD/KBtF4EI17n4d3QutB/234j2gb3zcguSyAl2Ah/BUW+VYJYpUgVglilSBWCbb5ZrzxPcQ6rlkPG2AT534AW6AYtkEp7IYyCME+OADlEIaIDR7zFjyYficRVLxFx0snrBbEasEW7yVKda59BQuuxYJBXWh3+m+wsT6+/DLWDBLb/u6/sU6ynnpHEcSqQawaxKpB4t7f0+8pSlu8pwhi5XKsHDTDJAdLB7F0EEsH/fcVd3PNH7HWFN/yQSwfxPLB9JvnYOrNc6t3F0G8IIgXBM0bbK+A1ayv4z7ozODNBm82OwCPNni0waMNHm3waINHG2QyeLSJ+F4UxIuCeFEQLwriRUG8KGi8v4Tw5Dvxm+ogXhTEi4LpN9XBNt59dHIug8thJFwB+I8zBr7Iu49cP354lS9+TQxJGEWLXgU8jvWb4VayuVex3sf6Qj8SJrzKEy8dJTlyFVztvR+DH8HL8AoshiXwKmyCD2ALFMM2KIXdUAYh2AcHoBzCEJEc7QFXeu+44HGYB/O9T9jlEo3SVktPTdLWkck/ov3EfmwMvXegvS9FTzOYdojnF0C+NRNor4ebOfdWsvrdnHMf61PZNw14lnkOFrLvNdrXYSms9v/W5xCS9zQx1ivBhSOQgFqoA/rhdIQcyIUuyJJFD98kB2wlI31IL37Ak19gTpswK6hB19rvSN/0O6GE/06o5fugxndAEXKdlx+rycapd0EJxkPymPdBifT7oFRuu5vj0/137S3fCWE9/9P+1u+FvOxQSnYoJTuUkh1KyQ6lZIdSskMp2aGU7FBKdiiVM8Tr7/fhB3CNzZf/ZWf4f5G8jPU3YDmsgJU2nziRT5zIJ07kax87Q/vCGXAWjIU57F8MCZtvMu0MxnY+YzOfcZnP2MhnbOQzNvIZG/mMjXzGRj5jI5/xkC8d8O5avLs2/TeCtc58u9ZZgJe/ZN93FtrdziK7RgxbR9iqZ60x9mayFmctwRVvpa9Yzjk7uWKpZLD3CHu8vzlz2VPp7znMnir/L9EWUYV6e2r9c7gze454z0mPKSMz0v/p2J5F/ffJRrqyZDC3+Jq0k7OpkLLlIrlcesi35UrpwxgajTa/w3IGuv0+1eJY+aGcJeNZBsqPWQaRByZy9Q0s5zIfmSpDZJo8KxfIbCngLvNlEfd4hRH3A1kqK7l6rWzkms0sP5MilptkK8v/lhKWn8t2lptlJyPvFolKTO6UKpbfSDXLXRJnuVtqWH4rSZZ75GOW38knLL+Xoyz3SgPLff4/aN6vRo38QdtrjuRrQLvJw9pTe8pj2kt7yXTtrb3lL9pP+8kMHaAD5HEdpIPkCR2sg2WmnqPnyCwdokPkSR2mw+QpPV/Pl6f1Ar1AntEL9UJ5Vi/W4fKcjtAR8qKO1JEyR0frGCnQcTpO5umPyDnz9RZmWS/pL/R2Wah3aL68on/UqfKm9/818o5O1+nynj5OJFmnM3WWFOpT+rS8r8/qs7JRn9fnZZO+oHNks87VhbJFF+nfZIcu1sVSqq/pMtmlK3S1fKhrdZOU6wdaLNW6jTlZrfdfN/KRlmlI/qn79LD8S12WTKU+0SytZemgdfpP7aj/0qNop8GIdjbGONrNtDPttYfJNjna0+SZPO1lupnueorpaXrqqaafGaR9zPnmfD3TjDT/oWeZUeYqHWjGmDH6NfNd810dbL5vvq9nm7FmrJ5jrjHX6LnmOnOdDjETzUQd6v2fjw4zPzU/06+b28xt+g3zX+ZOvdD8zvxOLzH3m/v1UpNvpuhw87CZqleYaWaa/od51EzXb5mnzTM6ysw2s/Vq86JZoKPNX80iHWsWm1f1GlNoNup4s9ls1utMkSnS681W87FONJ+YT/Qh8y8nSx928pw8fdLp6nTVp5zuTnd92jndGaTPOMOdy3Suc7lzhc53RjtjdKEzw5mhi5yZzkz9m/Oc87y+7LzovKiLnQJnri5x5jvz9e9Og9OgQQaW6j/EnPRrb4RlTgv8mpr8VBH7pJ1qt9hC69r3qFG+xI8dL//mj53atFYH9ZZZhP2bfcuSZa2X7TrbjdLF/uUL3KkCYrDxmP3Jz73y0Jfob9Vxz6yEnentg01HnrOV9vBxV1en4Kdb0744c/MT/3Rpq7fMh1M/nVnr7PXEWz/meZXyf/FjI/awL+HBFvsO291N6/Ob1tY2rjUEidHNZ69pqLab7Fj7X7az3WF//znPuwubJ9u0WCBlV7vHf8bb1vs7KrEXNV35D/sX+4KdCY+ijTx25XFNnp1rV9h1djNn3G/v5Xd//+yeNs8m7Ov++jK7ze6g3db6uTZMtmvZt9P83x+22LPT7vc0k9ZObksbt7ryQf/3umN1m/IlG22+2lb59+rs27Sk6cxtLa6aZ5fbNXY3rMcPOtsCfKMz42MPY7a8xXnnkEPFfmDJz2kv7JR+XlXq2c29TXvOZ9lk1QmO1fy7owo7+9cyD2/jnq01/6U8tvYEx04YB+wz//Yzf3siDVGPem2izTiCn2JLLya4nzPmH2xjPNT4Y+UzbWB3+b+fbPOY2+Yzv4i0ibak+dyrRtiz7bfs+TAAj8pkVyY1XKYdY++wD9knOCNgcxjZv/PH93+yXWJvbRlX0tEFz7AbYEmTH0Ubtdncq1QGsC/Zx+0q4vAqRvjhJn2mW7sJ3vLGRsMv/e1HvoyGmmNgq733nEADe5vW9hw7Fij/8pza9PdvfJGf9Dd/UBmLr8lMyZIOzD8yfa1mp89i1uTNTr04eExe6EKM9vJPd3+rR9P+Hiwn+fG7Z3rPydCL36fI/6sf02LxvumkfXrJTC/tfBoX76fxH4rz0n1vXrws2j29SAspTmpaWv6cjGQn89QuTWRwfUu857Xz5xzdj+PYn8y03jLbINVrwSbif/NLaxqvbiR1n3b0tpHUT88WtP7JaUHWZ5Drx5eTfduf0sTx1uhy3J2/jC0lbbl2aet4ntmb3+15WsqWHdjK9LXiaTbbf0ZeKoL5esg7xgdPbrKitNrnaaVrm71oaeX2/pjo3WJcnOpVtr4l+rDt9djxj7f3e5DpH2v0PK9/GfSvj9+/RmuemqY5epzmj51ebfQjNa48T2s+2tcn1feUp57W4qq+/vGWkp+a3mM+U+8nMa5P9vkyP12R+7S0bjz5Uj3scAyZx1zljYucJl9qvq7leGseE8cezWzRZjaNO0mPMUlz/D2lxThI6bUPz29EfBs3avG0Nq8/sd928Udebnqc5Kb3fRnaihEtafSeluP6WNry48bx29ZPygbNtPvCEutxrcpXP/9zPxm+J7RD6+2dT1voXluMopNbxbwTR92sFllGWnh/o/ec4tcD3lszL1a0ziBO+hvGMtL9ah5xXkXRzt+X6Y+KgD/OAukYfeKfk79g31tm/7b9vPkrRLz1jumlU7rvzUujFBnHSNG+aUnNrFJLwI9dXn5qJIvrWtKsjYzjOP7cE/98Xjxq10RjjdO+Ba3vfwrWaEmHpsrCqydy2yTHn/EFfNvnNdGo34ymmOc0eU3jneVLVKHNFuvUYo9J1yxZrc5qtnWnFjm7U3pkeP3JaKoKpFVkC/jZQpq+Fy+3xbFcjuS26lWHFs/q5de9HdKZt3VGbY6+nVv0z6uju6ePdjlOYqepbxl+Hk3VqF2bRk67tAze0XZ+PdmulbUz0tJmNOXFrk1eEDhmPHxW9vc8JJuzPVLeKK3atjytrQqi93HHO7TqqzT5eocmX0pd18HXTbcT3LWzX+2k7pQ6s13a2xo9ruXYau5L8/Mbx0FW2vJejdBI8x3bpfNr76Z7towFnVv5uzT1LNWHdq2q6JZx4YvQVoxojbQxrtsfN86bSW03jl9pg5QNmsn6nHh8sh+TvUzfw/+tTfmlcc7xVRXwP/PTmMuyRPXP/vjNw4ubv9ft+O90a/1tbt7nW6PkavmOjJVxco38UMbLBLleJspP/s1veZsvC+QlWSh/lUXysrwii2WJvCpLZZm8IctlhayUtfKOvCvvyToplPXyvmyQjbJJNssHUiRbZKsUp78brlR2yW7ZI2XyoYRkr+zzPwn7rO+Hy9Qs7aAdNVtzNKB52lm7aFftpj21l/b+jO+Iu8T/lrjLdIReriP1Cu9TKx2n41t9X9xnfVvc/Zqvf/S/Ke5h/zviputMfdr7jErn6mJ9TV/XZS2+La7xu+K8b4rzviduU4vviGv8hjjv++HKNKT7tFwrNKoxTWitJrVeP9KP9ag2qPU+lzLtvE+kTJ73WZTpafqZ/maAGWgGmZHmCvNN/9vkrvK/Te77/vfJXWeuNxPNDWaS/51yPzO3mf8yd5g7ze/M/SbfPGD+aP5kpnifL5lp5lHzmJnufbJkZpsXzRxTYOaaeWa+WeB9tmQWmyXmVVNo1pv3zQaz0Ww2RWarKTYlZpvZbnaYnabU7DK7zR5TZj40IbPX7DP7zQFz0JSbQyZsKkzERE3MHDaVpsq4ptocMXGTMDWm1iRNnak3H5mPzSfmX+ao+dQ0GEsppo5xHCfDaee0dzKdLCfP6ep0d053znDOdM5y+jn9nQHOQGeQ95mVM8K53BnpXOF807nSGeV9cuU0eJ9H/R8flETAAAAAAAABAAAAANWkJwgAAAAAxPARLgAAAADQ206O) format('woff'); font-weight: 300; font-style: normal; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAXukABIAAAAC1YQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAF7iAAAABwAAAAca2+GzkdERUYAATs0AAABKQAAAcJgmWLBR1BPUwABSVQAADIzAABextV/BklHU1VCAAE8YAAADPIAADE4t8bUc09TLzIAAAIQAAAAVwAAAGChC7FDY21hcAAADNAAAANEAAAErjOWwQZjdnQgAAAR/AAAAFYAAABWBJcrSmZwZ20AABAUAAABOwAAAbx7+WGrZ2FzcAABOygAAAAMAAAADAAIABNnbHlmAAAb/AABB0cAAeeI0o9S9GhlYWQAAAGUAAAANgAAADb4uqsKaGhlYQAAAcwAAAAjAAAAJAs9CvVobXR4AAACaAAACmcAABOIrRqYNGxvY2EAABJUAAAJpQAACcYiqqWCbWF4cAAAAfAAAAAgAAAAIAcPAohuYW1lAAEjRAAAAo4AAAVepQj8TnBvc3QAASXUAAAVVAAAL8VAoh+ncHJlcAAAEVAAAACrAAAAzBux+DYAAQAAAAIAAC0OtI9fDzz1AB8IAAAAAADE8BEuAAAAANDbTpf6Qf3VCXgIcwACAAgAAgAAAAAAAHjaY2BkYGDP+cfDwMBp/svxXw5nBUMKgygDEmB5BACCAAZEAAABAAAE4gCPABYAVgAFAAEAAAAAAA4AAAIAAaEAAwABeNpjYGZpZPzCwMrAwDqL1ZiBgVEeQjNfZEhjYmBgAGEIeMDA9T+AQbEeyFQE8d39/d0ZGBkY/v9lY/jHwJDGPouJQYGBcT5IjsWKdQOQUmBgAgCznw6UAHjarVhpdFbVFd3vvXvfFz6MkBoZREFAoBANkYTBRNCKAUQMLBRUEMWADAYaRMGpiBNiKAlqFaoMiisGHEvpUstqEQEFG5ygRYpFXAxqqyi1RVjIcLrPzXuf4atZ9Ed/7HXedO8995x9hvuC+RiLJOAdBmLpt0FPvwpLzUYUmVtxiV2NVy1wnjcCj/hrMMHfII8Hd2C8GYXe3hqp8Oejh98decGZMpPfjyb2E42JjkQjYgQxhniI0Dmr/JbI8XbLU8FRdDOlKDXZ6Bp8iCfCI+hmC6Ta7Ecn2wo32TPRyUwmruD9UJTZSnTyi9DdXIvAfMPnvdEp3Mp3c4lxfA8nx5rdfLcK55g3sci2xEjbBAvDnXjd/FvWm7e5t9fkM7+L7A8G4CXKu4KRuDSYI3f6c1DLOduZCWhqzkAvU0Z9C1Dk1+IGM0UOcd1M36KNd1ROMc2RpdfhJn47EplmGi4wE2Sjmcrv3+KzxjjTf5rjR2BgsAtj7fu4PfhWVgWb5VXKL/xq5HnHcLZfLU/abhjpbN9CPjc3YZBZKAftL5BBXYd4h2Sf2SE7gtuwOWyN64N78UbwPi4zw3Cv2t4924j9/jHsNflo5f8Dw4nx/qN4xyyVT4LtmEGbLfGT8mc+3xU84cb79mWsCkP8NszD/OBD2aJ2/zEkhsls9YXzQz2oH+rDFoqk/JAGcx7a27E43fmiHpwvfsP5NqGVs/uPIFyAJs4XBXW+iOFno119mEr0S/khHXegtylHF/VFfagvzD3ynkrHO673X1L3zvUblOSo9VCk+zcV1E3tU9CgvDC+Vz4rpxqU5LryzVYh19yOHGfnbGRHsk0k2/lFUuVbmR7fh48zPjy00Rjxz5YmLk7IVTMTbTVelLN1Up51cmF0v4tyENr6/dFG/ai2TJfueira05ZZzq+0bbpMPIAhiUxcojHo4sBJWZS617hkbDQoGbMublRujOTTstvxhT77X6XGu8accsz5OYp7jb106YdobSeghHoOtBM5fhZ62AcoP8JAtWHMBY0F5aNy2fEpTWdn7w7o4a3CnGCL5wdLvMzgHewPynDct57vL8P3frEsD97CziCLuWeMfIPksauIbUgePUj5EeUa4hl/mJfLuf6ua2v8ms3yhv1WNtAWtfYutLCd5Ro7BGf5z6BxnDOZk3PtYnnBcYx7Uw7ZEbje5UzywJ4hK+N8SU7Bxec8joHeyw7dh9rJbsJQzZW2AtPshWjkxqv9ytDHDMBP1f9c9+e8vto9e5F2PExblzNO9b3FOP3GzMYk951yb6gsd/mIuTA4zjEal9swypTLJtOWfr6dY5vXzcnc1E1zpV2Gi8IyXMU5Brm1dAylPjNPYogZg8nhQD6PcpL9GI86GxSyPtE3cW7SWMgYIrUZVyM3LMAzzhazOeZrLOQeOzj7fUVexzbcLQ/qfIlb5DnzB3Jjdt33Nsl3D0uts2FllOsi+7l8oPbjnGEvDHf228q5J+DtRBlyEhuQY79DRfge4/lL5sPzMTjRkfXvb7LC5bqb0NdMR7tgIFqYj2WW5oiwRF5mLDej/Vo6DOd398ka+ynlPbxXe+hzrTvMRbTtlS6XrUBvtZ/5Pd+VYEo4Di3DtfiJ+R6DwwEcO4TogPbhdeTvNfJaKq8y37j1O/Ba6xdzheYUrXfhMlkdruJ8U5gHVA+u6+KKMtEKo8POuFT3ZQajLet4jv2E3+6XV8wAWZTIRp+wKfLCdci269Es4zt0pz3amaS8EOygvsoz+ppcLSVvephjWO74FMlGPVGW0Y85ZoTjVa9Ec5Sy7l2eWvcY7Z2PYrMHvRg7nzOOTkXyeA5xIZLf/4wod/5WW0U6moPKGdptKG0+j1wdJUeDgeTiYvoniSz1vbM//a8+UN/rvu2pHP8o2trW6GlyaddJqGaumOTyNX2SWEIuVCArI4tcq0VWaMmLPbg8rhfKEfWTy0uHo/x0mHwmX9RnCYPFjOvhyhv1nb0Kq5h3Z9nx+MLVA6GNlsuBWCq/Y12toW6jqRs56nhSSZ01V0e6xXM6/n6qtYN1O63exTkuVacmYIDmtFim28XMRVczV/4Z2zcl47oQ+TQlyXvlnsaJ40+ajHXUOFQuarw4zr6E/KAv+8nITin5JfK0Tws3oDhcif7huXiBvrqRueEx0wlzE5WyM7xNdiZq2StOY1/6BXNJM/Smjx5h3N5qe5A7zFkpm0V2UBtpbxfXkXTZYL/wf5In6SNOKuv1B8Jav7ehen1SGdfDk8n0OhzVz5PJ+vX5x6R96fjvAgESB4BY+q8QhueV6wAzjtedef00zzBb684x/gKeSQjbGIvCJO5XBL+UEm81XtHa7NVKtfcc3gtCvB5kYoF/RJaaYkw098oR/00sCT5Dvp2FfK+MfJ+Oxe7swzORPxGj/NFy2PRBT54XdrGfHhMMYs26gucK9uzhZcgMq5CTMZK14xp0Ccey36mQAzzzlNjN7Ila0z8Po6m9iP4YJZ/btVjHXvz8xGHGwz58bQ5hRtgEr5HH94fL8HB4J15l71psp7E3e0OWmZtZX36NgowmuMzvKM3pnzw9PwVHZSvPUM2DQyj0r8RE6jrO2ycfmCpcbp7FDeHBOqhtEkfk+YzuuC7VZ8Y9XhrvyJs/+dlyT8yDqH9LxP41G+UcVy95VnLnNMZgSka9a6r3jGVd37k3jq3U2tp/aA2r6xV3pvdVen5zZ6hIpnq7qH8LWmOfOc4z2gHus5J2eEi2mTG0Vw0KVQY1SJoeOI95JYs+OJW6ZDMf5zIfZ7ua3pHXS+mbDjLbX+aFZjWS9G0+kUG0J5oRfCbfEgeIPbyfTDQ3RrbzrNbXdmfOeoccrcGv7B7MZf6ZQltcwFxX6tYspg41rBnDnCw065C0u5F0ul1KuU7+5R1i7V3P+7m4KFjJZ+/yupQY7/qepJklCz3BV8E8zwQHsYM4jfgrsc09m+dZlaYffdkBk3WcncL1z8Iwcxe68AyY8FbISpMtHyU6ytpEZ+owne//yLmvZR9ZKA+E2fK86YpTuJfGTucVspb3U20fXt+KUewZkrR/0hYxho/wm8HEeJwW3sz35bLFnCLfhTdzjgd5f4zflaDUvouLTV/q87xUs16W6jxEkv1aT/M6Ctx6apMSmGAPWmd4HPuBbGe9aGo68puZKAoeQzX7yQJzN3nyUNSvTEEe60q5vQ+3kKe5djX1XIOp7D9fNBPRxtn2YplpqmUzfTWHGEvMICqI+cTdRI25Uv5iWpCT5dThKfQ3H/AswF7e4XTm0NNlhkrng1JZ4KB+pT8aBG2v/qsP9W99KAfcvtOhvFmI27jfquj/SaPof0pj9y6G+jhtzRNQeuL6MZRfJ2C90y3zB91kjkrlpONmzYlweseor7fyJYZyvj7UXjHq7+EHFLq40T0pyNEUdG8ZMtmI3OHny93k5BZzo5xrtshu925AtC/9tm4vLVRvjS+nl8Zc3dqTNTbce147e9TU6RrvPd6zcj41d000P2PCzbk+mpd5ws09PopzjbuuzHvr3bNCXcNxXGNJY0jzRHqezZa9/wG8ngHvAHjazdRbUFVVHMfx79r/AyqYCASi5nadjaBpqWkpKKIIXihQylLhKGJoFw1JpVFrvKYGZt6mi91R0IpMhKGLhjWTU009NJMPTTNpefY+z00zXWYqz94tgZx66bn/rL3WrNkvn//8f3sDQu9zE8rsWK3mpnruIavRnK+xg0Tsa6+4gW1quzqojqhj6oz6SQXWcGuqVWl1W59bX1iXrZ9FicgASZFs2Sf75Zh8JRflm9DehHRb2TPtPfbvI8t1sk7VGdrWjh6tJ+rJepou0CW6QW/XrfqU7tDn9PlwQjg9nBl2wrnh8eFqx3ISnRQnzRnm2M44Z75T46zO+fJH67cLf4b8IIgHAfT5NM09vmbVbnx/WFl9vs+M71vj47pvt/EdkBb52vgINdrYhfYOu9n40IN1uh6itc4xvkk6/7qvRZ80vrO6+1++SJ8v9R++VcanjE8Z31XjU6jg1yAWXAi6gs7gRHA0qAwqgrxghH/Vf8k/7B/yd/l1/kq/xo/4i/3iuBd349H4lfj38e/infGO2KexplhpbIJ3yRvr5Xo53igv2wt7Q70sL91L85LdS+5Ft9097ba5Le5xN+IucMvcoiu17hQ3KfrgD/XRSLQquihaES2JjommRgddbstoGNjVf1Noq+zsnfv/uBKtpGuH6lk9Wf27lJk5fbP/7+rtMUSCyXI/+jOAJJIZaBIziBQGk0oa6dxIBpkMIYuhDGO4+QZGmOSPNKkK45DNKHLIZTRjuJmxjOMWbmU8E5jIbUxiMrdzB1OYSh75TGM6BcygkJnMoojZFFPCHOYyj/mUcid3UUY5C1hIBXdzD4u4l/tYzBKWUkkVEZaxnGpWUMNK7jf+p2hkH/t5lhd5nVZaOMEbnORN2jjF27zDac7QTgeddPEe7/I+Z/mA83TzER9LMRtZzQOskTls4TjreURq2cRaWU8TL8s6GmSDbOQhNsvDslbWqGapp46tqom3+JBdrKJe6lSJPKoeYx3bZB61PMlejqoMlSl5ki+zpEgKZAbnpIFP1HRZKFVSJuWyWbZICY9LocyWUvbwDLs5wNMc4jBHOMjzvGA6fI5XzR/nFX5RS1Q1G1SViqhlPKFWqOVq6V/QjwzBeNpdkL1OwzAUhW0SoOVHYkSykGxFBTWyxc6UIamEugTSwZeBH9FKtBMvgJQBpMgDz3KypVsfpy+BwE2hAhYfn3PlT+caTA/RzW3N+Ts1/PMNryd1N7i7NeBaymyagt8bbGnwWBkEWg4Q9AbXNiLppLscOzmQTw9jhL1W/WDi6FyCFXbqz5FVSEhsrhOiC4NwhQlbjCMPmH0DZi3Av/8w2NZDieA0t1cWZSqQpCSUkhkWucUiFYrIYGfT0evL9HjddldjJzborAmFRSLAyLm1ixRK54TzG/z4xV/fcPY/SH4H/geyhpd5OykjJVZBpCLlG1Jq0NXDwma+ovIV9zT6mcG+RuzlQNdnvJKusPOEheyx6bBqZOesHyyfSSDycFk1R2yTrbY81EiqRrIbW8csFXMWB8uUzBfFB4kfAHja28CjvYFBm2ETIy+TNuMmPkYguZ3PykBVWoCBQ5thO6OFnoqUIJC5ncnPwUhZFMRi9rDWUxQBsVjgYqwGGvJifCAWW3Kgva40iMXuYALVyxHtZaUpCWJxNqf4WSmDWFzlST5miiAW98TyGIgYT1mCt5ksiMWroyIjwgNywiZ+XnagExVcazMlXDZtEGYs3hQgzFiyqQFEFAgzlm7ilweK5cszlgIAN3Ys3AAAKgDMAJEAngCRAOwAcgCyAH0AVgBfAE4AYAEEAMQAAAAU/mAAFAKbABD/OQAN/pcAEgMhAAsEOgAUBI0AEAWwABQGGAAVBsAAEAJbABIHBAAFAAAAAAAAeNp1wn9U2gUCAHBzZGZkaEbGjJzzByJjiIocQ1KmyMiRM8ccI3LMnJGREWeMOSJkKIicmSIiOmZk5pTzEJaZEZEjZ2bkzMg8I/MHIrAvutfz+fZ8d3/df/c+n7CwsMr/6QubeYT6iDtcfgh2CHeo+lD7IeehICgalAoqBdWAZkD7j5Y/6oqARkgjHjyW9NhwZEIkIjI7khEpjjQ8Dnl8NgocJYpaegL5BO+JATAEXA6uAw+BHzwJe1LwpDkaGl0dPf8U+injUy4IFEKFaCGrMXEx9BhBjCrGErMcsxcbHzvwdOzT3Kfn4+hxA89kPyN+ZhIaDa2ACqD+Z4nPauMj4oXx489hn1M+54ZFwipgBtjaYfjh2sOyw/MJ8f/FSJh4HvG85vkDeCLcDt97wZSISMxOLEtkHoEfwR0RHrElxSepk0xHw45ijpYflR+9nQxOjk/GJpckVye7k4GUyJTEFGwKJYWZYk+ZTVlLeZgal4pIzU+tSK1LlaXupIHSEtLQaflpZWnVaf2IRAQeUYqoQUgQWgSQXp0uTtekD6c70pfSd5Bu5BryYUZcBjKDnFGRwcuQZ/Sh4lFoFAXFRglQSpQetXes/pj6mOGY+ZjzmBtNRNPR1WghWonWHwcfnzw+d9xzfAcDwkAxCAwBU4KpwtRhVjKrM8WZbZn9mZZMZ6YbW4L1Z4GyoFmILEJWSRY7qy5LmqXOMmSNZ81ko7O12UPZk9kL2f7sgxxITkIOIoeQw8jh5PByJDnaHGPOaM4BDopD4wg4Co6Fq8UJcTKcKxeSi8gl5FJyy3K5uQ25qlwvvgTPxtfhpfgO/CB+8m80QiQBRkAR8IRCAoNQQxARVIQ+wihhkjBNWCL4CXsnQCcSTiBO8E6snnhAjCDGE5FEIpFO5BDriUpiX15UnixPn2fJm81bzfuLFE1KJeFJNBKLxCMZX4S+KH3xIJ+f7yrAFVALygsqC4QFyoL+gokCZ8F8wUqBjwwjy8ht5FnyA/LDk6iTZSfbT9oLIwtJhbJCY+FU4VxRWBG2qLyIV2Qvmi1aKPIU+Yv2KCAKhJJAwVIIFDKFS9FSDJRBymgxoZhcTCsWFkuKm4tniuep4dQoKpVaSq2gLlJXTpFOmU45Ti2e8p7ap4FpcFo2zfYS4SXeS0CJtMRzGnN6/LTv9A6dTmfQ2fRF+srLuJd1peGl/NKJMxFn6s+Iz3jKWGV1ZdKyjrKBsvFX8K+0l8eWI8tJ5QPltrOks5azk2ddZ90MBmPuHPIc+RzzXO254XOWCkhFfEVihahCWgGcF563nHeen2PCmElMJBPLJDDJTBqzjKm9EHch4UL5Bf2FZRaCJWP5XyW9amPT2ENs82uY18yvLVVmVxIrhy+SL4ovtl1c5aA4Qs48Z+lS1KXYS9xL2kuGqvwqapWkavr1yNdLXx+ujq3mVC9e5lx2XF667K+prZHVBGv+qjl4I/YN2BsdXDC3nqvmDnDHuXtvct9crC2sNb9FemuWB+Nxee63qW/b67B1U++Uv7PD7+cP8c3vYt41vLsmQArIAqagWsAXbPydUY99L/I9rRAhlAs9V+KuYK/UXpFd0YuEIu9V0NXEq+qrBw3MhsVrEdcw1/jXLGKIuFJcKxaKZeI2sV48+H74+8z3JyTxEq7EIZmTLH2A+ED0gUdKkG40ShvVjbrGgUZz40SjQxYtY8u4snqZ/XrE9djr8Ov1151ysDxOrmlKbsI0EZsKmxhNNU0zzanN2GZSc78iTAFWxCuSFRgFUUFVlCo4CoGiWaFXGBXDCpvCpSxUligrlXylXKlTmpT2FkSLsqW/ZbxltsXT8kAVoYpWQVVIFVFVquKoBCq5SqcaVtlVbpVfddAa1QptxbbSW9mtvFZRq7zVo8arVeoO9cE/tG1xbaoPwz7kfbjaXtbu/Aj/ke6jnY6SDmMnshPbSeqkdTI6OZ2iTlWnsXOyc6HTrwnTxGkSNSgNSVOqqdFINFrNqGZa49HsdUG6UF2ULnZXfZeyS9812uXoWuzyakHaRC1Ki9fStCwtTyvRarWj2mmtR7vXDelGdOd3s7rru5u7dd0D3eZuW/dM93J3UBehg+twOrquWifWaXQm3YxuTfewJ64H1VPYw+oR9Kh6+ntMPRM9zp75Hp8+XA/TY/U0PUcv0rfrh/R2/azerQd6I3pje+G9mF5yb3lvdS///xL1SntVvZpeQ+9k70pfWF9iH7mP3sfsU/e5buBusG7U3BDeaDc0GFQGo8FuWDH4DAc3Y2+yb3Jv7vcbP87/uMQINyqNxk9Qn3gHSgbmPkV/ahxkDE59xvlsagg9RB3iDDUMaW5BbuFv8W8pb9mHK4cHRxJHOCP8EenI5IhrZN8UZ5KZNv6pHkWOIv8FmJnmWrPYrDGbzE7zivmvseix1DHSGGOMNyYf6xu7PTY3tjS2MbYzdmCJskAtSRa0hWApsbAtXEu9RWpRW3SWAYvZYrO4LKuWoGXfGmGNtcKtSCvRSrcyrdVWvlVsVVo1Vod17jbzc8znDZ+bxlHjnHH1F5FfCL54MIGfaJiY+jL6S/mXB5OOr6Bf0b4at1Ft9baVr6lfq+0gO8sut7u/SfhG/U3QwXTwHTZH8Fvst+xvF6ewU5qptTuUO5I7C3f2nfnOeme7E/iO/Z3uO880elp1N+Eu867o7vQMZIYxY/ke+b3o++XZsln97NwPtB+Gf1iaq5rTzA3POX7E/2hyRbioLqPr4U+in5bnYfOC+fF74fdI9+T3HAughcqF2gXbz7ifpxaTFmsWgV8qfnG4EW67e/bXxF/rfp1aAi9Jlny/lf7mWq5Z3vl3xwp0Rbay/Dvld/rvox6Yp/mP8D+Uf/hWmatDf0L/lP9pXoteI67p1tbW9tbB6/B17HrhOmu9bn1h/eFG88b+ZsVm5WbNZt1mw6Zsc8cL99K8TC/fq/QavGav07vk3fDubEVtJW3ht2hblVv1W+qt/i3L1uzWyhbgC/dBfWgfzkfyUXx0H8PH9tX5pD6Nz+Sb8i1u07ZZ27xtyXb79uC2bdu1vepn+Gv9Yn+bv99v8k/5F/3BQFgAHIAHcAFyoCJQFRAF5IG+wFDAEVgIbAT2g+BgfBAZJAbpQWawNigMqoO64HDQFnQF14J79zn3Rffb7vffn7g/C0QAsQAcQAI4gAzQASbAAbgAHxABUkAJtAM6oB8YAszABOAAFgEvsB8Ch+JCCSFMCB+ihVihqlBtSBBqCKlDmlBfaCBkCt0O2ULO0NwOd8ezS90t3WXt8nYlu827HbuG3eHd8d2p/wD5xsWgAAAAeNrcfXd8FMX78E7Z3Uu7u9wlufR2KSCQAwK5FEKvCdJLCL1LkQ6hSu8gRekgoKCAoMcaVBRBqYKooYgtYkMRBRRFQJLbe2dm9+52k+jv934+71/v1y972b252Wdmnnn68wzHc8M4DtXiXRziBC6AC+ZM3Hgp2BwaaslxBZtdXBm9CuwawK4hZZyLa1Pkgo6YwzChaR92w5EbztS0j4QhR34p8cqHqHwY2IcrsFwKVh6EKA+g2WUsr9+gNghNQqEBIBSgJNAYJKFa7ibwdJZ8V34HBN+ASJYBdLt51+M9vOieA0sqQuF09wA4YBkcwEHO6fkdJjL4jVyeBE1mteegmuAMJjfBFE4xJLBOUdIXMff7uECZCzjqNwB2ayZolOXMiggTRCEN9Lq4/bFsK8zN6VSY6+wCDmH0+EReRwgLJhVC2I4j/4PcbnQfnhQ4DpOZS1Veh8gbUBJ5HSwjr3aJZS7R4UJml6HMZaBvQeQ1PL2Apf1WdD8AQuiVHysvg8HP0wvrN490+RMZUwyXwK3m/JB7h2EmN2bvDRugSb2JJjfRdIBxwZBORJxD4pBvqLjMFcdWM47OjyvIIRn8XwaR1SijVwsB1ewKY60iylyc2RXJnsSX0VkisNudmeRfkjUTZdJ/op39I1erHW68su7Auuuxj8ffigX8hv0brj6///lzsTfGXY29t25/wJXxV8BWeQTY+gLI2Ql2yYPov53yuRfkETAb5HAc4Fp66uGuwjauMcHD9CwnGQRXfczp5Cad4Vs6W28zxUsp3HsjRQL/mM1Sgv8u3ex6okzKMKfThulmqaHvKzK2rPS09AyQnuYkWNAMZIoRtgjRnpWWnkYQwhZB/xPJXyZgd5JnTptAHjizoBxQu9a0vAEpB4xBkyYeqbWj9oaCjoG3A3oU9Z8dElCr1pSpTd82BZVMfS9le+orfYoC7ojDh45u1wEs7Jid0yAqM3b+pwfGPh3+1fXE6TOPz1uF4PihTzbOymxUd8FXh8aMCjt1OmrmjBNg3hIIc3IJbvDcEc9Nvin/IRdCsKM25yS4slxKb5KvjMfFl9FrBLvWYddssg+yHa5ch3+jemfRTm7sDHPMCqJKodA3UxyZRf+d3eyKLXPFOsgfUj3/41iz1AhqZjAemIARkElsBpoCRCeITKQyg//1HZ8ObNC0cL1BMB1d8MwWgxjyVoqYndukKChAzM7LLzbA9xY8ZxCM7yyYvVXgg44m87nO/J7BgeSjeZHBfW86Gj+dP4sPzHty+csYHphbsPyAPL95bwh7t+3UogjC/gUyxAee6bR0P4YvL2rx7CF5QZvuEHYv7Ny+C/m2/d3OeGRnQkHqeW7h3WRu47laXCNuklSvcRad13pmV2gZvSapNCWATFyAdxYjyU2kd//FkptYipiWgEhK6cKVDz8GSnblSV324QrQo6CVTEkGcDYFtngoGsmE0QdQtCWlC2Ti+IgsJ6IoGGEVEgDF0jR7spAdfHZSfi0cfONg/41deH7UtBnXuod/FLlrtyznu869exu81Xp69l/Jy0ODn5oQWN82dH6w0N7ZfhiY/+aqwgmrmx24ilG3db2Ld3TrIh+bvRbIfxx6PHAahtfjQSM7mBgxqGTQdLSrTb8nmnYbndNhFEf36FpUCTYyuhdRE9VTyRyY32NH1yN8ibwYYo797im5AUoUBnGhBLkEi5XtbeQgtI2M3MI5bRwig7PYxDRozXLOaww6P0qRD4xIBXDYkOxX3zLAYNgRPA1zxq2VH7kvfnLiI/lS78WjwfvgiUG9aP+e52UH7CIMJDzMLAUwHsYRqkuQvn4DlJ5lsTrN6c54YBEDAdcu9eof0fh0zuSXOuOAN+TrsmPFXugAc2eDvQeXtHXLe47It9x/y5sY3CNhIdpL6LGRS1TGi8l4MUOAsijSfSThjVEEKyLJyFOdPCGKqTbeKgaBdDBX/qUzsNVzFYKMSPmDTRtmly9Bl4p2l4D+8r4JpUXyvSEgSb49TpmffG49zsBvckFcNEe6o9yXIIjgJ1+IkuAkMYlMbxIlwPA9MDFdXlt4s6O8qhaY1PYmSroudwaHr4MNdD6Wy2+DMO43TuQiJdEQoM6HhEM0GJfOSJ1gmDstJvWz6Fry211eKPlk90MGTxYMgEXwY7IzQjmyrhLQUksCAGwsAzvwwIDTCvz1PX+CVgAR+JMlQ3CIj3az/UJ3BdK82cmYbTjjtvWfbJLXuWN+Xuep+U9CWJiXS64FrE/PXM9CtIDxdyvpzKHj6fUb2Owgs9Vp1PTMHKGewpMHeW7iXP48gTiRayvZkpLpNrNRSaaGveuVW+g0RwAt7YvXDJXPoJuNYKgtHlD6DzlrVmNGuJBgC7NFWMG3751EICC9AYi8fuwU/StT/m1ZCL9r5vPxGcFgzw8twrD7RkEBwKAhyODxoxuFHdzyOfljtHZS/R9E/tjH8qmRTX4VQ8A4No+/E5lsOn+ESGTqBPIETr66sMXxdHDYISE/fYGIPqzfIMlu5Z2pmXD+7Qvy2lTYPAWvmvn5RWWdgsjWbcaf4yK5nlJAVHTNPNb3GmTmVLZq8L8mmD2UwpXvyITZNBNWGzgBpU5kikygKVSnjUh2Jys7xML++0NDiovHbzbfDlxzZ8Xxb0JCbzSV+8Klh2GbvUsGzsX4ublgybUShK9KF3/Ml6coMKd5fsE5/BnuCW6kZKhT1weziYBp8sIcQ25i6Hoyoc5lMkuif1VNTOgBZqm2fxjhRPgk8MeYXYll5CrZtRhua1hlEEZAZIJwAadnQIX90+8dAOyaP3V7UNCA/gNWGO8ELPt67qnvQ8Qlcw8FhchfXpt1ehS+jUcOfXpLcPDksVtQO/DMqKETIZzUH0x9eyjAX7897JUmXc7WP30fg5HvTgeDpiK8bNz4KQgo+BxA1uoJgv+BhPp0qAGFGSmiywQCMB0KcEjQP2aBDpgMWzIIQUzyZo3I2JjERogIyARJVhHNdCW/nnMn2/1COCKytghGTYyE4in5GGi9C12s7A2HJtM1KCZ7azKBJY4bLUXHJ/jWABAYgBegEHITwtbArMVLEVB6QIWMaP9DXqTI5woxS2H+h6Fh9KEUFx3GQI1hBC8rM8IiChyVzzLjgTLzdAe+cwI+TnJ/OnLE9KPnLBa5/PM3fxR+FIf3Hb/JFDx6VPPh9eFn8OvL8ku5UL7/2dfyrxj/cHTEZIj2rZq9BcJ6tdgcDyW4ZeXf5mxEiu8rRaUx6TCKSspcdamJIZwiNWlmWhI5kzq+SC3KSYlajBLT07CYxZg7VERNC5cEmHwZpqITuhgW8r78c5dF+6fu6Rgc/OxPyw59YQpIbAH2g/ZyaZdV9YPAgKKxm0whg/i3LwB45do8DOd+s+DZO/MRvntyzBtgONjo7gD7dBteZ95GMs5lc19k+2cJwaPtZO0ErmENNIWtIB0Ur1s0TiUmASCJ0nu82I1lN/zH/UQCusrHPf4R3zlFSBWXR+avDZGbIrhkLoMbI0U76tO5iGa6BLmmq/NoJW+xel9pIDcG+sq6Za66OqyAdRkChETTXU40D80cuqxmKU07o4JIiQvZkYREp9JLCpldVaxkO9Sq+Rs3sdzt09sQIn/32cmfQiwgtLC9YATB50qOFMtHgoYNGL0xOGhE/7HPDQro2b3v/KCAXl37zcfZX5bkuEa/fwfjb4/8NSdrd79jP2E0rLTy0fCFEK55euQsCFfAiuJpEM4bMWAShAuUffus5x/sIHMSyaVxRVJUei0Vp8LVuWDbxDsXEeQmgm5iTrM3ItiG4R1SlH/4ZKckaYbvjEhxCpQaUfoEiX4CuSS7ExDJGrJhE6L18CoIbLls88SXuwWHrLmxdOqhQSIf21zuJx8jfKugYFH9EIyKiubsMonFJ+GlS4sgLPlu2bo/F2E08dL8MbvkZ+XpF8BXsGfh4LYLtmD8aF+fsRzn8XB1CK8vwz3MaZylgjOLnIVbjbp6PJ6tROY4Rp6nkyczUFezwJlDKf415A6gU7gHwT+bxIkGH+1gaBhDeTngRcI3RNAQRtR2W5PR+Hpw0ne/gKkfgCmyMqdDwDAchq4RjBOpvk016zIiQGpmzSWaJVxFSkH0373Kd1JQm6cr37Wjtij4gvvZ8wQmB7cTfYk7VIOJyRcKTKkUIif82v1pLSQmV06vC+f/+JO88gN51WMFpg2ee+hbIm9EcincACk+NY0uWrzZFVhWA09NJjfJdJ1j/fYHIuRxRCbzMdkAPwqEmJMZk+XMCtFuCp1ZjGwQjkQRnbFVolp5JSm7kAaaBff/KGGAxdA+p9vE0NuhgDt++ILR9N7MAWHytcLc7E6ds7I7gVfnuA6mjJ3WKB/AoT2BdBnjTw4cfmlEr9XyGWbjyMnv4LVxNJTzhD38c0TPbMfNluLbd1DH14aMr47D1cihF6R8S8okh0ZMSAhmH0TMpySzKfaNPKzM1cgsxfnVyTpkc/u/DjZLrbFOCmNakDPLQigosCFlT1sYIyB0NZDMhoWq5DbBnpYC09MsXIotAltsEVAAAiWuVkYJ8MtPTgtbuHLSzABx5w+Lei5utcQg1nL0Wd5LxHlN5vz5ivzVb4tFw6ivd758KGbFT6fkb7Zj/AJIBOPPvw+it2I8/6Z7KD86uyRufr3aCw6nhMOCTtsRPLJrN+j8GtHS67vPN2nWAeK1wHpwybV26zFaJ38rrzx+SL6/EsDCVb3AHpB95RuitRQfRuhF+fyHV+T1p0HHFxEa0xHcC4V8xU9k3j17CL1+jdBrkXD+tlW1jqpmH4HcCHTGAzAz+wRo94QUyB7SzYCSCL+3k080x/3ta/IDZLkOoh/JRrB5KOguH+Jdj7vABFhMaXo6ef8x8v4QQtXjuVFSZEIi7TmSWlro1fxfdkCXrcxlc0g7baC/ZNTwSKNNlRbN/h0LCQpodmymlad4rZB1exDgFSEslQlj6anpbnDi9h2j5V7xENEof/3Hoc4ATd1jMhY/JT/6ceZWY9Q12cO7APio9OqYxAPTPvwFrpNzwOyxI6fgd8GUoe+KgOz74Z5f+BAi/8ZznaQgNq4ajGxMp2U0ORhRLDazD4qVVo1CZpZideyISCgE9aIBQT2Lza7sVSgQdMVWfCBVdt1beWmaKLT+AEQd/NJt+JufUfJSeVpYgKHepCJg6wy+viHfw+iZe5sngeUg+wWE5Ye3tq9E/P1bi0eMPDIQBYF6ZE/StfmOrE0QWZu2UqCNmRICzS5TWQ3ymG9NiDwWrNNxjPppb4gthJpAbLciW8MUhdKkV4IVbwJxmi0o/mP52Mkn3lx/FvCp0WLApiVklo/IH7zf+bx8/iC+UfEzqPhm88R1ezCZXwrfOwy+TpwfP6tJrEECk1iDdAQcm3Xyq1bpUDBYTLJSgTAJXXEf6wRftlcOrUSbUtyD28I2cIXc/ALvuiir+jSF4xUCRwDX/D92UI2bhsIh6N9sV9/7gfvDMQ8r0aIU95RCmANHuTfRV3Ym7xvj+ZWPIDw/iUiRCcl2H17peL0XrwgvJ5uIcnQ9PsX490tiCEO5RIfGgFS/QSpTQCiSORkhTIdMwGHk0EntAnhtF7m8dG35/ACx+d5puz75+qH594gfD3xdywaFNctfn5gllydD23tPjYFg7l/bpoMpIKnbeIzvlwMARP6f35b3fuMTiPuCuPeVOeSXsrXsLokanV63pIHkJrAawukWO0Dg1EmGmrEQLZVObCZKsmbiFQ8muFdMeOh+OBpOG/UQLnXP4F3uF+EAtpaNCVFU/BRx/0F4WI+ZoM4D9wPSlv4OEZ1lMLPdZEnBzDtQg0zv41gGplJLQdqVz0SKfGljTASNefBagvzjpYufBz4wvj9sTTjvqkRXH2H86znwE8ZLZqpzNpG8M5jrXgPeMcG3RjIeRG6CGMlhGFk6mpvJwf6SoNwNF6YKsD/VItiMOUESEcth5odPkhmbugU8AE3c08EW+Tac/Jbcmszc0J1Ado+v/N63F9ApAhPP1fqvvcBpEY3utUzQAi5IqVzmfnjhAptSpS/hEzan42qYTN3CeNdfL/LrfDGAw2x4YCoggxWVu9HiTJHcBap3gTMD2dCtdB/GAGAPgnYrHPAZ7A1aVz7oOd+9T/q2b9cHbt5V8TIuftwF3IEDK0rx0+4Rcj0KtbImSxgt6CiBwCC9/Fnj0ujw2McNIK+4ttgHRTfF1knQd/nvcs6Rh+7fwbk3H2BrxR0Cyy1sozLUGM9NPonQBQvRj9pKUfYUVRfw2qRq3j6BOj8GZ9YRAd5HASI4WwSVfazOLMZuICMEFifs/ezn0w1i3qZRh378AoBgIWflSOmrAKFhSd9nTs0IDFy06ND39jC04OGOOaATsPZ+FmP5+sPZ8gn5r+LtKHL000cHI7xR/uTmW5cxD4x/K3yHx8wWYeWelALDwlW+E1ymMQNXVSnJZkLVyTzSkj3FYEwYEGX5qV6OD2YPeOgGj24AggLyhQr5dxCz5NVQ4/gJ8kUY5/6R8J9/Pr76z0W4bOb4pTyg8zzMg/lopoemkXlGis6FzK4UFT4jAclYdc+7jFoeThVgrREo1SamCulpnJfcEiXLBCBS5hoiytnJXKNXy17zcF0cn8nuYCFvx+R9X6y9NlPEgcFNDwUImdP7nr5nFBqV9Nn7Q61eH664HwwgSHkwB3QA8X0WYLSgYnuvXr3lceDO6HFvD0KCvEl+e/w7gxERVf5SZHDKx75g+83GFUt8ZBRTDP0yWM1b2QQZezVp7bZkMUxe12sZ5XG2qjyObxhB7VxWMclr/0qFG+Vfh5Cl+OhOZWjQyxs/B/Jjudvv8w+ZTOMmyI9gA/enZC1ufLT60zz3yyZYCZdOmTgDUzkrxfMrfpfIWbW5wRJ6oo5vz+nwPYHcJDBtISFQxScCGkF+iw5bNFshga4ouUrpOu+dg7lOqCIspqtKfwKgVjvot9ehjhFvdP3heIBhy+PVy65OwA/EyVOm7jaGHS/86c2gwGcrNq25NZt/aFgxf/pu8MzatvGdv1gz+70RCE08Px9MegbBSYPndojp9s2mWW8Ng2DapcVg9hIIR1P6sp3sjWQmr2fUwCB9ZJ4INFoho8wrWRCuLcvtv3zwlVyYgocQeSoW37hI++3r+Zl3kH4tXBPJZA2rmX/VbBE06jYYEU3TYDNCqBTfm9PKO/Ymy0d++8odhPY+2GuZNmtpaRSRliozb8m3MVm/T9LQJ5UNVhL1Z+tadJXCso2McT6zIWXr9GWdvKkjqH4hmhEBxZJEFBDYFUaCSHfi7/ItIIBmeOLjLiq/fovjxFzGOwdJfIix5nfo6DTjmtWkK51apLxd4pWPQB8sRBlCgDquQSZRDxZVuK/dHi63vzvk9/rgrU/BaNz2cRecUlFOKPkJ3ELxR5wic9BOkYdqAEyH2TreJ5IbUYGFbksiXLIPxAn0Q5GO2PSQ/yOFtb8EZoIn3F+DpvLdcnm2/BlsIJ8HZvQSDHHb3fVguPs3eAueI3O2m8D0JIHJwDWoASb25mrIoYChLAhBQPK6yeAYiHc/0/fRIPIaHnHQVdnX/TdMRSvpuIlSim8y/tmaq95tDfKDhDkmVotmMu++hwG8yF5LZQsntc6IIBfeTqn4MQGtdjdMwVz8hQsu3OjiQfrO3+Vj8IjwLNlTyRyBnBpX9RI60mI4DUNIIuPYtFPeFS9PBjlgNV/2z/73xMsUrw56FsIPvX4kqPeG129AOLj94HegCdGq/rnC1nkmeXcr9u5U1h44qKbqHwlVp7QKgpVaSDOt9lKwRj4nT4h/UX5JePZRxntCb0Vmag2/RBls76Tr9o6fZ5ZJRLJTTPguvozxREBDKsLcV8CuV156D++RG8PP3bUVPJzhaYEiOKqpx3BVt5pGTKBeuvuVi5PRrBMnGBwX8CXYS6C/S+Gos8AEQH/FjFZqQgmIyFzKZmF+TWVWYa8jn8v4EnBQXpTs+QWV4y5cIleHWywF1q2n0uw0lRcxd3jMf6oCEDMXeGCkEhbkcEWaJbPoQxFrIJXSmwcEW2Otda1NrLg/XWq/2ZPyhjRRo0OkORW7UEqmzUljOPwOGyQKhH/TQIP0ZKogweeC4ZJtq48KBhB5e6tREMJmdZwcckecd3Xa4bOh3Q3IAuSkwnn1Uicu2RVkKKyVPwfDw8tePQ0L0pPHIti1NRy2qQfEH78k88V52ZbXYIfcj8HwolZPKnza7PkFm8jchnLx3DAJKxYTbHbFlCnuXK8qGFOFJuinRwgRmQ7CPqh+GK7D+WidvQES4SRdJIiCmC4Ykd6IjF9EijMBi2HLP5p7pF/alyDw7tgZL+84zIPbxT3XDO1Ud930bREGGLlX/nsewkunCZz70nyMr3/QxPH0LIiflZsv49HxQz0V3M323EJ3cTculiuUuLh4H+6GEpBDY6oI9zoSEGpgBkwDiycL1XJxQgLoujDm3AwoNr1weyPGtyH4pedCy3dBi8smrjxdbEKhG26vdV2+3rfXyl2CeAiO7A7GuIYguOrhZvsOzrMC4+9L+08jCux1+S8lforofMvIOliIrjhYwsxT5V0H0eGf7Rgt+zRV8V8RtSuArYPyEaFbhBhd0AYBPsJGSQhDRF9sELM3tg5b9ckze/s/dVf++6r5mQObjohIuCX2LV4+rKtj6bKXYfwrIHAhwiWw7mNuwnIMfzreNK/97PUQLweX5mD8SBnPrxjirkSuTeAWSqGJScpsumxan3bVPSdFcwHMC+MoPRH9aTTsXzowenw0nFiaEO0gH9KaaNC/9PdoD/07RNTqGaH+BbQGcGqYik2vfChLFmExgSQ2VpsRoDTEM6sReLz606HByLLj1+UffRRldPcOmDlmy/zpra8nHBsAPiBCflBxGFp2e13tvUBchrD81e2n5r8A+RXPDB6DXhTkP0B4Rt123QjeDSRkaoAQzYVzQ6XwCJsP7xiqJWk5vnfwOoz0UR8iPvpFYOpQCtGScZe1zBVWRk1gdmcmjb2JsIlpdkpEqJN06I7dibvM0V8fyu8SXbdez7Em07XEz3agJaVT9p2G0HI8EAzoPqK0cia12T6UO+OWZJ1iuSfIOmHmpaZ4Zy/TwB2j3e8xWmU4tEpEkSQYIlWTo18WlswWRj0jlO8I6UzWYWZ6dcx02hQLRrpTCbpSkVRgBEO1ire1Li9bIvVN/eKNePnzzyZdbPrMwC1TXokNnbNz81sB6C8Bwn49lw7v2Wjx9D1RMP5FIKyEeO54UHHjaoUAh3VbsxDjpXM6zsDwhxNNmmbmjZ6N+AXgeglG7x9SaEgIWct/2J7sIAFVjg116NwtOplN52uVOCgoaovGhEllfkbk7VZG9UXKL8GmpQe3brBOuTONRyELFz219A4hfejUsxhee8/dHr5bJ3UmgosqHwt0XyWQSwD/BeGFJq6phJWoV+zXy3WA+bAJMhN4iEMTRKqYnZAmogUE3zl256P2+blP0hBSnAvCnZ0gLMzKKYCwA8WVYLktkMm7g7lIOiMsCoMiY4jW56zDlVBqRdMaBGicX4RDModoxXwjWVqy0JkNnTE+v5CYnAZOnYs4tql5u7CMtLnR5+PaN6GANSnAuRUj970BYej7QRvwBhCeW0jAyyZAtqNrFkpkvgIyU3o7VpKW4Mf8tx3LoLNjGarZsYDXjgVOLMkjS3Vnc3dQBBxyImgie8AnJfJ+gavc3At0lBu6n2d4RNfMxuQXrR0wqQY7IEGG4Dsg6I7AfmfmOOEpwsOSuBIpQmOb1ZEP3ZB0K+C1VunctXr9FRiCmWDPPiiV0SiwsVSeExmL1uGsCWiw1wr2hy95Z8TSyI0nX9hinUpQGJsXPdcTzb7L/lrcZ/mdd3He5BUYFhccwPjSMXcreKJu6lSE90a4HfBYndQZCM6o/B3nqvvtMRmvhesuQY3eqBuvbog6aYS5LdmokKhYUTRE0zsWUQf8K5Er39y8XoE7ZP7SEUsptHM3YnTlPXcbeLxOagmCSyvdOJfx6BwiK6UT+MxEkmwlxShxWjFmohJz/0IeKTRh/82FiepPJSKq7rMgkWaAiUNkQ3YI3fLH+pUX+hvN2+49t+L8gJDb/PDimXvDhRGDNxc1Nhpg0k6ACZVY+3jLQfnRagzX/LNxyqi5CJ3cN2Teeoy39J/Rg8LtOScPwiFsXuO5kRoZL07r14/RqoO6+Q2t5gTxiXk23dhiq4t5ZLs4RcUGJTKvpyLnYT5s8cdz9w8efBfgLy2zXx25uSsCf/Kob98lQ3rUWzFtN4x6UX60FOEpbjf/FZiwFIORp6fnN+sw/1lCw+W4GRgdV+TXPDK2bDa2RG6MhJU1wTT++3/iX0wCCa0mQRlCmASlfOjHF1cTnwJ2q8qcMkXVSsG4U+uwZz+Ze7Bf+jW58s6QGdu3lRIh6i4ZYVHh+HpFjRZM2hkLE14FAXMRnvM0eJwG3FMx/PF4sybtl66EqE02uDsJI2mPlw7A33F3sj/aSgFGk16miNESsJiqhsIgXcBPQJASGwOIrEDxny5NQxu8muHY3m/BnXe/jxy/LikX9QvEi90xhP7Peg6Z6PtjiSx9muhPKdwUyc6iBWp4vzeOTUIxBmUGY+hHbBDoLwWRC6Uupn8xpkrxrHEpjg+Lh/1pUFuyjmWm0AB3FjxArWRULcIEn1g8Ets1DbPgplD5m8afiDznkQ5+CX+DvQo7TwwwgtjWZ0V+zuVph2/Bn+Cw3kVTQd2hT9qKStefgPD4VlDYE3Zq1rddfO+jI7d0RfDCC6B3MehAx5znuQNf41sQ+bWfFMG8lRozhXfMYeQmzHvDLLWK01IJkNBHk1GbbYB2/C4LU5ipwEZD9Rs6RcFOxsNSFaA942jCOyMQFApSHeaCwtmzQoYfSjyYwbeQ/yl1vxgV1gIFHA+He5fB0aVApPAWENrUgNApK9dFAszKrTF5xGgppPfGQm4spmrGELOFBTLpnHeUOlEjnI2pCJnIDg/NOjpqZV4wIZwYBU7eMXjZnXevj1mI4bA3ZsBj7hap9tm8sAgFVpylsA0jPDmEwFajDU6HsjHVbHC81u6VCd4Bvdzu3z45exc4Eao4Swkz4Eo4jn9E/qzR/lYjn9Rtln+xvwUp9jflIzCoBvsb+h7UviunnRoov3h66He1Qa83QFd4q+IsvOGOxbnuZHhdsXscJeO3Evj09rcaCe6/2N8CFftb4L/Y34CVwJREcAl4OA8Il4fce7RJfiDfBq/eegS/AEPc37l/BhPlNbA+DCTwHJHbYAuBx0S4GKfGnPtE1xitL0S3OKFsPUzs3Rr0oO+HVIBjzIvA8DboAQT33CVfZ7UJq9NrQlrOkQdgACyvCPJwCFqOYdSucAJOJ3DcJPz+BoFDb5+L+X9gn8uGacmVr8bDZW63HTnjTp58FX50ei+L95a3IF5ozsVQ32psHBu7UWNas1GJ1ej1+xr8Jp4wFoxOdizNBqESBE24saTaBMQiP0xQsIGPX9hujSWSxJLQcwkJOWCo/QN7XNLRDlkB8QgtlLdk/vHaxXrpM4OkwG++A12eWtNWfvzVmUHOF4t+bneAyj+J8p/g8r/GjVuJdHh6DzDukf8UjjO82iJvgOOFPKK7ZUnRqo1DHQtL6qBjiTDG0rEQmdvmHwtvi2BjEWk6C80MagYb0TQDEw06srF4cX7k27WT7ccnGHk+Hs93vrTWQge21PJhfEKOvOPr5o/un+pbsLZOvZ/bH8hZnnVv38WMtNlkYF9/Kx8cwXwA4Bl8ATUi9LMJeV2kD7YyCdmMTDpzUIpo0FHEwLJqTjaafoMIt7LTBBOU2TDLiS8En36+6zNTWiUtTX7XeG5dtwUTWie07m9GYa/9gmHBlBT0/uvlGHaclDKqH5MRPD/Lz4NPCP+i+XZNpSAl3y7I7IJlmhgaHdqRmaMqbPWUO0r8QJgRpDVmisrrF7dWgF8KpnUsoPH/GytkPi/nSVyQndORKE6Md3f0BGGBTyMyfG/JopHhw8lrwmOqG9r9qC6GK6hOZyWccgspKpzJXeF6SUuxSQGa46XYOGhyBGGVzDAFw8MiwIOieWHfGq/tcpyuP2Z5rhFGPfgg41TGoufgN/26r9nf7xB8qhtYfS7u19sxz327KOwnkJz8/Y9Jl7cNnogF+cEfo+dQXHtAaNhe/hyRskZLsUzKqiE+1heTEG9lYf7xOuO3Lk6XZhdyLLo9nummVqYaWqvYCsnWSiWb2kZGyAwd0CsDUFMH2ed3I0L7wH0plTilzbDYyB32TQnmlV/OLf3I8DvfrXvxXGMcyLDDXq8tGIgunIcp0tFzFXPPjcL4yzfBwJEYLpnw6zkqQxo8P/Fz8T2yj+pyzaTkehkU9uQq8WKUKIeWUf2faPRJfuNTqFmqLeqYZVq6mE43lcVJaKIiJIo0Dc8mAuZ7bQoUV6wRoKtvHju1dPP0rTGB1qIRkzeNe106uuzAjP1Nw6IXjt9c+cjUeuuoiZfWmOnnpCurRs3HeOaibfN69noOxE7dtnjNFAwnPb/92aOvnH9hwxI4adz5GRjP+LJk3LnppOFVhn9dCG/MJjQlgpvE+RXBasmlXHAEIxNmguiSSbkxOaiZyeooNVkTrEQsw2XUoUGWyIK1wfomNROPRo4b/d8ElimsIVNMEn3pP/Q/kARngl0gXhblGPm1SNCdXBs9bCzviwG9I+k1UpYBj7LgTHfW5hWb5Cug3qYVm+EFZS/fJjTyEaORIhfpo5JexyV1l9Wp3wCRbWq1WzPDVn67Yt93i76T/0QxlT+hD+ED1ke5bMeH+bNcBpfDzZPSc/PUTMRGZUrulVdDph1CQ4KiGruCy/QirBTOvpKiE6hEQz28dubh9cd6S3WVH5MNm+lH/LpmKUcfDu4VZTOJ/kD91w6Y4iRkWSPyMn2QyLyp1EEMaVQh7mb8cHBIwJo/1n1Xwf8hPDN9+o6Q8KPr+8i/hRvPDgoxgid+vPZbwG1hyqhJnbobI8DsHj+5x80Ii3jzVK35YREnwadHRj21b8bBPgj+cGbMDDik+/QW9e0lf7898uk9rjKIb5wFY2dBmNGgeMnEOlMSndOW5Tc35U2a35rul0v4OlrIf8wFcuHUyxXqkEyhVMrntQHCoSxrV6CZdQ1Vg06jrFT/n6BjVtu2jbNbtwZ/Zrdu29jZpg3/casGmW1g60HtQev65I+Ww9pyzFs0wPMLf4vQHpo9msttkDLymtBpzWCx+hn+WH0HWTSHF7Wd5MbJ9BGnQ+E3XmdRoMOpOHFKuUBzIPUeIerFl4yBTNTTJJQSZhTlv3OapQSD785BVtpQhVGxPFHfmhlBuGKu5Gm8S4qFUOP0NAxFojmyKF+i9+P0tBSIWwUf3bJ+jzHQWvbChq14M9++a/9ZcZAvbPlKgjvfCsCxt0GHtyzWyvePym8dHRK6/DsQslYC8WvCI36W9554U/55LeyxcR/GX7wy/Fg5xPvXgOI+ED77KKZuYRESj0ZelCsg/hqUfHABAB5/JS+vtRHYvhyP4Bn55dPn5a0fYnwaKLySOw7fQF3IXMdx6USfttSqTafKQjOp9eRDwrUilEwuNRo8EEeorrEIs2SGGs/XYQu5+SKmnOnQ8bpvktVvqErqFOzJac6mwOsRE9OVuaQOsdSGhAEYAXWHjeNh/6dHz8Dw3X1PBWEgdiyJORh0eMHMVYFZGATIR9oUx3TvNsIgNoAnasV3mzV48hzQOCqiEOGRxvFzINw4R96bW8+xoOkK1LRxWl2WF9CBW4EOof3mNNTxNmcWUUfQntHOeWAauoBSOZ7mNpKBKhlaumhPloRPg/Xnns5wb0pAdcA0gF8lfap5iBaBWiQ5rOLwh0TmTuCyuRbcTim3ZSs6Yblm6srMpdYYes2uKT7Gb0sy6OwtvjspKZgFziQ5pBTMbHkpBLtTzCkEuxOTUtSIzMREsktz/D+qnZjDfmR2NShzpZil5gadfUOHpE5qwkmxOLMgDVyHtB6AEvRMVEIhgUgbLAU9zQFslL2Rz8kR18GAM3o0XRH8zPlntoP087bwUd9tJtj8Nni78fOLAV7zPC8u7yDCEIDBBh6CYKFuy7XzC4YHBuX1WQEvnwWDP8V6bK2z8PNpCO8B9V7dCeJfxgSrV02QX0fdAL9k4pSOGcMSZsQ2taSmJA1s1hovA7BVVl4+ovE9v/MW9BHjH6HMlwxRlcwLyZ0fBU/xlheU/XADHYQ3yH4I4myco4r721RGI5UCdPQiXJNbblUQmFEGpxCR2VBNf/4Z7hk/dAnEu8aOWLZCyGrg7CIIjR1ZPfDr4/dDuGXUpJcIno6p26FzowYdehAYYjiAeVxJYDDRuHqtW1ZJBK0p65aa5zRx7LyRKo2lQXwMzwzZmoxceoVvgycT5dL8K/ny3kTQp8mVwZXnElAOWnhOng0WnQMzKvjTbE/0gtvgPf4EmY0+koFFddWQ08g0KSvVPqA/Q4qLYMqrielWRFYw+L8LZg8lq4lTg/7VXMxk6hUHStII5OF+96FI0GtwsFindm6r4DcDX18wdz3Pb+y8AwyE25aCqO6tajtAu0ZgxmYIFz71TEmTcVDNhV4NH/HHuRRuvBSgsV/pYpyZB4vCDCKp6W82QY5IOoeiH8xAICoeD8nuf0jUMtWp5SdtUqw9Xs1ZpLvBAdK846DpmApCNLYpzD7dDvp0z39SDCiw9Y99J+DlOfO38KhDt2kYHVs5Z8thPDqruxgyvR8eC7MzWoVA2BGMmglRyZC83mm1549fQEb6NOgDsx19eDbWD/EleJn5Guws/9kEQX+FQpdS0kPEOEgJThTBYhoqQSObjoA4+fQnAidfInL+N/Ig3IPZkXpJIRo7ks7srrOlMP9lqNaYYapiEdMo6yyqy2dGcgrpydREDD4eYYD84s3FK+68+7npqVVju/W6DTDOda/vWWsHwrORteJsr3EwR87nvyJjJAoJKucPE/mjjgSDgvX2yGq5wIAzKGGvVsKAnVlcJo+gpTj7yo0wK6jzPajrhgaAOM/5KyAQPO5C5/AF2BIcRj3JfouUkBo/jshG1+aga/xmLzyZl9+pU5O8TvBsficIO2fnsVRw4Lki5wMHof1GrrZa5YUJrKJDi/shBob7gAthUDpFBUsoNXUA5xlr02YASq/A5eaAbtn1cJ6xZ7OnS4TVQnGTEGE5gfV7uAvO59+gedcSqJqjVm0/YhYCzMKQoI6Fic7UTOA5MvRiDBhnI11mObZMVuWBQ2gO4VtGoh01l0KZlYHKdsYqeaaSGMepyaQWXUWOqH8rtgH1BTVgwdqXggTT5S2rXwkSAke+PNHQpm3nscEG8tFlbBB/Bp/b0nLPJ4T2b2s5bn9fucPgsRBOHdl22CgIpw3jGB+HhI9PZXz8yQDKx58Ek9nzo0QHeoJ/1ZyOPuU6ws3kszMII1ghoouQRvCZ9VNWvwH5zWHym3n8a7Qt9ytnYL9tDbeR33yCoP833ihG9puN5Dc7+ROs/x3sNxeJ9MCR33zMvQi3eX+TSH6TyH5DdJHL8kxkx11ZLt5gKUnJxUvy2yZY+p3OfkttE8nm/2U6njfn3ZuOR+0EamYpUTeUHFRqAwIMkxWjBhwT1Htgt+nGoIJO3SeH3gmVK4+9dT7EdOrpgWGgbkFuHjV2dIQbp7zau+Dp8d0GQTi89xtXML64/41XB/RaBfLyCgn6MxNIAVsXJS+MiL1pHJsNrjXoC7KYjUsr6ASXkwnxtf9Q074EPPC39yF2iK79a6LT2x705v6soX+Trv15sY6v/QAiGDi5ACbjhdNWvj6RD4YxoBbpM5i1iS13BZXRznztNvj66gdWgdFqu7Byl421I+u8lOPE6UTuMHEWrqSGaNuaw85ClQyUUMe/JhhJQUqTIMe/ZkpJFtVSXBtYaTodSwkS2V9W4a3KLXXlpLvyFzgNfWR3P+uE4Xb3/SZwUUURGNET9JAP8q4z8lNn5CwwEs5U9tlwOZvmopExp3M0j3YWeMdTQZ6zHCoxnzyvra6zHeR718E3Wt+6VWtfAo7X0N5YpX1Tb3uyzu/U0D60SvtAX/9juD9Ie7I2gsMVV04UemUNWZ5OQwZHPQVuT7m/X19qCO/rl7RH7TXtS7hp/vY+6VDQtbcwuOspcHsm19C/Qde+LoNb6X+MZ78CN6T4ySKwGU55yPhkhlM02zFe8evG+2lzzSU4EMsXmk0FAAlq7FjUHqfN6+J1OQaIKSjx3pgjbeqd3Zd75wAos83Et+LfHKdLwdv5TSd/Dt7Rwutw1QE405+JB1fJTb2ZeEDu5ls7fgnbow3VPVpL2aM83Vdsjyo5KoxOZKr4Nsm/731hzSm+ea3avoToG1m0T6K0pur6dHrbgN4gwNcmRdemjq/NAGBTYCNt6unaIN+7xlCvAV1D0qZRucuurCEgUto1HIaXEFkjWxEylJTNAKJQBzBzBEYslg8w3w9dBr5MEnGgEuLG6JAVIKeVgGAVEdlwYypeeAxGz5U3VLxQIW8CJaAFaLVSPgFa7JZPyO+tBM3l96l0GO7ZzW/m7xA5Pomrw/WU4pWo2HivSTa9rIb8Uh8O+SO2XKllrmhaZU/jHXfFEHWSAMYrltBmgOWW2pysPFkgUfEEG6C2aVEAWemAZv4QGaf39lnTjpwcC5H1A9D4+PF5E944nW0MLTgv35AHozA4p+n8l3+oHQ3LeMH9XLNBrh9TQsNxh03gD9cPnUEweOYCxEPX3J8x74A8XP5wG0zu2R0168TzHu7WBmBu267yWkPIA9vjGXRtWH4Cw4McFW8KasCbMB/eVG1fAn7yt2duVNo+vEp7p7c9oVPf19C/rUp75Ot/DFnMLG+dKg0eu6LKmJzBYucZPPkqPO/5+/fF0Qcp/au5OAtYfkI411sysahEarY11FQrxCvBE4WNIRnVIZS/iK5r0OVAh+vEepuS/pxOk92QYgVIh6ENPrr+j8ksf/xbZeM77m09v5930GScMJp3yb8A8OvJj+4D+Sq5SZWjIVw+ccxsTPdEjOcm7ihEE+pXJCVlOPQybVJNDJN5U1j+CB/ObLKahNRwXkk9kp7QJ3Eq1lUjEgVWuEwNQVOKtDibIrVYCzDceS+WqFWvHA/BKYNiRUPGssYw4NF7r05sPXJs0bQgQ8O2zwTghk0aiQFt2hZPDcNdLz/E+L3tDXpvbZnWYMSWcdmHzmDY4oOWfTo0GlG4ZHxO/z79nB37YbRwKVt7FpsucGQt2yi4yL1B1sxaJTC9ng9XSHucqGlfAjrV0D5D2x7dEoDaXgC9C6q3rq/SLNp3Ev+3r+2AIlCtrUPTFvEf++AYw80jL4yo0rphuStfwVllnAO97UE/7gbXqFr7xuWuPEoZEWfy/CJMwN0IbWrMNeUeSbBZczUJzFFGrzkq7saRn8Z55eMochNVYyC/v74DU1OkID5KkZpcUbrg4bCgUCWQPyw2rG5YkzDcX4pRfpGr6De5jtKEXEcuDUbOBf1LB+aOJ3+Xnsj9NBf2L/0910O/SdKFJqf6e6+l9EFwsa6oKWIp1fffxZmlLG3YcnJaetVMATG9KSTkVBPKnEVjmamNNJ3ZSGl1niTaGI+efKzxQffWUkMg4H8+ESLg0JLeJSF3xFlfz/q8eNvRk+eiw91DjSWTe24qyG1xpfLNSStq7R+zLjigE1o9aH0GeFMQsdHaveMeDF9/brcEC9KSpyLYo4N1yJbukJ+3DAvyn9dWL9sBYeP0fTlN3x5xGaABnZu1hzfR0qVJ9Z5YreBgtpxNY/HJ2rdT5cUmTF5kMeIMlzuouL/dj8u+APEkHy7T9gGa9iWE61Zvn6xrDxnud1BwP7N6ay9PZ20ZPrO23JhRPmz2tU0rdzXwyoy0uNRN/h/S/j5r33rdPzqJLsYrMSptoVvTtqTOPzppMcYrLaptz/GP1bZUVqzlqd6zX1ak7b/nz3rbE7ljAGkfUaV9YLkrnEIOubZk3xYIdYnE+AQ3QDIr8d5ms6uWup9YNdakqvkR5mjm4zI7XNFmbW0fs84VaqiS3hjBJERvsZ8Im+oYdbKwOX+JIyfa27eFLdi27/byuWcGBYcs+27xijF40HfN3u67t+/15883lR9lPTf3VbNx1JBpL0XxYdvkY2/0ekW+vRzheeXz1/6xBOM+W1YsmzG2Q/2TWQtnznDnDObhm89N34v4skN0jkII/0tndK2bQtcGgGrzH6HOP4vxZDjWXcVJlx/HfPGDfhyr2r4EFNbQ3l6lPVDbE5xsV711qhYWBrfSdkBPUK1tiq7tx9623Jg5nKqFEhqcpNDUfG4tzsWfstjxGK6bFMniX2hlFI7VR6G1w1CVlOfDIaqLRhsMwZkPW72Po0L0BnSgsYxpo8txWGXtVPSF+2Sn3PxOhU3zOj/bMT+nK/0H214FtfMLIeyYndMJwvbuwJwuEHZoQu0I7ams+oSnBGfidwnMKVwGkVXrKLW66rAap+SaXMZVDyHzhrdp2D5BcqLBUPKrycxKKCOyLrPVO72+elo0F/r9+LSKAmD+vFRFXCWDam0a0Gn7twMGDt62foIIDWHb7j/fq+/wbeunGZD4PQgDz6c1HrapCzQDizyh1hMzXo0PhonTrnTagaF9Lbi86FRu952yvBLChOfBpQXn8pvMbpYPR1ohmH9vYZMm7t1GiI6/3oOuK4vrY/jVR8XHI3788tlh/bJn1fYloAv5IoAlEXlxXGkD1DYEBzt6W1Tph+FTH5W/0yJhwaxVajlLPmH2DxZLxt7XX31ftPI+4HBZWG/Q87E8CIexHLM4rpcmtyn2v3LMqkYdU1v8vyc0+cONvVllunDj4LBlH8/ZN2TwXdD9zuiZL9Gksr94VNx/8ZCejuXTdsPIPfLDRQhPdbvFXe5rs1lWWYuCuauxP9jYO1Y2J/2VPdaRzQgZaVK5y8zkHGYPOiP86rMbTeIeg9x/t3UxOSqOL/XKXNykbrQyN5GIXHWr2LfifDamYlBf0UnJ7jb65TF0n7/pk6+KuWXKOpCeHOo67JG7svpMNi6aK5HCY2KV4ASiv2liknQpyt5FYFE+XlnKRm5sanCx4C/GbWO1YcwOKcrKIpeiHFrBKjrcqljhbSIrTU02VXoy9RkiVuGJZhDjibxjochnx+QHt+nZexREpVn+ik/uCLB5KEro1SsHAdvaOvDpHhtGgRba+k+QS5a7sjzP+lwet02KVipMR5tdWer4ahHAa8XUND6drMiietUa08qILLWYCBgdVkvJTnPVMkuJ/nC6lOhERWhMiU2pm9IkBfd3hZmlBn5kJUwzS5v9WXUO0hv/b7NBUUGVOTqC/y+SQ3Xzt3FU7dr/F7mi1O5Ha1CJhYrdj+31R4TbERwLdihSGpX1PLfQX4wetFPbJCl4GOpwJahtlH46evsh+vF9Xz+Jmn7uMhrVTqFRcd5e4n17R+mnrq+fvuAz0EPtJ13bD/+9Fx7Ql5NJC6WnVB08XXz9FIEgHzx2TT9/CLwPnqJGXniSdPbG78SWpE0tpR9um9/O59PLYzXy6U3+MwGa07j2VC5GJfgErvz/2a6n5LnyUYQXRBNatkrilbqlvJJvaHNUj1KvOTjbQau0meglwobU+FarqAnWlLBAPR6SxSyocW1RZdRwHq+TXe36XHxvLqyaKGpz0pjDTDET+FNjccX+z3w5sUjJk834I/5ezN2oA5Wh/hxZfL7C6U2NDVfTZf8+sHp1ZSdtnqzXRi3c89moJ3EnQYv/sJlTPUVg/ELRUyblMX4RoO4cjd07xWcnL+YeETwMYHZvk07fuenTjYoncmo/9ir9xPv66Qu2gbZqP2G6fr736mSkTZiyv0hPtVhPgEsnfIfWVovl5qkeRM7PSHQHRITWFAbvM+7EhDPLVYy2OgwNroO6uAeyrkFarqTRV9RqbPaq9LdKebaqfGij26Wv16ajo6sGKeXbINdEHosNuCtn5+pyuyVBiSMV/LV8dOYJXfos86GztN8yKa0eM02kOaQ1aaB/aUKaIw1OLN2Z9jr9GJg2nn6cSPs0jdob0jz0zpHWLA1OkuJ0QalJmvr9oVFK9SYpRZfWwVyBmmlIq5Yi7cuPRi/3XN3gaYN/UuCgty6GVs2XPu9Lln5zesOkjt18c/R0zygQ+0nV5GlY5M+c9uNbSx++FXGX/tO/w/YCo8kKDhcVeHFYa/P/lY9gvKaOymvuKbQ9xEfblRxoxmsKFV7TlFOlq7pV+mno66eYEEVvP6naftieUvopnu3tJ6NKP3V9/fQFlxWeRfp5QtfP92o/tE2CsqdIT5le/4L7H1q3T+mH8g4wTl7vG8ur3t+iO6AR94z6W6/tjtXHY/6ouqqPw+KfZ1+NFLMPZpYHLQ4g7Tuqc9gN9Fe5n2Ilh0Qv4/ivyR63EulyTA0hQT5TQpiBVXMKc0jmMJNqVODYrvUnKNBtbGAng4TpyqHbWDA8OzmF2q9ZApVaFVw944VV5aNqKD9wdtysN1h1vgdvTI+dXu9hBpxW70FlHTgtyb0Cv/ZixX1arQ8HvwggO63nxXeYP4bMJrYx/jRFQkxCZiJ0texB347VHRbgiKR8iV6iQyMVWVECfkERhmI1/MJYNZs/msa/My5ULUtV5ULwoxsNqyaKXz0RfzzqbuwP+JxcWS1fHJ87sGaN159YwHBX8T8O8MwHTen6Qb/+EEYVBP6uz+40wJPleVylDe2nLeNVil9ykmeWn1fV4Celec8V/CGfbWqSp77HXbOVzOf3jGN8S4Gz2HNY4Vv0VCKNfewy/50PzmLPCM8/+jaeZ+XetO6i0o9ZAP1/FpgeNU3uSnPnyfMnleef+N4LezA+V0+VEbsrfI70GazyMGrv+wjnVsnhjqm5lqPpzrE7NDWN9u25KWznXWYFFpHLgHnK3MhtMeK/MCuwiFwnyLPniMhHDZjvKEPdm+sVXY9zKDuSjMMkt4fn+G8taYRyeG2E173z6ktm0fjBCa2YyObDodKKgZRWcKHuf2iuPHneWXnO3ZXXk7ESiR2vZvl0A2tIbP5f5NALShk3wVGaIDgEaisnk60t6RYIBCUexc7qQmYq+fQfTS68fex2YXuwDmTJImgj/wQOyj1wrtwFuNw33d+qtAudYr6v+qrvfXQNsSEGLQ6ifHEdad9FbT8GrNNZ/5J0vnoyV7TmpNI/m6tURldfdP9Dc/iVfuhzzxU2hxSeb/nDXnhQCTyPX/VG+nh9d6rNmMIyhcn7XdS2A4i8L3DsmC3v2PzvJnS/n/uquo+ITmVW303w80/368o6ocus3nHfGpy1PmEZBAtqiSaOnSUBdXRW0FYfV4/9CvDm5tAkDuA0AVbCVqSV2MCZP2J/L4YL7JVLJyyOWTzpIRrbdls79+MLcEHatnS43lvvoC/ZckFcgWYekqqd/qB4sf8NrjKaVsKxM9wMXjDsKhAnt8Runnd30qrYFXPvoLmNtjd2x8OVju0O+KU/diDLGzvAlcB4P474ggSDtfwNp7G17abqrD0UnRX54oHYHlrC1qahihdr2fqHEHx5zHwb3dQ99NiLFwSGPF/8QhFo4IfBJ8uYdDDYmSyj2KiLRnohsOn48GMBeeEk72qO3RR/bAR/aCyB3JafznjwSEmoGrtZ40Fs3iId1etF+LKZsb68O8cKRliM3txTI0hPZo7TZkCtKspPlz2Rn+/N62jPqj0/WZTbv/XAfRe8+xbvehz55kUYdtZ4uhZOqPied1X8gONZzQ5CCwXcjYvhBktQzcn877oPDKFCtV4/pe5DlFLZq0qieUQNVSD8NUc05SD22pa8u3tjxLTIspdatLbnpM9PmMZDceXC4avvHsN5m1/H6OfT7sQjZyGwnjG9C6/Uq72Kx6Mrv1VpPYv5YLY/JeZjEggFuWpciF1npy/12ekndcaqdJZUJU4lzhdfUgza+WJQ0nT93PT6HYiOt5jzSpvaOJUSsbGvn4HgWV8MSmo5M3v7fBJHeI+vr4HcRc7rPbCXu1LVeCOui+euuII/w84cWSfFKLp7DBVcaiA/usKlOi3eZ2wzaouqS1aO5YVaHdqKGbpTeqrU1AzWV2SoDUwgA0AnzVzITPBHufHeekGIVg8Snq88c7r3CzdHhTWMPQKsews+Rd0UzS7F/R5R/irWdp51dnLHXV/FOwIEw/xQgHcA826Qvx+ErIdWoud9KDePQsE4zwjhlyflK+3bTllGfRQtPb8I5QSHEwmPzeHelqKVrDIi1tVmwl1mTXWvdHzVew6bzsYqiQFUBpUasQ9XI6IUNqJKYSNHI30NLJu+BpaNBQ1FK7+K1Tqh6Yau678LMEv1q5UkAbYqdbLSlYMMIJFDbUrQrnKYlNfTnAF6hG2++/yktxq8/Mmp89ER7gkhY57aurVFq4uzph1p8PJPK04WmW/zwHhw1p5w0VA6aVcsqui2OAu8wou8oTtM3A3wKggHdC3FWP7r8zWLdyJ+4K6mLSDs1+kwhs/+s7Ew41sRnd07OO5PAzq8B3QHM1fF1qtNDZOq3vgFo/dZKv3e57OPR6t7wUwWaQmj8b1UOaBU2S9BPrmK0nhas1bph9H4NMb7txPe/zvurvyW8f6PvTSevDfP+16ir77re2+s5r2LGF3vpdD1D71vtfj2O6s5y+B3qvCf9u33umo/sZ5bGDH4e6ttGijwG/y2TqUfp7cfoqe97+unjr8fdJHpur0VXbeet5c0PzxyPq2Bq/TD/PVr2fNYuRGtA6L8lj1v6Xnoe2+e771F3Oe+92Zo4OfYPCjvLWrtfW9t33u3y81pPVrSJlvtfy6Rh4meL+fTWhzkeZHynPtMaU/r17L3ZqvvPV8Dj9Xazu6gD4WFZrUfIn9J/BxNHVwT0W+rl0T1FycOhGoYFCdqzyc1sUzHQF0ye7D24FFakiAJZaLj55c9WP5x/MVGrGBuity+0QVkqbyLLAdArYsX5S9onvUPat2ReG6eZNOc86DLF9cZknxSd3xUkDfpWhddIugKcJlYeF8ozSnXWoXDzcoBGDQRO6ZMKf5UvTCJU9Gxic5N9NGnL9XTFijJ+DT+4xhapOQurV0Sexk65Xv+QiUg5sDeUiDK/5Tu1cS81fHFyA3gfldiKDkam6vxUzL/t+KnHFAMVD9lvD52jvHcHNV+ekvhuaQfq66fUm8/3KQeWO2naoxfnA+eYpDg07t0flPGc/uoPHeFz7dqU9so/Wzw9dMPzFLiwTkWN57g5bmKD3agr69+3M9cI9W/GlfuSvS2o/11Zjw8R+XhIxQezrFYYJu2v3cYD++j8vBLPn9tRLkr0htv2ldexjckuJ5IZC1Rk8evkxF1hlnmmrVV9apjC6fWgNKcx2upUgMK0XAknYlRLSSjVnNuuNd2fMPMQI1VMX/t5UGh+tLOex5kdynyWRKL2hsWfbtKX+WZ1b+Ru7L6N3auRLKkpPrGpavtmkRukv5nB6DP26l3cPrcgaFJbOxW/ZGLVb16rGihvm4O6lfFsnzYUr2Ojt5JN7K45qo6dM1Z3WlG7/NUW8EJP/3zCWN+HYPVyWG0v6/aHvpjCXwlcfx2AyXO1OmNMyX85Oi/x5n6YgGA1z8Oekf4eveVlvH6DZS+kS+GdQzZ/1mqNz26nCh9anwBq+HMeGNTle9pYPDZKv25I7SmzD3GJweo7RP8Y/TVl/G3V/q3efsnOvdG0Ezd0xbV3sLq1DB77ADVPlSp2GM1bZR+8nz9FHEXFfoh+uxnrJ+7jAcOUHhgQ07bguExUYhQohBNdL2GEtTU+tKVMfRhq045oy48tRQodRaj+PO2rw40GVK3br0uT5ku4J2HL0BgezsYDu1TMYLJ8508v/AO/hQXzc4BC1Fyj0KUuAxdaLPOz2hQdj7h3BZdVVJOG5FBY8F055GmpThAWjPAK4eBielZSRGqozGdkIIkkcrmsMMVuSIa88ER6HVToOXAyj2X4peAhOMgqCTKFP+RfG3Huq9auduIxkDzujD829WGPYrXgL7dl25CqMP5Hsglnzr91Mfysdc+Rx9dSu7UamwJ4acFclvUUYji4riJEtSc/8ic/Enamp06Obxq4SMqQ+tLmQTquGpIGT0BIKyKs8nuVTMJE9VVak02gUy4+9Tz1g9fbNU80ZkyPW7T7rhdweFfHGg88gln+p6YoFNoSWWj187Scq1GuB9dKR0ufQhBxLvBZ7qxtetL9I00IYOsXR2ur5SoRO8n+mM5ajyfQwoJVKi2Q7IatLWpE3TLWKvGQzviWWp3JuQjfId30CB+5agoenhH+zVXZxnEZlvGvnq95EyrbsOtRxLlP8N5Pv+lqXvvBwQuXHLwJ3uAQWjMDpUIQ/Mf7n4GdAGW3ssxLOpimrdYfq3dyOFL5B3y10WzUOToI2WYl+/+3XzU08d8B0tALovwQx7v4yKJ9N1XilPqE8T9Sw1Gn+dQxOFqcqLRoPUcxurUIntNilAzkMnOUKUHFdIEUm+VRvW4hq6WHfeeH/J605Exxt3GyeNMCBpS5QvfXP0u8lc0tM/MfZEiGjpk5stRBpi4i1aghR2erD2749r96e3btesg35Mv8gJo/NPkUXMxOrl/yJwNGJ062JWdofCLcEiAZH17SDbVD1GNTzMnREL1w2mC1VNVDQatsqw3gzQFtGqQiNjxXzqmXGt0Sfgh62cfj02Wj/6xoXwk48dT5yx9g/Ljb4OWbwfXfgh27/lFvovRMzfWUV684gXCi9f5eDGhK4Px81wM95QUprHn6IK8WCGJmP86ckeKjGBm5EiHhPxFCwTloaFanShR8d/rOC4ZpZMfbNqz97nr4V5OOxUjcdoLA5fdSejWzYKff21/cOWnNZSuWxnSb5Zqa6/gf/TZ2os8zTzXVbkwVJMr+JV4WInPInrFGbAIxKqxXQ2F2UpMFn3OlXtukvYsF5D5OZer9slfQctqeos/Fo/FwjO+ul9tP4ZjknCUw9VC5acsn0ecR9psU9skgnnVZAG/H5LFVPIyaf+uyiczPbLOjk7XpoFfJyS6sUYnJLpxU6YDx7r/0eqEqIT7gz0nOrNWlyPt67HneUSX1uhypP1C6nOg8wzKmc+hVg1FuWooJqyIl/Zk1YgHyk9FXnwpv21C4yfmJp3EuRXLjpwJ/cB8Eo/jVLrxK3qAu3DhhBMMl8xKDKLZb7uqnt9OMTCY5Y6rx0BqbFWWYLOKhBE6e1SkWCX82QjZCSZJWWpBE2uENYmxujaf/Bghhm+9sfDMh9ERcG3w6FGbtrdodVHcN1IuChEMPXEnLH/2c86myoVIAMGfrVm4m5lEWlb2F0BQh9qtOpO5XIE5IAucVUBEhqJ2YMzswADib9BOAXAGan/nHZKJB/2JihpFcCvSd/w7b1brmfBmtbITLKMOL14t51RqEhPocVZIra4Hwh3ABNJBJtp5dOqhDwCotwzfDUXbtmILsLB9D0Lwd+iYwJP3plJYJBMm72W9lppgAqSVdpRj69gLSJfNQDjhkY1tsOX+S/LF9bdO8yO3YLN8G4SbMRmfWqvDTDQ2Rldk/CEay98kOFKXBSqbUNXaBqziEDUTBsCqpXka2wSa3YPGBr6zdNFOFz+9Vcdg/ubirRhumQdWdcpn81YOAf8FF8jFSZxaV8BAXmMA/SXIazps1BR4a2bDduMK2jmzCvme2e1wm6yc1hC2ofj2GK+C+4Q63rohAaSbAAJtONG7yZ/hpEcUrDXCmQJ1xQUyWaEkWhBHUzfk8eL+3WYu6t972hihYZ2GHQShQZ2GBXy34rlTe/SZM6VHrZbtM+o076DUnNwndwUpRLY2ec/a8JrMJV5T8YTXqyypIEWvnwCDTht5Yxpbh+v4a3Sev8+FcS2Yh8JQRqap1GRIMJAlNiLtYalcmVrXL9BB/UlBbHEsSLc49uQMKApquR+idTvR+eD5AyLrjWkU1zlmQ+CCQfU3Jkd1jeVvlawy5lsBGm6YtAmCPhigEcrePogvoVu8h9UEa/4/Vr2g4hpfRvNIodmHMAQlowhO0pIYSqFRO/z9sXz+cq+/5PtneI98GWTIl6mL/K48CjzpOcHWNZ+FBrCDSJqbOGRGiag+ao66oEFI7O+tDhOgqw4T4B+5WNMqE8HdMrqww+BR7QuGDcapcUlZAh+faM/5+8mRQ1oXjBjQNqFOZlIcdSVxwN0DX5K/9Nb68J6L4t3fwKzbesqxKPKXpZcqlWNRyO8/x5c8t6rWCmFEodREFqKGWiHyeZAoHy+jtUI8nsoH+GvP9/x9swgGVEZyDO/c1/BPnnxhLmekNMDoULa6BIzsfBC/PEIUB6NCVmj1AVrpwoZp3Un3NaNjYEDgmOTQWiAYoV2B+Of1fFBuEwxmw4jdc+LbkjWoPIFveN7g77L1dnKKA9E3aGVp2bq+aRKo/xmph8XQhcekIVYPiUmi/+R13/wNLOCHT94HGN8AgfIDEEjGUblLXuc+6HmWrHNoteIfvCatoXJXYa6zCy3/+HdWBwhbO3PaQNhWoYcZ+BZcJrQgcNqU83tYVWDdnNJyki//cHqj0ELex2qd/YLLsV14Xc3RaMrighTC/G/oTGvU+CuvWWnhHxrsGOVQuleBpZaYtFSa5KACDnf88sYm+VBrZ8MC0DazYSFszT7aZDVqL7wuX2tYvz2ELRs1IvSsZSa7NqJPWvvi0YUWqrwjgJEfKDKCWjfFInAzmW59nOj48UILcxpXexj1W4+UmR3Zc5Y8/409r6s+38yeXyCLu0poRWMl1OfbWTRspOcm35i1zwxTnv/K2hMJgj/Mnuer7Z9gcMSR50H0OViutr/Pngd57qO2wlYiy21hstxTHrvnN87CZLn0cqrApStBRd4xEvlFoGNUbf3H2H0ao4EZ5P4gO5uyzn+ddIzNurONlIPT8DL31C8fVKIF9Mw0doYY9BwgMAewulSCt85U9RMqmeHNL4UQ9UCtMgSSUpMQ/O0OaPB4N5gJz1Nna5cL6KgmjpPBXttv82D3TX259kvZfV213t5NdiYsItJSKrdQ4+kjmBjjP+9BVz9Jc1SSUj8JOiKlQYSiSC3pZRK5lJbB76gUUJ8+4CCYqI3jDNGW/qTzllzlTHTg1UQxV1UBZYdHorVyoR2UylvXXJtpEHN3TtkHXN4zJMsDxIULX/8hOdAQuGgx0T7hjJOVh9HCRzsmg64gqXiBQXOMZNToY+eJ5nnnTrtRb13GTPFUY4RqsTmq55uzieye0VKPROZ0Ljsrq8F/HCypz0XlEPBVcM60JsHr7p/k3+Fvv//l4XCLihN0Db3vomeXWmjfvvgGdt+QrRctMLdMrYkZxBVy/35kq7bALM+OtqDyoaAz2wRq5t2pHl1M/6Wgl+2Vfe7D7+3uhGw0114578IF9ORZVPuiz2fNf0hgyvTuD34hO1sw+39b7YSGotRw0G4SXvLgS/fzZMPgPuqGUecAszloxOa/nMzBTpbj3qSG8fvqiWsQji/Tj5awKrYUYpIzANCBAxQjO+AL9kpbLEyU90WhsynuaaAOvOT+58KLsBVsuvqiDHx+KAZLtt9uyu7z2fp0o3SKwBbOxRJOO1WyMvs09bREs8K3STXl3/h0EGu4QfGLewstGsLVQotK2dVAXUamroKuK7GMntlK0/9ABEdL+SlVgp30CPpmgAW2W42AJ/sINQXos68BCDcdkm+9kvIwZV35WJPpwIo1r6Y9dBeFzl68YPM51Noyc/H8DeewO1C++PPO/0Pee8c3Vf3/4/ece25ukrZpmrRJF23TyS5QaNl777237LJa9t57K7PIEhyAQrgiooCVIUtGUVEZgoCCCAURLGqbk985594k97bBt36+f/4eD5pxuUnOfJ3XfD7d3Ap+z15hZcEb2wHXohUvueyv7wuAkv7z5eucQa62+mNE1ijcg2QsarN1MYG8/46MRQTXWzJGRmn9m35zVJgHvwQ6gV1OHrKzUbFraMKp7xiQk476ATia15Gs+ARigJ08N1i4N6LLy65l8fGC5gXNb94o1amgs54XXuux9QWsF/VFDniJ4V/4qh0vAZNiQYNfwDNsqlt74KJwfhSzujn0UjhD5pFsJlWcgYXkYotxAPkQnGiTVUWHHJ0XdWYrxxhEHTQwV6lyUrrFmlENeohxRUc9AImws1DAAgvF5s4QHXD2qr0OXcDl1Z/V5YUOHeJwaNKVHUlBkQeBZdeWH4eEBVXDBVcScalLxGIDGe3SQLBeuIGnT1y9PyLvS0i0bkufwyB5G0K78K33uuGtV9CX/x575t/777m67l9RGtUVwBp25g4FTeWYWaQvNlya1WnTe9Yp95i9sW0lJ5oLwQOQjt2zQbknskSO1mj3C/i6rrxyvhO9xPhInTnJ2tPN/TOqo3uL3PM2u2dY5HOqAZDdVIlG05yVaPhTyXdhbUcdiD5RjpsiRco+1khfPj+rlfabn+ShotGuWRVmfVAkK0+JZk/aUhRaLVa6BGBeGrXRKtICf22JCtBQYqG02SKEKaYgXbX6bfsG1V47KIfyjvBhyy7M/qBLZdcFHYA9Os4f2D511pStNlTTpasaWRXyH5eCsHOrVj0gvPFRndph7wPrQh6tW+A6nFZ90HjILwPnliDh60NUT/kZT0KZZP2HEl1isBTKGHKdoXLMIDi1pN7i9UqGyV5JYv2mqM6gFCbLtKGDQHXxAgONYwj7FCSZVnha60KrjC5Cc3pkEMVkYkDAG4e/DzLd7NtXb1x4Y/6W8d0evzS/ftc+fG6AoXuH/mssy1quydppNvXoPj9SOIWu7j45oeKnExZcGcOjjjhdeG/SqVGutXD88O6jEZw9pOhWe7gqe/ByARyWfZqTcD9UCdXk9JTDwmD0zzGh4S/w+qw4EXm5I0jziXF5DgzHrttt8zs5H4O6sKjwLm4EbvEuuuaqux+g6rpEouVX5AZKUK50hj6uSm/Kqtq/TU1LFSSYKYzVRJlSpXK+i9HlTAoWdZJ6cJWIhBjPqIcRr1APkwOiWkUgy0wbM0yJAQEaiI8OjNwUNn9E60xj8NjyYGEKH7rp6eqlp3qbLDe2Nm8j6nj+tW6TdkWbhvSf+nY4urvuAwgrn6oOG2S0yQh9H08I3fL3YoQWPVv7GeeODk5Z6BpXrdawGTx/7OisIzH8p3vksS6tcAemcNulUObh98M3k0TeJLGFpU9SFtaqMJoaFZYaRgtlwsbQp9ywy2G0UCbMTd5JPanfRcWDAO1hihtPBesdGEajbocCA6MDywcS2zFJnWYmxdmpP/sgH2eNo0a1NT2DFW5SJsiUqpSCjw6jKBdrMpA9Bu2darxfpx0UQNAl6cbDwW17LDRaD1yJPTh6vkE/tHfPlaYnhrk/zDz5GJT5uJNjVPOcfUiQVoOGzWH7xlN04APQpWW9tjzs0jLzzfYQ7WFjNATPQJR/OIprJ1kUH3ugdv+p1AIJRLAKVhgoA60GegLYPtVPCmcblIYGKAtErLztUmQcykQrWRBECUfto7HtrkhGpUcLZLw1tVy9AGPbCfhptGnPARDqukW0oDex4cW1vol1HANavL0rM7V5zYzoxF4gaCkoK4Hgk5yc7zmA5XtSni/9v+f5CinJ82X+lzxfb4cu/WjHOuuR/KMCb1q4ePASms+54E2Evvm8cC/qXD5lNo9mFD1hPF88N5LswXrCOWL5R3Dx3EIpLiFRia6RczvOxy2lobD2xthk/snpRGEj9o+V2j/0IdtK7R/rj1Zq/9ALnBVkaUkqi+luRCjGaSKoMKNqPWAhxo+FMXRwwJFOs/B44NDZQ8lis4JfDp+ChlgiMW9/cgIAQ3xV/AAfAufChG3XWoFtOCMMdG77bdtQBIRHrZpdAA1BCwHhogetmv2Av8BH+Q7zOjwV9fgtfHFeqylz+UAwSN6P9Fw1krEJ8vjmNXPjLX5BmkMrTM4conXNVvBoHt8qpYKcJzQP1Sz6o0J93vCZDcKdSygjMDmXlZoDoicWyv5L92/8t0IhF8l1kII98a9UTcKT9qTVJDpJwZxS/skp54sm+EW0XiLX0uTEphRKncOKXMWMdLDpcKVf9DGJlpCgsmX7ZZcajtfjF7ByxYCy5aKiTHWFv9Dbhadi0wVwUg+HZELkqoFKfV66AgTgcDCzrRX8XNKPyaxfCvcRed+TjWVdPAElC18Q7aqrJCjYVkrdaznSlXKMc8DXD7FiOSVwaVSxZdnLyRXB6pBEklH0cHtR4SPYFSEUCyngsGcjk/VCD0+52LyKnX8yrfv0jYFRIHhBwsz3v7YEDOg/v+JuvTB55OzUhgaxXtntDa+HGQ/v7dwf6UHsjeWL0fXkXm33Q3AabFrZZ150UnDt1R13txlRuXmdKhHBaQnZAKz4snrpJd33na6owjtBHUn/O7H+93H/ga6TtUR5tYJUvFqa/DbNDHsrrcI0IXh/iW3mPA8xavHcNbk+zIE+2fwazVlLTg1p0p6sxYH48835m9+NR7346a6Dnmy1nUth96L5/PTPiL7zJZnPQNSJ8cu1l0wyv5zJFzfSYI5ooJC96MdhmrwBDYlcXSWwbmOwuAy/QsYXYUqeTpxg7tV8dZ7zrIEXg8q/PMAI8zKrzpuwNSyA13dpm7kyAtYdc67FWgE9PNOkSafbfwpooqsQ5o5B/IfbJtTJGsnD3LfYuNfCS/jfSD/iiN0SVDzvy9N+ptBqsqBY3pf5AO9B8Oc0VktkMcmrImchp6Bv3SWzIJiFg+MOntPfErp0HrfDhqKfjNou8tNGTinTyICSal7MtcJSoDJqi+4cBINGI/7znQn53VLqrOqwt01m+Zb1HKXNdQE6FQogqMb0pF/QIVSLyOh4boAULkvocOrH50oWkfslfaZFspzG82HXFIerhS8QbMFe3mcuTVC0bpoGIM8Ueh3jeSG8ef3TpctO9TDDeFD5FqxVNJuY3P27jdkSTWxvoW+Xydv5ifzeM7Y1+QsQXF20zlxIRI/rSnqd0dMh//7bqVVrDpnE84dkmfsIJZB9EsK1kHiL1Ttfmn550bbNmq4YNaTvsmkZnMe8j2Jomk22JDJoWioCeOdgWM9RJ6xjv+lTTQPwx/H8G/wU1/7SLUHYwXIQ7l0PWxyn7SF2E49RbcbnZFbtWw17mWYxefZtMfRvphdZ+OQUBWWHYkFbQe4oAdaqse6kSee4WzMgePOfm3YfNvKjiYWS2bp1P6gD40HinBlg93eF+PQOxH/3eTJcw2y0KjheGIUaM2wgovHIOUwRsj0SmepLY/KronvdUBF56lQQMlwWrf9RoDBARAWy6yDzItBQFbHNOYFs2Lr08CCqEvj7SfawCOvmhYuzRgcas/pnmd6ZtujKEFMk3o+fd8sHfT84D/mhXdMDAxP2vPnjdmDotX4YfjHjtYWRcMGENyBc/ceKF/hKJK4M1yQ+2ztntQ6lk/NE4Y4j8rM328f1SH+XknkoxXWUTEo+k9ru8lulpxGuXnlqylO7w1jGL18XWFLo1NiJjiEUc53wW3e+nts40JBwq5wx9ulu/KJbfrc71+I65nc08PzQfm+Rc31q/MfAtHfmZDhxFm58Z1sErgK+igeNX4KHOLRh/cyV0fw80ofO7p90ZlSHWNV9pQRmVfuRRYxPUpO46RFMyeRNMsvqUSntckqmQ81gS1VBhofH8lpIL2KBAjgud9HGVp8Mr2e2wtId2zXl+UZ1es2wVvujqoGH5uyuU6KNIYGBFe5WDbRm3981YmP4gq/feh/eQjU2rvtl3qRpvG77JtAUf9qqctRGHu3eU3/u3DnT+clzf8A9riI4efB9ET38DvQD5eSzsDXRo7Bw2BN/4DLd09yPlFzeWBp/UHwmbK8Jn3t8FFxm9nOlaqe0nPHrxRFr4K3ZGQqCvPU/nloj9j26qsr30Hug+7mSlx+h3MPmQleF3LNbvgeGu5+p/TOs7uc+WkH04Rii/2VKoWXKKjZ/XJ4f35e37NARoVMoSVRp5jBPCpSv69TaC/V8lWI+MY1xSs8RxFJ6Mlh6kjWDrEeFFYZ6PqwZVZnXY26NVtYk/ODszKO9glMfVDINGnC+aujHX5qsN7dt3GGpmu16Zvm0Oupco2UA7GoNmHCnSMdP+W42SID4+uSVvAjixpQHYUdyryB07QP8ZThw3GkNqmeMhbBzG7rnRnGcoCP9D+c6k9ZH+vdZvoJXyxaoVHyrigNs6lod6heQjfAUIkOof4CliqSn2eywGbDWW9qtVodqaQ3K42E9Cvq+G1Y9JCmkdv399XgDeDClP4QRJ3V8E1cfVxGMhUvq8kA4FY6+JHPWzX1PN4OcH6FcWW6IZJBx/gw+XzM73UswRVs1rPOB9DiVjNZAhefbnkcJlzRlV5Ij0MLYs6j0SCHi0VsrBDIsGWKGg2icSXQTso2XJrLELGu6rudkHtaefGBM5pvhC69v3KFDk7PjhRd4JhCLfmheWxcwttfM8MQX8XreOOeN9Ch+Hti1FN+4OYqHk4c/EtGjHwCXBw/hdzp0hEu+m16gE9dveXivRTWJR6DMBr/Y4v8Oi/x/YIWTtbDG/UxYwPzXoyWg8l/79VJr4aTCzRp+v/BQhT+JHNcBmshXSHHGdLt8eKfLELtihuL+EmUGF3Qbx7dZMeZ2QYgFn8XWZTuDg7KnjH594streFEi0ad+wuNSIHx+/tozmIuWTB09B/FxrnHoJxa3YXFMOk5gvDe/uk4JvDK9Nz95qPsXIYTxAC6QQlV6pKb2z0ffytCsJTPPllCghvPXxv5vOtk4xE62UROZPjSkD5Vs1Fi2/WijKUM2kKUOcPBaFRqw/EUaGEwkaoU9Qdabk0SHIvfRbgfe/9uyK5NEXeMTIHr390UBfwjTJq7/pg54kYgjDLqZ05cdSgQ37uHfED/zaU4WWAJqbOUR/vPR1mW88PUjcH7grk+QbsMbcv9ZrRPpfxmidfLM++kn39bLr87HGuWKVKpTGDX06tpaxljqVabscRoATWKwkX1EkcCgolhT75LsCqWE4ayLfGvbhx3ufmbQb/p7xeJvxqICcdz4CTtMoZ+1+vlQgHFl4YZVD6cLL/VL50zeAWaubhrT7vtV048N4fmsc3NA9kweZg+Y1SKq4w8bpn08CIKJVxaA6QshHOEv5vlvYwO8+wEawD5XkcW2z3Oc+AfbM/HcFMko6+pG6mj3s3e86rnW1ROuV2rFwzUxO7NmTPWajF5QLIYsMJUtwUGMQdEIxARK1kZ0T0cAEOQNJcSBkKXfDAkIwV+8cN2+hjtmxTQqPNHLljjrrTLWpfyaWb2AZZbTEpw1nN8B0MQLc7/Ghegn1x+v48v4qXAeGG6/HAM3uJJdLyBcO2P0YiTjoogu0ncL0VDnSkBG3CSyNDSvGGxGiXxejRHsiShJAAYoyb2C/EpgPNNBGsNYa3FqcBIdRBFSkLodzCpOA7zSffARzBxZMKDoLg4249NkBEa71o0uKCqAt7oAy5x9waasTL4JzHR9BcCzk5cwnOpaKDhdehwO4fJxwyh0N9kf28lZuZHxTfaRQHH73u8c+7fvJSSHPVGqGiuFM3sNfEdJoBQqC+/guKZzF/76KLzVy9Z6MeyzQftnFFzD6xJRAyIHc6Ih+uM7XB2cq19ppY6PdrWmUtAXz2d1JqmKHHzbD65EsPq8EKYzuXleOV/m+uSmN/bsrY3hNrsfCJ0otgm4qtSXhcnYJsBThQa4JLxRmE7GLoBr7gXG1ARTNAqHR9EqhtquxsJiGUB0xlkcHcS/vA5HXn/pwj3qvayHGwvOwkh0/+/2eCMY5sOZ9OS8kLWbQN7vUHDj+6pw4w15qpKh2GJuQLr+VNPIBxgUtl9D8bL8MG1ijG9VelckmuGaWAffc4WY8ZkXrh+K+LlFv3eV1+LYTDKf2wB4eioPs1VoIRbUpOFTUPFcHc8ZR9/TM47Io/k4R1hD+mUi/eoiWeR+WSjghZxMVrxr3mwewFJloWa7mRlURYBWpQNy6oI93RJFepYmJFGZAxF+VLeof70nvQaP25qxmJ9x7WBhAez3MR4yOqQLzgFDcA6sxHcCacAEu5CpQSgSRzbER0vm8HDATTR68UeWUzDDjzNak5mjkSoawBbNEvLoKZLZAGVcJrVPAeVJeg/BEBkoyephFGJFrgy/xZrmhXJBP+0cXTB6C66BP4Pd8Vcg6uGWEQUjloKPQQ3XDZCBf4DjXcvpH2+FW1zbYX/218bFyzVQ7nz0nvAF6ekcSVSdsRpIAY+vSuJMkczHmyrFckRV2MYRBWIqfWhJHijGgMotbFTuVZ+zkjWFBUVKyf8XWSz6qDACeBE5dYz2EAWD5ETlAKaErRlw0swdgYEzRg19K+QPw8o/l//4pykEu17rLQbiaz9X+wq7xedo7pCZx01RVxI/SuBbTB7Rl9gXYweASZ8Oh8L3n1yeXPH9kUceBQL4IBcMmgLRnNFfRPDgLMPPo7KGzLWBa+InM8xbBFdier2JRjJtumRgT0oWGqDAO2gG53a9lIoeYfJI8414XAQFZxFQybhEj4wjMqubLLOIvRqk2I80z2caXZf8cbYuzyttDeHaSEjlt9I0WZMO5RUcnIYf2qDO6aCuiYRi57Yw3VXAzujGRSe72+Jn7ihrW0q7IJ/IX+Lf4HkofvPbXLjhVTlU3py34vlLSr/mMZkxhyuRb+TBDBXOkPcpXIkcIDJnTN6TcTBzjSSyvLTxYk2eSAnDmWPgSCqbQM4QU5BWMijSigNuANtAKVebzidmpTawV40d3agx/g5AeBj+Wdhl8zwonhXByOnIxuJZXd2ndBbhMWfnYsme6iuFyVH7MGZzh8k2oTHVaScb3m5U9lKg0a5UPshgQKHM8FNF6UM1jC9xLDGQJRpVsTHS0FQyUxnxlHHPkhgLMmiuUSywxuuS+CqKfxsFvvXbeHPIMfzd3tDS+aV3PZ1othwBZd+3lb3vigtdvS7sjU9/gavXHPwl3Gg0L8gUEnPwsx3v44cbeZD7+XoQtOMDEL4ZgjNFN98nveVDbv1Q9PTaodZNRszQy7WdxXOPkvAO5Xyt9S/OV39Hqs53pKapj9Rre8ffq1P4TD5RC6NdV0E/8ntfkN8fwdZAU0lQrQHNb2rktmdjkAPGoBTqCcU2gey7peVaKMMqjHAVZOZ8cP+3iNYFrc39ge7SdAaIXLc8gs9vgnM4ffZcXVn4HufBthNf8+gXJRqiSVjUCBVvhE+bPccGQ1Yv2B+MvQY+uPbyOthzvcD11xdFymgwHYP8Kvl9/Bb7/WCuM0PA+A9N8JCdlmgCXZ5GciZr2sLmRtOeG29nX6vzd6CqTYUW14+gL2kNpFVYwhavngNkfQD48lxLzpeMt+vRbDiNAf+Peg6RYXYb8uk58umyF07o77rDuYnefabAdfsGng1DiZ4ze39w0KhRRLv5GoDHp69glO/6ElvAmklDpyG6r4mM0h0j7TYy1MWxko7xsVLE0WCK6+UM8xen1vip2BiXUACAQVSMLVGj6oBiNXdejS3Na0LRUwUc96lsrpfzvQob/KPAVcDP86OzuVqweaD65lqlP+0V9lGazS7664en6f9PrT3kv6V+GynvoXbuh+ilcJb5P0wq/wcbPE/bGCkNWyM+LUMfWoq5O/Sp4VIlWlGUTR/u0oeG9KE/fcijD5yeqDGiRtL6uiWFsO+R4kqFyme5nKAjZDg8ako6Z6dczUaAUpK5FNBInDl97aWaWEgET/T8vJlLnQl/lAatHq38ZopB1+wYfvzuLezSg+ubF/PCt4/BhUHbDiGUsxbcB6GIn/ls42Q8Dl/ZwiMg/MziLe4Hur+EM1w4V5qbJwXJvuAgX06cJu1Wk8epUTa92RJGvY4Ni5EMS6wRZB3sbxxLOdmRxsaPAf4ZdWhkhgvJUFAEaVar3ebLDme+ICgHnDJQ6j1cBA4PJ2sw+/2Up/vGTP/ekx1+3aCrMqnXzJNTjMb58z+4kxAqgNrAkOLaSeY/6y7o3Lg8j1QJ4uEjRn0ygEfr8aUHH3+FBGD6g9gUTrJ2vxYOEJvCzg2QLPJOVGyKEhq5Jv3Z6yyzBnEKAJYKKVGwAgVnI1SdGk2Eh0P2DaUJvHy0psTr4O1++CVejR+BA0O7GwM24K3goct1Pjhz3LMe3y38AMa5foRjGnwxacXFTEB0vTtZixCAHFzm4WdC7clZ2YTZfo3c99EAnZWLIqfGQClczn0MpxqDyn/sKKG6WHWK/mDnqO4nhVjtDIiKYypNtIbEMknLFSMyT149UC3DwtGioDQTRDox3Z7M3Mfeqmu49dPLFhu+8uOyM73M0EgMkAd93wg7ru+Yg7/LbbB1drsZbQJEJA7sPmF7GAwaymOEH3/3El9CaOVf68P4VqA9WFnFUmrIoNmdauzasPEUbLO8V8uag8bxvHN72LLtVK7Gk7m0oZpsLmO5lVJEnEOJKppYPnVInp/cP++KDueAUrW8PJwyRIWPCYdZB5+Gu+lTbvjlcNjnYHR4+XCaj8bgYn35aPrgcMU8MWvkWKwG40FgBCUKT3CAl3DdXoU9xR8FW9cO3GUw5nUeAIWHFy6kvhgwxmBs1vH3Q9/YDG0GfYlqAlSuxZ7tHSKmdl37Dg8u4ueAb9mgRiN+P5hbsx4PmJwLJwOxhIyBtr4l6l/Vt/BDcI2c/KPwI35i0VKWUwXdC/BnaBAb01Cul2QJsyn7g9btB/rB1/VqX5xa+6Ip74EMElL0JHwgreVNfeNWh6wBUI56annDyiPmxLaFN3LW9Hxc3TWg+rNeYBhYNxH/lV4vd8DTPWBO0WJXEWhIbFWeR/Bd/IdSL1RLzkMke6IFs20+IOdtNulDGDfXD5ibprpdk3Hwb2zuEI/NvcpMj4B/b3gzrUc2vCm9q3te6/zW4/AJfBmcfQSsu8a3zG85FNQAlXCnP/Ev4EPchv6RbVaIu4Hd9M/1m+tb+WyzuR/yR1F7YiPslCJUdjcLuJaYmIhko0zzcfBphDuCrO3YiFTyJOVGECneL2IMvZQbcTmCCPPlEaRPPemDzbfYeZsHrVEFXGeyhbD0SpPVBPs4k9VLX4qPoOHug4Hx0fGsnpGsfsUVTswLpYCSFhKy/ZCQrHDHQ/6Q0HdI8yZImP7dDOcN9BAObN9tSkDY24dj3+wy1CC2a9xqXHB+4F+Hxzl785EtJ6Y5ZrQbvqEDD49taNK1S/NFAtgPYIvG9ZrBNg3A2o8gbLmEjlUEkRHNUc1iNrnfLINX2OSibJOLik2e5rHJ+c4vjuZPd/1OH1HNwtPwhKsuqumqK/sR2e8K14lN/quCQfWmHNP12OQyVjGaw2rph/2/4PdOp/XiB7/W3dMRidVI14k8SVadpmrrFUC+389slX80v1VfMAqk41hQFf+gAvJ94vqe7KVctxu1IG00Uz9Bcdsoyp+fwOc01vgJilUsyX4CYit73ASoxZEnOfj6a9UubOtoS+w1Lja4Px1VfiKuff8iOMfrN+zvCC5xyrgJOWzcevgR8F6ApFfSUmjtAy6Axb4E+UnPnpglzyY6gLoI4X5wDFQ8mj8Vj3zrndn5R0ESqMAHkSn/1NUUXnclM9kpr7Vm5HUAN1MVv9RsyKh/pJE2yLAvhtSDuYbLBjKNuQayR1MN9QwwW+pnANkHnxrcBrqFDakGCtdsIAfXKsM2+t9+KrJkI2vZk9Z4ROsnR5+0AxvaPgEf4VZkguuAk/7z/jz7RVsPFvV/qQfjl5MJHZ7z5Cg/TjlgiK1/BvdHQez3OrPfY7wvqCMXzbWSOBXnhN9UME3cIUTPGNP1ITLTvSpKV6kyY+Lx5IExgJiwhKoyfT34pcs8y48BC/Kylp3qGcyHrHu82vnVrV5dl23XiR/AoZ1ApnMgD5e/3JiwhXMvRejOwT4TEXpxCz9n7SWjhPRsfCr7GR/vNtWZtWcDMYI9p26Gg7+P39+cn4P3sySuokX8lOM+XC6WQ9SH+YPq4P5CBx3HObjyZDamS9YaNZV6tDKsHq0q44H7H1KNHV0h6hqtEgEdTs1l6UymHHNqVqRyeXIqbpoS2JbRMmiFBy2JV2pcgBLdIeIdKKguRLbzMLxxk+75PZs237gNAJ1gn380q13zjvkd6zZ9fQfRh3WRc3LhJwYgrE6oPC8l+b4LGXjj4vCM+YmO72qh9rAUuIwrOCB8dqV+9cSdv2XzIA53Ae9GXDtcO6PcQYBmuk70qnFNhIGujADQrFulgyLQwwsBCG/i/ORkReBctraZX0nvZ+D8azbF/Epq38XVJ5vBxpwnm1ePula96FdUs2gxP5koKS7QgP7eWPL7cagWZ+GaSyZV/rxGsmsWulc5NYXIyekmYm4h7d6SE2VVaHWD8pv2GnDisrXak3SdEPh6p+wB+SDTBm8eBa3xh5WSp+h4OwxS9rauLOt/cz9CXJPVr1lC/9KvBE5uBk3JugbNiFL5996jnuHgJxeeJr8KOAvO1dUmr4Jp7Wtg6n9pwiv8SgY/7iRwZDNtAWnG5sc5B0ddq/H3vSO+psizQwU2pGj66B12jlB/UqDsTwr0+ZM0J4nPjxHg8WMEqFHdqFcjWGMNhPn1apD977EFUmCHb52XDQG46EvsyMFX4mF0nzrf954eFNC6NbwL0Ikdu6/wE0+5fsY7AezbqU0P5ttgdo/wjLRb9ieNkqBsxUIGFwqL+ZP84ji9wp8kGpSYdYCmW0Gvcs/YVc6kVb6uHM1XutGmFfyGKBievhDtyNcV113SA0j7wv+k9KXNq3xJJefg/9rSV7TSXwNlXTuB2NvfEF07lhsvccy+fNUepsOp18RUo9nZNN0ZTTZxp2iiVdenD3w0C2NFaViAfIeXFBZFjUupUxigyrMnoAUVilYgB7OsQoaD2NjlO88w3zbMu5S9+Fi3YN6y/snKvXm620K3Dmd6430xoJG+D78cDu8ARjoHALT8z/VR2zBegdCPH4JeE5EOlAXvzXxDxmZJdD/UmVEnsp5SuGVSsozXlkyNN+4VMGBRJWj41Mn0nC1U9jAcjOVSOWpu0KDfKhrv68eBbHWuoUkToUBa9iOQRou2WO9FhhomslwIr6NBPtXBnCPNgOPzZaf6mKHt4IpBU2d+8Zr+y3Zk7YE2Op4f2HPSnghxQP8p70bARTeeIbTctdG2Dz+tV4HnZ3w3F2AilVxXMmoPn80Lx98fMH8V4o/vZ+PiPsR8DLW4IM7GDZBCWaYEzalEef9LD/ZaEBbZ0WBJVbsZRd6iuBCsxbTiBNljlJ5IYwfUX2QCyHb0cZOv8XVcBNq2byMYgf6LRwFtGz9P/7L3LKokgxV4HPi0wvpeO07gDfXbQgCqA9hPxa3837ibi/MrB7IoTGUF7RZwQbgZ/xfRSxK4BRKv1FY7/PgGNMitnjjwoW2O/Y5cB99HSnVQrwp9SIhkjpuEVGdsnhSt4YeDkQxGLkDjakHqGgCqV3nJAhJKkAXIrDwOeAHjtEV7N22wTg0/93ajhrHVys2Kmy6goHkLhizKv7wpZlOpJzEAoQ9+XYng15+7DB99Ac3HzSfgUy9Nzwd733uPjRH1uWwUnhPb7mcFo/w0se2KM/76cvFqERlSgDoTGTJQClfJEE2NgD8dN9KsZwIkkgiQaJVFzkUr1ch2FSN6pJ0ZLmrV18LRYVE03yTRobOBn7vOC70dMP9q1vLcrmaiX1W65bwEf+jdadgbFUD3GPxxUD9ZCd4/iEdLX26kZRzpOqIED8hG/PIc8N7sN+R1QvHJTzE/ZDcvhxDl7NFxbf6B77pEDpo7EDcFmH2uLdtvx4iO0pScB9SjN0Uyyh49I0XK+Qf8N23qFZTB4CAL+Khy0II1GZt6TREf1DrvgDr3Cuq8sWxynR4kKahSg28lcpC4uQv05H7WKuPcO4PCknqPibH0h9Myvu8xI8iyk5hZi4Dw8aa3qRG7F199JhArdv2WweCS6wt8HMDe7RYbmeylellv0ufiuWfWPD8URhp98RW5ZyGe3DMkv0LFc8+QBlM8QOu09pt75jlAp4ENzZ40pJ03YPdF7OiER3QitiV0VP++z7QAY8sOcBvYLPd71xnwA04gkpX1tl/r+m0EeT8wnjLG3TXu/8DdlUudsX4IvJy2vGLckhCFlKDxUkmLhJJC4g7+qWJx7q68RTGLop/Eggj00e8lubs+2rNjh7Le0RzhdyITHit5aY3dv5eQCb68NNk/9NzjHyJy+YxPhniVi2KYzQzTXMZs7tnZw95s9cqZCJyj2DdN/Ns3Gv3acz69SsX3atayVn2SWTpHcW7dJ/XwEUW5LzxN86GY+4P8fn/3fbGi4CTnQn9Jp8Lc0MRlNQEWTUapBlzU2yCRoweAmmsklin9tOBASWD3VL4o5SOel2LF/aXw00sjtyetvH7kcti+l/sFXmjVaNCS0P2F+wVBbN+k35yw/YKz0JX3EsFurXcj9PcphAoLy5Zr3o1H8yYjobCwQrlWHXh+1jSkrN3G7vu6GNLheK63ZGcZsn7kksbFzEDai5tSMpSjJDL+DxqKVm3HmDwZM1PdPzHUVrx7uphx0b9/3Gtl/NxPd0vWcfnZqHr1TuOt455kIwgb1mo3zDyO7L2Op+4i2LLhGoTuH4L7Xe2bNerAC+PGQqerfXJyo7aAn5gJ1TFdKoPGS2GyDArz5RBqUmC8k2MxBCuqDac6noJ9AXcKJhhIy7Qo8rJBk/HKF8t4TRC9MsfD5+rJL4QHrsX7IsCfHYk54ngZfx2f8uUYNjslR4JRsz25ua4z6mAw5BzuIv6hLpz1LUvVN17dN0eJvsnd0PYNyhehp29yx6Bm/gzFxakiTFMcHupDrziF9/CD9DOfXA0Mwi9O4Niju2PeS89PB5E4u9G1/tMDjE3bkUPkHAAXdh+6jlDNvSANX3T1wnMhHNu19RCB5moQvf22cJ5L5pZI0SmlveuRwS74zZdJIG8SgtXVW0zrSEpQIoIiilKkZkDx4kROnalNjc0o9YxK4VEygAaws+r3Ykn+yJqh1AAoOvzBd9qDPn9/XxjwhzBl0rqvaoO78bicMWjGLGBvV5CC9/225MpkHTJ9lFVQ9JJvB0AV0FJA+O/Hby7jhct3wMlBe06gAFAB/IR/R/zMX1/v0BG4xjOYNioL3b8Iu4g9k8ytk4JU46KJkWhOG824xJA3McwRE4O8jpiOJmrDmWTwRc34SHpTgFxwrAoT0sJvXzm7FGELVvJyWfoVs2sU5Yynuhl159gV5S3ZY+eMW9kERJ/cnwd/6NH1SlcwJQavF4SAlkk1u8+x/hiw+OuxX9yx7GhLD+Cs/D8E9ONH/cYjHb4F9lapMrJSOJBtv4E8AiFnAK6pxPj2kb0+n+UXmbiu/4BC9g/py0EyKFlQ8dxTkx6qol6UMZ7aMzzfdkbLmy2HX8Uv4fOnLwpwb9C8FdiDu9I/lgg1DPwh21vEOuEPszPMrGlb1H9oG9QrbQOatgVr25bA2pbGp4hw22uVPqvccX0h7H7n3l384W/pQkVgxw/pHzOvTgFr51GynVyX6GorGHebjZvupzRAg8XvFy67JIebt3oiTOZjDGNgWWGawnkjyxQy5Uk2qGwyNra8Ms6KmubgwTbQHUi/vSioP6PlDy2HXcUFt/CjVgWuAnACNG8Nh/It/m7vGXmwF3cRnEWHQYHct0ocJ9BaNCuxcGb5UT01Bbr/tW+cWTZ4U6lmpioVCGDBYlZp4QzLk+wW5MFK9HVP/ktjkwUyfwN979x7kN6nCpuzzfsq5x95AiawSTsFJ5LpUqZOnj7XUmXyIOVO1Q1iWCwx3CQpUOZrD/TxKDAT1e/cabrkoR2RwiMV3HM6XeEa95+B2LHy/0YWq4NSNM/kVPbMsJHI28QkO88Ssqdc+8Zeo6CGuev0YYEjC4aPXLDNVrOgRhyIAiCkAH3uSgTlcV0+ET29greDAVNmCHywywl7QzBuIVHF+v90DwK42LUcvEv6ayPzSf29tL/jpGi5v9G+mhYNJoImtKOxK7wOHhl+WmSyT1XNYyd9FTiZH17TV8qjkEFkQAygcHZE2Vb6HK8LBsDqsEWWepB3gP8Or921LTTiSaQO6HISdW0et03Onh8WDX44gX/cf+E7E7iO48z3Ptu9p2qFFWRr4wHgHTBu5iGYCeJIH6txnH4TmVMHl8htkErJdeWlfHlOmuxETbWApsMaZVhjd3jz1w2iEpxTe6t4qtVQFaAULbuU4uV7ArQcBQ5reoYgx+PYaCimh2oFkJmHzWrZu+J3M8lWHcuXwugEtrKlUFPUWaShAWQtjJ6/zVYLzgblcB3Qb1sm78oRnK5pcIFrvLIa6lRcquODXPs8y4GvSYuFmY9VrEDWAR2jTVKUPEZRxcbIb/j0P44RBSU35FFnkVFTqI9oUR0dpWh5lAL8jlKGdpQ0aybBBNiageHRkW3wZy3zj+Z3hOs/IYtn3Y7toRH5kSIUcxLo4ik3bk5oJFs8u7cO4nF3okClgGtkCd3N3b2nWvk1BmUJTVywhy0hiumKG6LK4nKuLJfGLZMMVaspNbiUCzAq1VkptWRWo5exgjOEKWLNUAzoRAUOJwWX5hRQr3jVxUpEk6hkdlbJc1ZJlYKrEOWiXKUq9L4Kec4Kqd6ahqQMBmIg1zOkMi54kaaUgTQvppoXoR3smrHLFDA4E99K+HPRVyP0IbhgyDAxGF+9UW15iHlRr/ELdMLpPVWzdwebJs/elADW7snDF994eIpvM25E19cEcAaA3rvH3xlVfu/Yc08hEIYPq7uu7CdZ8zeAOSMzp5D/57d7kd/Zef0Rbsl/oYvjkriKXK5UTsZBKyf7R8ulllxezBoKKQ49QSxgxVucy13mYJ+D/bgxHMw6mMrV42D2waecm75TPMnMiZzLgWzq8UeaIU/waeqBCZwSGFZtV9IwNrYHgyvEVoB9pORyLF+udJ6zNB1vmvDuyGDaumgjg12uxGCnJNCxtstjPf8nu+UEvuV4eumhaLzyPhLw82+T3ggxz+oxbC4ScndUGrYiKPT+jhjQbk8ewBfeeHgSjtatmSB+AkDOii29m+Zs3S+MGNBwVcUDo2atAu2bLhR389ZNKATng9AQJPsJFBxOiw4sZu8VXAnyXsahHuh+IEQKZ5ltk8iNlULl3R3KNmKoLw/QL88MTepRV/oaOW+l7zha30vLfemwRmtq4uPEYrQzFgqs5snn5KnGT5cloOmuurBQG2zPkH6rN+kP0o55kzkjN12vC98TAT8fH825WtfVXbcwVEb6bbToyDmkSuQUAoVbv4NK1d79tPCCcOMpqJT27iHW93T3A5SMOnIhnJ0rxY2QwmW2iHAzNTnDKUS0n7QabyTRovKzKlDI1M/aMZIq+fQhTFT7y8JLkM4oIRkKmQNsVkFnsxJFPj25qWXz8zdY0mPom89fP3vHyIN3vxqATfrBP18cBJ7ph8G4rUBYhdDKovW2bRgvRwKIuF4avyWCRDBvPbwp4h/BjI3EhiEzLPQVTnPBXFMJmkO8NowGoldjmPu4ZQKDFfAGvSYklgHqAoZ7J1KYeVgWVQHdWh2cWCUipFdd190nDzCY/dpEmC+theA7MKdwLasHmETshcZknGl9RJAqB0ijP2ic2b5wbZBZUQyM2nZYLWlVGJ4hawjYDRNzJ12uXj0l3NIqA0+79O4DMLp/f6KzxocfN8IxRU9QLXk/sDHRFVmSYTLLqxqMugET0XS0YxFyk+iSDH+DtV3II/enyPfzJ9x3NffTNltuOm3y/Zm4iWGycNbMuHjNItdHGCLnyeAm+kWoo5nheNDraALTKYe4JwihulSiWyZzXaQIZmnS3FPOXz6xLxuJob8b6aMazSiSsjCoAI2cCXmU+yElg7Q+w8KRg0AkZjVlOLImp5DLOkjh28jVRGs63BV9PPrAWQQsoA0wRxyP2H9GgNFV8el1wpthJ2xvS8GBG8kzCK4bHjgLzE4EMXdbg9HgZHI2GJ+I79yfvB4/wHv4Hb/VHwgGVcMS/qLhvToDwcBuYO0hhuO0CFVDHxHbIIHrriDqehXJkpzPcloJVY/kg99oLsYWrBIpEUxQMaOYdZBsKy4Y0E5TECeGvUU7y9KLM+ywWsTBiHfeCYPR+O+z4QfD394ZJiZw7m/GzNCh0WEHbaOmiOJI+0HUdAwYk4JvXLb9iG9EjwSjU0DCl5WvA0vR6xUef3i49gDwWqUHBw7VGw44RY7+rLspNuYqc025dtx+qU77DrSHdZgcJY/N8vzUD3jD6KFmD+izyMKeIhNBoRp/FzmsyqidfFJ8qKg4oiqzEaib56ybSpQOZ1qqVMXHCJVmdtbIc9ZIlRr6rtU1O1vlOVulOtvlOdulymnZjCFKof8lBkWGyFij/PhFKRqhVUyoyCdQRTyFAbXwLL5BmRGF7sfO2LvE4Kfnhu4s83re9A87BneJBSFX7QNmh3URaIrlkCWh9Z7WEwR9l2Z9p9u66tDSA4aYWllZozLS6hvgPKifO7JSz48GuvLLpegtbweFbBUOGHDhRVf+TexGsFOLnTo45fo8aL31N7oAl891PS5bsVM/JCycBmbh6anlW3Tg+aWLYViFiu8Ywf3FMCU1sXplK0gemQWBvUUEXlq5blJfMGRMLzZvrdw/CyeFX4jt2oRrQ+atZtt2dFBrst1FHpvm+cGt84gnOvYy2QPZjfo8KSAoTFHTbBrAezWOSliQojHYzM5KrCyvDlkgqYoWV9k3R1XMzup5zuqpUgPfNbKQWuQ5W6Q62+Q529B5o4eI2tNLDs4MUSdD5StALMqssehLiVlLlycNZWZtbRHkKPVY6rEiYbbzvX2hiY7lk/aH7U5JRCgjvf2YkNj7pRDPN6nVbGBIMoK1agLe4Kg5anJmRhUyZ/PlOcvt4fqtVXDIO0Hm7ai5bsyp6U++zhdgq8ZrEXr2GeC/H9OXPyn+7GrevB8UJo08cyY5uWF7wE+dAALrNemiA78uhklVEnxz1SYML+5Sry8YPKa37F/o7/5JrCCGEAlSjlsg6eRaBZ3ZWTbvP8UJivvQOY8PXRMjoOKnbJ6zbKqs3UnJvlkobXaWyyPa6b8LIyRRjHkxIUOssL8UfnJx+FvJq67lng/1E07oMy9sf9EMG18nDB+wH7CzyMJfCHZruwfpCk/IkYWWXbSRhZnTkfBg6tRZs8j4sNiCcIDYa2W5JZJdxgKy02y//xRjeEUcxc7iKJo4g/zlzjKp8khJib4xKmt2puQ5U1L/VSjCM0Q0JPH8UK+V8fM+8YUkxlnHq0ISRXdtvMOKP7MfoLDWHU//SKMTryP08KAnOsGPzYSH1NGJomnTyPAQPaQr0ZV+Fc5zEVwniVNh+pTUbe3FvYVeZBezJuYbrsUCYLT0MnJrioUZ5hSYE8CpfzSZ8UFLa9kKoM/vP70MLLD8uerLuAo8P37Eu3g5GBa5G8DXQSBRrDoLCL+8D0CcyN89i+/UX7MbAdkf3QQv4YtQJ/9tj/p3bQ/5p7Yz5EaGUunDdqRtT8xvsvlNGyi1adO371/W3Ra6dszaaTOKXbtvwUvAyBQQdyEA6La+KaB7Eug1CQkndo6Y/gaCLDeXYRnUJWe+lXEEqRcXVeJEioOZkmGnf9YMQBQVWKmws+vhJyC5sDMGAa6urvyP8VXA9fgLHH5/wh6cCzbsnbAXjNs7aS9oBvDAveN3Uw6f++gt913BxYmUw4ccorxODQ2XkkFMMtG1x7avHAyxfpAixM0ET0aCmzKPkUmwuZ/rQon9U45hqjGOK4mDKtWd6h9BqZJJRTXGU/dCCnUvUISAjCp14U+DxiF+LtR1LdsJP2/QKKBltysDdFY4cmhpENoHQfNAASyytrHT38TlhDA31PXnBAVHn1EZUe0lTbSLuJztk5jk9sKDKbtG1mJtxLUFu7uX535e4YegOFxUwOOlbdvZP4kQ7G2zl6yi9+v/boBPAHJoMu6qBGLz1uKaEa2zHzeVc9ZLpad+N6ImpGoqcdX8VfVYyU09s9TEdy2MaAuMMLyVWergu+zIc3ZjG72bWerju0xs5DSzVMOgxR+vYgtLSU9IFsnrNLLxyet4kWcob3bP9Ve+lj8br7mu/qxri35Mr26jMoX2XaIAed2zRyYcKbTvWMqiH92r+whI/qNTDJ6qz+omv+kY46qkH+v7n4bkDf14u86l8CrVR1LIV3WXvyoGPe8+BAzvCobAIfjXbkPAkO5gyCAskotgSDd61fWyxxCovMb3egwGYCh7LUSQ1/SDxe72vZbnbQx+DYwj9hplLTcxL3opIstTKE+QI5VY1U5LKi2njkp1Jqe+AhIihO4swc4nRIEUImFBhiAmkX8ZAshIsgtAFFKSrCl8hhXYrSLv+sm0d8iMXaY9Q2aA3UZQw4w/L1xlxGdCQD3+Eg9a1sN5RUN4fKg+qDIqpF+D9fBASL9Ga2tasRP0RztCQAe8A4cYZ/dsXJs+gH2WjW0/K1ph3dguF/4EQKda5OP3Ad5XB1RSsHTwTB/OhDlFxpkIETkz6uw+XQJTx4fZFoFnoomeWhj6OVoLQz/HDyz2uSjf5/5/EZMeWKJvvD+7UYMM41V/KC6uKjIdpI1MB/63sDRNf/GGpXkdftDDF5a+vTvmvbj8WBCB23nC0oLgwkpYWhD2SlLRal9QmvWP4nAIDLsnilYOyf1D1P37D7RLko0xLZGtog4r8sUaTssFqyCi9VIoxgQg+0h5R3pGSgaY3velC5ATGFmta/tlDZ27F0SVD7BkjcIXuoOIZm27Z8NSrnuCExReODlnRc/16aBR40ajlyKAEbQv7sFBVp8SjDpyYcSeHy0Jsj0vmIlCqcK28esrZws4pHjyp2gSqNoVyJ5ofDhCg/ml5t5Oov2RwaUzRA/ctI5nPNyUP4P0z046y3fukNX2tSFvDxzwBKBrlunvv3lAB0Uh4Tjs3WXBwC4V59dq0WFc4+oW49zZPSanQzjOhYXrYOwihG6eql8n8SmYlzkTolm41GQYP6/HsAFZLTy1aLdFM5FcVSTeGODf1/Sqih+yT+QsoTS0UgSukddeuuCWOvdRvoHSQIH+lEuAGGsXhHHkjP/vdapEEI7HSTlPjoKbGY/lUiJQgwPuIoXbLYhr8U9cWqpYtagOSQQxWsnidWkJcjoYZdLi0+Cip+MLxr8T83YmPzfRNaHZU7jNNQBu2wOHXsCDWa3pl0r9rbYNUf9vbXD42iA6YFc31yG/w9aYLW3hRwm4RnkAwBWcCq7sAbmnChmHFz7FxsHO9ZJ4VgvAcGJKoEh4A3k2LfSXnKrNywiXonrfWbStIse+RYScmJFuZcgwCR6WvBYbdz/JDInCl4osT5vFBQUtnHRwlEych/uiVdi1GxfiC7ojOmCfnTV6CnItZn7FEHyb3ELrdFsqqGXedrOmauLOsptF0+5Qi9xulVLP0vtYuIQiMbLgCCtF64drlq6/6trwoODnBxs+ijFNmNC73RNW+fwz4Kd8u3gnLqr0YYdvpqxBnjQJt9v9Ns6h2F3k3DrLOJBdunns+gc4h9YXk+u/yNeF2uyciyEffU/4glw/J18HE9zbyXUbrkXrdcn1h8r1WPcOil2EcxgmUzLFZKLXUbCcO4tzaF2onEtIr/M95FoEhastlBvAvYLBx28KhzczItjI8D2DU6VtwaCPmooG6NmhSTTZYJla0QAdfAox6ZR60QxaMyrMw3oQhr891KDitjJdRr50vczsXGF7WhUwS3C62rogHAV+feh6g7zJwW4ODqNtpnwRFxm+bW8/5OKaadagsXrRFkzGIIUkx6BqrsGkNNekNJfWVGvaS45qdBGP+Bn/uDA1cWNcp1aPjz5u1TFxY5l4QC3PZ66r4H3woSSXu545ByTZTssgY7yKjfFoP+DBmuwOTZDcRwNnCVBo4Mx5UpA2HzXAIh/RapIIndGTlSIqVbkJ3oTUNHjiUtkZ0AjqujaChfgXfGzfyIKjZ2JOJxQkXEb1nsNBrlquMDjWtRrV23PmjKd+s4eOI+0fwVF9039S/qtbLQGVShGAXtVeGXaHFiGaZRYHue28uu27PuvbB7QDSbgFCMeuW9kd87+6E3Mn6nHUZ+iI6w7YigXXcXANp6AjezZvpm3fxXG6e0xnGODn8NFY+Zr17Y026HWsbXpN5o9OHSSUAoHelwREazGVhr+zf2TBdVwtAX4+YgYMIAO+gQ44G9rHp1xvyiNN2jiSrI8jDB8h83/V+Ppvo0EeP0OqlGoAWdJygxZGoFhrmW+rZGtDZrbMz8ET4+Gk1v1Y8XYMqIpv0eJtfuIpVr2d77qm6Ow5DD8tmeKnMRkzXNHJc9BwJmOeKjImk1Mw7MTb7Ezt4ye7SSNj/GdfAahTyuOgJjoLioWiGFelgv6QBg7AicP5dvGu924UjHUtHUtEC98R9j1ZaIWLXFM8OX1EhxBeZ2ftED/ZSRoi+le0LVAGsQGp4Qfrg/Yyc/K/b+RIsKEtbJCA9+Xkt8bDaUk1nAROnipaKhdVy3ya+IS4kGHoDpNCFT+PkoqtcWJ6zzTvKS3D51qUwSMqgUFUt0vluAovphD7PZbpn2AbXfxcXjrKS9LJ1/d3NC/1kN3S8/meriOrxegmmRW9QkwtWQ6mYdHzVRPazEoVgkkTPtboFHZGd0k5xX1nNf0rIMptkDX4xYcNp8wPDJ41a0X7/E1KLTlcCyAu+uYdN1dJKrvxtclvkCM7XSkwhwzv75pwhmiZNbnlUkSt2ko8rqaiv8eR5sXFqqvV/pHrVIIoTjGrTJoEL00JEg1olVM755yplIBKVVXNqCl0LPuVluXQ4Axk7tMqGcmUMjKdUaoTfR+KNjvFikonV6tVTUnmRZ3Q8qtde99a/XC12RAYWRFU/zF8TE49gy5w06zKVd5Oigt//fTENR9ZERDjK99oNxxzfJO6H5SPN87am55osIsNWiA469f13bruBeVAR+EbeAkvnlx75bu8/jdgu7IL6Gfw6MpHGQ3rXMfXT5gg2NUzp8YKwN3tVOWSqMenn9aR7blW7l/R68QuSuGqkHGNSquq5BB5fNMMSsvvVnzVuJZSxjWweGWKNlCYwqvHtSzNtJIqlRhXwAr9aegEhDHKKDLMDAeU2VB0THX29HqQDKiI2ny4aMmclXn9Q8TI58dsG5JNwtBedls/m9UyKqfntNd1UAhxbK0xAA8P6ZdpD9a1GlMqFFWtCWEO0G+sdRME6M5b8eQ2YxbwcPfplVNP9ebR8a1VU2deXR8Awcp3xw7eNafbJl5XIPs+BuO6DH8ymUpWpvsddu8i16vjuhT3gFxvplyvya6/SeR1PJPX1eXrsBb7nk5EXuuZvH6h3P99SQ5bGu+W+Q8tOvAGk0fK/9NMX8kYbNbWr/rNi/PaLDo5j1aXKgkaNcYo2zIsHdVnMBFZSVNS+U2Xe/7Z81TMDPwnEC6CoyDG9WQ6RK4iiPbw0NUeOoswbVdnhafRxL1Wsl1+7WuPf+wfFpXOp7sY5RwzoqPQRgpKI/k0K00shbevtshvfjbmrS2Ph4DhGJd+G+D+YPsefo0LwaKiMRSTksxDMzYPtZXz8XOm+39C5oFiCiRTTAE2PxfZOG/BO3SjGWZiO8YF798cjS1WJkuPH05T0W4qlvUrc2qTQ8iHZfkc70ngdybgPYfhqGsF1/aOu1e38DeipZwqvOUFteTkeEku+t5Tbx+UWrIEyMt/y2sTqagVoG4GT6OjdMJZexJIexJU7Wn8JB46E76ZDDZszs9ZNer76kW/8pNOnnS18mIhkHX5BRnPEcyWuqboIfJ6HUvGsyaqRa7/pYyzjAH6CVm3vcl4hnPtJEHF5aExeTTr1lt6LJg4BXCdNFrQyJOQPA9PK0WzoDGsBKuOcS2DDCu0tBKFwN21tlXvO3YaNW46zKq4PfX7r+2tBCeuVrPiihBQDt8ICIfv/d0e1rEFPn4QWHCZmnq0vQuI3l0V1SK2bDsJKbZsCY1QY+54sR6CQznFKtNpEksVS8yRYPW0MI2cBrTl9NWUJ00mlNoeu2WzJf1xdcT3qLa92vj++WCEddkK+41doDWW6mfGgwD8JBQGkfY9IOO5XME4ha/CudXsKq9DVTAAhYDcpME3S/MhuycnivwDDcQp/ptCnLpOMIBTnAHOz5qnK+vqzuZcqf8jMqs1O1sGun8VjgtnGc7JICm6QkUlT7mcmiOsBH9jAgPYciakqoP1ZAclsNwLTpP3Z1bnXtAzI5GcF7SWXgy1U75mmlUTDJKUaHuGXQeSvNxu/DAnfjk+JmjeHIMT9k06CgK25T0UQICt6NPAYKNp8+wtJ0uNdz2DvcQAXpg4bNGpDBvYBRz7m0d//TZoPL70QeDYhBD+9deOHZaA6p1aTljM883PduIHC46GDcfO4YXTlznofkHO13moExfNJXNrlIoV6h2K8ed39I6BQ17qjtSDuY7LDpo36RjjoMX2DpB1MNaRSl+vcoA+B5863PS1ReN8cjBHMacpI46Qv9GkzeQWKsIMNlzkFKWjFQwcOnmkTIAm/AlstOCoZXkDQocPE3chvmELEPnh+XMxwa5uYoVhLXJmT250N7jvimrguCAKxu6h/OL8JXFH1oLq/Sp8/VAQ8LVfh3WY0wYKS2YMyOTf4meshraK5Zt1ZOtlIG5E14clGY5SZO4Z924ii1/gpnTMyPXRypn4nfv9knwYMgY7i1uclbG4YHsZH9vg5VeSMeNYjOIXBUN7gYzX5bmH+l/wMaEX0+37SuGKbm9OLekl8O+GFBFUKCJVYA9GMVwp5Q4p7oSUoeJssmZP+b4o9SVYpx9HRNOIQdAEars+Pns2PAqfKbJmvdk8KGh+tgtmu1aSXbcL9nYtjMUX7uGX+Dw6iZYAMGnUFASpPwY/QLMZr2NfSafwPuhSS1YWa/JlvJXF1uAQxU3gEwUSZ7IquYaiqC10oLyCPs2edQh+vGq9Kfh3qeGEhYGm7NGHmFumOZgHMmDvsve37HxZUUpaM3DUIh3wAJHJvrjzNPbEzo+LLP/OjDq5T5PruXgmmsz0onz5Oj/IfZrZYU2FucyPM14yMhTD/wWlrLHIPM58CXIWZjJCYjL2h2Mh2WOVYH3yRC20IE1A3ly8dNYDBU7xCKhZA+NGwxFjXmIc/u07GW0T0svMdoxxrc8sKCJTNg/O+Nt++By0njGdgmtcG7w2L26G6jH/2SgpoHg//Nb1vqIfvK8f9WH7f9cBCqig7gA40g5saJd/MvzizlrNY+okzHZ0ZHawDChWuOjgactx8wnwkFrDSrxQ5Xsgc9aPzhmLB07w+R7InA1g10voCPBTr44Qp9YRwCeeeCTDik+mWPH0e4St7Hviye+eY9//RPndj9j14nKB8WiIpcjnk5Q9XwmkK9xsJgU3n+KtvmB1100UHL/FMn9beKozVZEd8vfwnu/hMkFp8j2B7HuibxIZq/DtkO9CPMPWaKJwV83mGLoG+a46N53lPZgIi4i8mszauYR9Ltj9i24sw0zbreLASvRwYJE2/SnLM7KRg5V2yzgeDzw4HqBnFqdIswRvfLU5sZUzhJNcJJdI0eblzPEwXz2UZq94nShmzihDYNKTI0zDZhn1CjBgmqCImCUGkWyrCfLpSsWD1ZZOFEp68sKnx0BwnXoR5lLn8bfvf/j7oEgbvz/YaNmzbNeVmPrHA9dcb+RqIpqM5jXCSbgvZ/v50afx0f0I7QGVvlgFenVatIHnW5wrU+7vIv7LK/FtG42cJNtg6e5f+QKKVQG6sPes37qb5NxYoszDSxCs8Pul33QmeeaLfU64RNZRF4XfDyh3pd5kVdres8XoOVu4TNhc5loiI50iZxVzvvPlc8/5QtbIDPfzkvfJnBpiuBxDYG27B1rR+0ypzlo3if2r3EcxQK/TtURjCrRt3dhKSvbdBbhU9330Jqt3GyFFKNzj/l16JUwRDxVFVCA7tKJSpQifbSVERTC2sMCIEmxhirkC1ICfMjF9KsjgO7n2JfKTSuEm7zlNAesL3zj7i/4FGtVzzAfmkPFzNsShny7sw10inu5feC4TocdHKL3GrDFzliHwMYu1/YazKWcz6U8fKUDLpe7xBP7rLkTQ41sKhoH/uwt2dRcMrkMJfHY0bvL2R8EB6/98/fQD/WOU2S/7gDlk4tycOH7iqXdwy4hHzgVnM3n06FMwaCZE88bOW4rAIR9Xh+6Zl48om5zxDf6Bj0jGiXhXwYnQcdlDXnru9tbVBCh7XuYBMXq/OxO0k9ciWbFRN5nxpvrOz73YE5ncWnktFruPcW0wuZamfF89Wa4ZU51Vb7LkdB+GJJNrneS1OINTpF+Vmyyvm+pwcp2KRQcTlb3FajfI+yRZx6P/L4pkTyYqv9UG1FR+S7snyefob9HP0d+a5vkt756Usd/FCNK/28p3OUBreleot0Xsuyi2189sD7nl7xrIvkvvxTry8EGx+boqzxd3m8yXjLwRosh/GZvjoAebg8uOQcod5mK8Ukbv92SCIHluyF3xN5lhqsL5uOj9rszWnHKX4yaLtXi/q7aXo6of6O39Lqtc+eD9rvmCW/kuch+3mTSmeO2D7SYzM+n5S3kwWBuvKW1s4V0/qjbKuIZs/fwlt3HUc2XcEm86rfJ3VSRn9vvsLB8vn9mcW8ZOwjk0Xi5jJ7HrP3t4XHTHxABzMrgVwJlTuApondKGl6Cup83eEFDMTWcZ+XcYFp7wOfkcprlF3AuUrHwum6xpWzEj3Pe5NGI7EL2LfG58e86czF/dV4a0pgiU5+T5MuDG/A1Uk/z/zx3J9/JX3UvcU9kd0I2Zf6ipxj9UxDsV/1BTjX+oCB5jskvhOOFCuNe4V/gu/pkbKCSAibEQTVoTki+Kec4QmhYlBQV4gom0FNwBVH65M0tBAn5yE0/HV8GzyTHj8VNg/hZMBWVx+Wy4zpUJw1yP4Lo9MMv1HAa5VtE2K/iZxdocpW7zP2Mnh5j8tdlUrM0mT5utCUqbqZuOtrnM+q//3IAL8GMwdG7M/C/+XM65QRh2zgff4TIgC68C3+0Bn+CtYCBuptSvoz8VfpD2KjzH4Dw/vg4f9yXglQpOXqMQc8Vgg4g6nFSR0tompkWBJJmwmN/V56XL9deyr4YGBGzi3JucPfGT2R8Eh4wZzm+GYX+3B2jchfnLr45zVYQ6CFdNGrMcMd3sAVrM/B/NmR5GtEHdbObrcnA9pYj4BCVmYfBXu+eBcJX0xnA52EnjQT4KJskiX4/I00JcVarMWg/TBIruVBdUq8roo7mEJKvSGahf9tWQgIAc1yZQsU/BtVqzcsLuW3RmfPsv/F1P/HjGvpDg0cMBGv/l/OXfZgMYVhgJ4f3bfbqDHr3wt3jzedrFFZPHLke0T83c93UddOFcAleFmy3p5HiBrljNscMfn72XlBOJsQqzoE5+FameEcnKLkqllLvMUrKaplNKLV6vx3x+soPHYk2XiaVRSrwcPkhJBkrONLuhHmgXtvTLOW/2GJV/kef5jNSV+0VouW1C4jL8x+6J26IX5m6SRB5eyZg0fUsYrwOwZ8eZg3VQdIKwhTyaBBsXto2JzajPG0A5EDRoEBj02g381jG+Z4/DCH19uBYY/RqClw+EplUfMg6iCU1kW28P0Us/JeugLPeaFMay//3kAqaQNynM2V0uSHHP85piFdVSCOVZLDZFrZlLcUEp8n5jCo1c1ZqUIcjmOs2LZjwcnhFiWf9wkKFLtzuJq9btMkXcx1sSQerTP4L1azYN7GcQhQoV5uaIMOSXICQucb+7YaseTBs8TYAXweTxuQZwEYBvPx+zt278rplN05tDAzGxABuPH/CuYxA6N5N+D3DfYzkiZbj+UpIKz56thOJBRjWIosHMlkB42ViFycGuWQI+A0RKZq4OsgfCSKfqAjWxeD3A0OjlYbB7hkGE+/iMFtl1BBR6K8RgGfvzug1rBEPAvN9i374UGrYXv4guOHZBL7yW2a6p7qEjjRdGXp3Sri1o2zYHf7sd8NPHt84S4TGgWzLfCE4C4Z1V7SakRk7uyOb5dfwJf43McwrXT0pkSJuszvzV9LSgtFEJpXIae0uVEWOWQSZJr8MF1cKX5zdZ6RmtISdmGMwQdTQ7SpTBm5NTXo//aOW7JtPoTHw99s+ffw8OwX8366xHoo2/HFn6zLxB5dclId5oMfXpC3ufBFPGjcpCpFPg1ue3JsRM7pxWbVIg2v7yzQ6LxoCKzcq3njFqtswxuhy/x39C5jWB9DNWwQOLSC0J6+ql4QGJhpL9NKhj8p5+lipG18TmL9m3jm3U2vR2k3VyeexX39qNnTvj6zEg6NhVozB46OggpNN9FpF8dl5m6U0JumBDm9Zg84dAt7pRewiOA8G5uv20ylWnJZd2gB3PdnRYnwUqtJ3dti1PzsZb7p/FlgzrbKCUoMI60+xVFmwuAZ8QpI35aCjH49ThCikiSPAQAaqJcEtKMbJHUQ88ZnWjvz7va08bv7lM6DJ+wqdEclWruGSPAC0PieRaif9894P9FnTP1Qt/g58L5/nAbx9mw3cKPykVW5VKqiQQyHbmbbzzGEKX9zG95Zb7gS6Z4Z0NlDgV3pkmjUuDDOFZtSX7KWp2p6r+OtzTzwQ1I4CDV6rg1KKIr4QHZlza3iYsqde4WFN/eGGKvnbd0QuDICDiWTBOyd/0/ocWfjyu9+tFdI7X5zjbgkuu8h0GQ/TwZu2+fUHfvifxoUM8vLBflrkp7vsiZT2L4bIkG0NI8eP70ADDaPxrXkB1i4a/MoBjGL6l2NN0ssDDD1YqVb8U7KOKVciRqJIT6YXuFyZ/zPMorcKSvd4Z/Gv3u/tNKa4NFCVkDBw+RnAWflwqhgyRHsQDE5u9H/HOIzy8dIBzUyci9SuyfgaQ87gMmccYbrykV/Xz1ZQTHmiwYl5sFvydTs7vcKmTSEvlRW0CU5Q6TUIK1auoLGWUbqXPGVXVB8wD3LdN/tH8tuCtNvlTeF6oVWnSChhyi8zo5Cebdh8IBJ8SvbombgSOucrHxqU3ADpgfcqm8zMsHebhedIErjWxQ9cKZ4gW1UyyMy3KDx+ZN8ZlMGsZi9VRkGgDx5otsIowFiGyi2oFgSJHxgIyY7Djzt+zbGWic0H8+xdWtZ+6+a1fY0obDUErxryxD4CgR0HGZfj3MLQLRL8DdB+CmM0AdT/UBMInn7matpzyBg/z7nbvBvZ9i5+uZ/NUx/2A34M6cLGUj1KFFctAh/6JdMfIOG+tJXgQMlLS7DZawQdZRgTtR0K8Tva3CT0GQuG2XjfywswVX/YzCZZNv695b1SDPnMm77EH6Awj98Ph60eP2npyMI9W/rG27CbXcgAbH6mTu6VfvWFT5f2z2n1fqEr2TyTXRjIoWJ4lfEysPLFkuJvRIjjt6uRnyQztyoJhUW9R3h8Z6g0Cm+BWiahfIm69HhABt+jdAAAtv5h4cQn+c+97+03o3sWLRQtqEZmmAyGcO4Zti2t4x+dsW5A2jyPrZAPZCxGkzUZVLZ4mncyTk+W3zTYN+JsZ2tRt9q0Qyv/Emgz241PxfHYCPtydLu7KkxYbhdAfypgi8MsTuyUTC5c/jY3LqA/QY2erluDgpIuF0CujuhK9MF44y5UjezeKVc3K7Y0mTYwuEf4uE81yY8ukSrHESJJaltHuz2JEu+xmKZSjWogUK380WgvMA+hyUaDpAKLl5elJZC9QS4hyJHoI722xRGk6uf1IcNDmRXNzQ/4I2IH/2Pzm35OMIaBS+8p1dfptwPzOVaBHL9DC0SuOB5vmzT+WCOdNn/TaJB7OHAwWnBjCw9FHphYOLd+oy5DFnw/ihTsfgT5jID9l6OBMQP2rxHYq7eF6AuuUuFBTGtf2xIX4IsTwh925RF5s8cWFiH3eV/b545GMO/v/4+w7AJso+//vGXeXpEmTNk3TvdLBDlBoaBll771XKSB7L9kb2XsJiCwVBFQoJzIERRkioFIHTtwoKrSgvqhAc/k/z3OXy10pvu/v7/tySa6XJ8/4Pt/nOz9fZqt3iGAgGM8h5jOYwOqqMds8vc8d4MRgPVpWb7yWgusK3wzVG9eIPEKz8zjI8yMY3nYX9fmtir8AUeuIYqc7znFiHmuzvoL9CiuF2tTsAuFam9M4jv+HtdlPrWE+OoThrenkoefLtz8Nngu1r4Vw2h/b/jQohNrXYrns5dpHWvujwT3FLgi81MJiC9qJWLvMltVPfa4exz36HFmTTYY1GYZvqmuy1bAmw3AqXRPV33JK89sM4V2ggeq3idX5ba4LizW/zRA8lhNUv01eyG8jxIhHgu2gO9wtkBq0GWm15MOvs0L2Spv8BGG22qaA7jS7HXyayQF0lrzXi+pq42L9PKS1f5f7A1QNfkPzGIdrNjPa5z+EGVr7d9v+9Uj71a8X1dG1z88Xv9Ha/527DZyP9N+q2feo/+lz4YDW/u/Nv6mo/Wxj/69p7f9B5oevqP+uUP9vC7u19v9oVlxR+zmGdRd96rpngV5kfnIi1PU3YCcb6ZXSxa8CUOkiE/Rqy0Wo1BH8lvZ7NQ0+utBa/AkSQM2KxhIXGkupbi3+nPKworWu/7i1LmXtW1VfIms16AM0tFtK2rWq3sSieopPibVlaqS19R/SVk6orRh9Wz+IJq2t/0zhQm3l6ttya23dAylkr2htufVtPRC+19q6N114tF9svRK19WL+0seuV7hhvTQfKsv/XMY9fsW82vey5O34dcYXKqv7fz9nofYzeT07A5hvk92fqvOLntX8okPw16CZ6heN0/tFGV9ooz7TU+ELZm9RjZAfhbRTW2tnAPcuaKS2E61rx8Lf0/yrA5oAtZUqof6T/fmdeCLYDuEvr4JKQSrScn/t2v4hbfJ9GH9po/CXahp/0fRlj2LB1o33Na39u9zroHbwG1ruhF3jX8rYZ2jt383+q6L2K+na51uLP2nt/84dBXEVte8Mtf824y9K+79X/+aR9lOvF2UZ+39da/8PMj/WitqP1vd/t9b+H9WKK2pf85Ey+hEbqfRD+cvrNF9ZoaMg3Wm/E/LVMPpi/KWNwl+yFWqdWkHljOCZTmMLPmK0V12hK7RZoT3oLYoMnknkmaXC3GBNBPJMW+pp0D8TCMhbWIwCa4fSNirkBHL7hryd1VfIpPUV2P3mbC+MltfzqTQ2SsGrIr38S8WrWsvquql4VeT+U9Rvofr0TgV9euTsrKacnRbq9VL6yfx5bI90U/fIKGWPYC3mgbYjeNnZma3QNoChs1OzYmUqUQ1Km/xYRtvdFNpufNvAfZW5DK2d0s9DWvt3gTl0dmrtk29U1donfZ6htX+31V8VtV9Z3/4WdnYq7f8OUOjs1LdfJdT+NUbbSvu/N/nmkfbTdHtH6f81rf0/yPzwFbVfXd//3Vr7fzQurqj9qlr7dN3Z2Zmt0DaZH4UX/xWiUu13MjTaZnTBaLubQtutFNom1PFItQKPutb9Ar8ImWI2kaVbBOVDkP3Ib9TQfiOH6IQ8lSdBS7UWQt9Qn7TWQ3yyfPtEvq2g/eqPbb85d6aC9iuXa/9EsH1C8xkg95H288q1vzjYPqH/GYT+y7dfqVz7lbT2BwAHqPNI+15j+/TsYO2Ts2MIeKT1qsG5l9cLmUINpW22j79T2pCX8Tzer7TB7j8Z+Ft5nvcy/pGr3n+PPd+W8LRazC/ZR5Ollb7/zHsZP8hV5wYTflC+706t720JndZivKGPOjfjQ3Oj2Y+iDHPzitiU9LOVSjs20DT4vGZXS9S3zw/ib5PnW6u00yNwO/i8lnWU9Nj2m4NJofa1dM2Ex7bfnHs91L7m0kws1/7FYPuMX7Z+pP14Y/vCxGD7ZH6mhOqAaO0nlGvfp7U/ALjJuVF+fpLK9f97tX1CO4Ulj8xOskY7y4RXBKi0zdb8LqMRQgv8ILxJaYPdzwjlkjC9saE6l2khvVGLTbEYa5IwvVGJVWg+T9uFWnSBGiPB7ZH3sDwV1jb7zRc4B2vDympesjbofV4MzNL6cirYFzKP15VziuiObn3cBaPFAvWZXOWcYvql+rusnapaOwO4i8Cnr5yixVzc02qrDEgH6hNxwbHKrxJ+Ppz/nOJCtqT2BMl/UdmH0Ax7w/cdAs1OrODzs3As3otqOVqiMd9z7d9vTO8thGP5H5V7y7lhwx53L9BRzkduFtXQLHBNlskMNwMcl8Ad46ADpkBUcJS+wInH5sN1cDf5zDoLuEM4BaYJcUS2TpREk9lo004NAqfR7DuW+5ADXpo2OiGxOCpTiOu0et6u2TdJGyswB2SBY21AXRuMQaUqEJYKiJECUwfAtFEJScXRGZjrtHLB3mU/cIDoC58CF3eZtBGj9cPklbBN57hRvx43dVh8widOj/xp5+ULnpn1HRvH+xiAj0gfiKwmmcKsSh+8FDBBoL8s0jwOkTrwwFuxVos5fVaLFtZogVvfsXWblm1avTt4DbVV4BQ0UYhzZKIGZrpuDUAnti5bMIc6CTTyo6GN3m8IujA84z3yWdiPC3Amsn6pki3Sqcbh88U0nVrXd2a+ULsfTlGMlDfxM8fHpXySGDnr25lTYlOuJUXOlc923r3p5LGJV1t1fn79yeNTLrGxjSSybztWg6FdBQlZ/0NSseXfKsxSUzuuKm9aUbpS3pIChtcvrQ/Goklla9Ckd8FUeQWzKwYeygPxUFbLYDb3aHqv4WcfDfb4L5lYBoOjSQ+MT4vBR7BsoshipjlUBmqn1Y7TZCd0Wt7YpKSJvC0ZDBtDr8Pz6BCS5U1jwTiaq3UWHj1PR3Le357N506IYQd0ndbpk1C4ndEK8h6xkB/+PP46pTSGWuUSaUhzZt1dwpyB/SZAcU5h3wmwbMhsOHVA1SGTp/RjtJEd+ANBgMhej0Q0fjgSnAnex4e0+1nKffp3NXea7H1QA75PdOEYicO82gcjoAmNyAm75rkGzefJdwRuR+AXUeAvElkvnavE5ZDzqCt3QoLduqsVPWNZRc8sdq3KrvXYtQOhxwxvUZY3ZGBPLlefgOYQkZ/nkVONtxG9NGE/vJiCKUQ4kYoumFRclET/IFWDeuiP7NCnajR9luKQNimmNU1ah/7idkidoBElLNpNs4IMqJZI+0w9e84scsQFPXvMdMwbPhn/Bm+Fv/nUpgbDF87ZbBJsry9tPDFlGHkv/DX/aZNoO71g5mYTH/YanI7Gz5AP83m+Jt3DzGJebqNeYaCIz6uX3yPMQj/2NT/8m/y1YU+rha+XR17AkCUvQX70BAgPzm++6hUIcuqNJ+/n4UP44Py2yw5i+NK8xquKHuzvhId3Kstv0Q3C3i07Ne1JXlp0pp96tWKf+raFt1p3hrBn6w4tepCXNoRO1qEy8DQRigSyu4PRiaCYnCeq7L4H/QeeZX+ndtZ4ZjVgTE15ikLPqxxasf8XcCvgUHSAPO3gaBoWFHkld5ZGJXmQD2SDzH2bvgKg+6vQKs8Fi6PAErq/75PvweD3KK6eUp0Ase+JwENUnszrUH7lKMjfiw7Is13yTLAdPMX66Avcwfk0Po7jGY3zMJnxjO+58egSn0FoXKllTzvhIyvadwaaMH08nSxFTnkCboS3+QNOEb3HTYIbDXozQwcrVnJqxsFVqBv/OhfJtZfsuhrJhoQagzOWBYI49R5LpwIcZEP6xHKy3WtH0+Q0ivJHX8EKWGdMk0lT7F3fbodxYc/8QW+v5F+Z2Tr/xVUyDy43nAdhP/+HKEWRbc4R/vwik1eqMP/BtUBNeSQZP9Gu8F7+EpfJPSNF6+oKGXZgEH1AynCzAJwMAyKhYCgbrBTV4BicRgZD7rN76RsnYY7eY3ZnstPrRAWSw7DpdIC08c5EtSh4KmGtDhaVC1JFVnbJ5yb7SPRl+ygkh1JvKCuHeTEZshBC8vdiVD+4P70Mp7cYkmzZH7c9cmvsRmcMcF08esV0x3yw79zwSJATJxdHgOrgk+oLCtHlSyD9SD2wfsa63e/cE/AXx8AFDBeP3L1uBpk4nub2CYUs5jyZ83DU8vKGZGExPdRDmczwoFPZNZNdK1VUe8UwmYbaK7qkxDg1yZPtGckOaGldZAg3CH3KKKZwwOE0HbQosZh2IIJCbVPel1ZMzyHAOG0WLUFDt1+6Co1KwRVEj0j+IQ9SUZl8rIgXRaUC5D2fnUXhuoAvi1/9UcKH8eRfzzufy0d6/tXz/YT34sm/nqWfgm497/l/2xz/hzywtOl6WNPplcUq8ejC7i275UhQSv+Rt+CW7AK3yr7ZsmWLPKcjAtdQSyVPo2qgROhN5jSFzOZzUqYym5mOopjiCmiPOQXj9bEYFRbq1WBgkg1yRFi5IhaUHh0UqprFUqZ59XVfkoNnh1tf64JFcVDJrLZPVCBjPTCVFovnk6DoY0lgLNYq0wuE3JPDERTaZnoj2rWdNcs2dORCecL2Af8pA5NnnxmBZ9QoqXHyYeuFl5t6wpy7t6Ml/udio5og85suAJ9fDkfJm4D/J74IoP77xwMgyvflVyB6uX/BGhNQ7a+BX01RjIflMB7WC3fmqERLdrQ4h8wnpdAsripXg6vF1eFuSbXr5tBR1mbjItc0ds1i1yrsWoNdaxZX4ONmU52sj51IrggeI4QD41BxYBT4UMnOK3XFjIRrdkgWpMflJDRck1EsoVJC1ZUZMROiFdmGqsLoOZrRM6HzWMYRvMVF1YrpatVm9+sUqyU+DZSNCFVnKaG3GmUHqdvD+zyEjeA3QNbOhwc2Jhxr8lWC/EVJdbmspCQ+kPCleDxhg+tOGKj86lV/wdaW38MvtjX6Qd7+qnUgaNKqmz+rQ2fwlyMci+CA3Gv3c7v9X8EM+o+8pXfAAb/rOfqfDE8fPQrFypDSvCNQJuQwfIB4boTEKfiBERUlwxqgSAzMQktbjDRIozrPPc9gjyQHA2YKFWfKooCCnniYjfhoBnSMs1DuC1tc2aV1eWhZRAFgTn04r6QA5L6b9WTpxHj53gc4l3/vvPwWaFotYzoPKRjJw3fgp/4SCM/D4/5+568p9TwC/5EP8bFU76CxvzSuHHwNmxJduxk3KzCWnIJKVeTkVDBR2pVKK4CTM7JjoATv5N8h3HSFZNWdObFkfLHl0aikzFgG5ZRpOHMe2ddECM9k9eLJldBLNDlqopOjvdHkqHGGvharD6KkiOepDPNJOWO0ZGlWllthjBQ8WYmUEZUjprn8ktkUNnNkv8nizMnbvh4adTh2n3t/7O6moPXdJ1bVKizcdLYGGBQrv+gGfaG9ecMnJiKYdjUeohX3t4PV81cDEURDmPS+B8JDL66m+XKYa0rOGDuLOUkmUnNl7ispTuGJcYzq42gH6TV4thhC7bUa3WH6QuP0eLB4G0dwFoclxVLT0tjS2TLQMsFiKtDvRiakNQ7jBIeQItQUGgu84cxhgNmN7TWzGmd1zhqYNSFrfta6LLGgXJROSnFRilc950XW4UimDSm8NKqYZqkgtpvdxWpFcJ+bzq+Trx3tzhazBNFnBwImG5NMcHVAaBXwYkYOODPg75WvJr7iOpEoeUHZ0d8yfk08YrK/mfRBF1k+BjqY/R9EwZr+f8CP3qnyNbBJTowA8dMoHiZK3g3bw93ADFbN3g0rp6PdYNE8cL5y+19wLkByA1AfAlbHmkz+Upb/PExy6OJmDMBG2g6MMSLksBOVCTVULyHqhi4XXWBorIpiYtbnEHuiRZ/oCSdE4Eqlsco+3pdKozxTcZ1r8fjDzqt9JcVgmFwqT4z59cpQf0kX8En4WfmnPmg7vt+zHzi2/6Uo/4922H8NfAUe28yD95g87QjcxK1YzN96KV4XC2eAWdWSGJwRvAro5iZjILvKTTZojKF8hamY6rVutpPCmKjhNMBOuBgcq4KXRhbbrooiuuh8KYmPUFiQSHMkaYGGfCjmA2c2WWxI1hvlROYD3MoUf0H+qmjKosE/ZdyIJv9y/s4g6+y+lfFbwaFvkk0w0P5j+bVDELpgr54f9prb86NeIOfDPh/1ndvnoz5+IuaKtzsouv8Nip1J+Gsc11+y6eK2GE+pEEVLK5qgD4KUOFusWjfUqqu0zdD3qZ8aKAg8HqbOUbANJHp8kVw+Ya15O05FmMMTS1JNfIduM0pn/tMys8RTB1T70lq1BI2o9OD0+DGHPxi54Hgl/0i4dZC87+srIBb0rQw/ZHaan4mwOZCsYTThAdPVquq05o+tmHs8GqIkKPl+FNJGB/qlQpsQBiDZLWRxddJ5FPubi4mqZPmtxjLhGRT0PigSMkxa7CFiN+DVoGv4lXyp8l+VLqa/47zouTibAtOCiEj5nXvyFSfIlf3AvbgoInzyaPnKzZs3r4y+At8F/1z+4h8wGuTApfPGLWbg8Zg7G7jJNyI6RwKRXOpxDbhNEmjYSAXhq8TO9GrsmkvGnustql9BKHk6+ZCugskrZoFwZFGEcinCoPfHwlAUpPJIOmNSiV7yRqoRejbRIdXV6/6agk+OBVdWTiarU0HBmMhkAIMFABm1f6I9wtuWPbOmrSYa/svzZqzaC2vX9rW3mGH1rJrNwsEPc7eQPxxfOncbUfVfT+cb5DTqTtT4PF9+b7P/txlo/EycMX0dJAp789WvQLxpMqjXuHeLjrVr1AMNfPIYuH9B81WHMNHzm65+WV7UqiuEPdp2ojp7vzZ3iMLK6s5ztQK/oR/4AMuF7itFK7nQ0RQyXYO+11A3TFy4CjMYAjygNMIZSsqbGN46kTdSjUAa+YAw8Byfk02UUutGcEW5kQJPZQdw2KJTnaNxu6lR/YZ1j7uyef6aMBwlP7hgN+0YfTGRhznd4sRocfLleY4I/jR0gW/f/YbHJ1dVOy4XDeuYXWNrGMw/+nFGRg+e38aS2TDFDRV/5S8QnT2C7JbK3B4pRTkvUxyU+FOYNJASqjdvqB1ciXyoZCh4U2F0u1Y9V1QZuUpmOhmETIUL6svhJIRILS2DsmEpi70okZRAnSBGNmoSrmYj8jBACcoeG/oPx8PO/hsRH29ZszdMdHyyed0LlpdNLVp1GGW3mJq37jwyXHYE5PePlfplUPf4bfDsZlhj10WMzz3Tdv8FjM9vgQNHQjT2iR6FoyGcOODhbhz18DZf9PBX7CZ0UYI24isspyyKG1sBKqUhtphZ3igaP3AJwUQGBp4jIcBu4GLJBMzq1g2jvOWITbVQ0jt2BggcUcwCtgASwwAZZDzIRh4VZSsVNzrUoEGzcYULc88tHTBWHr+kw+QOyyPAQvyXvAuCufIimCAvATP9N8AbcgtwqpDR9pzAr3ga7kp4ZSI3WIpSqqRFhfTHCg3MUpwCVBlHmKJVjxLhtOoKxkGVh7itOq7I8Nh8NGqalrdJRSx9GmWKKNWZiV6Wzj51dUR4+BGAli98q9DC+50NCtZ2e/3JyyueqQMtdfv3n4zhFgBXrQdR2zBe88/6WvKx4Rj5mqOqaLb8G0gZTXW7Y4E/+OX8NiJBX+XawCXktRP3J/O0v4vMZNQOYxQc87EvDPwhpPInyLPvc2vgJvodsF39zp7Qd4IpHOw7y8h3ovn95Nkr3Fy4kX1nvvqdp0PfCaYWsu+8Rvr2Kf88efYStwGuYd+pon6nZ0V9ozmARCZpzd8jK1Sd6y6ZangZh1Hwf1TorlDNSVuw5qTNkFTBGaR1l0PKMiAwuIOIRlk5NKbaZWHBvCwqXBfYTnGR4JAXRiNoeWpci0VNreufK/5asO2U7x9Yca4fUVrX/7Bt6j4X0Yn4Qb1m7k2xhU/BPJ5VpeZmCaMU18lmAMufyb+1JJdpH2G44veN0et/m/MO2r/JlZM7ZDLiP/igR8d+TA5LDsTzPcjeEokWzoxg+s2FHcrBbAAa5xk+JEjFHUp/9b/yawkQsfcn/pMH1YTNRKZ5Uf4TP2B7ta5SZ0PvVkH6lqjObQDdLhIZiDARqH1mJlcDNNm/CaWlPdydAE/KDWNxpTQ/BttgC//Ec8/Bd+E7q8/5nyRjeBaORf+gWoy3UqRcUA5HAF0ru+hBuXDsecWWW4fILWbSRxPXgPAGix5T81/TU0W9Ake7mk1ZAuGSf8O6X/srvzWu2AP6gOp40YPOsMkFpaZZm8Av4iGy75M4L9eE7HyhaTM1C7MyE2vq6/e/WlDJEhTSY4slMZb2T4pmL1SkzQ/NVzqrSFM3dIPG+bB6iITG1HQDBdbSrZT5iCZk5w0mWSp1g3iF5GiyD2XrlDR3Re76z9pl12rMvLv4qfMD7TBy159rVn5affrvS5dfqpZp+5VQXdrOJ7+uIgotZ7aYLbkfrBR4cVjvdlvmxQs4M6PLqFlFMGa7XLYeY2nz0e0Ir/Fvcm8BPP28QdqG4M5lUxeCug0z3uThp0vS2+0dAfnLzztyGoycjeCAQ73TfdOzx2D+CpOR3XILlCbEEr7ZUAIqVpJmfkjVLxRF2DEZjAx6PAk+iAMUzU79YAoGSHZdfj63gyfXtTb+TddnB+sOr1yzcuehtk6H38Cu03ZchG8deQeC6BO2gd3U+twyrovuc5FcBpF5wzOzFKQuolGyEDLFhQBVrD6dmcOI7UMUX6qEQCbWuuhC06Q8F5NWYstzEI+uXJSDoTA4c7JrJ4FsZt1LqwE9ZDnL3xHXjF1d8EWH6rMWRo+d3WDI6GH5S5Zlj11e8FX76jOXxoyeX6vnvh41li5C60bOcM/5YjSs3LAKnH1Z/ZDQPwbOVvbKYG4hjsJvc07Ox1HMKaO/k+hSIrsyVVo/QBPDzgtTDOFZRDhPZf9zi9nMJPGi/8Hzoya94AERe+Qp6eCfl0bNOOKRv98NtoEhP7TYcenby7da7Lv8rWKvucY50Vd4omM4l8LFcCsbc7nPOEQ0JpDr38dsjG7y9z/xcPL3NCI7hv4+i/6drFke2Yg/kP3Oc2auniSwygp07+Hix+FRMT2Fo5ueCJpILYbuJLvdDJwAZpyR5ei3ZFhFfmsTyOeL/HH+HHgDXJSTZR/4UbF7juT2w3DeQj2UXC53LEIkr1ewqGYhuDT8n2FwHlyIcwmnELkqEsc89MzRDb0GLzT5E1QPHMwAIJ3ZTip9cc90eObmMx2fgfNoehZ4ne6Zq4HhIJoItaLq91LDBFT/uNB2VqHLft6Wvq3T4undel5QsWWJkNpeiONcXCy3SBKZZYHKkcFaIYyHpz4W6ypen4tXIeqslstDDgGgl9D1GWCAcT4aKpvNLC4K2yJbNZNmknpQKhlyp2d3p2wN95Sd67i5be7cCZ9Usn2W8sEO2KP0dAlachR0efMjDDLd72bDy03B0bKZKiY0kcLwC4SPxHBjpUgdliUTF1MrcvkbDJwGXHwtlcppOM8MhV4VYwNZqEyR6mDMxuv05EPKe5KJ4Ix2ja1bMN0e/lnKtR0lO/ak7AqPu3Nq7NgvA7f5pg5QOKAv6TodztBj5yB0pDyIJ2tExiC8RtaI2svflJxK7T5nCP+XTXGFa2SAlWM6Q/BDFfKhiiH3MLWi1dNUC00dqXApbQaU6QTDwqYyu3hGcVGmury0NL3CiOl5xGuLnaUuNpUz6II/QaZnty3220MNOsdVq95jjN0OBkZk/vNWx6fb5s2c8rGy/iXPytt24AMljAgGHr8EYeSbFjCg2zAw6Bj5QAiiFlQpAi1hVMFoQrgvxBON/iXJqcv1N0zD/zipaeRDWoWEbwBWyCQfMv+HqUsyTF06m7dKxcwb9ujUZfgUqqIV6DwhaktF6sz98Ert3nG+VDJzDjDcRuhs2JBbAa6kZElqvxmO8E+TrymzRyau8MRlDOjEFXYdxkgPhHsexPNNHP37DVRnjosOHJAnmVrwhzgb4baVyLnQkGvGteE6cT25vtwAcmIM40Zx47ip3ExuLreQW8Kt4NaAPVK/tesovfZj0KDkGseuCexai10bsGsjdm3Jrm3ZtSu79mLXQez6BLuOZNex7DqBXWey61x2XciuT7HrMnZdRfZJQ4WttiTr0JJqifPyUFVp2kJymTWTXNrMJZflHcll8TJyWf0UuTRZRS6Whi2ZmqXq1Kp+bQmefONZuMvsovHeGKlzmKacuTqPV5WzpDC9gScj9MkeLP8YzlxbNbxSnTB9rdLRxUXDi+mAGxVL+SElcGgxHT4ZO5m0lg6pVegvhWSsxXS22tK/FA0sLupfXNS7mBarJTJRF/0vS1PDHmM8EuOptEiT+F1RRErSihlSkREwTEIhM8st+KhdyZlND3VacAIBZ6roETOIyO3xATGb+hiZJK/+c+reAx/5qxcC1XRHfV8ZuvfIblk2cNAUbDItHlrwJLQO3H8Gwcx6ncYOlF8TfXn5PcLsYr36+d3DUPET9U0jO3UbDnvjntXzzPeH+Mann4nCgai30sf67r9WG1SPejOJ/yoKeLPHJj38JWnsuEhbF9DaBRwu/1gXsLv841wg3PVeFLBH+cdFgfAo//goYIsCvXrOdFgaewaWfTCh+njX+GoTDpNXkRtbbVwU+Xd4XPWx4JNhMyCcM2DCwLkQTh8sn4AZQFieVS8lsXebngi0b9wZwu7NJjbuAmGXFqCTvLhDAejWAxbC3Cpll0D9yxMnXpYvCMkgccqBA1PkHw+UHTvA92glonZT2H/3601k/6GzQOiSY0JQ/rBs7oMy1/25ygv19ff3XxM/M00m8kMCkY5o/FJ7VukuQz32KcAsLKZaUQpkkScpXtWSqFRutXFqUSTF6yGJmMZ/SLFRmEk9ZsTXyfFRpBomLmeziA5XFKEMl9vjykbZLg/9h2PQmbImZc2xPSm9bf8XN6/bDa/AvKq59Qr6eS9fvtwOY4ix0LWsVlktdPX3vLyYrKVt529ZOS+7TuM6hQ2a9G/f76C/PbbsxGrc/m98tNguMpOcc0r88T3QjkpONi1/M/C33Ak3ZXGv7dRnmio5nkTeqa7DYlvCYmlrq7G0i0KxtJqSG8J5o5jID1ibXdW45JOhmHaN9Wtx1Wq+WaqWAzkUrwDZj+SzWTXMMJYPSeOe1XzIoeiHgFxRdl4t5XklN6eSlgM1FHcFeY/k5tgUVDANb/K2llc1FF0Jta/PzslQcskuEcHvDdZ+dfV5S6h9zbHOXy8yK8/PJc9P4m9ouTND4ZnAX4bn4/XPq/kXqVqey1C8JzQ/+vyLSrr8C9b/bmp/vg31X5+BkRman89Z+zlq+w0qmP/Y64Tg2fMi6f9D1n5Ptf3WofY1JL9QLpUSl5+qxeUPxTMq6H+Ukg0YjMtn7fdR278Ral+Ly3ddJ+oem890ivUmNHFkgqIhNO56uP8vLWfqNIt7ylTjtLewPCOHvAzbGX0G8w32slhy+jyrkUV2v3J/spajt4w9H4wxX6e077+vfx5NA0DeQJ8n93XPk/tJ7D5pX48hC2h9Qdq+Td7OMMQzKYY4a38eu0/33US277zq3tyrYboGsVEjyNo9KTYkz3RSn3lewU/VPZMlX+cnst/1qu1/yLWj35Uv4rbsdzup9wdyOUo/0Tn2fE39vLG8LTd7vrMhb4s8r8euJeN6SZ3n7cIIlrfVRb1/SH1+C7+EPV9bvQ9pXhibhwfs+a7q747R5gHTvAhqcWJjfIlwKUUDVHMYWa3Dsfzf5Jnu6jPbA3+rvC5Vm4ft+HP2uzlq+1vZuL4h47pDsbcpPbNxNWK/m07W/RSrd+FTn2e4eFyCvAydZ7ncvdT7gxn9PCtv0te7IPd3sdxvQj/wEN+E3O+ttn9PwVEk41rA8p7y1Hh+NcczhMfIDSHra2N7oa8Szx/9j/4JpR1CVwvY7+apv3uN9X8IGa+N5SP0Ve83ZfePy9vFPPZ8fXX+L7D700g7/7Dn+6n3s9j8/ETaucmeb6SNi96/SdbrBnt+gHq/GWch+tVtPBEN5D8np2o40YMprKlYTA2gVocW2+30iUBE2RSLQcz0gXs7PgDy7wW3XrGbwzM7bHXgbUR8ipHPAdCjW4MhNZsVHKHjJHoGv57Gv3NtWQxUW5it6KSBEvyQ6KRZ3CbJoWJQabpEakVahqHCC9Mlgh+Yz/iRwLLM/yGwrCjNACHsYEaohGIthixaiyEj0hmTAtQYPEVfQ9n4q5PDEBTaeGpHtG07a7Zt6CspL3ubPtFhuP1KiaKAfHZw0lcj804q0WONEbQEw8eOPkgr6P2wkGke70KQX1VeQ+bFHfhV2EH03LbcW1Lldu21eWlEhtUoOOAW5EOLVH14V/AvbciHNsEP1ciHauWLUBW1MWhfRDznDfoWEe5bkEkJ4SUmtmF14Bs5pJRQuICvGnMA+wyod9UcUrYxDk8sN4VMlk6G0XYqVVNYD0wlbQWoNyqaYYWlZ2XSUNHa7kyf6oDLFuaeHAJROzLH7drOmm4f+GLyPpulbYeCyWbsFHAp7Nq+4+QwO3A0f9/Cz7029cgN+PMTPfs+aY2QS6P/MYmAP9Ku0CmE39p/8oLLSlfimLeruhBHt8E2R/sUjoRo8eoGB/NyQbuesEOTvi0Se50asa0Lgpd29e4D2zQZ2NHU+9zTb8LY2bnL90L86cuEKaDAZ+SyC69m9qswboCErTa1yiwRPzG1g+qOy8TytRNC1hNJtHAqND82rIy+FlhlokwgNUsBfuJHHuiP9K/zwAlT2PtzoN55YDnP7MYvkn7dJv0ycfUkUbXxa2JK4r/mTYhQAR7K9oBsVtFw/W9waskPcmARn4ZXP5yMWg3owmz7eUTeegI/R95FcWncRCmGYXPRCAgiceviIJgzK7H8zyAbZiojoqj2aAKiqPaIbA5DrJJNjyVEA6yTy/k2AIPyVorOR9oB5JzUvwRFFeAJOeShHrBdvrTxwwERKPXInhsbPyiIwCnyyUX8mMHPvGUG5GXLW2Hg23P+jnAzwDsTQOL+rTzeIJftTJVL5JPw4dhFWJDLfmk1cTEWAHeX2Qu1+UXMi8KzGaaRvbD4X+ZZ4hU4aNGwpkSfzBJBKrr98BSZ5+f4BPkw+Ayvll8f0Nw/mPJJC/mtb8lv8VxtCQiiMT498X8qX4tO+3/cX3IZhaFLZT7SFOO/ROrFy8iHGG6zxOlsgswJlKi3aCaWC6ySOCsDFzNbgRpAyrSpxjY7TsZenI874UIsFBy7ir/FdzAqkARoCCfVOeRZFCnhwg4vNUk72aZhwYDMFwayxQxaFIUGuaT6eF9WKg0PhVHgCRAhD74UL/8aZwW14+RPMkuy5I/iQKVIJH8Sf/3jv+BsGOE/vhGlVIPrv/hiPci1b4RtlPp92ExoNpkbKsXrsK1YYHJi+dj5ZIGVpU2msXJSONRHkgkGpmkqpoVhdbFU7uQ4xWxOgU3VMHgoBk8NLQQexctbI+rnweXpZfMSTQVpNrQ34WlrzO8nXnnDVBq2tutwmwVMBT+B7hsao3NnQcbhVuH8xhEf38H40xPgHRE+NXewspbhAScK8JOJxjheStbhMzG1J1FvpGN7L43Z2c3MFoUMBaHNer+R5IhliTtpLGw+TV/BRspAlVUMTy8tY0M9aNkiG5rC1pOV6htq3SC3EJ1dOweeiljb4L2XRfOPr1bbUX398/AWGtajYJY1Ykejd/eYzF8erfFsjRdO49v8uHEDZ4HcUd7Ieq/MXXM04otv40+tAD17gc7NBtaMbPjq/DUvRXz/Y8zFTaBgcAc2/iiyrnWFGLJX2uv01QoN21r0pSGYnxNYkASvvJg4FQ0QESaIlJqovXuVAHvJM2AFqOt/CAbL98A9OUyIKVsP1svAf0FZhxpE1hnOcuraV1Bk3BC7YuhHCE4NKf1QXsyhftCaS0pHtj35V9lfUyGcDpr5veAn+Uf4vL+AL/LPAXChv4o/MzgfLQSa+dOtfNLk4wpEG0N4FZA9eh7p4OwtnKjVAgXZaiVQcGFS1xIQdnuLrtIqrakqcGXPKhVW1XmZxfzivbn/sVqNsT8CxGrYXLIAJurEF8nC4lr0FWtIp2CjQ2PILI3SVa6lhVTJLAXrqEKuRiCA77IYzCxukJTCJFAag5RUUX34YOSDsVh8ilIsPsWrB3q1JLF6jahc8AOrGR+tIYNS2dIOFPhTGuwdDNgDq0b8VQb++v6O3bR246YIXogSMU6H9zw8skQKQtQm+S4XWPlcuG3kCPkL2NN/kC8CX52dcKBh45fq5Kz0pTesHA+qta3WfkbNKqvMV8C0CaPGsxg+yNUP/IjX4+5cJOfhxkmxDDGUYjxbKorBeTy0dijuEjLfvE2JwIGGo9qiFxVZPE4mzIc5HD2XCQt3erRYD6h43ZFjzY8vnTQjUxYQ3h67O6v59fciPpZrCxD27zrsuRQB4Pi1Tz4Tf+EHkecC16vnPgBVeDRx2AX/x/4/wR/ZuUOfhOjNZ2s0r3td5C+epfJJYKncCnfGnQlPzOVacdulrNZtFCjiotxiem2ujpv5cwyh/DSxtBJLdqxK6B+FhLToSuqmCI8W1ZLQ1XR5UNUYkl2KWEmJ3NOJwjR4omHoUyWH1FxPGyIlCJyVlqWA2DHOyVD7cnxUBvYphul8kEy2WyZ7KFshFxrHWFuLScM5i1LM2C2XvN6sa21RqJz3yqtHRX6LfGPp1V+xWJwqiD3rt2rGI8e945WqTABPlt2tl/REuHni8MUnbOb8XmeEgZ17L7Yh8tJ9WTjaDfoPSH7+IoyqnZWSRjScrYuGPTcY8Wum7x1Wu2GboZk5W3unPn3BApDz4TeIr98nv02/ttn1EHylzUA4oqOrQyGEw7oTfibgVqinsJnISuFcLNeR6fZKHDORTLX4gGLm8qU228Z2OzmfvVw+14nojuM5kZbILULFsVRWpCJhhFmfZcdniXVymFlWSMv0qRND9DQ46J58d98z4zq0Hzxm69BBqHF6noDTkzJ9wmbwNvi50+gRzTuMGNyqiy89vVYdVc7CLxB5SOTyJaDLN2enR3n51cjCy8UIpQZryH5Rul+2UsGrWBO8IJcduAcXIg/h0anccMmkYK2bQjVvGDeMLZ9AAu0mJePymB0mQy9EBdSDEQn1ERa62EaTPraRhsV40jRtSsCeLF92dE5WNOM9DIszGkjt2o+dhYWT8xesNPPRctkXLpt12prmDfOsCIZ1qNNeFKoBX+7KyQv2QVy0vs61b8BG2P1lmNMqJrZn97xazZhOYAr8AeezsaVw1bgVkluppOdm8R7uEPY6YyKx5UuAVzGx2sNVvMe+rXKnSqAKKjhmr5JcxUvfHK5ypsrVKoioGaGQTRRThXGgKgoMvUNKCk1ApENKN8YGi5T5hjYVmQqUow6eEI1T9x7OQY1bDsP48JJ5TyP0TE+MX5w5de03fHbN2u1FMaeGt5OXr5pZpYkoVM+s0hi2ye1dqdHECfMgnDZkdqe8IaPnQjhFblHJW69qpdp1wOysKrWqZFWtzeq3EQI4hVycwNXWReDFluezvEPCoWEqidxUIPZQnQe+KLd5H5yQC+PhMLjLPwjOe5rRVTSZ+8kondFVPylRoatEGqKii/OIfSSUnpBu6KdEW1AN1dGSrRwtiZTX0C0naj4zH0pjR5qy+2DzcHHK3pqdC4bNxPjYomWbLGKsfOnlDnk8Qpae2V0FMRulbweo3+gWqybP2g3hkdUt3v7OLPdulB4f17dj3dr12X4k41lP5iqBGyWJiUlGHfaRcRDyR7pxQJs6jjhTKNVKjFOgFKSo0JMRUfSmlBAXxeY4HqQSeZ0MQh1cFiETHysgl5Um1psOvo+XT/rqNSNKIT6xcPp2XISzvQ1am8Scuk3qgkVgw9NgSyyET02ZuxPChcOANx2ANrl180GWojf+Ti4zUTThNeFcG52IHltePQZmrIbvQqhPUmFBu5IpTGCEb1bcVDRegGlIwAeyfSKMHpLQP+FEkrzXBopel7sdzI4EuWDL888vBrehnH4vRsm/+E/gT7iY0Es60RkgizbX6eux5Ws9gBhbsHA5i/kMzaAZiEo4seQJ3SQnvGIM0O1JKT7Jw/rrzKYz6gWZdtXdGtqcdd2KDSjL83O3hh1Ec1t3QcLr5n1zFmzjUZuuUzE6vXLOtiN4VE430Ta9P/gI1qvRzAZhezByJkTTBtfvlVl5wfiFEC4aC/rAet4+vDLWH8m8zyVjdXN9JJNaR1xjr7Hl9fToUJdhNMeCp+1KgVSHZAr9zcpRr7fkYi/MPAPYoUxjEJRxCXbIwxz/KzGg5yCrWLVyXjPrMcvhhfM28PzTnXaAwqUgtluzyl7Qqg6YsZV0esTcaQ3G0RqJY0l/bchJ+EStCviEdu7wapq+jvTZ6SP6MrLByteeeC8ejHPDHO+2yYQ/uAN34SqUwdnIKdxSilBinCJC/IFpJ+XnggouuuwMilEN9bkEQY85DZJ3+mj2AIxyR/tAxlMrwhxOadlTy8PskUcSYc+p7mjYZ6rbioueXru/CGPp6bX7isCfvvEIvVZUczwSz9F1+oKcwSI5J61cO4mzhRtjUhLLx6jptABeiVE1RNRKosWkMk7qdAeI+t6dcJb8KuzpKZueCBaWxKInPP5z12Bzef75F8BxsG/VeXkdOcfIacb78BouglBMIjdGcigR6w4WsehQcjI0y2uiXr1j5XQdolJOlwg0kiA6FM2FVprRZWTZDXbnOGpBIM0qGaA0I4PpzTnp+RSqwu0Mp/XqUCOA5hb/anfIl+/HlMZ++IvdAer9HV/ifyH5j1Frd8I78SWjVz6PnVH3Tn8Y4BxjxzkfvH21LHwG8B++kwZrODYOv5nq/8i+RdFVJ5AxdiFzHcv112qJPmJXMgzQYAzSVFY3ZtYvt1fJsNNnYVFPKD0daAIrRw3nmZC9pw4E8gpmbkvILq1bWf76hq+03pXzSbVLapsA6tJ9bgn4Mu7kQZAjXyiTv4qRb4LYRJB7B3jl4twGI1fEwCIOsMSS6XgP4V/kiNTxLxZxlFhR5nMwjEuXD0P7HGeIXFMcA6lK5eMMyqhYzDphUTTkKDUfqHXdoR1A0Semwo6zN8daBev4gSN3d0fAuiFJbpB+YIGbj9wrb1z9yXAb7/nuqEducDHj3SMjGgwejdDY4uPp5+pdOg+PP6i6oXQeRot+WVtVvvksZrZbbiNcihr8Wzx3kv/JJLgSLj2orOMqjhOS2J7pU4EBz7BzmDpdfhsZbV5KsLe6n8hmQuoOosHe5P+0ejn6AzS+Laf/1Fh+9udW30WB4R+CGqjw4WTUqOwsXl22BxUG6QufIHvIFORh7AcNmyWxfKYjQKrBw+2jdZiQD9zgPWA/wP7ld7//DdRr2w21fzgZrwak/dzALTyKjDuCayCFM5QknZxT4fC109VmLIGgFD3IVpLCfE48an68/NNHl76LWnB7YVi/4aPXRC7Cq/3g7PcY//Qa4soCQychPH4kEtUYYQ73ZXpDjQoUBk2mE8qhJYWgkrBPXrG/ZL+8xoOuUT0BXTqv2PRKUADv4jK5sVKELufaYNNjWAtMP0igGotkNSewFysooLY8hyEC26UrwaM8h1LIcwn6NGRm0YOZGlaHwUlDMddDpryprfw2Mwg7c/o7eAsN704NeaBhy/MWcd7n83dO2odv82PHDWJ2vPS4IZ9sPw35s8+Bnj1B52aDCjKGvzNmSycEW414VzHiQaZ/RZN5tHEuboDEKbWzgoWzKjZ2G4zSdqW6sb2cycqu1mZyla9uzLNyNE6Xh+YHUHEEJn/TtuQyePnChxZ7gDtZJu8/N2KJNfr16xQjgNAcf3z73UFyZRscDeHAHrvMQIkd9gVq4oH4ec7JpZFzFSleEERNphX4P/QlWNyG0iT6WqUZbjFL8Ci+DU51bSDFs+FSEhdyUJXDe7/Oq7T+6oAIsohtSjZeLYgQa0jimMHbzlj4MYPnH02Obr9z7rsi3AyEnfEgArQT8Ab5/p48+QyE4+dTp8bPrScuwfzxg9O44PznkPmnuLQdJBzlUj1Z1uIKtq9mAgtTDt4wQ2w80tdWUW1fdLaJ4qlUA/IC0KgVmet3T38TZpFLPvvs69GrrGH9e/8DtsnDyVTj4r2H37sABvboOggDGsPOfE17OAfRK1tKSalp9DeTQv41w57Q19eINuQmGQuKAy1BRHEdKYxedR7l+MDDjR8WRJhj9pZtpV4jlCKfnCsgfrTiNxo7aOmJWAfeDNCOZnsBvxKTyX34bIL8q3wczm3YeNxCMsEPfmo9cTHmPzjDBe0L+8n8mrkWOpmuQkZl8Mxp4g7kmSwq8oqDLlXLQETf3JCXryq5/BOYtuo2yij7inDhL1Gm8pv8u+Q3w7mBErA7KuaRBmeVwcAR1MyNGw1wmPVDebFwqhLipPwsHgBPGPQ4IToKroEGV27nTpET977Zoe7ty6RTx1Gbh5NBa+gmh8RsvyR/FPRFUR9XHebjqvQv+93g2cqgwlw2iIXxnrL7l0vOntW1hXcoMmQFbRnm+d9tzTT9K2ReFvU2+Gsv5JVcLuk1G8wHPv9voLP8F/hipSzh1XLYXDDNf9u/VNE7/gjcQkVs/r0S/7j5106/MP2eoWGmStopJUZ4rmRJ7N+vvPaOUGLe1XaEnUzmd69exfjcQfAShk/0I+Mmah24ynySif/ihGT6QTbgS67cZhOmzNcB8j6MW1LB+VWh59p4mpoFTnEDHj1sPmOGBVK+GUyUrtILeTdJCtB3dvLu6HjzPDOcePRb8x36WCG9lWCuRt9XYD5TavV8W9JVFrqRye4JHvYsAV/JGWSSI2jZbtr3/MBd3IXw3hRuiAQZV+AeL+hIyWFI9eeF6avdS/bkCHZo2slhiAwZ1MlGnpEh8GKIK7uzjAX7iAaObs6Tv8zb/MnACCEZNCl5+2vHjcg3lrwWbxV505RhS/tW+jMFfL1hkw3AdVxgp49w5QYCvnQCnBb4Uwf7NmkybhaCee8e0fbEz3p+UfGeMGMVxUdqazbWWcHGhD1F3GDQhtXkJDKlKNLjv14H3FAm9bx8LbQX7zN66PYvBlApTMAq428T9sjvPi4vhPWCblylH3XluBxY31P2xWWU4fFf8oJfwD/y5bO0M39oZ1IcO5OiuWZSOMuAo6Hi/+5nN9aU19e7yqYYUDTjPdWJFMM55fmWy2Dwlu/HOPhEeY/8d/KSCQeuxggmwTJjHD2K1vq3VfPL7xDJ7D54+7VqrRqPmIQ5Jn/exm0I7SVwHSWnzj5VMe1xjPakcIUEw/QHpJHmqLFWLVGuUpmSMiu4o2goDSpLkL/9ZN2lPpFCCmjy69kfLLfQwNGLiRIDhgz6sR5Y/MZ1TIlrVx2ikTcR8NdvgOETMP/W0eX5E+Zh05dKXiadV47xpWguiXtZimEYJKHYjejiClQJbX5jlAp4MV7pTAzZwodjzsTAgqPjY+bFwIlSIIbudnp/bcyuGDhJKiTvpav0bj65HE2O8ZKnpRkxhGja0EtofSRTNFtgTr87qWEpybiEVBoVRGY38oQFpTf1hazlJpDZPUmwXG3XHZv+/mZdztWhM63R+z57u3CSNUp6nyyp6YXcbi/3ilvW5wUJPJQvAtS1zQbzSwB1arGMZ76ywHYyPzyT6S1cy/8mgWq6U2gr6iVQrNQfo0gdINtJy+LCUrnGsvtw45f+n+XBoHWv+/dpYA2QwAlKV7fwSJgjVCe/Hf1fQHNfW9AlOvqDiGSheq85U2dO+4zJowDjD9FMYS7Zv3auL4u2VEGD7EKy4BXyhU4CX6CGxxPKMwu6raqCAlmLyWnf2G63Jlu91nxrJ2uhdbxVpB6HovDi2KJwb0wwYSKLHk++jGy3B800vbZq5W54EM9fEi9/+FzHsfyREdMRmj4Ejodw8vtv0f18Hd/kqwvrOIHMaz/WNwY9pjp+zEHHD6Z8mJBiLJnoGAkjdr4I5KPgjaF/MRfToBOGJ3rMLiaLXhFRdafIQh6xsM6RDmWR+XYDD0zbcffkQulnNPKXAHeQ//7B6tXgAJD/YvzFib9E+4VFuv5g0gQmv8KRV075NQUSU5lEc3ASMTmzlNqmiKW7mmh/YmlROurLYVAux+yWZIvXQkGRAe1NRjZPFGi0/9QC6SfQcoe8dMVzF/GXq1c/6A/CSF8+xzfxJuEK6YuLG/HvfUEOZd5Id/hk3svn86w7vNodBWhVATPKDydbzCQyz6Rd0FXFC7rys8Qssnz51HTpBT5mtATo4IvrL30Ico/tD0vrK4odqtinLQBomRnf3LMH3J8yB1myvQIchbq1Hh3bkM7jZ/gmOiAUk77HcWv+//uuQGCZ8y2dLIWW8RZCBmwQjW328ORwb3h+eKfwwnChgCYeKTFD4Q4pStB7nWNCn6IcrOaNOvU+irpbA9B6nDSLI4m6gdCBvZsvfAzarf3Z3KO+Z1x6ZHZKX0u3BqmTUyNzE/DN1atLvm3er6EZomYxrfs2MgHcQtlfxWx/WYk28v+5v2zFRCsk+8uWbPPa8m2dbIW28TZlfznIfDnK7a8cX5Zb1G+wvD7hjc+9s5Yv0jYY8NX/ALzJ9j+PP0LjRBPpXzxX8H/tX3wxrQPLkmGO5kd1iiKcOjye5cS4QqAbceHxCvEYuhgkIXe0i5LQOPORZYueg/vw3Lze4cWWmr3M5sIqttafoy1m/sjoKRBOHQbHQFA3L3YqFGpWxWAQdk4viGmg8rD30ULhK8LDUrip/6cxcEHSYBgC5AsMvjTf2clJvuAIZpw7HVKsSRf0KyWZdIhzRSnFRv7mJMevmJYZJB56DhPqmWiSVi7eA/fjOYvj37BUq9Gy0vJK9ZOHmQe0jM7ytqzUIJkvGj0dwlnD4DgIJ4GI7rWzYUeEusd3Hm2Ly0Kom6Ij0Dya+Xp5y3DoGuRvg3KmmZs5wBQxQXlBHPMNKUI5s32bWSV2GhVTFdQC6XIGcMl/F8kX5evgZ7kMYPgQbPBL/rfBVnkE7AVzFP8D65NmuzP0yWC70wRCpRtK3B4Fu82GVjAYRPqvN7/dTv7rbxqSV/ZAngEOwW85vfyUxD0lJegw0P7P8pPkYjdnk4WNke66qDDqIoJGTVdjFxFL5rvWuYjOMdA1wWUofkrpJuG/SF1UVFUxBo1y129vK3JXSX8wJ03eQNSCob1+zH2M8CXKF8/Xy+k3AlHpC3CDA7d4G5lbNzda4nW+KIMsq+WL6wsrVlQIUjKx0o/0/CHM0C7qIwCc5SzHYqqYw9xSmMI/KaDEQJKLPGiDR3659lPL3vrYGi7/9UfU3di4D4bveqIEXTp//k5lBK+dPH0RvsG/fVlAWf6fyRh6EPoYzBeV82MnP+qf0tfK5pDBj41b+8UH8G//gDT0NJ/w4AYuOcfO5CpyZ9wed2FYY7MlzDKTqR0qq7hcqtIjxWOZhSKi3AxKgsgmyGpQ+aKUm9EOKc2guGQ9WrPdR50XRNXzRbux00ehJpkVVCELJwu8ae7c9NmCY32rXD2YJn9249D2ppNXAb6tOHf30B39BSyUCpgf3GPFkB51lsx92Q2TnwfWRQgvmlwW+7tcinEfqQMUQYP42RiMODc1vyGoW3/4HMQvBl9Nw+idfZRHiHJLkM+9T3h6NQ2Mhw2dwn6YjcXXdcW3M6gNgfY8u7bPCfKrxBQ/17xxWm7m3JSq78v/OXoRwsgL9sPAyviQJD/DydxrRDuIZHlISkiOihpO0RZ2lw4olZ+B8YFA4FOy/lmCJzITH2D5Lb3bJQUzBTXmoFTLg4G3AwHhPIszTqUUr8Ql8PRw1mEQVOiU0BI5nPpoWylaAY6PZqw/3pA4nmrc0B6iaCIRCrqCzmTZMpBb8egLJ8Pkki/lpANyUfPY+jdfbxSTNmx2sn0ESm958Z2f/aObXB+21hbWuw9YevhzdEk+Nk++XQLeA8ILb/UHD+QxAFw2yWsAHN23fV+eC+qrwkUy1khy9i6QoIIZCx3kQK1gj7PclsTyYzVE/QAYpoQBkEaOxKs4XcZ0Db22G1bOzE0NKMqGZzNBDT/BsYPR4HbP0laXLvwURibhczmxmxxFzSxwUpPrI1bTUcOd4A4b5L7DnysmAv/+0HCZ34MPJ2ON5vpKvA6bxjBGAxquFkRZMR+zqpB2kY9hWyoubjmutWDFpfei6pXkCrxz+5jtCs8qzYL4u7PyPtCvTuV5AspkPMsi78LPs3O2k4RYnoYRZuT/YPEyGV2cSvkI1WD1ufx0o5JG8vLLJfvBf/aXyruIYLO6LAddpvQRFihDfzMfRzQ3QIpS7BlRVKHRYUY+QhJW/XSRvocpGPp0ucMN51mUYeZEFloBszKcFMnOVyfTCxC65r+Udf+tCy7HhpuL5dwrKFWOHTEbjux/vRG68h3gzz037Uh/BEiP68Jhvdr3gkB+luzhRfJh/BazF0RxPaVIF2OekaF+G5TjCmpDH7EGMeZMxZJdcRhjPUOuWYtG2RAazUaK9Y8nvUaw1vhF6V1R1oEN/Uvq+x31SwrAcPDjEvlQ4yZvDfVfAPvKcvy3QRf5MHQijAT5hHxdkakIVxLqk/66uJ0SYJ4k7tEtx47VClfdgDpqYEkaApoVMQRGK9GwrGCiVGilRg7y7uhh6xkrETvWWndZ4SSaOAD0lC6Z7ExKcwJ7KGrZQyUmQjtK+DLlUpeHdSnp2kN+XX4PnLsCzM/26lbavQ1oToS3QT/LpeCaXJX+g4NgNTkFfEf/+c/5ixT7nTVQiu7g3Vwm10RKCfoNvcZoHrNSHd6qvCQbnCTpevhb5q3RBbSICknRbK0kkB2tSPyQHzbfYhlaNMpeavWfPfeNyfJrl76Yn3175clv8G+wf89R66yu60tT4MFuHZq3b9EIbCUK377Vrw31LOkzakcvCE8+26o96tNpNwDqGMJobjmzfbaXOIZY9N98u5pjzSA1KqYDycybVBQjKphS0zK68uOV39b6h9Ery2qqVXaVEP1Hqj18LPMfTHt8DIrBd1OxP1KAvBqynk9D1gsFSiECpRDhjEApRNglwEn/NZQdHBvblfDl7r3AIpApO0C2/Ctde7yarfpJP8M8epv0eQvzhedL+HG+8AozH+iKo3K+OnZmisEzE2+5XHpAPtIytsEPR1vFpA+flWAfyaaMnIhz5JIS+B6yHDjRBzwgczcp8AteiNdwdq6jBBwRemw5dqYllg/5BCysNRTdSsRWrWKOFK7cDWc2LzITRIXP8tHzC/mgQwT9gd3/dX9pyuiIrnkdPQ/uwbb14KyyKc9P5c8LIK8qmg0UezbhXScY328qmVW+r0LzGRQZAwfQfDL6yBAaEJKtY/UP35jwef2yQoXT3zlHWVGQ1bOaKRwewmSBllK4rq6IgY4MDEkzsIabODW8HBv9IkIwUoFlppI3z5R2nTev+GNXvdI8QXBuH791SAl4KQvC786DQfLOOpXnI5QBU4J2faEZm4cmkqjOw+P9ulh/sFDtG6uobkUWduKpU0D+8dMfbKBT0G1/6QHQfX+pMgXqNCjzL/Qmv2snvxum0kRF869TJHUVrqitT3QotTPKTT/97e10CR6c0f2+fh3UTkCubeAh/pHtaRpbEKbEFoSF5DLD2ocUa4uogo4ZMjFpTJzNwDINihaTt+ih60tFTiZs0XN3wKnL0THytffkevvllz2wUcstQ+dBOLb3V03gP/zl5179AgMiuchj/Jfg6D4d+5Nzl9YOCws85L/Hqx2ZOIJhEtzAkZwiRzxkcgT11XeSIhRffQTNOq2AxoLjoXsrIri3OMNwwioaQHao+3CS0v0rcr0rv7Xa8sRCCMf0ZV2/9DztOuFGSs87FNCes3V3Bn7DSXgPl0gk4TAWP6eL/U4sBw8lcXGRCkptyBkQGce0ehPNEDVNMNEMUVNj8iLdNVEd30RY6XzTOhOcqBeIIw3VFeyRSh6ekyprdEVUKJ+cdHd0pB1Cjqr5fn7omNKe8kIPGGcbOXbiqrjSFJBSfPkXExZS5XM3z/1qAotHDUciqH9+7W6EJ48Cb/6AkXzrR1+2fFc+K+DPTzLZP3BLSMPPEcnOwz0tASW/BoTiQAzihiFgwSBuaEzAIpjZ+C10/JYJFjpwig3OWahxw9LYQo0blnUW4/jDDf5LzpiHw9MyCcrZkqPGlQgQO+tk0rAHGv0U6UOvL706POzN7rcv3+7xcgtQ96NNNGPWtVsOfDx65I7zEI0es/2MKQIvurEcyElk3WP+A8w83ij7d6ZL8t1N8KNl67Ag3/l7yXYsAGupEvf8EeGFPcm5QOXeQVKEIvdGhGJLDIzAIHNrGXqRSumoSK9+fQErm0EpWL8FPYCFTmbzTLZy0pQaZ1aaUANM6tpVMAPxKvjwcmnHH+RPjoT16PJj3qXCRdBedf2AF98EDyeD03JzFN+2EwSgLehHz9Z7pO/NmczeWQJqXbfHRhJIIjQFE7lFPb67yQCHKdKhB6U/XzZzh2bD+Vd7lHT/IOn9PijM4/8xpxj8LMeBnw8C/3n5oirXEl5an8VsHpRMasymyksNJ4lBGgod9frqL25zhBK2KeW7qXjipuKJm4on7jNuKp64d7mJeCLq7DeiW1Hd9SKtyALS7W4xlOcR4VBrSMQUE4mTRoZQrk2rvJQXdfGz298quFJ/195BXSsWd2FneZK/BHSpSOINnu1UVnNwyyRCHmw+VBhfgyplED4M86E572xmqwIFJeXb6HzY6HzY6HzYztjofNh22ch8mHTzYbIpcSLGEE3daNkg4Zz3r5BBrv1RJ8fBlvLs4LgUSU7zvfPpZDxR3HyJZ1rW4/KTDQLEo2mkEVFqTYR8jg6Go4Ph6GC4MxwdDLeLI9oJZojxDj1so2Sycqqs7MsWlXAXlEWLDDDzwcjmVXfXqE2GkEFE0Trybz/kV95duXnPkss/w5e++w6A7/0n/KfANfDe+3JlNb6E2gkmMd1xsWTWxcA8XvgyyNNB46dkgqJqIMg30TGZ6JjoIXDYdIYeDmtNu0wGeZqyhZAYI1mBKSRd08M5G/DUKH6arMt++aAHNiVrs5DI2BFBGRtdPkeXBhAp+5Ri32kc+I2fgQ9w6ZyXWyihmrVUj5u3uALbNSvB9KjpvliCOF6VdsMM4dJYz8aYKqYPZKDFXeIduoRDws8zs4SsdM7pi+R8LNma8HCWLJgTqQAeC2J0NoXdZoleSOATvtrx3Fb5nvx9PEoANW5GT98eJ7h2vpDf2mvlkx6e3HHEjCM8F4e39j9A846m2KxLX88yR4rZjSAErQA5RE2gLn4fvnqo6tliiEZ+Pzfzd2Dn8aVXOk2/f0QEQ1/tP/ePNcW8IL83SMG4Uf0Ijkz0t1LDjuPla6wu62HmX7BzfSWLUU8weBoM+9ZgIgtlbttZASXdQlvC7JojQt2MBvfHiXf6X6m/5BEHiLyI7cigE0ShXfkw/zrrZ3/JrPYTeh9l/4azvSJB1mQAn7GwIi2cIwiTqoq1zNZFuSN+eGbCF/XLBu6XD3nQ0jT52BJwb38JE2ypeavsQVC2DuoYMUQK5HUYDgY6ZICtj+gYEWHsPI3w6vHbscq9FWVDTUJQ9Q3CDnIUlaNLy/5VdlU5XBSVW5onQvRkrV3e5gVU8XCFvX858voxonq8ULXS9Pj//GlxU+VD0akjKtCFHtXn7eX4moQ5dqBir87WRVOIUHmb4CclXZ6aXnzNlVvCVKEx24eUENbagyhD35+Td4HBqinwWyVm93d+L36Riyc7eYgUrtTaCKdVRrhH6U6bshS7iiGo36aYFa6wMk7qNqR3JJSTvNRgPjcRvYjwCVKpwEXuIFqpisYhod7P/PGkY8u2sNMIiZMbgqZf/Hwn0V32TeSG9QsOeKfNmXO8OsyLCLNPsYNFN9dHfvUayEqfHv8LsGMsf/6fbWt2QpT/RltUinZt6ebr2JuOs07gNp5JZFIXl0z0ngilRk1ECNe4wvmXwjlV7y4XiWMyxNOG64EjqNrAAqsY7DoTs8WsHGd0DiFp6iqBi3bdGhthS5Ffurnts/7OGJQSuWHt/Jdqzpw9+3h1/0UhzOJ4Ej+HVvzz7NCH8hWMlt/btW39djKg0+3KIsmAYhtmd+4VtG/dZLE5cdwoyamrG1Sx3dlgaibExBBY4qzBwhIxuhSimDjVT6RzLToiY7RyICIIGb9YpgBVjXzwiP+fNJQXLz+9fKdJXPLLstNf4t/wa2NWWSyFA9enkf26V77gPrngyRf7IP70s5t4OLh7h14IXFAwdG7jJ/DzRH5xc0lEholV4rBimRM7lkpT3L9EB5sMLi0XMxooXtCa1AvajFyCfs+QW1Txh9KVjTHgrMc/EhsdGVIRIhiNZiK6nkI0eLiB4ukkgzZ3aPw50w4mvZINMyzjA5Nfqu2/bpngUNF0IkAHAW6QH1Dl4PdNqITfunvVc2Xf8Nt2LNlH1hITvmAh9JnJ7ZMydDkOSWSISY/AzghJwdpJdkEpVQi80lUAChqbk4GXHHudAKaRiGSo0FDsNJStSJfXbmDEIoOdEZjMCmlFErUSZ5L++JVSQbpKBwoiTYa+uqlbKXEawnZB4E2wME7eaDeBqfHyck+OivBSJ9m5NeFpwbE7fjWKv/vGoTdMJZZ1L1SCr2+AzWLhRtA8j8K8RDeujDbCiHZwQ8xn9zH+8FXwFkJygNJ+UuAuukXmK43bLiWyTAOOhjMYdm+ay6RWyrSnkZm4Si5HHWkpaRRayZAgjgxJT1aK8EINLmlqsSXpaiIoOJac6E3MT0Tku+STlAL1FbYSmbgfSaH7jQGMqYJalQ8Eq/JRhZuCW6exeSOnXIS8GZ9tscg6ecSbv+Jn41ZHrIlb3gS4Lg5YnNF39PC1NcGMOHm5A0wHTxFukPh2EoTXXwMb+m+89AmESeTjiMlgY39WW4icLeKbZA8FawsdfKS2kO3R2kKJejBvw8Gd+K+1hTArmhOm4iAf45ADpSBUUK7QoS55Gv9bkaEMls71+MJUuiJDFv8n8bDq9rX7LEJ48bZ1+yy89Vp9sWWrdqPDLWLLlu3HhMvJuiyAdzejpvjU+qbPnsX4zdWNd5yXC/oMhHhEn47kBQ7pW3ZElycAWd6lxHx5ydxGiVPOieSKnFKPFjI7SiNyqBFCrKie2VEaAgcnarFwx9ZadlkOkze6Mnvla5y5vf9e5kxNJSFU5FYNVHCj7I8vib+ccin8SuqlJ8AHJ78Is8h3P5LDAf7sxuCVNmuv7v5t27Yd63Ac5gH+vV0vfQo6AAzgqD6dClV8FEfgF+wROCKjJBOZACtzgBVcBrM3pDzHlzerGcvO26iWIoWxF+qPjzbI9/EGBzUUiOxCw0KZMEPkdVaeRFTKFeXgOOeGT+cdL6h+FVhKx8zYt+eUGQm/4YSdq4d2yV45+0CMCcbslv9chPCqWQLn/3ABxt+eadJoctZpHi+X6y7C6Oz+7sqZ6SNjQ7g7kXfaqZVMdXJOfPnzX39gKvZ5p8mu5j/ro6kzKKXStLDgYeHyqLHK0eD3Xouivw1f8smEj7+JgYkg59ui4q/hgK4rXjYJg1+Bw7uBMYefQDyo+UsUAMAn4B9eHTwRC3/8sHC1glVzE29X12KQbi1iizU9wRD5UbGJQ8AsJy5MeTEiySU+GuhBNprHx6rHZPqy9fEdzZ1Pf7rg+cIRJfJf71nnHdr+plWN6ei1eHj3uovmvMxCOp5CeCqs+oB7cg3GP53Kb1C3/vC5GC8GX04nC0F0oRfIgV+df80hcK7XFNnsF5yPu3BOzsM1k2IUe2FMqC4Hs+HEl9eCjUljycZRUBw8KoVBdRRqJlOw6pLQIvrUhqEzVr03yAGjdj/cuPoDb3X7LXFk31mvJpC5GtVnruQ2wZQi4GxSHcF1ZU9H75QDqzHcMG/W+qkjZyP+/Bv1Go2eh9CVvV0Uux7Fb03FXck6JXEDJaxILzgkRxs2jAFgiO2eiPLKsTErDpeP0GL7BdFq1+p+yfLV0TYMjnGu/3Te/kGDSgH+KHz24Z1vkO1SgocVPvVEr9pLZx6BMTvlPxcjPNkv81+CScsxvPFG40ag3dzVGM+WXVMwekfBSSJjakfWhY5ptGRVxmQN1Sp7fPwRo8KIR6hQtDEqVF4ePzwt3Agofh66fiKL+VeIMHLDF4sP969SLJeVPDFjx7NvUSLEQwYsGtLHN2/OEZi8E4QvQXje+AeZwP8kht+fyW8I2s7aBPEM8Pd4hC4q++oWNhE+4CJjmy9xytiii7lHYcE0pSdW8UXFeo+eib0aCwuOFsaOj4UTjybHesmLtDaWiBd3YgP0vVXUGy9CZiUpUlEoTEb2wSoRGpWhcIAyEc8IFtrWfT4qHMaC3M/+X21XHh9Vka1v3bq3O+ns6XQakpCQdEga4RmGAJEgoo4s4rDKkLAk8BAUZFAJzmQEEQeYGILsq/jYFAUXINwfMiOSAdlE0JEXASMEAggYUBjHARFNqqfqVN2tu+H5/pg/0r/U7a/r1nrOqeV856NPU93Nxa6K6XMW/9d9NQl7xqC9jgg1otiNKq+vSCLsph25cn7mjLWyMmhTfgFe7yDfoVZ57R4cADGLyEClkPZnKrUNntcUbhsoLLztf+Q+Waatg3PueJ8s2W2RN2ZXO3slVfx95nsj2/19cxapO7du8YO/m/bjbxJeWLuq2kmHtAMVD507ZnCHyufWJssZbyDHS7Iye0pT9FVyU1F+s62H7ETxPacqytkP7+uW3238DEWZg45NVfCH74AueDrwtdpLPSS1kvpr0ZZzGT3oXNC9yxi4d5mAY4Q+c9/Bb0Xil+NY3L1kyeuj/0vYyb2qlTM+su3G4jN/jopo6fsc+Tc3IJfrRkzzoYCUKOMllXPfz0H1X5FrCp7985opiz9FvTdghVz/GmU7HWQFuZRXU6c4/mcBLf/kQKPal5Y/WxqpeSx+/yAiQ8qfEIv52t7KvYCtLiWaj0N8eZa7gMzXS4HasM00Wh3FmysDCwDtKK4Z2BXGPY+QkztWfjs/NiJKSf0Mdd5xBqmJ33lvPLtvjjca9Zk/euczncnFLDl+12OTMZ7905qhpbmfoxHvYeX6aYSkCDzj51dLu//+g3FILUape0D+MK68VsAhyHye4vhZSZzJ02aL+W4eGd/J56mjwpdxTub1JHF9cHcTWlmDUmd51JZfkDcPunas+hy1vSstLmnbIrUa/YXUHGx/kNT8VVYu/HyJqui6heVLXldY+cpo+5fR9ndLuVIvzcV581wmJ4Yt1rWxVo0KPpfKtksCvaHTZW+yi1pmXQo6sYnBQ5OyBpcK5BkLzlXGRLiis46j/M0Lz1bGxI49QS6h/g70wKyR75EbWbLjwVkjq5Gc68EvkXVDiwbvRb03Y1zRtGYLeYVcWYBjOxU+VTMWq+TID3GdCp/Zw071Mi/yvd2yAFZ/R+vVUmpH65XJ4wtlMuYxC9dHcGxmdne8tU0l54bz4zZqhxKB/E/Gon4O2cPmPVXduO7glhu97ll8ujLG6YpsfRx12rbk3EvRDldExqEIJ+oxq3TOqYoVVVMOzk9+9GDV9ShcIQXWFxXddxAN3IZxZUBaXVxUcJgckHt0LizbNQ4rW8jev+46rajTkbyKzXs6+3Fn5eWgO7shm1wKcE4CqYz97oFa0CZfnnx1BVmYI9+fjcdO/eIIj6EIa/h1tN1+q7ksPCLhrzbgBL7tGG+5tqrFwEPNKyUI96+WdtpjiJbCT24Z9Qb4qCAVv9E0NV1O7T4pNvLR/mOr4r+JrDw/c8dRV/Rf+pGNcoe30Ib8UeN6DZHlqWPk8prxSNWWbVx9P7khm37CHnW/5JQ6avh2fG9GPwdRvFGTnVO85V4bBty6cit1P1E5yRsKzCDrFA/syw4z9mWj82zbVGG2pVS+LaXm2ZULG1XJJgthi2Q1aEsKKUKddClIbJNbIO9pPubDpalk7JKNMbHvkvq3tdq+C15ff9ntI+fGJeKP968iFenX1792ay7Gj28fJst7ViBXklzBbbr/JfsVHx0njKNqcBj3+vC+b5LV45N7+GgR3DEYNhe0mEjhByfCMxWgfJTpduKybVnVBVcLmid5cNempi/Q0vL0vfvIAdRtHb7a1EWe1Z6dI1TJlXJAraHwo9IUeaXtrjGbkiwECPDuyyvlq+oWivvEijNC5MYI3HS5CivqZoo7ArhwMVTnyFXyJXUXxRy25gVHcSwvj8hrubwS3w15fWzNyxb3dRrN61/qBxRzCDAtLVchWF4tIPx89lE9NsCb8jz5BuA/sr7bIEpNAyQKHCOrlf60r9KkEoMjLc5+jmK9UuGEW4dAi2bZ90xxirVdksViC6VFy6SL1I5Bww32eYedw0ltmrdOfuzFqVsHxsStITc3fPb+8HJt0Sfu2PETlvZBf8DJtWRTF3lqw5wV/5onK7/fOlaW/7Z8xlqslPG5mEvH3BCQTW0gSoJVPN3JhaCw6dItHN3cz4e34Vs/HVHVfVyWFwa+d6xX1tL5ly0t0hDf30emjrr94bBtdBvaK85u7HFSkaQ8K4OTfUNVtrEqR9st/bZI9Qn2iWxvx+R8OPVhf2qBm7v6UoWnftk8jXzff9HRkgSH9zUpsHrY/hL5T77mwx1Qow/8ppsmjlu+f+aOzGRVfbIkVl6K8Ooub6GIhShhP/l+HzkcreDkaHn7W8889sxshbdLb1Kt9FJep+PPLw3SfG3vAsOHrzk9QefmHtvOueqJ5rLJqsaj420mk0pHBGN6LQAhzU0OGCooWXhaUwOKfoMGLjo5cOYruz5Nil3aOHfJkWJ3q+wD5MLmlxc9UIay1k9Oc8p47PAR83u7Ikvn4vdrSxQZeb5Y8mOFrCwi5LW9/yRvvoPl7tvz0GVl2pZ77h0/FeM/nnhi5CSoY//AJaVKeUOKphZuLy2RM3clmnejbPLd6GGHTeJKdstWzZHdiWyhgp2y5IY1pxmuuEBucb4xNRv1/sfZr1OjOpD989SJ46t2tVQc1J7476oPWnpU1JdaUJnoYVUlOwnpTQipl1989OVlinpsb+t7H3x2rqKe+IjFQ4kjfVC9UpjoQEOkMGkpi06WI0phvIPFIKLfTycjIA0xieIdqOS4KxQHXIqXcKOyXmotTdCcFp4E270C2HQPdkFg++CWOAWR6UnCxdkSeD4p3rL001pEctfSNpwNku3L8wM6Hm/ey1UWHRdoYc+eA56OcteOzrjWecC2u2ZcfiH9+w/LdpeSupnzHa7vtjxVfir/qUeXymjLT11kfLM5Sf72RIOiPPEk+Tx5ffnWOlnuQttgBecISMzBlyHC9fGAEnhK6iZpGSlosvY0+wiwj7gUVKatZR+j6MeO3SmfpTSk4MlaD/ZlQwpdxmak5KXIJXp8q/9QvjpfFM33S+Y7g4+3+ZsUIWlSFCqBuEjge+5Ip99/K+Jw1UqGd42xRR1txOFi+B4WfDmaZOINGy/Gho9wZAi8AxVNCM1dxCAC7P0Ot4EtLc8QUYo8tvyy1G+M90+U1tL389irafUQBNfAqY7pOg6NRJjaFxyXVF/tteIGOV7huHgnPiD9LCksPhbpzvwF6fMrEEdmGhoN7Ql8FVD/RtFer5n1Nya7UX+w++Is+HLUXQr1Xoq14mn+GQJP26traO7xIu4PYKEtACtNfBpawpFX3aoebnxRDONpOQvvvwCYh6qM/IwjTFXkR7HyDxZseXa6LSIbwzos2D1QzgvQvkWBTCk05wijXgx/Esp6gfdboIj3m8x6FxjKjPbaBGOgQcQ7WibBKFDzeDQ4igF+JijnGdEHDea7Desxy3h3ML4cTaX4SNho99nyzBAY2u5/0BHB+bj1fGjZZvOyUVQ7az5QzzNifL7L60kxHeurM/V6Ap8clKlO1GFPmDq4jXc/G/ha6a9+TGVsUhJLzw/cUvLUQzTdCr4fTr+folYnOqi2ZelI2o53QboFpHMCjUpX9QBNeyHNfB56qB/RdHLY8pSjEbyNJLPdOSZDYGgbFekIs5yAgfrXifrP4/WXWFsDzaF5Vwfed1O8r7NZf+NWTpRt3t+r1uqyQSqbnBVeSgms26Eac3+4tJHXhc79WOEn+CoZBOf6XilFmq154GSfBQXX/QTB9cZ2Fygh3IVRcCcMYehmwZ+wNcgROIlrLT1ic1NLMBVYikcQbHmdzBaDk8ysHLoEzeUUHigT46Nq3iynek9q9+ievy2aIONd7XVKj+bnUZ8inDF0aFeMvAvbyZOGrJx43iD4gP74VnkY2vmKaOcneVtE5VVnGP3KMBkCQ/v1cR2RbulXilEDej5oBOot5QpUG1s+PiOf4ul6Ppk2eZgCmMscQ0KlRqop35Ro6HMu38oeyAovaQ25qRpyc3g5vNshItyZshXq0CjqkMLr4BBjHO54DgI+ojTpRc1j4dmxXWuCzZmEcG7yhsdWmhcIi9JsTHUeG1cRZuSuWpQ5ULxBd1yYne4LHhZBbEajg4bGcuKx0xvZBsfLo4HtSG9b6AfeXsUDQ/WMHl8OeK9gfFzi4+NJvV9N2cgxqsCwObfJGGfZ1nyg/S+J9n/EGENtdUzzLcaxxTEQF7E1xEUE3jAow0VehudDtaiuF2PoBP8R5DTXTaWBPC6nZTH/hT66DmOL66OyQFspK7xmNPTXEagfz3N4YBSvH83TKeROFRnEONE4htnH583fylBv0Ku03rnil6Zd9T2Vmwuhfl9xfSr905SHxsUpU866aDuthned5+0kfaK3E+4E8/0c1+GpodZZhD5nmm8xHjyOhTwOG3l0UxaKPOhzuQ2u0nca9Luzpr625kG1xrXmXoYeT9f1OJU7c836GBeMom312QT5NIh+v9vo900wTrk9UCytCWNvxdl1NPTrGS4zXsgSGjozSI+rhh4fLm037IFsix6/4GhlYEZRu1DX4z4e1dWQZ8lQz1Oinq0NXdPCbGfGNcox0M61Rt2SoW6n+BzM13+ZYpQ1NnBVSYX8T4r8HzbKqs8Z4G6FsXOSz42eOsJv5kO6M35XjgF7tqeRfwsoA/9t8ch0q0XD1xC0/MYaAsp/BsoPawv47Zf8t33Tbyufx5BfW/Og7+8A8Ty5TeE2bIrScRnCpkgLsilqdYxUNipLYBLtGOjTOtGnywz7xWOzX6YbmJF0jg0WtklqfXW61TY7AH1fJ/q+3rBh6NohmW+cIamQ/Ak4gdmtAdUS38t2zxFO8lpZj2m9wbFtlERJHHdFYKtrke36BmanQTZNEEQjPLPFxtnPuUxVID+i7XVbOYWbbszb13ZAsaEMxvRzn37bRjBM6w78zjCWTnA5hDxh7DJzvnE7LkPYcXTs/Sp0lutjALBgG97k65UnoFURG+963GPO9ZAuuB7YeL/nTnKD45ls5XgqWz1cpzj10YE4Bvx7HwrjDBCG71NskbMr/RYmiEjVqXOrZRbw/fAO8mhf04RUuaF5qw//OWXv3pX4V/uXG+tPNV1fV6InAn3IafqctUFnNTOe6t174TnpQc7S53+kzy+qafT5RfG8LzlFn0+juiMK8BfE836Ar6XyaZKaTp+fcfHnGyD/9jSfXfD8Jsc3E3hOtYQyE54fE/jt8FxwzyU6WDmFTJIg/Y1pM0G60Wxvlmbtretl+P6irutABzqYrhPfr4b0eT3NOGJp+qwpi5X1NH3GwHeB70/b9i8cTG6Yd/xp+qYRF5ynf/h/rTN/wVj8RetrhiEgn3eK8drekP8RVvlMZa+DydgwbfQLy6zzu9LffWW2Lbz7fIju0eM6g480k4uKS8jFSo6JE6u2XzgGGiC9M9yY4P7z8A6neMdBQ/Za7HNbvwePm3DjYAN8fzDsuBB8TjR9Jdw4sY8LKqtjSFd8TVnHGH+1LNiJlqpbhPHdAjtf0GCYPhSa3wsb0v48bbefkVD6d/sZCaV/hp+RUPrZxpyf7cmxj89YsoefsU/68yhMW8Ce9vWjEi3SD3RZ5j0NLSHHL3zZUiCegXmhQ0vPyeRHb2FpEcAbIYgZQQnHjOCs29Hv2oCKCvn/4EaY/14SeQgd8r39nEmPwNZDq5Qa8EnZpGHhkxLSaLYTO1AS3jtxWwhnU3Zfc6trN3M17eFiHL7sg/5XpgXYf3EuxuHrmuFiHL6ufzAHVLjdWaKNYhjVdsEi1koj4XNbOX3zlVHX7qux8vq+s5usQo+b7L5Nfkno818rA4AjrFTDFo6w0JiyCSEXV/iNFcdRLQGusEDcn9uzf/Hey7kN66oit2x895Fr/V9d5r0N7erGYx7SH32Yh/wHbse8GiorpQJSyPxQ6DxtDXZcs7w7sE6fv8y+4vNXKpMWSrqF5bLKEcC4uA02OEtIkXjDFhBxTOj7avkcJENoviwmeBvQgSVoEsQ6zyLFuB5io/fkz6WNkhNir49QdgK+rcDfDTHHu5FBiqwMos8fFvgmyP8CeZWdOyTy8wgRa/7fumXCEgB42q2Uv04bQRDGv7sDI4KNQKAUFNFWCEX4/EcgRVAklkWQJUNholQoymEv9onzrXV3YKH0aRPlFdKmSUuTLkqVvEPeIl2+Ww8EI0QVn27vt7M7s9/OjAzgiRPDweRXwVthByV8EXZRwA9hD6v4IzyDVeeZ8CweO++EC1hxroTnoNwl4XkU3OfCC3jkHgsXseJ+EC7B9xzhRTz13gsvoeB9E15GyftNJc7MPGdvrKqcHazho7DLqFfCHjbwS3gGG86i8Cw2nQPhAtadT8JzeOH8FJ5H0a0JL2DVfSlcxLrbFy7h2P0svIhXXlV4CUXvq/Ay1rzvaMJghEskCNHHABkU6qiixkdhn6uG9giasxZidOGTGrRE/HZuvFI70/xqxrrg2ONONM3oMgn7g0zVq7Wa2jemH2nViru+akSR6uRLqeroVCcXukeHDs874ZvxVTiwcUKcY8glc2Iyow50LzzntMU9AVWE1IRWFkRh9yF3Ne0wFUz9J/fX9vIptximKk+kz1ROkrnN2e5Ncre4WSdpaGJV96tMzXZ9N0/R1rSG8pSGexSUJwru1x/aqgR8M8oKGEczSkA+o83g9E6F/Zt7hakKVJYEPT0MkjNlTqVy3HHbARMr7kTpkofXi37XkJtsksQKyjgGNjsTsXnG8vbJM4bmIAnTLAxiRSE6yVJDY9teWHM9tclQTEZsL5PYqw1sczbYxgH3TWbTPpu03F8btMOujlPdU+dxTycqG2jVGAVdfmRlU90qFGyvZzxqh/9MFYzt4/Pgf4f7PCBhLipSqWsRKS1t1rCJPRziiGP5WsQgy0Y7lcp4PPYDe7hvkn4lmghIK+1Wc+/waK9sBdwusZQLD3XqdIv+Bbsk+DEAAHjabZkFeBvHEseHLMcUaMrM3NRiqSw4JQ45deJQIZVtxVYjS64gVGZmZmZmZmZmZob3XhmfdDuWT679fdZ/Zu9ufju7d7t7t0AA//xY/ndBD4zwJx8BICGjAINAHbigHkZBAzRCEzRDC4yGMTAWxsEKMB5WhJVgZVgFVoXVYHVYA9aEtWBtWAfWhfVgfdgANoSNYGPYBDaFzWBz2AK2hK1gAmwNreAGD3jBB34IQBBCEIZtYFvYDraHHWBH2AkiEIUYxMGCBEyESdAGk2EKTIVpMB3aYQbsDB0wE2ZBJ8yGOTAX5sF82AV2hd1gd1gAe0AS6+BiOAQOhXvhNPgCDoPj4Gg4F66ES9AFR8FbcDCcjPU4Co6F0+EIeBjewwY4D66Cn+BH+BkugmvhSXgcroMu6IYTym31NKTgCXgKnodn4Fl4Dr6EhfAyvAAvwvXQCz/AifAavAKvQh98Dd/CkbAnpGER9EMGsnAB5GAvGIA8FKAERVgMS+ArWArLYRnsDfvCPnAHXAj7w35wABwI38B3cBc2YhM2YwuOxjHwF/yNY3EcroDj4R8EXBFXwpURcRVcFVfD1XENXBPXwrVxHVwX18P14Vf4DTfADXEj3Bg3wU1xM9wct8AtcSucgFtjK7rRA7/D6+hFH/oxgEEMYRi3wW1xO9wed8AdcSeMwEfwMUYxhnG0MIETcRK24WScglNxGk7HdpwBN8CNuDN24EychZ04G+fgXJyH8+EP+BM+gU9xF9wVd8PdcQHugUnswm7swRQuxF7swzTuiYswg/2YxRwOwN24F+axgEX4DD7HEi6Gy3AJLsVluBz3xn1wX9wP98cD8EA8CA/GQ/BQPAwPxyPgDfgQj4S34R14Fz6AN+F9PAqPxmPwWDwOj8cT8EQ8CU/GU/BUPA1PxzPwTDwLz8Zz8Fw8D67A8/ECvBAvwovxErwUL8PL8Qq8Eq/Cq/EavBavw+vxBrwRzseb8Ga8BW/F2/B2vAPvxLvwbrwH78X78H58AB/Eh/BhfAQfxcfwcTgbn8An8Sl8Gp/BZ/E5fB5fwBfxJXwZX8FX8TV8Hd/AN/EtfBvfwXfxPXwfP8AP8SP8GD/BT/Ez/By/wC/xK/wav8Fv8Tv8Hn/A/+B/8X/4I/6EP+Mv+Cv+hr/jH/gn/oV/4z8EhETEJFRHLqqnUdRAjdREzdRCo2kMjaVxtAKNpxVpJVqZVqFVaTVandagNWktWpvWoXVpPVqfNqANaSPamDahTWkz2py2oC1pK5pAW1MruclDXvKRnwIUpBCFaRvalraj7WkH2pF2oghFKUZxsihBE2kStdFkmkJTaRpNp3aaQTtTB82kWdRJs2kOzaV5NJ92oV1pN9qdFtAelKQu6qYeStFC6qU+StOetIgy1E9ZytEA7UV5KlCRSrSYltBSWkbLaW/ah/al/Wh/OoAOpIPoYDqEDqXD6HA6go6ko+hoOoaOpePoeDqBTqST6GQ6hU6l0+h0OoPOpLPobDqHzqXz6Hy6gC6ki+hiuoQupcvocrqCrqSr6Gq6hq6l6+h6uoFupJvoZrqFbqXb6Ha6g+6ku+huuofupfvofnqAHqSH6GF6hB6lx+hxeoKepKfoaXqGnqXn6Hl6gV6kl+hleoVepdfodXqD3qS36G16h96l9+h9+oA+pI/oY/qEPqXP6HP6gr6kr+hr+oa+pe/oe/qB/kP/pf/Rj/QT/Uy/0K/0G/1Of9Cf9Bf9Tf8wMDIxs3Adu7ieR3EDN3ITN3MLj+YxPJbH8Qo8nlfklXhlXoVX5dV4dV6D1+S1eG1eh9fl9Xh93oA35I14Y96EN+XNeHPegrfkrXgCb82t7GYPe9nHfg5wkEMc5m14W96Ot+cdeEfeiSMc5RjH2eIET+RJ3MaTeQpP5Wk8ndt5Bu/MHTyTZ3Enz+Y5PJfn8XzehXfl3Xh3uAlu5gW8B9wGt8MjnIRb4FZ4FA6Ch+Bw7oKruRse4x5OwX1wPy+Ee7iX++AXTvOevIgz3M9ZzvEA78V5LnCRS7yYl/BSOIaX8XLem/fhfeEMOAvOhO/hUjgJzoHL4Xg4BU6FO3k/3p8P4AP5ID6YD+FD+TA+nI/gI/koPpqP4WP5OD6eT+AT+SQ+mU/hU/k0Pp3P4DP5LD6bz+Fz+Tw+ny/gC/kivpgv4Uv5Mr6cr+Ar+Sq+mq/ha/k6vp5v4Bv5Jr6Zb+Fb+Ta+ne/gO/kuvpvv4Xv5Pr6fH+AH+SF+mB/hR/kxfpyf4Cf5KX6an+Fn+Tl+nl/gF/klfplf4Vf5NX6d3+A3+S1+m9/hd/k9fp8/4A/5I/6YP+FP+TP+nL/gL/kr/pq/4W/5O/6ef+D/8H/5f/wj/8Q/8y/8K//Gv/Mf/Cf/xX/zPwKCQsIiUicuqZdR0iCN0iTN0iKjZYyMlXGygoyXFWUlWVlWkVVlNVld1pA1ZS1ZW9aRdWU9WV82kA1lI9lYNpFNZTPZXLaQLWUrmSBbS6u4xSNe8YlfAhKUkIRlG9lWtpPtZQfZUXaSiEQlJnGxJCETZZK0yWSZIlNlmkyXdpkhO0uHzJRZ0imzZY7MlXkyX3aRXWU32V0WyB6SlC7plh5JyULplT5Jy56ySDLSL1nJyYDsJXkpSFFKsliWyFJZJstlb9lH9pX9ZH85QA6Ug+RgOUQOlcPkcDlCjpSj5Gg5Ro6V4+R4OUFOlJPkZDlFTpXT5HQ5Q86Us+RsOUfOlfPkfLlALpSL5GK5RC6Vy+RyuUKulKvkarlGrpXr5Hq5QW6Um+RmuUVuldvkdrlD7pS75G65R+6V++R+eUAelIfkYXlEHpXH5HF5Qp6Up+RpeUaelefkeXlBXpSX5GV5RV6V1+R1eUPelLfkbXlH3pX35H35QD6Uj+Rj+UQ+lc/kc/lCvpSv6kvZdGv5TzWu6jEa0fKIlke1POpVDddH+pPd+Vy2PmnUFenKpxanXElb6iO53lw2tag+abQp1p3Od5f6F2ZSS5u6h+zGWE+umOzuTmWLjd1V0xXvTlZC9hiJl+Mni/WWAlMKtAwwZUujNRQoVTXrLa1GyqjLMhFTtjRNdFSq11GpiUOxeodiVRJ3ezyq3qZJjqv7hmyZ1JXMS1/5x9VWTGd6Uq60LfVtWv+01r/N1D9tGqxNa5o2Sm2TKb1n02QHY88h29TBG1ANNi/qzadS2Uwy25Pudk1NdpeKKVfGFj0lqhpzTTVNkLFFppbzk0z5xzXdXJV1XOXzqwZc081VWdNw2eRArlDM5wb6UmxlezmV7a1v1/Ryml67SS9nS0t7Xynbm8yX+jPJUrEl5/RcHYacd5D9mpo/6Oow5LyRmebcgi1NMx3NUxjePAHtqoDXNctcXDQ5z6p0ULHSQZ2mg0qmgzo1g5Jm0GkyKNlS15lPZ3vrSpXfls6abEpOr75TO7Kkd/4cRx2XOOx5DnvZkO2abzJcbkvj/KFbcXnVrMvksr0Fk10oUdfel8tn63L2b6f9W6r8muOJ1sZIpc4mXLJq1kcso8mUacv2QiZZ6DN2bsi2o3jcIdWwakTV3Fceb9CoX49HY0Zj6ie8Db355OJUd66/q8GOa1t2u1eslr5cblGyK2fOsK/xtiaayxl3pTK5JZXCumIumyu09KRT+VQhXbC9xkhmoC9pmw3JbK6YyqTSyWZroJAut5BdPMoq6vG2nFrN7f3pSv8ap9NxcmN7f6rXnDQuXT69hlVnsySaKibrJib7+5P1ypH55SIuc+pm9ZUtqYDqpiQHBpLlJ7G/qydJ00o0vURz0/VKphlp7ujL1c1M9/YneVayVK+14Bl9aY6V/2cU0s1tjhqM0RMG/cZkNfHmlDPd1GC66cF0VyzVXmqSsa+XrkoyvZVk6npSmWKyXmPJ8kpKlYNFO6VKsLpFdkoZOyXTQ9EYZUu0NF1+5u28ON+XcxUqSbnrbOFiOTfl80A5r+7yf9mty1UautnZxmOGVbM55+ylkrOXctVectnVc4/S1nG77ENuu3Y+ndt8rYO+R9Wr6lP1qwZUg6oh1bBqRDWqGlONq1qqCaNu5buV71a+W/lu5buV71a+W/n6zPn0mfPpM+fTZ87nVr5b+W7lu5XvUb5H+Tp1+TzK9yjfo3yP8j3K9yjfo3yP8j3K9yjfo3yP8j3K9yrfq3yv8r3K9yrfq3ydznw6lvi8yvcq36t8nct8XuV7le9Vvlf5PuX7lO9Tvk/5PuXrLOfzKd+nfJ/yfcr3Kd+nfJ/yfcr3Kd+nfL/y/cr3K9+vfL/y/crXOc/nV75f+Tqm+vzK9yvfr3y/8v3K9ys/oPyA8nU+9AWUH1B+QPkB5QeUH1B+QPkB5QeUH1B+QPkB5QeUH1R+UPlB5QeVH1R+UPlB5QeVH1R+UPlB5QeVH1R+UPlB5QeVH1J+SPkh5YeUH1J+SPkh5YeUG1JuSLkh5YaUG1JuSLkh5YaVG1ZuWLlh5YaVG1ZuWLlhzTus/LDyw8oPKz+s/LDyw8oPK1/X7r6I8iPKjyg/ovyI8iPKjyg/ovyI8iPKjyg/onx9N/BFlB9RflT5UeXru4NP3x18UeVHlR9VflT5UeVHlR9VflT5urbwRZUfVX5U+THlx5QfU35M+THlx5QfU35M+THl69rFF1N+TPkx5ceUH1N+TPlx5ceVH1d+XPlx5ceVH1d+XPlx5ceVH1d+XPlx5ceVH1d+XPmW8i3lW8q3lG8p31K+pXxL+ZbyLeVbyreUbynfUr6lfEv5CeUnlJ9QfkL5CeUnlJ9QfkL5CeUnlJ9QfkL5CeUnlJ9QfsLw/Trv+3Xe9+u879d536/zvl/nfb/O+36d9/067/t13vfrvO/Xed+v875f532/zvt+nff9Ou/7dd7367zvN/O+2zL1K6vbqJm3yppwzbEXya4lRuaYN4EltjTMGVwZNSwZtMx1EY0X0XjmeS+r8szzXla/akA1qBpSDatGVKOqMdW4qtbXPO9uK6r8qPKjyo8qP6r8qPKjyo8qP6r8qPKjyo8qP6r8qPKjyo8qP6b8mPJjyo8pP6b8mPJjyo8pP6b8mPJjyo8pP6b8mPJjyo8pP678uPLjyo8rP678uPLjyo8rP678uPLjyo8rP678uPLjyo8r31K+pXxL+ZbyLeVbyreUbynfUr6lfEv5lvIt5VvKt5RvKT+h/ITbNc/cuMts0VKlJ5SeUHpC6Qmlm6fdnTCrKY9+mSqrW9Wj6lX1qfpVA6pB1ZBqWDWiGjXq1vhuje/2t5SyPal8oTuXT/V0ZVr2KpXfJytv/vlCqmd0cUmu/DKaymZSyfJJ5hJP0NWfztqfI8qvrdmehtTS7vLrUfliczyoVQwmJJPOJ40TCbgGUoXyW4u6Ws2IVjMSkZ7yy71YpXzOlES1glE9I6qJmMeirKbB3NoQbjPMlDXQkCoU0/3JYqqnIZdNpdK9fcW+5mJfPqV2oWlhevGg3Vwop5pVpxLB0gGqrHbTJwLmgUpETXlZPaqD5Xa+CcsMxImEGajLGh87cUH1pX9Cd3f/wNje4QXTF1Q/EJiC7LCC0ZEF+lnAuMla16p1U7VuW427UrkrM6lCIV17Unutm6t1O2rdfK3bWeuWatxVBt9PhyU9PrrA+YXDlHWNUBYfoazn32Wj4wu0o4zbU+OOnzRClL5/l42dMrxvFg2v95QRIi0aoWzqCGWZEcqmjVDWP0LZ9BHKsiNkMGN4BgPDM+gYIVJ+hLKZI5QVRiibNUJZcYSazV5Q/eZlChYPKxg/e4RIi0comzNC2ZIRyuaPULb832WjejPLBvpCAfeohQsWTujJpHvLRtEYBTXq56YndHsK3U3mu5ZtN9ofvYwZr3xDMqb9hcw2Ry1LZW2jpVAeTzPpbK+J0ZPLZJJ523YtmlAotPpdU4zYns94PldHRbzmg1fF9Lh6K+I2FQ6X315nmFo1ZNPZ1ISebK6/0R7GjGkPa7Y5qpBeahsNlWFPrVwpb86zx0VzXnmsN0ZO4zUsT+VNUaP9yc7kNaMvrUbBGObzoSkzlQu5XXNMhrONdBqZZWSmkQ4jOxuZYaTdyHQj04xMNTLFyGQjbUYmGZloJGHEMhI3EjMSNRIxrWbX1F2eR6tWoGoFq1aoaoUHLXdr1XJXLU/V8rrmGs48W5r1m5vT8ZhmM100kC31m66t8j1VgsfdNN/+eO+8POx0Ik4n6nQSDsftdjrOyrgDTifodEJOx8lxOzker9NxRvM4o3mc0TzOFDzO0J6a0DGnE3c6ltNxZhr2OB1ndcJOTtgZOtLqdJwVjTqPRJ2ho85GjNZc4+REnZy48zTLGdoyRxoq6yVjVRZC1RMqq5ohp7z0MXdYl33XuLqN9NhiP7z2PZUzxQNG9jKSqkjQ3G/B8oNhF040EjfSbmRnW5or4XKZnkJxWSbVXBkhqo5+9LGrMtoMI4PHWuzxZdAzw8jCfLLbjDvGqoxFFcseniqGPg+2aQYy+0R7dKtYLfYlg0FHm7MH3fp2c0e02KdX62GTq/XQhypcfeTD1UcuXH3kw9VHPhwe05vK9yez5ZVtwQzeZkvWDHVWsc90VWVfzRyO2Es3te2Z17bHRob2ufSgPfmZposMvtaaUcHetbLNMUMbWCa3WHeqJ12ePUwMywGzHDBrGGy0VQNoanNc1+a4rm34dW21100fqnNTuyNGuyNG+/BE2x2JttfG6xyKYe6Qyl1rutu27O42VuWuqVg6W1VMe7aqGE2dDn7n8Bw6a5nzhs5t1o187RB7s1MPmB1McyDmiB4bFn3M0C6+njw0VjfFHeO25URZQ6gxVm2AZsuJtoYijJ04vGEnOqJMHBZFd+zNlZOGX9k21CXNbc6KtTnaoM1RkTFttfHHTh4Wslm35QcXSUNtrJvwemAon4bK/rveVsNP9/n1gKMB2531bB+q5wo1++vmcMfwgH6tWIejd2Y6unXmsHRaZtY8ZzOHTcAenQubZg074A549M52tHCns+adQzVv7Kw+5yt0/iuJ5k5H+4+dM6yCY+cNv83n1d7m84eyGzO/tvNc83VsqW6k2v445+axaYXBHWQdDHJOd5xzL9mUdA4PMGZoV1lHNnspa3d/dHDtPLhpbYrnDxZXtq9NUYVrLre3lm2zflpp8LZIVxt3VEefmTBHzUrq4U5H7FExXbaOc+4v2yUrDttkdi6inOumVudKp9XvdJzrjFbnsqfVOeW3OhcDrc4ljNu5GHA71xluJ9TthLqdiyi3M7TbuVRy13CcSyWPE+pxZupx1sDjhIad+UScp0Wcy56IExp1OpbzGqtmGeerHX4zue5Mc9LpWE4n5XB0xvb4wv8HAFZoOgABAAIACAAC//8AD3jaHdFZKydgFMfx3zkPmr9cU9Zb6yuw3Lowd7wXiihmKLvIkm0wM8q+D2O/sS/FK1CYGtzawzd9ezqf5+7UkUmKk+wv01UoUzWvRt/4fSdTLbnqVI8b1Iib1Ixb1Irb1I471Im7yNRNrh714j714wEN4h/kGtIwHtFP/ItMv8k1qjE8rgk8qSk8rRk8q3m8oCX8h0zL5FrRKl7TOt7QJt4i17b28L4O8KEu8RW5rvUf3+gW3+kRP+kZv5DpVe9yk0XLLMYiONbicYIl4iRLximWitMsE2dZNs6xXJxn+bjAivBXK8YlviPzXT+S+7Gf4FM/w+d+jf85O/id3+MHf8Pv4YssREK6PGSEUlwWynFFqMRVYRbPhTk8HxbxUtQFO0d9Xkwf+gNVyQAAAHja7ZoJdE1XF8f33me/iIgIIiKSiMgkQQhiVvOQGCNVTXUgqCHCF0NLtVXzVDNFTUVVUVLzXFU1j6HmuaaGTuozD9+5+x1pgoW236p2rZes9dvnnvM/+557zt7n3fveBQQAFzxmKw9co1a9OPBO6JGcCHXeTG7dAbontuiaBLOAtQbu34dc2jDYICtkB3fIC/mhABSCEAiHCCgJZaACvADVM6hRl53ARatzghf4gD8EQigUgeJQCspCRagCNTKoSZezQDatzgX5wBcKQhAUhqJQAkpDOagEVaGm7u1UNb6mP8RVj43TrN+wnj+816BqU3+YG9uwvj8ciHsx1h9JPOYGpT06g6v26KaPvMEPAiAYwqAYREIUlIfKUA1qmbP/rn2yMncmpccf0Ob5A1rPZ9bmeMJ4aydEdknA+cJFwhXCdQkJHTvjxlaJ7d7EHcJU4SHhiVZJnTriWWGa8BfhtTbJLRLwjpa0ICehW2JSt47kIfQW+guDEzslJFIRYaSwrK5OpsrCGsJoYaNOlr6psLmwpbBtZ4tJwq7CnsLeXTomdKYBwmHC0cIJXboUL0FThbOEc4UpmpG0TLhGuEG4RbMk7RLuFx4RntIsReeFl4VXhDc0S9M9i4qFLkJ3zSjlKfQRBghDNcuoYsJSwvLCKl31VahawnrCWGEznQQIKFRCElp/pFc6qxy5Cd2FOYTZhdWFNYU1hNU0lc7GKjprLA85JXfRsKKwsrCSsILQRegqzCasLawrrCOsJSwujBSWEEYIywrLC8sJywhtwixCJyELPYSewjzC3EIvobcwnzCv0EfoJ/QV5hf6CwOEBYUFhIHCYGGQsJAwVBgmLCwMERYRFhMWFYYLSwmjhKWFJSEGJsB0mAMpsALWwxbYA4cgDa7ALSR0wVzojQEYhpFYHqthNMZiPLbE9piMPbEPDsHROAln4FxchKtwA27DVDyCZzANr+AtInKhXORNARRGkVSeqlE0xVI8taT2lEw9qQ8NodE0iWbQXFpEq2gDbaNUOkJnKI2u2KOIWtqt7ZTdZn3Nbl2P2a17vN3mLmu3np5263VV1scpf2r+qz6ePmV94n162dfKZ5hdUcjV2FzGetnbC4UZ28jY7sZONnaDsWZEhe7ZbSAZ62Ssi7FuxprzBJoRBnob62dsgLHBxoYZW8xYc4WB1YytZ2xTY98wtr2xXY19z9gUY8/YbZCHsbWMjTPWzHhQZ2NN/6Dpxm4w9qzdBpvrDQ41NtrYRGOHG2vOH5xq7FW7DTHzEWKuL8SsaEgvY6faMy1khjneZKy5jhAz/6FmPkOjjI01NsnYIcbONnYDEG6Ek2qtuqwuqTT1g7qoLqjz6pw6q75XZ9RpdUqdVCfUcXVMHVVH1GF1SB1UB9Q1dZ0/V2vUam7EjTmWm3Acv8gvcTN+meP5FW7Or/Jr/Do34De4BbfkBG7FrbkNd+Qk7sSduR7/h5O5C3flbtyd3+K3uT734J78Dvfid/k9fp978wfch/tyP+7PA3ggD+LBPISH8jD+kIfzCB7Jo3g0j+EaPJbH8Xj+iCfwRJ7EU3gyN+SpPI2n8yc8g2fyLP6UZ/NnPEfd46b8Mc/leTyfv+AFvJBT+EtepFaplbyYl/BStYKX8XK1nFeoZbxSbeJVai+v5jUqldeqfWo/r+OveL26yV+rG7yBv+GN/K26z8DIm3gzE29hxVt5GzNvZxs7cRbewc6clXfyLt7Ne3gvp/I+duFjvJ+zsStnZzfOwe6ck3NxbvbgspyHPfk7zstenI8PsDcf5EOcn33Yl/24APvzYS7IAXyEC/FRDuQgDmErV07qz5UgvTeG6N2wsN4Lw/XuV1TvfRF6dy+h9/aSetcrrfe8MnpXL6f39Ar6c6OS/tRoA22hL/SD/jAABsIgGAJDYRh8CMNhBIyEUTAaxsBYGAfj4SO9Q06EyTAFpsI0vVfOgG/gW9gMW2E77ITdsBf2wXdwEA7DUTiux3MavodzcAEuwY/wM/wKv8F1uAl34J7+aCR0Qme9r+bAnJgb82BezIf50RcLYEEshEEYgoUxHItiBJbAklgay2A5rIAVsTJWkd23HXbAROyISdgJO+tduAt2xW7YHd/Ct7GH3pPfwV74Lr6PvfEDvT/3xX7YHwfgQByEg/VuPRQX4xJcistwOa7AlXrPXo1rcC2uw/X4td6/v8GN+C1uws24Bbfq3Xw77sCduAt34x7cq/f2fbgfv8MDeBAP4WG90x/FY3gcT+BJPIWnqSpVp9pUl2KoPjWmJvQyvUKvUwtKoNbUjjpQR+pEg2kUjaGJNE01UfHqddXSkYWOLHRkoSMLHVnoyEJHFjqy0JGFjix87lnYFZb/mRz8k/k3+2/Ov9+z769myJOy7w9lj86a5VDT+q4X6kBdiIYYqAf1oQE0hEbQGGKhCcTBi9AUXoJm8DLEwyvQHF6F12AmzIJPYTZ8BnNgLsyD+fAFLICFkAJfwiJYDEtgKSzTvlfASlgDa2EdfAXrYQNshE2wBbbBDtgFeyAV9sMBOARH4BicgFNwBs7CebgIl+En+AWuwFW4AbfgLtxHRIVZMCtmQ3fMhR7oiV7ojT7oh/4YgIEYjKEYhkWwGBbHSCyFUVgWy2MlfAGrYgw2wTP4PZ7Fc3geL+BF/AHT8BJexh/xJ/wZf8Ff8Qr+hlfxv3gNr+MNvIm38Dbewbt4D++TDkxSxGQjJ8pCzpSVXCgbuVJ2ciN3yknVqAbVoWiqRw0oluIonprTG9SSWlEbak+JlESd5Ru3sTSJpjui3BHljih3RLkjyh1R7ohyR5T/C6Jcmd9+rd9Vrd9wouW35vpAgNgCW8tvxY9TNHiq4srTFOT8VIXLUxW3MijQyU8/ASbrWFigV3ob3EE3vS7R2Arfw5H6KegyXiMvitTz050G0QzaQSeUu/JWgSpKtVXJqpcaoKbrZ+Ud6hqHcqTO3ySdc4t0TJ+wOdu8bYG2Yraytmq2RNt423pbmpMHOIGbvOfhr59Mi9BevTStaLdmG9VXs7V+5iRM0E+fhC3Bqmlh/bqtRloK+Z17q7SQ9uOqxgKpt9Roacvs95LlhX4Q7xfEe3/xPkx6DxW/dh/vS805y5OcafxjvN206ui65U0NFD/iH0ZK3xHiTemnbd1HTZKzTZCWm+L1Qctk8XxP6u5kuIqp4n2z1NjAVa+XF/hBoJounj6wvKOz1QudRDNWzp15hHflSm9Lj8EywgmiGi89xqXP4ww5ZnABd/AEHzVLeljz0RrzyTnyiuLBmGdb7dhIWnwzjHmO1MfKtWQaicojs5Rb/H4ofsNlJFOk9+QMMz9fNHOl9cH5FshcbLe0tFW0GWckxNKqIDlDIeldUDTTM4wsRUZWUWoyz1GqzNEe6ddP5mi2nHuWaGemz9Go9FjblsHvOIm1MY+JjssSa2ni/aJ4HyDe50vveel+e8uxVfrowRmsXNSlB1f/sfSeKLpbmWJniujuS93dDKOaJvO15ZHY+UQ89ZHYySqrl0U0Sx4TO/dk5HekxxAZ+QpRLZMeS9PHP/Oh2PlUegyTNfaWc3hlip3PZCUaS4tfhjF/LvVNHhM7nrKyHuJ3uPgtIiNZK73XZIidL0QzL1PsLJS52CGxs+2R2AmV2AmWMwRK7wDRrM8wsi9lZJUerBPWSy81SC/VTy81fHjW6YZ4HyRzKFEBKaJZ+MhocsoIcsiYskuvbJZGZX1kJXOJ0l2UbqJ0FaXLI8oCovQVZX5R5hNl3keU/qL0E6WPKL1F6ZUeoSPMrOSUtwYBwqGo9hABpfRcR0EFPd/WN4Ue+s6jro6FGP3pl1/fccRp7031HUag3GGEwWD9XwQ+1v9F4XP9XwxW6/8IfVdwFYpjTawDJTAFU6C0vMcUYb2nhQUx4KEj0mdjPs4n+CSfkrzcrO9AjsIxeReJdDz6mPXT0Q3N1GLNaLmKpdaxvP0Vre9//klqP1F7SNvbulxfSj1NSat038yqHrrcSErvmNIDlZNus+4eYp61TJFWGUc9a1kNk75Rz1S2Rkzqa7VeRhiho+Kv1Hyl1v3lGj9w5RJcUt+dlOLS+i6lMIep21yEi3IxeT/P+n48HErqKLTfRceYe+Z/W09XUBzBxbm4vPVYF2LU7f9LrSc4cy2O4jJcjstzNa7ONXW7s47LPLotr95T8uns9/0nKHUpj27x1XVeus16p8tZ3eJwfpPbcjtuzx048Z+g1DXhnKiP23M7rWj7hGt/rsqH6qydyDnzWnCt56y09p6KsvdY73Fb77Q+eC/Xet4heSvWV97aJdVQNdQPRZvVHtkdvMGFK0Av6AbduSJX4sr8Alfhqpn6aI3ao3arXWqnfsbZrraprWqL2vw8Nc8y5r9NEwzujxsz1+XaHM0xXIdPyzvWGaPLW6+mj+5vfUtxRT+Nu9Ct/wElTbXJAAB42u2ceXRUVfbv9zk3c0IqhDCIaDsxqSiKAyIq0C0g0naDtk8RWn0O7fRDGucZFZVGpdt2igMEBTUthG6UUQVKZIaQEKACsQhUqFQVSaWqkkpEW815n3tThERxaN96f7y1Omd965y649n7u/c+e9+qlCgRyZDx8rok/Wb46Cuk+w0PTL5D+vxp8k23yzl3XH/3RPmNJHGMGCOaLqnNO9XunW73zmKcfMOkuybJcc5rL+f1VOf1zNtvmjxRBnKoEuW8Ws6rdl7FeeVsyZI86SEnyamJo05u6VW4pbcWtPTJk5wzdeqZw/7NlgzOPElGMqqUNOkpvaS39JG+nH0KV+onp8np0l/OkDNlgJwlZ8s5ci5zOU8GyfkyWC6QC+VmuUWelKnylDwtz8g0mS7PynPyvMyQv8rf5AX5u7woL8nL8oq8KvnymrwpM2WWFMhs+UzWynrZKJulWEpkm2yXnVIuu+Vz2SN7xSf7pVqCUit1EpV6ictB+Uq+kWbUoFWKSlMZyqU6qk6qs+qqjlJHq2PUr9Tx6kTVU/VWfdUpqp86XZ2hBqiz1bnqPHW+GqwuVEPUKDVW3apuV3eo/1ET1Z1qkpqs7lJ3q3vUveo+db96QD2oHlIPq0fUY2qKelw9oZ5UU9VT6mn1jJqm/qKmq2fVh2qRWqyWqKVqmVquPlIfq0/UCrVSudWnarX6TK1Ra9U6tV5tUBvVJrVZbVHFaqsqUaVqmypT29UOtVN5VLnapXarCvW58qo9qlLtVfuUTw/Vv9Yj9CX6Uv1bPUZfrq/W1+hr9fX6Bn2TvlXfrv9H36n/ol/QL+rXdIF1uTXOutb63/9l8r9M/pfJ/zL5Xyb/3zA58DZ7tVYLrTusV2hvWg3Wl0kTk+5Pmp70r6R1aZCbdkJan7QH7VHS9LTCtE3po9OXpJ2QMTtjXUY4c1TmjswvsgZmjcu6O+vRDoUdPsgupH2QNS57V3aNa7TrZtcUXp+2vjzcuPa/Wppz9ZbrgkON+zktcxTXPdzubmn21Q811+isca7R1pdZAw+Ba7c0+0r/yrr7u0iT7MJDd22VrKU5e1qQXZg0PfuDQ0ASWvoSux2am90y1mWOco12NECz756+xLUBHX7ZIlnS9MxRti5zhtlbMne0yJnWx/rS3tsxydZmx+b0JZmjcr/JCHeqSJPMUdmFefe7Ruc9ml3YdbBr9FFdsj/o3qf7sO4ju1/WY2SPy3pM7bGEOaG5Y87KGdYiwbHvHzf+hO5pfU78fZpYX574un2/nqcm/Ssj3NvmrE+rhguT7k9fcuLvM8L2+z6/6Vt58icnB04pPPWcrIGnvtRvYr8vT9NZd7umnLbltC9s/vqPd7Q75cyqAcedNfasHVnjzvq3rf9+X5495ez3zxHX6JM/OQupsz/ImO0abeOcc7LG5Qzr92XOsIywawp3bmli37dFU/Z2W8POfmderbz9q4Vde4+jc2Zw4u9dow/Bvm6/L+299tE2R1gfrS33PwdHson29mHr6jD330X2By2WaUtzGEnTrVfOuc7xH6edW3au99zIQBmYO7D/wEEDf9Nij8TMgWaN6gl6g7FgEVgBdpg1egyYAG4ya4iq10imdCZa5hEvexEvuxD3uqhzpZc6j/58cCd4CjwrXXQvydN9wLWMrwcbpZfeDIqll3W8dLFOBD1Bb66jpJNJk2PkRPNPucpE5RqzV40wEfW0qVbTzDb1hnRUc80GtU46qUqzVjWaTarZlOqx5nF9q7lJ32ae0v9jbtYTzR79F9OgF5uFeqnZpFeZf2i32WB5zB6r3BRbu0y9tdustypNkxUAB5FL6x6SyZEBYk4HXoeaRrneRLlWnaTLX5jJYyaunjQx9YapUet4X2n2cfw+K2zqrC9ME6vOKBNhzjXcp477xLhuTLZKTnNEckFPM0ROM/1Za/LkYlMpI0ytjASXgEvB5eAP4ErufrWpkXEmJBPAk5w3FTwFngbPgGlgDteYC94B74L3QCF4n2vMA/NBEVgAFoMlYClYBpaDT7jHCrASrAJu7rUafMa113CdtfTr6NfTb6DfxDlbwFZQCsqAB+wCFcALKsE+UAX8IAAOmv4qx9SqXJAHuoCekqd6g1PR5WmgPzgTnAXOAYNMSA3nuJGMR5kh6lJTqcZy/K2MJ4N7wMPgOY75G8e8QP8i58wEBYzfBnPAO+ybB9CFKqJfxDU+Yj4r6Fdz/g76Kq4dZH8MxEET1/jC1GoNLJACckxIdzNDdE/GvRn3BacwPh0MAGOw8HH048EExtex/yb6xznnCVOp4VBPpZ/G/umAeet88Dp4E8zm+LfBXPAB7z8Ei8BKAA8aHnQJfSn9Nvoy+u30O+h30nvoy+l30e+mr6D/nN5Lv4e+kn4v/T56Hz0y6/30fvpq+gB9iHvVgDCIAPShG0AjsPXxDWg2tZYAdGMlAXRjpYEMkAWyAVxbcG3l4QldQDfQHfQAx4LjwAkmZJ0EeoE+4MLmiDUMDAcjQNi4JQ0/76wC0hnf9uPb1fi2H5/ej09X4Xl+6mvmijddYz4lRqwlNixS+005cWE5ceGA7mQ+0P1MmT7DbCBGzOYaa4kLfr3EbNHLgNts1p+aqOU1QWJBkFgQsGrwgEyuuAUvLseLlxEtIkSLFRzVwFENHFXPUXErLJ3w8KWE5askW/7SXE5kyFdvmfVEh1wVMGP1QlPCDKfIcUTXvTKIGZ9vwnKB2SOzzR6i7V6i7V51rgmr83h/PhjL+zvpnwLPgkW8XwF2mL26FzPvA8YwngCuJcpdD25ivNGE9WZQbMLW8US5E0FP0BuEmV13ZrCVGdRx91LuXsrdt3L3rdy5lDuXcuet3LmUO5dy51LuvJU7b+XOW7lzHXeu485bufNW7lzKnUu581buVsrdSrlbKXcrZV1IIppeaVahw20y0dwhj5qJxM9fyz/MfPnYvAVTy9TL5lH1mnlIzTZvoLEHYO4D9S7bCs0j6h/mYTT4T1UpLtj0K7+ZjTbvVgfMFJj9QH3LMc30xkzRyjygk6SP7mgege3HYPtm2K7QQ1gRhpl8fRnbx5oP9VUO+w9jQa8T0e/ACgKwczuW8HcsoUh/Yh7Sq8SFRbyARTTAvb1C1FsV5hN4Xw7vy+F9Obwvh9F/Eu/tVaEDtjdUOiJtlVyPNXjNbo7czZG7OXI3Ry5yjnJxVBZH1XJUdhtrC3LUAY7aLF3Ryg6Vb+oSa9w+tBFEG9VoI4If5KKJA0hfjjTlSLIdSTxIYttzUC+WDnqpZDF7jzN7L1dtcwc5QTKYoT3bbFPCXHJZqWqYzy5W2Rp75vC0AJ6K4Wk2PH0KT25mVKr+Tsx82axTr0gHZncAzjxwFoKzj5jlAWa5mVlWMMv11sVmO3qLo7c4M9jMDDYzg83MoBgZ56GzKL5yDTI97Zzl56gwR4U5qpaj6rDUDpLDGhmR88CbYCaYBQrAQTRxCugHTgdngAHgbPARPtoJdOa4NPQUw0JiWEQ91hBHZ/UwHYfpODqqlxTmXoNNRTjSw5F1HBFmT1g0W5qsC4g+oySFuWSCFpZzWa9DrNch1usQ63WItTrk6O59+nlgPigCC8AmsAVsBaWgDHjALlABvKAS7ANVwA8C6LWLs+6F1JWSw9oWYl0LsZaFWMtCrFEh1id7bQqxNoVYm0KsTfY6FGIdCrEOhViDQqxBIdaZEOtMiHUmxBpjrykh1pQQa0qINSVErA8R60PE+hCxPkSsDxHrQ8T6ELE+RDwPEc9DxPMQsTxkDZYc6wJwERgChoJR4FL0Y+vMg87yyQVHoMOR4BJwKfgDeB/MA/NBEVgANoEtYCsoBWXAA3aBCoBloJ8w+gmjnzD6CaOfMPoJo58wugmjmzC6CaObMLoJo5swugmjmzC6CaObMLoJo5swugmjmzC6CaObMLoJo5swugmjmzC6CaObMLoJo5swugmjmzC6CaObMLoJo5swugmjmzC6CaObMLoJt8o/TdITdrWMLVVYXwzrq8e2arG+Jtu+OOpv5JejsKir5Ewy6Y62VqUbuV8VOVoVOVoVOVoVOVoVOVoVeVMVeVMVeVMVeU0VeUwVeUoVeUgV+UMVuUMV63IV63IV63IV63IV63IV63IV63IVa3EVd+iGLY/Cg2dLJp5bo+ZKFrPcQLSst63cTJVcM9W6EAwDw8EItilnv+2PYfwxjD+G8ccw/hjGH8P4Yxh/DOOPYfwxjD+G8ccw/hjGH8P4Yxh/DMuxkmIaJBOMM3Ey2jiZZpxMM06WF1dXmgYytziZW9z2PbKvONlWnCwrTpYVJ5OKkx3FyY7iZEdxMoc4mUOczCFO5hC3BhPvLgAXgSFgKBgFLuV+/YlxjxJxZsrE5np5tLmRVXoe8e2PxLdLiUKTiW0uYloGMW0omkmFv1uIaS6iUzYxLYt16AbWoWSi7wrWoUtUoLmZdagTM72FdSib2HEL61An1qFU1qH+rEPZ8N5R92sOwv181qHOrEODWYeysYPbWIcuIXpnEb0v0syJ6O3WC5uj2McZRKdrWYcyWIeSsZX+RPKdcqGgBzkFDABng+ngZfAKeBXkg9fAG2Aj2AyKQQnYC3xgP6hGvy7QEXQCncHF4DIwETwApoA3sBNipSoF29F5LkDf+mRwKjgN9AdngqvBNYB5aOagmYNeAb4G3wIDPwpYIBmkgnSQCToA5mMxHwuek4jTSVwz6Sxgy3kRkgeQPIDkASQPIHkAyQNIHkDyAJIHkDyA5AEkDyB5AMkDSB5A8gCSB5A8gOQBJA8geQDJA0geQPIAkgeQPIDkASQPYA+rkT4H6QNIH0D6ANIHkD6A9AGkDyB9AOkDSB9A+gDSB5A+gPQBpA8gfQDpA0gfQPoA0geQPoD0AaQPIH0A6QNIH0D6ANIHkD6A9AGkDyB9IMmW9VyqRb8MNmXka9upAP1UgH4qQD8VoJ8K0E8F6CeP20615qdS81Ol+cnltpPLbadi8lMp+cnntlMt+amW/FRLfnK77eoZU0Z+t51ctYoKyK828L6cHLkbmeUI+mvJLa4HNzCeDB5nO/fXzzMuAtyLSsRPFeKnAvFTffipPPxUHX4qDj/Vhp9Kw0+V4afC8FNd+MkRt5MjbidH3E6OuF16E3OGE3OGI2Ux0hUjXTHSFSNdMdIVI10xkhUjWTGSFSNRMRIVI00x0hQjTTH+2oAExcy8mFkWM8tiZlfM7IqZXTGzK2Z2xcyumNkVM7tiZlfM7IqZXTGzK2Z2xcS94cS94cS94cS94aKwgmz5J2uZl7XMy1rmZS3zyhjyorHgcuORK+j/wLaryeXHGR9Rzcc652Wd87LOeVnnvKxzXlnEcYs5fglYCpaB5eATzlsBVoJVwM35q8EmztkCtoJSUAY8YBeoAF5QCfaBKuAHAeNVqVRA6SATZIEc8ppckAe6sP9UaonTQH9wJjgLnAMGGR/rqZc6ew9rqlfN4Ny/MX6B8Yvsw9/Uq2yjViVOHiBK+9QssqsCJw8Msv56WX+9xM391Np7iJ1biZ07iJ2fU3fvYb3yUHfvUdVcI8hxNfS1IAwiIApiHFNP3wDiHNPEPb6g/5L3/wZfg2bzqRagjZe13auTGafQI6vOBi6QY3ysix5WDh8rh4+138va72Xt9+rB7B8N4E1fCcaxbTy4juMe4P1D4DEwjW3TAbrQL/H+FZDPNV/n/Zv0szn+bTAXFLLvfTAffMD+D8EisBJsYFuIvgaEQQTEQANoBMjHuu1h3fawbntYtz2s2x7WbQ/rtoccw0uO4SXH8LKGe8gzvNTTe6in91BP76Ge3kM9vYd6eg/19B5WRR+roo9V0ceq6JN7WXMrWHMrsOIYVhzDimNYcQyrjWG1UazWi9V6sdoYVhvDamNYbQyrjWGdUawzinVGsc4o1unFOr1YZwzrjGGdMawzhnXGsM4Y1hnDOmNYZwzrjGGdMawzhnXGsM4YFhjDAqNYYBQLjGKBUSwwigVGsUAvFhjDAqPkAhVYYQwLjGKBMSzQi+WF8UcXlufF4mqwuBgWF8PitmJxUadOmkdfBIJsj4Mmjv2C7EsDC6SAHDTeG/QFp/D+dDAAjAPjwXVsn0Y/HTAHGI/Bthe2vbDtheEYDMdgOAbDMdiNwW4MdmOwG4PdGOzGYDcGuzEYjMFgDAZjsBeDvSjsRWEvCntR2IvCXhT2orDnhT0v7Hlhz0tOU0FOU0FOU0FOU0FOU0FOU0FOUyG/ISPLohrJgtkgzAZhNgizQZgNwmYQNoOwGYTNIGwGYS0Ia0FYC8JaENaCsBaEtSCsBWEtCGtBWAvCWhDWgrAWhLUgzARhJAgbQYeFt+nngCCIgy+oPjWwQAo4BZwOBoBxYDyYBqYDroNWg2gyiCaDaDKIJoNoMogmg2gyiCaDaDKIJoNoMogmg2gyiCaDaDKIJoPWhZJlDQPDwQj00Laa29mumlNscfM6V46TR8l0s6jnstrVcaN4b9dyl1MH2/XcOI6YAI5U0y3mmCVgKVgGltvPTDl2Nfil9V4OM88FecCu/QaRobfUf1mt9d+LbHvD/E3NpC/gODuLP1QT2pn8fLbZtWGM3q4Pm9j/3RqRSpbYWKN70/cFR6oZr2N727oxn+Pt2vFNeu6p3wZzwX9YSxLnaohzNcS5GuJcDXGuhjhXQ5yraVdnogun1jxBMq2TQC/QBwyG5wvARWAIGArgjdozyyqXDtZuybYqqNpbnibUWdSJVo2xnyGusg5SvdtWYD/9GG/q5I+mTl0ALgJDQQhgI+ogVjMS3AjuAjPAAo7P4qwGzmrgrAbOauCsBs5q4IwGzmjgjAbOaOCMBs5okF8RWRudsybQ/9GpdhqJno1EukauEucqca4SJ7o1EtUanas10dtXzDGNRKlGolSjc/Xr6NveYTbv3wZzAXcjcjQSORqJHI1EjkZsN8VsIu5vkoHkjoPMDnLIRieHHEdWOZ5YPoHezhvd9KtZ3XuS//UGdu44iPd2/jiW91eaTU7+2JIzNjo544vsnwkWsX8FcKO9DezbwXgn43LGu1m9K8kAQsTjRrMRyQJIFsUvtyFdgOqoWvcyO5AyoPvQk/1SKe0n97Qljuox5Jhjnc+bWnLR69jfko/amojqm9j+J1bfW8Fktt3FtocZP894BuMCmJvNOW/Rv00/h34u/TscU+RoLaoXc1+7Il9KhFllbiRWbHRy1BPIxu08lYzfyVV70ZOvotkAMXkTMXkTMXkTMXkTMXkTMXkTMXmT3IHWiQRgILXmILMercfQ+jxyxjJyxjLyxTK0Pk9szaWCdJAJskBPMxMGZsLAPLQ/D+3PRPtutD8P7c9D+zG0P4/crIxcrAztz1QfUymvoHfj8xvYX8z7Hbzfyfty3u821bDwKXlXGTlXGTlXGTlXGTlXGTlXGflWGflWGQwVk2eVkWeVkWeVwVIZeVYZ+VUZuVUZuVUZuVUZjK2HrfXkUWUwFSOXKoOpmTC1hZyqjJyqDMZmwtg82JoHWzGYmglT1TBlP7nfC1sxfS9af4BjHwIPs/0x+ufZ/hL9K4D4BnM1sFYDY9XkWGXkWGXkWHb1EYO5rbBWo5dznVVmFsxt1Z8xpoqBwXmwNw/m5sHaPBhz20/yYMwNY24Yc8OYG8bccieMLYSxhTA2C8bWwlgDjBXCWAmMlcBYieMvs9m2yJTAWgmslcBaCayVwNosWJsFa4WwVghrs2BtIawVwlohrDXAWiGslcBaCazNgrFZMBaGsQbYmgVbYdhqSPjMatgqcfymhr4WhEEEREE9aACNZp3jT18y/jf4GjSbElgrgbUSWCuBtRJYK4G1tbC2FtZKYK3B8a/RjMegubHGDXMlMFcCc7NgrhDmCmGuIeFns1r9rIW9BsfXHuD4h4Dtc4/RP+9EpigMlsBgCQyGYTAMg2HH5wrZ9j6YD4qcGGn7XzEshmCwAAbXwV4J7BXCXiHsFcJeIewthL2FsLcQ9hbC3kLYWwh7C+W3sLYSpnww5YMpH9HNjmxRmPIR2aJEtiiM+WDMB2M+GPPB2EoYW0mUi8LWSpjxEdGisOMjqkVhaCUMrYSZlbCxETZ8MOGDCR9M+GDCBxM+mPDBhA8m9hLdbCZ8MOGDCR9M+GDCBxM+mPDBhA8mfES+KJGvjqgXJeJFiXi1sOKDDR9srISNvbDhgw0fbKwk6tkMrETzB9C4D43b2vahZR9a9hHhokS3KJEtioZ9aNiHhn2J54z70KiPaBYlkkWJYlEiWFRy1TqzQFXS+80+8qUidYDK61vurPCujpzVD28aYvboYaZKX8b7q8BtzGCiqdALzQr9Cceuko5yI/oP4DXBhNcE4cIDF3Zd7MFr6vGaIFx44MADBx448MCBBw4CcBDAa4J4TRAeAnhMEI8JJjwmCC8eOPHARwA+AnhMJOExATwmkvCYEBwF4MiDx9TDkweePPDkgScPPNk1pQeePPBUisfUw5MHnjzwZD/z98CTB5488OSBJw88efCYIB4ThBtPwmPq4cgDRwE42gpHHjjywFEAjwniMcGEx9TDVwCPCeExoYS31MOdB+48eEsI/jwJb6mHRw88evCWCN4SwVsieEsILj1w6YFLT8Jb6vGWIN5SZ383AW5L4daDtwTxliDeEsRbgvKi9KQu6E1WSWYnZHVyNhho9sHSPhjaK0+yfyp4CjwNngHTANmevAxeAa+CfPAaeAPM5rzPOGYtWA82sm0zKAYlYC/wgf2gGkZcoCPoBDqDnthZb3AennI+uJhtoyRHXUY/lu23Mp7I+E72TWZ8D3iA9w/TT6F/iu3PgkUcu4T3H7N9BePV9OskTxXTk22r7WAH21viKLYtnVQd+77CfjMlR+fan97Tn0Tfi219wMmMTwWngf7gTDCG7VfTXwMmML4We78e3MTYjoW30Nvx8Db6ifT3cs37gB0LH2Hb44zRs/4LPoMuNXrU6NGJg++yfzHXWmoq9XKOWeHEv73253UaHes1AD3rErANbAc7QTnYDT4He8Be4AP7QTX4mut8CwyZswJk/FYySAXpIBN0AHBjwQ2WsxfL2Yvl7MVy9lp9TSjpDID8SWcB227OlKPx64H4MTlrIoOMYQ0xGK2H0XoYjcFoDBbrYS8GU7FElhiDrfpEflKP78adDLElP6nHf+NOlliJXZOzwkSjk/mN4f0EcC1r/PXAzvZu4r2d4dk5g53dFZg4vhLHV+JOJrcYzS0FLblAg50HIF0M6WJIF0O6mNyMX7gS0SoggyUbSQL4ggtfcOELLnzBhS+48AUXEgawdxf27sLeXW2ilZ0XB7BdlxOxbqW/k34y/T3gYfAU75+RbDQQcCLXx4yd6EU1tpr99neWNrCtGDiRjO3ljFsytYDai1YCxOY6jqXyxXZDRKkg9uvCdl1oy86XA3qEZCeiUTARhez8OKBvYHtLBKrGTkNO1nWbHYnYfi+4j2vYGdcjbHucMTrQz7O9gIruLTAH2BnXu+wvYvtirrUULGfcEnmC2Gk2durCTl3YqQs7dWGnLuzUhZ26sFMXdurCTl3YqQs7dWGnLuzUBTN2bm3n1XZObT/hTjGryMBWwU4B7GyEmSIYKELrBWi9AK0XofUiNF5AZrUKjReh5SI0XISGC9BugZNN7aC3M6ndaLHSrHFy2mazE41tRGMb0VaBk6dOoL/WFKGtIjRVgKYCaCngZDcP07fPXAJoYBsaCCP9W0hvZyhFSFCEBEVIUESGsooMZRUZyioylFVkKKvIUFaRoaySDGbyGTOxc7MdzspxK/qz73T4qrO56jbpj/z78bFq5Lef6PuRfz/y70d+P/L7kX8/sttP7/34WDXy+5F/Pz5WjQ72o4MDrOxV+Fk1flaNPvajjwP4WbWqI1fOBCNgdgxV1gRwrfGjAz8+Vo0e9uNj1fhYtb6P456nLyB6vQXmgCLeLwerOP4z+jXU6McbP3rwowc/evDLiUhQhQT2zKuYeRUzrmKm9iyrmKWfWVYlZuljln5m6WeWVYlZ+slF/My0lpnWMlP7Gy5VzLSKGfqZYRUz9DNDPzOsZYb+78zQzwzt2fmZXa10ZTa16DKOLuPMqJYZ1aLLOLqMM7NadBlHl3H0GGeGtcyultnUctda7lqLfuLoJ86da5E1jqxxZI1b9idx55DpRMl0omQ6UTKdGFmOnWlGyXKiZDlRspwoGYydVUbJTqLOc6kQUbGGcS0IgwiIgnrQ4NTJETKUGBlKlAwlSoZi18tRMpQoGUqUDCVKhhIlQ7GzyEbnU+XBjEc6lVgU+4qSmUTJTKJkIjEyjxiZR5TMI0rWESXjsCusKBmHnS1GyTCiZBhRsosYNhglo4jKCW0+pW0il24ij24ij24iX25KfErbRJ7cxGwbyXubmGEjeW0TM2oir20ir21iJk3krk3kp03kp03kp3Y+2kQu2kQu2kQu2kQu2vSjn9pqdHYLuWiEdWgMr2PBFWARWkoF6SATZIEZ4FVQDQJkBDX0tSAMIiAK6kGD83SwDg1HiKx1aDmCliPqG3LDZnIvAcmAa6LpCJqOoOEI2o0gUx3ajaDdCJG1jqhah3YjaDdCNK1DwxG0G0G7EaJnHRqOoOEIGo4gex3ajUgG2m1Cu7Ymbent75g0IX0T0jchfRPSNyF9k1z9vSf2l5v1zlP7Iz2pX8y+JWApWAaWg1/6lD7HrFe5IA/YT+ztp/L20/gXnM971rc+eZ/P2H7SHqO3n7Z/90l7T7PeecLez/l+ZPun7G2fsOdznP2U/U36//Dpuv6Gc5rNekuABkkgBaSBtk/ekcl5+u7FlytBwBywaogPb0mKdJBMcDHSjzBuNO5G4/b3fjqI/YTA/kbGH+gPPRFGcpkL3gHvgvdAocOKG1bcsOKGFTesuI/0TY7WJ8VrOGcd2AA2cewWsBWUgjLgAbtABfCCSrAPVAE/CBh3u2+FdOF9y1Njt8Ja1JXSAdbcsOZ2nhy3PDWuUm9R9bzNtjngXbPT+SYJ7NvfA4FNN/G33P5mCYy6E0+Q3bDqhlU3rLqJzeWJp8hVbZ4iu2HZ/oaNW58hWTDthmk3TLudp8n3cc4TsDXVYd4N826YdzvfXHmd3v72Svsny26swI0VuPUS3i8DKxmv4TroTGPNGmvWOwAWrbFojUVrLFpj0RqL1siksWgdcKzIjRW5sSI3VuTGitxYkRsrcmtbvh/75kyGcWNFbqzI7XyLJpf++0+mO1gXgIvAEDAUYD/WpeDnPJl2OTHLrlTsb6x9lfjWmpIuTtVCpkm8iRFvvE6V8Qjjd52IHbOrBRmN3Uaw2wh2G8FmI9hrBHuMYI8R7DGCPUawxwh2FsHOIthZBDuLYGcR7CyCnUWwswh2FsHOIthZBDuLYGcRsdetLmA4eA68AN4Gc5xIm4vNRJh5NvZiR9b92IsdWfcTUZchxX5sJ4LtRLCdCNJkYysR7CSCjdgR9SPsJIKd2BF1PxLuRsJsJNyPnUSwkwh2EsFG7Ii6H7uIYBcR7CKCPdhRdT8ayIbfCPxG4DcCvxH4jcBvBH4j8BuBwwgcRuAwAn8ROY61zc3a5mZtc7O24Tm2l4CZoNFMYV1zI0XE4SEHC+lkPmdtc7O2YeHwMNaMYH1zM+sIs7bjf4S1zs1a52atczPbCJabqpexNrrNY6x7btY9N+uem3XPLenc5Tauvo4r7+aKn3PFY50VZQl3XEYV4zZXyvGJzxBizmcIbT8/OPSZQYAMwc4q6shhWj47iDnrWKbz7am2nyHEEp8htGQF97F/hvPJZtvPEbAn55tV7T9LsNcsj9hPbq40HtYs+ztuHtYsD2uWhzXLw5rlYc3ySGfmuo/57EO6e5nLPnS4mvlsb5VyJNWvLemN9LeY1Y7EdzF+hPEM+nfpF9C31UIHrnYjV7KfSu9up69bTJlzhUfo3wVtz7JnXc6sy5l1ObMuZ9blzLqcWZcz63JmXc6sy2U8/pOP/+TjP/n4Tz4xfxI+lC//y3Rz/svlfcbzwHxQBBaAxRyzBCwFy8BysIntW8BWUArKgAfsAhXACyrBPlAF/CBg8onjk4jjk4jjk/C1fHWs6aaOAyeAk8Bwto2hf47+BVDAcW/TzwHzGQfpY/Rx+i9MPj6Xj8/l43P5OtV0I1ZPwu/y8bt8/C4fn8vH5/LxsXx8LB8fyycWT8LP8onFk/CzfPwsHz/Lx8/y8a98/Csf/8rHv/Lxr3z8Kx//ytf2/b7hnGYzifg5ifg5ifg5ifg5ifg5Cd/Lx/fy8b184uck/C9ftBMV7ciXZHmIi+XOt6wbrIP4ZpLznety1ujdrNEHqYeSEvsjlv2ty4OmRlI5Zidbl1q72LLbfExkjRFZo+xdxNUTqzyjlqtHJJ3RLkbrE2e423yLv4FYbN97lWj5a+KXAVJoyvmUWEsnWpL0lJMlWU4l88+UgXKRdJGLZbgcK5eQKRxHDB5N5vw72okyRq6Qk+RKWh+5itaX3GECZ19LO02elGlyukyX1+RseVNmc5U5Usg15skC+b0skuWc7ZaNnLOZdqMU026SEtrNso32J9lOu0V2SqXcKkEJyV1SS7tH6mj3SpR2n9TT7pc47QE5SHtQvqI9JN/QHpZm2iPODxo8qrTS8phKUVkyRblUnjyjuqlu8rzqrrrLDNVD9ZC/qp6qp/xN9Va95QXVV/WVv6tT1Cnyouqn+slL6nR1uryszlBnyCtqgBogr6qz1dmSr85V58pr6jw1WF5XF6oLZZYaooZIgRqlLpXZaqwaK2+rP5CnzFG3qlvlHXW7ulPeVZPVFJmnnlDT5CP7/1HlUzVDzZDP1AvqBVmjXiSXWateUa/KOvWaek02qJmqQDaqt9S7skUVqn9ImZqv5ssO9YFaLDvVMrVSdiu32iT71BZVKrWqTO2UmP3/qdKoKpRXvlCV6oB8pcK0ZEU2iy4aaKmqUX2p0tTX6hvVQTVrUS6ttaVydbJOUXk6U2epLjpH56huOk93VkfpbrqbOlr31H1VDz1AD1DH6yH61+oEPUKPVL30pfpS1Uf/Vv9W9dW/079TJ+sxeow6RV+uL1en6mv0NaqfnqAnqNPs/4hVp+sb9I3qTH2HvkOdpf+s71Jn6wf1g2qgflQ/qs7TU/RUNUg/o6epi/R0PV0N1c/pGWqYflXnq4v1m/pNNULP0nPVSP2eLlS/0/P1AjVGr9Ub1RV6s96srtbFuliN0yX6oLpGf6W/UlP111aaesrKsXLUi1Ynq5N6yepsdVYvW8dbfdUr1mDrAlVgXWQNVW9Zo6xL1Vxrt7VbvWt9bnnVe1alVan+YfmsKvW+dcA6oOZbYSusipLOSDpDLUgakHSW+qformHbt1Knu55mZTtGxHxuppmtZq0Jm3fMXPkP/pr3yy/8M9MSfSkrm5haZhA1H5rd5jbTZLbi7x3NRsk1e3/GlapBCGz8zvb4T575H8yeKNb23TxQA3Ym3vta9zxt7P/w+O7ZdS3gL691W9QEfuKmuUearfEnNnRk1NGW3h5/53418n/xZ8/L0aqvzbYDZlfreE7raHyrJewjOh8+2m0GmJA508xpPmAazFM/cb/L4Dx+RMZcbL0TvOfc4w5TbLy8G3nYisxV5j1af7MIbeSwKYdzcswqs8CsMZs54lHzMGc2O+fHTB8TMx86Zy42ZWYHfVn7+xo/NX/bufV1Xm9os2Wn2WtrJqGd7LYctzvzz87rmiPoFlsywcNnY/2+BIcdzbbWI29sc9Zt5lNk2gXWYQcdzWxsoyP+sRufrWpz3FGs5WJuMbORs8UKOyTuV9ty78OzTVjOD3ES/ZF99b/Uq+DZOdc0HOma7TX/H1lsw4/s+9E4YP71i+9Z+GMaolaw+9gR4wh2aqqcmOD9CZ+//Aj+UO/4yg9yQCZtv159xH1hsOsXSRs7kjQ/edYAc635A+1mc7tZIalsSiV7S8UrrydS/p0jXCYLzzzH8c9jeb/N3GbHj+9cpwBsAEWtW4JHiMrOCsAa9k+zAv9fgYcfaNVnojebwMe2bzTf57w/7wgaCv+gPEfUnXngRzSw+If8ws6L1RXYQg4JYC5Nkdv2JM/tRbOkNy2JzLUP+upLS3F+KyWVzPU0SSNzPV3SpT8tw/nllFQZQEuWs2h2XjyQFfQ8WpoMonWQ82nZMpjmkgvE/h+nC2kdyXov5s7DaZ1kBC2PPPoS6kc7j+5CBj2W18tpXcmGr+AYO5vuRk48To6iXhsv3cmoJzD+I+1oJ6fW5NTTmfmzMoM5/1X+ztxepCXLS7RUeZmMO5mMu4C5zablOHl3rrxPy3Oy785k34u472Jy8K7k4G6u/ymtk6ymHSWf0bSsoeXKWpqWdbRcWU/TsoGWS96+kTlsouU5+XuSbKHlOVl8kmyl5Tm5fJKU0vKcjD7ZyeiTyeh3MnOP2HV0OS1FdtE6y25ailTQOsvntBTx0jrLHloKVUAl4yAtlVogxPztaiDVqQZSnWog1akGUp1qINWpBtKcaiDdqQYynGogw6kGMpxqIIMMOEVSyYBTpQsZcBrjdJXOOENlMM6kVuhCreCSZJWjcqSr6qg6Ms5VuYw7qU6M86gkujqVRDenkujmVBLdnEoiy6kkspxKIsupJNKcSiLNqSTSnEoizakk0pxKIs2pJLKpJM6THDVIDZKj1PnqfMaDqS06qgvUBXK0U2F0VBepixjbdUZHNVQNZTxKjcLeL6XmyHVqjiyn2tBUG7dLiv1LOUg0UU1kzndSf+RQf0xm713qLrHU3epu6aHuUfew5V51L8ffp+7jyver+znrAfUAZz2oHmT8kHpI0tXD6mGOfEQ9ypYp1DHJ1DFPSKaaqqZy36fUU1z/GfWMuKhspnPMs9Q3OU5908WpbI5Sr1LZdKGmmcm4gMqmK5XNW9LJqWm6UtN8yBwWU9n0sH+dhyt8pD5CPx+rT+QYtZJaJ51axy3Hqk/Vp+xdrVYznzVqDbKsVWs5a71azxU2qA3MYRNVUSpV0RbOKlYljEupkJKpkMqY83a1XZLUDrWDme+kZjqWmqmcs3ZROaVSOVXw6qV+Oob6qZLXKlWFhqtVtfxKBVVQOquQCkl3u6Ji5lRUSBFXcclTTaoJ6b5QX7DloDrIMd+ob+Q41ayaeTXKSCe70pLOVFrJ8iu70pLj7EpLjqLSypNjdGfdmS3UW6Kpt3pKV91L95IOurfuzTF9dB/GfXVfxkP0EK42VA+VHnqYHsbVfq1/zXiEHiEuPVKPlO52ZSbpdmXGK5UZr1RmvFKZSapdmUmSHq/HS55dn0kW9dm1kqOv09dx/ev19Yxv0DdwtRv1jVyNik26ULH9mXMn68lsv0vfxXaqN7ZQvfE6RU/h9XH9OPN/Qj8hufpJ/STjqXoq42f0M5Kip+lpaIDajtfn9HO8Pq+f52oz9Ayu9qp+VZJ1vs5Hdqo9XmfpWUhaoAvkWD1bz2Zub+m3GL+t32Y8R89hPFfPZfyefg8NFOpCtDFfz+e1SBdx5QV6AVdeq4lsep0msun1ej3z3KA32L/XojdKtl078krtyGuJLuHIUl3Kkdv0NsZluozxdr2d8Q69g/FOvZOxR3sYl+tyxrv0Lsa79W7GFbqC8ef6c8Ze7WW8R+9hXKkrGe/Vexnv0/sY+7SPcZXGxvR+vZ+xX/sZV+tqxgEdYBzUQfQW0iF0dUAfYFyjaxjX6lrGYR1mXKfrGEd0hHFURxnHdIxxva5n3KAbGMd1nHGjbmTcpJsYf6G/YHxQH0Qb1Mq8fq2/Rv/f6G/Q/Lf6W8bNupmx0UaSLftHIrtaylKMtaUZ88c4yUpinGwlM06xUhinWuQlVpqVxpjKm1cqb0mzK29ej7eOlxzrBOsEOco60TqR8UnWSYx7Wj0Z97J6Me5t9Wbcx+rDuK/Vl6tdaF0oyhpmDeN1uDVClF2FS5JdhbPKKElJ6p/47Upp/RVL+68La1yXn5Ve2b9hmZYYt/TdW/elJXA060uG8wStK3lAt3bnW4lf50xy+sN/6IUVLdnZlupUKeSd0sOurH7GrI76mXM/3A5L0f7v8M9v2eOMROuQmPvhdkiKpO9IkdLaWmqtluZy8mj790YPIY3z2uKwNpK+h+8f++N/3X9if3IrkhMyp7RB++sfDRttkc629MS+DCQ7ErKcGtDlcJ/TikP6TUrUoNrR4iGLSW29qvrZdnjoih3abLFfu7Wyq9tZaqI2xSoPjZMSmsh2Rq42+mlT/SS4TGqd+aG/bPZkt5tVept7dXeq6xapOreb8eEZHHqKkpZ4TXeO7PrdmqzVc1rmloRftLCXTIZ6yHOSEzLYe5PJLw+xm9x6Vou0SY5/2X+dWq3A9R1/0D+gddtCMjnaRos1Srv+SJb2/b+uzvzb709vN1dptfX0VltqOS/d0U3ej1y1o/NUqOVKLUcmJ6ztkMW19a3Dczl8/0N+kJZgvjP3P4TDV2zB4fPbx4KO7exdWmfWModkx0cOoW1c+Dk4UoxoDzmCX6d8z88Po+X9If+VI6CFg8NI+4l4fJQTk+3SoovzqlrXly6JkfqZnv7fv/8f/g6tmGmiqGxSnF/NyW3zy6vf/9XV9r+3an+iNkIukdHOE4DLqfyvpOIfT6X/x1/4O6xzZK68I+/Ke9T671Plz5ciKv1F1PhLZKkso9J3U+GvprJfQ0W/jkp+AxX8Jir3LVTsW6nUSxO/3uqhIt9FJV5BBe6l8q50Pnv7oV9wTaVuTqdeplamUs6hQs6lMs5TdjXc4wd+xXWQ8zuuF1DJXkQFO9T+nIyK9cp2v+j6Q7/n+ij15hPOb7k+4/yK6wzqyVftz8aoH+fbdSNV4+Hfcz30a672b7nav+S6qc2vuB76DVf7F1wrqPAqqeyqqehCVHINVHBNVG4HqdialbGrNGo06jOqszyqsm5UY72owvpQfQ2h6hrm/N7rSOf3Xn/n/OLrNVRSE6igrnN+9fVGqqU/UyXdRXX0KFXR41RDT1IFPUP1M52q53mqnVepct6kuimgqnmLamYOVcx7VC/zqVoWUK2so0rZQHWymaqkhGpkG1XIdqqPnVQd5VQbu6kyPqe62ENVsZdqwkcVsZ/qoZqqIUi1cIAqoZbqoI6qIEo1UE8VECf7byLrP0i2/zVZ/rdk94aET5HNW2TxdvaeStaeQ7bemSz9BLLzk8jKe5GN9yELH2xdQBZ+kTXEGkoeTg5uf2JGFk4G/n8AnnlJ0AAAAAABAAAAANWkJwgAAAAAxPARLgAAAADQ206X) format('woff'); font-weight: 500; font-style: italic; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: 100; font-style: italic; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: 100; font-style: normal; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: 900; font-style: italic; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: 300; font-style: italic; } @font-face { font-family: 'Roboto'; src: url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: 900; font-style: normal; }
/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on December 18, 2017 */ @font-face { font-family: 'titilliumregular'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; }
/*! Generated by Font Squirrel (https://www.fontsquirrel.com) on December 18, 2017 */ @font-face { font-family: 'titilliumlight'; src: url(data:application/font-woff2;charset=utf-8;base64,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) format('woff2'), url(data:application/font-woff;charset=utf-8;base64,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) format('woff'); font-weight: normal; font-style: normal; }
{{$:/Frame||caption}}
!!{{!!caption}} *La macro `<<doc>>` [[Macro Doc Users link]] *~~Le plugin details [[$:/plugins/telmiger/details]]~~ (non inclus dans le plugin) *~~Le plugin Feather icons [[$:/plugins/sycom/feather-icons]]~~ (non inclus dans le plugin) *Le tiddler [[Paramètres]] (nouvel onglet de la ~SideBar) *Feuille de style modificative [[$:/cssParamètres]] *Feuille de style additionnelle [[$:/cssAdd]] *Palette de couleurs Learn : [[$:/palettes/Learn]] *CSS des notifications (Sauvegarde du wiki) : [[$:/cssNotifications]] *Macro Search [[$:/macros/Forums/SearchBar]] !!Spectre <div class="column col-sm-12"> <div class="toast toast-warning"> Spectre n'est pas livré en plugin. Il est proposé au téléchargement dans la mesure où de nombreux paramètres y sont puisés. Il n'est cependant pas obligatoire de l'installer </div> </div> *[[$:/spectre.css]] *[[$:/spectre-exp.css]] *[[$:/spectre-icons.css]] *[[$:/SpectreObject Icons]] *[[$:/SpectreIcon Sizes]] *[[$:/SpectreAction Icons]] *[[$:/SpectreNavigation Icons]]
!!{{!!caption}} *[[$:/TemplateInterface]] *[[$:/HeadingInterface]] !!!!!<small class="label">Titre et sous-titre wiki</small> *[[$:/Afficher le titre du wiki]] *[[$:/Afficher le sous-titre du wiki]] *CSS associé : [[$:/centralisation/css]] !!!!!<small class="label">En-Tête / Pied de page</small> *[[$:/Afficher le slogan]] **CSS associé [[$:/SiteHeader]] *[[$:/Afficher le pied de page]] **CSS associé : [[$:/PageFooter]] **Tiddlers associés : ***[[$:/PiedModifié]] ***[[$:/PiedPowered]] ***[[$:/PiedEntrées]] ***[[$:/PiedGitHub]] ***[[$:/PiedMailTo]] !!!!!<small class="label">Couleur et image de fond</small> *[[$:/Couleur de fond de la page]] *[[$:/Image de fond de page]] **CSS associé : [[$/cssPageBackgroundImage]] !!!!!<small class="label">Paramètres Interface divers</small> *[[$:/Empêcher la story River de recouvrir les barres latérales]] **CSS associé : [[$:/centraliser]] *[[$:/Choisissez votre palette de couleurs]] **Avec le tiddler [[$:/ColorPalette]] *[[$:/Supprimer les State Tiddlers]] (Plugin)
!!{{!!caption}} *[[$:/NavBarContent]] *[[$:/TemplateMenu]] *[[$:/HeadingMenu]] !!!!!<small class="label">Couleur des blocs menu</small> *[[$:/Couleur colonnes de la NavBar]] *CSS associé : [[$:/cssNavbarCols]]
!!{{!!caption}} !!!!!<small class="label">Template, CSS et Emplacement du contenu</small> *[[$:/HeadingNavBar]] *[[$:/TemplateNavBar]] *[[$:/cssNavBar]] *[[$:/NavBarContent]] @@color:#d40000;(Ne pas inclure dans le plugin.)@@. !!!!!<small class="label">Éléments</small> *[[$:/Afficher/Cacher la barre de navigation]] *[[$:/Afficher/Supprimer le menu de la barre de navigation]] *[[$:/Couleur de la barre]] *[[$:/Hauteur de la barre]] *[[$:/Story top position]] *[[$:/Afficher la bordure]] *[[$:/Couleur de la bordure]] *[[$:/Taille de la bordure]]
!!{{!!caption}} !!!!!<small class="label">Le template ~SideBar</small> *[[$:/HeadingSideBar]] *[[$:/TemplateSideBar]] !!!!!<small class="label">Largeur de la barre latérale</small> *~~[[$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth]]~~ @@color:#d40000;(Embarqué avec le source. Ne pas inclure dans le plugin)@@ *[[$:/Largeur de la barre latérale]] !!!!!<small class="label">Cacher la ~SideBar au démarrage</small> *[[$:/startup/hide-sidebar.js]] *[[$:/config/HideSidebarOnStartup]] *[[$:/Cacher la SideBar au démarrage]] !!!!!<small class="label">Agencement de la barre latérale</small> *~~[[$:/themes/tiddlywiki/vanilla/options/sidebarlayout]]~~ @@color:#d40000;(Embarqué avec le source. Ne pas inclure dans le plugin)@@ *[[$:/Agencement de la barre latérale]] !!!!!<small class="label">Affichage des onglets</small> *[[$:/Afficher l'onglet Sommaire]] (Le tiddler contenant le sommaire doit avoir pour titre [[TableOfContents]]) *[[$:/Afficher l'onglet More]] *[[$:/Afficher l'onglet Open]] *[[$:/Afficher l'onglet Recent]] *[[$:/Afficher l'onglet Tools]] !!!!!<small class="label">Chevron, Espace libre ou comblé</small> *[[$:/Voir/Cacher le Chevron SideBar]] *[[$:/Cacher la SideBar (Espace Comblé)]] *[[$:/Ôter la SideBar (Espace non comblé)]] !!!!!<small class="label">Ajout, Retrait et couleur des boutons de contrôle</small> *[[$:/Afficher le bouton Nouveau Tiddler]] *[[$:/Couleur du bouton Nouveau Tiddler]] *[[$:/Afficher le bouton Sauver]] *[[$:/Couleur du bouton Sauver]] *[[$:/Afficher le bouton de contrôle]] *[[$:/Couleur du bouton Control Panel]] *[[$:/Afficher le bouton SideBarTabs]] **L'image bouton : [[$:/core/images/SideBarTabs]] **Le code d'ouverture en popup : [[$:/core/ui/Buttons/SideBarTabs]] !!!!!<small class="label">Bouton de paramétrage libre</small> *[[$:/Voir/Cacher vos paramètres dans la sidebar]] *[[$:/Voir/Cacher vos paramètres dans ControlPanel]] *[[$:/tw-admin/button]] *[[$:/tw-admin/content]] (Ici, le tiddler `{{Paramètres}}` est transclus. Ce peut être modifié.) *[[$:/tw-admin/icon]] !!!!!<small class="label">Barre de recherche</small> *[[$:/Afficher la barre de recherche]] *[[$:/Largeur de la barre de recherche]] **CSS Associé : [[$:/cssSearch]] !!!!!<small class="label">Couleur de fond de la ~SideBar</small> *[[$:/Couleur de fond SideBar]] *[[$:/Opacité fond SideBar]] *CSS Associé : [[$:/cssSideBarBackground]] !!!!!<small class="label">Ajout Titre/S.Titre wiki dans la ~SideBar</small> *[[$:/Afficher le titre du wiki dans la SideBar]] *[[$:/Afficher le sous-titre du wiki dans la SideBar]]
!!{{!!caption}} *[[$:/TemplateTiddler]] *[[$:/HeadingTiddlers]] !!!!!<small class="label">Afficher / Supprimer et gérer le titre des tiddlers</small> *~~[[$:/Afficher/Supprimer titres des tiddlers]]~~ *~~[[$:/Gestion du titre des tiddlers]]~~ *~~Le template [[$:/core/ui/ViewTemplate/titleTitle]]~~ Nécessaire pour l'affichage et la gestion du titre car spécifique à ce wiki. @@color:#d40000;Ne pas inclure ces 3 tiddlers dans le plugin)@@ !!!!!<small class="label">Boutons de contrôle, Date de création</small> *~~[[$:/Afficher/Supprimer les boutons de contrôle des tiddlers]]~~ **~~Template [[$:/core/ui/ViewTemplate/titleControls]]~~ *~~[[$:/Afficher/Supprimer le sous-titre des tiddlers]]~~ @@color:#d40000;Ne pas inclure ces tiddlers dans le plugin. Plus, résoudre le problème pour la date de création. Plus Remplacer également sous-titre par date de création.)@@ *[[$:/Afficher une ligne de séparation sous le titre du tiddler]] *Template [[$:/core/ui/ViewTemplate/blackline]] ;À finaliser
{{$:/Administration||caption}}
{{$:/Généralités||caption}}
Select
<tr> <td> Générateur de Menus </td> <td align="center"> {{$:/ButtonNewMenu}} </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal5" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-020}} </td> </$reveal>
<tr> <td> <$link to="$:/Gestion du titre des tiddlers">Gestion du titre des tiddlers</$link> </td> <td align="center"> Voir [[$:/core/ui/ViewTemplate/titleTitle]] </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal2" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-046}} </td> </$reveal>
<tr> <td> <$link to="$:/Hauteur de la barre">Hauteur de la barre</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavBar' field='navbar-hauteur' tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav04" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav04" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav04" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-004}} </td> </$reveal>
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle Interface|$:/TemplateInterface]]<<f-i monitor 'x5'>> </div> </div> </div> @@ <<doc>> ;@@color:red;<button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cette table concerne les paramètres de caractère généraux, applicables à l'ensemble du wiki : Titre et sous-titre du wiki, Slogan et pied de page, couverture des barres latérales, palette de couleurs.@@
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle Menus|$:/TemplateMenu]]<<f-i menu 'x5'>> </div> </div> </div> @@ <<doc>> ;@@color:red; <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cette page permet de contrôler les paramètres de vos menus : Couleur différentes zones de menus. @@ <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> [[Accéder au bloc Menus|$:/NavBarContent]]
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle NavBar|$:/TemplateNavBar]]<<f-i list 'x5'>> </div> </div> </div> @@ <<doc>> ;@@color:red;<button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cette page concerne le paramétrage de la barre de menu du haut de page (~NavBar) et permet de faire apparaître ou non son contenu. Pour la gestion du menu lui-même, voir [[Contrôle Menu|$:/TemplateMenu]].@@
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle SideBar|$:/TemplateSideBar]]<<f-i columns 'x5'>> </div> </div> </div> @@ <<doc>> ;@@color:red;<button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cette page concerne le paramétrage de la barre latérale droite.@@
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle Tiddlers|$:/TemplateTiddler]]<<f-i file-text 'x5'>> </div> </div> </div> @@ <<doc>> ;@@color:red;<button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> Cette page concerne les paramètres de réglage propres aux tiddlers, en mode visu et en mode édition (l'éditeur TW5).@@
<<fa home 1 #34495E>>
<tr> <td> <$link to="$:/Image de fond de page">Image de fond de page</$link> </td> <td align="center"> <$checkbox tiddler="$/cssPageBackgroundImage" tag="$:/tags/Stylesheet"></$checkbox> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int10" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int10" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int10" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int10" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int10" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-006}} </td> </$reveal>
R0lGODlhAQABALMAAAAAAIAAAACAAICAAAAAgIAAgACAgMDAwICAgP8AAAD/AP//AAAA//8A/wD//////yH5BAEAAA4ALAAAAAABAAEAAAQC0EUAOw==
<$list filter="[is[current]tag[Pied]]"> <div class="tiddler-pied"> {{$:/separation3}} </div> </$list> <style> .tiddler-pied{ text-align : center ; clear:both; } </style>
The following tiddlers were imported: # [[$:/plugins/kookma/searchwikis]]
yes
yes
yes
<<dt>> <<dt '' '15'>><br><<dt>> <<dt '' '30'>><br><<dt>> <<dt '' '45'>>
<$reveal state="$:/state/sidebar" type="nomatch" text="no"> <$button set="$:/state/sidebar" setTo="no" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class="tc-btn-invisible">{{$:/core/images/chevron-right}}</$button> </$reveal> <$reveal state="$:/state/sidebar" type="match" text="no"> <$button set="$:/state/sidebar" setTo="yes" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class="tc-btn-invisible">{{$:/core/images/chevron-left}}</$button> </$reveal>
/*\ title: $:/inmysocks/macros/add-time.js type: application/javascript module-type: macro Takes a lengh of time and returns now+input length of time as a date \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro */ exports.name = "add-time"; exports.params = [ {name: "years"}, {name: "months"}, {name: "days"}, {name: "hours"}, {name: "minutes"}, {name: "seconds"} ]; /* Run the macro */ exports.run = function(years, months, days, hours, minutes, seconds) { //Make each date object. var currentDate = new Date(); var new_year = Number(currentDate.getFullYear())+Number(years); var new_month = Number(currentDate.getMonth())+Number(months); var new_day = Number(currentDate.getDay())+Number(days); var new_hour = Number(currentDate.getHours())+Number(hours); var new_minutes = Number(currentDate.getMinutes())+Number(minutes); var new_seconds = Number(currentDate.getSeconds())+Number(seconds); var output_date = new Date(new_year, new_month, new_day, new_hour, new_minutes, new_seconds); var result = output_date.toDateString(); return result; }; })();
/*\ title: $:/inmysocks/macros/day-diff.js type: application/javascript module-type: macro Takes two dates and returns their difference in days \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro */ exports.name = "day-diff"; exports.params = [ {name: "year1"}, {name: "month1"}, {name: "day1"}, {name: "year2"}, {name: "month2"}, {name: "day2"} ]; /* Run the macro */ exports.run = function(year1, month1, day1, year2, month2, day2) { //Make each date object. var date1 = new Date(year1, Number(month1)-Number(1), day1, 0, 0, 0); var date2 = new Date(year2, Number(month2)-Number(1), day2, 0, 0, 0); //Find difference in milliseconds. var elapsed = date2.getTime()-date1.getTime(); //Number of milliseconds in a day. var dayMS = 1000*60*60*24; //Convert milliseconds to year months and days var days_diff = Math.floor(elapsed/dayMS); var result = String(days_diff); return result; }; })();
/*\ title: $:/inmysocks/macros/year-diff.js type: application/javascript module-type: macro Takes two dates and returns their difference in some format \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro */ exports.name = "year-diff"; exports.params = [ {name: "year1"}, {name: "month1"}, {name: "day1"}, {name: "year2"}, {name: "month2"}, {name: "day2"} ]; /* Run the macro */ exports.run = function(year1, month1, day1, year2, month2, day2) { //Make each date object. var date1 = new Date(year1, month1-1, day1); var date2 = new Date(year2, month2-1, day2); //Find difference in milliseconds. var elapsed = date2.getTime()-date1.getTime(); //Number of milliseconds in a day. var dayMS = 1000*60*60*24; //Convert milliseconds to year months and days var days_diff = elapsed/dayMS; var years_diff = Math.trunc(days_diff/365); var result = String(years_diff); console.log(result); return result; }; })();
<script> var idcomments_acct = '4f4e90ffac9dc589cba07478abe92347'; var idcomments_post_id; var idcomments_post_url; </script> <span id="IDCommentsPostTitle" style="display:none"></span> <script type='text/javascript' src='https://www.intensedebate.com/js/genericCommentWrapperV2.js'></script>
{{$:/Interface||caption}}
{{$:/InterfaceContrôle||caption}}
{{$:/InterfaceDocUser||caption}}
no
<$wikify name="fontUp" text=""" <$list filter="[{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}previous[$:/jd/Buttons/font-size]]" emptyMessage="40px"/> """> <$wikify name="fontDown" text=""" <$list filter="[{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}next[$:/jd/Buttons/font-size]]" emptyMessage="10px"/> """> <$button class="tc-btn-invisible" tooltip="Decrease font size"> <$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize" text=<<fontDown>>/> <$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/metrics/bodylineheight" text="1.2"/> − </$button> <$button class="tc-btn-invisible" tooltip="Increase font size"> <$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize" text=<<fontUp>>/> <$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/metrics/bodylineheight" text="1.2"/> + </$button> </$wikify> </$wikify>
\define stateEditTid() $:/state/edit/$(parItem)$ \define tempTid() $:/temp/edit/$(parItem)$ \define createTemp() <$action-setfield $tiddler="$(tempTid)$" text={{$(parItem)$}}/> \define saveTemp() <$action-setfield $tiddler="$(parItem)$" text={{$(tempTid)$}}/> \define deleteStateTemp() <$action-deletetiddler $tiddler=<<tempTid>>/> <$action-deletetiddler $tiddler=<<stateEditTid>>/> \end \define paragraphs(filter titleclass:"" buttonsetclass:"" buttonclass:"tc-btn-invisible" textareaclass:"tc-edit-texteditor") <$list filter="$filter$" variable="parItem"> <div class="paragraph-wrapper"> <$reveal type="match" state=<<stateEditTid>> text="yes" tag="div" class="$buttonsetclass$"> <$button class="$buttonclass$" tooltip="discard changes"> <<deleteStateTemp>> {{$:/core/images/close-button}} </$button> <$button class="$buttonclass$" tooltip="commit changes"> <<saveTemp>> <<deleteStateTemp>> {{$:/core/images/done-button}} </$button> </$reveal> <$reveal type="nomatch" state=<<stateEditTid>> text="yes" tag="div" class="$buttonsetclass$"> <$button class="$buttonclass$" set=<<stateEditTid>> setTo="yes" tooltip="edit"> <<createTemp>> {{$:/core/images/edit-button}} </$button> </$reveal> <div class="$titleclass$"> <h3> <$transclude tiddler=<<parItem>> field="caption"> <$view tiddler=<<parItem>> field="title"/> </$transclude> </h3> </div> <$reveal type="match" state=<<stateEditTid>> text="yes"> <$edit-text tiddler=<<tempTid>> class="$textareaclass$"/> </$reveal> <$reveal type="nomatch" state=<<stateEditTid>> text="yes"> <div class="paragraph-body"> <$transclude tiddler=<<parItem>>/> </div> </$reveal> </div> </$list> <style> .paragraph-wrapper .notitle { display: none; } .paragraph-wrapper { position: relative; } .paragraph-wrapper .float-left { position: absolute; left: -24px; top: 0; display: flex; flex-direction: column; opacity: 0; transition: opacity 400ms; font-size: 20px; } .paragraph-wrapper:hover .float-left { opacity: 1; } </style> \end
<tr> <td> <$link to="$:/Justifier les textes des tiddlers"> <i class="fa fa-align-justify"> </i> Justifier les textes des tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssJustification' tag='$:/tags/Stylesheet' checked='$:/tags/Stylesheet ' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal28" text="show"><$button set="$:/state/SampleRowReveal28" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal28" text="show"><$button set="$:/state/SampleRowReveal28" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal28" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-128}} </td> </$reveal>
$:/languages/en-GB
Ajouter ce Tiddler à la liste des favoris
Eye Close
Eye Close Hint
Accéder à la SideBar depuis un tiddler
Accès SideBar Tabs Hint
time
Time stamp
Contrôle Polices
Gestion des polices de caractères
{ "tiddlers": { "$:/language/Buttons/AdvancedSearch/Caption": { "title": "$:/language/Buttons/AdvancedSearch/Caption", "text": "recherche avancée" }, "$:/language/Buttons/AdvancedSearch/Hint": { "title": "$:/language/Buttons/AdvancedSearch/Hint", "text": "Recherche avancée" }, "$:/language/Buttons/Cancel/Caption": { "title": "$:/language/Buttons/Cancel/Caption", "text": "annuler" }, "$:/language/Buttons/Cancel/Hint": { "title": "$:/language/Buttons/Cancel/Hint", "text": "Annule l'édition de ce tiddler" }, "$:/language/Buttons/Clone/Caption": { "title": "$:/language/Buttons/Clone/Caption", "text": "cloner" }, "$:/language/Buttons/Clone/Hint": { "title": "$:/language/Buttons/Clone/Hint", "text": "Clone ce tiddler" }, "$:/language/Buttons/Close/Caption": { "title": "$:/language/Buttons/Close/Caption", "text": "fermer" }, "$:/language/Buttons/Close/Hint": { "title": "$:/language/Buttons/Close/Hint", "text": "Ferme ce tiddler" }, "$:/language/Buttons/CloseAll/Caption": { "title": "$:/language/Buttons/CloseAll/Caption", "text": "fermer tout" }, "$:/language/Buttons/CloseAll/Hint": { "title": "$:/language/Buttons/CloseAll/Hint", "text": "Ferme tous les tiddlers" }, "$:/language/Buttons/CloseOthers/Caption": { "title": "$:/language/Buttons/CloseOthers/Caption", "text": "fermer les autres tiddlers" }, "$:/language/Buttons/CloseOthers/Hint": { "title": "$:/language/Buttons/CloseOthers/Hint", "text": "Ferme les autres tiddlers" }, "$:/language/Buttons/ControlPanel/Caption": { "title": "$:/language/Buttons/ControlPanel/Caption", "text": "panneau de contrôle" }, "$:/language/Buttons/ControlPanel/Hint": { "title": "$:/language/Buttons/ControlPanel/Hint", "text": "Ouvre le panneau de contrôle" }, "$:/language/Buttons/Delete/Caption": { "title": "$:/language/Buttons/Delete/Caption", "text": "supprimer" }, "$:/language/Buttons/Delete/Hint": { "title": "$:/language/Buttons/Delete/Hint", "text": "Supprime ce tiddler" }, "$:/language/Buttons/Edit/Caption": { "title": "$:/language/Buttons/Edit/Caption", "text": "éditer" }, "$:/language/Buttons/Edit/Hint": { "title": "$:/language/Buttons/Edit/Hint", "text": "Édite ce tiddler" }, "$:/language/Buttons/Encryption/Caption": { "title": "$:/language/Buttons/Encryption/Caption", "text": "chiffrement" }, "$:/language/Buttons/Encryption/Hint": { "title": "$:/language/Buttons/Encryption/Hint", "text": "Affecte ou résilie le mot de passe pour la sauvegarde de ce wiki" }, "$:/language/Buttons/Encryption/ClearPassword/Caption": { "title": "$:/language/Buttons/Encryption/ClearPassword/Caption", "text": "résilier le mot de passe" }, "$:/language/Buttons/Encryption/ClearPassword/Hint": { "title": "$:/language/Buttons/Encryption/ClearPassword/Hint", "text": "Résilie le mot de passe et sauvegarde ce wiki sans chiffrement" }, "$:/language/Buttons/Encryption/SetPassword/Caption": { "title": "$:/language/Buttons/Encryption/SetPassword/Caption", "text": "affecter un mot de passe" }, "$:/language/Buttons/Encryption/SetPassword/Hint": { "title": "$:/language/Buttons/Encryption/SetPassword/Hint", "text": "Affecte un mot de passe pour sauvegarde une version chiffrée de ce wiki" }, "$:/language/Buttons/ExportPage/Caption": { "title": "$:/language/Buttons/ExportPage/Caption", "text": "exporter tout" }, "$:/language/Buttons/ExportPage/Hint": { "title": "$:/language/Buttons/ExportPage/Hint", "text": "Exporte tous les tiddlers" }, "$:/language/Buttons/ExportTiddler/Caption": { "title": "$:/language/Buttons/ExportTiddler/Caption", "text": "exporter ce tiddler" }, "$:/language/Buttons/ExportTiddler/Hint": { "title": "$:/language/Buttons/ExportTiddler/Hint", "text": "Exporte ce tiddler" }, "$:/language/Buttons/ExportTiddlers/Caption": { "title": "$:/language/Buttons/ExportTiddlers/Caption", "text": "exporter ces tiddlers" }, "$:/language/Buttons/ExportTiddlers/Hint": { "title": "$:/language/Buttons/ExportTiddlers/Hint", "text": "Exporte ces tiddlers" }, "$:/language/Buttons/Fold/Caption": { "title": "$:/language/Buttons/Fold/Caption", "text": "replier le tiddler" }, "$:/language/Buttons/Fold/Hint": { "title": "$:/language/Buttons/Fold/Hint", "text": "Replie le corps du tiddler" }, "$:/language/Buttons/Fold/FoldBar/Caption": { "title": "$:/language/Buttons/Fold/FoldBar/Caption", "text": "Barre de repli" }, "$:/language/Buttons/Fold/FoldBar/Hint": { "title": "$:/language/Buttons/Fold/FoldBar/Hint", "text": "Barre optionnelle pour replier et déplier les tiddlers" }, "$:/language/Buttons/Unfold/Caption": { "title": "$:/language/Buttons/Unfold/Caption", "text": "déplier le tiddler" }, "$:/language/Buttons/Unfold/Hint": { "title": "$:/language/Buttons/Unfold/Hint", "text": "Déplie le corps de ce tiddler" }, "$:/language/Buttons/FoldOthers/Caption": { "title": "$:/language/Buttons/FoldOthers/Caption", "text": "replier les autres tiddlers" }, "$:/language/Buttons/FoldOthers/Hint": { "title": "$:/language/Buttons/FoldOthers/Hint", "text": "Replie le corps des autres tiddlers ouverts" }, "$:/language/Buttons/FoldAll/Caption": { "title": "$:/language/Buttons/FoldAll/Caption", "text": "replie tous les tiddlers" }, "$:/language/Buttons/FoldAll/Hint": { "title": "$:/language/Buttons/FoldAll/Hint", "text": "Replier le corps de tous les tiddlers ouverts" }, "$:/language/Buttons/UnfoldAll/Caption": { "title": "$:/language/Buttons/UnfoldAll/Caption", "text": "déplier tous les tiddlers" }, "$:/language/Buttons/UnfoldAll/Hint": { "title": "$:/language/Buttons/UnfoldAll/Hint", "text": "Déplie le corps de tous les tiddlers ouverts" }, "$:/language/Buttons/FullScreen/Caption": { "title": "$:/language/Buttons/FullScreen/Caption", "text": "plein-écran" }, "$:/language/Buttons/FullScreen/Hint": { "title": "$:/language/Buttons/FullScreen/Hint", "text": "Entre ou sort du mode plein-écran" }, "$:/language/Buttons/Help/Caption": { "title": "$:/language/Buttons/Help/Caption", "text": "aide" }, "$:/language/Buttons/Help/Hint": { "title": "$:/language/Buttons/Help/Hint", "text": "Affiche le panneau d'aide" }, "$:/language/Buttons/Import/Caption": { "title": "$:/language/Buttons/Import/Caption", "text": "importer" }, "$:/language/Buttons/Import/Hint": { "title": "$:/language/Buttons/Import/Hint", "text": "Importe des fichiers de nombreux types, notamment texte, image, TiddlyWiki ou JSON" }, "$:/language/Buttons/Info/Caption": { "title": "$:/language/Buttons/Info/Caption", "text": "informations" }, "$:/language/Buttons/Info/Hint": { "title": "$:/language/Buttons/Info/Hint", "text": "Affiche des informations sur ce tiddler" }, "$:/language/Buttons/Home/Caption": { "title": "$:/language/Buttons/Home/Caption", "text": "accueil" }, "$:/language/Buttons/Home/Hint": { "title": "$:/language/Buttons/Home/Hint", "text": "Ouvre les tiddlers par défaut" }, "$:/language/Buttons/Language/Caption": { "title": "$:/language/Buttons/Language/Caption", "text": "langue" }, "$:/language/Buttons/Language/Hint": { "title": "$:/language/Buttons/Language/Hint", "text": "Choix de la langue pour l'interface utilisateur" }, "$:/language/Buttons/More/Caption": { "title": "$:/language/Buttons/More/Caption", "text": "plus" }, "$:/language/Buttons/More/Hint": { "title": "$:/language/Buttons/More/Hint", "text": "Actions supplémentaires" }, "$:/language/Buttons/NewHere/Caption": { "title": "$:/language/Buttons/NewHere/Caption", "text": "nouveau, à partir d'ici" }, "$:/language/Buttons/NewHere/Hint": { "title": "$:/language/Buttons/NewHere/Hint", "text": "Crée un nouveau tiddler avec pour tag le titre du tiddler courant" }, "$:/language/Buttons/NewJournal/Caption": { "title": "$:/language/Buttons/NewJournal/Caption", "text": "nouveau journal" }, "$:/language/Buttons/NewJournal/Hint": { "title": "$:/language/Buttons/NewJournal/Hint", "text": "Crée un nouveau tiddler journal" }, "$:/language/Buttons/NewJournalHere/Caption": { "title": "$:/language/Buttons/NewJournalHere/Caption", "text": "nouveau journal, à partir d'ici" }, "$:/language/Buttons/NewJournalHere/Hint": { "title": "$:/language/Buttons/NewJournalHere/Hint", "text": "Crée un nouveau tiddler journal avec pour tag le titre du tiddler courant" }, "$:/language/Buttons/NewImage/Caption": { "title": "$:/language/Buttons/NewImage/Caption", "text": "nouvelle image" }, "$:/language/Buttons/NewImage/Hint": { "title": "$:/language/Buttons/NewImage/Hint", "text": "Crée une nouveau tiddler image" }, "$:/language/Buttons/NewMarkdown/Caption": { "title": "$:/language/Buttons/NewMarkdown/Caption", "text": "nouveau tiddler Markdown" }, "$:/language/Buttons/NewMarkdown/Hint": { "title": "$:/language/Buttons/NewMarkdown/Hint", "text": "Crée un nouveau tiddler avec la syntaxe Markdown" }, "$:/language/Buttons/NewTiddler/Caption": { "title": "$:/language/Buttons/NewTiddler/Caption", "text": "nouveau tiddler" }, "$:/language/Buttons/NewTiddler/Hint": { "title": "$:/language/Buttons/NewTiddler/Hint", "text": "Crée un nouveau tiddler" }, "$:/language/Buttons/OpenWindow/Caption": { "title": "$:/language/Buttons/OpenWindow/Caption", "text": "ouvrir dans une nouvelle fenêtre" }, "$:/language/Buttons/OpenWindow/Hint": { "title": "$:/language/Buttons/OpenWindow/Hint", "text": "Ouvre ce tiddler dans une nouvelle fenêtre" }, "$:/language/Buttons/Palette/Caption": { "title": "$:/language/Buttons/Palette/Caption", "text": "palette" }, "$:/language/Buttons/Palette/Hint": { "title": "$:/language/Buttons/Palette/Hint", "text": "Choisit une palette de couleur" }, "$:/language/Buttons/Permalink/Caption": { "title": "$:/language/Buttons/Permalink/Caption", "text": "permalink" }, "$:/language/Buttons/Permalink/Hint": { "title": "$:/language/Buttons/Permalink/Hint", "text": "Remplace l'URL dans la barre d'adresse du navigateur par un lien direct vers ce tiddler" }, "$:/language/Buttons/Permaview/Caption": { "title": "$:/language/Buttons/Permaview/Caption", "text": "permaview" }, "$:/language/Buttons/Permaview/Hint": { "title": "$:/language/Buttons/Permaview/Hint", "text": "Remplace l'URL dans la barre d'adresse du navigateur par un lien direct vers l'ensemble des tiddlers présents dans le déroulé" }, "$:/language/Buttons/Print/Caption": { "title": "$:/language/Buttons/Print/Caption", "text": "imprimer la page" }, "$:/language/Buttons/Print/Hint": { "title": "$:/language/Buttons/Print/Hint", "text": "Imprime la page courante" }, "$:/language/Buttons/Refresh/Caption": { "title": "$:/language/Buttons/Refresh/Caption", "text": "rafraîchir" }, "$:/language/Buttons/Refresh/Hint": { "title": "$:/language/Buttons/Refresh/Hint", "text": "Rafraîchit la totalité du wiki" }, "$:/language/Buttons/Save/Caption": { "title": "$:/language/Buttons/Save/Caption", "text": "ok" }, "$:/language/Buttons/Save/Hint": { "title": "$:/language/Buttons/Save/Hint", "text": "Confirme les changements apportés à ce tiddler" }, "$:/language/Buttons/SaveWiki/Caption": { "title": "$:/language/Buttons/SaveWiki/Caption", "text": "enregistrer les modifications" }, "$:/language/Buttons/SaveWiki/Hint": { "title": "$:/language/Buttons/SaveWiki/Hint", "text": "Enregistre les modifications" }, "$:/language/Buttons/StoryView/Caption": { "title": "$:/language/Buttons/StoryView/Caption", "text": "visualisation du déroulé" }, "$:/language/Buttons/StoryView/Hint": { "title": "$:/language/Buttons/StoryView/Hint", "text": "Choisit le mode de visualisation du déroulé" }, "$:/language/Buttons/HideSideBar/Caption": { "title": "$:/language/Buttons/HideSideBar/Caption", "text": "cacher la barre latérale" }, "$:/language/Buttons/HideSideBar/Hint": { "title": "$:/language/Buttons/HideSideBar/Hint", "text": "Cache la barre latérale" }, "$:/language/Buttons/ShowSideBar/Caption": { "title": "$:/language/Buttons/ShowSideBar/Caption", "text": "afficher la barre latérale" }, "$:/language/Buttons/ShowSideBar/Hint": { "title": "$:/language/Buttons/ShowSideBar/Hint", "text": "Affiche la barre latérale" }, "$:/language/Buttons/TagManager/Caption": { "title": "$:/language/Buttons/TagManager/Caption", "text": "gestionnaire de tags" }, "$:/language/Buttons/TagManager/Hint": { "title": "$:/language/Buttons/TagManager/Hint", "text": "Ouvre le gestionnaire de tags" }, "$:/language/Buttons/Timestamp/Caption": { "title": "$:/language/Buttons/Timestamp/Caption", "text": "horodatage" }, "$:/language/Buttons/Timestamp/Hint": { "title": "$:/language/Buttons/Timestamp/Hint", "text": "Décide si les modifications mettent à jour l'horodatage" }, "$:/language/Buttons/Timestamp/On/Caption": { "title": "$:/language/Buttons/Timestamp/On/Caption", "text": "horodatage activé" }, "$:/language/Buttons/Timestamp/On/Hint": { "title": "$:/language/Buttons/Timestamp/On/Hint", "text": "L'horodatage est mis à jour quand les tiddlers sont modifiés" }, "$:/language/Buttons/Timestamp/Off/Caption": { "title": "$:/language/Buttons/Timestamp/Off/Caption", "text": "horodatage désactivé" }, "$:/language/Buttons/Timestamp/Off/Hint": { "title": "$:/language/Buttons/Timestamp/Off/Hint", "text": "L'horodatage n'est pas mis à jour quand les tiddlers sont modifiés" }, "$:/language/Buttons/Theme/Caption": { "title": "$:/language/Buttons/Theme/Caption", "text": "thème" }, "$:/language/Buttons/Theme/Hint": { "title": "$:/language/Buttons/Theme/Hint", "text": "Choix du thème pour l'affichage" }, "$:/language/Buttons/Bold/Caption": { "title": "$:/language/Buttons/Bold/Caption", "text": "gras" }, "$:/language/Buttons/Bold/Hint": { "title": "$:/language/Buttons/Bold/Hint", "text": "Met la sélection en gras" }, "$:/language/Buttons/Clear/Caption": { "title": "$:/language/Buttons/Clear/Caption", "text": "effacer" }, "$:/language/Buttons/Clear/Hint": { "title": "$:/language/Buttons/Clear/Hint", "text": "Remplace l'image par une couleur pleine" }, "$:/language/Buttons/EditorHeight/Caption": { "title": "$:/language/Buttons/EditorHeight/Caption", "text": "hauteur de l'éditeur" }, "$:/language/Buttons/EditorHeight/Caption/Auto": { "title": "$:/language/Buttons/EditorHeight/Caption/Auto", "text": "Ajuste automatiquement la hauteur en fonction du contenu" }, "$:/language/Buttons/EditorHeight/Caption/Fixed": { "title": "$:/language/Buttons/EditorHeight/Caption/Fixed", "text": "Hauteur fixe :" }, "$:/language/Buttons/EditorHeight/Hint": { "title": "$:/language/Buttons/EditorHeight/Hint", "text": "Choisit la hauteur de l'éditeur de texte" }, "$:/language/Buttons/Excise/Caption": { "title": "$:/language/Buttons/Excise/Caption", "text": "exciser" }, "$:/language/Buttons/Excise/Caption/Excise": { "title": "$:/language/Buttons/Excise/Caption/Excise", "text": "Effectue une excision" }, "$:/language/Buttons/Excise/Caption/MacroName": { "title": "$:/language/Buttons/Excise/Caption/MacroName", "text": "Nom de la macro :" }, "$:/language/Buttons/Excise/Caption/NewTitle": { "title": "$:/language/Buttons/Excise/Caption/NewTitle", "text": "Titre du nouveau tiddler :" }, "$:/language/Buttons/Excise/Caption/Replace": { "title": "$:/language/Buttons/Excise/Caption/Replace", "text": "Remplacer le texte excisé par :" }, "$:/language/Buttons/Excise/Caption/Replace/Macro": { "title": "$:/language/Buttons/Excise/Caption/Replace/Macro", "text": "macro" }, "$:/language/Buttons/Excise/Caption/Replace/Link": { "title": "$:/language/Buttons/Excise/Caption/Replace/Link", "text": "lien" }, "$:/language/Buttons/Excise/Caption/Replace/Transclusion": { "title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion", "text": "transclusion" }, "$:/language/Buttons/Excise/Caption/Tag": { "title": "$:/language/Buttons/Excise/Caption/Tag", "text": "Utilise le titre de ce tiddler comme tag du nouveau tiddler" }, "$:/language/Buttons/Excise/Caption/TiddlerExists": { "title": "$:/language/Buttons/Excise/Caption/TiddlerExists", "text": "Attention : le tiddler existe déjà" }, "$:/language/Buttons/Excise/Hint": { "title": "$:/language/Buttons/Excise/Hint", "text": "Excise le texte sélectionné vers un nouveau tiddler" }, "$:/language/Buttons/Heading1/Caption": { "title": "$:/language/Buttons/Heading1/Caption", "text": "en-tête 1" }, "$:/language/Buttons/Heading1/Hint": { "title": "$:/language/Buttons/Heading1/Hint", "text": "Applique le formatage des en-têtes de niveau 1 aux lignes de la sélection" }, "$:/language/Buttons/Heading2/Caption": { "title": "$:/language/Buttons/Heading2/Caption", "text": "en-tête 2" }, "$:/language/Buttons/Heading2/Hint": { "title": "$:/language/Buttons/Heading2/Hint", "text": "Applique le formatage des en-têtes de niveau 2 aux lignes de la sélection" }, "$:/language/Buttons/Heading3/Caption": { "title": "$:/language/Buttons/Heading3/Caption", "text": "en-tête 3" }, "$:/language/Buttons/Heading3/Hint": { "title": "$:/language/Buttons/Heading3/Hint", "text": "Applique le formatage des en-têtes de niveau 3 aux lignes de la sélection" }, "$:/language/Buttons/Heading4/Caption": { "title": "$:/language/Buttons/Heading4/Caption", "text": "en-tête 4" }, "$:/language/Buttons/Heading4/Hint": { "title": "$:/language/Buttons/Heading4/Hint", "text": "Applique le formatage des en-têtes de niveau 4 aux lignes de la sélection" }, "$:/language/Buttons/Heading5/Caption": { "title": "$:/language/Buttons/Heading5/Caption", "text": "en-tête 5" }, "$:/language/Buttons/Heading5/Hint": { "title": "$:/language/Buttons/Heading5/Hint", "text": "Applique le formatage des en-têtes de niveau 5 aux lignes de la sélection" }, "$:/language/Buttons/Heading6/Caption": { "title": "$:/language/Buttons/Heading6/Caption", "text": "en-tête 6" }, "$:/language/Buttons/Heading6/Hint": { "title": "$:/language/Buttons/Heading6/Hint", "text": "Applique le formatage des en-têtes de niveau 6 aux lignes de la sélection" }, "$:/language/Buttons/Italic/Caption": { "title": "$:/language/Buttons/Italic/Caption", "text": "italiques" }, "$:/language/Buttons/Italic/Hint": { "title": "$:/language/Buttons/Italic/Hint", "text": "Met la sélection en italiques" }, "$:/language/Buttons/LineWidth/Caption": { "title": "$:/language/Buttons/LineWidth/Caption", "text": "épaisseur du trait" }, "$:/language/Buttons/LineWidth/Hint": { "title": "$:/language/Buttons/LineWidth/Hint", "text": "Choisit une épaisseur de trait pour le remplissage" }, "$:/language/Buttons/Link/Caption": { "title": "$:/language/Buttons/Link/Caption", "text": "lien" }, "$:/language/Buttons/Link/Hint": { "title": "$:/language/Buttons/Link/Hint", "text": "Crée un lien wikitext" }, "$:/language/Buttons/Linkify/Caption": { "title": "$:/language/Buttons/Linkify/Caption", "text": "wikilien" }, "$:/language/Buttons/Linkify/Hint": { "title": "$:/language/Buttons/Linkify/Hint", "text": "Encadre la sélection avec des crochets droits" }, "$:/language/Buttons/ListBullet/Caption": { "title": "$:/language/Buttons/ListBullet/Caption", "text": "liste à puces" }, "$:/language/Buttons/ListBullet/Hint": { "title": "$:/language/Buttons/ListBullet/Hint", "text": "Formate les lignes de la sélection comme une liste à puces" }, "$:/language/Buttons/ListNumber/Caption": { "title": "$:/language/Buttons/ListNumber/Caption", "text": "liste numérotée" }, "$:/language/Buttons/ListNumber/Hint": { "title": "$:/language/Buttons/ListNumber/Hint", "text": "Formate les lignes de la sélection comme une liste numérotée" }, "$:/language/Buttons/MonoBlock/Caption": { "title": "$:/language/Buttons/MonoBlock/Caption", "text": "bloc de chasse constante" }, "$:/language/Buttons/MonoBlock/Hint": { "title": "$:/language/Buttons/MonoBlock/Hint", "text": "Formate les lignes de la sélection en bloc de chasse constante" }, "$:/language/Buttons/MonoLine/Caption": { "title": "$:/language/Buttons/MonoLine/Caption", "text": "chasse constante" }, "$:/language/Buttons/MonoLine/Hint": { "title": "$:/language/Buttons/MonoLine/Hint", "text": "Formate la sélection avec une police de caractères à chasse constante" }, "$:/language/Buttons/Opacity/Caption": { "title": "$:/language/Buttons/Opacity/Caption", "text": "opacité" }, "$:/language/Buttons/Opacity/Hint": { "title": "$:/language/Buttons/Opacity/Hint", "text": "Choisit l'opacité du remplissage" }, "$:/language/Buttons/Paint/Caption": { "title": "$:/language/Buttons/Paint/Caption", "text": "couleur de remplissage" }, "$:/language/Buttons/Paint/Hint": { "title": "$:/language/Buttons/Paint/Hint", "text": "Choisit la couleur de remplissage" }, "$:/language/Buttons/Picture/Caption": { "title": "$:/language/Buttons/Picture/Caption", "text": "image" }, "$:/language/Buttons/Picture/Hint": { "title": "$:/language/Buttons/Picture/Hint", "text": "Insère une image" }, "$:/language/Buttons/Preview/Caption": { "title": "$:/language/Buttons/Preview/Caption", "text": "prévisualisation" }, "$:/language/Buttons/Preview/Hint": { "title": "$:/language/Buttons/Preview/Hint", "text": "Affiche le panneau de prévisualisation" }, "$:/language/Buttons/PreviewType/Caption": { "title": "$:/language/Buttons/PreviewType/Caption", "text": "type de prévisualisation" }, "$:/language/Buttons/PreviewType/Hint": { "title": "$:/language/Buttons/PreviewType/Hint", "text": "Choisit le type de prévisualisation" }, "$:/language/Buttons/Quote/Caption": { "title": "$:/language/Buttons/Quote/Caption", "text": "citation" }, "$:/language/Buttons/Quote/Hint": { "title": "$:/language/Buttons/Quote/Hint", "text": "Formate les lignes de la sélection comme une citation" }, "$:/language/Buttons/RotateLeft/Caption": { "title": "$:/language/Buttons/RotateLeft/Caption", "text": "pivoter vers la gauche" }, "$:/language/Buttons/RotateLeft/Hint": { "title": "$:/language/Buttons/RotateLeft/Hint", "text": "Fait pivoter l'image vers la gauche de 90 degrés" }, "$:/language/Buttons/Size/Caption": { "title": "$:/language/Buttons/Size/Caption", "text": "taille de l'image" }, "$:/language/Buttons/Size/Caption/Height": { "title": "$:/language/Buttons/Size/Caption/Height", "text": "Hauteur :" }, "$:/language/Buttons/Size/Caption/Resize": { "title": "$:/language/Buttons/Size/Caption/Resize", "text": "Redimensionner l'image" }, "$:/language/Buttons/Size/Caption/Width": { "title": "$:/language/Buttons/Size/Caption/Width", "text": "Largeur :" }, "$:/language/Buttons/Size/Hint": { "title": "$:/language/Buttons/Size/Hint", "text": "Indique une taille pour l'image" }, "$:/language/Buttons/Stamp/Caption": { "title": "$:/language/Buttons/Stamp/Caption", "text": "tampon" }, "$:/language/Buttons/Stamp/Caption/New": { "title": "$:/language/Buttons/Stamp/Caption/New", "text": "Ajoutez le vôtre" }, "$:/language/Buttons/Stamp/Hint": { "title": "$:/language/Buttons/Stamp/Hint", "text": "Insère un fragment de texte préconfiguré" }, "$:/language/Buttons/Stamp/New/Title": { "title": "$:/language/Buttons/Stamp/New/Title", "text": "Nom tel qu'il apparaît dans le menu" }, "$:/language/Buttons/Stamp/New/Text": { "title": "$:/language/Buttons/Stamp/New/Text", "text": "Texte du fragment. (N'oubliez pas d'ajouter une légende dans le champ //caption//.)" }, "$:/language/Buttons/Strikethrough/Caption": { "title": "$:/language/Buttons/Strikethrough/Caption", "text": "barré" }, "$:/language/Buttons/Strikethrough/Hint": { "title": "$:/language/Buttons/Strikethrough/Hint", "text": "Barre le texte sélectionné" }, "$:/language/Buttons/Subscript/Caption": { "title": "$:/language/Buttons/Subscript/Caption", "text": "indice" }, "$:/language/Buttons/Subscript/Hint": { "title": "$:/language/Buttons/Subscript/Hint", "text": "Met en indice le texte sélectionné" }, "$:/language/Buttons/Superscript/Caption": { "title": "$:/language/Buttons/Superscript/Caption", "text": "exposant" }, "$:/language/Buttons/Superscript/Hint": { "title": "$:/language/Buttons/Superscript/Hint", "text": "Met en exposant le texte sélectionné" }, "$:/language/Buttons/Transcludify/Caption": { "title": "$:/language/Buttons/Transcludify/Caption", "text": "transclusion" }, "$:/language/Buttons/Transcludify/Hint": { "title": "$:/language/Buttons/Transcludify/Hint", "text": "Encadre la sélection avec des accolades" }, "$:/language/Buttons/Underline/Caption": { "title": "$:/language/Buttons/Underline/Caption", "text": "souligné" }, "$:/language/Buttons/Underline/Hint": { "title": "$:/language/Buttons/Underline/Hint", "text": "Souligne le texte sélectionné" }, "$:/language/ControlPanel/Advanced/Caption": { "title": "$:/language/ControlPanel/Advanced/Caption", "text": "Avancé" }, "$:/language/ControlPanel/Advanced/Hint": { "title": "$:/language/ControlPanel/Advanced/Hint", "text": "Informations internes sur ce ~TiddlyWiki" }, "$:/language/ControlPanel/Appearance/Caption": { "title": "$:/language/ControlPanel/Appearance/Caption", "text": "Apparence" }, "$:/language/ControlPanel/Appearance/Hint": { "title": "$:/language/ControlPanel/Appearance/Hint", "text": "Personnalisation de l'apparence de votre ~TiddlyWiki." }, "$:/language/ControlPanel/Basics/AnimDuration/Prompt": { "title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt", "text": "Durée de l'animation" }, "$:/language/ControlPanel/Basics/Caption": { "title": "$:/language/ControlPanel/Basics/Caption", "text": "Fondamentaux" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint", "text": "Utilisez les [[crochets doubles]] pour les titres contenant des espaces. Vous pouvez aussi décider de <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">Conserver le déroulé actuel</$button>" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt", "text": "Tiddlers par défaut" }, "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": { "title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint", "text": "Liste les tiddlers qui seront affichés au démarrage :" }, "$:/language/ControlPanel/Basics/Language/Prompt": { "title": "$:/language/ControlPanel/Basics/Language/Prompt", "text": "Bonjour ! Langue active :" }, "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt", "text": "Modèle pour les titres des tiddlers journaux" }, "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt", "text": "Texte pour les nouveaux tiddlers journaux" }, "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt", "text": "Tags pour les nouveaux tiddlers journaux" }, "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt", "text": "Modèle pour les titres des nouveaux tiddlers" }, "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt", "text": "Nombre de tiddlers //shadow// modifiés" }, "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt", "text": "Nombre de tiddlers //shadow//" }, "$:/language/ControlPanel/Basics/Subtitle/Prompt": { "title": "$:/language/ControlPanel/Basics/Subtitle/Prompt", "text": "Sous-titre" }, "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt", "text": "Nombre de tiddlers système :" }, "$:/language/ControlPanel/Basics/Tags/Prompt": { "title": "$:/language/ControlPanel/Basics/Tags/Prompt", "text": "Nombre de tags :" }, "$:/language/ControlPanel/Basics/Tiddlers/Prompt": { "title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt", "text": "Nombre de tiddlers :" }, "$:/language/ControlPanel/Basics/Title/Prompt": { "title": "$:/language/ControlPanel/Basics/Title/Prompt", "text": "Titre de ce ~TiddlyWiki :" }, "$:/language/ControlPanel/Basics/Username/Prompt": { "title": "$:/language/ControlPanel/Basics/Username/Prompt", "text": "Signer les modifications avec ce nom d'utilisateur :" }, "$:/language/ControlPanel/Basics/Version/Prompt": { "title": "$:/language/ControlPanel/Basics/Version/Prompt", "text": "Version de ~TiddlyWiki :" }, "$:/language/ControlPanel/EditorTypes/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Caption", "text": "Types d'éditeur" }, "$:/language/ControlPanel/EditorTypes/Editor/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Editor/Caption", "text": "Éditeur" }, "$:/language/ControlPanel/EditorTypes/Hint": { "title": "$:/language/ControlPanel/EditorTypes/Hint", "text": "Ces tiddlers déterminent l'éditeur à utiliser pour éditer tel ou tel type de tiddler." }, "$:/language/ControlPanel/EditorTypes/Type/Caption": { "title": "$:/language/ControlPanel/EditorTypes/Type/Caption", "text": "Type" }, "$:/language/ControlPanel/Info/Caption": { "title": "$:/language/ControlPanel/Info/Caption", "text": "Info" }, "$:/language/ControlPanel/Info/Hint": { "title": "$:/language/ControlPanel/Info/Hint", "text": "Information sur ce TiddlyWiki" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt", "text": "Entrez le raccourci ici" }, "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption", "text": "ajoute un raccourci" }, "$:/language/ControlPanel/KeyboardShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Caption", "text": "Raccourcis clavier" }, "$:/language/ControlPanel/KeyboardShortcuts/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Hint", "text": "Gère les définitions des raccourcis clavier" }, "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": { "title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption", "text": "Aucun raccourci clavier défini" }, "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint", "text": "supprime le raccourci clavier" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/All": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All", "text": "Toutes plates-formes" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac", "text": "Plate-forme Macintosh seulement" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac", "text": "Plates-formes non-Macintosh seulement" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux", "text": "Plate-forme Linux seulement" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux", "text": "Plate-formes non-Linux seulement" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows", "text": "Plate-forme Windows seulement" }, "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": { "title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows", "text": "Plates-formes non-Windows seulement" }, "$:/language/ControlPanel/LoadedModules/Caption": { "title": "$:/language/ControlPanel/LoadedModules/Caption", "text": "Modules chargés" }, "$:/language/ControlPanel/LoadedModules/Hint": { "title": "$:/language/ControlPanel/LoadedModules/Hint", "text": "Liste des modules chargés, liés à leurs tiddlers sources. Les italiques indiquent que les tiddlers sources n'existent pas, le plus souvent parce que le module a été créé lors du processus d'amorçage." }, "$:/language/ControlPanel/Palette/Caption": { "title": "$:/language/ControlPanel/Palette/Caption", "text": "Palette" }, "$:/language/ControlPanel/Palette/Editor/Clone/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption", "text": "Cloner" }, "$:/language/ControlPanel/Palette/Editor/Clone/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt", "text": "Il est recommandé de cloner cette palette « shadow » avant de l'éditer" }, "$:/language/ControlPanel/Palette/Editor/Prompt/Modified": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified", "text": "Cette palette « shadow » a été modifiée" }, "$:/language/ControlPanel/Palette/Editor/Prompt": { "title": "$:/language/ControlPanel/Palette/Editor/Prompt", "text": "Édition de" }, "$:/language/ControlPanel/Palette/Editor/Reset/Caption": { "title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption", "text": "Réinitialiser" }, "$:/language/ControlPanel/Palette/HideEditor/Caption": { "title": "$:/language/ControlPanel/Palette/HideEditor/Caption", "text": "Masquer l'éditeur" }, "$:/language/ControlPanel/Palette/Prompt": { "title": "$:/language/ControlPanel/Palette/Prompt", "text": "Palette actuelle :" }, "$:/language/ControlPanel/Palette/ShowEditor/Caption": { "title": "$:/language/ControlPanel/Palette/ShowEditor/Caption", "text": "Afficher l'éditeur" }, "$:/language/ControlPanel/Parsing/Caption": { "title": "$:/language/ControlPanel/Parsing/Caption", "text": "Analyse" }, "$:/language/ControlPanel/Parsing/Hint": { "title": "$:/language/ControlPanel/Parsing/Hint", "text": "Ici, vous pouvez activer/désactiver globalement les règles de l'analyseur du wiki. Les changements seront effectifs après enregistrement et rechargement de votre wiki. Désactiver certaines règles peut empêcher <$text text=\"TiddlyWiki\"/> de fonctionner correctement. Pour restaurer le fonctionnement normal, utilisez le [[safe mode|https://tiddlywiki.com/#SafeMode]]." }, "$:/language/ControlPanel/Parsing/Block/Caption": { "title": "$:/language/ControlPanel/Parsing/Block/Caption", "text": "Règles d'analyse Block" }, "$:/language/ControlPanel/Parsing/Inline/Caption": { "title": "$:/language/ControlPanel/Parsing/Inline/Caption", "text": "Règles d'analyse Inline" }, "$:/language/ControlPanel/Parsing/Pragma/Caption": { "title": "$:/language/ControlPanel/Parsing/Pragma/Caption", "text": "Règles d'analyse PragmaP" }, "$:/language/ControlPanel/Plugins/Add/Caption": { "title": "$:/language/ControlPanel/Plugins/Add/Caption", "text": "Ajouter des plugins" }, "$:/language/ControlPanel/Plugins/Add/Hint": { "title": "$:/language/ControlPanel/Plugins/Add/Hint", "text": "Installer des plugins à partir de la bibliothèque officielle" }, "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint", "text": "Ce plugin est déjà installé dans la version <$text text=<<installedVersion>>/>" }, "$:/language/ControlPanel/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Disable/Caption": { "title": "$:/language/ControlPanel/Plugins/Disable/Caption", "text": "désactiver" }, "$:/language/ControlPanel/Plugins/Disable/Hint": { "title": "$:/language/ControlPanel/Plugins/Disable/Hint", "text": "Désactive ce plugin au prochain rechargement de la page" }, "$:/language/ControlPanel/Plugins/Disabled/Status": { "title": "$:/language/ControlPanel/Plugins/Disabled/Status", "text": "(désactivé)" }, "$:/language/ControlPanel/Plugins/Empty/Hint": { "title": "$:/language/ControlPanel/Plugins/Empty/Hint", "text": "Aucun" }, "$:/language/ControlPanel/Plugins/Enable/Caption": { "title": "$:/language/ControlPanel/Plugins/Enable/Caption", "text": "activer" }, "$:/language/ControlPanel/Plugins/Enable/Hint": { "title": "$:/language/ControlPanel/Plugins/Enable/Hint", "text": "Active ce plugin au prochain rechargement de la page" }, "$:/language/ControlPanel/Plugins/Install/Caption": { "title": "$:/language/ControlPanel/Plugins/Install/Caption", "text": "installer" }, "$:/language/ControlPanel/Plugins/Installed/Hint": { "title": "$:/language/ControlPanel/Plugins/Installed/Hint", "text": "Plugins installés :" }, "$:/language/ControlPanel/Plugins/Languages/Caption": { "title": "$:/language/ControlPanel/Plugins/Languages/Caption", "text": "Langues" }, "$:/language/ControlPanel/Plugins/Languages/Hint": { "title": "$:/language/ControlPanel/Plugins/Languages/Hint", "text": "Plugins de langue" }, "$:/language/ControlPanel/Plugins/NoInfoFound/Hint": { "title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint", "text": "''\"<$text text=<<currentTab>>/>\"'' non trouvé" }, "$:/language/ControlPanel/Plugins/NotInstalled/Hint": { "title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint", "text": "Ce plugin n'est pas installé" }, "$:/language/ControlPanel/Plugins/OpenPluginLibrary": { "title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary", "text": "ouvre la bibliothèque de plugins" }, "$:/language/ControlPanel/Plugins/Plugins/Caption": { "title": "$:/language/ControlPanel/Plugins/Plugins/Caption", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Plugins/Hint": { "title": "$:/language/ControlPanel/Plugins/Plugins/Hint", "text": "Plugins" }, "$:/language/ControlPanel/Plugins/Reinstall/Caption": { "title": "$:/language/ControlPanel/Plugins/Reinstall/Caption", "text": "réinstalle" }, "$:/language/ControlPanel/Plugins/Themes/Caption": { "title": "$:/language/ControlPanel/Plugins/Themes/Caption", "text": "Thèmes" }, "$:/language/ControlPanel/Plugins/Themes/Hint": { "title": "$:/language/ControlPanel/Plugins/Themes/Hint", "text": "Plugins de thème" }, "$:/language/ControlPanel/Saving/Caption": { "title": "$:/language/ControlPanel/Saving/Caption", "text": "Sauvegarde" }, "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description", "text": "Permet l'enregistrement automatique pour l'enregistreur de téléchargement" }, "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint", "text": "Active l'auto-enregistrement pour l'enregistreur de téléchargement" }, "$:/language/ControlPanel/Saving/DownloadSaver/Caption": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption", "text": "Enregistreur de téléchargement" }, "$:/language/ControlPanel/Saving/DownloadSaver/Hint": { "title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint", "text": "Ces paramètres s'appliquent à l'enregistreur de téléchargement compatible HTML5" }, "$:/language/ControlPanel/Saving/General/Caption": { "title": "$:/language/ControlPanel/Saving/General/Caption", "text": "Général" }, "$:/language/ControlPanel/Saving/General/Hint": { "title": "$:/language/ControlPanel/Saving/General/Hint", "text": "Ces paramètres s'appliquent à tous les enregistreurs chargés" }, "$:/language/ControlPanel/Saving/Hint": { "title": "$:/language/ControlPanel/Saving/Hint", "text": "Paramètres pour enregistrer le ~TiddlyWiki complet dans un seul fichier, via un module enregistreur" }, "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading", "text": "Paramètres avancés" }, "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir", "text": "Dossier des //sauvegardes//" }, "$:/language/ControlPanel/Saving/TiddlySpot/Backups": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups", "text": "Sauvegardes" }, "$:/language/ControlPanel/Saving/TiddlySpot/Caption": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption", "text": "Enregistreur ~TiddlySpot" }, "$:/language/ControlPanel/Saving/TiddlySpot/Description": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Description", "text": "Ces paramètres ne servent que lors de la sauvegarde vers http://tiddlyspot.com ou vers un serveur distant compatible" }, "$:/language/ControlPanel/Saving/TiddlySpot/Filename": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename", "text": "Nom du fichier enregistré" }, "$:/language/ControlPanel/Saving/TiddlySpot/Heading": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading", "text": "~TiddlySpot" }, "$:/language/ControlPanel/Saving/TiddlySpot/Hint": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint", "text": "//L'URL par défaut est `http://<nom du wiki>.tiddlyspot.com/store.cgi`. Elle peut être remplacée par une adresse serveur personnalisée, comme `http://example.com/store.php`.//" }, "$:/language/ControlPanel/Saving/TiddlySpot/Password": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/Password", "text": "Mot de passe" }, "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL", "text": "URL du serveur" }, "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir", "text": "Dossier des dépôts" }, "$:/language/ControlPanel/Saving/TiddlySpot/UserName": { "title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName", "text": "Nom utilisé pour ce Wiki" }, "$:/language/ControlPanel/Settings/AutoSave/Caption": { "title": "$:/language/ControlPanel/Settings/AutoSave/Caption", "text": "Sauvegarde automatique" }, "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description", "text": "Pas de sauvegarde automatique des modifications" }, "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": { "title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description", "text": "Sauvegarde automatique des modifications" }, "$:/language/ControlPanel/Settings/AutoSave/Hint": { "title": "$:/language/ControlPanel/Settings/AutoSave/Hint", "text": "Tentative de sauvegarde automatique des modifications pendant l'édition quand un enregistreur compatible est utilisé" }, "$:/language/ControlPanel/Settings/CamelCase/Caption": { "title": "$:/language/ControlPanel/Settings/CamelCase/Caption", "text": "Liens Wiki //Camel Case//" }, "$:/language/ControlPanel/Settings/CamelCase/Hint": { "title": "$:/language/ControlPanel/Settings/CamelCase/Hint", "text": "Vous pouvez désactiver globalement les liens créés à partir des expressions de type ~CamelCase. Pour que ce paramètre prenne effet, il est nécessaire de recharger le wiki" }, "$:/language/ControlPanel/Settings/CamelCase/Description": { "title": "$:/language/ControlPanel/Settings/CamelCase/Description", "text": "Active les liens automatiques sur les expressions de la forme ~CamelCase" }, "$:/language/ControlPanel/Settings/Caption": { "title": "$:/language/ControlPanel/Settings/Caption", "text": "Paramétrage" }, "$:/language/ControlPanel/Settings/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption", "text": "Barre d'outils de l'éditeur" }, "$:/language/ControlPanel/Settings/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint", "text": "Active ou désactive la barre d'outils de l'éditeur :" }, "$:/language/ControlPanel/Settings/EditorToolbar/Description": { "title": "$:/language/ControlPanel/Settings/EditorToolbar/Description", "text": "Affiche la barre d'outils de l'éditeur" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Caption": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption", "text": "Mode Panneau d'Informations du Tiddler" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Hint": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint", "text": "Contrôle à quel moment le panneau d'informations du tiddler se ferme :" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description", "text": "Le panneau d'informations se ferme automatiquement" }, "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": { "title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description", "text": "Le panneau d'informations du tiddler reste ouvert jusqu'à ce qu'il soit fermé explicitement" }, "$:/language/ControlPanel/Settings/Hint": { "title": "$:/language/ControlPanel/Settings/Hint", "text": "Ce paramétrage vous permet de personnaliser le comportement de TiddlyWiki." }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption", "text": "Barre d'adresse pendant la navigation" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint", "text": "Comportement de la barre d'adresse du navigateur lorsqu'on pointe vers un tiddler :" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description", "text": "Ne pas modifier la barre d'adresse" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description", "text": "Inclure uniquement le titre du tiddler cible" }, "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": { "title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description", "text": "Inclure le titre du tiddler cible ainsi que le déroulé courant" }, "$:/language/ControlPanel/Settings/NavigationHistory/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption", "text": "Historique de navigation" }, "$:/language/ControlPanel/Settings/NavigationHistory/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint", "text": "Mise à jour de l'historique de navigation du navigateur lorsqu'on pointe vers un tiddler :" }, "$:/language/ControlPanel/Settings/NavigationHistory/No/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description", "text": "Ne pas mettre à jour l'historique" }, "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": { "title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description", "text": "Mettre à jour l'historique" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption", "text": "Mode Permalink/permaview" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint", "text": "Choisit la manière de traiter l'URL permalink/permaview:" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description", "text": "Copie l'URL permalink/permaview dans le presse-papier" }, "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": { "title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description", "text": "Met à jour la barre d'adresse à partir de l'URL permalink/permaview" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption", "text": "Instrumentation de la performance" }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint", "text": "Affiche des statistiques de performance dans la console de développement du navigateur. Nécessite de recharger la page pour prendre effet." }, "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": { "title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description", "text": "Active l'instrumentation de la performance" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption", "text": "Style des boutons de la barre d'outils" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint", "text": "Choix du style des boutons de la barre d'outils :" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless", "text": "Sans bordure" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed", "text": "Avec une bordure" }, "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": { "title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded", "text": "Arrondis" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Caption": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption", "text": "Boutons de la barre d'outils" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Hint": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint", "text": "Apparence par défaut des boutons sur la barre d'outils :" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description", "text": "Afficher l'icône" }, "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": { "title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description", "text": "Afficher le texte" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption", "text": "Onglet par défaut sur la barre latérale" }, "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": { "title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint", "text": "Indique l'onglet de la barre latérale qui sera affiché par défaut" }, "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": { "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption", "text": "Onglet par défaut sous le Plus de la barre latérale" }, "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": { "title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint", "text": "Indique quel onglet sera affiché par défaut sous le Plus de la barre latérale" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption", "text": "Comportement à l'ouverture du tiddler" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint", "text": "Navigation depuis un emplacement //interne// au déroulé" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint", "text": "Navigation depuis un emplacement //externe// au déroulé" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove", "text": "Ouvrir au-dessus du tiddler courant" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow", "text": "Ouvrir en dessous du tiddler courant" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop", "text": "Ouvrir tout en haut du déroulé" }, "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": { "title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom", "text": "Ouvrir tout en bas du déroulé" }, "$:/language/ControlPanel/Settings/TitleLinks/Caption": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Caption", "text": "Titres des tiddlers" }, "$:/language/ControlPanel/Settings/TitleLinks/Hint": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Hint", "text": "Faut-il afficher les titres des tiddlers comme des liens ?" }, "$:/language/ControlPanel/Settings/TitleLinks/No/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description", "text": "Ne pas afficher les titres des tiddlers comme des liens" }, "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": { "title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description", "text": "Afficher les titres des tiddlers comme des liens" }, "$:/language/ControlPanel/Settings/MissingLinks/Caption": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Caption", "text": "Liens wiki" }, "$:/language/ControlPanel/Settings/MissingLinks/Hint": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Hint", "text": "Peut-on pointer vers des tiddlers qui n'existent pas encore ?" }, "$:/language/ControlPanel/Settings/MissingLinks/Description": { "title": "$:/language/ControlPanel/Settings/MissingLinks/Description", "text": "Active les liens vers les tiddlers inexistants" }, "$:/language/ControlPanel/StoryView/Caption": { "title": "$:/language/ControlPanel/StoryView/Caption", "text": "Vue sur le déroulé" }, "$:/language/ControlPanel/StoryView/Prompt": { "title": "$:/language/ControlPanel/StoryView/Prompt", "text": "Vue courante :" }, "$:/language/ControlPanel/Stylesheets/Caption": { "title": "$:/language/ControlPanel/Stylesheets/Caption", "text": "Stylesheets" }, "$:/language/ControlPanel/Stylesheets/Expand/Caption": { "title": "$:/language/ControlPanel/Stylesheets/Expand/Caption", "text": "Tout déployer" }, "$:/language/ControlPanel/Stylesheets/Hint": { "title": "$:/language/ControlPanel/Stylesheets/Hint", "text": "Voici le rendu CSS courant pour les tiddlers feuilles de style tagués avec <<tag \"$:/tags/Stylesheet\">>" }, "$:/language/ControlPanel/Stylesheets/Restore/Caption": { "title": "$:/language/ControlPanel/Stylesheets/Restore/Caption", "text": "Restaurer" }, "$:/language/ControlPanel/Theme/Caption": { "title": "$:/language/ControlPanel/Theme/Caption", "text": "Thème" }, "$:/language/ControlPanel/Theme/Prompt": { "title": "$:/language/ControlPanel/Theme/Prompt", "text": "Thème courant :" }, "$:/language/ControlPanel/TiddlerFields/Caption": { "title": "$:/language/ControlPanel/TiddlerFields/Caption", "text": "Champs des tiddlers" }, "$:/language/ControlPanel/TiddlerFields/Hint": { "title": "$:/language/ControlPanel/TiddlerFields/Hint", "text": "Il s'agit de la totalité des [[champs|TiddlerFields]] utilisés dans ce wiki (y compris les tiddlers système, mais non compris les tiddlers //shadow//)." }, "$:/language/ControlPanel/Toolbars/Caption": { "title": "$:/language/ControlPanel/Toolbars/Caption", "text": "Barres d'outils" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption", "text": "Barre d'outils du mode édition" }, "$:/language/ControlPanel/Toolbars/EditToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint", "text": "Choix des boutons à afficher pour les tiddlers en cours d'édition" }, "$:/language/ControlPanel/Toolbars/Hint": { "title": "$:/language/ControlPanel/Toolbars/Hint", "text": "Choix des boutons à afficher dans les barres d'outils" }, "$:/language/ControlPanel/Toolbars/PageControls/Caption": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Caption", "text": "Barre d'outils de la page" }, "$:/language/ControlPanel/Toolbars/PageControls/Hint": { "title": "$:/language/ControlPanel/Toolbars/PageControls/Hint", "text": "Choix des boutons à afficher sur la barre d'outils principale de la page" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption", "text": "Barre d'outils de l'Éditeur" }, "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint", "text": "Choix des boutons à afficher dans la barre d'outils de l'éditeur. À noter que la présence de certains boutons dépendra du type du tiddler édité" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption", "text": "Barre d'outils du mode visualisation" }, "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": { "title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint", "text": "Choix des boutons à afficher pour les tiddlers en mode visualisation" }, "$:/language/ControlPanel/Tools/Download/Full/Caption": { "title": "$:/language/ControlPanel/Tools/Download/Full/Caption", "text": "Télécharger le wiki complet" }, "$:/core/fr-FR/readme": { "title": "$:/core/fr-FR/readme", "text": "Ce plugin contient les principaux composants de TiddlyWiki, notamment :\n\n* Les modules du code JavaScript ;\n* Les icônes ;\n* Les //templates// nécessaires à l'élaboration de l'interface utilisateur de TiddlyWiki ;\n* Les traductions en anglais britannique (''en-GB'') des chaînes de caractères utilisées par le cœur de l'application et susceptibles d'être traduites dans d'autres langues.\n" }, "$:/language/Date/DaySuffix/1": { "title": "$:/language/Date/DaySuffix/1", "text": "er" }, "$:/language/Date/DaySuffix/2": { "title": "$:/language/Date/DaySuffix/2", "text": "" }, "$:/language/Date/DaySuffix/3": { "title": "$:/language/Date/DaySuffix/3", "text": "" }, "$:/language/Date/DaySuffix/4": { "title": "$:/language/Date/DaySuffix/4", "text": "" }, "$:/language/Date/DaySuffix/5": { "title": "$:/language/Date/DaySuffix/5", "text": "" }, "$:/language/Date/DaySuffix/6": { "title": "$:/language/Date/DaySuffix/6", "text": "" }, "$:/language/Date/DaySuffix/7": { "title": "$:/language/Date/DaySuffix/7", "text": "" }, "$:/language/Date/DaySuffix/8": { "title": "$:/language/Date/DaySuffix/8", "text": "" }, "$:/language/Date/DaySuffix/9": { "title": "$:/language/Date/DaySuffix/9", "text": "" }, "$:/language/Date/DaySuffix/10": { "title": "$:/language/Date/DaySuffix/10", "text": "" }, "$:/language/Date/DaySuffix/11": { "title": "$:/language/Date/DaySuffix/11", "text": "" }, "$:/language/Date/DaySuffix/12": { "title": "$:/language/Date/DaySuffix/12", "text": "" }, "$:/language/Date/DaySuffix/13": { "title": "$:/language/Date/DaySuffix/13", "text": "" }, "$:/language/Date/DaySuffix/14": { "title": "$:/language/Date/DaySuffix/14", "text": "" }, "$:/language/Date/DaySuffix/15": { "title": "$:/language/Date/DaySuffix/15", "text": "" }, "$:/language/Date/DaySuffix/16": { "title": "$:/language/Date/DaySuffix/16", "text": "" }, "$:/language/Date/DaySuffix/17": { "title": "$:/language/Date/DaySuffix/17", "text": "" }, "$:/language/Date/DaySuffix/18": { "title": "$:/language/Date/DaySuffix/18", "text": "" }, "$:/language/Date/DaySuffix/19": { "title": "$:/language/Date/DaySuffix/19", "text": "" }, "$:/language/Date/DaySuffix/20": { "title": "$:/language/Date/DaySuffix/20", "text": "" }, "$:/language/Date/DaySuffix/21": { "title": "$:/language/Date/DaySuffix/21", "text": "" }, "$:/language/Date/DaySuffix/22": { "title": "$:/language/Date/DaySuffix/22", "text": "" }, "$:/language/Date/DaySuffix/23": { "title": "$:/language/Date/DaySuffix/23", "text": "" }, "$:/language/Date/DaySuffix/24": { "title": "$:/language/Date/DaySuffix/24", "text": "" }, "$:/language/Date/DaySuffix/25": { "title": "$:/language/Date/DaySuffix/25", "text": "" }, "$:/language/Date/DaySuffix/26": { "title": "$:/language/Date/DaySuffix/26", "text": "" }, "$:/language/Date/DaySuffix/27": { "title": "$:/language/Date/DaySuffix/27", "text": "" }, "$:/language/Date/DaySuffix/28": { "title": "$:/language/Date/DaySuffix/28", "text": "" }, "$:/language/Date/DaySuffix/29": { "title": "$:/language/Date/DaySuffix/29", "text": "" }, "$:/language/Date/DaySuffix/30": { "title": "$:/language/Date/DaySuffix/30", "text": "" }, "$:/language/Date/DaySuffix/31": { "title": "$:/language/Date/DaySuffix/31", "text": "" }, "$:/language/Date/Long/Day/0": { "title": "$:/language/Date/Long/Day/0", "text": "Dimanche" }, "$:/language/Date/Long/Day/1": { "title": "$:/language/Date/Long/Day/1", "text": "Lundi" }, "$:/language/Date/Long/Day/2": { "title": "$:/language/Date/Long/Day/2", "text": "Mardi" }, "$:/language/Date/Long/Day/3": { "title": "$:/language/Date/Long/Day/3", "text": "Mercredi" }, "$:/language/Date/Long/Day/4": { "title": "$:/language/Date/Long/Day/4", "text": "Jeudi" }, "$:/language/Date/Long/Day/5": { "title": "$:/language/Date/Long/Day/5", "text": "Vendredi" }, "$:/language/Date/Long/Day/6": { "title": "$:/language/Date/Long/Day/6", "text": "Samedi" }, "$:/language/Date/Long/Month/1": { "title": "$:/language/Date/Long/Month/1", "text": "janvier" }, "$:/language/Date/Long/Month/2": { "title": "$:/language/Date/Long/Month/2", "text": "février" }, "$:/language/Date/Long/Month/3": { "title": "$:/language/Date/Long/Month/3", "text": "mars" }, "$:/language/Date/Long/Month/4": { "title": "$:/language/Date/Long/Month/4", "text": "avril" }, "$:/language/Date/Long/Month/5": { "title": "$:/language/Date/Long/Month/5", "text": "mai" }, "$:/language/Date/Long/Month/6": { "title": "$:/language/Date/Long/Month/6", "text": "juin" }, "$:/language/Date/Long/Month/7": { "title": "$:/language/Date/Long/Month/7", "text": "juillet" }, "$:/language/Date/Long/Month/8": { "title": "$:/language/Date/Long/Month/8", "text": "août" }, "$:/language/Date/Long/Month/9": { "title": "$:/language/Date/Long/Month/9", "text": "septembre" }, "$:/language/Date/Long/Month/10": { "title": "$:/language/Date/Long/Month/10", "text": "octobre" }, "$:/language/Date/Long/Month/11": { "title": "$:/language/Date/Long/Month/11", "text": "novembre" }, "$:/language/Date/Long/Month/12": { "title": "$:/language/Date/Long/Month/12", "text": "décembre" }, "$:/language/Date/Period/am": { "title": "$:/language/Date/Period/am", "text": "am" }, "$:/language/Date/Period/pm": { "title": "$:/language/Date/Period/pm", "text": "pm" }, "$:/language/Date/Short/Day/0": { "title": "$:/language/Date/Short/Day/0", "text": "Di" }, "$:/language/Date/Short/Day/1": { "title": "$:/language/Date/Short/Day/1", "text": "Lu" }, "$:/language/Date/Short/Day/2": { "title": "$:/language/Date/Short/Day/2", "text": "Ma" }, "$:/language/Date/Short/Day/3": { "title": "$:/language/Date/Short/Day/3", "text": "Me" }, "$:/language/Date/Short/Day/4": { "title": "$:/language/Date/Short/Day/4", "text": "Je" }, "$:/language/Date/Short/Day/5": { "title": "$:/language/Date/Short/Day/5", "text": "Ve" }, "$:/language/Date/Short/Day/6": { "title": "$:/language/Date/Short/Day/6", "text": "Sa" }, "$:/language/Date/Short/Month/1": { "title": "$:/language/Date/Short/Month/1", "text": "Jan" }, "$:/language/Date/Short/Month/2": { "title": "$:/language/Date/Short/Month/2", "text": "Fév" }, "$:/language/Date/Short/Month/3": { "title": "$:/language/Date/Short/Month/3", "text": "Mar" }, "$:/language/Date/Short/Month/4": { "title": "$:/language/Date/Short/Month/4", "text": "Avr" }, "$:/language/Date/Short/Month/5": { "title": "$:/language/Date/Short/Month/5", "text": "Mai" }, "$:/language/Date/Short/Month/6": { "title": "$:/language/Date/Short/Month/6", "text": "Jun" }, "$:/language/Date/Short/Month/7": { "title": "$:/language/Date/Short/Month/7", "text": "Jul" }, "$:/language/Date/Short/Month/8": { "title": "$:/language/Date/Short/Month/8", "text": "Aoû" }, "$:/language/Date/Short/Month/9": { "title": "$:/language/Date/Short/Month/9", "text": "Sep" }, "$:/language/Date/Short/Month/10": { "title": "$:/language/Date/Short/Month/10", "text": "Oct" }, "$:/language/Date/Short/Month/11": { "title": "$:/language/Date/Short/Month/11", "text": "Nov" }, "$:/language/Date/Short/Month/12": { "title": "$:/language/Date/Short/Month/12", "text": "Déc" }, "$:/language/RelativeDate/Future/Days": { "title": "$:/language/RelativeDate/Future/Days", "text": "dans <<period>> jours" }, "$:/language/RelativeDate/Future/Hours": { "title": "$:/language/RelativeDate/Future/Hours", "text": "dans <<period>> heures" }, "$:/language/RelativeDate/Future/Minutes": { "title": "$:/language/RelativeDate/Future/Minutes", "text": "dans <<period>> minutes" }, "$:/language/RelativeDate/Future/Months": { "title": "$:/language/RelativeDate/Future/Months", "text": "dans <<period>> mois" }, "$:/language/RelativeDate/Future/Second": { "title": "$:/language/RelativeDate/Future/Second", "text": "dans 1 seconde" }, "$:/language/RelativeDate/Future/Seconds": { "title": "$:/language/RelativeDate/Future/Seconds", "text": "dans <<period>> secondes" }, "$:/language/RelativeDate/Future/Years": { "title": "$:/language/RelativeDate/Future/Years", "text": "dans <<period>> ans" }, "$:/language/RelativeDate/Past/Days": { "title": "$:/language/RelativeDate/Past/Days", "text": "il y a <<period>> jours" }, "$:/language/RelativeDate/Past/Hours": { "title": "$:/language/RelativeDate/Past/Hours", "text": "il y a <<period>> heures" }, "$:/language/RelativeDate/Past/Minutes": { "title": "$:/language/RelativeDate/Past/Minutes", "text": "il y a <<period>> minutes" }, "$:/language/RelativeDate/Past/Months": { "title": "$:/language/RelativeDate/Past/Months", "text": "il y a <<period>> mois" }, "$:/language/RelativeDate/Past/Second": { "title": "$:/language/RelativeDate/Past/Second", "text": "il y a 1 seconde" }, "$:/language/RelativeDate/Past/Seconds": { "title": "$:/language/RelativeDate/Past/Seconds", "text": "il y a <<period>> secondes" }, "$:/language/RelativeDate/Past/Years": { "title": "$:/language/RelativeDate/Past/Years", "text": "il y a <<period>> ans" }, "$:/language/Docs/ModuleTypes/allfilteroperator": { "title": "$:/language/Docs/ModuleTypes/allfilteroperator", "text": "Un sous-opérateur pour l'opérateur de filtre ''all''." }, "$:/language/Docs/ModuleTypes/animation": { "title": "$:/language/Docs/ModuleTypes/animation", "text": "Animations pouvant être utilisées par le RevealWidget." }, "$:/language/Docs/ModuleTypes/authenticator": { "title": "$:/language/Docs/ModuleTypes/authenticator", "text": "Définit comment les requêtes sont authentifiées par le serveur HTTP intégré." }, "$:/language/Docs/ModuleTypes/bitmapeditoroperation": { "title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation", "text": "Une opération intégrée à la barre d'outils de l'éditeur de bitmap." }, "$:/language/Docs/ModuleTypes/command": { "title": "$:/language/Docs/ModuleTypes/command", "text": "Commandes qui peuvent être exécutées en mode Node.js." }, "$:/language/Docs/ModuleTypes/config": { "title": "$:/language/Docs/ModuleTypes/config", "text": "Données à inclure dans `$tw.config`." }, "$:/language/Docs/ModuleTypes/filteroperator": { "title": "$:/language/Docs/ModuleTypes/filteroperator", "text": "Méthodes d'opérateurs pour les filtres." }, "$:/language/Docs/ModuleTypes/global": { "title": "$:/language/Docs/ModuleTypes/global", "text": "Données globales à inclure dans `$tw`." }, "$:/language/Docs/ModuleTypes/info": { "title": "$:/language/Docs/ModuleTypes/info", "text": "Publie des informations système via le pseudo-plugin [[$:/temp/info-plugin]]." }, "$:/language/Docs/ModuleTypes/isfilteroperator": { "title": "$:/language/Docs/ModuleTypes/isfilteroperator", "text": "Opérandes pour l'opérateur de filtre ''is''." }, "$:/language/Docs/ModuleTypes/library": { "title": "$:/language/Docs/ModuleTypes/library", "text": "Module générique pour les modules ~JavaScript de portée générale." }, "$:/language/Docs/ModuleTypes/macro": { "title": "$:/language/Docs/ModuleTypes/macro", "text": "Définitions de macros ~JavaScript." }, "$:/language/Docs/ModuleTypes/parser": { "title": "$:/language/Docs/ModuleTypes/parser", "text": "Parseurs pour divers types de contenu." }, "$:/language/Docs/ModuleTypes/route": { "title": "$:/language/Docs/ModuleTypes/route", "text": "Définit comment chaque motif d'URL est géré par le serveur HTTP intégré." }, "$:/language/Docs/ModuleTypes/saver": { "title": "$:/language/Docs/ModuleTypes/saver", "text": "Les tiddlers d'enregistrement contiennent les différentes méthodes pour enregistrer des fichiers à partir du navigateur." }, "$:/language/Docs/ModuleTypes/startup": { "title": "$:/language/Docs/ModuleTypes/startup", "text": "Fonctions de démarrage." }, "$:/language/Docs/ModuleTypes/storyview": { "title": "$:/language/Docs/ModuleTypes/storyview", "text": "Différents points de vue sur le déroulé, qui personnalisent l'animation et le comportement des widgets de liste." }, "$:/language/Docs/ModuleTypes/texteditoroperation": { "title": "$:/language/Docs/ModuleTypes/texteditoroperation", "text": "Une opération intégrée à la barre d'outils de l'éditeur de texte." }, "$:/language/Docs/ModuleTypes/tiddlerdeserializer": { "title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer", "text": "Convertit différents types de contenu en tiddlers." }, "$:/language/Docs/ModuleTypes/tiddlerfield": { "title": "$:/language/Docs/ModuleTypes/tiddlerfield", "text": "Définit le comportement d'un champ de tiddler." }, "$:/language/Docs/ModuleTypes/tiddlermethod": { "title": "$:/language/Docs/ModuleTypes/tiddlermethod", "text": "Ajoute des méthodes au prototype `$tw.Tiddler`." }, "$:/language/Docs/ModuleTypes/upgrader": { "title": "$:/language/Docs/ModuleTypes/upgrader", "text": "Applique une procédure de mise à jour aux tiddlers lors de l'opération de mise à jour/importation." }, "$:/language/Docs/ModuleTypes/utils": { "title": "$:/language/Docs/ModuleTypes/utils", "text": "Ajoute des méthodes dans `$tw.utils`." }, "$:/language/Docs/ModuleTypes/utils-node": { "title": "$:/language/Docs/ModuleTypes/utils-node", "text": "Ajoute des méthodes spécifiques à Node.js dans `$tw.utils`." }, "$:/language/Docs/ModuleTypes/widget": { "title": "$:/language/Docs/ModuleTypes/widget", "text": "Les widgets encapsulent les méthodes de rendu et de rafraichissement du DOM." }, "$:/language/Docs/ModuleTypes/wikimethod": { "title": "$:/language/Docs/ModuleTypes/wikimethod", "text": "Ajoute des méthodes à `$tw.Wiki`." }, "$:/language/Docs/ModuleTypes/wikirule": { "title": "$:/language/Docs/ModuleTypes/wikirule", "text": "Règles d'analyse pour le parseur WikiText principal." }, "$:/language/Docs/PaletteColours/alert-background": { "title": "$:/language/Docs/PaletteColours/alert-background", "text": "Fond pour les alertes" }, "$:/language/Docs/PaletteColours/alert-border": { "title": "$:/language/Docs/PaletteColours/alert-border", "text": "Bordure pour les alertes" }, "$:/language/Docs/PaletteColours/alert-highlight": { "title": "$:/language/Docs/PaletteColours/alert-highlight", "text": "Surlignage pour les alertes" }, "$:/language/Docs/PaletteColours/alert-muted-foreground": { "title": "$:/language/Docs/PaletteColours/alert-muted-foreground", "text": "Fond atténué pour les alertes" }, "$:/language/Docs/PaletteColours/background": { "title": "$:/language/Docs/PaletteColours/background", "text": "Couleur de fond générale" }, "$:/language/Docs/PaletteColours/blockquote-bar": { "title": "$:/language/Docs/PaletteColours/blockquote-bar", "text": "Barre de citation" }, "$:/language/Docs/PaletteColours/button-background": { "title": "$:/language/Docs/PaletteColours/button-background", "text": "Fond du bouton par défaut" }, "$:/language/Docs/PaletteColours/button-border": { "title": "$:/language/Docs/PaletteColours/button-border", "text": "Bordure du bouton par défaut" }, "$:/language/Docs/PaletteColours/button-foreground": { "title": "$:/language/Docs/PaletteColours/button-foreground", "text": "Premier plan du bouton par défaut" }, "$:/language/Docs/PaletteColours/code-background": { "title": "$:/language/Docs/PaletteColours/code-background", "text": "Fond pour le code" }, "$:/language/Docs/PaletteColours/code-border": { "title": "$:/language/Docs/PaletteColours/code-border", "text": "Bordure pour le code" }, "$:/language/Docs/PaletteColours/code-foreground": { "title": "$:/language/Docs/PaletteColours/code-foreground", "text": "Premier plan pour le code" }, "$:/language/Docs/PaletteColours/dirty-indicator": { "title": "$:/language/Docs/PaletteColours/dirty-indicator", "text": "Indicateur de modifications non sauvegardées" }, "$:/language/Docs/PaletteColours/download-background": { "title": "$:/language/Docs/PaletteColours/download-background", "text": "Fond pour le bouton de téléchargement" }, "$:/language/Docs/PaletteColours/download-foreground": { "title": "$:/language/Docs/PaletteColours/download-foreground", "text": "Premier plan pour le bouton de téléchargement" }, "$:/language/Docs/PaletteColours/dragger-background": { "title": "$:/language/Docs/PaletteColours/dragger-background", "text": "Fond pour le glissé-déposé" }, "$:/language/Docs/PaletteColours/dragger-foreground": { "title": "$:/language/Docs/PaletteColours/dragger-foreground", "text": "Premier plan pour le glissé-déposé" }, "$:/language/Docs/PaletteColours/dropdown-background": { "title": "$:/language/Docs/PaletteColours/dropdown-background", "text": "Fond des menus déroulants" }, "$:/language/Docs/PaletteColours/dropdown-border": { "title": "$:/language/Docs/PaletteColours/dropdown-border", "text": "Bordure des menus déroulants" }, "$:/language/Docs/PaletteColours/dropdown-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected", "text": "Fond pour les onglets à menu déroulant sélectionnés" }, "$:/language/Docs/PaletteColours/dropdown-tab-background": { "title": "$:/language/Docs/PaletteColours/dropdown-tab-background", "text": "Fond pour les onglets à menu déroulant" }, "$:/language/Docs/PaletteColours/dropzone-background": { "title": "$:/language/Docs/PaletteColours/dropzone-background", "text": "Fond de la zone « déposé »" }, "$:/language/Docs/PaletteColours/external-link-background-hover": { "title": "$:/language/Docs/PaletteColours/external-link-background-hover", "text": "Fond lors du passage de la souris sur un lien externe" }, "$:/language/Docs/PaletteColours/external-link-background-visited": { "title": "$:/language/Docs/PaletteColours/external-link-background-visited", "text": "Fond pour un lien externe déjà visité" }, "$:/language/Docs/PaletteColours/external-link-background": { "title": "$:/language/Docs/PaletteColours/external-link-background", "text": "Fond pour un lien externe" }, "$:/language/Docs/PaletteColours/external-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-hover", "text": "Premier plan lors du passage de la souris sur un lien externe" }, "$:/language/Docs/PaletteColours/external-link-foreground-visited": { "title": "$:/language/Docs/PaletteColours/external-link-foreground-visited", "text": "Premier plan pour un lien externe déjà visité" }, "$:/language/Docs/PaletteColours/external-link-foreground": { "title": "$:/language/Docs/PaletteColours/external-link-foreground", "text": "Premier plan pour un lien externe" }, "$:/language/Docs/PaletteColours/foreground": { "title": "$:/language/Docs/PaletteColours/foreground", "text": "Premier plan" }, "$:/language/Docs/PaletteColours/message-background": { "title": "$:/language/Docs/PaletteColours/message-background", "text": "Fond pour les messages" }, "$:/language/Docs/PaletteColours/message-border": { "title": "$:/language/Docs/PaletteColours/message-border", "text": "Bordure pour les messages" }, "$:/language/Docs/PaletteColours/message-foreground": { "title": "$:/language/Docs/PaletteColours/message-foreground", "text": "Premier plan pour les messages" }, "$:/language/Docs/PaletteColours/modal-backdrop": { "title": "$:/language/Docs/PaletteColours/modal-backdrop", "text": "Arrière-plan pour les fenêtres modales" }, "$:/language/Docs/PaletteColours/modal-background": { "title": "$:/language/Docs/PaletteColours/modal-background", "text": "Fond pour les fenêtres modales" }, "$:/language/Docs/PaletteColours/modal-border": { "title": "$:/language/Docs/PaletteColours/modal-border", "text": "Bordure pour les fenêtres modales" }, "$:/language/Docs/PaletteColours/modal-footer-background": { "title": "$:/language/Docs/PaletteColours/modal-footer-background", "text": "Fond pour les pieds de page des fenêtres modales" }, "$:/language/Docs/PaletteColours/modal-footer-border": { "title": "$:/language/Docs/PaletteColours/modal-footer-border", "text": "Bordure pour les pieds de page des fenêtres modales" }, "$:/language/Docs/PaletteColours/modal-header-border": { "title": "$:/language/Docs/PaletteColours/modal-header-border", "text": "Bordure pour les en-tête des fenêtres modales" }, "$:/language/Docs/PaletteColours/muted-foreground": { "title": "$:/language/Docs/PaletteColours/muted-foreground", "text": "Premier plan atténué" }, "$:/language/Docs/PaletteColours/notification-background": { "title": "$:/language/Docs/PaletteColours/notification-background", "text": "Fond pour les notifications" }, "$:/language/Docs/PaletteColours/notification-border": { "title": "$:/language/Docs/PaletteColours/notification-border", "text": "Bordure pour les notifications" }, "$:/language/Docs/PaletteColours/page-background": { "title": "$:/language/Docs/PaletteColours/page-background", "text": "Fond de page" }, "$:/language/Docs/PaletteColours/pre-background": { "title": "$:/language/Docs/PaletteColours/pre-background", "text": "Fond pour le code préformaté" }, "$:/language/Docs/PaletteColours/pre-border": { "title": "$:/language/Docs/PaletteColours/pre-border", "text": "Bordure pour le code préformaté" }, "$:/language/Docs/PaletteColours/primary": { "title": "$:/language/Docs/PaletteColours/primary", "text": "Couleur principale" }, "$:/language/Docs/PaletteColours/select-tag-background": { "title": "$:/language/Docs/PaletteColours/select-tag-background", "text": "Arrière-plan de l'élément `<select>`" }, "$:/language/Docs/PaletteColours/select-tag-foreground": { "title": "$:/language/Docs/PaletteColours/select-tag-foreground", "text": "Texte de l'élément `<select>`" }, "$:/language/Docs/PaletteColours/sidebar-button-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-button-foreground", "text": "Premier plan des boutons de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover", "text": "Premier plan au passage de la souris sur les boutons de commande de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-controls-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground", "text": "Premier plan sur les boutons de commande de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-foreground-shadow": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow", "text": "Ombre du premier plan de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-foreground", "text": "Premier plan de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover", "text": "Premier plan atténué au passage de la souris sur la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-muted-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground", "text": "Premier plan atténué de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-background-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected", "text": "Fond pour les onglets sélectionnés de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-background": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-background", "text": "Fond pour les onglets de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-border-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected", "text": "Bordure pour les onglets sélectionnés de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-border": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-border", "text": "Bordure pour les onglets de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-divider": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-divider", "text": "Séparateur d'onglets pour la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected", "text": "Premier plan pour les onglets sélectionnés de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tab-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground", "text": "Premier plan pour les onglets de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover", "text": "Premier plan au passage de la souris sur le lien d'un tiddler de la barre latérale" }, "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground", "text": "Premier plan du lien d'un tiddler de la barre latérale" }, "$:/language/Docs/PaletteColours/site-title-foreground": { "title": "$:/language/Docs/PaletteColours/site-title-foreground", "text": "Premier plan pour le titre du wiki (SiteTitle)" }, "$:/language/Docs/PaletteColours/static-alert-foreground": { "title": "$:/language/Docs/PaletteColours/static-alert-foreground", "text": "Premier plan pour les alertes statiques" }, "$:/language/Docs/PaletteColours/tab-background-selected": { "title": "$:/language/Docs/PaletteColours/tab-background-selected", "text": "Fond pour les onglets sélectionnés" }, "$:/language/Docs/PaletteColours/tab-background": { "title": "$:/language/Docs/PaletteColours/tab-background", "text": "Fond pour les onglets" }, "$:/language/Docs/PaletteColours/tab-border-selected": { "title": "$:/language/Docs/PaletteColours/tab-border-selected", "text": "Bordure pour les onglets sélectionnés" }, "$:/language/Docs/PaletteColours/tab-border": { "title": "$:/language/Docs/PaletteColours/tab-border", "text": "Bordure pour les onglets" }, "$:/language/Docs/PaletteColours/tab-divider": { "title": "$:/language/Docs/PaletteColours/tab-divider", "text": "Séparateur d'onglets" }, "$:/language/Docs/PaletteColours/tab-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tab-foreground-selected", "text": "Premier plan pour les onglets sélectionnés" }, "$:/language/Docs/PaletteColours/tab-foreground": { "title": "$:/language/Docs/PaletteColours/tab-foreground", "text": "Premier plan pour les onglets" }, "$:/language/Docs/PaletteColours/table-border": { "title": "$:/language/Docs/PaletteColours/table-border", "text": "Bordure des tableaux" }, "$:/language/Docs/PaletteColours/table-footer-background": { "title": "$:/language/Docs/PaletteColours/table-footer-background", "text": "Fond pour les bas de tableau" }, "$:/language/Docs/PaletteColours/table-header-background": { "title": "$:/language/Docs/PaletteColours/table-header-background", "text": "Fond pour les en-têtes de tableau" }, "$:/language/Docs/PaletteColours/tag-background": { "title": "$:/language/Docs/PaletteColours/tag-background", "text": "Fond pour les tags" }, "$:/language/Docs/PaletteColours/tag-foreground": { "title": "$:/language/Docs/PaletteColours/tag-foreground", "text": "Premier plan pour les tags" }, "$:/language/Docs/PaletteColours/tiddler-background": { "title": "$:/language/Docs/PaletteColours/tiddler-background", "text": "Fond pour les tiddlers" }, "$:/language/Docs/PaletteColours/tiddler-border": { "title": "$:/language/Docs/PaletteColours/tiddler-border", "text": "Bordure pour les tiddlers" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover", "text": "Premier plan au passage de la souris sur les boutons de commande d'un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected", "text": "Premier plan pour le bouton de commande sélectionné d'un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-controls-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground", "text": "Premier plan pour les boutons de commande d'un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-editor-background": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-background", "text": "Fond pour l'éditeur de tiddlers" }, "$:/language/Docs/PaletteColours/tiddler-editor-border-image": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image", "text": "Image de bordure pour l'éditeur de tiddlers" }, "$:/language/Docs/PaletteColours/tiddler-editor-border": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-border", "text": "Bordure de l'éditeur de tiddlers" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-even": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even", "text": "Fond de l'éditeur de tiddlers pour les champs pairs" }, "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": { "title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd", "text": "Fond de l'éditeur de tiddlers pour les champs impairs" }, "$:/language/Docs/PaletteColours/tiddler-info-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-background", "text": "Fond du panneau d'information d'un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-info-border": { "title": "$:/language/Docs/PaletteColours/tiddler-info-border", "text": "Bordure du panneau d'information d'un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-info-tab-background": { "title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background", "text": "Fond pour les onglets du panneau d'information d'un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-link-background": { "title": "$:/language/Docs/PaletteColours/tiddler-link-background", "text": "Fond pour les liens vers un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-link-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-link-foreground", "text": "Premier plan pour les liens vers un tiddler" }, "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground", "text": "Premier plan du sous-titre du wiki" }, "$:/language/Docs/PaletteColours/tiddler-title-foreground": { "title": "$:/language/Docs/PaletteColours/tiddler-title-foreground", "text": "Premier plan du titre du wiki" }, "$:/language/Docs/PaletteColours/toolbar-new-button": { "title": "$:/language/Docs/PaletteColours/toolbar-new-button", "text": "Premier plan pour le bouton 'Nouveau tiddler' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-options-button": { "title": "$:/language/Docs/PaletteColours/toolbar-options-button", "text": "Premier plan pour le bouton 'Options' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-save-button": { "title": "$:/language/Docs/PaletteColours/toolbar-save-button", "text": "Premier plan pour le bouton 'Enregistrer' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-info-button": { "title": "$:/language/Docs/PaletteColours/toolbar-info-button", "text": "Premier plan pour le bouton 'Info' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-edit-button": { "title": "$:/language/Docs/PaletteColours/toolbar-edit-button", "text": "Premier plan pour le bouton 'Éditer' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-close-button": { "title": "$:/language/Docs/PaletteColours/toolbar-close-button", "text": "Premier plan pour le bouton 'Fermer' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-delete-button": { "title": "$:/language/Docs/PaletteColours/toolbar-delete-button", "text": "Premier plan pour le bouton 'Supprimer' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-cancel-button": { "title": "$:/language/Docs/PaletteColours/toolbar-cancel-button", "text": "Premier plan pour le bouton 'Annuler' de la barre latérale" }, "$:/language/Docs/PaletteColours/toolbar-done-button": { "title": "$:/language/Docs/PaletteColours/toolbar-done-button", "text": "Premier plan pour le bouton 'Terminé' de la barre latérale" }, "$:/language/Docs/PaletteColours/untagged-background": { "title": "$:/language/Docs/PaletteColours/untagged-background", "text": "Fond pour la pastille « sans-étiquette »" }, "$:/language/Docs/PaletteColours/very-muted-foreground": { "title": "$:/language/Docs/PaletteColours/very-muted-foreground", "text": "Premier plan très atténué" }, "$:/language/EditTemplate/Body/External/Hint": { "title": "$:/language/EditTemplate/Body/External/Hint", "text": "Ce tiddler affiche du contenu situé en dehors du fichier TiddlyWiki principal. Vous pouvez éditer les tags et les champs mais pas directement le contenu lui-même" }, "$:/language/EditTemplate/Body/Placeholder": { "title": "$:/language/EditTemplate/Body/Placeholder", "text": "Entrez le texte ici" }, "$:/language/EditTemplate/Body/Preview/Type/Output": { "title": "$:/language/EditTemplate/Body/Preview/Type/Output", "text": "sortie" }, "$:/language/EditTemplate/Field/Remove/Caption": { "title": "$:/language/EditTemplate/Field/Remove/Caption", "text": "supprimer le champ" }, "$:/language/EditTemplate/Field/Remove/Hint": { "title": "$:/language/EditTemplate/Field/Remove/Hint", "text": "Supprime le champ" }, "$:/language/EditTemplate/Fields/Add/Button": { "title": "$:/language/EditTemplate/Fields/Add/Button", "text": "ajouter" }, "$:/language/EditTemplate/Fields/Add/Name/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder", "text": "nom du champ" }, "$:/language/EditTemplate/Fields/Add/Prompt": { "title": "$:/language/EditTemplate/Fields/Add/Prompt", "text": "Ajouter un nouveau champ :" }, "$:/language/EditTemplate/Fields/Add/Value/Placeholder": { "title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder", "text": "valeur du champ" }, "$:/language/EditTemplate/Fields/Add/Dropdown/System": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/System", "text": "Champs système" }, "$:/language/EditTemplate/Fields/Add/Dropdown/User": { "title": "$:/language/EditTemplate/Fields/Add/Dropdown/User", "text": "Champs utilisateur" }, "$:/language/EditTemplate/Shadow/OverriddenWarning": { "title": "$:/language/EditTemplate/Shadow/OverriddenWarning", "text": "Ce tiddler est une version modifiée d'un tiddler « shadow ». Pour revenir à la version par défaut du plugin <<pluginLink>>, il vous suffit de supprimer ce tiddler." }, "$:/language/EditTemplate/Shadow/Warning": { "title": "$:/language/EditTemplate/Shadow/Warning", "text": "Ceci est un tiddler « shadow ». Toute modification supplantera la version issue du plugin <<pluginLink>>" }, "$:/language/EditTemplate/Tags/Add/Button": { "title": "$:/language/EditTemplate/Tags/Add/Button", "text": "ajouter" }, "$:/language/EditTemplate/Tags/Add/Placeholder": { "title": "$:/language/EditTemplate/Tags/Add/Placeholder", "text": "nom du tag" }, "$:/language/EditTemplate/Tags/Dropdown/Caption": { "title": "$:/language/EditTemplate/Tags/Dropdown/Caption", "text": "liste des tags" }, "$:/language/EditTemplate/Tags/Dropdown/Hint": { "title": "$:/language/EditTemplate/Tags/Dropdown/Hint", "text": "Montre la liste des tags" }, "$:/language/EditTemplate/Title/BadCharacterWarning": { "title": "$:/language/EditTemplate/Title/BadCharacterWarning", "text": "Attention : il est préférable d'éviter l'usage des caractères <<bad-chars>> dans les titres des tiddlers" }, "$:/language/EditTemplate/Title/Exists/Prompt": { "title": "$:/language/EditTemplate/Title/Exists/Prompt", "text": "Le tiddler cible existe déjà" }, "$:/language/EditTemplate/Title/Relink/Prompt": { "title": "$:/language/EditTemplate/Title/Relink/Prompt", "text": "Changer ''<$text text=<<fromTitle>>/>'' en ''<$text text=<<toTitle>>/>'' dans les //tags// et les champs //list// des autres tiddlers" }, "$:/language/EditTemplate/Title/References/Prompt": { "title": "$:/language/EditTemplate/Title/References/Prompt", "text": "Les références suivantes à ce tiddler ne seront pas mises à jour automatiquement :" }, "$:/language/EditTemplate/Type/Dropdown/Caption": { "title": "$:/language/EditTemplate/Type/Dropdown/Caption", "text": "liste des types de contenu" }, "$:/language/EditTemplate/Type/Dropdown/Hint": { "title": "$:/language/EditTemplate/Type/Dropdown/Hint", "text": "Montre la liste des types de contenu" }, "$:/language/EditTemplate/Type/Delete/Caption": { "title": "$:/language/EditTemplate/Type/Delete/Caption", "text": "supprimer le type de contenu" }, "$:/language/EditTemplate/Type/Delete/Hint": { "title": "$:/language/EditTemplate/Type/Delete/Hint", "text": "Supprime le type de contenu" }, "$:/language/EditTemplate/Type/Placeholder": { "title": "$:/language/EditTemplate/Type/Placeholder", "text": "type du contenu" }, "$:/language/EditTemplate/Type/Prompt": { "title": "$:/language/EditTemplate/Type/Prompt", "text": "Type :" }, "$:/language/Exporters/StaticRiver": { "title": "$:/language/Exporters/StaticRiver", "text": "HTML Statique" }, "$:/language/Exporters/JsonFile": { "title": "$:/language/Exporters/JsonFile", "text": "Fichier JSON" }, "$:/language/Exporters/CsvFile": { "title": "$:/language/Exporters/CsvFile", "text": "Fichier CSV" }, "$:/language/Exporters/TidFile": { "title": "$:/language/Exporters/TidFile", "text": "Fichier \".tid\"" }, "$:/language/Docs/Fields/_canonical_uri": { "title": "$:/language/Docs/Fields/_canonical_uri", "text": "L'URI complet vers le contenu externe d'un tiddler image" }, "$:/language/Docs/Fields/bag": { "title": "$:/language/Docs/Fields/bag", "text": "Nom du <q>bag</q> d'où provient le tiddler" }, "$:/language/Docs/Fields/caption": { "title": "$:/language/Docs/Fields/caption", "text": "Texte à afficher sur un onglet ou un bouton" }, "$:/language/Docs/Fields/color": { "title": "$:/language/Docs/Fields/color", "text": "Couleur CSS associée au tiddler" }, "$:/language/Docs/Fields/component": { "title": "$:/language/Docs/Fields/component", "text": "Nom du composant responsable pour un [[tiddler d'alerte|AlertMechanism]]" }, "$:/language/Docs/Fields/current-tiddler": { "title": "$:/language/Docs/Fields/current-tiddler", "text": "Sert à cacher le tiddler situé au début de l'[[historique|HistoryMechanism]]" }, "$:/language/Docs/Fields/created": { "title": "$:/language/Docs/Fields/created", "text": "Date de création du tiddler" }, "$:/language/Docs/Fields/creator": { "title": "$:/language/Docs/Fields/creator", "text": "Nom de l'utilisateur qui a créé le tiddler" }, "$:/language/Docs/Fields/dependents": { "title": "$:/language/Docs/Fields/dependents", "text": "Quand le tiddler est un plugin, énumère les titres des plugins dépendants" }, "$:/language/Docs/Fields/description": { "title": "$:/language/Docs/Fields/description", "text": "Texte de description d'un plugin, ou d'une boîte de dialogue" }, "$:/language/Docs/Fields/draft.of": { "title": "$:/language/Docs/Fields/draft.of", "text": "Pour les tiddlers en cours d'édition, contient le titre du tiddler initial" }, "$:/language/Docs/Fields/draft.title": { "title": "$:/language/Docs/Fields/draft.title", "text": "Pour les tiddlers en cours d'édition, contient le nouveau titre prévu pour le tiddler" }, "$:/language/Docs/Fields/footer": { "title": "$:/language/Docs/Fields/footer", "text": "Texte de bas de page dans le cas d'un wizard" }, "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against": { "title": "$:/language/Docs/Fields/hack-to-give-us-something-to-compare-against", "text": "Champ de stockage temporaire utilisé dans [[$:/core/templates/static.content]]" }, "$:/language/Docs/Fields/icon": { "title": "$:/language/Docs/Fields/icon", "text": "Titre du tiddler contenant l'icone associée à un tiddler" }, "$:/language/Docs/Fields/library": { "title": "$:/language/Docs/Fields/library", "text": "Avec une valeur à <q>yes</q>, indique qu'un tiddler doit être sauvegardé comme bibliothèque JavaScript" }, "$:/language/Docs/Fields/list": { "title": "$:/language/Docs/Fields/list", "text": "Liste ordonnée de titres de tiddlers associée à un tiddler" }, "$:/language/Docs/Fields/list-before": { "title": "$:/language/Docs/Fields/list-before", "text": "Si présent, contient le titre du tiddler avant lequel ce tiddler doit être ajouté dans la liste ordonnée des titres de tiddlers. Si ce champ est présent mais vide, le titre doit être ajouté au début de la liste." }, "$:/language/Docs/Fields/list-after": { "title": "$:/language/Docs/Fields/list-after", "text": "Si présent, contient le titre du tiddler après lequel ce tiddler doit être ajouté dans la liste ordonnée des titres de tiddlers." }, "$:/language/Docs/Fields/modified": { "title": "$:/language/Docs/Fields/modified", "text": "Date et heure à laquelle le tiddler a été modifié pour la dernière fois" }, "$:/language/Docs/Fields/modifier": { "title": "$:/language/Docs/Fields/modifier", "text": "Titre du tiddler associé à l'utilisateur qui a modifié ce tiddler pour la dernière fois" }, "$:/language/Docs/Fields/name": { "title": "$:/language/Docs/Fields/name", "text": "Dans le cas d'un tiddler provenant d'un plugin, le nom de la personne associée à ce tiddler" }, "$:/language/Docs/Fields/plugin-priority": { "title": "$:/language/Docs/Fields/plugin-priority", "text": "Dans le cas d'un tiddler provenant d'un plugin, un nombre indiquant la priorité de ce tiddler" }, "$:/language/Docs/Fields/plugin-type": { "title": "$:/language/Docs/Fields/plugin-type", "text": "Dans le cas d'un tiddler provenant d'un plugin, le type du plugin" }, "$:/language/Docs/Fields/revision": { "title": "$:/language/Docs/Fields/revision", "text": "Numéro de révision du tiddler présent sur le serveur" }, "$:/language/Docs/Fields/released": { "title": "$:/language/Docs/Fields/released", "text": "Date de version d'un TiddlyWiki" }, "$:/language/Docs/Fields/source": { "title": "$:/language/Docs/Fields/source", "text": "URL source associée à ce tiddler" }, "$:/language/Docs/Fields/subtitle": { "title": "$:/language/Docs/Fields/subtitle", "text": "Texte du sous-titre pour un wizard" }, "$:/language/Docs/Fields/tags": { "title": "$:/language/Docs/Fields/tags", "text": "Liste des tags associés à un tiddler" }, "$:/language/Docs/Fields/text": { "title": "$:/language/Docs/Fields/text", "text": "Texte du corps de ce tiddler" }, "$:/language/Docs/Fields/title": { "title": "$:/language/Docs/Fields/title", "text": "Nom unique du tiddler" }, "$:/language/Docs/Fields/type": { "title": "$:/language/Docs/Fields/type", "text": "Type de contenu du tiddler" }, "$:/language/Docs/Fields/version": { "title": "$:/language/Docs/Fields/version", "text": "S'il s'agit d'un plugin, l'information de version" }, "$:/language/Filters/AllTiddlers": { "title": "$:/language/Filters/AllTiddlers", "text": "Tous les tiddlers sauf les tiddlers système" }, "$:/language/Filters/RecentSystemTiddlers": { "title": "$:/language/Filters/RecentSystemTiddlers", "text": "Les tiddlers modifiés récemment, y compris les tiddlers système" }, "$:/language/Filters/RecentTiddlers": { "title": "$:/language/Filters/RecentTiddlers", "text": "Les tiddlers modifiés récemment" }, "$:/language/Filters/AllTags": { "title": "$:/language/Filters/AllTags", "text": "Tous les tags sauf les tags système" }, "$:/language/Filters/Missing": { "title": "$:/language/Filters/Missing", "text": "Les tiddlers manquants" }, "$:/language/Filters/Drafts": { "title": "$:/language/Filters/Drafts", "text": "Les tiddlers en cours d'édition" }, "$:/language/Filters/Orphans": { "title": "$:/language/Filters/Orphans", "text": "Les tiddlers orphelins" }, "$:/language/Filters/SystemTiddlers": { "title": "$:/language/Filters/SystemTiddlers", "text": "Les tiddlers système" }, "$:/language/Filters/ShadowTiddlers": { "title": "$:/language/Filters/ShadowTiddlers", "text": "Les tiddlers shadow" }, "$:/language/Filters/StoryList": { "title": "$:/language/Filters/StoryList", "text": "Les tiddlers du déroulé, hormis $:/AdvancedSearch" }, "$:/language/Filters/OverriddenShadowTiddlers": { "title": "$:/language/Filters/OverriddenShadowTiddlers", "text": "Les tiddlers shadow modifiés" }, "$:/language/Filters/SystemTags": { "title": "$:/language/Filters/SystemTags", "text": "Les tags système" }, "$:/language/Filters/TypedTiddlers": { "title": "$:/language/Filters/TypedTiddlers", "text": "Tiddlers ayant un contenu non wiki-text" }, "GettingStarted": { "title": "GettingStarted", "text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nBienvenue sur ~TiddlyWiki et parmi la communauté ~TiddlyWiki.\n\nAvant de confier à TiddlyWiki des informations importantes, commencez par vérifier que vos modifications peuvent être sauvegardées\ncorrectement — reportez-vous aux [[instructions détaillées|https://tiddlywiki.com/languages/fr-FR/index.html#Saving]] sur https://tiddlywiki.com/.\n\n!! Personnalisez ce ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit-text tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nRendez-vous dans le [[panneau de contrôle|$:/ControlPanel]] pour plus d'options.\n" }, "$:/language/Help/build": { "title": "$:/language/Help/build", "description": "Lance automatiquement les commandes configurées", "text": "Compile le wiki courant à partir des cibles spécifiées. Si aucune cible n'est spécifiée, toutes les cibles seront compilées.\n\n```\n--build <cible> [<cible> ...]\n```\n\nLes cibles de compilation sont définies dans le fichier `tiddlywiki.info` du [[dossier associé au wiki|TiddlyWikiFolders]].\n\n" }, "$:/language/Help/clearpassword": { "title": "$:/language/Help/clearpassword", "description": "Efface un mot de passe pour les prochaines opérations de chiffrement", "text": "Efface le mot de passe pour les prochaines opérations de chiffrement\n\n```\n--clearpassword\n```\n" }, "$:/language/Help/default": { "title": "$:/language/Help/default", "text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<dossierwiki>] [--<commande> [<arguments>...]...]\n```\n\nListe des commandes disponibles :\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link> : <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nPour obtenir de l'aide sur une commande précise :\n\n```\ntiddlywiki --help <commande>\n```\n" }, "$:/language/Help/editions": { "title": "$:/language/Help/editions", "description": "Liste les éditions TiddlyWiki disponibles", "text": "Liste les noms et descriptions des éditions disponibles. La commande `--init` permet de créer un nouveau wiki à partir d'une édition particulière.\n\n```\n--editions\n```\n" }, "$:/language/Help/fetch": { "title": "$:/language/Help/fetch", "description": "Télécharge des tiddlers depuis un wiki à partir de leurs URL", "text": "Télécharge un ou plusieurs fichiers via HTTP/HTTPS, puis importe les tiddlers correspondant à un filtre, en transformant optionnellement les titres des tiddlers importés.\n\n```\n--fetch file <url> <filtre-import> <filtre-de-transformation>\n--fetch files <filtre-urls> <filtre-import> <filtre-de-transformation>\n```\n\nAvec la variante \"file\", un seul fichier est téléchargé et le premier paramètre est l'URL du fichier à lire.\n\nAvec la variante \"files\", plusieurs fichiers sont téléchargés et le premier paramètre est un filtre produisant une liste d'URLs pour les fichiers à lire. Par exemple, étant donné un ensemble de tiddlers tagués \"remote-server\" et disposant d'un champ \"url\", le filtre `[tag[remote-server]get[url]]` permet de récupérer toutes les URLs disponibles.\n\nLe paramètre `<filtre-import>` spécifie un filtre qui détermine quels tiddlers seront importés. Lorsqu'il n'est pas indiqué, il prend comme valeur par défaut `[all[tiddlers]]`.\n\nLe paramètre `<filtre de transformation>` spécifie un filtre optionnel qui transforme les titres des tiddlers importés. Par exemple, `[addprefix[$:/myimports/]]` permettrait d'ajouter le préfixe `$:/myimports/` à chaque titre.\n\nOn obtient des informations concernant la progression de l'importation en faisant précéder la commande `--fetch` de la commande `--verbose`.\n\nIl faut noter que TiddlyWiki ne téléchargera pas une version plus ancienne d'un plugin déjà chargé.\n\nL'exemple ci-dessous récupère tous les tiddlers non-système de https://tiddlywiki.com et les enregistre dans un fichier JSON :\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n" }, "$:/language/Help/help": { "title": "$:/language/Help/help", "description": "Affiche de l'aide sur les commandes TiddlyWiki", "text": "Affiche un texte d'aide sur une commande particulière :\n\n```\n--help [<commande>]\n```\n\nSi aucun nom de commande n'est fourni, affiche la liste de toutes les commandes disponibles.\n" }, "$:/language/Help/import": { "title": "$:/language/Help/import", "description": "Importe des tiddlers depuis un fichier", "text": "Importe des tiddlers depuis des fichiers locaux TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` ou autres. Le désérialiseur doit être spécifié explicitement, à la différence de la commande `load` qui déduit le désérialiseur à utiliser à partir de l'extension du fichier.\n\n```\n--import <chemin-du-fichier> <désérialiseur> [<titre>] [<encodage>]\n```\n\nLes principaux désérialiseurs présents par défaut sont :\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nS'il n'est pas spécifié, le titre du tiddler importé a pour valeur le nom du fichier.\n\nL'encodage par défaut est \"utf8\", mais peut valoir \"base64\" en cas d'importation des fichiers binaires.\n\nÀ noter que TiddlyWiki refusera d'importer pas une version plus ancienne d'un plugin déjà chargé.\n" }, "$:/language/Help/init": { "title": "$:/language/Help/init", "description": "Initialise un nouveau dossier wiki", "text": "Initialise un [[dossier wiki (WikiFolder)|WikiFolders]] vide en copiant l'une des éditions présentes dans le répertoire //editions//.\n\n```\n--init <édition> [<édition> ...]\n```\n\nPar exemple :\n\n```\ntiddlywiki ./MonDossierWiki --init empty\n```\n\nNote :\n\n* Le répertoire correspondant au dossier wiki est créé si nécessaire\n* L'édition par défaut est ''empty''\n* La commande //init// échoue si le dossier wiki n'est pas vide\n* La commande //init// supprime les éventuelles définitions `includeWikis` du fichier `tiddlywiki.info` de l'édition spécifiée\n* Lorsque plusieurs éditions sont spécifiées, chaque édition écrase les fichiers qu'elle a en commun avec les précédentes (par conséquent, le fichier `tiddlywiki.info` proviendra de la dernière édition spécifiée)\n* `--editions` renvoie une liste des éditions disponibles\n" }, "$:/language/Help/load": { "title": "$:/language/Help/load", "description": "Charge des tiddlers à partir d'un fichier", "text": "Charge des tiddlers à partir de fichiers ~TiddlyWikiClassic 2.x.x (`.html`), `.tiddler`, `.tid`, `.json` ou d'autres types de fichiers.\n\n```\n--load <chemindufichier>\n```\n\nPour charger des tiddlers à partir d'un fichier ~TiddlyWiki chiffré, vous devrez d'abord spécifier le mot de passe à l'aide de la [[commande password|PasswordCommand]]. Par exemple :\n\n```\ntiddlywiki ./MonWiki --password pa55w0rd --load mon_wiki_secret.html\n```\n\nÀ noter que Tiddlywiki refusera de charger une version plus ancienne d'un plugin déjà chargé." }, "$:/language/Help/makelibrary": { "title": "$:/language/Help/makelibrary", "description": "Construit le plugin bibliothèque requis par la procédure de mise à jour", "text": "Construit le tiddler `$:/UpgradeLibrary` pour la procédure de mise à jour.\n\nLa bibliothèque de mise à jour est formatée comme un tiddler de plugin ordinaire avec le type `library`. Elle contient un exemplaire de chacun des packs de plugins, thèmes et languages disponibles dans le répertoire de TiddlyWiki5.\n\nCette commande est prévue pour un usage interne ; elle n'a d'intérêt que pour les utilisateurs qui construisent une variante de la procédure de mise à jour.\n\n```\n--makelibrary <titre>\n```\n\nL'argument //titre// a pour valeur par défaut `$:/UpgradeLibrary`.\n" }, "$:/language/Help/notfound": { "title": "$:/language/Help/notfound", "text": "Il n'existe pas d'aide sur le sujet." }, "$:/language/Help/output": { "title": "$:/language/Help/output", "description": "Change le répertoire de départ pour la sortie des prochaines commandes", "text": "Change le répertoire de départ pour la sortie des prochaines commandes. Par défaut, le répertoire de sortie est le sous-répertoire `output` du répertoire de l'édition courante.\n\n```\n--output <nom de chemin>\n```\n\nSi le chemin spécifié est relatif, il est calculé relativement au répertoire de sortie courant. Par exemple, `--output .` indique le répertoire courant comme répertoire de sortie.\n" }, "$:/language/Help/password": { "title": "$:/language/Help/password", "description": "Fournit un mot de passe pour les prochaines opérations de chiffrement", "text": "Fournit un mot de passe pour les prochaines opérations de chiffrement.\n\n```\n--password <motdepasse>\n```\n\n''Note'' : Cette commande n'est pas appropriée pour servir un TiddlyWiki protégé par mot de passe. Pour cela, utilisez plutôt l'option //password// de la [[commande Server|ServerCommand]].\n" }, "$:/language/Help/render": { "title": "$:/language/Help/render", "description": "Exécute le contenu de tiddlers individuels vers des fichiers", "text": "Exécute le contenu des tiddlers individuels identifiés par un filtre et enregistre le résultat vers les fichiers spécifiés.\n\nOptionellement, on peut spécifier le titre d'un tiddler modèle (template). Dans ce cas, au lieu d'exécuter directement le contenu de chaque tiddler, le modèle est exécuté après avoir donné pour valeur à la variable \"currentTiddler\" le titre du tiddler dont le contenu est en cours d'exécution.\n\nOn peut spécifier le nom et la valeur d'une variable supplémentaire.\n\n```\n--render <filtre-sur-les-tiddlers> [<filtre-des-noms-de-fichier>] [<type-de-rendu>] [<modèle>] [<nom>] [<valeur>]\n```\n\n* ''filtre-sur-les-tiddlers'': Un filtre qui indentifie les tiddlers dont le contenu doit être exécuté\n* ''filtre-des-noms-de-fichier'': filtre optionnel pour transformer les titres de tiddlers en chemin de fichiers. À défaut, le filtre utilisé est `[is[tiddler]addsuffix[.html]]`, qui utilise le titre inchangé du tiddler comme nom de fichier\n* ''modèle'': Modèle optionnel via lequel chaque tiddler doit être rendu\n* ''type-de-rendu'': Type de rendu optionnel : la valeur `text/html` (par défaut) retourne le text HTML complet et `text/plain` se contente de retourner le contenu sous forme texte (autrement dit ignore les balises HTML et autres caractères non imprimables)\n* ''nom'': Nom de la variable optionnelle\n* ''valeur'': Valeur de la variable optionnelle\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du réepertoire de l'édition. La commande `--output` peut servir à diriger les sorties vers un répertoire différent.\n\nNotes :\n\n* Les éventuels fichiers présents dans le répertoire de sortie ne sont pas supprimmés\n* Les répertoires absents dans le chemin de fichier sont créés automatiquement.\n* Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : `--render \"[[Motovun Jack.jpg]]\"`\n* Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple `[encodeuricomponent[]addprefix[static/]]` applique un encodage d'URI à chaque titre, puis ajoute le préfixe `static/`\n* La commande `--render` remplace de manière plus souple les deux commandes `--rendertiddler` et `--rendertiddlers`, qui sont du même coup obsolètes. \n\nExemples :\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- enregistre le contenu exécuté de tous les tiddlers non-système vers des fichiers du sous-répertoire \"tiddlers\" nommés par encodage URL des titres et ajout d'une extension html.\n\n" }, "$:/language/Help/rendertiddler": { "title": "$:/language/Help/rendertiddler", "description": "Exécute le contenu d'un tiddler pour le type spécifié", "text": "Enregistre vers le chemin indiqué le résultat de l'exécution d'un tiddler pour le type de contenu (ContentType) spécifié — par défaut `text/html`.\n\nUn tiddler modèle (template) peut être indiqué optionnellement. Dans ce cas, le tiddler modèle est exécuté après initialisation de la variable \"currentTiddler\" avec le tiddler dont le titre est donné en premier paramètre de la commande.\n\nLe nom et la valeur d'une variable supplémentaire peuvent être spécifiés optionnellement.\n\n```\n--rendertiddler <titre> <chemindufichier> [<type>] [<modèle>] [<nom>] [<valeur>]\n```\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à rediriger la sortie vers un répertoire différent.\n\nLes répertoires présents dans le chemin du fichier et qui n'existent pas encore sont créés automatiquement.\n\nPar exemple, la commande ci-dessous enregistre tous les tiddlers correspondant au filtre `[tag[done]]` vers un fichier JSON de nom `output.json`, en faisant appel au template prédéfini `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n" }, "$:/language/Help/rendertiddlers": { "title": "$:/language/Help/rendertiddlers", "description": "Exécute le contenu d'un ensemble de tiddlers sélectionnés par un filtre, pour le type de contenu (ContentType) spécifié", "text": "Enregistre vers le chemin indiqué et avec l'extension indiquée — par défaut `.html`, le résultat de l'exécution d'un ensemble de tiddlers (sélectionnés par un filtre). Le résultat de l'exécution est rendu selon le type de contenu (ContentType) spécifié — par défaut `text/html` :\n\n```\n--rendertiddlers <filtre> <modèle> <chemindurépertoire> [<type>] [<extension>] [\"noclean\"]\n```\n\nPar exemple :\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à rediriger la sortie vers un répertoire différent.\n\nTous les fichiers du répertoire cible sont supprimés, sauf si le drapeau ''noclean'' est spécifié. Le répertoire cible est créé récursivement s'il n'existe pas." }, "$:/language/Help/save": { "title": "$:/language/Help/save", "description": "Enregistre des tiddlers individuels tels quels vers des fichiers", "text": "Enregistre des tiddlers individuels identifiés par un filtre, soit tels quels, soit dans un format binaire dans les fichiers spécifiés.\n\n```\n--save <filtre-des-tiddlers> <filtre-des-noms-de-fichiers>\n```\n\n* ''filtre-des-tiddlers'': Un filtre identifiant les tiddlers à enregistrer\n* ''filtre-des-noms-de-fichiers'': Filtre optionnel pour transformer les titres de tiddlers en chemins de fichiers. À défaut, le filtre utilisé est `[is[tiddler]]`, qui utilise le titre inchangé du tiddler comme nom de fichier\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du réepertoire de l'édition. La commande `--output` peut servir à diriger les sorties vers un répertoire différent.\n\nNotes :\n\n* Les éventuels fichiers présents dans le répertoire de sortie ne sont pas supprimmés\n* Les répertoires absents dans le chemin de fichier sont créés automatiquement.\n* Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : `--render \"[[Motovun Jack.jpg]]\"`\n* Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple `[encodeuricomponent[]addprefix[static/]]` applique un encodage d'URI à chaque titre, puis ajoute le préfixe `static/`\n* La commande `--save` remplace de manière plus souple les deux commandes `--savetiddler` et `--savetiddlers`, qui sont du même coup obsolètes. \n\nExemples :\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- enregistre tous les tiddlers images non-système comme des fichiers du sous-répertoire \"tiddlers\" nommés après encodage URL des titres.\n" }, "$:/language/Help/savetiddler": { "title": "$:/language/Help/savetiddler", "description": "Enregistre un tiddler dans un fichier sous sa forme brute", "text": "Enregistre un tiddler texte ou binaire dans le fichier spécifié, sous sa forme brute. \n\n```\n--savetiddler <titre> <chemindufichier>\n```\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à rediriger la sortie vers un répertoire différent.\n\nLes répertoires présents dans le chemin du fichier et qui n'existent pas encore sont créés automatiquement. " }, "$:/language/Help/savetiddlers": { "title": "$:/language/Help/savetiddlers", "description": "Enregistre un groupe de tiddlers vers un répertoire", "text": "Enregistre un groupe de tiddlers vers le chemin spécifié, sous leur forme brute, texte ou binaire. \n\n```\n--savetiddlers <filtre> <chemin-de-répertoire> [\"noclean\"]\n```\n\nPar défaut, le répertoire de sortie est calculé relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à diriger la sortie vers un répertoire différent.\n\nLes fichiers présents dans le répertoire de sortie sont supprimés avant que soient enregistrés les fichiers des tiddlers spécifiés par le filtre. Pour empêcher cette suppression, ajouter le drapeau ''noclean''.\n\nLes éventuels répertoires manquants dans le chemin spécifié sont créés automatiquement.\n" }, "$:/language/Help/server": { "title": "$:/language/Help/server", "description": "Fournit une interface serveur HTTP à TiddlyWiki (déprécié en faveur de la nouvelle commande listen)", "text": "Ancienne commande pour servir un wiki sur HTTP.\n\n```\n--server <port> <tiddler-racine> <type-du-rendu> <type-du-service> <nom-d-utilisateur> <mot-de-passe> <machine> <préfixe-des-chemins> <niveau-débogage>\n```\n\nLes arguments sont :\n\n* ''port'' - numéro de port sur lequel servir le contenu ; une valeur non-numérique sera interprétée comme un nom de variable d'environnement du système dont la valeur est le numéro de port (défaut : \"8080\")\n* ''tiddler-racine'' - le titre du tiddler à afficher à la racine de l'URL (défaut : \"$:/core/save/all\") \n* ''type-du-rendu'' - le type avec lequel le contenu du tiddler racine doit être rendu (`text/plain` par défaut)\n* ''type-du-service'' - le type avec lequel le contenu du tiddler racine doit être servi (`text/html` par défaut)\n* ''nom-d-utilisateur'' - le nom d'utilisateur qui servira par défaut à signer les modifications\n* ''mot-de-passe'' - mot de passe optionnel permettant une authentification basique\n* ''machine'' - nom de machine optionnel d'où le contenu doit être servi (\"127.0.0.1\" par défaut, autrement dit \"localhost\")\n* ''préfixe-des-chemins'' - préfixe optionnel pour les chemins de fichiers\n* ''niveau-débogage'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nSi le mot de passe est spécifié en argument, le navigateur demandera à l'utilisateur d'entrer le nom d'utilisateur et le mot de passe. On notera que le mot de passe est transmis en clair, et que cette implémentation ne convient donc pas pour un usage général.\n\nPar exemple :\n\n```\n--server 8080 $:/core/save/all text/plain text/html MonNomUtilisateur m0tdepa55e\n```\n\nLe nom d'utilisateur et le mot de passe peuvent être spécifiés sous forme de chaînes vides si vous avez besoin d'indiquer le nom de machine ou le préfixe des chemins sans pour autant demander un mot de passe :\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nSi vous voulez faire tourner plusieurs serveurs TiddlyWiki en même temps sur la même machine, vous devrez leur assigner chacun un port différent. Il peut être utile d'utiliser une variable d'environnement pour passer le numéro de port au process Node.js. L'exemple suivant utilise une variable d'environnement appelée \"MY_PORT_NUMBER\" :\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MonNomUtilisateur m0tdepa55e\n```\n" }, "$:/language/Help/setfield": { "title": "$:/language/Help/setfield", "description": "Prépare des tiddlers externes for use", "text": "//Notez que cette commande est expérimentale et peut changer ou être remplacée avant d'être finalisée//\n\nInitialise le champ spécifié d'un groupe de tiddlers avec le résultat de la wikification d'un tiddler template, la variable `currentTiddler` prenant tour à tour la valeur de chaque tiddler.\n\n```\n--setfield <filtre> <nom-du-champ> <titre-du-template> <type-de-rendu>\n```\n\nLes paramètres sont les suivants :\n\n* ''filtre'' - filtre identifiant les tiddlers cibles\n* ''nom-du-champ'' - le champ à modifier (\"text\" par défaut)\n* ''titre-du-template'' - le tiddler à wikifier dans le champ spécifié. Si manquant ou blanc, le champ spécifié est supprimé\n* ''type-de-rendu'' - le type de texte à utiliser pour le rendu (\"text/plain\" par défaut ; \"text/html\" peut servir à inclure des éléments HTML)\n" }, "$:/language/Help/unpackplugin": { "title": "$:/language/Help/unpackplugin", "description": "Déballe les tiddlers contenus dans un plugin", "text": "Extrait les tiddlers utiles d'un plugin, en les créant sous forme de tiddlers ordinaires :\n\n```\n--unpackplugin <titre>\n```\n" }, "$:/language/Help/verbose": { "title": "$:/language/Help/verbose", "description": "Bascule en mode verbeux", "text": "Bascule les informations en mode verbeux, pratique pour le débogage.\n\n```\n--verbose\n```\n" }, "$:/language/Help/version": { "title": "$:/language/Help/version", "description": "Affiche le numéro de version de TiddlyWiki", "text": "Affiche le numéro de version de TiddlyWiki.\n\n```\n--version\n```\n" }, "$:/language/Import/Imported/Hint": { "title": "$:/language/Import/Imported/Hint", "text": "Les tiddlers suivants ont été importés :" }, "$:/language/Import/Listing/Cancel/Caption": { "title": "$:/language/Import/Listing/Cancel/Caption", "text": "Annuler" }, "$:/language/Import/Listing/Hint": { "title": "$:/language/Import/Listing/Hint", "text": "Les tiddlers suivants sont prêts pour l'importation :" }, "$:/language/Import/Listing/Import/Caption": { "title": "$:/language/Import/Listing/Import/Caption", "text": "Importer" }, "$:/language/Import/Listing/Select/Caption": { "title": "$:/language/Import/Listing/Select/Caption", "text": "Sélectionner" }, "$:/language/Import/Listing/Status/Caption": { "title": "$:/language/Import/Listing/Status/Caption", "text": "Statut" }, "$:/language/Import/Listing/Title/Caption": { "title": "$:/language/Import/Listing/Title/Caption", "text": "Titre" }, "$:/language/Import/Listing/Preview": { "title": "$:/language/Import/Listing/Preview", "text": "Prévisualisation :" }, "$:/language/Import/Listing/Preview/Text": { "title": "$:/language/Import/Listing/Preview/Text", "text": "Texte" }, "$:/language/Import/Listing/Preview/TextRaw": { "title": "$:/language/Import/Listing/Preview/TextRaw", "text": "Texte (brut)" }, "$:/language/Import/Listing/Preview/Fields": { "title": "$:/language/Import/Listing/Preview/Fields", "text": "Champs" }, "$:/language/Import/Listing/Preview/Diff": { "title": "$:/language/Import/Listing/Preview/Diff", "text": "Diff" }, "$:/language/Import/Listing/Preview/DiffFields": { "title": "$:/language/Import/Listing/Preview/DiffFields", "text": "Diff (champs)" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible", "text": "Plugin bloqué : incompatible ou obsolète" }, "$:/language/Import/Upgrader/Plugins/Suppressed/Version": { "title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version", "text": "Plugin bloqué (la version <<incoming>> en cours d'importation est plus ancienne que la version <<existing>> actuelle)" }, "$:/language/Import/Upgrader/Plugins/Upgraded": { "title": "$:/language/Import/Upgrader/Plugins/Upgraded", "text": "Plugin mis à jour depuis <<incoming>> vers <<upgraded>>" }, "$:/language/Import/Upgrader/State/Suppressed": { "title": "$:/language/Import/Upgrader/State/Suppressed", "text": "Tiddler d'état temporaire bloqué" }, "$:/language/Import/Upgrader/System/Suppressed": { "title": "$:/language/Import/Upgrader/System/Suppressed", "text": "Tiddler système bloqué" }, "$:/language/Import/Upgrader/ThemeTweaks/Created": { "title": "$:/language/Import/Upgrader/ThemeTweaks/Created", "text": "Thème modifié à partir de <$text text=<<from>>/>" }, "$:/language/AboveStory/ClassicPlugin/Warning": { "title": "$:/language/AboveStory/ClassicPlugin/Warning", "text": "On dirait que vous essayez de charger un plugin conçu pour ~TiddlyWiki Classic. Merci de noter que [[ces plugins ne fonctionnent pas avec TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. Plugins ~TiddlyWiki Classic détectés :" }, "$:/language/BinaryWarning/Prompt": { "title": "$:/language/BinaryWarning/Prompt", "text": "Ce tiddler contient des données binaires" }, "$:/language/ClassicWarning/Hint": { "title": "$:/language/ClassicWarning/Hint", "text": "Ce tiddler est écrit au format TiddlyWiki Classic, qui n'est pas entièrement compatible avec TiddlyWiki version 5. Pour en savoir plus, rendez-vous à l'adresse https://tiddlywiki.com/static/Upgrading.html." }, "$:/language/ClassicWarning/Upgrade/Caption": { "title": "$:/language/ClassicWarning/Upgrade/Caption", "text": "mettre à jour" }, "$:/language/CloseAll/Button": { "title": "$:/language/CloseAll/Button", "text": "tout fermer" }, "$:/language/ColourPicker/Recent": { "title": "$:/language/ColourPicker/Recent", "text": "Récent :" }, "$:/language/ConfirmCancelTiddler": { "title": "$:/language/ConfirmCancelTiddler", "text": "Souhaitez-vous annuler les modifications apportées au tiddler « <$text text=<<title>>/> » ?" }, "$:/language/ConfirmDeleteTiddler": { "title": "$:/language/ConfirmDeleteTiddler", "text": "Souhaitez-vous supprimer le tiddler « <$text text=<<title>>/> » ?" }, "$:/language/ConfirmOverwriteTiddler": { "title": "$:/language/ConfirmOverwriteTiddler", "text": "Souhaitez-vous supplanter le tiddler « <$text text=<<title>>/> » ?" }, "$:/language/ConfirmEditShadowTiddler": { "title": "$:/language/ConfirmEditShadowTiddler", "text": "Vous êtes sur le point d'éditer un ShadowTiddler. Toute modification supplantera la version par défaut du système, rendant les prochaines mises à jour non-triviales. Êtes-vous sûr(e) de vouloir éditer \"<$text text=<<title>>/>\"?" }, "$:/language/Count": { "title": "$:/language/Count", "text": "total" }, "$:/language/DefaultNewTiddlerTitle": { "title": "$:/language/DefaultNewTiddlerTitle", "text": "Nouveau tiddler" }, "$:/language/Diffs/CountMessage": { "title": "$:/language/Diffs/CountMessage", "text": "<<diff-count>> différences" }, "$:/language/DropMessage": { "title": "$:/language/DropMessage", "text": "Déposer ici (ou appuyer sur « escape » pour annuler)" }, "$:/language/Encryption/Cancel": { "title": "$:/language/Encryption/Cancel", "text": "Annuler" }, "$:/language/Encryption/ConfirmClearPassword": { "title": "$:/language/Encryption/ConfirmClearPassword", "text": "Souhaitez-vous supprimer ce mot de passe ? Si oui, ce wiki ne sera plus chiffré lors de la sauvegarde" }, "$:/language/Encryption/PromptSetPassword": { "title": "$:/language/Encryption/PromptSetPassword", "text": "Choisir un nouveau mot de passe pour ce TiddlyWiki" }, "$:/language/Encryption/Username": { "title": "$:/language/Encryption/Username", "text": "Nom d'utilisateur" }, "$:/language/Encryption/Password": { "title": "$:/language/Encryption/Password", "text": "Mot de passe" }, "$:/language/Encryption/RepeatPassword": { "title": "$:/language/Encryption/RepeatPassword", "text": "Répéter le mot de passe" }, "$:/language/Encryption/PasswordNoMatch": { "title": "$:/language/Encryption/PasswordNoMatch", "text": "Les mots de passe ne correspondent pas" }, "$:/language/Encryption/SetPassword": { "title": "$:/language/Encryption/SetPassword", "text": "Définir ce mot de passe" }, "$:/language/Error/Caption": { "title": "$:/language/Error/Caption", "text": "Erreur" }, "$:/language/Error/EditConflict": { "title": "$:/language/Error/EditConflict", "text": "Le fichier a changé sur le serveur" }, "$:/language/Error/Filter": { "title": "$:/language/Error/Filter", "text": "Erreur de filtre" }, "$:/language/Error/FilterSyntax": { "title": "$:/language/Error/FilterSyntax", "text": "Erreur de syntaxe dans l'expression du filtre" }, "$:/language/Error/IsFilterOperator": { "title": "$:/language/Error/IsFilterOperator", "text": "Erreur de filtre : Opérande inconnu pour l'opérateur de filtre 'is'" }, "$:/language/Error/LoadingPluginLibrary": { "title": "$:/language/Error/LoadingPluginLibrary", "text": "Erreur lors du chargement de la bibliothèque de plugins" }, "$:/language/Error/RecursiveTransclusion": { "title": "$:/language/Error/RecursiveTransclusion", "text": "Erreur dans le widget //transclude// : transclusion récursive" }, "$:/language/Error/RetrievingSkinny": { "title": "$:/language/Error/RetrievingSkinny", "text": "Erreur pendant la récupération de la liste des tiddlers partiels" }, "$:/language/Error/SavingToTWEdit": { "title": "$:/language/Error/SavingToTWEdit", "text": "Erreur lors de l'enregistrement vers TWEdit" }, "$:/language/Error/WhileSaving": { "title": "$:/language/Error/WhileSaving", "text": "Erreur lors de l'enregistrement" }, "$:/language/Error/XMLHttpRequest": { "title": "$:/language/Error/XMLHttpRequest", "text": "Code d'erreur XMLHttpRequest" }, "$:/language/InternalJavaScriptError/Title": { "title": "$:/language/InternalJavaScriptError/Title", "text": "Erreur interne JavaScript" }, "$:/language/InternalJavaScriptError/Hint": { "title": "$:/language/InternalJavaScriptError/Hint", "text": "C'est assez embarrassant. Il est recommandé de rafraîchir l'affichage de votre navigateur" }, "$:/language/InvalidFieldName": { "title": "$:/language/InvalidFieldName", "text": "Caractères illicites dans le nom du champ « <$text text=<<fieldName>>/> ». Les champs ne peuvent contenir que des lettres minuscules non accentuées et les caractères souligné (`_`), tiret (`-`) et point (`.`)" }, "$:/language/LazyLoadingWarning": { "title": "$:/language/LazyLoadingWarning", "text": "<p>Tentative de chargement d'un contenu externe ''<$text text={{!!_canonical_uri}}/>''</p><p>Si ce message ne disparaît pas, il est possible que vous deviez ajuster le type de contenu du tiddler en fonction du type de votre contenu externe, ou vous utilisez peut-être un navigateur qui n'accepte pas les contenus externes dans cette configuration. Voir https://tiddlywiki.com/#ExternalText</p>" }, "$:/language/LoginToTiddlySpace": { "title": "$:/language/LoginToTiddlySpace", "text": "Identification sur TiddlySpace" }, "$:/language/Manager/Controls/FilterByTag/None": { "title": "$:/language/Manager/Controls/FilterByTag/None", "text": "(aucun)" }, "$:/language/Manager/Controls/FilterByTag/Prompt": { "title": "$:/language/Manager/Controls/FilterByTag/Prompt", "text": "Filtrer par tag :" }, "$:/language/Manager/Controls/Order/Prompt": { "title": "$:/language/Manager/Controls/Order/Prompt", "text": "Ordre inverse" }, "$:/language/Manager/Controls/Search/Placeholder": { "title": "$:/language/Manager/Controls/Search/Placeholder", "text": "Recherche" }, "$:/language/Manager/Controls/Search/Prompt": { "title": "$:/language/Manager/Controls/Search/Prompt", "text": "Rechercher :" }, "$:/language/Manager/Controls/Show/Option/Tags": { "title": "$:/language/Manager/Controls/Show/Option/Tags", "text": "tags" }, "$:/language/Manager/Controls/Show/Option/Tiddlers": { "title": "$:/language/Manager/Controls/Show/Option/Tiddlers", "text": "tiddlers" }, "$:/language/Manager/Controls/Show/Prompt": { "title": "$:/language/Manager/Controls/Show/Prompt", "text": "Afficher :" }, "$:/language/Manager/Controls/Sort/Prompt": { "title": "$:/language/Manager/Controls/Sort/Prompt", "text": "Trier par :" }, "$:/language/Manager/Item/Colour": { "title": "$:/language/Manager/Item/Colour", "text": "Couleur" }, "$:/language/Manager/Item/Fields": { "title": "$:/language/Manager/Item/Fields", "text": "Champs" }, "$:/language/Manager/Item/Icon/None": { "title": "$:/language/Manager/Item/Icon/None", "text": "(aucune)" }, "$:/language/Manager/Item/Icon": { "title": "$:/language/Manager/Item/Icon", "text": "Icône" }, "$:/language/Manager/Item/RawText": { "title": "$:/language/Manager/Item/RawText", "text": "Texte brut" }, "$:/language/Manager/Item/Tags": { "title": "$:/language/Manager/Item/Tags", "text": "Tags" }, "$:/language/Manager/Item/Tools": { "title": "$:/language/Manager/Item/Tools", "text": "Outils" }, "$:/language/Manager/Item/WikifiedText": { "title": "$:/language/Manager/Item/WikifiedText", "text": "Texte wikifié" }, "$:/language/MissingTiddler/Hint": { "title": "$:/language/MissingTiddler/Hint", "text": "Le tiddler « <$text text=<<currentTiddler>>/> » est manquant -- cliquez sur {{||$:/core/ui/Buttons/edit}} pour le créer" }, "$:/language/No": { "title": "$:/language/No", "text": "Non" }, "$:/language/OfficialPluginLibrary": { "title": "$:/language/OfficialPluginLibrary", "text": "Bibliothèque officielle des plugins ~TiddlyWiki" }, "$:/language/OfficialPluginLibrary/Hint": { "title": "$:/language/OfficialPluginLibrary/Hint", "text": "La bibliothèque officielle des plugins ~TiddlyWiki sur tiddlywiki.com. Plugins, thèmes et packs pour les différentes langues sont maintenus par l'équipe responsable du noyau." }, "$:/language/PluginReloadWarning": { "title": "$:/language/PluginReloadWarning", "text": "Merci d'enregistrer {{$:/core/ui/Buttons/save-wiki}} et de recharger {{$:/core/ui/Buttons/refresh}} pour que les changements apportés aux plugins prennent effet" }, "$:/language/RecentChanges/DateFormat": { "title": "$:/language/RecentChanges/DateFormat", "text": "DD MMM YYYY" }, "$:/language/SystemTiddler/Tooltip": { "title": "$:/language/SystemTiddler/Tooltip", "text": "Ceci est un tiddler système" }, "$:/language/SystemTiddlers/Include/Prompt": { "title": "$:/language/SystemTiddlers/Include/Prompt", "text": "Inclure les tiddlers système" }, "$:/language/TagManager/Colour/Heading": { "title": "$:/language/TagManager/Colour/Heading", "text": "Couleur" }, "$:/language/TagManager/Count/Heading": { "title": "$:/language/TagManager/Count/Heading", "text": "Total" }, "$:/language/TagManager/Icon/Heading": { "title": "$:/language/TagManager/Icon/Heading", "text": "Icône" }, "$:/language/TagManager/Info/Heading": { "title": "$:/language/TagManager/Info/Heading", "text": "Info" }, "$:/language/TagManager/Tag/Heading": { "title": "$:/language/TagManager/Tag/Heading", "text": "Tag" }, "$:/language/Tiddler/DateFormat": { "title": "$:/language/Tiddler/DateFormat", "text": "DD MMM YYYY à hhhmm" }, "$:/language/UnsavedChangesWarning": { "title": "$:/language/UnsavedChangesWarning", "text": "Vos dernières modifications n'ont pas été sauvegardées dans votre TiddlyWiki" }, "$:/language/Yes": { "title": "$:/language/Yes", "text": "Oui" }, "$:/language/Modals/Download": { "title": "$:/language/Modals/Download", "type": "text/vnd.tiddlywiki", "subtitle": "Télécharger vos modifications", "footer": "<$button message=\"tm-close-tiddler\">Fermer</$button>", "help": "https://tiddlywiki.com/static/DownloadingChanges.html", "text": "Votre navigateur ne supporte que l'enregistrement manuel.\n\nPour enregistrer les modifications de votre wiki, faites un clic droit sur le lien de téléchargement ci-dessous et choisissez \"Enregistrer...\" ou \"Télécharger...\", puis choisissez le répertoire et le nom de fichier.\n\n//Il est possible d'accélérer un peu les choses en cliquant sur le lien tout en appuyant sur la touche contrôle (sous Windows) ou la touche option/alt (sous MacOS X). On ne vous demandera pas un nom de fichier ou de répertoire, mais votre navigateur proposera probablement un nom difficile à identifier — il vous faudra sans doute le renommer pour lui ajouter une extension .html avant qu'il soit effectivement utilisable.//\n\nSur les smartphones qui n'autorisent pas le téléchargement de fichiers, vous pouvez ajouter le lien à vos favoris/signets, puis synchroniser vos signets vers un ordinateur de bureau, d'où le wiki pourra être enregistré normalement.\n" }, "$:/language/Modals/SaveInstructions": { "title": "$:/language/Modals/SaveInstructions", "type": "text/vnd.tiddlywiki", "subtitle": "Enregistrez votre travail", "footer": "<$button message=\"tm-close-tiddler\">Fermer</$button>", "help": "https://tiddlywiki.com/static/SavingChanges.html", "text": "Les modifications effectuées dans ce wiki doivent être sauvegardées sous forme de fichier ~TiddlyWiki HTML.\n\n!!! Navigateurs de bureau\n\n# Sélectionnez ''Enregistrer sous'' depuis le menu ''Fichier''\n# Choisissez un nom de fichier et un dossier\n#* Certains navigateurs demandent aussi de spécifier explicitement le format d'enregistrement, à savoir ''Page Web, HTML uniquement'' ou quelque chose d'approchant\n# Fermez cet onglet\n\n!!! Navigateurs sur smartphone\n\n# Créez un favori/signet pour cette page\n#* Si vous utilisez iCloud ou Google Sync, le signet sera automatiquement synchronisé avec le navigateur de votre ordinateur de bureau, d'où vous pourrez l'ouvrir et enregistrer le fichier comme indiqué ci-dessus\n# Fermez cet onglet\n\n//Si vous ouvrez à nouveau le signet dans Safari pour mobile, vous verrez ce message une nouvelle fois. Si vous voulez continuer et utiliser le fichier, cliquez simplement sur le bouton ''Fermer'' ci-dessous//\n" }, "$:/config/NewJournal/Title": { "title": "$:/config/NewJournal/Title", "text": "DD MMM YYYY" }, "$:/config/NewJournal/Tags": { "title": "$:/config/NewJournal/Tags", "text": "Journal" }, "$:/language/Notifications/Save/Done": { "title": "$:/language/Notifications/Save/Done", "text": "Wiki enregistré" }, "$:/language/Notifications/Save/Starting": { "title": "$:/language/Notifications/Save/Starting", "text": "Enregistrement du wiki en cours" }, "$:/language/Notifications/CopiedToClipboard/Succeeded": { "title": "$:/language/Notifications/CopiedToClipboard/Succeeded", "text": "Copié dans le presse-papier !" }, "$:/language/Notifications/CopiedToClipboard/Failed": { "title": "$:/language/Notifications/CopiedToClipboard/Failed", "text": "La copie dans le presse-papier a échoué !" }, "$:/language/Search/DefaultResults/Caption": { "title": "$:/language/Search/DefaultResults/Caption", "text": "Liste" }, "$:/language/Search/Filter/Caption": { "title": "$:/language/Search/Filter/Caption", "text": "Filtrer" }, "$:/language/Search/Filter/Hint": { "title": "$:/language/Search/Filter/Hint", "text": "Recherche via une combinaison de [[filtres|https://tiddlywiki.com/static/Filters.html]]" }, "$:/language/Search/Filter/Matches": { "title": "$:/language/Search/Filter/Matches", "text": "//<small><<resultCount>> correspondances</small>//" }, "$:/language/Search/Matches": { "title": "$:/language/Search/Matches", "text": "//<small><<resultCount>> correspondances</small>//" }, "$:/language/Search/Matches/All": { "title": "$:/language/Search/Matches/All", "text": "Toutes les correspondances :" }, "$:/language/Search/Matches/Title": { "title": "$:/language/Search/Matches/Title", "text": "Correspondances sur les titres :" }, "$:/language/Search/Search": { "title": "$:/language/Search/Search", "text": "Recherch" }, "$:/language/Search/Search/TooShort": { "title": "$:/language/Search/Search/TooShort", "text": "Texte de recherche trop court" }, "$:/language/Search/Shadows/Caption": { "title": "$:/language/Search/Shadows/Caption", "text": "Shadows" }, "$:/language/Search/Shadows/Hint": { "title": "$:/language/Search/Shadows/Hint", "text": "Recherche parmi les tiddlers //shadow//" }, "$:/language/Search/Shadows/Matches": { "title": "$:/language/Search/Shadows/Matches", "text": "//<small><<resultCount>> correspondances</small>//" }, "$:/language/Search/Standard/Caption": { "title": "$:/language/Search/Standard/Caption", "text": "Standard" }, "$:/language/Search/Standard/Hint": { "title": "$:/language/Search/Standard/Hint", "text": "Recherche parmi les tiddlers standard" }, "$:/language/Search/Standard/Matches": { "title": "$:/language/Search/Standard/Matches", "text": "//<small><<resultCount>> correspondances</small>//" }, "$:/language/Search/System/Caption": { "title": "$:/language/Search/System/Caption", "text": "Système" }, "$:/language/Search/System/Hint": { "title": "$:/language/Search/System/Hint", "text": "Recherche parmi les tiddlers //système//" }, "$:/language/Search/System/Matches": { "title": "$:/language/Search/System/Matches", "text": "//<small><<resultCount>> correspondances</small>//" }, "$:/language/SideBar/All/Caption": { "title": "$:/language/SideBar/All/Caption", "text": "Tout" }, "$:/language/SideBar/Contents/Caption": { "title": "$:/language/SideBar/Contents/Caption", "text": "Sommaire" }, "$:/language/SideBar/Drafts/Caption": { "title": "$:/language/SideBar/Drafts/Caption", "text": "Brouillons" }, "$:/language/SideBar/Missing/Caption": { "title": "$:/language/SideBar/Missing/Caption", "text": "Manquants" }, "$:/language/SideBar/More/Caption": { "title": "$:/language/SideBar/More/Caption", "text": "Plus" }, "$:/language/SideBar/Open/Caption": { "title": "$:/language/SideBar/Open/Caption", "text": "Ouverts" }, "$:/language/SideBar/Orphans/Caption": { "title": "$:/language/SideBar/Orphans/Caption", "text": "Orphelins" }, "$:/language/SideBar/Recent/Caption": { "title": "$:/language/SideBar/Recent/Caption", "text": "Récents" }, "$:/language/SideBar/Shadows/Caption": { "title": "$:/language/SideBar/Shadows/Caption", "text": "Shadows" }, "$:/language/SideBar/System/Caption": { "title": "$:/language/SideBar/System/Caption", "text": "Système" }, "$:/language/SideBar/Tags/Caption": { "title": "$:/language/SideBar/Tags/Caption", "text": "Tags" }, "$:/language/SideBar/Tags/Untagged/Caption": { "title": "$:/language/SideBar/Tags/Untagged/Caption", "text": "sans tag" }, "$:/language/SideBar/Tools/Caption": { "title": "$:/language/SideBar/Tools/Caption", "text": "Outils" }, "$:/language/SideBar/Types/Caption": { "title": "$:/language/SideBar/Types/Caption", "text": "Types" }, "$:/SiteSubtitle": { "title": "$:/SiteSubtitle", "text": "un carnet de notes web personnel et non linéaire" }, "$:/SiteTitle": { "title": "$:/SiteTitle", "text": "Mon ~TiddlyWiki" }, "$:/language/Snippets/ListByTag": { "title": "$:/language/Snippets/ListByTag", "tags": "$:/tags/TextEditor/Snippet", "caption": "Liste de tiddlers par tag", "text": "<<list-links \"[tag[task]sort[title]]\">>\n" }, "$:/language/Snippets/MacroDefinition": { "title": "$:/language/Snippets/MacroDefinition", "tags": "$:/tags/TextEditor/Snippet", "caption": "Définition de macro", "text": "\\define Nomdemacro(param1:\"valeur par défaut\",param2)\nTexte de la macro\n\\end\n" }, "$:/language/Snippets/Table4x3": { "title": "$:/language/Snippets/Table4x3", "tags": "$:/tags/TextEditor/Snippet", "caption": "Tableau avec 4 colonnes par trois lignes", "text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!Un | | | | |\n|!Deux | | | | |\n|!Trois | | | | |\n" }, "$:/language/Snippets/TableOfContents": { "title": "$:/language/Snippets/TableOfContents", "tags": "$:/tags/TextEditor/Snippet", "caption": "Table des matières", "text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>" }, "$:/language/ThemeTweaks/ThemeTweaks": { "title": "$:/language/ThemeTweaks/ThemeTweaks", "text": "Réglages du thème" }, "$:/language/ThemeTweaks/ThemeTweaks/Hint": { "title": "$:/language/ThemeTweaks/ThemeTweaks/Hint", "text": "Vous pouvez ajuster certains aspects du thème ''Vanilla''." }, "$:/language/ThemeTweaks/Options": { "title": "$:/language/ThemeTweaks/Options", "text": "Options" }, "$:/language/ThemeTweaks/Options/SidebarLayout": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout", "text": "Agencement de la barre latérale" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid", "text": "Déroulé fixe, barre latérale extensible" }, "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": { "title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed", "text": "Déroulé extensible, barre latérale fixe" }, "$:/language/ThemeTweaks/Options/StickyTitles": { "title": "$:/language/ThemeTweaks/Options/StickyTitles", "text": "Titres accrochés" }, "$:/language/ThemeTweaks/Options/StickyTitles/Hint": { "title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint", "text": "Lorsqu'on fait défiler le déroulé, les titres des tiddlers s'accrochent en haut de la fenêtre du navigateur tant que le contenu de leur tiddler est visible. Attention : ne fonctionne pas du tout avec Chrome, et peut causer quelques problèmes de mise en page dans Firefox" }, "$:/language/ThemeTweaks/Options/CodeWrapping": { "title": "$:/language/ThemeTweaks/Options/CodeWrapping", "text": "Enroule les lignes trop longues à l'intérieur des blocs de code" }, "$:/language/ThemeTweaks/Settings": { "title": "$:/language/ThemeTweaks/Settings", "text": "Réglages" }, "$:/language/ThemeTweaks/Settings/FontFamily": { "title": "$:/language/ThemeTweaks/Settings/FontFamily", "text": "Famille de polices" }, "$:/language/ThemeTweaks/Settings/CodeFontFamily": { "title": "$:/language/ThemeTweaks/Settings/CodeFontFamily", "text": "Famille de polices pour le code" }, "$:/language/ThemeTweaks/Settings/EditorFontFamily": { "title": "$:/language/ThemeTweaks/Settings/EditorFontFamily", "text": "Famille de polices pour l'éditeur" }, "$:/language/ThemeTweaks/Settings/BackgroundImage": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImage", "text": "Image de fond de page" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment", "text": "Arrimage de l'image de fond de page" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll", "text": "Défile avec les tiddlers" }, "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed", "text": "Arrimée à la fenêtre" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize", "text": "Taille de l'image de fond de page" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto", "text": "Auto" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover", "text": "Élargie" }, "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": { "title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain", "text": "Contenue" }, "$:/language/ThemeTweaks/Metrics": { "title": "$:/language/ThemeTweaks/Metrics", "text": "Tailles" }, "$:/language/ThemeTweaks/Metrics/FontSize": { "title": "$:/language/ThemeTweaks/Metrics/FontSize", "text": "Taille police" }, "$:/language/ThemeTweaks/Metrics/LineHeight": { "title": "$:/language/ThemeTweaks/Metrics/LineHeight", "text": "Hauteur ligne" }, "$:/language/ThemeTweaks/Metrics/BodyFontSize": { "title": "$:/language/ThemeTweaks/Metrics/BodyFontSize", "text": "Taille de la police dans le corps des tiddlers" }, "$:/language/ThemeTweaks/Metrics/BodyLineHeight": { "title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight", "text": "Hauteur de ligne dans le corps des tiddlers" }, "$:/language/ThemeTweaks/Metrics/StoryLeft": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft", "text": "Gauche du déroulé" }, "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint", "text": "marge gauche entre le déroulé principal<br>(zone des tiddlers) et le bord gauche de la page" }, "$:/language/ThemeTweaks/Metrics/StoryTop": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop", "text": "Haut du déroulé" }, "$:/language/ThemeTweaks/Metrics/StoryTop/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint", "text": "marge supérieure entre le déroulé pincipal<br>et le bord supérieur de la page" }, "$:/language/ThemeTweaks/Metrics/StoryRight": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight", "text": "Droite du déroulé" }, "$:/language/ThemeTweaks/Metrics/StoryRight/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint", "text": "marge de gauche entre la barre latérale<br>et le bord gauche de la page" }, "$:/language/ThemeTweaks/Metrics/StoryWidth": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth", "text": "Largeur du déroulé" }, "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint", "text": "largeur hors tout du déroulé" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth", "text": "Largeur des tiddlers" }, "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint", "text": "largeur des tiddlers dans le déroulé" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint", "text": "Décroché de la barre latérale" }, "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint", "text": "largeur minimum de la page à partir de laquelle déroulé principal et barre latérale apparaissent côte à côte" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth", "text": "Largeur de la barre latérale" }, "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": { "title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint", "text": "largeur de la barre latérale dans l'agencement //déroulé extensible—barre latérale fixe//" }, "$:/language/TiddlerInfo/Advanced/Caption": { "title": "$:/language/TiddlerInfo/Advanced/Caption", "text": "Avancé" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint", "text": "aucune information" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading", "text": "Détails sur le plugin" }, "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": { "title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint", "text": "Ce plugin contient les tiddlers <q>shadow</q> suivants :" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading", "text": "Statut <q>shadow</q>" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint", "text": "Le tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> n'est pas un tiddler <q>shadow</q>" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint", "text": "Le tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> est un tiddler <q>shadow</q>" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source", "text": "Il est défini dans le plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>" }, "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": { "title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint", "text": "Il est modifié par un tiddler normal" }, "$:/language/TiddlerInfo/Fields/Caption": { "title": "$:/language/TiddlerInfo/Fields/Caption", "text": "Champs" }, "$:/language/TiddlerInfo/List/Caption": { "title": "$:/language/TiddlerInfo/List/Caption", "text": "Liste" }, "$:/language/TiddlerInfo/List/Empty": { "title": "$:/language/TiddlerInfo/List/Empty", "text": "Ce tiddler ne contient pas de champ //list//" }, "$:/language/TiddlerInfo/Listed/Caption": { "title": "$:/language/TiddlerInfo/Listed/Caption", "text": "Listé" }, "$:/language/TiddlerInfo/Listed/Empty": { "title": "$:/language/TiddlerInfo/Listed/Empty", "text": "Ce tiddler ne figure dans le champ //list// d'aucun autre tiddler" }, "$:/language/TiddlerInfo/References/Caption": { "title": "$:/language/TiddlerInfo/References/Caption", "text": "Références" }, "$:/language/TiddlerInfo/References/Empty": { "title": "$:/language/TiddlerInfo/References/Empty", "text": "Aucun tiddler ne comporte de lien vers celui-ci" }, "$:/language/TiddlerInfo/Tagging/Caption": { "title": "$:/language/TiddlerInfo/Tagging/Caption", "text": "Étiquetage" }, "$:/language/TiddlerInfo/Tagging/Empty": { "title": "$:/language/TiddlerInfo/Tagging/Empty", "text": "Le titre de ce tiddler ne sert de tag à aucun tiddler" }, "$:/language/TiddlerInfo/Tools/Caption": { "title": "$:/language/TiddlerInfo/Tools/Caption", "text": "Outils" }, "$:/language/Docs/Types/application/javascript": { "title": "$:/language/Docs/Types/application/javascript", "description": "Code JavaScript", "name": "application/javascript", "group": "Développeur", "group-sort": "2" }, "$:/language/Docs/Types/application/json": { "title": "$:/language/Docs/Types/application/json", "description": "Données au format JSON", "name": "application/json", "group": "Développeur", "group-sort": "2" }, "$:/language/Docs/Types/application/x-tiddler-dictionary": { "title": "$:/language/Docs/Types/application/x-tiddler-dictionary", "description": "Dictionnaire de données", "name": "application/x-tiddler-dictionary", "group": "Développeur", "group-sort": "2" }, "$:/language/Docs/Types/image/gif": { "title": "$:/language/Docs/Types/image/gif", "description": "Image au format GIF", "name": "image/gif", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/jpeg": { "title": "$:/language/Docs/Types/image/jpeg", "description": "Image au format JPEG", "name": "image/jpeg", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/png": { "title": "$:/language/Docs/Types/image/png", "description": "Image au format PNG", "name": "image/png", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/svg+xml": { "title": "$:/language/Docs/Types/image/svg+xml", "description": "Image au format SVG", "name": "image/svg+xml", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/image/x-icon": { "title": "$:/language/Docs/Types/image/x-icon", "description": "Fichier icone au format ICO", "name": "image/x-icon", "group": "Image", "group-sort": "1" }, "$:/language/Docs/Types/text/css": { "title": "$:/language/Docs/Types/text/css", "description": "Feuille de style CSS statique", "name": "text/css", "group": "Développeur", "group-sort": "2" }, "$:/language/Docs/Types/text/html": { "title": "$:/language/Docs/Types/text/html", "description": "Marquage HTML", "name": "text/html", "group": "Texte", "group-sort": "0" }, "$:/language/Docs/Types/text/plain": { "title": "$:/language/Docs/Types/text/plain", "description": "Format texte", "name": "text/plain", "group": "Texte", "group-sort": "0" }, "$:/language/Docs/Types/text/vnd.tiddlywiki": { "title": "$:/language/Docs/Types/text/vnd.tiddlywiki", "description": "TiddlyWiki version 5", "name": "text/vnd.tiddlywiki", "group": "Texte", "group-sort": "0" }, "$:/language/Docs/Types/text/x-tiddlywiki": { "title": "$:/language/Docs/Types/text/x-tiddlywiki", "description": "TiddlyWiki Classic", "name": "text/x-tiddlywiki", "group": "Texte", "group-sort": "0" }, "$:/languages/fr-FR/icon": { "title": "$:/languages/fr-FR/icon", "type": "image/svg+xml", "text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"900\" height=\"600\"><rect width=\"900\" height=\"600\" fill=\"#ED2939\"/><rect width=\"600\" height=\"600\" fill=\"#fff\"/><rect width=\"300\" height=\"600\" fill=\"#002395\"/></svg>\n" } } }
This is a translation macro:Ceci est une macro de traduction About:À propos de Abstract:Résumé add:créer Add:Créer agenda:agenda Agenda:Agenda Cancel:Annuler Cancel adding new tiddler.:Annule la création d’un nouveau tiddler. Chapter:Chapitre Comments:Commentaires courses:cours Courses:Cours default:par défaut Description:Description done:terminé edit:éditer Edit tiddler:Éditer le tiddler Edition:Édition from:de Hello:Bonjour Ideas:Idées Journal:Journal Monday:Lundi Tuesday:Mardi Wednesday:Mercredi Thursday:Jeudi Friday:Vendredi Saturday:Samedi Sunday:Dimanche New article:Nouvel article New book:Nouveau livre New chapter:Nouveau chapitre New comment:Nouveau commentaire New idea:Nouvelle idée New journal:Nouvelle entrée de journal New note:Nouvelle note New person:Nouvelle personne New quote:Nouvelle citation no:non note title:Titre de la note Notes:Notes Number:Numéro Pages:Pages Publications:Publications Publisher:Éditeur Quotes:Citations Scholar Tabs:Mes onglets show:voir students:élèves Students:Élèves subtitle:sous-titre Subtitle:Sous-titre Tags:Mots clés Text:Texte title:titre Title:Titre to:à Topics:Sujets Vol.:Vol. Volume:Volume year:année Year:Année yes:oui input:entrée output:sortie
<tr> <td> <$link to="$:/Largeur de la barre de recherche"> {{$:/core/images/advanced-search-button}} Largeur de la barre de recherche</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssSearch' field='width' tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar24" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar24" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar24" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar24" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar24" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-151}} </td> </$reveal>
<tr> <td> <$link to="$:/Largeur de la barre latérale">Largeur de la barre latérale</$link> </td> <td> <$edit-text class='tc-edit-texteditor' tiddler="$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth" default="" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar02" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar02" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar02" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-013}} </td> </$reveal>
\define fa(icon, size, color) <span class="fa fa-$icon$ fa-$size$x" style="color:$color$"></span> \end
\define excel() <<fa file-excel-o 1 #008641>> \end \define word() <<fa file-word-o 1 #2A5699>> \end \define ppt() <<fa file-powerpoint-o 1 #DF5336>> \end \define pdf() <<fa file-pdf-o 1 #DA251C>> \end \define dossier() <<fa folder-open>> \end \define zip() <<fa file-archive-o>> \end \define attention() <<fa warning>> \end \define note() <<fa file-o>> \end
/*\ title: $:/macros/bj/Calendar/diary.js type: application/javascript module-type: global \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro calendar demo */ var Calendar=new Date(); var createMonth= function(mnth,year,options){ var month=[]; for (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = createDate(i,mnth,year,options); return month; } function createDate(i,mnth,year,options){ var strong='',tiddlerDate,format = $tw.wiki.getTiddlerText("$:/config/NewJournal/Title") || "YYYY MM DD"; var date=(new Date(year, mnth-1, i)); if (options.highlightLinks=="yes") strong ='!'; tiddlerDate = $tw.utils.formatDateString(date,format); if ($tw.wiki.getTiddler(tiddlerDate))return centre(strong+'[['+i+'|'+tiddlerDate+']]'); return centre('[['+i+'|'+tiddlerDate+']]'); } function daysInMonth(iMonth, iYear){ return 32 - new Date(iYear, iMonth-1, 32).getDate(); } function centre (x){ return ' '+x+' ';} exports.createMonth = createMonth; })();
/*\ title: $:/macros/bj/Calendar/journalfmt.js type: application/javascript module-type: global \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro calendar demo */ var Calendar=new Date(); var createMonth= function(mnth,year,options){ var month=[]; for (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = createDate(i,mnth,year,options); return month; } function createDate(i,mnth,year,options){ var strong='',tiddlerDate; var date=(new Date(year, mnth, i)); if (date.toDateString()===Calendar.toDateString()&&options.highlightThisDate=="yes") strong ='!'; tiddlerDate=date.getDate()+ ' '+$tw.language.getString("Date/Long/Month/" + (date.getMonth()))+' '+date.getFullYear(); if ($tw.wiki.getTiddler(tiddlerDate)!==undefined) strong ='!'; return centre(strong+'[['+i+'|'+tiddlerDate+']]'); } function daysInMonth(iMonth, iYear){ return 32 - new Date(iYear, iMonth, 32).getDate(); } function centre (x){ return ' '+x+' ';} exports.createMonth = createMonth; })();
/*\ title: $:/macros/bj/Calendar/journalslinked.js type: application/javascript module-type: global \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro calendar demo */ var Calendar=new Date(); var createMonth= function(mnth,year,options){ var month=[]; for (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = createDate(i,mnth,year,options); return month; } function createDate(i,mnth,year,options){ var strong='',tiddlerDate,format = $tw.wiki.getTiddlerText("$:/config/NewJournal/Title") || "YYYY MM DD"; var date=(new Date(year, mnth-1, i)); if (options.highlightLinks=="yes") strong ='!'; tiddlerDate = $tw.utils.formatDateString(date,format); if ($tw.wiki.getTiddler(tiddlerDate))return centre(strong+'[['+i+'|'+tiddlerDate+']]'); return i; } function daysInMonth(iMonth, iYear){ return 32 - new Date(iYear, iMonth-1, 32).getDate(); } function centre (x){ return ' '+x+' ';} exports.createMonth = createMonth; })();
/*\ title: $:/macros/buggyj/Calendar/base.js type: application/javascript module-type: macro <<diary year month>> <<diary year>> - year calendar <<diary>> - this month Options:$:/macros/diary/options.json \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro CAL demo */ exports.name = "calendarbase"; exports.params = [ { name: "year" },{ name: "month" },{ name: "opts" } ]; /* Run the macro */ exports.run = function(year, month,opts) { if (!opts) opts="default"; var options = $tw.wiki.getTiddlerData("$:/config/bj/Calendar.json")[opts]|| {lastDayOfWeek:"6",formatter:"",titlebold:"",highlightThisDay:"",highlightThisDate:""}; var createMonth; try { createMonth = require(options.formatter).createMonth; } catch (e) { createMonth= function(mnth,year){ var month=[]; for (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = i; return month; } } var boldtitle=(options.titlebold=='yes')?'!':''; var day_of_week = (function () { var days = []; for (var i = 0; i < 7; i++) {days[i] = $tw.language.getString("Date/Short/Day/" + i); } return days; })(); var month_of_year = (function () { var months = []; for (var i = 1; i < 13; i++) {months[i] = $tw.language.getString("Date/Long/Month/" + i); } return months; })(); var Calendar = new Date(); var thisyear = Calendar.getFullYear(); // year (xxxx) var thismonth = Calendar.getMonth()+1; // month (0-11) var thisday = Calendar.getDay(); // day (0-6) var WEEKFIN = parseInt(options.lastDayOfWeek); var MONTHS_IN_YEAR=12; var lf ='\n'; var cal='<div>'+lf+lf; var ayear=thisyear; if (!!month) { if (!!year) { cal+=calendar (month,year,options); } else { cal+=calendar (month,thisyear,options); } } else { if (!!year) { cal+=titleOfYear(year); options.seperateYearHeading = 'yes'; ayear=year; for(var i=0; i<MONTHS_IN_YEAR; i+=2) cal+=splicetable(calendar (i+1,ayear,options),calendar (i+2,ayear,options)); } else { cal+=calendar (thismonth,thisyear,options); } } return cal+lf+lf+'</div>'; function calendar (mnth,year,options){ var month = createMonth(mnth,year,options); var blankdays = (firstDayInMonth(mnth,year)+13-WEEKFIN)%7; return titleOfMonth(mnth,year)+createWeekHeading()+ formatAsMonth(month,blankdays); } function titleOfMonth(mth,year) { if (!!options.seperateYearHeading ) { return '|>|>|>|'+ centre(boldtitle+ month_of_year[mth]) +'|<|<|<|'+lf; } else { return '|>|>|>|'+ centre(boldtitle+ month_of_year[mth] + ' ' + year) +'|<|<|<|'+lf; } } function titleOfYear(year) { return '|>|>|>|>|>|>|>|'+ centre('!'+year) +'|<|<|<|<|<|<|<|'+lf; } function centre (x){ return ' '+x+' ';} function formatAsMonth(month,blankdays){ var theday,blank=['','|','||','|||','||||','|||||','||||||','|||||||']; var cal=blank[blankdays];//pad out before first day of month for(var i=1; i < month.length;i++){//first '0' month element is not used cal+='|'+month[i]; theday=(i+blankdays-1)%7; if (theday == 6) cal += '|' + lf; } if (theday !== 6) cal += blank[7 - theday] + lf;//pad out rest of week, if needed return cal ; } function createWeekHeading(){ var daystitle=[],weekdays= day_of_week.slice(0); // highlight today's day of week if (options.highlightThisDay=='yes')weekdays[thisday] ='!'+weekdays[thisday]; for (var i=0;i < weekdays.length; i++) daystitle[i] =centre(weekdays[(i+1+WEEKFIN)%7]); return '|'+daystitle.join('|')+'|'+lf; } function daysInMonth(iMonth, iYear){ return 32 - new Date(iYear, iMonth-1, 32).getDate(); } function firstDayInMonth(iMonth, iYear){ return new Date(iYear, iMonth-1, 1).getDay(); } function splicetable (a,b) { var i,cal='',taba =a.split('\n'),tabb=b.split('|\n'); var limit=(taba.length<tabb.length)?taba.length:tabb.length;//shortest for (i=0;i<limit-1;i++) cal+=taba[i]+tabb[i]+'|'+lf; for (;i < taba.length-1;i++) cal+=taba[i]+"||||||||"+lf; for (;i < tabb.length-1;i++) cal+="||||||||"+tabb[i]+lf; return cal; } } })();
/*\ title: $:/macros/buggyj/Calendar/entry.js type: application/javascript module-type: macro <<calendar year month>> <<calendar year>> - year calendar <<calendar>> - this month Options:$:/macros/diary/options.json \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro CAL demo */ exports.name = "calendar"; exports.params = [ { name: "year" },{ name: "month" },{ name: "opts" } ]; /* Run the macro */ exports.run = function(year, month,opts) { return '<$macrorefresh $name="calendarbase" year="'+year+'" month="'+month+'" opts="'+opts+'" $refresh="calendarrefresh"/>'; } })();
/*\ title: $:/macros/buggyj/Calendar/entry2.js type: application/javascript module-type: macro <<diary year month>> <<diary year>> - year calendar <<diary>> - this month Options:$:/macros/diary/options.json \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro CAL demo */ exports.name = "diary"; exports.params = [ { name: "year" },{ name: "month" },{ name: "opts" } ]; /* Run the macro */ exports.run = function(year, month,opts) { var tags = $tw.wiki.getTiddlerText("$:/config/NewJournal/Tags"); if (!opts) opts = "diary"; return '<$ifnew fields="""{"tags":"'+tags+'"}""">' + '<$macrorefresh $name="calendarbase" year="'+year+'" month="'+month+'" opts="'+opts+'" $refresh="calendarrefresh"/>'+ '</$ifnew>'; } })();
/*\ title: $:/macros/buggyj/Calendar/ifnew.js type: application/javascript module-type: widget Linkcatcher widget ToDo - add message param to listen for other mssg and action to set other actions (link just create) \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var IfNewWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); this.addEventListeners([ {type: "tm-navigate", handler: "handleNavigateEvent"} ]); }; /* Inherit from the base widget class */ IfNewWidget.prototype = new Widget(); /* Render this widget into the DOM */ IfNewWidget.prototype.render = function(parent,nextSibling) { this.parentDomNode = parent; this.computeAttributes(); this.execute(); this.renderChildren(parent,nextSibling); }; /* Compute the internal state of the widget */ IfNewWidget.prototype.execute = function() { // Get our parameters this.fields = this.getAttribute("fields"); this.catchMessage = this.getAttribute("message"); // Construct the child widgets this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ IfNewWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes.fields || changedAttributes.message ) { this.refreshSelf(); return true; } else { return this.refreshChildren(changedTiddlers); } }; /* Handle a tm-navigate event */ IfNewWidget.prototype.handleNavigateEvent = function(event) { var tiddler = this.wiki.getTiddler(event.navigateTo),fds; if(tiddler) return true; try { fds=JSON.parse(this.fields); } catch(e) { fds={}; } fds.title = event.navigateTo; if(this.parentWidget) { this.parentWidget.dispatchEvent({ type: "tm-new-tiddler", param: fds }); } return false; }; exports.ifnew = IfNewWidget; })();
/*\ title: $:/macros/buggyj/Calendar/refresh.js type: application/javascript module-type: macro <<diary year month>> <<diary year>> - year calendar <<diary>> - this month Options:$:/macros/diary/options.json \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro CAL demo */ exports.name = "calendarrefresh"; exports.params = [ { name: "year" },{ name: "month" },{ name: "opts" },{name:"changedTiddlers"} ]; // Source: http://stackoverflow.com/questions/497790 var dates = { convert:function(d) { // Converts the date in d to a date-object. The input can be: // a date object: returned without modification // an array : Interpreted as [year,month,day]. NOTE: month is 0-11. // a number : Interpreted as number of milliseconds // since 1 Jan 1970 (a timestamp) // a string : Any format supported by the javascript engine, like // "YYYY/MM/DD", "MM/DD/YYYY", "Jan 31 2009" etc. // an object : Interpreted as an object with year, month and date // attributes. **NOTE** month is 0-11. return ( d.constructor === Date ? d : d.constructor === Array ? new Date(d[0],d[1],d[2]) : d.constructor === Number ? new Date(d) : d.constructor === String ? new Date(d) : typeof d === "object" ? new Date(d.year,d.month,d.date) : NaN ); }, compare:function(a,b) { // Compare two dates (could be of any type supported by the convert // function above) and returns: // -1 : if a < b // 0 : if a = b // 1 : if a > b // NaN : if a or b is an illegal date // NOTE: The code inside isFinite does an assignment (=). return ( isFinite(a=this.convert(a).valueOf()) && isFinite(b=this.convert(b).valueOf()) ? (a>b)-(a<b) : NaN ); }, inRange:function(d,start,end) { // Checks if date in d is between dates in start and end. // Returns a boolean or NaN: // true : if d is between start and end (inclusive) // false : if d is before start or after end // NaN : if one or more of the dates is illegal. // NOTE: The code inside isFinite does an assignment (=). return ( isFinite(d=this.convert(d).valueOf()) && isFinite(start=this.convert(start).valueOf()) && isFinite(end=this.convert(end).valueOf()) ? start <= d && d <= end : NaN ); } } /* Run the macro */ exports.run = function(year, month,opts,changedTiddlers) { var found = false; var journaltag = "Journal"; $tw.utils.each(changedTiddlers,function(attribute,name) { if (attribute.deleted) { return; } var tiddler = $tw.wiki.getTiddler(name); var tags = (tiddler.fields.tags || []).slice(0); if(tags.indexOf(journaltag) != -1) { found = true; } }); if (found) return "found"; return ""; } })();
\define ref(label) <$button popup="$:/state/$label$" class="tc-btn-invisible tc-slider"><sup style="color:green">$label$</sup></$button> \end \define definition(label,text) <$reveal type="popup" state="$:/state/$label$" animate="yes"> <div class="tc-drop-down"> <dl> <dt>$label$</dt> <dd>$text$</dd> </dl> </div> </$reveal> \end \define footnote(label,text) <<ref "$label$">> <<definition "$label$" "$text$">> \end \define footnotes(label,text) <<definition "$label$" "$text$">> <sub><span style="color:green">$label$ : </span> $text$</sub> \end
/*\ title: $:/macros/skeeve/rojo.js type: application/javascript module-type: macro \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro This is developed to put some text in red. */ exports.name = "rojo"; exports.params = [ { name: "textToColorize" } ]; /* Run the macro */ exports.run = function(textToColorize) { if( !textToColorize) textToColorize = "IMPORTANT"; return spanize(textToColorize,"red"); function spanize(texto,color){ return "<span style='color:" + color + "'>" + texto + "</span>"; } }; })();
\define search(state:"$:/temp/search") <div class="tc-sidebar-lists"> <$set name="searchTiddler" value="$state$"> <div class="tc-search"> <$edit-text tiddler="$state$" type="search" tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">> class="tc-popup-handle"/> <$reveal state="$state$" type="nomatch" text=""> <$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/advancedsearch" text={{$state$}}/> <$action-setfield $tiddler="$state$" text=""/> <$action-navigate $to="$:/AdvancedSearch"/> {{$:/core/images/advanced-search-button}} </$button> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$state$" text="" /> {{$:/core/images/close-button}} </$button> <$button popup=<<qualify "$:/state/popup/search-dropdown">> class="tc-btn-invisible"> {{$:/core/images/down-arrow}} <$list filter="[{$state$}minlength{$:/config/Search/MinLength}limit[1]]" variable="listItem"> <$set name="resultCount" value="""<$count filter="[!is[system]search{$(searchTiddler)$}]"/>"""> {{$:/language/Search/Matches}} </$set> </$list> </$button> </$reveal> <$reveal state="$state$" type="match" text=""> <$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible"> {{$:/core/images/advanced-search-button}} </$button> </$reveal> </div> <$reveal tag="div" class="tc-block-dropdown-wrapper" state="$state$" type="nomatch" text=""> <$reveal tag="div" class="tc-block-dropdown tc-search-drop-down tc-popup-handle" state=<<qualify "$:/state/popup/search-dropdown">> type="nomatch" text="" default=""> <$list filter="[{$state$}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem"> {{$:/core/ui/SearchResults}} </$list> </$reveal> </$reveal> </$set> </div> \end
/*\ title: $:/macros/jed/randVal.js type: application/javascript module-type: macro Usage: <<randVal lower upper step>> Returns: A random number between the number lower and upper in increments of step. So <<randVal 1 10 0.5>> gives a random value between 1 and 10 (inclusive) and allows values that are multiples of 0.5 so the output would be picked from the set {1, 1.5, 2, ..., 9.5, 10} according to a uniform distribution. step defaults to 1 so default behaviour with two inputs returns an integer. Note that the output is always a multiple of the step size plus lower, so <<randVal 1 10 5>> will only return 1 or 6 (1+5*0 and 1+5*1) because 1+5+5=11 (that is 1+5*2) is out of the accepted range of outputs. When step is larger than upper-lower this returns lower \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; exports.name = "randVal"; exports.params = [ { name: "lower" }, { name: "upper" }, { name: "step" } ]; /* Run the macro */ exports.run = function(lower, upper, step) { if( !step ) step = 1; var numpts = (Number(upper)-Number(lower))/Number(step); var size = Number(upper)-Number(lower); var output = lower; if ( numpts <= 1 ) { var ouput = lower; } else { var output = Math.round((Math.random()*numpts))*Number(step) + Number(lower); if ( output > upper) { var output = upper; } } return output; }; })();
(function(){ "use strict"; exports.name = "ColCalc"; exports.params = [ { name: "tableid"}, { name: "func"}, { name: "startrow" }, { name: "endrow" }, { name: "modif"} ]; /* Run the macro */ exports.run = function(tabid, fn, row, last, allrows) { /* Initialize the main variables */ var allCells=(allrows.toLowerCase()=='all'); var startrow=row; var endrow=last; try{ var parent = document.getElementById(tabid); var xparent = parent.firstChild; var nrows = xparent.rows.length-1; } catch(err){ var xparent = document.getElementById(tabid); var nrows = xparent.rows.length-1; } var col=xparent.rows[nrows].cells.length-1; var nrow = xparent.getElementsByTagName("tr"); var x=nrows; if (startrow<=0) startrow=1*startrow+row; else startrow=startrow-1; if (startrow<=0) startrow=0; endrow=last; if (endrow<=0) endrow=1*endrow+x; if (endrow<startrow) endrow=startrow; var avg=0; var total=0; var count=0; var max=-99999999; var minimum=99999999; var r=0; var allpercentflag="yes"; for (r=startrow; r<=endrow; r++) { var percentflag="no"; var val=0; var counted=0; //crashes if cell does not exist try { var cell = nrow[r].children[col].innerHTML; } catch(err){ var cell =""; } //end first try/catch try { eval(cell); } catch(err){ var res=cell.search("<span"); if (res>-1){ var regex = /^(.*>?)>(.*?)<\/.*>*$/gmi; var subst = `$2`; var str=cell; cell = str.replace(regex, subst); } var res = cell.search("<"); if (res>-1) // a function { var cell=nrow[r].children[col].children[0].value; // but since we can't always interpret them we'll replace it if (cell === undefined) cell = ""; } } //end second try/catch var hms=cell.split(':'); // an hh:mm:ss time value if (hms.length==3) { var val=(hms[0]||0)*3600+(hms[1]||0)*60+(hms[2]||0)*1; var showTime=true; // use time formatting for results... total+=val; count++;counted=1; percentflag="no"; allpercentflag="no"; if (val<minimum) {minimum=val; } if(val>max) {max=val;} } // a numeric value if (cell.length && !isNaN(cell)) { var val=eval(cell); percentflag="no"; allpercentflag="no"; total+=val; count++;counted=1; if (val<minimum) {minimum=val; } if(val>max) {max=val;} } //else //handle numbers that are percents res = cell.search("%"); if (res>0){ cell = cell.slice(0,res); var val=eval(cell); var percentflag ="yes"; // allpercentflag="yes"; val=val/100; total+=val; count++;counted=1; if (val<minimum) {minimum=val; } if(val>max) {max=val;} } //non-numeric, non-empty if(cell.length && allCells && counted<1) {count++} } //end for loop switch (fn) { case 'count': var result=count; break; case 'maximum': case 'max': // if (max =99999999) max="N/A"; var result=max; if (allpercentflag=="yes") { result=result*100; result=result+"%"; } break; case 'minimum': case 'min': // if (minimum =-99999999) minimum="N/A"; var result=minimum; if (allpercentflag=="yes") { result=result*100; result=result+"%"; } break; case 'average': case 'avg': var result = total/count; if (allpercentflag=="yes") result=result*100; var result=Math.floor(result*100)/100; // truncate to two decimal places if (allpercentflag=="yes") result=result+"%"; break; case 'total': case 'sum': default: var result=total; if (allpercentflag=="yes") result=result*100; var result=Math.floor(result*100)/100; // truncate to two decimal places if (allpercentflag=="yes") result=result+"%"; break; } // end switch if (showTime && fn!='count') { var h=Math.floor(result/3600); var m=Math.floor((result-h*3600)/60); var s=Math.floor((result-h*3600-m*60)*100)/100; // truncate to two decimal places result=(h<10?'0':'')+h+':'+(m<10?'0':'')+m+':'+(s<10?'0':'')+s; } //end showtime return result; }; })();
(function(){ "use strict"; exports.name = "eval"; exports.params = [ { name: "cell" }, { name:"datatiddler" }, {name:"target"}, {name:"format"} ]; /* Run the macro */ exports.run = function(cell,datatiddler,target,format) { // If no datatiddler supplied, use current instead if (datatiddler=="") { var c=this.getVariable("currentTiddler"); datatiddler = c; } var a=datatiddler+"!!"+cell; //the the cell contents var formula =-1; var b =$tw.wiki.getTextReference(a); if (b==undefined) { b=cell; } formula = b.indexOf("="); if (formula < 0) { var sk=b; } else { //its a formula var re = /(.*?)!!(.*?)([&\-+*\/,\)]|$)(.*?)$/; do { var bhold=b; var subst = '!!$2'; //find the last referenced cell var refcell = b.replace(re, subst); var tempcell = "!!"+cell; if (refcell===tempcell) {return "Circular Ref ";} //get the value of the referenced cell and substitute it a=datatiddler+refcell.toLowerCase(); //a=a.toLowerCase(); var subst ="$1("+$tw.wiki.getTextReference(a)+")$3$4"; var b = b.replace(re, subst); } while (bhold!=b); re = /=/g; var subst = ''; b = b.replace(re, subst); re=/@/g; subst ="Math."; b = b.replace(re, subst); re = /math/g; subst = 'Math'; b = b.replace(re, subst); re = /pi/; subst = 'PI'; b= b.replace(re, subst); var f=b.indexOf("&"); if (f>0) { //string concatenation //remove parenthesis re = /[\(\)]/g; subst = ''; b= b.replace(re, subst); //change & to space re = /&/g; var subst = ' '; b = b.replace(re, subst); // end of concatenation } try {var sk=eval(b);} catch(err) {sk = b;} // Number formatting here //end of formula } if (format != "") { try{ b=Number(sk); if (isNaN(b)) {return sk;} sk=b; sk=sk.toFixed(format).replace(/(\d)(?=(\d{3})+(\.|$))/g, '$1,');} catch(err) {} } if (target!=="") { var skeleton=$tw.wiki.setText(datatiddler,target,'',sk); } return sk; }; })();
(function(){ "use strict"; exports.name = "eval1"; exports.params = [ { name: "cell" }, { name:"datatiddler" }, { name:"format"} ]; /* Run the macro */ exports.run = function(cell,datatiddler,format) { return '<$reveal state="$:/state/formulas" type="match" text="yes">`'+cell+'`<$edit-text tiddler="'+datatiddler+'" field="'+cell+'" /></$reveal><$reveal state="$:/state/formulas" type="nomatch" text="yes"><$macrocall $name="eval" datatiddler="'+datatiddler+'" cell="'+cell+'" format="'+format+'"/></$reveal>'; }; })();
(function(){ "use strict"; exports.name = "RowCalc"; exports.params = [ { name: "tableid"}, { name: "func"}, { name: "startcol" }, { name: "endcol" }, { name: "modif"} ]; /* Run the macro */ exports.run = function(tabid, fn, first, last, allcols) { /* Initialize the main variables */ var allCells=(allcols.toLowerCase()=='all'); var startcol=first; var endcol=last*1; try{ var parent = document.getElementById(tabid); var xparent = parent.firstChild; var nrows = xparent.rows.length-1; } catch(err){ var xparent = document.getElementById(tabid); var nrows = xparent.rows.length-1; } var col=xparent.rows[nrows].cells.length-1; var nrow = xparent.getElementsByTagName("tr"); var x=nrows; if (startcol<=0) startcol=1*startcol; else startcol=startcol-1; if (startcol<=0) startcol=0; if (endcol<=0) endcol=1*col+1*endcol; else endcol=endcol-1; if (endcol<startcol) endcol=startcol; var avg=0; var total=0; var count=0; var max=0; var minimum=99999999; var c=0; var allpercentflag="yes"; for (c=startcol; c<=endcol; c++) { var val=0; var counted=0; var percentflag="no"; //crashes if cell does not exist try { var cell = nrow[nrows].children[c].innerHTML; } catch(err){ var cell =""; } try { eval(cell); } catch(err){ var res = cell.search("<"); if (res>-1) // a function { var cell=nrow[nrows].children[c].children[0].value; if (cell === undefined) cell = ""; } } //end catch var hms=cell.split(':'); // an hh:mm:ss time value if (hms.length==3) { var percentflag="no"; var allpercentflag="no"; var val=(hms[0]||0)*3600+(hms[1]||0)*60+(hms[2]||0)*1; var showTime=true; // use time formatting for results... total+=val; count++;counted=1; if (val<minimum) {minimum=val; } if(val>max) {max=val;} } // a numeric value if (cell.length && !isNaN(cell)) { var percentflag="no"; var allpercentflag="no"; var val=eval(cell); total+=val; count++;counted=1; if (val<minimum) {minimum=val; } if(val>max) {max=val;} } //handle numbers that are percents res = cell.search("%"); if (res>0){ cell = cell.slice(0,res); var val=eval(cell); var percentflag ="yes"; //alert ("c = "+c+" startcol = "+startcol); // if (c=startcol) allpercentflag="yes"; val=val/100; total+=val; count++;counted=1; if (val<minimum) {minimum=val; } if(val>max) {max=val;} } //non-numeric, non-empty if(cell.length && allCells && counted<1) {count++} } //end for loop switch (fn) { case 'count': var result=count; break; case 'maximum': case 'max': // if (max =99999999) max="N/A"; var result=max; if (allpercentflag=="yes") { result=result*100; result=result+"%"; } break; case 'minimum': case 'min': // if (minimum =-99999999) minimum="N/A"; var result=minimum; if (allpercentflag=="yes") { result=result*100; result=result+"%";} break; case 'average': case 'avg': var result = total/count; if (allpercentflag=="yes") result=result*100; var result=Math.floor(result*100)/100; // truncate to two decimal places if (allpercentflag=="yes") result=result+"%"; break; case 'total': case 'sum': default: var result=total; if (allpercentflag=="yes") result=result*100; var result=Math.floor(result*100)/100; // truncate to two decimal places if (allpercentflag=="yes") result=result+"%"; break; } // end switch if (showTime && fn!='count') { var h=Math.floor(result/3600); var m=Math.floor((result-h*3600)/60); var s=Math.floor((result-h*3600-m*60)*100)/100; // truncate to two decimal places result=(h<10?'0':'')+h+':'+(m<10?'0':'')+m+':'+(s<10?'0':'')+s; } //end showtime return result }; })();
\define pageLink(tiddlers,text) <$button class="tc-btn-invisible tc-tiddlylink"> <$action-setfield $tiddler="$:/StoryList" list="""$tiddlers$"""/> """$text$""" </$button> \end
\define textSlider(label text) <$reveal type="nomatch" state="$:/state/$label$" text="show"> <$button set="$:/state/$label$" setTo="show" class="tc-btn-invisible"><i class="fa fa-angle-right" aria-hidden="true"></i> $label$</$button> </$reveal> <$reveal type="match" state="$:/state/$label$" text="show"> <$button set="$:/state/$label$" setTo="hide" class="tc-btn-invisible"><i class="fa fa-angle-down" aria-hidden="true"></i> $label$</$button> $text$ </$reveal> \end
{{$:/Menus||caption}}
{{$:/MenusContrôle||caption}}
{{$:/MenusDocUser||caption}}
\define visibility(tiddler) $:/config/ViewToolbarButtons/Visibility/$tiddler$ \define lecture() <$button>Contribuer <!-- set switch state --> <$action-setfield $tiddler="$:/n0d1/tw/mode/state" text="admin" /> <!-- set styles --> <$action-setfield $tiddler="$:/n0d1/tw/mode/css" tags="" /> <!-- set sidebar - rétablir les tags --> <$action-setfield $tiddler="$:/core/ui/SideBar/More" tags="$:/tags/SideBar" /> <$action-setfield $tiddler="$:/core/ui/SideBar/Tools" tags="$:/tags/SideBar" /> <$action-setfield $tiddler="$:/core/ui/AdvancedSearch/System" tags="$:/tags/AdvancedSearch" /> <$action-setfield $tiddler="$:/core/ui/AdvancedSearch/Shadows" tags="$:/tags/AdvancedSearch" /> <$action-setfield $tiddler="$:/core/ui/AdvancedSearch/Filter" tags="$:/tags/AdvancedSearch" /> <$action-setfield $tiddler="$:/search/Field" tags="$:/tags/AdvancedSearch" /> <!-- Ajouter quand même le tiddler de bascule --> <$action-setfield $tiddler="$:/n0d1/tw/mode/bouton" tags="$:/tags/MoreSideBar" /> <!-- Édition dictionnaire $:/themes/jd/Material/ConfigDB --> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab $value="$:/core/ui/Buttons/new-tiddler"/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab1 $value="$:/core/ui/Buttons/new-journal"/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab2 $value="$:/core/ui/Buttons/advanced-search"/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab3 $value="$:/core/ui/Buttons/control-panel"/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab6 $value="$:/core/ui/Buttons/manager"/> <!-- show buttons --> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/more-tiddler-actions">> text="show" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/edit">> text="show" /> <!-- <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/export-tiddler">> text="hide" /> --> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel" text="show" /> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="show" /> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions" text="show" /> <$action-setfield $tiddler="$:/state/sidebar" text="yes"/> <!-- save wiki --> <$action-sendmessage $message="tm-save-wiki" /> </$button> \end \define admin() <$button>Activer le mode lecture <!-- hide buttons tiddler : plus d'action, édition--> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/more-tiddler-actions">> text="hide" /> <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/edit">> text="hide" /> <!-- Afficher le bouton d'export sur les tiddlers <$action-setfield $tiddler=<<visibility "$:/core/ui/Buttons/export-tiddler">> text="show" /> --> <!-- Ajouter quand même le tiddler de bascule --> <$action-setfield $tiddler="$:/n0d1/tw/mode/bouton" tags="$:/tags/SideBar" /> <!-- Masquer les boutons Config et Nouveau Tiddler de barre de menu --> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel" text="hide" /> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="hide" /> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions" text="show" /> <!--Édition dictionnaire $:/themes/jd/Material/ConfigDB --> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab $value=""/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab1 $value=""/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab2 $value=""/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab3 $value=""/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab4 $value=""/> <$action-setfield $tiddler="$:/themes/jd/Material/ConfigDB" $index=fab6 $value=""/> <!-- $:/core/ui/Buttons/advanced-search $:/core/ui/Buttons/new-tiddler --> <!-- clear cache --> <$action-setfield $tiddler="$:/state/sidebar" text="yes" /> <$action-setfield $tiddler="$:/HistoryList" text="" /> <$action-setfield $tiddler="$:/temp/search" text="" /> <!-- set switch state--> <$action-setfield $tiddler="$:/n0d1/tw/mode/state" text="lecture" /> <!-- set styles - active la css spécifique si besoin d'options complémentaires --> <$action-setfield $tiddler="$:/n0d1/tw/mode/css" tags="$:/tags/Stylesheet" /> <!-- set sidebar - supprimer les tags pour masquer les éléments Plus et Outils--> <$action-setfield $tiddler="$:/core/ui/SideBar/More" tags="" /> <$action-setfield $tiddler="$:/core/ui/SideBar/Tools" tags="" /> <!-- Masquer du bloc de recherche les onglets trop curieux :D--> <$action-setfield $tiddler="$:/core/ui/AdvancedSearch/System" tags="" /> <$action-setfield $tiddler="$:/core/ui/AdvancedSearch/Shadows" tags="" /> <$action-setfield $tiddler="$:/core/ui/AdvancedSearch/Filter" tags="" /> <$action-setfield $tiddler="$:/search/Field" tags="" /> <$action-setfield $tiddler="$:/state/sidebar" text="no"/> <!-- save wiki --> <$action-sendmessage $message="tm-save-wiki" /> </$button> \end <table class="table"> <thead> <tr> <th>Mode</th> <th>Position</th> </tr> </thead> <tbody> <tr class="active"> <td>Mode actuel</td> <td>{{$:/n0d1/tw/mode/state}}</td> </tr> </tbody> </table> <$macrocall $name={{$:/n0d1/tw/mode/state}} /> Ce wiki utilise la version ''<<version>>'' de TiddlyWiki.
/* pas encore utilisée - peut servir à masquer/afficher avec le bouton mode switch si besoin */
admin
<<dbadge "~TiddlyFrame" "~NavBar">> <div align="center"> <$button to="$:/NavBar" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Il y a <$count filter="[tag[$:/NavBar]]"/> Tiddlers tagués <<tag "$:/NavBar">> </$button> </div> <$details summary="Résumé"></$details> <table> <tr> <th align="center"> Tiddler </th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[$:/NavBar]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table>
<div class="container"> <div class="columns"> <div class="column col-1"> {{$:/core/ui/Buttons/more-page-actions}} </div> <div class="column col-5"> <<search>> </div> <div class="column col-3"> <div class="dropdown dropdown-right"> <a href="#" class="btn btn-link dropdown-toggle" tabindex="0"><i class="icon icon-menu"></i> Actions</a> <ul class="menu"> <li><$button message="tm-home" class="btn btn-link btn-sm"> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> Home </$list> </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/ControlPanel"/> Control panel </$button></li> <li><$button class="btn btn-link btn-sm"> <$action-sendmessage $message="tm-save-wiki" /> Sauver wiki </$button></li> <li><$button class="btn btn-link btn-sm"> <$action-sendmessage $message="tm-new-tiddler" /> Nouveau Tiddler </$button></li> <li><$button class="btn btn-link btn-sm"> <$action-sendmessage $message="tm-close-all-tiddlers" /> Tout fermer </$button></li> <li><$button message="tm-open-window" param="$:/core/ui/SideBarLists" tooltip="Ouvrir le menu en PopUp" aria-label="Menu" class="btn btn-link btn-sm">Ouvrir Menu Pop</$button></li> <li><$button class='btn btn-link btn-sm' to='$:/Polices-Alignements' tooltip='Changer de paramètres Polices/Tailles/Couleur'>Texte + ou -</$button></li> <li><$button class="btn btn-link btn-sm"> <$action-navigate $to="$:/tw-admin/content"/> Param Libre </$button></li> </ul> </div> </div> <div class="column col-3"> <div class="dropdown dropdown-right"> <a href="#" class="btn btn-link dropdown-toggle" tabindex="0"><i class="icon icon-link"></i> Épinglé</a> <ul class="menu"> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/plugins/ajh/favorites/SideBar"/> Favoris </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="TableOfContents"/> Sommaire </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/core/ui/SideBar/Open"/> Ouverts </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/core/ui/SideBar/Recent"/> Récents </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/core/ui/SideBar/More"/> Plus </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="Paramètres"/> Paramètres </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/ButtonNewMenu"/> Menus </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="Encours2"/> Encours </$button></li> <li><$button class="btn btn-link btn btn-sm"> <$action-navigate $to="$:/NavBarContent"/> Ouvrir cette barre </$button></li> </ul> </div> </div> </div> </div>
<<dbadge "~TiddlyFrame" "~$:/NavBarContrôle">> <div align="center"> <$button to="$:/NavBarContrôle" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Il y a <$count filter="[tag[$:/NavBarContrôle]]"/> Tiddlers tagués <<tag "$:/NavBarContrôle">> </$button> </div> <$details summary="Résumé"></$details> <table> <tr> <th align="center">Tiddler</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[$:/NavBarContrôle]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table>
<<dbadge "Documentation" "Utilisateur">> <div align="center"> <$button to="$:/NavBarDocUser" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Il y a <$count filter="[tag[$:/NavBarDocUser]]"/> Tiddlers tagués <<tag "$:/NavBarDocUser">> </$button> </div> <$details summary="Résumé"></$details> <table> <tr> <th align="center"> Tiddler </th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[$:/NavBarDocUser]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table>
\define lingo-base() $:/language/ThemeTweaks/ ;Barre de Navigation seule <$button class="bttn-fill bttn-sm bttn-primary" to={{!!select-option}} tooltip="Template Barre de navigation seule"> <i class="fa fa-spinner"></i> ~NavBar Seule {{$:/RemoveTemplates}} <!-- Add the NavBar --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Add the Menu into the NavBar --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- SPÉCIFIQUE --> {{$:/removeSpecificNoBars}} </$button> <$select tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout"><option value="fixed-fluid"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value="fluid-fixed"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> <$details summary="Assistant"> {{$:/doc-user-085}} </$details>
;Barre deNavigation et barre latérale droite, <br/> déplaçable à gauche. <$button class="bttn-fill bttn-sm bttn-primary" to={{!!select-option}} tooltip="Barre de Navigation et SideBar"> <i class="fa fa-spinner"></i> ~NavBar + ~SideBar <!-- Désactivation de toutes les barres --> {{$:/RemoveTemplates}} <!-- La SideBar DOIT être en position fixed-fluid --> <$action-setfield $tiddler='$:/themes/tiddlywiki/vanilla/options/sidebarlayout' text="fixed-fluid" /> <!-- SideBar in normal position (right) --> <$action-setfield $tiddler='$:/state/sidebar' text="yes" /> <!-- Add chevron (sidebar) --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="$:/tags/TopRightBar" /> <!-- Add the NavBar --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Add the Menu into the NavBar --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- SPÉCIFIQUE --> {{$:/removeSpecificNoBars}} </$button> <$details summary="Plus de détails"> {{$:/doc-user-048}} {{$:/doc-user-089}} </$details>
.tag1_css a { color:green; } .tag1_css a:hover { color:orange; } .tag2_css a { color:red; } .tag2_css a:hover { color:black; } .tag3_css a { color:yellow; } .tag3_css a:hover { color:pink; }
\define GetLinkClass() $(TagUsed)$_css \end \define MakeNeatLinkEntry(tiddler tagUsed) <$list filter='[[$tiddler$]tag[$tagUsed$]]'> <$set name=TagUsed value=$tagUsed$> <span class=<<GetLinkClass>>><$link to="$tiddler$">$tiddler$</$link></span> </$set> </$list> \end \define MakeBoringLinkEntry(tiddler) <$list filter='[[$tiddler$]!tag[tag1]!tag[tag2]!tag[tag3]][[$tiddler$]!has[text]!has[tags]]'> <$link to="$tiddler$">$tiddler$</$link> </$list> \end \define NeatLink(tiddler) <<MakeNeatLinkEntry """$tiddler$""" tag1>> <<MakeNeatLinkEntry """$tiddler$""" tag2>> <<MakeNeatLinkEntry """$tiddler$""" tag3>> <<MakeBoringLinkEntry """$tiddler$""">> \end
<?xml version="1.0" encoding="iso-8859-1"?> <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="25px" height="25px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve"> <g> <path d="M448,177.14V448c0,35.344-28.656,64-64,64H64c-35.344,0-64-28.656-64-64V128c0-35.344,28.656-64,64-64h270.844l-63.969,64 H64v320h320V241.156L448,177.14z M398.875,45.25L376.25,67.875l67.875,67.891l22.625-22.625L398.875,45.25z M444.125,0 L421.5,22.625l67.875,67.891L512,67.875L444.125,0z M150,294.188l67.875,67.875L421.5,158.406l-67.875-67.891L150,294.188z M128,384h64l-64-64V384z"/> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> </svg>
<tr> <td> <$link to="$:/Nom de la police">Nom de la police</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssEditeur' field='font-family'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal33" text="show"><$button set="$:/state/SampleRowReveal33" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal33" text="show"><$button set="$:/state/SampleRowReveal33" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal33" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-138}} </td> </$reveal>
<tr> <td> <$link to="$:/Opacité fond SideBar"> Opacité du fond (%)</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssSideBarBackground' field='gradient-percent' tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar28" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar28" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar28" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar28" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar28" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-175}} </td> </$reveal>
\define thisFontWeightRadio(weight) <$radio tiddler='$:/state/Site Accessability Options' field=fontweight value=$weight$> $weight$</$radio> \end \define thisFontSize(size) <$radio tiddler='$:/state/Site Accessability Options' field=fontsize value=$size$px> $size$</$radio> \end \define thisLineHeight(height) <$radio tiddler='$:/state/Site Accessability Options' field=lineheight value=$height$px> $height$</$radio> \end \define thisWordSpacing(spacing) <$radio tiddler='$:/state/Site Accessability Options' field=wordspacing value=$spacing$> $spacing$</$radio> \end \define thisLetterSpacing(spacing) <$radio tiddler='$:/state/Site Accessability Options' field=letterspacing value=$spacing$> $spacing$</$radio> \end \define thisTextDecorations(decoration) <$radio tiddler='$:/state/Site Accessability Options' field=textdecoration value=$decoration$> $decoration$</$radio> \end <table class="table table-striped table-hover"> <thead> <tr> <th>Caractéristiques</th> <th>Choix</th> </tr> </thead> <tbody> <tr> <td>Caractères</td> <td><<thisFontWeightRadio normal>><br/> <<thisFontWeightRadio bold>><br/> <<thisFontWeightRadio lighter>><br/> <<thisFontWeightRadio 300>><br/> <<thisFontWeightRadio 500>><br/> <<thisFontWeightRadio 700>><br/> <<thisFontWeightRadio 900>></td> </tr> <tr> <td>Tailles (px)</td> <td><<thisFontSize 10>><br/> <<thisFontSize 12>><br/> <<thisFontSize 15>><br/> <<thisFontSize 17>><br/> <<thisFontSize 19>><br/> <<thisFontSize 21>><br/> <<thisFontSize 25>></td> </tr> <tr> <td>Espacement lignes</td> <td><<thisLineHeight 17>><br/> <<thisLineHeight 19>><br/> <<thisLineHeight 22>><br/> <<thisLineHeight 24>><br/> <<thisLineHeight 26>><br/> <<thisLineHeight 28>><br/> <<thisLineHeight 32>></td> </tr> <tr> <td>Espacement mots</td> <td><<thisWordSpacing normal>><br/> <<thisWordSpacing 1ex>><br/> <<thisWordSpacing 1.5ex>><br/> <<thisWordSpacing 2ex>><br/> <<thisWordSpacing 3ex>><br/> <<thisWordSpacing 5ex>></td> </tr> <tr> <td>Espacement lettres</td> <td><<thisLetterSpacing normal>><br/> <<thisLetterSpacing 0.1ex>><br/> <<thisLetterSpacing 0.3ex>><br/> <<thisLetterSpacing 0.75ex>><br/> <<thisLetterSpacing 1ex>></td> </tr> <tr> <td>Décoration</td> <td><<thisTextDecorations none>><br/> <<thisTextDecorations underline>><br/> <<thisTextDecorations overline>></td> </tr> <tr> <td>Couleur des textes</td> <td><$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='font-color' type='color'/></td> </tr> </tbody> </table>
<tr> <td> <$link to="$:/Ôter la SideBar (Espace non comblé)"> Ôter la ~SideBar (Espace non comblé)</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/PageTemplate/sidebar' tag='$:/tags/PageTemplate'></$checkbox> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar12" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar12" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar12" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar12" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar12" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-049}} </td> </$reveal>
\define lingo-base() $:/language/ThemeTweaks/ ;Sans barres de menu <$button class="bttn-fill bttn-sm bttn-primary" to={{!!select-option}} tooltip="Template Aucune barre de Menu"> <i class="fa fa-spinner"></i> Sans barres {{$:/RemoveTemplates}} <!--Ajouter "créer un nouveau tiddler" aux boutons de contrôle --> <$fieldmangler tiddler="$:/core/ui/Buttons/new-tiddler"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/ViewToolbar'/> </$fieldmangler> <!--Ajouter le bouton de sauvegarde du wiki aux boutons de contrôle --> <$fieldmangler tiddler="$:/core/ui/Buttons/save-wiki"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/ViewToolbar'/> </$fieldmangler> <!--Ajouter le bouton d'accès au menu aux boutons de contrôle --> <$fieldmangler tiddler="$:/core/ui/Buttons/SideBarTabs"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/ViewToolbar'/> </$fieldmangler> <!--Ajouter le bouton d'accès au panneau de contrôle aux boutons de contrôle --> <$fieldmangler tiddler="$:/core/ui/Buttons/control-panel"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/ViewToolbar'/> </$fieldmangler> <!--Supprimer l'espace entre les tiddlers et les bords --> <$action-setfield $tiddler="$:/cssStoryRiver" padding="0" /> <!--Ne pas enjoliver les bordures de tiddlers --> <$fieldmangler tiddler="$:/cssBorduresTiddlers"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> </$button> <$select tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout"><option value="fixed-fluid"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value="fluid-fixed"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> <$details summary="Assistant"> {{$:/doc-user-043}} </$details>
<div align="center"> <div class="tw-admin-content"> <$button class='tc-btn-invisible grow'> <i class="fa fa-chevron-circle-up fa-lg" aria-hidden="true"></i> <$list variable='Target' filter='[list[$:/StoryList]first[]]'> <$action-navigate $to=<<Target>>/> </$list> </$button> <small> {{$:/PiedModifié}}<br/> {{$:/PiedPowered}}<br/> {{$:/PiedEntrées}}<br/> {{$:/PiedGitHub}} {{$:/PiedMailTo}} </small> <<f-i grid 'x3 block'>> </div> </div> <!-- Pour apparaître en bas de page, soit en bas de la ~StoryRiver, il suffit de taguer ce tiddler [[$:/tags/BelowStory]]. Ce wiki comportant un autre tiddler venant s'y ajouter (plugin Teasers|Teasers]], j'ai déplacé le tiddler [[$:/PageFooter]] dans le [[panneau d'aide|$:/plugins/tiddlywiki/help]]-->
$:/palettes/Learn
alt-text: #3F6DBC alt-text1: #49ADC2 Abricot: #E67E30 Acajou: #88421D Aigue-marine: #79F8F8 Alezan: #A76726 Ambre: #F0C300 Améthyste: #884DA7 Ardoise: #5A5E6B Argent: #CECECE Argile: #EFEFEF Asperge: #7BA05B Aubergine: #370028 Auburn: #9D3E0C Aurore: #FFCB60 Azur: #007FFF Azur brume: #F0FFFF Azur2: #1E7FCB Azurin: #A9EAFE Beige: #C8AD7F Beige clair: #F5F5DC Beigeasse: #AFA778 Beurre: #F0E36B Beurre frais: #FFF48D Bis: #766F64 Bisque: #FFE4C4 Bistre: #3D2B1F Bistre2: #856D4D Bitume: #4E3D28 Blanc: #FFFFFF Blanc cassé: #FEFEE2 Blanc crème: #FDF1B8 Blanc d'argent: #FEFEFE Blanc de lait: #FBFCFA Blanc de lin: #FAF0E6 Blanc de platine: #FAF0C5 Blanc de Zinc: #F6FEFE Blanc d'Espagne: #FEFDF0 Blanc d'ivoire: #FFFFF4 Blanc écru: #FEFEE0 Blanc lunaire: #F4FEFE Blanc opalin: #F2FFFF Blé: #E8D630 Bleu: #0000FF Bleu acier: #3A8EBA Bleu ardoise: #686F8C Bleu azur clair: #74D0F1 Bleu bleuet: #5472AE Bleu bondi: #0095B6 Bleu céleste: #26C4EC Bleu céruléen: #0F9DE8 Bleu céruléen2: #357AB7 Bleu charrette: #8EA2C6 Bleu charron: #17657D Bleu ciel: #77B5FE Bleu cobalt: #22427C Bleu de France: #318CE7 Bleu de minuit: #003366 Bleu denim: #1560BD Bleu des mers du sud: #00CCCB Bleu dragée: #DFF2FF Bleu égyptien: #1034A6 Bleu électrique: #2C75FF Bleu horizon: #7F8FA6 Bleu majorelle: #6050DC Bleu marine: #03224C Bleu maya: #73C2FB Bleu minéral: #24445C Bleu nuit: #0F056B Bleu outremer: #1B019B Bleu outremer2: #2B009A Bleu paon: #067790 Bleu pastel: #56739A Bleu persan: #6600FF Bleu pétrole: #1D4851 Bleu saphir: #0131B4 Bleu sarcelle: #008080 Bleu sarcelle2: #008E8E Bleu smalt: #003399 Bleu tiffany: #0ABAB5 Bleu turquin: #425B8A Blond: #E2BC74 Bordeaux: #6D071A Boutton d'or: #FCDC12 Brique: #842E1B Bronze: #614E1A Brou de noix: #3F2204 Brun: #5B3C11 Bulle: #EDD38C Bureau: #6B5731 Byzantin: #BD33A4 Byzantium: #702963 Caca d'oie: #CDCD0D Cacao: #614B3A Cachou: #2F1B0C Café: #462E01 Café au lait: #785E2F Canard: #048B9A Cannelle: #7E5835 Caramel: #7E3300 Carotte: #F4661B Cassis: #2C030B Cassis2: #3A020D Céladon: #83A697 Cerise: #BB0B0B Cerise2: #DE3163 Chair: #FEC3AC Chamois: #D0C07A Champagne: #FBF2B7 Châtaigne: #806D5A Châtain: #8B6C42 Chaudron: #85530F Chocolat: #5A3A22 Chrome: #EDFF0C Chrome2: #FFFF05 Citron: #F7FF3C Citrouille: #DF6D14 Colombin: #6A455D Coquille d'oeuf: #FDE9E0 Corail: #E73E01 Cuisse de nymphe: #FEE7F0 Cuivre: #B36700 Cyan: #00FFFF Cyan2: #2BFAFA Dorian: #0B1616 Etain oxydé: #BABABA Etain pur: #EDEDED Fauve: #AD4F09 Feuille-morte: #99512B Flave: #E6E697 Fleur de soufre: #FFFF6B Fraise: #BF3030 Fraise écrasée: #A42424 Framboise: #C72C48 Fumée: #BBD2E1 Fushia: #FD3F92 Givré: #80D0D0 Glauque: #649B88 Glycine: #C9A0DC Gomme-gutte: #EF9B0F Grège: #BBAE98 Grenadine: #E9383F Grenat: #6E0B14 Gris: #606060 Gris acier: #AFAFAF Gris anthracite: #303030 Gris de lin: #D2CAEC Gris de maure: #685E43 Gris de Payne: #677179 Gris fer: #848484 Gris fer2: #7F7F7F Gris Perle2: #C7D0CC Gris souris: #9E9E9E Gris tourterelle: #BBACAC Héliotrope: #DF73FF Hooker: #1B4F08 Incarnadin: #FE96A0 Incarnat: #FF6F7D Indigo: #791CF8 Indigo du web: #4B0082 Indigo2: #2E006C Jade: #87E990 Jaune: #FFFF00 Jaune auréolin: #EFD242 Jaune banane: #D1B606 Jaune canari: #E7F00D Jaune chartreuse: #DFFF00 Jaune de cobalt: #FDEE00 jaune de Naples: #FFF0BC Jaune d'or: #EFD807 Jaune impérial: #FFE436 Jaune mimosa: #FEF86C Jaune moutarde: #C7CF00 Jaune nankin: #F7E269 Jaune olive: #808000 Jaune paille: #FEE347 Jaune poussin: #F7E35F Kaki: #94812B Klein: #002FA7 Klein2: #21177D Lapis-lazuli: #26619C Lavallière: #8F5922 Lavande: #9683EC Lie de vin: #AC1E44 Lilas: #B666D2 Magenta: #FF00FF Magenta foncé: #800080 Magenta fushia: #DB0073 Maïs: #FFDE75 Mandarine: #FEA347 Marron: #582900 Mars: #EED153 Mastic: #B3B191 Mauve: #D473D4 Melon: #DE9816 Menthe: #16B84E Menthe à l'eau: #54F98D Miel: #DAB30A Mordoré: #87591A Nacarat: #FC5D5D Noir: #000000 Noir d'aniline: #120D16 Noir de carbone: #130E0A Noiraud: #2F1E0E Noisette: #955628 Ocre jaune: #DFAF2C Ocre rouge: #DD985C Or: #FFD700 Orange: #ED7F10 Orangé: #FAA401 Orange brûlée: #CC5500 Orchidée: #DA70D6 Orpiment: #FCD21C Parme: #CFA0E9 Passe-velours: #91283B Pêche: #FDBFB7 Pervenche: #CCCCFF Pinchard: #CCCCCC Plomb: #798081 Poil de chameau: #B67823 Pourpre: #9E0E40 Prune: #811453 Puce: #4E1609 Queue de vache: #C3B470 Queue de vache2: #A89874 Réglisse: #2D241E Rose: #FD6C9E Rose balais: #C4698F Rose bonbon: #F9429E Rose dragée: #FEBFD2 Rose Mountbatten: #997A8D Rose thé: #FF866A Rose vif: #FF007F Rouge: #FF0000 Rouge alizarine: #D90115 Rouge bismarck: #A5260A Rouge bourgogne: #6B0D0D Rouge capucine: #FF5E4D Rouge cardinal: #B82010 Rouge carmin: #960018 Rouge coquelicot: #C60800 Rouge cramoisi2: #DC143C Rouge de falun: #801818 Rouge de mars: #F7230C Rouge écarlate: #ED0000 Rouge écrevisse: #BC2001 Rouge feu: #FE1B00 Rouge feu2: #FF4901 Rouge garance: #EE1010 Rouge groseille: #CF0A1D Rouge rubis: #E0115F Rouge sang: #850606 Rouge tomate: #DE2916 Rouge tomette: #AE4A34 Rouge turc: #A91101 Rouge vermillon: #DB1702 Rouge vermillon2: #FD4626 Rouge-violet: #C71585 Rouille: #985717 Sable: #E0CDA9 Safran: #F4C430 Safran2: #F3D617 Sang de boeuf: #730800 Saumon: #F88E55 Senois: #8D4024 Sépia: #A98C78 Sépia2: #AE8964 Sinople: #149414 Soufre: #FFFF6B Tabac: #9F551E Tangerine: #FF7F00 Tanné: #A75502 Taupe: #463F32 Terracotta: #CC4E5C Terre de Sienne: #8E5434 Terre d'ombre: #625B48 Terre d'ombre2: #926D27 Topaze: #FAEA73 Tourdille: #C1BFB1 Turquoise: #25FDE9 Vanille: #E1CE9A Vénitien: #E7A854 Ventre de biche: #E9C9B1 Vermeil: #FF0921 Vert absinthe: #7FDD4C Vert amande: #82C46C Vert anis: #9FE855 Vert avocat: #568203 Vert bouteille: #096A09 Vert chartreuse: #C2F732 Vert citron: #00FF00 Vert de chrome: #18391E Vert de gris: #95A595 Vert de vessie: #22780F Vert d'eau: #B0F2B6 Vert émeraude: #01D758 Vert épinard: #175732 Vert gazon: #3A9D23 Vert impérial: #00561B Vert kaki: #798933 Vert lichen: #85C17E Vert lime: #9EFD38 Vert malachite: #1FA055 Vert mélèse: #386F48 Vert militaire: #596643 Vert mousse: #679F5A Vert olive: #708D23 Vert opaline: #97DFC6 Vert perroquet: #3AF24B Vert pin: #01796F Vert pistache: #BEF574 Vert poireau: #4CA66B Vert pomme: #34C924 Vert prairie: #57D53B Vert printemps: #00FE7E Vert sapin: #095228 Vert sauge: #689D71 Vert tilleul: #A5D152 Vert véronèse: #586F2D Vert viride: #40826D Violet: #660099 Violet d'évêque: #723E64 Violine: #A10684 Zizolin: #6C0277 highlight: #ffff00
alert-background: alert-border: alert-highlight: alert-muted-foreground: background: #000000 blockquote-bar: button-background: button-foreground: button-border: code-background: rgba(0,0,0,0.03) code-border: rgba(0,0,0,0.08) code-foreground: #e7040f diff-delete-background: diff-delete-foreground: diff-equal-background: diff-equal-foreground: diff-insert-background: diff-insert-foreground: diff-invisible-background: diff-invisible-foreground: dirty-indicator: download-background: download-foreground: dragger-background: dragger-foreground: dropdown-background: #FFE4C4 dropdown-border: #FF00FF dropdown-tab-background-selected: dropdown-tab-background: dropzone-background: external-link-background-hover: #c0c0c0 external-link-background-visited: external-link-background: external-link-foreground-hover: external-link-foreground-visited: external-link-foreground: foreground: #808080 message-background: message-border: message-foreground: modal-backdrop: modal-background: modal-border: modal-footer-background: modal-footer-border: modal-header-border: muted-foreground: notification-background: notification-border: page-background: #F5F5DC pre-background: pre-border: primary: #000000 sidebar-button-foreground: sidebar-controls-foreground-hover: sidebar-controls-foreground: sidebar-foreground-shadow: #f4f4f4 sidebar-foreground: sidebar-muted-foreground-hover: #f4f4f4 sidebar-muted-foreground: #f4f4f4 sidebar-tab-background-selected: #80ff80 sidebar-tab-background: #ffffff sidebar-tab-border-selected: sidebar-tab-border: sidebar-tab-divider: sidebar-tab-foreground-selected: sidebar-tab-foreground: #333333 sidebar-tiddler-link-foreground-hover: #000000 sidebar-tiddler-link-foreground: #333333 site-title-foreground: static-alert-foreground: tab-background-selected: #006400 tab-background: #DC143C tab-border-selected: #006400 tab-border: #DC143C tab-divider: <<colour page-background>> tab-foreground-selected: #FFFFFF tab-foreground: #FFFFFF table-border: #c0c0c0 table-footer-background: table-header-background: tag-background: #F5F5DC tag-foreground: #ffffff tiddler-background: #ffffff tiddler-border: <<colour page-background>> tiddler-controls-foreground-hover: tiddler-controls-foreground-selected: tiddler-controls-foreground: tiddler-editor-background: tiddler-editor-border-image: tiddler-editor-border: tiddler-editor-fields-even: tiddler-editor-fields-odd: tiddler-info-background: tiddler-info-border: tiddler-info-tab-background: tiddler-link-background: tiddler-link-foreground: #333333 tiddler-subtitle-foreground: tiddler-title-foreground: toolbar-new-button: #008080 toolbar-options-button: toolbar-save-button: #ff0000 toolbar-info-button: toolbar-edit-button: toolbar-close-button: toolbar-delete-button: toolbar-cancel-button: toolbar-done-button: untagged-background: very-muted-foreground: #000000
base03: #002b36 base02: #073642 base01: #586e75 base00: #657b83 base0: #839496 base1: #93a1a1 base2: #eee8d5 base3: #fdf6e3 yellow: #b58900 orange: #cb4b16 red: #dc322f magenta: #d33682 violet: #6c71c4 blue: #268bd2 cyan: #2aa198 green: #859900 base10: #c0c4bb violet-muted: #7c81b0 blue-muted: #4e7baa yellow-hot: #ffcc44 orange-hot: #eb6d20 red-hot: #ff2222 blue-hot: #2298ee green-hot: #98ee22 background: #fdf6e3 download-foreground: <<colour background>> dragger-foreground: <<colour background>> dropdown-background: <<colour background>> modal-background: <<colour background>> sidebar-foreground-shadow: <<colour background>> tiddler-background: <<colour background>> tiddler-border: <<colour background>> tiddler-link-background: <<colour background>> tab-background-selected: <<colour background>> dropdown-tab-background-selected: <<colour tab-background-selected>> foreground: #657b83 dragger-background: <<colour foreground>> tab-foreground: <<colour foreground>> tab-foreground-selected: <<colour tab-foreground>> sidebar-tab-foreground-selected: <<colour tab-foreground-selected>> sidebar-tab-foreground: <<colour tab-foreground>> sidebar-button-foreground: <<colour foreground>> sidebar-controls-foreground: sidebar-foreground: <<colour foreground>> alert-muted-foreground: <<colour base01>> code-foreground: <<colour base00>> message-foreground: <<colour base00>> tag-foreground: <<colour base00>> sidebar-tiddler-link-foreground: <<colour base0>> muted-foreground: <<colour base1>> blockquote-bar: <<colour muted-foreground>> dropdown-border: <<colour muted-foreground>> sidebar-muted-foreground: <<colour muted-foreground>> tiddler-title-foreground: <<colour muted-foreground>> site-title-foreground: <<colour tiddler-title-foreground>> modal-footer-background: <<colour base2>> page-background: <<colour base2>> modal-backdrop: <<colour page-background>> notification-background: <<colour page-background>> code-background: <<colour page-background>> code-border: <<colour code-background>> pre-background: <<colour page-background>> pre-border: <<colour pre-background>> sidebar-tab-background-selected: <<colour page-background>> table-header-background: <<colour base2>> tag-background: <<colour base2>> tiddler-editor-background: <<colour base2>> tiddler-info-background: <<colour base2>> tiddler-info-tab-background: <<colour base2>> tab-background: <<colour base2>> dropdown-tab-background: <<colour tab-background>> alert-background: <<colour base3>> message-background: <<colour base3>> alert-highlight: <<colour magenta>> external-link-foreground: <<colour violet>> tiddler-controls-foreground: <<colour base10>> external-link-foreground-visited: <<colour violet-muted>> primary: <<colour blue-muted>> download-background: <<colour primary>> tiddler-link-foreground: <<colour primary>> alert-border: #b99e2f dirty-indicator: #ff0000 dropzone-background: rgba(0,200,0,0.7) external-link-background-hover: inherit external-link-background-visited: inherit external-link-background: inherit external-link-foreground-hover: inherit message-border: #cfd6e6 modal-border: #999999 select-tag-background: select-tag-foreground: sidebar-controls-foreground-hover: sidebar-muted-foreground-hover: sidebar-tab-background: #ded8c5 sidebar-tiddler-link-foreground-hover: static-alert-foreground: #aaaaaa tab-border: #cccccc modal-footer-border: <<colour tab-border>> modal-header-border: <<colour tab-border>> notification-border: <<colour tab-border>> sidebar-tab-border: <<colour tab-border>> tab-border-selected: <<colour tab-border>> sidebar-tab-border-selected: <<colour tab-border-selected>> tab-divider: #d8d8d8 sidebar-tab-divider: <<colour tab-divider>> table-border: #dddddd table-footer-background: #a8a8a8 tiddler-controls-foreground-hover: #888888 tiddler-controls-foreground-selected: #444444 tiddler-editor-border-image: #ffffff tiddler-editor-border: #cccccc tiddler-editor-fields-even: #e0e8e0 tiddler-editor-fields-odd: #f0f4f0 tiddler-info-border: #dddddd tiddler-subtitle-foreground: #c0c0c0 toolbar-new-button: toolbar-options-button: toolbar-save-button: toolbar-info-button: toolbar-edit-button: toolbar-close-button: toolbar-delete-button: toolbar-cancel-button: toolbar-done-button: untagged-background: #999999 very-muted-foreground: #888888
alert-background: #FFFF66 alert-border: #E8E87D alert-highlight: #FF3333 alert-muted-foreground: #E05252 background: #F5F5F5 blockquote-bar: #13853A button-background: rgba(0,0,0,0.08) button-border: #7F7F7F button-foreground: #0D0D0D code-background: rgba(0,0,0,0.03) code-border: rgba(0,0,0,0.08) code-foreground: #e7040f dirty-indicator: #ff4136 download-background: #19a974 download-foreground: #F5F5F5 dragger-background: #0D0D0D dragger-foreground: #F5F5F5 dropdown-background: #FAFAFA dropdown-border: #666666 dropdown-tab-background: rgba(0,0,0,.1) dropdown-tab-background-selected: rgba(255,255,255,1) dropzone-background: #9eebcf external-link-background: inherit external-link-background-hover: inherit external-link-background-visited: inherit external-link-foreground: #357edd external-link-foreground-hover: inherit external-link-foreground-visited: #00449e foreground: #0D0D0D message-background: #cdecff message-border: #96ccff message-foreground: #00449e modal-backdrop: #0D0D0D modal-background: #F5F5F5 modal-border: rgba(0,0,0,.5) modal-footer-background: #f4f4f4 modal-footer-border: rgba(0,0,0,.1) modal-header-border: rgba(0,0,0,.2) muted-foreground: #666666 notification-background: #F1D193 notification-border: #8D6312 page-background: #FAEED7 pre-background: rgba(0,0,0,0.08) pre-border: rgba(0,0,0,.2) primary: #106F30 sidebar-button-foreground: #0D0D0D sidebar-controls-foreground: rgba(0,0,0,.4) sidebar-controls-foreground-hover: rgba(0,0,0,1) sidebar-foreground: #000000 sidebar-foreground-shadow: rgba(255,255,255,.8) sidebar-muted-foreground: rgba(0, 0, 0, 0.5) sidebar-muted-foreground-hover: #000000 sidebar-tab-background: rgba(0, 0, 0, 0.08) sidebar-tab-background-selected: #FAEED7 sidebar-tab-border: #7F7F7F sidebar-tab-border-selected: #7F7F7F sidebar-tab-divider: #7F7F7F sidebar-tab-foreground: #0D0D0D sidebar-tab-foreground-selected: #0D0D0D sidebar-tiddler-link-foreground: #0D0D0D sidebar-tiddler-link-foreground-hover: rgba(0,0,0,1) site-title-foreground: rgb(16, 111, 48) static-alert-foreground: rgba(0,0,0,.3) tab-background: rgba(0,0,0,0.125) tab-background-selected: rgb(245, 245, 245) tab-border: #106F30 tab-border-selected: #106F30 tab-divider: #106F30 tab-foreground: #0D0D0D tab-foreground-selected: #0D0D0D table-border: rgba(0,0,0,.1) table-footer-background: rgba(0,0,0,.4) table-header-background: rgba(0,0,0,.1) tag-background: #faeed7 tag-foreground: #E8E8E8 tiddler-background: #F5F5F5 tiddler-border: #13853A tiddler-controls-foreground: #8F8F8F tiddler-controls-foreground-hover: #404040 tiddler-controls-foreground-selected: #444 tiddler-editor-background: #F7F7F7 tiddler-editor-border: #ccc tiddler-editor-border-image: rgba(255,255,255,1) tiddler-editor-fields-even: #e0e8e0 tiddler-editor-fields-odd: #f0f4f0 tiddler-info-background: #f8f8f8 tiddler-info-border: #dddddd tiddler-info-tab-background: #f8f8f8 tiddler-link-background: #F5F5F5 tiddler-link-foreground: #00449e tiddler-subtitle-foreground: #6E6E6E tiddler-title-foreground: #0D5926 toolbar-cancel-button: toolbar-close-button: toolbar-delete-button: toolbar-done-button: toolbar-edit-button: toolbar-info-button: toolbar-new-button: toolbar-options-button: toolbar-save-button: untagged-background: #000000 very-muted-foreground: #13853A
alert-background: #ffe476 alert-border: #b99e2f alert-highlight: #881122 alert-muted-foreground: #b99e2f background: #ffffff blockquote-bar: <<colour muted-foreground>> button-background: button-foreground: button-border: code-background: #f7f7f9 code-border: #e1e1e8 code-foreground: #dd1144 diff-delete-background: #ffc9c9 diff-delete-foreground: <<colour foreground>> diff-equal-background: diff-equal-foreground: <<colour foreground>> diff-insert-background: #aaefad diff-insert-foreground: <<colour foreground>> diff-invisible-background: diff-invisible-foreground: <<colour muted-foreground>> dirty-indicator: #ff0000 download-background: #34c734 download-foreground: <<colour background>> dragger-background: <<colour foreground>> dragger-foreground: <<colour background>> dropdown-background: <<colour background>> dropdown-border: <<colour muted-foreground>> dropdown-tab-background-selected: #fff dropdown-tab-background: #ececec dropzone-background: rgba(0,200,0,0.7) external-link-background-hover: inherit external-link-background-visited: inherit external-link-background: inherit external-link-foreground-hover: inherit external-link-foreground-visited: #0000aa external-link-foreground: #0000ee foreground: #333333 message-background: #ecf2ff message-border: #cfd6e6 message-foreground: #547599 modal-backdrop: <<colour foreground>> modal-background: <<colour background>> modal-border: #999999 modal-footer-background: #f5f5f5 modal-footer-border: #dddddd modal-header-border: #eeeeee muted-foreground: #bbb notification-background: #ffffdd notification-border: #999999 page-background: #f4f4f4 pre-background: #f5f5f5 pre-border: #cccccc primary: #5778d8 sidebar-button-foreground: <<colour foreground>> sidebar-controls-foreground-hover: #000000 sidebar-controls-foreground: #aaaaaa sidebar-foreground-shadow: rgba(255,255,255, 0.8) sidebar-foreground: #acacac sidebar-muted-foreground-hover: #444444 sidebar-muted-foreground: #c0c0c0 sidebar-tab-background-selected: #f4f4f4 sidebar-tab-background: #e0e0e0 sidebar-tab-border-selected: <<colour tab-border-selected>> sidebar-tab-border: <<colour tab-border>> sidebar-tab-divider: #e4e4e4 sidebar-tab-foreground-selected: sidebar-tab-foreground: <<colour tab-foreground>> sidebar-tiddler-link-foreground-hover: #444444 sidebar-tiddler-link-foreground: #999999 site-title-foreground: <<colour tiddler-title-foreground>> static-alert-foreground: #aaaaaa tab-background-selected: #ffffff tab-background: #d8d8d8 tab-border-selected: #d8d8d8 tab-border: #cccccc tab-divider: #d8d8d8 tab-foreground-selected: <<colour tab-foreground>> tab-foreground: #666666 table-border: #dddddd table-footer-background: #a8a8a8 table-header-background: #f0f0f0 tag-background: #ec6 tag-foreground: #ffffff tiddler-background: <<colour background>> tiddler-border: <<colour background>> tiddler-controls-foreground-hover: #888888 tiddler-controls-foreground-selected: #444444 tiddler-controls-foreground: #cccccc tiddler-editor-background: #f8f8f8 tiddler-editor-border-image: #ffffff tiddler-editor-border: #cccccc tiddler-editor-fields-even: #e0e8e0 tiddler-editor-fields-odd: #f0f4f0 tiddler-info-background: #f8f8f8 tiddler-info-border: #dddddd tiddler-info-tab-background: #f8f8f8 tiddler-link-background: <<colour background>> tiddler-link-foreground: <<colour primary>> tiddler-subtitle-foreground: #c0c0c0 tiddler-title-foreground: #182955 toolbar-new-button: toolbar-options-button: toolbar-save-button: toolbar-info-button: toolbar-edit-button: toolbar-close-button: toolbar-delete-button: toolbar-cancel-button: toolbar-done-button: untagged-background: #999999 very-muted-foreground: #888888
Assemblé avec <a href={{!!url}}>{{$:/user/config/Logo}}</a> V.2.2.1 - 2018
<!-- <$count filter="[!is[system]sort[title]]"></$count> entrées. --> <$count filter="[tag[TableOfContents]]"/> Mots-Clés.<br/> <$count filter="[all[tiddlers]!prefix[$:/]]"/> entrées.
[[Dépôt Github|https://github.com/Prolegomenes/learn]]
[[Icons8|https://icons8.com]]
<div style="font-size:0.9em;"><a href="mailto:eric.meaux@hotmail.com" class="" style="text-decoration:none; background-color: ;" target="_blank"> <i class="fa fa-envelope"></i> Contact mail</a>
Modifié le <$list filter="[!is[system]!has[draft.of]!sort[modified]limit[1]]"> <$link> <$view field="modified" format="date" template="DD MMM YYYY à 0hh:0mm"/> </$link> </$list>
[[Powered by TiddlyWiki|https://www.tiddlywiki.com]]
<tr> <td> <$radio tiddler='$:/width/css/user' field='width_option' value='100%'> </$radio> </td> <td align="center"> Pleine largeur </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal1" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-115}} </td> </$reveal>
{{$:/PluginFrame||caption}}
{ "tiddlers": { "$:/language/Buttons/Choose/Caption": { "text": "choose", "title": "$:/language/Buttons/Choose/Caption" }, "$:/language/Buttons/Choose/Hint": { "text": "Add to favorites list", "title": "$:/language/Buttons/Choose/Hint" }, "$:/language/Buttons/Favorites/Caption": { "text": "favorite", "title": "$:/language/Buttons/Favorites/Caption" }, "$:/language/Buttons/Favorites/Hint": { "text": "Remove from favorites list", "title": "$:/language/Buttons/Favorites/Hint" }, "$:/language/SideBar/Favorites/Caption": { "text": "Favorites", "title": "$:/language/SideBar/Favorites/Caption" }, "$:/plugins/ajh/favorites/icon": { "text": "\\define my-svg()\n<svg class='tc-image-favorites tc-image-button' width='22pt' height='22pt' viewBox='0 0 192 192'><path fill='#f08' stroke='#30f' stroke-width='7.5' d='m13.5,52.2l82.5,-48l82.5,48v87.3l-82.5,48l-82.5,-48v-87.3z'/><path fill='#ff0' stroke='#f90' stroke-width='5' d='m$(m)$$(path)$'/></g></svg>\n\\end\n\n<$vars m='96,122' path={{$:/plugins/ajh/favorites/image!!path}}>\n<<my-svg>>\n</$vars>", "title": "$:/plugins/ajh/favorites/icon", "tags": "$:/tags/Image" }, "$:/plugins/ajh/favorites/readme": { "text": "This plugin adds the <$list filter='[<tv-config-toolbar-icons>prefix[yes]]'><span class='tc-btn-dropdown'>{{$:/core/images/star-filled}}</span></$list> <$list filter='[<tv-config-toolbar-text>prefix[yes]]'>{{$:/language/Buttons/Choose/Caption}}</$list> button to the View Toolbar and also the <span class='tc-favorites'>{{$:/core/images/star-filled}}</span> tab to the Sidebar. The button becomes <$list filter='[<tv-config-toolbar-icons>prefix[yes]]'><span class='tc-favorites'>{{$:/core/images/star-filled}}</span></$list> <$list filter='[<tv-config-toolbar-text>prefix[yes]]'>{{$:/language/Buttons/Favorites/Caption}}</$list> when selected and then the tiddler appears in the list on the <span class='tc-favorites'>{{$:/core/images/star-filled}}</span> tab. The list can be sorted using drag and drop. To drag an item, select it, then hold down the mouse or track-pad button while you drag it to a new location in the list. Release the button to drop the item into place. Unneeded favorites can be removed from the list by using the <$list filter='[<tv-config-toolbar-icons>prefix[yes]]'><span class='tc-favorites'>{{$:/core/images/star-filled}}</span></$list> <$list filter='[<tv-config-toolbar-text>prefix[yes]]'>{{$:/language/Buttons/Favorites/Caption}}</$list> button in the tiddler.\n\nSimply drag $:/plugins/ajh/favorites to the top of your tiddlywiki display, save and reload.\n\nThis plugin comprises:\n\n* Icon\n* Template\n* Stylesheet\n* Sidebar tab\n* Caption and hint", "title": "$:/plugins/ajh/favorites/readme" }, "$:/plugins/ajh/favorites/SideBar": { "text": "\\define drop-actions()\n<$action-listops $tiddler='$:/plugins/ajh/favorites/list' $subfilter='+[insertbefore:currentTiddler<actionTiddler>]'/>\n\\end\n\n<$list filter='[list[$:/plugins/ajh/favorites/list]]'>\n<div style='position: relative;'>\n<$droppable actions=<<drop-actions>>>\n<div class='tc-droppable-placeholder'>\n \n</div>\n<div>\n <$link to={{!!title}}>\n<$view field='caption'><$view field='title'/></$view></$link>\n</div>\n</$droppable>\n</div>\n</$list>\n", "title": "$:/plugins/ajh/favorites/SideBar", "tags": "$:/tags/SideBar", "list-before": "", "caption": "<span class='tc-tab-buttons' title={{$:/language/SideBar/Favorites/Caption}}>{{$:/plugins/ajh/favorites/image}}</span><span class='tc-favorites-hidden'>{{$:/language/SideBar/Favorites/Caption}}</span>" }, "$:/plugins/ajh/favorites/template": { "text": "\\define add() [[$(currentTiddler)$]]\n\\define remove() -[[$(currentTiddler)$]]\n\\define my-svg()\n<svg class='tc-image-favorites tc-image-button' width='22pt' height='22pt' viewBox='0 0 128 128'><path fill='$(fill)$' stroke='$(stroke)$' stroke-width='5' d='m$(m)$$(path)$'/></g></svg>\n\\end\n\n<$list filter='[list[$:/plugins/ajh/favorites/list]is[current]]'><$button tooltip={{$:/language/Buttons/Favorites/Hint}} aria-label={{$:/language/Buttons/Favorites/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-listops $tiddler='$:/plugins/ajh/favorites/list' $field='list' $subfilter=<<remove>>/>\n<$list filter='[<tv-config-toolbar-icons>prefix[yes]]'>\n<$vars fill={{$:/plugins/ajh/favorites/stylesheet!!button-color}} stroke={{$:/plugins/ajh/favorites/stylesheet!!button-outline-color}} m='64,96.1' path={{$:/plugins/ajh/favorites/image!!path}}>\n<<my-svg>>\n</$vars>\n</$list>\n<$list filter='[<tv-config-toolbar-text>prefix[yes]]'>\n<span class='tc-btn-text'>\n<$text text={{$:/language/Buttons/Favorites/Caption}}/>\n</span>\n</$list>\n</$button></$list><$list filter='[all[current]!list[$:/plugins/ajh/favorites/list]]'><$button tooltip={{$:/language/Buttons/Choose/Hint}} aria-label={{$:/language/Buttons/Choose/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-listops $tiddler='$:/plugins/ajh/favorites/list' $field='list' $subfilter=<<add>>/>\n<$list filter='[<tv-config-toolbar-icons>prefix[yes]]'>\n{{$:/core/images/star-filled}}\n</$list>\n<$list filter='[<tv-config-toolbar-text>prefix[yes]]'>\n<span class='tc-btn-text'>\n<$text text={{$:/language/Buttons/Choose/Caption}}/>\n</span>\n</$list>\n</$button></$list>", "title": "$:/plugins/ajh/favorites/template", "tags": "$:/tags/ViewToolbar", "list-after": "$:/core/ui/Buttons/more-tiddler-actions", "description": "{{$:/language/Buttons/Favorites/Hint}}", "caption": "{{ $:/core/images/star-filled}} {{$:/language/Buttons/Favorites/Caption}}" }, "$:/plugins/ajh/favorites/stylesheet": { "text": ".tc-tab-buttons + .tc-favorites-hidden {\n display: none;\n}\n.tc-tab-buttons button.tc-tab-selected {\n fill: {{!!tab-icon-selected-color}};\n stroke: {{!!tab-icon-outline-color}}; \n}\n.tc-tab-buttons button:not(.tc-tab-selected) {\n fill: {{!!tab-icon-unselected-color}};\n}\n.tc-favorites {\n stroke: {{!!button-outline-color}};\n stroke-width:5;\n fill: {{!!button-color}};\n}\n.tc-image-star-filled {\n height:1em;\n width:1em;\n}", "title": "$:/plugins/ajh/favorites/stylesheet", "tags": "$:/tags/Stylesheet", "tab-icon-unselected-color": "#999", "tab-icon-selected-color": "#ff0", "tab-icon-outline-color": "#000", "caption": "Favorites", "button-outline-color": "#000", "button-color": "#ff0" }, "$:/plugins/ajh/favorites/image": { "text": "\\define my-svg()\n<svg class='tc-image-favorites tc-image-button' width='22pt' height='22pt' viewBox='0 0 128 128'><path stroke-width='5' d='m$(m)$$(path)$'/></svg>\n\\end\n\n<$vars m='64,96.1' path={{!!path}}>\n<<my-svg>>\n</$vars>", "title": "$:/plugins/ajh/favorites/image", "tags": "$:/tags/Image", "path": "l32.7,24.2c2.4,1.7 5.6,-0.6 4.6,-3.4l-12.4,-38.6l32.5,-23.8c2.4,-1.7 1.1,-5.5 -1.8,-5.5l-40.2,0l-12.5,-38.5c-0.9,-2.8 -4.8,-2.8 -5.8,0l-12.5,38.5l-40.2,0c-2.9,0 -4.2,3.8 -1.8,5.5l32.5,23.8l-12.4,38.6c-0.9,2.8 2.3,5.1 4.6,3.4l32.7,-24.2z" } } }
\define drop-actions() <$action-listops $tiddler='$:/plugins/ajh/favorites/list' $subfilter='+[insertbefore:currentTiddler<actionTiddler>]'/> \end <$list filter='[list[$:/plugins/ajh/favorites/list]]'> <div style='position: relative;'> <$droppable actions=<<drop-actions>>> <div class='tc-droppable-placeholder'> </div> <div> <$link to={{!!title}}> <$view field='caption'><$view field='title'/></$view></$link> </div> </$droppable> </div> </$list>
.tc-tab-buttons + .tc-favorites-hidden { display: none; } .tc-tab-buttons button.tc-tab-selected { fill: {{!!tab-icon-selected-color}}; stroke: {{!!tab-icon-outline-color}}; } .tc-tab-buttons button:not(.tc-tab-selected) { fill: {{!!tab-icon-unselected-color}}; } .tc-favorites { stroke: {{!!button-outline-color}}; stroke-width:5; fill: {{!!button-color}}; } .tc-image-star-filled { height:1em; width:1em; }
{ "tiddlers": { "$:/info/timestamp": { "text": "<<dt>> <<dt '' '15'>><br><<dt>> <<dt '' '30'>><br><<dt>> <<dt '' '45'>>", "title": "$:/info/timestamp" }, "$:/language/Buttons/Time/Caption": { "text": "time", "title": "$:/language/Buttons/Time/Caption" }, "$:/language/Buttons/Time/Hint": { "text": "Time stamp", "title": "$:/language/Buttons/Time/Hint" }, "$:/plugins/ajh/tiddlytime/datetime.js": { "text": "/*\\\ntitle: $:/plugins/ajh/tiddlytime/datetime.js\ntype: application/javascript\nmodule-type: macro\n\n<<dt format delay>>\n\nExamples:\n<<dt>>\n<<dt \"YYYY-0MM-0DD 0hh:0mm:0ss\">>\n<<dt \"YYYY-0MM-0DD 0hh:0mm:0ss\" \"30\">>\n<$macrocall $name=\"dt\" ts={{!!created}} format=\"MMM DD. YY\"/>\n\nFormat Strings:\nPlease find all format strings listed in the JavaScript code of function formatDateString in $:/core/modules/utils/utils.js\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis is a macro to get formatted date and/or time plus delay in minutes\n*/\n\nexports.name = \"dt\";\n\nexports.params = [\n\t{ name: \"format\" },\n\t{ name: \"delay\" },\n\t{ name: \"ts\" }\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format, delay, ts) {\n\tif(!ts) {\n\t\tts = new Date;\n\t\tts.setMinutes(ts.getMinutes() + Number(delay));\n\t}\n\telse {\n\t\tts = $tw.utils.parseDate(ts);\n\t}\n\tif(!format)\n\t\tformat = \"hh12:0mm:0ss AM\";\n\treturn $tw.utils.formatDateString(ts, format); \n};\n\n})();", "type": "application/javascript", "title": "$:/plugins/ajh/tiddlytime/datetime.js", "module-type": "macro" }, "$:/plugins/ajh/tiddlytime/icon": { "text": "<svg class='tc-image-tiddlyviewer ic-image-button' width='22pt' height='22pt' viewBox='0 0 128 128'><path fill='#f90' stroke='#c0f' stroke-width='5' d='m9,34.7l55,-32l55,32v58.2l-55,32l-55,-32v-58.2z'/><circle fill='#f90' stroke='#000' stroke-width='5' cx='64' cy='64' r='45'/><path stroke='#000' stroke-width='5' d='m64,26v38l16,26l-16,-26v-38zm-38,38h7zm38,38v-7zm31,-38h7z'/></svg>", "title": "$:/plugins/ajh/tiddlytime/icon", "tags": "$:/tags/Image" }, "$:/plugins/ajh/tiddlytime/readme": { "text": "This plugin button displays time with seconds and several time spans when clicked. The tool tip displays todays date minus 78 days. Clicking the time reveals time, time + 15 minutes, time + 30 minutes, and time + 45 minutes.\n\nSimply drag $:/plugins/ajh/tiddlytime to the top of your tiddlywiki display, save and reload.\n\nThis plugin comprises:\n\n* JavaScript code modules\n* Button\n* Template\n* Stylesheet\n* Timestamp\n* Caption and hint", "title": "$:/plugins/ajh/tiddlytime/readme" }, "$:/plugins/ajh/tiddlytime/stylesheet": { "text": "/* TOPBAR TIME */\nhtml .tc-time {\n color: {{!!button-color}};\n font-weight: {{!!weight}};\n font-size: {{!!button-size}};\n line-height: 0em;\n margin: -15px 0;\n}\nhtml .tc-time:hover {\n color: {{!!button-hover-color}} !important;\n}", "weight": "", "title": "$:/plugins/ajh/tiddlytime/stylesheet", "tags": "$:/tags/Stylesheet", "button-size": "", "button-hover-color": "", "button-color": "", "caption": "Tiddlytime Button" }, "$:/plugins/ajh/tiddlytime/time.js": { "text": "/*\\\ntitle: $:/plugins/ajh/tiddlytime/time.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget time to update $:/temp/time once every 1000 milliseconds using local computer time. $:/temp/time can then be transcluded to have multiple instances or no visible instances (without error) of a time clock with seconds. This is not the exact time unless your computer is set a little ahead of a time server or if you are lucky. Mine is within a second and I am OK with living in the past just a little.\n\n\\*/\n(function () {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"time\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"rootwidget\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n var timer=setInterval(function(){\n var d=new Date();\n var t=d.toLocaleTimeString();\n $tw.wiki.addTiddler(new $tw.Tiddler({title: \"$:/temp/time\", text: t}));\n},1000);\n};\n\n})();", "type": "application/javascript", "title": "$:/plugins/ajh/tiddlytime/time.js", "module-type": "startup" }, "$:/time": { "text": "<span title=<<dt 'MM/DD (today-78)' '-112320'>>>\n<$button class='tc-btn-invisible tc-time'><$action-navigate $to='$:/info/timestamp'/><$transclude tiddler='$:/temp/time' mode='block'/></$button></span>", "title": "$:/time", "tags": "$:/tags/PageControls", "list-before": "", "description": "{{$:/language/Buttons/Time/Hint}}", "caption": "{{$:/temp/time}} {{$:/language/Buttons/Time/Caption}}" } } }
/*\ title: $:/plugins/ajh/tiddlytime/datetime.js type: application/javascript module-type: macro <<dt format delay>> Examples: <<dt>> <<dt "YYYY-0MM-0DD 0hh:0mm:0ss">> <<dt "YYYY-0MM-0DD 0hh:0mm:0ss" "30">> <$macrocall $name="dt" ts={{!!created}} format="MMM DD. YY"/> Format Strings: Please find all format strings listed in the JavaScript code of function formatDateString in $:/core/modules/utils/utils.js \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* This is a macro to get formatted date and/or time plus delay in minutes */ exports.name = "dt"; exports.params = [ { name: "format" }, { name: "delay" }, { name: "ts" } ]; /* Run the macro */ exports.run = function(format, delay, ts) { if(!ts) { ts = new Date; ts.setMinutes(ts.getMinutes() + Number(delay)); } else { ts = $tw.utils.parseDate(ts); } if(!format) format = "hh12:0mm:0ss AM"; return $tw.utils.formatDateString(ts, format); }; })();
<svg class='tc-image-tiddlyviewer ic-image-button' width='22pt' height='22pt' viewBox='0 0 128 128'><path fill='#f90' stroke='#c0f' stroke-width='5' d='m9,34.7l55,-32l55,32v58.2l-55,32l-55,-32v-58.2z'/><circle fill='#f90' stroke='#000' stroke-width='5' cx='64' cy='64' r='45'/><path stroke='#000' stroke-width='5' d='m64,26v38l16,26l-16,-26v-38zm-38,38h7zm38,38v-7zm31,-38h7z'/></svg>
This plugin button displays time with seconds and several time spans when clicked. The tool tip displays todays date minus 78 days. Clicking the time reveals time, time + 15 minutes, time + 30 minutes, and time + 45 minutes. Simply drag $:/plugins/ajh/tiddlytime to the top of your tiddlywiki display, save and reload. This plugin comprises: * JavaScript code modules * Button * Template * Stylesheet * Timestamp * Caption and hint
/* TOPBAR TIME */ html .tc-time { color: {{!!button-color}}; font-weight: {{!!weight}}; font-size: {{!!button-size}}; line-height: 0em; margin: -15px 0; } html .tc-time:hover { color: {{!!button-hover-color}} !important; }
/*\ title: $:/plugins/ajh/tiddlytime/time.js type: application/javascript module-type: startup Setup the root widget time to update $:/temp/time once every 1000 milliseconds using local computer time. $:/temp/time can then be transcluded to have multiple instances or no visible instances (without error) of a time clock with seconds. This is not the exact time unless your computer is set a little ahead of a time server or if you are lucky. Mine is within a second and I am OK with living in the past just a little. \*/ (function () { /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; // Export name and synchronous status exports.name = "time"; exports.platforms = ["browser"]; exports.after = ["startup"]; exports.before = ["rootwidget"]; exports.synchronous = true; exports.startup = function() { var timer=setInterval(function(){ var d=new Date(); var t=d.toLocaleTimeString(); $tw.wiki.addTiddler(new $tw.Tiddler({title: "$:/temp/time", text: t})); },1000); }; })();
{ "tiddlers": { "$:/plugins/ajh/tiddlyviewer/icon": { "text": "<svg class='tc-image-tiddlyviewer ic-image-button' width='22pt' height='22pt' viewBox='0 0 128 128'><path fill='#ff0' stroke='#30f' stroke-width='5' d='m9,34.7l55,-32l55,32v58.2l-55,32l-55,-32v-58.2z'/><path fill='#30f' d='m48,44c-17.7,5.2 -31.4,15.6 -27.5,20.7c1.7,2.3 3.1,2.1 7.1,-1.2c4.1,-3.4 16.7,-10.2 18.9,-10.2c1.2,0 1.4,1.1 1.2,5.1c-0.6,9.3 5.9,16.8 15,17.4c4.2,0.3 6.2,-0.1 9.3,-2.1c5.2,-3.3 8.8,-10.7 8,-16.5c-0.4,-3.1 -0.2,-4 0.9,-4c2.4,0 10.2,4 16.8,8.6c6.8,4.9 8,5.2 9.8,2.8c2.7,-3.6 -1.8,-8.6 -13.8,-15.6c-12.2,-6.6 -33.2,-9.3 -45.7,-5zm-13,32.7c-0.9,2.7 0.3,3.8 7.1,6.1c10.7,3.6 21.7,4.8 31.4,3.4c10.9,-1.5 21.5,-5.5 21.9,-8c0.6,-3.2 -2.5,-3.4 -10.1,-0.8c-10.9,3.8 -25.8,4.3 -36.8,1.1c-13,-3.7 -12.8,-3.7 -13.5,-1.8z'/></svg>", "title": "$:/plugins/ajh/tiddlyviewer/icon", "tags": "$:/tags/Image" }, "$:/plugins/ajh/tiddlyviewer/readme": { "text": "This plugin displays external pages fully formatted instead of as just plain text. By adding a ''tiddly'' field and path to an external page, it recognizes to display the page in an object frame.\n\n<mark>@@color:red; ''WARNING'' @@</mark>: Use of Tiddly Viewer to display untrusted web sites could be a security risk.\n\nSimply drag $:/plugins/ajh/tiddlyviewer to the top of your tiddlywiki display, save and reload.\n\nThis plugin comprises:\n\n* Template\n* Stylesheet", "title": "$:/plugins/ajh/tiddlyviewer/readme" }, "$:/plugins/ajh/tiddlyviewer/stylesheet": { "text": "/* EXPAND */\n.tc-tiddly-viewer {\n width: {{!!width}};\n height: {{!!height}};\n}", "width": "100%", "title": "$:/plugins/ajh/tiddlyviewer/stylesheet", "tags": "$:/tags/Stylesheet", "height": "85vh", "caption": "Tiddly Viewer" }, "$:/plugins/ajh/tiddlyviewer/template": { "text": "<$reveal type='nomatch' state=<<folded-state>> text='hide' retain='yes' animate='yes'>\n<$list filter='[all[current]has[tiddly]]'>\n<object type='text/html' data={{!!tiddly}} class='tc-tiddly-viewer'></object>\n</$list>\n</$reveal>", "title": "$:/plugins/ajh/tiddlyviewer/template", "tags": "$:/tags/ViewTemplate", "list-after": "$:/core/ui/ViewTemplate/tags" } } }
{ "tiddlers": { "$:/plugins/bimlas/intensedebate/README/FAQ": { "title": "$:/plugins/bimlas/intensedebate/README/FAQ", "tags": "", "type": "text/vnd.tiddlywiki", "text": "! Frequently asked questions\n\n!! Can I use on \"read only\" on wiki?\n\n~IntenseDebate is responsible for storing and managing comments, there is nothing to store in ~TiddlyWiki other than settings.\n\n!! Will I be notified when a new comment is posted?\n\nIt depends on your [[~IntenseDebate settings|https://support.intensedebate.com/email-notifications/]].\n\n!! The links in the email notification do not work\n\n~IntenseDebate does not handle permalinks (that's how ~TiddlyWiki identifies tiddlers), so the `#` character has been removed from the URL. Add `#` to the end of your website URL before the tiddler title. For example if the mail contains https://tiddlywiki.com/PermaLinks, write to https://tiddlywiki.com/#PermaLinks.\n\n!! Why is there no comment counter?\n\nCannot be displayed for technical reasons: ~IntenseDebate can only display one counter so I can't place it on the bottom of each tiddler." }, "$:/plugins/bimlas/intensedebate/README/README": { "title": "$:/plugins/bimlas/intensedebate/README/README", "tags": "", "type": "text/vnd.tiddlywiki", "text": "! ~IntenseDebate comments\n\n''First of all: I do not recommend this plugin because it doesn't seem stable, use the [[Disqus comments|https://bimlas.gitlab.io/tw5-disqus/]] plugin instead.''\n\nUse this plugin to give your visitors the opportunity to comment on your\ntiddlers without changing the wiki itself. See the bottom of this tiddler for example.\n\n* https://gitlab.com/bimlas/tw5-intensedebate (main repository)\n\n[[~IntenseDebate|https://intensedebate.com/]] is a feature-rich comment system for ~WordPress, Blogger, Tumblr and many other blogging/CMS platforms.\n\n! Installation instructions\n\nTo add the plugin to your own ~TiddlyWiki5, just drag this link to the browser window:\n\n$:/plugins/bimlas/intensedebate\n\nFor other installation options see the repositories above.\n\n! Known bugs\n\n* ''If you close the comments immediately after opening them, Red Screen Of Death will appear''. This has no effect on your data in principle, but just for the sake of safety, open the comments only in a read only online wiki.\n\n//Select the next tab to continue.//" }, "$:/plugins/bimlas/intensedebate/README/setup": { "title": "$:/plugins/bimlas/intensedebate/README/setup", "tags": "", "type": "text/vnd.tiddlywiki", "text": "! Setup\n\nBefore you using the plugin, you need to create the ~IntenseDebate forum to your wiki.\n\n* Make yourself a [[Intense Debate account|https://intensedebate.com/]] if you don't already have one.\n* On the bottom of the registration page, select \"I want to install ~IntenseDebate on my blog or website\"\n* If you already registered, sign in first, then select \"Install ~IntenseDebate\" below \"Manage blogs/sites\"\n* Fill out the website URL and copy to the [[settings of the plugin|$:/plugins/bimlas/intensedebate/settings/settings]]\n* Select\"Generic install\" as your platform\n* Copy the value of `idcomments_act` from the code to the [[settings of the plugin|$:/plugins/bimlas/intensedebate/settings/settings]]\n\n//Select the next tab to continue.//\n" }, "$:/plugins/bimlas/intensedebate/intensedebate.js": { "title": "$:/plugins/bimlas/intensedebate/intensedebate.js", "text": "/*\\\ntitle: $:/plugins/bimlas/intensedebate/intensedebate.js\ntype: application/javascript\nmodule-type: widget\n\nIntensedebate comments widget\n\n\\*/\n(function() {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: false */\n\t\"use strict\";\n\n\tvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n\tvar IntensedebateWidget = function(parseTreeNode,options) {\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tIntensedebateWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tIntensedebateWidget.prototype.render = function(parent,nextSibling) {\n\t\tthis.parentDomNode = parent;\n\t\tthis.execute();\n\n\t\tvar current = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\n\t\twindow.idcomments_acct = $tw.wiki.getTiddlerText('$:/config/bimlas/intensedebate/acct');\n\t\twindow.idcomments_post_url = $tw.wiki.getTiddlerText('$:/config/bimlas/intensedebate/url') + encodeURIComponent(current);\n\t\twindow.idcomments_post_id = $tw.wiki.getTiddlerText('$:/config/bimlas/intensedebate/url') + encodeURIComponent(current);\n\n\t\t/* Load comments */\n\t\tvar loader = document.createElement('script');\n\t\tloader.src = 'https://www.intensedebate.com/js/genericCommentWrapperV2.js';\n\n\t\tvar post_title = document.createElement('span');\n\t\tpost_title.id = 'IDCommentsPostTitle';\n\t\tpost_title.setAttribute('style','display:none');\n\n\t\tparent.insertBefore(loader,nextSibling);\n\t\tthis.domNodes.push(loader);\n\t\tparent.insertBefore(post_title,nextSibling);\n\t\tthis.domNodes.push(post_title);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tIntensedebateWidget.prototype.execute = function() {\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tIntensedebateWidget.prototype.refresh = function(changedTiddlers) {\n\t\treturn false;\n\t};\n\n\texports.intensedebate = IntensedebateWidget;\n\n})();\n", "type": "application/javascript", "module-type": "widget" }, "$:/config/bimlas/intensedebate/filter": { "title": "$:/config/bimlas/intensedebate/filter", "tags": "", "type": "text/vnd.tiddlywiki", "text": "[!is[system]]" }, "$:/plugins/bimlas/intensedebate/settings/settings": { "title": "$:/plugins/bimlas/intensedebate/settings/settings", "tags": "$:/tags/ControlPanel", "type": "text/vnd.tiddlywiki", "caption": "~IntenseDebate", "text": "<$list filter=\"[[$:/ControlPanel]!is[current]]\">\n Configuration for the plugin can be done from within the ~IntenseDebate tab in the [[ControlPanel|$:/ControlPanel]] as well.\n</$list>\n<$list filter=\"[[$:/ControlPanel]is[current]]\">\n Configuration for the [[~IntenseDebate plugin|$:/plugins/bimlas/intensedebate]].\n</$list>\n\n|[[Forum hash code (`idcomments_acct`)|$:/config/bimlas/intensedebate/acct]] |<$edit-text tiddler=\"$:/config/bimlas/intensedebate/acct\" default=\"\" tag=\"input\"/><br/>//For example `e445630af3d4dc59b2dc38bd4d56b9e0` // |\n|[[Website URL|$:/config/bimlas/intensedebate/url]] |<$edit-text tiddler=\"$:/config/bimlas/intensedebate/url\" default=\"\" tag=\"input\"/><br/>//For example https://me.github.io/ (don't forget to add trailing slash) or https://tiddlywiki.com/empty.html // |\n|[[Filter|$:/config/bimlas/intensedebate/filter]]<blockquote>Which tiddlers would you like to comment on?</blockquote> |<$edit-text tiddler=\"$:/config/bimlas/intensedebate/filter\" default=\"\" tag=\"input\"/> |\n" }, "$:/plugins/bimlas/intensedebate/stylesheet": { "title": "$:/plugins/bimlas/intensedebate/stylesheet", "tags": "$:/tags/Stylesheet", "type": "text/css", "text": ".bimlas-intensedebate-toggle {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: right;\n}\n\n.bimlas-intensedebate-toggle img {\n\theight: 1rem;\n}\n" }, "$:/plugins/bimlas/intensedebate/template": { "title": "$:/plugins/bimlas/intensedebate/template", "tags": "$:/tags/ViewTemplate", "type": "text/vnd.tiddlywiki", "text": "<$list filter=\"[all[current]subfilter{$:/config/bimlas/intensedebate/filter}]\" variable=\"doNotOverrideCurrent\">\n\t<$set name=\"stateTiddler\" value=\"$:/state/bimlas/intensedebate\">\n\t\t<$reveal type=\"nomatch\" state=<<stateTiddler>> text=<<currentTiddler>>>\n\t\t\t@@.bimlas-intensedebate-toggle\n\t\t\t\t<$button class=\"tc-btn-invisible\" set=<<stateTiddler>> setTo=<<currentTiddler>> >\n\t\t\t\t\t{{$:/core/images/down-arrow}}\n\t\t\t\t\t[img[https://intensedebate.com/favicon.ico]]\n\t\t\t\t\tShow ~IntenseDebate comments\n\t\t\t\t</$button>\n\t\t\t@@\n\t\t</$reveal>\n\t\t<$reveal type=\"match\" state=<<stateTiddler>> text=<<currentTiddler>>>\n\t\t\t@@.bimlas-intensedebate-toggle\n\t\t\t\t<$button class=\"tc-btn-invisible\" set=<<stateTiddler>> setTo=\"\">\n\t\t\t\t\t{{$:/core/images/up-arrow}}\n\t\t\t\t\t[img[https://intensedebate.com/favicon.ico]]\n\t\t\t\t\tHide ~IntenseDebate comments\n\t\t\t\t</$button>\n\t\t\t@@\n\n\t\t\t<$intensedebate/>\n\n\t\t</$reveal>\n\t</$set>\n</$list>\n" } } }
{ "tiddlers": { "$:/macros/buggyj/Calendar/base.js": { "text": "/*\\\ntitle: $:/macros/buggyj/Calendar/base.js\ntype: application/javascript\nmodule-type: macro\n\n<<diary year month>>\n<<diary year>> - year calendar\n<<diary>> - this month\n\nOptions:$:/macros/diary/options.json\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\nCAL demo\n*/\n\nexports.name = \"calendarbase\";\n\nexports.params = [\n\t{ name: \"year\" },{ name: \"month\" },{ name: \"opts\" }\n];\n/*\nRun the macro\n*/\n\nexports.run = function(year, month,opts) {\nif (!opts) opts=\"default\";\nvar options = $tw.wiki.getTiddlerData(\"$:/config/bj/Calendar.json\")[opts]||\n\t\t\t\t{lastDayOfWeek:\"6\",formatter:\"\",titlebold:\"\",highlightThisDay:\"\",highlightThisDate:\"\"};\nvar createMonth;\ntry {\n\tcreateMonth = require(options.formatter).createMonth;\n} catch (e) {\n\tcreateMonth= function(mnth,year){\n\t\tvar month=[];\n\t\tfor (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = i;\n\t\treturn month;\n\t}\n} \nvar boldtitle=(options.titlebold=='yes')?'!':'';\nvar day_of_week = (function () { \n\tvar days = [];\n\tfor (var i = 0; i < 7; i++) {days[i] = $tw.language.getString(\"Date/Short/Day/\" + i); } \n\treturn days;\n})();\nvar month_of_year = (function () { \n\tvar months = [];\n\tfor (var i = 1; i < 13; i++) {months[i] = $tw.language.getString(\"Date/Long/Month/\" + i); } \n\treturn months;\n})(); \nvar Calendar = new Date();\nvar thisyear = Calendar.getFullYear(); // year (xxxx)\nvar thismonth = Calendar.getMonth()+1;\t// month (0-11)\nvar thisday = Calendar.getDay(); // day (0-6)\nvar WEEKFIN = parseInt(options.lastDayOfWeek); \nvar MONTHS_IN_YEAR=12;\t\t\t\t\t\n \nvar lf ='\\n';\nvar cal='<div>'+lf+lf; \nvar ayear=thisyear;\nif (!!month) {\n\tif (!!year) {\n\t\tcal+=calendar (month,year,options);\n\t} else {\n\t\tcal+=calendar (month,thisyear,options);\n\t}\n} else {\n\tif (!!year) {\n\t\t\tcal+=titleOfYear(year); \n\t\toptions.seperateYearHeading = 'yes';\n\t\tayear=year; \n\t\tfor(var i=0; i<MONTHS_IN_YEAR; i+=2)\n\t\t\tcal+=splicetable(calendar (i+1,ayear,options),calendar (i+2,ayear,options));\n\t}\n\telse {\n\t\t\tcal+=calendar (thismonth,thisyear,options);\t\n\t}\n}\nreturn cal+lf+lf+'</div>';\n\nfunction calendar (mnth,year,options){\n var month =\tcreateMonth(mnth,year,options);\n var blankdays = (firstDayInMonth(mnth,year)+13-WEEKFIN)%7;\n\treturn titleOfMonth(mnth,year)+createWeekHeading()+\n\t formatAsMonth(month,blankdays);\n}\nfunction titleOfMonth(mth,year) {\n\tif (!!options.seperateYearHeading ) {\n\t\treturn '|>|>|>|'+ centre(boldtitle+ month_of_year[mth]) +'|<|<|<|'+lf;\n\t} else {\n\t\treturn '|>|>|>|'+ centre(boldtitle+ month_of_year[mth] + ' ' + year) +'|<|<|<|'+lf;\n\t}\n}\n\nfunction titleOfYear(year) {\n\t\treturn '|>|>|>|>|>|>|>|'+ centre('!'+year) +'|<|<|<|<|<|<|<|'+lf;\n}\nfunction centre (x){ return ' '+x+' ';}\n\nfunction formatAsMonth(month,blankdays){\t\n\tvar theday,blank=['','|','||','|||','||||','|||||','||||||','|||||||'];\t\n\tvar cal=blank[blankdays];//pad out before first day of month\n\tfor(var i=1; i < month.length;i++){//first '0' month element is not used\n\t\tcal+='|'+month[i];\n\t\ttheday=(i+blankdays-1)%7;\n\t\tif (theday == 6) cal += '|' + lf; \n\t}\n\tif (theday !== 6) cal += blank[7 - theday] + lf;//pad out rest of week, if needed\n\treturn cal ;\n}\nfunction createWeekHeading(){\n\t\tvar daystitle=[],weekdays= day_of_week.slice(0);\n\t\t// highlight today's day of week\n\t\tif (options.highlightThisDay=='yes')weekdays[thisday] ='!'+weekdays[thisday];\n\t\tfor (var i=0;i < weekdays.length; i++) daystitle[i] =centre(weekdays[(i+1+WEEKFIN)%7]);\n\t\treturn '|'+daystitle.join('|')+'|'+lf; \n}\nfunction daysInMonth(iMonth, iYear){\n\t\treturn 32 - new Date(iYear, iMonth-1, 32).getDate();\n\t}\nfunction firstDayInMonth(iMonth, iYear){\n\t\treturn new Date(iYear, iMonth-1, 1).getDay();\n\t} \nfunction splicetable (a,b) {\n\tvar i,cal='',taba =a.split('\\n'),tabb=b.split('|\\n');\n\tvar limit=(taba.length<tabb.length)?taba.length:tabb.length;//shortest\n\tfor (i=0;i<limit-1;i++) \t\tcal+=taba[i]+tabb[i]+'|'+lf;\t \n\tfor (;i < taba.length-1;i++) \tcal+=taba[i]+\"||||||||\"+lf;\n\tfor (;i < tabb.length-1;i++) \tcal+=\"||||||||\"+tabb[i]+lf;\n\treturn cal;\n}\t\t \n} \n\n})();\n", "title": "$:/macros/buggyj/Calendar/base.js", "type": "application/javascript", "module-type": "macro" }, "$:/plugins/bj/calendar/sidbar": { "caption": "Calendar", "tags": "$:/tags/SideBar", "title": "$:/plugins/bj/calendar/sidbar", "type": "text/vnd.tiddlywiki", "text": "<$reveal state=\"$:/temp/plugins/bj/Calendar\" text=\"Year\" type=\"nomatch\">\n <$button set=\"$:/temp/plugins/bj/Calendar\" setTo=\"Year\">Year</$button>\n <<calendar \"\" \"\">>\n</$reveal>\n<$reveal state=\"$:/temp/plugins/bj/Calendar\" text=\"Year\" type=\"match\">\n <$button set=\"$:/temp/plugins/bj/Calendar\" setTo=\"Month\">Month</$button>\n<<calendar 2014 \"\">>\n</$reveal>\n" }, "$:/macros/bj/Calendar/diary.js": { "text": "/*\\\ntitle: $:/macros/bj/Calendar/diary.js\ntype: application/javascript\nmodule-type: global\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\ncalendar demo\n*/\nvar Calendar=new Date();\nvar createMonth= function(mnth,year,options){\n\tvar month=[];\n\tfor (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = createDate(i,mnth,year,options);\n\treturn month;\n}\nfunction createDate(i,mnth,year,options){\n\tvar strong='',tiddlerDate,format = $tw.wiki.getTiddlerText(\"$:/config/NewJournal/Title\") || \"YYYY MM DD\";\n\tvar date=(new Date(year, mnth-1, i));\n\tif (options.highlightLinks==\"yes\") strong ='!';\n\t\n\ttiddlerDate = $tw.utils.formatDateString(date,format);\n \n\tif ($tw.wiki.getTiddler(tiddlerDate))return centre(strong+'[['+i+'|'+tiddlerDate+']]');\n\treturn centre('[['+i+'|'+tiddlerDate+']]');\n}\nfunction daysInMonth(iMonth, iYear){\n\t\treturn 32 - new Date(iYear, iMonth-1, 32).getDate();\n\t}\nfunction centre (x){ return ' '+x+' ';}\nexports.createMonth = createMonth;\n})();\n", "title": "$:/macros/bj/Calendar/diary.js", "type": "application/javascript", "module-type": "global" }, "$:/macros/buggyj/Calendar/entry.js": { "text": "/*\\\ntitle: $:/macros/buggyj/Calendar/entry.js\ntype: application/javascript\nmodule-type: macro\n\n<<calendar year month>>\n<<calendar year>> - year calendar\n<<calendar>> - this month\n\nOptions:$:/macros/diary/options.json\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\nCAL demo\n*/\n\nexports.name = \"calendar\";\n\nexports.params = [\n\t{ name: \"year\" },{ name: \"month\" },{ name: \"opts\" }\n];\n/*\nRun the macro\n*/\n\nexports.run = function(year, month,opts) {\nreturn '<$macrorefresh $name=\"calendarbase\" year=\"'+year+'\" month=\"'+month+'\" opts=\"'+opts+'\" $refresh=\"calendarrefresh\"/>';\n}\n\n})();\n", "title": "$:/macros/buggyj/Calendar/entry.js", "type": "application/javascript", "module-type": "macro" }, "$:/macros/buggyj/Calendar/entry2.js": { "text": "/*\\\ntitle: $:/macros/buggyj/Calendar/entry2.js\ntype: application/javascript\nmodule-type: macro\n\n<<diary year month>>\n<<diary year>> - year calendar\n<<diary>> - this month\n\nOptions:$:/macros/diary/options.json\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\nCAL demo\n*/\n\nexports.name = \"diary\";\n\nexports.params = [\n\t{ name: \"year\" },{ name: \"month\" },{ name: \"opts\" }\n];\n/*\nRun the macro\n*/\n\nexports.run = function(year, month,opts) {\n\tvar tags = $tw.wiki.getTiddlerText(\"$:/config/NewJournal/Tags\");\n\tif (!opts) opts = \"diary\";\n\treturn '<$ifnew fields=\"\"\"{\"tags\":\"'+tags+'\"}\"\"\">' +\n\t'<$macrorefresh $name=\"calendarbase\" year=\"'+year+'\" month=\"'+month+'\" opts=\"'+opts+'\" $refresh=\"calendarrefresh\"/>'+ '</$ifnew>';\n}\n\n})();\n", "title": "$:/macros/buggyj/Calendar/entry2.js", "type": "application/javascript", "module-type": "macro" }, "$:/macros/bj/Calendar/journalfmt.js": { "text": "/*\\\ntitle: $:/macros/bj/Calendar/journalfmt.js\ntype: application/javascript\nmodule-type: global\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\ncalendar demo\n*/\nvar Calendar=new Date();\nvar createMonth= function(mnth,year,options){\n\tvar month=[];\n\tfor (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = createDate(i,mnth,year,options);\n\treturn month;\n}\nfunction createDate(i,mnth,year,options){\n\tvar strong='',tiddlerDate;\n\tvar date=(new Date(year, mnth, i));\n\tif (date.toDateString()===Calendar.toDateString()&&options.highlightThisDate==\"yes\") strong ='!';\n\ttiddlerDate=date.getDate()+\n\t ' '+$tw.language.getString(\"Date/Long/Month/\" + (date.getMonth()))+' '+date.getFullYear();\n \n\tif ($tw.wiki.getTiddler(tiddlerDate)!==undefined) strong ='!';\n\treturn centre(strong+'[['+i+'|'+tiddlerDate+']]');\n}\nfunction daysInMonth(iMonth, iYear){\n\t\treturn 32 - new Date(iYear, iMonth, 32).getDate();\n\t}\nfunction centre (x){ return ' '+x+' ';}\nexports.createMonth = createMonth;\n})();\n", "title": "$:/macros/bj/Calendar/journalfmt.js", "type": "application/javascript", "module-type": "global" }, "$:/macros/bj/Calendar/journalslinked.js": { "text": "/*\\\ntitle: $:/macros/bj/Calendar/journalslinked.js\ntype: application/javascript\nmodule-type: global\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\ncalendar demo\n*/\nvar Calendar=new Date();\nvar createMonth= function(mnth,year,options){\n\tvar month=[];\n\tfor (var i=1;i < 1+daysInMonth(mnth,year);i++) month[i] = createDate(i,mnth,year,options);\n\treturn month;\n}\nfunction createDate(i,mnth,year,options){\n\tvar strong='',tiddlerDate,format = $tw.wiki.getTiddlerText(\"$:/config/NewJournal/Title\") || \"YYYY MM DD\";\n\tvar date=(new Date(year, mnth-1, i));\n\tif (options.highlightLinks==\"yes\") strong ='!';\n\t\n\ttiddlerDate = $tw.utils.formatDateString(date,format);\n \n\tif ($tw.wiki.getTiddler(tiddlerDate))return centre(strong+'[['+i+'|'+tiddlerDate+']]');\n\treturn i;\n}\nfunction daysInMonth(iMonth, iYear){\n\t\treturn 32 - new Date(iYear, iMonth-1, 32).getDate();\n\t}\nfunction centre (x){ return ' '+x+' ';}\nexports.createMonth = createMonth;\n})();\n", "title": "$:/macros/bj/Calendar/journalslinked.js", "type": "application/javascript", "module-type": "global" }, "$:/config/bj/Calendar.json": { "type": "application/json", "title": "$:/config/bj/Calendar.json", "module-type": "library", "text": "\n{\n\t\"journals\":{\n\t\t\"lastDayOfWeek\":\"0\",\n\t\t\"formatter\":\"$:/macros/bj/Calendar/journalfmt.js\",\n\t\t\"titlebold\":\"no\",\n\t\t\"highlightThisDay\":\"no\",\n\t\t\"highlightThisDate\":\"yes\"\n\t},\n\t\"default\":{\n\t\t\"lastDayOfWeek\":\"0\",\n\t\t\"formatter\":\"$:/macros/bj/Calendar/journalslinked.js\",\n\t\t\"titlebold\":\"yes\",\n\t\t\"highlightThisDay\":\"no\",\n\t\t\"highlightLinks\":\"yes\"\n\t},\n\t\"diary\":{\n\t\t\"lastDayOfWeek\":\"0\",\n\t\t\"formatter\":\"$:/macros/bj/Calendar/diary.js\",\n\t\t\"titlebold\":\"yes\",\n\t\t\"highlightThisDay\":\"no\",\n\t\t\"highlightLinks\":\"yes\"\n\t},\n\t\"plain\":{\n\t\t\"lastDayOfWeek\":\"0\",\n\t\t\"formatter\":\"\",\n\t\t\"titlebold\":\"yes\",\n\t\t\"highlightThisDay\":\"yes\",\n\t\t\"highlightThisDate\":\"no\"\n\t}\n}\n" }, "$:/plugins/bj/Calendar/license": { "title": "$:/plugins/bj/Calendar/license", "text": "The MIT License (MIT)\n\nCopyright (c) 2014 Jeffrey Wikinson aka buggyj\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n" }, "$:/core/modules/widgets/macrorefresh.js": { "text": "/*\\\ntitle: $:/core/modules/widgets/macrorefresh.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tthis.params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.params.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar text = this.getVariable(this.parseTreeNode.name || this.getAttribute(\"$name\"),{params: this.params}),\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} \n\t//else \n\tif (this.getAttribute(\"$refresh\")) {\n\t\tvar params = this.params.slice(0);\n\t\tparams.push({name: \"changedTiddlers\", value: changedTiddlers});\n\t\tif (this.getVariable(this.getAttribute(\"$refresh\"),{params: params})) {\n\t\t\t\t\t// Rerender ourselves\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} \n\t//else \n\t}\n\treturn this.refreshChildren(changedTiddlers);\n\n};\n\nexports.macrorefresh = MacroCallWidget;\n\n})();\n", "title": "$:/core/modules/widgets/macrorefresh.js", "type": "application/javascript", "module-type": "widget" }, "$:/macros/buggyj/Calendar/ifnew.js": { "text": "/*\\\ntitle: $:/macros/buggyj/Calendar/ifnew.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\nToDo - add message param to listen for other mssg and action to set other actions (link just create)\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar IfNewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nIfNewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nIfNewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nIfNewWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.fields = this.getAttribute(\"fields\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nIfNewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.fields || changedAttributes.message ) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nIfNewWidget.prototype.handleNavigateEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(event.navigateTo),fds;\n\tif(tiddler) return true;\n\ttry {\n\t\tfds=JSON.parse(this.fields);\n\t} catch(e) {\n\t\tfds={};\n\t}\n\tfds.title = event.navigateTo;\n\tif(this.parentWidget) {\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-new-tiddler\",\n\t\t\tparam: fds\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.ifnew = IfNewWidget;\n\n})();\n", "title": "$:/macros/buggyj/Calendar/ifnew.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/bj/Calendar/readme": { "title": "$:/plugins/bj/Calendar/readme", "text": "For documentation see the project home at\nhttp://bjtools.tiddlyspot.com#ExtendableCalendar\n" }, "$:/macros/buggyj/Calendar/refresh.js": { "text": "/*\\\ntitle: $:/macros/buggyj/Calendar/refresh.js\ntype: application/javascript\nmodule-type: macro\n\n<<diary year month>>\n<<diary year>> - year calendar\n<<diary>> - this month\n\nOptions:$:/macros/diary/options.json\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\nCAL demo\n*/\n\nexports.name = \"calendarrefresh\";\n\nexports.params = [\n\t{ name: \"year\" },{ name: \"month\" },{ name: \"opts\" },{name:\"changedTiddlers\"}\n];\n \n// Source: http://stackoverflow.com/questions/497790\nvar dates = {\n convert:function(d) {\n // Converts the date in d to a date-object. The input can be:\n // a date object: returned without modification\n // an array : Interpreted as [year,month,day]. NOTE: month is 0-11.\n // a number : Interpreted as number of milliseconds\n // since 1 Jan 1970 (a timestamp) \n // a string : Any format supported by the javascript engine, like\n // \"YYYY/MM/DD\", \"MM/DD/YYYY\", \"Jan 31 2009\" etc.\n // an object : Interpreted as an object with year, month and date\n // attributes. **NOTE** month is 0-11.\n return (\n d.constructor === Date ? d :\n d.constructor === Array ? new Date(d[0],d[1],d[2]) :\n d.constructor === Number ? new Date(d) :\n d.constructor === String ? new Date(d) :\n typeof d === \"object\" ? new Date(d.year,d.month,d.date) :\n NaN\n );\n },\n compare:function(a,b) {\n // Compare two dates (could be of any type supported by the convert\n // function above) and returns:\n // -1 : if a < b\n // 0 : if a = b\n // 1 : if a > b\n // NaN : if a or b is an illegal date\n // NOTE: The code inside isFinite does an assignment (=).\n return (\n isFinite(a=this.convert(a).valueOf()) &&\n isFinite(b=this.convert(b).valueOf()) ?\n (a>b)-(a<b) :\n NaN\n );\n },\n inRange:function(d,start,end) {\n // Checks if date in d is between dates in start and end.\n // Returns a boolean or NaN:\n // true : if d is between start and end (inclusive)\n // false : if d is before start or after end\n // NaN : if one or more of the dates is illegal.\n // NOTE: The code inside isFinite does an assignment (=).\n return (\n isFinite(d=this.convert(d).valueOf()) &&\n isFinite(start=this.convert(start).valueOf()) &&\n isFinite(end=this.convert(end).valueOf()) ?\n start <= d && d <= end :\n NaN\n );\n }\n}\n/*\nRun the macro\n*/\n\nexports.run = function(year, month,opts,changedTiddlers) {\n\n\tvar found = false;\n\tvar journaltag = \"Journal\";\n\t\n\t$tw.utils.each(changedTiddlers,function(attribute,name) {\n\t\tif (attribute.deleted) {\n\t\t\treturn;\n\t\t}\n\t\tvar tiddler = $tw.wiki.getTiddler(name);\n\t\tvar tags = (tiddler.fields.tags || []).slice(0);\n\t\t\n\t\tif(tags.indexOf(journaltag) != -1) {\n\t\t\tfound = true;\t\n\t\t}\n\t});\n\tif (found) return \"found\";\n\treturn \"\"; \n} \n\n})();\n", "title": "$:/macros/buggyj/Calendar/refresh.js", "type": "application/javascript", "module-type": "macro" } } }
The MIT License (MIT) Copyright (c) 2014 Jeffrey Wikinson aka buggyj Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
For documentation see the project home at http://bjtools.tiddlyspot.com#ExtendableCalendar
<$reveal state="$:/temp/plugins/bj/Calendar" text="Year" type="nomatch"> <$button set="$:/temp/plugins/bj/Calendar" setTo="Year">Year</$button> <<calendar "" "">> </$reveal> <$reveal state="$:/temp/plugins/bj/Calendar" text="Year" type="match"> <$button set="$:/temp/plugins/bj/Calendar" setTo="Month">Month</$button> <<calendar 2019 "">> </$reveal>
/*\ title: $:/plugins/BTC/tiddly-touch/widgets/pan.js type: application/javascript module-type: widget enable actions triggered on panning \*/ (function (global) { "use strict"; /*jslint node: true, browser: true */ /*global $tw: false */ var Widget = require("$:/core/modules/widgets/widget.js").widget; if (typeof window !== 'undefined') { var Hammer = require("$:/plugins/tiddlywiki/hammerjs/hammer.js"); } var PanWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; /* Inherit from the base widget class */ PanWidget.prototype = new Widget(); /* Render this widget into the DOM */ PanWidget.prototype.render = function(parent,nextSibling) { var self = this; var parentDomNode = parent; // Compute attributes and execute state this.computeAttributes(); this.execute(); this.renderChildren(parent,nextSibling); this.panState = self.trim(self.getAttribute('$state')) || "off"; if(this.panState !== "on") { return false; } this.elementClasses = self.trim(self.getAttribute('$targets')) || undefined; if (this.elementClasses === undefined) { return false; } var elementClass; var multipleClasses = null; if(this.elementClasses.indexOf(' ') !== -1) { multipleClasses = true; elementClass = self.elementClasses.split(' '); } else { elementClass = self.elementClasses; } this.direction = self.trim(self.getAttribute('$direction','')) || ''; //var panDirection = 'pan' + direction; this.stateTiddler = $tw.utils.trim(self.getAttribute('$statetiddler','$:/state/pan')); this.pointerCount = parseInt(self.getAttribute('$pointers','1')); this.panThreshold = parseInt(self.getAttribute('$threshold','0')); this.userToFixed = parseInt(self.getAttribute('$decimals','0')); this.panSteps = Math.floor(100 / parseInt(self.getAttribute('$steps','24'))); var allowedDirection = Hammer.DIRECTION_ALL; if(this.direction === 'vertical') { allowedDirection = Hammer.DIRECTION_VERTICAL; } else if(this.direction === 'horizontal') { allowedDirection = Hammer.DIRECTION_HORIZONTAL; } if(elementClass === undefined || elementClass === null || elementClass === "") { return false; } var domNodeList = []; if (multipleClasses === true) { for (var j=0; j<elementClass.length;j++) { var classElements = parentDomNode.getElementsByClassName(elementClass[j]); for (var k=0; k<classElements.length; k++) { domNodeList[j + k] = classElements[k]; } } } else { domNodeList = parentDomNode.getElementsByClassName(elementClass); } var elementIndex; var panStartValues = []; var panValues = []; for(var i=0;i < domNodeList.length;i++) { elementIndex = i; var currentElement = domNodeList[i]; var hammer = new Hammer.Manager(domNodeList[i]); hammer.add(new Hammer.Pan({ event: 'pan', pointers: self.pointerCount, threshold: self.panThreshold, direction: allowedDirection })); hammer.get('pan'); var startX = null; var startY = null; var elementTop = null; var elementLeft = null; var elementBottom = null; var elementRight = null; var elementWidth = null; var elementHeight = null; var startActions = null; var singleElement = null; var pointerType = null; var domNodeRect = null; var fieldStartNames = [ 'starting-x', 'starting-y', 'element-top', 'element-left', 'element-bottom', 'element-right', 'element-width', 'element-height', 'pointer-type' ]; var fieldNames = [ 'delta-x', 'delta-y' ]; hammer.on('touchmove panstart panmove', function(e) { if (domNodeRect === null) { domNodeRect = currentElement.getBoundingClientRect(); } if (startActions === null && self.panStartActions) { if(self.panStartActions) { self.invokeActionString(self.panStartActions,self,e); } startActions = 'done'; } if (panStartValues.length === 0) { panStartValues[0] = e.center.x.toFixed(self.userToFixed); panStartValues[1] = e.center.y.toFixed(self.userToFixed); panStartValues[2] = domNodeRect.top.toFixed(self.userToFixed); panStartValues[3] = domNodeRect.left.toFixed(self.userToFixed); panStartValues[4] = domNodeRect.bottom.toFixed(self.userToFixed); panStartValues[5] = domNodeRect.right.toFixed(self.userToFixed); panStartValues[6] = domNodeRect.width.toFixed(self.userToFixed); panStartValues[7] = domNodeRect.height.toFixed(self.userToFixed); panStartValues[8] = e.pointerType; for(var t = 0; t<panStartValues.length; t++){ if(domNodeList.length === 1) { singleElement = true; self.setField(self.stateTiddler,fieldStartNames[t],panStartValues[t]); } else { var fieldName = fieldStartNames[t] + "-" + elementIndex; self.setField(self.stateTiddler,fieldName,panStartValues[t]); } } if(singleElement === true) { self.setField(self.stateTiddler,'delta-x',e.deltaX.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'delta-y',e.deltaY.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-x',e.center.x.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-y',e.center.y.toFixed(self.userToFixed)); } else { self.setField(self.stateTiddler,'delta-x' + elementIndex,e.deltaX.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'delta-y' + elementIndex,e.deltaY.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-x' + elementIndex,e.center.x.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-y' + elementIndex,e.center.y.toFixed(self.userToFixed)); } } function panWidgetTimeoutFunction(timestamp) { if(self.panRepeatActions) { self.invokeActionString(self.panRepeatActions,self,e); } if(singleElement === true) { self.setField(self.stateTiddler,'delta-x',e.deltaX.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'delta-y',e.deltaY.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-x',e.center.x.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-y',e.center.y.toFixed(self.userToFixed)); } else { self.setField(self.stateTiddler,'delta-x' + elementIndex,e.deltaX.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'delta-y' + elementIndex,e.deltaY.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-x' + elementIndex,e.center.x.toFixed(self.userToFixed)); self.setField(self.stateTiddler,'center-y' + elementIndex,e.center.y.toFixed(self.userToFixed)); } }; window.requestAnimationFrame(panWidgetTimeoutFunction); }) .on('panend pancancel touchend mouseup', function(e) { //e.stopPropagation && e.stopPropagation(); //var domNodeRectEnd = currentElement.getBoundingClientRect(); startX = null; startY = null; elementTop = null; elementLeft = null; elementBottom = null; elementRight = null; elementWidth = null; elementHeight = null; startActions = null; singleElement = null; pointerType = null; domNodeRect = null; panStartValues = []; if(self.panEndActions) { self.invokeActionString(self.panEndActions,self,e); } return false; }); } }; /* Set the computed values in the state-tiddler fields */ PanWidget.prototype.setField = function(tiddler,field,value) { $tw.wiki.setText(tiddler,field,undefined,value,{ suppressTimestamp: true }); }; PanWidget.prototype.trim = function(str) { if(typeof str === "string") { return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '').replace(/ +(?= )/g,''); } else { return str; } }; /* Compute the internal state of the widget */ PanWidget.prototype.execute = function() { this.panStartActions = this.getAttribute("$startactions",""); this.panRepeatActions = this.getAttribute("$repeatactions",""); this.panEndActions = this.getAttribute("$endactions",""); this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ PanWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(Object.keys(changedAttributes).length) { this.refreshSelf(); return true; } return this.refreshChildren(changedTiddlers); }; exports.pan = PanWidget; })();
{ "tiddlers": { "$:/plugins/danielo/encryptTiddler/Changelog": { "title": "$:/plugins/danielo/encryptTiddler/Changelog", "text": "!! V2.1\n* Added control panel.\n* Added ability to batch encrypt and decrypt tiddlers.\n* Added some documentation an language strings.\n\n" }, "$:/plugins/danielo/encryptTiddler/control-panel/batch-encrypt": { "title": "$:/plugins/danielo/encryptTiddler/control-panel/batch-encrypt", "caption": "Batch Encryption", "text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n{{$:/plugins/danielo/encryptTiddler/language/batch}}\n\n<$linkcatcher to=\"$:/temp/encrypt/filter\">\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/encrypt/filter\" type=\"search\" tag=\"input\" default=\"\" placeholder=\"filter tiddlers\"/>\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/encrypt/filter\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n\n\n<$edit-text tag=\"input\" tiddler=\"$:/temp/password\" placeholder=\"password\" type=\"password\" default=\"\" col=\"4\"/><$encryptTiddler passwordTiddler=\"$:/temp/password\" filter={{$:/temp/encrypt/filter}}>\n<$button message=\"tw-encrypt-tiddler\">\nEncrypt\n</$button>\n<$button message=\"tw-decrypt-tiddler\">\nDecrypt\n</$button>\n</$encryptTiddler>\n</$reveal>\n</div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]!sort[]] -[[$:/core/Filters/SystemTags]] -[[$:/core/Filters/AllTags]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/encrypt/filter\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/encrypt/filter}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/encrypt/filter}} template=\"$:/plugins/danielo/encryptTiddler/ui/listItemTemplate\"/>\n</div>\n</$set>\n</$reveal>" }, "$:/plugins/danielo/encryptTiddler/control-panel": { "title": "$:/plugins/danielo/encryptTiddler/control-panel", "tags": "$:/tags/ControlPanel", "caption": "Encrypt Tiddlers", "text": "\\define prefix(name) $:/plugins/danielo/encryptTiddler/control-panel/$name$\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]prefix[$:/plugins/danielo/encryptTiddler/control-panel/]]\" default=<<prefix \"batch-encrypt\">> state=\"$:/state/encryptTiddler/control-panel/tabs\">>" }, "$:/plugins/danielo/encryptTiddler/crypt-batch-button": { "creator": "Danielo", "title": "$:/plugins/danielo/encryptTiddler/crypt-batch-button", "text": "<span title=\"Encrypt/Decrypt tiddler\" class=\"pc-batch-controls\">\n<$reveal state=<<qualify \"$:/state/encrypt\">> type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"no\"><$button set=<<qualify \"$:/state/encrypt\">> setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>\n<$encryptTiddler passwordTiddler=\"$:/temp/password\" filter={{$:/temp/encrypt/filter}}><$reveal state=<<qualify \"$:/state/encrypt\">> type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n<span class=\"tw-crypt-button\"> <$button message=\"tw-encrypt-tiddler\" set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Encrypt</$button> <$button message=\"tw-decrypt-tiddler\" set=<<qualify \"$:/state/encrypt\">> setTo=\"\" >Decrypt</$button></span>\n</div>\n</$reveal></$encryptTiddler>\n</span>" }, "$:/plugins/danielo/encryptTiddler/crypt-button": { "created": "20140405233000477", "creator": "Danielo", "modified": "20140608121335075", "tags": "$:/tags/ViewToolbar button encrypt export", "title": "$:/plugins/danielo/encryptTiddler/crypt-button", "type": "text/vnd.tiddlywiki", "text": "<span title=\"Encrypt/Decrypt tiddler\"><$transclude tiddler=\"$:/plugins/danielo/encryptTiddler/openPopup\"/>\n</span><$encryptTiddler passwordTiddler=\"$:/temp/password\"><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"yes\">\n<div class=\"tc-block-dropdown tw-crypt-dropdown\">\n<span class=\"tw-password-field\"><$edit-text tiddler=\"$:/temp/password\" tag=\"input\" type=\"password\" default=\"\" placeholder=\"password\" class=\"tc-edit-texteditor\"/></span>\n<span class=\"tw-crypt-button\"> <$list filter=\"[all[current]!has[encrypted]]\"> <$button message=\"tw-encrypt-tiddler\" set=\"$:/state/encrypt\" setTo=\"\" >Encrypt</$button></$list><$list filter=\"[is[current]has[encrypted]]\"> <$button message=\"tw-decrypt-tiddler\" set=\"$:/state/encrypt\" setTo=\"\" >Decrypt</$button></$list></span>\n</div>\n</$reveal></$encryptTiddler>\n" }, "$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler": { "created": "20140406153742691", "creator": "pepito", "description": "add the hability to encrypt individual tiddlers", "modified": "20141029152631265", "modifier": "Danielo Rodriguez", "tags": "index plugins", "title": "$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler", "type": "text/vnd.tiddlywiki", "caption": "readme", "text": "This plugin adds the ability to encrypt your tiddlers individually. This have several advantages:\n\n* You can specify a different password for each tiddler if you want.\n* You don't have to encrypt your whole wiky.\n* If you forget your password, you only lose a tiddler.\n* It's possible to edit the tiddler content , tags and fields ''except the encrypt field'' after encryption. Decrypting your tiddler will restore it to its original state when you encrypted it. This way you can hide the encrypted tiddlers as a \"different\" thing.\n* You can even encrypt images.\n* You can have sensible data in a day to day wiky.\n* I didn't try this, but theoretically you can apply double encryption by encrypting your wiki too." }, "$:/plugins/danielo/encryptTiddler/encrypttiddler.js": { "text": "/*\\\ntitle: $:/plugins/danielo/encryptTiddler/encrypttiddler.js\ntype: application/javascript\nmodule-type: widget\n\nencrypttiddler widget\n\n```\n\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar encryptTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t\t{type: \"tw-encrypt-tiddler\", handler: \"handleEncryptevent\"},\n\t\t\t{type: \"tw-decrypt-tiddler\", handler: \"handleDecryptevent\"},\n\t\t\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nencryptTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nencryptTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tconsole.log(\"Render\");\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nencryptTiddlerWidget.prototype.execute = function() {\n\t// Get attributes\n\t this.tiddlerTitle=this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t this.filter=this.getAttribute(\"filter\",undefined);\n \t this.passwordTiddler=this.getAttribute(\"passwordTiddler\");\n\t// Construct the child widgets\n\tconsole.log(this.targetTiddler);\n\t\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nencryptTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.filter) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nencryptTiddlerWidget.prototype.getTiddlersToProcess = function(){\n\tif(this.filter){ //we have a filter to work with\n\t\treturn this.wiki.filterTiddlers(this.filter);\n\t}else{ //single tiddler case\n\t\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\t\treturn tiddler? [tiddler.fields.title] : [];\n\t}\n};\n\nencryptTiddlerWidget.prototype.handleEncryptevent = function(event){\n\tvar password = this.getPassword();\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields={text:\"!This is an encrypted Tiddler\",\n\t\t\t\t\t\t\t\t encrypted:self.encryptFields(title,password)};\n\t\t\tself.saveTiddler(tiddler,fields);\n\t\t});\n\n\t}else{\n\t\tconsole.log(\"We did not find any tiddler to encrypt or password not set!\")\n\t}\n};\n\nencryptTiddlerWidget.prototype.handleDecryptevent = function(event){\n\tvar password =this.getPassword();\n\tvar tiddlers = this.getTiddlersToProcess();\n\n\tif(tiddlers.length > 0 && password){\n\t\tvar self = this;\n\t\t$tw.utils.each(tiddlers, function(title){\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tvar fields = self.decryptFields(tiddler,password);\n\t\t\tif(fields)self.saveTiddler(tiddler,fields);\n\t\t});\n\t}\n};\n\nencryptTiddlerWidget.prototype.saveTiddler=function(tiddler,fields){\n\tthis.wiki.addTiddler( new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,this.clearNonStandardFields(tiddler), fields ) )\n}\n\nencryptTiddlerWidget.prototype.encryptFields = function (title,password){\n\tvar jsonData=this.wiki.getTiddlerAsJson(title);\n\treturn $tw.crypto.encrypt(jsonData,password);\n\n};\n\nencryptTiddlerWidget.prototype.decryptFields = function(tiddler,password){\n\t\tvar JSONfields =$tw.crypto.decrypt(tiddler.fields.encrypted,password);\n\t\tif(JSONfields!==null){\n\t\t\treturn JSON.parse(JSONfields);\n\t\t}\n\t\tconsole.log(\"Error decrypting \"+tiddler.fields.title+\". Probably bad password\")\n\t\treturn false\n};\n\nencryptTiddlerWidget.prototype.getPassword = function(){\n\tvar tiddler=this.wiki.getTiddler(this.passwordTiddler);\n\tif(tiddler){\n\t\tvar password=tiddler.fields.text;\n\t\tthis.saveTiddler(tiddler); //reset password tiddler\n\t\treturn password;\n\t}\n\n\treturn false\n};\n\n// This function erases every field of a tiddler that is not standard and also\n// the text field\nencryptTiddlerWidget.prototype.clearNonStandardFields =function(tiddler) {\n\tvar standardFieldNames = \"title tags modified modifier created creator\".split(\" \");\n\t\tvar clearFields = {};\n\t\tfor(var fieldName in tiddler.fields) {\n\t\t\tif(standardFieldNames.indexOf(fieldName) === -1) {\n\t\t\t\tclearFields[fieldName] = undefined;\n\t\t\t}\n\t\t}\n\t\tconsole.log(\"Cleared fields \"+JSON.stringify(clearFields));\n\t\treturn clearFields;\n};\n\nexports.encryptTiddler = encryptTiddlerWidget;\n\n})();", "title": "$:/plugins/danielo/encryptTiddler/encrypttiddler.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/danielo/encryptTiddler/Filters/encrypted-tiddlers": { "title": "$:/plugins/danielo/encryptTiddler/Filters/encrypted-tiddlers", "description": "All encrypted tiddlers", "filter": "[has[encrypted]]", "tags": "$:/tags/Filter" }, "$:/plugins/danielo/encryptTiddler/Filters/normal-unencrypted-tiddlers": { "title": "$:/plugins/danielo/encryptTiddler/Filters/normal-unencrypted-tiddlers", "filter": "[!is[system]!has[encrypted]]", "description": "Non-encrypted normal tiddlers", "tags": "$:/tags/Filter" }, "$:/plugins/danielo/encryptTiddler/language/batch": { "title": "$:/plugins/danielo/encryptTiddler/language/batch", "text": "Use below controls to encrypt or decrypt a bunch of tiddlers. Encryption ''controls are hidden'' until you type something in the search box. All listed tiddlers will be affected. The presence of a small padlock (<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>) next to the tiddler title indicates that particular tiddler is already encrypted." }, "$:/plugins/danielo/encryptTiddler/ui/listItemTemplate": { "title": "$:/plugins/danielo/encryptTiddler/ui/listItemTemplate", "text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n<$list filter=\"[all[current]has[encrypted]]\">\n<span class=\"pc-listItem-lock\">{{$:/core/images/locked-padlock}}</span>\n</$list>\n</$link>\n</div>" }, "$:/plugins/danielo/encryptTiddler/openPopup": { "created": "20140406151910358", "creator": "Danielo", "modified": "20140608121417975", "modifier": "pepito", "tags": "button encrypt export", "title": "$:/plugins/danielo/encryptTiddler/openPopup", "type": "text/vnd.tiddlywiki", "text": "<$reveal state=\"$:/state/encrypt\" type=\"nomatch\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo={{!!title}} class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=\"$:/state/encrypt\" type=\"match\" text={{!!title}} animate=\"no\"><$button set=\"$:/state/encrypt\" setTo=\"\" class=\"tc-btn-invisible\">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>" }, "$:/plugins/danielo/encryptTiddler/styles": { "created": "20140406110705085", "creator": "pepito", "modified": "20140608121510064", "modifier": "pepito", "tags": "$:/tags/Stylesheet encrypt export", "title": "$:/plugins/danielo/encryptTiddler/styles", "type": "text/plain", "text": ".tw-password-field {\n\tdisplay: inline-block;\n\twidth: 55%;\n font-size:1em;\n line-height:0;\n margin:0;\n\tpadding-left:7%;\n}\n\n.pc-batch-controls .tw-crypt-dropdown{\n\tright: 0px;\n}\n\n.pc-batch-controls{\n\t\tposition:relative;\n}\n\n.pc-listItem-lock svg{\n\theight: 1em;\n\twidth: 1em;\n\tfill: #aaaaaa;\n}\n\n/*It is for use in combination with tc-block-dropdown */\n.tw-crypt-dropdown{\n line-height:0;\n\t\t\tpadding-left:5px;\n\t\t\t}\n\n.tw-password-field input{\n font-size:0.5em;\n\n}\n\n.tw-crypt-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n.tw-crypt-button button{\n\tfont-size:0.5em;\n}\n" }, "$:/plugins/danielo/encryptTiddler/unlocked": { "created": "20140406101339943", "creator": "danielo515", "modified": "20140608121532690", "modifier": "danielo515", "tags": "encrypt export", "title": "$:/plugins/danielo/encryptTiddler/unlocked", "type": "text/vnd.tiddlywiki", "text": "<svg version=\"1.1\" id=\"Capa_1\" xmlns=\"http://www.w3.org/2000/svg\" class=\"tc-image-button\"\n\t viewBox=\"0 0 100 100\" style=\"enable-background:new 0 0 100 100;\" xml:space=\"preserve\">\n<g>\n\t<path d=\"M77.555,50H35.304V31.63c0-4.057,1.435-7.521,4.305-10.391c2.87-2.87,6.333-4.305,10.391-4.305\n\t\tc4.056,0,7.52,1.435,10.39,4.305s4.305,6.335,4.305,10.391c0,0.996,0.363,1.857,1.091,2.583c0.727,0.729,1.588,1.09,2.583,1.09\n\t\th3.674c0.995,0,1.856-0.361,2.583-1.09c0.727-0.727,1.091-1.588,1.091-2.583c0-7.079-2.517-13.136-7.549-18.17\n\t\tC63.136,8.428,57.08,5.912,50,5.912c-7.081,0-13.137,2.516-18.169,7.548c-5.033,5.034-7.549,11.091-7.549,18.17V50h-1.837\n\t\tc-1.531,0-2.833,0.536-3.904,1.608c-1.072,1.072-1.607,2.372-1.607,3.902v33.067c0,1.532,0.535,2.832,1.607,3.904\n\t\tc1.071,1.072,2.372,1.608,3.904,1.608h55.11c1.53,0,2.832-0.536,3.904-1.608c1.071-1.072,1.607-2.372,1.607-3.904V55.51\n\t\tc0-1.529-0.536-2.83-1.607-3.902C80.387,50.536,79.085,50,77.555,50z M54.315,72.937V83.72c0,2.173-1.762,3.935-3.935,3.935H49.62\n\t\tc-2.173,0-3.935-1.762-3.935-3.935V72.937c-2.31-1.443-3.852-4.001-3.852-6.925c0-4.511,3.657-8.167,8.167-8.167\n\t\ts8.167,3.657,8.167,8.167C58.167,68.937,56.625,71.495,54.315,72.937z\"/>\n</g>\n</svg>\n" } } }
!! V2.1 * Added control panel. * Added ability to batch encrypt and decrypt tiddlers. * Added some documentation an language strings.
\define prefix(name) $:/plugins/danielo/encryptTiddler/control-panel/$name$ <$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]prefix[$:/plugins/danielo/encryptTiddler/control-panel/]]" default=<<prefix "batch-encrypt">> state="$:/state/encryptTiddler/control-panel/tabs">>
\define lingo-base() $:/language/Search/ <<lingo Filter/Hint>> {{$:/plugins/danielo/encryptTiddler/language/batch}} <$linkcatcher to="$:/temp/encrypt/filter"> <div class="tc-search tc-advanced-search"> <$edit-text tiddler="$:/temp/encrypt/filter" type="search" tag="input" default="" placeholder="filter tiddlers"/> <$button popup=<<qualify "$:/state/filterDropdown">> class="tc-btn-invisible"> {{$:/core/images/down-arrow}} </$button> <$reveal state="$:/temp/encrypt/filter" type="nomatch" text=""> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/encrypt/filter" $field="text" $value=""/> {{$:/core/images/close-button}} </$button> <$edit-text tag="input" tiddler="$:/temp/password" placeholder="password" type="password" default="" col="4"/><$encryptTiddler passwordTiddler="$:/temp/password" filter={{$:/temp/encrypt/filter}}> <$button message="tw-encrypt-tiddler"> Encrypt </$button> <$button message="tw-decrypt-tiddler"> Decrypt </$button> </$encryptTiddler> </$reveal> </div> <div class="tc-block-dropdown-wrapper"> <$reveal state=<<qualify "$:/state/filterDropdown">> type="nomatch" text="" default=""> <div class="tc-block-dropdown tc-edit-type-dropdown"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/Filter]!sort[]] -[[$:/core/Filters/SystemTags]] -[[$:/core/Filters/AllTags]]"><$link to={{!!filter}}><$transclude field="description"/></$link> </$list> </div> </$reveal> </div> </$linkcatcher> <$reveal state="$:/temp/encrypt/filter" type="nomatch" text=""> <$set name="resultCount" value="""<$count filter={{$:/temp/encrypt/filter}}/>"""> <div class="tc-search-results"> <<lingo Filter/Matches>> <$list filter={{$:/temp/encrypt/filter}} template="$:/plugins/danielo/encryptTiddler/ui/listItemTemplate"/> </div> </$set> </$reveal>
<span title="Encrypt/Decrypt tiddler" class="pc-batch-controls"> <$reveal state=<<qualify "$:/state/encrypt">> type="nomatch" text={{!!title}} animate="no"><$button set=<<qualify "$:/state/encrypt">> setTo={{!!title}} class="tc-btn-invisible">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state=<<qualify "$:/state/encrypt">> type="match" text={{!!title}} animate="no"><$button set=<<qualify "$:/state/encrypt">> setTo="" class="tc-btn-invisible">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal> <$encryptTiddler passwordTiddler="$:/temp/password" filter={{$:/temp/encrypt/filter}}><$reveal state=<<qualify "$:/state/encrypt">> type="match" text={{!!title}} animate="yes"> <div class="tc-block-dropdown tw-crypt-dropdown"> <span class="tw-password-field"><$edit-text tiddler="$:/temp/password" tag="input" type="password" default="" placeholder="password" class="tc-edit-texteditor"/></span> <span class="tw-crypt-button"> <$button message="tw-encrypt-tiddler" set=<<qualify "$:/state/encrypt">> setTo="" >Encrypt</$button> <$button message="tw-decrypt-tiddler" set=<<qualify "$:/state/encrypt">> setTo="" >Decrypt</$button></span> </div> </$reveal></$encryptTiddler> </span>
<span title="Encrypt/Decrypt tiddler"><$transclude tiddler="$:/plugins/danielo/encryptTiddler/openPopup"/> </span><$encryptTiddler passwordTiddler="$:/temp/password"><$reveal state="$:/state/encrypt" type="match" text={{!!title}} animate="yes"> <div class="tc-block-dropdown tw-crypt-dropdown"> <span class="tw-password-field"><$edit-text tiddler="$:/temp/password" tag="input" type="password" default="" placeholder="password" class="tc-edit-texteditor"/></span> <span class="tw-crypt-button"> <$list filter="[all[current]!has[encrypted]]"> <$button message="tw-encrypt-tiddler" set="$:/state/encrypt" setTo="" >Encrypt</$button></$list><$list filter="[is[current]has[encrypted]]"> <$button message="tw-decrypt-tiddler" set="$:/state/encrypt" setTo="" >Decrypt</$button></$list></span> </div> </$reveal></$encryptTiddler>
This plugin adds the ability to encrypt your tiddlers individually. This have several advantages: * You can specify a different password for each tiddler if you want. * You don't have to encrypt your whole wiky. * If you forget your password, you only lose a tiddler. * It's possible to edit the tiddler content , tags and fields ''except the encrypt field'' after encryption. Decrypting your tiddler will restore it to its original state when you encrypted it. This way you can hide the encrypted tiddlers as a "different" thing. * You can even encrypt images. * You can have sensible data in a day to day wiky. * I didn't try this, but theoretically you can apply double encryption by encrypting your wiki too.
/*\ title: $:/plugins/danielo/encryptTiddler/encrypttiddler.js type: application/javascript module-type: widget encrypttiddler widget ``` ``` \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var encryptTiddlerWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); this.addEventListeners([ {type: "tw-encrypt-tiddler", handler: "handleEncryptevent"}, {type: "tw-decrypt-tiddler", handler: "handleDecryptevent"}, ]); }; /* Inherit from the base widget class */ encryptTiddlerWidget.prototype = new Widget(); /* Render this widget into the DOM */ encryptTiddlerWidget.prototype.render = function(parent,nextSibling) { console.log("Render"); this.parentDomNode = parent; this.computeAttributes(); this.execute(); this.renderChildren(parent,nextSibling); }; /* Compute the internal state of the widget */ encryptTiddlerWidget.prototype.execute = function() { // Get attributes this.tiddlerTitle=this.getAttribute("tiddler",this.getVariable("currentTiddler")); this.filter=this.getAttribute("filter",undefined); this.passwordTiddler=this.getAttribute("passwordTiddler"); // Construct the child widgets console.log(this.targetTiddler); this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ encryptTiddlerWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes.tiddler || changedAttributes.filter) { this.refreshSelf(); return true; } else { return this.refreshChildren(changedTiddlers); } }; encryptTiddlerWidget.prototype.getTiddlersToProcess = function(){ if(this.filter){ //we have a filter to work with return this.wiki.filterTiddlers(this.filter); }else{ //single tiddler case var tiddler = this.wiki.getTiddler(this.tiddlerTitle); return tiddler? [tiddler.fields.title] : []; } }; encryptTiddlerWidget.prototype.handleEncryptevent = function(event){ var password = this.getPassword(); var tiddlers = this.getTiddlersToProcess(); if(tiddlers.length > 0 && password){ var self = this; $tw.utils.each(tiddlers, function(title){ var tiddler = self.wiki.getTiddler(title); var fields={text:"!This is an encrypted Tiddler", encrypted:self.encryptFields(title,password)}; self.saveTiddler(tiddler,fields); }); }else{ console.log("We did not find any tiddler to encrypt or password not set!") } }; encryptTiddlerWidget.prototype.handleDecryptevent = function(event){ var password =this.getPassword(); var tiddlers = this.getTiddlersToProcess(); if(tiddlers.length > 0 && password){ var self = this; $tw.utils.each(tiddlers, function(title){ var tiddler = self.wiki.getTiddler(title); var fields = self.decryptFields(tiddler,password); if(fields)self.saveTiddler(tiddler,fields); }); } }; encryptTiddlerWidget.prototype.saveTiddler=function(tiddler,fields){ this.wiki.addTiddler( new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,this.clearNonStandardFields(tiddler), fields ) ) } encryptTiddlerWidget.prototype.encryptFields = function (title,password){ var jsonData=this.wiki.getTiddlerAsJson(title); return $tw.crypto.encrypt(jsonData,password); }; encryptTiddlerWidget.prototype.decryptFields = function(tiddler,password){ var JSONfields =$tw.crypto.decrypt(tiddler.fields.encrypted,password); if(JSONfields!==null){ return JSON.parse(JSONfields); } console.log("Error decrypting "+tiddler.fields.title+". Probably bad password") return false }; encryptTiddlerWidget.prototype.getPassword = function(){ var tiddler=this.wiki.getTiddler(this.passwordTiddler); if(tiddler){ var password=tiddler.fields.text; this.saveTiddler(tiddler); //reset password tiddler return password; } return false }; // This function erases every field of a tiddler that is not standard and also // the text field encryptTiddlerWidget.prototype.clearNonStandardFields =function(tiddler) { var standardFieldNames = "title tags modified modifier created creator".split(" "); var clearFields = {}; for(var fieldName in tiddler.fields) { if(standardFieldNames.indexOf(fieldName) === -1) { clearFields[fieldName] = undefined; } } console.log("Cleared fields "+JSON.stringify(clearFields)); return clearFields; }; exports.encryptTiddler = encryptTiddlerWidget; })();
Use below controls to encrypt or decrypt a bunch of tiddlers. Encryption ''controls are hidden'' until you type something in the search box. All listed tiddlers will be affected. The presence of a small padlock (<span class="pc-listItem-lock">{{$:/core/images/locked-padlock}}</span>) next to the tiddler title indicates that particular tiddler is already encrypted.
<$reveal state="$:/state/encrypt" type="nomatch" text={{!!title}} animate="no"><$button set="$:/state/encrypt" setTo={{!!title}} class="tc-btn-invisible">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal><$reveal state="$:/state/encrypt" type="match" text={{!!title}} animate="no"><$button set="$:/state/encrypt" setTo="" class="tc-btn-invisible">{{$:/plugins/danielo/encryptTiddler/unlocked}}</$button></$reveal>
.tw-password-field { display: inline-block; width: 55%; font-size:1em; line-height:0; margin:0; padding-left:7%; } .pc-batch-controls .tw-crypt-dropdown{ right: 0px; } .pc-batch-controls{ position:relative; } .pc-listItem-lock svg{ height: 1em; width: 1em; fill: #aaaaaa; } /*It is for use in combination with tc-block-dropdown */ .tw-crypt-dropdown{ line-height:0; padding-left:5px; } .tw-password-field input{ font-size:0.5em; } .tw-crypt-button { display: inline-block; width: 10%; } .tw-crypt-button button{ font-size:0.5em; }
<div class="tc-menu-list-item"> <$link to={{!!title}}> <$view field="title"/> <$list filter="[all[current]has[encrypted]]"> <span class="pc-listItem-lock">{{$:/core/images/locked-padlock}}</span> </$list> </$link> </div>
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" class="tc-image-button" viewBox="0 0 100 100" style="enable-background:new 0 0 100 100;" xml:space="preserve"> <g> <path d="M77.555,50H35.304V31.63c0-4.057,1.435-7.521,4.305-10.391c2.87-2.87,6.333-4.305,10.391-4.305 c4.056,0,7.52,1.435,10.39,4.305s4.305,6.335,4.305,10.391c0,0.996,0.363,1.857,1.091,2.583c0.727,0.729,1.588,1.09,2.583,1.09 h3.674c0.995,0,1.856-0.361,2.583-1.09c0.727-0.727,1.091-1.588,1.091-2.583c0-7.079-2.517-13.136-7.549-18.17 C63.136,8.428,57.08,5.912,50,5.912c-7.081,0-13.137,2.516-18.169,7.548c-5.033,5.034-7.549,11.091-7.549,18.17V50h-1.837 c-1.531,0-2.833,0.536-3.904,1.608c-1.072,1.072-1.607,2.372-1.607,3.902v33.067c0,1.532,0.535,2.832,1.607,3.904 c1.071,1.072,2.372,1.608,3.904,1.608h55.11c1.53,0,2.832-0.536,3.904-1.608c1.071-1.072,1.607-2.372,1.607-3.904V55.51 c0-1.529-0.536-2.83-1.607-3.902C80.387,50.536,79.085,50,77.555,50z M54.315,72.937V83.72c0,2.173-1.762,3.935-3.935,3.935H49.62 c-2.173,0-3.935-1.762-3.935-3.935V72.937c-2.31-1.443-3.852-4.001-3.852-6.925c0-4.511,3.657-8.167,8.167-8.167 s8.167,3.657,8.167,8.167C58.167,68.937,56.625,71.495,54.315,72.937z"/> </g> </svg>
{ "tiddlers": { "$:/plugins/danielo515/2click2edit/ClickListener.js": { "text": "/*\\\ntitle: $:/plugins/danielo515/2click2edit/ClickListener.js\ntype: application/javascript\nmodule-type: widget\n\nThis widgets adds an double click event listener to its parent\n\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ClickListener = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nClickListener.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nClickListener.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar self = this;\n /*Since the event listener have been added to the parent, the \"this\" property is pointing to the\n wrong object, we should call our edit function with our widget object set as the this property.*/\n parent.addEventListener(\"dblclick\",function(event){self.editTiddler.call(self,event)});\n};\n\nClickListener.prototype.editTiddler = function(event) {\n this.dispatchEvent({type: \"tm-edit-tiddler\", param: this.getVariable(\"currentTiddler\")}); \n};\n\n/*\nCompute the internal state of the widget\n*/\nClickListener.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nClickListener.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.click = ClickListener;\n\n})();", "title": "$:/plugins/danielo515/2click2edit/ClickListener.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/danielo515/2click2edit/readme": { "title": "$:/plugins/danielo515/2click2edit/readme", "text": "This plugin adds the ability to edit tiddlers by double clicking on its body.\nJust try to edit any tiddler shown here by double clicking on it.\n\nThis can be considered a fast solution. It is only to fill the gap until TiddlyWiki adds support \nfor it officially.\n" }, "$:/plugins/danielo515/2click2edit/ui/ViewTemplate": { "tags": "$:/tags/ViewTemplate", "title": "$:/plugins/danielo515/2click2edit/ui/ViewTemplate", "type": "text/vnd.tiddlywiki", "text": "<$click>" } } }
{ "tiddlers": { "$:/plugins/ebalster/formula/coerce.js": { "text": "/*\\\ntitle: $:/plugins/ebalster/formula/coerce.js\ntype: application/javascript\nmodule-type: macro\n\nType coercion logic for formulas.\nSupported types for coercion:\n\n* text\n* number\n* boolean\n* array\n* date\n\nAdditional types that may be coerced:\n\n* undefined\n* regular expression\n\n\\*/\n(function(){\n\n\"use strict\";\n\n\n// Value-to-text coercion.\nvar _ToText = {\n\t\"undefined\" : function(v,ctx) {return \"undefined\";},\n\t\"string\" : function(v,ctx) {return v;},\n\t\"number\" : function(v,ctx) {return ctx.formats.number(v);},\n\t\"symbol\" : function(v,ctx) {return String(v);},\n\t\"function\" : function(v,ctx) {return \"function\" + (v.formulaSrc || \" [built-in]\");},\n\t\"boolean\" : function(v,ctx) {return (v ? \"TRUE\" : \"FALSE\");},\n\t\"object\" : function(v,ctx) {\n\t\tif (v instanceof Date) return ctx.formats.date(v);\n\t\tif (v instanceof Array) return ctx.formats.array(v,ctx);\n\t\tif (v instanceof RegExp) return String(v);\n\t\tif (v instanceof Error) throw v;\n\t\treturn JSON.stringify(v); // Last resort\n\t},\n};\n\n// Value-to-number coercion.\nvar _ToNum = {\n\t\"undefined\" : function(v,ctx) {throw \"Cannot convert undefined value to number!\";},\n\t\"string\" : function(v,ctx) {\n\t\tvar n = Number(v);\n\t\tif (isNaN(n)) throw \"Cannot convert \\\"\"+v+\"\\\" to number!\";\n\t\treturn n;\n\t},\n\t\"number\" : function(v,ctx) {return v;},\n\t\"symbol\" : function(v,ctx) {throw \"Cannot convert symbol to number!\";},\n\t\"function\" : function(v,ctx) {throw \"Cannot convert function to number!\";},\n\t\"boolean\" : function(v,ctx) {return (v ? 1 : 0);},\n\t\"object\" : function(v,ctx) {throw \"Cannot convert \\\"\" + _ToText.object(v,ctx) + \"\\\" to number!\";},\n};\n\n// Value-to-boolean coercion.\nvar _ToBool = {\n\t\"undefined\" : function(v,ctx) {return false;},\n\t\"string\" : function(v,ctx) {return !(/^\\s*(undefined|false|null|0+|0*\\.0+|0+\\.0*|)\\s*$/i.test(v));},\n\t\"number\" : function(v,ctx) {return Boolean(v);},\n\t\"symbol\" : function(v,ctx) {return Boolean(v);},\n\t\"function\" : function(v,ctx) {return true;},\n\t\"boolean\" : function(v,ctx) {return v;},\n\t\"object\" : function(v,ctx) {return Boolean(v);},\n};\n\nexports.ToSelf = function ToSelf(v,ctx) {return v;};\nexports.ToText = function ToText(v,ctx) {return _ToText[typeof v](v,ctx);};\nexports.ToNum = function ToNum (v,ctx) {return _ToNum [typeof v](v,ctx);};\nexports.ToBool = function ToBool(v,ctx) {return _ToBool[typeof v](v,ctx);};\n\nexports.ToDate = function ToDate(v,ctx) {\n\tif (v instanceof Date) return v;\n\tthrow \"Cannot auto-convert \\\"\" + exports.ToText(v,ctx) + \"\\\" to a date!\";\n};\n\nvar rxJsRegex = /^\\/((?:[^\\\\\\/\\[]|\\[(?:[^\\]]|\\\\\\])*\\]|\\\\.)+)\\/([a-z]*)$/;\nvar rxTwRegexFlags = /^\\(\\?[a-z]*\\)|\\(\\?[a-z]*\\)$/i;\n\nexports.ToRegex = function ToRegex(v,ctx) {\n\tif (v instanceof RegExp) return v;\n\tif (typeof v === \"string\") {\n\t\tv = v.trim();\n\t\t// Try JavaScript style regex\n\t\tvar match = rxJsRegex.exec(v);\n\t\tif (match) {\n\t\t\treturn new RegExp(term[1].replace(\"\\\\/\", \"/\"), term[2]);\n\t\t}\n\t\t// Try TiddlyWiki style regex\n\t\tmatch = rxTwRegexFlags.exec(v);\n\t\tif (match) {\n\t\t\tvar flagLen = match[0].length;\n\t\t\tvar flags = match[0].substr(2, match[0].length-3);\n\t\t\tif (match.index == 0) return new RegExp(v.substr(flagLen), flags);\n\t\t\telse return new RegExp(v.substr(0, v.length-flagLen), flags);\n\t\t}\n\t\treturn new RegExp(v, \"g\");\n\t\t\n\t}\n\tthrow \"Cannot auto-convert \\\"\" + exports.ToText(v,ctx) + \"\\\" to a regular expression!\";\n};\nexports.ToArray = function ToArray(v,ctx) {\n\tif (v instanceof Array) return v;\n\tthrow \"Cannot auto-convert \\\"\" + exports.ToText(v,ctx) + \"\\\" to an array!\";\n};\nexports.ToFunc = function ToFunc(v,ctx) {\n\tif (v instanceof Function) return v;\n\tthrow \"Cannot convert \\\"\" + exports.ToText(v,ctx) + \"\\\" to a function!\";\n};\n// Maybe add ToRegex\n\n\n// Build a coerce rule from a source string.\nvar CoerceFuncs = {\n\tT: exports.ToText,\n\tN: exports.ToNum,\n\tB: exports.ToBool,\n\tA: exports.ToArray,\n\tD: exports.ToDate,\n\tR: exports.ToRegex,\n\tF: exports.ToFunc,\n\t_: exports.ToSelf,\n};\n\nfunction BuildCoerceRule(src) {\n\tvar rule = {\n\t\tmain: [],\n\t\textra: [],\n\t};\n\tvar i = 0, func;\n\t// Main part\n\twhile (i < src.length) {\n\t\tfunc = CoerceFuncs[src[i]]; ++i;\n\t\tif (func) {rule.main.push(func); continue;}\n\t\tif (src[i-1] == '+') break;\n\t\tthrow \"Unknown coerce rule: '\"+src[i-1]+\"'\";\n\t}\n\t// Extra arguments (loops)\n\twhile (i < src.length) {\n\t\tfunc = CoerceFuncs[src[i]]; ++i;\n\t\tif (func) {rule.extra.push(func); continue;}\n\t\tthrow \"Unknown coerce rule: '\"+src[i-1]+\"'\";\n\t}\n\treturn rule;\n}\n\nvar NoCoerce = {rule: {main:[], extra:[]}, gen: []};\nvar CoerceCache = {'': NoCoerce};\n\nfunction GetCoerceCache(src) {\n\tif (!CoerceCache[src]) {\n\t\ttry {\n\t\t\tCoerceCache[src] = {rule: BuildCoerceRule(src), gen: []};\n\t\t}\n\t\tcatch (err) {\n\t\t\tthrow err + \" in rule string '\" + src + \"'\";\n\t\t}\n\t}\n\treturn CoerceCache[src];\n}\n\n// Generate the coercing function array.\nfunction GenCoerceFuncs(rule,len) {\n\tvar result = [], i = 0, x = 0;\n\tresult = rule.main;\n\tif (rule.extra.length) {\n\t\twhile (result.length < len) result = result.concat(rule.extra);\n\t}\n\treturn result;\n}\n\n// Get an array of coercing (ToXXX) functions based on the function.\nexports.GetCoerceFuncs = function GetCoerceFuncs(func,args) {\n\t// Possibly set up coercion for this function.\n\tif (!func._coerce) {\n\t\tif (func.inCast) {\n\t\t\ttry {\n\t\t\t\tfunc._coerce = GetCoerceCache(func.inCast);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthrow err + \" for function \" + func.toString();\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfunc._coerce = NoCoerce;\n\t\t}\n\t}\n\tvar gen = func._coerce.gen[args.length];\n\tif (gen) return gen;\n\tgen = GenCoerceFuncs(func._coerce.rule, args.length);\n\tfunc._coerce.gen[args.length] = gen;\n\treturn gen;\n};\n\n\n// Coerce\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/coerce.js", "tags": "", "module-type": "library", "modified": "20180112071139424", "description": "", "created": "20180113183000431" }, "$:/plugins/ebalster/formula/compile.js": { "text": "(function(){\n\n\"use strict\";\n\nvar Nodes = require(\"$:/plugins/ebalster/formula/nodes.js\");\n\nvar rxDatumIsFormula = /^\\s*\\(=.*=\\)\\s*$/;\nvar rxDatumIsTrue = /^s*TRUE\\s*$/i;\nvar rxDatumIsFalse = /^s*FALSE\\s*$/i;\n\nvar rxLet = /let/gi;\n\nvar rxSkipInert = /(\\s*|\\/\\/.*?([\\r\\n]|$)|\\/\\*[\\s\\S]*?\\*\\/)*/g;\nvar rxNotWhitespace = /[^\\s]+/g;\nvar rxOperandFilter = /\\[(([^\\[\\]]|\\[[^\\[\\]]*\\])+(\\](\\s*[+-])?\\s*\\[)?)+\\]/g;\nvar rxOperandTransclusion = /\\{\\{([^\\{\\}]+)\\}\\}/g;\nvar rxDatumIsTransclusion = /^\\s*\\{\\{([^\\{\\}]+)\\}\\}\\s*$/;\nvar rxOperandVariable = /<<([^<>]+)>>/g;\nvar rxDatumIsVariable = /^\\s*<<[^<>]+>>\\s*$/;\nvar rxCellName = /\\$?([A-Z]{1,2})\\$?([0-9]+)/g;\nvar rxCellRange = /\\$?([A-Z]{1,2})\\$?([0-9]+):\\$?([A-Z]{1,2})\\$?([0-9]+)/g;\nvar rxIdentifier = /[_a-zA-Z][_a-zA-Z0-9]*/g;\nvar rxKeyword = /(function|let|for|foreach|if|then|else|while|do|this|self|currentTiddler)/gi;\n\nvar rxUnsignedDecimal = /((\\d+(\\.\\d*)?)|(\\.\\d+))/g;\nvar rxDecimal = /[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))/g;\nvar rxDatumIsDecimal = /^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/;\n\nvar rxDate = /\\d{2,4}-\\d{2}-\\d{2}(\\s*\\d{1,2}:\\d{2}(:\\d{2}(.\\d+)?)?)?/g;\nvar rxDatumIsDate = /^\\s*\\d{2,4}-\\d{2}-\\d{2}(\\s*\\d{1,2}:\\d{2}(:\\d{2}(.\\d{3})?)?)?\\s*$/;\nvar rxRegex = /\\/((?:[^\\\\\\/\\[]|\\[(?:[^\\]]|\\\\\\])*\\]|\\\\.)+)\\/([a-z]*)/g;\nvar rxDatumIsRegex = /^\\s*\\/((?:[^\\\\\\/\\[]|\\[(?:[^\\]]|\\\\\\])*\\]|\\\\.)+)\\/([a-z]*)\\s*$/;\nvar rxDatumIsTwDate = /^([0-9]{4})(1[0-2]|0[1-9])(3[01]|[12][0-9]|0[1-9])(2[0-3]|[01][0-9])([0-5][0-9])([0-5][0-9])([0-9]{3})?$/;\nvar rxDateFragment = /\\d+/g;\n\nvar rxString = /(\"(\\\\.|[^\"\\\\])*\"|'(\\\\.|[^'\\\\])*')/g;\nvar rxEscapeSequence = /\\\\([a-tv-z0\"'\\\\]|u[a-fA-F0-9]{0,4}|$)/g;\n\nvar formulaFunctions = null;\nvar operatorsUnaryPre = null;\nvar operatorsUnaryPost = null;\nvar operatorsBinary = null;\nvar operatorsTernary = null;\n\nfunction Parser(src)\n{\n\tthis.src = src;\n\tthis.pos = 0;\n\tthis.end = src.length;\n\tthis.locals = {};\n\tthis.localStack = [];\n\tthis.assignStack = [];\n}\nParser.prototype.getChar = function()\n{\n\treturn this.src.charAt(this.pos);\n};\nParser.prototype.nextGlyph = function()\n{\n\tthis.skipInert();\n\tif (this.pos >= this.end) return '';\n\t++this.pos;\n\treturn this.src.charAt(this.pos-1);\n};\nParser.prototype.remaining = function()\n{\n\treturn this.src.substring(this.pos, this.end);\n};\nParser.prototype.nextToken = function()\n{\n\tthis.skipInert();\n\trxNotWhitespace.lastIndex = this.pos;\n\trxNotWhitespace.test(this.src);\n\treturn this.src.substring(this.pos, rxNotWhitespace.lastIndex);\n};\nParser.prototype.match_here = function(regex)\n{\n\t// TODO this is doing much more work than is necessary\n\tregex.lastIndex = this.pos;\n\tvar result = regex.exec(this.src);\n\tif (!result || result.index != this.pos || result.index+result[0].length > this.end) return null;\n\tthis.pos = regex.lastIndex;\n\treturn result;\n};\nParser.prototype.skipInert = function()\n{\n\trxSkipInert.lastIndex = this.pos;\n\trxSkipInert.test(this.src);\n\tthis.pos = Math.min(rxSkipInert.lastIndex, this.end);\n};\n\n// Push a new set of local variables onto the parser's stack.\nParser.prototype.pushLocals = function(assigns) {\n\tvar id;\n\tvar newLocals = {};\n\tthis.localStack.push(this.locals); for (id in this.locals) newLocals[id] = 0;\n\tthis.assignStack.push(assigns); for (id in assigns) newLocals[id] = 0;\n\tthis.locals = newLocals;\n};\n\n// Pop the last set of local variables off the parser's stack and return usage-counts.\nParser.prototype.popLocals = function() {\n\tvar id, count, usage = {captures: {}, assigns: {}},\n\t\tassigns = this.assignStack.pop(),\n\t\toldLocals = this.localStack.pop();\n\tfor (id in this.locals) {\n\t\tcount = this.locals[id];\n\t\tif (count > 0) {\n\t\t\tif (assigns[id]) {\n\t\t\t\tusage.assigns[id] = count;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tusage.captures[id] = count;\n\t\t\t\toldLocals[id] += count;\n\t\t\t}\n\t\t}\n\t}\n\tthis.locals = oldLocals;\n\treturn usage;\n};\n\nvar initialize = function() {\n\tformulaFunctions = {};\n\tvar operators = {};\n\t$tw.modules.applyMethods(\"formula-function\", formulaFunctions);\n\t$tw.modules.applyMethods(\"formula-operator\", operators);\n\n\toperatorsUnaryPre = {};\n\toperatorsUnaryPost = {};\n\toperatorsBinary = {}; //{}; //{plus: {arity: 2, precedence: 10, operator: \"+\", function: \"add\"}};\n\toperatorsTernary = {};\n\tfor (var opName in operators)\n\t{\n\t\tvar op = operators[opName];\n\n\t\t// Bind the associated function. \n\t\tvar func = formulaFunctions[op.function];\n\t\tif (!func) continue;\n\t\top.func_bind = func;\n\n\t\t// Sort the op by arity and position.\n\t\tswitch (op.arity)\n\t\t{\n\t\tcase 2: operatorsBinary [opName] = op; break;\n\t\tcase 3: operatorsTernary [opName] = op; break;\n\t\tcase 1:\n\t\t\tswitch (op.position)\n\t\t\t{\n\t\t\t\tcase \"pre\": operatorsUnaryPre [opName] = op; break;\n\t\t\t\tcase \"post\": operatorsUnaryPost[opName] = op; break;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t}\n};\n\n\nexports.compileExpression = function(expression) {\n\n\t// Create a parser and process the formula as an expression.\n\tvar parser = new Parser(expression);\n\n\tvar operand = buildExpression(parser);\n\n\treturn operand;\n};\n\nexports.compileDatum = function(datum) {\n\t\n\tvar parser, term;\n\n\t// Short-hand formula\n\tif (datum.charAt(0) == \"=\") {\n\t\tparser = new Parser(datum);\n\t\tparser.pos = 1;\n\t\treturn buildExpression(parser);\n\t}\n\n\t// Could be a TiddlyWiki date?\n\tif (rxDatumIsTwDate.test(datum)) {\n\t\treturn new Nodes.Date($tw.utils.parseDate(datum));\n\t}\n\n\t// Could be a number?\n\tif (rxDatumIsDecimal.test(datum)) {\n\t\t// Treat as a number constant\n\t\treturn new Nodes.Number(Number(datum));\n\t}\n\n\t// Could be a formula?\n\tif (rxDatumIsFormula.test(datum)) {\n\t\t// Parse contents as a formula\n\t\tparser = new Parser(datum);\n\t\tparser.pos = datum.indexOf(\"=\")+1;\n\t\tparser.end = datum.lastIndexOf(\"=\");\n\t\treturn buildExpression(parser);\n\t}\n\n\t// Could be a transclusion or variable?\n\tif (rxDatumIsTransclusion.test(datum) ||\n\t\t\trxDatumIsVariable.test(datum)) {\n\t\t// Defer to the operand parser...\n\t\tparser = new Parser(datum);\n\t\treturn buildOperand(parser);\n\t}\n\n\t// Booleans?\n\tif (rxDatumIsFalse.test(datum)) return new Nodes.Bool(false);\n\tif (rxDatumIsTrue .test(datum)) return new Nodes.Bool(true);\n\n\t// Date?\n\tif (rxDatumIsDate.test(datum))\n\t{\n\t\trxDateFragment.lastIndex = 0;\n\t\tvar parts = [];\n\t\twhile (true)\n\t\t{\n\t\t\tvar res = rxDateFragment.exec(datum);\n\t\t\tif (!res) break;\n\t\t\tparts.push(parseInt(res[0]));\n\t\t}\n\t\tif (parts.length)\n\t\t{\n\t\t\treturn new Nodes.Date(new Date(\n\t\t\t\tparts[0], (parts[1] || 1)-1, parts[2] || 1,\n\t\t\t\tparts[3] || 0, parts[4] || 0, parts[5] || 0, parts[6] || 0));\n\t\t}\n\t}\n\n\t// Regex?\n\tif ((term = rxDatumIsRegex.exec(datum))) {\n\t\treturn new Nodes.Regex(new RegExp(term[1].replace(\"\\\\/\", \"/\"), term[2]));\n\t}\n\n\t// Otherwise, treat as a string constant\n\treturn new Nodes.Text(datum);\n};\n\nexports.compileFormula = function(formulaString)\n{\n\t// Process the formula string into a root operand\n\ttry {\n\t\treturn exports.compileExpression(formulaString);\n\t}\n\tcatch (err) {\n\t\tthrow \"CompileError: \" + err;\n\t}\n};\n\n\n// Compile an operator\nfunction parseOperator(parser, operatorGroup) {\n\n\t// Skip more whitespace\n\tparser.skipInert();\n\n\tvar result = null;\n\n\t// Find the longest operator matching the current text.\n\tfor (var opName in operatorGroup)\n\t{\n\t\tvar op = operatorGroup[opName];\n\t\tif (parser.src.substr(parser.pos, op.operator.length) == op.operator\n\t\t\t&& parser.pos+op.operator.length <= parser.end)\n\t\t{\n\t\t\tif (!result || result.operator.length < op.operator.length) result = op;\n\t\t}\n\t}\n\n\tif (result) parser.pos += result.operator.length;\n\n\treturn result;\n}\n\n// Parse a text reference. This function is pased on $tw.utils.getTextReference.\nfunction buildTextReference(textReference) {\n\tvar tr = $tw.utils.parseTextReference(textReference);\n\tvar title;\n\tif (tr.title) title = new Nodes.Text(tr.title);\n\telse title = new Nodes.Variable(new Nodes.Text(\"currentTiddler\"));\n\tif (tr.field) {\n\t\tif (tr.field == \"title\") {\n\t\t\treturn title;\n\t\t}\n\t\telse {\n\t\t\treturn new Nodes.TranscludeField(title, new Nodes.Text(tr.field));\n\t\t}\n\t}\n\telse if (tr.index) {\n\t\treturn new Nodes.TranscludeIndex(title, new Nodes.Text(tr.index));\n\t}\n\telse {\n\t\treturn new Nodes.TranscludeText(title);\n\t}\n}\n\n// Parse a formula.\nfunction buildExpression(parser, nested) {\n\t\n\t// Make sure math functions are initialized\n\tif (!formulaFunctions) initialize();\n\n\tparser.skipInert();\n\n\t// Expression compiler state\n\tvar operands = [];\n\tvar operators = [];\n\tvar precedences = [];\n\tvar operand = null, callArgs;\n\t\n\t// Unary stacking function\n\tvar applyUnary = function(unary) {\n\t\toperand = new Nodes.CallJS(unary.func_bind, [operand]);\n\t};\n\n\twhile (true)\n\t{\n\t\tvar unaries = [];\n\n\t\t// Prefix operators\n\t\twhile (true)\n\t\t{\n\t\t\tvar prefix = parseOperator(parser, operatorsUnaryPre);\n\t\t\tif (prefix) unaries.unshift(prefix);\n\t\t\telse break;\n\t\t}\n\n\t\t// Grab the operand\n\t\toperand = buildOperand(parser);\n\n\t\t// Missing operand is an error\n\t\tif (operand === null)\n\t\t{\n\t\t\tvar token = parser.nextToken();\n\t\t\tif (token && token[0] != \")\" && token[0] != \",\")\n\t\t\t\tthrow \"invalid operand \\\"\" + token + \"\\\"\";\n\t\t\telse if (operators.length)\n\t\t\t\tthrow \"missing operand after \\\"\" + operators[operators.length-1].operator + \"\\\"\";\n\t\t\telse throw \"empty expression\";\n\t\t}\n\n\t\t// Check for a function call (precedes all operators).\n\t\tcallArgs = buildArguments(parser);\n\t\tif (callArgs) operand = new Nodes.CallFunc(operand, callArgs);\n\n\t\t// Postfix operators\n\t\twhile (true)\n\t\t{\n\t\t\tvar postfix = parseOperator(parser, operatorsUnaryPost);\n\t\t\tif (postfix) unaries.push(postfix);\n\t\t\telse break;\n\t\t}\n\n\t\tunaries.forEach(applyUnary);\n\n\t\t// Operand is complete.\n\t\toperands.push(operand);\n\n\t\t// Infix operators\n\t\tvar operator = parseOperator(parser, operatorsBinary);\n\n\t\t// Missing operator ends the expression\n\t\tif (operator === null) break;\n\n\t\t// Add the operator and its precedence level.\n\t\toperators.push(operator);\n\t\tvar precedence = operator.precedence;\n\t\tif (precedences.indexOf(precedence || 0) == -1) precedences.push(precedence);\n\t}\n\n\t// Sanity check\n\tif (operands.length != operators.length+1)\n\t\tthrow \"internal error: operator/operand parsing inconsistency\";\n\n\t// Resolve operators by precedence\n\tprecedences.sort(function(a,b) {return (a>b)?-1:1;});\n\n\tfor (var j = 0; j < precedences.length; ++j)\n\t{\n\t\tvar prec = precedences[j];\n\t\tfor (var i = 0; i < operators.length; )\n\t\t{\n\t\t\t// Process only operators at the current precedence level.\n\t\t\tvar op = operators[i];\n\t\t\tif (op.precedence != prec) {++i; continue;}\n\n\t\t\t// Collapse the previous and next operands with this operator.\n\t\t\toperands[i] = new Nodes.CallJS(op.func_bind, [operands[i], operands[i+1]]);\n\t\t\toperators.splice(i, 1);\n\t\t\toperands.splice(i+1, 1);\n\t\t}\n\t}\n\n\t// Sanity check\n\tif (operators.length !== 0 || operands.length != 1)\n\t\tthrow \"internal error: resoving failed; \" + operands.length + \" operands and \" + operators.length + \" operators remain\";\n\n\t// For non-nested expressions, throw if any tokens remain.\n\tif (!nested)\n\t{\n\t\tparser.skipInert();\n\n\t\tif (parser.pos < parser.end)\n\t\t{\n\t\t\tthrow \"expected operator, got \\\"\" + parser.nextToken() + \"\\\"\";\n\t\t}\n\t}\n\t\n\t// Otherwise return the operand directly\n\treturn operands[0];\n}\n\n// Compile a list expression, which could be function arguments or an array...\nfunction buildCommaList(parser, braces, afterHint) {\n\n\t// Is an open-brace present?\n\tparser.skipInert();\n\tif (parser.getChar() !== braces[0]) return null;\n\t++parser.pos;\n\n\t// Zero arguments?\n\tparser.skipInert();\n\tif (parser.getChar() === braces[1]) {++parser.pos; return [];}\n\t\n\tvar nodeList = [];\n\n\twhile (true)\n\t{\n\t\t// Compile an expression.\n\t\tnodeList.push(buildExpression(parser, true));\n\n\t\t// Expect close-brace or , after argument.\n\t\tvar char = parser.nextGlyph();\n\t\tif (char === braces[1]) break;\n\t\tif (char !== \",\") throw \"Expect ',' or '\" + braces[1] + \"' after \" + afterHint;\n\t}\n\n\treturn nodeList;\n}\n\n// Build an argument list.\nfunction buildArguments(parser) {\n\treturn buildCommaList(parser, \"()\", \"function argument.\");\n}\n\n// Build an array literal.\nfunction buildArrayLiteral(parser) {\n\tvar array = buildCommaList(parser, \"{}\", \"array element (use {{double braces}} for transclusions).\");\n\tif (!array) throw \"Expect '{' to begin array literal.\";\n\treturn array;\n}\n\n// Build a let or foreach expression (parser starts after the keyword)\nfunction buildLetExpression(parser) {\n\n\tif (parser.nextGlyph() !== \"(\") throw \"Expect '(' after LET.\";\n\n\t// Gradually push locals.\n\tvar assigns = {}, id, c;\n\tparser.pushLocals(assigns);\n\twhile (true) {\n\t\t// Look for a name (identifier)\n\t\tparser.skipInert();\n\t\tid = parser.match_here(rxIdentifier);\n\t\tif (!id) throw \"Expected name in LET assignment, got '\" + parser.nextToken() + \"'.\";\n\t\tid = id[0];\n\t\tif (rxKeyword.test(id)) throw \"Illegal name for LET: \" + id;\n\t\t\n\t\t// Look for an equals, then an expression.\n\t\tif (parser.nextGlyph() !== '=') throw \"Expect '=' after LET value.\";\n\n\t\t// Build the expression... Each let can use the ones before it.\n\t\ttry {\n\t\t\tassigns[id] = buildExpression(parser, true);\n\t\t}\n\t\tcatch (err) {\n\t\t\tthrow \"compiling LET '\" + id + \"': \" + err;\n\t\t}\n\t\tparser.locals[id] = 0;\n\n\t\t// Expect ) or , after argument.\n\t\tvar char = parser.nextGlyph();\n\t\tif (char == \")\") break;\n\t\tif (char != \",\") throw \"Expect ',' or ')' after LET assignment.\";\n\t}\n\n\tif (parser.nextGlyph() !== \":\") throw \"Expect ':' after LET assignment list.\";\n\tif (parser.nextGlyph() !== \"(\") throw \"Expect LET expression in parentheses after ':'.\";\n\n\t// Compile the body expression, with additional locals.\n\tvar body = buildExpression(parser, true);\n\tvar usage = parser.popLocals();\n\n\t// TODO could examine usage.assigns and letLocals to see if any values were unused.\n\n\tif (parser.nextGlyph() !== \")\") throw \"Expect ')' after LET expression.\";\n\n\treturn new Nodes.LetVars(assigns,body);\n}\n\n// Build a function (parser starts after the keyword \"function\")\nfunction buildFunction(parser) {\n\t\n\tvar srcBegin = parser.pos;\n\n\tif (parser.nextGlyph() !== \"(\") throw \"Expect '(' after 'function'.\";\n\n\tparser.skipInert();\n\n\t// Build the parameter list, if any.\n\tvar params = [], assigns = {};\n\tif (parser.getChar() === \")\") {++parser.pos;}\n\telse while (true)\n\t{\n\t\t// Get a parameter name (identifier).\n\t\tvar param = parser.match_here(rxIdentifier);\n\t\tif (!param) throw \"Expect list of parameter names after 'function'.\";\n\t\tparam = param[0];\n\t\tif (rxKeyword.test(param)) throw \"Illegal parameter name: \" + param;\n\t\tparams.push(param);\n\t\tif (assigns[param]) throw \"Parameter name used twice: \" + param;\n\t\tassigns[param] = true;\n\n\t\t// Expect ) or , after argument.\n\t\tvar char = parser.nextGlyph();\n\t\tif (char == \")\") break;\n\t\tif (char != \",\") throw \"Expect ',' or ')' after function parameter name.\";\n\n\t\t// Skip inert stuff\n\t\tparser.skipInert();\n\t}\n\n\tif (parser.nextGlyph() !== \":\") throw \"Expect ':' after function parameter list.\";\n\tif (parser.nextGlyph() !== \"(\") throw \"Expect function body beginning with '(' after ':'.\";\n\n\t// Compile the body expression, with parameters as locals. Closures are NOT currently supported.\n\tparser.pushLocals(assigns);\n\tvar body = buildExpression(parser, true);\n\tvar usage = parser.popLocals();\n\tvar captures = usage.captures;\n\n\tif (parser.nextGlyph() !== \")\") throw \"Expect ')' after function body.\";\n\n\t// Create the function object (must be called with this = context)\n\tvar func = function() {\n\t\tvar locals = Object.assign({}, func.captured || {});\n\t\tfor (var i = 0; i < arguments.length; ++i) locals[params[i]] = arguments[i];\n\t\treturn body.compute(this.let(locals));\n\t};\n\t//func.params = params;\n\tfunc.min_args = params.length;\n\tfunc.max_args = params.length;\n\tfunc.formulaSrc = parser.src.substring(srcBegin, parser.pos);\n\treturn new Nodes.Function(func, captures);\n}\n\n// Compile an operand into a function returning the operand value.\nfunction buildOperand(parser) {\n\n\tvar term;\n\t\n\t// Skip whitespace & comments\n\tparser.skipInert();\n\n\tif (parser.pos == parser.end) return null;\n\n\tvar char = parser.getChar();\n\n\tif (char.match(/[0-9\\.+]/i))\n\t{\n\t\t// Number constant\n\t\tterm = parser.match_here(rxDecimal);\n\t\tif (term) return new Nodes.Number(Number(term[0]));\n\t\tthrow \"Invalid number: \" + parser.nextToken();\n\t}\n\telse if (char.match(/[$a-z_]/i))\n\t{\n\t\t// Cell range?\n\t\tterm = parser.match_here(rxCellRange);\n\t\tif (term) throw \"Cell ranges are currently unsupported!\";\n\n\t\t// Cell name?\n\t\tterm = parser.match_here(rxCellName);\n\t\tif (term) return new Nodes.Datum(\n\t\t\tnew Nodes.TranscludeIndex(\n\t\t\t\tnew Nodes.Variable(new Nodes.Text(\"currentTiddler\")),\n\t\t\t\tnew Nodes.Text(term[1]+term[2])));\n\n\t\t// Identifier?\n\t\tterm = parser.match_here(rxIdentifier);\n\t\tif (!term) return null;\n\n\t\tif (parser.locals[term] != undefined)\n\t\t{\n\t\t\t// Scoped variable. We count up references to each.\n\t\t\t++parser.locals[term];\n\t\t\treturn new Nodes.ScopeVar(term[0]);\n\t\t}\n\n\t\tvar termLower = term[0].toLowerCase();\n\t\tswitch (termLower)\n\t\t{\n\t\tcase \"let\":\n\t\t\t// LET expression.\n\t\t\treturn buildLetExpression(parser);\n\n\t\tcase \"function\":\n\t\t\t// Function declaration.\n\t\t\treturn buildFunction(parser);\n\n\t\tdefault:\n\t\t\t// Function call.\n\t\t\tvar func = formulaFunctions[termLower];\n\n\t\t\tif (!func) throw \"unknown function: \" + term[0];\n\n\t\t\tvar args = buildArguments(parser);\n\n\t\t\t// Omitting arguments is only OK for constant functions\n\t\t\tif (args === null)\n\t\t\t{\n\t\t\t\tif (!func.isConstant) throw \"Expected '(' after \" + term[0];\n\t\t\t\targs = [];\n\t\t\t}\n\n\t\t\tif (func instanceof Function) {\n\t\t\t\t// Check parameter count\n\t\t\t\tif (args.length > func.length && !func.variadic)\n\t\t\t\t\tthrow \"too many arguments for \" + term[0] + \" (requires \" + func.length + \")\";\n\t\t\t\tif (args.length < func.length)\n\t\t\t\t\tthrow \"too few arguments for \" + term[0] + (func.variadic?\" (min \":\" (requires \") + func.length + \")\";\n\t\t\t}\n\t\t\telse if (func.select || func.construct) {\n\t\t\t\t// Check argument range\n\t\t\t\tif (func.max_args && args.length > func.max_args)\n\t\t\t\t\tthrow \"too many arguments for \" + term[0] + \" (max \" + func.max_args + \")\";\n\t\t\t\tif (func.min_args && args.length < func.min_args)\n\t\t\t\t\tthrow \"too few arguments for \" + term[0] + \" (min \" + func.min_args + \")\";\n\t\t\t\t\n\t\t\t\t// If a construct function is present, use it to generate an operand.\n\t\t\t\tif (func.construct) return func.construct(args);\n\n\t\t\t\t// If a select function is present, prepare to bind it with a CallJS.\n\t\t\t\tfunc = func.select(args);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthrow \"Function \" + term[0] + \" seems to be unusable.\";\n\t\t\t}\n\n\t\t\treturn new Nodes.CallJS(func, args);\n\t\t}\n\t}\n\telse switch (char)\n\t{\n\tcase \"(\": // Parenthesized expression\n\t\t++parser.pos;\n\t\tvar parentheses = buildExpression(parser, true);\n\t\tparser.skipInert();\n\t\tif (parser.getChar() !== \")\")\n\t\t{\n\t\t\tif (parser.pos == parser.end) throw \"missing ')' at end of formula\";\n\t\t\telse throw \"expected ')', got \\\"\" + parser.nextToken() + \"\\\"\";\n\t\t}\n\t\t++parser.pos;\n\t\treturn parentheses;\n\n\tcase \"'\":\n\tcase \"\\\"\": // String constant\n\t\tterm = parser.match_here(rxString);\n\t\tif (!term) throw \"Invalid string: \" + parser.nextToken();\n\t\tterm = term[0].substr(1, term[0].length-2);\n\t\tterm = term.replace(rxEscapeSequence, function(esc) {\n\t\t\tswitch (esc.charAt(1)) {\n\t\t\t\tcase '\"': return '\"';\n\t\t\t\tcase '\\'': return '\\'';\n\t\t\t\tcase '\\\\': return '\\\\';\n\t\t\t\tcase 'n': return '\\n';\n\t\t\t\tcase 'r': return '\\r';\n\t\t\t\tcase 'b': return '\\b';\n\t\t\t\tcase 'f': return '\\f';\n\t\t\t\tcase 't': return '\\t';\n\t\t\t\tcase 'v': return '\\v';\n\t\t\t\tcase '0': return '\\0';\n\t\t\t\tcase 'u':\n\t\t\t\t\tif (esc.length < 6) throw \"Invalid escape sequence: \" + esc;\n\t\t\t\t\treturn String.fromCharCode(parseInt(esc.substr(2), 16));\n\t\t\t\tdefault: throw \"Invalid escape sequence: \" + esc;\n\t\t\t}\n\t\t});\n\t\treturn new Nodes.Text(term);\n\n\tcase \"[\": // Filter operand\n\t\tterm = parser.match_here(rxOperandFilter);\n\t\tif (term) return new Nodes.Filter(term[0]);\n\t\tbreak;\n\n\tcase \"{\": // Transclusion or array\n\t\t++parser.pos;\n\t\tchar = parser.getChar();\n\t\t--parser.pos;\n\t\tif (char == '{') {\n\t\t\t// Possible transclusion operand\n\t\t\tterm = parser.match_here(rxOperandTransclusion);\n\t\t\tif (term) return new Nodes.Datum(buildTextReference(term[1]));\n\t\t}\n\t\t// Array operand\n\t\treturn new Nodes.ArrayDef(buildArrayLiteral(parser));\n\n\tcase \"<\": // Variable operand\n\t\tterm = parser.match_here(rxOperandVariable);\n\t\tif (term) return new Nodes.Datum(\n\t\t\tnew Nodes.Variable(new Nodes.Text(term[1])));\n\t\tbreak;\n\n\tcase \"/\": // Regular expression?\n\t\tterm = parser.match_here(rxRegex);\n\t\tif (term) return new Nodes.Regex(new RegExp(term[1].replace(\"\\\\/\", \"/\"), term[2]));\n\t\t\tbreak;\n\t}\n\n\t// Didn't recognize the operand\n\treturn null;\n}\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/compile.js", "tags": "", "module-type": "library", "modified": "20171211181652443", "description": "", "created": "20171210195223539" }, "$:/plugins/ebalster/formula/compute.js": { "text": "(function(){\n\n\"use strict\";\n\nvar Nodes = require(\"$:/plugins/ebalster/formula/nodes.js\");\nvar Compiler = require(\"$:/plugins/ebalster/formula/compile.js\");\nvar Coerce = require(\"$:/plugins/ebalster/formula/coerce.js\");\n\nvar Numeral = require(\"$:/plugins/ebalster/formula/lib/numeral.js\");\n\n// TiddlyWiki array format\nfunction arrayFormatTW(arr,ctx) {\n\tvar result = \"\";\n\tfor (var i = 0; i < arr.length; ++i) {\n\t\tvar part = Coerce.ToText(arr[i],ctx);\n\t\tif (i && part.length) result += \" \";\n\t\tif (part.indexOf(/\\s/g) >= 0) result += \"[[\" + part + \"]]\";\n\t\telse result += part;\n\t}\n\treturn result;\n}\n\n// Number format functions...\n\n// SANE number formatting: if we find five consecutive 9s or 0s after the decimal point, round them off.\nfunction NumberStringSane(n) {\n\tvar s = String(n);\n\tvar parse = /^(0\\.0*[1-9]\\d*?|\\d*\\.\\d*?)(0{5}\\d*|9{5}\\d*)(|e[+-]\\d*)$/.exec(s);\n\tif (!parse) return s;\n\tvar kept = parse[1], exp = parse[3];\n\tvar end = kept.slice(-1);\n\tif (parse[2][0] === '0') return ((end === '.') ? kept.substr(0,kept.length-1) : kept) + exp;\n\tif (end === '.') return (Number(kept.substr(0,kept.length-1))+1) + exp;\n\treturn kept.substr(0,kept.length-1) + (Number(end)+1) + exp;\n}\nvar numeralFormat = function(fmt) {return function(num) {return Numeral(num).format(fmt);};};\nvar numeralFormatPrec = function(fmt,digs) {return function(num) {return Numeral(num.toPrecision(digs)).format(fmt);};};\nvar numberFormatFixed = function(prec) {return function(num) {return num.toFixed (prec);};};\nvar numberFormatPrec = function(digs) {return function(num) {return num.toPrecision(digs);};};\nvar numberFormatSelect = function(settings)\n{\n\tif (settings.precision == \"true\" || settings.precision > 100) return String;\n\tif (typeof settings.numberFormat == \"string\") {\n\t\t// Use numeral\n\t\treturn isNaN(settings.precision) ?\n\t\t\tnumeralFormat (settings.numberFormat) :\n\t\t\tnumeralFormatPrec(settings.numberFormat, settings.precision);\n\t}\n\tif (!isNaN(settings.fixed)) return numberFormatFixed(settings.fixed);\n\tif (!isNaN(settings.precision)) return numberFormatPrec (settings.precision);\n\treturn NumberStringSane;\n\t// return String;\n};\n\nexports.computeFormula = function(compiledFormula, widget, formatOptions, debug) {\n\t\n\tvar value, context;\n\t\n\tformatOptions = formatOptions || {};\n\n\tvar dateFormat = formatOptions.dateFormat || \"0hh:0mm, DDth MMM YYYY\";\n\n\t// Specify format. These are all required!\n\tvar formats = {\n\t\tnumber: numberFormatSelect(formatOptions),\n\t\tdate: function(date) {return $tw.utils.formatDateString(date, dateFormat);},\n\t\tarray: arrayFormatTW,\n\t};\n\n\tcontext = new Nodes.Context(widget, formats);\n\n\t// Compute a value from the root node of the compiled formula.\n\ttry {\n\t\tvalue = compiledFormula.computeText(context);\n\t}\n\tcatch (err) {\n\t\tthrow \"ComputeError: \" + String(err) + (err.fileName || \"\") + (err.lineNumber || \"\")\n\t\t\t+ (debug ? \"\\nNodes: \" + JSON.stringify(compiledFormula) : \"\");\n\t}\n\n\t// Format the root node as a string.\n\tif (debug) return value + \"\\n - Val:\" + String(value) + \", Op:\" + compiledFormula.name;\n\telse return value;\n};\n\nexports.evalFormula = function(formulaString, widget, formatOptions, debug) {\n\t\n\tvar compiledFormula;\n\n\t// Compile the formula\n\ttry {\n\t\tcompiledFormula = Compiler.compileExpression(formulaString);\n\t}\n\tcatch (err) {\n\t\tthrow \"CompileError: \" + String(err);\n\t}\n\n\t// Compute the formula\n\treturn exports.computeFormula(compiledFormula, widget, formatOptions, debug);\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/compute.js", "tags": "", "module-type": "library", "modified": "20180114170348576", "description": "", "created": "20180114170308058" }, "$:/plugins/ebalster/formula/filters/range.js": { "text": "/*\\\ntitle: $:/plugins/ebalster/formula/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g), beg, end, inc, i, fixed = 0;\n\n\tfor (i = 0; i < parts.length; ++i) {\n\t\t// Validate real number\n\t\tif (!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i]))\n\t\t\treturn [\"range: bad number \\\"\"+parts[i]+\"\\\"\"];\n\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif (frac) fixed = Math.max(fixed, frac[0].length-1);\n\t\t\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\n\tswitch (parts.length) {\n\t\tcase 1:\n\t\t\tbeg = 0;\n\t\t\tend = parts[0];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\n\tif (inc === 0) return [\"range: increment 0 causes infinite loop\"];\n\n\t// May need to count backwards\n\tvar direction = ((end<beg) ? -1 : 1);\n\tinc *= direction;\n\n\t// Estimate number of resulting elements\n\tif ((end-beg)/inc > 10000) return [\"range: too many steps (over 10K)\"];\n\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1, fixed);\n\n\tvar safety = 10010;\n\n\t// Enumerate the range\n\tif (end<beg) {for (i = beg; i > end; i += inc) {results.push(i.toFixed(fixed)); if (--safety<0) break;}}\n\telse {for (i = beg; i < end; i += inc) {results.push(i.toFixed(fixed)); if (--safety<0) break;}}\n\n\tif (safety<0) return [\"range: unexpectedly large output\"];\n\n\t// Reverse?\n\tif (operator.prefix === \"!\") results.reverse();\n\n\treturn results;\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/filters/range.js", "tags": "", "module-type": "filteroperator", "modified": "20171221181907646", "created": "20171221181646560" }, "$:/plugins/ebalster/formula/functions/arithmetic.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\n// Unary sign operators\nexports.uplus = function(a) {return a;};\nexports.uminus = function(a) {return -a;};\nexports.uminus.inCast = 'N';\n\n// Add\nexports.add = function(a, b) {return a + b;};\nexports.add.inCast = 'NN';\nexports.sub = function(a, b) {return a - b;};\nexports.sub.inCast = 'NN';\n\n// Multiply\nexports.mul = function(a, b) {return a * b;};\nexports.mul.inCast = 'NN';\nexports.div = function(a, b) {return a / b;};\nexports.div.inCast = 'NN';\n\n// Percent -- TODO make this a different value-type\nexports.percent = function(a) {return a / 100;};\nexports.percent.inCast = 'N';\n\n\n// Aliases\nexports.subtract = exports.sub;\nexports.minus = exports.sub;\nexports.multiply = exports.mul;\nexports.divide = exports.div;\nexports.quotient = exports.div;\nexports.power = exports.pow;\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/arithmetic.js", "tags": "", "module-type": "formula-function", "modified": "20171212223526867", "created": "20171211192843088" }, "$:/plugins/ebalster/formula/functions/arrays.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\n// Array constructor function\nexports.array = function() {\n\treturn Array.prototype.slice.call(arguments);\n};\nexports.array.variadic = true;\n\n\nexports.nth = function(a, i) {\n\ti = Math.floor(i);\n\tif (i < 1 || i > a.length) return undefined;\n\treturn a[i-1];\n};\nexports.nth.inCast = 'AN';\n\nexports.first = function(a) {\n\tif (a.length) return a[0];\n\treturn undefined;\n};\nexports.first.inCast = 'A';\n\nexports.last = function(a) {\n\tif (a.length) return a[a.length-1];\n\treturn undefined;\n};\nexports.last.inCast = 'A';\n\n// MAP function\nexports.map = function(f, a) {\n\tif (f.min_args > 1 || f.max_args < 1) throw \"MAP requires single-argument function.\";\n\tvar result = [];\n\tvar func = f.bind(this);\n\tfor (var i = 0; i < a.length; ++i) result.push(func(a[i]));\n\treturn result;\n};\nexports.map.inCast = 'FA';\n\n\n/*\n\tCounting subroutines...\n\t\tcountA counts every non-array value\n\t\tcountS counts every non-array value but null, undefined and empty strings.\n*/\nfunction countS(a) {\n\tif (!(a instanceof Array)) return (a == null || a.length === 0) ? 0 : 1;\n\tvar n = 0;\n\tfor (var i = 0; i < a.length; ++i) n += countS(a[i]);\n\treturn n;\n}\nfunction countA(a) {\n\tif (!(a instanceof Array)) return 1;\n\tvar n = 0;\n\tfor (var i = 0; i < a.length; ++i) n += countA(a[i]);\n\treturn n;\n}\nfunction countS_multi() {\n\tvar n = 0;\n\tfor (var i = 0; i < arguments.length; ++i) n += countS(arguments[i]);\n\treturn n;\n}\nfunction countA_multi() {\n\tvar n = 0;\n\tfor (var i = 0; i < arguments.length; ++i) n += countA(arguments[i]);\n\treturn n;\n}\nexports.count =\n{\n\tmin_args : 1,\n\tselect : function(operands)\n\t{\n\t\tswitch (operands)\n\t\t{\n\t\tcase 1: return countS;\n\t\tdefault: return countS_multi;\n\t\t}\n\t}\n};\nexports.counta =\n{\n\tmin_args : 1,\n\tselect : function(operands)\n\t{\n\t\tswitch (operands)\n\t\t{\n\t\tcase 1: return countA;\n\t\tdefault: return countA_multi;\n\t\t}\n\t}\n};\n\n// COUNTA function, currently counts everything\nexports.counta = exports.count;\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/arrays.js", "tags": "", "module-type": "formula-function", "modified": "20171219014910148", "created": "20171219014903147" }, "$:/plugins/ebalster/formula/functions/compare.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\n// Equality\nexports.eq = function(a, b) {return a == b;};\nexports.ne = function(a, b) {return a != b;};\n\n// Inequality\nexports.gt = function(a, b) {return a > b;};\nexports.gte = function(a, b) {return a >= b;};\nexports.lt = function(a, b) {return a < b;};\nexports.lte = function(a, b) {return a <= b;};\n\n\n// Aliases\nexports.equal = exports.eq;\nexports.not_equal = exports.ne;\nexports.greater = exports.gt;\nexports.greater_or_equal = exports.gte;\nexports.less = exports.lt;\nexports.less_or_equal = exports.lte;\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/compare.js", "tags": "", "module-type": "formula-function", "modified": "20171214050803365", "created": "20171214050022626" }, "$:/plugins/ebalster/formula/functions/datetime.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\nvar MS_PER_DAY = 86400000;\nvar MS_PER_HOUR = 3600000;\nvar MS_PER_MINUTE = 60000;\nvar MS_PER_SECOND = 1000;\n\nvar UNIX_EPOCH_JULIAN_DAY = 2440587;\n\n\n/*!\n * isoWeekNum from pikaday <https://github.com/actano/Pikaday>\n */\nfunction isoWeekOfYear(date, dayInFirstWeek) {\n\tdayInFirstWeek = dayInFirstWeek || 4;\n\tdate = date instanceof Date ? date : new Date();\n\tdate.setHours(0, 0, 0, 0);\n\tvar yearDay = date.getDate(),\n\t\tweekDay = date.getDay(),\n\t\tdayShift = dayInFirstWeek - 1, // counting starts at 0\n\t\tprevWeekDay = function(day) { return (day + 7 - 1) % 7; };\n\tdate.setDate(yearDay + dayShift - prevWeekDay(weekDay));\n\tvar jan4th = new Date(date.getFullYear(), 0, dayInFirstWeek),\n\t\tdaysBetween = (date.getTime() - jan4th.getTime()) / MS_PER_DAY,\n\t\tweekNum = 1 + Math.round((daysBetween - dayShift + prevWeekDay(jan4th.getDay())) / 7);\n\treturn weekNum;\n}\nfunction isLeapYear(year) {\n\treturn year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);\n}\nfunction daysInYear(year) {\n\treturn isLeapYear(year) ? 366 : 365;\n}\nfunction daysInMonth(year, monthIndex) {\n\tswitch (monthIndex) {\n\tcase 0: case 2: case 4: case 6: case 7: case 9: case 11:return 31;\n\tcase 3: case 5: case 8: case 10: return 30;\n\tcase 1: return (isLeapYear(year) ? 29 : 28);\n\tdefault: throw \"days_in_month: invalid monthIndex: \" + monthIndex;\n\t}\n}\n\n// Utility: Add some months or years to a date\nfunction dateAddMonths(date, monthDiff, yearDiff) {\n\tyearDiff = yearDiff || 0;\n\tvar newMonth = date.getMonth() + Math.round(monthDiff);\n\tvar newYear = date.getFullYear() + Math.round(yearDiff);\n\n\tvar yearShift = ((newMonth < 0) ? -Math.floor(-(newMonth-11)/12) : Math.floor(newMonth/12));\n\tnewYear += yearShift;\n\tnewMonth -= 12*yearShift;\n\n\treturn new Date(newYear, newMonth,\n\t\tMath.min(date.getDate(), daysInMonth(newYear, newMonth)),\n\t\tdate.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\n\n// Utility: Get date difference in whole years and months\nfunction dateDelta(date1, date2) {\n\tif (date2.getTime() < date1.getTime())\n\t{\n\t\tvar d = dateDelta(date2, date1);\n\t\treturn {years: -d.years, months: -d.months};\n\t}\n\tvar dMonths = 12*(date2.getYear()-date1.getYear()) + (date2.getMonth()-date1.getMonth());\n\tif (date2.getDate() < date1.getDate()) dMonths -= 1;\n\tvar dYears = Math.floor(dMonths/12);\n\t//dMonths -= dYears*12;\n\t/*var dDays = (new Date(\n\t\tdate1.getFullYear()+dYears, date1.getMonth()+dMonths, date2.getDate(),\n\t\tdate2.getHours(), date2.getMinutes(), date2.getSeconds(), date2.getMilliseconds()\n\t\t).getTime() - date1.getTime()) / MS_PER_DAY;*/\n\treturn {years: dYears, months: dMonths};\n}\n\n\n// Get the current time\nexports.now = function() {return new Date(Date.now());};\n\n// Decompose dates\nexports.year = function(d) {return (d.getFullYear());};\nexports.year.inCast = 'D';\nexports.month = function(d) {return (d.getMonth()+1);};\nexports.month.inCast = 'D';\nexports.day = function(d) {return (d.getDate());};\nexports.day.inCast = 'D';\nexports.hour = function(d) {return (d.getHours());};\nexports.hour.inCast = 'D';\nexports.minute = function(d) {return (d.getMinutes());};\nexports.minute.inCast = 'D';\nexports.second = function(d) {return (d.getSeconds());};\nexports.second.inCast = 'D';\nexports.millisecond = function(d) {return (d.getMilliseconds());};\nexports.millisecond.inCast = 'D';\n\n// Week functions\nexports.weekday = function(d) {return (d.getDay()+1);};\nexports.weekday.inCast = 'D';\nexports.weeknum = function(d) {return (isoWeekOfYear(d, 1));};\nexports.weeknum.inCast = 'D';\nexports.isoweekday = function(d) {return ((d.getDay()+6) % 7 + 1);};\nexports.isoweekday.inCast = 'D';\nexports.isoweeknum = function(d) {return (isoWeekOfYear(d));};\nexports.isoweeknum.inCast = 'D';\n\n\n/*\n\tDate math\n*/\nfunction makeTimeDiffFunction(milliseconds) {\n\tvar f = function(a, b) {return (b.getTime() - a.getTime()) / milliseconds;};\n\tf.inCast = 'DD';\n\treturn f;\n}\nfunction makeTimeAddFunction(milliseconds) {\n\tvar f = function(a, b) {return new Date(a.getTime() + b * milliseconds);};\n\tf.inCast = 'DN';\n\treturn f;\n}\n\nexports.years = function(a, b) {return dateDelta(a, b).years;};\nexports.years.inCast = 'DD';\nexports.months = function(a, b) {return dateDelta(a, b).months;};\nexports.months.inCast = 'DD';\nexports.days = makeTimeDiffFunction(MS_PER_DAY);\nexports.hours = makeTimeDiffFunction(MS_PER_HOUR);\nexports.minutes = makeTimeDiffFunction(MS_PER_MINUTE);\nexports.seconds = makeTimeDiffFunction(MS_PER_SECOND);\nexports.milliseconds = makeTimeDiffFunction(1);\n\nexports.add_years = function(a, b) {return dateAddMonths(a, 0, b);};\nexports.add_years.inCast = 'DN';\nexports.add_months = function(a, b) {return dateAddMonths(a, b);};\nexports.add_months.inCast = 'DN';\nexports.add_days = makeTimeAddFunction(MS_PER_DAY);\nexports.add_hours = makeTimeAddFunction(MS_PER_HOUR);\nexports.add_minutes = makeTimeAddFunction(MS_PER_MINUTE);\nexports.add_seconds = makeTimeAddFunction(MS_PER_SECOND);\nexports.add_milliseconds = makeTimeAddFunction(1);\n\nexports.is_leap_year = function(year) {return (isLeapYear(year));};\nexports.is_leap_year.inCast = 'N';\nexports.days_in_year = function(year) {return (daysInYear(year));};\nexports.days_in_year.inCast = 'N';\nexports.days_in_month = function(yr, mon) {return (daysInMonth(yr, mon-1));};\nexports.days_in_month.inCast = 'NN';\n\n/*exports.datedif = function(a, b, c) {\n\tswitch (c.toUpperCase())\n\t{\n\tcase \"D\": return ((b.getTime() - a.getTime()) / MS_PER_DAY);\n\tcase \"M\": {var d=dateDelta(a, b); return d.months+12*d.years;}\n\tcase \"Y\": return dateDelta(a, b).years;\n\tcase \"YM\": return dateDelta(a, b).months;\n\tcase \"MD\": return dateDelta(a, b).days;\n\t}\n};\nexports.datedif.inCast = 'DDT';*/\n\n\n// Parse TiddlyWiki date\nexports.tw_date = function(timestamp) {\n\tvar date = $tw.utils.parseDate(timestamp);\n\tif (!date) throw \"Bad timestamp: \\\"\" + date + \"\\\"\";\n\treturn (date);\n};\nexports.tw_date.inCast = 'T';\n\n// Stringify as TiddlyWiki date\nexports.to_tw_date = function(date) {\n\treturn $tw.utils.stringifyDate(date);\n};\nexports.to_tw_date.inCast = 'D';\n\n// Create ISO date\nexports.make_date = function(year, month, day) {\n\treturn (new Date(year, month-1, day));\n};\nexports.make_date.inCast = 'NNN';\n\n// Create ISO time\nexports.make_time = function(hour, minute, second) {\n\treturn (new Date(0, 0, 0, hour, minute, second));\n};\nexports.make_time.inCast = 'NNN';\n\n// Create from julian\nexports.julian = function(julian) {\n\treturn (new Date((julian - UNIX_EPOCH_JULIAN_DAY) * MS_PER_DAY));\n};\nexports.julian.inCast = 'N';\n\n// Convert to julian\nexports.to_julian = function(date) {\n\treturn (UNIX_EPOCH_JULIAN_DAY + (date.getTime() / MS_PER_DAY));\n};\nexports.to_julian.inCast = 'D';\n\nexports.time = exports.make_time;\n\n\n// Cast the incoming value into a date.\nfunction interpret_date(a) {\n\tif (a instanceof Date) return a;\n\treturn exports.tw_date(a);\n}\ninterpret_date.inCast = 'D';\n\n\n// Consruct a date from a TiddlyWiki timestamp or a set of parts\nexports.date = {\n\tmin_args: 1, max_args: 3,\n\tselect: function(operands) {\n\t\tswitch (operands.length) {\n\t\tcase 1: return interpret_date;\n\t\tcase 3: return exports.make_date;\n\t\tdefault: throw \"Bad arguments to DATE. Should be (timestamp) or (year, month, day).\";\n\t\t}\n\t}\n};\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/datetime.js", "tags": "", "module-type": "formula-function", "modified": "20171217192149101", "created": "20171217192129179" }, "$:/plugins/ebalster/formula/functions/logic.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Node = require(\"$:/plugins/ebalster/formula/nodes.js\").Node;\n\n\n// Constants\nexports.true = function() {return true;};\nexports.false = function() {return false;};\n\nexports.true.isConstant = true;\nexports.false.isConstant = true;\n\n// Logical operators\nexports.not = function(a) {return !a;};\nexports.not.inCast = 'B';\nexports.and = function(a, b) {return a && b;};\nexports.and.inCast = 'BB';\nexports.or = function(a, b) {return a || b;};\nexports.or .inCast = 'BB';\nexports.xor = function(a, b) {return a ? !b : b;};\nexports.xor.inCast = 'BB';\n\n// Ternary\nfunction IfNode(pred, tval, fval) {\n\tthis.pred = pred;\n\tthis.tval = tval;\n\tthis.fval = fval;\n}\nIfNode.prototype = new Node();\nIfNode.prototype.name = \"if\";\nIfNode.prototype.compute = (function(ctx) {\n\treturn (this.pred.computeBool(ctx) ? this.tval.compute(ctx) : this.fval.compute(ctx));\n});\nexports.if = {\n\tmin_args: 3, max_args: 3,\n\tconstruct: function(operands) {\n\t\treturn new IfNode(operands[0], operands[1], operands[2]);\n\t}\n};\n\n\n// IFERROR\n/*exports.iferror = {\n\tmin_args = 2, max_args = 2,\n\tfunc = function(a, b) {\n\tselect: function(operands) {\n\t\ttry {return a.compute();}\n\t\tcatch (err) {return b.compute();}\n\t}\n\t};*/\n\n\n// SWITCH (variadic)\nexports.switch =\n{\n\tmin_args: 3,\n\tselect: function(operands)\n\t{\n\t\tswitch (operands.length % 2)\n\t\t{\n\t\tdefault:\n\t\tcase 0: return function(a) // Switch with default\n\t\t\t{\n\t\t\t\tvar value = a;\n\t\t\t\tfor (var i = 1; i+1 < arguments.length; i += 2)\n\t\t\t\t\t{if (arguments[i] == value) return arguments[i+1];}\n\t\t\t\treturn arguments[arguments.length-1];\n\t\t\t};\n\t\tcase 1: return function(a) // Switch, no default\n\t\t\t{\n\t\t\t\tvar value = a;\n\t\t\t\tfor (var i = 1; i+1 < arguments.length; i += 2)\n\t\t\t\t\t{if (arguments[i] == value) return arguments[i+1];}\n\t\t\t\treturn undefined;\n\t\t\t};\n\t\t}\n\t}\n};\n\n// CHOOSE (variadic)\nexports.choose = function(a, b)\n{\n\tvar index = Math.floor(a);\n\tvar result = arguments[index];\n\tif (index < 1 || !result) return undefined;\n\treturn result;\n};\nexports.choose.inCast = 'N';\nexports.choose.variadic = true;\n\n// IFS function (variadic)\nfunction ifsFunc() {\n\tfor (var i = 0; i < arguments.length; i += 2)\n\t\t{if (arguments[i]) return arguments[i+1];}\n\treturn undefined;\n};\nifsFunc.inCast = '+B_';\n\nexports.ifs =\n{\n\tmin_args : 2,\n\tinput: '+B_',\n\tselect : function(operands) {\n\t\tif (operands.length % 2 !== 0) throw \"Odd number of arguments to IFS\";\n\t\treturn ifsFunc;\n\t}\n};\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/logic.js", "tags": "", "module-type": "formula-function", "modified": "20171214060456114", "created": "20171214054240274" }, "$:/plugins/ebalster/formula/functions/math.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Coerce = require(\"$:/plugins/ebalster/formula/coerce.js\");\n\n\n// Constants\nexports.pi = function() {return (Math.PI);};\nexports._e = function() {return (Math.E);};\n\nexports.pi.isConstant = true;\nexports._e.isConstant = true;\n\n\n// Random\nexports.rand = function() {return Math.random();};\nexports.randbetween = function(a, b) {return (a+(b-a)*Math.random());};\nexports.randbetween.inCast = 'NN';\nexports.random = exports.rand;\n\n\n// Sign and absolute value\nexports.abs = function(a) {return Math.abs(a);};\nexports.abs.inCast = 'N';\nexports.sign = function(x) {return (((x > 0) - (x < 0)) || +x);};\nexports.sign.inCast = 'N';\n\n// Min/max\nexports.min = function(a)\n{\n\tvar min = a;\n\tfor (var i = 1; i < arguments.length; ++i) min = Math.min(min, arguments[i]);\n\treturn min;\n};\nexports.min.variadic = true;\nexports.min.inCast = '+N';\n\nexports.max = function(a)\n{\n\tvar max = a;\n\tfor (var i = 1; i < arguments.length; ++i) max = Math.max(max, arguments[i]);\n\treturn max;\n};\nexports.max.variadic = true;\nexports.max.inCast = '+N';\n\nexports.clamp = function(a, min, max) {\n\treturn (Math.min(Math.max(a, min), max));\n};\nexports.clamp.inCast = 'NNN';\n\n\n/*\n\tSeries arithmetic\n*/\nfunction Count(a) {\n\tif (a instanceof Array) {\n\t\tvar n = 0;\n\t\tfor (var i = 0; i < a.length; ++i) n += Count(a[i]);\n\t\treturn n;\n\t}\n\treturn 1;\n}\nfunction Sum(a) {\n\tif (a instanceof Array) {\n\t\tvar n = 0;\n\t\tfor (var i = 0; i < a.length; ++i) n += Sum(a[i]);\n\t\treturn n;\n\t}\n\treturn Coerce.ToNum(a,this);\n}\nfunction Product(a) {\n\tif (a instanceof Array) {\n\t\tvar n = 1;\n\t\tfor (var i = 0; i < a.length; ++i) n *= Product(a[i]);\n\t\treturn n;\n\t}\n\treturn Coerce.ToNum(a,this);\n}\nfunction Average(a) {\n\treturn Sum(a) / Count(a);\n}\n\nfunction GenSeriesFunc(func) {\n\treturn {\n\t\tmin_args : 1,\n\t\tselect : function(operands) {\n\t\t\tswitch (operands.length) {\n\t\t\tcase 1: return func;\n\t\t\tdefault: return function() {return func(Array.prototype.slice.call(arguments));};\n\t\t\t}\n\t\t}\n\t};\n}\n\nexports.sum = GenSeriesFunc(Sum);\nexports.average = GenSeriesFunc(Average);\nexports.product = GenSeriesFunc(Product);\n\n\n/*\n\tExponential\n*/\n\n// Exponentiation and logarithm\nexports.pow = function(a, b) {return (Math.pow(a, b));};\nexports.pow.inCast = 'NN';\nexports.log = function(a, b) {return (Math.log(a) / Math.log(b));};\nexports.log.inCast = 'NN';\nexports.exp = function(a) {return (Math.exp(a));};\nexports.exp.inCast = 'N';\nexports.ln = function(a) {return (Math.log(a));};\nexports.ln.inCast = 'N';\nexports.log2 = function(a) {return (Math.log2(a));};\nexports.log2.inCast = 'N';\nexports.log10 = function(a) {return (Math.log10(a));};\nexports.log10.inCast = 'N';\n\nexports.power = exports.pow;\n\n// Precise exponentiation and logarithm\nexports.expm1 = function(a) {return (Math.expm1(a));};\nexports.expm1.inCast = 'N';\nexports.log1p = function(a) {return (Math.log1p(a));};\nexports.log1p.inCast = 'N';\n\n// Roots\nexports.sqrt = function(a) {return (Math.sqrt(a));};\nexports.sqrt.inCast = 'N';\nexports.cbrt = function(a) {return (Math.cbrt(a));};\nexports.cbrt.inCast = 'N';\n\n\n/*\n\tTrigonometry\n*/\n\n// Conversion\nexports.radians = function(a) {return (Math.PI*a/180);};\nexports.radians.inCast = 'N';\nexports.degrees = function(a) {return (180*a/Math.PI);};\nexports.degrees.inCast = 'N';\n\n// Trigonometry\nexports.sin = function(a) {return ( Math.sin(a));};\nexports.sin.inCast = 'N';\nexports.cos = function(a) {return ( Math.cos(a));};\nexports.cos.inCast = 'N';\nexports.tan = function(a) {return ( Math.tan(a));};\nexports.tan.inCast = 'N';\nexports.csc = function(a) {return (1/Math.sin(a));};\nexports.csc.inCast = 'N';\nexports.sec = function(a) {return (1/Math.cos(a));};\nexports.sec.inCast = 'N';\nexports.cot = function(a) {return (1/Math.tan(a));};\nexports.cot.inCast = 'N';\n\n// Inverse Trigonometry\nexports.asin = function(a) {return (Math.asin( a));};\nexports.asin.inCast = 'N';\nexports.acos = function(a) {return (Math.acos( a));};\nexports.acos.inCast = 'N';\nexports.atan = function(a) {return (Math.atan( a));};\nexports.atan.inCast = 'N';\nexports.acsc = function(a) {return (Math.asin(1/a));};\nexports.acsc.inCast = 'N';\nexports.asec = function(a) {return (Math.acos(1/a));};\nexports.asec.inCast = 'N';\nexports.acot = function(a) {return (Math.atan(1/a));};\nexports.acot.inCast = 'N';\nexports.atan2 = function(y,x) {return (Math.atan2(y, x));};\nexports.atan2.inCast = 'NN';\n\n// Hyperbolic Trigonometry\nexports.sinh = function(a) {return ( Math.sinh(a));};\nexports.sinh.inCast = 'N';\nexports.cosh = function(a) {return ( Math.cosh(a));};\nexports.cosh.inCast = 'N';\nexports.tanh = function(a) {return ( Math.tanh(a));};\nexports.tanh.inCast = 'N';\nexports.csch = function(a) {return (1/Math.sinh(a));};\nexports.csch.inCast = 'N';\nexports.sech = function(a) {return (1/Math.cosh(a));};\nexports.sech.inCast = 'N';\nexports.coth = function(a) {return (1/Math.tanh(a));};\nexports.coth.inCast = 'N';\n\n// Inverse Hyperbolic Trigonometry\nexports.asinh = function(a) {return (Math.asinh( a));};\nexports.asinh.inCast = 'N';\nexports.acosh = function(a) {return (Math.acosh( a));};\nexports.acosh.inCast = 'N';\nexports.atanh = function(a) {return (Math.atanh( a));};\nexports.atanh.inCast = 'N';\nexports.acsch = function(a) {return (Math.asinh(1/a));};\nexports.acsch.inCast = 'N';\nexports.asech = function(a) {return (Math.acosh(1/a));};\nexports.asech.inCast = 'N';\nexports.acoth = function(a) {return (Math.atanh(1/a));};\nexports.acoth.inCast = 'N';\n\n/*\n\tRounding, ceiling and floor functions.\n\t\tSpecial measures were taken to reproduce the conventions.\n*/\n\nvar signedFloor = Math.trunc || function(n) {return (n<0) ? Math.ceil (n) : Math.floor(n);};\nvar signedCeil = function(n) {return (n<0) ? Math.floor(n) : Math.ceil (n);};\n\nfunction genCeilFloor(func) {\n\tvar by1 = function(a) {return func(a);},\n\t\tbyN = function(a, b) {var prec = b; return (func(a/prec) * prec);};\n\tby1.inCast = 'NN';\n\tbyN.inCast = 'NN';\n\treturn {\n\t\tmin_args : 1, max_args : 2,\n\t\tinput: 'NN',\n\t\tselect: function(operands) {\n\t\t\tswitch (operands.length)\n\t\t\t{\n\t\t\tcase 1: return by1;\n\t\t\tcase 2: return byN;\n\t\t\t}\n\t\t}\n\t};\n}\n\nfunction genRound(func) {\n\tvar lndigit = Math.log(0.1);\n\tvar by1 = function(a) {return func(a);},\n\t\tbyN = function(a, b) {var prec = Math.exp(lndigit*b); return (func(a/prec) * prec);};\n\tby1.inCast = 'NN';\n\tbyN.inCast = 'NN';\n\treturn {\n\t\tmin_args : 1, max_args : 2,\n\t\tinput: 'NN',\n\t\tselect: function(operands) {\n\t\t\tswitch (operands.length)\n\t\t\t{\n\t\t\tcase 1: return by1;\n\t\t\tcase 2: return byN;\n\t\t\t}\n\t\t}\n\t};\n}\n\nexports.floor = genCeilFloor(Math.floor);\nexports.ceil = genCeilFloor(Math.ceil);\n//exports.floor_precise = genCeilFloor(Math.floor);\n//exports.ceil_precise = genCeilFloor(Math.ceil);\nexports.round = genRound(Math.round);\nexports.roundup = genRound(signedCeil);\nexports.rounddown = genRound(signedFloor);\nexports.trunc = exports.rounddown;\n\n// Related functions\nexports.fract = function(a) {return (a-signedFloor(a));};\nexports.fract.inCast = 'NN';\nexports.modulo = function(a,b) {return (a-b*Math.floor(a/b));};\nexports.modulo.inCast = 'NN';\n\nexports.mod = exports.modulo;\n\n\n/*\n\tInterpolation\n*/\nexports.mix = function(a,b,m) {return (a + (b-a) * m);};\nexports.mix.inCast = 'NNN';\n\nexports.step = function(e,x) {return ((x<e) ? 0.0 : 1.0);};\nexports.step.inCast = 'NN';\n\nexports.smoothstep = function(e0,e1,x) {\n\tif (x < e0) return (0.0);\n\tif (x > e1) return (1.0);\n\tx = (x-e0) / (e1-e0);\n\treturn (3*x*x - 2*x*x*x);\n};\nexports.smoothstep.inCast = 'NNN';\n\n\n/*\n\tAlgorithms\n*/\nexports.gcd = function(a,b) {\n\ta = Math.abs(Math.round(a));\n\tb = Math.abs(Math.round(b));\n\tif (b > a) {var temp = a; a = b; b = temp;}\n\tvar limit = 1000;\n\twhile (true) {\n\t\tif (b == 0) return a;\n\t\ta %= b;\n\t\tif (a == 0) return b;\n\t\tb %= a;\n\t\tif (--limit < 0) throw \"GCD function is nonterminal!\";\n\t}\n};\nexports.gcd.inCast = 'NN';\n\nexports.lcm = function(a,b) {\n\ta = Math.abs(Math.round(a));\n\tb = Math.abs(Math.round(b));\n\treturn (!a || !b) ? 0 : Math.abs((a * b) / exports.gcd(a, b));\n};\nexports.lcm.inCast = 'NN';\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/math.js", "tags": "", "module-type": "formula-function", "modified": "20171214171708994", "created": "20171214171454666" }, "$:/plugins/ebalster/formula/functions/regexp.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\n// Compile regex. TODO: Precompile these where possible\n/*var TW_RX_FLAGS = /^\\(\\?[a-z]*\\)|\\(\\?[a-z]*\\)$/i;\n\nfunction tw_regex(rx_str, defaultFlags) {\n\tif (!rx_str) throw \"Empty regular expression\";\n\tvar flagPart = TW_RX_FLAGS.exec(rx_str);\n\tif (flagPart) {\n\t\tvar flagLen = flagPart[0].length;\n\t\tvar flags = flagPart[0].substr(2, flagPart[0].length-3);\n\t\tif (flagPart.index == 0) return new RegExp(rx_str.substr(flagLen), flags);\n\t\telse return new RegExp(rx_str.substr(0, rx_str.length-flagLen), flags);\n\t}\n\treturn new RegExp(rx_str, defaultFlags);\n}*/\n\n\n// Regex replace\nexports.regexreplace = function(s, rx, b) {\n\t//rx = tw_regex(rx, \"g\");\n\trx.lastIndex = 0;\n\treturn s.replace(rx, b);\n};\nexports.regexreplace.inCast = 'TRT';\n\n// Regex match\nexports.regexmatch = function(s, rx) {\n\t//rx = tw_regex(rx, \"\");\n\trx.lastIndex = 0;\n\treturn rx.test(s);\n};\nexports.regexmatch.inCast = 'TR';\n\n// Regex extract\nfunction regexextract(s, rx) {\n\t//rx = tw_regex(rx, \"g\");\n\trx.lastIndex = 0;\n\ts = s;\n\tvar captureIndex = arguments[2] || 0;\n\tvar matches = [];\n\tvar match;\n\twhile ((match = rx.exec(s)) != null) {\n\t\tif (match[0].length == 0) ++rx.lastIndex;\n\t\tmatches.push(match[captureIndex] || \"\");\n\t\tif (!rx.global) break;\n\t}\n\treturn matches;\n}\nregexextract.inCast = 'TRN';\n\nexports.regexextract = {\n\tmin_args: 2, max_args: 3,\n\tselect: function(operands) {return regexextract;}\n};\n\n// Regex extract, single argument\nfunction regexextract1(s, rx, dfl) {\n\t//rx = tw_regex(rx, \"\");\n\trx.lastIndex = 0;\n\ts = s;\n\tvar captureIndex = arguments[3] || 0;\n\tvar match = rx.exec(s);\n\treturn (match && match[captureIndex]) ? match[captureIndex] : dfl;\n}\nregexextract1.inCast = 'TRTN';\n\nexports.regexextract1 = {\n\tmin_args: 3, max_args: 4,\n\tselect: function(operands) {return regexextract1;}\n};\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/regexp.js", "tags": "", "module-type": "formula-function", "modified": "20171220230855457", "created": "20171220230845098" }, "$:/plugins/ebalster/formula/functions/strings.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Coerce = require(\"$:/plugins/ebalster/formula/coerce.js\");\n\n\n// Cast to text. Second argument not yet supported.\nexports.t = function(a) {return a;};\nexports.t.inCast = 'T';\n\nfunction t_format(a, format) {return a;}\nt_format.inCast = 'TT';\n\nexports.text = {\n\tmin_args: 1, max_args: 1,\n\tinput: 'TT',\n\tselect: function(operands) {\n\t\tif (operands.length == 1) return exports.t;\n\t\treturn t_format;\n\t}\n};\n\n// Cast string to number.\nexports.value = function(a) {return a;};\nexports.inCast = 'N';\n\n// Array to string\nvar JoinFunc = function(delimiter, ignore_empty, array, startIndex) {\n\tvar join = \"\", part;\n\tfor (var i = startIndex; i < array.length; ++i)\n\t{\n\t\tvar arg = array[i];\n\t\tif (arg instanceof Array) {\n\t\t\tpart = JoinFunc(delimiter, ignore_empty, arg, 0);\n\t\t}\n\t\telse {\n\t\t\tpart = Coerce.ToText(arg,this);\n\t\t}\n\t\tif (part.length || !ignore_empty) {\n\t\t\tif (join.length) join += delimiter;\n\t\t\tjoin += part;\n\t\t}\n\t}\n\treturn join;\n};\n\n// Join\nexports.join = function(delimiter) {\n\treturn JoinFunc.call(this, delimiter, false, arguments, 1);\n};\nexports.join.variadic = true;\nexports.join.inCast = 'T';\n\n// Textjoin\nexports.textjoin = function(delimiter, ignore_empty) {\n\treturn JoinFunc.call(this, delimiter, ignore_empty, arguments, 2);\n};\nexports.textjoin.variadic = true;\nexports.textjoin.inCast = 'T';\n\n// Split string to array\nexports.split = function(str, delimiter) {\n\treturn str.split(delimiter);\n};\nexports.split.inCast = 'T';\n\n// String length\nexports.len = function(str) {return str.length;};\nexports.len.inCast = 'T';\n\n// String exact match\nexports.exact = function(a, b) {return a === b;};\nexports.exact.inCast = 'TT';\n\n\n// Substrings\nexports.mid = function(str, i, n) {return str.substr(i-1, n);};\nexports.exact.inCast = 'TNN';\n\nexports.substr = exports.mid;\n\n\n// Substitute\nexports.substitute = function(s, f, r) {return s.split(f).join(r);};\nexports.substitute.inCast = 'TTT';\n\n// Replace (N/I)\n//exports.replace = function(s, p, l, r) {return (s.splice(a, b));};\n\n\n// Concatenate\nexports.cat = function(a, b) {return a + b;};\nexports.cat.inCast = 'TT';\n\n// Trim space\nexports.trim = function(a) {return a.split(/^\\s+|\\s+$/g).join(\"\");};\nexports.trim.inCast = 'T';\n\n\n// Aliases\nexports.concatenate = exports.cat;\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/strings.js", "tags": "", "module-type": "formula-function", "modified": "20171213003237206", "created": "20171213003135495" }, "$:/plugins/ebalster/formula/functions/wiki.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Nodes = require(\"$:/plugins/ebalster/formula/nodes.js\");\n\n\n// Get variable string by name.\nexports.transclude = {\n\tmin_args: 1, max_args: 2,\n\tconstruct: function(operands) {\n\t\tswitch (operands.length) {\n\t\t\tcase 1: return new Nodes.TranscludeText(operands[0]);\n\t\t\tcase 2: return new Nodes.TranscludeField(operands[0], operands[1]);\n\t\t}\n\t}\n};\n\n// Transclude tiddler text string by name.\nexports.transclude_index = {\n\tmin_args: 2, max_args: 2,\n\tconstruct: function(operands) {return new Nodes.TranscludeIndex(operands[0], operands[1]);}\n};\n\n// Transclude field string by name.\nexports.variable = {\n\tmin_args: 1, max_args: 1,\n\tconstruct: function(operands) {return new Nodes.Variable(operands[0]);}\n};\n\n// Interpret value as a datum.\nexports.datum = {\n\tmin_args: 1, max_args: 1,\n\tconstruct: function(operands) {return new Nodes.Datum(operands[0]);}\n};\n\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/functions/wiki.js", "tags": "", "module-type": "formula-function", "modified": "20180108012007186", "created": "20180108011928370" }, "$:/plugins/ebalster/formula/lib/numeral.js": { "text": "/*! @preserve\n * numeral.js\n * version : 2.0.6\n * author : Adam Draper\n * license : MIT\n * http://adamwdraper.github.com/Numeral-js/\n */\n!function(a,b){\"function\"==typeof define&&define.amd?define(b):\"object\"==typeof module&&module.exports?module.exports=b():a.numeral=b()}(this,function(){function a(a,b){this._input=a,this._value=b}var b,c,d=\"2.0.6\",e={},f={},g={currentLocale:\"en\",zeroFormat:null,nullFormat:null,defaultFormat:\"0,0\",scalePercentBy100:!0},h={currentLocale:g.currentLocale,zeroFormat:g.zeroFormat,nullFormat:g.nullFormat,defaultFormat:g.defaultFormat,scalePercentBy100:g.scalePercentBy100};return b=function(d){var f,g,i,j;if(b.isNumeral(d))f=d.value();else if(0===d||\"undefined\"==typeof d)f=0;else if(null===d||c.isNaN(d))f=null;else if(\"string\"==typeof d)if(h.zeroFormat&&d===h.zeroFormat)f=0;else if(h.nullFormat&&d===h.nullFormat||!d.replace(/[^0-9]+/g,\"\").length)f=null;else{for(g in e)if(j=\"function\"==typeof e[g].regexps.unformat?e[g].regexps.unformat():e[g].regexps.unformat,j&&d.match(j)){i=e[g].unformat;break}i=i||b._.stringToNumber,f=i(d)}else f=Number(d)||null;return new a(d,f)},b.version=d,b.isNumeral=function(b){return b instanceof a},b._=c={numberToFormat:function(a,c,d){var e,g,h,i,j,k,l,m=f[b.options.currentLocale],n=!1,o=!1,p=0,q=\"\",r=1e12,s=1e9,t=1e6,u=1e3,v=\"\",w=!1;if(a=a||0,g=Math.abs(a),b._.includes(c,\"(\")?(n=!0,c=c.replace(/[\\(|\\)]/g,\"\")):(b._.includes(c,\"+\")||b._.includes(c,\"-\"))&&(j=b._.includes(c,\"+\")?c.indexOf(\"+\"):0>a?c.indexOf(\"-\"):-1,c=c.replace(/[\\+|\\-]/g,\"\")),b._.includes(c,\"a\")&&(e=c.match(/a(k|m|b|t)?/),e=e?e[1]:!1,b._.includes(c,\" a\")&&(q=\" \"),c=c.replace(new RegExp(q+\"a[kmbt]?\"),\"\"),g>=r&&!e||\"t\"===e?(q+=m.abbreviations.trillion,a/=r):r>g&&g>=s&&!e||\"b\"===e?(q+=m.abbreviations.billion,a/=s):s>g&&g>=t&&!e||\"m\"===e?(q+=m.abbreviations.million,a/=t):(t>g&&g>=u&&!e||\"k\"===e)&&(q+=m.abbreviations.thousand,a/=u)),b._.includes(c,\"[.]\")&&(o=!0,c=c.replace(\"[.]\",\".\")),h=a.toString().split(\".\")[0],i=c.split(\".\")[1],k=c.indexOf(\",\"),p=(c.split(\".\")[0].split(\",\")[0].match(/0/g)||[]).length,i?(b._.includes(i,\"[\")?(i=i.replace(\"]\",\"\"),i=i.split(\"[\"),v=b._.toFixed(a,i[0].length+i[1].length,d,i[1].length)):v=b._.toFixed(a,i.length,d),h=v.split(\".\")[0],v=b._.includes(v,\".\")?m.delimiters.decimal+v.split(\".\")[1]:\"\",o&&0===Number(v.slice(1))&&(v=\"\")):h=b._.toFixed(a,0,d),q&&!e&&Number(h)>=1e3&&q!==m.abbreviations.trillion)switch(h=String(Number(h)/1e3),q){case m.abbreviations.thousand:q=m.abbreviations.million;break;case m.abbreviations.million:q=m.abbreviations.billion;break;case m.abbreviations.billion:q=m.abbreviations.trillion}if(b._.includes(h,\"-\")&&(h=h.slice(1),w=!0),h.length<p)for(var x=p-h.length;x>0;x--)h=\"0\"+h;return k>-1&&(h=h.toString().replace(/(\\d)(?=(\\d{3})+(?!\\d))/g,\"$1\"+m.delimiters.thousands)),0===c.indexOf(\".\")&&(h=\"\"),l=h+v+(q?q:\"\"),n?l=(n&&w?\"(\":\"\")+l+(n&&w?\")\":\"\"):j>=0?l=0===j?(w?\"-\":\"+\")+l:l+(w?\"-\":\"+\"):w&&(l=\"-\"+l),l},stringToNumber:function(a){var b,c,d,e=f[h.currentLocale],g=a,i={thousand:3,million:6,billion:9,trillion:12};if(h.zeroFormat&&a===h.zeroFormat)c=0;else if(h.nullFormat&&a===h.nullFormat||!a.replace(/[^0-9]+/g,\"\").length)c=null;else{c=1,\".\"!==e.delimiters.decimal&&(a=a.replace(/\\./g,\"\").replace(e.delimiters.decimal,\".\"));for(b in i)if(d=new RegExp(\"[^a-zA-Z]\"+e.abbreviations[b]+\"(?:\\\\)|(\\\\\"+e.currency.symbol+\")?(?:\\\\))?)?$\"),g.match(d)){c*=Math.pow(10,i[b]);break}c*=(a.split(\"-\").length+Math.min(a.split(\"(\").length-1,a.split(\")\").length-1))%2?1:-1,a=a.replace(/[^0-9\\.]+/g,\"\"),c*=Number(a)}return c},isNaN:function(a){return\"number\"==typeof a&&isNaN(a)},includes:function(a,b){return-1!==a.indexOf(b)},insert:function(a,b,c){return a.slice(0,c)+b+a.slice(c)},reduce:function(a,b){if(null===this)throw new TypeError(\"Array.prototype.reduce called on null or undefined\");if(\"function\"!=typeof b)throw new TypeError(b+\" is not a function\");var c,d=Object(a),e=d.length>>>0,f=0;if(3===arguments.length)c=arguments[2];else{for(;e>f&&!(f in d);)f++;if(f>=e)throw new TypeError(\"Reduce of empty array with no initial value\");c=d[f++]}for(;e>f;f++)f in d&&(c=b(c,d[f],f,d));return c},multiplier:function(a){var b=a.toString().split(\".\");return b.length<2?1:Math.pow(10,b[1].length)},correctionFactor:function(){var a=Array.prototype.slice.call(arguments);return a.reduce(function(a,b){var d=c.multiplier(b);return a>d?a:d},1)},toFixed:function(a,b,c,d){var e,f,g,h,i=a.toString().split(\".\"),j=b-(d||0);return e=2===i.length?Math.min(Math.max(i[1].length,j),b):j,g=Math.pow(10,e),h=(c(a+\"e+\"+e)/g).toFixed(e),d>b-e&&(f=new RegExp(\"\\\\.?0{1,\"+(d-(b-e))+\"}$\"),h=h.replace(f,\"\")),h}},b.options=h,b.formats=e,b.locales=f,b.locale=function(a){return a&&(h.currentLocale=a.toLowerCase()),h.currentLocale},b.localeData=function(a){if(!a)return f[h.currentLocale];if(a=a.toLowerCase(),!f[a])throw new Error(\"Unknown locale : \"+a);return f[a]},b.reset=function(){for(var a in g)h[a]=g[a]},b.zeroFormat=function(a){h.zeroFormat=\"string\"==typeof a?a:null},b.nullFormat=function(a){h.nullFormat=\"string\"==typeof a?a:null},b.defaultFormat=function(a){h.defaultFormat=\"string\"==typeof a?a:\"0.0\"},b.register=function(a,b,c){if(b=b.toLowerCase(),this[a+\"s\"][b])throw new TypeError(b+\" \"+a+\" already registered.\");return this[a+\"s\"][b]=c,c},b.validate=function(a,c){var d,e,f,g,h,i,j,k;if(\"string\"!=typeof a&&(a+=\"\",console.warn&&console.warn(\"Numeral.js: Value is not string. It has been co-erced to: \",a)),a=a.trim(),a.match(/^\\d+$/))return!0;if(\"\"===a)return!1;try{j=b.localeData(c)}catch(l){j=b.localeData(b.locale())}return f=j.currency.symbol,h=j.abbreviations,d=j.delimiters.decimal,e=\".\"===j.delimiters.thousands?\"\\\\.\":j.delimiters.thousands,k=a.match(/^[^\\d]+/),null!==k&&(a=a.substr(1),k[0]!==f)?!1:(k=a.match(/[^\\d]+$/),null!==k&&(a=a.slice(0,-1),k[0]!==h.thousand&&k[0]!==h.million&&k[0]!==h.billion&&k[0]!==h.trillion)?!1:(i=new RegExp(e+\"{2}\"),a.match(/[^\\d.,]/g)?!1:(g=a.split(d),g.length>2?!1:g.length<2?!!g[0].match(/^\\d+.*\\d$/)&&!g[0].match(i):1===g[0].length?!!g[0].match(/^\\d+$/)&&!g[0].match(i)&&!!g[1].match(/^\\d+$/):!!g[0].match(/^\\d+.*\\d$/)&&!g[0].match(i)&&!!g[1].match(/^\\d+$/))))},b.fn=a.prototype={clone:function(){return b(this)},format:function(a,c){var d,f,g,i=this._value,j=a||h.defaultFormat;if(c=c||Math.round,0===i&&null!==h.zeroFormat)f=h.zeroFormat;else if(null===i&&null!==h.nullFormat)f=h.nullFormat;else{for(d in e)if(j.match(e[d].regexps.format)){g=e[d].format;break}g=g||b._.numberToFormat,f=g(i,j,c)}return f},value:function(){return this._value},input:function(){return this._input},set:function(a){return this._value=Number(a),this},add:function(a){function b(a,b,c,e){return a+Math.round(d*b)}var d=c.correctionFactor.call(null,this._value,a);return this._value=c.reduce([this._value,a],b,0)/d,this},subtract:function(a){function b(a,b,c,e){return a-Math.round(d*b)}var d=c.correctionFactor.call(null,this._value,a);return this._value=c.reduce([a],b,Math.round(this._value*d))/d,this},multiply:function(a){function b(a,b,d,e){var f=c.correctionFactor(a,b);return Math.round(a*f)*Math.round(b*f)/Math.round(f*f)}return this._value=c.reduce([this._value,a],b,1),this},divide:function(a){function b(a,b,d,e){var f=c.correctionFactor(a,b);return Math.round(a*f)/Math.round(b*f)}return this._value=c.reduce([this._value,a],b),this},difference:function(a){return Math.abs(b(this._value).subtract(a).value())}},b.register(\"locale\",\"en\",{delimiters:{thousands:\",\",decimal:\".\"},abbreviations:{thousand:\"k\",million:\"m\",billion:\"b\",trillion:\"t\"},ordinal:function(a){var b=a%10;return 1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\"},currency:{symbol:\"$\"}}),function(){b.register(\"format\",\"bps\",{regexps:{format:/(BPS)/,unformat:/(BPS)/},format:function(a,c,d){var e,f=b._.includes(c,\" BPS\")?\" \":\"\";return a=1e4*a,c=c.replace(/\\s?BPS/,\"\"),e=b._.numberToFormat(a,c,d),b._.includes(e,\")\")?(e=e.split(\"\"),e.splice(-1,0,f+\"BPS\"),e=e.join(\"\")):e=e+f+\"BPS\",e},unformat:function(a){return+(1e-4*b._.stringToNumber(a)).toFixed(15)}})}(),function(){var a={base:1e3,suffixes:[\"B\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\",\"EB\",\"ZB\",\"YB\"]},c={base:1024,suffixes:[\"B\",\"KiB\",\"MiB\",\"GiB\",\"TiB\",\"PiB\",\"EiB\",\"ZiB\",\"YiB\"]},d=a.suffixes.concat(c.suffixes.filter(function(b){return a.suffixes.indexOf(b)<0})),e=d.join(\"|\");e=\"(\"+e.replace(\"B\",\"B(?!PS)\")+\")\",b.register(\"format\",\"bytes\",{regexps:{format:/([0\\s]i?b)/,unformat:new RegExp(e)},format:function(d,e,f){var g,h,i,j,k=b._.includes(e,\"ib\")?c:a,l=b._.includes(e,\" b\")||b._.includes(e,\" ib\")?\" \":\"\";for(e=e.replace(/\\s?i?b/,\"\"),h=0;h<=k.suffixes.length;h++)if(i=Math.pow(k.base,h),j=Math.pow(k.base,h+1),null===d||0===d||d>=i&&j>d){l+=k.suffixes[h],i>0&&(d/=i);break}return g=b._.numberToFormat(d,e,f),g+l},unformat:function(d){var e,f,g=b._.stringToNumber(d);if(g){for(e=a.suffixes.length-1;e>=0;e--){if(b._.includes(d,a.suffixes[e])){f=Math.pow(a.base,e);break}if(b._.includes(d,c.suffixes[e])){f=Math.pow(c.base,e);break}}g*=f||1}return g}})}(),function(){b.register(\"format\",\"currency\",{regexps:{format:/(\\$)/},format:function(a,c,d){var e,f,g,h=b.locales[b.options.currentLocale],i={before:c.match(/^([\\+|\\-|\\(|\\s|\\$]*)/)[0],after:c.match(/([\\+|\\-|\\)|\\s|\\$]*)$/)[0]};for(c=c.replace(/\\s?\\$\\s?/,\"\"),e=b._.numberToFormat(a,c,d),a>=0?(i.before=i.before.replace(/[\\-\\(]/,\"\"),i.after=i.after.replace(/[\\-\\)]/,\"\")):0>a&&!b._.includes(i.before,\"-\")&&!b._.includes(i.before,\"(\")&&(i.before=\"-\"+i.before),g=0;g<i.before.length;g++)switch(f=i.before[g]){case\"$\":e=b._.insert(e,h.currency.symbol,g);break;case\" \":e=b._.insert(e,\" \",g+h.currency.symbol.length-1)}for(g=i.after.length-1;g>=0;g--)switch(f=i.after[g]){case\"$\":e=g===i.after.length-1?e+h.currency.symbol:b._.insert(e,h.currency.symbol,-(i.after.length-(1+g)));break;case\" \":e=g===i.after.length-1?e+\" \":b._.insert(e,\" \",-(i.after.length-(1+g)+h.currency.symbol.length-1))}return e}})}(),function(){b.register(\"format\",\"exponential\",{regexps:{format:/(e\\+|e-)/,unformat:/(e\\+|e-)/},format:function(a,c,d){var e,f=\"number\"!=typeof a||b._.isNaN(a)?\"0e+0\":a.toExponential(),g=f.split(\"e\");return c=c.replace(/e[\\+|\\-]{1}0/,\"\"),e=b._.numberToFormat(Number(g[0]),c,d),e+\"e\"+g[1]},unformat:function(a){function c(a,c,d,e){var f=b._.correctionFactor(a,c),g=a*f*(c*f)/(f*f);return g}var d=b._.includes(a,\"e+\")?a.split(\"e+\"):a.split(\"e-\"),e=Number(d[0]),f=Number(d[1]);return f=b._.includes(a,\"e-\")?f*=-1:f,b._.reduce([e,Math.pow(10,f)],c,1)}})}(),function(){b.register(\"format\",\"ordinal\",{regexps:{format:/(o)/},format:function(a,c,d){var e,f=b.locales[b.options.currentLocale],g=b._.includes(c,\" o\")?\" \":\"\";return c=c.replace(/\\s?o/,\"\"),g+=f.ordinal(a),e=b._.numberToFormat(a,c,d),e+g}})}(),function(){b.register(\"format\",\"percentage\",{regexps:{format:/(%)/,unformat:/(%)/},format:function(a,c,d){var e,f=b._.includes(c,\" %\")?\" \":\"\";return b.options.scalePercentBy100&&(a=100*a),c=c.replace(/\\s?\\%/,\"\"),e=b._.numberToFormat(a,c,d),b._.includes(e,\")\")?(e=e.split(\"\"),e.splice(-1,0,f+\"%\"),e=e.join(\"\")):e=e+f+\"%\",e},unformat:function(a){var c=b._.stringToNumber(a);return b.options.scalePercentBy100?.01*c:c}})}(),function(){b.register(\"format\",\"time\",{regexps:{format:/(:)/,unformat:/(:)/},format:function(a,b,c){var d=Math.floor(a/60/60),e=Math.floor((a-60*d*60)/60),f=Math.round(a-60*d*60-60*e);return d+\":\"+(10>e?\"0\"+e:e)+\":\"+(10>f?\"0\"+f:f)},unformat:function(a){var b=a.split(\":\"),c=0;return 3===b.length?(c+=60*Number(b[0])*60,c+=60*Number(b[1]),c+=Number(b[2])):2===b.length&&(c+=60*Number(b[0]),c+=Number(b[1])),Number(c)}})}(),b});", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/lib/numeral.js", "module-type": "library", "modified": "20180114171115244", "created": "20180114171007227" }, "$:/plugins/ebalster/formula/license": { "text": "!!The MIT License (MIT)\n\nCopyright (c) 2017 Evan Balster\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.", "bag": "default", "revision": "0", "type": "text/vnd.tiddlywiki", "title": "$:/plugins/ebalster/formula/license", "tags": "", "modified": "20171220211838536", "created": "20171220071005710", "caption": "license" }, "$:/plugins/ebalster/formula/macros/formula.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Compute = require(\"$:/plugins/ebalster/formula/compute.js\");\n\n/*\n\tInformation about this macro\n*/\n\nexports.name = \"formula\";\nexports.params = [{\"name\": \"formula\"}];\n\n/*\nRun the macro\n*/\nexports.run = function(formula) {\n\n\ttry {\n\t\treturn Compute.evalFormula(formula, this);\n\t}\n\tcatch (err) {\n\t\treturn \"`\" + String(err) + \"`\";\n\t}\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/macros/formula.js", "tags": "", "module-type": "macro", "modified": "20171212194124031", "created": "20171210215758530" }, "$:/plugins/ebalster/formula/nodes.js": { "text": "/*\\\ntitle: $:/plugins/ebalster/formula/nodes.js\ntype: application/javascript\nmodule-type: macro\n\nLibrary defining computation \"nodes\" used to build compiled formulas.\nOperands represent some value within the formula: an expression, datum, operator, constant or query...\nOperands may be constant, allowing the formula compiler to optimize them away.\n\n\\*/\n(function(){\n\n\"use strict\";\n\nvar Coerce = require(\"$:/plugins/ebalster/formula/coerce.js\");\n\n\n// A Context has all the information necessary for computations.\nexports.Context = function(widget, formats, locals, depth, maxDepth) {\n\tthis.widget = widget;\n\tthis.formats = formats || {};\n\tthis.locals = locals || {};\n\tthis.depth = depth || 1;\n\tthis.maxDepth = maxDepth || 256;\n\tif (this.maxDepth < this.depth) throw \"Formula recursion exceeds limit of \" + this.maxDepth + \". Infinite regress?\";\n};\nexports.Context.prototype.sub = function() {return new exports.Context(this.widget,this.formats,null,this.depth+1,this.maxDepth);};\nexports.Context.prototype.let = function(locals) {return new exports.Context(this.widget,this.formats,locals,this.depth,this.maxDepth);};\nexports.Context.prototype.wiki = function() {return this.widget.wiki;};\nexports.Context.prototype.wikiVariable = function(name) {return this.widget.getVariable(name);};\n\n\nexports.Node = function() {\n};\nexports.Node.prototype.is_constant = false;\nexports.Node.prototype.name = \"unknown-operand\";\nexports.Node.prototype.toString = function() {return \"[Node \" + this.name + \"]\";};\n\n// Compute the Node's value.\nexports.Node.prototype.compute = function(ctx) {return undefined;};\n\n// Compute a specific type of value, with coercion if necessary.\nexports.Node.prototype.computeNum = function(ctx) {return Coerce.ToNum (this.compute(ctx), ctx);};\nexports.Node.prototype.computeText = function(ctx) {return Coerce.ToText (this.compute(ctx), ctx);};\nexports.Node.prototype.computeBool = function(ctx) {return Coerce.ToBool (this.compute(ctx), ctx);};\nexports.Node.prototype.computeDate = function(ctx) {return Coerce.ToDate (this.compute(ctx), ctx);};\nexports.Node.prototype.computeArray = function(ctx) {return Coerce.ToArray(this.compute(ctx), ctx);};\nexports.Node.prototype.computeFunc = function(ctx) {return Coerce.ToFunc (this.compute(ctx), ctx);};\n\n\n// An operand that just throws an error.\nexports.ThrowError = function(exception) {\n\tthis.exception = exception;\n};\nexports.ThrowError.prototype = new exports.Node();\nexports.ThrowError.prototype.name = \"error\";\nexports.ThrowError.prototype.compute = function(ctx)\n{\n\t// Throw up\n\tthrow this.exception;\n};\n\n// Scoped variable node.\nexports.ScopeVar = function(name) {\n\tthis.name = name;\n};\nexports.ScopeVar.prototype = new exports.Node();\n//exports.ScopeVar.prototype.name = \"scope-var\";\nexports.ScopeVar.prototype.compute = function(ctx) {return ctx.locals[this.name];};\n\n// Scoped variable assignment node.\nexports.LetVars = function(assigns, expr) {\n\tthis.assigns = assigns;\n\tthis.expr = expr;\n};\nexports.LetVars.prototype = new exports.Node();\nexports.LetVars.prototype.name = \"let\";\nexports.LetVars.prototype.compute = function(ctx) {\n\t// Each let-expression can access the ones before it.\n\tvar locals = Object.assign({}, ctx.locals);\n\tctx = ctx.let(locals);\n\tfor (var id in this.assigns) {\n\t\ttry {\n\t\t\tlocals[id] = this.assigns[id].compute(ctx);\n\t\t}\n\t\tcatch (err) {\n\t\t\tthrow \"computing LET '\" + id + \"': \" + err;\n\t\t}\n\t}\n\treturn this.expr.compute(ctx);\n};\n\n// Call a function by reference.\nexports.CallFunc = function CallFunc(func, args) {\n\tthis.func = func;\n\tthis.args = args;\n};\nexports.CallFunc.prototype = new exports.Node();\nexports.CallFunc.prototype.name = \"function-builtin\";\nexports.CallFunc.prototype.compute = (function(ctx) {\n\t// Check the function parameters.\n\tvar func = this.func.computeFunc(ctx);\n\tif (this.args.length < func.min_args) throw \"Too few parameters for function\";\n\tif (this.args.length > func.max_args) throw \"Too many parameters for function\";\n\t// Compute arguments.\n\tvar vals = [];\n\tfor (var i = 0; i < this.args.length; ++i) vals.push(this.args[i].compute(ctx));\n\t// Call the function!\n\treturn func.apply(ctx, vals);\n});\n\n// JavaScript function call with possible coercion.\nexports.CallJS = function CallJS(func, args) {\n\tthis.func = func;\n\tthis.args = args;\n\tthis.coerce = Coerce.GetCoerceFuncs(func, args);\n\tthis.n_coerce = Math.min(this.args.length, this.coerce.length);\n};\nexports.CallJS.prototype = new exports.Node();\nexports.CallJS.prototype.name = \"function-builtin\";\nexports.CallJS.prototype.compute = function(ctx) {\n\tvar vals = [];\n\tvar i = 0;\n\tfor (; i < this.n_coerce; ++i) vals.push(this.coerce[i](this.args[i].compute(ctx), ctx));\n\tfor (; i < this.args.length; ++i) vals.push(this.args[i].compute(ctx));\n\treturn this.func.apply(ctx, vals);\n};\n\n// Call a function by reference.\nexports.ArrayDef = function ArrayDef(elems) {\n\tthis.elems = elems;\n};\nexports.ArrayDef.prototype = new exports.Node();\nexports.ArrayDef.prototype.name = \"function-builtin\";\nexports.ArrayDef.prototype.compute = (function(ctx) {\n\t// Compute elements.\n\tvar elems = [];\n\tfor (var i = 0; i < this.elems.length; ++i) elems.push(this.elems[i].compute(ctx));\n\treturn elems;\n});\n\n\n// Function declaration operand.\nexports.Function = function(func, captures) {\n\tthis.func = func;\n\tthis.captures = captures;\n};\nexports.Function.prototype = new exports.Node();\nexports.Function.prototype.name = \"function\";\nexports.Function.prototype.is_constant = true;\nexports.Function.prototype.compute = function(ctx) {\n\tthis.func.captured = {};\n\tif (this.captures) {\n\t\tfor (var name in this.captures) {\n\t\t\tthis.func.captured[name] = ctx.locals[name];\n\t\t}\n\t}\n\treturn this.func;\n};\n\n// String constant operand.\nexports.Text = function(value) {this.value = value;};\nexports.Text.prototype = new exports.Node();\nexports.Text.prototype.name = \"string\";\nexports.Text.prototype.is_constant = true;\nexports.Text.prototype.compute = function(ctx) {return this.value;};\n\n// Date constant operand.\nexports.Date = function(value) {this.value = value;};\nexports.Date.prototype = new exports.Node();\nexports.Date.prototype.name = \"date\";\nexports.Date.prototype.is_constant = true;\nexports.Date.prototype.compute = function(ctx) {return this.value;};\n\n// Boolean constant operand.\nexports.Bool = function(value) {this.value = value;};\nexports.Bool.prototype = new exports.Node();\nexports.Bool.prototype.name = \"boolean\";\nexports.Bool.prototype.is_constant = true;\nexports.Bool.prototype.compute = function(ctx) {return this.value;};\n\n// Number constant operand.\nexports.Number = function(value) {this.value = value;};\nexports.Number.prototype = new exports.Node();\nexports.Number.prototype.name = \"number\";\nexports.Number.prototype.is_constant = true;\nexports.Number.prototype.compute = function(ctx) {return this.value;};\n\n// Regex constant operand.\nexports.Regex = function(value) {this.value = value;};\nexports.Regex.prototype = new exports.Node();\nexports.Regex.prototype.name = \"regex\";\nexports.Regex.prototype.is_constant = true;\nexports.Regex.prototype.compute = function(ctx) {return this.value;};\n\n\nvar Compile = require(\"$:/plugins/ebalster/formula/compile.js\");\n\n\n// \"Automatic\" operand; a compiled string value\nexports.Datum = function(origin) {\n\tthis.origin = origin;\n\tthis.text = null;\n\tthis.op = null;\n};\nexports.Datum.prototype = new exports.Node();\nexports.Datum.prototype.name = \"automatic\";\n\nexports.Datum.prototype.compute = function(ctx) {\n\n\tvar newText = this.origin.computeText(ctx);\n\n\tif (newText != this.text)\n\t{\n\t\tthis.text = newText;\n\t\ttry {\n\t\t\tthis.op = Compile.compileDatum(newText);\n\t\t}\n\t\tcatch (err) {\n\t\t\t// Save the error\n\t\t\tthis.op = new exports.ThrowError(\n\t\t\t\terr + \"\\n source: \\\"\" + this.datum + \"\\\"\\n from \" + origin.name);\n\t\t}\n\t}\n\n\treturn this.op.compute(ctx.sub());\n};\n\n\n// Transcluded text operand.\nexports.TranscludeText = function(title) {\n\tthis.title = title;\n};\nexports.TranscludeText.prototype = new exports.Node();\nexports.TranscludeText.prototype.name = \"transclude\";\n\nexports.TranscludeText.prototype.compute = function(ctx) {\n\treturn ctx.wiki().getTiddlerText(this.title.computeText(ctx),\"\");\n};\n\n// Transcluded field operand.\nexports.TranscludeField = function(title, field) {\n\tthis.title = title;\n\tthis.field = field;\n};\nexports.TranscludeField.prototype = new exports.Node();\nexports.TranscludeField.prototype.name = \"transclude-field\";\n\nexports.TranscludeField.prototype.compute = function(ctx) {\n\tvar tiddler = ctx.wiki().getTiddler(this.title.computeText(ctx)),\n\t\tfield = this.field.computeText(ctx);\n\treturn (tiddler && $tw.utils.hop(tiddler.fields,field)) ? tiddler.getFieldString(field) : \"\";\n};\n\n// Transcluded index operand.\nexports.TranscludeIndex = function(title, index) {\n\tthis.title = title;\n\tthis.index = index;\n};\nexports.TranscludeIndex.prototype = new exports.Node();\nexports.TranscludeIndex.prototype.name = \"transclude-index\";\n\nexports.TranscludeIndex.prototype.compute = function(ctx) {\n\treturn ctx.wiki().extractTiddlerDataItem(\n\t\tthis.title.computeText(ctx),\n\t\tthis.index.computeText(ctx),\"\");\n};\n\n\n// Variable operand.\nexports.Variable = function(variable) {\n\tthis.variable = variable;\n};\nexports.Variable.prototype = new exports.Node();\nexports.Variable.prototype.name = \"variable\";\n\nexports.Variable.prototype.compute = function(ctx) {\n\treturn ctx.wikiVariable(this.variable.computeText(ctx)) || \"\";\n};\n\n\n// Filter operand, with some lazy-compile optimizations.\nexports.Filter = function(filter) {\n\tthis.filter = filter;\n\tthis.elements = {}; // Each has count, op, value\n\t//this.array = [];\n\tthis.compileError = null;\n};\nexports.Filter.prototype = new exports.Node();\nexports.Filter.prototype.name = \"filter\";\n\nexports.Filter.prototype.compute = function(ctx) {\n\t// Apply the filter and compile each result\n\tvar i, expr, elem, exprs = ctx.wiki().filterTiddlers(this.filter, ctx.widget);\n\n\t// Clear the array and mark all existing elements for removal\n\tfor (expr in this.elements) this.elements[expr].count = 0;\n\t//this.array = [];\n\n\t// Selectively re-compile any filter results that have changed\n\tfor (i = 0; i < exprs.length; ++i)\n\t{\n\t\texpr = exprs[i];\n\t\telem = this.elements[expr];\n\t\t//this.array.push(expr);\n\t\t\n\t\tif (elem) ++elem.count;\n\t\telse try {\n\t\t\tthis.elements[expr] = {count: 1, op: Compile.compileDatum(expr), value: null};\n\t\t}\n\t\tcatch (err) {\n\t\t\t// Save the error\n\t\t\tthis.elements[expr] = new exports.ThrowError(\n\t\t\t\terr + \"\\n source: \\\"\" + expr + \"\\\"\\n from \\\"\" + this.filter + \"\\\"\");\n\t\t}\n\t}\n\n\t// Compute (unique) values. Delete any elements with no copies left.\n\tfor (expr in this.elements) {\n\t\telem = this.elements[expr];\n\t\tif (elem.count === 0) delete this.elements[expr];\n\t\telse elem.val = elem.op.compute(ctx.sub());\n\t}\n\n\t// Return value computes an array of datum values.\n\tvar results = [];\n\tfor (i = 0; i < exprs.length; ++i) {\n\t\texpr = exprs[i];\n\t\tresults.push(this.elements[expr].val);\n\t}\n\treturn results;\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/nodes.js", "tags": "", "module-type": "library", "modified": "20180112071139424", "description": "", "created": "20171211183000431" }, "$:/plugins/ebalster/formula/operators/arithmetic.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Unary sign operators\nexports.uplus = {arity: 1, position: \"pre\", operator: \"+\", function: \"uplus\"};\nexports.uminus = {arity: 1, position: \"pre\", operator: \"-\", function: \"uminus\"};\n\n// Add\nexports.plus = {arity: 2, precedence: 10, operator: \"+\", function: \"add\"};\nexports.minus = {arity: 2, precedence: 10, operator: \"-\", function: \"sub\"};\n\n// Multiply\nexports.multiply = {arity: 2, precedence: 20, operator: \"*\", function: \"mul\"};\nexports.divide = {arity: 2, precedence: 20, operator: \"/\", function: \"div\"};\n\n// Exponential\nexports.pow = {arity: 2, precedence: 30, operator: \"^\", function: \"pow\", associativity: \"right\"};\n\n// Percentage\nexports.percent = {arity: 1, position: \"post\", operator: \"%\", function: \"percent\"};\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/operators/arithmetic.js", "tags": "", "module-type": "formula-operator", "modified": "20171212223539769", "created": "20171212223503019" }, "$:/plugins/ebalster/formula/operators/compare.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Equality\nexports.eq = {arity: 2, precedence: 0, operator: \"=\", function: \"eq\"};\nexports.ne = {arity: 2, precedence: 0, operator: \"<>\", function: \"ne\"};\n\n// Inequality\nexports.gt = {arity: 2, precedence: 0, operator: \">\", function: \"gt\"};\nexports.gte = {arity: 2, precedence: 0, operator: \">=\", function: \"gte\"};\nexports.lt = {arity: 2, precedence: 0, operator: \"<\", function: \"lt\"};\nexports.lte = {arity: 2, precedence: 0, operator: \"<=\", function: \"lte\"};\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/operators/compare.js", "tags": "", "module-type": "formula-operator", "modified": "20171214050739104", "created": "20171214050556123" }, "$:/plugins/ebalster/formula/operators/strings.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\n// Concatenate\nexports.concatenate = {arity: 2, precedence: 4, operator: \"&\", function: \"cat\"};\n\n})();", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/operators/strings.js", "tags": "", "module-type": "formula-operator", "modified": "20171213003346943", "created": "20171213003246267" }, "$:/plugins/ebalster/formula/readme": { "text": "''Formula'' for TiddlyWiki, version {{$:/plugins/ebalster/formula!!version}}, by Evan Balster.\n\nFormulas are written between `(=` mushroom brackets `=)`. Where possible, their functions and syntax are designed to emulate popular spreadsheet software (Microsoft Excel and Google Sheets). They //also// support WikiText-like syntax for `{{`transclusion`}}`, `[`filters`]`, `<<`variables`>>`, and a large number of functions.\n\nFormulas can also be evaluated by the `$formula` widget, the `$formula-vars` widget and the `<<formula>>` macro.\n\nFurther documentation is available here: [[https://evanbalster.com/tiddlywiki/formulas.html]].\n\nThis plugin is a work in progress; please report any issues on GitHub: [[https://github.com/EvanBalster/TiddlyWikiFormula/issues]].", "bag": "default", "revision": "0", "type": "text/vnd.tiddlywiki", "title": "$:/plugins/ebalster/formula/readme", "tags": "", "modified": "20171220212520970", "created": "20171220042006170", "caption": "readme" }, "$:/plugins/ebalster/formula/settings": { "text": "Currently no global settings are implemented, but formulas can be controlled by setting some global macros. For example:\n\n|Macro|Meaning|h\n|`\\define formulaFixed() 2`|makes numbers display with 2 decimal points.|\n|`\\define formulaPrecision() 4`|makes numbers display with 4 significant digits (but `formulafixed` takes priority.|\n|`\\define formulaDateFormat() YYYY-MM-0DD`|Sets a date display format using the same rules as TiddlyWiki.|\n\nPlace these at the top of the tiddler where they should take effect, or create a tiddler tagged with <<tag $:/tags/Macro>> to make them apply to all tiddlers.\n\nIn the future, we'll probably add some global settings here...", "bag": "default", "revision": "0", "type": "text/vnd.tiddlywiki", "title": "$:/plugins/ebalster/formula/settings", "tags": "", "modified": "20171221002035357", "created": "20171221001634811", "caption": "readme" }, "$:/plugins/ebalster/formula/value.js": { "text": "(function(){\n\n\"use strict\";\n\n\nexports.NumberFormatFunc = null;\n\nexports.DateFormat = \"0hh:0mm, DDth MMM YYYY\";\n\n\n// Base type for formula values\nexports.Value = function() {\n this.name = \"unknown-value\";\n};\n\n// Get the value payload\nexports.Value.prototype.get = function() {return undefined;};\n\n// Describe the value\nexports.Value.prototype.describe = function() {return this.name + \" (\" + String(this.get()) + \")\";};\n\nexports.Value.prototype.toString = function() {return \"[Value \" + this.describe() + \"]\";};\n\n// Get the value as a number (generic implementation)\nexports.Value.prototype.asNum = function() {\n var v = this.get();\n var n = Number(v);\n if (isNaN(n)) throw \"Cannot convert \" + this.describe() + \" to a number!\";\n return n;\n};\n\n// Get the value as a number, summing arrays (generic implementation)\nexports.Value.prototype.asSum = function() {\n var v = this.get();\n var n;\n if (Array.isArray(v)) {n = 0; for (var i = 0; i < v.length; ++i) n += Number(v[i]);}\n else n = Number(v);\n if (isNaN(n)) throw \"Cannot sum \" + this.describe() + \" to a number!\";\n return n;\n};\n\n// More convertsions\nexports.Value.prototype.asString = function() {\n return String(this.get());\n};\nexports.Value.prototype.asArray = function() {\n var v = this.get();\n if (Array.isArray(v)) return v;\n else return [v];\n};\nexports.Value.prototype.asDate = function() {\n throw \"Cannot convert \" + this.describe() + \" to a date!\";\n};\n\n\n// Undefined value.\nexports.V_Undefined = function() {\n this.name = \"undefined\";\n};\nexports.V_Undefined.prototype = new exports.Value();\nexports.V_Undefined.prototype.get = function() {return undefined;};\n\n\n// Array value.\nexports.V_Array = function(value) {\n this.name = \"array\";\n\n this.value = value;\n};\nexports.V_Array.prototype = new exports.Value();\nexports.V_Array.prototype.get = function() {return this.value;};\nexports.V_Array.prototype.asNum = function() {throw \"Cannot convert \" + this.describe() + \" to number!\";};\nexports.V_Array.prototype.asSum = function() {\n var n = 0;\n for (var i = 0; i < this.value.length; ++i) n += this.value[i].asNum();\n if (isNaN(n)) throw \"Cannot sum \" + this.describe() + \" to a number!\";\n return n;\n};\nexports.V_Array.prototype.asString = function() {\n var result = \"\";\n for (var i = 0; i < this.value.length; ++i) {\n var part = this.value[i].asString();\n if (i && part.length) result += \" \";\n if (part.indexOf(/\\s/g) >= 0) result += \"[[\" + part + \"]]\";\n else result += part;\n }\n return result;\n};\n\n\n// String value.\nexports.V_Text = function(value) {\n this.name = \"string\";\n\n this.value = value;\n};\nexports.V_Text.prototype = new exports.Value();\nexports.V_Text.prototype.get = function() {return this.value;};\n//exports.V_Text.prototype.asDate = function() {return $tw.utils.parseDate();}\n\n\n// Date value.\nexports.V_Date = function(value) {\n this.name = \"date\";\n\n this.value = value;\n};\nexports.V_Date.prototype = new exports.Value();\nexports.V_Date.prototype.get = function() {return this.value;};\nexports.V_Date.prototype.asString = function() {return $tw.utils.formatDateString(this.value, exports.DateFormat);};\nexports.V_Date.prototype.asNum = function() {throw \"Date-to-Number conversion usupported\";};\nexports.V_Date.prototype.asSum = function() {throw \"Date-to-Number conversion usupported\";};\nexports.V_Date.prototype.asDate = function() {return this.value;};\n\n\n// Boolean value.\nexports.V_Bool = function(value) {\n this.name = \"boolean\";\n\n this.value = value;\n};\nexports.V_Bool.prototype = new exports.Value();\nexports.V_Bool.prototype.get = function() {return this.value;};\nexports.V_Bool.prototype.asString = function() {return this.value ? \"TRUE\" : \"FALSE\";};\nexports.V_Bool.prototype.asNum = function() {return this.value ? 1 : 0;};\nexports.V_Bool.prototype.asSum = function() {return this.value ? 1 : 0;};\n\n\n// Number value.\nexports.V_Num = function(value) {\n this.name = \"number\";\n\n this.value = value;\n};\nexports.V_Num.prototype = new exports.Value();\nexports.V_Num.prototype.get = function() {return this.value;};\nexports.V_Num.prototype.asString = function() {return (exports.NumberFormatFunc || String)(this.value);};\nexports.V_Num.prototype.asNum = function() {return this.value;};\nexports.V_Num.prototype.asSum = function() {return this.value;};\n\n\n// Percentage value.\nexports.V_Percent = function(value) {\n this.name = \"percentage\";\n\n this.value = value;\n};\nexports.V_Percent.prototype = new exports.V_Num();\nexports.V_Percent.prototype.asString = function()\n{\n return (exports.NumberFormatFunc || String)(100*this.value) + \"%\";\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/value.js", "tags": "", "module-type": "library", "modified": "20171211195014088", "description": "", "created": "20171211195003728" }, "$:/plugins/ebalster/formula/widgets/attributes/formula.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Compile = require(\"$:/plugins/ebalster/formula/compile.js\");\nvar Compute = require(\"$:/plugins/ebalster/formula/compute.js\");\nvar Nodes = require(\"$:/plugins/ebalster/formula/nodes.js\");\n\nvar FormulaAttribute = function(widget, node) {\n\tthis.widget = widget;\n\tthis.formula = node.formula;\n\ttry {\n\t\tthis.compiledFormula = Compile.compileFormula(this.formula);\n\t}\n\tcatch (err) {\n\t\tthis.compiledFormula = new Nodes.ThrowError(err);\n\t}\n\tthis.value = this.compute();\n};\n\n/*\nInherit from the base ??? class\n*/\n//FormulaAttribute.prototype = new Attribute();\n\nFormulaAttribute.prototype.compute = function() {\n\t// Compute options\n\tthis.formatOptions =\n\t{\n\t\tfixed: (this.widget.getVariable(\"formulaFixed\")),\n\t\tprecision: (this.widget.getVariable(\"formulaPrecision\")),\n\t\tnumberFormat: (this.widget.getVariable(\"formulaNumberFormat\")),\n\t\tdateFormat: (this.widget.getVariable(\"formulaDateFormat\")),\n\t};\n\t// Execute the formula.\n\ttry {\n\t\treturn Compute.computeFormula(this.compiledFormula, this.widget, this.formatOptions);\n\t}\n\tcatch (err) {\n\t\treturn \"\";\n\t}\n};\n\nFormulaAttribute.prototype.refresh = function(changedTiddlers) {\n\tthis.value = this.compute();\n\treturn this.value;\n};\n\n\nexports.formula = FormulaAttribute;\n\n})();\n\t", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/widgets/attributes/formula.js", "tags": "", "module-type": "attributevalue", "modified": "20171225035808674", "description": "Evaluates a formula as an attribute value string.", "created": "20171225035721011" }, "$:/plugins/ebalster/formula/widgets/formula-vars.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar Compile = require(\"$:/plugins/ebalster/formula/compile.js\");\nvar Compute = require(\"$:/plugins/ebalster/formula/compute.js\");\n\nvar FormulaVarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFormulaVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nFormulaVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\n\tif (this.formulaError) {\n\t\t// Show an error.\n\t\tvar parseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t}, children: [\n\t\t\t{type: \"text\", text: this.formulaError}\n\t\t]}];\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t}\n\telse {\n\t\t// Construct and render the child widgets.\n\t\tthis.makeChildWidgets();\n\t}\n\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nRecompute formulas\n*/\nFormulaVarsWidget.prototype.formula_recompute = function() {\n\t// Parse variables\n\tvar self = this;\n\n\tthis.formatOptions =\n\t{\n\t\tfixed: (this.getAttribute(\"$fixed\") || this.parentWidget.getVariable(\"formulaFixed\")),\n\t\tprecision: (this.getAttribute(\"$precision\") || this.parentWidget.getVariable(\"formulaPrecision\")),\n\t\tnumberFormat: (this.getAttribute(\"$numberFormat\") || this.parentWidget.getVariable(\"formulaNumberFormat\")),\n\t\tdateFormat: (this.getAttribute(\"$dateFormat\") || this.parentWidget.getVariable(\"formulaDateFormat\")),\n\t};\n\n\t// Deprecation\n\tif (this.getAttribute(\"$toFixed\")) {this.formulaError = \"Change '$toFixed' to '$fixed'.\"; return;}\n\tif (this.getAttribute(\"$toPrecision\")) {this.formulaError = \"Change '$toPrecision' to '$precision'.\"; return;}\n\n\tif (!this.currentValues)\n\t{\n\t\t// Initial values\n\t\tthis.currentValues = {};\n\t\tthis.formulaSrc = {};\n\t\tthis.formulaComp = {};\n\t}\n\n\tthis.formulaError = null;\n\n\ttry {\n\t\tif (this.getAttribute(\"$noRefresh\")) throw \"Illegal $noRefresh attribute; use $noRebuild instead.\";\n\n\t\t$tw.utils.each(this.attributes,function(val,key) {\n\t\t\tif(key.charAt(0) !== \"$\") {\n\t\t\t\t// Recompile if necessary\n\t\t\t\tif (self.formulaSrc[key] != val) {\n\t\t\t\t\tself.formulaSrc[key] = val;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tself.formulaComp[key] = Compile.compileFormula(self.formulaSrc[key]);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tself.formulaSrc[key] = null;\n\t\t\t\t\t\tthrow \"Variable \" + key + \": \" + String(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Recompute the formula\n\t\t\t\tif (self.formulaComp[key]) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tself.currentValues[key] = Compute.computeFormula(\n\t\t\t\t\t\t\tself.formulaComp[key], self, self.formatOptions);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (err) {\n\t\t\t\t\t\tthrow \"Variable \" + key + \": \" + String(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Variable \" + key + \": Formula not assigned\";\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tcatch (err) {\n\t\tthis.formulaError = String(err);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nFormulaVarsWidget.prototype.execute = function() {\n\t// Recompute formulas\n\tthis.formula_recompute();\n\n\tif (!this.formulaError) {\n\t\tfor (var key in this.currentValues) {\n\t\t\tthis.setVariable(key, this.currentValues[key]);\n\t\t}\n\t}\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nFormulaVarsWidget.prototype.refresh = function formulaVarsRefresh(changedTiddlers) {\n\tthis.computeAttributes();\n\tvar oldValues = Object.assign({}, this.currentValues || {}), oldError = this.formulaError;\n\tthis.formula_recompute();\n\n\t// Did any computed values change?\n\tvar changedValues = false;\n\tfor (var key in this.currentValues) {\n\t\tif (this.currentValues[key] !== oldValues[key]) {\n\t\t\tthis.setVariable(key, this.currentValues[key]);\n\t\t\tchangedValues = true;\n\t\t}\n\t}\n\n\t// Option to suppress full refreshing\n\tif (this.getAttribute(\"$noRebuild\") === \"true\") changedValues = false;\n\tif (this.formulaError !== oldError) changedValues = true;\n\n\tif(changedValues) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"formula-vars\"] = FormulaVarsWidget;\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/widgets/formula-vars.js", "tags": "", "module-type": "widget", "modified": "20171222071557661", "description": "As the $vars widget, but each attribute is interpreted as a formula.", "created": "20171216003055342" }, "$:/plugins/ebalster/formula/widgets/formula.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar Compile = require(\"$:/plugins/ebalster/formula/compile.js\");\nvar Compute = require(\"$:/plugins/ebalster/formula/compute.js\");\n\nvar FormulaWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFormulaWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFormulaWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.rerender(parent,nextSibling);\n};\n\nFormulaWidget.prototype.rerender = function(parent, nextSibling) {\n\n\tthis.removeChildDomNodes();\n\n\tvar parseTreeNodes;\n\n\tif (this.formulaError) {\n\t\t// Show an error as a tc-error span.\n\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t}, children: [\n\t\t\t{type: \"text\", text: this.formulaError}\n\t\t]}];\n\t}\n\telse {\n\t\t// Parse the value, or, failing this, produce a text node.\n\t\tvar parser = this.wiki.parseText(\n\t\t\tthis.wikifyType, this.currentValue,\n\t\t\t{parseAsInline: this.wikifyMode === \"inline\"});\n\t\tparseTreeNodes = (parser ? parser.tree : [{type: \"text\", text: this.currentValue}]);\n\t}\n\n\t// Construct and render the child widgets.\n\tthis.makeChildWidgets(parseTreeNodes);\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFormulaWidget.prototype.execute = function() {\n\n\tvar oldFormula = this.formula;\n\n\t// Get parameters from our attributes\n\tthis.formula = this.getAttribute(\"formula\");\n\tthis.debug = this.getAttribute(\"debug\");\n\n\tthis.wikifyType = this.getAttribute(\"outputType\");\n\tthis.wikifyMode = this.getAttribute(\"outputMode\",\"inline\");\n\n\tthis.formatOptions =\n\t{\n\t\tfixed: (this.getAttribute(\"fixed\") || this.getVariable(\"formulaFixed\")),\n\t\tprecision: (this.getAttribute(\"precision\") || this.getVariable(\"formulaPrecision\")),\n\t\tnumberFormat: (this.getAttribute(\"numberFormat\") || this.getVariable(\"formulaNumberFormat\")),\n\t\tdateFormat: (this.getAttribute(\"dateFormat\") || this.getVariable(\"formulaDateFormat\")),\n\t};\n\n\t// Deprecation\n\tif (this.getAttribute(\"toFixed\")) {this.formulaError = \"Change 'toFixed' to 'fixed'.\"; return;}\n\tif (this.getAttribute(\"toPrecision\")) {this.formulaError = \"Change 'toPrecision' to 'precision'.\"; return;}\n\n\t// Compile the formula, if it has changed, yielding compiledFormula\n\tif(this.formula !== oldFormula) {\n\t\t// Clear the error flag\n\t\tthis.formulaError = null;\n\t\tthis.compiledFormula = null;\n\t\tif (this.formula) {\n\t\t\ttry {\n\t\t\t\tthis.compiledFormula = Compile.compileFormula(this.formula);\n\t\t\t}\n\t\t\tcatch (err) {\n\t\t\t\tthis.formulaError = String(err);\n\t\t\t\tthis.formula = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compute the formula, yielding currentValue\n\tif(this.compiledFormula) {\n\t\ttry {\n\t\t\tthis.currentValue = Compute.computeFormula(this.compiledFormula, this, this.formatOptions, Boolean(this.debug));\n\t\t}\n\t\tcatch (err) {\n\t\t\tthis.formulaError = String(err);\n\t\t}\n\t}\n\telse {\n\t\tthis.formulaError = \"Error: formula not assigned\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFormulaWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldValue = this.currentValue, oldError = this.formulaError;\n\tthis.execute();\n\tif(this.oldError !== this.formulaError || this.currentValue !== oldValue) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\t// We DON'T call refreshSelf() because it call execute() again\n\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\tthis.rerender(this.parentDomNode,nextSibling);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.formula = FormulaWidget;\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/widgets/formula.js", "tags": "", "module-type": "widget", "modified": "20171212194059701", "description": "Evaluates a formula.", "created": "20171210232543292" }, "$:/plugins/ebalster/formula/wikiparser/attributes/formula.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\nexports.formula = function(source, pos, node) {\n\t// Is it a formula?\n\tvar reFormulaValue = /\\(=(([^=]+|=[^\\)])*)=\\)/g;\n\n\tvar value = $tw.utils.parseTokenRegExp(source,pos,reFormulaValue);\n\tif (!value) return null;\n\n\tnode.type = \"formula\";\n\tnode.formula = value.match[1];\n\tnode.end = value.end;\n\treturn node;\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/wikiparser/attributes/formula.js", "tags": "", "module-type": "attributerule", "modified": "20171225042523039", "description": "Tag attribute rule for formulas. Ex. `(= 2+2 =)`", "created": "20171224060415431" }, "$:/plugins/ebalster/formula/wikiparser/formula.js": { "text": "(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"formula\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\(=/mg;\n\tthis.endMatchRegExp = /=\\)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end marker\n\tthis.endMatchRegExp.lastIndex = this.parser.pos;\n\tvar match = this.endMatchRegExp.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"formula\",\n\t\tattributes: {\n\t\t\tformula: {type: \"string\", value: text},\n\t\t}\n\t}];\n};\n\n})();\n", "bag": "default", "revision": "0", "type": "application/javascript", "title": "$:/plugins/ebalster/formula/wikiparser/formula.js", "tags": "", "module-type": "wikirule", "modified": "20171211181716654", "description": "Wiki text inline rule for formulas. Ex. `((=2+2))`", "created": "20171211033327565" } } }
{ "tiddlers": { "$:/plugins/felixhayashi/topstoryview/config.js": { "text": "/*\\\n\ntitle: $:/plugins/felixhayashi/topstoryview/config.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\n\\*/\n(function(){\"use strict\";exports.config={classNames:{storyRiver:\"tc-story-river\",backDrop:\"story-backdrop\",tiddlerFrame:\"tc-tiddler-frame\",tiddlerTitle:\"tc-title\"},references:{userConfig:\"$:/config/topStoryView\",focussedTiddlerStore:\"$:/temp/focussedTiddler\",refreshTrigger:\"$:/temp/focussedTiddler/refresh\"},checkbackTime:$tw.utils.getAnimationDuration()}})();", "title": "$:/plugins/felixhayashi/topstoryview/config.js", "type": "application/javascript", "module-type": "library" }, "$:/plugins/felixhayashi/topstoryview/layout": { "title": "$:/plugins/felixhayashi/topstoryview/layout", "type": "text/vnd.tiddlywiki", "tags": [ "$:/tags/Stylesheet" ], "text": "html .tc-story-river:after {\n content: \"\";\n display: block; }\n" }, "$:/plugins/felixhayashi/topstoryview/Configuration": { "title": "$:/plugins/felixhayashi/topstoryview/Configuration", "text": "Please see the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Scroll offset:</th>\n <td><$edit-text tiddler=\"$:/config/topStoryView\" field=\"scroll-offset\" tag=\"input\" default=\"150px\" /></td>\n </tr>\n</table>" }, "$:/plugins/felixhayashi/topstoryview/License": { "title": "$:/plugins/felixhayashi/topstoryview/License", "text": "This code is released under the BSD license. For the exact terms visit:\n\nhttps://github.com/felixhayashi/TW5-TopStoryView/blob/master/LICENSE" }, "$:/plugins/felixhayashi/topstoryview/Readme": { "title": "$:/plugins/felixhayashi/topstoryview/Readme", "text": "Please visit the [[GitHub page|https://github.com/felixhayashi/TW5-TopStoryView]] for more information." }, "$:/plugins/felixhayashi/topstoryview/top.js": { "text": "/*\\\ntitle: $:/plugins/felixhayashi/topstoryview/top.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n@preserve\n\n\\*/\n(function(){\"use strict\";var t=require(\"$:/plugins/felixhayashi/topstoryview/config.js\").config;var e=\"cubic-bezier(0.645, 0.045, 0.355, 1)\";var i=function(e){this.listWidget=e;this.pageScroller=new $tw.utils.PageScroller;this.pageScroller.scrollIntoView=this.scrollIntoView;this.pageScroller.storyRiverDomNode=document.getElementsByClassName(t.classNames.storyRiver)[0];var i=$tw.wiki.getTiddler(t.references.userConfig);var o=i?i.fields:{};var r=parseInt(o[\"scroll-offset\"]);this.pageScroller.scrollOffset=isNaN(r)?71:r;this.recalculateBottomSpace()};i.prototype.refreshStart=function(t,e){};i.prototype.refreshEnd=function(t,e){};i.prototype.navigateTo=function(t){var e=this.listWidget.findListItem(0,t.title);if(e===undefined)return;var i=this.listWidget.children[e];var o=i.findFirstDomNode();if(!(o instanceof Element))return;this.pageScroller.scrollIntoView(o)};i.prototype.insert=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element))return;this.startInsertAnimation(e,function(){this.recalculateBottomSpace();this.pageScroller.scrollIntoView(e)}.bind(this))};i.prototype.remove=function(t){if(!t)return;var e=t.findFirstDomNode();if(!(e instanceof Element)){t.removeChildDomNodes();return}var i=this.getLastFrame()===e;this.startRemoveAnimation(t,e,function(){t.removeChildDomNodes();this.recalculateBottomSpace();if(i){this.pageScroller.scrollIntoView(this.getLastFrame())}}.bind(this))};i.prototype.getLastFrame=function(){var t=this.listWidget.children[this.listWidget.children.length-1];return t?t.findFirstDomNode():null};i.prototype.recalculateBottomSpace=function(){var t=this.pageScroller.storyRiverDomNode;if(this.getLastFrame()){var e=this.getLastFrame().getBoundingClientRect();var i=window.innerHeight;if(e.height<i){t.style[\"paddingBottom\"]=i-e.height+\"px\";return}}t.style[\"paddingBottom\"]=\"\"};i.prototype.scrollIntoView=function(t){if(!t)return;var e=$tw.utils.getAnimationDuration();this.cancelScroll();this.startTime=Date.now();var i=$tw.utils.getScrollPosition();var o=t.getBoundingClientRect(),r={left:o.left+i.x,top:o.top+i.y,width:o.width,height:o.height};var n=function(t,e,i,o){if(t<=i){return t}else if(e<o&&i<t+e-o){return t+e-o}else if(i<t){return t}else{return i}},s=n(r.left,r.width,i.x,window.innerWidth),a=r.top-this.scrollOffset;if(s!==i.x||a!==i.y){var l=this,c;c=function(){var t;if(e<=0){t=1}else{t=(Date.now()-l.startTime)/e}if(t>=1){l.cancelScroll();t=1}t=$tw.utils.slowInSlowOut(t);window.scrollTo(i.x+(s-i.x)*t,i.y+(a-i.y)*t);if(t<1){l.idRequestFrame=l.requestAnimationFrame.call(window,c)}};c()}};i.prototype.startInsertAnimation=function(t,i){var o=$tw.utils.getAnimationDuration();var r=window.getComputedStyle(t),n=parseInt(r.marginBottom,10),s=parseInt(r.marginTop,10),a=t.offsetHeight+s;setTimeout(function(){$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:\"\"}]);i()},o);$tw.utils.setStyle(t,[{transition:\"none\"},{marginBottom:-a+\"px\"},{opacity:\"0.0\"}]);$tw.utils.forceLayout(t);$tw.utils.setStyle(t,[{transition:\"opacity \"+o+\"ms \"+e+\", \"+\"margin-bottom \"+o+\"ms \"+e},{marginBottom:n+\"px\"},{opacity:\"1.0\"}])};i.prototype.startRemoveAnimation=function(t,i,o){var r=$tw.utils.getAnimationDuration();var n=i.offsetWidth,s=window.getComputedStyle(i),a=parseInt(s.marginBottom,10),l=parseInt(s.marginTop,10),c=i.offsetHeight+l;setTimeout(o,r);$tw.utils.setStyle(i,[{transition:\"none\"},{transform:\"translateX(0px)\"},{marginBottom:a+\"px\"},{opacity:\"1.0\"}]);$tw.utils.forceLayout(i);$tw.utils.setStyle(i,[{transition:$tw.utils.roundTripPropertyName(\"transform\")+\" \"+r+\"ms \"+e+\", \"+\"opacity \"+r+\"ms \"+e+\", \"+\"margin-bottom \"+r+\"ms \"+e},{transform:\"translateX(-\"+n+\"px)\"},{marginBottom:-c+\"px\"},{opacity:\"0.0\"}])};exports.top=i})();", "title": "$:/plugins/felixhayashi/topstoryview/top.js", "type": "application/javascript", "module-type": "storyview" } } }
{ "tiddlers": { "$:/plugins/gt6796c/mermaid-tw5/example": { "title": "$:/plugins/gt6796c/mermaid-tw5/example", "text": "See full examples from https://knsv.github.io/mermaid\n\nNotation\n\n```\ngraph LR;\n A[a node with text]-->B(a node with rounded corners);\n A--no links---C((a circle));\n B-->D{a diamond};\n C==>|arrow and text|D;\n C-. back to.->A;\n```\nResults\n\n<$mermaid text=\"\ngraph LR;\n A[a node with text]-->B(a node with rounded corners);\n A--no links---C((a circle));\n B-->D{a diamond};\n C==>|arrow and text|D;\n C-. back to.->A;\">\n</$mermaid>\n\nMore advanced usage is possible if you use the mermaid parser rather than the ``<$mermaid>``. Below are two more examples from the [[mermaid.js website|https://knsv.github.io/mermaid/#mermaid]]\n\n* [[Gant Chart |$:/plugins/gt6796c/mermaid-tw5/gant]]\n* [[Sequence Diagram |$:/plugins/gt6796c/mermaid-tw5/seq]]\n" }, "$:/plugins/gt6796c/mermaid-tw5/mermaidAPI.js": { "type": "application/javascript", "title": "$:/plugins/gt6796c/mermaid-tw5/mermaidAPI.js", "module-type": "library", "text": "(function(document) {\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var n;\"undefined\"!=typeof window?n=window:\"undefined\"!=typeof global?n=global:\"undefined\"!=typeof self&&(n=self),n.mermaidAPI=t()}}(function(){var define,module,exports;return function t(n,e,r){function i(u,o){if(!e[u]){if(!n[u]){var s=\"function\"==typeof require&&require;if(!o&&s)return s(u,!0);if(a)return a(u,!0);var c=new Error(\"Cannot find module '\"+u+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var l=e[u]={exports:{}};n[u][0].call(l.exports,function(t){var e=n[u][1][t];return i(e?e:t)},l,l.exports,t,n,e,r)}return e[u].exports}for(var a=\"function\"==typeof require&&require,u=0;u<r.length;u++)i(r[u]);return i}({1:[function(){},{}],2:[function(t,n){!function(){function t(t){return t&&(t.ownerDocument||t.document||t).documentElement}function e(t){return t&&(t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView)}function r(t,n){return n>t?-1:t>n?1:t>=n?0:0/0}function i(t){return null===t?0/0:+t}function a(t){return!isNaN(t)}function u(t){return{left:function(n,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=n.length);i>r;){var a=r+i>>>1;t(n[a],e)<0?r=a+1:i=a}return r},right:function(n,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=n.length);i>r;){var a=r+i>>>1;t(n[a],e)>0?i=a:r=a+1}return r}}}function o(t){return t.length}function s(t){for(var n=1;t*n%1;)n*=10;return n}function c(t,n){for(var e in n)Object.defineProperty(t.prototype,e,{value:n[e],enumerable:!1})}function l(){this._=Object.create(null)}function h(t){return(t+=\"\")===gu||t[0]===yu?yu+t:t}function f(t){return(t+=\"\")[0]===yu?t.slice(1):t}function d(t){return h(t)in this._}function p(t){return(t=h(t))in this._&&delete this._[t]}function g(){var t=[];for(var n in this._)t.push(f(n));return t}function y(){var t=0;for(var n in this._)++t;return t}function m(){for(var t in this._)return!1;return!0}function v(){this._=Object.create(null)}function _(t){return t}function b(t,n,e){return function(){var r=e.apply(n,arguments);return r===n?t:r}}function x(t,n){if(n in t)return n;n=n.charAt(0).toUpperCase()+n.slice(1);for(var e=0,r=mu.length;r>e;++e){var i=mu[e]+n;if(i in t)return i}}function w(){}function A(){}function k(t){function n(){for(var n,r=e,i=-1,a=r.length;++i<a;)(n=r[i].on)&&n.apply(this,arguments);return t}var e=[],r=new l;return n.on=function(n,i){var a,u=r.get(n);return arguments.length<2?u&&u.on:(u&&(u.on=null,e=e.slice(0,a=e.indexOf(u)).concat(e.slice(a+1)),r.remove(n)),i&&e.push(r.set(n,{on:i})),t)},n}function E(){eu.event.preventDefault()}function M(){for(var t,n=eu.event;t=n.sourceEvent;)n=t;return n}function S(t){for(var n=new A,e=0,r=arguments.length;++e<r;)n[arguments[e]]=k(n);return n.of=function(e,r){return function(i){try{var a=i.sourceEvent=eu.event;i.target=t,eu.event=i,n[i.type].apply(e,r)}finally{eu.event=a}}},n}function D(t){return _u(t,Au),t}function C(t){return\"function\"==typeof t?t:function(){return bu(t,this)}}function T(t){return\"function\"==typeof t?t:function(){return xu(t,this)}}function F(t,n){function e(){this.removeAttribute(t)}function r(){this.removeAttributeNS(t.space,t.local)}function i(){this.setAttribute(t,n)}function a(){this.setAttributeNS(t.space,t.local,n)}function u(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}function o(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}return t=eu.ns.qualify(t),null==n?t.local?r:e:\"function\"==typeof n?t.local?o:u:t.local?a:i}function O(t){return t.trim().replace(/\\s+/g,\" \")}function L(t){return new RegExp(\"(?:^|\\\\s+)\"+eu.requote(t)+\"(?:\\\\s+|$)\",\"g\")}function I(t){return(t+\"\").trim().split(/^|\\s+/)}function B(t,n){function e(){for(var e=-1;++e<i;)t[e](this,n)}function r(){for(var e=-1,r=n.apply(this,arguments);++e<i;)t[e](this,r)}t=I(t).map(N);var i=t.length;return\"function\"==typeof n?r:e}function N(t){var n=L(t);return function(e,r){if(i=e.classList)return r?i.add(t):i.remove(t);var i=e.getAttribute(\"class\")||\"\";r?(n.lastIndex=0,n.test(i)||e.setAttribute(\"class\",O(i+\" \"+t))):e.setAttribute(\"class\",O(i.replace(n,\" \")))}}function P(t,n,e){function r(){this.style.removeProperty(t)}function i(){this.style.setProperty(t,n,e)}function a(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}return null==n?r:\"function\"==typeof n?a:i}function R(t,n){function e(){delete this[t]}function r(){this[t]=n}function i(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}return null==n?e:\"function\"==typeof n?i:r}function j(t){function n(){var n=this.ownerDocument,e=this.namespaceURI;return e?n.createElementNS(e,t):n.createElement(t)}function e(){return this.ownerDocument.createElementNS(t.space,t.local)}return\"function\"==typeof t?t:(t=eu.ns.qualify(t)).local?e:n}function Y(){var t=this.parentNode;t&&t.removeChild(this)}function U(t){return{__data__:t}}function $(t){return function(){return wu(this,t)}}function W(t){return arguments.length||(t=r),function(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}}function z(t,n){for(var e=0,r=t.length;r>e;e++)for(var i,a=t[e],u=0,o=a.length;o>u;u++)(i=a[u])&&n(i,u,e);return t}function q(t){return _u(t,Eu),t}function G(t){var n,e;return function(r,i,a){var u,o=t[a].update,s=o.length;for(a!=e&&(e=a,n=0),i>=n&&(n=i+1);!(u=o[n])&&++n<s;);return u}}function H(t,n,e){function r(){var n=this[u];n&&(this.removeEventListener(t,n,n.$),delete this[u])}function i(){var i=s(n,iu(arguments));r.call(this),this.addEventListener(t,this[u]=i,i.$=e),i._=n}function a(){var n,e=new RegExp(\"^__on([^.]+)\"+eu.requote(t)+\"$\");for(var r in this)if(n=r.match(e)){var i=this[r];this.removeEventListener(n[1],i,i.$),delete this[r]}}var u=\"__on\"+t,o=t.indexOf(\".\"),s=V;o>0&&(t=t.slice(0,o));var c=Mu.get(t);return c&&(t=c,s=Z),o?n?i:r:n?w:a}function V(t,n){return function(e){var r=eu.event;eu.event=e,n[0]=this.__data__;try{t.apply(this,n)}finally{eu.event=r}}}function Z(t,n){var e=V(t,n);return function(t){var n=this,r=t.relatedTarget;r&&(r===n||8&r.compareDocumentPosition(n))||e.call(n,t)}}function X(n){var r=\".dragsuppress-\"+ ++Du,i=\"click\"+r,a=eu.select(e(n)).on(\"touchmove\"+r,E).on(\"dragstart\"+r,E).on(\"selectstart\"+r,E);if(null==Su&&(Su=\"onselectstart\"in n?!1:x(n.style,\"userSelect\")),Su){var u=t(n).style,o=u[Su];u[Su]=\"none\"}return function(t){if(a.on(r,null),Su&&(u[Su]=o),t){var n=function(){a.on(i,null)};a.on(i,function(){E(),n()},!0),setTimeout(n,0)}}}function K(t,n){n.changedTouches&&(n=n.changedTouches[0]);var r=t.ownerSVGElement||t;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Cu){var a=e(t);if(a.scrollX||a.scrollY){r=eu.select(\"body\").append(\"svg\").style({position:\"absolute\",top:0,left:0,margin:0,padding:0,border:\"none\"},\"important\");var u=r[0][0].getScreenCTM();Cu=!(u.f||u.e),r.remove()}}return Cu?(i.x=n.pageX,i.y=n.pageY):(i.x=n.clientX,i.y=n.clientY),i=i.matrixTransform(t.getScreenCTM().inverse()),[i.x,i.y]}var o=t.getBoundingClientRect();return[n.clientX-o.left-t.clientLeft,n.clientY-o.top-t.clientTop]}function Q(){return eu.event.changedTouches[0].identifier}function J(t){return t>0?1:0>t?-1:0}function tt(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function nt(t){return t>1?0:-1>t?Ou:Math.acos(t)}function et(t){return t>1?Bu:-1>t?-Bu:Math.asin(t)}function rt(t){return((t=Math.exp(t))-1/t)/2}function it(t){return((t=Math.exp(t))+1/t)/2}function at(t){return((t=Math.exp(2*t))-1)/(t+1)}function ut(t){return(t=Math.sin(t/2))*t}function ot(){}function st(t,n,e){return this instanceof st?(this.h=+t,this.s=+n,void(this.l=+e)):arguments.length<2?t instanceof st?new st(t.h,t.s,t.l):wt(\"\"+t,At,st):new st(t,n,e)}function ct(t,n,e){function r(t){return t>360?t-=360:0>t&&(t+=360),60>t?a+(u-a)*t/60:180>t?u:240>t?a+(u-a)*(240-t)/60:a}function i(t){return Math.round(255*r(t))}var a,u;return t=isNaN(t)?0:(t%=360)<0?t+360:t,n=isNaN(n)?0:0>n?0:n>1?1:n,e=0>e?0:e>1?1:e,u=.5>=e?e*(1+n):e+n-e*n,a=2*e-u,new vt(i(t+120),i(t),i(t-120))}function lt(t,n,e){return this instanceof lt?(this.h=+t,this.c=+n,void(this.l=+e)):arguments.length<2?t instanceof lt?new lt(t.h,t.c,t.l):t instanceof ft?pt(t.l,t.a,t.b):pt((t=kt((t=eu.rgb(t)).r,t.g,t.b)).l,t.a,t.b):new lt(t,n,e)}function ht(t,n,e){return isNaN(t)&&(t=0),isNaN(n)&&(n=0),new ft(e,Math.cos(t*=Nu)*n,Math.sin(t)*n)}function ft(t,n,e){return this instanceof ft?(this.l=+t,this.a=+n,void(this.b=+e)):arguments.length<2?t instanceof ft?new ft(t.l,t.a,t.b):t instanceof lt?ht(t.h,t.c,t.l):kt((t=vt(t)).r,t.g,t.b):new ft(t,n,e)}function dt(t,n,e){var r=(t+16)/116,i=r+n/500,a=r-e/200;return i=gt(i)*Hu,r=gt(r)*Vu,a=gt(a)*Zu,new vt(mt(3.2404542*i-1.5371385*r-.4985314*a),mt(-.969266*i+1.8760108*r+.041556*a),mt(.0556434*i-.2040259*r+1.0572252*a))}function pt(t,n,e){return t>0?new lt(Math.atan2(e,n)*Pu,Math.sqrt(n*n+e*e),t):new lt(0/0,0/0,t)}function gt(t){return t>.206893034?t*t*t:(t-4/29)/7.787037}function yt(t){return t>.008856?Math.pow(t,1/3):7.787037*t+4/29}function mt(t){return Math.round(255*(.00304>=t?12.92*t:1.055*Math.pow(t,1/2.4)-.055))}function vt(t,n,e){return this instanceof vt?(this.r=~~t,this.g=~~n,void(this.b=~~e)):arguments.length<2?t instanceof vt?new vt(t.r,t.g,t.b):wt(\"\"+t,vt,ct):new vt(t,n,e)}function _t(t){return new vt(t>>16,t>>8&255,255&t)}function bt(t){return _t(t)+\"\"}function xt(t){return 16>t?\"0\"+Math.max(0,t).toString(16):Math.min(255,t).toString(16)}function wt(t,n,e){t=t.toLowerCase();var r,i,a,u=0,o=0,s=0;if(r=/([a-z]+)\\((.*)\\)/.exec(t))switch(i=r[2].split(\",\"),r[1]){case\"hsl\":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case\"rgb\":return n(Mt(i[0]),Mt(i[1]),Mt(i[2]))}return(a=Qu.get(t))?n(a.r,a.g,a.b):(null==t||\"#\"!==t.charAt(0)||isNaN(a=parseInt(t.slice(1),16))||(4===t.length?(u=(3840&a)>>4,u=u>>4|u,o=240&a,o=o>>4|o,s=15&a,s=s<<4|s):7===t.length&&(u=(16711680&a)>>16,o=(65280&a)>>8,s=255&a)),n(u,o,s))}function At(t,n,e){var r,i,a=Math.min(t/=255,n/=255,e/=255),u=Math.max(t,n,e),o=u-a,s=(u+a)/2;return o?(i=.5>s?o/(u+a):o/(2-u-a),r=t==u?(n-e)/o+(e>n?6:0):n==u?(e-t)/o+2:(t-n)/o+4,r*=60):(r=0/0,i=s>0&&1>s?0:r),new st(r,i,s)}function kt(t,n,e){t=Et(t),n=Et(n),e=Et(e);var r=yt((.4124564*t+.3575761*n+.1804375*e)/Hu),i=yt((.2126729*t+.7151522*n+.072175*e)/Vu),a=yt((.0193339*t+.119192*n+.9503041*e)/Zu);return ft(116*i-16,500*(r-i),200*(i-a))}function Et(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Mt(t){var n=parseFloat(t);return\"%\"===t.charAt(t.length-1)?Math.round(2.55*n):n}function St(t){return\"function\"==typeof t?t:function(){return t}}function Dt(t){return function(n,e,r){return 2===arguments.length&&\"function\"==typeof e&&(r=e,e=null),Ct(n,e,t,r)}}function Ct(t,n,e,r){function i(){var t,n=s.status;if(!n&&Ft(s)||n>=200&&300>n||304===n){try{t=e.call(a,s)}catch(r){return void u.error.call(a,r)}u.load.call(a,t)}else u.error.call(a,s)}var a={},u=eu.dispatch(\"beforesend\",\"progress\",\"load\",\"error\"),o={},s=new XMLHttpRequest,c=null;return!this.XDomainRequest||\"withCredentials\"in s||!/^(http(s)?:)?\\/\\//.test(t)||(s=new XDomainRequest),\"onload\"in s?s.onload=s.onerror=i:s.onreadystatechange=function(){s.readyState>3&&i()},s.onprogress=function(t){var n=eu.event;eu.event=t;try{u.progress.call(a,s)}finally{eu.event=n}},a.header=function(t,n){return t=(t+\"\").toLowerCase(),arguments.length<2?o[t]:(null==n?delete o[t]:o[t]=n+\"\",a)},a.mimeType=function(t){return arguments.length?(n=null==t?null:t+\"\",a):n},a.responseType=function(t){return arguments.length?(c=t,a):c},a.response=function(t){return e=t,a},[\"get\",\"post\"].forEach(function(t){a[t]=function(){return a.send.apply(a,[t].concat(iu(arguments)))}}),a.send=function(e,r,i){if(2===arguments.length&&\"function\"==typeof r&&(i=r,r=null),s.open(e,t,!0),null==n||\"accept\"in o||(o.accept=n+\",*/*\"),s.setRequestHeader)for(var l in o)s.setRequestHeader(l,o[l]);return null!=n&&s.overrideMimeType&&s.overrideMimeType(n),null!=c&&(s.responseType=c),null!=i&&a.on(\"error\",i).on(\"load\",function(t){i(null,t)}),u.beforesend.call(a,s),s.send(null==r?null:r),a},a.abort=function(){return s.abort(),a},eu.rebind(a,u,\"on\"),null==r?a:a.get(Tt(r))}function Tt(t){return 1===t.length?function(n,e){t(null==n?e:null)}:t}function Ft(t){var n=t.responseType;return n&&\"text\"!==n?t.response:t.responseText}function Ot(){var t=Lt(),n=It()-t;n>24?(isFinite(n)&&(clearTimeout(eo),eo=setTimeout(Ot,n)),no=0):(no=1,io(Ot))}function Lt(){var t=Date.now();for(ro=Ju;ro;)t>=ro.t&&(ro.f=ro.c(t-ro.t)),ro=ro.n;return t}function It(){for(var t,n=Ju,e=1/0;n;)n.f?n=t?t.n=n.n:Ju=n.n:(n.t<e&&(e=n.t),n=(t=n).n);return to=t,e}function Bt(t,n){return n-(t?Math.ceil(Math.log(t)/Math.LN10):1)}function Nt(t,n){var e=Math.pow(10,3*pu(8-n));return{scale:n>8?function(t){return t/e}:function(t){return t*e},symbol:t}}function Pt(t){var n=t.decimal,e=t.thousands,r=t.grouping,i=t.currency,a=r&&e?function(t,n){for(var i=t.length,a=[],u=0,o=r[0],s=0;i>0&&o>0&&(s+o+1>n&&(o=Math.max(1,n-s)),a.push(t.substring(i-=o,i+o)),!((s+=o+1)>n));)o=r[u=(u+1)%r.length];return a.reverse().join(e)}:_;return function(t){var e=uo.exec(t),r=e[1]||\" \",u=e[2]||\">\",o=e[3]||\"-\",s=e[4]||\"\",c=e[5],l=+e[6],h=e[7],f=e[8],d=e[9],p=1,g=\"\",y=\"\",m=!1,v=!0;switch(f&&(f=+f.substring(1)),(c||\"0\"===r&&\"=\"===u)&&(c=r=\"0\",u=\"=\"),d){case\"n\":h=!0,d=\"g\";break;case\"%\":p=100,y=\"%\",d=\"f\";break;case\"p\":p=100,y=\"%\",d=\"r\";break;case\"b\":case\"o\":case\"x\":case\"X\":\"#\"===s&&(g=\"0\"+d.toLowerCase());case\"c\":v=!1;case\"d\":m=!0,f=0;break;case\"s\":p=-1,d=\"r\"}\"$\"===s&&(g=i[0],y=i[1]),\"r\"!=d||f||(d=\"g\"),null!=f&&(\"g\"==d?f=Math.max(1,Math.min(21,f)):(\"e\"==d||\"f\"==d)&&(f=Math.max(0,Math.min(20,f)))),d=oo.get(d)||Rt;var _=c&&h;return function(t){var e=y;if(m&&t%1)return\"\";var i=0>t||0===t&&0>1/t?(t=-t,\"-\"):\"-\"===o?\"\":o;if(0>p){var s=eu.formatPrefix(t,f);t=s.scale(t),e=s.symbol+y}else t*=p;t=d(t,f);var b,x,w=t.lastIndexOf(\".\");if(0>w){var A=v?t.lastIndexOf(\"e\"):-1;0>A?(b=t,x=\"\"):(b=t.substring(0,A),x=t.substring(A))}else b=t.substring(0,w),x=n+t.substring(w+1);!c&&h&&(b=a(b,1/0));var k=g.length+b.length+x.length+(_?0:i.length),E=l>k?new Array(k=l-k+1).join(r):\"\";return _&&(b=a(E+b,E.length?l-x.length:1/0)),i+=g,t=b+x,(\"<\"===u?i+t+E:\">\"===u?E+i+t:\"^\"===u?E.substring(0,k>>=1)+i+t+E.substring(k):i+(_?t:E+t))+e}}}function Rt(t){return t+\"\"}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Yt(t,n,e){function r(n){var e=t(n),r=a(e,1);return r-n>n-e?e:r}function i(e){return n(e=t(new co(e-1)),1),e}function a(t,e){return n(t=new co(+t),e),t}function u(t,r,a){var u=i(t),o=[];if(a>1)for(;r>u;)e(u)%a||o.push(new Date(+u)),n(u,1);else for(;r>u;)o.push(new Date(+u)),n(u,1);return o}function o(t,n,e){try{co=jt;var r=new jt;return r._=t,u(r,n,e)}finally{co=Date}}t.floor=t,t.round=r,t.ceil=i,t.offset=a,t.range=u;var s=t.utc=Ut(t);return s.floor=s,s.round=Ut(r),s.ceil=Ut(i),s.offset=Ut(a),s.range=o,t}function Ut(t){return function(n,e){try{co=jt;var r=new jt;return r._=n,t(r,e)._}finally{co=Date}}}function $t(t){function n(t){function n(n){for(var e,i,a,u=[],o=-1,s=0;++o<r;)37===t.charCodeAt(o)&&(u.push(t.slice(s,o)),null!=(i=ho[e=t.charAt(++o)])&&(e=t.charAt(++o)),(a=D[e])&&(e=a(n,null==i?\"e\"===e?\" \":\"0\":i)),u.push(e),s=o+1);return u.push(t.slice(s,o)),u.join(\"\")}var r=t.length;return n.parse=function(n){var r={y:1900,m:0,d:1,H:0,M:0,S:0,L:0,Z:null},i=e(r,t,n,0);if(i!=n.length)return null;\"p\"in r&&(r.H=r.H%12+12*r.p);var a=null!=r.Z&&co!==jt,u=new(a?jt:co);return\"j\"in r?u.setFullYear(r.y,0,r.j):\"w\"in r&&(\"W\"in r||\"U\"in r)?(u.setFullYear(r.y,0,1),u.setFullYear(r.y,0,\"W\"in r?(r.w+6)%7+7*r.W-(u.getDay()+5)%7:r.w+7*r.U-(u.getDay()+6)%7)):u.setFullYear(r.y,r.m,r.d),u.setHours(r.H+(r.Z/100|0),r.M+r.Z%100,r.S,r.L),a?u._:u},n.toString=function(){return t},n}function e(t,n,e,r){for(var i,a,u,o=0,s=n.length,c=e.length;s>o;){if(r>=c)return-1;if(i=n.charCodeAt(o++),37===i){if(u=n.charAt(o++),a=C[u in ho?n.charAt(o++):u],!a||(r=a(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(t,n,e){w.lastIndex=0;var r=w.exec(n.slice(e));return r?(t.w=A.get(r[0].toLowerCase()),e+r[0].length):-1}function i(t,n,e){b.lastIndex=0;var r=b.exec(n.slice(e));return r?(t.w=x.get(r[0].toLowerCase()),e+r[0].length):-1}function a(t,n,e){M.lastIndex=0;var r=M.exec(n.slice(e));return r?(t.m=S.get(r[0].toLowerCase()),e+r[0].length):-1}function u(t,n,e){k.lastIndex=0;var r=k.exec(n.slice(e));return r?(t.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(t,n,r){return e(t,D.c.toString(),n,r)}function s(t,n,r){return e(t,D.x.toString(),n,r)}function c(t,n,r){return e(t,D.X.toString(),n,r)}function l(t,n,e){var r=_.get(n.slice(e,e+=2).toLowerCase());return null==r?-1:(t.p=r,e)}var h=t.dateTime,f=t.date,d=t.time,p=t.periods,g=t.days,y=t.shortDays,m=t.months,v=t.shortMonths;n.utc=function(t){function e(t){try{co=jt;var n=new co;return n._=t,r(n)}finally{co=Date}}var r=n(t);return e.parse=function(t){try{co=jt;var n=r.parse(t);return n&&n._}finally{co=Date}},e.toString=r.toString,e},n.multi=n.utc.multi=cn;var _=eu.map(),b=zt(g),x=qt(g),w=zt(y),A=qt(y),k=zt(m),E=qt(m),M=zt(v),S=qt(v);p.forEach(function(t,n){_.set(t.toLowerCase(),n)});var D={a:function(t){return y[t.getDay()]},A:function(t){return g[t.getDay()]},b:function(t){return v[t.getMonth()]},B:function(t){return m[t.getMonth()]},c:n(h),d:function(t,n){return Wt(t.getDate(),n,2)},e:function(t,n){return Wt(t.getDate(),n,2)},H:function(t,n){return Wt(t.getHours(),n,2)},I:function(t,n){return Wt(t.getHours()%12||12,n,2)},j:function(t,n){return Wt(1+so.dayOfYear(t),n,3)},L:function(t,n){return Wt(t.getMilliseconds(),n,3)},m:function(t,n){return Wt(t.getMonth()+1,n,2)},M:function(t,n){return Wt(t.getMinutes(),n,2)},p:function(t){return p[+(t.getHours()>=12)]},S:function(t,n){return Wt(t.getSeconds(),n,2)},U:function(t,n){return Wt(so.sundayOfYear(t),n,2)},w:function(t){return t.getDay()},W:function(t,n){return Wt(so.mondayOfYear(t),n,2)},x:n(f),X:n(d),y:function(t,n){return Wt(t.getFullYear()%100,n,2)},Y:function(t,n){return Wt(t.getFullYear()%1e4,n,4)},Z:on,\"%\":function(){return\"%\"}},C={a:r,A:i,b:a,B:u,c:o,d:tn,e:tn,H:en,I:en,j:nn,L:un,m:Jt,M:rn,p:l,S:an,U:Ht,w:Gt,W:Vt,x:s,X:c,y:Xt,Y:Zt,Z:Kt,\"%\":sn};return n}function Wt(t,n,e){var r=0>t?\"-\":\"\",i=(r?-t:t)+\"\",a=i.length;return r+(e>a?new Array(e-a+1).join(n)+i:i)}function zt(t){return new RegExp(\"^(?:\"+t.map(eu.requote).join(\"|\")+\")\",\"i\")}function qt(t){for(var n=new l,e=-1,r=t.length;++e<r;)n.set(t[e].toLowerCase(),e);return n}function Gt(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Ht(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e));return r?(t.U=+r[0],e+r[0].length):-1}function Vt(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e));return r?(t.W=+r[0],e+r[0].length):-1}function Zt(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function Xt(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+2));return r?(t.y=Qt(+r[0]),e+r[0].length):-1}function Kt(t,n,e){return/^[+-]\\d{4}$/.test(n=n.slice(e,e+5))?(t.Z=-n,e+5):-1}function Qt(t){return t+(t>68?1900:2e3)}function Jt(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function tn(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function nn(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+3));return r?(t.j=+r[0],e+r[0].length):-1}function en(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function rn(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function an(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function un(t,n,e){fo.lastIndex=0;var r=fo.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function on(t){var n=t.getTimezoneOffset(),e=n>0?\"-\":\"+\",r=pu(n)/60|0,i=pu(n)%60;return e+Wt(r,\"0\",2)+Wt(i,\"0\",2)}function sn(t,n,e){po.lastIndex=0;var r=po.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function cn(t){for(var n=t.length,e=-1;++e<n;)t[e][0]=this(t[e][0]);return function(n){for(var e=0,r=t[e];!r[1](n);)r=t[++e];return r[0](n)}}function ln(){}function hn(t,n,e){var r=e.s=t+n,i=r-t,a=r-i;e.t=t-a+(n-i)}function fn(t,n){t&&vo.hasOwnProperty(t.type)&&vo[t.type](t,n)}function dn(t,n,e){var r,i=-1,a=t.length-e;for(n.lineStart();++i<a;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function pn(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)dn(t[e],n,1);n.polygonEnd()}function gn(){function t(t,n){t*=Nu,n=n*Nu/2+Ou/4;var e=t-r,u=e>=0?1:-1,o=u*e,s=Math.cos(n),c=Math.sin(n),l=a*c,h=i*s+l*Math.cos(o),f=l*u*Math.sin(o);bo.add(Math.atan2(f,h)),r=t,i=s,a=c}var n,e,r,i,a;xo.point=function(u,o){xo.point=t,r=(n=u)*Nu,i=Math.cos(o=(e=o)*Nu/2+Ou/4),a=Math.sin(o)},xo.lineEnd=function(){t(n,e)}}function yn(t){var n=t[0],e=t[1],r=Math.cos(e);return[r*Math.cos(n),r*Math.sin(n),Math.sin(e)]}function mn(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function vn(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function _n(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function bn(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function xn(t){var n=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function wn(t){return[Math.atan2(t[1],t[0]),et(t[2])]}function An(t,n){return pu(t[0]-n[0])<Tu&&pu(t[1]-n[1])<Tu}function kn(t,n){t*=Nu;var e=Math.cos(n*=Nu);En(e*Math.cos(t),e*Math.sin(t),Math.sin(n))}function En(t,n,e){++wo,ko+=(t-ko)/wo,Eo+=(n-Eo)/wo,Mo+=(e-Mo)/wo}function Mn(){function t(t,i){t*=Nu;var a=Math.cos(i*=Nu),u=a*Math.cos(t),o=a*Math.sin(t),s=Math.sin(i),c=Math.atan2(Math.sqrt((c=e*s-r*o)*c+(c=r*u-n*s)*c+(c=n*o-e*u)*c),n*u+e*o+r*s);Ao+=c,So+=c*(n+(n=u)),Do+=c*(e+(e=o)),Co+=c*(r+(r=s)),En(n,e,r)}var n,e,r;Lo.point=function(i,a){i*=Nu;var u=Math.cos(a*=Nu);n=u*Math.cos(i),e=u*Math.sin(i),r=Math.sin(a),Lo.point=t,En(n,e,r)}}function Sn(){Lo.point=kn}function Dn(){function t(t,n){t*=Nu;var e=Math.cos(n*=Nu),u=e*Math.cos(t),o=e*Math.sin(t),s=Math.sin(n),c=i*s-a*o,l=a*u-r*s,h=r*o-i*u,f=Math.sqrt(c*c+l*l+h*h),d=r*u+i*o+a*s,p=f&&-nt(d)/f,g=Math.atan2(f,d);To+=p*c,Fo+=p*l,Oo+=p*h,Ao+=g,So+=g*(r+(r=u)),Do+=g*(i+(i=o)),Co+=g*(a+(a=s)),En(r,i,a)}var n,e,r,i,a;Lo.point=function(u,o){n=u,e=o,Lo.point=t,u*=Nu;var s=Math.cos(o*=Nu);r=s*Math.cos(u),i=s*Math.sin(u),a=Math.sin(o),En(r,i,a)},Lo.lineEnd=function(){t(n,e),Lo.lineEnd=Sn,Lo.point=kn}}function Cn(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return e=n.invert(e,r),e&&t.invert(e[0],e[1])}),e}function Tn(){return!0}function Fn(t,n,e,r,i){var a=[],u=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e=t[0],r=t[n];if(An(e,r)){i.lineStart();for(var o=0;n>o;++o)i.point((e=t[o])[0],e[1]);return void i.lineEnd()}var s=new Ln(e,t,null,!0),c=new Ln(e,null,s,!1);s.o=c,a.push(s),u.push(c),s=new Ln(r,t,null,!1),c=new Ln(r,null,s,!0),s.o=c,a.push(s),u.push(c)}}),u.sort(n),On(a),On(u),a.length){for(var o=0,s=e,c=u.length;c>o;++o)u[o].e=s=!s;for(var l,h,f=a[0];;){for(var d=f,p=!0;d.v;)if((d=d.n)===f)return;l=d.z,i.lineStart();do{if(d.v=d.o.v=!0,d.e){if(p)for(var o=0,c=l.length;c>o;++o)i.point((h=l[o])[0],h[1]);else r(d.x,d.n.x,1,i);d=d.n}else{if(p){l=d.p.z;for(var o=l.length-1;o>=0;--o)i.point((h=l[o])[0],h[1])}else r(d.x,d.p.x,-1,i);d=d.p}d=d.o,l=d.z,p=!p}while(!d.v);i.lineEnd()}}}function On(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function Ln(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function In(t,n,e,r){return function(i,a){function u(n,e){var r=i(n,e);t(n=r[0],e=r[1])&&a.point(n,e)}function o(t,n){var e=i(t,n);y.point(e[0],e[1])}function s(){v.point=o,y.lineStart()}function c(){v.point=u,y.lineEnd()}function l(t,n){g.push([t,n]);var e=i(t,n);b.point(e[0],e[1])}function h(){b.lineStart(),g=[]}function f(){l(g[0][0],g[0][1]),b.lineEnd();var t,n=b.clean(),e=_.buffer(),r=e.length;if(g.pop(),p.push(g),g=null,r)if(1&n){t=e[0];var i,r=t.length-1,u=-1;if(r>0){for(x||(a.polygonStart(),x=!0),a.lineStart();++u<r;)a.point((i=t[u])[0],i[1]);a.lineEnd()}}else r>1&&2&n&&e.push(e.pop().concat(e.shift())),d.push(e.filter(Bn))}var d,p,g,y=n(a),m=i.invert(r[0],r[1]),v={point:u,lineStart:s,lineEnd:c,polygonStart:function(){v.point=l,v.lineStart=h,v.lineEnd=f,d=[],p=[]},polygonEnd:function(){v.point=u,v.lineStart=s,v.lineEnd=c,d=eu.merge(d);var t=Un(m,p);d.length?(x||(a.polygonStart(),x=!0),Fn(d,Pn,t,e,a)):t&&(x||(a.polygonStart(),x=!0),a.lineStart(),e(null,null,1,a),a.lineEnd()),x&&(a.polygonEnd(),x=!1),d=p=null},sphere:function(){a.polygonStart(),a.lineStart(),e(null,null,1,a),a.lineEnd(),a.polygonEnd()}},_=Nn(),b=n(_),x=!1;return v}}function Bn(t){return t.length>1}function Nn(){var t,n=[];return{lineStart:function(){n.push(t=[])},point:function(n,e){t.push([n,e])},lineEnd:w,buffer:function(){var e=n;return n=[],t=null,e},rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))}}}function Pn(t,n){return((t=t.x)[0]<0?t[1]-Bu-Tu:Bu-t[1])-((n=n.x)[0]<0?n[1]-Bu-Tu:Bu-n[1])}function Rn(t){var n,e=0/0,r=0/0,i=0/0;return{lineStart:function(){t.lineStart(),n=1},point:function(a,u){var o=a>0?Ou:-Ou,s=pu(a-e);pu(s-Ou)<Tu?(t.point(e,r=(r+u)/2>0?Bu:-Bu),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(o,r),t.point(a,r),n=0):i!==o&&s>=Ou&&(pu(e-i)<Tu&&(e-=i*Tu),pu(a-o)<Tu&&(a-=o*Tu),r=jn(e,r,a,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(o,r),n=0),t.point(e=a,r=u),i=o},lineEnd:function(){t.lineEnd(),e=r=0/0},clean:function(){return 2-n}}}function jn(t,n,e,r){var i,a,u=Math.sin(t-e);return pu(u)>Tu?Math.atan((Math.sin(n)*(a=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(n))*Math.sin(t))/(i*a*u)):(n+r)/2}function Yn(t,n,e,r){var i;if(null==t)i=e*Bu,r.point(-Ou,i),r.point(0,i),r.point(Ou,i),r.point(Ou,0),r.point(Ou,-i),r.point(0,-i),r.point(-Ou,-i),r.point(-Ou,0),r.point(-Ou,i);else if(pu(t[0]-n[0])>Tu){var a=t[0]<n[0]?Ou:-Ou;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])}function Un(t,n){var e=t[0],r=t[1],i=[Math.sin(e),-Math.cos(e),0],a=0,u=0;bo.reset();for(var o=0,s=n.length;s>o;++o){var c=n[o],l=c.length;if(l)for(var h=c[0],f=h[0],d=h[1]/2+Ou/4,p=Math.sin(d),g=Math.cos(d),y=1;;){y===l&&(y=0),t=c[y];var m=t[0],v=t[1]/2+Ou/4,_=Math.sin(v),b=Math.cos(v),x=m-f,w=x>=0?1:-1,A=w*x,k=A>Ou,E=p*_;if(bo.add(Math.atan2(E*w*Math.sin(A),g*b+E*Math.cos(A))),a+=k?x+w*Lu:x,k^f>=e^m>=e){var M=vn(yn(h),yn(t));xn(M);var S=vn(i,M);xn(S);var D=(k^x>=0?-1:1)*et(S[2]);(r>D||r===D&&(M[0]||M[1]))&&(u+=k^x>=0?1:-1)}if(!y++)break;f=m,p=_,g=b,h=t}}return(-Tu>a||Tu>a&&0>bo)^1&u}function $n(t){function n(t,n){return Math.cos(t)*Math.cos(n)>a}function e(t){var e,a,s,c,l;return{lineStart:function(){c=s=!1,l=1},point:function(h,f){var d,p=[h,f],g=n(h,f),y=u?g?0:i(h,f):g?i(h+(0>h?Ou:-Ou),f):0;if(!e&&(c=s=g)&&t.lineStart(),g!==s&&(d=r(e,p),(An(e,d)||An(p,d))&&(p[0]+=Tu,p[1]+=Tu,g=n(p[0],p[1]))),g!==s)l=0,g?(t.lineStart(),d=r(p,e),t.point(d[0],d[1])):(d=r(e,p),t.point(d[0],d[1]),t.lineEnd()),e=d;else if(o&&e&&u^g){var m;y&a||!(m=r(p,e,!0))||(l=0,u?(t.lineStart(),t.point(m[0][0],m[0][1]),t.point(m[1][0],m[1][1]),t.lineEnd()):(t.point(m[1][0],m[1][1]),t.lineEnd(),t.lineStart(),t.point(m[0][0],m[0][1])))}!g||e&&An(e,p)||t.point(p[0],p[1]),e=p,s=g,a=y},lineEnd:function(){s&&t.lineEnd(),e=null},clean:function(){return l|(c&&s)<<1}}}function r(t,n,e){var r=yn(t),i=yn(n),u=[1,0,0],o=vn(r,i),s=mn(o,o),c=o[0],l=s-c*c;if(!l)return!e&&t;var h=a*s/l,f=-a*c/l,d=vn(u,o),p=bn(u,h),g=bn(o,f);_n(p,g);var y=d,m=mn(p,y),v=mn(y,y),_=m*m-v*(mn(p,p)-1);if(!(0>_)){var b=Math.sqrt(_),x=bn(y,(-m-b)/v);if(_n(x,p),x=wn(x),!e)return x;var w,A=t[0],k=n[0],E=t[1],M=n[1];A>k&&(w=A,A=k,k=w);var S=k-A,D=pu(S-Ou)<Tu,C=D||Tu>S;if(!D&&E>M&&(w=E,E=M,M=w),C?D?E+M>0^x[1]<(pu(x[0]-A)<Tu?E:M):E<=x[1]&&x[1]<=M:S>Ou^(A<=x[0]&&x[0]<=k)){var T=bn(y,(-m+b)/v);return _n(T,p),[x,wn(T)]}}}function i(n,e){var r=u?t:Ou-t,i=0;return-r>n?i|=1:n>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var a=Math.cos(t),u=a>0,o=pu(a)>Tu,s=ge(t,6*Nu);return In(n,e,s,u?[0,-t]:[-Ou,t-Ou])}function Wn(t,n,e,r){return function(i){var a,u=i.a,o=i.b,s=u.x,c=u.y,l=o.x,h=o.y,f=0,d=1,p=l-s,g=h-c;if(a=t-s,p||!(a>0)){if(a/=p,0>p){if(f>a)return;d>a&&(d=a)}else if(p>0){if(a>d)return;a>f&&(f=a)}if(a=e-s,p||!(0>a)){if(a/=p,0>p){if(a>d)return;a>f&&(f=a)}else if(p>0){if(f>a)return;d>a&&(d=a)}if(a=n-c,g||!(a>0)){if(a/=g,0>g){if(f>a)return;d>a&&(d=a)}else if(g>0){if(a>d)return;a>f&&(f=a)}if(a=r-c,g||!(0>a)){if(a/=g,0>g){if(a>d)return;a>f&&(f=a)}else if(g>0){if(f>a)return;d>a&&(d=a)}return f>0&&(i.a={x:s+f*p,y:c+f*g}),1>d&&(i.b={x:s+d*p,y:c+d*g}),i}}}}}}function zn(t,n,e,r){function i(r,i){return pu(r[0]-t)<Tu?i>0?0:3:pu(r[0]-e)<Tu?i>0?2:1:pu(r[1]-n)<Tu?i>0?1:0:i>0?3:2}function a(t,n){return u(t.x,n.x)}function u(t,n){var e=i(t,1),r=i(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(o){function s(t){for(var n=0,e=y.length,r=t[1],i=0;e>i;++i)for(var a,u=1,o=y[i],s=o.length,c=o[0];s>u;++u)a=o[u],c[1]<=r?a[1]>r&&tt(c,a,t)>0&&++n:a[1]<=r&&tt(c,a,t)<0&&--n,c=a;return 0!==n}function c(a,o,s,c){var l=0,h=0;if(null==a||(l=i(a,s))!==(h=i(o,s))||u(a,o)<0^s>0){do c.point(0===l||3===l?t:e,l>1?r:n);while((l=(l+s+4)%4)!==h)}else c.point(o[0],o[1])}function l(i,a){return i>=t&&e>=i&&a>=n&&r>=a}function h(t,n){l(t,n)&&o.point(t,n)}function f(){C.point=p,y&&y.push(m=[]),k=!0,A=!1,x=w=0/0}function d(){g&&(p(v,_),b&&A&&S.rejoin(),g.push(S.buffer())),C.point=h,A&&o.lineEnd()}function p(t,n){t=Math.max(-Bo,Math.min(Bo,t)),n=Math.max(-Bo,Math.min(Bo,n));var e=l(t,n);if(y&&m.push([t,n]),k)v=t,_=n,b=e,k=!1,e&&(o.lineStart(),o.point(t,n));else if(e&&A)o.point(t,n);else{var r={a:{x:x,y:w},b:{x:t,y:n}};D(r)?(A||(o.lineStart(),o.point(r.a.x,r.a.y)),o.point(r.b.x,r.b.y),e||o.lineEnd(),E=!1):e&&(o.lineStart(),o.point(t,n),E=!1)}x=t,w=n,A=e}var g,y,m,v,_,b,x,w,A,k,E,M=o,S=Nn(),D=Wn(t,n,e,r),C={point:h,lineStart:f,lineEnd:d,polygonStart:function(){o=S,g=[],y=[],E=!0},polygonEnd:function(){o=M,g=eu.merge(g);var n=s([t,r]),e=E&&n,i=g.length;(e||i)&&(o.polygonStart(),e&&(o.lineStart(),c(null,null,1,o),o.lineEnd()),i&&Fn(g,a,n,c,o),o.polygonEnd()),g=y=m=null}};return C}}function qn(t){var n=0,e=Ou/3,r=oe(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*Ou/180,e=t[1]*Ou/180):[n/Ou*180,e/Ou*180]},i}function Gn(t,n){function e(t,n){var e=Math.sqrt(a-2*i*Math.sin(n))/i;return[e*Math.sin(t*=i),u-e*Math.cos(t)]}var r=Math.sin(t),i=(r+Math.sin(n))/2,a=1+r*(2*i-r),u=Math.sqrt(a)/i;return e.invert=function(t,n){var e=u-n;return[Math.atan2(t,e)/i,et((a-(t*t+e*e)*i*i)/(2*i))]},e}function Hn(){function t(t,n){Po+=i*t-r*n,r=t,i=n}var n,e,r,i;$o.point=function(a,u){$o.point=t,n=r=a,e=i=u},$o.lineEnd=function(){t(n,e)}}function Vn(t,n){Ro>t&&(Ro=t),t>Yo&&(Yo=t),jo>n&&(jo=n),n>Uo&&(Uo=n)}function Zn(){function t(t,n){u.push(\"M\",t,\",\",n,a)}function n(t,n){u.push(\"M\",t,\",\",n),o.point=e}function e(t,n){u.push(\"L\",t,\",\",n)}function r(){o.point=t}function i(){u.push(\"Z\")}var a=Xn(4.5),u=[],o={point:t,lineStart:function(){o.point=n},lineEnd:r,polygonStart:function(){o.lineEnd=i},polygonEnd:function(){o.lineEnd=r,o.point=t},pointRadius:function(t){return a=Xn(t),o},result:function(){if(u.length){var t=u.join(\"\");return u=[],t}}};return o}function Xn(t){return\"m0,\"+t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+-2*t+\"a\"+t+\",\"+t+\" 0 1,1 0,\"+2*t+\"z\"}function Kn(t,n){ko+=t,Eo+=n,++Mo}function Qn(){function t(t,r){var i=t-n,a=r-e,u=Math.sqrt(i*i+a*a);So+=u*(n+t)/2,Do+=u*(e+r)/2,Co+=u,Kn(n=t,e=r)}var n,e;zo.point=function(r,i){zo.point=t,Kn(n=r,e=i)}}function Jn(){zo.point=Kn}function te(){function t(t,n){var e=t-r,a=n-i,u=Math.sqrt(e*e+a*a);So+=u*(r+t)/2,Do+=u*(i+n)/2,Co+=u,u=i*t-r*n,To+=u*(r+t),Fo+=u*(i+n),Oo+=3*u,Kn(r=t,i=n)}var n,e,r,i;zo.point=function(a,u){zo.point=t,Kn(n=r=a,e=i=u)},zo.lineEnd=function(){t(n,e)}}function ne(t){function n(n,e){t.moveTo(n+u,e),t.arc(n,e,u,0,Lu)}function e(n,e){t.moveTo(n,e),o.point=r}function r(n,e){t.lineTo(n,e)}function i(){o.point=n}function a(){\nt.closePath()}var u=4.5,o={point:n,lineStart:function(){o.point=e},lineEnd:i,polygonStart:function(){o.lineEnd=a},polygonEnd:function(){o.lineEnd=i,o.point=n},pointRadius:function(t){return u=t,o},result:w};return o}function ee(t){function n(t){return(o?r:e)(t)}function e(n){return ae(n,function(e,r){e=t(e,r),n.point(e[0],e[1])})}function r(n){function e(e,r){e=t(e,r),n.point(e[0],e[1])}function r(){_=0/0,k.point=a,n.lineStart()}function a(e,r){var a=yn([e,r]),u=t(e,r);i(_,b,v,x,w,A,_=u[0],b=u[1],v=e,x=a[0],w=a[1],A=a[2],o,n),n.point(_,b)}function u(){k.point=e,n.lineEnd()}function s(){r(),k.point=c,k.lineEnd=l}function c(t,n){a(h=t,f=n),d=_,p=b,g=x,y=w,m=A,k.point=a}function l(){i(_,b,v,x,w,A,d,p,h,g,y,m,o,n),k.lineEnd=u,u()}var h,f,d,p,g,y,m,v,_,b,x,w,A,k={point:e,lineStart:r,lineEnd:u,polygonStart:function(){n.polygonStart(),k.lineStart=s},polygonEnd:function(){n.polygonEnd(),k.lineStart=r}};return k}function i(n,e,r,o,s,c,l,h,f,d,p,g,y,m){var v=l-n,_=h-e,b=v*v+_*_;if(b>4*a&&y--){var x=o+d,w=s+p,A=c+g,k=Math.sqrt(x*x+w*w+A*A),E=Math.asin(A/=k),M=pu(pu(A)-1)<Tu||pu(r-f)<Tu?(r+f)/2:Math.atan2(w,x),S=t(M,E),D=S[0],C=S[1],T=D-n,F=C-e,O=_*T-v*F;(O*O/b>a||pu((v*T+_*F)/b-.5)>.3||u>o*d+s*p+c*g)&&(i(n,e,r,o,s,c,D,C,M,x/=k,w/=k,A,y,m),m.point(D,C),i(D,C,M,x,w,A,l,h,f,d,p,g,y,m))}}var a=.5,u=Math.cos(30*Nu),o=16;return n.precision=function(t){return arguments.length?(o=(a=t*t)>0&&16,n):Math.sqrt(a)},n}function re(t){var n=ee(function(n,e){return t([n*Pu,e*Pu])});return function(t){return se(n(t))}}function ie(t){this.stream=t}function ae(t,n){return{point:n,sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function ue(t){return oe(function(){return t})()}function oe(t){function n(t){return t=o(t[0]*Nu,t[1]*Nu),[t[0]*f+s,c-t[1]*f]}function e(t){return t=o.invert((t[0]-s)/f,(c-t[1])/f),t&&[t[0]*Pu,t[1]*Pu]}function r(){o=Cn(u=he(m,v,b),a);var t=a(g,y);return s=d-t[0]*f,c=p+t[1]*f,i()}function i(){return l&&(l.valid=!1,l=null),n}var a,u,o,s,c,l,h=ee(function(t,n){return t=a(t,n),[t[0]*f+s,c-t[1]*f]}),f=150,d=480,p=250,g=0,y=0,m=0,v=0,b=0,x=Io,w=_,A=null,k=null;return n.stream=function(t){return l&&(l.valid=!1),l=se(x(u,h(w(t)))),l.valid=!0,l},n.clipAngle=function(t){return arguments.length?(x=null==t?(A=t,Io):$n((A=+t)*Nu),i()):A},n.clipExtent=function(t){return arguments.length?(k=t,w=t?zn(t[0][0],t[0][1],t[1][0],t[1][1]):_,i()):k},n.scale=function(t){return arguments.length?(f=+t,r()):f},n.translate=function(t){return arguments.length?(d=+t[0],p=+t[1],r()):[d,p]},n.center=function(t){return arguments.length?(g=t[0]%360*Nu,y=t[1]%360*Nu,r()):[g*Pu,y*Pu]},n.rotate=function(t){return arguments.length?(m=t[0]%360*Nu,v=t[1]%360*Nu,b=t.length>2?t[2]%360*Nu:0,r()):[m*Pu,v*Pu,b*Pu]},eu.rebind(n,h,\"precision\"),function(){return a=t.apply(this,arguments),n.invert=a.invert&&e,r()}}function se(t){return ae(t,function(n,e){t.point(n*Nu,e*Nu)})}function ce(t,n){return[t,n]}function le(t,n){return[t>Ou?t-Lu:-Ou>t?t+Lu:t,n]}function he(t,n,e){return t?n||e?Cn(de(t),pe(n,e)):de(t):n||e?pe(n,e):le}function fe(t){return function(n,e){return n+=t,[n>Ou?n-Lu:-Ou>n?n+Lu:n,e]}}function de(t){var n=fe(t);return n.invert=fe(-t),n}function pe(t,n){function e(t,n){var e=Math.cos(n),o=Math.cos(t)*e,s=Math.sin(t)*e,c=Math.sin(n),l=c*r+o*i;return[Math.atan2(s*a-l*u,o*r-c*i),et(l*a+s*u)]}var r=Math.cos(t),i=Math.sin(t),a=Math.cos(n),u=Math.sin(n);return e.invert=function(t,n){var e=Math.cos(n),o=Math.cos(t)*e,s=Math.sin(t)*e,c=Math.sin(n),l=c*a-s*u;return[Math.atan2(s*a+c*u,o*r+l*i),et(l*r-o*i)]},e}function ge(t,n){var e=Math.cos(t),r=Math.sin(t);return function(i,a,u,o){var s=u*n;null!=i?(i=ye(e,i),a=ye(e,a),(u>0?a>i:i>a)&&(i+=u*Lu)):(i=t+u*Lu,a=t-.5*s);for(var c,l=i;u>0?l>a:a>l;l-=s)o.point((c=wn([e,-r*Math.cos(l),-r*Math.sin(l)]))[0],c[1])}}function ye(t,n){var e=yn(n);e[0]-=t,xn(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Tu)%(2*Math.PI)}function me(t,n,e){var r=eu.range(t,n-Tu,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function ve(t,n,e){var r=eu.range(t,n-Tu,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function _e(t){return t.source}function be(t){return t.target}function xe(t,n,e,r){var i=Math.cos(n),a=Math.sin(n),u=Math.cos(r),o=Math.sin(r),s=i*Math.cos(t),c=i*Math.sin(t),l=u*Math.cos(e),h=u*Math.sin(e),f=2*Math.asin(Math.sqrt(ut(r-n)+i*u*ut(e-t))),d=1/Math.sin(f),p=f?function(t){var n=Math.sin(t*=f)*d,e=Math.sin(f-t)*d,r=e*s+n*l,i=e*c+n*h,u=e*a+n*o;return[Math.atan2(i,r)*Pu,Math.atan2(u,Math.sqrt(r*r+i*i))*Pu]}:function(){return[t*Pu,n*Pu]};return p.distance=f,p}function we(){function t(t,i){var a=Math.sin(i*=Nu),u=Math.cos(i),o=pu((t*=Nu)-n),s=Math.cos(o);qo+=Math.atan2(Math.sqrt((o=u*Math.sin(o))*o+(o=r*a-e*u*s)*o),e*a+r*u*s),n=t,e=a,r=u}var n,e,r;Go.point=function(i,a){n=i*Nu,e=Math.sin(a*=Nu),r=Math.cos(a),Go.point=t},Go.lineEnd=function(){Go.point=Go.lineEnd=w}}function Ae(t,n){function e(n,e){var r=Math.cos(n),i=Math.cos(e),a=t(r*i);return[a*i*Math.sin(n),a*Math.sin(e)]}return e.invert=function(t,e){var r=Math.sqrt(t*t+e*e),i=n(r),a=Math.sin(i),u=Math.cos(i);return[Math.atan2(t*a,r*u),Math.asin(r&&e*a/r)]},e}function ke(t,n){function e(t,n){u>0?-Bu+Tu>n&&(n=-Bu+Tu):n>Bu-Tu&&(n=Bu-Tu);var e=u/Math.pow(i(n),a);return[e*Math.sin(a*t),u-e*Math.cos(a*t)]}var r=Math.cos(t),i=function(t){return Math.tan(Ou/4+t/2)},a=t===n?Math.sin(t):Math.log(r/Math.cos(n))/Math.log(i(n)/i(t)),u=r*Math.pow(i(t),a)/a;return a?(e.invert=function(t,n){var e=u-n,r=J(a)*Math.sqrt(t*t+e*e);return[Math.atan2(t,e)/a,2*Math.atan(Math.pow(u/r,1/a))-Bu]},e):Me}function Ee(t,n){function e(t,n){var e=a-n;return[e*Math.sin(i*t),a-e*Math.cos(i*t)]}var r=Math.cos(t),i=t===n?Math.sin(t):(r-Math.cos(n))/(n-t),a=r/i+t;return pu(i)<Tu?ce:(e.invert=function(t,n){var e=a-n;return[Math.atan2(t,e)/i,a-J(i)*Math.sqrt(t*t+e*e)]},e)}function Me(t,n){return[t,Math.log(Math.tan(Ou/4+n/2))]}function Se(t){var n,e=ue(t),r=e.scale,i=e.translate,a=e.clipExtent;return e.scale=function(){var t=r.apply(e,arguments);return t===e?n?e.clipExtent(null):e:t},e.translate=function(){var t=i.apply(e,arguments);return t===e?n?e.clipExtent(null):e:t},e.clipExtent=function(t){var u=a.apply(e,arguments);if(u===e){if(n=null==t){var o=Ou*r(),s=i();a([[s[0]-o,s[1]-o],[s[0]+o,s[1]+o]])}}else n&&(u=null);return u},e.clipExtent(null)}function De(t,n){return[Math.log(Math.tan(Ou/4+n/2)),-t]}function Ce(t){return t[0]}function Te(t){return t[1]}function Fe(t){for(var n=t.length,e=[0,1],r=2,i=2;n>i;i++){for(;r>1&&tt(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function Oe(t,n){return t[0]-n[0]||t[1]-n[1]}function Le(t,n,e){return(e[0]-n[0])*(t[1]-n[1])<(e[1]-n[1])*(t[0]-n[0])}function Ie(t,n,e,r){var i=t[0],a=e[0],u=n[0]-i,o=r[0]-a,s=t[1],c=e[1],l=n[1]-s,h=r[1]-c,f=(o*(s-c)-h*(i-a))/(h*u-o*l);return[i+f*u,s+f*l]}function Be(t){var n=t[0],e=t[t.length-1];return!(n[0]-e[0]||n[1]-e[1])}function Ne(){rr(this),this.edge=this.site=this.circle=null}function Pe(t){var n=is.pop()||new Ne;return n.site=t,n}function Re(t){Ve(t),ns.remove(t),is.push(t),rr(t)}function je(t){var n=t.circle,e=n.x,r=n.cy,i={x:e,y:r},a=t.P,u=t.N,o=[t];Re(t);for(var s=a;s.circle&&pu(e-s.circle.x)<Tu&&pu(r-s.circle.cy)<Tu;)a=s.P,o.unshift(s),Re(s),s=a;o.unshift(s),Ve(s);for(var c=u;c.circle&&pu(e-c.circle.x)<Tu&&pu(r-c.circle.cy)<Tu;)u=c.N,o.push(c),Re(c),c=u;o.push(c),Ve(c);var l,h=o.length;for(l=1;h>l;++l)c=o[l],s=o[l-1],tr(c.edge,s.site,c.site,i);s=o[0],c=o[h-1],c.edge=Qe(s.site,c.site,null,i),He(s),He(c)}function Ye(t){for(var n,e,r,i,a=t.x,u=t.y,o=ns._;o;)if(r=Ue(o,u)-a,r>Tu)o=o.L;else{if(i=a-$e(o,u),!(i>Tu)){r>-Tu?(n=o.P,e=o):i>-Tu?(n=o,e=o.N):n=e=o;break}if(!o.R){n=o;break}o=o.R}var s=Pe(t);if(ns.insert(n,s),n||e){if(n===e)return Ve(n),e=Pe(n.site),ns.insert(s,e),s.edge=e.edge=Qe(n.site,s.site),He(n),void He(e);if(!e)return void(s.edge=Qe(n.site,s.site));Ve(n),Ve(e);var c=n.site,l=c.x,h=c.y,f=t.x-l,d=t.y-h,p=e.site,g=p.x-l,y=p.y-h,m=2*(f*y-d*g),v=f*f+d*d,_=g*g+y*y,b={x:(y*v-d*_)/m+l,y:(f*_-g*v)/m+h};tr(e.edge,c,p,b),s.edge=Qe(c,t,null,b),e.edge=Qe(t,p,null,b),He(n),He(e)}}function Ue(t,n){var e=t.site,r=e.x,i=e.y,a=i-n;if(!a)return r;var u=t.P;if(!u)return-(1/0);e=u.site;var o=e.x,s=e.y,c=s-n;if(!c)return o;var l=o-r,h=1/a-1/c,f=l/c;return h?(-f+Math.sqrt(f*f-2*h*(l*l/(-2*c)-s+c/2+i-a/2)))/h+r:(r+o)/2}function $e(t,n){var e=t.N;if(e)return Ue(e,n);var r=t.site;return r.y===n?r.x:1/0}function We(t){this.site=t,this.edges=[]}function ze(t){for(var n,e,r,i,a,u,o,s,c,l,h=t[0][0],f=t[1][0],d=t[0][1],p=t[1][1],g=ts,y=g.length;y--;)if(a=g[y],a&&a.prepare())for(o=a.edges,s=o.length,u=0;s>u;)l=o[u].end(),r=l.x,i=l.y,c=o[++u%s].start(),n=c.x,e=c.y,(pu(r-n)>Tu||pu(i-e)>Tu)&&(o.splice(u,0,new nr(Je(a.site,l,pu(r-h)<Tu&&p-i>Tu?{x:h,y:pu(n-h)<Tu?e:p}:pu(i-p)<Tu&&f-r>Tu?{x:pu(e-p)<Tu?n:f,y:p}:pu(r-f)<Tu&&i-d>Tu?{x:f,y:pu(n-f)<Tu?e:d}:pu(i-d)<Tu&&r-h>Tu?{x:pu(e-d)<Tu?n:h,y:d}:null),a.site,null)),++s)}function qe(t,n){return n.angle-t.angle}function Ge(){rr(this),this.x=this.y=this.arc=this.site=this.cy=null}function He(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,a=e.site;if(r!==a){var u=i.x,o=i.y,s=r.x-u,c=r.y-o,l=a.x-u,h=a.y-o,f=2*(s*h-c*l);if(!(f>=-Fu)){var d=s*s+c*c,p=l*l+h*h,g=(h*d-c*p)/f,y=(s*p-l*d)/f,h=y+o,m=as.pop()||new Ge;m.arc=t,m.site=i,m.x=g+u,m.y=h+Math.sqrt(g*g+y*y),m.cy=h,t.circle=m;for(var v=null,_=rs._;_;)if(m.y<_.y||m.y===_.y&&m.x<=_.x){if(!_.L){v=_.P;break}_=_.L}else{if(!_.R){v=_;break}_=_.R}rs.insert(v,m),v||(es=m)}}}}function Ve(t){var n=t.circle;n&&(n.P||(es=n.N),rs.remove(n),as.push(n),rr(n),t.circle=null)}function Ze(t){for(var n,e=Jo,r=Wn(t[0][0],t[0][1],t[1][0],t[1][1]),i=e.length;i--;)n=e[i],(!Xe(n,t)||!r(n)||pu(n.a.x-n.b.x)<Tu&&pu(n.a.y-n.b.y)<Tu)&&(n.a=n.b=null,e.splice(i,1))}function Xe(t,n){var e=t.b;if(e)return!0;var r,i,a=t.a,u=n[0][0],o=n[1][0],s=n[0][1],c=n[1][1],l=t.l,h=t.r,f=l.x,d=l.y,p=h.x,g=h.y,y=(f+p)/2,m=(d+g)/2;if(g===d){if(u>y||y>=o)return;if(f>p){if(a){if(a.y>=c)return}else a={x:y,y:s};e={x:y,y:c}}else{if(a){if(a.y<s)return}else a={x:y,y:c};e={x:y,y:s}}}else if(r=(f-p)/(g-d),i=m-r*y,-1>r||r>1)if(f>p){if(a){if(a.y>=c)return}else a={x:(s-i)/r,y:s};e={x:(c-i)/r,y:c}}else{if(a){if(a.y<s)return}else a={x:(c-i)/r,y:c};e={x:(s-i)/r,y:s}}else if(g>d){if(a){if(a.x>=o)return}else a={x:u,y:r*u+i};e={x:o,y:r*o+i}}else{if(a){if(a.x<u)return}else a={x:o,y:r*o+i};e={x:u,y:r*u+i}}return t.a=a,t.b=e,!0}function Ke(t,n){this.l=t,this.r=n,this.a=this.b=null}function Qe(t,n,e,r){var i=new Ke(t,n);return Jo.push(i),e&&tr(i,t,n,e),r&&tr(i,n,t,r),ts[t.i].edges.push(new nr(i,t,n)),ts[n.i].edges.push(new nr(i,n,t)),i}function Je(t,n,e){var r=new Ke(t,null);return r.a=n,r.b=e,Jo.push(r),r}function tr(t,n,e,r){t.a||t.b?t.l===e?t.b=r:t.a=r:(t.a=r,t.l=n,t.r=e)}function nr(t,n,e){var r=t.a,i=t.b;this.edge=t,this.site=n,this.angle=e?Math.atan2(e.y-n.y,e.x-n.x):t.l===n?Math.atan2(i.x-r.x,r.y-i.y):Math.atan2(r.x-i.x,i.y-r.y)}function er(){this._=null}function rr(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function ir(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function ar(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function ur(t){for(;t.L;)t=t.L;return t}function or(t,n){var e,r,i,a=t.sort(sr).pop();for(Jo=[],ts=new Array(t.length),ns=new er,rs=new er;;)if(i=es,a&&(!i||a.y<i.y||a.y===i.y&&a.x<i.x))(a.x!==e||a.y!==r)&&(ts[a.i]=new We(a),Ye(a),e=a.x,r=a.y),a=t.pop();else{if(!i)break;je(i.arc)}n&&(Ze(n),ze(n));var u={cells:ts,edges:Jo};return ns=rs=Jo=ts=null,u}function sr(t,n){return n.y-t.y||n.x-t.x}function cr(t,n,e){return(t.x-e.x)*(n.y-t.y)-(t.x-n.x)*(e.y-t.y)}function lr(t){return t.x}function hr(t){return t.y}function fr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function dr(t,n,e,r,i,a){if(!t(n,e,r,i,a)){var u=.5*(e+i),o=.5*(r+a),s=n.nodes;s[0]&&dr(t,s[0],e,r,u,o),s[1]&&dr(t,s[1],u,r,i,o),s[2]&&dr(t,s[2],e,o,u,a),s[3]&&dr(t,s[3],u,o,i,a)}}function pr(t,n,e,r,i,a,u){var o,s=1/0;return function c(t,l,h,f,d){if(!(l>a||h>u||r>f||i>d)){if(p=t.point){var p,g=n-t.x,y=e-t.y,m=g*g+y*y;if(s>m){var v=Math.sqrt(s=m);r=n-v,i=e-v,a=n+v,u=e+v,o=p}}for(var _=t.nodes,b=.5*(l+f),x=.5*(h+d),w=n>=b,A=e>=x,k=A<<1|w,E=k+4;E>k;++k)if(t=_[3&k])switch(3&k){case 0:c(t,l,h,b,x);break;case 1:c(t,b,h,f,x);break;case 2:c(t,l,x,b,d);break;case 3:c(t,b,x,f,d)}}}(t,r,i,a,u),o}function gr(t,n){t=eu.rgb(t),n=eu.rgb(n);var e=t.r,r=t.g,i=t.b,a=n.r-e,u=n.g-r,o=n.b-i;return function(t){return\"#\"+xt(Math.round(e+a*t))+xt(Math.round(r+u*t))+xt(Math.round(i+o*t))}}function yr(t,n){var e,r={},i={};for(e in t)e in n?r[e]=_r(t[e],n[e]):i[e]=t[e];for(e in n)e in t||(i[e]=n[e]);return function(t){for(e in r)i[e]=r[e](t);return i}}function mr(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function vr(t,n){var e,r,i,a=os.lastIndex=ss.lastIndex=0,u=-1,o=[],s=[];for(t+=\"\",n+=\"\";(e=os.exec(t))&&(r=ss.exec(n));)(i=r.index)>a&&(i=n.slice(a,i),o[u]?o[u]+=i:o[++u]=i),(e=e[0])===(r=r[0])?o[u]?o[u]+=r:o[++u]=r:(o[++u]=null,s.push({i:u,x:mr(e,r)})),a=ss.lastIndex;return a<n.length&&(i=n.slice(a),o[u]?o[u]+=i:o[++u]=i),o.length<2?s[0]?(n=s[0].x,function(t){return n(t)+\"\"}):function(){return n}:(n=s.length,function(t){for(var e,r=0;n>r;++r)o[(e=s[r]).i]=e.x(t);return o.join(\"\")})}function _r(t,n){for(var e,r=eu.interpolators.length;--r>=0&&!(e=eu.interpolators[r](t,n)););return e}function br(t,n){var e,r=[],i=[],a=t.length,u=n.length,o=Math.min(t.length,n.length);for(e=0;o>e;++e)r.push(_r(t[e],n[e]));for(;a>e;++e)i[e]=t[e];for(;u>e;++e)i[e]=n[e];return function(t){for(e=0;o>e;++e)i[e]=r[e](t);return i}}function xr(t){return function(n){return 0>=n?0:n>=1?1:t(n)}}function wr(t){return function(n){return 1-t(1-n)}}function Ar(t){return function(n){return.5*(.5>n?t(2*n):2-t(2-2*n))}}function kr(t){return t*t}function Er(t){return t*t*t}function Mr(t){if(0>=t)return 0;if(t>=1)return 1;var n=t*t,e=n*t;return 4*(.5>t?e:3*(t-n)+e-.75)}function Sr(t){return function(n){return Math.pow(n,t)}}function Dr(t){return 1-Math.cos(t*Bu)}function Cr(t){return Math.pow(2,10*(t-1))}function Tr(t){return 1-Math.sqrt(1-t*t)}function Fr(t,n){var e;return arguments.length<2&&(n=.45),arguments.length?e=n/Lu*Math.asin(1/t):(t=1,e=n/4),function(r){return 1+t*Math.pow(2,-10*r)*Math.sin((r-e)*Lu/n)}}function Or(t){return t||(t=1.70158),function(n){return n*n*((t+1)*n-t)}}function Lr(t){return 1/2.75>t?7.5625*t*t:2/2.75>t?7.5625*(t-=1.5/2.75)*t+.75:2.5/2.75>t?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375}function Ir(t,n){t=eu.hcl(t),n=eu.hcl(n);var e=t.h,r=t.c,i=t.l,a=n.h-e,u=n.c-r,o=n.l-i;return isNaN(u)&&(u=0,r=isNaN(r)?n.c:r),isNaN(a)?(a=0,e=isNaN(e)?n.h:e):a>180?a-=360:-180>a&&(a+=360),function(t){return ht(e+a*t,r+u*t,i+o*t)+\"\"}}function Br(t,n){t=eu.hsl(t),n=eu.hsl(n);var e=t.h,r=t.s,i=t.l,a=n.h-e,u=n.s-r,o=n.l-i;return isNaN(u)&&(u=0,r=isNaN(r)?n.s:r),isNaN(a)?(a=0,e=isNaN(e)?n.h:e):a>180?a-=360:-180>a&&(a+=360),function(t){return ct(e+a*t,r+u*t,i+o*t)+\"\"}}function Nr(t,n){t=eu.lab(t),n=eu.lab(n);var e=t.l,r=t.a,i=t.b,a=n.l-e,u=n.a-r,o=n.b-i;return function(t){return dt(e+a*t,r+u*t,i+o*t)+\"\"}}function Pr(t,n){return n-=t,function(e){return Math.round(t+n*e)}}function Rr(t){var n=[t.a,t.b],e=[t.c,t.d],r=Yr(n),i=jr(n,e),a=Yr(Ur(e,n,-i))||0;n[0]*e[1]<e[0]*n[1]&&(n[0]*=-1,n[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(n[1],n[0]):Math.atan2(-e[0],e[1]))*Pu,this.translate=[t.e,t.f],this.scale=[r,a],this.skew=a?Math.atan2(i,a)*Pu:0}function jr(t,n){return t[0]*n[0]+t[1]*n[1]}function Yr(t){var n=Math.sqrt(jr(t,t));return n&&(t[0]/=n,t[1]/=n),n}function Ur(t,n,e){return t[0]+=e*n[0],t[1]+=e*n[1],t}function $r(t,n){var e,r=[],i=[],a=eu.transform(t),u=eu.transform(n),o=a.translate,s=u.translate,c=a.rotate,l=u.rotate,h=a.skew,f=u.skew,d=a.scale,p=u.scale;return o[0]!=s[0]||o[1]!=s[1]?(r.push(\"translate(\",null,\",\",null,\")\"),i.push({i:1,x:mr(o[0],s[0])},{i:3,x:mr(o[1],s[1])})):r.push(s[0]||s[1]?\"translate(\"+s+\")\":\"\"),c!=l?(c-l>180?l+=360:l-c>180&&(c+=360),i.push({i:r.push(r.pop()+\"rotate(\",null,\")\")-2,x:mr(c,l)})):l&&r.push(r.pop()+\"rotate(\"+l+\")\"),h!=f?i.push({i:r.push(r.pop()+\"skewX(\",null,\")\")-2,x:mr(h,f)}):f&&r.push(r.pop()+\"skewX(\"+f+\")\"),d[0]!=p[0]||d[1]!=p[1]?(e=r.push(r.pop()+\"scale(\",null,\",\",null,\")\"),i.push({i:e-4,x:mr(d[0],p[0])},{i:e-2,x:mr(d[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+\"scale(\"+p+\")\"),e=i.length,function(t){for(var n,a=-1;++a<e;)r[(n=i[a]).i]=n.x(t);return r.join(\"\")}}function Wr(t,n){return n=(n-=t=+t)||1/n,function(e){return(e-t)/n}}function zr(t,n){return n=(n-=t=+t)||1/n,function(e){return Math.max(0,Math.min(1,(e-t)/n))}}function qr(t){for(var n=t.source,e=t.target,r=Hr(n,e),i=[n];n!==r;)n=n.parent,i.push(n);for(var a=i.length;e!==r;)i.splice(a,0,e),e=e.parent;return i}function Gr(t){for(var n=[],e=t.parent;null!=e;)n.push(t),t=e,e=e.parent;return n.push(t),n}function Hr(t,n){if(t===n)return t;for(var e=Gr(t),r=Gr(n),i=e.pop(),a=r.pop(),u=null;i===a;)u=i,i=e.pop(),a=r.pop();return u}function Vr(t){t.fixed|=2}function Zr(t){t.fixed&=-7}function Xr(t){t.fixed|=4,t.px=t.x,t.py=t.y}function Kr(t){t.fixed&=-5}function Qr(t,n,e){var r=0,i=0;if(t.charge=0,!t.leaf)for(var a,u=t.nodes,o=u.length,s=-1;++s<o;)a=u[s],null!=a&&(Qr(a,n,e),t.charge+=a.charge,r+=a.charge*a.cx,i+=a.charge*a.cy);if(t.point){t.leaf||(t.point.x+=Math.random()-.5,t.point.y+=Math.random()-.5);var c=n*e[t.point.index];t.charge+=t.pointCharge=c,r+=c*t.point.x,i+=c*t.point.y}t.cx=r/t.charge,t.cy=i/t.charge}function Jr(t,n){return eu.rebind(t,n,\"sort\",\"children\",\"value\"),t.nodes=t,t.links=ai,t}function ti(t,n){for(var e=[t];null!=(t=e.pop());)if(n(t),(i=t.children)&&(r=i.length))for(var r,i;--r>=0;)e.push(i[r])}function ni(t,n){for(var e=[t],r=[];null!=(t=e.pop());)if(r.push(t),(a=t.children)&&(i=a.length))for(var i,a,u=-1;++u<i;)e.push(a[u]);for(;null!=(t=r.pop());)n(t)}function ei(t){return t.children}function ri(t){return t.value}function ii(t,n){return n.value-t.value}function ai(t){return eu.merge(t.map(function(t){return(t.children||[]).map(function(n){return{source:t,target:n}})}))}function ui(t){return t.x}function oi(t){return t.y}function si(t,n,e){t.y0=n,t.y=e}function ci(t){return eu.range(t.length)}function li(t){for(var n=-1,e=t[0].length,r=[];++n<e;)r[n]=0;return r}function hi(t){for(var n,e=1,r=0,i=t[0][1],a=t.length;a>e;++e)(n=t[e][1])>i&&(r=e,i=n);return r}function fi(t){return t.reduce(di,0)}function di(t,n){return t+n[1]}function pi(t,n){return gi(t,Math.ceil(Math.log(n.length)/Math.LN2+1))}function gi(t,n){for(var e=-1,r=+t[0],i=(t[1]-r)/n,a=[];++e<=n;)a[e]=i*e+r;return a}function yi(t){return[eu.min(t),eu.max(t)]}function mi(t,n){return t.value-n.value}function vi(t,n){var e=t._pack_next;t._pack_next=n,n._pack_prev=t,n._pack_next=e,e._pack_prev=n}function _i(t,n){t._pack_next=n,n._pack_prev=t}function bi(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return.999*i*i>e*e+r*r}function xi(t){function n(t){l=Math.min(t.x-t.r,l),h=Math.max(t.x+t.r,h),f=Math.min(t.y-t.r,f),d=Math.max(t.y+t.r,d)}if((e=t.children)&&(c=e.length)){var e,r,i,a,u,o,s,c,l=1/0,h=-(1/0),f=1/0,d=-(1/0);if(e.forEach(wi),r=e[0],r.x=-r.r,r.y=0,n(r),c>1&&(i=e[1],i.x=i.r,i.y=0,n(i),c>2))for(a=e[2],Ei(r,i,a),n(a),vi(r,a),r._pack_prev=a,vi(a,i),i=r._pack_next,u=3;c>u;u++){Ei(r,i,a=e[u]);var p=0,g=1,y=1;for(o=i._pack_next;o!==i;o=o._pack_next,g++)if(bi(o,a)){p=1;break}if(1==p)for(s=r._pack_prev;s!==o._pack_prev&&!bi(s,a);s=s._pack_prev,y++);p?(y>g||g==y&&i.r<r.r?_i(r,i=o):_i(r=s,i),u--):(vi(r,a),i=a,n(a))}var m=(l+h)/2,v=(f+d)/2,_=0;for(u=0;c>u;u++)a=e[u],a.x-=m,a.y-=v,_=Math.max(_,a.r+Math.sqrt(a.x*a.x+a.y*a.y));t.r=_,e.forEach(Ai)}}function wi(t){t._pack_next=t._pack_prev=t}function Ai(t){delete t._pack_next,delete t._pack_prev}function ki(t,n,e,r){var i=t.children;if(t.x=n+=r*t.x,t.y=e+=r*t.y,t.r*=r,i)for(var a=-1,u=i.length;++a<u;)ki(i[a],n,e,r)}function Ei(t,n,e){var r=t.r+e.r,i=n.x-t.x,a=n.y-t.y;if(r&&(i||a)){var u=n.r+e.r,o=i*i+a*a;u*=u,r*=r;var s=.5+(r-u)/(2*o),c=Math.sqrt(Math.max(0,2*u*(r+o)-(r-=o)*r-u*u))/(2*o);e.x=t.x+s*i+c*a,e.y=t.y+s*a-c*i}else e.x=t.x+r,e.y=t.y}function Mi(t,n){return t.parent==n.parent?1:2}function Si(t){var n=t.children;return n.length?n[0]:t.t}function Di(t){var n,e=t.children;return(n=e.length)?e[n-1]:t.t}function Ci(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function Ti(t){for(var n,e=0,r=0,i=t.children,a=i.length;--a>=0;)n=i[a],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function Fi(t,n,e){return t.a.parent===n.parent?t.a:e}function Oi(t){return 1+eu.max(t,function(t){return t.y})}function Li(t){return t.reduce(function(t,n){return t+n.x},0)/t.length}function Ii(t){var n=t.children;return n&&n.length?Ii(n[0]):t}function Bi(t){var n,e=t.children;return e&&(n=e.length)?Bi(e[n-1]):t}function Ni(t){return{x:t.x,y:t.y,dx:t.dx,dy:t.dy}}function Pi(t,n){var e=t.x+n[3],r=t.y+n[0],i=t.dx-n[1]-n[3],a=t.dy-n[0]-n[2];return 0>i&&(e+=i/2,i=0),0>a&&(r+=a/2,a=0),{x:e,y:r,dx:i,dy:a}}function Ri(t){var n=t[0],e=t[t.length-1];return e>n?[n,e]:[e,n]}function ji(t){return t.rangeExtent?t.rangeExtent():Ri(t.range())}function Yi(t,n,e,r){var i=e(t[0],t[1]),a=r(n[0],n[1]);return function(t){return a(i(t))}}function Ui(t,n){var e,r=0,i=t.length-1,a=t[r],u=t[i];return a>u&&(e=r,r=i,i=e,e=a,a=u,u=e),t[r]=n.floor(a),t[i]=n.ceil(u),t}function $i(t){return t?{floor:function(n){return Math.floor(n/t)*t},ceil:function(n){return Math.ceil(n/t)*t}}:_s}function Wi(t,n,e,r){var i=[],a=[],u=0,o=Math.min(t.length,n.length)-1;for(t[o]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++u<=o;)i.push(e(t[u-1],t[u])),a.push(r(n[u-1],n[u]));return function(n){var e=eu.bisect(t,n,1,o)-1;return a[e](i[e](n))}}function zi(t,n,e,r){function i(){var i=Math.min(t.length,n.length)>2?Wi:Yi,s=r?zr:Wr;return u=i(t,n,s,e),o=i(n,t,s,_r),a}function a(t){return u(t)}var u,o;return a.invert=function(t){return o(t)},a.domain=function(n){return arguments.length?(t=n.map(Number),i()):t},a.range=function(t){return arguments.length?(n=t,i()):n},a.rangeRound=function(t){return a.range(t).interpolate(Pr)},a.clamp=function(t){return arguments.length?(r=t,i()):r},a.interpolate=function(t){return arguments.length?(e=t,i()):e},a.ticks=function(n){return Vi(t,n)},a.tickFormat=function(n,e){return Zi(t,n,e)},a.nice=function(n){return Gi(t,n),i()},a.copy=function(){return zi(t,n,e,r)},i()}function qi(t,n){return eu.rebind(t,n,\"range\",\"rangeRound\",\"interpolate\",\"clamp\")}function Gi(t,n){return Ui(t,$i(Hi(t,n)[2]))}function Hi(t,n){null==n&&(n=10);var e=Ri(t),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/n)/Math.LN10)),a=n/r*i;return.15>=a?i*=10:.35>=a?i*=5:.75>=a&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Vi(t,n){return eu.range.apply(eu,Hi(t,n))}function Zi(t,n,e){var r=Hi(t,n);if(e){var i=uo.exec(e);if(i.shift(),\"s\"===i[8]){var a=eu.formatPrefix(Math.max(pu(r[0]),pu(r[1])));return i[7]||(i[7]=\".\"+Xi(a.scale(r[2]))),i[8]=\"f\",e=eu.format(i.join(\"\")),function(t){return e(a.scale(t))+a.symbol}}i[7]||(i[7]=\".\"+Ki(i[8],r)),e=i.join(\"\")}else e=\",.\"+Xi(r[2])+\"f\";return eu.format(e)}function Xi(t){return-Math.floor(Math.log(t)/Math.LN10+.01)}function Ki(t,n){var e=Xi(n[2]);return t in bs?Math.abs(e-Xi(Math.max(pu(n[0]),pu(n[1]))))+ +(\"e\"!==t):e-2*(\"%\"===t)}function Qi(t,n,e,r){function i(t){return(e?Math.log(0>t?0:t):-Math.log(t>0?0:-t))/Math.log(n)}function a(t){return e?Math.pow(n,t):-Math.pow(n,-t)}function u(n){return t(i(n))}return u.invert=function(n){return a(t.invert(n))},u.domain=function(n){return arguments.length?(e=n[0]>=0,t.domain((r=n.map(Number)).map(i)),u):r},u.base=function(e){return arguments.length?(n=+e,t.domain(r.map(i)),u):n},u.nice=function(){var n=Ui(r.map(i),e?Math:ws);return t.domain(n),r=n.map(a),u},u.ticks=function(){var t=Ri(r),u=[],o=t[0],s=t[1],c=Math.floor(i(o)),l=Math.ceil(i(s)),h=n%1?2:n;if(isFinite(l-c)){if(e){for(;l>c;c++)for(var f=1;h>f;f++)u.push(a(c)*f);u.push(a(c))}else for(u.push(a(c));c++<l;)for(var f=h-1;f>0;f--)u.push(a(c)*f);for(c=0;u[c]<o;c++);for(l=u.length;u[l-1]>s;l--);u=u.slice(c,l)}return u},u.tickFormat=function(t,n){if(!arguments.length)return xs;arguments.length<2?n=xs:\"function\"!=typeof n&&(n=eu.format(n));var r,o=Math.max(.1,t/u.ticks().length),s=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(t){return t/a(s(i(t)+r))<=o?n(t):\"\"}},u.copy=function(){return Qi(t.copy(),n,e,r)},qi(u,t)}function Ji(t,n,e){function r(n){return t(i(n))}var i=ta(n),a=ta(1/n);return r.invert=function(n){return a(t.invert(n))},r.domain=function(n){return arguments.length?(t.domain((e=n.map(Number)).map(i)),r):e},r.ticks=function(t){return Vi(e,t)},r.tickFormat=function(t,n){return Zi(e,t,n)},r.nice=function(t){return r.domain(Gi(e,t))},r.exponent=function(u){return arguments.length?(i=ta(n=u),a=ta(1/n),t.domain(e.map(i)),r):n},r.copy=function(){return Ji(t.copy(),n,e)},qi(r,t)}function ta(t){return function(n){return 0>n?-Math.pow(-n,t):Math.pow(n,t)}}function na(t,n){function e(e){return a[((i.get(e)||(\"range\"===n.t?i.set(e,t.push(e)):0/0))-1)%a.length]}function r(n,e){return eu.range(t.length).map(function(t){return n+e*t})}var i,a,u;return e.domain=function(r){if(!arguments.length)return t;t=[],i=new l;for(var a,u=-1,o=r.length;++u<o;)i.has(a=r[u])||i.set(a,t.push(a));return e[n.t].apply(e,n.a)},e.range=function(t){return arguments.length?(a=t,u=0,n={t:\"range\",a:arguments},e):a},e.rangePoints=function(i,o){arguments.length<2&&(o=0);var s=i[0],c=i[1],l=t.length<2?(s=(s+c)/2,0):(c-s)/(t.length-1+o);return a=r(s+l*o/2,l),u=0,n={t:\"rangePoints\",a:arguments},e},e.rangeRoundPoints=function(i,o){arguments.length<2&&(o=0);var s=i[0],c=i[1],l=t.length<2?(s=c=Math.round((s+c)/2),0):(c-s)/(t.length-1+o)|0;return a=r(s+Math.round(l*o/2+(c-s-(t.length-1+o)*l)/2),l),u=0,n={t:\"rangeRoundPoints\",a:arguments},e},e.rangeBands=function(i,o,s){arguments.length<2&&(o=0),arguments.length<3&&(s=o);var c=i[1]<i[0],l=i[c-0],h=i[1-c],f=(h-l)/(t.length-o+2*s);return a=r(l+f*s,f),c&&a.reverse(),u=f*(1-o),n={t:\"rangeBands\",a:arguments},e},e.rangeRoundBands=function(i,o,s){arguments.length<2&&(o=0),arguments.length<3&&(s=o);var c=i[1]<i[0],l=i[c-0],h=i[1-c],f=Math.floor((h-l)/(t.length-o+2*s));return a=r(l+Math.round((h-l-(t.length-o)*f)/2),f),c&&a.reverse(),u=Math.round(f*(1-o)),n={t:\"rangeRoundBands\",a:arguments},e},e.rangeBand=function(){return u},e.rangeExtent=function(){return Ri(n.a[0])},e.copy=function(){return na(t,n)},e.domain(t)}function ea(t,n){function e(){var e=0,r=n.length;for(o=[];++e<r;)o[e-1]=eu.quantile(t,e/r);return u}function u(t){return isNaN(t=+t)?void 0:n[eu.bisect(o,t)]}var o;return u.domain=function(n){return arguments.length?(t=n.map(i).filter(a).sort(r),e()):t},u.range=function(t){return arguments.length?(n=t,e()):n},u.quantiles=function(){return o},u.invertExtent=function(e){return e=n.indexOf(e),0>e?[0/0,0/0]:[e>0?o[e-1]:t[0],e<o.length?o[e]:t[t.length-1]]},u.copy=function(){return ea(t,n)},e()}function ra(t,n,e){function r(n){return e[Math.max(0,Math.min(u,Math.floor(a*(n-t))))]}function i(){return a=e.length/(n-t),u=e.length-1,r}var a,u;return r.domain=function(e){return arguments.length?(t=+e[0],n=+e[e.length-1],i()):[t,n]},r.range=function(t){return arguments.length?(e=t,i()):e},r.invertExtent=function(n){return n=e.indexOf(n),n=0>n?0/0:n/a+t,[n,n+1/a]},r.copy=function(){return ra(t,n,e)},i()}function ia(t,n){function e(e){return e>=e?n[eu.bisect(t,e)]:void 0}return e.domain=function(n){return arguments.length?(t=n,e):t},e.range=function(t){return arguments.length?(n=t,e):n},e.invertExtent=function(e){return e=n.indexOf(e),[t[e-1],t[e]]},e.copy=function(){return ia(t,n)},e}function aa(t){function n(t){return+t}return n.invert=n,n.domain=n.range=function(e){return arguments.length?(t=e.map(n),n):t},n.ticks=function(n){return Vi(t,n)},n.tickFormat=function(n,e){return Zi(t,n,e)},n.copy=function(){return aa(t)},n}function ua(){return 0}function oa(t){return t.innerRadius}function sa(t){return t.outerRadius}function ca(t){return t.startAngle}function la(t){return t.endAngle}function ha(t){return t&&t.padAngle}function fa(t,n,e,r){return(t-e)*n-(n-r)*t>0?0:1}function da(t,n,e,r,i){var a=t[0]-n[0],u=t[1]-n[1],o=(i?r:-r)/Math.sqrt(a*a+u*u),s=o*u,c=-o*a,l=t[0]+s,h=t[1]+c,f=n[0]+s,d=n[1]+c,p=(l+f)/2,g=(h+d)/2,y=f-l,m=d-h,v=y*y+m*m,_=e-r,b=l*d-f*h,x=(0>m?-1:1)*Math.sqrt(_*_*v-b*b),w=(b*m-y*x)/v,A=(-b*y-m*x)/v,k=(b*m+y*x)/v,E=(-b*y+m*x)/v,M=w-p,S=A-g,D=k-p,C=E-g;return M*M+S*S>D*D+C*C&&(w=k,A=E),[[w-s,A-c],[w*e/_,A*e/_]]}function pa(t){function n(n){function u(){c.push(\"M\",a(t(l),o))}for(var s,c=[],l=[],h=-1,f=n.length,d=St(e),p=St(r);++h<f;)i.call(this,s=n[h],h)?l.push([+d.call(this,s,h),+p.call(this,s,h)]):l.length&&(u(),l=[]);return l.length&&u(),c.length?c.join(\"\"):null}var e=Ce,r=Te,i=Tn,a=ga,u=a.key,o=.7;return n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n.defined=function(t){return arguments.length?(i=t,n):i},n.interpolate=function(t){return arguments.length?(u=\"function\"==typeof t?a=t:(a=Ds.get(t)||ga).key,n):u},n.tension=function(t){return arguments.length?(o=t,n):o},n}function ga(t){return t.join(\"L\")}function ya(t){return ga(t)+\"Z\"}function ma(t){for(var n=0,e=t.length,r=t[0],i=[r[0],\",\",r[1]];++n<e;)i.push(\"H\",(r[0]+(r=t[n])[0])/2,\"V\",r[1]);return e>1&&i.push(\"H\",r[0]),i.join(\"\")}function va(t){for(var n=0,e=t.length,r=t[0],i=[r[0],\",\",r[1]];++n<e;)i.push(\"V\",(r=t[n])[1],\"H\",r[0]);return i.join(\"\")}function _a(t){for(var n=0,e=t.length,r=t[0],i=[r[0],\",\",r[1]];++n<e;)i.push(\"H\",(r=t[n])[0],\"V\",r[1]);return i.join(\"\")}function ba(t,n){return t.length<4?ga(t):t[1]+Aa(t.slice(1,-1),ka(t,n))}function xa(t,n){return t.length<3?ga(t):t[0]+Aa((t.push(t[0]),t),ka([t[t.length-2]].concat(t,[t[1]]),n))}function wa(t,n){return t.length<3?ga(t):t[0]+Aa(t,ka(t,n))}function Aa(t,n){if(n.length<1||t.length!=n.length&&t.length!=n.length+2)return ga(t);var e=t.length!=n.length,r=\"\",i=t[0],a=t[1],u=n[0],o=u,s=1;if(e&&(r+=\"Q\"+(a[0]-2*u[0]/3)+\",\"+(a[1]-2*u[1]/3)+\",\"+a[0]+\",\"+a[1],i=t[1],s=2),n.length>1){o=n[1],a=t[s],s++,r+=\"C\"+(i[0]+u[0])+\",\"+(i[1]+u[1])+\",\"+(a[0]-o[0])+\",\"+(a[1]-o[1])+\",\"+a[0]+\",\"+a[1];for(var c=2;c<n.length;c++,s++)a=t[s],o=n[c],r+=\"S\"+(a[0]-o[0])+\",\"+(a[1]-o[1])+\",\"+a[0]+\",\"+a[1]}if(e){var l=t[s];r+=\"Q\"+(a[0]+2*o[0]/3)+\",\"+(a[1]+2*o[1]/3)+\",\"+l[0]+\",\"+l[1]}return r}function ka(t,n){for(var e,r=[],i=(1-n)/2,a=t[0],u=t[1],o=1,s=t.length;++o<s;)e=a,a=u,u=t[o],r.push([i*(u[0]-e[0]),i*(u[1]-e[1])]);return r}function Ea(t){if(t.length<3)return ga(t);var n=1,e=t.length,r=t[0],i=r[0],a=r[1],u=[i,i,i,(r=t[1])[0]],o=[a,a,a,r[1]],s=[i,\",\",a,\"L\",Ca(Fs,u),\",\",Ca(Fs,o)];for(t.push(t[e-1]);++n<=e;)r=t[n],u.shift(),u.push(r[0]),o.shift(),o.push(r[1]),Ta(s,u,o);return t.pop(),s.push(\"L\",r),s.join(\"\")}function Ma(t){if(t.length<4)return ga(t);for(var n,e=[],r=-1,i=t.length,a=[0],u=[0];++r<3;)n=t[r],a.push(n[0]),u.push(n[1]);for(e.push(Ca(Fs,a)+\",\"+Ca(Fs,u)),--r;++r<i;)n=t[r],a.shift(),a.push(n[0]),u.shift(),u.push(n[1]),Ta(e,a,u);return e.join(\"\")}function Sa(t){for(var n,e,r=-1,i=t.length,a=i+4,u=[],o=[];++r<4;)e=t[r%i],u.push(e[0]),o.push(e[1]);for(n=[Ca(Fs,u),\",\",Ca(Fs,o)],--r;++r<a;)e=t[r%i],u.shift(),u.push(e[0]),o.shift(),o.push(e[1]),Ta(n,u,o);return n.join(\"\")}function Da(t,n){var e=t.length-1;if(e)for(var r,i,a=t[0][0],u=t[0][1],o=t[e][0]-a,s=t[e][1]-u,c=-1;++c<=e;)r=t[c],i=c/e,r[0]=n*r[0]+(1-n)*(a+i*o),r[1]=n*r[1]+(1-n)*(u+i*s);return Ea(t)}function Ca(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]+t[3]*n[3]}function Ta(t,n,e){t.push(\"C\",Ca(Cs,n),\",\",Ca(Cs,e),\",\",Ca(Ts,n),\",\",Ca(Ts,e),\",\",Ca(Fs,n),\",\",Ca(Fs,e))}function Fa(t,n){return(n[1]-t[1])/(n[0]-t[0])}function Oa(t){for(var n=0,e=t.length-1,r=[],i=t[0],a=t[1],u=r[0]=Fa(i,a);++n<e;)r[n]=(u+(u=Fa(i=a,a=t[n+1])))/2;return r[n]=u,r}function La(t){for(var n,e,r,i,a=[],u=Oa(t),o=-1,s=t.length-1;++o<s;)n=Fa(t[o],t[o+1]),pu(n)<Tu?u[o]=u[o+1]=0:(e=u[o]/n,r=u[o+1]/n,i=e*e+r*r,i>9&&(i=3*n/Math.sqrt(i),u[o]=i*e,u[o+1]=i*r));for(o=-1;++o<=s;)i=(t[Math.min(s,o+1)][0]-t[Math.max(0,o-1)][0])/(6*(1+u[o]*u[o])),\na.push([i||0,u[o]*i||0]);return a}function Ia(t){return t.length<3?ga(t):t[0]+Aa(t,La(t))}function Ba(t){for(var n,e,r,i=-1,a=t.length;++i<a;)n=t[i],e=n[0],r=n[1]-Bu,n[0]=e*Math.cos(r),n[1]=e*Math.sin(r);return t}function Na(t){function n(n){function s(){g.push(\"M\",o(t(m),h),l,c(t(y.reverse()),h),\"Z\")}for(var f,d,p,g=[],y=[],m=[],v=-1,_=n.length,b=St(e),x=St(i),w=e===r?function(){return d}:St(r),A=i===a?function(){return p}:St(a);++v<_;)u.call(this,f=n[v],v)?(y.push([d=+b.call(this,f,v),p=+x.call(this,f,v)]),m.push([+w.call(this,f,v),+A.call(this,f,v)])):y.length&&(s(),y=[],m=[]);return y.length&&s(),g.length?g.join(\"\"):null}var e=Ce,r=Ce,i=0,a=Te,u=Tn,o=ga,s=o.key,c=o,l=\"L\",h=.7;return n.x=function(t){return arguments.length?(e=r=t,n):r},n.x0=function(t){return arguments.length?(e=t,n):e},n.x1=function(t){return arguments.length?(r=t,n):r},n.y=function(t){return arguments.length?(i=a=t,n):a},n.y0=function(t){return arguments.length?(i=t,n):i},n.y1=function(t){return arguments.length?(a=t,n):a},n.defined=function(t){return arguments.length?(u=t,n):u},n.interpolate=function(t){return arguments.length?(s=\"function\"==typeof t?o=t:(o=Ds.get(t)||ga).key,c=o.reverse||o,l=o.closed?\"M\":\"L\",n):s},n.tension=function(t){return arguments.length?(h=t,n):h},n}function Pa(t){return t.radius}function Ra(t){return[t.x,t.y]}function ja(t){return function(){var n=t.apply(this,arguments),e=n[0],r=n[1]-Bu;return[e*Math.cos(r),e*Math.sin(r)]}}function Ya(){return 64}function Ua(){return\"circle\"}function $a(t){var n=Math.sqrt(t/Ou);return\"M0,\"+n+\"A\"+n+\",\"+n+\" 0 1,1 0,\"+-n+\"A\"+n+\",\"+n+\" 0 1,1 0,\"+n+\"Z\"}function Wa(t){return function(){var n,e;(n=this[t])&&(e=n[n.active])&&(--n.count?delete n[n.active]:delete this[t],n.active+=.5,e.event&&e.event.interrupt.call(this,this.__data__,e.index))}}function za(t,n,e){return _u(t,Rs),t.namespace=n,t.id=e,t}function qa(t,n,e,r){var i=t.id,a=t.namespace;return z(t,\"function\"==typeof e?function(t,u,o){t[a][i].tween.set(n,r(e.call(t,t.__data__,u,o)))}:(e=r(e),function(t){t[a][i].tween.set(n,e)}))}function Ga(t){return null==t&&(t=\"\"),function(){this.textContent=t}}function Ha(t){return null==t?\"__transition__\":\"__transition_\"+t+\"__\"}function Va(t,n,e,r,i){var a=t[e]||(t[e]={active:0,count:0}),u=a[r];if(!u){var o=i.time;u=a[r]={tween:new l,time:o,delay:i.delay,duration:i.duration,ease:i.ease,index:n},i=null,++a.count,eu.timer(function(i){function s(e){if(a.active>r)return l();var i=a[a.active];i&&(--a.count,delete a[a.active],i.event&&i.event.interrupt.call(t,t.__data__,i.index)),a.active=r,u.event&&u.event.start.call(t,t.__data__,n),u.tween.forEach(function(e,r){(r=r.call(t,t.__data__,n))&&g.push(r)}),f=u.ease,h=u.duration,eu.timer(function(){return p.c=c(e||1)?Tn:c,1},0,o)}function c(e){if(a.active!==r)return 1;for(var i=e/h,o=f(i),s=g.length;s>0;)g[--s].call(t,o);return i>=1?(u.event&&u.event.end.call(t,t.__data__,n),l()):void 0}function l(){return--a.count?delete a[r]:delete t[e],1}var h,f,d=u.delay,p=ro,g=[];return p.t=d+o,i>=d?s(i-d):void(p.c=s)},0,o)}}function Za(t,n,e){t.attr(\"transform\",function(t){var r=n(t);return\"translate(\"+(isFinite(r)?r:e(t))+\",0)\"})}function Xa(t,n,e){t.attr(\"transform\",function(t){var r=n(t);return\"translate(0,\"+(isFinite(r)?r:e(t))+\")\"})}function Ka(t){return t.toISOString()}function Qa(t,n,e){function r(n){return t(n)}function i(t,e){var r=t[1]-t[0],i=r/e,a=eu.bisect(Hs,i);return a==Hs.length?[n.year,Hi(t.map(function(t){return t/31536e6}),e)[2]]:a?n[i/Hs[a-1]<Hs[a]/i?a-1:a]:[Xs,Hi(t,e)[2]]}return r.invert=function(n){return Ja(t.invert(n))},r.domain=function(n){return arguments.length?(t.domain(n),r):t.domain().map(Ja)},r.nice=function(t,n){function e(e){return!isNaN(e)&&!t.range(e,Ja(+e+1),n).length}var a=r.domain(),u=Ri(a),o=null==t?i(u,10):\"number\"==typeof t&&i(u,t);return o&&(t=o[0],n=o[1]),r.domain(Ui(a,n>1?{floor:function(n){for(;e(n=t.floor(n));)n=Ja(n-1);return n},ceil:function(n){for(;e(n=t.ceil(n));)n=Ja(+n+1);return n}}:t))},r.ticks=function(t,n){var e=Ri(r.domain()),a=null==t?i(e,10):\"number\"==typeof t?i(e,t):!t.range&&[{range:t},n];return a&&(t=a[0],n=a[1]),t.range(e[0],Ja(+e[1]+1),1>n?1:n)},r.tickFormat=function(){return e},r.copy=function(){return Qa(t.copy(),n,e)},qi(r,t)}function Ja(t){return new Date(t)}function tu(t){return JSON.parse(t.responseText)}function nu(t){var n=au.createRange();return n.selectNode(au.body),n.createContextualFragment(t.responseText)}var eu={version:\"3.5.6\"},ru=[].slice,iu=function(t){return ru.call(t)},au=this.document;if(au)try{iu(au.documentElement.childNodes)[0].nodeType}catch(uu){iu=function(t){for(var n=t.length,e=new Array(n);n--;)e[n]=t[n];return e}}if(Date.now||(Date.now=function(){return+new Date}),au)try{au.createElement(\"DIV\").style.setProperty(\"opacity\",0,\"\")}catch(ou){var su=this.Element.prototype,cu=su.setAttribute,lu=su.setAttributeNS,hu=this.CSSStyleDeclaration.prototype,fu=hu.setProperty;su.setAttribute=function(t,n){cu.call(this,t,n+\"\")},su.setAttributeNS=function(t,n,e){lu.call(this,t,n,e+\"\")},hu.setProperty=function(t,n,e){fu.call(this,t,n+\"\",e)}}eu.ascending=r,eu.descending=function(t,n){return t>n?-1:n>t?1:n>=t?0:0/0},eu.min=function(t,n){var e,r,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(r=t[i])&&r>=r){e=r;break}for(;++i<a;)null!=(r=t[i])&&e>r&&(e=r)}else{for(;++i<a;)if(null!=(r=n.call(t,t[i],i))&&r>=r){e=r;break}for(;++i<a;)null!=(r=n.call(t,t[i],i))&&e>r&&(e=r)}return e},eu.max=function(t,n){var e,r,i=-1,a=t.length;if(1===arguments.length){for(;++i<a;)if(null!=(r=t[i])&&r>=r){e=r;break}for(;++i<a;)null!=(r=t[i])&&r>e&&(e=r)}else{for(;++i<a;)if(null!=(r=n.call(t,t[i],i))&&r>=r){e=r;break}for(;++i<a;)null!=(r=n.call(t,t[i],i))&&r>e&&(e=r)}return e},eu.extent=function(t,n){var e,r,i,a=-1,u=t.length;if(1===arguments.length){for(;++a<u;)if(null!=(r=t[a])&&r>=r){e=i=r;break}for(;++a<u;)null!=(r=t[a])&&(e>r&&(e=r),r>i&&(i=r))}else{for(;++a<u;)if(null!=(r=n.call(t,t[a],a))&&r>=r){e=i=r;break}for(;++a<u;)null!=(r=n.call(t,t[a],a))&&(e>r&&(e=r),r>i&&(i=r))}return[e,i]},eu.sum=function(t,n){var e,r=0,i=t.length,u=-1;if(1===arguments.length)for(;++u<i;)a(e=+t[u])&&(r+=e);else for(;++u<i;)a(e=+n.call(t,t[u],u))&&(r+=e);return r},eu.mean=function(t,n){var e,r=0,u=t.length,o=-1,s=u;if(1===arguments.length)for(;++o<u;)a(e=i(t[o]))?r+=e:--s;else for(;++o<u;)a(e=i(n.call(t,t[o],o)))?r+=e:--s;return s?r/s:void 0},eu.quantile=function(t,n){var e=(t.length-1)*n+1,r=Math.floor(e),i=+t[r-1],a=e-r;return a?i+a*(t[r]-i):i},eu.median=function(t,n){var e,u=[],o=t.length,s=-1;if(1===arguments.length)for(;++s<o;)a(e=i(t[s]))&&u.push(e);else for(;++s<o;)a(e=i(n.call(t,t[s],s)))&&u.push(e);return u.length?eu.quantile(u.sort(r),.5):void 0},eu.variance=function(t,n){var e,r,u=t.length,o=0,s=0,c=-1,l=0;if(1===arguments.length)for(;++c<u;)a(e=i(t[c]))&&(r=e-o,o+=r/++l,s+=r*(e-o));else for(;++c<u;)a(e=i(n.call(t,t[c],c)))&&(r=e-o,o+=r/++l,s+=r*(e-o));return l>1?s/(l-1):void 0},eu.deviation=function(){var t=eu.variance.apply(this,arguments);return t?Math.sqrt(t):t};var du=u(r);eu.bisectLeft=du.left,eu.bisect=eu.bisectRight=du.right,eu.bisector=function(t){return u(1===t.length?function(n,e){return r(t(n),e)}:t)},eu.shuffle=function(t,n,e){(a=arguments.length)<3&&(e=t.length,2>a&&(n=0));for(var r,i,a=e-n;a;)i=Math.random()*a--|0,r=t[a+n],t[a+n]=t[i+n],t[i+n]=r;return t},eu.permute=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},eu.pairs=function(t){for(var n,e=0,r=t.length-1,i=t[0],a=new Array(0>r?0:r);r>e;)a[e]=[n=i,i=t[++e]];return a},eu.zip=function(){if(!(r=arguments.length))return[];for(var t=-1,n=eu.min(arguments,o),e=new Array(n);++t<n;)for(var r,i=-1,a=e[t]=new Array(r);++i<r;)a[i]=arguments[i][t];return e},eu.transpose=function(t){return eu.zip.apply(eu,t)},eu.keys=function(t){var n=[];for(var e in t)n.push(e);return n},eu.values=function(t){var n=[];for(var e in t)n.push(t[e]);return n},eu.entries=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},eu.merge=function(t){for(var n,e,r,i=t.length,a=-1,u=0;++a<i;)u+=t[a].length;for(e=new Array(u);--i>=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e};var pu=Math.abs;eu.range=function(t,n,e){if(arguments.length<3&&(e=1,arguments.length<2&&(n=t,t=0)),(n-t)/e===1/0)throw new Error(\"infinite range\");var r,i=[],a=s(pu(e)),u=-1;if(t*=a,n*=a,e*=a,0>e)for(;(r=t+e*++u)>n;)i.push(r/a);else for(;(r=t+e*++u)<n;)i.push(r/a);return i},eu.map=function(t,n){var e=new l;if(t instanceof l)t.forEach(function(t,n){e.set(t,n)});else if(Array.isArray(t)){var r,i=-1,a=t.length;if(1===arguments.length)for(;++i<a;)e.set(i,t[i]);else for(;++i<a;)e.set(n.call(t,r=t[i],i),r)}else for(var u in t)e.set(u,t[u]);return e};var gu=\"__proto__\",yu=\"\\x00\";c(l,{has:d,get:function(t){return this._[h(t)]},set:function(t,n){return this._[h(t)]=n},remove:p,keys:g,values:function(){var t=[];for(var n in this._)t.push(this._[n]);return t},entries:function(){var t=[];for(var n in this._)t.push({key:f(n),value:this._[n]});return t},size:y,empty:m,forEach:function(t){for(var n in this._)t.call(this,f(n),this._[n])}}),eu.nest=function(){function t(n,u,o){if(o>=a.length)return r?r.call(i,u):e?u.sort(e):u;for(var s,c,h,f,d=-1,p=u.length,g=a[o++],y=new l;++d<p;)(f=y.get(s=g(c=u[d])))?f.push(c):y.set(s,[c]);return n?(c=n(),h=function(e,r){c.set(e,t(n,r,o))}):(c={},h=function(e,r){c[e]=t(n,r,o)}),y.forEach(h),c}function n(t,e){if(e>=a.length)return t;var r=[],i=u[e++];return t.forEach(function(t,i){r.push({key:t,values:n(i,e)})}),i?r.sort(function(t,n){return i(t.key,n.key)}):r}var e,r,i={},a=[],u=[];return i.map=function(n,e){return t(e,n,0)},i.entries=function(e){return n(t(eu.map,e,0),0)},i.key=function(t){return a.push(t),i},i.sortKeys=function(t){return u[a.length-1]=t,i},i.sortValues=function(t){return e=t,i},i.rollup=function(t){return r=t,i},i},eu.set=function(t){var n=new v;if(t)for(var e=0,r=t.length;r>e;++e)n.add(t[e]);return n},c(v,{has:d,add:function(t){return this._[h(t+=\"\")]=!0,t},remove:p,values:g,size:y,empty:m,forEach:function(t){for(var n in this._)t.call(this,f(n))}}),eu.behavior={},eu.rebind=function(t,n){for(var e,r=1,i=arguments.length;++r<i;)t[e=arguments[r]]=b(t,n,n[e]);return t};var mu=[\"webkit\",\"ms\",\"moz\",\"Moz\",\"o\",\"O\"];eu.dispatch=function(){for(var t=new A,n=-1,e=arguments.length;++n<e;)t[arguments[n]]=k(t);return t},A.prototype.on=function(t,n){var e=t.indexOf(\".\"),r=\"\";if(e>=0&&(r=t.slice(e+1),t=t.slice(0,e)),t)return arguments.length<2?this[t].on(r):this[t].on(r,n);if(2===arguments.length){if(null==n)for(t in this)this.hasOwnProperty(t)&&this[t].on(r,null);return this}},eu.event=null,eu.requote=function(t){return t.replace(vu,\"\\\\$&\")};var vu=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g,_u={}.__proto__?function(t,n){t.__proto__=n}:function(t,n){for(var e in n)t[e]=n[e]},bu=function(t,n){return n.querySelector(t)},xu=function(t,n){return n.querySelectorAll(t)},wu=function(t,n){var e=t.matches||t[x(t,\"matchesSelector\")];return(wu=function(t,n){return e.call(t,n)})(t,n)};\"function\"==typeof Sizzle&&(bu=function(t,n){return Sizzle(t,n)[0]||null},xu=Sizzle,wu=Sizzle.matchesSelector),eu.selection=function(){return eu.select(au.documentElement)};var Au=eu.selection.prototype=[];Au.select=function(t){var n,e,r,i,a=[];t=C(t);for(var u=-1,o=this.length;++u<o;){a.push(n=[]),n.parentNode=(r=this[u]).parentNode;for(var s=-1,c=r.length;++s<c;)(i=r[s])?(n.push(e=t.call(i,i.__data__,s,u)),e&&\"__data__\"in i&&(e.__data__=i.__data__)):n.push(null)}return D(a)},Au.selectAll=function(t){var n,e,r=[];t=T(t);for(var i=-1,a=this.length;++i<a;)for(var u=this[i],o=-1,s=u.length;++o<s;)(e=u[o])&&(r.push(n=iu(t.call(e,e.__data__,o,i))),n.parentNode=e);return D(r)};var ku={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};eu.ns={prefix:ku,qualify:function(t){var n=t.indexOf(\":\"),e=t;return n>=0&&(e=t.slice(0,n),t=t.slice(n+1)),ku.hasOwnProperty(e)?{space:ku[e],local:t}:t}},Au.attr=function(t,n){if(arguments.length<2){if(\"string\"==typeof t){var e=this.node();return t=eu.ns.qualify(t),t.local?e.getAttributeNS(t.space,t.local):e.getAttribute(t)}for(n in t)this.each(F(n,t[n]));return this}return this.each(F(t,n))},Au.classed=function(t,n){if(arguments.length<2){if(\"string\"==typeof t){var e=this.node(),r=(t=I(t)).length,i=-1;if(n=e.classList){for(;++i<r;)if(!n.contains(t[i]))return!1}else for(n=e.getAttribute(\"class\");++i<r;)if(!L(t[i]).test(n))return!1;return!0}for(n in t)this.each(B(n,t[n]));return this}return this.each(B(t,n))},Au.style=function(t,n,r){var i=arguments.length;if(3>i){if(\"string\"!=typeof t){2>i&&(n=\"\");for(r in t)this.each(P(r,t[r],n));return this}if(2>i){var a=this.node();return e(a).getComputedStyle(a,null).getPropertyValue(t)}r=\"\"}return this.each(P(t,n,r))},Au.property=function(t,n){if(arguments.length<2){if(\"string\"==typeof t)return this.node()[t];for(n in t)this.each(R(n,t[n]));return this}return this.each(R(t,n))},Au.text=function(t){return arguments.length?this.each(\"function\"==typeof t?function(){var n=t.apply(this,arguments);this.textContent=null==n?\"\":n}:null==t?function(){this.textContent=\"\"}:function(){this.textContent=t}):this.node().textContent},Au.html=function(t){return arguments.length?this.each(\"function\"==typeof t?function(){var n=t.apply(this,arguments);this.innerHTML=null==n?\"\":n}:null==t?function(){this.innerHTML=\"\"}:function(){this.innerHTML=t}):this.node().innerHTML},Au.append=function(t){return t=j(t),this.select(function(){return this.appendChild(t.apply(this,arguments))})},Au.insert=function(t,n){return t=j(t),n=C(n),this.select(function(){return this.insertBefore(t.apply(this,arguments),n.apply(this,arguments)||null)})},Au.remove=function(){return this.each(Y)},Au.data=function(t,n){function e(t,e){var r,i,a,u=t.length,h=e.length,f=Math.min(u,h),d=new Array(h),p=new Array(h),g=new Array(u);if(n){var y,m=new l,v=new Array(u);for(r=-1;++r<u;)m.has(y=n.call(i=t[r],i.__data__,r))?g[r]=i:m.set(y,i),v[r]=y;for(r=-1;++r<h;)(i=m.get(y=n.call(e,a=e[r],r)))?i!==!0&&(d[r]=i,i.__data__=a):p[r]=U(a),m.set(y,!0);for(r=-1;++r<u;)m.get(v[r])!==!0&&(g[r]=t[r])}else{for(r=-1;++r<f;)i=t[r],a=e[r],i?(i.__data__=a,d[r]=i):p[r]=U(a);for(;h>r;++r)p[r]=U(e[r]);for(;u>r;++r)g[r]=t[r]}p.update=d,p.parentNode=d.parentNode=g.parentNode=t.parentNode,o.push(p),s.push(d),c.push(g)}var r,i,a=-1,u=this.length;if(!arguments.length){for(t=new Array(u=(r=this[0]).length);++a<u;)(i=r[a])&&(t[a]=i.__data__);return t}var o=q([]),s=D([]),c=D([]);if(\"function\"==typeof t)for(;++a<u;)e(r=this[a],t.call(r,r.parentNode.__data__,a));else for(;++a<u;)e(r=this[a],t);return s.enter=function(){return o},s.exit=function(){return c},s},Au.datum=function(t){return arguments.length?this.property(\"__data__\",t):this.property(\"__data__\")},Au.filter=function(t){var n,e,r,i=[];\"function\"!=typeof t&&(t=$(t));for(var a=0,u=this.length;u>a;a++){i.push(n=[]),n.parentNode=(e=this[a]).parentNode;for(var o=0,s=e.length;s>o;o++)(r=e[o])&&t.call(r,r.__data__,o,a)&&n.push(r)}return D(i)},Au.order=function(){for(var t=-1,n=this.length;++t<n;)for(var e,r=this[t],i=r.length-1,a=r[i];--i>=0;)(e=r[i])&&(a&&a!==e.nextSibling&&a.parentNode.insertBefore(e,a),a=e);return this},Au.sort=function(t){t=W.apply(this,arguments);for(var n=-1,e=this.length;++n<e;)this[n].sort(t);return this.order()},Au.each=function(t){return z(this,function(n,e,r){t.call(n,n.__data__,e,r)})},Au.call=function(t){var n=iu(arguments);return t.apply(n[0]=this,n),this},Au.empty=function(){return!this.node()},Au.node=function(){for(var t=0,n=this.length;n>t;t++)for(var e=this[t],r=0,i=e.length;i>r;r++){var a=e[r];if(a)return a}return null},Au.size=function(){var t=0;return z(this,function(){++t}),t};var Eu=[];eu.selection.enter=q,eu.selection.enter.prototype=Eu,Eu.append=Au.append,Eu.empty=Au.empty,Eu.node=Au.node,Eu.call=Au.call,Eu.size=Au.size,Eu.select=function(t){for(var n,e,r,i,a,u=[],o=-1,s=this.length;++o<s;){r=(i=this[o]).update,u.push(n=[]),n.parentNode=i.parentNode;for(var c=-1,l=i.length;++c<l;)(a=i[c])?(n.push(r[c]=e=t.call(i.parentNode,a.__data__,c,o)),e.__data__=a.__data__):n.push(null)}return D(u)},Eu.insert=function(t,n){return arguments.length<2&&(n=G(this)),Au.insert.call(this,t,n)},eu.select=function(n){var e;return\"string\"==typeof n?(e=[bu(n,au)],e.parentNode=au.documentElement):(e=[n],e.parentNode=t(n)),D([e])},eu.selectAll=function(t){var n;return\"string\"==typeof t?(n=iu(xu(t,au)),n.parentNode=au.documentElement):(n=t,n.parentNode=null),D([n])},Au.on=function(t,n,e){var r=arguments.length;if(3>r){if(\"string\"!=typeof t){2>r&&(n=!1);for(e in t)this.each(H(e,t[e],n));return this}if(2>r)return(r=this.node()[\"__on\"+t])&&r._;e=!1}return this.each(H(t,n,e))};var Mu=eu.map({mouseenter:\"mouseover\",mouseleave:\"mouseout\"});au&&Mu.forEach(function(t){\"on\"+t in au&&Mu.remove(t)});var Su,Du=0;eu.mouse=function(t){return K(t,M())};var Cu=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;eu.touch=function(t,n,e){if(arguments.length<3&&(e=n,n=M().changedTouches),n)for(var r,i=0,a=n.length;a>i;++i)if((r=n[i]).identifier===e)return K(t,r)},eu.behavior.drag=function(){function t(){this.on(\"mousedown.drag\",a).on(\"touchstart.drag\",u)}function n(t,n,e,a,u){return function(){function o(){var t,e,r=n(f,g);r&&(t=r[0]-_[0],e=r[1]-_[1],p|=t|e,_=r,d({type:\"drag\",x:r[0]+c[0],y:r[1]+c[1],dx:t,dy:e}))}function s(){n(f,g)&&(m.on(a+y,null).on(u+y,null),v(p&&eu.event.target===h),d({type:\"dragend\"}))}var c,l=this,h=eu.event.target,f=l.parentNode,d=r.of(l,arguments),p=0,g=t(),y=\".drag\"+(null==g?\"\":\"-\"+g),m=eu.select(e(h)).on(a+y,o).on(u+y,s),v=X(h),_=n(f,g);i?(c=i.apply(l,arguments),c=[c.x-_[0],c.y-_[1]]):c=[0,0],d({type:\"dragstart\"})}}var r=S(t,\"drag\",\"dragstart\",\"dragend\"),i=null,a=n(w,eu.mouse,e,\"mousemove\",\"mouseup\"),u=n(Q,eu.touch,_,\"touchmove\",\"touchend\");return t.origin=function(n){return arguments.length?(i=n,t):i},eu.rebind(t,r,\"on\")},eu.touches=function(t,n){return arguments.length<2&&(n=M().touches),n?iu(n).map(function(n){var e=K(t,n);return e.identifier=n.identifier,e}):[]};var Tu=1e-6,Fu=Tu*Tu,Ou=Math.PI,Lu=2*Ou,Iu=Lu-Tu,Bu=Ou/2,Nu=Ou/180,Pu=180/Ou,Ru=Math.SQRT2,ju=2,Yu=4;eu.interpolateZoom=function(t,n){function e(t){var n=t*v;if(m){var e=it(g),u=a/(ju*f)*(e*at(Ru*n+g)-rt(g));return[r+u*c,i+u*l,a*e/it(Ru*n+g)]}return[r+t*c,i+t*l,a*Math.exp(Ru*n)]}var r=t[0],i=t[1],a=t[2],u=n[0],o=n[1],s=n[2],c=u-r,l=o-i,h=c*c+l*l,f=Math.sqrt(h),d=(s*s-a*a+Yu*h)/(2*a*ju*f),p=(s*s-a*a-Yu*h)/(2*s*ju*f),g=Math.log(Math.sqrt(d*d+1)-d),y=Math.log(Math.sqrt(p*p+1)-p),m=y-g,v=(m||Math.log(s/a))/Ru;return e.duration=1e3*v,e},eu.behavior.zoom=function(){function t(t){t.on(F,h).on($u+\".zoom\",d).on(\"dblclick.zoom\",p).on(I,f)}function n(t){return[(t[0]-k.x)/k.k,(t[1]-k.y)/k.k]}function r(t){return[t[0]*k.k+k.x,t[1]*k.k+k.y]}function i(t){k.k=Math.max(D[0],Math.min(D[1],t))}function a(t,n){n=r(n),k.x+=t[0]-n[0],k.y+=t[1]-n[1]}function u(n,e,r,u){n.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,u)),a(y=e,r),n=eu.select(n),C>0&&(n=n.transition().duration(C)),n.call(t.event)}function o(){x&&x.domain(b.range().map(function(t){return(t-k.x)/k.k}).map(b.invert)),A&&A.domain(w.range().map(function(t){return(t-k.y)/k.k}).map(w.invert))}function s(t){T++||t({type:\"zoomstart\"})}function c(t){o(),t({type:\"zoom\",scale:k.k,translate:[k.x,k.y]})}function l(t){--T||(t({type:\"zoomend\"}),y=null)}function h(){function t(){h=1,a(eu.mouse(i),d),c(o)}function r(){f.on(O,null).on(L,null),p(h&&eu.event.target===u),l(o)}var i=this,u=eu.event.target,o=B.of(i,arguments),h=0,f=eu.select(e(i)).on(O,t).on(L,r),d=n(eu.mouse(i)),p=X(i);Ps.call(i),s(o)}function f(){function t(){var t=eu.touches(p);return d=k.k,t.forEach(function(t){t.identifier in y&&(y[t.identifier]=n(t))}),t}function e(){var n=eu.event.target;eu.select(n).on(b,r).on(x,o),w.push(n);for(var e=eu.event.changedTouches,i=0,a=e.length;a>i;++i)y[e[i].identifier]=null;var s=t(),c=Date.now();if(1===s.length){if(500>c-_){var l=s[0];u(p,l,y[l.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),E()}_=c}else if(s.length>1){var l=s[0],h=s[1],f=l[0]-h[0],d=l[1]-h[1];m=f*f+d*d}}function r(){var t,n,e,r,u=eu.touches(p);Ps.call(p);for(var o=0,s=u.length;s>o;++o,r=null)if(e=u[o],r=y[e.identifier]){if(n)break;t=e,n=r}if(r){var l=(l=e[0]-t[0])*l+(l=e[1]-t[1])*l,h=m&&Math.sqrt(l/m);t=[(t[0]+e[0])/2,(t[1]+e[1])/2],n=[(n[0]+r[0])/2,(n[1]+r[1])/2],i(h*d)}_=null,a(t,n),c(g)}function o(){if(eu.event.touches.length){for(var n=eu.event.changedTouches,e=0,r=n.length;r>e;++e)delete y[n[e].identifier];for(var i in y)return void t()}eu.selectAll(w).on(v,null),A.on(F,h).on(I,f),M(),l(g)}var d,p=this,g=B.of(p,arguments),y={},m=0,v=\".zoom-\"+eu.event.changedTouches[0].identifier,b=\"touchmove\"+v,x=\"touchend\"+v,w=[],A=eu.select(p),M=X(p);e(),s(g),A.on(F,null).on(I,e)}function d(){var t=B.of(this,arguments);v?clearTimeout(v):(Ps.call(this),g=n(y=m||eu.mouse(this)),s(t)),v=setTimeout(function(){v=null,l(t)},50),E(),i(Math.pow(2,.002*Uu())*k.k),a(y,g),c(t)}function p(){var t=eu.mouse(this),e=Math.log(k.k)/Math.LN2;u(this,t,n(t),eu.event.shiftKey?Math.ceil(e)-1:Math.floor(e)+1)}var g,y,m,v,_,b,x,w,A,k={x:0,y:0,k:1},M=[960,500],D=Wu,C=250,T=0,F=\"mousedown.zoom\",O=\"mousemove.zoom\",L=\"mouseup.zoom\",I=\"touchstart.zoom\",B=S(t,\"zoomstart\",\"zoom\",\"zoomend\");return $u||($u=\"onwheel\"in au?(Uu=function(){return-eu.event.deltaY*(eu.event.deltaMode?120:1)},\"wheel\"):\"onmousewheel\"in au?(Uu=function(){return eu.event.wheelDelta},\"mousewheel\"):(Uu=function(){return-eu.event.detail},\"MozMousePixelScroll\")),t.event=function(t){t.each(function(){var t=B.of(this,arguments),n=k;Bs?eu.select(this).transition().each(\"start.zoom\",function(){k=this.__chart__||{x:0,y:0,k:1},s(t)}).tween(\"zoom:zoom\",function(){var e=M[0],r=M[1],i=y?y[0]:e/2,a=y?y[1]:r/2,u=eu.interpolateZoom([(i-k.x)/k.k,(a-k.y)/k.k,e/k.k],[(i-n.x)/n.k,(a-n.y)/n.k,e/n.k]);return function(n){var r=u(n),o=e/r[2];this.__chart__=k={x:i-r[0]*o,y:a-r[1]*o,k:o},c(t)}}).each(\"interrupt.zoom\",function(){l(t)}).each(\"end.zoom\",function(){l(t)}):(this.__chart__=k,s(t),c(t),l(t))})},t.translate=function(n){return arguments.length?(k={x:+n[0],y:+n[1],k:k.k},o(),t):[k.x,k.y]},t.scale=function(n){return arguments.length?(k={x:k.x,y:k.y,k:+n},o(),t):k.k},t.scaleExtent=function(n){return arguments.length?(D=null==n?Wu:[+n[0],+n[1]],t):D},t.center=function(n){return arguments.length?(m=n&&[+n[0],+n[1]],t):m},t.size=function(n){return arguments.length?(M=n&&[+n[0],+n[1]],t):M},t.duration=function(n){return arguments.length?(C=+n,t):C},t.x=function(n){return arguments.length?(x=n,b=n.copy(),k={x:0,y:0,k:1},t):x},t.y=function(n){return arguments.length?(A=n,w=n.copy(),k={x:0,y:0,k:1},t):A},eu.rebind(t,B,\"on\")};var Uu,$u,Wu=[0,1/0];eu.color=ot,ot.prototype.toString=function(){return this.rgb()+\"\"},eu.hsl=st;var zu=st.prototype=new ot;zu.brighter=function(t){return t=Math.pow(.7,arguments.length?t:1),new st(this.h,this.s,this.l/t)},zu.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new st(this.h,this.s,t*this.l)},zu.rgb=function(){return ct(this.h,this.s,this.l)},eu.hcl=lt;var qu=lt.prototype=new ot;qu.brighter=function(t){return new lt(this.h,this.c,Math.min(100,this.l+Gu*(arguments.length?t:1)))},qu.darker=function(t){return new lt(this.h,this.c,Math.max(0,this.l-Gu*(arguments.length?t:1)))},qu.rgb=function(){return ht(this.h,this.c,this.l).rgb()},eu.lab=ft;var Gu=18,Hu=.95047,Vu=1,Zu=1.08883,Xu=ft.prototype=new ot;Xu.brighter=function(t){return new ft(Math.min(100,this.l+Gu*(arguments.length?t:1)),this.a,this.b)},Xu.darker=function(t){return new ft(Math.max(0,this.l-Gu*(arguments.length?t:1)),this.a,this.b)},Xu.rgb=function(){return dt(this.l,this.a,this.b)},eu.rgb=vt;var Ku=vt.prototype=new ot;Ku.brighter=function(t){t=Math.pow(.7,arguments.length?t:1);var n=this.r,e=this.g,r=this.b,i=30;return n||e||r?(n&&i>n&&(n=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new vt(Math.min(255,n/t),Math.min(255,e/t),Math.min(255,r/t))):new vt(i,i,i)},Ku.darker=function(t){return t=Math.pow(.7,arguments.length?t:1),new vt(t*this.r,t*this.g,t*this.b)},Ku.hsl=function(){return At(this.r,this.g,this.b)},Ku.toString=function(){return\"#\"+xt(this.r)+xt(this.g)+xt(this.b)};var Qu=eu.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Qu.forEach(function(t,n){Qu.set(t,_t(n))}),eu.functor=St,eu.xhr=Dt(_),eu.dsv=function(t,n){function e(t,e,a){arguments.length<3&&(a=e,e=null);var u=Ct(t,n,null==e?r:i(e),a);return u.row=function(t){return arguments.length?u.response(null==(e=t)?r:i(t)):e},u}function r(t){return e.parse(t.responseText)}function i(t){return function(n){return e.parse(n.responseText,t)}}function a(n){return n.map(u).join(t)}function u(t){return o.test(t)?'\"'+t.replace(/\\\"/g,'\"\"')+'\"':t}var o=new RegExp('[\"'+t+\"\\n]\"),s=t.charCodeAt(0);return e.parse=function(t,n){var r;return e.parseRows(t,function(t,e){if(r)return r(t,e-1);var i=new Function(\"d\",\"return {\"+t.map(function(t,n){return JSON.stringify(t)+\": d[\"+n+\"]\"}).join(\",\")+\"}\");r=n?function(t,e){return n(i(t),e)}:i})},e.parseRows=function(t,n){function e(){if(l>=c)return u;if(i)return i=!1,a;var n=l;if(34===t.charCodeAt(n)){for(var e=n;e++<c;)if(34===t.charCodeAt(e)){if(34!==t.charCodeAt(e+1))break;++e}l=e+2;var r=t.charCodeAt(e+1);return 13===r?(i=!0,10===t.charCodeAt(e+2)&&++l):10===r&&(i=!0),t.slice(n+1,e).replace(/\"\"/g,'\"')}for(;c>l;){var r=t.charCodeAt(l++),o=1;if(10===r)i=!0;else if(13===r)i=!0,10===t.charCodeAt(l)&&(++l,++o);else if(r!==s)continue;return t.slice(n,l-o)}return t.slice(n)}for(var r,i,a={},u={},o=[],c=t.length,l=0,h=0;(r=e())!==u;){for(var f=[];r!==a&&r!==u;)f.push(r),r=e();n&&null==(f=n(f,h++))||o.push(f)}return o},e.format=function(n){if(Array.isArray(n[0]))return e.formatRows(n);var r=new v,i=[];return n.forEach(function(t){for(var n in t)r.has(n)||i.push(r.add(n))}),[i.map(u).join(t)].concat(n.map(function(n){return i.map(function(t){return u(n[t])}).join(t)})).join(\"\\n\")},e.formatRows=function(t){return t.map(a).join(\"\\n\")},e},eu.csv=eu.dsv(\",\",\"text/csv\"),eu.tsv=eu.dsv(\"\t\",\"text/tab-separated-values\");var Ju,to,no,eo,ro,io=this[x(this,\"requestAnimationFrame\")]||function(t){setTimeout(t,17)};eu.timer=function(t,n,e){var r=arguments.length;2>r&&(n=0),3>r&&(e=Date.now());var i=e+n,a={c:t,t:i,f:!1,n:null};to?to.n=a:Ju=a,to=a,no||(eo=clearTimeout(eo),no=1,io(Ot))},eu.timer.flush=function(){Lt(),It()},eu.round=function(t,n){return n?Math.round(t*(n=Math.pow(10,n)))/n:Math.round(t)};var ao=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"].map(Nt);eu.formatPrefix=function(t,n){var e=0;return t&&(0>t&&(t*=-1),n&&(t=eu.round(t,Bt(t,n))),e=1+Math.floor(1e-12+Math.log(t)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),ao[8+e/3]};var uo=/(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i,oo=eu.map({b:function(t){return t.toString(2)},c:function(t){return String.fromCharCode(t)},o:function(t){return t.toString(8)},x:function(t){return t.toString(16)},X:function(t){return t.toString(16).toUpperCase()},g:function(t,n){return t.toPrecision(n)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},r:function(t,n){return(t=eu.round(t,Bt(t,n))).toFixed(Math.max(0,Math.min(20,Bt(t*(1+1e-15),n))))}}),so=eu.time={},co=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lo.setUTCDate.apply(this._,arguments)},setDay:function(){lo.setUTCDay.apply(this._,arguments)},setFullYear:function(){lo.setUTCFullYear.apply(this._,arguments)},setHours:function(){lo.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lo.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lo.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lo.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lo.setUTCSeconds.apply(this._,arguments)},setTime:function(){lo.setTime.apply(this._,arguments)}};var lo=Date.prototype;so.year=Yt(function(t){return t=so.day(t),t.setMonth(0,1),t},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t){return t.getFullYear()}),so.years=so.year.range,so.years.utc=so.year.utc.range,so.day=Yt(function(t){var n=new co(2e3,0);return n.setFullYear(t.getFullYear(),t.getMonth(),t.getDate()),n},function(t,n){t.setDate(t.getDate()+n)},function(t){return t.getDate()-1}),so.days=so.day.range,so.days.utc=so.day.utc.range,so.dayOfYear=function(t){var n=so.year(t);return Math.floor((t-n-6e4*(t.getTimezoneOffset()-n.getTimezoneOffset()))/864e5)},[\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"].forEach(function(t,n){n=7-n;var e=so[t]=Yt(function(t){return(t=so.day(t)).setDate(t.getDate()-(t.getDay()+n)%7),t},function(t,n){t.setDate(t.getDate()+7*Math.floor(n))},function(t){var e=so.year(t).getDay();return Math.floor((so.dayOfYear(t)+(e+n)%7)/7)-(e!==n)});so[t+\"s\"]=e.range,so[t+\"s\"].utc=e.utc.range,so[t+\"OfYear\"]=function(t){var e=so.year(t).getDay();return Math.floor((so.dayOfYear(t)+(e+n)%7)/7);\n\n}}),so.week=so.sunday,so.weeks=so.sunday.range,so.weeks.utc=so.sunday.utc.range,so.weekOfYear=so.sundayOfYear;var ho={\"-\":\"\",_:\" \",0:\"0\"},fo=/^\\s*\\d+/,po=/^%/;eu.locale=function(t){return{numberFormat:Pt(t),timeFormat:$t(t)}};var go=eu.locale({decimal:\".\",thousands:\",\",grouping:[3],currency:[\"$\",\"\"],dateTime:\"%a %b %e %X %Y\",date:\"%m/%d/%Y\",time:\"%H:%M:%S\",periods:[\"AM\",\"PM\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]});eu.format=go.numberFormat,eu.geo={},ln.prototype={s:0,t:0,add:function(t){hn(t,this.t,yo),hn(yo.s,this.s,this),this.s?this.t+=yo.t:this.s=yo.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var yo=new ln;eu.geo.stream=function(t,n){t&&mo.hasOwnProperty(t.type)?mo[t.type](t,n):fn(t,n)};var mo={Feature:function(t,n){fn(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)fn(e[r].geometry,n)}},vo={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){dn(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)dn(e[r],n,0)},Polygon:function(t,n){pn(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)pn(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)fn(e[r],n)}};eu.geo.area=function(t){return _o=0,eu.geo.stream(t,xo),_o};var _o,bo=new ln,xo={sphere:function(){_o+=4*Ou},point:w,lineStart:w,lineEnd:w,polygonStart:function(){bo.reset(),xo.lineStart=gn},polygonEnd:function(){var t=2*bo;_o+=0>t?4*Ou+t:t,xo.lineStart=xo.lineEnd=xo.point=w}};eu.geo.bounds=function(){function t(t,n){_.push(b=[l=t,f=t]),h>n&&(h=n),n>d&&(d=n)}function n(n,e){var r=yn([n*Nu,e*Nu]);if(m){var i=vn(m,r),a=[i[1],-i[0],0],u=vn(a,i);xn(u),u=wn(u);var s=n-p,c=s>0?1:-1,g=u[0]*Pu*c,y=pu(s)>180;if(y^(g>c*p&&c*n>g)){var v=u[1]*Pu;v>d&&(d=v)}else if(g=(g+360)%360-180,y^(g>c*p&&c*n>g)){var v=-u[1]*Pu;h>v&&(h=v)}else h>e&&(h=e),e>d&&(d=e);y?p>n?o(l,n)>o(l,f)&&(f=n):o(n,f)>o(l,f)&&(l=n):f>=l?(l>n&&(l=n),n>f&&(f=n)):n>p?o(l,n)>o(l,f)&&(f=n):o(n,f)>o(l,f)&&(l=n)}else t(n,e);m=r,p=n}function e(){x.point=n}function r(){b[0]=l,b[1]=f,x.point=t,m=null}function i(t,e){if(m){var r=t-p;v+=pu(r)>180?r+(r>0?360:-360):r}else g=t,y=e;xo.point(t,e),n(t,e)}function a(){xo.lineStart()}function u(){i(g,y),xo.lineEnd(),pu(v)>Tu&&(l=-(f=180)),b[0]=l,b[1]=f,m=null}function o(t,n){return(n-=t)<0?n+360:n}function s(t,n){return t[0]-n[0]}function c(t,n){return n[0]<=n[1]?n[0]<=t&&t<=n[1]:t<n[0]||n[1]<t}var l,h,f,d,p,g,y,m,v,_,b,x={point:t,lineStart:e,lineEnd:r,polygonStart:function(){x.point=i,x.lineStart=a,x.lineEnd=u,v=0,xo.polygonStart()},polygonEnd:function(){xo.polygonEnd(),x.point=t,x.lineStart=e,x.lineEnd=r,0>bo?(l=-(f=180),h=-(d=90)):v>Tu?d=90:-Tu>v&&(h=-90),b[0]=l,b[1]=f}};return function(t){d=f=-(l=h=1/0),_=[],eu.geo.stream(t,x);var n=_.length;if(n){_.sort(s);for(var e,r=1,i=_[0],a=[i];n>r;++r)e=_[r],c(e[0],i)||c(e[1],i)?(o(i[0],e[1])>o(i[0],i[1])&&(i[1]=e[1]),o(e[0],i[1])>o(i[0],i[1])&&(i[0]=e[0])):a.push(i=e);for(var u,e,p=-(1/0),n=a.length-1,r=0,i=a[n];n>=r;i=e,++r)e=a[r],(u=o(i[1],e[0]))>p&&(p=u,l=e[0],f=i[1])}return _=b=null,l===1/0||h===1/0?[[0/0,0/0],[0/0,0/0]]:[[l,h],[f,d]]}}(),eu.geo.centroid=function(t){wo=Ao=ko=Eo=Mo=So=Do=Co=To=Fo=Oo=0,eu.geo.stream(t,Lo);var n=To,e=Fo,r=Oo,i=n*n+e*e+r*r;return Fu>i&&(n=So,e=Do,r=Co,Tu>Ao&&(n=ko,e=Eo,r=Mo),i=n*n+e*e+r*r,Fu>i)?[0/0,0/0]:[Math.atan2(e,n)*Pu,et(r/Math.sqrt(i))*Pu]};var wo,Ao,ko,Eo,Mo,So,Do,Co,To,Fo,Oo,Lo={sphere:w,point:kn,lineStart:Mn,lineEnd:Sn,polygonStart:function(){Lo.lineStart=Dn},polygonEnd:function(){Lo.lineStart=Mn}},Io=In(Tn,Rn,Yn,[-Ou,-Ou/2]),Bo=1e9;eu.geo.clipExtent=function(){var t,n,e,r,i,a,u={stream:function(t){return i&&(i.valid=!1),i=a(t),i.valid=!0,i},extent:function(o){return arguments.length?(a=zn(t=+o[0][0],n=+o[0][1],e=+o[1][0],r=+o[1][1]),i&&(i.valid=!1,i=null),u):[[t,n],[e,r]]}};return u.extent([[0,0],[960,500]])},(eu.geo.conicEqualArea=function(){return qn(Gn)}).raw=Gn,eu.geo.albers=function(){return eu.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},eu.geo.albersUsa=function(){function t(t){var a=t[0],u=t[1];return n=null,e(a,u),n||(r(a,u),n)||i(a,u),n}var n,e,r,i,a=eu.geo.albers(),u=eu.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o=eu.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),s={point:function(t,e){n=[t,e]}};return t.invert=function(t){var n=a.scale(),e=a.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?u:i>=.166&&.234>i&&r>=-.214&&-.115>r?o:a).invert(t)},t.stream=function(t){var n=a.stream(t),e=u.stream(t),r=o.stream(t);return{point:function(t,i){n.point(t,i),e.point(t,i),r.point(t,i)},sphere:function(){n.sphere(),e.sphere(),r.sphere()},lineStart:function(){n.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){n.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){n.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){n.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},t.precision=function(n){return arguments.length?(a.precision(n),u.precision(n),o.precision(n),t):a.precision()},t.scale=function(n){return arguments.length?(a.scale(n),u.scale(.35*n),o.scale(n),t.translate(a.translate())):a.scale()},t.translate=function(n){if(!arguments.length)return a.translate();var c=a.scale(),l=+n[0],h=+n[1];return e=a.translate(n).clipExtent([[l-.455*c,h-.238*c],[l+.455*c,h+.238*c]]).stream(s).point,r=u.translate([l-.307*c,h+.201*c]).clipExtent([[l-.425*c+Tu,h+.12*c+Tu],[l-.214*c-Tu,h+.234*c-Tu]]).stream(s).point,i=o.translate([l-.205*c,h+.212*c]).clipExtent([[l-.214*c+Tu,h+.166*c+Tu],[l-.115*c-Tu,h+.234*c-Tu]]).stream(s).point,t},t.scale(1070)};var No,Po,Ro,jo,Yo,Uo,$o={point:w,lineStart:w,lineEnd:w,polygonStart:function(){Po=0,$o.lineStart=Hn},polygonEnd:function(){$o.lineStart=$o.lineEnd=$o.point=w,No+=pu(Po/2)}},Wo={point:Vn,lineStart:w,lineEnd:w,polygonStart:w,polygonEnd:w},zo={point:Kn,lineStart:Qn,lineEnd:Jn,polygonStart:function(){zo.lineStart=te},polygonEnd:function(){zo.point=Kn,zo.lineStart=Qn,zo.lineEnd=Jn}};eu.geo.path=function(){function t(t){return t&&(\"function\"==typeof o&&a.pointRadius(+o.apply(this,arguments)),u&&u.valid||(u=i(a)),eu.geo.stream(t,u)),a.result()}function n(){return u=null,t}var e,r,i,a,u,o=4.5;return t.area=function(t){return No=0,eu.geo.stream(t,i($o)),No},t.centroid=function(t){return ko=Eo=Mo=So=Do=Co=To=Fo=Oo=0,eu.geo.stream(t,i(zo)),Oo?[To/Oo,Fo/Oo]:Co?[So/Co,Do/Co]:Mo?[ko/Mo,Eo/Mo]:[0/0,0/0]},t.bounds=function(t){return Yo=Uo=-(Ro=jo=1/0),eu.geo.stream(t,i(Wo)),[[Ro,jo],[Yo,Uo]]},t.projection=function(t){return arguments.length?(i=(e=t)?t.stream||re(t):_,n()):e},t.context=function(t){return arguments.length?(a=null==(r=t)?new Zn:new ne(t),\"function\"!=typeof o&&a.pointRadius(o),n()):r},t.pointRadius=function(n){return arguments.length?(o=\"function\"==typeof n?n:(a.pointRadius(+n),+n),t):o},t.projection(eu.geo.albersUsa()).context(null)},eu.geo.transform=function(t){return{stream:function(n){var e=new ie(n);for(var r in t)e[r]=t[r];return e}}},ie.prototype={point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},eu.geo.projection=ue,eu.geo.projectionMutator=oe,(eu.geo.equirectangular=function(){return ue(ce)}).raw=ce.invert=ce,eu.geo.rotation=function(t){function n(n){return n=t(n[0]*Nu,n[1]*Nu),n[0]*=Pu,n[1]*=Pu,n}return t=he(t[0]%360*Nu,t[1]*Nu,t.length>2?t[2]*Nu:0),n.invert=function(n){return n=t.invert(n[0]*Nu,n[1]*Nu),n[0]*=Pu,n[1]*=Pu,n},n},le.invert=ce,eu.geo.circle=function(){function t(){var t=\"function\"==typeof r?r.apply(this,arguments):r,n=he(-t[0]*Nu,-t[1]*Nu,0).invert,i=[];return e(null,null,1,{point:function(t,e){i.push(t=n(t,e)),t[0]*=Pu,t[1]*=Pu}}),{type:\"Polygon\",coordinates:[i]}}var n,e,r=[0,0],i=6;return t.origin=function(n){return arguments.length?(r=n,t):r},t.angle=function(r){return arguments.length?(e=ge((n=+r)*Nu,i*Nu),t):n},t.precision=function(r){return arguments.length?(e=ge(n*Nu,(i=+r)*Nu),t):i},t.angle(90)},eu.geo.distance=function(t,n){var e,r=(n[0]-t[0])*Nu,i=t[1]*Nu,a=n[1]*Nu,u=Math.sin(r),o=Math.cos(r),s=Math.sin(i),c=Math.cos(i),l=Math.sin(a),h=Math.cos(a);return Math.atan2(Math.sqrt((e=h*u)*e+(e=c*l-s*h*o)*e),s*l+c*h*o)},eu.geo.graticule=function(){function t(){return{type:\"MultiLineString\",coordinates:n()}}function n(){return eu.range(Math.ceil(a/y)*y,i,y).map(f).concat(eu.range(Math.ceil(c/m)*m,s,m).map(d)).concat(eu.range(Math.ceil(r/p)*p,e,p).filter(function(t){return pu(t%y)>Tu}).map(l)).concat(eu.range(Math.ceil(o/g)*g,u,g).filter(function(t){return pu(t%m)>Tu}).map(h))}var e,r,i,a,u,o,s,c,l,h,f,d,p=10,g=p,y=90,m=360,v=2.5;return t.lines=function(){return n().map(function(t){return{type:\"LineString\",coordinates:t}})},t.outline=function(){return{type:\"Polygon\",coordinates:[f(a).concat(d(s).slice(1),f(i).reverse().slice(1),d(c).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.majorExtent(n).minorExtent(n):t.minorExtent()},t.majorExtent=function(n){return arguments.length?(a=+n[0][0],i=+n[1][0],c=+n[0][1],s=+n[1][1],a>i&&(n=a,a=i,i=n),c>s&&(n=c,c=s,s=n),t.precision(v)):[[a,c],[i,s]]},t.minorExtent=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],o=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),o>u&&(n=o,o=u,u=n),t.precision(v)):[[r,o],[e,u]]},t.step=function(n){return arguments.length?t.majorStep(n).minorStep(n):t.minorStep()},t.majorStep=function(n){return arguments.length?(y=+n[0],m=+n[1],t):[y,m]},t.minorStep=function(n){return arguments.length?(p=+n[0],g=+n[1],t):[p,g]},t.precision=function(n){return arguments.length?(v=+n,l=me(o,u,90),h=ve(r,e,v),f=me(c,s,90),d=ve(a,i,v),t):v},t.majorExtent([[-180,-90+Tu],[180,90-Tu]]).minorExtent([[-180,-80-Tu],[180,80+Tu]])},eu.geo.greatArc=function(){function t(){return{type:\"LineString\",coordinates:[n||r.apply(this,arguments),e||i.apply(this,arguments)]}}var n,e,r=_e,i=be;return t.distance=function(){return eu.geo.distance(n||r.apply(this,arguments),e||i.apply(this,arguments))},t.source=function(e){return arguments.length?(r=e,n=\"function\"==typeof e?null:e,t):r},t.target=function(n){return arguments.length?(i=n,e=\"function\"==typeof n?null:n,t):i},t.precision=function(){return arguments.length?t:0},t},eu.geo.interpolate=function(t,n){return xe(t[0]*Nu,t[1]*Nu,n[0]*Nu,n[1]*Nu)},eu.geo.length=function(t){return qo=0,eu.geo.stream(t,Go),qo};var qo,Go={sphere:w,point:w,lineStart:we,lineEnd:w,polygonStart:w,polygonEnd:w},Ho=Ae(function(t){return Math.sqrt(2/(1+t))},function(t){return 2*Math.asin(t/2)});(eu.geo.azimuthalEqualArea=function(){return ue(Ho)}).raw=Ho;var Vo=Ae(function(t){var n=Math.acos(t);return n&&n/Math.sin(n)},_);(eu.geo.azimuthalEquidistant=function(){return ue(Vo)}).raw=Vo,(eu.geo.conicConformal=function(){return qn(ke)}).raw=ke,(eu.geo.conicEquidistant=function(){return qn(Ee)}).raw=Ee;var Zo=Ae(function(t){return 1/t},Math.atan);(eu.geo.gnomonic=function(){return ue(Zo)}).raw=Zo,Me.invert=function(t,n){return[t,2*Math.atan(Math.exp(n))-Bu]},(eu.geo.mercator=function(){return Se(Me)}).raw=Me;var Xo=Ae(function(){return 1},Math.asin);(eu.geo.orthographic=function(){return ue(Xo)}).raw=Xo;var Ko=Ae(function(t){return 1/(1+t)},function(t){return 2*Math.atan(t)});(eu.geo.stereographic=function(){return ue(Ko)}).raw=Ko,De.invert=function(t,n){return[-n,2*Math.atan(Math.exp(t))-Bu]},(eu.geo.transverseMercator=function(){var t=Se(De),n=t.center,e=t.rotate;return t.center=function(t){return t?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return t?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90])}).raw=De,eu.geom={},eu.geom.hull=function(t){function n(t){if(t.length<3)return[];var n,i=St(e),a=St(r),u=t.length,o=[],s=[];for(n=0;u>n;n++)o.push([+i.call(this,t[n],n),+a.call(this,t[n],n),n]);for(o.sort(Oe),n=0;u>n;n++)s.push([o[n][0],-o[n][1]]);var c=Fe(o),l=Fe(s),h=l[0]===c[0],f=l[l.length-1]===c[c.length-1],d=[];for(n=c.length-1;n>=0;--n)d.push(t[o[c[n]][2]]);for(n=+h;n<l.length-f;++n)d.push(t[o[l[n]][2]]);return d}var e=Ce,r=Te;return arguments.length?n(t):(n.x=function(t){return arguments.length?(e=t,n):e},n.y=function(t){return arguments.length?(r=t,n):r},n)},eu.geom.polygon=function(t){return _u(t,Qo),t};var Qo=eu.geom.polygon.prototype=[];Qo.area=function(){for(var t,n=-1,e=this.length,r=this[e-1],i=0;++n<e;)t=r,r=this[n],i+=t[1]*r[0]-t[0]*r[1];return.5*i},Qo.centroid=function(t){var n,e,r=-1,i=this.length,a=0,u=0,o=this[i-1];for(arguments.length||(t=-1/(6*this.area()));++r<i;)n=o,o=this[r],e=n[0]*o[1]-o[0]*n[1],a+=(n[0]+o[0])*e,u+=(n[1]+o[1])*e;return[a*t,u*t]},Qo.clip=function(t){for(var n,e,r,i,a,u,o=Be(t),s=-1,c=this.length-Be(this),l=this[c-1];++s<c;){for(n=t.slice(),t.length=0,i=this[s],a=n[(r=n.length-o)-1],e=-1;++e<r;)u=n[e],Le(u,l,i)?(Le(a,l,i)||t.push(Ie(a,u,l,i)),t.push(u)):Le(a,l,i)&&t.push(Ie(a,u,l,i)),a=u;o&&t.push(t[0]),l=i}return t};var Jo,ts,ns,es,rs,is=[],as=[];We.prototype.prepare=function(){for(var t,n=this.edges,e=n.length;e--;)t=n[e].edge,t.b&&t.a||n.splice(e,1);return n.sort(qe),n.length},nr.prototype={start:function(){return this.edge.l===this.site?this.edge.a:this.edge.b},end:function(){return this.edge.l===this.site?this.edge.b:this.edge.a}},er.prototype={insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=ur(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(ir(this,e),t=e,e=t.U),e.C=!1,r.C=!0,ar(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(ar(this,e),t=e,e=t.U),e.C=!1,r.C=!0,ir(this,r))),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,a=t.L,u=t.R;if(e=a?u?ur(u):a:u,i?i.L===t?i.L=e:i.R=e:this._=e,a&&u?(r=e.C,e.C=t.C,e.L=a,a.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(n=i.R,n.C&&(n.C=!1,i.C=!0,ir(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,ar(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,ir(this,i),t=this._;break}}else if(n=i.L,n.C&&(n.C=!1,i.C=!0,ar(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,ir(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,ar(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}},eu.geom.voronoi=function(t){function n(t){var n=new Array(t.length),r=o[0][0],i=o[0][1],a=o[1][0],u=o[1][1];return or(e(t),o).cells.forEach(function(e,o){var s=e.edges,c=e.site,l=n[o]=s.length?s.map(function(t){var n=t.start();return[n.x,n.y]}):c.x>=r&&c.x<=a&&c.y>=i&&c.y<=u?[[r,u],[a,u],[a,i],[r,i]]:[];l.point=t[o]}),n}function e(t){return t.map(function(t,n){return{x:Math.round(a(t,n)/Tu)*Tu,y:Math.round(u(t,n)/Tu)*Tu,i:n}})}var r=Ce,i=Te,a=r,u=i,o=us;return t?n(t):(n.links=function(t){return or(e(t)).edges.filter(function(t){return t.l&&t.r}).map(function(n){return{source:t[n.l.i],target:t[n.r.i]}})},n.triangles=function(t){var n=[];return or(e(t)).cells.forEach(function(e,r){for(var i,a,u=e.site,o=e.edges.sort(qe),s=-1,c=o.length,l=o[c-1].edge,h=l.l===u?l.r:l.l;++s<c;)i=l,a=h,l=o[s].edge,h=l.l===u?l.r:l.l,r<a.i&&r<h.i&&cr(u,a,h)<0&&n.push([t[r],t[a.i],t[h.i]])}),n},n.x=function(t){return arguments.length?(a=St(r=t),n):r},n.y=function(t){return arguments.length?(u=St(i=t),n):i},n.clipExtent=function(t){return arguments.length?(o=null==t?us:t,n):o===us?null:o},n.size=function(t){return arguments.length?n.clipExtent(t&&[[0,0],t]):o===us?null:o&&o[1]},n)};var us=[[-1e6,-1e6],[1e6,1e6]];eu.geom.delaunay=function(t){return eu.geom.voronoi().triangles(t)},eu.geom.quadtree=function(t,n,e,r,i){function a(t){function a(t,n,e,r,i,a,u,o){if(!isNaN(e)&&!isNaN(r))if(t.leaf){var s=t.x,l=t.y;if(null!=s)if(pu(s-e)+pu(l-r)<.01)c(t,n,e,r,i,a,u,o);else{var h=t.point;t.x=t.y=t.point=null,c(t,h,s,l,i,a,u,o),c(t,n,e,r,i,a,u,o)}else t.x=e,t.y=r,t.point=n}else c(t,n,e,r,i,a,u,o)}function c(t,n,e,r,i,u,o,s){var c=.5*(i+o),l=.5*(u+s),h=e>=c,f=r>=l,d=f<<1|h;t.leaf=!1,t=t.nodes[d]||(t.nodes[d]=fr()),h?i=c:o=c,f?u=l:s=l,a(t,n,e,r,i,u,o,s)}var l,h,f,d,p,g,y,m,v,_=St(o),b=St(s);if(null!=n)g=n,y=e,m=r,v=i;else if(m=v=-(g=y=1/0),h=[],f=[],p=t.length,u)for(d=0;p>d;++d)l=t[d],l.x<g&&(g=l.x),l.y<y&&(y=l.y),l.x>m&&(m=l.x),l.y>v&&(v=l.y),h.push(l.x),f.push(l.y);else for(d=0;p>d;++d){var x=+_(l=t[d],d),w=+b(l,d);g>x&&(g=x),y>w&&(y=w),x>m&&(m=x),w>v&&(v=w),h.push(x),f.push(w)}var A=m-g,k=v-y;A>k?v=y+A:m=g+k;var E=fr();if(E.add=function(t){a(E,t,+_(t,++d),+b(t,d),g,y,m,v)},E.visit=function(t){dr(t,E,g,y,m,v)},E.find=function(t){return pr(E,t[0],t[1],g,y,m,v)},d=-1,null==n){for(;++d<p;)a(E,t[d],h[d],f[d],g,y,m,v);--d}else t.forEach(E.add);return h=f=t=l=null,E}var u,o=Ce,s=Te;return(u=arguments.length)?(o=lr,s=hr,3===u&&(i=e,r=n,e=n=0),a(t)):(a.x=function(t){return arguments.length?(o=t,a):o},a.y=function(t){return arguments.length?(s=t,a):s},a.extent=function(t){return arguments.length?(null==t?n=e=r=i=null:(n=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),a):null==n?null:[[n,e],[r,i]]},a.size=function(t){return arguments.length?(null==t?n=e=r=i=null:(n=e=0,r=+t[0],i=+t[1]),a):null==n?null:[r-n,i-e]},a)},eu.interpolateRgb=gr,eu.interpolateObject=yr,eu.interpolateNumber=mr,eu.interpolateString=vr;var os=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,ss=new RegExp(os.source,\"g\");eu.interpolate=_r,eu.interpolators=[function(t,n){var e=typeof n;return(\"string\"===e?Qu.has(n.toLowerCase())||/^(#|rgb\\(|hsl\\()/i.test(n)?gr:vr:n instanceof ot?gr:Array.isArray(n)?br:\"object\"===e&&isNaN(n)?yr:mr)(t,n)}],eu.interpolateArray=br;var cs=function(){return _},ls=eu.map({linear:cs,poly:Sr,quad:function(){return kr},cubic:function(){return Er},sin:function(){return Dr},exp:function(){return Cr},circle:function(){return Tr},elastic:Fr,back:Or,bounce:function(){return Lr}}),hs=eu.map({\"in\":_,out:wr,\"in-out\":Ar,\"out-in\":function(t){return Ar(wr(t))}});eu.ease=function(t){var n=t.indexOf(\"-\"),e=n>=0?t.slice(0,n):t,r=n>=0?t.slice(n+1):\"in\";return e=ls.get(e)||cs,r=hs.get(r)||_,xr(r(e.apply(null,ru.call(arguments,1))))},eu.interpolateHcl=Ir,eu.interpolateHsl=Br,eu.interpolateLab=Nr,eu.interpolateRound=Pr,eu.transform=function(t){var n=au.createElementNS(eu.ns.prefix.svg,\"g\");return(eu.transform=function(t){if(null!=t){n.setAttribute(\"transform\",t);var e=n.transform.baseVal.consolidate()}return new Rr(e?e.matrix:fs)})(t)},Rr.prototype.toString=function(){return\"translate(\"+this.translate+\")rotate(\"+this.rotate+\")skewX(\"+this.skew+\")scale(\"+this.scale+\")\"};var fs={a:1,b:0,c:0,d:1,e:0,f:0};eu.interpolateTransform=$r,eu.layout={},eu.layout.bundle=function(){return function(t){for(var n=[],e=-1,r=t.length;++e<r;)n.push(qr(t[e]));return n}},eu.layout.chord=function(){function t(){var t,c,h,f,d,p={},g=[],y=eu.range(a),m=[];for(e=[],r=[],t=0,f=-1;++f<a;){for(c=0,d=-1;++d<a;)c+=i[f][d];g.push(c),m.push(eu.range(a)),t+=c}for(u&&y.sort(function(t,n){return u(g[t],g[n])}),o&&m.forEach(function(t,n){t.sort(function(t,e){return o(i[n][t],i[n][e])})}),t=(Lu-l*a)/t,c=0,f=-1;++f<a;){for(h=c,d=-1;++d<a;){var v=y[f],_=m[v][d],b=i[v][_],x=c,w=c+=b*t;p[v+\"-\"+_]={index:v,subindex:_,startAngle:x,endAngle:w,value:b}}r[v]={index:v,startAngle:h,endAngle:c,value:(c-h)/t},c+=l}for(f=-1;++f<a;)for(d=f-1;++d<a;){var A=p[f+\"-\"+d],k=p[d+\"-\"+f];(A.value||k.value)&&e.push(A.value<k.value?{source:k,target:A}:{source:A,target:k})}s&&n()}function n(){e.sort(function(t,n){return s((t.source.value+t.target.value)/2,(n.source.value+n.target.value)/2)})}var e,r,i,a,u,o,s,c={},l=0;return c.matrix=function(t){return arguments.length?(a=(i=t)&&i.length,e=r=null,c):i},c.padding=function(t){return arguments.length?(l=t,e=r=null,c):l},c.sortGroups=function(t){return arguments.length?(u=t,e=r=null,c):u},c.sortSubgroups=function(t){return arguments.length?(o=t,e=null,c):o},c.sortChords=function(t){return arguments.length?(s=t,e&&n(),c):s},c.chords=function(){return e||t(),e},c.groups=function(){return r||t(),r},c},eu.layout.force=function(){function t(t){return function(n,e,r,i){if(n.point!==t){var a=n.cx-t.x,u=n.cy-t.y,o=i-e,s=a*a+u*u;if(s>o*o/y){if(p>s){var c=n.charge/s;t.px-=a*c,t.py-=u*c}return!0}if(n.point&&s&&p>s){var c=n.pointCharge/s;t.px-=a*c,t.py-=u*c}}return!n.charge}}function n(t){t.px=eu.event.x,t.py=eu.event.y,o.resume()}var e,r,i,a,u,o={},s=eu.dispatch(\"start\",\"tick\",\"end\"),c=[1,1],l=.9,h=ds,f=ps,d=-30,p=gs,g=.1,y=.64,m=[],v=[];return o.tick=function(){if((r*=.99)<.005)return s.end({type:\"end\",alpha:r=0}),!0;var n,e,o,h,f,p,y,_,b,x=m.length,w=v.length;for(e=0;w>e;++e)o=v[e],h=o.source,f=o.target,_=f.x-h.x,b=f.y-h.y,(p=_*_+b*b)&&(p=r*a[e]*((p=Math.sqrt(p))-i[e])/p,_*=p,b*=p,f.x-=_*(y=h.weight/(f.weight+h.weight)),f.y-=b*y,h.x+=_*(y=1-y),h.y+=b*y);if((y=r*g)&&(_=c[0]/2,b=c[1]/2,e=-1,y))for(;++e<x;)o=m[e],o.x+=(_-o.x)*y,o.y+=(b-o.y)*y;if(d)for(Qr(n=eu.geom.quadtree(m),r,u),e=-1;++e<x;)(o=m[e]).fixed||n.visit(t(o));for(e=-1;++e<x;)o=m[e],o.fixed?(o.x=o.px,o.y=o.py):(o.x-=(o.px-(o.px=o.x))*l,o.y-=(o.py-(o.py=o.y))*l);s.tick({type:\"tick\",alpha:r})},o.nodes=function(t){return arguments.length?(m=t,o):m},o.links=function(t){return arguments.length?(v=t,o):v},o.size=function(t){return arguments.length?(c=t,o):c},o.linkDistance=function(t){return arguments.length?(h=\"function\"==typeof t?t:+t,o):h},o.distance=o.linkDistance,o.linkStrength=function(t){return arguments.length?(f=\"function\"==typeof t?t:+t,o):f},o.friction=function(t){return arguments.length?(l=+t,o):l},o.charge=function(t){return arguments.length?(d=\"function\"==typeof t?t:+t,o):d},o.chargeDistance=function(t){return arguments.length?(p=t*t,o):Math.sqrt(p)},o.gravity=function(t){return arguments.length?(g=+t,o):g},o.theta=function(t){return arguments.length?(y=t*t,o):Math.sqrt(y)},o.alpha=function(t){return arguments.length?(t=+t,r?r=t>0?t:0:t>0&&(s.start({type:\"start\",alpha:r=t}),eu.timer(o.tick)),o):r},o.start=function(){function t(t,r){if(!e){for(e=new Array(s),o=0;s>o;++o)e[o]=[];for(o=0;l>o;++o){var i=v[o];e[i.source.index].push(i.target),e[i.target.index].push(i.source)}}for(var a,u=e[n],o=-1,c=u.length;++o<c;)if(!isNaN(a=u[o][t]))return a;return Math.random()*r}var n,e,r,s=m.length,l=v.length,p=c[0],g=c[1];for(n=0;s>n;++n)(r=m[n]).index=n,r.weight=0;for(n=0;l>n;++n)r=v[n],\"number\"==typeof r.source&&(r.source=m[r.source]),\"number\"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(n=0;s>n;++n)r=m[n],isNaN(r.x)&&(r.x=t(\"x\",p)),isNaN(r.y)&&(r.y=t(\"y\",g)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(i=[],\"function\"==typeof h)for(n=0;l>n;++n)i[n]=+h.call(this,v[n],n);else for(n=0;l>n;++n)i[n]=h;if(a=[],\"function\"==typeof f)for(n=0;l>n;++n)a[n]=+f.call(this,v[n],n);else for(n=0;l>n;++n)a[n]=f;if(u=[],\"function\"==typeof d)for(n=0;s>n;++n)u[n]=+d.call(this,m[n],n);else for(n=0;s>n;++n)u[n]=d;return o.resume()},o.resume=function(){return o.alpha(.1)},o.stop=function(){return o.alpha(0)},o.drag=function(){return e||(e=eu.behavior.drag().origin(_).on(\"dragstart.force\",Vr).on(\"drag.force\",n).on(\"dragend.force\",Zr)),arguments.length?void this.on(\"mouseover.force\",Xr).on(\"mouseout.force\",Kr).call(e):e},eu.rebind(o,s,\"on\")};var ds=20,ps=1,gs=1/0;eu.layout.hierarchy=function(){function t(i){var a,u=[i],o=[];for(i.depth=0;null!=(a=u.pop());)if(o.push(a),(c=e.call(t,a,a.depth))&&(s=c.length)){for(var s,c,l;--s>=0;)u.push(l=c[s]),l.parent=a,l.depth=a.depth+1;r&&(a.value=0),a.children=c}else r&&(a.value=+r.call(t,a,a.depth)||0),delete a.children;return ni(i,function(t){var e,i;n&&(e=t.children)&&e.sort(n),r&&(i=t.parent)&&(i.value+=t.value)}),o}var n=ii,e=ei,r=ri;return t.sort=function(e){return arguments.length?(n=e,t):n},t.children=function(n){return arguments.length?(e=n,t):e},t.value=function(n){return arguments.length?(r=n,t):r},t.revalue=function(n){return r&&(ti(n,function(t){t.children&&(t.value=0)}),ni(n,function(n){var e;n.children||(n.value=+r.call(t,n,n.depth)||0),(e=n.parent)&&(e.value+=n.value)})),n},t},eu.layout.partition=function(){function t(n,e,r,i){var a=n.children;if(n.x=e,n.y=n.depth*i,n.dx=r,n.dy=i,a&&(u=a.length)){var u,o,s,c=-1;for(r=n.value?r/n.value:0;++c<u;)t(o=a[c],e,s=o.value*r,i),e+=s}}function n(t){var e=t.children,r=0;if(e&&(i=e.length))for(var i,a=-1;++a<i;)r=Math.max(r,n(e[a]));return 1+r}function e(e,a){var u=r.call(this,e,a);return t(u[0],0,i[0],i[1]/n(u[0])),u}var r=eu.layout.hierarchy(),i=[1,1];return e.size=function(t){return arguments.length?(i=t,e):i},Jr(e,r)},eu.layout.pie=function(){function t(u){var o,s=u.length,c=u.map(function(e,r){return+n.call(t,e,r)}),l=+(\"function\"==typeof r?r.apply(this,arguments):r),h=(\"function\"==typeof i?i.apply(this,arguments):i)-l,f=Math.min(Math.abs(h)/s,+(\"function\"==typeof a?a.apply(this,arguments):a)),d=f*(0>h?-1:1),p=(h-s*d)/eu.sum(c),g=eu.range(s),y=[];return null!=e&&g.sort(e===ys?function(t,n){return c[n]-c[t]}:function(t,n){return e(u[t],u[n])}),g.forEach(function(t){y[t]={data:u[t],value:o=c[t],startAngle:l,endAngle:l+=o*p+d,padAngle:f}}),y}var n=Number,e=ys,r=0,i=Lu,a=0;return t.value=function(e){return arguments.length?(n=e,t):n},t.sort=function(n){return arguments.length?(e=n,t):e},t.startAngle=function(n){return arguments.length?(r=n,t):r},t.endAngle=function(n){return arguments.length?(i=n,t):i},t.padAngle=function(n){return arguments.length?(a=n,t):a},t};var ys={};eu.layout.stack=function(){function t(o,s){if(!(f=o.length))return o;var c=o.map(function(e,r){return n.call(t,e,r)}),l=c.map(function(n){return n.map(function(n,e){return[a.call(t,n,e),u.call(t,n,e)]})}),h=e.call(t,l,s);c=eu.permute(c,h),l=eu.permute(l,h);var f,d,p,g,y=r.call(t,l,s),m=c[0].length;for(p=0;m>p;++p)for(i.call(t,c[0][p],g=y[p],l[0][p][1]),d=1;f>d;++d)i.call(t,c[d][p],g+=l[d-1][p][1],l[d][p][1]);return o}var n=_,e=ci,r=li,i=si,a=ui,u=oi;return t.values=function(e){return arguments.length?(n=e,t):n},t.order=function(n){return arguments.length?(e=\"function\"==typeof n?n:ms.get(n)||ci,t):e},t.offset=function(n){return arguments.length?(r=\"function\"==typeof n?n:vs.get(n)||li,t):r},t.x=function(n){return arguments.length?(a=n,t):a},t.y=function(n){return arguments.length?(u=n,t):u},t.out=function(n){return arguments.length?(i=n,t):i},t};var ms=eu.map({\"inside-out\":function(t){var n,e,r=t.length,i=t.map(hi),a=t.map(fi),u=eu.range(r).sort(function(t,n){return i[t]-i[n]}),o=0,s=0,c=[],l=[];for(n=0;r>n;++n)e=u[n],s>o?(o+=a[e],c.push(e)):(s+=a[e],l.push(e));return l.reverse().concat(c)},reverse:function(t){return eu.range(t.length).reverse()},\"default\":ci}),vs=eu.map({silhouette:function(t){var n,e,r,i=t.length,a=t[0].length,u=[],o=0,s=[];for(e=0;a>e;++e){for(n=0,r=0;i>n;n++)r+=t[n][e][1];r>o&&(o=r),u.push(r)}for(e=0;a>e;++e)s[e]=(o-u[e])/2;return s},wiggle:function(t){var n,e,r,i,a,u,o,s,c,l=t.length,h=t[0],f=h.length,d=[];for(d[0]=s=c=0,e=1;f>e;++e){for(n=0,i=0;l>n;++n)i+=t[n][e][1];for(n=0,a=0,o=h[e][0]-h[e-1][0];l>n;++n){for(r=0,u=(t[n][e][1]-t[n][e-1][1])/(2*o);n>r;++r)u+=(t[r][e][1]-t[r][e-1][1])/o;a+=u*t[n][e][1]}d[e]=s-=i?a/i*o:0,c>s&&(c=s)}for(e=0;f>e;++e)d[e]-=c;return d},expand:function(t){var n,e,r,i=t.length,a=t[0].length,u=1/i,o=[];for(e=0;a>e;++e){for(n=0,r=0;i>n;n++)r+=t[n][e][1];if(r)for(n=0;i>n;n++)t[n][e][1]/=r;else for(n=0;i>n;n++)t[n][e][1]=u}for(e=0;a>e;++e)o[e]=0;return o},zero:li});eu.layout.histogram=function(){function t(t,a){for(var u,o,s=[],c=t.map(e,this),l=r.call(this,c,a),h=i.call(this,l,c,a),a=-1,f=c.length,d=h.length-1,p=n?1:1/f;++a<d;)u=s[a]=[],u.dx=h[a+1]-(u.x=h[a]),u.y=0;if(d>0)for(a=-1;++a<f;)o=c[a],o>=l[0]&&o<=l[1]&&(u=s[eu.bisect(h,o,1,d)-1],u.y+=p,u.push(t[a]));return s}var n=!0,e=Number,r=yi,i=pi;return t.value=function(n){return arguments.length?(e=n,t):e},t.range=function(n){return arguments.length?(r=St(n),t):r},t.bins=function(n){return arguments.length?(i=\"number\"==typeof n?function(t){return gi(t,n)}:St(n),t):i},t.frequency=function(e){return arguments.length?(n=!!e,t):n},t},eu.layout.pack=function(){function t(t,a){var u=e.call(this,t,a),o=u[0],s=i[0],c=i[1],l=null==n?Math.sqrt:\"function\"==typeof n?n:function(){return n};if(o.x=o.y=0,ni(o,function(t){t.r=+l(t.value)}),ni(o,xi),r){var h=r*(n?1:Math.max(2*o.r/s,2*o.r/c))/2;ni(o,function(t){t.r+=h}),ni(o,xi),ni(o,function(t){t.r-=h})}return ki(o,s/2,c/2,n?1:1/Math.max(2*o.r/s,2*o.r/c)),u}var n,e=eu.layout.hierarchy().sort(mi),r=0,i=[1,1];return t.size=function(n){return arguments.length?(i=n,t):i},t.radius=function(e){return arguments.length?(n=null==e||\"function\"==typeof e?e:+e,t):n},t.padding=function(n){return arguments.length?(r=+n,t):r},Jr(t,e)},eu.layout.tree=function(){function t(t,i){var l=u.call(this,t,i),h=l[0],f=n(h);if(ni(f,e),f.parent.m=-f.z,ti(f,r),c)ti(h,a);else{var d=h,p=h,g=h;ti(h,function(t){t.x<d.x&&(d=t),t.x>p.x&&(p=t),t.depth>g.depth&&(g=t)});var y=o(d,p)/2-d.x,m=s[0]/(p.x+o(p,d)/2+y),v=s[1]/(g.depth||1);ti(h,function(t){t.x=(t.x+y)*m,t.y=t.depth*v})}return l}function n(t){for(var n,e={A:null,children:[t]},r=[e];null!=(n=r.pop());)for(var i,a=n.children,u=0,o=a.length;o>u;++u)r.push((a[u]=i={_:a[u],parent:n,children:(i=a[u].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:u}).a=i);return e.children[0]}function e(t){var n=t.children,e=t.parent.children,r=t.i?e[t.i-1]:null;if(n.length){Ti(t);var a=(n[0].z+n[n.length-1].z)/2;r?(t.z=r.z+o(t._,r._),t.m=t.z-a):t.z=a}else r&&(t.z=r.z+o(t._,r._));t.parent.A=i(t,r,t.parent.A||e[0])}function r(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function i(t,n,e){if(n){for(var r,i=t,a=t,u=n,s=i.parent.children[0],c=i.m,l=a.m,h=u.m,f=s.m;u=Di(u),i=Si(i),u&&i;)s=Si(s),a=Di(a),a.a=t,r=u.z+h-i.z-c+o(u._,i._),r>0&&(Ci(Fi(u,t,e),t,r),c+=r,l+=r),h+=u.m,c+=i.m,f+=s.m,l+=a.m;u&&!Di(a)&&(a.t=u,a.m+=h-l),i&&!Si(s)&&(s.t=i,s.m+=c-f,e=t)}return e}function a(t){t.x*=s[0],t.y=t.depth*s[1]}var u=eu.layout.hierarchy().sort(null).value(null),o=Mi,s=[1,1],c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=null==(s=n)?a:null,t):c?null:s},t.nodeSize=function(n){return arguments.length?(c=null==(s=n)?null:a,t):c?s:null},Jr(t,u)},eu.layout.cluster=function(){function t(t,a){var u,o=n.call(this,t,a),s=o[0],c=0;ni(s,function(t){var n=t.children;n&&n.length?(t.x=Li(n),t.y=Oi(n)):(t.x=u?c+=e(t,u):0,t.y=0,u=t)});var l=Ii(s),h=Bi(s),f=l.x-e(l,h)/2,d=h.x+e(h,l)/2;return ni(s,i?function(t){t.x=(t.x-s.x)*r[0],t.y=(s.y-t.y)*r[1]}:function(t){t.x=(t.x-f)/(d-f)*r[0],t.y=(1-(s.y?t.y/s.y:1))*r[1]}),o}var n=eu.layout.hierarchy().sort(null).value(null),e=Mi,r=[1,1],i=!1;return t.separation=function(n){return arguments.length?(e=n,t):e},t.size=function(n){return arguments.length?(i=null==(r=n),t):i?null:r},t.nodeSize=function(n){return arguments.length?(i=null!=(r=n),t):i?r:null},Jr(t,n)},eu.layout.treemap=function(){function t(t,n){for(var e,r,i=-1,a=t.length;++i<a;)r=(e=t[i]).value*(0>n?0:n),e.area=isNaN(r)||0>=r?0:r}function n(e){var a=e.children;if(a&&a.length){var u,o,s,c=h(e),l=[],f=a.slice(),p=1/0,g=\"slice\"===d?c.dx:\"dice\"===d?c.dy:\"slice-dice\"===d?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(t(f,c.dx*c.dy/e.value),l.area=0;(s=f.length)>0;)l.push(u=f[s-1]),l.area+=u.area,\"squarify\"!==d||(o=r(l,g))<=p?(f.pop(),p=o):(l.area-=l.pop().area,i(l,g,c,!1),g=Math.min(c.dx,c.dy),l.length=l.area=0,p=1/0);l.length&&(i(l,g,c,!0),l.length=l.area=0),a.forEach(n)}}function e(n){var r=n.children;if(r&&r.length){\nvar a,u=h(n),o=r.slice(),s=[];for(t(o,u.dx*u.dy/n.value),s.area=0;a=o.pop();)s.push(a),s.area+=a.area,null!=a.z&&(i(s,a.z?u.dx:u.dy,u,!o.length),s.length=s.area=0);r.forEach(e)}}function r(t,n){for(var e,r=t.area,i=0,a=1/0,u=-1,o=t.length;++u<o;)(e=t[u].area)&&(a>e&&(a=e),e>i&&(i=e));return r*=r,n*=n,r?Math.max(n*i*p/r,r/(n*a*p)):1/0}function i(t,n,e,r){var i,a=-1,u=t.length,o=e.x,c=e.y,l=n?s(t.area/n):0;if(n==e.dx){for((r||l>e.dy)&&(l=e.dy);++a<u;)i=t[a],i.x=o,i.y=c,i.dy=l,o+=i.dx=Math.min(e.x+e.dx-o,l?s(i.area/l):0);i.z=!0,i.dx+=e.x+e.dx-o,e.y+=l,e.dy-=l}else{for((r||l>e.dx)&&(l=e.dx);++a<u;)i=t[a],i.x=o,i.y=c,i.dx=l,c+=i.dy=Math.min(e.y+e.dy-c,l?s(i.area/l):0);i.z=!1,i.dy+=e.y+e.dy-c,e.x+=l,e.dx-=l}}function a(r){var i=u||o(r),a=i[0];return a.x=0,a.y=0,a.dx=c[0],a.dy=c[1],u&&o.revalue(a),t([a],a.dx*a.dy/a.value),(u?e:n)(a),f&&(u=i),i}var u,o=eu.layout.hierarchy(),s=Math.round,c=[1,1],l=null,h=Ni,f=!1,d=\"squarify\",p=.5*(1+Math.sqrt(5));return a.size=function(t){return arguments.length?(c=t,a):c},a.padding=function(t){function n(n){var e=t.call(a,n,n.depth);return null==e?Ni(n):Pi(n,\"number\"==typeof e?[e,e,e,e]:e)}function e(n){return Pi(n,t)}if(!arguments.length)return l;var r;return h=null==(l=t)?Ni:\"function\"==(r=typeof t)?n:\"number\"===r?(t=[t,t,t,t],e):e,a},a.round=function(t){return arguments.length?(s=t?Math.round:Number,a):s!=Number},a.sticky=function(t){return arguments.length?(f=t,u=null,a):f},a.ratio=function(t){return arguments.length?(p=t,a):p},a.mode=function(t){return arguments.length?(d=t+\"\",a):d},Jr(a,o)},eu.random={normal:function(t,n){var e=arguments.length;return 2>e&&(n=1),1>e&&(t=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return t+n*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var t=eu.random.normal.apply(eu,arguments);return function(){return Math.exp(t())}},bates:function(t){var n=eu.random.irwinHall(t);return function(){return n()/t}},irwinHall:function(t){return function(){for(var n=0,e=0;t>e;e++)n+=Math.random();return n}}},eu.scale={};var _s={floor:_,ceil:_};eu.scale.linear=function(){return zi([0,1],[0,1],_r,!1)};var bs={s:1,g:1,p:1,r:1,e:1};eu.scale.log=function(){return Qi(eu.scale.linear().domain([0,1]),10,!0,[1,10])};var xs=eu.format(\".0e\"),ws={floor:function(t){return-Math.ceil(-t)},ceil:function(t){return-Math.floor(-t)}};eu.scale.pow=function(){return Ji(eu.scale.linear(),1,[0,1])},eu.scale.sqrt=function(){return eu.scale.pow().exponent(.5)},eu.scale.ordinal=function(){return na([],{t:\"range\",a:[[]]})},eu.scale.category10=function(){return eu.scale.ordinal().range(As)},eu.scale.category20=function(){return eu.scale.ordinal().range(ks)},eu.scale.category20b=function(){return eu.scale.ordinal().range(Es)},eu.scale.category20c=function(){return eu.scale.ordinal().range(Ms)};var As=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(bt),ks=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(bt),Es=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(bt),Ms=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(bt);eu.scale.quantile=function(){return ea([],[])},eu.scale.quantize=function(){return ra(0,1,[0,1])},eu.scale.threshold=function(){return ia([.5],[0,1])},eu.scale.identity=function(){return aa([0,1])},eu.svg={},eu.svg.arc=function(){function t(){var t=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),l=u.apply(this,arguments)-Bu,h=o.apply(this,arguments)-Bu,f=Math.abs(h-l),d=l>h?0:1;if(t>c&&(p=c,c=t,t=p),f>=Iu)return n(c,d)+(t?n(t,1-d):\"\")+\"Z\";var p,g,y,m,v,_,b,x,w,A,k,E,M=0,S=0,D=[];if((m=(+s.apply(this,arguments)||0)/2)&&(y=a===Ss?Math.sqrt(t*t+c*c):+a.apply(this,arguments),d||(S*=-1),c&&(S=et(y/c*Math.sin(m))),t&&(M=et(y/t*Math.sin(m)))),c){v=c*Math.cos(l+S),_=c*Math.sin(l+S),b=c*Math.cos(h-S),x=c*Math.sin(h-S);var C=Math.abs(h-l-2*S)<=Ou?0:1;if(S&&fa(v,_,b,x)===d^C){var T=(l+h)/2;v=c*Math.cos(T),_=c*Math.sin(T),b=x=null}}else v=_=0;if(t){w=t*Math.cos(h-M),A=t*Math.sin(h-M),k=t*Math.cos(l+M),E=t*Math.sin(l+M);var F=Math.abs(l-h+2*M)<=Ou?0:1;if(M&&fa(w,A,k,E)===1-d^F){var O=(l+h)/2;w=t*Math.cos(O),A=t*Math.sin(O),k=E=null}}else w=A=0;if((p=Math.min(Math.abs(c-t)/2,+i.apply(this,arguments)))>.001){g=c>t^d?0:1;var L=null==k?[w,A]:null==b?[v,_]:Ie([v,_],[k,E],[b,x],[w,A]),I=v-L[0],B=_-L[1],N=b-L[0],P=x-L[1],R=1/Math.sin(Math.acos((I*N+B*P)/(Math.sqrt(I*I+B*B)*Math.sqrt(N*N+P*P)))/2),j=Math.sqrt(L[0]*L[0]+L[1]*L[1]);if(null!=b){var Y=Math.min(p,(c-j)/(R+1)),U=da(null==k?[w,A]:[k,E],[v,_],c,Y,d),$=da([b,x],[w,A],c,Y,d);p===Y?D.push(\"M\",U[0],\"A\",Y,\",\",Y,\" 0 0,\",g,\" \",U[1],\"A\",c,\",\",c,\" 0 \",1-d^fa(U[1][0],U[1][1],$[1][0],$[1][1]),\",\",d,\" \",$[1],\"A\",Y,\",\",Y,\" 0 0,\",g,\" \",$[0]):D.push(\"M\",U[0],\"A\",Y,\",\",Y,\" 0 1,\",g,\" \",$[0])}else D.push(\"M\",v,\",\",_);if(null!=k){var W=Math.min(p,(t-j)/(R-1)),z=da([v,_],[k,E],t,-W,d),q=da([w,A],null==b?[v,_]:[b,x],t,-W,d);p===W?D.push(\"L\",q[0],\"A\",W,\",\",W,\" 0 0,\",g,\" \",q[1],\"A\",t,\",\",t,\" 0 \",d^fa(q[1][0],q[1][1],z[1][0],z[1][1]),\",\",1-d,\" \",z[1],\"A\",W,\",\",W,\" 0 0,\",g,\" \",z[0]):D.push(\"L\",q[0],\"A\",W,\",\",W,\" 0 0,\",g,\" \",z[0])}else D.push(\"L\",w,\",\",A)}else D.push(\"M\",v,\",\",_),null!=b&&D.push(\"A\",c,\",\",c,\" 0 \",C,\",\",d,\" \",b,\",\",x),D.push(\"L\",w,\",\",A),null!=k&&D.push(\"A\",t,\",\",t,\" 0 \",F,\",\",1-d,\" \",k,\",\",E);return D.push(\"Z\"),D.join(\"\")}function n(t,n){return\"M0,\"+t+\"A\"+t+\",\"+t+\" 0 1,\"+n+\" 0,\"+-t+\"A\"+t+\",\"+t+\" 0 1,\"+n+\" 0,\"+t}var e=oa,r=sa,i=ua,a=Ss,u=ca,o=la,s=ha;return t.innerRadius=function(n){return arguments.length?(e=St(n),t):e},t.outerRadius=function(n){return arguments.length?(r=St(n),t):r},t.cornerRadius=function(n){return arguments.length?(i=St(n),t):i},t.padRadius=function(n){return arguments.length?(a=n==Ss?Ss:St(n),t):a},t.startAngle=function(n){return arguments.length?(u=St(n),t):u},t.endAngle=function(n){return arguments.length?(o=St(n),t):o},t.padAngle=function(n){return arguments.length?(s=St(n),t):s},t.centroid=function(){var t=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,n=(+u.apply(this,arguments)+ +o.apply(this,arguments))/2-Bu;return[Math.cos(n)*t,Math.sin(n)*t]},t};var Ss=\"auto\";eu.svg.line=function(){return pa(_)};var Ds=eu.map({linear:ga,\"linear-closed\":ya,step:ma,\"step-before\":va,\"step-after\":_a,basis:Ea,\"basis-open\":Ma,\"basis-closed\":Sa,bundle:Da,cardinal:wa,\"cardinal-open\":ba,\"cardinal-closed\":xa,monotone:Ia});Ds.forEach(function(t,n){n.key=t,n.closed=/-closed$/.test(t)});var Cs=[0,2/3,1/3,0],Ts=[0,1/3,2/3,0],Fs=[0,1/6,2/3,1/6];eu.svg.line.radial=function(){var t=pa(Ba);return t.radius=t.x,delete t.x,t.angle=t.y,delete t.y,t},va.reverse=_a,_a.reverse=va,eu.svg.area=function(){return Na(_)},eu.svg.area.radial=function(){var t=Na(Ba);return t.radius=t.x,delete t.x,t.innerRadius=t.x0,delete t.x0,t.outerRadius=t.x1,delete t.x1,t.angle=t.y,delete t.y,t.startAngle=t.y0,delete t.y0,t.endAngle=t.y1,delete t.y1,t},eu.svg.chord=function(){function t(t,o){var s=n(this,a,t,o),c=n(this,u,t,o);return\"M\"+s.p0+r(s.r,s.p1,s.a1-s.a0)+(e(s,c)?i(s.r,s.p1,s.r,s.p0):i(s.r,s.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,s.r,s.p0))+\"Z\"}function n(t,n,e,r){var i=n.call(t,e,r),a=o.call(t,i,r),u=s.call(t,i,r)-Bu,l=c.call(t,i,r)-Bu;return{r:a,a0:u,a1:l,p0:[a*Math.cos(u),a*Math.sin(u)],p1:[a*Math.cos(l),a*Math.sin(l)]}}function e(t,n){return t.a0==n.a0&&t.a1==n.a1}function r(t,n,e){return\"A\"+t+\",\"+t+\" 0 \"+ +(e>Ou)+\",1 \"+n}function i(t,n,e,r){return\"Q 0,0 \"+r}var a=_e,u=be,o=Pa,s=ca,c=la;return t.radius=function(n){return arguments.length?(o=St(n),t):o},t.source=function(n){return arguments.length?(a=St(n),t):a},t.target=function(n){return arguments.length?(u=St(n),t):u},t.startAngle=function(n){return arguments.length?(s=St(n),t):s},t.endAngle=function(n){return arguments.length?(c=St(n),t):c},t},eu.svg.diagonal=function(){function t(t,i){var a=n.call(this,t,i),u=e.call(this,t,i),o=(a.y+u.y)/2,s=[a,{x:a.x,y:o},{x:u.x,y:o},u];return s=s.map(r),\"M\"+s[0]+\"C\"+s[1]+\" \"+s[2]+\" \"+s[3]}var n=_e,e=be,r=Ra;return t.source=function(e){return arguments.length?(n=St(e),t):n},t.target=function(n){return arguments.length?(e=St(n),t):e},t.projection=function(n){return arguments.length?(r=n,t):r},t},eu.svg.diagonal.radial=function(){var t=eu.svg.diagonal(),n=Ra,e=t.projection;return t.projection=function(t){return arguments.length?e(ja(n=t)):n},t},eu.svg.symbol=function(){function t(t,r){return(Os.get(n.call(this,t,r))||$a)(e.call(this,t,r))}var n=Ua,e=Ya;return t.type=function(e){return arguments.length?(n=St(e),t):n},t.size=function(n){return arguments.length?(e=St(n),t):e},t};var Os=eu.map({circle:$a,cross:function(t){var n=Math.sqrt(t/5)/2;return\"M\"+-3*n+\",\"+-n+\"H\"+-n+\"V\"+-3*n+\"H\"+n+\"V\"+-n+\"H\"+3*n+\"V\"+n+\"H\"+n+\"V\"+3*n+\"H\"+-n+\"V\"+n+\"H\"+-3*n+\"Z\"},diamond:function(t){var n=Math.sqrt(t/(2*Is)),e=n*Is;return\"M0,\"+-n+\"L\"+e+\",0 0,\"+n+\" \"+-e+\",0Z\"},square:function(t){var n=Math.sqrt(t)/2;return\"M\"+-n+\",\"+-n+\"L\"+n+\",\"+-n+\" \"+n+\",\"+n+\" \"+-n+\",\"+n+\"Z\"},\"triangle-down\":function(t){var n=Math.sqrt(t/Ls),e=n*Ls/2;return\"M0,\"+e+\"L\"+n+\",\"+-e+\" \"+-n+\",\"+-e+\"Z\"},\"triangle-up\":function(t){var n=Math.sqrt(t/Ls),e=n*Ls/2;return\"M0,\"+-e+\"L\"+n+\",\"+e+\" \"+-n+\",\"+e+\"Z\"}});eu.svg.symbolTypes=Os.keys();var Ls=Math.sqrt(3),Is=Math.tan(30*Nu);Au.transition=function(t){for(var n,e,r=Bs||++js,i=Ha(t),a=[],u=Ns||{time:Date.now(),ease:Mr,delay:0,duration:250},o=-1,s=this.length;++o<s;){a.push(n=[]);for(var c=this[o],l=-1,h=c.length;++l<h;)(e=c[l])&&Va(e,l,i,r,u),n.push(e)}return za(a,i,r)},Au.interrupt=function(t){return this.each(null==t?Ps:Wa(Ha(t)))};var Bs,Ns,Ps=Wa(Ha()),Rs=[],js=0;Rs.call=Au.call,Rs.empty=Au.empty,Rs.node=Au.node,Rs.size=Au.size,eu.transition=function(t,n){return t&&t.transition?Bs?t.transition(n):t:eu.selection().transition(t)},eu.transition.prototype=Rs,Rs.select=function(t){var n,e,r,i=this.id,a=this.namespace,u=[];t=C(t);for(var o=-1,s=this.length;++o<s;){u.push(n=[]);for(var c=this[o],l=-1,h=c.length;++l<h;)(r=c[l])&&(e=t.call(r,r.__data__,l,o))?(\"__data__\"in r&&(e.__data__=r.__data__),Va(e,l,a,i,r[a][i]),n.push(e)):n.push(null)}return za(u,a,i)},Rs.selectAll=function(t){var n,e,r,i,a,u=this.id,o=this.namespace,s=[];t=T(t);for(var c=-1,l=this.length;++c<l;)for(var h=this[c],f=-1,d=h.length;++f<d;)if(r=h[f]){a=r[o][u],e=t.call(r,r.__data__,f,c),s.push(n=[]);for(var p=-1,g=e.length;++p<g;)(i=e[p])&&Va(i,p,o,u,a),n.push(i)}return za(s,o,u)},Rs.filter=function(t){var n,e,r,i=[];\"function\"!=typeof t&&(t=$(t));for(var a=0,u=this.length;u>a;a++){i.push(n=[]);for(var e=this[a],o=0,s=e.length;s>o;o++)(r=e[o])&&t.call(r,r.__data__,o,a)&&n.push(r)}return za(i,this.namespace,this.id)},Rs.tween=function(t,n){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(t):z(this,null==n?function(n){n[r][e].tween.remove(t)}:function(i){i[r][e].tween.set(t,n)})},Rs.attr=function(t,n){function e(){this.removeAttribute(o)}function r(){this.removeAttributeNS(o.space,o.local)}function i(t){return null==t?e:(t+=\"\",function(){var n,e=this.getAttribute(o);return e!==t&&(n=u(e,t),function(t){this.setAttribute(o,n(t))})})}function a(t){return null==t?r:(t+=\"\",function(){var n,e=this.getAttributeNS(o.space,o.local);return e!==t&&(n=u(e,t),function(t){this.setAttributeNS(o.space,o.local,n(t))})})}if(arguments.length<2){for(n in t)this.attr(n,t[n]);return this}var u=\"transform\"==t?$r:_r,o=eu.ns.qualify(t);return qa(this,\"attr.\"+t,n,o.local?a:i)},Rs.attrTween=function(t,n){function e(t,e){var r=n.call(this,t,e,this.getAttribute(i));return r&&function(t){this.setAttribute(i,r(t))}}function r(t,e){var r=n.call(this,t,e,this.getAttributeNS(i.space,i.local));return r&&function(t){this.setAttributeNS(i.space,i.local,r(t))}}var i=eu.ns.qualify(t);return this.tween(\"attr.\"+t,i.local?r:e)},Rs.style=function(t,n,r){function i(){this.style.removeProperty(t)}function a(n){return null==n?i:(n+=\"\",function(){var i,a=e(this).getComputedStyle(this,null).getPropertyValue(t);return a!==n&&(i=_r(a,n),function(n){this.style.setProperty(t,i(n),r)})})}var u=arguments.length;if(3>u){if(\"string\"!=typeof t){2>u&&(n=\"\");for(r in t)this.style(r,t[r],n);return this}r=\"\"}return qa(this,\"style.\"+t,n,a)},Rs.styleTween=function(t,n,r){function i(i,a){var u=n.call(this,i,a,e(this).getComputedStyle(this,null).getPropertyValue(t));return u&&function(n){this.style.setProperty(t,u(n),r)}}return arguments.length<3&&(r=\"\"),this.tween(\"style.\"+t,i)},Rs.text=function(t){return qa(this,\"text\",t,Ga)},Rs.remove=function(){var t=this.namespace;return this.each(\"end.transition\",function(){var n;this[t].count<2&&(n=this.parentNode)&&n.removeChild(this)})},Rs.ease=function(t){var n=this.id,e=this.namespace;return arguments.length<1?this.node()[e][n].ease:(\"function\"!=typeof t&&(t=eu.ease.apply(eu,arguments)),z(this,function(r){r[e][n].ease=t}))},Rs.delay=function(t){var n=this.id,e=this.namespace;return arguments.length<1?this.node()[e][n].delay:z(this,\"function\"==typeof t?function(r,i,a){r[e][n].delay=+t.call(r,r.__data__,i,a)}:(t=+t,function(r){r[e][n].delay=t}))},Rs.duration=function(t){var n=this.id,e=this.namespace;return arguments.length<1?this.node()[e][n].duration:z(this,\"function\"==typeof t?function(r,i,a){r[e][n].duration=Math.max(1,t.call(r,r.__data__,i,a))}:(t=Math.max(1,t),function(r){r[e][n].duration=t}))},Rs.each=function(t,n){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ns,a=Bs;try{Bs=e,z(this,function(n,i,a){Ns=n[r][e],t.call(n,n.__data__,i,a)})}finally{Ns=i,Bs=a}}else z(this,function(i){var a=i[r][e];(a.event||(a.event=eu.dispatch(\"start\",\"end\",\"interrupt\"))).on(t,n)});return this},Rs.transition=function(){for(var t,n,e,r,i=this.id,a=++js,u=this.namespace,o=[],s=0,c=this.length;c>s;s++){o.push(t=[]);for(var n=this[s],l=0,h=n.length;h>l;l++)(e=n[l])&&(r=e[u][i],Va(e,l,u,a,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),t.push(e)}return za(o,u,a)},eu.svg.axis=function(){function t(t){t.each(function(){var t,c=eu.select(this),l=this.__chart__||e,h=this.__chart__=e.copy(),f=null==s?h.ticks?h.ticks.apply(h,o):h.domain():s,d=null==n?h.tickFormat?h.tickFormat.apply(h,o):_:n,p=c.selectAll(\".tick\").data(f,h),g=p.enter().insert(\"g\",\".domain\").attr(\"class\",\"tick\").style(\"opacity\",Tu),y=eu.transition(p.exit()).style(\"opacity\",Tu).remove(),m=eu.transition(p.order()).style(\"opacity\",1),v=Math.max(i,0)+u,b=ji(h),x=c.selectAll(\".domain\").data([0]),w=(x.enter().append(\"path\").attr(\"class\",\"domain\"),eu.transition(x));g.append(\"line\"),g.append(\"text\");var A,k,E,M,S=g.select(\"line\"),D=m.select(\"line\"),C=p.select(\"text\").text(d),T=g.select(\"text\"),F=m.select(\"text\"),O=\"top\"===r||\"left\"===r?-1:1;if(\"bottom\"===r||\"top\"===r?(t=Za,A=\"x\",E=\"y\",k=\"x2\",M=\"y2\",C.attr(\"dy\",0>O?\"0em\":\".71em\").style(\"text-anchor\",\"middle\"),w.attr(\"d\",\"M\"+b[0]+\",\"+O*a+\"V0H\"+b[1]+\"V\"+O*a)):(t=Xa,A=\"y\",E=\"x\",k=\"y2\",M=\"x2\",C.attr(\"dy\",\".32em\").style(\"text-anchor\",0>O?\"end\":\"start\"),w.attr(\"d\",\"M\"+O*a+\",\"+b[0]+\"H0V\"+b[1]+\"H\"+O*a)),S.attr(M,O*i),T.attr(E,O*v),D.attr(k,0).attr(M,O*i),F.attr(A,0).attr(E,O*v),h.rangeBand){var L=h,I=L.rangeBand()/2;l=h=function(t){return L(t)+I}}else l.rangeBand?l=h:y.call(t,h,l);g.call(t,l,h),m.call(t,h,h)})}var n,e=eu.scale.linear(),r=Ys,i=6,a=6,u=3,o=[10],s=null;return t.scale=function(n){return arguments.length?(e=n,t):e},t.orient=function(n){return arguments.length?(r=n in Us?n+\"\":Ys,t):r},t.ticks=function(){return arguments.length?(o=arguments,t):o},t.tickValues=function(n){return arguments.length?(s=n,t):s},t.tickFormat=function(e){return arguments.length?(n=e,t):n},t.tickSize=function(n){var e=arguments.length;return e?(i=+n,a=+arguments[e-1],t):i},t.innerTickSize=function(n){return arguments.length?(i=+n,t):i},t.outerTickSize=function(n){return arguments.length?(a=+n,t):a},t.tickPadding=function(n){return arguments.length?(u=+n,t):u},t.tickSubdivide=function(){return arguments.length&&t},t};var Ys=\"bottom\",Us={top:1,right:1,bottom:1,left:1};eu.svg.brush=function(){function t(e){e.each(function(){var e=eu.select(this).style(\"pointer-events\",\"all\").style(\"-webkit-tap-highlight-color\",\"rgba(0,0,0,0)\").on(\"mousedown.brush\",a).on(\"touchstart.brush\",a),u=e.selectAll(\".background\").data([0]);u.enter().append(\"rect\").attr(\"class\",\"background\").style(\"visibility\",\"hidden\").style(\"cursor\",\"crosshair\"),e.selectAll(\".extent\").data([0]).enter().append(\"rect\").attr(\"class\",\"extent\").style(\"cursor\",\"move\");var o=e.selectAll(\".resize\").data(g,_);o.exit().remove(),o.enter().append(\"g\").attr(\"class\",function(t){return\"resize \"+t}).style(\"cursor\",function(t){return $s[t]}).append(\"rect\").attr(\"x\",function(t){return/[ew]$/.test(t)?-3:null}).attr(\"y\",function(t){return/^[ns]/.test(t)?-3:null}).attr(\"width\",6).attr(\"height\",6).style(\"visibility\",\"hidden\"),o.style(\"display\",t.empty()?\"none\":null);var s,h=eu.transition(e),f=eu.transition(u);c&&(s=ji(c),f.attr(\"x\",s[0]).attr(\"width\",s[1]-s[0]),r(h)),l&&(s=ji(l),f.attr(\"y\",s[0]).attr(\"height\",s[1]-s[0]),i(h)),n(h)})}function n(t){t.selectAll(\".resize\").attr(\"transform\",function(t){return\"translate(\"+h[+/e$/.test(t)]+\",\"+f[+/^s/.test(t)]+\")\"})}function r(t){t.select(\".extent\").attr(\"x\",h[0]),t.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\",h[1]-h[0])}function i(t){t.select(\".extent\").attr(\"y\",f[0]),t.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\",f[1]-f[0])}function a(){function a(){32==eu.event.keyCode&&(C||(_=null,F[0]-=h[1],F[1]-=f[1],C=2),E())}function g(){32==eu.event.keyCode&&2==C&&(F[0]+=h[1],F[1]+=f[1],C=0,E())}function y(){var t=eu.mouse(x),e=!1;b&&(t[0]+=b[0],t[1]+=b[1]),C||(eu.event.altKey?(_||(_=[(h[0]+h[1])/2,(f[0]+f[1])/2]),F[0]=h[+(t[0]<_[0])],F[1]=f[+(t[1]<_[1])]):_=null),S&&m(t,c,0)&&(r(k),e=!0),D&&m(t,l,1)&&(i(k),e=!0),e&&(n(k),A({type:\"brush\",mode:C?\"move\":\"resize\"}))}function m(t,n,e){var r,i,a=ji(n),s=a[0],c=a[1],l=F[e],g=e?f:h,y=g[1]-g[0];return C&&(s-=l,c-=y+l),r=(e?p:d)?Math.max(s,Math.min(c,t[e])):t[e],C?i=(r+=l)+y:(_&&(l=Math.max(s,Math.min(c,2*_[e]-r))),r>l?(i=r,r=l):i=l),g[0]!=r||g[1]!=i?(e?o=null:u=null,g[0]=r,g[1]=i,!0):void 0}function v(){y(),k.style(\"pointer-events\",\"all\").selectAll(\".resize\").style(\"display\",t.empty()?\"none\":null),eu.select(\"body\").style(\"cursor\",null),O.on(\"mousemove.brush\",null).on(\"mouseup.brush\",null).on(\"touchmove.brush\",null).on(\"touchend.brush\",null).on(\"keydown.brush\",null).on(\"keyup.brush\",null),T(),A({type:\"brushend\"})}var _,b,x=this,w=eu.select(eu.event.target),A=s.of(x,arguments),k=eu.select(x),M=w.datum(),S=!/^(n|s)$/.test(M)&&c,D=!/^(e|w)$/.test(M)&&l,C=w.classed(\"extent\"),T=X(x),F=eu.mouse(x),O=eu.select(e(x)).on(\"keydown.brush\",a).on(\"keyup.brush\",g);if(eu.event.changedTouches?O.on(\"touchmove.brush\",y).on(\"touchend.brush\",v):O.on(\"mousemove.brush\",y).on(\"mouseup.brush\",v),k.interrupt().selectAll(\"*\").interrupt(),C)F[0]=h[0]-F[0],F[1]=f[0]-F[1];else if(M){var L=+/w$/.test(M),I=+/^n/.test(M);b=[h[1-L]-F[0],f[1-I]-F[1]],F[0]=h[L],F[1]=f[I]}else eu.event.altKey&&(_=F.slice());k.style(\"pointer-events\",\"none\").selectAll(\".resize\").style(\"display\",null),eu.select(\"body\").style(\"cursor\",w.style(\"cursor\")),A({type:\"brushstart\"}),y()}var u,o,s=S(t,\"brushstart\",\"brush\",\"brushend\"),c=null,l=null,h=[0,0],f=[0,0],d=!0,p=!0,g=Ws[0];return t.event=function(t){t.each(function(){var t=s.of(this,arguments),n={x:h,y:f,i:u,j:o},e=this.__chart__||n;this.__chart__=n,Bs?eu.select(this).transition().each(\"start.brush\",function(){u=e.i,o=e.j,h=e.x,f=e.y,t({type:\"brushstart\"})}).tween(\"brush:brush\",function(){var e=br(h,n.x),r=br(f,n.y);return u=o=null,function(i){h=n.x=e(i),f=n.y=r(i),t({type:\"brush\",mode:\"resize\"})}}).each(\"end.brush\",function(){u=n.i,o=n.j,t({type:\"brush\",mode:\"resize\"}),t({type:\"brushend\"})}):(t({type:\"brushstart\"}),t({type:\"brush\",mode:\"resize\"}),t({type:\"brushend\"}))})},t.x=function(n){return arguments.length?(c=n,g=Ws[!c<<1|!l],t):c},t.y=function(n){return arguments.length?(l=n,g=Ws[!c<<1|!l],t):l},t.clamp=function(n){return arguments.length?(c&&l?(d=!!n[0],p=!!n[1]):c?d=!!n:l&&(p=!!n),t):c&&l?[d,p]:c?d:l?p:null},t.extent=function(n){var e,r,i,a,s;return arguments.length?(c&&(e=n[0],r=n[1],l&&(e=e[0],r=r[0]),u=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(s=e,e=r,r=s),(e!=h[0]||r!=h[1])&&(h=[e,r])),l&&(i=n[0],a=n[1],c&&(i=i[1],a=a[1]),o=[i,a],l.invert&&(i=l(i),a=l(a)),i>a&&(s=i,i=a,a=s),(i!=f[0]||a!=f[1])&&(f=[i,a])),t):(c&&(u?(e=u[0],r=u[1]):(e=h[0],r=h[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(s=e,e=r,r=s))),l&&(o?(i=o[0],a=o[1]):(i=f[0],a=f[1],l.invert&&(i=l.invert(i),a=l.invert(a)),i>a&&(s=i,i=a,a=s))),c&&l?[[e,i],[r,a]]:c?[e,r]:l&&[i,a])},t.clear=function(){return t.empty()||(h=[0,0],f=[0,0],u=o=null),t},t.empty=function(){return!!c&&h[0]==h[1]||!!l&&f[0]==f[1]},eu.rebind(t,s,\"on\")};var $s={n:\"ns-resize\",e:\"ew-resize\",s:\"ns-resize\",w:\"ew-resize\",nw:\"nwse-resize\",ne:\"nesw-resize\",se:\"nwse-resize\",sw:\"nesw-resize\"},Ws=[[\"n\",\"e\",\"s\",\"w\",\"nw\",\"ne\",\"se\",\"sw\"],[\"e\",\"w\"],[\"n\",\"s\"],[]],zs=so.format=go.timeFormat,qs=zs.utc,Gs=qs(\"%Y-%m-%dT%H:%M:%S.%LZ\");zs.iso=Date.prototype.toISOString&&+new Date(\"2000-01-01T00:00:00.000Z\")?Ka:Gs,Ka.parse=function(t){var n=new Date(t);return isNaN(n)?null:n},Ka.toString=Gs.toString,so.second=Yt(function(t){return new co(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(t.getTime()+1e3*Math.floor(n))},function(t){return t.getSeconds()}),so.seconds=so.second.range,so.seconds.utc=so.second.utc.range,so.minute=Yt(function(t){return new co(6e4*Math.floor(t/6e4))},function(t,n){t.setTime(t.getTime()+6e4*Math.floor(n))},function(t){return t.getMinutes()}),so.minutes=so.minute.range,so.minutes.utc=so.minute.utc.range,so.hour=Yt(function(t){var n=t.getTimezoneOffset()/60;return new co(36e5*(Math.floor(t/36e5-n)+n))},function(t,n){t.setTime(t.getTime()+36e5*Math.floor(n))},function(t){return t.getHours()}),so.hours=so.hour.range,so.hours.utc=so.hour.utc.range,so.month=Yt(function(t){return t=so.day(t),t.setDate(1),t},function(t,n){t.setMonth(t.getMonth()+n)},function(t){return t.getMonth()}),so.months=so.month.range,so.months.utc=so.month.utc.range;var Hs=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Vs=[[so.second,1],[so.second,5],[so.second,15],[so.second,30],[so.minute,1],[so.minute,5],[so.minute,15],[so.minute,30],[so.hour,1],[so.hour,3],[so.hour,6],[so.hour,12],[so.day,1],[so.day,2],[so.week,1],[so.month,1],[so.month,3],[so.year,1]],Zs=zs.multi([[\".%L\",function(t){return t.getMilliseconds()}],[\":%S\",function(t){return t.getSeconds()}],[\"%I:%M\",function(t){return t.getMinutes()}],[\"%I %p\",function(t){return t.getHours()}],[\"%a %d\",function(t){return t.getDay()&&1!=t.getDate()}],[\"%b %d\",function(t){return 1!=t.getDate()}],[\"%B\",function(t){return t.getMonth()}],[\"%Y\",Tn]]),Xs={range:function(t,n,e){return eu.range(Math.ceil(t/e)*e,+n,e).map(Ja)},floor:_,ceil:_};Vs.year=so.year,so.scale=function(){return Qa(eu.scale.linear(),Vs,Zs)};var Ks=Vs.map(function(t){return[t[0].utc,t[1]]}),Qs=qs.multi([[\".%L\",function(t){return t.getUTCMilliseconds()}],[\":%S\",function(t){return t.getUTCSeconds()}],[\"%I:%M\",function(t){return t.getUTCMinutes()}],[\"%I %p\",function(t){return t.getUTCHours()}],[\"%a %d\",function(t){return t.getUTCDay()&&1!=t.getUTCDate()}],[\"%b %d\",function(t){return 1!=t.getUTCDate()}],[\"%B\",function(t){return t.getUTCMonth()}],[\"%Y\",Tn]]);Ks.year=so.year.utc,so.scale.utc=function(){return Qa(eu.scale.linear(),Ks,Qs)},eu.text=Dt(function(t){return t.responseText}),eu.json=function(t,n){return Ct(t,\"application/json\",tu,n)},eu.html=function(t,n){return Ct(t,\"text/html\",nu,n)},eu.xml=Dt(function(t){return t.responseXML}),\"function\"==typeof define&&define.amd?define(eu):\"object\"==typeof n&&n.exports&&(n.exports=eu),this.d3=eu}()},{}],3:[function(t,n){n.exports={graphlib:t(\"./lib/graphlib\"),dagre:t(\"./lib/dagre\"),intersect:t(\"./lib/intersect\"),render:t(\"./lib/render\"),util:t(\"./lib/util\"),version:t(\"./lib/version\")}},{\"./lib/dagre\":10,\"./lib/graphlib\":11,\"./lib/intersect\":12,\"./lib/render\":27,\"./lib/util\":29,\"./lib/version\":30}],4:[function(t,n){function e(t,n,e,r){var i=t.append(\"marker\").attr(\"id\",n).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),u=i.append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\");a.applyStyle(u,e[r+\"Style\"])}function r(t,n,e,r){var i=t.append(\"marker\").attr(\"id\",n).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),u=i.append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 L 4 5 z\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\");a.applyStyle(u,e[r+\"Style\"])}function i(t,n,e,r){var i=t.append(\"marker\").attr(\"id\",n).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),u=i.append(\"path\").attr(\"d\",\"M 0 5 L 10 5\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\");a.applyStyle(u,e[r+\"Style\"])}var a=t(\"./util\");n.exports={\"default\":e,normal:e,vee:r,undirected:i}},{\"./util\":29}],5:[function(t,n){function e(t,n){var e=n.nodes().filter(function(t){return r.isSubgraph(n,t)}),a=t.selectAll(\"g.cluster\").data(e,function(t){return t});return a.selectAll(\"*\").remove(),a.enter().append(\"g\").attr(\"class\",\"cluster\").attr(\"id\",function(t){var e=n.node(t);return e.id}).style(\"opacity\",0),r.applyTransition(a,n).style(\"opacity\",1),a.each(function(t){var e=n.node(t),r=d3.select(this);d3.select(this).append(\"rect\");var a=r.append(\"g\").attr(\"class\",\"label\");i(a,e,e.clusterLabelPos)}),a.selectAll(\"rect\").each(function(t){var e=n.node(t),i=d3.select(this);r.applyStyle(i,e.style)}),r.applyTransition(a.exit(),n).style(\"opacity\",0).remove(),a}var r=t(\"./util\"),i=t(\"./label/add-label\");n.exports=e},{\"./label/add-label\":20,\"./util\":29}],6:[function(t,n){\"use strict\";function e(t,n){var e=t.selectAll(\"g.edgeLabel\").data(n.edges(),function(t){return a.edgeToId(t)}).classed(\"update\",!0);return e.selectAll(\"*\").remove(),e.enter().append(\"g\").classed(\"edgeLabel\",!0).style(\"opacity\",0),e.each(function(t){var e=n.edge(t),a=i(u.select(this),n.edge(t),0,0).classed(\"label\",!0),o=a.node().getBBox();e.labelId&&a.attr(\"id\",e.labelId),r.has(e,\"width\")||(e.width=o.width),r.has(e,\"height\")||(e.height=o.height)}),a.applyTransition(e.exit(),n).style(\"opacity\",0).remove(),e}var r=t(\"./lodash\"),i=t(\"./label/add-label\"),a=t(\"./util\"),u=t(\"./d3\");n.exports=e},{\"./d3\":9,\"./label/add-label\":20,\"./lodash\":23,\"./util\":29}],7:[function(t,n){\"use strict\";function e(t,n,e){var i=t.selectAll(\"g.edgePath\").data(n.edges(),function(t){return l.edgeToId(t)}).classed(\"update\",!0);return u(i,n),o(i,n),l.applyTransition(i,n).style(\"opacity\",1),i.each(function(t){var e=h.select(this),r=n.edge(t);r.elem=this,r.id&&e.attr(\"id\",r.id),l.applyClass(e,r[\"class\"],(e.classed(\"update\")?\"update \":\"\")+\"edgePath\")}),i.selectAll(\"path.path\").each(function(t){var e=n.edge(t);e.arrowheadId=s.uniqueId(\"arrowhead\");var i=h.select(this).attr(\"marker-end\",function(){return\"url(#\"+e.arrowheadId+\")\"}).style(\"fill\",\"none\");l.applyTransition(i,n).attr(\"d\",function(t){return r(n,t)}),l.applyStyle(i,e.style)}),i.selectAll(\"defs *\").remove(),i.selectAll(\"defs\").each(function(t){var r=n.edge(t),i=e[r.arrowhead];i(h.select(this),r.arrowheadId,r,\"arrowhead\")}),i}function r(t,n){var e=t.edge(n),r=t.node(n.v),a=t.node(n.w),u=e.points.slice(1,e.points.length-1);return u.unshift(c(r,u[0])),u.push(c(a,u[u.length-1])),i(e,u)}function i(t,n){var e=h.svg.line().x(function(t){return t.x}).y(function(t){return t.y});return s.has(t,\"lineInterpolate\")&&e.interpolate(t.lineInterpolate),s.has(t,\"lineTension\")&&e.tension(Number(t.lineTension)),e(n)}function a(t){var n=t.getBBox(),e=t.getTransformToElement(t.ownerSVGElement).translate(n.width/2,n.height/2);return{x:e.e,y:e.f}}function u(t,n){var e=t.enter().append(\"g\").attr(\"class\",\"edgePath\").style(\"opacity\",0);e.append(\"path\").attr(\"class\",\"path\").attr(\"d\",function(t){var e=n.edge(t),r=n.node(t.v).elem,u=s.range(e.points.length).map(function(){return a(r)});return i(e,u)}),e.append(\"defs\")}function o(t,n){var e=t.exit();l.applyTransition(e,n).style(\"opacity\",0).remove(),l.applyTransition(e.select(\"path.path\"),n).attr(\"d\",function(t){var e=n.node(t.v);if(e){var r=s.range(this.pathSegList.length).map(function(){return e});return i({},r)}return h.select(this).attr(\"d\")})}var s=t(\"./lodash\"),c=t(\"./intersect/intersect-node\"),l=t(\"./util\"),h=t(\"./d3\");n.exports=e},{\"./d3\":9,\"./intersect/intersect-node\":16,\"./lodash\":23,\"./util\":29}],8:[function(t,n){\"use strict\";function e(t,n,e){var o=n.nodes().filter(function(t){return!a.isSubgraph(n,t)}),s=t.selectAll(\"g.node\").data(o,function(t){return t}).classed(\"update\",!0);return s.selectAll(\"*\").remove(),s.enter().append(\"g\").attr(\"class\",\"node\").style(\"opacity\",0),s.each(function(t){var o=n.node(t),s=u.select(this),c=s.append(\"g\").attr(\"class\",\"label\"),l=i(c,o),h=e[o.shape],f=r.pick(l.node().getBBox(),\"width\",\"height\");o.elem=this,o.id&&s.attr(\"id\",o.id),o.labelId&&c.attr(\"id\",o.labelId),a.applyClass(s,o[\"class\"],(s.classed(\"update\")?\"update \":\"\")+\"node\"),r.has(o,\"width\")&&(f.width=o.width),r.has(o,\"height\")&&(f.height=o.height),f.width+=o.paddingLeft+o.paddingRight,f.height+=o.paddingTop+o.paddingBottom,c.attr(\"transform\",\"translate(\"+(o.paddingLeft-o.paddingRight)/2+\",\"+(o.paddingTop-o.paddingBottom)/2+\")\");var d=h(u.select(this),f,o);a.applyStyle(d,o.style);var p=d.node().getBBox();o.width=p.width,o.height=p.height}),a.applyTransition(s.exit(),n).style(\"opacity\",0).remove(),s}var r=t(\"./lodash\"),i=t(\"./label/add-label\"),a=t(\"./util\"),u=t(\"./d3\");n.exports=e},{\"./d3\":9,\"./label/add-label\":20,\"./lodash\":23,\"./util\":29}],9:[function(t,n){n.exports=window.d3},{}],10:[function(t,n){var e;if(t)try{e=t(\"dagre\")}catch(r){}e||(e=window.dagre),n.exports=e},{dagre:52}],11:[function(t,n){var e;if(t)try{e=t(\"graphlib\")}catch(r){}e||(e=window.graphlib),n.exports=e},{graphlib:31}],12:[function(t,n){n.exports={node:t(\"./intersect-node\"),circle:t(\"./intersect-circle\"),ellipse:t(\"./intersect-ellipse\"),polygon:t(\"./intersect-polygon\"),rect:t(\"./intersect-rect\")}},{\"./intersect-circle\":13,\"./intersect-ellipse\":14,\"./intersect-node\":16,\"./intersect-polygon\":17,\"./intersect-rect\":18}],13:[function(t,n){function e(t,n,e){return r(t,n,n,e)}var r=t(\"./intersect-ellipse\");n.exports=e},{\"./intersect-ellipse\":14}],14:[function(t,n){function e(t,n,e,r){var i=t.x,a=t.y,u=i-r.x,o=a-r.y,s=Math.sqrt(n*n*o*o+e*e*u*u),c=Math.abs(n*e*u/s);r.x<i&&(c=-c);var l=Math.abs(n*e*o/s);return r.y<a&&(l=-l),{x:i+c,y:a+l}}n.exports=e},{}],15:[function(t,n){function e(t,n,e,i){var a,u,o,s,c,l,h,f,d,p,g,y,m,v,_;return a=n.y-t.y,o=t.x-n.x,c=n.x*t.y-t.x*n.y,d=a*e.x+o*e.y+c,p=a*i.x+o*i.y+c,0!==d&&0!==p&&r(d,p)||(u=i.y-e.y,s=e.x-i.x,l=i.x*e.y-e.x*i.y,h=u*t.x+s*t.yy+l,f=u*n.x+s*n.y+l,0!==h&&0!==f&&r(h,f)||(g=a*s-u*o,0===g))?void 0:(y=Math.abs(g/2),m=o*l-s*c,v=0>m?(m-y)/g:(m+y)/g,m=u*c-a*l,_=0>m?(m-y)/g:(m+y)/g,{x:v,y:_})}function r(t,n){return t*n>0}n.exports=e},{}],16:[function(t,n){function e(t,n){return t.intersect(n)}n.exports=e},{}],17:[function(t,n){function e(t,n,e){var i=t.x,a=t.y,u=[],o=Number.POSITIVE_INFINITY,s=Number.POSITIVE_INFINITY;n.forEach(function(t){o=Math.min(o,t.x),s=Math.min(s,t.y)});for(var c=i-t.width/2-o,l=a-t.height/2-s,h=0;h<n.length;h++){var f=n[h],d=n[h<n.length-1?h+1:0],p=r(t,e,{x:c+f.x,y:l+f.y},{x:c+d.x,y:l+d.y});p&&u.push(p)}return u.length?(u.length>1&&u.sort(function(t,n){var r=t.x-e.x,i=t.y-e.y,a=Math.sqrt(r*r+i*i),u=n.x-e.x,o=n.y-e.y,s=Math.sqrt(u*u+o*o);return s>a?-1:a===s?0:1}),u[0]):(console.log(\"NO INTERSECTION FOUND, RETURN NODE CENTER\",t),t)}var r=t(\"./intersect-line\");n.exports=e},{\"./intersect-line\":15}],18:[function(t,n){\nfunction e(t,n){var e,r,i=t.x,a=t.y,u=n.x-i,o=n.y-a,s=t.width/2,c=t.height/2;return Math.abs(o)*s>Math.abs(u)*c?(0>o&&(c=-c),e=0===o?0:c*u/o,r=c):(0>u&&(s=-s),e=s,r=0===u?0:s*o/u),{x:i+e,y:a+r}}n.exports=e},{}],19:[function(t,n){function e(t,n){var e=t.append(\"foreignObject\").attr(\"width\",\"100000\"),i=e.append(\"xhtml:div\"),a=n.label;switch(typeof a){case\"function\":i.insert(a);break;case\"object\":i.insert(function(){return a});break;default:i.html(a)}r.applyStyle(i,n.labelStyle),i.style(\"display\",\"inline-block\"),i.style(\"white-space\",\"nowrap\");var u,o;return i.each(function(){u=this.clientWidth,o=this.clientHeight}),e.attr(\"width\",u).attr(\"height\",o),e}var r=t(\"../util\");n.exports=e},{\"../util\":29}],20:[function(t,n){function e(t,n,e){var u=n.label,o=t.append(\"g\");\"svg\"===n.labelType?a(o,n):\"string\"!=typeof u||\"html\"===n.labelType?i(o,n):r(o,n);var s,c=o.node().getBBox();switch(e){case\"top\":s=-n.height/2;break;case\"bottom\":s=n.height/2-c.height;break;default:s=-c.height/2}return o.attr(\"transform\",\"translate(\"+-c.width/2+\",\"+s+\")\"),o}var r=t(\"./add-text-label\"),i=t(\"./add-html-label\"),a=t(\"./add-svg-label\");n.exports=e},{\"./add-html-label\":19,\"./add-svg-label\":21,\"./add-text-label\":22}],21:[function(t,n){function e(t,n){var e=t;return e.node().appendChild(n.label),r.applyStyle(e,n.labelStyle),e}var r=t(\"../util\");n.exports=e},{\"../util\":29}],22:[function(t,n){function e(t,n){for(var e=t.append(\"text\"),a=r(n.label).split(\"\\n\"),u=0;u<a.length;u++)e.append(\"tspan\").attr(\"xml:space\",\"preserve\").attr(\"dy\",\"1em\").attr(\"x\",\"1\").text(a[u]);return i.applyStyle(e,n.labelStyle),e}function r(t){for(var n,e=\"\",r=!1,i=0;i<t.length;++i)if(n=t[i],r){switch(n){case\"n\":e+=\"\\n\";break;default:e+=n}r=!1}else\"\\\\\"===n?r=!0:e+=n;return e}var i=t(\"../util\");n.exports=e},{\"../util\":29}],23:[function(t,n){var e;if(t)try{e=t(\"lodash\")}catch(r){}e||(e=window._),n.exports=e},{lodash:51}],24:[function(t,n){\"use strict\";function e(t,n){function e(t){var e=n.node(t);return\"translate(\"+e.x+\",\"+e.y+\")\"}var a=t.filter(function(){return!i.select(this).classed(\"update\")});a.attr(\"transform\",e),r.applyTransition(t,n).style(\"opacity\",1).attr(\"transform\",e),r.applyTransition(a.selectAll(\"rect\"),n).attr(\"width\",function(t){return n.node(t).width}).attr(\"height\",function(t){return n.node(t).height}).attr(\"x\",function(t){var e=n.node(t);return-e.width/2}).attr(\"y\",function(t){var e=n.node(t);return-e.height/2})}var r=t(\"./util\"),i=t(\"./d3\");n.exports=e},{\"./d3\":9,\"./util\":29}],25:[function(t,n){\"use strict\";function e(t,n){function e(t){var e=n.edge(t);return a.has(e,\"x\")?\"translate(\"+e.x+\",\"+e.y+\")\":\"\"}var u=t.filter(function(){return!i.select(this).classed(\"update\")});u.attr(\"transform\",e),r.applyTransition(t,n).style(\"opacity\",1).attr(\"transform\",e)}var r=t(\"./util\"),i=t(\"./d3\"),a=t(\"./lodash\");n.exports=e},{\"./d3\":9,\"./lodash\":23,\"./util\":29}],26:[function(t,n){\"use strict\";function e(t,n){function e(t){var e=n.node(t);return\"translate(\"+e.x+\",\"+e.y+\")\"}var a=t.filter(function(){return!i.select(this).classed(\"update\")});a.attr(\"transform\",e),r.applyTransition(t,n).style(\"opacity\",1).attr(\"transform\",e)}var r=t(\"./util\"),i=t(\"./d3\");n.exports=e},{\"./d3\":9,\"./util\":29}],27:[function(t,n){function e(){var n=t(\"./create-nodes\"),e=t(\"./create-clusters\"),u=t(\"./create-edge-labels\"),s=t(\"./create-edge-paths\"),c=t(\"./position-nodes\"),l=t(\"./position-edge-labels\"),h=t(\"./position-clusters\"),f=t(\"./shapes\"),d=t(\"./arrows\"),p=function(t,p){r(p);var g=a(t,\"output\"),y=a(g,\"clusters\"),m=a(g,\"edgePaths\"),v=u(a(g,\"edgeLabels\"),p),_=n(a(g,\"nodes\"),p,f);o(p),c(_,p),l(v,p),s(m,p,d);var b=e(y,p);h(b,p),i(p)};return p.createNodes=function(t){return arguments.length?(n=t,p):n},p.createClusters=function(t){return arguments.length?(e=t,p):e},p.createEdgeLabels=function(t){return arguments.length?(u=t,p):u},p.createEdgePaths=function(t){return arguments.length?(s=t,p):s},p.shapes=function(t){return arguments.length?(f=t,p):f},p.arrows=function(t){return arguments.length?(d=t,p):d},p}function r(t){t.nodes().forEach(function(n){var e=t.node(n);u.has(e,\"label\")||t.children(n).length||(e.label=n),u.has(e,\"paddingX\")&&u.defaults(e,{paddingLeft:e.paddingX,paddingRight:e.paddingX}),u.has(e,\"paddingY\")&&u.defaults(e,{paddingTop:e.paddingY,paddingBottom:e.paddingY}),u.has(e,\"padding\")&&u.defaults(e,{paddingLeft:e.padding,paddingRight:e.padding,paddingTop:e.padding,paddingBottom:e.padding}),u.defaults(e,s),u.each([\"paddingLeft\",\"paddingRight\",\"paddingTop\",\"paddingBottom\"],function(t){e[t]=Number(e[t])}),u.has(e,\"width\")&&(e._prevWidth=e.width),u.has(e,\"height\")&&(e._prevHeight=e.height)}),t.edges().forEach(function(n){var e=t.edge(n);u.has(e,\"label\")||(e.label=\"\"),u.defaults(e,c)})}function i(t){u.each(t.nodes(),function(n){var e=t.node(n);u.has(e,\"_prevWidth\")?e.width=e._prevWidth:delete e.width,u.has(e,\"_prevHeight\")?e.height=e._prevHeight:delete e.height,delete e._prevWidth,delete e._prevHeight})}function a(t,n){var e=t.select(\"g.\"+n);return e.empty()&&(e=t.append(\"g\").attr(\"class\",n)),e}var u=t(\"./lodash\"),o=t(\"./dagre\").layout;n.exports=e;var s={paddingLeft:10,paddingRight:10,paddingTop:10,paddingBottom:10,rx:0,ry:0,shape:\"rect\"},c={arrowhead:\"normal\",lineInterpolate:\"linear\"}},{\"./arrows\":4,\"./create-clusters\":5,\"./create-edge-labels\":6,\"./create-edge-paths\":7,\"./create-nodes\":8,\"./dagre\":10,\"./lodash\":23,\"./position-clusters\":24,\"./position-edge-labels\":25,\"./position-nodes\":26,\"./shapes\":28}],28:[function(t,n){\"use strict\";function e(t,n,e){var r=t.insert(\"rect\",\":first-child\").attr(\"rx\",e.rx).attr(\"ry\",e.ry).attr(\"x\",-n.width/2).attr(\"y\",-n.height/2).attr(\"width\",n.width).attr(\"height\",n.height);return e.intersect=function(t){return u(e,t)},r}function r(t,n,e){var r=n.width/2,i=n.height/2,a=t.insert(\"ellipse\",\":first-child\").attr(\"x\",-n.width/2).attr(\"y\",-n.height/2).attr(\"rx\",r).attr(\"ry\",i);return e.intersect=function(t){return o(e,r,i,t)},a}function i(t,n,e){var r=Math.max(n.width,n.height)/2,i=t.insert(\"circle\",\":first-child\").attr(\"x\",-n.width/2).attr(\"y\",-n.height/2).attr(\"r\",r);return e.intersect=function(t){return s(e,r,t)},i}function a(t,n,e){var r=n.width*Math.SQRT2/2,i=n.height*Math.SQRT2/2,a=[{x:0,y:-i},{x:-r,y:0},{x:0,y:i},{x:r,y:0}],u=t.insert(\"polygon\",\":first-child\").attr(\"points\",a.map(function(t){return t.x+\",\"+t.y}).join(\" \"));return e.intersect=function(t){return c(e,a,t)},u}var u=t(\"./intersect/intersect-rect\"),o=t(\"./intersect/intersect-ellipse\"),s=t(\"./intersect/intersect-circle\"),c=t(\"./intersect/intersect-polygon\");n.exports={rect:e,ellipse:r,circle:i,diamond:a}},{\"./intersect/intersect-circle\":13,\"./intersect/intersect-ellipse\":14,\"./intersect/intersect-polygon\":17,\"./intersect/intersect-rect\":18}],29:[function(t,n){function e(t,n){return!!t.children(n).length}function r(t){return i(t.v)+\":\"+i(t.w)+\":\"+i(t.name)}function i(t){return t?String(t).replace(c,\"\\\\:\"):\"\"}function a(t,n){n&&t.attr(\"style\",n)}function u(t,n,e){n&&t.attr(\"class\",n).attr(\"class\",e+\" \"+t.attr(\"class\"))}function o(t,n){var e=n.graph();if(s.isPlainObject(e)){var r=e.transition;if(s.isFunction(r))return r(t)}return t}var s=t(\"./lodash\");n.exports={isSubgraph:e,edgeToId:r,applyStyle:a,applyClass:u,applyTransition:o};var c=/:/g},{\"./lodash\":23}],30:[function(t,n){n.exports=\"0.4.10\"},{}],31:[function(t,n){var e=t(\"./lib\");n.exports={Graph:e.Graph,json:t(\"./lib/json\"),alg:t(\"./lib/alg\"),version:e.version}},{\"./lib\":47,\"./lib/alg\":38,\"./lib/json\":48}],32:[function(t,n){function e(t){function n(a){r.has(i,a)||(i[a]=!0,e.push(a),r.each(t.successors(a),n),r.each(t.predecessors(a),n))}var e,i={},a=[];return r.each(t.nodes(),function(t){e=[],n(t),e.length&&a.push(e)}),a}var r=t(\"../lodash\");n.exports=e},{\"../lodash\":49}],33:[function(t,n){function e(t,n,e){i.isArray(n)||(n=[n]);var a=[],u={};return i.each(n,function(n){if(!t.hasNode(n))throw new Error(\"Graph does not have node: \"+n);r(t,n,\"post\"===e,u,a)}),a}function r(t,n,e,a,u){i.has(a,n)||(a[n]=!0,e||u.push(n),i.each(t.neighbors(n),function(n){r(t,n,e,a,u)}),e&&u.push(n))}var i=t(\"../lodash\");n.exports=e},{\"../lodash\":49}],34:[function(t,n){function e(t,n,e){return i.transform(t.nodes(),function(i,a){i[a]=r(t,a,n,e)},{})}var r=t(\"./dijkstra\"),i=t(\"../lodash\");n.exports=e},{\"../lodash\":49,\"./dijkstra\":35}],35:[function(t,n){function e(t,n,e,i){return r(t,String(n),e||u,i||function(n){return t.outEdges(n)})}function r(t,n,e,r){var i,u,o={},s=new a,c=function(t){var n=t.v!==i?t.v:t.w,r=o[n],a=e(t),c=u.distance+a;if(0>a)throw new Error(\"dijkstra does not allow negative edge weights. Bad edge: \"+t+\" Weight: \"+a);c<r.distance&&(r.distance=c,r.predecessor=i,s.decrease(n,c))};for(t.nodes().forEach(function(t){var e=t===n?0:Number.POSITIVE_INFINITY;o[t]={distance:e},s.add(t,e)});s.size()>0&&(i=s.removeMin(),u=o[i],u.distance!==Number.POSITIVE_INFINITY);)r(i).forEach(c);return o}var i=t(\"../lodash\"),a=t(\"../data/priority-queue\");n.exports=e;var u=i.constant(1)},{\"../data/priority-queue\":45,\"../lodash\":49}],36:[function(t,n){function e(t){return r.filter(i(t),function(n){return n.length>1||1===n.length&&t.hasEdge(n[0],n[0])})}var r=t(\"../lodash\"),i=t(\"./tarjan\");n.exports=e},{\"../lodash\":49,\"./tarjan\":43}],37:[function(t,n){function e(t,n,e){return r(t,n||a,e||function(n){return t.outEdges(n)})}function r(t,n,e){var r={},i=t.nodes();return i.forEach(function(t){r[t]={},r[t][t]={distance:0},i.forEach(function(n){t!==n&&(r[t][n]={distance:Number.POSITIVE_INFINITY})}),e(t).forEach(function(e){var i=e.v===t?e.w:e.v,a=n(e);r[t][i]={distance:a,predecessor:t}})}),i.forEach(function(t){var n=r[t];i.forEach(function(e){var a=r[e];i.forEach(function(e){var r=a[t],i=n[e],u=a[e],o=r.distance+i.distance;o<u.distance&&(u.distance=o,u.predecessor=i.predecessor)})})}),r}var i=t(\"../lodash\");n.exports=e;var a=i.constant(1)},{\"../lodash\":49}],38:[function(t,n){n.exports={components:t(\"./components\"),dijkstra:t(\"./dijkstra\"),dijkstraAll:t(\"./dijkstra-all\"),findCycles:t(\"./find-cycles\"),floydWarshall:t(\"./floyd-warshall\"),isAcyclic:t(\"./is-acyclic\"),postorder:t(\"./postorder\"),preorder:t(\"./preorder\"),prim:t(\"./prim\"),tarjan:t(\"./tarjan\"),topsort:t(\"./topsort\")}},{\"./components\":32,\"./dijkstra\":35,\"./dijkstra-all\":34,\"./find-cycles\":36,\"./floyd-warshall\":37,\"./is-acyclic\":39,\"./postorder\":40,\"./preorder\":41,\"./prim\":42,\"./tarjan\":43,\"./topsort\":44}],39:[function(t,n){function e(t){try{r(t)}catch(n){if(n instanceof r.CycleException)return!1;throw n}return!0}var r=t(\"./topsort\");n.exports=e},{\"./topsort\":44}],40:[function(t,n){function e(t,n){return r(t,n,\"post\")}var r=t(\"./dfs\");n.exports=e},{\"./dfs\":33}],41:[function(t,n){function e(t,n){return r(t,n,\"pre\")}var r=t(\"./dfs\");n.exports=e},{\"./dfs\":33}],42:[function(t,n){function e(t,n){function e(t){var e=t.v===u?t.w:t.v,r=c.priority(e);if(void 0!==r){var i=n(t);r>i&&(s[e]=u,c.decrease(e,i))}}var u,o=new i,s={},c=new a;if(0===t.nodeCount())return o;r.each(t.nodes(),function(t){c.add(t,Number.POSITIVE_INFINITY),o.setNode(t)}),c.decrease(t.nodes()[0],0);for(var l=!1;c.size()>0;){if(u=c.removeMin(),r.has(s,u))o.setEdge(u,s[u]);else{if(l)throw new Error(\"Input graph is not connected: \"+t);l=!0}t.nodeEdges(u).forEach(e)}return o}var r=t(\"../lodash\"),i=t(\"../graph\"),a=t(\"../data/priority-queue\");n.exports=e},{\"../data/priority-queue\":45,\"../graph\":46,\"../lodash\":49}],43:[function(t,n){function e(t){function n(o){var s=a[o]={onStack:!0,lowlink:e,index:e++};if(i.push(o),t.successors(o).forEach(function(t){r.has(a,t)?a[t].onStack&&(s.lowlink=Math.min(s.lowlink,a[t].index)):(n(t),s.lowlink=Math.min(s.lowlink,a[t].lowlink))}),s.lowlink===s.index){var c,l=[];do c=i.pop(),a[c].onStack=!1,l.push(c);while(o!==c);u.push(l)}}var e=0,i=[],a={},u=[];return t.nodes().forEach(function(t){r.has(a,t)||n(t)}),u}var r=t(\"../lodash\");n.exports=e},{\"../lodash\":49}],44:[function(t,n){function e(t){function n(o){if(i.has(a,o))throw new r;i.has(e,o)||(a[o]=!0,e[o]=!0,i.each(t.predecessors(o),n),delete a[o],u.push(o))}var e={},a={},u=[];if(i.each(t.sinks(),n),i.size(e)!==t.nodeCount())throw new r;return u}function r(){}var i=t(\"../lodash\");n.exports=e,e.CycleException=r},{\"../lodash\":49}],45:[function(t,n){function e(){this._arr=[],this._keyIndices={}}var r=t(\"../lodash\");n.exports=e,e.prototype.size=function(){return this._arr.length},e.prototype.keys=function(){return this._arr.map(function(t){return t.key})},e.prototype.has=function(t){return r.has(this._keyIndices,t)},e.prototype.priority=function(t){var n=this._keyIndices[t];return void 0!==n?this._arr[n].priority:void 0},e.prototype.min=function(){if(0===this.size())throw new Error(\"Queue underflow\");return this._arr[0].key},e.prototype.add=function(t,n){var e=this._keyIndices;if(t=String(t),!r.has(e,t)){var i=this._arr,a=i.length;return e[t]=a,i.push({key:t,priority:n}),this._decrease(a),!0}return!1},e.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var t=this._arr.pop();return delete this._keyIndices[t.key],this._heapify(0),t.key},e.prototype.decrease=function(t,n){var e=this._keyIndices[t];if(n>this._arr[e].priority)throw new Error(\"New priority is greater than current priority. Key: \"+t+\" Old: \"+this._arr[e].priority+\" New: \"+n);this._arr[e].priority=n,this._decrease(e)},e.prototype._heapify=function(t){var n=this._arr,e=2*t,r=e+1,i=t;e<n.length&&(i=n[e].priority<n[i].priority?e:i,r<n.length&&(i=n[r].priority<n[i].priority?r:i),i!==t&&(this._swap(t,i),this._heapify(i)))},e.prototype._decrease=function(t){for(var n,e=this._arr,r=e[t].priority;0!==t&&(n=t>>1,!(e[n].priority<r));)this._swap(t,n),t=n},e.prototype._swap=function(t,n){var e=this._arr,r=this._keyIndices,i=e[t],a=e[n];e[t]=a,e[n]=i,r[a.key]=t,r[i.key]=n}},{\"../lodash\":49}],46:[function(t,n){\"use strict\";function e(t){this._isDirected=s.has(t,\"directed\")?t.directed:!0,this._isMultigraph=s.has(t,\"multigraph\")?t.multigraph:!1,this._isCompound=s.has(t,\"compound\")?t.compound:!1,this._label=void 0,this._defaultNodeLabelFn=s.constant(void 0),this._defaultEdgeLabelFn=s.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[l]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}function r(t,n){t[n]?t[n]++:t[n]=1}function i(t,n){--t[n]||delete t[n]}function a(t,n,e,r){var i=\"\"+n,a=\"\"+e;if(!t&&i>a){var u=i;i=a,a=u}return i+h+a+h+(s.isUndefined(r)?c:r)}function u(t,n,e,r){var i=\"\"+n,a=\"\"+e;if(!t&&i>a){var u=i;i=a,a=u}var o={v:i,w:a};return r&&(o.name=r),o}function o(t,n){return a(t,n.v,n.w,n.name)}var s=t(\"./lodash\");n.exports=e;var c=\"\\x00\",l=\"\\x00\",h=\"\u0001\";e.prototype._nodeCount=0,e.prototype._edgeCount=0,e.prototype.isDirected=function(){return this._isDirected},e.prototype.isMultigraph=function(){return this._isMultigraph},e.prototype.isCompound=function(){return this._isCompound},e.prototype.setGraph=function(t){return this._label=t,this},e.prototype.graph=function(){return this._label},e.prototype.setDefaultNodeLabel=function(t){return s.isFunction(t)||(t=s.constant(t)),this._defaultNodeLabelFn=t,this},e.prototype.nodeCount=function(){return this._nodeCount},e.prototype.nodes=function(){return s.keys(this._nodes)},e.prototype.sources=function(){return s.filter(this.nodes(),function(t){return s.isEmpty(this._in[t])},this)},e.prototype.sinks=function(){return s.filter(this.nodes(),function(t){return s.isEmpty(this._out[t])},this)},e.prototype.setNodes=function(t,n){var e=arguments;return s.each(t,function(t){e.length>1?this.setNode(t,n):this.setNode(t)},this),this},e.prototype.setNode=function(t,n){return s.has(this._nodes,t)?(arguments.length>1&&(this._nodes[t]=n),this):(this._nodes[t]=arguments.length>1?n:this._defaultNodeLabelFn(t),this._isCompound&&(this._parent[t]=l,this._children[t]={},this._children[l][t]=!0),this._in[t]={},this._preds[t]={},this._out[t]={},this._sucs[t]={},++this._nodeCount,this)},e.prototype.node=function(t){return this._nodes[t]},e.prototype.hasNode=function(t){return s.has(this._nodes,t)},e.prototype.removeNode=function(t){var n=this;if(s.has(this._nodes,t)){var e=function(t){n.removeEdge(n._edgeObjs[t])};delete this._nodes[t],this._isCompound&&(this._removeFromParentsChildList(t),delete this._parent[t],s.each(this.children(t),function(t){this.setParent(t)},this),delete this._children[t]),s.each(s.keys(this._in[t]),e),delete this._in[t],delete this._preds[t],s.each(s.keys(this._out[t]),e),delete this._out[t],delete this._sucs[t],--this._nodeCount}return this},e.prototype.setParent=function(t,n){if(!this._isCompound)throw new Error(\"Cannot set parent in a non-compound graph\");if(s.isUndefined(n))n=l;else{n+=\"\";for(var e=n;!s.isUndefined(e);e=this.parent(e))if(e===t)throw new Error(\"Setting \"+n+\" as parent of \"+t+\" would create create a cycle\");this.setNode(n)}return this.setNode(t),this._removeFromParentsChildList(t),this._parent[t]=n,this._children[n][t]=!0,this},e.prototype._removeFromParentsChildList=function(t){delete this._children[this._parent[t]][t]},e.prototype.parent=function(t){if(this._isCompound){var n=this._parent[t];if(n!==l)return n}},e.prototype.children=function(t){if(s.isUndefined(t)&&(t=l),this._isCompound){var n=this._children[t];if(n)return s.keys(n)}else{if(t===l)return this.nodes();if(this.hasNode(t))return[]}},e.prototype.predecessors=function(t){var n=this._preds[t];return n?s.keys(n):void 0},e.prototype.successors=function(t){var n=this._sucs[t];return n?s.keys(n):void 0},e.prototype.neighbors=function(t){var n=this.predecessors(t);return n?s.union(n,this.successors(t)):void 0},e.prototype.filterNodes=function(t){function n(t){var a=r.parent(t);return void 0===a||e.hasNode(a)?(i[t]=a,a):a in i?i[a]:n(a)}var e=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});e.setGraph(this.graph()),s.each(this._nodes,function(n,r){t(r)&&e.setNode(r,n)},this),s.each(this._edgeObjs,function(t){e.hasNode(t.v)&&e.hasNode(t.w)&&e.setEdge(t,this.edge(t))},this);var r=this,i={};return this._isCompound&&s.each(e.nodes(),function(t){e.setParent(t,n(t))}),e},e.prototype.setDefaultEdgeLabel=function(t){return s.isFunction(t)||(t=s.constant(t)),this._defaultEdgeLabelFn=t,this},e.prototype.edgeCount=function(){return this._edgeCount},e.prototype.edges=function(){return s.values(this._edgeObjs)},e.prototype.setPath=function(t,n){var e=this,r=arguments;return s.reduce(t,function(t,i){return r.length>1?e.setEdge(t,i,n):e.setEdge(t,i),i}),this},e.prototype.setEdge=function(){var t,n,e,i,o=!1,c=arguments[0];\"object\"==typeof c&&null!==c&&\"v\"in c?(t=c.v,n=c.w,e=c.name,2===arguments.length&&(i=arguments[1],o=!0)):(t=c,n=arguments[1],e=arguments[3],arguments.length>2&&(i=arguments[2],o=!0)),t=\"\"+t,n=\"\"+n,s.isUndefined(e)||(e=\"\"+e);var l=a(this._isDirected,t,n,e);if(s.has(this._edgeLabels,l))return o&&(this._edgeLabels[l]=i),this;if(!s.isUndefined(e)&&!this._isMultigraph)throw new Error(\"Cannot set a named edge when isMultigraph = false\");this.setNode(t),this.setNode(n),this._edgeLabels[l]=o?i:this._defaultEdgeLabelFn(t,n,e);var h=u(this._isDirected,t,n,e);return t=h.v,n=h.w,Object.freeze(h),this._edgeObjs[l]=h,r(this._preds[n],t),r(this._sucs[t],n),this._in[n][l]=h,this._out[t][l]=h,this._edgeCount++,this},e.prototype.edge=function(t,n,e){var r=1===arguments.length?o(this._isDirected,arguments[0]):a(this._isDirected,t,n,e);return this._edgeLabels[r]},e.prototype.hasEdge=function(t,n,e){var r=1===arguments.length?o(this._isDirected,arguments[0]):a(this._isDirected,t,n,e);return s.has(this._edgeLabels,r)},e.prototype.removeEdge=function(t,n,e){var r=1===arguments.length?o(this._isDirected,arguments[0]):a(this._isDirected,t,n,e),u=this._edgeObjs[r];return u&&(t=u.v,n=u.w,delete this._edgeLabels[r],delete this._edgeObjs[r],i(this._preds[n],t),i(this._sucs[t],n),delete this._in[n][r],delete this._out[t][r],this._edgeCount--),this},e.prototype.inEdges=function(t,n){var e=this._in[t];if(e){var r=s.values(e);return n?s.filter(r,function(t){return t.v===n}):r}},e.prototype.outEdges=function(t,n){var e=this._out[t];if(e){var r=s.values(e);return n?s.filter(r,function(t){return t.w===n}):r}},e.prototype.nodeEdges=function(t,n){var e=this.inEdges(t,n);return e?e.concat(this.outEdges(t,n)):void 0}},{\"./lodash\":49}],47:[function(t,n){n.exports={Graph:t(\"./graph\"),version:t(\"./version\")}},{\"./graph\":46,\"./version\":50}],48:[function(t,n){function e(t){var n={options:{directed:t.isDirected(),multigraph:t.isMultigraph(),compound:t.isCompound()},nodes:r(t),edges:i(t)};return u.isUndefined(t.graph())||(n.value=u.clone(t.graph())),n}function r(t){return u.map(t.nodes(),function(n){var e=t.node(n),r=t.parent(n),i={v:n};return u.isUndefined(e)||(i.value=e),u.isUndefined(r)||(i.parent=r),i})}function i(t){return u.map(t.edges(),function(n){var e=t.edge(n),r={v:n.v,w:n.w};return u.isUndefined(n.name)||(r.name=n.name),u.isUndefined(e)||(r.value=e),r})}function a(t){var n=new o(t.options).setGraph(t.value);return u.each(t.nodes,function(t){n.setNode(t.v,t.value),t.parent&&n.setParent(t.v,t.parent)}),u.each(t.edges,function(t){n.setEdge({v:t.v,w:t.w,name:t.name},t.value)}),n}var u=t(\"./lodash\"),o=t(\"./graph\");n.exports={write:e,read:a}},{\"./graph\":46,\"./lodash\":49}],49:[function(t,n){var e;if(\"function\"==typeof t)try{e=t(\"lodash\")}catch(r){}e||(e=window._),n.exports=e},{lodash:51}],50:[function(t,n){n.exports=\"1.0.7\"},{}],51:[function(t,n,e){(function(t){(function(){function r(t,n){if(t!==n){var e=null===t,r=t===E,i=t===t,a=null===n,u=n===E,o=n===n;if(t>n&&!a||!i||e&&!u&&o||r&&o)return 1;if(n>t&&!e||!o||a&&!r&&i||u&&i)return-1}return 0}function i(t,n,e){for(var r=t.length,i=e?r:-1;e?i--:++i<r;)if(n(t[i],i,t))return i;return-1}function a(t,n,e){if(n!==n)return y(t,e);for(var r=e-1,i=t.length;++r<i;)if(t[r]===n)return r;return-1}function u(t){return\"function\"==typeof t||!1}function o(t){return null==t?\"\":t+\"\"}function s(t,n){for(var e=-1,r=t.length;++e<r&&n.indexOf(t.charAt(e))>-1;);return e}function c(t,n){for(var e=t.length;e--&&n.indexOf(t.charAt(e))>-1;);return e}function l(t,n){return r(t.criteria,n.criteria)||t.index-n.index}function h(t,n,e){for(var i=-1,a=t.criteria,u=n.criteria,o=a.length,s=e.length;++i<o;){var c=r(a[i],u[i]);if(c){if(i>=s)return c;var l=e[i];return c*(\"asc\"===l||l===!0?1:-1)}}return t.index-n.index}function f(t){return zt[t]}function d(t){return qt[t]}function p(t,n,e){return n?t=Vt[t]:e&&(t=Zt[t]),\"\\\\\"+t}function g(t){return\"\\\\\"+Zt[t]}function y(t,n,e){for(var r=t.length,i=n+(e?0:-1);e?i--:++i<r;){var a=t[i];if(a!==a)return i}return-1}function m(t){return!!t&&\"object\"==typeof t}function v(t){return 160>=t&&t>=9&&13>=t||32==t||160==t||5760==t||6158==t||t>=8192&&(8202>=t||8232==t||8233==t||8239==t||8287==t||12288==t||65279==t)}function _(t,n){for(var e=-1,r=t.length,i=-1,a=[];++e<r;)t[e]===n&&(t[e]=z,a[++i]=e);return a}function b(t,n){for(var e,r=-1,i=t.length,a=-1,u=[];++r<i;){var o=t[r],s=n?n(o,r,t):o;r&&e===s||(e=s,u[++a]=o)}return u}function x(t){for(var n=-1,e=t.length;++n<e&&v(t.charCodeAt(n)););return n}function w(t){for(var n=t.length;n--&&v(t.charCodeAt(n)););return n}function A(t){return Gt[t]}function k(t){function n(t){if(m(t)&&!Co(t)&&!(t instanceof K)){if(t instanceof v)return t;if(tu.call(t,\"__chain__\")&&tu.call(t,\"__wrapped__\"))return dr(t)}return new v(t)}function e(){}function v(t,n,e){this.__wrapped__=t,this.__actions__=e||[],this.__chain__=!!n}function K(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Su,this.__views__=[]}function nt(){var t=new K(this.__wrapped__);return t.__actions__=tn(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=tn(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=tn(this.__views__),t}function rt(){if(this.__filtered__){var t=new K(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function zt(){var t=this.__wrapped__.value(),n=this.__dir__,e=Co(t),r=0>n,i=e?t.length:0,a=Ge(0,i,this.__views__),u=a.start,o=a.end,s=o-u,c=r?o:u-1,l=this.__iteratees__,h=l.length,f=0,d=wu(s,this.__takeCount__);if(!e||Y>i||i==s&&d==s)return re(r&&e?t.reverse():t,this.__actions__);var p=[];t:for(;s--&&d>f;){c+=n;for(var g=-1,y=t[c];++g<h;){var m=l[g],v=m.iteratee,_=m.type,b=v(y);if(_==$)y=b;else if(!b){if(_==U)continue t;break t}}p[f++]=y}return p}function qt(){this.__data__={}}function Gt(t){return this.has(t)&&delete this.__data__[t]}function Ht(t){return\"__proto__\"==t?E:this.__data__[t]}function Vt(t){return\"__proto__\"!=t&&tu.call(this.__data__,t)}function Zt(t,n){return\"__proto__\"!=t&&(this.__data__[t]=n),this}function Xt(t){var n=t?t.length:0;for(this.data={hash:yu(null),set:new lu};n--;)this.push(t[n])}function Kt(t,n){var e=t.data,r=\"string\"==typeof n||Ii(n)?e.set.has(n):e.hash[n];return r?0:-1}function Qt(t){var n=this.data;\"string\"==typeof t||Ii(t)?n.set.add(t):n.hash[t]=!0}function Jt(t,n){for(var e=-1,r=t.length,i=-1,a=n.length,u=Ya(r+a);++e<r;)u[e]=t[e];for(;++i<a;)u[e++]=n[i];return u}function tn(t,n){var e=-1,r=t.length;for(n||(n=Ya(r));++e<r;)n[e]=t[e];return n}function nn(t,n){for(var e=-1,r=t.length;++e<r&&n(t[e],e,t)!==!1;);return t}function an(t,n){for(var e=t.length;e--&&n(t[e],e,t)!==!1;);return t}function un(t,n){for(var e=-1,r=t.length;++e<r;)if(!n(t[e],e,t))return!1;return!0}function on(t,n,e,r){for(var i=-1,a=t.length,u=r,o=u;++i<a;){var s=t[i],c=+n(s);e(c,u)&&(u=c,o=s)}return o}function sn(t,n){for(var e=-1,r=t.length,i=-1,a=[];++e<r;){var u=t[e];n(u,e,t)&&(a[++i]=u)}return a}function cn(t,n){for(var e=-1,r=t.length,i=Ya(r);++e<r;)i[e]=n(t[e],e,t);return i}function ln(t,n){for(var e=-1,r=n.length,i=t.length;++e<r;)t[i+e]=n[e];return t}function hn(t,n,e,r){var i=-1,a=t.length;for(r&&a&&(e=t[++i]);++i<a;)e=n(e,t[i],i,t);return e}function fn(t,n,e,r){var i=t.length;for(r&&i&&(e=t[--i]);i--;)e=n(e,t[i],i,t);return e}function dn(t,n){for(var e=-1,r=t.length;++e<r;)if(n(t[e],e,t))return!0;return!1}function pn(t,n){for(var e=t.length,r=0;e--;)r+=+n(t[e])||0;return r}function gn(t,n){return t===E?n:t}function yn(t,n,e,r){return t!==E&&tu.call(r,e)?t:n}function mn(t,n,e){for(var r=-1,i=Yo(n),a=i.length;++r<a;){var u=i[r],o=t[u],s=e(o,n[u],u,t,n);(s===s?s===o:o!==o)&&(o!==E||u in t)||(t[u]=s)}return t}function vn(t,n){return null==n?t:bn(n,Yo(n),t)}function _n(t,n){for(var e=-1,r=null==t,i=!r&&Ke(t),a=i?t.length:0,u=n.length,o=Ya(u);++e<u;){var s=n[e];o[e]=i?Qe(s,a)?t[s]:E:r?E:t[s]}return o}function bn(t,n,e){e||(e={});for(var r=-1,i=n.length;++r<i;){var a=n[r];e[a]=t[a]}return e}function xn(t,n,e){var r=typeof t;return\"function\"==r?n===E?t:ue(t,n,e):null==t?Sa:\"object\"==r?Yn(t):n===E?La(t):Un(t,n)}function wn(t,n,e,r,i,a,u){var o;if(e&&(o=i?e(t,r,i):e(t)),o!==E)return o;if(!Ii(t))return t;var s=Co(t);if(s){if(o=He(t),!n)return tn(t,o)}else{var c=eu.call(t),l=c==X;if(c!=J&&c!=q&&(!l||i))return Wt[c]?Ze(t,c,n):i?t:{};if(o=Ve(l?{}:t),!n)return vn(o,t)}a||(a=[]),u||(u=[]);for(var h=a.length;h--;)if(a[h]==t)return u[h];return a.push(t),u.push(o),(s?nn:On)(t,function(r,i){o[i]=wn(r,n,e,i,t,a,u)}),o}function An(t,n,e){if(\"function\"!=typeof t)throw new Za(W);return hu(function(){t.apply(E,e)},n)}function kn(t,n){var e=t?t.length:0,r=[];if(!e)return r;var i=-1,u=We(),o=u==a,s=o&&n.length>=Y?ge(n):null,c=n.length;s&&(u=Kt,o=!1,n=s);t:for(;++i<e;){var l=t[i];if(o&&l===l){for(var h=c;h--;)if(n[h]===l)continue t;r.push(l)}else u(n,l,0)<0&&r.push(l)}return r}function En(t,n){var e=!0;return Bu(t,function(t,r,i){return e=!!n(t,r,i)}),e}function Mn(t,n,e,r){var i=r,a=i;return Bu(t,function(t,u,o){var s=+n(t,u,o);(e(s,i)||s===r&&s===a)&&(i=s,a=t)}),a}function Sn(t,n,e,r){var i=t.length;for(e=null==e?0:+e||0,0>e&&(e=-e>i?0:i+e),r=r===E||r>i?i:+r||0,0>r&&(r+=i),i=e>r?0:r>>>0,e>>>=0;i>e;)t[e++]=n;return t}function Dn(t,n){var e=[];return Bu(t,function(t,r,i){n(t,r,i)&&e.push(t)}),e}function Cn(t,n,e,r){var i;return e(t,function(t,e,a){return n(t,e,a)?(i=r?e:t,!1):void 0}),i}function Tn(t,n,e,r){r||(r=[]);for(var i=-1,a=t.length;++i<a;){var u=t[i];m(u)&&Ke(u)&&(e||Co(u)||Ei(u))?n?Tn(u,n,e,r):ln(r,u):e||(r[r.length]=u)}return r}function Fn(t,n){return Pu(t,n,ta)}function On(t,n){return Pu(t,n,Yo)}function Ln(t,n){return Ru(t,n,Yo)}function In(t,n){for(var e=-1,r=n.length,i=-1,a=[];++e<r;){var u=n[e];Li(t[u])&&(a[++i]=u)}return a}function Bn(t,n,e){if(null!=t){e!==E&&e in hr(t)&&(n=[e]);for(var r=0,i=n.length;null!=t&&i>r;)t=t[n[r++]];return r&&r==i?t:E}}function Nn(t,n,e,r,i,a){return t===n?!0:null==t||null==n||!Ii(t)&&!m(n)?t!==t&&n!==n:Pn(t,n,Nn,e,r,i,a)}function Pn(t,n,e,r,i,a,u){var o=Co(t),s=Co(n),c=G,l=G;o||(c=eu.call(t),c==q?c=J:c!=J&&(o=Wi(t))),s||(l=eu.call(n),l==q?l=J:l!=J&&(s=Wi(n)));var h=c==J,f=l==J,d=c==l;if(d&&!o&&!h)return je(t,n,c);if(!i){var p=h&&tu.call(t,\"__wrapped__\"),g=f&&tu.call(n,\"__wrapped__\");if(p||g)return e(p?t.value():t,g?n.value():n,r,i,a,u)}if(!d)return!1;a||(a=[]),u||(u=[]);for(var y=a.length;y--;)if(a[y]==t)return u[y]==n;a.push(t),u.push(n);var m=(o?Re:Ye)(t,n,e,r,i,a,u);return a.pop(),u.pop(),m}function Rn(t,n,e){var r=n.length,i=r,a=!e;if(null==t)return!i;for(t=hr(t);r--;){var u=n[r];if(a&&u[2]?u[1]!==t[u[0]]:!(u[0]in t))return!1}for(;++r<i;){u=n[r];var o=u[0],s=t[o],c=u[1];if(a&&u[2]){if(s===E&&!(o in t))return!1}else{var l=e?e(s,c,o):E;if(!(l===E?Nn(c,s,e,!0):l))return!1}}return!0}function jn(t,n){var e=-1,r=Ke(t)?Ya(t.length):[];return Bu(t,function(t,i,a){r[++e]=n(t,i,a)}),r}function Yn(t){var n=ze(t);if(1==n.length&&n[0][2]){var e=n[0][0],r=n[0][1];return function(t){return null==t?!1:t[e]===r&&(r!==E||e in hr(t))}}return function(t){return Rn(t,n)}}function Un(t,n){var e=Co(t),r=tr(t)&&rr(n),i=t+\"\";return t=fr(t),function(a){if(null==a)return!1;var u=i;if(a=hr(a),!(!e&&r||u in a)){if(a=1==t.length?a:Bn(a,Zn(t,0,-1)),null==a)return!1;u=Mr(t),a=hr(a)}return a[u]===n?n!==E||u in a:Nn(n,a[u],E,!0)}}function $n(t,n,e,r,i){if(!Ii(t))return t;var a=Ke(n)&&(Co(n)||Wi(n)),u=a?E:Yo(n);return nn(u||n,function(o,s){if(u&&(s=o,o=n[s]),m(o))r||(r=[]),i||(i=[]),Wn(t,n,s,$n,e,r,i);else{var c=t[s],l=e?e(c,o,s,t,n):E,h=l===E;h&&(l=o),l===E&&(!a||s in t)||!h&&(l===l?l===c:c!==c)||(t[s]=l)}}),t}function Wn(t,n,e,r,i,a,u){for(var o=a.length,s=n[e];o--;)if(a[o]==s)return void(t[e]=u[o]);var c=t[e],l=i?i(c,s,e,t,n):E,h=l===E;h&&(l=s,Ke(s)&&(Co(s)||Wi(s))?l=Co(c)?c:Ke(c)?tn(c):[]:Yi(s)||Ei(s)?l=Ei(c)?Vi(c):Yi(c)?c:{}:h=!1),a.push(s),u.push(l),h?t[e]=r(l,s,i,a,u):(l===l?l!==c:c===c)&&(t[e]=l)}function zn(t){return function(n){return null==n?E:n[t]}}function qn(t){var n=t+\"\";return t=fr(t),function(e){return Bn(e,t,n)}}function Gn(t,n){for(var e=t?n.length:0;e--;){var r=n[e];if(r!=i&&Qe(r)){var i=r;fu.call(t,r,1)}}return t}function Hn(t,n){return t+mu(Eu()*(n-t+1))}function Vn(t,n,e,r,i){return i(t,function(t,i,a){e=r?(r=!1,t):n(e,t,i,a)}),e}function Zn(t,n,e){var r=-1,i=t.length;n=null==n?0:+n||0,0>n&&(n=-n>i?0:i+n),e=e===E||e>i?i:+e||0,0>e&&(e+=i),i=n>e?0:e-n>>>0,n>>>=0;for(var a=Ya(i);++r<i;)a[r]=t[r+n];return a}function Xn(t,n){var e;return Bu(t,function(t,r,i){return e=n(t,r,i),!e}),!!e}function Kn(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].value;return t}function Qn(t,n,e){var r=Ue(),i=-1;n=cn(n,function(t){return r(t)});var a=jn(t,function(t){var e=cn(n,function(n){return n(t)});return{criteria:e,index:++i,value:t}});return Kn(a,function(t,n){return h(t,n,e)})}function Jn(t,n){var e=0;return Bu(t,function(t,r,i){e+=+n(t,r,i)||0}),e}function te(t,n){var e=-1,r=We(),i=t.length,u=r==a,o=u&&i>=Y,s=o?ge():null,c=[];s?(r=Kt,u=!1):(o=!1,s=n?[]:c);t:for(;++e<i;){var l=t[e],h=n?n(l,e,t):l;if(u&&l===l){for(var f=s.length;f--;)if(s[f]===h)continue t;n&&s.push(h),c.push(l)}else r(s,h,0)<0&&((n||o)&&s.push(h),c.push(l))}return c}function ne(t,n){for(var e=-1,r=n.length,i=Ya(r);++e<r;)i[e]=t[n[e]];return i}function ee(t,n,e,r){for(var i=t.length,a=r?i:-1;(r?a--:++a<i)&&n(t[a],a,t););return e?Zn(t,r?0:a,r?a+1:i):Zn(t,r?a+1:0,r?i:a)}function re(t,n){var e=t;e instanceof K&&(e=e.value());for(var r=-1,i=n.length;++r<i;){var a=n[r];e=a.func.apply(a.thisArg,ln([e],a.args))}return e}function ie(t,n,e){var r=0,i=t?t.length:r;if(\"number\"==typeof n&&n===n&&Tu>=i){for(;i>r;){\nvar a=r+i>>>1,u=t[a];(e?n>=u:n>u)&&null!==u?r=a+1:i=a}return i}return ae(t,n,Sa,e)}function ae(t,n,e,r){n=e(n);for(var i=0,a=t?t.length:0,u=n!==n,o=null===n,s=n===E;a>i;){var c=mu((i+a)/2),l=e(t[c]),h=l!==E,f=l===l;if(u)var d=f||r;else d=o?f&&h&&(r||null!=l):s?f&&(r||h):null==l?!1:r?n>=l:n>l;d?i=c+1:a=c}return wu(a,Cu)}function ue(t,n,e){if(\"function\"!=typeof t)return Sa;if(n===E)return t;switch(e){case 1:return function(e){return t.call(n,e)};case 3:return function(e,r,i){return t.call(n,e,r,i)};case 4:return function(e,r,i,a){return t.call(n,e,r,i,a)};case 5:return function(e,r,i,a,u){return t.call(n,e,r,i,a,u)}}return function(){return t.apply(n,arguments)}}function oe(t){var n=new au(t.byteLength),e=new du(n);return e.set(new du(t)),n}function se(t,n,e){for(var r=e.length,i=-1,a=xu(t.length-r,0),u=-1,o=n.length,s=Ya(o+a);++u<o;)s[u]=n[u];for(;++i<r;)s[e[i]]=t[i];for(;a--;)s[u++]=t[i++];return s}function ce(t,n,e){for(var r=-1,i=e.length,a=-1,u=xu(t.length-i,0),o=-1,s=n.length,c=Ya(u+s);++a<u;)c[a]=t[a];for(var l=a;++o<s;)c[l+o]=n[o];for(;++r<i;)c[l+e[r]]=t[a++];return c}function le(t,n){return function(e,r,i){var a=n?n():{};if(r=Ue(r,i,3),Co(e))for(var u=-1,o=e.length;++u<o;){var s=e[u];t(a,s,r(s,u,e),e)}else Bu(e,function(n,e,i){t(a,n,r(n,e,i),i)});return a}}function he(t){return mi(function(n,e){var r=-1,i=null==n?0:e.length,a=i>2?e[i-2]:E,u=i>2?e[2]:E,o=i>1?e[i-1]:E;for(\"function\"==typeof a?(a=ue(a,o,5),i-=2):(a=\"function\"==typeof o?o:E,i-=a?1:0),u&&Je(e[0],e[1],u)&&(a=3>i?E:a,i=1);++r<i;){var s=e[r];s&&t(n,s,a)}return n})}function fe(t,n){return function(e,r){var i=e?Uu(e):0;if(!er(i))return t(e,r);for(var a=n?i:-1,u=hr(e);(n?a--:++a<i)&&r(u[a],a,u)!==!1;);return e}}function de(t){return function(n,e,r){for(var i=hr(n),a=r(n),u=a.length,o=t?u:-1;t?o--:++o<u;){var s=a[o];if(e(i[s],s,i)===!1)break}return n}}function pe(t,n){function e(){var i=this&&this!==en&&this instanceof e?r:t;return i.apply(n,arguments)}var r=me(t);return e}function ge(t){return yu&&lu?new Xt(t):null}function ye(t){return function(n){for(var e=-1,r=ka(la(n)),i=r.length,a=\"\";++e<i;)a=t(a,r[e],e);return a}}function me(t){return function(){var n=arguments;switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3]);case 5:return new t(n[0],n[1],n[2],n[3],n[4]);case 6:return new t(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var e=Iu(t.prototype),r=t.apply(e,n);return Ii(r)?r:e}}function ve(t){function n(e,r,i){i&&Je(e,r,i)&&(r=E);var a=Pe(e,t,E,E,E,E,E,r);return a.placeholder=n.placeholder,a}return n}function _e(t,n){return mi(function(e){var r=e[0];return null==r?r:(e.push(n),t.apply(E,e))})}function be(t,n){return function(e,r,i){if(i&&Je(e,r,i)&&(r=E),r=Ue(r,i,3),1==r.length){e=Co(e)?e:lr(e);var a=on(e,r,t,n);if(!e.length||a!==n)return a}return Mn(e,r,t,n)}}function xe(t,n){return function(e,r,a){if(r=Ue(r,a,3),Co(e)){var u=i(e,r,n);return u>-1?e[u]:E}return Cn(e,r,t)}}function we(t){return function(n,e,r){return n&&n.length?(e=Ue(e,r,3),i(n,e,t)):-1}}function Ae(t){return function(n,e,r){return e=Ue(e,r,3),Cn(n,e,t,!0)}}function ke(t){return function(){for(var n,e=arguments.length,r=t?e:-1,i=0,a=Ya(e);t?r--:++r<e;){var u=a[i++]=arguments[r];if(\"function\"!=typeof u)throw new Za(W);!n&&v.prototype.thru&&\"wrapper\"==$e(u)&&(n=new v([],!0))}for(r=n?-1:e;++r<e;){u=a[r];var o=$e(u),s=\"wrapper\"==o?Yu(u):E;n=s&&nr(s[0])&&s[1]==(I|T|O|B)&&!s[4].length&&1==s[9]?n[$e(s[0])].apply(n,s[3]):1==u.length&&nr(u)?n[o]():n.thru(u)}return function(){var t=arguments,r=t[0];if(n&&1==t.length&&Co(r)&&r.length>=Y)return n.plant(r).value();for(var i=0,u=e?a[i].apply(this,t):r;++i<e;)u=a[i].call(this,u);return u}}}function Ee(t,n){return function(e,r,i){return\"function\"==typeof r&&i===E&&Co(e)?t(e,r):n(e,ue(r,i,3))}}function Me(t){return function(n,e,r){return(\"function\"!=typeof e||r!==E)&&(e=ue(e,r,3)),t(n,e,ta)}}function Se(t){return function(n,e,r){return(\"function\"!=typeof e||r!==E)&&(e=ue(e,r,3)),t(n,e)}}function De(t){return function(n,e,r){var i={};return e=Ue(e,r,3),On(n,function(n,r,a){var u=e(n,r,a);r=t?u:r,n=t?n:u,i[r]=n}),i}}function Ce(t){return function(n,e,r){return n=o(n),(t?n:\"\")+Le(n,e,r)+(t?\"\":n)}}function Te(t){var n=mi(function(e,r){var i=_(r,n.placeholder);return Pe(e,t,E,r,i)});return n}function Fe(t,n){return function(e,r,i,a){var u=arguments.length<3;return\"function\"==typeof r&&a===E&&Co(e)?t(e,r,i,u):Vn(e,Ue(r,a,4),i,u,n)}}function Oe(t,n,e,r,i,a,u,o,s,c){function l(){for(var v=arguments.length,b=v,x=Ya(v);b--;)x[b]=arguments[b];if(r&&(x=se(x,r,i)),a&&(x=ce(x,a,u)),p||y){var w=l.placeholder,A=_(x,w);if(v-=A.length,c>v){var k=o?tn(o):E,M=xu(c-v,0),C=p?A:E,T=p?E:A,F=p?x:E,I=p?E:x;n|=p?O:L,n&=~(p?L:O),g||(n&=~(S|D));var B=[t,n,e,F,C,I,T,k,s,M],N=Oe.apply(E,B);return nr(t)&&$u(N,B),N.placeholder=w,N}}var P=f?e:this,R=d?P[t]:t;return o&&(x=sr(x,o)),h&&s<x.length&&(x.length=s),this&&this!==en&&this instanceof l&&(R=m||me(t)),R.apply(P,x)}var h=n&I,f=n&S,d=n&D,p=n&T,g=n&C,y=n&F,m=d?E:me(t);return l}function Le(t,n,e){var r=t.length;if(n=+n,r>=n||!_u(n))return\"\";var i=n-r;return e=null==e?\" \":e+\"\",ya(e,gu(i/e.length)).slice(0,i)}function Ie(t,n,e,r){function i(){for(var n=-1,o=arguments.length,s=-1,c=r.length,l=Ya(c+o);++s<c;)l[s]=r[s];for(;o--;)l[s++]=arguments[++n];var h=this&&this!==en&&this instanceof i?u:t;return h.apply(a?e:this,l)}var a=n&S,u=me(t);return i}function Be(t){var n=za[t];return function(t,e){return e=e===E?0:+e||0,e?(e=su(10,e),n(t*e)/e):n(t)}}function Ne(t){return function(n,e,r,i){var a=Ue(r);return null==r&&a===xn?ie(n,e,t):ae(n,e,a(r,i,1),t)}}function Pe(t,n,e,r,i,a,u,o){var s=n&D;if(!s&&\"function\"!=typeof t)throw new Za(W);var c=r?r.length:0;if(c||(n&=~(O|L),r=i=E),c-=i?i.length:0,n&L){var l=r,h=i;r=i=E}var f=s?E:Yu(t),d=[t,n,e,r,i,l,h,a,u,o];if(f&&(ir(d,f),n=d[1],o=d[9]),d[9]=null==o?s?0:t.length:xu(o-c,0)||0,n==S)var p=pe(d[0],d[2]);else p=n!=O&&n!=(S|O)||d[4].length?Oe.apply(E,d):Ie.apply(E,d);var g=f?ju:$u;return g(p,d)}function Re(t,n,e,r,i,a,u){var o=-1,s=t.length,c=n.length;if(s!=c&&!(i&&c>s))return!1;for(;++o<s;){var l=t[o],h=n[o],f=r?r(i?h:l,i?l:h,o):E;if(f!==E){if(f)continue;return!1}if(i){if(!dn(n,function(t){return l===t||e(l,t,r,i,a,u)}))return!1}else if(l!==h&&!e(l,h,r,i,a,u))return!1}return!0}function je(t,n,e){switch(e){case H:case V:return+t==+n;case Z:return t.name==n.name&&t.message==n.message;case Q:return t!=+t?n!=+n:t==+n;case tt:case et:return t==n+\"\"}return!1}function Ye(t,n,e,r,i,a,u){var o=Yo(t),s=o.length,c=Yo(n),l=c.length;if(s!=l&&!i)return!1;for(var h=s;h--;){var f=o[h];if(!(i?f in n:tu.call(n,f)))return!1}for(var d=i;++h<s;){f=o[h];var p=t[f],g=n[f],y=r?r(i?g:p,i?p:g,f):E;if(!(y===E?e(p,g,r,i,a,u):y))return!1;d||(d=\"constructor\"==f)}if(!d){var m=t.constructor,v=n.constructor;if(m!=v&&\"constructor\"in t&&\"constructor\"in n&&!(\"function\"==typeof m&&m instanceof m&&\"function\"==typeof v&&v instanceof v))return!1}return!0}function Ue(t,e,r){var i=n.callback||Ea;return i=i===Ea?xn:i,r?i(t,e,r):i}function $e(t){for(var n=t.name,e=Lu[n],r=e?e.length:0;r--;){var i=e[r],a=i.func;if(null==a||a==t)return i.name}return n}function We(t,e,r){var i=n.indexOf||kr;return i=i===kr?a:i,t?i(t,e,r):i}function ze(t){for(var n=na(t),e=n.length;e--;)n[e][2]=rr(n[e][1]);return n}function qe(t,n){var e=null==t?E:t[n];return Pi(e)?e:E}function Ge(t,n,e){for(var r=-1,i=e.length;++r<i;){var a=e[r],u=a.size;switch(a.type){case\"drop\":t+=u;break;case\"dropRight\":n-=u;break;case\"take\":n=wu(n,t+u);break;case\"takeRight\":t=xu(t,n-u)}}return{start:t,end:n}}function He(t){var n=t.length,e=new t.constructor(n);return n&&\"string\"==typeof t[0]&&tu.call(t,\"index\")&&(e.index=t.index,e.input=t.input),e}function Ve(t){var n=t.constructor;return\"function\"==typeof n&&n instanceof n||(n=Ga),new n}function Ze(t,n,e){var r=t.constructor;switch(n){case it:return oe(t);case H:case V:return new r(+t);case at:case ut:case ot:case st:case ct:case lt:case ht:case ft:case dt:var i=t.buffer;return new r(e?oe(i):i,t.byteOffset,t.length);case Q:case et:return new r(t);case tt:var a=new r(t.source,Ot.exec(t));a.lastIndex=t.lastIndex}return a}function Xe(t,n,e){null==t||tr(n,t)||(n=fr(n),t=1==n.length?t:Bn(t,Zn(n,0,-1)),n=Mr(n));var r=null==t?t:t[n];return null==r?E:r.apply(t,e)}function Ke(t){return null!=t&&er(Uu(t))}function Qe(t,n){return t=\"number\"==typeof t||Bt.test(t)?+t:-1,n=null==n?Fu:n,t>-1&&t%1==0&&n>t}function Je(t,n,e){if(!Ii(e))return!1;var r=typeof n;if(\"number\"==r?Ke(e)&&Qe(n,e.length):\"string\"==r&&n in e){var i=e[n];return t===t?t===i:i!==i}return!1}function tr(t,n){var e=typeof t;if(\"string\"==e&&Et.test(t)||\"number\"==e)return!0;if(Co(t))return!1;var r=!kt.test(t);return r||null!=n&&t in hr(n)}function nr(t){var e=$e(t);if(!(e in K.prototype))return!1;var r=n[e];if(t===r)return!0;var i=Yu(r);return!!i&&t===i[0]}function er(t){return\"number\"==typeof t&&t>-1&&t%1==0&&Fu>=t}function rr(t){return t===t&&!Ii(t)}function ir(t,n){var e=t[1],r=n[1],i=e|r,a=I>i,u=r==I&&e==T||r==I&&e==B&&t[7].length<=n[8]||r==(I|B)&&e==T;if(!a&&!u)return t;r&S&&(t[2]=n[2],i|=e&S?0:C);var o=n[3];if(o){var s=t[3];t[3]=s?se(s,o,n[4]):tn(o),t[4]=s?_(t[3],z):tn(n[4])}return o=n[5],o&&(s=t[5],t[5]=s?ce(s,o,n[6]):tn(o),t[6]=s?_(t[5],z):tn(n[6])),o=n[7],o&&(t[7]=tn(o)),r&I&&(t[8]=null==t[8]?n[8]:wu(t[8],n[8])),null==t[9]&&(t[9]=n[9]),t[0]=n[0],t[1]=i,t}function ar(t,n){return t===E?n:To(t,n,ar)}function ur(t,n){t=hr(t);for(var e=-1,r=n.length,i={};++e<r;){var a=n[e];a in t&&(i[a]=t[a])}return i}function or(t,n){var e={};return Fn(t,function(t,r,i){n(t,r,i)&&(e[r]=t)}),e}function sr(t,n){for(var e=t.length,r=wu(n.length,e),i=tn(t);r--;){var a=n[r];t[r]=Qe(a,e)?i[a]:E}return t}function cr(t){for(var n=ta(t),e=n.length,r=e&&t.length,i=!!r&&er(r)&&(Co(t)||Ei(t)),a=-1,u=[];++a<e;){var o=n[a];(i&&Qe(o,r)||tu.call(t,o))&&u.push(o)}return u}function lr(t){return null==t?[]:Ke(t)?Ii(t)?t:Ga(t):aa(t)}function hr(t){return Ii(t)?t:Ga(t)}function fr(t){if(Co(t))return t;var n=[];return o(t).replace(Mt,function(t,e,r,i){n.push(r?i.replace(Tt,\"$1\"):e||t)}),n}function dr(t){return t instanceof K?t.clone():new v(t.__wrapped__,t.__chain__,tn(t.__actions__))}function pr(t,n,e){n=(e?Je(t,n,e):null==n)?1:xu(mu(n)||1,1);for(var r=0,i=t?t.length:0,a=-1,u=Ya(gu(i/n));i>r;)u[++a]=Zn(t,r,r+=n);return u}function gr(t){for(var n=-1,e=t?t.length:0,r=-1,i=[];++n<e;){var a=t[n];a&&(i[++r]=a)}return i}function yr(t,n,e){var r=t?t.length:0;return r?((e?Je(t,n,e):null==n)&&(n=1),Zn(t,0>n?0:n)):[]}function mr(t,n,e){var r=t?t.length:0;return r?((e?Je(t,n,e):null==n)&&(n=1),n=r-(+n||0),Zn(t,0,0>n?0:n)):[]}function vr(t,n,e){return t&&t.length?ee(t,Ue(n,e,3),!0,!0):[]}function _r(t,n,e){return t&&t.length?ee(t,Ue(n,e,3),!0):[]}function br(t,n,e,r){var i=t?t.length:0;return i?(e&&\"number\"!=typeof e&&Je(t,n,e)&&(e=0,r=i),Sn(t,n,e,r)):[]}function xr(t){return t?t[0]:E}function wr(t,n,e){var r=t?t.length:0;return e&&Je(t,n,e)&&(n=!1),r?Tn(t,n):[]}function Ar(t){var n=t?t.length:0;return n?Tn(t,!0):[]}function kr(t,n,e){var r=t?t.length:0;if(!r)return-1;if(\"number\"==typeof e)e=0>e?xu(r+e,0):e;else if(e){var i=ie(t,n);return r>i&&(n===n?n===t[i]:t[i]!==t[i])?i:-1}return a(t,n,e||0)}function Er(t){return mr(t,1)}function Mr(t){var n=t?t.length:0;return n?t[n-1]:E}function Sr(t,n,e){var r=t?t.length:0;if(!r)return-1;var i=r;if(\"number\"==typeof e)i=(0>e?xu(r+e,0):wu(e||0,r-1))+1;else if(e){i=ie(t,n,!0)-1;var a=t[i];return(n===n?n===a:a!==a)?i:-1}if(n!==n)return y(t,i,!0);for(;i--;)if(t[i]===n)return i;return-1}function Dr(){var t=arguments,n=t[0];if(!n||!n.length)return n;for(var e=0,r=We(),i=t.length;++e<i;)for(var a=0,u=t[e];(a=r(n,u,a))>-1;)fu.call(n,a,1);return n}function Cr(t,n,e){var r=[];if(!t||!t.length)return r;var i=-1,a=[],u=t.length;for(n=Ue(n,e,3);++i<u;){var o=t[i];n(o,i,t)&&(r.push(o),a.push(i))}return Gn(t,a),r}function Tr(t){return yr(t,1)}function Fr(t,n,e){var r=t?t.length:0;return r?(e&&\"number\"!=typeof e&&Je(t,n,e)&&(n=0,e=r),Zn(t,n,e)):[]}function Or(t,n,e){var r=t?t.length:0;return r?((e?Je(t,n,e):null==n)&&(n=1),Zn(t,0,0>n?0:n)):[]}function Lr(t,n,e){var r=t?t.length:0;return r?((e?Je(t,n,e):null==n)&&(n=1),n=r-(+n||0),Zn(t,0>n?0:n)):[]}function Ir(t,n,e){return t&&t.length?ee(t,Ue(n,e,3),!1,!0):[]}function Br(t,n,e){return t&&t.length?ee(t,Ue(n,e,3)):[]}function Nr(t,n,e,r){var i=t?t.length:0;if(!i)return[];null!=n&&\"boolean\"!=typeof n&&(r=e,e=Je(t,n,r)?E:n,n=!1);var u=Ue();return(null!=e||u!==xn)&&(e=u(e,r,3)),n&&We()==a?b(t,e):te(t,e)}function Pr(t){if(!t||!t.length)return[];var n=-1,e=0;t=sn(t,function(t){return Ke(t)?(e=xu(t.length,e),!0):void 0});for(var r=Ya(e);++n<e;)r[n]=cn(t,zn(n));return r}function Rr(t,n,e){var r=t?t.length:0;if(!r)return[];var i=Pr(t);return null==n?i:(n=ue(n,e,4),cn(i,function(t){return hn(t,n,E,!0)}))}function jr(){for(var t=-1,n=arguments.length;++t<n;){var e=arguments[t];if(Ke(e))var r=r?ln(kn(r,e),kn(e,r)):e}return r?te(r):[]}function Yr(t,n){var e=-1,r=t?t.length:0,i={};for(!r||n||Co(t[0])||(n=[]);++e<r;){var a=t[e];n?i[a]=n[e]:a&&(i[a[0]]=a[1])}return i}function Ur(t){var e=n(t);return e.__chain__=!0,e}function $r(t,n,e){return n.call(e,t),t}function Wr(t,n,e){return n.call(e,t)}function zr(){return Ur(this)}function qr(){return new v(this.value(),this.__chain__)}function Gr(t){for(var n,r=this;r instanceof e;){var i=dr(r);n?a.__wrapped__=i:n=i;var a=i;r=r.__wrapped__}return a.__wrapped__=t,n}function Hr(){var t=this.__wrapped__,n=function(t){return e&&e.__dir__<0?t:t.reverse()};if(t instanceof K){var e=t;return this.__actions__.length&&(e=new K(this)),e=e.reverse(),e.__actions__.push({func:Wr,args:[n],thisArg:E}),new v(e,this.__chain__)}return this.thru(n)}function Vr(){return this.value()+\"\"}function Zr(){return re(this.__wrapped__,this.__actions__)}function Xr(t,n,e){var r=Co(t)?un:En;return e&&Je(t,n,e)&&(n=E),(\"function\"!=typeof n||e!==E)&&(n=Ue(n,e,3)),r(t,n)}function Kr(t,n,e){var r=Co(t)?sn:Dn;return n=Ue(n,e,3),r(t,n)}function Qr(t,n){return ro(t,Yn(n))}function Jr(t,n,e,r){var i=t?Uu(t):0;return er(i)||(t=aa(t),i=t.length),e=\"number\"!=typeof e||r&&Je(n,e,r)?0:0>e?xu(i+e,0):e||0,\"string\"==typeof t||!Co(t)&&$i(t)?i>=e&&t.indexOf(n,e)>-1:!!i&&We(t,n,e)>-1}function ti(t,n,e){var r=Co(t)?cn:jn;return n=Ue(n,e,3),r(t,n)}function ni(t,n){return ti(t,La(n))}function ei(t,n,e){var r=Co(t)?sn:Dn;return n=Ue(n,e,3),r(t,function(t,e,r){return!n(t,e,r)})}function ri(t,n,e){if(e?Je(t,n,e):null==n){t=lr(t);var r=t.length;return r>0?t[Hn(0,r-1)]:E}var i=-1,a=Hi(t),r=a.length,u=r-1;for(n=wu(0>n?0:+n||0,r);++i<n;){var o=Hn(i,u),s=a[o];a[o]=a[i],a[i]=s}return a.length=n,a}function ii(t){return ri(t,Su)}function ai(t){var n=t?Uu(t):0;return er(n)?n:Yo(t).length}function ui(t,n,e){var r=Co(t)?dn:Xn;return e&&Je(t,n,e)&&(n=E),(\"function\"!=typeof n||e!==E)&&(n=Ue(n,e,3)),r(t,n)}function oi(t,n,e){if(null==t)return[];e&&Je(t,n,e)&&(n=E);var r=-1;n=Ue(n,e,3);var i=jn(t,function(t,e,i){return{criteria:n(t,e,i),index:++r,value:t}});return Kn(i,l)}function si(t,n,e,r){return null==t?[]:(r&&Je(n,e,r)&&(e=E),Co(n)||(n=null==n?[]:[n]),Co(e)||(e=null==e?[]:[e]),Qn(t,n,e))}function ci(t,n){return Kr(t,Yn(n))}function li(t,n){if(\"function\"!=typeof n){if(\"function\"!=typeof t)throw new Za(W);var e=t;t=n,n=e}return t=_u(t=+t)?t:0,function(){return--t<1?n.apply(this,arguments):void 0}}function hi(t,n,e){return e&&Je(t,n,e)&&(n=E),n=t&&null==n?t.length:xu(+n||0,0),Pe(t,I,E,E,E,E,n)}function fi(t,n){var e;if(\"function\"!=typeof n){if(\"function\"!=typeof t)throw new Za(W);var r=t;t=n,n=r}return function(){return--t>0&&(e=n.apply(this,arguments)),1>=t&&(n=E),e}}function di(t,n,e){function r(){d&&uu(d),c&&uu(c),g=0,c=d=p=E}function i(n,e){e&&uu(e),c=d=p=E,n&&(g=go(),l=t.apply(f,s),d||c||(s=f=E))}function a(){var t=n-(go()-h);0>=t||t>n?i(p,c):d=hu(a,t)}function u(){i(m,d)}function o(){if(s=arguments,h=go(),f=this,p=m&&(d||!v),y===!1)var e=v&&!d;else{c||v||(g=h);var r=y-(h-g),i=0>=r||r>y;i?(c&&(c=uu(c)),g=h,l=t.apply(f,s)):c||(c=hu(u,r))}return i&&d?d=uu(d):d||n===y||(d=hu(a,n)),e&&(i=!0,l=t.apply(f,s)),!i||d||c||(s=f=E),l}var s,c,l,h,f,d,p,g=0,y=!1,m=!0;if(\"function\"!=typeof t)throw new Za(W);if(n=0>n?0:+n||0,e===!0){var v=!0;m=!1}else Ii(e)&&(v=!!e.leading,y=\"maxWait\"in e&&xu(+e.maxWait||0,n),m=\"trailing\"in e?!!e.trailing:m);return o.cancel=r,o}function pi(t,n){if(\"function\"!=typeof t||n&&\"function\"!=typeof n)throw new Za(W);var e=function(){var r=arguments,i=n?n.apply(this,r):r[0],a=e.cache;if(a.has(i))return a.get(i);var u=t.apply(this,r);return e.cache=a.set(i,u),u};return e.cache=new pi.Cache,e}function gi(t){if(\"function\"!=typeof t)throw new Za(W);return function(){return!t.apply(this,arguments)}}function yi(t){return fi(2,t)}function mi(t,n){if(\"function\"!=typeof t)throw new Za(W);return n=xu(n===E?t.length-1:+n||0,0),function(){for(var e=arguments,r=-1,i=xu(e.length-n,0),a=Ya(i);++r<i;)a[r]=e[n+r];switch(n){case 0:return t.call(this,a);case 1:return t.call(this,e[0],a);case 2:return t.call(this,e[0],e[1],a)}var u=Ya(n+1);for(r=-1;++r<n;)u[r]=e[r];return u[n]=a,t.apply(this,u)}}function vi(t){if(\"function\"!=typeof t)throw new Za(W);return function(n){return t.apply(this,n)}}function _i(t,n,e){var r=!0,i=!0;if(\"function\"!=typeof t)throw new Za(W);return e===!1?r=!1:Ii(e)&&(r=\"leading\"in e?!!e.leading:r,i=\"trailing\"in e?!!e.trailing:i),di(t,n,{leading:r,maxWait:+n,trailing:i})}function bi(t,n){return n=null==n?Sa:n,Pe(n,O,E,[t],[])}function xi(t,n,e,r){return n&&\"boolean\"!=typeof n&&Je(t,n,e)?n=!1:\"function\"==typeof n&&(r=e,e=n,n=!1),\"function\"==typeof e?wn(t,n,ue(e,r,1)):wn(t,n)}function wi(t,n,e){return\"function\"==typeof n?wn(t,!0,ue(n,e,1)):wn(t,!0)}function Ai(t,n){return t>n}function ki(t,n){return t>=n}function Ei(t){return m(t)&&Ke(t)&&tu.call(t,\"callee\")&&!cu.call(t,\"callee\")}function Mi(t){return t===!0||t===!1||m(t)&&eu.call(t)==H}function Si(t){return m(t)&&eu.call(t)==V}function Di(t){return!!t&&1===t.nodeType&&m(t)&&!Yi(t)}function Ci(t){return null==t?!0:Ke(t)&&(Co(t)||$i(t)||Ei(t)||m(t)&&Li(t.splice))?!t.length:!Yo(t).length}function Ti(t,n,e,r){e=\"function\"==typeof e?ue(e,r,3):E;var i=e?e(t,n):E;return i===E?Nn(t,n,e):!!i}function Fi(t){return m(t)&&\"string\"==typeof t.message&&eu.call(t)==Z}function Oi(t){return\"number\"==typeof t&&_u(t)}function Li(t){return Ii(t)&&eu.call(t)==X}function Ii(t){var n=typeof t;return!!t&&(\"object\"==n||\"function\"==n)}function Bi(t,n,e,r){return e=\"function\"==typeof e?ue(e,r,3):E,Rn(t,ze(n),e)}function Ni(t){return ji(t)&&t!=+t}function Pi(t){return null==t?!1:Li(t)?iu.test(Ja.call(t)):m(t)&&It.test(t)}function Ri(t){return null===t}function ji(t){return\"number\"==typeof t||m(t)&&eu.call(t)==Q}function Yi(t){var n;if(!m(t)||eu.call(t)!=J||Ei(t)||!tu.call(t,\"constructor\")&&(n=t.constructor,\"function\"==typeof n&&!(n instanceof n)))return!1;var e;return Fn(t,function(t,n){e=n}),e===E||tu.call(t,e)}function Ui(t){return Ii(t)&&eu.call(t)==tt}function $i(t){return\"string\"==typeof t||m(t)&&eu.call(t)==et}function Wi(t){return m(t)&&er(t.length)&&!!$t[eu.call(t)]}function zi(t){return t===E}function qi(t,n){return n>t}function Gi(t,n){return n>=t}function Hi(t){var n=t?Uu(t):0;return er(n)?n?tn(t):[]:aa(t)}function Vi(t){return bn(t,ta(t))}function Zi(t,n,e){var r=Iu(t);return e&&Je(t,n,e)&&(n=E),n?vn(r,n):r}function Xi(t){return In(t,ta(t))}function Ki(t,n,e){var r=null==t?E:Bn(t,fr(n),n+\"\");return r===E?e:r}function Qi(t,n){if(null==t)return!1;var e=tu.call(t,n);if(!e&&!tr(n)){if(n=fr(n),t=1==n.length?t:Bn(t,Zn(n,0,-1)),null==t)return!1;n=Mr(n),e=tu.call(t,n)}return e||er(t.length)&&Qe(n,t.length)&&(Co(t)||Ei(t))}function Ji(t,n,e){e&&Je(t,n,e)&&(n=E);for(var r=-1,i=Yo(t),a=i.length,u={};++r<a;){var o=i[r],s=t[o];n?tu.call(u,s)?u[s].push(o):u[s]=[o]:u[s]=o}return u}function ta(t){if(null==t)return[];Ii(t)||(t=Ga(t));var n=t.length;n=n&&er(n)&&(Co(t)||Ei(t))&&n||0;for(var e=t.constructor,r=-1,i=\"function\"==typeof e&&e.prototype===t,a=Ya(n),u=n>0;++r<n;)a[r]=r+\"\";for(var o in t)u&&Qe(o,n)||\"constructor\"==o&&(i||!tu.call(t,o))||a.push(o);return a}function na(t){t=hr(t);for(var n=-1,e=Yo(t),r=e.length,i=Ya(r);++n<r;){var a=e[n];i[n]=[a,t[a]]}return i}function ea(t,n,e){var r=null==t?E:t[n];return r===E&&(null==t||tr(n,t)||(n=fr(n),t=1==n.length?t:Bn(t,Zn(n,0,-1)),r=null==t?E:t[Mr(n)]),r=r===E?e:r),Li(r)?r.call(t):r}function ra(t,n,e){if(null==t)return t;var r=n+\"\";n=null!=t[r]||tr(n,t)?[r]:fr(n);for(var i=-1,a=n.length,u=a-1,o=t;null!=o&&++i<a;){var s=n[i];Ii(o)&&(i==u?o[s]=e:null==o[s]&&(o[s]=Qe(n[i+1])?[]:{})),o=o[s]}return t}function ia(t,n,e,r){var i=Co(t)||Wi(t);if(n=Ue(n,r,4),null==e)if(i||Ii(t)){var a=t.constructor;e=i?Co(t)?new a:[]:Iu(Li(a)?a.prototype:E)}else e={};return(i?nn:On)(t,function(t,r,i){return n(e,t,r,i)}),e}function aa(t){return ne(t,Yo(t))}function ua(t){return ne(t,ta(t))}function oa(t,n,e){return n=+n||0,e===E?(e=n,n=0):e=+e||0,t>=wu(n,e)&&t<xu(n,e)}function sa(t,n,e){e&&Je(t,n,e)&&(n=e=E);var r=null==t,i=null==n;if(null==e&&(i&&\"boolean\"==typeof t?(e=t,t=1):\"boolean\"==typeof n&&(e=n,i=!0)),r&&i&&(n=1,i=!1),t=+t||0,i?(n=t,t=0):n=+n||0,e||t%1||n%1){var a=Eu();return wu(t+a*(n-t+ou(\"1e-\"+((a+\"\").length-1))),n)}return Hn(t,n)}function ca(t){return t=o(t),t&&t.charAt(0).toUpperCase()+t.slice(1)}function la(t){return t=o(t),t&&t.replace(Nt,f).replace(Ct,\"\")}function ha(t,n,e){t=o(t),n+=\"\";var r=t.length;return e=e===E?r:wu(0>e?0:+e||0,r),e-=n.length,e>=0&&t.indexOf(n,e)==e}function fa(t){return t=o(t),t&&bt.test(t)?t.replace(vt,d):t}function da(t){return t=o(t),t&&Dt.test(t)?t.replace(St,p):t||\"(?:)\"}function pa(t,n,e){t=o(t),n=+n;var r=t.length;if(r>=n||!_u(n))return t;var i=(n-r)/2,a=mu(i),u=gu(i);return e=Le(\"\",u,e),e.slice(0,a)+t+e}function ga(t,n,e){return(e?Je(t,n,e):null==n)?n=0:n&&(n=+n),t=_a(t),ku(t,n||(Lt.test(t)?16:10))}function ya(t,n){var e=\"\";if(t=o(t),n=+n,1>n||!t||!_u(n))return e;do n%2&&(e+=t),n=mu(n/2),t+=t;while(n);return e}function ma(t,n,e){return t=o(t),e=null==e?0:wu(0>e?0:+e||0,t.length),t.lastIndexOf(n,e)==e}function va(t,e,r){var i=n.templateSettings;r&&Je(t,e,r)&&(e=r=E),t=o(t),e=mn(vn({},r||e),i,yn);var a,u,s=mn(vn({},e.imports),i.imports,yn),c=Yo(s),l=ne(s,c),h=0,f=e.interpolate||Pt,d=\"__p += '\",p=Ha((e.escape||Pt).source+\"|\"+f.source+\"|\"+(f===At?Ft:Pt).source+\"|\"+(e.evaluate||Pt).source+\"|$\",\"g\"),y=\"//# sourceURL=\"+(\"sourceURL\"in e?e.sourceURL:\"lodash.templateSources[\"+ ++Ut+\"]\")+\"\\n\";t.replace(p,function(n,e,r,i,o,s){return r||(r=i),d+=t.slice(h,s).replace(Rt,g),e&&(a=!0,d+=\"' +\\n__e(\"+e+\") +\\n'\"),o&&(u=!0,d+=\"';\\n\"+o+\";\\n__p += '\"),r&&(d+=\"' +\\n((__t = (\"+r+\")) == null ? '' : __t) +\\n'\"),h=s+n.length,n}),d+=\"';\\n\";var m=e.variable;m||(d=\"with (obj) {\\n\"+d+\"\\n}\\n\"),d=(u?d.replace(pt,\"\"):d).replace(gt,\"$1\").replace(yt,\"$1;\"),d=\"function(\"+(m||\"obj\")+\") {\\n\"+(m?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(a?\", __e = _.escape\":\"\")+(u?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+d+\"return __p\\n}\";var v=Ko(function(){return Wa(c,y+\"return \"+d).apply(E,l)});if(v.source=d,Fi(v))throw v;return v}function _a(t,n,e){var r=t;return(t=o(t))?(e?Je(r,n,e):null==n)?t.slice(x(t),w(t)+1):(n+=\"\",t.slice(s(t,n),c(t,n)+1)):t}function ba(t,n,e){var r=t;return t=o(t),t?t.slice((e?Je(r,n,e):null==n)?x(t):s(t,n+\"\")):t}function xa(t,n,e){var r=t;return t=o(t),t?(e?Je(r,n,e):null==n)?t.slice(0,w(t)+1):t.slice(0,c(t,n+\"\")+1):t}function wa(t,n,e){e&&Je(t,n,e)&&(n=E);var r=N,i=P;if(null!=n)if(Ii(n)){var a=\"separator\"in n?n.separator:a;r=\"length\"in n?+n.length||0:r,i=\"omission\"in n?o(n.omission):i}else r=+n||0;if(t=o(t),r>=t.length)return t;var u=r-i.length;if(1>u)return i;var s=t.slice(0,u);if(null==a)return s+i;if(Ui(a)){if(t.slice(u).search(a)){var c,l,h=t.slice(0,u);for(a.global||(a=Ha(a.source,(Ot.exec(a)||\"\")+\"g\")),a.lastIndex=0;c=a.exec(h);)l=c.index;s=s.slice(0,null==l?u:l)}}else if(t.indexOf(a,u)!=u){var f=s.lastIndexOf(a);f>-1&&(s=s.slice(0,f))}return s+i}function Aa(t){return t=o(t),t&&_t.test(t)?t.replace(mt,A):t}function ka(t,n,e){return e&&Je(t,n,e)&&(n=E),t=o(t),t.match(n||jt)||[]}function Ea(t,n,e){return e&&Je(t,n,e)&&(n=E),m(t)?Da(t):xn(t,n)}function Ma(t){return function(){return t}}function Sa(t){return t}function Da(t){return Yn(wn(t,!0))}function Ca(t,n){return Un(t,wn(n,!0))}function Ta(t,n,e){if(null==e){var r=Ii(n),i=r?Yo(n):E,a=i&&i.length?In(n,i):E;(a?a.length:r)||(a=!1,e=n,n=t,t=this)}a||(a=In(n,Yo(n)));var u=!0,o=-1,s=Li(t),c=a.length;e===!1?u=!1:Ii(e)&&\"chain\"in e&&(u=e.chain);for(;++o<c;){var l=a[o],h=n[l];t[l]=h,s&&(t.prototype[l]=function(n){return function(){var e=this.__chain__;if(u||e){var r=t(this.__wrapped__),i=r.__actions__=tn(this.__actions__);return i.push({func:n,args:arguments,thisArg:t}),r.__chain__=e,r}return n.apply(t,ln([this.value()],arguments))}}(h))}return t}function Fa(){return en._=ru,this}function Oa(){}function La(t){return tr(t)?zn(t):qn(t)}function Ia(t){return function(n){return Bn(t,fr(n),n+\"\")}}function Ba(t,n,e){e&&Je(t,n,e)&&(n=e=E),t=+t||0,e=null==e?1:+e||0,null==n?(n=t,t=0):n=+n||0;for(var r=-1,i=xu(gu((n-t)/(e||1)),0),a=Ya(i);++r<i;)a[r]=t,t+=e;return a}function Na(t,n,e){if(t=mu(t),1>t||!_u(t))return[];var r=-1,i=Ya(wu(t,Du));for(n=ue(n,e,1);++r<t;)Du>r?i[r]=n(r):n(r);return i}function Pa(t){var n=++nu;return o(t)+n}function Ra(t,n){return(+t||0)+(+n||0)}function ja(t,n,e){return e&&Je(t,n,e)&&(n=E),n=Ue(n,e,3),1==n.length?pn(Co(t)?t:lr(t),n):Jn(t,n)}t=t?rn.defaults(en.Object(),t,rn.pick(en,Yt)):en;{var Ya=t.Array,Ua=t.Date,$a=t.Error,Wa=t.Function,za=t.Math,qa=t.Number,Ga=t.Object,Ha=t.RegExp,Va=t.String,Za=t.TypeError,Xa=Ya.prototype,Ka=Ga.prototype,Qa=Va.prototype,Ja=Wa.prototype.toString,tu=Ka.hasOwnProperty,nu=0,eu=Ka.toString,ru=en._,iu=Ha(\"^\"+Ja.call(tu).replace(/[\\\\^$.*+?()[\\]{}|]/g,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),au=t.ArrayBuffer,uu=t.clearTimeout,ou=t.parseFloat,su=za.pow,cu=Ka.propertyIsEnumerable,lu=qe(t,\"Set\"),hu=t.setTimeout,fu=Xa.splice,du=t.Uint8Array,pu=qe(t,\"WeakMap\"),gu=za.ceil,yu=qe(Ga,\"create\"),mu=za.floor,vu=qe(Ya,\"isArray\"),_u=t.isFinite,bu=qe(Ga,\"keys\"),xu=za.max,wu=za.min,Au=qe(Ua,\"now\"),ku=t.parseInt,Eu=za.random,Mu=qa.NEGATIVE_INFINITY,Su=qa.POSITIVE_INFINITY,Du=4294967295,Cu=Du-1,Tu=Du>>>1,Fu=9007199254740991,Ou=pu&&new pu,Lu={};n.support={}}n.templateSettings={escape:xt,evaluate:wt,interpolate:At,variable:\"\",imports:{_:n}};var Iu=function(){function t(){}return function(n){if(Ii(n)){t.prototype=n;var e=new t;t.prototype=E}return e||{}}}(),Bu=fe(On),Nu=fe(Ln,!0),Pu=de(),Ru=de(!0),ju=Ou?function(t,n){return Ou.set(t,n),t}:Sa,Yu=Ou?function(t){return Ou.get(t)}:Oa,Uu=zn(\"length\"),$u=function(){var t=0,n=0;return function(e,r){var i=go(),a=j-(i-n);if(n=i,a>0){if(++t>=R)return e}else t=0;return ju(e,r)}}(),Wu=mi(function(t,n){return m(t)&&Ke(t)?kn(t,Tn(n,!1,!0)):[]}),zu=we(),qu=we(!0),Gu=mi(function(t){for(var n=t.length,e=n,r=Ya(h),i=We(),u=i==a,o=[];e--;){var s=t[e]=Ke(s=t[e])?s:[];r[e]=u&&s.length>=120?ge(e&&s):null}var c=t[0],l=-1,h=c?c.length:0,f=r[0];t:for(;++l<h;)if(s=c[l],(f?Kt(f,s):i(o,s,0))<0){for(var e=n;--e;){var d=r[e];if((d?Kt(d,s):i(t[e],s,0))<0)continue t}f&&f.push(s),o.push(s)}return o}),Hu=mi(function(t,n){n=Tn(n);var e=_n(t,n);return Gn(t,n.sort(r)),e}),Vu=Ne(),Zu=Ne(!0),Xu=mi(function(t){return te(Tn(t,!1,!0))}),Ku=mi(function(t,n){return Ke(t)?kn(t,n):[]}),Qu=mi(Pr),Ju=mi(function(t){var n=t.length,e=n>2?t[n-2]:E,r=n>1?t[n-1]:E;return n>2&&\"function\"==typeof e?n-=2:(e=n>1&&\"function\"==typeof r?(--n,r):E,r=E),t.length=n,Rr(t,e,r)}),to=mi(function(t){return t=Tn(t),this.thru(function(n){return Jt(Co(n)?n:[hr(n)],t)})}),no=mi(function(t,n){return _n(t,Tn(n))}),eo=le(function(t,n,e){tu.call(t,e)?++t[e]:t[e]=1}),ro=xe(Bu),io=xe(Nu,!0),ao=Ee(nn,Bu),uo=Ee(an,Nu),oo=le(function(t,n,e){tu.call(t,e)?t[e].push(n):t[e]=[n]}),so=le(function(t,n,e){t[e]=n}),co=mi(function(t,n,e){var r=-1,i=\"function\"==typeof n,a=tr(n),u=Ke(t)?Ya(t.length):[];return Bu(t,function(t){var o=i?n:a&&null!=t?t[n]:E;u[++r]=o?o.apply(t,e):Xe(t,n,e)}),u}),lo=le(function(t,n,e){t[e?0:1].push(n)},function(){return[[],[]]}),ho=Fe(hn,Bu),fo=Fe(fn,Nu),po=mi(function(t,n){if(null==t)return[];var e=n[2];return e&&Je(n[0],n[1],e)&&(n.length=1),Qn(t,Tn(n),[])}),go=Au||function(){return(new Ua).getTime()},yo=mi(function(t,n,e){var r=S;if(e.length){var i=_(e,yo.placeholder);r|=O}return Pe(t,r,n,e,i)}),mo=mi(function(t,n){n=n.length?Tn(n):Xi(t);for(var e=-1,r=n.length;++e<r;){var i=n[e];t[i]=Pe(t[i],S,t)}return t}),vo=mi(function(t,n,e){var r=S|D;if(e.length){var i=_(e,vo.placeholder);r|=O}return Pe(n,r,t,e,i)}),_o=ve(T),bo=ve(F),xo=mi(function(t,n){return An(t,1,n)}),wo=mi(function(t,n,e){return An(t,n,e)}),Ao=ke(),ko=ke(!0),Eo=mi(function(t,n){if(n=Tn(n),\"function\"!=typeof t||!un(n,u))throw new Za(W);var e=n.length;return mi(function(r){for(var i=wu(r.length,e);i--;)r[i]=n[i](r[i]);return t.apply(this,r)})}),Mo=Te(O),So=Te(L),Do=mi(function(t,n){return Pe(t,B,E,E,E,Tn(n))}),Co=vu||function(t){return m(t)&&er(t.length)&&eu.call(t)==G},To=he($n),Fo=he(function(t,n,e){return e?mn(t,n,e):vn(t,n)}),Oo=_e(Fo,gn),Lo=_e(To,ar),Io=Ae(On),Bo=Ae(Ln),No=Me(Pu),Po=Me(Ru),Ro=Se(On),jo=Se(Ln),Yo=bu?function(t){var n=null==t?E:t.constructor;return\"function\"==typeof n&&n.prototype===t||\"function\"!=typeof t&&Ke(t)?cr(t):Ii(t)?bu(t):[]}:cr,Uo=De(!0),$o=De(),Wo=mi(function(t,n){if(null==t)return{};if(\"function\"!=typeof n[0]){var n=cn(Tn(n),Va);return ur(t,kn(ta(t),n))}var e=ue(n[0],n[1],3);return or(t,function(t,n,r){return!e(t,n,r)})}),zo=mi(function(t,n){return null==t?{}:\"function\"==typeof n[0]?or(t,ue(n[0],n[1],3)):ur(t,Tn(n))}),qo=ye(function(t,n,e){return n=n.toLowerCase(),t+(e?n.charAt(0).toUpperCase()+n.slice(1):n)}),Go=ye(function(t,n,e){return t+(e?\"-\":\"\")+n.toLowerCase()}),Ho=Ce(),Vo=Ce(!0),Zo=ye(function(t,n,e){return t+(e?\"_\":\"\")+n.toLowerCase()}),Xo=ye(function(t,n,e){return t+(e?\" \":\"\")+(n.charAt(0).toUpperCase()+n.slice(1))}),Ko=mi(function(t,n){try{return t.apply(E,n)}catch(e){return Fi(e)?e:new $a(e)}}),Qo=mi(function(t,n){return function(e){return Xe(e,t,n)}}),Jo=mi(function(t,n){return function(e){return Xe(t,e,n)}}),ts=Be(\"ceil\"),ns=Be(\"floor\"),es=be(Ai,Mu),rs=be(qi,Su),is=Be(\"round\");return n.prototype=e.prototype,v.prototype=Iu(e.prototype),v.prototype.constructor=v,K.prototype=Iu(e.prototype),K.prototype.constructor=K,qt.prototype[\"delete\"]=Gt,qt.prototype.get=Ht,qt.prototype.has=Vt,qt.prototype.set=Zt,Xt.prototype.push=Qt,pi.Cache=qt,n.after=li,n.ary=hi,n.assign=Fo,n.at=no,n.before=fi,n.bind=yo,n.bindAll=mo,n.bindKey=vo,n.callback=Ea,n.chain=Ur,n.chunk=pr,n.compact=gr,n.constant=Ma,n.countBy=eo,n.create=Zi,n.curry=_o,n.curryRight=bo,n.debounce=di,n.defaults=Oo,n.defaultsDeep=Lo,n.defer=xo,n.delay=wo,n.difference=Wu,n.drop=yr,n.dropRight=mr,n.dropRightWhile=vr,n.dropWhile=_r,n.fill=br,n.filter=Kr,n.flatten=wr,n.flattenDeep=Ar,n.flow=Ao,n.flowRight=ko,n.forEach=ao,n.forEachRight=uo,n.forIn=No,n.forInRight=Po,n.forOwn=Ro,n.forOwnRight=jo,n.functions=Xi,n.groupBy=oo,n.indexBy=so,n.initial=Er,n.intersection=Gu,n.invert=Ji,n.invoke=co,n.keys=Yo,n.keysIn=ta,n.map=ti,n.mapKeys=Uo,n.mapValues=$o,n.matches=Da,n.matchesProperty=Ca,n.memoize=pi,n.merge=To,n.method=Qo,n.methodOf=Jo,n.mixin=Ta,n.modArgs=Eo,n.negate=gi,n.omit=Wo,n.once=yi,n.pairs=na,n.partial=Mo,n.partialRight=So,n.partition=lo,n.pick=zo,n.pluck=ni,n.property=La,n.propertyOf=Ia,n.pull=Dr,n.pullAt=Hu,n.range=Ba,n.rearg=Do,n.reject=ei,n.remove=Cr,n.rest=Tr,n.restParam=mi,n.set=ra,n.shuffle=ii,n.slice=Fr,n.sortBy=oi,n.sortByAll=po,n.sortByOrder=si,n.spread=vi,n.take=Or,n.takeRight=Lr,n.takeRightWhile=Ir,n.takeWhile=Br,n.tap=$r,n.throttle=_i,n.thru=Wr,n.times=Na,n.toArray=Hi,n.toPlainObject=Vi,n.transform=ia,n.union=Xu,n.uniq=Nr,n.unzip=Pr,n.unzipWith=Rr,n.values=aa,n.valuesIn=ua,n.where=ci,n.without=Ku,n.wrap=bi,n.xor=jr,n.zip=Qu,n.zipObject=Yr,n.zipWith=Ju,n.backflow=ko,n.collect=ti,n.compose=ko,n.each=ao,n.eachRight=uo,n.extend=Fo,n.iteratee=Ea,n.methods=Xi,n.object=Yr,n.select=Kr,n.tail=Tr,n.unique=Nr,Ta(n,n),n.add=Ra,n.attempt=Ko,\nn.camelCase=qo,n.capitalize=ca,n.ceil=ts,n.clone=xi,n.cloneDeep=wi,n.deburr=la,n.endsWith=ha,n.escape=fa,n.escapeRegExp=da,n.every=Xr,n.find=ro,n.findIndex=zu,n.findKey=Io,n.findLast=io,n.findLastIndex=qu,n.findLastKey=Bo,n.findWhere=Qr,n.first=xr,n.floor=ns,n.get=Ki,n.gt=Ai,n.gte=ki,n.has=Qi,n.identity=Sa,n.includes=Jr,n.indexOf=kr,n.inRange=oa,n.isArguments=Ei,n.isArray=Co,n.isBoolean=Mi,n.isDate=Si,n.isElement=Di,n.isEmpty=Ci,n.isEqual=Ti,n.isError=Fi,n.isFinite=Oi,n.isFunction=Li,n.isMatch=Bi,n.isNaN=Ni,n.isNative=Pi,n.isNull=Ri,n.isNumber=ji,n.isObject=Ii,n.isPlainObject=Yi,n.isRegExp=Ui,n.isString=$i,n.isTypedArray=Wi,n.isUndefined=zi,n.kebabCase=Go,n.last=Mr,n.lastIndexOf=Sr,n.lt=qi,n.lte=Gi,n.max=es,n.min=rs,n.noConflict=Fa,n.noop=Oa,n.now=go,n.pad=pa,n.padLeft=Ho,n.padRight=Vo,n.parseInt=ga,n.random=sa,n.reduce=ho,n.reduceRight=fo,n.repeat=ya,n.result=ea,n.round=is,n.runInContext=k,n.size=ai,n.snakeCase=Zo,n.some=ui,n.sortedIndex=Vu,n.sortedLastIndex=Zu,n.startCase=Xo,n.startsWith=ma,n.sum=ja,n.template=va,n.trim=_a,n.trimLeft=ba,n.trimRight=xa,n.trunc=wa,n.unescape=Aa,n.uniqueId=Pa,n.words=ka,n.all=Xr,n.any=ui,n.contains=Jr,n.eq=Ti,n.detect=ro,n.foldl=ho,n.foldr=fo,n.head=xr,n.include=Jr,n.inject=ho,Ta(n,function(){var t={};return On(n,function(e,r){n.prototype[r]||(t[r]=e)}),t}(),!1),n.sample=ri,n.prototype.sample=function(t){return this.__chain__||null!=t?this.thru(function(n){return ri(n,t)}):ri(this.value())},n.VERSION=M,nn([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(t){n[t].placeholder=n}),nn([\"drop\",\"take\"],function(t,n){K.prototype[t]=function(e){var r=this.__filtered__;if(r&&!n)return new K(this);e=null==e?1:xu(mu(e)||0,0);var i=this.clone();return r?i.__takeCount__=wu(i.__takeCount__,e):i.__views__.push({size:e,type:t+(i.__dir__<0?\"Right\":\"\")}),i},K.prototype[t+\"Right\"]=function(n){return this.reverse()[t](n).reverse()}}),nn([\"filter\",\"map\",\"takeWhile\"],function(t,n){var e=n+1,r=e!=$;K.prototype[t]=function(t,n){var i=this.clone();return i.__iteratees__.push({iteratee:Ue(t,n,1),type:e}),i.__filtered__=i.__filtered__||r,i}}),nn([\"first\",\"last\"],function(t,n){var e=\"take\"+(n?\"Right\":\"\");K.prototype[t]=function(){return this[e](1).value()[0]}}),nn([\"initial\",\"rest\"],function(t,n){var e=\"drop\"+(n?\"\":\"Right\");K.prototype[t]=function(){return this.__filtered__?new K(this):this[e](1)}}),nn([\"pluck\",\"where\"],function(t,n){var e=n?\"filter\":\"map\",r=n?Yn:La;K.prototype[t]=function(t){return this[e](r(t))}}),K.prototype.compact=function(){return this.filter(Sa)},K.prototype.reject=function(t,n){return t=Ue(t,n,1),this.filter(function(n){return!t(n)})},K.prototype.slice=function(t,n){t=null==t?0:+t||0;var e=this;return e.__filtered__&&(t>0||0>n)?new K(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==E&&(n=+n||0,e=0>n?e.dropRight(-n):e.take(n-t)),e)},K.prototype.takeRightWhile=function(t,n){return this.reverse().takeWhile(t,n).reverse()},K.prototype.toArray=function(){return this.take(Su)},On(K.prototype,function(t,e){var r=/^(?:filter|map|reject)|While$/.test(e),i=/^(?:first|last)$/.test(e),a=n[i?\"take\"+(\"last\"==e?\"Right\":\"\"):e];a&&(n.prototype[e]=function(){var n=i?[1]:arguments,e=this.__chain__,u=this.__wrapped__,o=!!this.__actions__.length,s=u instanceof K,c=n[0],l=s||Co(u);l&&r&&\"function\"==typeof c&&1!=c.length&&(s=l=!1);var h=function(t){return i&&e?a(t,1)[0]:a.apply(E,ln([t],n))},f={func:Wr,args:[h],thisArg:E},d=s&&!o;if(i&&!e)return d?(u=u.clone(),u.__actions__.push(f),t.call(u)):a.call(E,this.value())[0];if(!i&&l){u=d?u:new K(this);var p=t.apply(u,n);return p.__actions__.push(f),new v(p,e)}return this.thru(h)})}),nn([\"join\",\"pop\",\"push\",\"replace\",\"shift\",\"sort\",\"splice\",\"split\",\"unshift\"],function(t){var e=(/^(?:replace|split)$/.test(t)?Qa:Xa)[t],r=/^(?:push|sort|unshift)$/.test(t)?\"tap\":\"thru\",i=/^(?:join|pop|replace|shift)$/.test(t);n.prototype[t]=function(){var t=arguments;return i&&!this.__chain__?e.apply(this.value(),t):this[r](function(n){return e.apply(n,t)})}}),On(K.prototype,function(t,e){var r=n[e];if(r){var i=r.name,a=Lu[i]||(Lu[i]=[]);a.push({name:e,func:r})}}),Lu[Oe(E,D).name]=[{name:\"wrapper\",func:E}],K.prototype.clone=nt,K.prototype.reverse=rt,K.prototype.value=zt,n.prototype.chain=zr,n.prototype.commit=qr,n.prototype.concat=to,n.prototype.plant=Gr,n.prototype.reverse=Hr,n.prototype.toString=Vr,n.prototype.run=n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=Zr,n.prototype.collect=n.prototype.map,n.prototype.head=n.prototype.first,n.prototype.select=n.prototype.filter,n.prototype.tail=n.prototype.rest,n}var E,M=\"3.10.1\",S=1,D=2,C=4,T=8,F=16,O=32,L=64,I=128,B=256,N=30,P=\"...\",R=150,j=16,Y=200,U=1,$=2,W=\"Expected a function\",z=\"__lodash_placeholder__\",q=\"[object Arguments]\",G=\"[object Array]\",H=\"[object Boolean]\",V=\"[object Date]\",Z=\"[object Error]\",X=\"[object Function]\",K=\"[object Map]\",Q=\"[object Number]\",J=\"[object Object]\",tt=\"[object RegExp]\",nt=\"[object Set]\",et=\"[object String]\",rt=\"[object WeakMap]\",it=\"[object ArrayBuffer]\",at=\"[object Float32Array]\",ut=\"[object Float64Array]\",ot=\"[object Int8Array]\",st=\"[object Int16Array]\",ct=\"[object Int32Array]\",lt=\"[object Uint8Array]\",ht=\"[object Uint8ClampedArray]\",ft=\"[object Uint16Array]\",dt=\"[object Uint32Array]\",pt=/\\b__p \\+= '';/g,gt=/\\b(__p \\+=) '' \\+/g,yt=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,mt=/&(?:amp|lt|gt|quot|#39|#96);/g,vt=/[&<>\"'`]/g,_t=RegExp(mt.source),bt=RegExp(vt.source),xt=/<%-([\\s\\S]+?)%>/g,wt=/<%([\\s\\S]+?)%>/g,At=/<%=([\\s\\S]+?)%>/g,kt=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\n\\\\]|\\\\.)*?\\1)\\]/,Et=/^\\w*$/,Mt=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\n\\\\]|\\\\.)*?)\\2)\\]/g,St=/^[:!,]|[\\\\^$.*+?()[\\]{}|\\/]|(^[0-9a-fA-Fnrtuvx])|([\\n\\r\\u2028\\u2029])/g,Dt=RegExp(St.source),Ct=/[\\u0300-\\u036f\\ufe20-\\ufe23]/g,Tt=/\\\\(\\\\)?/g,Ft=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,Ot=/\\w*$/,Lt=/^0[xX]/,It=/^\\[object .+?Constructor\\]$/,Bt=/^\\d+$/,Nt=/[\\xc0-\\xd6\\xd8-\\xde\\xdf-\\xf6\\xf8-\\xff]/g,Pt=/($^)/,Rt=/['\\n\\r\\u2028\\u2029\\\\]/g,jt=function(){var t=\"[A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde]\",n=\"[a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff]+\";return RegExp(t+\"+(?=\"+t+n+\")|\"+t+\"?\"+n+\"|\"+t+\"+|[0-9]+\",\"g\")}(),Yt=[\"Array\",\"ArrayBuffer\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Math\",\"Number\",\"Object\",\"RegExp\",\"Set\",\"String\",\"_\",\"clearTimeout\",\"isFinite\",\"parseFloat\",\"parseInt\",\"setTimeout\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\"],Ut=-1,$t={};$t[at]=$t[ut]=$t[ot]=$t[st]=$t[ct]=$t[lt]=$t[ht]=$t[ft]=$t[dt]=!0,$t[q]=$t[G]=$t[it]=$t[H]=$t[V]=$t[Z]=$t[X]=$t[K]=$t[Q]=$t[J]=$t[tt]=$t[nt]=$t[et]=$t[rt]=!1;var Wt={};Wt[q]=Wt[G]=Wt[it]=Wt[H]=Wt[V]=Wt[at]=Wt[ut]=Wt[ot]=Wt[st]=Wt[ct]=Wt[Q]=Wt[J]=Wt[tt]=Wt[et]=Wt[lt]=Wt[ht]=Wt[ft]=Wt[dt]=!0,Wt[Z]=Wt[X]=Wt[K]=Wt[nt]=Wt[rt]=!1;var zt={\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\"},qt={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},Gt={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\",\"`\":\"`\"},Ht={\"function\":!0,object:!0},Vt={0:\"x30\",1:\"x31\",2:\"x32\",3:\"x33\",4:\"x34\",5:\"x35\",6:\"x36\",7:\"x37\",8:\"x38\",9:\"x39\",A:\"x41\",B:\"x42\",C:\"x43\",D:\"x44\",E:\"x45\",F:\"x46\",a:\"x61\",b:\"x62\",c:\"x63\",d:\"x64\",e:\"x65\",f:\"x66\",n:\"x6e\",r:\"x72\",t:\"x74\",u:\"x75\",v:\"x76\",x:\"x78\"},Zt={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Xt=Ht[typeof e]&&e&&!e.nodeType&&e,Kt=Ht[typeof n]&&n&&!n.nodeType&&n,Qt=Xt&&Kt&&\"object\"==typeof t&&t&&t.Object&&t,Jt=Ht[typeof self]&&self&&self.Object&&self,tn=Ht[typeof window]&&window&&window.Object&&window,nn=Kt&&Kt.exports===Xt&&Xt,en=Qt||tn!==(this&&this.window)&&tn||Jt||this,rn=k();\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd?(en._=rn,define(function(){return rn})):Xt&&Kt?nn?(Kt.exports=rn)._=rn:Xt._=rn:en._=rn}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],52:[function(t,n){n.exports={graphlib:t(\"./lib/graphlib\"),layout:t(\"./lib/layout\"),debug:t(\"./lib/debug\"),util:{time:t(\"./lib/util\").time,notime:t(\"./lib/util\").notime},version:t(\"./lib/version\")}},{\"./lib/debug\":57,\"./lib/graphlib\":58,\"./lib/layout\":60,\"./lib/util\":80,\"./lib/version\":81}],53:[function(t,n){\"use strict\";function e(t){function n(t){return function(n){return t.edge(n).weight}}var e=\"greedy\"===t.graph().acyclicer?u(t,n(t)):r(t);a.each(e,function(n){var e=t.edge(n);t.removeEdge(n),e.forwardName=n.name,e.reversed=!0,t.setEdge(n.w,n.v,e,a.uniqueId(\"rev\"))})}function r(t){function n(u){a.has(i,u)||(i[u]=!0,r[u]=!0,a.each(t.outEdges(u),function(t){a.has(r,t.w)?e.push(t):n(t.w)}),delete r[u])}var e=[],r={},i={};return a.each(t.nodes(),n),e}function i(t){a.each(t.edges(),function(n){var e=t.edge(n);if(e.reversed){t.removeEdge(n);var r=e.forwardName;delete e.reversed,delete e.forwardName,t.setEdge(n.w,n.v,e,r)}})}var a=t(\"./lodash\"),u=t(\"./greedy-fas\");n.exports={run:e,undo:i}},{\"./greedy-fas\":59,\"./lodash\":61}],54:[function(t,n){function e(t){function n(e){var a=t.children(e),u=t.node(e);if(a.length&&i.each(a,n),i.has(u,\"minRank\")){u.borderLeft=[],u.borderRight=[];for(var o=u.minRank,s=u.maxRank+1;s>o;++o)r(t,\"borderLeft\",\"_bl\",e,u,o),r(t,\"borderRight\",\"_br\",e,u,o)}}i.each(t.children(),n)}function r(t,n,e,r,i,u){var o={width:0,height:0,rank:u,borderType:n},s=i[n][u-1],c=a.addDummyNode(t,\"border\",o,e);i[n][u]=c,t.setParent(c,r),s&&t.setEdge(s,c,{weight:1})}var i=t(\"./lodash\"),a=t(\"./util\");n.exports=e},{\"./lodash\":61,\"./util\":80}],55:[function(t,n){\"use strict\";function e(t){var n=t.graph().rankdir.toLowerCase();(\"lr\"===n||\"rl\"===n)&&i(t)}function r(t){var n=t.graph().rankdir.toLowerCase();(\"bt\"===n||\"rl\"===n)&&u(t),(\"lr\"===n||\"rl\"===n)&&(s(t),i(t))}function i(t){l.each(t.nodes(),function(n){a(t.node(n))}),l.each(t.edges(),function(n){a(t.edge(n))})}function a(t){var n=t.width;t.width=t.height,t.height=n}function u(t){l.each(t.nodes(),function(n){o(t.node(n))}),l.each(t.edges(),function(n){var e=t.edge(n);l.each(e.points,o),l.has(e,\"y\")&&o(e)})}function o(t){t.y=-t.y}function s(t){l.each(t.nodes(),function(n){c(t.node(n))}),l.each(t.edges(),function(n){var e=t.edge(n);l.each(e.points,c),l.has(e,\"x\")&&c(e)})}function c(t){var n=t.x;t.x=t.y,t.y=n}var l=t(\"./lodash\");n.exports={adjust:e,undo:r}},{\"./lodash\":61}],56:[function(t,n){function e(){var t={};t._next=t._prev=t,this._sentinel=t}function r(t){t._prev._next=t._next,t._next._prev=t._prev,delete t._next,delete t._prev}function i(t,n){return\"_next\"!==t&&\"_prev\"!==t?n:void 0}n.exports=e,e.prototype.dequeue=function(){var t=this._sentinel,n=t._prev;return n!==t?(r(n),n):void 0},e.prototype.enqueue=function(t){var n=this._sentinel;t._prev&&t._next&&r(t),t._next=n._next,n._next._prev=t,n._next=t,t._prev=n},e.prototype.toString=function(){for(var t=[],n=this._sentinel,e=n._prev;e!==n;)t.push(JSON.stringify(e,i)),e=e._prev;return\"[\"+t.join(\", \")+\"]\"}},{}],57:[function(t,n){function e(t){var n=i.buildLayerMatrix(t),e=new a({compound:!0,multigraph:!0}).setGraph({});return r.each(t.nodes(),function(n){e.setNode(n,{label:n}),e.setParent(n,\"layer\"+t.node(n).rank)}),r.each(t.edges(),function(t){e.setEdge(t.v,t.w,{},t.name)}),r.each(n,function(t,n){var i=\"layer\"+n;e.setNode(i,{rank:\"same\"}),r.reduce(t,function(t,n){return e.setEdge(t,n,{style:\"invis\"}),n})}),e}var r=t(\"./lodash\"),i=t(\"./util\"),a=t(\"./graphlib\").Graph;n.exports={debugOrdering:e}},{\"./graphlib\":58,\"./lodash\":61,\"./util\":80}],58:[function(t,n){var e;if(\"function\"==typeof t)try{e=t(\"graphlib\")}catch(r){}e||(e=window.graphlib),n.exports=e},{graphlib:82}],59:[function(t,n){function e(t,n){if(t.nodeCount()<=1)return[];var e=a(t,n||l),i=r(e.graph,e.buckets,e.zeroIdx);return o.flatten(o.map(i,function(n){return t.outEdges(n.v,n.w)}),!0)}function r(t,n,e){for(var r,a=[],u=n[n.length-1],o=n[0];t.nodeCount();){for(;r=o.dequeue();)i(t,n,e,r);for(;r=u.dequeue();)i(t,n,e,r);if(t.nodeCount())for(var s=n.length-2;s>0;--s)if(r=n[s].dequeue()){a=a.concat(i(t,n,e,r,!0));break}}return a}function i(t,n,e,r,i){var a=i?[]:void 0;return o.each(t.inEdges(r.v),function(r){var o=t.edge(r),s=t.node(r.v);i&&a.push({v:r.v,w:r.w}),s.out-=o,u(n,e,s)}),o.each(t.outEdges(r.v),function(r){var i=t.edge(r),a=r.w,o=t.node(a);o[\"in\"]-=i,u(n,e,o)}),t.removeNode(r.v),a}function a(t,n){var e=new s,r=0,i=0;o.each(t.nodes(),function(t){e.setNode(t,{v:t,\"in\":0,out:0})}),o.each(t.edges(),function(t){var a=e.edge(t.v,t.w)||0,u=n(t),o=a+u;e.setEdge(t.v,t.w,o),i=Math.max(i,e.node(t.v).out+=u),r=Math.max(r,e.node(t.w)[\"in\"]+=u)});var a=o.range(i+r+3).map(function(){return new c}),l=r+1;return o.each(e.nodes(),function(t){u(a,l,e.node(t))}),{graph:e,buckets:a,zeroIdx:l}}function u(t,n,e){e.out?e[\"in\"]?t[e.out-e[\"in\"]+n].enqueue(e):t[t.length-1].enqueue(e):t[0].enqueue(e)}var o=t(\"./lodash\"),s=t(\"./graphlib\").Graph,c=t(\"./data/list\");n.exports=e;var l=o.constant(1)},{\"./data/list\":56,\"./graphlib\":58,\"./lodash\":61}],60:[function(t,n){\"use strict\";function e(t,n){var e=n&&n.debugTiming?O.time:O.notime;e(\"layout\",function(){var n=e(\" buildLayoutGraph\",function(){return a(t)});e(\" runLayout\",function(){r(n,e)}),e(\" updateInputGraph\",function(){i(t,n)})})}function r(t,n){n(\" makeSpaceForEdgeLabels\",function(){u(t)}),n(\" removeSelfEdges\",function(){g(t)}),n(\" acyclic\",function(){x.run(t)}),n(\" nestingGraph.run\",function(){S.run(t)}),n(\" rank\",function(){A(O.asNonCompoundGraph(t))}),n(\" injectEdgeLabelProxies\",function(){o(t)}),n(\" removeEmptyRanks\",function(){M(t)}),n(\" nestingGraph.cleanup\",function(){S.cleanup(t)}),n(\" normalizeRanks\",function(){k(t)}),n(\" assignRankMinMax\",function(){s(t)}),n(\" removeEdgeLabelProxies\",function(){c(t)}),n(\" normalize.run\",function(){w.run(t)}),n(\" parentDummyChains\",function(){E(t)}),n(\" addBorderSegments\",function(){D(t)}),n(\" order\",function(){T(t)}),n(\" insertSelfEdges\",function(){y(t)}),n(\" adjustCoordinateSystem\",function(){C.adjust(t)}),n(\" position\",function(){F(t)}),n(\" positionSelfEdges\",function(){m(t)}),n(\" removeBorderNodes\",function(){p(t)}),n(\" normalize.undo\",function(){w.undo(t)}),n(\" fixupEdgeLabelCoords\",function(){f(t)}),n(\" undoCoordinateSystem\",function(){C.undo(t)}),n(\" translateGraph\",function(){l(t)}),n(\" assignNodeIntersects\",function(){h(t)}),n(\" reversePoints\",function(){d(t)}),n(\" acyclic.undo\",function(){x.undo(t)})}function i(t,n){b.each(t.nodes(),function(e){var r=t.node(e),i=n.node(e);r&&(r.x=i.x,r.y=i.y,n.children(e).length&&(r.width=i.width,r.height=i.height))}),b.each(t.edges(),function(e){var r=t.edge(e),i=n.edge(e);r.points=i.points,b.has(i,\"x\")&&(r.x=i.x,r.y=i.y)}),t.graph().width=n.graph().width,t.graph().height=n.graph().height}function a(t){var n=new L({multigraph:!0,compound:!0}),e=_(t.graph());return n.setGraph(b.merge({},B,v(e,I),b.pick(e,N))),b.each(t.nodes(),function(e){var r=_(t.node(e));n.setNode(e,b.defaults(v(r,P),R)),n.setParent(e,t.parent(e))}),b.each(t.edges(),function(e){var r=_(t.edge(e));n.setEdge(e,b.merge({},Y,v(r,j),b.pick(r,U)))}),n}function u(t){var n=t.graph();n.ranksep/=2,b.each(t.edges(),function(e){var r=t.edge(e);r.minlen*=2,\"c\"!==r.labelpos.toLowerCase()&&(\"TB\"===n.rankdir||\"BT\"===n.rankdir?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function o(t){b.each(t.edges(),function(n){var e=t.edge(n);if(e.width&&e.height){var r=t.node(n.v),i=t.node(n.w),a={rank:(i.rank-r.rank)/2+r.rank,e:n};O.addDummyNode(t,\"edge-proxy\",a,\"_ep\")}})}function s(t){var n=0;b.each(t.nodes(),function(e){var r=t.node(e);r.borderTop&&(r.minRank=t.node(r.borderTop).rank,r.maxRank=t.node(r.borderBottom).rank,n=b.max(n,r.maxRank))}),t.graph().maxRank=n}function c(t){b.each(t.nodes(),function(n){var e=t.node(n);\"edge-proxy\"===e.dummy&&(t.edge(e.e).labelRank=e.rank,t.removeNode(n))})}function l(t){function n(t){var n=t.x,u=t.y,o=t.width,s=t.height;e=Math.min(e,n-o/2),r=Math.max(r,n+o/2),i=Math.min(i,u-s/2),a=Math.max(a,u+s/2)}var e=Number.POSITIVE_INFINITY,r=0,i=Number.POSITIVE_INFINITY,a=0,u=t.graph(),o=u.marginx||0,s=u.marginy||0;b.each(t.nodes(),function(e){n(t.node(e))}),b.each(t.edges(),function(e){var r=t.edge(e);b.has(r,\"x\")&&n(r)}),e-=o,i-=s,b.each(t.nodes(),function(n){var r=t.node(n);r.x-=e,r.y-=i}),b.each(t.edges(),function(n){var r=t.edge(n);b.each(r.points,function(t){t.x-=e,t.y-=i}),b.has(r,\"x\")&&(r.x-=e),b.has(r,\"y\")&&(r.y-=i)}),u.width=r-e+o,u.height=a-i+s}function h(t){b.each(t.edges(),function(n){var e,r,i=t.edge(n),a=t.node(n.v),u=t.node(n.w);i.points?(e=i.points[0],r=i.points[i.points.length-1]):(i.points=[],e=u,r=a),i.points.unshift(O.intersectRect(a,e)),i.points.push(O.intersectRect(u,r))})}function f(t){b.each(t.edges(),function(n){var e=t.edge(n);if(b.has(e,\"x\"))switch((\"l\"===e.labelpos||\"r\"===e.labelpos)&&(e.width-=e.labeloffset),e.labelpos){case\"l\":e.x-=e.width/2+e.labeloffset;break;case\"r\":e.x+=e.width/2+e.labeloffset}})}function d(t){b.each(t.edges(),function(n){var e=t.edge(n);e.reversed&&e.points.reverse()})}function p(t){b.each(t.nodes(),function(n){if(t.children(n).length){var e=t.node(n),r=t.node(e.borderTop),i=t.node(e.borderBottom),a=t.node(b.last(e.borderLeft)),u=t.node(b.last(e.borderRight));e.width=Math.abs(u.x-a.x),e.height=Math.abs(i.y-r.y),e.x=a.x+e.width/2,e.y=r.y+e.height/2}}),b.each(t.nodes(),function(n){\"border\"===t.node(n).dummy&&t.removeNode(n)})}function g(t){b.each(t.edges(),function(n){if(n.v===n.w){var e=t.node(n.v);e.selfEdges||(e.selfEdges=[]),e.selfEdges.push({e:n,label:t.edge(n)}),t.removeEdge(n)}})}function y(t){var n=O.buildLayerMatrix(t);b.each(n,function(n){var e=0;b.each(n,function(n,r){var i=t.node(n);i.order=r+e,b.each(i.selfEdges,function(n){O.addDummyNode(t,\"selfedge\",{width:n.label.width,height:n.label.height,rank:i.rank,order:r+ ++e,e:n.e,label:n.label},\"_se\")}),delete i.selfEdges})})}function m(t){b.each(t.nodes(),function(n){var e=t.node(n);if(\"selfedge\"===e.dummy){var r=t.node(e.e.v),i=r.x+r.width/2,a=r.y,u=e.x-i,o=r.height/2;t.setEdge(e.e,e.label),t.removeNode(n),e.label.points=[{x:i+2*u/3,y:a-o},{x:i+5*u/6,y:a-o},{x:i+u,y:a},{x:i+5*u/6,y:a+o},{x:i+2*u/3,y:a+o}],e.label.x=e.x,e.label.y=e.y}})}function v(t,n){return b.mapValues(b.pick(t,n),Number)}function _(t){var n={};return b.each(t,function(t,e){n[e.toLowerCase()]=t}),n}var b=t(\"./lodash\"),x=t(\"./acyclic\"),w=t(\"./normalize\"),A=t(\"./rank\"),k=t(\"./util\").normalizeRanks,E=t(\"./parent-dummy-chains\"),M=t(\"./util\").removeEmptyRanks,S=t(\"./nesting-graph\"),D=t(\"./add-border-segments\"),C=t(\"./coordinate-system\"),T=t(\"./order\"),F=t(\"./position\"),O=t(\"./util\"),L=t(\"./graphlib\").Graph;n.exports=e;var I=[\"nodesep\",\"edgesep\",\"ranksep\",\"marginx\",\"marginy\"],B={ranksep:50,edgesep:20,nodesep:50,rankdir:\"tb\"},N=[\"acyclicer\",\"ranker\",\"rankdir\",\"align\"],P=[\"width\",\"height\"],R={width:0,height:0},j=[\"minlen\",\"weight\",\"width\",\"height\",\"labeloffset\"],Y={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:\"r\"},U=[\"labelpos\"]},{\"./acyclic\":53,\"./add-border-segments\":54,\"./coordinate-system\":55,\"./graphlib\":58,\"./lodash\":61,\"./nesting-graph\":62,\"./normalize\":63,\"./order\":68,\"./parent-dummy-chains\":73,\"./position\":75,\"./rank\":77,\"./util\":80}],61:[function(t,n){n.exports=t(49)},{\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/lodash.js\":49,lodash:102}],62:[function(t,n){function e(t){var n=s.addDummyNode(t,\"root\",{},\"_root\"),e=i(t),u=o.max(e)-1,c=2*u+1;t.graph().nestingRoot=n,o.each(t.edges(),function(n){t.edge(n).minlen*=c});var l=a(t)+1;o.each(t.children(),function(i){r(t,n,c,l,u,e,i)}),t.graph().nodeRankFactor=c}function r(t,n,e,i,a,u,c){var l=t.children(c);if(!l.length)return void(c!==n&&t.setEdge(n,c,{weight:0,minlen:e}));var h=s.addBorderNode(t,\"_bt\"),f=s.addBorderNode(t,\"_bb\"),d=t.node(c);t.setParent(h,c),d.borderTop=h,t.setParent(f,c),d.borderBottom=f,o.each(l,function(o){r(t,n,e,i,a,u,o);var s=t.node(o),l=s.borderTop?s.borderTop:o,d=s.borderBottom?s.borderBottom:o,p=s.borderTop?i:2*i,g=l!==d?1:a-u[c]+1;t.setEdge(h,l,{weight:p,minlen:g,nestingEdge:!0}),t.setEdge(d,f,{weight:p,minlen:g,nestingEdge:!0})}),t.parent(c)||t.setEdge(n,h,{weight:0,minlen:a+u[c]})}function i(t){function n(r,i){var a=t.children(r);a&&a.length&&o.each(a,function(t){n(t,i+1)}),e[r]=i}var e={};return o.each(t.children(),function(t){n(t,1)}),e}function a(t){return o.reduce(t.edges(),function(n,e){return n+t.edge(e).weight},0)}function u(t){var n=t.graph();t.removeNode(n.nestingRoot),delete n.nestingRoot,o.each(t.edges(),function(n){var e=t.edge(n);e.nestingEdge&&t.removeEdge(n)})}var o=t(\"./lodash\"),s=t(\"./util\");n.exports={run:e,cleanup:u}},{\"./lodash\":61,\"./util\":80}],63:[function(t,n){\"use strict\";function e(t){t.graph().dummyChains=[],a.each(t.edges(),function(n){r(t,n)})}function r(t,n){var e=n.v,r=t.node(e).rank,i=n.w,a=t.node(i).rank,o=n.name,s=t.edge(n),c=s.labelRank;if(a!==r+1){t.removeEdge(n);var l,h,f;for(f=0,++r;a>r;++f,++r)s.points=[],h={width:0,height:0,edgeLabel:s,edgeObj:n,rank:r},l=u.addDummyNode(t,\"edge\",h,\"_d\"),r===c&&(h.width=s.width,h.height=s.height,h.dummy=\"edge-label\",h.labelpos=s.labelpos),t.setEdge(e,l,{weight:s.weight},o),0===f&&t.graph().dummyChains.push(l),e=l;t.setEdge(e,i,{weight:s.weight},o)}}function i(t){a.each(t.graph().dummyChains,function(n){var e,r=t.node(n),i=r.edgeLabel;for(t.setEdge(r.edgeObj,i);r.dummy;)e=t.successors(n)[0],t.removeNode(n),i.points.push({x:r.x,y:r.y}),\"edge-label\"===r.dummy&&(i.x=r.x,i.y=r.y,i.width=r.width,i.height=r.height),n=e,r=t.node(n)})}var a=t(\"./lodash\"),u=t(\"./util\");n.exports={run:e,undo:i}},{\"./lodash\":61,\"./util\":80}],64:[function(t,n){function e(t,n,e){var i,a={};r.each(e,function(e){for(var r,u,o=t.parent(e);o;){if(r=t.parent(o),r?(u=a[r],a[r]=o):(u=i,i=o),u&&u!==o)return void n.setEdge(u,o);o=r}})}var r=t(\"../lodash\");n.exports=e},{\"../lodash\":61}],65:[function(t,n){function e(t,n){return r.map(n,function(n){var e=t.inEdges(n);if(e.length){var i=r.reduce(e,function(n,e){var r=t.edge(e),i=t.node(e.v);return{sum:n.sum+r.weight*i.order,weight:n.weight+r.weight}},{sum:0,weight:0});return{v:n,barycenter:i.sum/i.weight,weight:i.weight}}return{v:n}})}var r=t(\"../lodash\");n.exports=e},{\"../lodash\":61}],66:[function(t,n){function e(t,n,e){var u=r(t),o=new a({compound:!0}).setGraph({root:u}).setDefaultNodeLabel(function(n){return t.node(n)});return i.each(t.nodes(),function(r){var a=t.node(r),s=t.parent(r);(a.rank===n||a.minRank<=n&&n<=a.maxRank)&&(o.setNode(r),o.setParent(r,s||u),i.each(t[e](r),function(n){var e=n.v===r?n.w:n.v,a=o.edge(e,r),u=i.isUndefined(a)?0:a.weight;o.setEdge(e,r,{weight:t.edge(n).weight+u})}),i.has(a,\"minRank\")&&o.setNode(r,{borderLeft:a.borderLeft[n],borderRight:a.borderRight[n]}))}),o}function r(t){for(var n;t.hasNode(n=i.uniqueId(\"_root\")););return n}var i=t(\"../lodash\"),a=t(\"../graphlib\").Graph;n.exports=e},{\"../graphlib\":58,\"../lodash\":61}],67:[function(t,n){\"use strict\";function e(t,n){for(var e=0,i=1;i<n.length;++i)e+=r(t,n[i-1],n[i]);return e}function r(t,n,e){for(var r=i.zipObject(e,i.map(e,function(t,n){return n})),a=i.flatten(i.map(n,function(n){return i.chain(t.outEdges(n)).map(function(n){return{pos:r[n.w],weight:t.edge(n).weight}}).sortBy(\"pos\").value()}),!0),u=1;u<e.length;)u<<=1;var o=2*u-1;u-=1;var s=i.map(new Array(o),function(){return 0}),c=0;return i.each(a.forEach(function(t){var n=t.pos+u;s[n]+=t.weight;for(var e=0;n>0;)n%2&&(e+=s[n+1]),n=n-1>>1,s[n]+=t.weight;c+=t.weight*e})),c}var i=t(\"../lodash\");n.exports=e},{\"../lodash\":61}],68:[function(t,n){\"use strict\";function e(t){var n=d.maxRank(t),e=r(t,u.range(1,n+1),\"inEdges\"),c=r(t,u.range(n-1,-1,-1),\"outEdges\"),l=o(t);a(t,l);for(var h,f=Number.POSITIVE_INFINITY,p=0,g=0;4>g;++p,++g){i(p%2?e:c,p%4>=2),l=d.buildLayerMatrix(t);var y=s(t,l);f>y&&(g=0,h=u.cloneDeep(l),f=y)}a(t,h)}function r(t,n,e){return u.map(n,function(n){return l(t,n,e)})}function i(t,n){var e=new f;u.each(t,function(t){var r=t.graph().root,i=c(t,r,e,n);u.each(i.vs,function(n,e){t.node(n).order=e}),h(t,e,i.vs)})}function a(t,n){u.each(n,function(n){u.each(n,function(n,e){t.node(n).order=e})})}var u=t(\"../lodash\"),o=t(\"./init-order\"),s=t(\"./cross-count\"),c=t(\"./sort-subgraph\"),l=t(\"./build-layer-graph\"),h=t(\"./add-subgraph-constraints\"),f=t(\"../graphlib\").Graph,d=t(\"../util\");n.exports=e},{\"../graphlib\":58,\"../lodash\":61,\"../util\":80,\"./add-subgraph-constraints\":64,\"./build-layer-graph\":66,\"./cross-count\":67,\"./init-order\":69,\"./sort-subgraph\":71}],69:[function(t,n){\"use strict\";function e(t){function n(i){if(!r.has(e,i)){e[i]=!0;var a=t.node(i);u[a.rank].push(i),r.each(t.successors(i),n)}}var e={},i=r.filter(t.nodes(),function(n){return!t.children(n).length}),a=r.max(r.map(i,function(n){return t.node(n).rank})),u=r.map(r.range(a+1),function(){return[]}),o=r.sortBy(i,function(n){return t.node(n).rank});return r.each(o,n),u}var r=t(\"../lodash\");n.exports=e},{\"../lodash\":61}],70:[function(t,n){\"use strict\";function e(t,n){var e={};a.each(t,function(t,n){var r=e[t.v]={indegree:0,\"in\":[],out:[],vs:[t.v],i:n};a.isUndefined(t.barycenter)||(r.barycenter=t.barycenter,r.weight=t.weight)}),a.each(n.edges(),function(t){var n=e[t.v],r=e[t.w];a.isUndefined(n)||a.isUndefined(r)||(r.indegree++,n.out.push(e[t.w]))});var i=a.filter(e,function(t){return!t.indegree});return r(i)}function r(t){function n(t){return function(n){n.merged||(a.isUndefined(n.barycenter)||a.isUndefined(t.barycenter)||n.barycenter>=t.barycenter)&&i(t,n)}}function e(n){return function(e){e[\"in\"].push(n),0===--e.indegree&&t.push(e)}}for(var r=[];t.length;){var u=t.pop();r.push(u),a.each(u[\"in\"].reverse(),n(u)),a.each(u.out,e(u))}return a.chain(r).filter(function(t){return!t.merged}).map(function(t){return a.pick(t,[\"vs\",\"i\",\"barycenter\",\"weight\"])}).value()}function i(t,n){var e=0,r=0;t.weight&&(e+=t.barycenter*t.weight,r+=t.weight),n.weight&&(e+=n.barycenter*n.weight,r+=n.weight),t.vs=n.vs.concat(t.vs),t.barycenter=e/r,t.weight=r,t.i=Math.min(n.i,t.i),n.merged=!0}var a=t(\"../lodash\");n.exports=e},{\"../lodash\":61}],71:[function(t,n){function e(t,n,c,l){var h=t.children(n),f=t.node(n),d=f?f.borderLeft:void 0,p=f?f.borderRight:void 0,g={};d&&(h=a.filter(h,function(t){return t!==d&&t!==p}));var y=u(t,h);a.each(y,function(n){if(t.children(n.v).length){var r=e(t,n.v,c,l);g[n.v]=r,a.has(r,\"barycenter\")&&i(n,r)}});var m=o(y,c);r(m,g);var v=s(m,l);if(d&&(v.vs=a.flatten([d,v.vs,p],!0),t.predecessors(d).length)){var _=t.node(t.predecessors(d)[0]),b=t.node(t.predecessors(p)[0]);a.has(v,\"barycenter\")||(v.barycenter=0,v.weight=0),v.barycenter=(v.barycenter*v.weight+_.order+b.order)/(v.weight+2),v.weight+=2}return v}function r(t,n){a.each(t,function(t){t.vs=a.flatten(t.vs.map(function(t){return n[t]?n[t].vs:t}),!0)})}function i(t,n){a.isUndefined(t.barycenter)?(t.barycenter=n.barycenter,t.weight=n.weight):(t.barycenter=(t.barycenter*t.weight+n.barycenter*n.weight)/(t.weight+n.weight),t.weight+=n.weight)}var a=t(\"../lodash\"),u=t(\"./barycenter\"),o=t(\"./resolve-conflicts\"),s=t(\"./sort\");n.exports=e},{\"../lodash\":61,\"./barycenter\":65,\"./resolve-conflicts\":70,\"./sort\":72}],72:[function(t,n){function e(t,n){var e=u.partition(t,function(t){return a.has(t,\"barycenter\")}),o=e.lhs,s=a.sortBy(e.rhs,function(t){return-t.i}),c=[],l=0,h=0,f=0;o.sort(i(!!n)),f=r(c,s,f),a.each(o,function(t){f+=t.vs.length,c.push(t.vs),l+=t.barycenter*t.weight,h+=t.weight,f=r(c,s,f)});var d={vs:a.flatten(c,!0)};return h&&(d.barycenter=l/h,d.weight=h),d}function r(t,n,e){for(var r;n.length&&(r=a.last(n)).i<=e;)n.pop(),t.push(r.vs),e++;return e}function i(t){return function(n,e){return n.barycenter<e.barycenter?-1:n.barycenter>e.barycenter?1:t?e.i-n.i:n.i-e.i}}var a=t(\"../lodash\"),u=t(\"../util\");n.exports=e},{\"../lodash\":61,\"../util\":80}],73:[function(t,n){function e(t){var n=i(t);a.each(t.graph().dummyChains,function(e){for(var i=t.node(e),a=i.edgeObj,u=r(t,n,a.v,a.w),o=u.path,s=u.lca,c=0,l=o[c],h=!0;e!==a.w;){if(i=t.node(e),h){for(;(l=o[c])!==s&&t.node(l).maxRank<i.rank;)c++;l===s&&(h=!1)}if(!h){for(;c<o.length-1&&t.node(l=o[c+1]).minRank<=i.rank;)c++;l=o[c]}t.setParent(e,l),e=t.successors(e)[0]}})}function r(t,n,e,r){var i,a,u=[],o=[],s=Math.min(n[e].low,n[r].low),c=Math.max(n[e].lim,n[r].lim);i=e;do i=t.parent(i),u.push(i);while(i&&(n[i].low>s||c>n[i].lim));for(a=i,i=r;(i=t.parent(i))!==a;)o.push(i);return{path:u.concat(o.reverse()),lca:a}}function i(t){function n(i){var u=r;a.each(t.children(i),n),e[i]={low:u,lim:r++}}var e={},r=0;return a.each(t.children(),n),e}var a=t(\"./lodash\");n.exports=e},{\"./lodash\":61}],74:[function(t,n){\"use strict\";function e(t,n){function e(n,e){var u=0,o=0,s=n.length,c=y.last(e);return y.each(e,function(n,l){var h=i(t,n),f=h?t.node(h).order:s;(h||n===c)&&(y.each(e.slice(o,l+1),function(n){y.each(t.predecessors(n),function(e){var i=t.node(e),o=i.order;!(u>o||o>f)||i.dummy&&t.node(n).dummy||a(r,e,n)})}),o=l+1,u=f)}),e}var r={};return y.reduce(n,e),r}function r(t,n){function e(n,e,r,u,o){var s;y.each(y.range(e,r),function(e){s=n[e],t.node(s).dummy&&y.each(t.predecessors(s),function(n){var e=t.node(n);e.dummy&&(e.order<u||e.order>o)&&a(i,n,s)})})}function r(n,r){var i,a=-1,u=0;return y.each(r,function(o,s){if(\"border\"===t.node(o).dummy){var c=t.predecessors(o);c.length&&(i=t.node(c[0]).order,e(r,u,s,a,i),u=s,a=i)}e(r,u,r.length,i,n.length)}),r}var i={};return y.reduce(n,r),i}function i(t,n){return t.node(n).dummy?y.find(t.predecessors(n),function(n){return t.node(n).dummy}):void 0}function a(t,n,e){if(n>e){var r=n;n=e,e=r}var i=t[n];i||(t[n]=i={}),i[e]=!0}function u(t,n,e){if(n>e){var r=n;n=e,e=r}return y.has(t[n],e)}function o(t,n,e,r){var i={},a={},o={};return y.each(n,function(t){y.each(t,function(t,n){i[t]=t,a[t]=t,o[t]=n})}),y.each(n,function(t){var n=-1;y.each(t,function(t){var s=r(t);if(s.length){s=y.sortBy(s,function(t){return o[t]});for(var c=(s.length-1)/2,l=Math.floor(c),h=Math.ceil(c);h>=l;++l){var f=s[l];a[t]===t&&n<o[f]&&!u(e,t,f)&&(a[f]=t,a[t]=i[t]=i[f],n=o[f])}}})}),{root:i,align:a}}function s(t,n,e,r,i){function a(t){y.has(l,t)||(l[t]=!0,o[t]=y.reduce(s.inEdges(t),function(t,n){return a(n.v),Math.max(t,o[n.v]+s.edge(n))},0))}function u(n){if(2!==l[n]){l[n]++;var e=t.node(n),r=y.reduce(s.outEdges(n),function(t,n){return u(n.w),Math.min(t,o[n.w]-s.edge(n))},Number.POSITIVE_INFINITY);r!==Number.POSITIVE_INFINITY&&e.borderType!==h&&(o[n]=Math.max(o[n],r))}}var o={},s=c(t,n,e,i),l={};y.each(s.nodes(),a);var h=i?\"borderLeft\":\"borderRight\";return y.each(s.nodes(),u),y.each(r,function(t){o[t]=o[e[t]]}),o}function c(t,n,e,r){var i=new m,a=t.graph(),u=p(a.nodesep,a.edgesep,r);return y.each(n,function(n){var r;y.each(n,function(n){var a=e[n];if(i.setNode(a),r){var o=e[r],s=i.edge(o,a);i.setEdge(o,a,Math.max(u(t,n,r),s||0))}r=n})}),i}function l(t,n){return y.min(n,function(n){var e=y.min(n,function(n,e){return n-g(t,e)/2}),r=y.max(n,function(n,e){return n+g(t,e)/2});return r-e})}function h(t,n){var e=y.min(n),r=y.max(n);y.each([\"u\",\"d\"],function(i){y.each([\"l\",\"r\"],function(a){var u,o=i+a,s=t[o];s!==n&&(u=\"l\"===a?e-y.min(s):r-y.max(s),u&&(t[o]=y.mapValues(s,function(t){return t+u})))})})}function f(t,n){return y.mapValues(t.ul,function(e,r){if(n)return t[n.toLowerCase()][r];var i=y.sortBy(y.pluck(t,r));return(i[1]+i[2])/2})}function d(t){var n,i=v.buildLayerMatrix(t),a=y.merge(e(t,i),r(t,i)),u={};y.each([\"u\",\"d\"],function(e){n=\"u\"===e?i:y.values(i).reverse(),y.each([\"l\",\"r\"],function(r){\"r\"===r&&(n=y.map(n,function(t){return y.values(t).reverse()}));var i=y.bind(\"u\"===e?t.predecessors:t.successors,t),c=o(t,n,a,i),l=s(t,n,c.root,c.align,\"r\"===r);\"r\"===r&&(l=y.mapValues(l,function(t){return-t})),u[e+r]=l})});var c=l(t,u);return h(u,c),f(u,t.graph().align)}function p(t,n,e){return function(r,i,a){var u,o=r.node(i),s=r.node(a),c=0;if(c+=o.width/2,y.has(o,\"labelpos\"))switch(o.labelpos.toLowerCase()){\ncase\"l\":u=-o.width/2;break;case\"r\":u=o.width/2}if(u&&(c+=e?u:-u),u=0,c+=(o.dummy?n:t)/2,c+=(s.dummy?n:t)/2,c+=s.width/2,y.has(s,\"labelpos\"))switch(s.labelpos.toLowerCase()){case\"l\":u=s.width/2;break;case\"r\":u=-s.width/2}return u&&(c+=e?u:-u),u=0,c}}function g(t,n){return t.node(n).width}var y=t(\"../lodash\"),m=t(\"../graphlib\").Graph,v=t(\"../util\");n.exports={positionX:d,findType1Conflicts:e,findType2Conflicts:r,addConflict:a,hasConflict:u,verticalAlignment:o,horizontalCompaction:s,alignCoordinates:h,findSmallestWidthAlignment:l,balance:f}},{\"../graphlib\":58,\"../lodash\":61,\"../util\":80}],75:[function(t,n){\"use strict\";function e(t){t=a.asNonCompoundGraph(t),r(t),i.each(u(t),function(n,e){t.node(e).x=n})}function r(t){var n=a.buildLayerMatrix(t),e=t.graph().ranksep,r=0;i.each(n,function(n){var a=i.max(i.map(n,function(n){return t.node(n).height}));i.each(n,function(n){t.node(n).y=r+a/2}),r+=a+e})}var i=t(\"../lodash\"),a=t(\"../util\"),u=t(\"./bk\").positionX;n.exports=e},{\"../lodash\":61,\"../util\":80,\"./bk\":74}],76:[function(t,n){\"use strict\";function e(t){var n=new o({directed:!1}),e=t.nodes()[0],u=t.nodeCount();n.setNode(e,{});for(var c,l;r(n,t)<u;)c=i(n,t),l=n.hasNode(c.v)?s(t,c):-s(t,c),a(n,t,l);return n}function r(t,n){function e(r){u.each(n.nodeEdges(r),function(i){var a=i.v,u=r===a?i.w:a;t.hasNode(u)||s(n,i)||(t.setNode(u,{}),t.setEdge(r,u,{}),e(u))})}return u.each(t.nodes(),e),t.nodeCount()}function i(t,n){return u.min(n.edges(),function(e){return t.hasNode(e.v)!==t.hasNode(e.w)?s(n,e):void 0})}function a(t,n,e){u.each(t.nodes(),function(t){n.node(t).rank+=e})}var u=t(\"../lodash\"),o=t(\"../graphlib\").Graph,s=t(\"./util\").slack;n.exports=e},{\"../graphlib\":58,\"../lodash\":61,\"./util\":79}],77:[function(t,n){\"use strict\";function e(t){switch(t.graph().ranker){case\"network-simplex\":i(t);break;case\"tight-tree\":r(t);break;case\"longest-path\":c(t);break;default:i(t)}}function r(t){u(t),o(t)}function i(t){s(t)}var a=t(\"./util\"),u=a.longestPath,o=t(\"./feasible-tree\"),s=t(\"./network-simplex\");n.exports=e;var c=u},{\"./feasible-tree\":76,\"./network-simplex\":78,\"./util\":79}],78:[function(t,n){\"use strict\";function e(t){t=b(t),m(t);var n=g(t);u(n),r(n,t);for(var e,i;e=s(n);)i=c(n,t,e),l(n,t,e,i)}function r(t,n){var e=_(t,t.nodes());e=e.slice(0,e.length-1),p.each(e,function(e){i(t,n,e)})}function i(t,n,e){var r=t.node(e),i=r.parent;t.edge(e,i).cutvalue=a(t,n,e)}function a(t,n,e){var r=t.node(e),i=r.parent,a=!0,u=n.edge(e,i),o=0;return u||(a=!1,u=n.edge(i,e)),o=u.weight,p.each(n.nodeEdges(e),function(r){var u=r.v===e,s=u?r.w:r.v;if(s!==i){var c=u===a,l=n.edge(r).weight;if(o+=c?l:-l,f(t,e,s)){var h=t.edge(e,s).cutvalue;o+=c?-h:h}}}),o}function u(t,n){arguments.length<2&&(n=t.nodes()[0]),o(t,{},1,n)}function o(t,n,e,r,i){var a=e,u=t.node(r);return n[r]=!0,p.each(t.neighbors(r),function(i){p.has(n,i)||(e=o(t,n,e,i,r))}),u.low=a,u.lim=e++,i?u.parent=i:delete u.parent,e}function s(t){return p.find(t.edges(),function(n){return t.edge(n).cutvalue<0})}function c(t,n,e){var r=e.v,i=e.w;n.hasEdge(r,i)||(r=e.w,i=e.v);var a=t.node(r),u=t.node(i),o=a,s=!1;a.lim>u.lim&&(o=u,s=!0);var c=p.filter(n.edges(),function(n){return s===d(t,t.node(n.v),o)&&s!==d(t,t.node(n.w),o)});return p.min(c,function(t){return y(n,t)})}function l(t,n,e,i){var a=e.v,o=e.w;t.removeEdge(a,o),t.setEdge(i.v,i.w,{}),u(t),r(t,n),h(t,n)}function h(t,n){var e=p.find(t.nodes(),function(t){return!n.node(t).parent}),r=v(t,e);r=r.slice(1),p.each(r,function(e){var r=t.node(e).parent,i=n.edge(e,r),a=!1;i||(i=n.edge(r,e),a=!0),n.node(e).rank=n.node(r).rank+(a?i.minlen:-i.minlen)})}function f(t,n,e){return t.hasEdge(n,e)}function d(t,n,e){return e.low<=n.lim&&n.lim<=e.lim}var p=t(\"../lodash\"),g=t(\"./feasible-tree\"),y=t(\"./util\").slack,m=t(\"./util\").longestPath,v=t(\"../graphlib\").alg.preorder,_=t(\"../graphlib\").alg.postorder,b=t(\"../util\").simplify;n.exports=e,e.initLowLimValues=u,e.initCutValues=r,e.calcCutValue=a,e.leaveEdge=s,e.enterEdge=c,e.exchangeEdges=l},{\"../graphlib\":58,\"../lodash\":61,\"../util\":80,\"./feasible-tree\":76,\"./util\":79}],79:[function(t,n){\"use strict\";function e(t){function n(r){var a=t.node(r);if(i.has(e,r))return a.rank;e[r]=!0;var u=i.min(i.map(t.outEdges(r),function(e){return n(e.w)-t.edge(e).minlen}));return u===Number.POSITIVE_INFINITY&&(u=0),a.rank=u}var e={};i.each(t.sources(),n)}function r(t,n){return t.node(n.w).rank-t.node(n.v).rank-t.edge(n).minlen}var i=t(\"../lodash\");n.exports={longestPath:e,slack:r}},{\"../lodash\":61}],80:[function(t,n){\"use strict\";function e(t,n,e,r){var i;do i=y.uniqueId(r);while(t.hasNode(i));return e.dummy=n,t.setNode(i,e),i}function r(t){var n=(new m).setGraph(t.graph());return y.each(t.nodes(),function(e){n.setNode(e,t.node(e))}),y.each(t.edges(),function(e){var r=n.edge(e.v,e.w)||{weight:0,minlen:1},i=t.edge(e);n.setEdge(e.v,e.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),n}function i(t){var n=new m({multigraph:t.isMultigraph()}).setGraph(t.graph());return y.each(t.nodes(),function(e){t.children(e).length||n.setNode(e,t.node(e))}),y.each(t.edges(),function(e){n.setEdge(e,t.edge(e))}),n}function a(t){var n=y.map(t.nodes(),function(n){var e={};return y.each(t.outEdges(n),function(n){e[n.w]=(e[n.w]||0)+t.edge(n).weight}),e});return y.zipObject(t.nodes(),n)}function u(t){var n=y.map(t.nodes(),function(n){var e={};return y.each(t.inEdges(n),function(n){e[n.v]=(e[n.v]||0)+t.edge(n).weight}),e});return y.zipObject(t.nodes(),n)}function o(t,n){var e=t.x,r=t.y,i=n.x-e,a=n.y-r,u=t.width/2,o=t.height/2;if(!i&&!a)throw new Error(\"Not possible to find intersection inside of the rectangle\");var s,c;return Math.abs(a)*u>Math.abs(i)*o?(0>a&&(o=-o),s=o*i/a,c=o):(0>i&&(u=-u),s=u,c=u*a/i),{x:e+s,y:r+c}}function s(t){var n=y.map(y.range(f(t)+1),function(){return[]});return y.each(t.nodes(),function(e){var r=t.node(e),i=r.rank;y.isUndefined(i)||(n[i][r.order]=e)}),n}function c(t){var n=y.min(y.map(t.nodes(),function(n){return t.node(n).rank}));y.each(t.nodes(),function(e){var r=t.node(e);y.has(r,\"rank\")&&(r.rank-=n)})}function l(t){var n=y.min(y.map(t.nodes(),function(n){return t.node(n).rank})),e=[];y.each(t.nodes(),function(r){var i=t.node(r).rank-n;e[i]||(e[i]=[]),e[i].push(r)});var r=0,i=t.graph().nodeRankFactor;y.each(e,function(n,e){y.isUndefined(n)&&e%i!==0?--r:r&&y.each(n,function(n){t.node(n).rank+=r})})}function h(t,n,r,i){var a={width:0,height:0};return arguments.length>=4&&(a.rank=r,a.order=i),e(t,\"border\",a,n)}function f(t){return y.max(y.map(t.nodes(),function(n){var e=t.node(n).rank;return y.isUndefined(e)?void 0:e}))}function d(t,n){var e={lhs:[],rhs:[]};return y.each(t,function(t){n(t)?e.lhs.push(t):e.rhs.push(t)}),e}function p(t,n){var e=y.now();try{return n()}finally{console.log(t+\" time: \"+(y.now()-e)+\"ms\")}}function g(t,n){return n()}var y=t(\"./lodash\"),m=t(\"./graphlib\").Graph;n.exports={addDummyNode:e,simplify:r,asNonCompoundGraph:i,successorWeights:a,predecessorWeights:u,intersectRect:o,buildLayerMatrix:s,normalizeRanks:c,removeEmptyRanks:l,addBorderNode:h,maxRank:f,partition:d,time:p,notime:g}},{\"./graphlib\":58,\"./lodash\":61}],81:[function(t,n){n.exports=\"0.7.4\"},{}],82:[function(t,n){n.exports=t(31)},{\"./lib\":98,\"./lib/alg\":89,\"./lib/json\":99,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/index.js\":31}],83:[function(t,n){n.exports=t(32)},{\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/components.js\":32}],84:[function(t,n){n.exports=t(33)},{\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/dfs.js\":33}],85:[function(t,n){n.exports=t(34)},{\"../lodash\":100,\"./dijkstra\":86,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/dijkstra-all.js\":34}],86:[function(t,n){n.exports=t(35)},{\"../data/priority-queue\":96,\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/dijkstra.js\":35}],87:[function(t,n){n.exports=t(36)},{\"../lodash\":100,\"./tarjan\":94,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/find-cycles.js\":36}],88:[function(t,n){n.exports=t(37)},{\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/floyd-warshall.js\":37}],89:[function(t,n){n.exports=t(38)},{\"./components\":83,\"./dijkstra\":86,\"./dijkstra-all\":85,\"./find-cycles\":87,\"./floyd-warshall\":88,\"./is-acyclic\":90,\"./postorder\":91,\"./preorder\":92,\"./prim\":93,\"./tarjan\":94,\"./topsort\":95,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/index.js\":38}],90:[function(t,n){n.exports=t(39)},{\"./topsort\":95,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/is-acyclic.js\":39}],91:[function(t,n){n.exports=t(40)},{\"./dfs\":84,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/postorder.js\":40}],92:[function(t,n){n.exports=t(41)},{\"./dfs\":84,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/preorder.js\":41}],93:[function(t,n){n.exports=t(42)},{\"../data/priority-queue\":96,\"../graph\":97,\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/prim.js\":42}],94:[function(t,n){n.exports=t(43)},{\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/tarjan.js\":43}],95:[function(t,n){n.exports=t(44)},{\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/alg/topsort.js\":44}],96:[function(t,n){n.exports=t(45)},{\"../lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/data/priority-queue.js\":45}],97:[function(t,n){n.exports=t(46)},{\"./lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/graph.js\":46}],98:[function(t,n){n.exports=t(47)},{\"./graph\":97,\"./version\":101,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/index.js\":47}],99:[function(t,n){n.exports=t(48)},{\"./graph\":97,\"./lodash\":100,\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/json.js\":48}],100:[function(t,n){n.exports=t(49)},{\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/lodash.js\":49,lodash:102}],101:[function(t,n){n.exports=t(50)},{\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/graphlib/lib/version.js\":50}],102:[function(t,n){n.exports=t(51)},{\"/Users/knut/source/mermaid/node_modules/dagre-d3/node_modules/lodash/index.js\":51}],103:[function(t,n,e){(function(t){(function(){function r(t,n){return t.set(n[0],n[1]),t}function i(t,n){return t.add(n),t}function a(t,n,e){var r=e.length;switch(r){case 0:return t.call(n);case 1:return t.call(n,e[0]);case 2:return t.call(n,e[0],e[1]);case 3:return t.call(n,e[0],e[1],e[2])}return t.apply(n,e)}function u(t,n,e,r){for(var i=-1,a=t?t.length:0;++i<a;){var u=t[i];n(r,u,e(u),t)}return r}function o(t,n){for(var e=-1,r=t?t.length:0;++e<r&&n(t[e],e,t)!==!1;);return t}function s(t,n){for(var e=t?t.length:0;e--&&n(t[e],e,t)!==!1;);return t}function c(t,n){for(var e=-1,r=t?t.length:0;++e<r;)if(!n(t[e],e,t))return!1;return!0}function l(t,n){for(var e=-1,r=t?t.length:0,i=0,a=[];++e<r;){var u=t[e];n(u,e,t)&&(a[i++]=u)}return a}function h(t,n){var e=t?t.length:0;return!!e&&b(t,n,0)>-1}function f(t,n,e){for(var r=-1,i=t?t.length:0;++r<i;)if(e(n,t[r]))return!0;return!1}function d(t,n){for(var e=-1,r=t?t.length:0,i=Array(r);++e<r;)i[e]=n(t[e],e,t);return i}function p(t,n){for(var e=-1,r=n.length,i=t.length;++e<r;)t[i+e]=n[e];return t}function g(t,n,e,r){var i=-1,a=t?t.length:0;for(r&&a&&(e=t[++i]);++i<a;)e=n(e,t[i],i,t);return e}function y(t,n,e,r){var i=t?t.length:0;for(r&&i&&(e=t[--i]);i--;)e=n(e,t[i],i,t);return e}function m(t,n){for(var e=-1,r=t?t.length:0;++e<r;)if(n(t[e],e,t))return!0;return!1}function v(t,n,e){var r;return e(t,function(t,e,i){return n(t,e,i)?(r=e,!1):void 0}),r}function _(t,n,e,r){for(var i=t.length,a=e+(r?1:-1);r?a--:++a<i;)if(n(t[a],a,t))return a;return-1}function b(t,n,e){if(n!==n)return j(t,e);for(var r=e-1,i=t.length;++r<i;)if(t[r]===n)return r;return-1}function x(t,n,e,r){for(var i=e-1,a=t.length;++i<a;)if(r(t[i],n))return i;return-1}function w(t,n){var e=t?t.length:0;return e?E(t,n)/e:kt}function A(t,n,e,r,i){return i(t,function(t,i,a){e=r?(r=!1,t):n(e,t,i,a)}),e}function k(t,n){var e=t.length;for(t.sort(n);e--;)t[e]=t[e].value;return t}function E(t,n){for(var e,r=-1,i=t.length;++r<i;){var a=n(t[r]);a!==X&&(e=e===X?a:e+a)}return e}function M(t,n){for(var e=-1,r=Array(t);++e<t;)r[e]=n(e);return r}function S(t,n){return d(n,function(n){return[n,t[n]]})}function D(t){return function(n){return t(n)}}function C(t,n){return d(n,function(n){return t[n]})}function T(t,n){return t.has(n)}function F(t,n){for(var e=-1,r=t.length;++e<r&&b(n,t[e],0)>-1;);return e}function O(t,n){for(var e=t.length;e--&&b(n,t[e],0)>-1;);return e}function L(t){return t&&t.Object===Object?t:null}function I(t,n){for(var e=t.length,r=0;e--;)t[e]===n&&r++;return r}function B(t){return Se[t]}function N(t){return De[t]}function P(t){return\"\\\\\"+Te[t]}function R(t,n){return null==t?X:t[n]}function j(t,n,e){for(var r=t.length,i=n+(e?1:-1);e?i--:++i<r;){var a=t[i];if(a!==a)return i}return-1}function Y(t){var n=!1;if(null!=t&&\"function\"!=typeof t.toString)try{n=!!(t+\"\")}catch(e){}return n}function U(t){for(var n,e=[];!(n=t.next()).done;)e.push(n.value);return e}function $(t){var n=-1,e=Array(t.size);return t.forEach(function(t,r){e[++n]=[r,t]}),e}function W(t,n){for(var e=-1,r=t.length,i=0,a=[];++e<r;){var u=t[e];(u===n||u===nt)&&(t[e]=nt,a[i++]=e)}return a}function z(t){var n=-1,e=Array(t.size);return t.forEach(function(t){e[++n]=t}),e}function q(t){var n=-1,e=Array(t.size);return t.forEach(function(t){e[++n]=[t,t]}),e}function G(t){if(!t||!xe.test(t))return t.length;for(var n=_e.lastIndex=0;_e.test(t);)n++;return n}function H(t){return t.match(_e)}function V(t){return Ce[t]}function Z(t){function n(t){if(vo(t)&&!yh(t)&&!(t instanceof In)){if(t instanceof L)return t;if(Cc.call(t,\"__wrapped__\"))return ha(t)}return new L(t)}function e(){}function L(t,n){this.__wrapped__=t,this.__actions__=[],this.__chain__=!!n,this.__index__=0,this.__values__=X}function In(t){this.__wrapped__=t,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Et,this.__views__=[]}function Bn(){var t=new In(this.__wrapped__);return t.__actions__=ei(this.__actions__),t.__dir__=this.__dir__,t.__filtered__=this.__filtered__,t.__iteratees__=ei(this.__iteratees__),t.__takeCount__=this.__takeCount__,t.__views__=ei(this.__views__),t}function Nn(){if(this.__filtered__){var t=new In(this);t.__dir__=-1,t.__filtered__=!0}else t=this.clone(),t.__dir__*=-1;return t}function Pn(){var t=this.__wrapped__.value(),n=this.__dir__,e=yh(t),r=0>n,i=e?t.length:0,a=$i(0,i,this.__views__),u=a.start,o=a.end,s=o-u,c=r?o:u-1,l=this.__iteratees__,h=l.length,f=0,d=Jc(s,this.__takeCount__);if(!e||Q>i||i==s&&d==s)return Pr(t,this.__actions__);var p=[];t:for(;s--&&d>f;){c+=n;for(var g=-1,y=t[c];++g<h;){var m=l[g],v=m.iteratee,_=m.type,b=v(y);if(_==_t)y=b;else if(!b){if(_==vt)continue t;break t}}p[f++]=y}return p}function Rn(t){var n=-1,e=t?t.length:0;for(this.clear();++n<e;){var r=t[n];this.set(r[0],r[1])}}function jn(){this.__data__=ll?ll(null):{}}function Yn(t){return this.has(t)&&delete this.__data__[t]}function Un(t){var n=this.__data__;if(ll){var e=n[t];return e===tt?X:e}return Cc.call(n,t)?n[t]:X}function $n(t){var n=this.__data__;return ll?n[t]!==X:Cc.call(n,t)}function Wn(t,n){var e=this.__data__;return e[t]=ll&&n===X?tt:n,this}function zn(t){var n=-1,e=t?t.length:0;for(this.clear();++n<e;){var r=t[n];this.set(r[0],r[1])}}function qn(){this.__data__=[]}function Gn(t){var n=this.__data__,e=pe(n,t);if(0>e)return!1;var r=n.length-1;return e==r?n.pop():zc.call(n,e,1),!0}function Hn(t){var n=this.__data__,e=pe(n,t);return 0>e?X:n[e][1]}function Vn(t){return pe(this.__data__,t)>-1}function Zn(t,n){var e=this.__data__,r=pe(e,t);return 0>r?e.push([t,n]):e[r][1]=n,this}function Xn(t){var n=-1,e=t?t.length:0;for(this.clear();++n<e;){var r=t[n];this.set(r[0],r[1])}}function Kn(){this.__data__={hash:new Rn,map:new(ul||zn),string:new Rn}}function Qn(t){return Ni(this,t)[\"delete\"](t)}function Jn(t){return Ni(this,t).get(t)}function te(t){return Ni(this,t).has(t)}function ne(t,n){return Ni(this,t).set(t,n),this}function ee(t){var n=-1,e=t?t.length:0;for(this.__data__=new Xn;++n<e;)this.add(t[n])}function re(t){return this.__data__.set(t,tt),this}function ie(t){return this.__data__.has(t)}function ae(t){this.__data__=new zn(t)}function ue(){this.__data__=new zn}function oe(t){return this.__data__[\"delete\"](t)}function se(t){return this.__data__.get(t)}function ce(t){return this.__data__.has(t)}function le(t,n){var e=this.__data__;return e instanceof zn&&e.__data__.length==Q&&(e=this.__data__=new Xn(e.__data__)),e.set(t,n),this}function he(t,n,e,r){return t===X||to(t,kc[e])&&!Cc.call(r,e)?n:t}function fe(t,n,e){(e!==X&&!to(t[n],e)||\"number\"==typeof n&&e===X&&!(n in t))&&(t[n]=e)}function de(t,n,e){var r=t[n];Cc.call(t,n)&&to(r,e)&&(e!==X||n in t)||(t[n]=e)}function pe(t,n){for(var e=t.length;e--;)if(to(t[e][0],n))return e;return-1}function ge(t,n,e,r){return wl(t,function(t,i,a){n(r,t,e(t),a)}),r}function ye(t,n){return t&&ri(n,rs(n),t)}function _e(t,n){for(var e=-1,r=null==t,i=n.length,a=Array(i);++e<i;)a[e]=r?X:ts(t,n[e]);return a}function Se(t,n,e){return t===t&&(e!==X&&(t=e>=t?t:e),n!==X&&(t=t>=n?t:n)),t}function De(t,n,e,r,i,a,u){var s;if(r&&(s=a?r(t,i,a,u):r(t)),s!==X)return s;if(!mo(t))return t;var c=yh(t);if(c){if(s=zi(t),!n)return ei(t,s)}else{var l=Ui(t),h=l==Lt||l==It;if(mh(t))return zr(t,n);if(l==Pt||l==Dt||h&&!a){if(Y(t))return a?t:{};if(s=qi(h?{}:t),!n)return ii(t,ye(s,t))}else{if(!Me[l])return a?t:{};s=Gi(t,l,De,n)}}u||(u=new ae);var f=u.get(t);if(f)return f;if(u.set(t,s),!c)var d=e?Fi(t):rs(t);return o(d||t,function(i,a){d&&(a=i,i=t[a]),de(s,a,De(i,n,e,r,a,t,u))}),s}function Ce(t){var n=rs(t),e=n.length;return function(r){if(null==r)return!e;for(var i=e;i--;){var a=n[i],u=t[a],o=r[a];if(o===X&&!(a in Object(r))||!u(o))return!1}return!0}}function Te(t){return mo(t)?$c(t):{}}function Le(t,n,e){if(\"function\"!=typeof t)throw new wc(J);return qc(function(){t.apply(X,e)},n)}function Ie(t,n,e,r){var i=-1,a=h,u=!0,o=t.length,s=[],c=n.length;if(!o)return s;e&&(n=d(n,D(e))),r?(a=f,u=!1):n.length>=Q&&(a=T,u=!1,n=new ee(n));t:for(;++i<o;){var l=t[i],p=e?e(l):l;if(l=r||0!==l?l:0,u&&p===p){for(var g=c;g--;)if(n[g]===p)continue t;s.push(l)}else a(n,p,r)||s.push(l)}return s}function Ne(t,n){var e=!0;return wl(t,function(t,r,i){return e=!!n(t,r,i)}),e}function Pe(t,n,e){for(var r=-1,i=t.length;++r<i;){var a=t[r],u=n(a);if(null!=u&&(o===X?u===u&&!Oo(u):e(u,o)))var o=u,s=a}return s}function Re(t,n,e,r){var i=t.length;for(e=jo(e),0>e&&(e=-e>i?0:i+e),r=r===X||r>i?i:jo(r),0>r&&(r+=i),r=e>r?0:Yo(r);r>e;)t[e++]=n;return t}function Ue(t,n){var e=[];return wl(t,function(t,r,i){n(t,r,i)&&e.push(t)}),e}function $e(t,n,e,r,i){var a=-1,u=t.length;for(e||(e=Vi),i||(i=[]);++a<u;){var o=t[a];n>0&&e(o)?n>1?$e(o,n-1,e,r,i):p(i,o):r||(i[i.length]=o)}return i}function We(t,n){return t&&kl(t,n,rs)}function ze(t,n){return t&&El(t,n,rs)}function qe(t,n){return l(n,function(n){return po(t[n])})}function Ge(t,n){n=Qi(n,t)?[n]:$r(n);for(var e=0,r=n.length;null!=t&&r>e;)t=t[ca(n[e++])];return e&&e==r?t:X}function He(t,n,e){var r=n(t);return yh(t)?r:p(r,e(t))}function Ve(t,n){return t>n}function Ze(t,n){return null!=t&&(Cc.call(t,n)||\"object\"==typeof t&&n in t&&null===ji(t))}function Xe(t,n){return null!=t&&n in Object(t)}function Ke(t,n,e){return t>=Jc(n,e)&&t<Qc(n,e)}function Qe(t,n,e){for(var r=e?f:h,i=t[0].length,a=t.length,u=a,o=Array(a),s=1/0,c=[];u--;){var l=t[u];u&&n&&(l=d(l,D(n))),s=Jc(l.length,s),o[u]=!e&&(n||i>=120&&l.length>=120)?new ee(u&&l):X}l=t[0];var p=-1,g=o[0];t:for(;++p<i&&c.length<s;){var y=l[p],m=n?n(y):y;if(y=e||0!==y?y:0,!(g?T(g,m):r(c,m,e))){for(u=a;--u;){var v=o[u];if(!(v?T(v,m):r(t[u],m,e)))continue t}g&&g.push(m),c.push(y)}}return c}function Je(t,n,e,r){return We(t,function(t,i,a){n(r,e(t),i,a)}),r}function tr(t,n,e){Qi(n,t)||(n=$r(n),t=oa(t,n),n=Ta(n));var r=null==t?t:t[ca(n)];return null==r?X:a(r,t,e)}function nr(t,n,e,r,i){return t===n?!0:null==t||null==n||!mo(t)&&!vo(n)?t!==t&&n!==n:er(t,n,nr,e,r,i)}function er(t,n,e,r,i,a){var u=yh(t),o=yh(n),s=Ct,c=Ct;u||(s=Ui(t),s=s==Dt?Pt:s),o||(c=Ui(n),c=c==Dt?Pt:c);var l=s==Pt&&!Y(t),h=c==Pt&&!Y(n),f=s==c;if(f&&!l)return a||(a=new ae),u||Lo(t)?Di(t,n,e,r,i,a):Ci(t,n,s,e,r,i,a);if(!(i&dt)){var d=l&&Cc.call(t,\"__wrapped__\"),p=h&&Cc.call(n,\"__wrapped__\");if(d||p){var g=d?t.value():t,y=p?n.value():n;return a||(a=new ae),e(g,y,r,i,a)}}return f?(a||(a=new ae),Ti(t,n,e,r,i,a)):!1}function rr(t,n,e,r){var i=e.length,a=i,u=!r;if(null==t)return!a;for(t=Object(t);i--;){var o=e[i];if(u&&o[2]?o[1]!==t[o[0]]:!(o[0]in t))return!1}for(;++i<a;){o=e[i];var s=o[0],c=t[s],l=o[1];if(u&&o[2]){if(c===X&&!(s in t))return!1}else{var h=new ae;if(r)var f=r(c,l,s,t,n,h);if(!(f===X?nr(l,c,r,ft|dt,h):f))return!1}}return!0}function ir(t){if(!mo(t)||na(t))return!1;var n=po(t)||Y(t)?Ic:Dn;return n.test(la(t))}function ar(t){return\"function\"==typeof t?t:null==t?Gs:\"object\"==typeof t?yh(t)?hr(t[0],t[1]):lr(t):tc(t)}function ur(t){return Kc(Object(t))}function or(t){t=null==t?t:Object(t);var n=[];for(var e in t)n.push(e);return n}function sr(t,n){return n>t}function cr(t,n){var e=-1,r=ro(t)?Array(t.length):[];return wl(t,function(t,i,a){r[++e]=n(t,i,a)}),r}function lr(t){var n=Pi(t);return 1==n.length&&n[0][2]?ia(n[0][0],n[0][1]):function(e){return e===t||rr(e,t,n)}}function hr(t,n){return Qi(t)&&ra(n)?ia(ca(t),n):function(e){var r=ts(e,t);return r===X&&r===n?es(e,t):nr(n,r,X,ft|dt)}}function fr(t,n,e,r,i){if(t!==n){if(!yh(n)&&!Lo(n))var a=is(n);o(a||n,function(u,o){if(a&&(o=u,u=n[o]),mo(u))i||(i=new ae),dr(t,n,o,e,fr,r,i);else{var s=r?r(t[o],u,o+\"\",t,n,i):X;s===X&&(s=u),fe(t,o,s)}})}}function dr(t,n,e,r,i,a,u){var o=t[e],s=n[e],c=u.get(s);if(c)return void fe(t,e,c);var l=a?a(o,s,e+\"\",t,n,u):X,h=l===X;h&&(l=s,yh(s)||Lo(s)?yh(o)?l=o:io(o)?l=ei(o):(h=!1,l=De(s,!0)):So(s)||no(s)?no(o)?l=$o(o):!mo(o)||r&&po(o)?(h=!1,l=De(s,!0)):l=o:h=!1),u.set(s,l),h&&i(l,s,r,a,u),u[\"delete\"](s),fe(t,e,l)}function pr(t,n){var e=t.length;if(e)return n+=0>n?e:0,Xi(n,e)?t[n]:X}function gr(t,n,e){var r=-1;n=d(n.length?n:[Gs],D(Bi()));var i=cr(t,function(t){var e=d(n,function(n){return n(t)});return{criteria:e,index:++r,value:t}});return k(i,function(t,n){return Jr(t,n,e)})}function yr(t,n){return t=Object(t),g(n,function(n,e){return e in t&&(n[e]=t[e]),n},{})}function mr(t,n){for(var e=-1,r=Oi(t),i=r.length,a={};++e<i;){var u=r[e],o=t[u];n(o,u)&&(a[u]=o)}return a}function vr(t){return function(n){return null==n?X:n[t]}}function _r(t){return function(n){return Ge(n,t)}}function br(t,n,e,r){var i=r?x:b,a=-1,u=n.length,o=t;for(t===n&&(n=ei(n)),e&&(o=d(t,D(e)));++a<u;)for(var s=0,c=n[a],l=e?e(c):c;(s=i(o,l,s,r))>-1;)o!==t&&zc.call(o,s,1),zc.call(t,s,1);return t}function xr(t,n){for(var e=t?n.length:0,r=e-1;e--;){var i=n[e];if(e==r||i!==a){var a=i;if(Xi(i))zc.call(t,i,1);else if(Qi(i,t))delete t[ca(i)];else{var u=$r(i),o=oa(t,u);null!=o&&delete o[ca(Ta(u))]}}}return t}function wr(t,n){return t+Hc(nl()*(n-t+1))}function Ar(t,n,e,r){for(var i=-1,a=Qc(Gc((n-t)/(e||1)),0),u=Array(a);a--;)u[r?a:++i]=t,t+=e;return u}function kr(t,n){var e=\"\";if(!t||1>n||n>wt)return e;do n%2&&(e+=t),n=Hc(n/2),n&&(t+=t);while(n);return e}function Er(t,n,e,r){n=Qi(n,t)?[n]:$r(n);for(var i=-1,a=n.length,u=a-1,o=t;null!=o&&++i<a;){var s=ca(n[i]);if(mo(o)){var c=e;if(i!=u){var l=o[s];c=r?r(l,s,o):X,c===X&&(c=null==l?Xi(n[i+1])?[]:{}:l)}de(o,s,c)}o=o[s]}return t}function Mr(t,n,e){var r=-1,i=t.length;0>n&&(n=-n>i?0:i+n),e=e>i?i:e,0>e&&(e+=i),i=n>e?0:e-n>>>0,n>>>=0;for(var a=Array(i);++r<i;)a[r]=t[r+n];return a}function Sr(t,n){var e;return wl(t,function(t,r,i){return e=n(t,r,i),!e}),!!e}function Dr(t,n,e){var r=0,i=t?t.length:r;if(\"number\"==typeof n&&n===n&&St>=i){for(;i>r;){var a=r+i>>>1,u=t[a];null!==u&&!Oo(u)&&(e?n>=u:n>u)?r=a+1:i=a}return i}return Cr(t,n,Gs,e)}function Cr(t,n,e,r){n=e(n);for(var i=0,a=t?t.length:0,u=n!==n,o=null===n,s=Oo(n),c=n===X;a>i;){var l=Hc((i+a)/2),h=e(t[l]),f=h!==X,d=null===h,p=h===h,g=Oo(h);if(u)var y=r||p;else y=c?p&&(r||f):o?p&&f&&(r||!d):s?p&&f&&!d&&(r||!g):d||g?!1:r?n>=h:n>h;y?i=l+1:a=l}return Jc(a,Mt)}function Tr(t,n){for(var e=-1,r=t.length,i=0,a=[];++e<r;){var u=t[e],o=n?n(u):u;if(!e||!to(o,s)){var s=o;a[i++]=0===u?0:u}}return a}function Fr(t){return\"number\"==typeof t?t:Oo(t)?kt:+t}function Or(t){if(\"string\"==typeof t)return t;if(Oo(t))return xl?xl.call(t):\"\";var n=t+\"\";return\"0\"==n&&1/t==-xt?\"-0\":n}function Lr(t,n,e){var r=-1,i=h,a=t.length,u=!0,o=[],s=o;if(e)u=!1,i=f;else if(a>=Q){var c=n?null:Sl(t);if(c)return z(c);u=!1,i=T,s=new ee}else s=n?[]:o;t:for(;++r<a;){var l=t[r],d=n?n(l):l;if(l=e||0!==l?l:0,u&&d===d){for(var p=s.length;p--;)if(s[p]===d)continue t;n&&s.push(d),o.push(l)}else i(s,d,e)||(s!==o&&s.push(d),o.push(l))}return o}function Ir(t,n){n=Qi(n,t)?[n]:$r(n),t=oa(t,n);var e=ca(Ta(n));return!(null!=t&&Ze(t,e))||delete t[e]}function Br(t,n,e,r){return Er(t,n,e(Ge(t,n)),r)}function Nr(t,n,e,r){for(var i=t.length,a=r?i:-1;(r?a--:++a<i)&&n(t[a],a,t););return e?Mr(t,r?0:a,r?a+1:i):Mr(t,r?a+1:0,r?i:a)}function Pr(t,n){var e=t;return e instanceof In&&(e=e.value()),g(n,function(t,n){return n.func.apply(n.thisArg,p([t],n.args))},e)}function Rr(t,n,e){for(var r=-1,i=t.length;++r<i;)var a=a?p(Ie(a,t[r],n,e),Ie(t[r],a,n,e)):t[r];return a&&a.length?Lr(a,n,e):[]}function jr(t,n,e){for(var r=-1,i=t.length,a=n.length,u={};++r<i;){var o=a>r?n[r]:X;e(u,t[r],o)}return u}function Yr(t){return io(t)?t:[]}function Ur(t){return\"function\"==typeof t?t:Gs}function $r(t){return yh(t)?t:Ll(t)}function Wr(t,n,e){var r=t.length;return e=e===X?r:e,!n&&e>=r?t:Mr(t,n,e)}function zr(t,n){if(n)return t.slice();var e=new t.constructor(t.length);return t.copy(e),e}function qr(t){var n=new t.constructor(t.byteLength);return new Rc(n).set(new Rc(t)),n}function Gr(t,n){var e=n?qr(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.byteLength)}function Hr(t,n,e){var i=n?e($(t),!0):$(t);return g(i,r,new t.constructor)}function Vr(t){var n=new t.constructor(t.source,kn.exec(t));return n.lastIndex=t.lastIndex,n}function Zr(t,n,e){var r=n?e(z(t),!0):z(t);return g(r,i,new t.constructor)}function Xr(t){return bl?Object(bl.call(t)):{}}function Kr(t,n){var e=n?qr(t.buffer):t.buffer;return new t.constructor(e,t.byteOffset,t.length)}function Qr(t,n){if(t!==n){var e=t!==X,r=null===t,i=t===t,a=Oo(t),u=n!==X,o=null===n,s=n===n,c=Oo(n);if(!o&&!c&&!a&&t>n||a&&u&&s&&!o&&!c||r&&u&&s||!e&&s||!i)return 1;if(!r&&!a&&!c&&n>t||c&&e&&i&&!r&&!a||o&&e&&i||!u&&i||!s)return-1}return 0}function Jr(t,n,e){for(var r=-1,i=t.criteria,a=n.criteria,u=i.length,o=e.length;++r<u;){var s=Qr(i[r],a[r]);if(s){if(r>=o)return s;var c=e[r];return s*(\"desc\"==c?-1:1)}}return t.index-n.index}function ti(t,n,e,r){for(var i=-1,a=t.length,u=e.length,o=-1,s=n.length,c=Qc(a-u,0),l=Array(s+c),h=!r;++o<s;)l[o]=n[o];for(;++i<u;)(h||a>i)&&(l[e[i]]=t[i]);for(;c--;)l[o++]=t[i++];return l}function ni(t,n,e,r){for(var i=-1,a=t.length,u=-1,o=e.length,s=-1,c=n.length,l=Qc(a-o,0),h=Array(l+c),f=!r;++i<l;)h[i]=t[i];for(var d=i;++s<c;)h[d+s]=n[s];for(;++u<o;)(f||a>i)&&(h[d+e[u]]=t[i++]);return h}function ei(t,n){var e=-1,r=t.length;for(n||(n=Array(r));++e<r;)n[e]=t[e];return n}function ri(t,n,e,r){e||(e={});for(var i=-1,a=n.length;++i<a;){var u=n[i],o=r?r(e[u],t[u],u,e,t):t[u];de(e,u,o)}return e}function ii(t,n){return ri(t,Yi(t),n)}function ai(t,n){return function(e,r){var i=yh(e)?u:ge,a=n?n():{};return i(e,t,Bi(r),a)}}function ui(t){return zu(function(n,e){var r=-1,i=e.length,a=i>1?e[i-1]:X,u=i>2?e[2]:X;for(a=t.length>3&&\"function\"==typeof a?(i--,a):X,u&&Ki(e[0],e[1],u)&&(a=3>i?X:a,i=1),n=Object(n);++r<i;){var o=e[r];o&&t(n,o,r,a)}return n})}function oi(t,n){return function(e,r){if(null==e)return e;if(!ro(e))return t(e,r);for(var i=e.length,a=n?i:-1,u=Object(e);(n?a--:++a<i)&&r(u[a],a,u)!==!1;);return e}}function si(t){return function(n,e,r){for(var i=-1,a=Object(n),u=r(n),o=u.length;o--;){var s=u[t?o:++i];if(e(a[s],s,a)===!1)break}return n}}function ci(t,n,e){function r(){var n=this&&this!==je&&this instanceof r?a:t;return n.apply(i?e:this,arguments)}var i=n&et,a=fi(t);return r}function li(t){return function(n){n=zo(n);var e=xe.test(n)?H(n):X,r=e?e[0]:n.charAt(0),i=e?Wr(e,1).join(\"\"):n.slice(1);return r[t]()+i}}function hi(t){return function(n){return g($s(ws(n).replace(me,\"\")),t,\"\")}}function fi(t){return function(){var n=arguments;switch(n.length){case 0:return new t;case 1:return new t(n[0]);case 2:return new t(n[0],n[1]);case 3:return new t(n[0],n[1],n[2]);case 4:return new t(n[0],n[1],n[2],n[3]);case 5:return new t(n[0],n[1],n[2],n[3],n[4]);case 6:return new t(n[0],n[1],n[2],n[3],n[4],n[5]);case 7:return new t(n[0],n[1],n[2],n[3],n[4],n[5],n[6])}var e=Te(t.prototype),r=t.apply(e,n);return mo(r)?r:e}}function di(t,n,e){function r(){for(var u=arguments.length,o=Array(u),s=u,c=Ii(r);s--;)o[s]=arguments[s];var l=3>u&&o[0]!==c&&o[u-1]!==c?[]:W(o,c);if(u-=l.length,e>u)return ki(t,n,yi,r.placeholder,X,o,l,X,X,e-u);var h=this&&this!==je&&this instanceof r?i:t;return a(h,this,o)}var i=fi(t);return r}function pi(t){return function(n,e,r){var i=Object(n);if(e=Bi(e,3),!ro(n))var a=rs(n);var u=t(a||n,function(t,n){return a&&(n=t,t=i[n]),e(t,n,i)},r);return u>-1?n[a?a[u]:u]:X}}function gi(t){return zu(function(n){n=$e(n,1);var e=n.length,r=e,i=L.prototype.thru;for(t&&n.reverse();r--;){var a=n[r];if(\"function\"!=typeof a)throw new wc(J);if(i&&!u&&\"wrapper\"==Li(a))var u=new L([],!0)}for(r=u?r:e;++r<e;){a=n[r];var o=Li(a),s=\"wrapper\"==o?Dl(a):X;u=s&&ta(s[0])&&s[1]==(ct|at|ot|lt)&&!s[4].length&&1==s[9]?u[Li(s[0])].apply(u,s[3]):1==a.length&&ta(a)?u[o]():u.thru(a)}return function(){var t=arguments,r=t[0];if(u&&1==t.length&&yh(r)&&r.length>=Q)return u.plant(r).value();for(var i=0,a=e?n[i].apply(this,t):r;++i<e;)a=n[i].call(this,a);return a}})}function yi(t,n,e,r,i,a,u,o,s,c){function l(){for(var m=arguments.length,v=Array(m),_=m;_--;)v[_]=arguments[_];if(p)var b=Ii(l),x=I(v,b);if(r&&(v=ti(v,r,i,p)),a&&(v=ni(v,a,u,p)),m-=x,p&&c>m){var w=W(v,b);return ki(t,n,yi,l.placeholder,e,v,w,o,s,c-m)}var A=f?e:this,k=d?A[t]:t;return m=v.length,o?v=sa(v,o):g&&m>1&&v.reverse(),h&&m>s&&(v.length=s),this&&this!==je&&this instanceof l&&(k=y||fi(k)),k.apply(A,v)}var h=n&ct,f=n&et,d=n&rt,p=n&(at|ut),g=n&ht,y=d?X:fi(t);return l}function mi(t,n){return function(e,r){return Je(e,t,n(r),{})}}function vi(t){return function(n,e){var r;if(n===X&&e===X)return 0;if(n!==X&&(r=n),e!==X){if(r===X)return e;\"string\"==typeof n||\"string\"==typeof e?(n=Or(n),e=Or(e)):(n=Fr(n),e=Fr(e)),r=t(n,e)}return r}}function _i(t){return zu(function(n){return n=1==n.length&&yh(n[0])?d(n[0],D(Bi())):d($e(n,1,Zi),D(Bi())),zu(function(e){var r=this;return t(n,function(t){return a(t,r,e)})})})}function bi(t,n){n=n===X?\" \":Or(n);var e=n.length;if(2>e)return e?kr(n,t):n;var r=kr(n,Gc(t/G(n)));return xe.test(n)?Wr(H(r),0,t).join(\"\"):r.slice(0,t)}function xi(t,n,e,r){function i(){for(var n=-1,s=arguments.length,c=-1,l=r.length,h=Array(l+s),f=this&&this!==je&&this instanceof i?o:t;++c<l;)h[c]=r[c];for(;s--;)h[c++]=arguments[++n];return a(f,u?e:this,h)}var u=n&et,o=fi(t);return i}function wi(t){return function(n,e,r){return r&&\"number\"!=typeof r&&Ki(n,e,r)&&(e=r=X),n=Uo(n),n=n===n?n:0,e===X?(e=n,n=0):e=Uo(e)||0,r=r===X?e>n?1:-1:Uo(r)||0,Ar(n,e,r,t)}}function Ai(t){return function(n,e){return(\"string\"!=typeof n||\"string\"!=typeof e)&&(n=Uo(n),e=Uo(e)),t(n,e)}}function ki(t,n,e,r,i,a,u,o,s,c){var l=n&at,h=l?u:X,f=l?X:u,d=l?a:X,p=l?X:a;n|=l?ot:st,n&=~(l?st:ot),n&it||(n&=~(et|rt));var g=[t,n,i,d,h,p,f,o,s,c],y=e.apply(X,g);return ta(t)&&Ol(y,g),y.placeholder=r,y}function Ei(t){var n=bc[t];return function(t,e){if(t=Uo(t),e=Jc(jo(e),292)){var r=(zo(t)+\"e\").split(\"e\"),i=n(r[0]+\"e\"+(+r[1]+e));return r=(zo(i)+\"e\").split(\"e\"),\n+(r[0]+\"e\"+(+r[1]-e))}return n(t)}}function Mi(t){return function(n){var e=Ui(n);return e==Bt?$(n):e==Yt?q(n):S(n,t(n))}}function Si(t,n,e,r,i,a,u,o){var s=n&rt;if(!s&&\"function\"!=typeof t)throw new wc(J);var c=r?r.length:0;if(c||(n&=~(ot|st),r=i=X),u=u===X?u:Qc(jo(u),0),o=o===X?o:jo(o),c-=i?i.length:0,n&st){var l=r,h=i;r=i=X}var f=s?X:Dl(t),d=[t,n,e,r,i,l,h,a,u,o];if(f&&aa(d,f),t=d[0],n=d[1],e=d[2],r=d[3],i=d[4],o=d[9]=null==d[9]?s?0:t.length:Qc(d[9]-c,0),!o&&n&(at|ut)&&(n&=~(at|ut)),n&&n!=et)p=n==at||n==ut?di(t,n,o):n!=ot&&n!=(et|ot)||i.length?yi.apply(X,d):xi(t,n,e,r);else var p=ci(t,n,e);var g=f?Ml:Ol;return g(p,d)}function Di(t,n,e,r,i,a){var u=i&dt,o=t.length,s=n.length;if(o!=s&&!(u&&s>o))return!1;var c=a.get(t);if(c)return c==n;var l=-1,h=!0,f=i&ft?new ee:X;for(a.set(t,n);++l<o;){var d=t[l],p=n[l];if(r)var g=u?r(p,d,l,n,t,a):r(d,p,l,t,n,a);if(g!==X){if(g)continue;h=!1;break}if(f){if(!m(n,function(t,n){return f.has(n)||d!==t&&!e(d,t,r,i,a)?void 0:f.add(n)})){h=!1;break}}else if(d!==p&&!e(d,p,r,i,a)){h=!1;break}}return a[\"delete\"](t),h}function Ci(t,n,e,r,i,a,u){switch(e){case Gt:if(t.byteLength!=n.byteLength||t.byteOffset!=n.byteOffset)return!1;t=t.buffer,n=n.buffer;case qt:return t.byteLength==n.byteLength&&r(new Rc(t),new Rc(n))?!0:!1;case Tt:case Ft:return+t==+n;case Ot:return t.name==n.name&&t.message==n.message;case Nt:return t!=+t?n!=+n:t==+n;case jt:case Ut:return t==n+\"\";case Bt:var o=$;case Yt:var s=a&dt;if(o||(o=z),t.size!=n.size&&!s)return!1;var c=u.get(t);return c?c==n:(a|=ft,u.set(t,n),Di(o(t),o(n),r,i,a,u));case $t:if(bl)return bl.call(t)==bl.call(n)}return!1}function Ti(t,n,e,r,i,a){var u=i&dt,o=rs(t),s=o.length,c=rs(n),l=c.length;if(s!=l&&!u)return!1;for(var h=s;h--;){var f=o[h];if(!(u?f in n:Ze(n,f)))return!1}var d=a.get(t);if(d)return d==n;var p=!0;a.set(t,n);for(var g=u;++h<s;){f=o[h];var y=t[f],m=n[f];if(r)var v=u?r(m,y,f,n,t,a):r(y,m,f,t,n,a);if(!(v===X?y===m||e(y,m,r,i,a):v)){p=!1;break}g||(g=\"constructor\"==f)}if(p&&!g){var _=t.constructor,b=n.constructor;_!=b&&\"constructor\"in t&&\"constructor\"in n&&!(\"function\"==typeof _&&_ instanceof _&&\"function\"==typeof b&&b instanceof b)&&(p=!1)}return a[\"delete\"](t),p}function Fi(t){return He(t,rs,Yi)}function Oi(t){return He(t,is,Tl)}function Li(t){for(var n=t.name+\"\",e=dl[n],r=Cc.call(dl,n)?e.length:0;r--;){var i=e[r],a=i.func;if(null==a||a==t)return i.name}return n}function Ii(t){var e=Cc.call(n,\"placeholder\")?n:t;return e.placeholder}function Bi(){var t=n.iteratee||Hs;return t=t===Hs?ar:t,arguments.length?t(arguments[0],arguments[1]):t}function Ni(t,n){var e=t.__data__;return Ji(n)?e[\"string\"==typeof n?\"string\":\"hash\"]:e.map}function Pi(t){for(var n=rs(t),e=n.length;e--;){var r=n[e],i=t[r];n[e]=[r,i,ra(i)]}return n}function Ri(t,n){var e=R(t,n);return ir(e)?e:X}function ji(t){return Vc(Object(t))}function Yi(t){return Yc(Object(t))}function Ui(t){return Oc.call(t)}function $i(t,n,e){for(var r=-1,i=e.length;++r<i;){var a=e[r],u=a.size;switch(a.type){case\"drop\":t+=u;break;case\"dropRight\":n-=u;break;case\"take\":n=Jc(n,t+u);break;case\"takeRight\":t=Qc(t,n-u)}}return{start:t,end:n}}function Wi(t,n,e){n=Qi(n,t)?[n]:$r(n);for(var r,i=-1,a=n.length;++i<a;){var u=ca(n[i]);if(!(r=null!=t&&e(t,u)))break;t=t[u]}if(r)return r;var a=t?t.length:0;return!!a&&yo(a)&&Xi(u,a)&&(yh(t)||Fo(t)||no(t))}function zi(t){var n=t.length,e=t.constructor(n);return n&&\"string\"==typeof t[0]&&Cc.call(t,\"index\")&&(e.index=t.index,e.input=t.input),e}function qi(t){return\"function\"!=typeof t.constructor||ea(t)?{}:Te(ji(t))}function Gi(t,n,e,r){var i=t.constructor;switch(n){case qt:return qr(t);case Tt:case Ft:return new i(+t);case Gt:return Gr(t,r);case Ht:case Vt:case Zt:case Xt:case Kt:case Qt:case Jt:case tn:case nn:return Kr(t,r);case Bt:return Hr(t,r,e);case Nt:case Ut:return new i(t);case jt:return Vr(t);case Yt:return Zr(t,r,e);case $t:return Xr(t)}}function Hi(t){var n=t?t.length:X;return yo(n)&&(yh(t)||Fo(t)||no(t))?M(n,String):null}function Vi(t){return yh(t)||no(t)}function Zi(t){return yh(t)&&!(2==t.length&&!po(t[0]))}function Xi(t,n){return n=null==n?wt:n,!!n&&(\"number\"==typeof t||Tn.test(t))&&t>-1&&t%1==0&&n>t}function Ki(t,n,e){if(!mo(e))return!1;var r=typeof n;return(\"number\"==r?ro(e)&&Xi(n,e.length):\"string\"==r&&n in e)?to(e[n],t):!1}function Qi(t,n){if(yh(t))return!1;var e=typeof t;return\"number\"==e||\"symbol\"==e||\"boolean\"==e||null==t||Oo(t)?!0:pn.test(t)||!dn.test(t)||null!=n&&t in Object(n)}function Ji(t){var n=typeof t;return\"string\"==n||\"number\"==n||\"symbol\"==n||\"boolean\"==n?\"__proto__\"!==t:null===t}function ta(t){var e=Li(t),r=n[e];if(\"function\"!=typeof r||!(e in In.prototype))return!1;if(t===r)return!0;var i=Dl(r);return!!i&&t===i[0]}function na(t){return!!Sc&&Sc in t}function ea(t){var n=t&&t.constructor,e=\"function\"==typeof n&&n.prototype||kc;return t===e}function ra(t){return t===t&&!mo(t)}function ia(t,n){return function(e){return null==e?!1:e[t]===n&&(n!==X||t in Object(e))}}function aa(t,n){var e=t[1],r=n[1],i=e|r,a=(et|rt|ct)>i,u=r==ct&&e==at||r==ct&&e==lt&&t[7].length<=n[8]||r==(ct|lt)&&n[7].length<=n[8]&&e==at;if(!a&&!u)return t;r&et&&(t[2]=n[2],i|=e&et?0:it);var o=n[3];if(o){var s=t[3];t[3]=s?ti(s,o,n[4]):o,t[4]=s?W(t[3],nt):n[4]}return o=n[5],o&&(s=t[5],t[5]=s?ni(s,o,n[6]):o,t[6]=s?W(t[5],nt):n[6]),o=n[7],o&&(t[7]=o),r&ct&&(t[8]=null==t[8]?n[8]:Jc(t[8],n[8])),null==t[9]&&(t[9]=n[9]),t[0]=n[0],t[1]=i,t}function ua(t,n,e,r,i,a){return mo(t)&&mo(n)&&fr(t,n,X,ua,a.set(n,t)),t}function oa(t,n){return 1==n.length?t:Ge(t,Mr(n,0,-1))}function sa(t,n){for(var e=t.length,r=Jc(n.length,e),i=ei(t);r--;){var a=n[r];t[r]=Xi(a,e)?i[a]:X}return t}function ca(t){if(\"string\"==typeof t||Oo(t))return t;var n=t+\"\";return\"0\"==n&&1/t==-xt?\"-0\":n}function la(t){if(null!=t){try{return Dc.call(t)}catch(n){}try{return t+\"\"}catch(n){}}return\"\"}function ha(t){if(t instanceof In)return t.clone();var n=new L(t.__wrapped__,t.__chain__);return n.__actions__=ei(t.__actions__),n.__index__=t.__index__,n.__values__=t.__values__,n}function fa(t,n,e){n=(e?Ki(t,n,e):n===X)?1:Qc(jo(n),0);var r=t?t.length:0;if(!r||1>n)return[];for(var i=0,a=0,u=Array(Gc(r/n));r>i;)u[a++]=Mr(t,i,i+=n);return u}function da(t){for(var n=-1,e=t?t.length:0,r=0,i=[];++n<e;){var a=t[n];a&&(i[r++]=a)}return i}function pa(){for(var t=arguments.length,n=Array(t?t-1:0),e=arguments[0],r=t;r--;)n[r-1]=arguments[r];return t?p(yh(e)?ei(e):[e],$e(n,1)):[]}function ga(t,n,e){var r=t?t.length:0;return r?(n=e||n===X?1:jo(n),Mr(t,0>n?0:n,r)):[]}function ya(t,n,e){var r=t?t.length:0;return r?(n=e||n===X?1:jo(n),n=r-n,Mr(t,0,0>n?0:n)):[]}function ma(t,n){return t&&t.length?Nr(t,Bi(n,3),!0,!0):[]}function va(t,n){return t&&t.length?Nr(t,Bi(n,3),!0):[]}function _a(t,n,e,r){var i=t?t.length:0;return i?(e&&\"number\"!=typeof e&&Ki(t,n,e)&&(e=0,r=i),Re(t,n,e,r)):[]}function ba(t,n,e){var r=t?t.length:0;if(!r)return-1;var i=null==e?0:jo(e);return 0>i&&(i=Qc(r+i,0)),_(t,Bi(n,3),i)}function xa(t,n,e){var r=t?t.length:0;if(!r)return-1;var i=r-1;return e!==X&&(i=jo(e),i=0>e?Qc(r+i,0):Jc(i,r-1)),_(t,Bi(n,3),i,!0)}function wa(t){var n=t?t.length:0;return n?$e(t,1):[]}function Aa(t){var n=t?t.length:0;return n?$e(t,xt):[]}function ka(t,n){var e=t?t.length:0;return e?(n=n===X?1:jo(n),$e(t,n)):[]}function Ea(t){for(var n=-1,e=t?t.length:0,r={};++n<e;){var i=t[n];r[i[0]]=i[1]}return r}function Ma(t){return t&&t.length?t[0]:X}function Sa(t,n,e){var r=t?t.length:0;if(!r)return-1;var i=null==e?0:jo(e);return 0>i&&(i=Qc(r+i,0)),b(t,n,i)}function Da(t){return ya(t,1)}function Ca(t,n){return t?Xc.call(t,n):\"\"}function Ta(t){var n=t?t.length:0;return n?t[n-1]:X}function Fa(t,n,e){var r=t?t.length:0;if(!r)return-1;var i=r;if(e!==X&&(i=jo(e),i=(0>i?Qc(r+i,0):Jc(i,r-1))+1),n!==n)return j(t,i-1,!0);for(;i--;)if(t[i]===n)return i;return-1}function Oa(t,n){return t&&t.length?pr(t,jo(n)):X}function La(t,n){return t&&t.length&&n&&n.length?br(t,n):t}function Ia(t,n,e){return t&&t.length&&n&&n.length?br(t,n,Bi(e)):t}function Ba(t,n,e){return t&&t.length&&n&&n.length?br(t,n,X,e):t}function Na(t,n){var e=[];if(!t||!t.length)return e;var r=-1,i=[],a=t.length;for(n=Bi(n,3);++r<a;){var u=t[r];n(u,r,t)&&(e.push(u),i.push(r))}return xr(t,i),e}function Pa(t){return t?rl.call(t):t}function Ra(t,n,e){var r=t?t.length:0;return r?(e&&\"number\"!=typeof e&&Ki(t,n,e)?(n=0,e=r):(n=null==n?0:jo(n),e=e===X?r:jo(e)),Mr(t,n,e)):[]}function ja(t,n){return Dr(t,n)}function Ya(t,n,e){return Cr(t,n,Bi(e))}function Ua(t,n){var e=t?t.length:0;if(e){var r=Dr(t,n);if(e>r&&to(t[r],n))return r}return-1}function $a(t,n){return Dr(t,n,!0)}function Wa(t,n,e){return Cr(t,n,Bi(e),!0)}function za(t,n){var e=t?t.length:0;if(e){var r=Dr(t,n,!0)-1;if(to(t[r],n))return r}return-1}function qa(t){return t&&t.length?Tr(t):[]}function Ga(t,n){return t&&t.length?Tr(t,Bi(n)):[]}function Ha(t){return ga(t,1)}function Va(t,n,e){return t&&t.length?(n=e||n===X?1:jo(n),Mr(t,0,0>n?0:n)):[]}function Za(t,n,e){var r=t?t.length:0;return r?(n=e||n===X?1:jo(n),n=r-n,Mr(t,0>n?0:n,r)):[]}function Xa(t,n){return t&&t.length?Nr(t,Bi(n,3),!1,!0):[]}function Ka(t,n){return t&&t.length?Nr(t,Bi(n,3)):[]}function Qa(t){return t&&t.length?Lr(t):[]}function Ja(t,n){return t&&t.length?Lr(t,Bi(n)):[]}function tu(t,n){return t&&t.length?Lr(t,X,n):[]}function nu(t){if(!t||!t.length)return[];var n=0;return t=l(t,function(t){return io(t)?(n=Qc(t.length,n),!0):void 0}),M(n,function(n){return d(t,vr(n))})}function eu(t,n){if(!t||!t.length)return[];var e=nu(t);return null==n?e:d(e,function(t){return a(n,X,t)})}function ru(t,n){return jr(t||[],n||[],de)}function iu(t,n){return jr(t||[],n||[],Er)}function au(t){var e=n(t);return e.__chain__=!0,e}function uu(t,n){return n(t),t}function ou(t,n){return n(t)}function su(){return au(this)}function cu(){return new L(this.value(),this.__chain__)}function lu(){this.__values__===X&&(this.__values__=Po(this.value()));var t=this.__index__>=this.__values__.length,n=t?X:this.__values__[this.__index__++];return{done:t,value:n}}function hu(){return this}function fu(t){for(var n,r=this;r instanceof e;){var i=ha(r);i.__index__=0,i.__values__=X,n?a.__wrapped__=i:n=i;var a=i;r=r.__wrapped__}return a.__wrapped__=t,n}function du(){var t=this.__wrapped__;if(t instanceof In){var n=t;return this.__actions__.length&&(n=new In(this)),n=n.reverse(),n.__actions__.push({func:ou,args:[Pa],thisArg:X}),new L(n,this.__chain__)}return this.thru(Pa)}function pu(){return Pr(this.__wrapped__,this.__actions__)}function gu(t,n,e){var r=yh(t)?c:Ne;return e&&Ki(t,n,e)&&(n=X),r(t,Bi(n,3))}function yu(t,n){var e=yh(t)?l:Ue;return e(t,Bi(n,3))}function mu(t,n){return $e(Au(t,n),1)}function vu(t,n){return $e(Au(t,n),xt)}function _u(t,n,e){return e=e===X?1:jo(e),$e(Au(t,n),e)}function bu(t,n){var e=yh(t)?o:wl;return e(t,Bi(n,3))}function xu(t,n){var e=yh(t)?s:Al;return e(t,Bi(n,3))}function wu(t,n,e,r){t=ro(t)?t:ys(t),e=e&&!r?jo(e):0;var i=t.length;return 0>e&&(e=Qc(i+e,0)),Fo(t)?i>=e&&t.indexOf(n,e)>-1:!!i&&b(t,n,e)>-1}function Au(t,n){var e=yh(t)?d:cr;return e(t,Bi(n,3))}function ku(t,n,e,r){return null==t?[]:(yh(n)||(n=null==n?[]:[n]),e=r?X:e,yh(e)||(e=null==e?[]:[e]),gr(t,n,e))}function Eu(t,n,e){var r=yh(t)?g:A,i=arguments.length<3;return r(t,Bi(n,4),e,i,wl)}function Mu(t,n,e){var r=yh(t)?y:A,i=arguments.length<3;return r(t,Bi(n,4),e,i,Al)}function Su(t,n){var e=yh(t)?l:Ue;return n=Bi(n,3),e(t,function(t,e,r){return!n(t,e,r)})}function Du(t){var n=ro(t)?t:ys(t),e=n.length;return e>0?n[wr(0,e-1)]:X}function Cu(t,n,e){var r=-1,i=Po(t),a=i.length,u=a-1;for(n=(e?Ki(t,n,e):n===X)?1:Se(jo(n),0,a);++r<n;){var o=wr(r,u),s=i[o];i[o]=i[r],i[r]=s}return i.length=n,i}function Tu(t){return Cu(t,Et)}function Fu(t){if(null==t)return 0;if(ro(t)){var n=t.length;return n&&Fo(t)?G(t):n}if(vo(t)){var e=Ui(t);if(e==Bt||e==Yt)return t.size}return rs(t).length}function Ou(t,n,e){var r=yh(t)?m:Sr;return e&&Ki(t,n,e)&&(n=X),r(t,Bi(n,3))}function Lu(){return vc.now()}function Iu(t,n){if(\"function\"!=typeof n)throw new wc(J);return t=jo(t),function(){return--t<1?n.apply(this,arguments):void 0}}function Bu(t,n,e){return n=e?X:n,n=t&&null==n?t.length:n,Si(t,ct,X,X,X,X,n)}function Nu(t,n){var e;if(\"function\"!=typeof n)throw new wc(J);return t=jo(t),function(){return--t>0&&(e=n.apply(this,arguments)),1>=t&&(n=X),e}}function Pu(t,n,e){n=e?X:n;var r=Si(t,at,X,X,X,X,X,n);return r.placeholder=Pu.placeholder,r}function Ru(t,n,e){n=e?X:n;var r=Si(t,ut,X,X,X,X,X,n);return r.placeholder=Ru.placeholder,r}function ju(t,n,e){function r(n){var e=f,r=d;return f=d=X,v=n,g=t.apply(r,e)}function i(t){return v=t,y=qc(o,n),_?r(t):g}function a(t){var e=t-m,r=t-v,i=n-e;return b?Jc(i,p-r):i}function u(t){var e=t-m,r=t-v;return m===X||e>=n||0>e||b&&r>=p}function o(){var t=Lu();return u(t)?s(t):void(y=qc(o,a(t)))}function s(t){return y=X,x&&f?r(t):(f=d=X,g)}function c(){v=0,f=m=d=y=X}function l(){return y===X?g:s(Lu())}function h(){var t=Lu(),e=u(t);if(f=arguments,d=this,m=t,e){if(y===X)return i(m);if(b)return y=qc(o,n),r(m)}return y===X&&(y=qc(o,n)),g}var f,d,p,g,y,m,v=0,_=!1,b=!1,x=!0;if(\"function\"!=typeof t)throw new wc(J);return n=Uo(n)||0,mo(e)&&(_=!!e.leading,b=\"maxWait\"in e,p=b?Qc(Uo(e.maxWait)||0,n):p,x=\"trailing\"in e?!!e.trailing:x),h.cancel=c,h.flush=l,h}function Yu(t){return Si(t,ht)}function Uu(t,n){if(\"function\"!=typeof t||n&&\"function\"!=typeof n)throw new wc(J);var e=function(){var r=arguments,i=n?n.apply(this,r):r[0],a=e.cache;if(a.has(i))return a.get(i);var u=t.apply(this,r);return e.cache=a.set(i,u),u};return e.cache=new(Uu.Cache||Xn),e}function $u(t){if(\"function\"!=typeof t)throw new wc(J);return function(){return!t.apply(this,arguments)}}function Wu(t){return Nu(2,t)}function zu(t,n){if(\"function\"!=typeof t)throw new wc(J);return n=Qc(n===X?t.length-1:jo(n),0),function(){for(var e=arguments,r=-1,i=Qc(e.length-n,0),u=Array(i);++r<i;)u[r]=e[n+r];switch(n){case 0:return t.call(this,u);case 1:return t.call(this,e[0],u);case 2:return t.call(this,e[0],e[1],u)}var o=Array(n+1);for(r=-1;++r<n;)o[r]=e[r];return o[n]=u,a(t,this,o)}}function qu(t,n){if(\"function\"!=typeof t)throw new wc(J);return n=n===X?0:Qc(jo(n),0),zu(function(e){var r=e[n],i=Wr(e,0,n);return r&&p(i,r),a(t,this,i)})}function Gu(t,n,e){var r=!0,i=!0;if(\"function\"!=typeof t)throw new wc(J);return mo(e)&&(r=\"leading\"in e?!!e.leading:r,i=\"trailing\"in e?!!e.trailing:i),ju(t,n,{leading:r,maxWait:n,trailing:i})}function Hu(t){return Bu(t,1)}function Vu(t,n){return n=null==n?Gs:n,hh(n,t)}function Zu(){if(!arguments.length)return[];var t=arguments[0];return yh(t)?t:[t]}function Xu(t){return De(t,!1,!0)}function Ku(t,n){return De(t,!1,!0,n)}function Qu(t){return De(t,!0,!0)}function Ju(t,n){return De(t,!0,!0,n)}function to(t,n){return t===n||t!==t&&n!==n}function no(t){return io(t)&&Cc.call(t,\"callee\")&&(!Wc.call(t,\"callee\")||Oc.call(t)==Dt)}function eo(t){return vo(t)&&Oc.call(t)==qt}function ro(t){return null!=t&&yo(Cl(t))&&!po(t)}function io(t){return vo(t)&&ro(t)}function ao(t){return t===!0||t===!1||vo(t)&&Oc.call(t)==Tt}function uo(t){return vo(t)&&Oc.call(t)==Ft}function oo(t){return!!t&&1===t.nodeType&&vo(t)&&!So(t)}function so(t){if(ro(t)&&(yh(t)||Fo(t)||po(t.splice)||no(t)||mh(t)))return!t.length;if(vo(t)){var n=Ui(t);if(n==Bt||n==Yt)return!t.size}for(var e in t)if(Cc.call(t,e))return!1;return!(fl&&rs(t).length)}function co(t,n){return nr(t,n)}function lo(t,n,e){e=\"function\"==typeof e?e:X;var r=e?e(t,n):X;return r===X?nr(t,n,e):!!r}function ho(t){return vo(t)?Oc.call(t)==Ot||\"string\"==typeof t.message&&\"string\"==typeof t.name:!1}function fo(t){return\"number\"==typeof t&&Zc(t)}function po(t){var n=mo(t)?Oc.call(t):\"\";return n==Lt||n==It}function go(t){return\"number\"==typeof t&&t==jo(t)}function yo(t){return\"number\"==typeof t&&t>-1&&t%1==0&&wt>=t}function mo(t){var n=typeof t;return!!t&&(\"object\"==n||\"function\"==n)}function vo(t){return!!t&&\"object\"==typeof t}function _o(t){return vo(t)&&Ui(t)==Bt}function bo(t,n){return t===n||rr(t,n,Pi(n))}function xo(t,n,e){return e=\"function\"==typeof e?e:X,rr(t,n,Pi(n),e)}function wo(t){return Mo(t)&&t!=+t}function Ao(t){if(Fl(t))throw new _c(\"This method is not supported with `core-js`. Try https://github.com/es-shims.\");return ir(t)}function ko(t){return null===t}function Eo(t){return null==t}function Mo(t){return\"number\"==typeof t||vo(t)&&Oc.call(t)==Nt}function So(t){if(!vo(t)||Oc.call(t)!=Pt||Y(t))return!1;var n=ji(t);if(null===n)return!0;var e=Cc.call(n,\"constructor\")&&n.constructor;return\"function\"==typeof e&&e instanceof e&&Dc.call(e)==Fc}function Do(t){return mo(t)&&Oc.call(t)==jt}function Co(t){return go(t)&&t>=-wt&&wt>=t}function To(t){return vo(t)&&Ui(t)==Yt}function Fo(t){return\"string\"==typeof t||!yh(t)&&vo(t)&&Oc.call(t)==Ut}function Oo(t){return\"symbol\"==typeof t||vo(t)&&Oc.call(t)==$t}function Lo(t){return vo(t)&&yo(t.length)&&!!Ee[Oc.call(t)]}function Io(t){return t===X}function Bo(t){return vo(t)&&Ui(t)==Wt}function No(t){return vo(t)&&Oc.call(t)==zt}function Po(t){if(!t)return[];if(ro(t))return Fo(t)?H(t):ei(t);if(Uc&&t[Uc])return U(t[Uc]());var n=Ui(t),e=n==Bt?$:n==Yt?z:ys;return e(t)}function Ro(t){if(!t)return 0===t?t:0;if(t=Uo(t),t===xt||t===-xt){var n=0>t?-1:1;return n*At}return t===t?t:0}function jo(t){var n=Ro(t),e=n%1;return n===n?e?n-e:n:0}function Yo(t){return t?Se(jo(t),0,Et):0}function Uo(t){if(\"number\"==typeof t)return t;if(Oo(t))return kt;if(mo(t)){var n=po(t.valueOf)?t.valueOf():t;t=mo(n)?n+\"\":n}if(\"string\"!=typeof t)return 0===t?t:+t;t=t.replace(vn,\"\");var e=Sn.test(t);return e||Cn.test(t)?Oe(t.slice(2),e?2:8):Mn.test(t)?kt:+t}function $o(t){return ri(t,is(t))}function Wo(t){return Se(jo(t),-wt,wt)}function zo(t){return null==t?\"\":Or(t)}function qo(t,n){var e=Te(t);return n?ye(e,n):e}function Go(t,n){return v(t,Bi(n,3),We)}function Ho(t,n){return v(t,Bi(n,3),ze)}function Vo(t,n){return null==t?t:kl(t,Bi(n,3),is)}function Zo(t,n){return null==t?t:El(t,Bi(n,3),is)}function Xo(t,n){return t&&We(t,Bi(n,3))}function Ko(t,n){return t&&ze(t,Bi(n,3))}function Qo(t){return null==t?[]:qe(t,rs(t))}function Jo(t){return null==t?[]:qe(t,is(t))}function ts(t,n,e){var r=null==t?X:Ge(t,n);return r===X?e:r}function ns(t,n){return null!=t&&Wi(t,n,Ze)}function es(t,n){return null!=t&&Wi(t,n,Xe)}function rs(t){var n=ea(t);if(!n&&!ro(t))return ur(t);var e=Hi(t),r=!!e,i=e||[],a=i.length;for(var u in t)!Ze(t,u)||r&&(\"length\"==u||Xi(u,a))||n&&\"constructor\"==u||i.push(u);return i}function is(t){for(var n=-1,e=ea(t),r=or(t),i=r.length,a=Hi(t),u=!!a,o=a||[],s=o.length;++n<i;){var c=r[n];u&&(\"length\"==c||Xi(c,s))||\"constructor\"==c&&(e||!Cc.call(t,c))||o.push(c)}return o}function as(t,n){var e={};return n=Bi(n,3),We(t,function(t,r,i){e[n(t,r,i)]=t}),e}function us(t,n){var e={};return n=Bi(n,3),We(t,function(t,r,i){e[r]=n(t,r,i)}),e}function os(t,n){return n=Bi(n),mr(t,function(t,e){return!n(t,e)})}function ss(t,n){return null==t?{}:mr(t,Bi(n))}function cs(t,n,e){n=Qi(n,t)?[n]:$r(n);var r=-1,i=n.length;for(i||(t=X,i=1);++r<i;){var a=null==t?X:t[ca(n[r])];a===X&&(r=i,a=e),t=po(a)?a.call(t):a}return t}function ls(t,n,e){return null==t?t:Er(t,n,e)}function hs(t,n,e,r){return r=\"function\"==typeof r?r:X,null==t?t:Er(t,n,e,r)}function fs(t,n,e){var r=yh(t)||Lo(t);if(n=Bi(n,4),null==e)if(r||mo(t)){var i=t.constructor;e=r?yh(t)?new i:[]:po(i)?Te(ji(t)):{}}else e={};return(r?o:We)(t,function(t,r,i){return n(e,t,r,i)}),e}function ds(t,n){return null==t?!0:Ir(t,n)}function ps(t,n,e){return null==t?t:Br(t,n,Ur(e))}function gs(t,n,e,r){return r=\"function\"==typeof r?r:X,null==t?t:Br(t,n,Ur(e),r)}function ys(t){return t?C(t,rs(t)):[]}function ms(t){return null==t?[]:C(t,is(t))}function vs(t,n,e){return e===X&&(e=n,n=X),e!==X&&(e=Uo(e),e=e===e?e:0),n!==X&&(n=Uo(n),n=n===n?n:0),Se(Uo(t),n,e)}function _s(t,n,e){return n=Uo(n)||0,e===X?(e=n,n=0):e=Uo(e)||0,t=Uo(t),Ke(t,n,e)}function bs(t,n,e){if(e&&\"boolean\"!=typeof e&&Ki(t,n,e)&&(n=e=X),e===X&&(\"boolean\"==typeof n?(e=n,n=X):\"boolean\"==typeof t&&(e=t,t=X)),t===X&&n===X?(t=0,n=1):(t=Uo(t)||0,n===X?(n=t,t=0):n=Uo(n)||0),t>n){var r=t;t=n,n=r}if(e||t%1||n%1){var i=nl();return Jc(t+i*(n-t+Fe(\"1e-\"+((i+\"\").length-1))),n)}return wr(t,n)}function xs(t){return Wh(zo(t).toLowerCase())}function ws(t){return t=zo(t),t&&t.replace(Fn,B).replace(ve,\"\")}function As(t,n,e){t=zo(t),n=Or(n);var r=t.length;return e=e===X?r:Se(jo(e),0,r),e-=n.length,e>=0&&t.indexOf(n,e)==e}function ks(t){return t=zo(t),t&&cn.test(t)?t.replace(on,N):t}function Es(t){return t=zo(t),t&&mn.test(t)?t.replace(yn,\"\\\\$&\"):t}function Ms(t,n,e){t=zo(t),n=jo(n);var r=n?G(t):0;if(!n||r>=n)return t;var i=(n-r)/2;return bi(Hc(i),e)+t+bi(Gc(i),e)}function Ss(t,n,e){t=zo(t),n=jo(n);var r=n?G(t):0;return n&&n>r?t+bi(n-r,e):t}function Ds(t,n,e){t=zo(t),n=jo(n);var r=n?G(t):0;return n&&n>r?bi(n-r,e)+t:t}function Cs(t,n,e){return e||null==n?n=0:n&&(n=+n),t=zo(t).replace(vn,\"\"),tl(t,n||(En.test(t)?16:10))}function Ts(t,n,e){return n=(e?Ki(t,n,e):n===X)?1:jo(n),kr(zo(t),n)}function Fs(){var t=arguments,n=zo(t[0]);return t.length<3?n:el.call(n,t[1],t[2])}function Os(t,n,e){return e&&\"number\"!=typeof e&&Ki(t,n,e)&&(n=e=X),(e=e===X?Et:e>>>0)?(t=zo(t),t&&(\"string\"==typeof n||null!=n&&!Do(n))&&(n=Or(n),\"\"==n&&xe.test(t))?Wr(H(t),0,e):il.call(t,n,e)):[]}function Ls(t,n,e){return t=zo(t),e=Se(jo(e),0,t.length),t.lastIndexOf(Or(n),e)==e}function Is(t,e,r){var i=n.templateSettings;r&&Ki(t,e,r)&&(e=X),t=zo(t),e=wh({},e,i,he);var a,u,o=wh({},e.imports,i.imports,he),s=rs(o),c=C(o,s),l=0,h=e.interpolate||On,f=\"__p += '\",d=xc((e.escape||On).source+\"|\"+h.source+\"|\"+(h===fn?An:On).source+\"|\"+(e.evaluate||On).source+\"|$\",\"g\"),p=\"//# sourceURL=\"+(\"sourceURL\"in e?e.sourceURL:\"lodash.templateSources[\"+ ++ke+\"]\")+\"\\n\";t.replace(d,function(n,e,r,i,o,s){return r||(r=i),f+=t.slice(l,s).replace(Ln,P),e&&(a=!0,f+=\"' +\\n__e(\"+e+\") +\\n'\"),o&&(u=!0,f+=\"';\\n\"+o+\";\\n__p += '\"),r&&(f+=\"' +\\n((__t = (\"+r+\")) == null ? '' : __t) +\\n'\"),l=s+n.length,n}),f+=\"';\\n\";var g=e.variable;g||(f=\"with (obj) {\\n\"+f+\"\\n}\\n\"),f=(u?f.replace(en,\"\"):f).replace(rn,\"$1\").replace(an,\"$1;\"),f=\"function(\"+(g||\"obj\")+\") {\\n\"+(g?\"\":\"obj || (obj = {});\\n\")+\"var __t, __p = ''\"+(a?\", __e = _.escape\":\"\")+(u?\", __j = Array.prototype.join;\\nfunction print() { __p += __j.call(arguments, '') }\\n\":\";\\n\")+f+\"return __p\\n}\";var y=zh(function(){return Function(s,p+\"return \"+f).apply(X,c)});if(y.source=f,ho(y))throw y;return y}function Bs(t){return zo(t).toLowerCase()}function Ns(t){return zo(t).toUpperCase()}function Ps(t,n,e){if(t=zo(t),t&&(e||n===X))return t.replace(vn,\"\");if(!t||!(n=Or(n)))return t;var r=H(t),i=H(n),a=F(r,i),u=O(r,i)+1;return Wr(r,a,u).join(\"\")}function Rs(t,n,e){if(t=zo(t),t&&(e||n===X))return t.replace(bn,\"\");if(!t||!(n=Or(n)))return t;var r=H(t),i=O(r,H(n))+1;return Wr(r,0,i).join(\"\")}function js(t,n,e){if(t=zo(t),t&&(e||n===X))return t.replace(_n,\"\");if(!t||!(n=Or(n)))return t;var r=H(t),i=F(r,H(n));return Wr(r,i).join(\"\")}function Ys(t,n){var e=pt,r=gt;if(mo(n)){var i=\"separator\"in n?n.separator:i;e=\"length\"in n?jo(n.length):e,r=\"omission\"in n?Or(n.omission):r}t=zo(t);var a=t.length;if(xe.test(t)){var u=H(t);a=u.length}if(e>=a)return t;var o=e-G(r);if(1>o)return r;var s=u?Wr(u,0,o).join(\"\"):t.slice(0,o);if(i===X)return s+r;if(u&&(o+=s.length-o),Do(i)){if(t.slice(o).search(i)){var c,l=s;for(i.global||(i=xc(i.source,zo(kn.exec(i))+\"g\")),i.lastIndex=0;c=i.exec(l);)var h=c.index;s=s.slice(0,h===X?o:h)}}else if(t.indexOf(Or(i),o)!=o){var f=s.lastIndexOf(i);f>-1&&(s=s.slice(0,f))}return s+r}function Us(t){return t=zo(t),t&&sn.test(t)?t.replace(un,V):t}function $s(t,n,e){return t=zo(t),n=e?X:n,n===X&&(n=we.test(t)?be:xn),t.match(n)||[]}function Ws(t){var n=t?t.length:0,e=Bi();return t=n?d(t,function(t){if(\"function\"!=typeof t[1])throw new wc(J);return[e(t[0]),t[1]]}):[],zu(function(e){for(var r=-1;++r<n;){var i=t[r];if(a(i[0],this,e))return a(i[1],this,e)}})}function zs(t){return Ce(De(t,!0))}function qs(t){return function(){return t}}function Gs(t){return t}function Hs(t){return ar(\"function\"==typeof t?t:De(t,!0))}function Vs(t){return lr(De(t,!0))}function Zs(t,n){return hr(t,De(n,!0))}function Xs(t,n,e){var r=rs(n),i=qe(n,r);null!=e||mo(n)&&(i.length||!r.length)||(e=n,n=t,t=this,i=qe(n,rs(n)));var a=!(mo(e)&&\"chain\"in e&&!e.chain),u=po(t);return o(i,function(e){var r=n[e];t[e]=r,u&&(t.prototype[e]=function(){var n=this.__chain__;if(a||n){var e=t(this.__wrapped__),i=e.__actions__=ei(this.__actions__);return i.push({func:r,args:arguments,thisArg:t}),e.__chain__=n,e}return r.apply(t,p([this.value()],arguments))})}),t}function Ks(){return je._===this&&(je._=Lc),this}function Qs(){}function Js(t){return t=jo(t),zu(function(n){return pr(n,t)})}function tc(t){return Qi(t)?vr(ca(t)):_r(t)}function nc(t){return function(n){return null==t?X:Ge(t,n)}}function ec(){return[]}function rc(){return!1}function ic(){return{}}function ac(){return\"\"}function uc(){return!0}function oc(t,n){if(t=jo(t),1>t||t>wt)return[];var e=Et,r=Jc(t,Et);n=Bi(n),t-=Et;for(var i=M(r,n);++e<t;)n(e);return i}function sc(t){return yh(t)?d(t,ca):Oo(t)?[t]:ei(Ll(t))}function cc(t){var n=++Tc;return zo(t)+n}function lc(t){return t&&t.length?Pe(t,Gs,Ve):X}function hc(t,n){return t&&t.length?Pe(t,Bi(n),Ve):X}function fc(t){return w(t,Gs)}function dc(t,n){return w(t,Bi(n))}function pc(t){return t&&t.length?Pe(t,Gs,sr):X}function gc(t,n){return t&&t.length?Pe(t,Bi(n),sr):X}function yc(t){return t&&t.length?E(t,Gs):0}function mc(t,n){return t&&t.length?E(t,Bi(n)):0}t=t?Ye.defaults({},t,Ye.pick(je,Ae)):je;var vc=t.Date,_c=t.Error,bc=t.Math,xc=t.RegExp,wc=t.TypeError,Ac=t.Array.prototype,kc=t.Object.prototype,Ec=t.String.prototype,Mc=t[\"__core-js_shared__\"],Sc=function(){var t=/[^.]+$/.exec(Mc&&Mc.keys&&Mc.keys.IE_PROTO||\"\");return t?\"Symbol(src)_1.\"+t:\"\"}(),Dc=t.Function.prototype.toString,Cc=kc.hasOwnProperty,Tc=0,Fc=Dc.call(Object),Oc=kc.toString,Lc=je._,Ic=xc(\"^\"+Dc.call(Cc).replace(yn,\"\\\\$&\").replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g,\"$1.*?\")+\"$\"),Bc=Be?t.Buffer:X,Nc=t.Reflect,Pc=t.Symbol,Rc=t.Uint8Array,jc=Nc?Nc.enumerate:X,Yc=Object.getOwnPropertySymbols,Uc=\"symbol\"==typeof(Uc=Pc&&Pc.iterator)?Uc:X,$c=Object.create,Wc=kc.propertyIsEnumerable,zc=Ac.splice,qc=function(n,e){return t.setTimeout.call(je,n,e)},Gc=bc.ceil,Hc=bc.floor,Vc=Object.getPrototypeOf,Zc=t.isFinite,Xc=Ac.join,Kc=Object.keys,Qc=bc.max,Jc=bc.min,tl=t.parseInt,nl=bc.random,el=Ec.replace,rl=Ac.reverse,il=Ec.split,al=Ri(t,\"DataView\"),ul=Ri(t,\"Map\"),ol=Ri(t,\"Promise\"),sl=Ri(t,\"Set\"),cl=Ri(t,\"WeakMap\"),ll=Ri(Object,\"create\"),hl=cl&&new cl,fl=!Wc.call({valueOf:1},\"valueOf\"),dl={},pl=la(al),gl=la(ul),yl=la(ol),ml=la(sl),vl=la(cl),_l=Pc?Pc.prototype:X,bl=_l?_l.valueOf:X,xl=_l?_l.toString:X;n.templateSettings={escape:ln,evaluate:hn,interpolate:fn,variable:\"\",imports:{_:n}},n.prototype=e.prototype,n.prototype.constructor=n,L.prototype=Te(e.prototype),L.prototype.constructor=L,In.prototype=Te(e.prototype),In.prototype.constructor=In,Rn.prototype.clear=jn,Rn.prototype[\"delete\"]=Yn,Rn.prototype.get=Un,Rn.prototype.has=$n,Rn.prototype.set=Wn,zn.prototype.clear=qn,zn.prototype[\"delete\"]=Gn,zn.prototype.get=Hn,zn.prototype.has=Vn,zn.prototype.set=Zn,Xn.prototype.clear=Kn,Xn.prototype[\"delete\"]=Qn,Xn.prototype.get=Jn,Xn.prototype.has=te,Xn.prototype.set=ne,ee.prototype.add=ee.prototype.push=re,ee.prototype.has=ie,ae.prototype.clear=ue,ae.prototype[\"delete\"]=oe,ae.prototype.get=se,ae.prototype.has=ce,ae.prototype.set=le;var wl=oi(We),Al=oi(ze,!0),kl=si(),El=si(!0);jc&&!Wc.call({valueOf:1},\"valueOf\")&&(or=function(t){return U(jc(t))});var Ml=hl?function(t,n){return hl.set(t,n),t}:Gs,Sl=sl&&1/z(new sl([,-0]))[1]==xt?function(t){return new sl(t)}:Qs,Dl=hl?function(t){return hl.get(t)}:Qs,Cl=vr(\"length\");Yc||(Yi=ec);var Tl=Yc?function(t){for(var n=[];t;)p(n,Yi(t)),t=ji(t);return n}:Yi;(al&&Ui(new al(new ArrayBuffer(1)))!=Gt||ul&&Ui(new ul)!=Bt||ol&&Ui(ol.resolve())!=Rt||sl&&Ui(new sl)!=Yt||cl&&Ui(new cl)!=Wt)&&(Ui=function(t){var n=Oc.call(t),e=n==Pt?t.constructor:X,r=e?la(e):X;if(r)switch(r){case pl:return Gt;case gl:return Bt;case yl:return Rt;case ml:return Yt;case vl:return Wt}return n});var Fl=Mc?po:rc,Ol=function(){var t=0,n=0;return function(e,r){var i=Lu(),a=mt-(i-n);if(n=i,a>0){if(++t>=yt)return e}else t=0;return Ml(e,r)}}(),Ll=Uu(function(t){var n=[];return zo(t).replace(gn,function(t,e,r,i){n.push(r?i.replace(wn,\"$1\"):e||t)}),n}),Il=zu(function(t,n){return io(t)?Ie(t,$e(n,1,io,!0)):[]}),Bl=zu(function(t,n){var e=Ta(n);return io(e)&&(e=X),io(t)?Ie(t,$e(n,1,io,!0),Bi(e)):[]}),Nl=zu(function(t,n){var e=Ta(n);return io(e)&&(e=X),io(t)?Ie(t,$e(n,1,io,!0),X,e):[]}),Pl=zu(function(t){var n=d(t,Yr);return n.length&&n[0]===t[0]?Qe(n):[]}),Rl=zu(function(t){var n=Ta(t),e=d(t,Yr);return n===Ta(e)?n=X:e.pop(),e.length&&e[0]===t[0]?Qe(e,Bi(n)):[]}),jl=zu(function(t){var n=Ta(t),e=d(t,Yr);return n===Ta(e)?n=X:e.pop(),e.length&&e[0]===t[0]?Qe(e,X,n):[]}),Yl=zu(La),Ul=zu(function(t,n){n=$e(n,1);var e=t?t.length:0,r=_e(t,n);return xr(t,d(n,function(t){return Xi(t,e)?+t:t}).sort(Qr)),r}),$l=zu(function(t){return Lr($e(t,1,io,!0))}),Wl=zu(function(t){var n=Ta(t);return io(n)&&(n=X),Lr($e(t,1,io,!0),Bi(n))}),zl=zu(function(t){var n=Ta(t);return io(n)&&(n=X),Lr($e(t,1,io,!0),X,n)}),ql=zu(function(t,n){return io(t)?Ie(t,n):[]}),Gl=zu(function(t){return Rr(l(t,io))}),Hl=zu(function(t){var n=Ta(t);return io(n)&&(n=X),Rr(l(t,io),Bi(n))}),Vl=zu(function(t){var n=Ta(t);return io(n)&&(n=X),Rr(l(t,io),X,n)}),Zl=zu(nu),Xl=zu(function(t){var n=t.length,e=n>1?t[n-1]:X;return e=\"function\"==typeof e?(t.pop(),e):X,eu(t,e)}),Kl=zu(function(t){t=$e(t,1);var n=t.length,e=n?t[0]:0,r=this.__wrapped__,i=function(n){return _e(n,t)};return!(n>1||this.__actions__.length)&&r instanceof In&&Xi(e)?(r=r.slice(e,+e+(n?1:0)),r.__actions__.push({func:ou,args:[i],thisArg:X}),new L(r,this.__chain__).thru(function(t){return n&&!t.length&&t.push(X),t})):this.thru(i)}),Ql=ai(function(t,n,e){Cc.call(t,e)?++t[e]:t[e]=1}),Jl=pi(ba),th=pi(xa),nh=ai(function(t,n,e){Cc.call(t,e)?t[e].push(n):t[e]=[n]}),eh=zu(function(t,n,e){var r=-1,i=\"function\"==typeof n,u=Qi(n),o=ro(t)?Array(t.length):[];return wl(t,function(t){var s=i?n:u&&null!=t?t[n]:X;o[++r]=s?a(s,t,e):tr(t,n,e)}),o}),rh=ai(function(t,n,e){t[e]=n}),ih=ai(function(t,n,e){t[e?0:1].push(n)},function(){return[[],[]]}),ah=zu(function(t,n){if(null==t)return[];var e=n.length;return e>1&&Ki(t,n[0],n[1])?n=[]:e>2&&Ki(n[0],n[1],n[2])&&(n=[n[0]]),n=1==n.length&&yh(n[0])?n[0]:$e(n,1,Zi),gr(t,n,[])}),uh=zu(function(t,n,e){var r=et;if(e.length){var i=W(e,Ii(uh));r|=ot}return Si(t,r,n,e,i)}),oh=zu(function(t,n,e){var r=et|rt;if(e.length){var i=W(e,Ii(oh));r|=ot}return Si(n,r,t,e,i)}),sh=zu(function(t,n){return Le(t,1,n)}),ch=zu(function(t,n,e){return Le(t,Uo(n)||0,e)});Uu.Cache=Xn;var lh=zu(function(t,n){n=1==n.length&&yh(n[0])?d(n[0],D(Bi())):d($e(n,1,Zi),D(Bi()));var e=n.length;return zu(function(r){for(var i=-1,u=Jc(r.length,e);++i<u;)r[i]=n[i].call(this,r[i]);return a(t,this,r)})}),hh=zu(function(t,n){var e=W(n,Ii(hh));return Si(t,ot,X,n,e)}),fh=zu(function(t,n){var e=W(n,Ii(fh));return Si(t,st,X,n,e)}),dh=zu(function(t,n){return Si(t,lt,X,X,X,$e(n,1))}),ph=Ai(Ve),gh=Ai(function(t,n){return t>=n}),yh=Array.isArray,mh=Bc?function(t){return t instanceof Bc}:rc,vh=Ai(sr),_h=Ai(function(t,n){return n>=t}),bh=ui(function(t,n){if(fl||ea(n)||ro(n))return void ri(n,rs(n),t);for(var e in n)Cc.call(n,e)&&de(t,e,n[e])}),xh=ui(function(t,n){if(fl||ea(n)||ro(n))return void ri(n,is(n),t);for(var e in n)de(t,e,n[e])}),wh=ui(function(t,n,e,r){ri(n,is(n),t,r)}),Ah=ui(function(t,n,e,r){ri(n,rs(n),t,r)}),kh=zu(function(t,n){return _e(t,$e(n,1))}),Eh=zu(function(t){return t.push(X,he),a(wh,X,t)}),Mh=zu(function(t){return t.push(X,ua),a(Fh,X,t)}),Sh=mi(function(t,n,e){t[n]=e},qs(Gs)),Dh=mi(function(t,n,e){Cc.call(t,n)?t[n].push(e):t[n]=[e]},Bi),Ch=zu(tr),Th=ui(function(t,n,e){fr(t,n,e)}),Fh=ui(function(t,n,e,r){fr(t,n,e,r)}),Oh=zu(function(t,n){return null==t?{}:(n=d($e(n,1),ca),yr(t,Ie(Oi(t),n)))}),Lh=zu(function(t,n){return null==t?{}:yr(t,d($e(n,1),ca))}),Ih=Mi(rs),Bh=Mi(is),Nh=hi(function(t,n,e){return n=n.toLowerCase(),t+(e?xs(n):n)}),Ph=hi(function(t,n,e){return t+(e?\"-\":\"\")+n.toLowerCase()}),Rh=hi(function(t,n,e){\nreturn t+(e?\" \":\"\")+n.toLowerCase()}),jh=li(\"toLowerCase\"),Yh=hi(function(t,n,e){return t+(e?\"_\":\"\")+n.toLowerCase()}),Uh=hi(function(t,n,e){return t+(e?\" \":\"\")+Wh(n)}),$h=hi(function(t,n,e){return t+(e?\" \":\"\")+n.toUpperCase()}),Wh=li(\"toUpperCase\"),zh=zu(function(t,n){try{return a(t,X,n)}catch(e){return ho(e)?e:new _c(e)}}),qh=zu(function(t,n){return o($e(n,1),function(n){n=ca(n),t[n]=uh(t[n],t)}),t}),Gh=gi(),Hh=gi(!0),Vh=zu(function(t,n){return function(e){return tr(e,t,n)}}),Zh=zu(function(t,n){return function(e){return tr(t,e,n)}}),Xh=_i(d),Kh=_i(c),Qh=_i(m),Jh=wi(),tf=wi(!0),nf=vi(function(t,n){return t+n}),ef=Ei(\"ceil\"),rf=vi(function(t,n){return t/n}),af=Ei(\"floor\"),uf=vi(function(t,n){return t*n}),of=Ei(\"round\"),sf=vi(function(t,n){return t-n});return n.after=Iu,n.ary=Bu,n.assign=bh,n.assignIn=xh,n.assignInWith=wh,n.assignWith=Ah,n.at=kh,n.before=Nu,n.bind=uh,n.bindAll=qh,n.bindKey=oh,n.castArray=Zu,n.chain=au,n.chunk=fa,n.compact=da,n.concat=pa,n.cond=Ws,n.conforms=zs,n.constant=qs,n.countBy=Ql,n.create=qo,n.curry=Pu,n.curryRight=Ru,n.debounce=ju,n.defaults=Eh,n.defaultsDeep=Mh,n.defer=sh,n.delay=ch,n.difference=Il,n.differenceBy=Bl,n.differenceWith=Nl,n.drop=ga,n.dropRight=ya,n.dropRightWhile=ma,n.dropWhile=va,n.fill=_a,n.filter=yu,n.flatMap=mu,n.flatMapDeep=vu,n.flatMapDepth=_u,n.flatten=wa,n.flattenDeep=Aa,n.flattenDepth=ka,n.flip=Yu,n.flow=Gh,n.flowRight=Hh,n.fromPairs=Ea,n.functions=Qo,n.functionsIn=Jo,n.groupBy=nh,n.initial=Da,n.intersection=Pl,n.intersectionBy=Rl,n.intersectionWith=jl,n.invert=Sh,n.invertBy=Dh,n.invokeMap=eh,n.iteratee=Hs,n.keyBy=rh,n.keys=rs,n.keysIn=is,n.map=Au,n.mapKeys=as,n.mapValues=us,n.matches=Vs,n.matchesProperty=Zs,n.memoize=Uu,n.merge=Th,n.mergeWith=Fh,n.method=Vh,n.methodOf=Zh,n.mixin=Xs,n.negate=$u,n.nthArg=Js,n.omit=Oh,n.omitBy=os,n.once=Wu,n.orderBy=ku,n.over=Xh,n.overArgs=lh,n.overEvery=Kh,n.overSome=Qh,n.partial=hh,n.partialRight=fh,n.partition=ih,n.pick=Lh,n.pickBy=ss,n.property=tc,n.propertyOf=nc,n.pull=Yl,n.pullAll=La,n.pullAllBy=Ia,n.pullAllWith=Ba,n.pullAt=Ul,n.range=Jh,n.rangeRight=tf,n.rearg=dh,n.reject=Su,n.remove=Na,n.rest=zu,n.reverse=Pa,n.sampleSize=Cu,n.set=ls,n.setWith=hs,n.shuffle=Tu,n.slice=Ra,n.sortBy=ah,n.sortedUniq=qa,n.sortedUniqBy=Ga,n.split=Os,n.spread=qu,n.tail=Ha,n.take=Va,n.takeRight=Za,n.takeRightWhile=Xa,n.takeWhile=Ka,n.tap=uu,n.throttle=Gu,n.thru=ou,n.toArray=Po,n.toPairs=Ih,n.toPairsIn=Bh,n.toPath=sc,n.toPlainObject=$o,n.transform=fs,n.unary=Hu,n.union=$l,n.unionBy=Wl,n.unionWith=zl,n.uniq=Qa,n.uniqBy=Ja,n.uniqWith=tu,n.unset=ds,n.unzip=nu,n.unzipWith=eu,n.update=ps,n.updateWith=gs,n.values=ys,n.valuesIn=ms,n.without=ql,n.words=$s,n.wrap=Vu,n.xor=Gl,n.xorBy=Hl,n.xorWith=Vl,n.zip=Zl,n.zipObject=ru,n.zipObjectDeep=iu,n.zipWith=Xl,n.entries=Ih,n.entriesIn=Bh,n.extend=xh,n.extendWith=wh,Xs(n,n),n.add=nf,n.attempt=zh,n.camelCase=Nh,n.capitalize=xs,n.ceil=ef,n.clamp=vs,n.clone=Xu,n.cloneDeep=Qu,n.cloneDeepWith=Ju,n.cloneWith=Ku,n.deburr=ws,n.divide=rf,n.endsWith=As,n.eq=to,n.escape=ks,n.escapeRegExp=Es,n.every=gu,n.find=Jl,n.findIndex=ba,n.findKey=Go,n.findLast=th,n.findLastIndex=xa,n.findLastKey=Ho,n.floor=af,n.forEach=bu,n.forEachRight=xu,n.forIn=Vo,n.forInRight=Zo,n.forOwn=Xo,n.forOwnRight=Ko,n.get=ts,n.gt=ph,n.gte=gh,n.has=ns,n.hasIn=es,n.head=Ma,n.identity=Gs,n.includes=wu,n.indexOf=Sa,n.inRange=_s,n.invoke=Ch,n.isArguments=no,n.isArray=yh,n.isArrayBuffer=eo,n.isArrayLike=ro,n.isArrayLikeObject=io,n.isBoolean=ao,n.isBuffer=mh,n.isDate=uo,n.isElement=oo,n.isEmpty=so,n.isEqual=co,n.isEqualWith=lo,n.isError=ho,n.isFinite=fo,n.isFunction=po,n.isInteger=go,n.isLength=yo,n.isMap=_o,n.isMatch=bo,n.isMatchWith=xo,n.isNaN=wo,n.isNative=Ao,n.isNil=Eo,n.isNull=ko,n.isNumber=Mo,n.isObject=mo,n.isObjectLike=vo,n.isPlainObject=So,n.isRegExp=Do,n.isSafeInteger=Co,n.isSet=To,n.isString=Fo,n.isSymbol=Oo,n.isTypedArray=Lo,n.isUndefined=Io,n.isWeakMap=Bo,n.isWeakSet=No,n.join=Ca,n.kebabCase=Ph,n.last=Ta,n.lastIndexOf=Fa,n.lowerCase=Rh,n.lowerFirst=jh,n.lt=vh,n.lte=_h,n.max=lc,n.maxBy=hc,n.mean=fc,n.meanBy=dc,n.min=pc,n.minBy=gc,n.stubArray=ec,n.stubFalse=rc,n.stubObject=ic,n.stubString=ac,n.stubTrue=uc,n.multiply=uf,n.nth=Oa,n.noConflict=Ks,n.noop=Qs,n.now=Lu,n.pad=Ms,n.padEnd=Ss,n.padStart=Ds,n.parseInt=Cs,n.random=bs,n.reduce=Eu,n.reduceRight=Mu,n.repeat=Ts,n.replace=Fs,n.result=cs,n.round=of,n.runInContext=Z,n.sample=Du,n.size=Fu,n.snakeCase=Yh,n.some=Ou,n.sortedIndex=ja,n.sortedIndexBy=Ya,n.sortedIndexOf=Ua,n.sortedLastIndex=$a,n.sortedLastIndexBy=Wa,n.sortedLastIndexOf=za,n.startCase=Uh,n.startsWith=Ls,n.subtract=sf,n.sum=yc,n.sumBy=mc,n.template=Is,n.times=oc,n.toFinite=Ro,n.toInteger=jo,n.toLength=Yo,n.toLower=Bs,n.toNumber=Uo,n.toSafeInteger=Wo,n.toString=zo,n.toUpper=Ns,n.trim=Ps,n.trimEnd=Rs,n.trimStart=js,n.truncate=Ys,n.unescape=Us,n.uniqueId=cc,n.upperCase=$h,n.upperFirst=Wh,n.each=bu,n.eachRight=xu,n.first=Ma,Xs(n,function(){var t={};return We(n,function(e,r){Cc.call(n.prototype,r)||(t[r]=e)}),t}(),{chain:!1}),n.VERSION=K,o([\"bind\",\"bindKey\",\"curry\",\"curryRight\",\"partial\",\"partialRight\"],function(t){n[t].placeholder=n}),o([\"drop\",\"take\"],function(t,n){In.prototype[t]=function(e){var r=this.__filtered__;if(r&&!n)return new In(this);e=e===X?1:Qc(jo(e),0);var i=this.clone();return r?i.__takeCount__=Jc(e,i.__takeCount__):i.__views__.push({size:Jc(e,Et),type:t+(i.__dir__<0?\"Right\":\"\")}),i},In.prototype[t+\"Right\"]=function(n){return this.reverse()[t](n).reverse()}}),o([\"filter\",\"map\",\"takeWhile\"],function(t,n){var e=n+1,r=e==vt||e==bt;In.prototype[t]=function(t){var n=this.clone();return n.__iteratees__.push({iteratee:Bi(t,3),type:e}),n.__filtered__=n.__filtered__||r,n}}),o([\"head\",\"last\"],function(t,n){var e=\"take\"+(n?\"Right\":\"\");In.prototype[t]=function(){return this[e](1).value()[0]}}),o([\"initial\",\"tail\"],function(t,n){var e=\"drop\"+(n?\"\":\"Right\");In.prototype[t]=function(){return this.__filtered__?new In(this):this[e](1)}}),In.prototype.compact=function(){return this.filter(Gs)},In.prototype.find=function(t){return this.filter(t).head()},In.prototype.findLast=function(t){return this.reverse().find(t)},In.prototype.invokeMap=zu(function(t,n){return\"function\"==typeof t?new In(this):this.map(function(e){return tr(e,t,n)})}),In.prototype.reject=function(t){return t=Bi(t,3),this.filter(function(n){return!t(n)})},In.prototype.slice=function(t,n){t=jo(t);var e=this;return e.__filtered__&&(t>0||0>n)?new In(e):(0>t?e=e.takeRight(-t):t&&(e=e.drop(t)),n!==X&&(n=jo(n),e=0>n?e.dropRight(-n):e.take(n-t)),e)},In.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()},In.prototype.toArray=function(){return this.take(Et)},We(In.prototype,function(t,e){var r=/^(?:filter|find|map|reject)|While$/.test(e),i=/^(?:head|last)$/.test(e),a=n[i?\"take\"+(\"last\"==e?\"Right\":\"\"):e],u=i||/^find/.test(e);a&&(n.prototype[e]=function(){var e=this.__wrapped__,o=i?[1]:arguments,s=e instanceof In,c=o[0],l=s||yh(e),h=function(t){var e=a.apply(n,p([t],o));return i&&f?e[0]:e};l&&r&&\"function\"==typeof c&&1!=c.length&&(s=l=!1);var f=this.__chain__,d=!!this.__actions__.length,g=u&&!f,y=s&&!d;if(!u&&l){e=y?e:new In(this);var m=t.apply(e,o);return m.__actions__.push({func:ou,args:[h],thisArg:X}),new L(m,f)}return g&&y?t.apply(this,o):(m=this.thru(h),g?i?m.value()[0]:m.value():m)})}),o([\"pop\",\"push\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(t){var e=Ac[t],r=/^(?:push|sort|unshift)$/.test(t)?\"tap\":\"thru\",i=/^(?:pop|shift)$/.test(t);n.prototype[t]=function(){var t=arguments;if(i&&!this.__chain__){var n=this.value();return e.apply(yh(n)?n:[],t)}return this[r](function(n){return e.apply(yh(n)?n:[],t)})}}),We(In.prototype,function(t,e){var r=n[e];if(r){var i=r.name+\"\",a=dl[i]||(dl[i]=[]);a.push({name:e,func:r})}}),dl[yi(X,rt).name]=[{name:\"wrapper\",func:X}],In.prototype.clone=Bn,In.prototype.reverse=Nn,In.prototype.value=Pn,n.prototype.at=Kl,n.prototype.chain=su,n.prototype.commit=cu,n.prototype.next=lu,n.prototype.plant=fu,n.prototype.reverse=du,n.prototype.toJSON=n.prototype.valueOf=n.prototype.value=pu,Uc&&(n.prototype[Uc]=hu),n}var X,K=\"4.13.1\",Q=200,J=\"Expected a function\",tt=\"__lodash_hash_undefined__\",nt=\"__lodash_placeholder__\",et=1,rt=2,it=4,at=8,ut=16,ot=32,st=64,ct=128,lt=256,ht=512,ft=1,dt=2,pt=30,gt=\"...\",yt=150,mt=16,vt=1,_t=2,bt=3,xt=1/0,wt=9007199254740991,At=1.7976931348623157e308,kt=0/0,Et=4294967295,Mt=Et-1,St=Et>>>1,Dt=\"[object Arguments]\",Ct=\"[object Array]\",Tt=\"[object Boolean]\",Ft=\"[object Date]\",Ot=\"[object Error]\",Lt=\"[object Function]\",It=\"[object GeneratorFunction]\",Bt=\"[object Map]\",Nt=\"[object Number]\",Pt=\"[object Object]\",Rt=\"[object Promise]\",jt=\"[object RegExp]\",Yt=\"[object Set]\",Ut=\"[object String]\",$t=\"[object Symbol]\",Wt=\"[object WeakMap]\",zt=\"[object WeakSet]\",qt=\"[object ArrayBuffer]\",Gt=\"[object DataView]\",Ht=\"[object Float32Array]\",Vt=\"[object Float64Array]\",Zt=\"[object Int8Array]\",Xt=\"[object Int16Array]\",Kt=\"[object Int32Array]\",Qt=\"[object Uint8Array]\",Jt=\"[object Uint8ClampedArray]\",tn=\"[object Uint16Array]\",nn=\"[object Uint32Array]\",en=/\\b__p \\+= '';/g,rn=/\\b(__p \\+=) '' \\+/g,an=/(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g,un=/&(?:amp|lt|gt|quot|#39|#96);/g,on=/[&<>\"'`]/g,sn=RegExp(un.source),cn=RegExp(on.source),ln=/<%-([\\s\\S]+?)%>/g,hn=/<%([\\s\\S]+?)%>/g,fn=/<%=([\\s\\S]+?)%>/g,dn=/\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,pn=/^\\w*$/,gn=/[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(\\.|\\[\\])(?:\\4|$))/g,yn=/[\\\\^$.*+?()[\\]{}|]/g,mn=RegExp(yn.source),vn=/^\\s+|\\s+$/g,_n=/^\\s+/,bn=/\\s+$/,xn=/[a-zA-Z0-9]+/g,wn=/\\\\(\\\\)?/g,An=/\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g,kn=/\\w*$/,En=/^0x/i,Mn=/^[-+]0x[0-9a-f]+$/i,Sn=/^0b[01]+$/i,Dn=/^\\[object .+?Constructor\\]$/,Cn=/^0o[0-7]+$/i,Tn=/^(?:0|[1-9]\\d*)$/,Fn=/[\\xc0-\\xd6\\xd8-\\xde\\xdf-\\xf6\\xf8-\\xff]/g,On=/($^)/,Ln=/['\\n\\r\\u2028\\u2029\\\\]/g,In=\"\\\\ud800-\\\\udfff\",Bn=\"\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23\",Nn=\"\\\\u20d0-\\\\u20f0\",Pn=\"\\\\u2700-\\\\u27bf\",Rn=\"a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff\",jn=\"\\\\xac\\\\xb1\\\\xd7\\\\xf7\",Yn=\"\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf\",Un=\"\\\\u2000-\\\\u206f\",$n=\" \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000\",Wn=\"A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde\",zn=\"\\\\ufe0e\\\\ufe0f\",qn=jn+Yn+Un+$n,Gn=\"['’]\",Hn=\"[\"+In+\"]\",Vn=\"[\"+qn+\"]\",Zn=\"[\"+Bn+Nn+\"]\",Xn=\"\\\\d+\",Kn=\"[\"+Pn+\"]\",Qn=\"[\"+Rn+\"]\",Jn=\"[^\"+In+qn+Xn+Pn+Rn+Wn+\"]\",te=\"\\\\ud83c[\\\\udffb-\\\\udfff]\",ne=\"(?:\"+Zn+\"|\"+te+\")\",ee=\"[^\"+In+\"]\",re=\"(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}\",ie=\"[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]\",ae=\"[\"+Wn+\"]\",ue=\"\\\\u200d\",oe=\"(?:\"+Qn+\"|\"+Jn+\")\",se=\"(?:\"+ae+\"|\"+Jn+\")\",ce=\"(?:\"+Gn+\"(?:d|ll|m|re|s|t|ve))?\",le=\"(?:\"+Gn+\"(?:D|LL|M|RE|S|T|VE))?\",he=ne+\"?\",fe=\"[\"+zn+\"]?\",de=\"(?:\"+ue+\"(?:\"+[ee,re,ie].join(\"|\")+\")\"+fe+he+\")*\",pe=fe+he+de,ge=\"(?:\"+[Kn,re,ie].join(\"|\")+\")\"+pe,ye=\"(?:\"+[ee+Zn+\"?\",Zn,re,ie,Hn].join(\"|\")+\")\",me=RegExp(Gn,\"g\"),ve=RegExp(Zn,\"g\"),_e=RegExp(te+\"(?=\"+te+\")|\"+ye+pe,\"g\"),be=RegExp([ae+\"?\"+Qn+\"+\"+ce+\"(?=\"+[Vn,ae,\"$\"].join(\"|\")+\")\",se+\"+\"+le+\"(?=\"+[Vn,ae+oe,\"$\"].join(\"|\")+\")\",ae+\"?\"+oe+\"+\"+ce,ae+\"+\"+le,Xn,ge].join(\"|\"),\"g\"),xe=RegExp(\"[\"+ue+In+Bn+Nn+zn+\"]\"),we=/[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Ae=[\"Array\",\"Buffer\",\"DataView\",\"Date\",\"Error\",\"Float32Array\",\"Float64Array\",\"Function\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Map\",\"Math\",\"Object\",\"Promise\",\"Reflect\",\"RegExp\",\"Set\",\"String\",\"Symbol\",\"TypeError\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"WeakMap\",\"_\",\"isFinite\",\"parseInt\",\"setTimeout\"],ke=-1,Ee={};Ee[Ht]=Ee[Vt]=Ee[Zt]=Ee[Xt]=Ee[Kt]=Ee[Qt]=Ee[Jt]=Ee[tn]=Ee[nn]=!0,Ee[Dt]=Ee[Ct]=Ee[qt]=Ee[Tt]=Ee[Gt]=Ee[Ft]=Ee[Ot]=Ee[Lt]=Ee[Bt]=Ee[Nt]=Ee[Pt]=Ee[jt]=Ee[Yt]=Ee[Ut]=Ee[Wt]=!1;var Me={};Me[Dt]=Me[Ct]=Me[qt]=Me[Gt]=Me[Tt]=Me[Ft]=Me[Ht]=Me[Vt]=Me[Zt]=Me[Xt]=Me[Kt]=Me[Bt]=Me[Nt]=Me[Pt]=Me[jt]=Me[Yt]=Me[Ut]=Me[$t]=Me[Qt]=Me[Jt]=Me[tn]=Me[nn]=!0,Me[Ot]=Me[Lt]=Me[Wt]=!1;var Se={\"À\":\"A\",\"Á\":\"A\",\"Â\":\"A\",\"Ã\":\"A\",\"Ä\":\"A\",\"Å\":\"A\",\"à\":\"a\",\"á\":\"a\",\"â\":\"a\",\"ã\":\"a\",\"ä\":\"a\",\"å\":\"a\",\"Ç\":\"C\",\"ç\":\"c\",\"Ð\":\"D\",\"ð\":\"d\",\"È\":\"E\",\"É\":\"E\",\"Ê\":\"E\",\"Ë\":\"E\",\"è\":\"e\",\"é\":\"e\",\"ê\":\"e\",\"ë\":\"e\",\"Ì\":\"I\",\"Í\":\"I\",\"Î\":\"I\",\"Ï\":\"I\",\"ì\":\"i\",\"í\":\"i\",\"î\":\"i\",\"ï\":\"i\",\"Ñ\":\"N\",\"ñ\":\"n\",\"Ò\":\"O\",\"Ó\":\"O\",\"Ô\":\"O\",\"Õ\":\"O\",\"Ö\":\"O\",\"Ø\":\"O\",\"ò\":\"o\",\"ó\":\"o\",\"ô\":\"o\",\"õ\":\"o\",\"ö\":\"o\",\"ø\":\"o\",\"Ù\":\"U\",\"Ú\":\"U\",\"Û\":\"U\",\"Ü\":\"U\",\"ù\":\"u\",\"ú\":\"u\",\"û\":\"u\",\"ü\":\"u\",\"Ý\":\"Y\",\"ý\":\"y\",\"ÿ\":\"y\",\"Æ\":\"Ae\",\"æ\":\"ae\",\"Þ\":\"Th\",\"þ\":\"th\",\"ß\":\"ss\"},De={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\",\"'\":\"'\",\"`\":\"`\"},Ce={\"&\":\"&\",\"<\":\"<\",\">\":\">\",\""\":'\"',\"'\":\"'\",\"`\":\"`\"},Te={\"\\\\\":\"\\\\\",\"'\":\"'\",\"\\n\":\"n\",\"\\r\":\"r\",\"\\u2028\":\"u2028\",\"\\u2029\":\"u2029\"},Fe=parseFloat,Oe=parseInt,Le=\"object\"==typeof e&&e,Ie=Le&&\"object\"==typeof n&&n,Be=Ie&&Ie.exports===Le,Ne=L(\"object\"==typeof t&&t),Pe=L(\"object\"==typeof self&&self),Re=L(\"object\"==typeof this&&this),je=Ne||Pe||Re||Function(\"return this\")(),Ye=Z();(Pe||{})._=Ye,\"function\"==typeof define&&\"object\"==typeof define.amd&&define.amd?define(function(){return Ye}):Ie?((Ie.exports=Ye)._=Ye,Le._=Ye):je._=Ye}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],104:[function(t,n,e){!function(t,r){\"object\"==typeof e&&\"undefined\"!=typeof n?n.exports=r():\"function\"==typeof define&&define.amd?define(r):t.moment=r()}(this,function(){\"use strict\";function e(){return sr.apply(null,arguments)}function r(t){sr=t}function i(t){return t instanceof Array||\"[object Array]\"===Object.prototype.toString.call(t)}function a(t){return t instanceof Date||\"[object Date]\"===Object.prototype.toString.call(t)}function u(t,n){var e,r=[];for(e=0;e<t.length;++e)r.push(n(t[e],e));return r}function o(t,n){return Object.prototype.hasOwnProperty.call(t,n)}function s(t,n){for(var e in n)o(n,e)&&(t[e]=n[e]);return o(n,\"toString\")&&(t.toString=n.toString),o(n,\"valueOf\")&&(t.valueOf=n.valueOf),t}function c(t,n,e,r){return Pt(t,n,e,r,!0).utc()}function l(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null}}function h(t){return null==t._pf&&(t._pf=l()),t._pf}function f(t){if(null==t._isValid){var n=h(t),e=cr.call(n.parsedDateParts,function(t){return null!=t});t._isValid=!isNaN(t._d.getTime())&&n.overflow<0&&!n.empty&&!n.invalidMonth&&!n.invalidWeekday&&!n.nullInput&&!n.invalidFormat&&!n.userInvalidated&&(!n.meridiem||n.meridiem&&e),t._strict&&(t._isValid=t._isValid&&0===n.charsLeftOver&&0===n.unusedTokens.length&&void 0===n.bigHour)}return t._isValid}function d(t){var n=c(0/0);return null!=t?s(h(n),t):h(n).userInvalidated=!0,n}function p(t){return void 0===t}function g(t,n){var e,r,i;if(p(n._isAMomentObject)||(t._isAMomentObject=n._isAMomentObject),p(n._i)||(t._i=n._i),p(n._f)||(t._f=n._f),p(n._l)||(t._l=n._l),p(n._strict)||(t._strict=n._strict),p(n._tzm)||(t._tzm=n._tzm),p(n._isUTC)||(t._isUTC=n._isUTC),p(n._offset)||(t._offset=n._offset),p(n._pf)||(t._pf=h(n)),p(n._locale)||(t._locale=n._locale),lr.length>0)for(e in lr)r=lr[e],i=n[r],p(i)||(t[r]=i);return t}function y(t){g(this,t),this._d=new Date(null!=t._d?t._d.getTime():0/0),hr===!1&&(hr=!0,e.updateOffset(this),hr=!1)}function m(t){return t instanceof y||null!=t&&null!=t._isAMomentObject}function v(t){return 0>t?Math.ceil(t):Math.floor(t)}function _(t){var n=+t,e=0;return 0!==n&&isFinite(n)&&(e=v(n)),e}function b(t,n,e){var r,i=Math.min(t.length,n.length),a=Math.abs(t.length-n.length),u=0;for(r=0;i>r;r++)(e&&t[r]!==n[r]||!e&&_(t[r])!==_(n[r]))&&u++;return u+a}function x(t){e.suppressDeprecationWarnings===!1&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+t)}function w(t,n){var r=!0;return s(function(){return null!=e.deprecationHandler&&e.deprecationHandler(null,t),r&&(x(t+\"\\nArguments: \"+Array.prototype.slice.call(arguments).join(\", \")+\"\\n\"+(new Error).stack),r=!1),n.apply(this,arguments)},n)}function A(t,n){null!=e.deprecationHandler&&e.deprecationHandler(t,n),fr[t]||(x(n),fr[t]=!0)}function k(t){return t instanceof Function||\"[object Function]\"===Object.prototype.toString.call(t)}function E(t){return\"[object Object]\"===Object.prototype.toString.call(t)}function M(t){var n,e;for(e in t)n=t[e],k(n)?this[e]=n:this[\"_\"+e]=n;this._config=t,this._ordinalParseLenient=new RegExp(this._ordinalParse.source+\"|\"+/\\d{1,2}/.source)}function S(t,n){var e,r=s({},t);for(e in n)o(n,e)&&(E(t[e])&&E(n[e])?(r[e]={},s(r[e],t[e]),s(r[e],n[e])):null!=n[e]?r[e]=n[e]:delete r[e]);return r}function D(t){null!=t&&this.set(t)}function C(t){return t?t.toLowerCase().replace(\"_\",\"-\"):t}function T(t){for(var n,e,r,i,a=0;a<t.length;){for(i=C(t[a]).split(\"-\"),n=i.length,e=C(t[a+1]),e=e?e.split(\"-\"):null;n>0;){if(r=F(i.slice(0,n).join(\"-\")))return r;if(e&&e.length>=n&&b(i,e,!0)>=n-1)break;n--}a++}return null}function F(e){var r=null;if(!yr[e]&&\"undefined\"!=typeof n&&n&&n.exports)try{r=pr._abbr,t(\"./locale/\"+e),O(r)}catch(i){}return yr[e]}function O(t,n){var e;return t&&(e=p(n)?B(t):L(t,n),e&&(pr=e)),pr._abbr}function L(t,n){return null!==n?(n.abbr=t,null!=yr[t]?(A(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale\"),n=S(yr[t]._config,n)):null!=n.parentLocale&&(null!=yr[n.parentLocale]?n=S(yr[n.parentLocale]._config,n):A(\"parentLocaleUndefined\",\"specified parentLocale is not defined yet\")),yr[t]=new D(n),O(t),yr[t]):(delete yr[t],null)}function I(t,n){if(null!=n){var e;null!=yr[t]&&(n=S(yr[t]._config,n)),e=new D(n),e.parentLocale=yr[t],yr[t]=e,O(t)}else null!=yr[t]&&(null!=yr[t].parentLocale?yr[t]=yr[t].parentLocale:null!=yr[t]&&delete yr[t]);return yr[t]}function B(t){var n;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return pr;if(!i(t)){if(n=F(t))return n;t=[t]}return T(t)}function N(){return dr(yr)}function P(t,n){var e=t.toLowerCase();mr[e]=mr[e+\"s\"]=mr[n]=t}function R(t){return\"string\"==typeof t?mr[t]||mr[t.toLowerCase()]:void 0}function j(t){var n,e,r={};for(e in t)o(t,e)&&(n=R(e),n&&(r[n]=t[e]));return r}function Y(t,n){return function(r){return null!=r?($(this,t,r),e.updateOffset(this,n),this):U(this,t)}}function U(t,n){return t.isValid()?t._d[\"get\"+(t._isUTC?\"UTC\":\"\")+n]():0/0}function $(t,n,e){t.isValid()&&t._d[\"set\"+(t._isUTC?\"UTC\":\"\")+n](e)}function W(t,n){var e;if(\"object\"==typeof t)for(e in t)this.set(e,t[e]);else if(t=R(t),k(this[t]))return this[t](n);return this}function z(t,n,e){var r=\"\"+Math.abs(t),i=n-r.length,a=t>=0;return(a?e?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,i)).toString().substr(1)+r}function q(t,n,e,r){var i=r;\"string\"==typeof r&&(i=function(){return this[r]()}),t&&(xr[t]=i),n&&(xr[n[0]]=function(){return z(i.apply(this,arguments),n[1],n[2])}),e&&(xr[e]=function(){return this.localeData().ordinal(i.apply(this,arguments),t)})}function G(t){return t.match(/\\[[\\s\\S]/)?t.replace(/^\\[|\\]$/g,\"\"):t.replace(/\\\\/g,\"\")}function H(t){var n,e,r=t.match(vr);for(n=0,e=r.length;e>n;n++)r[n]=xr[r[n]]?xr[r[n]]:G(r[n]);return function(n){var i,a=\"\";for(i=0;e>i;i++)a+=r[i]instanceof Function?r[i].call(n,t):r[i];return a}}function V(t,n){return t.isValid()?(n=Z(n,t.localeData()),br[n]=br[n]||H(n),br[n](t)):t.localeData().invalidDate()}function Z(t,n){function e(t){return n.longDateFormat(t)||t}var r=5;for(_r.lastIndex=0;r>=0&&_r.test(t);)t=t.replace(_r,e),_r.lastIndex=0,r-=1;return t}function X(t,n,e){jr[t]=k(n)?n:function(t){return t&&e?e:n}}function K(t,n){return o(jr,t)?jr[t](n._strict,n._locale):new RegExp(Q(t))}function Q(t){return J(t.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(t,n,e,r,i){return n||e||r||i}))}function J(t){return t.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function tt(t,n){var e,r=n;for(\"string\"==typeof t&&(t=[t]),\"number\"==typeof n&&(r=function(t,e){e[n]=_(t)}),e=0;e<t.length;e++)Yr[t[e]]=r}function nt(t,n){tt(t,function(t,e,r,i){r._w=r._w||{},n(t,r._w,r,i)})}function et(t,n,e){null!=n&&o(Yr,t)&&Yr[t](n,e._a,e,t)}function rt(t,n){return new Date(Date.UTC(t,n+1,0)).getUTCDate()}function it(t,n){return i(this._months)?this._months[t.month()]:this._months[Xr.test(n)?\"format\":\"standalone\"][t.month()]}function at(t,n){return i(this._monthsShort)?this._monthsShort[t.month()]:this._monthsShort[Xr.test(n)?\"format\":\"standalone\"][t.month()]}function ut(t,n,e){var r,i,a,u=t.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],r=0;12>r;++r)a=c([2e3,r]),this._shortMonthsParse[r]=this.monthsShort(a,\"\").toLocaleLowerCase(),this._longMonthsParse[r]=this.months(a,\"\").toLocaleLowerCase();return e?\"MMM\"===n?(i=gr.call(this._shortMonthsParse,u),-1!==i?i:null):(i=gr.call(this._longMonthsParse,u),-1!==i?i:null):\"MMM\"===n?(i=gr.call(this._shortMonthsParse,u),-1!==i?i:(i=gr.call(this._longMonthsParse,u),-1!==i?i:null)):(i=gr.call(this._longMonthsParse,u),-1!==i?i:(i=gr.call(this._shortMonthsParse,u),-1!==i?i:null))}function ot(t,n,e){var r,i,a;if(this._monthsParseExact)return ut.call(this,t,n,e);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;12>r;r++){if(i=c([2e3,r]),e&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp(\"^\"+this.months(i,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[r]=new RegExp(\"^\"+this.monthsShort(i,\"\").replace(\".\",\"\")+\"$\",\"i\")),e||this._monthsParse[r]||(a=\"^\"+this.months(i,\"\")+\"|^\"+this.monthsShort(i,\"\"),this._monthsParse[r]=new RegExp(a.replace(\".\",\"\"),\"i\")),e&&\"MMMM\"===n&&this._longMonthsParse[r].test(t))return r;if(e&&\"MMM\"===n&&this._shortMonthsParse[r].test(t))return r;if(!e&&this._monthsParse[r].test(t))return r}}function st(t,n){var e;if(!t.isValid())return t;if(\"string\"==typeof n)if(/^\\d+$/.test(n))n=_(n);else if(n=t.localeData().monthsParse(n),\"number\"!=typeof n)return t;return e=Math.min(t.date(),rt(t.year(),n)),t._d[\"set\"+(t._isUTC?\"UTC\":\"\")+\"Month\"](n,e),t}function ct(t){return null!=t?(st(this,t),e.updateOffset(this,!0),this):U(this,\"Month\")}function lt(){return rt(this.year(),this.month())}function ht(t){return this._monthsParseExact?(o(this,\"_monthsRegex\")||dt.call(this),t?this._monthsShortStrictRegex:this._monthsShortRegex):this._monthsShortStrictRegex&&t?this._monthsShortStrictRegex:this._monthsShortRegex}function ft(t){return this._monthsParseExact?(o(this,\"_monthsRegex\")||dt.call(this),t?this._monthsStrictRegex:this._monthsRegex):this._monthsStrictRegex&&t?this._monthsStrictRegex:this._monthsRegex}function dt(){function t(t,n){return n.length-t.length}var n,e,r=[],i=[],a=[];for(n=0;12>n;n++)e=c([2e3,n]),r.push(this.monthsShort(e,\"\")),i.push(this.months(e,\"\")),a.push(this.months(e,\"\")),a.push(this.monthsShort(e,\"\"));for(r.sort(t),i.sort(t),a.sort(t),n=0;12>n;n++)r[n]=J(r[n]),i[n]=J(i[n]),a[n]=J(a[n]);this._monthsRegex=new RegExp(\"^(\"+a.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+r.join(\"|\")+\")\",\"i\")}function pt(t){var n,e=t._a;return e&&-2===h(t).overflow&&(n=e[$r]<0||e[$r]>11?$r:e[Wr]<1||e[Wr]>rt(e[Ur],e[$r])?Wr:e[zr]<0||e[zr]>24||24===e[zr]&&(0!==e[qr]||0!==e[Gr]||0!==e[Hr])?zr:e[qr]<0||e[qr]>59?qr:e[Gr]<0||e[Gr]>59?Gr:e[Hr]<0||e[Hr]>999?Hr:-1,h(t)._overflowDayOfYear&&(Ur>n||n>Wr)&&(n=Wr),h(t)._overflowWeeks&&-1===n&&(n=Vr),h(t)._overflowWeekday&&-1===n&&(n=Zr),h(t).overflow=n),t}function gt(t){var n,e,r,i,a,u,o=t._i,s=ni.exec(o)||ei.exec(o);if(s){for(h(t).iso=!0,n=0,e=ii.length;e>n;n++)if(ii[n][1].exec(s[1])){i=ii[n][0],r=ii[n][2]!==!1;break}if(null==i)return void(t._isValid=!1);if(s[3]){for(n=0,e=ai.length;e>n;n++)if(ai[n][1].exec(s[3])){a=(s[2]||\" \")+ai[n][0];break}if(null==a)return void(t._isValid=!1)}if(!r&&null!=a)return void(t._isValid=!1);if(s[4]){if(!ri.exec(s[4]))return void(t._isValid=!1);u=\"Z\"}t._f=i+(a||\"\")+(u||\"\"),Tt(t)}else t._isValid=!1}function yt(t){var n=ui.exec(t._i);return null!==n?void(t._d=new Date(+n[1])):(gt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function mt(t,n,e,r,i,a,u){var o=new Date(t,n,e,r,i,a,u);return 100>t&&t>=0&&isFinite(o.getFullYear())&&o.setFullYear(t),o}function vt(t){var n=new Date(Date.UTC.apply(null,arguments));return 100>t&&t>=0&&isFinite(n.getUTCFullYear())&&n.setUTCFullYear(t),n}function _t(t){return bt(t)?366:365}function bt(t){return t%4===0&&t%100!==0||t%400===0}function xt(){return bt(this.year())}function wt(t,n,e){var r=7+n-e,i=(7+vt(t,0,r).getUTCDay()-n)%7;return-i+r-1}function At(t,n,e,r,i){var a,u,o=(7+e-r)%7,s=wt(t,r,i),c=1+7*(n-1)+o+s;return 0>=c?(a=t-1,u=_t(a)+c):c>_t(t)?(a=t+1,u=c-_t(t)):(a=t,u=c),{year:a,dayOfYear:u}}function kt(t,n,e){var r,i,a=wt(t.year(),n,e),u=Math.floor((t.dayOfYear()-a-1)/7)+1;return 1>u?(i=t.year()-1,r=u+Et(i,n,e)):u>Et(t.year(),n,e)?(r=u-Et(t.year(),n,e),i=t.year()+1):(i=t.year(),r=u),{week:r,year:i}}function Et(t,n,e){var r=wt(t,n,e),i=wt(t+1,n,e);return(_t(t)-r+i)/7}function Mt(t,n,e){return null!=t?t:null!=n?n:e}function St(t){var n=new Date(e.now());return t._useUTC?[n.getUTCFullYear(),n.getUTCMonth(),n.getUTCDate()]:[n.getFullYear(),n.getMonth(),n.getDate()]}function Dt(t){var n,e,r,i,a=[];if(!t._d){for(r=St(t),t._w&&null==t._a[Wr]&&null==t._a[$r]&&Ct(t),t._dayOfYear&&(i=Mt(t._a[Ur],r[Ur]),t._dayOfYear>_t(i)&&(h(t)._overflowDayOfYear=!0),e=vt(i,0,t._dayOfYear),t._a[$r]=e.getUTCMonth(),t._a[Wr]=e.getUTCDate()),n=0;3>n&&null==t._a[n];++n)t._a[n]=a[n]=r[n];for(;7>n;n++)t._a[n]=a[n]=null==t._a[n]?2===n?1:0:t._a[n];24===t._a[zr]&&0===t._a[qr]&&0===t._a[Gr]&&0===t._a[Hr]&&(t._nextDay=!0,t._a[zr]=0),t._d=(t._useUTC?vt:mt).apply(null,a),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[zr]=24)}}function Ct(t){var n,e,r,i,a,u,o,s;n=t._w,null!=n.GG||null!=n.W||null!=n.E?(a=1,u=4,e=Mt(n.GG,t._a[Ur],kt(Rt(),1,4).year),r=Mt(n.W,1),i=Mt(n.E,1),(1>i||i>7)&&(s=!0)):(a=t._locale._week.dow,u=t._locale._week.doy,e=Mt(n.gg,t._a[Ur],kt(Rt(),a,u).year),r=Mt(n.w,1),null!=n.d?(i=n.d,(0>i||i>6)&&(s=!0)):null!=n.e?(i=n.e+a,(n.e<0||n.e>6)&&(s=!0)):i=a),1>r||r>Et(e,a,u)?h(t)._overflowWeeks=!0:null!=s?h(t)._overflowWeekday=!0:(o=At(e,r,i,a,u),t._a[Ur]=o.year,t._dayOfYear=o.dayOfYear)}function Tt(t){if(t._f===e.ISO_8601)return void gt(t);t._a=[],h(t).empty=!0;var n,r,i,a,u,o=\"\"+t._i,s=o.length,c=0;for(i=Z(t._f,t._locale).match(vr)||[],n=0;n<i.length;n++)a=i[n],r=(o.match(K(a,t))||[])[0],r&&(u=o.substr(0,o.indexOf(r)),u.length>0&&h(t).unusedInput.push(u),o=o.slice(o.indexOf(r)+r.length),c+=r.length),xr[a]?(r?h(t).empty=!1:h(t).unusedTokens.push(a),et(a,r,t)):t._strict&&!r&&h(t).unusedTokens.push(a);h(t).charsLeftOver=s-c,o.length>0&&h(t).unusedInput.push(o),h(t).bigHour===!0&&t._a[zr]<=12&&t._a[zr]>0&&(h(t).bigHour=void 0),h(t).parsedDateParts=t._a.slice(0),h(t).meridiem=t._meridiem,t._a[zr]=Ft(t._locale,t._a[zr],t._meridiem),Dt(t),pt(t)}function Ft(t,n,e){var r;return null==e?n:null!=t.meridiemHour?t.meridiemHour(n,e):null!=t.isPM?(r=t.isPM(e),r&&12>n&&(n+=12),r||12!==n||(n=0),n):n}function Ot(t){var n,e,r,i,a;if(0===t._f.length)return h(t).invalidFormat=!0,void(t._d=new Date(0/0));for(i=0;i<t._f.length;i++)a=0,n=g({},t),null!=t._useUTC&&(n._useUTC=t._useUTC),n._f=t._f[i],Tt(n),f(n)&&(a+=h(n).charsLeftOver,a+=10*h(n).unusedTokens.length,h(n).score=a,(null==r||r>a)&&(r=a,e=n));s(t,e||n)}function Lt(t){if(!t._d){var n=j(t._i);t._a=u([n.year,n.month,n.day||n.date,n.hour,n.minute,n.second,n.millisecond],function(t){return t&&parseInt(t,10)}),Dt(t)}}function It(t){var n=new y(pt(Bt(t)));return n._nextDay&&(n.add(1,\"d\"),n._nextDay=void 0),n}function Bt(t){var n=t._i,e=t._f;return t._locale=t._locale||B(t._l),null===n||void 0===e&&\"\"===n?d({nullInput:!0}):(\"string\"==typeof n&&(t._i=n=t._locale.preparse(n)),m(n)?new y(pt(n)):(i(e)?Ot(t):e?Tt(t):a(n)?t._d=n:Nt(t),f(t)||(t._d=null),t))}function Nt(t){var n=t._i;void 0===n?t._d=new Date(e.now()):a(n)?t._d=new Date(n.valueOf()):\"string\"==typeof n?yt(t):i(n)?(t._a=u(n.slice(0),function(t){return parseInt(t,10)}),Dt(t)):\"object\"==typeof n?Lt(t):\"number\"==typeof n?t._d=new Date(n):e.createFromInputFallback(t)}function Pt(t,n,e,r,i){var a={};return\"boolean\"==typeof e&&(r=e,e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=e,a._i=t,a._f=n,a._strict=r,It(a)}function Rt(t,n,e,r){return Pt(t,n,e,r,!1)}function jt(t,n){var e,r;if(1===n.length&&i(n[0])&&(n=n[0]),!n.length)return Rt();for(e=n[0],r=1;r<n.length;++r)(!n[r].isValid()||n[r][t](e))&&(e=n[r]);return e}function Yt(){var t=[].slice.call(arguments,0);return jt(\"isBefore\",t)}function Ut(){var t=[].slice.call(arguments,0);return jt(\"isAfter\",t)}function $t(t){var n=j(t),e=n.year||0,r=n.quarter||0,i=n.month||0,a=n.week||0,u=n.day||0,o=n.hour||0,s=n.minute||0,c=n.second||0,l=n.millisecond||0;this._milliseconds=+l+1e3*c+6e4*s+1e3*o*60*60,this._days=+u+7*a,this._months=+i+3*r+12*e,this._data={},this._locale=B(),this._bubble()}function Wt(t){return t instanceof $t}function zt(t,n){q(t,0,0,function(){var t=this.utcOffset(),e=\"+\";return 0>t&&(t=-t,e=\"-\"),e+z(~~(t/60),2)+n+z(~~t%60,2)})}function qt(t,n){var e=(n||\"\").match(t)||[],r=e[e.length-1]||[],i=(r+\"\").match(hi)||[\"-\",0,0],a=+(60*i[1])+_(i[2]);return\"+\"===i[0]?a:-a}function Gt(t,n){var r,i;return n._isUTC?(r=n.clone(),i=(m(t)||a(t)?t.valueOf():Rt(t).valueOf())-r.valueOf(),r._d.setTime(r._d.valueOf()+i),e.updateOffset(r,!1),r):Rt(t).local()}function Ht(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Vt(t,n){var r,i=this._offset||0;return this.isValid()?null!=t?(\"string\"==typeof t?t=qt(Nr,t):Math.abs(t)<16&&(t=60*t),!this._isUTC&&n&&(r=Ht(this)),this._offset=t,this._isUTC=!0,null!=r&&this.add(r,\"m\"),i!==t&&(!n||this._changeInProgress?fn(this,un(t-i,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?i:Ht(this):null!=t?this:0/0}function Zt(t,n){return null!=t?(\"string\"!=typeof t&&(t=-t),this.utcOffset(t,n),this):-this.utcOffset()}function Xt(t){return this.utcOffset(0,t)}function Kt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ht(this),\"m\")),this}function Qt(){return this._tzm?this.utcOffset(this._tzm):\"string\"==typeof this._i&&this.utcOffset(qt(Br,this._i)),this}function Jt(t){return this.isValid()?(t=t?Rt(t).utcOffset():0,(this.utcOffset()-t)%60===0):!1}function tn(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function nn(){if(!p(this._isDSTShifted))return this._isDSTShifted;var t={};if(g(t,this),t=Bt(t),t._a){var n=t._isUTC?c(t._a):Rt(t._a);this._isDSTShifted=this.isValid()&&b(t._a,n.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function en(){return this.isValid()?!this._isUTC:!1}function rn(){return this.isValid()?this._isUTC:!1}function an(){return this.isValid()?this._isUTC&&0===this._offset:!1}function un(t,n){var e,r,i,a=t,u=null;return Wt(t)?a={ms:t._milliseconds,d:t._days,M:t._months}:\"number\"==typeof t?(a={},n?a[n]=t:a.milliseconds=t):(u=fi.exec(t))?(e=\"-\"===u[1]?-1:1,a={y:0,d:_(u[Wr])*e,h:_(u[zr])*e,m:_(u[qr])*e,s:_(u[Gr])*e,ms:_(u[Hr])*e}):(u=di.exec(t))?(e=\"-\"===u[1]?-1:1,a={y:on(u[2],e),M:on(u[3],e),w:on(u[4],e),d:on(u[5],e),h:on(u[6],e),m:on(u[7],e),s:on(u[8],e)}):null==a?a={}:\"object\"==typeof a&&(\"from\"in a||\"to\"in a)&&(i=cn(Rt(a.from),Rt(a.to)),a={},a.ms=i.milliseconds,a.M=i.months),r=new $t(a),Wt(t)&&o(t,\"_locale\")&&(r._locale=t._locale),r}function on(t,n){var e=t&&parseFloat(t.replace(\",\",\".\"));return(isNaN(e)?0:e)*n}function sn(t,n){var e={milliseconds:0,months:0};return e.months=n.month()-t.month()+12*(n.year()-t.year()),t.clone().add(e.months,\"M\").isAfter(n)&&--e.months,e.milliseconds=+n-+t.clone().add(e.months,\"M\"),e}function cn(t,n){var e;return t.isValid()&&n.isValid()?(n=Gt(n,t),t.isBefore(n)?e=sn(t,n):(e=sn(n,t),e.milliseconds=-e.milliseconds,e.months=-e.months),e):{milliseconds:0,months:0}}function ln(t){return 0>t?-1*Math.round(-1*t):Math.round(t)}function hn(t,n){return function(e,r){var i,a;return null===r||isNaN(+r)||(A(n,\"moment().\"+n+\"(period, number) is deprecated. Please use moment().\"+n+\"(number, period).\"),\na=e,e=r,r=a),e=\"string\"==typeof e?+e:e,i=un(e,r),fn(this,i,t),this}}function fn(t,n,r,i){var a=n._milliseconds,u=ln(n._days),o=ln(n._months);t.isValid()&&(i=null==i?!0:i,a&&t._d.setTime(t._d.valueOf()+a*r),u&&$(t,\"Date\",U(t,\"Date\")+u*r),o&&st(t,U(t,\"Month\")+o*r),i&&e.updateOffset(t,u||o))}function dn(t,n){var e=t||Rt(),r=Gt(e,this).startOf(\"day\"),i=this.diff(r,\"days\",!0),a=-6>i?\"sameElse\":-1>i?\"lastWeek\":0>i?\"lastDay\":1>i?\"sameDay\":2>i?\"nextDay\":7>i?\"nextWeek\":\"sameElse\",u=n&&(k(n[a])?n[a]():n[a]);return this.format(u||this.localeData().calendar(a,this,Rt(e)))}function pn(){return new y(this)}function gn(t,n){var e=m(t)?t:Rt(t);return this.isValid()&&e.isValid()?(n=R(p(n)?\"millisecond\":n),\"millisecond\"===n?this.valueOf()>e.valueOf():e.valueOf()<this.clone().startOf(n).valueOf()):!1}function yn(t,n){var e=m(t)?t:Rt(t);return this.isValid()&&e.isValid()?(n=R(p(n)?\"millisecond\":n),\"millisecond\"===n?this.valueOf()<e.valueOf():this.clone().endOf(n).valueOf()<e.valueOf()):!1}function mn(t,n,e,r){return r=r||\"()\",(\"(\"===r[0]?this.isAfter(t,e):!this.isBefore(t,e))&&(\")\"===r[1]?this.isBefore(n,e):!this.isAfter(n,e))}function vn(t,n){var e,r=m(t)?t:Rt(t);return this.isValid()&&r.isValid()?(n=R(n||\"millisecond\"),\"millisecond\"===n?this.valueOf()===r.valueOf():(e=r.valueOf(),this.clone().startOf(n).valueOf()<=e&&e<=this.clone().endOf(n).valueOf())):!1}function _n(t,n){return this.isSame(t,n)||this.isAfter(t,n)}function bn(t,n){return this.isSame(t,n)||this.isBefore(t,n)}function xn(t,n,e){var r,i,a,u;return this.isValid()?(r=Gt(t,this),r.isValid()?(i=6e4*(r.utcOffset()-this.utcOffset()),n=R(n),\"year\"===n||\"month\"===n||\"quarter\"===n?(u=wn(this,r),\"quarter\"===n?u/=3:\"year\"===n&&(u/=12)):(a=this-r,u=\"second\"===n?a/1e3:\"minute\"===n?a/6e4:\"hour\"===n?a/36e5:\"day\"===n?(a-i)/864e5:\"week\"===n?(a-i)/6048e5:a),e?u:v(u)):0/0):0/0}function wn(t,n){var e,r,i=12*(n.year()-t.year())+(n.month()-t.month()),a=t.clone().add(i,\"months\");return 0>n-a?(e=t.clone().add(i-1,\"months\"),r=(n-a)/(a-e)):(e=t.clone().add(i+1,\"months\"),r=(n-a)/(e-a)),-(i+r)||0}function An(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function kn(){var t=this.clone().utc();return 0<t.year()&&t.year()<=9999?k(Date.prototype.toISOString)?this.toDate().toISOString():V(t,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):V(t,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function En(t){t||(t=this.isUtc()?e.defaultFormatUtc:e.defaultFormat);var n=V(this,t);return this.localeData().postformat(n)}function Mn(t,n){return this.isValid()&&(m(t)&&t.isValid()||Rt(t).isValid())?un({to:this,from:t}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()}function Sn(t){return this.from(Rt(),t)}function Dn(t,n){return this.isValid()&&(m(t)&&t.isValid()||Rt(t).isValid())?un({from:this,to:t}).locale(this.locale()).humanize(!n):this.localeData().invalidDate()}function Cn(t){return this.to(Rt(),t)}function Tn(t){var n;return void 0===t?this._locale._abbr:(n=B(t),null!=n&&(this._locale=n),this)}function Fn(){return this._locale}function On(t){switch(t=R(t)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===t&&this.weekday(0),\"isoWeek\"===t&&this.isoWeekday(1),\"quarter\"===t&&this.month(3*Math.floor(this.month()/3)),this}function Ln(t){return t=R(t),void 0===t||\"millisecond\"===t?this:(\"date\"===t&&(t=\"day\"),this.startOf(t).add(1,\"isoWeek\"===t?\"week\":t).subtract(1,\"ms\"))}function In(){return this._d.valueOf()-6e4*(this._offset||0)}function Bn(){return Math.floor(this.valueOf()/1e3)}function Nn(){return this._offset?new Date(this.valueOf()):this._d}function Pn(){var t=this;return[t.year(),t.month(),t.date(),t.hour(),t.minute(),t.second(),t.millisecond()]}function Rn(){var t=this;return{years:t.year(),months:t.month(),date:t.date(),hours:t.hours(),minutes:t.minutes(),seconds:t.seconds(),milliseconds:t.milliseconds()}}function jn(){return this.isValid()?this.toISOString():null}function Yn(){return f(this)}function Un(){return s({},h(this))}function $n(){return h(this).overflow}function Wn(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function zn(t,n){q(0,[t,t.length],0,n)}function qn(t){return Zn.call(this,t,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Gn(t){return Zn.call(this,t,this.isoWeek(),this.isoWeekday(),1,4)}function Hn(){return Et(this.year(),1,4)}function Vn(){var t=this.localeData()._week;return Et(this.year(),t.dow,t.doy)}function Zn(t,n,e,r,i){var a;return null==t?kt(this,r,i).year:(a=Et(t,r,i),n>a&&(n=a),Xn.call(this,t,n,e,r,i))}function Xn(t,n,e,r,i){var a=At(t,n,e,r,i),u=vt(a.year,0,a.dayOfYear);return this.year(u.getUTCFullYear()),this.month(u.getUTCMonth()),this.date(u.getUTCDate()),this}function Kn(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)}function Qn(t){return kt(t,this._week.dow,this._week.doy).week}function Jn(){return this._week.dow}function te(){return this._week.doy}function ne(t){var n=this.localeData().week(this);return null==t?n:this.add(7*(t-n),\"d\")}function ee(t){var n=kt(this,1,4).week;return null==t?n:this.add(7*(t-n),\"d\")}function re(t,n){return\"string\"!=typeof t?t:isNaN(t)?(t=n.weekdaysParse(t),\"number\"==typeof t?t:null):parseInt(t,10)}function ie(t,n){return i(this._weekdays)?this._weekdays[t.day()]:this._weekdays[this._weekdays.isFormat.test(n)?\"format\":\"standalone\"][t.day()]}function ae(t){return this._weekdaysShort[t.day()]}function ue(t){return this._weekdaysMin[t.day()]}function oe(t,n,e){var r,i,a,u=t.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;7>r;++r)a=c([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(a,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(a,\"\").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(a,\"\").toLocaleLowerCase();return e?\"dddd\"===n?(i=gr.call(this._weekdaysParse,u),-1!==i?i:null):\"ddd\"===n?(i=gr.call(this._shortWeekdaysParse,u),-1!==i?i:null):(i=gr.call(this._minWeekdaysParse,u),-1!==i?i:null):\"dddd\"===n?(i=gr.call(this._weekdaysParse,u),-1!==i?i:(i=gr.call(this._shortWeekdaysParse,u),-1!==i?i:(i=gr.call(this._minWeekdaysParse,u),-1!==i?i:null))):\"ddd\"===n?(i=gr.call(this._shortWeekdaysParse,u),-1!==i?i:(i=gr.call(this._weekdaysParse,u),-1!==i?i:(i=gr.call(this._minWeekdaysParse,u),-1!==i?i:null))):(i=gr.call(this._minWeekdaysParse,u),-1!==i?i:(i=gr.call(this._weekdaysParse,u),-1!==i?i:(i=gr.call(this._shortWeekdaysParse,u),-1!==i?i:null)))}function se(t,n,e){var r,i,a;if(this._weekdaysParseExact)return oe.call(this,t,n,e);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;7>r;r++){if(i=c([2e3,1]).day(r),e&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp(\"^\"+this.weekdays(i,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[r]=new RegExp(\"^\"+this.weekdaysShort(i,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[r]=new RegExp(\"^\"+this.weekdaysMin(i,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[r]||(a=\"^\"+this.weekdays(i,\"\")+\"|^\"+this.weekdaysShort(i,\"\")+\"|^\"+this.weekdaysMin(i,\"\"),this._weekdaysParse[r]=new RegExp(a.replace(\".\",\"\"),\"i\")),e&&\"dddd\"===n&&this._fullWeekdaysParse[r].test(t))return r;if(e&&\"ddd\"===n&&this._shortWeekdaysParse[r].test(t))return r;if(e&&\"dd\"===n&&this._minWeekdaysParse[r].test(t))return r;if(!e&&this._weekdaysParse[r].test(t))return r}}function ce(t){if(!this.isValid())return null!=t?this:0/0;var n=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=re(t,this.localeData()),this.add(t-n,\"d\")):n}function le(t){if(!this.isValid())return null!=t?this:0/0;var n=(this.day()+7-this.localeData()._week.dow)%7;return null==t?n:this.add(t-n,\"d\")}function he(t){return this.isValid()?null==t?this.day()||7:this.day(this.day()%7?t:t-7):null!=t?this:0/0}function fe(t){return this._weekdaysParseExact?(o(this,\"_weekdaysRegex\")||ge.call(this),t?this._weekdaysStrictRegex:this._weekdaysRegex):this._weekdaysStrictRegex&&t?this._weekdaysStrictRegex:this._weekdaysRegex}function de(t){return this._weekdaysParseExact?(o(this,\"_weekdaysRegex\")||ge.call(this),t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):this._weekdaysShortStrictRegex&&t?this._weekdaysShortStrictRegex:this._weekdaysShortRegex}function pe(t){return this._weekdaysParseExact?(o(this,\"_weekdaysRegex\")||ge.call(this),t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):this._weekdaysMinStrictRegex&&t?this._weekdaysMinStrictRegex:this._weekdaysMinRegex}function ge(){function t(t,n){return n.length-t.length}var n,e,r,i,a,u=[],o=[],s=[],l=[];for(n=0;7>n;n++)e=c([2e3,1]).day(n),r=this.weekdaysMin(e,\"\"),i=this.weekdaysShort(e,\"\"),a=this.weekdays(e,\"\"),u.push(r),o.push(i),s.push(a),l.push(r),l.push(i),l.push(a);for(u.sort(t),o.sort(t),s.sort(t),l.sort(t),n=0;7>n;n++)o[n]=J(o[n]),s[n]=J(s[n]),l[n]=J(l[n]);this._weekdaysRegex=new RegExp(\"^(\"+l.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+s.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+o.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+u.join(\"|\")+\")\",\"i\")}function ye(t){var n=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==t?n:this.add(t-n,\"d\")}function me(){return this.hours()%12||12}function ve(){return this.hours()||24}function _e(t,n){q(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),n)})}function be(t,n){return n._meridiemParse}function xe(t){return\"p\"===(t+\"\").toLowerCase().charAt(0)}function we(t,n,e){return t>11?e?\"pm\":\"PM\":e?\"am\":\"AM\"}function Ae(t,n){n[Hr]=_(1e3*(\"0.\"+t))}function ke(){return this._isUTC?\"UTC\":\"\"}function Ee(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Me(t){return Rt(1e3*t)}function Se(){return Rt.apply(null,arguments).parseZone()}function De(t,n,e){var r=this._calendar[t];return k(r)?r.call(n,e):r}function Ce(t){var n=this._longDateFormat[t],e=this._longDateFormat[t.toUpperCase()];return n||!e?n:(this._longDateFormat[t]=e.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function Te(){return this._invalidDate}function Fe(t){return this._ordinal.replace(\"%d\",t)}function Oe(t){return t}function Le(t,n,e,r){var i=this._relativeTime[e];return k(i)?i(t,n,e,r):i.replace(/%d/i,t)}function Ie(t,n){var e=this._relativeTime[t>0?\"future\":\"past\"];return k(e)?e(n):e.replace(/%s/i,n)}function Be(t,n,e,r){var i=B(),a=c().set(r,n);return i[e](a,t)}function Ne(t,n,e){if(\"number\"==typeof t&&(n=t,t=void 0),t=t||\"\",null!=n)return Be(t,n,e,\"month\");var r,i=[];for(r=0;12>r;r++)i[r]=Be(t,r,e,\"month\");return i}function Pe(t,n,e,r){\"boolean\"==typeof t?(\"number\"==typeof n&&(e=n,n=void 0),n=n||\"\"):(n=t,e=n,t=!1,\"number\"==typeof n&&(e=n,n=void 0),n=n||\"\");var i=B(),a=t?i._week.dow:0;if(null!=e)return Be(n,(e+a)%7,r,\"day\");var u,o=[];for(u=0;7>u;u++)o[u]=Be(n,(u+a)%7,r,\"day\");return o}function Re(t,n){return Ne(t,n,\"months\")}function je(t,n){return Ne(t,n,\"monthsShort\")}function Ye(t,n,e){return Pe(t,n,e,\"weekdays\")}function Ue(t,n,e){return Pe(t,n,e,\"weekdaysShort\")}function $e(t,n,e){return Pe(t,n,e,\"weekdaysMin\")}function We(){var t=this._data;return this._milliseconds=Yi(this._milliseconds),this._days=Yi(this._days),this._months=Yi(this._months),t.milliseconds=Yi(t.milliseconds),t.seconds=Yi(t.seconds),t.minutes=Yi(t.minutes),t.hours=Yi(t.hours),t.months=Yi(t.months),t.years=Yi(t.years),this}function ze(t,n,e,r){var i=un(n,e);return t._milliseconds+=r*i._milliseconds,t._days+=r*i._days,t._months+=r*i._months,t._bubble()}function qe(t,n){return ze(this,t,n,1)}function Ge(t,n){return ze(this,t,n,-1)}function He(t){return 0>t?Math.floor(t):Math.ceil(t)}function Ve(){var t,n,e,r,i,a=this._milliseconds,u=this._days,o=this._months,s=this._data;return a>=0&&u>=0&&o>=0||0>=a&&0>=u&&0>=o||(a+=864e5*He(Xe(o)+u),u=0,o=0),s.milliseconds=a%1e3,t=v(a/1e3),s.seconds=t%60,n=v(t/60),s.minutes=n%60,e=v(n/60),s.hours=e%24,u+=v(e/24),i=v(Ze(u)),o+=i,u-=He(Xe(i)),r=v(o/12),o%=12,s.days=u,s.months=o,s.years=r,this}function Ze(t){return 4800*t/146097}function Xe(t){return 146097*t/4800}function Ke(t){var n,e,r=this._milliseconds;if(t=R(t),\"month\"===t||\"year\"===t)return n=this._days+r/864e5,e=this._months+Ze(n),\"month\"===t?e:e/12;switch(n=this._days+Math.round(Xe(this._months)),t){case\"week\":return n/7+r/6048e5;case\"day\":return n+r/864e5;case\"hour\":return 24*n+r/36e5;case\"minute\":return 1440*n+r/6e4;case\"second\":return 86400*n+r/1e3;case\"millisecond\":return Math.floor(864e5*n)+r;default:throw new Error(\"Unknown unit \"+t)}}function Qe(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*_(this._months/12)}function Je(t){return function(){return this.as(t)}}function tr(t){return t=R(t),this[t+\"s\"]()}function nr(t){return function(){return this._data[t]}}function er(){return v(this.days()/7)}function rr(t,n,e,r,i){return i.relativeTime(n||1,!!e,t,r)}function ir(t,n,e){var r=un(t).abs(),i=ea(r.as(\"s\")),a=ea(r.as(\"m\")),u=ea(r.as(\"h\")),o=ea(r.as(\"d\")),s=ea(r.as(\"M\")),c=ea(r.as(\"y\")),l=i<ra.s&&[\"s\",i]||1>=a&&[\"m\"]||a<ra.m&&[\"mm\",a]||1>=u&&[\"h\"]||u<ra.h&&[\"hh\",u]||1>=o&&[\"d\"]||o<ra.d&&[\"dd\",o]||1>=s&&[\"M\"]||s<ra.M&&[\"MM\",s]||1>=c&&[\"y\"]||[\"yy\",c];return l[2]=n,l[3]=+t>0,l[4]=e,rr.apply(null,l)}function ar(t,n){return void 0===ra[t]?!1:void 0===n?ra[t]:(ra[t]=n,!0)}function ur(t){var n=this.localeData(),e=ir(this,!t,n);return t&&(e=n.pastFuture(+this,e)),n.postformat(e)}function or(){var t,n,e,r=ia(this._milliseconds)/1e3,i=ia(this._days),a=ia(this._months);t=v(r/60),n=v(t/60),r%=60,t%=60,e=v(a/12),a%=12;var u=e,o=a,s=i,c=n,l=t,h=r,f=this.asSeconds();return f?(0>f?\"-\":\"\")+\"P\"+(u?u+\"Y\":\"\")+(o?o+\"M\":\"\")+(s?s+\"D\":\"\")+(c||l||h?\"T\":\"\")+(c?c+\"H\":\"\")+(l?l+\"M\":\"\")+(h?h+\"S\":\"\"):\"P0D\"}var sr,cr;cr=Array.prototype.some?Array.prototype.some:function(t){for(var n=Object(this),e=n.length>>>0,r=0;e>r;r++)if(r in n&&t.call(this,n[r],r,n))return!0;return!1};var lr=e.momentProperties=[],hr=!1,fr={};e.suppressDeprecationWarnings=!1,e.deprecationHandler=null;var dr;dr=Object.keys?Object.keys:function(t){var n,e=[];for(n in t)o(t,n)&&e.push(n);return e};var pr,gr,yr={},mr={},vr=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,_r=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,br={},xr={},wr=/\\d/,Ar=/\\d\\d/,kr=/\\d{3}/,Er=/\\d{4}/,Mr=/[+-]?\\d{6}/,Sr=/\\d\\d?/,Dr=/\\d\\d\\d\\d?/,Cr=/\\d\\d\\d\\d\\d\\d?/,Tr=/\\d{1,3}/,Fr=/\\d{1,4}/,Or=/[+-]?\\d{1,6}/,Lr=/\\d+/,Ir=/[+-]?\\d+/,Br=/Z|[+-]\\d\\d:?\\d\\d/gi,Nr=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,Pr=/[+-]?\\d+(\\.\\d{1,3})?/,Rr=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,jr={},Yr={},Ur=0,$r=1,Wr=2,zr=3,qr=4,Gr=5,Hr=6,Vr=7,Zr=8;gr=Array.prototype.indexOf?Array.prototype.indexOf:function(t){var n;for(n=0;n<this.length;++n)if(this[n]===t)return n;return-1},q(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),q(\"MMM\",0,0,function(t){return this.localeData().monthsShort(this,t)}),q(\"MMMM\",0,0,function(t){return this.localeData().months(this,t)}),P(\"month\",\"M\"),X(\"M\",Sr),X(\"MM\",Sr,Ar),X(\"MMM\",function(t,n){return n.monthsShortRegex(t)}),X(\"MMMM\",function(t,n){return n.monthsRegex(t)}),tt([\"M\",\"MM\"],function(t,n){n[$r]=_(t)-1}),tt([\"MMM\",\"MMMM\"],function(t,n,e,r){var i=e._locale.monthsParse(t,r,e._strict);null!=i?n[$r]=i:h(e).invalidMonth=t});var Xr=/D[oD]?(\\[[^\\[\\]]*\\]|\\s+)+MMMM?/,Kr=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),Qr=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),Jr=Rr,ti=Rr,ni=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/,ei=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?/,ri=/Z|[+-]\\d\\d(?::?\\d\\d)?/,ii=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],ai=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],ui=/^\\/?Date\\((\\-?\\d+)/i;e.createFromInputFallback=w(\"moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.\",function(t){t._d=new Date(t._i+(t._useUTC?\" UTC\":\"\"))}),q(\"Y\",0,0,function(){var t=this.year();return 9999>=t?\"\"+t:\"+\"+t}),q(0,[\"YY\",2],0,function(){return this.year()%100}),q(0,[\"YYYY\",4],0,\"year\"),q(0,[\"YYYYY\",5],0,\"year\"),q(0,[\"YYYYYY\",6,!0],0,\"year\"),P(\"year\",\"y\"),X(\"Y\",Ir),X(\"YY\",Sr,Ar),X(\"YYYY\",Fr,Er),X(\"YYYYY\",Or,Mr),X(\"YYYYYY\",Or,Mr),tt([\"YYYYY\",\"YYYYYY\"],Ur),tt(\"YYYY\",function(t,n){n[Ur]=2===t.length?e.parseTwoDigitYear(t):_(t)}),tt(\"YY\",function(t,n){n[Ur]=e.parseTwoDigitYear(t)}),tt(\"Y\",function(t,n){n[Ur]=parseInt(t,10)}),e.parseTwoDigitYear=function(t){return _(t)+(_(t)>68?1900:2e3)};var oi=Y(\"FullYear\",!0);e.ISO_8601=function(){};var si=w(\"moment().min is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548\",function(){var t=Rt.apply(null,arguments);return this.isValid()&&t.isValid()?this>t?this:t:d()}),ci=w(\"moment().max is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548\",function(){var t=Rt.apply(null,arguments);return this.isValid()&&t.isValid()?t>this?this:t:d()}),li=function(){return Date.now?Date.now():+new Date};zt(\"Z\",\":\"),zt(\"ZZ\",\"\"),X(\"Z\",Nr),X(\"ZZ\",Nr),tt([\"Z\",\"ZZ\"],function(t,n,e){e._useUTC=!0,e._tzm=qt(Nr,t)});var hi=/([\\+\\-]|\\d\\d)/gi;e.updateOffset=function(){};var fi=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)\\.?(\\d{3})?\\d*)?$/,di=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;un.fn=$t.prototype;var pi=hn(1,\"add\"),gi=hn(-1,\"subtract\");e.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",e.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var yi=w(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(t){return void 0===t?this.localeData():this.locale(t)});q(0,[\"gg\",2],0,function(){return this.weekYear()%100}),q(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),zn(\"gggg\",\"weekYear\"),zn(\"ggggg\",\"weekYear\"),zn(\"GGGG\",\"isoWeekYear\"),zn(\"GGGGG\",\"isoWeekYear\"),P(\"weekYear\",\"gg\"),P(\"isoWeekYear\",\"GG\"),X(\"G\",Ir),X(\"g\",Ir),X(\"GG\",Sr,Ar),X(\"gg\",Sr,Ar),X(\"GGGG\",Fr,Er),X(\"gggg\",Fr,Er),X(\"GGGGG\",Or,Mr),X(\"ggggg\",Or,Mr),nt([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(t,n,e,r){n[r.substr(0,2)]=_(t)}),nt([\"gg\",\"GG\"],function(t,n,r,i){n[i]=e.parseTwoDigitYear(t)}),q(\"Q\",0,\"Qo\",\"quarter\"),P(\"quarter\",\"Q\"),X(\"Q\",wr),tt(\"Q\",function(t,n){n[$r]=3*(_(t)-1)}),q(\"w\",[\"ww\",2],\"wo\",\"week\"),q(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),P(\"week\",\"w\"),P(\"isoWeek\",\"W\"),X(\"w\",Sr),X(\"ww\",Sr,Ar),X(\"W\",Sr),X(\"WW\",Sr,Ar),nt([\"w\",\"ww\",\"W\",\"WW\"],function(t,n,e,r){n[r.substr(0,1)]=_(t)});var mi={dow:0,doy:6};q(\"D\",[\"DD\",2],\"Do\",\"date\"),P(\"date\",\"D\"),X(\"D\",Sr),X(\"DD\",Sr,Ar),X(\"Do\",function(t,n){return t?n._ordinalParse:n._ordinalParseLenient}),tt([\"D\",\"DD\"],Wr),tt(\"Do\",function(t,n){n[Wr]=_(t.match(Sr)[0],10)});var vi=Y(\"Date\",!0);q(\"d\",0,\"do\",\"day\"),q(\"dd\",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),q(\"ddd\",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),q(\"dddd\",0,0,function(t){return this.localeData().weekdays(this,t)}),q(\"e\",0,0,\"weekday\"),q(\"E\",0,0,\"isoWeekday\"),P(\"day\",\"d\"),P(\"weekday\",\"e\"),P(\"isoWeekday\",\"E\"),X(\"d\",Sr),X(\"e\",Sr),X(\"E\",Sr),X(\"dd\",function(t,n){return n.weekdaysMinRegex(t)}),X(\"ddd\",function(t,n){return n.weekdaysShortRegex(t)}),X(\"dddd\",function(t,n){return n.weekdaysRegex(t)}),nt([\"dd\",\"ddd\",\"dddd\"],function(t,n,e,r){var i=e._locale.weekdaysParse(t,r,e._strict);null!=i?n.d=i:h(e).invalidWeekday=t}),nt([\"d\",\"e\",\"E\"],function(t,n,e,r){n[r]=_(t)});var _i=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),bi=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),xi=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),wi=Rr,Ai=Rr,ki=Rr;q(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),P(\"dayOfYear\",\"DDD\"),X(\"DDD\",Tr),X(\"DDDD\",kr),tt([\"DDD\",\"DDDD\"],function(t,n,e){e._dayOfYear=_(t)}),q(\"H\",[\"HH\",2],0,\"hour\"),q(\"h\",[\"hh\",2],0,me),q(\"k\",[\"kk\",2],0,ve),q(\"hmm\",0,0,function(){return\"\"+me.apply(this)+z(this.minutes(),2)}),q(\"hmmss\",0,0,function(){return\"\"+me.apply(this)+z(this.minutes(),2)+z(this.seconds(),2)}),q(\"Hmm\",0,0,function(){return\"\"+this.hours()+z(this.minutes(),2)}),q(\"Hmmss\",0,0,function(){return\"\"+this.hours()+z(this.minutes(),2)+z(this.seconds(),2)}),_e(\"a\",!0),_e(\"A\",!1),P(\"hour\",\"h\"),X(\"a\",be),X(\"A\",be),X(\"H\",Sr),X(\"h\",Sr),X(\"HH\",Sr,Ar),X(\"hh\",Sr,Ar),X(\"hmm\",Dr),X(\"hmmss\",Cr),X(\"Hmm\",Dr),X(\"Hmmss\",Cr),tt([\"H\",\"HH\"],zr),tt([\"a\",\"A\"],function(t,n,e){e._isPm=e._locale.isPM(t),e._meridiem=t}),tt([\"h\",\"hh\"],function(t,n,e){n[zr]=_(t),h(e).bigHour=!0}),tt(\"hmm\",function(t,n,e){var r=t.length-2;n[zr]=_(t.substr(0,r)),n[qr]=_(t.substr(r)),h(e).bigHour=!0}),tt(\"hmmss\",function(t,n,e){var r=t.length-4,i=t.length-2;n[zr]=_(t.substr(0,r)),n[qr]=_(t.substr(r,2)),n[Gr]=_(t.substr(i)),h(e).bigHour=!0}),tt(\"Hmm\",function(t,n){var e=t.length-2;n[zr]=_(t.substr(0,e)),n[qr]=_(t.substr(e))}),tt(\"Hmmss\",function(t,n){var e=t.length-4,r=t.length-2;n[zr]=_(t.substr(0,e)),n[qr]=_(t.substr(e,2)),n[Gr]=_(t.substr(r))});var Ei=/[ap]\\.?m?\\.?/i,Mi=Y(\"Hours\",!0);q(\"m\",[\"mm\",2],0,\"minute\"),P(\"minute\",\"m\"),X(\"m\",Sr),X(\"mm\",Sr,Ar),tt([\"m\",\"mm\"],qr);var Si=Y(\"Minutes\",!1);q(\"s\",[\"ss\",2],0,\"second\"),P(\"second\",\"s\"),X(\"s\",Sr),X(\"ss\",Sr,Ar),tt([\"s\",\"ss\"],Gr);var Di=Y(\"Seconds\",!1);q(\"S\",0,0,function(){return~~(this.millisecond()/100)}),q(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),q(0,[\"SSS\",3],0,\"millisecond\"),q(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),q(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),q(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),q(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),q(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),q(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),P(\"millisecond\",\"ms\"),X(\"S\",Tr,wr),X(\"SS\",Tr,Ar),X(\"SSS\",Tr,kr);var Ci;for(Ci=\"SSSS\";Ci.length<=9;Ci+=\"S\")X(Ci,Lr);for(Ci=\"S\";Ci.length<=9;Ci+=\"S\")tt(Ci,Ae);var Ti=Y(\"Milliseconds\",!1);q(\"z\",0,0,\"zoneAbbr\"),q(\"zz\",0,0,\"zoneName\");var Fi=y.prototype;Fi.add=pi,Fi.calendar=dn,Fi.clone=pn,Fi.diff=xn,Fi.endOf=Ln,Fi.format=En,Fi.from=Mn,Fi.fromNow=Sn,Fi.to=Dn,Fi.toNow=Cn,Fi.get=W,Fi.invalidAt=$n,Fi.isAfter=gn,Fi.isBefore=yn,Fi.isBetween=mn,Fi.isSame=vn,Fi.isSameOrAfter=_n,Fi.isSameOrBefore=bn,Fi.isValid=Yn,Fi.lang=yi,Fi.locale=Tn,Fi.localeData=Fn,Fi.max=ci,Fi.min=si,Fi.parsingFlags=Un,Fi.set=W,Fi.startOf=On,Fi.subtract=gi,Fi.toArray=Pn,Fi.toObject=Rn,Fi.toDate=Nn,Fi.toISOString=kn,Fi.toJSON=jn,Fi.toString=An,Fi.unix=Bn,Fi.valueOf=In,Fi.creationData=Wn,Fi.year=oi,Fi.isLeapYear=xt,Fi.weekYear=qn,Fi.isoWeekYear=Gn,Fi.quarter=Fi.quarters=Kn,Fi.month=ct,Fi.daysInMonth=lt,Fi.week=Fi.weeks=ne,Fi.isoWeek=Fi.isoWeeks=ee,Fi.weeksInYear=Vn,Fi.isoWeeksInYear=Hn,Fi.date=vi,Fi.day=Fi.days=ce,Fi.weekday=le,Fi.isoWeekday=he,Fi.dayOfYear=ye,Fi.hour=Fi.hours=Mi,Fi.minute=Fi.minutes=Si,Fi.second=Fi.seconds=Di,Fi.millisecond=Fi.milliseconds=Ti,Fi.utcOffset=Vt,Fi.utc=Xt,Fi.local=Kt,Fi.parseZone=Qt,Fi.hasAlignedHourOffset=Jt,Fi.isDST=tn,Fi.isDSTShifted=nn,Fi.isLocal=en,Fi.isUtcOffset=rn,Fi.isUtc=an,Fi.isUTC=an,Fi.zoneAbbr=ke,Fi.zoneName=Ee,Fi.dates=w(\"dates accessor is deprecated. Use date instead.\",vi),Fi.months=w(\"months accessor is deprecated. Use month instead\",ct),Fi.years=w(\"years accessor is deprecated. Use year instead\",oi),Fi.zone=w(\"moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779\",Zt);var Oi=Fi,Li={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},Ii={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},Bi=\"Invalid date\",Ni=\"%d\",Pi=/\\d{1,2}/,Ri={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},ji=D.prototype;ji._calendar=Li,ji.calendar=De,ji._longDateFormat=Ii,ji.longDateFormat=Ce,ji._invalidDate=Bi,ji.invalidDate=Te,ji._ordinal=Ni,ji.ordinal=Fe,ji._ordinalParse=Pi,ji.preparse=Oe,ji.postformat=Oe,ji._relativeTime=Ri,ji.relativeTime=Le,ji.pastFuture=Ie,ji.set=M,ji.months=it,ji._months=Kr,ji.monthsShort=at,ji._monthsShort=Qr,ji.monthsParse=ot,ji._monthsRegex=ti,ji.monthsRegex=ft,ji._monthsShortRegex=Jr,ji.monthsShortRegex=ht,ji.week=Qn,ji._week=mi,ji.firstDayOfYear=te,ji.firstDayOfWeek=Jn,ji.weekdays=ie,ji._weekdays=_i,ji.weekdaysMin=ue,ji._weekdaysMin=xi,ji.weekdaysShort=ae,ji._weekdaysShort=bi,ji.weekdaysParse=se,ji._weekdaysRegex=wi,ji.weekdaysRegex=fe,ji._weekdaysShortRegex=Ai,ji.weekdaysShortRegex=de,ji._weekdaysMinRegex=ki,ji.weekdaysMinRegex=pe,ji.isPM=xe,ji._meridiemParse=Ei,ji.meridiem=we,O(\"en\",{ordinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var n=t%10,e=1===_(t%100/10)?\"th\":1===n?\"st\":2===n?\"nd\":3===n?\"rd\":\"th\";return t+e}}),e.lang=w(\"moment.lang is deprecated. Use moment.locale instead.\",O),e.langData=w(\"moment.langData is deprecated. Use moment.localeData instead.\",B);var Yi=Math.abs,Ui=Je(\"ms\"),$i=Je(\"s\"),Wi=Je(\"m\"),zi=Je(\"h\"),qi=Je(\"d\"),Gi=Je(\"w\"),Hi=Je(\"M\"),Vi=Je(\"y\"),Zi=nr(\"milliseconds\"),Xi=nr(\"seconds\"),Ki=nr(\"minutes\"),Qi=nr(\"hours\"),Ji=nr(\"days\"),ta=nr(\"months\"),na=nr(\"years\"),ea=Math.round,ra={s:45,m:45,h:22,d:26,M:11},ia=Math.abs,aa=$t.prototype;aa.abs=We,aa.add=qe,aa.subtract=Ge,aa.as=Ke,aa.asMilliseconds=Ui,aa.asSeconds=$i,aa.asMinutes=Wi,aa.asHours=zi,aa.asDays=qi,aa.asWeeks=Gi,aa.asMonths=Hi,aa.asYears=Vi,aa.valueOf=Qe,aa._bubble=Ve,aa.get=tr,aa.milliseconds=Zi,aa.seconds=Xi,aa.minutes=Ki,aa.hours=Qi,aa.days=Ji,aa.weeks=er,aa.months=ta,aa.years=na,aa.humanize=ur,aa.toISOString=or,aa.toString=or,aa.toJSON=or,aa.locale=Tn,aa.localeData=Fn,aa.toIsoString=w(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",or),aa.lang=yi,q(\"X\",0,0,\"unix\"),q(\"x\",0,0,\"valueOf\"),X(\"x\",Ir),X(\"X\",Pr),tt(\"X\",function(t,n,e){e._d=new Date(1e3*parseFloat(t,10))}),tt(\"x\",function(t,n,e){e._d=new Date(_(t))}),e.version=\"2.13.0\",r(Rt),e.fn=Oi,e.min=Yt,e.max=Ut,e.now=li,e.utc=c,e.unix=Me,e.months=Re,e.isDate=a,e.locale=O,e.invalid=d,e.duration=un,e.isMoment=m,e.weekdays=Ye,e.parseZone=Se,e.localeData=B,e.isDuration=Wt,e.monthsShort=je,e.weekdaysMin=$e,e.defineLocale=L,e.updateLocale=I,e.locales=N,e.weekdaysShort=Ue,e.normalizeUnits=R,e.relativeTimeThreshold=ar,e.prototype=Oi;var ua=e;return ua})},{}],105:[function(t,n,e){(function(t){function n(t,n){for(var e=0,r=t.length-1;r>=0;r--){var i=t[r];\".\"===i?t.splice(r,1):\"..\"===i?(t.splice(r,1),e++):e&&(t.splice(r,1),e--)}if(n)for(;e--;e)t.unshift(\"..\");return t}function r(t,n){if(t.filter)return t.filter(n);for(var e=[],r=0;r<t.length;r++)n(t[r],r,t)&&e.push(t[r]);return e}var i=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/,a=function(t){return i.exec(t).slice(1)};e.resolve=function(){for(var e=\"\",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var u=a>=0?arguments[a]:t.cwd();if(\"string\"!=typeof u)throw new TypeError(\"Arguments to path.resolve must be strings\");u&&(e=u+\"/\"+e,i=\"/\"===u.charAt(0))}return e=n(r(e.split(\"/\"),function(t){return!!t}),!i).join(\"/\"),(i?\"/\":\"\")+e||\".\"},e.normalize=function(t){var i=e.isAbsolute(t),a=\"/\"===u(t,-1);return t=n(r(t.split(\"/\"),function(t){return!!t}),!i).join(\"/\"),t||i||(t=\".\"),t&&a&&(t+=\"/\"),(i?\"/\":\"\")+t},e.isAbsolute=function(t){return\"/\"===t.charAt(0)},e.join=function(){var t=Array.prototype.slice.call(arguments,0);return e.normalize(r(t,function(t){if(\"string\"!=typeof t)throw new TypeError(\"Arguments to path.join must be strings\");return t}).join(\"/\"))},e.relative=function(t,n){function r(t){for(var n=0;n<t.length&&\"\"===t[n];n++);for(var e=t.length-1;e>=0&&\"\"===t[e];e--);return n>e?[]:t.slice(n,e-n+1)}t=e.resolve(t).substr(1),n=e.resolve(n).substr(1);for(var i=r(t.split(\"/\")),a=r(n.split(\"/\")),u=Math.min(i.length,a.length),o=u,s=0;u>s;s++)if(i[s]!==a[s]){o=s;break}for(var c=[],s=o;s<i.length;s++)c.push(\"..\");return c=c.concat(a.slice(o)),c.join(\"/\")},e.sep=\"/\",e.delimiter=\":\",e.dirname=function(t){var n=a(t),e=n[0],r=n[1];return e||r?(r&&(r=r.substr(0,r.length-1)),e+r):\".\"},e.basename=function(t,n){var e=a(t)[2];return n&&e.substr(-1*n.length)===n&&(e=e.substr(0,e.length-n.length)),e},e.extname=function(t){return a(t)[3]};var u=\"b\"===\"ab\".substr(-1)?function(t,n,e){return t.substr(n,e)}:function(t,n,e){return 0>n&&(n=t.length+n),t.substr(n,e)}}).call(this,t(\"_process\"))},{_process:106}],106:[function(t,n){function e(){}var r=n.exports={};r.nextTick=function(){var t=\"undefined\"!=typeof window&&window.setImmediate,n=\"undefined\"!=typeof window&&window.MutationObserver,e=\"undefined\"!=typeof window&&window.postMessage&&window.addEventListener;if(t)return function(t){return window.setImmediate(t)};var r=[];if(n){var i=document.createElement(\"div\"),a=new MutationObserver(function(){var t=r.slice();r.length=0,t.forEach(function(t){t()})});return a.observe(i,{attributes:!0}),function(t){r.length||i.setAttribute(\"yes\",\"no\"),r.push(t)}}return e?(window.addEventListener(\"message\",function(t){var n=t.source;if((n===window||null===n)&&\"process-tick\"===t.data&&(t.stopPropagation(),r.length>0)){var e=r.shift();e()}},!0),function(t){r.push(t),window.postMessage(\"process-tick\",\"*\")}):function(t){setTimeout(t,0)}}(),r.title=\"browser\",r.browser=!0,r.env={},r.argv=[],r.on=e,r.addListener=e,r.once=e,r.off=e,r.removeListener=e,r.removeAllListeners=e,r.emit=e,r.binding=function(){throw new Error(\"process.binding is not supported\")},r.cwd=function(){return\"/\"},r.chdir=function(){throw new Error(\"process.chdir is not supported\")}},{}],107:[function(t,n){n.exports={name:\"mermaid\",version:\"7.0.0\",description:\"Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams and gantt charts.\",main:\"src/mermaid.js\",keywords:[\"diagram\",\"markdown\",\"flowchart\",\"sequence diagram\",\"gantt\"],bin:{mermaid:\"./bin/mermaid.js\"},scripts:{live:\"live-server ./test/examples\",lint:\"node node_modules/eslint/bin/eslint.js src\",jison:\"gulp jison_legacy\",karma:\"node node_modules/karma/bin/karma start karma.conf.js --single-run\",watch:\"source ./scripts/watch.sh\",doc:\"rm -r build;rm -r dist/www;gulp vartree;cp dist/www/all.html ../mermaid-pages/index.html;cp dist/mermaid.js ../mermaid-pages/javascripts/lib;cp dist/mermaid.forest.css ../mermaid-pages/stylesheets\",tape:\"node node_modules/tape/bin/tape test/cli_test-*.js\",jasmine:\"npm run jison &&node node_modules/jasmine-es6/bin/jasmine.js\",pretest:\"npm run jison\",test:\"npm run dist && npm run karma && npm run tape\",\"dist-slim-mermaid\":\"node node_modules/browserify/bin/cmd.js src/mermaid.js -t babelify -s mermaid -o dist/mermaid.slim.js -x d3 && cat dist/mermaid.slim.js | node node_modules/uglifyjs/bin/uglifyjs -mc > dist/mermaid.slim.min.js\",\"dist-slim-mermaidAPI\":\"node node_modules/browserify/bin/cmd.js src/mermaidAPI.js -t babelify -s mermaidAPI -o dist/mermaidAPI.slim.js -x d3 && cat dist/mermaidAPI.slim.js | node node_modules/uglifyjs/bin/uglifyjs -mc > dist/mermaidAPI.slim.min.js\",\n\"dist-mermaid\":\"node node_modules/browserify/bin/cmd.js src/mermaid.js -t babelify -s mermaid -o dist/mermaid.js && cat dist/mermaid.js | node node_modules/uglifyjs/bin/uglifyjs -mc > dist/mermaid.min.js\",\"dist-mermaid-nomin\":\"node node_modules/browserify/bin/cmd.js src/mermaid.js -t babelify -s mermaid -o dist/mermaid.js\",\"dist-mermaidAPI\":\"node node_modules/browserify/bin/cmd.js src/mermaidAPI.js -t babelify -s mermaidAPI -o dist/mermaidAPI.js && cat dist/mermaidAPI.js | node node_modules/uglifyjs/bin/uglifyjs -mc > dist/mermaidAPI.min.js\",dist:\"npm run dist-slim-mermaid && npm run dist-slim-mermaidAPI && npm run dist-mermaid && npm run dist-mermaidAPI\"},repository:{type:\"git\",url:\"https://github.com/knsv/mermaid\"},author:\"Knut Sveidqvist\",license:\"MIT\",dependencies:{chalk:\"^0.5.1\",d3:\"3.5.6\",dagre:\"^0.7.4\",\"dagre-d3\":\"0.4.10\",he:\"^0.5.0\",lodash:\"^4.6.1\",minimist:\"^1.1.0\",mkdirp:\"^0.5.0\",moment:\"^2.9.0\",semver:\"^4.1.1\",which:\"^1.0.8\"},devDependencies:{async:\"^0.9.0\",\"babel-eslint\":\"^4.1.3\",babelify:\"^6.4.0\",browserify:\"~6.2.0\",clone:\"^0.2.0\",\"codeclimate-test-reporter\":\"0.0.4\",dateformat:\"^1.0.11\",dox:\"^0.8.0\",eslint:\"^1.6.0\",\"eslint-watch\":\"^2.1.2\",\"event-stream\":\"^3.2.0\",foundation:\"^4.2.1-1\",\"front-matter\":\"^0.2.0\",gulp:\"~3.9.0\",\"gulp-bower\":\"0.0.10\",\"gulp-browserify\":\"^0.5.0\",\"gulp-bump\":\"^0.1.11\",\"gulp-concat\":\"~2.4.1\",\"gulp-data\":\"^1.1.1\",\"gulp-dox\":\"^0.1.6\",\"gulp-ext-replace\":\"^0.2.0\",\"gulp-filelog\":\"^0.4.1\",\"gulp-front-matter\":\"^1.2.3\",\"gulp-hogan\":\"^1.1.0\",\"gulp-if\":\"^1.2.5\",\"gulp-insert\":\"^0.4.0\",\"gulp-istanbul\":\"^0.4.0\",\"gulp-jasmine\":\"~2.1.0\",\"gulp-jasmine-browser\":\"^0.2.3\",\"gulp-jison\":\"~1.2.0\",\"gulp-jshint\":\"^1.9.0\",\"gulp-less\":\"^3.0.1\",\"gulp-livereload\":\"^3.8.0\",\"gulp-marked\":\"^1.0.0\",\"gulp-mdvars\":\"^2.0.0\",\"gulp-qunit\":\"~1.2.1\",\"gulp-rename\":\"~1.2.0\",\"gulp-shell\":\"^0.2.10\",\"gulp-tag-version\":\"^1.2.1\",\"gulp-uglify\":\"~1.0.1\",\"gulp-util\":\"^3.0.7\",\"gulp-vartree\":\"^2.0.1\",\"hogan.js\":\"^3.0.2\",jasmine:\"2.3.2\",\"jasmine-es6\":\"0.0.18\",jison:\"zaach/jison\",jsdom:\"^7.0.2\",\"jshint-stylish\":\"^2.0.1\",karma:\"^0.13.15\",\"karma-babel-preprocessor\":\"^6.0.1\",\"karma-browserify\":\"^4.4.0\",\"karma-jasmine\":\"^0.3.6\",\"karma-phantomjs-launcher\":\"^0.2.1\",\"live-server\":\"^0.9.0\",\"map-stream\":\"0.0.6\",marked:\"^0.3.2\",\"mock-browser\":\"^0.91.34\",path:\"^0.4.9\",phantomjs:\"^2.1.3\",proxyquire:\"^1.7.3\",\"proxyquire-universal\":\"^1.0.8\",proxyquireify:\"^3.0.0\",\"require-dir\":\"^0.3.0\",rewire:\"^2.1.3\",rimraf:\"^2.2.8\",tape:\"^3.0.3\",testdom:\"^2.0.0\",uglifyjs:\"^2.4.10\",\"vinyl-source-stream\":\"^1.1.0\",watchify:\"^3.6.1\"}}},{}],108:[function(t,n){\"use strict\";var e;if(\"undefined\"!=typeof t)try{e=t(\"d3\")}catch(r){}e||(e=window.d3),n.exports=e,function(){var t=!1;if(t=\"tspans\",e.selection.prototype.textwrap)return!1;if(\"undefined\"==typeof t)var t=!1;e.selection.prototype.textwrap=e.selection.enter.prototype.textwrap=function(n,r){var i,r=parseInt(r)||0,a=this,u=function(t){var n=t[0][0],r=n.tagName.toString();if(\"rect\"!==r)return!1;var i={};return i.x=e.select(n).attr(\"x\")||0,i.y=e.select(n).attr(\"y\")||0,i.width=e.select(n).attr(\"width\")||0,i.height=e.select(n).attr(\"height\")||0,i.attr=t.attr,i},o=function(t){if(t.attr||(t.attr=function(t){return this[t]?this[t]:void 0}),\"object\"==typeof t&&\"undefined\"!=typeof t.x&&\"undefined\"!=typeof t.y&&\"undefined\"!=typeof t.width&&\"undefined\"!=typeof t.height)return t;if(\"function\"==typeof Array.isArray&&Array.isArray(t)||\"[object Array]\"===Object.prototype.toString.call(t)){var n=u(t);return n}return!1},s=function(t,n){var e=t;return 0!==n&&(e.x=parseInt(e.x)+n,e.y=parseInt(e.y)+n,e.width-=2*n,e.height-=2*n),e},c=o(n);if(r&&(c=s(c,r)),0!=a.length&&e&&n&&c){n=c;var l,h=function(t){var r=e.select(t[0].parentNode),a=r.select(\"text\"),u=a.style(\"line-height\"),o=a.text();a.remove();var s=r.append(\"foreignObject\");s.attr(\"requiredFeatures\",\"http://www.w3.org/TR/SVG11/feature#Extensibility\").attr(\"x\",n.x).attr(\"y\",n.y).attr(\"width\",n.width).attr(\"height\",n.height);var c=s.append(\"xhtml:div\").attr(\"class\",\"wrapped\");c.style(\"height\",n.height).style(\"width\",n.width).html(o),u&&c.style(\"line-height\",u),i=r.select(\"foreignObject\")},f=function(t){var a,u=t[0],o=u.parentNode,s=e.select(u),c=u.getBBox().height,l=u.getBBox().width,h=c,f=s.style(\"line-height\");if(a=f&&parseInt(f)?parseInt(f.replace(\"px\",\"\")):h,l>n.width){var d=s.text();if(s.text(\"\"),d){var p,g;if(-1!==d.indexOf(\" \")){var p=\" \";g=d.split(\" \")}else{p=\"\";var y=d.length,m=Math.ceil(l/n.width),v=Math.floor(y/m);v*m>=y||m++;for(var _,b,g=[],x=0;m>x;x++)b=x*v,_=d.substr(b,v),g.push(_)}for(var w=[],A=0,k={},x=0;x<g.length;x++){var E,M=g[x],S=s.text(),D=u.getComputedTextLength();E=S?S+p+M:M,s.text(E);var C=u.getComputedTextLength();if(C>n.width&&S&&\"\"!==S&&(A+=D,k={string:S,width:D,offset:A},w.push(k),s.text(\"\"),s.text(M),x==g.length-1&&(E=M,s.text(E),C=u.getComputedTextLength())),x==g.length-1){s.text(\"\");var T=E;T&&\"\"!==T&&(C-A>0&&(C-=A),k={string:T,width:C,offset:A},w.push(k))}}var F;s.text(\"\");for(var x=0;x<w.length;x++){var _=w[x].string;if(x>0){w[x-1]}x*a<n.height-1.5*a&&(F=s.append(\"tspan\").text(_),F.attr(\"dy\",function(){return x>0?a:void 0}),F.attr(\"x\",function(){var t=n.x;return r&&(t+=r),t}))}}}s.attr(\"y\",function(){var t=n.y;return a&&(t+=a),r&&(t+=r),t}),s.attr(\"x\",function(){var t=n.x;return r&&(t+=r),t}),i=e.select(o).selectAll(\"text\")};t&&(\"foreignobjects\"==t?l=h:\"tspans\"==t&&(l=f)),t||(l=\"undefined\"!=typeof SVGForeignObjectElement?h:f);for(var d=0;d<a.length;d++){var p=a[d];l(p)}return i}return a?a:!1}}()},{d3:2}],109:[function(t,n,e){\"use strict\";var r,i=t(\"../../logger\"),a=new i.Log,u=[];r={};e.addClass=function(t){\"undefined\"==typeof r[t]&&(r[t]={id:t,methods:[],members:[]})},e.clear=function(){u=[],r={}},n.exports.getClass=function(t){return r[t]},n.exports.getClasses=function(){return r},n.exports.getRelations=function(){return u},e.addRelation=function(t){a.warn(\"Adding relation: \"+JSON.stringify(t)),e.addClass(t.id1),e.addClass(t.id2),u.push(t)},e.addMembers=function(t,n){var e=r[t];\"string\"==typeof n&&(\")\"===n.substr(-1)?e.methods.push(n):e.members.push(n))},e.cleanupLabel=function(t){return\":\"===t.substring(0,1)?t.substr(2).trim():t.trim()},e.lineType={LINE:0,DOTTED_LINE:1},e.relationType={AGGREGATION:0,EXTENSION:1,COMPOSITION:2,DEPENDENCY:3}},{\"../../logger\":130}],110:[function(t,n){\"use strict\";var e=t(\"./parser/classDiagram\").parser,r=t(\"./classDb\");e.yy=r;var i,a=t(\"../../d3\"),u=t(\"../../logger\"),o=t(\"dagre\"),s=new u.Log;i={};var c=0,l={dividerMargin:10,padding:5,textHeight:14},h=function(t){var n,e=Object.keys(i);for(n=0;n<e.length;n++)if(i[e[n]].label===t)return e[n];return void 0},f=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"extensionStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,7 L18,13 V 1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"extensionEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 1,1 V 13 L18,7 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"compositionStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"compositionEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"aggregationStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"aggregationEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"dependencyStart\").attr(\"class\",\"extension\").attr(\"refX\",0).attr(\"refY\",7).attr(\"markerWidth\",190).attr(\"markerHeight\",240).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 5,7 L9,13 L1,7 L9,1 Z\"),t.append(\"defs\").append(\"marker\").attr(\"id\",\"dependencyEnd\").attr(\"refX\",19).attr(\"refY\",7).attr(\"markerWidth\",20).attr(\"markerHeight\",28).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 18,7 L9,13 L14,7 L9,1 Z\")},d=0,p=function(t,n,e){var i=function(t){switch(t){case r.relationType.AGGREGATION:return\"aggregation\";case r.relationType.EXTENSION:return\"extension\";case r.relationType.COMPOSITION:return\"composition\";case r.relationType.DEPENDENCY:return\"dependency\"}},u=n.points,o=a.svg.line().x(function(t){return t.x}).y(function(t){return t.y}).interpolate(\"basis\"),s=t.append(\"path\").attr(\"d\",o(u)).attr(\"id\",\"edge\"+d).attr(\"class\",\"relation\"),c=\"\";l.arrowMarkerAbsolute&&(c=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,c=c.replace(/\\(/g,\"\\\\(\"),c=c.replace(/\\)/g,\"\\\\)\")),\"none\"!==e.relation.type1&&s.attr(\"marker-start\",\"url(\"+c+\"#\"+i(e.relation.type1)+\"Start)\"),\"none\"!==e.relation.type2&&s.attr(\"marker-end\",\"url(\"+c+\"#\"+i(e.relation.type2)+\"End)\");var h,f,p=n.points.length;if(p%2!==0){var g=n.points[Math.floor(p/2)],y=n.points[Math.ceil(p/2)];h=(g.x+y.x)/2,f=(g.y+y.y)/2}else{var m=n.points[Math.floor(p/2)];h=m.x,f=m.y}if(\"undefined\"!=typeof e.title){var v=t.append(\"g\").attr(\"class\",\"classLabel\"),_=v.append(\"text\").attr(\"class\",\"label\").attr(\"x\",h).attr(\"y\",f).attr(\"fill\",\"red\").attr(\"text-anchor\",\"middle\").text(e.title);window.label=_;var b=_.node().getBBox();v.insert(\"rect\",\":first-child\").attr(\"class\",\"box\").attr(\"x\",b.x-l.padding/2).attr(\"y\",b.y-l.padding/2).attr(\"width\",b.width+2*l.padding/2).attr(\"height\",b.height+2*l.padding/2)}d++},g=function(t,n){s.info(\"Rendering class \"+n);var e=function(t,n,e){var r=t.append(\"tspan\").attr(\"x\",l.padding).text(n);e||r.attr(\"dy\",l.textHeight)},r=\"classId\"+c,a={id:r,label:n.id,width:0,height:0},u=t.append(\"g\").attr(\"id\",r).attr(\"class\",\"classGroup\"),o=u.append(\"text\").attr(\"x\",l.padding).attr(\"y\",l.textHeight+l.padding).text(n.id),h=o.node().getBBox().height,f=u.append(\"line\").attr(\"x1\",0).attr(\"y1\",l.padding+h+l.dividerMargin/2).attr(\"y2\",l.padding+h+l.dividerMargin/2),d=u.append(\"text\").attr(\"x\",l.padding).attr(\"y\",h+l.dividerMargin+l.textHeight).attr(\"fill\",\"white\").attr(\"class\",\"classText\"),p=!0;n.members.forEach(function(t){e(d,t,p),p=!1});var g=d.node().getBBox(),y=u.append(\"line\").attr(\"x1\",0).attr(\"y1\",l.padding+h+3*l.dividerMargin/2+g.height).attr(\"y2\",l.padding+h+3*l.dividerMargin/2+g.height),m=u.append(\"text\").attr(\"x\",l.padding).attr(\"y\",h+2*l.dividerMargin+g.height+l.textHeight).attr(\"fill\",\"white\").attr(\"class\",\"classText\");p=!0,n.methods.forEach(function(t){e(m,t,p),p=!1});var v=u.node().getBBox();return u.insert(\"rect\",\":first-child\").attr(\"x\",0).attr(\"y\",0).attr(\"width\",v.width+2*l.padding).attr(\"height\",v.height+l.padding+.5*l.dividerMargin),f.attr(\"x2\",v.width+2*l.padding),y.attr(\"x2\",v.width+2*l.padding),a.width=v.width+2*l.padding,a.height=v.height+l.padding+.5*l.dividerMargin,i[r]=a,c++,a};n.exports.setConf=function(t){var n=Object.keys(t);n.forEach(function(n){l[n]=t[n]})},n.exports.draw=function(t,n){e.yy.clear(),e.parse(t),s.info(\"Rendering diagram \"+t);var i=a.select(\"#\"+n);f(i);var u=new o.graphlib.Graph({multigraph:!0});u.setGraph({isMultiGraph:!0}),u.setDefaultEdgeLabel(function(){return{}});var c,l=r.getClasses(),d=Object.keys(l);for(c=0;c<d.length;c++){var y=l[d[c]],m=g(i,y);u.setNode(m.id,m),s.info(\"Org height: \"+m.height)}var v=r.getRelations(),c=0;v.forEach(function(t){c+=1,s.info(\"tjoho\"+h(t.id1)+h(t.id2)+JSON.stringify(t)),u.setEdge(h(t.id1),h(t.id2),{relation:t})}),o.layout(u),u.nodes().forEach(function(t){\"undefined\"!=typeof t&&(s.debug(\"Node \"+t+\": \"+JSON.stringify(u.node(t))),a.select(\"#\"+t).attr(\"transform\",\"translate(\"+(u.node(t).x-u.node(t).width/2)+\",\"+(u.node(t).y-u.node(t).height/2)+\" )\"))}),u.edges().forEach(function(t){s.debug(\"Edge \"+t.v+\" -> \"+t.w+\": \"+JSON.stringify(u.edge(t))),p(i,u.edge(t),u.edge(t).relation)}),i.attr(\"height\",\"100%\"),i.attr(\"width\",\"100%\")}},{\"../../d3\":108,\"../../logger\":130,\"./classDb\":109,\"./parser/classDiagram\":111,dagre:52}],111:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[1,11],r=[1,12],i=[1,13],a=[1,15],u=[1,16],o=[1,17],s=[6,8],c=[1,26],l=[1,27],h=[1,28],f=[1,29],d=[1,30],p=[1,31],g=[6,8,13,17,23,26,27,28,29,30,31],y=[6,8,13,17,23,26,27,28,29,30,31,45,46,47],m=[23,45,46,47],v=[23,30,31,45,46,47],_=[23,26,27,28,29,45,46,47],b=[6,8,13],x=[1,46],w={trace:function(){},yy:{},symbols_:{error:2,mermaidDoc:3,graphConfig:4,CLASS_DIAGRAM:5,NEWLINE:6,statements:7,EOF:8,statement:9,className:10,alphaNumToken:11,relationStatement:12,LABEL:13,classStatement:14,methodStatement:15,CLASS:16,STRUCT_START:17,members:18,STRUCT_STOP:19,MEMBER:20,SEPARATOR:21,relation:22,STR:23,relationType:24,lineType:25,AGGREGATION:26,EXTENSION:27,COMPOSITION:28,DEPENDENCY:29,LINE:30,DOTTED_LINE:31,commentToken:32,textToken:33,graphCodeTokens:34,textNoTagsToken:35,TAGSTART:36,TAGEND:37,\"==\":38,\"--\":39,PCT:40,DEFAULT:41,SPACE:42,MINUS:43,keywords:44,UNICODE_TEXT:45,NUM:46,ALPHA:47,$accept:0,$end:1},terminals_:{2:\"error\",5:\"CLASS_DIAGRAM\",6:\"NEWLINE\",8:\"EOF\",13:\"LABEL\",16:\"CLASS\",17:\"STRUCT_START\",19:\"STRUCT_STOP\",20:\"MEMBER\",21:\"SEPARATOR\",23:\"STR\",26:\"AGGREGATION\",27:\"EXTENSION\",28:\"COMPOSITION\",29:\"DEPENDENCY\",30:\"LINE\",31:\"DOTTED_LINE\",34:\"graphCodeTokens\",36:\"TAGSTART\",37:\"TAGEND\",38:\"==\",39:\"--\",40:\"PCT\",41:\"DEFAULT\",42:\"SPACE\",43:\"MINUS\",44:\"keywords\",45:\"UNICODE_TEXT\",46:\"NUM\",47:\"ALPHA\"},productions_:[0,[3,1],[4,4],[7,1],[7,3],[10,2],[10,1],[9,1],[9,2],[9,1],[9,1],[14,2],[14,5],[18,1],[18,2],[15,1],[15,2],[15,1],[15,1],[12,3],[12,4],[12,4],[12,5],[22,3],[22,2],[22,2],[22,1],[24,1],[24,1],[24,1],[24,1],[25,1],[25,1],[32,1],[32,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[35,1],[35,1],[35,1],[35,1],[11,1],[11,1],[11,1]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 5:this.$=a[u-1]+a[u];break;case 6:this.$=a[u];break;case 7:r.addRelation(a[u]);break;case 8:a[u-1].title=r.cleanupLabel(a[u]),r.addRelation(a[u-1]);break;case 12:r.addMembers(a[u-3],a[u-1]);break;case 13:this.$=[a[u]];break;case 14:a[u].push(a[u-1]),this.$=a[u];break;case 15:break;case 16:r.addMembers(a[u-1],r.cleanupLabel(a[u]));break;case 17:console.warn(\"Member\",a[u]);break;case 18:break;case 19:this.$={id1:a[u-2],id2:a[u],relation:a[u-1],relationTitle1:\"none\",relationTitle2:\"none\"};break;case 20:this.$={id1:a[u-3],id2:a[u],relation:a[u-1],relationTitle1:a[u-2],relationTitle2:\"none\"};break;case 21:this.$={id1:a[u-3],id2:a[u],relation:a[u-2],relationTitle1:\"none\",relationTitle2:a[u-1]};break;case 22:this.$={id1:a[u-4],id2:a[u],relation:a[u-2],relationTitle1:a[u-3],relationTitle2:a[u-1]};break;case 23:this.$={type1:a[u-2],type2:a[u],lineType:a[u-1]};break;case 24:this.$={type1:\"none\",type2:a[u],lineType:a[u-1]};break;case 25:this.$={type1:a[u-1],type2:\"none\",lineType:a[u]};break;case 26:this.$={type1:\"none\",type2:\"none\",lineType:a[u]};break;case 27:this.$=r.relationType.AGGREGATION;break;case 28:this.$=r.relationType.EXTENSION;break;case 29:this.$=r.relationType.COMPOSITION;break;case 30:this.$=r.relationType.DEPENDENCY;break;case 31:this.$=r.lineType.LINE;break;case 32:this.$=r.lineType.DOTTED_LINE}},table:[{3:1,4:2,5:[1,3]},{1:[3]},{1:[2,1]},{6:[1,4]},{7:5,9:6,10:10,11:14,12:7,14:8,15:9,16:e,20:r,21:i,45:a,46:u,47:o},{8:[1,18]},{6:[1,19],8:[2,3]},n(s,[2,7],{13:[1,20]}),n(s,[2,9]),n(s,[2,10]),n(s,[2,15],{22:21,24:24,25:25,13:[1,23],23:[1,22],26:c,27:l,28:h,29:f,30:d,31:p}),{10:32,11:14,45:a,46:u,47:o},n(s,[2,17]),n(s,[2,18]),n(g,[2,6],{11:14,10:33,45:a,46:u,47:o}),n(y,[2,46]),n(y,[2,47]),n(y,[2,48]),{1:[2,2]},{7:34,9:6,10:10,11:14,12:7,14:8,15:9,16:e,20:r,21:i,45:a,46:u,47:o},n(s,[2,8]),{10:35,11:14,23:[1,36],45:a,46:u,47:o},{22:37,24:24,25:25,26:c,27:l,28:h,29:f,30:d,31:p},n(s,[2,16]),{25:38,30:d,31:p},n(m,[2,26],{24:39,26:c,27:l,28:h,29:f}),n(v,[2,27]),n(v,[2,28]),n(v,[2,29]),n(v,[2,30]),n(_,[2,31]),n(_,[2,32]),n(s,[2,11],{17:[1,40]}),n(g,[2,5]),{8:[2,4]},n(b,[2,19]),{10:41,11:14,45:a,46:u,47:o},{10:42,11:14,23:[1,43],45:a,46:u,47:o},n(m,[2,25],{24:44,26:c,27:l,28:h,29:f}),n(m,[2,24]),{18:45,20:x},n(b,[2,21]),n(b,[2,20]),{10:47,11:14,45:a,46:u,47:o},n(m,[2,23]),{19:[1,48]},{18:49,19:[2,13],20:x},n(b,[2,22]),n(s,[2,12]),{19:[2,14]}],defaultActions:{2:[2,1],18:[2,2],34:[2,4],49:[2,14]},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},A=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,n,e,r){switch(e){case 0:break;case 1:return 6;case 2:break;case 3:return 5;case 4:return this.begin(\"struct\"),17;case 5:return this.popState(),19;case 6:break;case 7:return\"MEMBER\";case 8:return 16;case 9:this.begin(\"string\");break;case 10:this.popState();break;case 11:return\"STR\";case 12:return 27;case 13:return 27;case 14:return 29;case 15:return 29;case 16:return 28;case 17:return 26;case 18:return 30;case 19:return 31;case 20:return 13;case 21:return 43;case 22:return\"DOT\";case 23:return\"PLUS\";case 24:return 40;case 25:return\"EQUALS\";case 26:return\"EQUALS\";case 27:return 47;case 28:return\"PUNCTUATION\";case 29:return 46;case 30:return 45;case 31:return 42;case 32:return 8}},rules:[/^(?:%%[^\\n]*)/,/^(?:\\n+)/,/^(?:\\s+)/,/^(?:classDiagram\\b)/,/^(?:[\\{])/,/^(?:\\})/,/^(?:[\\n])/,/^(?:[^\\{\\}\\n]*)/,/^(?:class\\b)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:\\s*<\\|)/,/^(?:\\s*\\|>)/,/^(?:\\s*>)/,/^(?:\\s*<)/,/^(?:\\s*\\*)/,/^(?:\\s*o\\b)/,/^(?:--)/,/^(?:\\.\\.)/,/^(?::[^#\\n;]+)/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!\"#$%&'*+,-.`?\\\\_\\/])/,/^(?:[0-9]+)/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\s)/,/^(?:$)/],conditions:{string:{rules:[10,11],inclusive:!1},struct:{rules:[5,6,7],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,8,9,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],inclusive:!0}}};return t}();return w.lexer=A,t.prototype=w,w.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],112:[function(t,n,e){(function(n){\"use strict\";var r=t(\"../../logger\"),i=new r.Log,a=\"\",u=!1;e.setMessage=function(t){i.debug(\"Setting message to: \"+t),a=t},e.getMessage=function(){return a},e.setInfo=function(t){u=t},e.getInfo=function(){return u},e.parseError=function(t,e){n.mermaidAPI.parseError(t,e)}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../../logger\":130}],113:[function(t,n,e){\"use strict\";var r=t(\"./exampleDb\"),i=t(\"./parser/example.js\"),a=t(\"../../d3\"),u=t(\"../../logger\"),o=new u.Log;e.draw=function(t,n,e){var u;u=i.parser,u.yy=r,o.debug(\"Renering example diagram\"),u.parse(t);var s=a.select(\"#\"+n),c=s.append(\"g\");c.append(\"text\").attr(\"x\",100).attr(\"y\",40).attr(\"class\",\"version\").attr(\"font-size\",\"32px\").style(\"text-anchor\",\"middle\").text(\"mermaid \"+e),s.attr(\"height\",100),s.attr(\"width\",400)}},{\"../../d3\":108,\"../../logger\":130,\"./exampleDb\":112,\"./parser/example.js\":114}],114:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[6,9,10,12],r={trace:function(){},yy:{},symbols_:{error:2,start:3,info:4,document:5,EOF:6,line:7,statement:8,NL:9,showInfo:10,message:11,say:12,TXT:13,$accept:0,$end:1},terminals_:{2:\"error\",4:\"info\",6:\"EOF\",9:\"NL\",10:\"showInfo\",12:\"say\",13:\"TXT\"},productions_:[0,[3,3],[5,0],[5,2],[7,1],[7,1],[8,1],[8,1],[11,2]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 1:return r;case 4:break;case 6:r.setInfo(!0);break;case 7:r.setMessage(a[u]);break;case 8:this.$=a[u-1].substring(1).trim().replace(/\\\\n/gm,\"\\n\")}},table:[{3:1,4:[1,2]},{1:[3]},n(e,[2,2],{5:3}),{6:[1,4],7:5,8:6,9:[1,7],10:[1,8],11:9,12:[1,10]},{1:[2,1]},n(e,[2,3]),n(e,[2,4]),n(e,[2,5]),n(e,[2,6]),n(e,[2,7]),{13:[1,11]},n(e,[2,8])],defaultActions:{4:[2,1]},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={\nyy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},i=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(t,n,e,r){switch(e){case 0:return 9;case 1:return 10;case 2:return 4;case 3:return 12;case 4:return 13;case 5:return 6;case 6:return\"INVALID\"}},rules:[/^(?:[\\n]+)/i,/^(?:showInfo\\b)/i,/^(?:info\\b)/i,/^(?:say\\b)/i,/^(?::[^#\\n;]+)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6],inclusive:!0}}};return t}();return r.lexer=i,t.prototype=r,r.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],115:[function(t,n){\"use strict\";var e,r=t(\"../../logger\"),i=new r.Log;if(t)try{e=t(\"dagre-d3\")}catch(a){i.debug(\"Could not load dagre-d3\")}e||(e=window.dagreD3),n.exports=e},{\"../../logger\":130,\"dagre-d3\":3}],116:[function(t,n,e){\"use strict\";var r=t(\"./graphDb\"),i=t(\"./parser/flow\"),a=t(\"./parser/dot\"),u=t(\"../../d3\"),o=t(\"./dagre-d3\"),s=t(\"../../logger\"),c=new s.Log,l={};n.exports.setConf=function(t){var n,e=Object.keys(t);for(n=0;n<e.length;n++)l[e[n]]=t[e[n]]},e.addVertices=function(t,n){var e=Object.keys(t),r=function(t,n){var e;for(e=0;e<n.length;e++)\"undefined\"!=typeof n[e]&&(t=t+n[e]+\";\");return t};e.forEach(function(e){var i,a=t[e],u=\"\";a.classes.length>0&&(u=a.classes.join(\" \"));var o=\"\";o=r(o,a.styles),i=\"undefined\"==typeof a.text?a.id:a.text;var s=\"\";if(l.htmlLabels)s=\"html\",i=i.replace(/fa:fa[\\w\\-]+/g,function(t){return'<i class=\"fa '+t.substring(3)+'\"></i>'});else{var c=document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\"),h=i.split(/<br>/),f=0;for(f=0;f<h.length;f++){var d=document.createElementNS(\"http://www.w3.org/2000/svg\",\"tspan\");d.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\",\"xml:space\",\"preserve\"),d.setAttribute(\"dy\",\"1em\"),d.setAttribute(\"x\",\"1\"),d.textContent=h[f],c.appendChild(d)}s=\"svg\",i=c}var p=0,g=\"\";switch(a.type){case\"round\":p=5,g=\"rect\";break;case\"square\":g=\"rect\";break;case\"diamond\":g=\"question\";break;case\"odd\":g=\"rect_left_inv_arrow\";break;case\"odd_right\":g=\"rect_left_inv_arrow\";break;case\"circle\":g=\"circle\";break;case\"ellipse\":g=\"ellipse\";break;case\"group\":g=\"rect\",i=l.htmlLabels?\"\":document.createElementNS(\"http://www.w3.org/2000/svg\",\"text\");break;default:g=\"rect\"}n.setNode(a.id,{labelType:s,shape:g,label:i,rx:p,ry:p,\"class\":u,style:o,id:a.id})})},e.addEdges=function(t,n){var e,r=0;\"undefined\"!=typeof t.defaultStyle&&(e=t.defaultStyle.toString().replace(/,/g,\";\")),t.forEach(function(i){r++;var a={};a.arrowhead=\"arrow_open\"===i.type?\"none\":\"normal\";var u=\"\";if(\"undefined\"!=typeof i.style)i.style.forEach(function(t){u=u+t+\";\"});else switch(i.stroke){case\"normal\":u=\"fill:none\",\"undefined\"!=typeof e&&(u=e);break;case\"dotted\":u=\"stroke: #333; fill:none;stroke-width:2px;stroke-dasharray:3;\";break;case\"thick\":u=\"stroke: #333; stroke-width: 3.5px;fill:none\"}a.style=u,\"undefined\"!=typeof i.interpolate?a.lineInterpolate=i.interpolate:\"undefined\"!=typeof t.defaultInterpolate&&(a.lineInterpolate=t.defaultInterpolate),\"undefined\"==typeof i.text?\"undefined\"!=typeof i.style&&(a.arrowheadStyle=\"fill: #333\"):(a.arrowheadStyle=\"fill: #333\",\"undefined\"==typeof i.style?(a.labelpos=\"c\",l.htmlLabels?(a.labelType=\"html\",a.label='<span class=\"edgeLabel\">'+i.text+\"</span>\"):(a.labelType=\"text\",a.style=\"stroke: #333; stroke-width: 1.5px;fill:none\",a.label=i.text.replace(/<br>/g,\"\\n\"))):a.label=i.text.replace(/<br>/g,\"\\n\")),n.setEdge(i.start,i.end,a,r)})},e.getClasses=function(t,n){var e;r.clear(),e=n?a.parser:i.parser,e.yy=r,e.parse(t);var u=r.getClasses();return\"undefined\"==typeof u[\"default\"]&&(u[\"default\"]={id:\"default\"},u[\"default\"].styles=[],u[\"default\"].clusterStyles=[\"rx:4px\",\"fill: rgb(255, 255, 222)\",\"rx: 4px\",\"stroke: rgb(170, 170, 51)\",\"stroke-width: 1px\"],u[\"default\"].nodeLabelStyles=[\"fill:#000\",\"stroke:none\",\"font-weight:300\",'font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serf',\"font-size:14px\"],u[\"default\"].edgeLabelStyles=[\"fill:#000\",\"stroke:none\",\"font-weight:300\",'font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serf',\"font-size:14px\"]),u},e.draw=function(t,n,s){c.debug(\"Drawing flowchart\");var h;r.clear(),h=s?a.parser:i.parser,h.yy=r;try{h.parse(t)}catch(f){c.debug(\"Parsing failed\")}var d;d=r.getDirection(),\"undefined\"==typeof d&&(d=\"TD\");var p,g=new o.graphlib.Graph({multigraph:!0,compound:!0}).setGraph({rankdir:d,marginx:20,marginy:20}).setDefaultEdgeLabel(function(){return{}}),y=r.getSubGraphs(),m=0;for(m=y.length-1;m>=0;m--)p=y[m],r.addVertex(p.id,p.title,\"group\",void 0);var v=r.getVertices(),_=r.getEdges();m=0;var b;for(m=y.length-1;m>=0;m--)for(p=y[m],u.selectAll(\"cluster\").append(\"text\"),b=0;b<p.nodes.length;b++)g.setParent(p.nodes[b],p.id);e.addVertices(v,g),e.addEdges(_,g);var x=new o.render;x.shapes().question=function(t,n,e){var r=n.width,i=n.height,a=.8*(r+i),u=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}],s=t.insert(\"polygon\",\":first-child\").attr(\"points\",u.map(function(t){return t.x+\",\"+t.y}).join(\" \")).attr(\"rx\",5).attr(\"ry\",5).attr(\"transform\",\"translate(\"+-a/2+\",\"+2*a/4+\")\");return e.intersect=function(t){return o.intersect.polygon(e,u,t)},s},x.shapes().rect_left_inv_arrow=function(t,n,e){var r=n.width,i=n.height,a=[{x:-i/2,y:0},{x:r,y:0},{x:r,y:-i},{x:-i/2,y:-i},{x:0,y:-i/2}],u=t.insert(\"polygon\",\":first-child\").attr(\"points\",a.map(function(t){return t.x+\",\"+t.y}).join(\" \")).attr(\"transform\",\"translate(\"+-r/2+\",\"+2*i/4+\")\");return e.intersect=function(t){return o.intersect.polygon(e,a,t)},u},x.shapes().rect_right_inv_arrow=function(t,n,e){var r=n.width,i=n.height,a=[{x:0,y:0},{x:r+i/2,y:0},{x:r,y:-i/2},{x:r+i/2,y:-i},{x:0,y:-i}],u=t.insert(\"polygon\",\":first-child\").attr(\"points\",a.map(function(t){return t.x+\",\"+t.y}).join(\" \")).attr(\"transform\",\"translate(\"+-r/2+\",\"+2*i/4+\")\");return e.intersect=function(t){return o.intersect.polygon(e,a,t)},u},x.arrows().none=function(t,n,e,r){var i=t.append(\"marker\").attr(\"id\",n).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\"),a=i.append(\"path\").attr(\"d\",\"M 0 0 L 0 0 L 0 0 z\");o.util.applyStyle(a,e[r+\"Style\"])},x.arrows().normal=function(t,n){{var e=t.append(\"marker\").attr(\"id\",n).attr(\"viewBox\",\"0 0 10 10\").attr(\"refX\",9).attr(\"refY\",5).attr(\"markerUnits\",\"strokeWidth\").attr(\"markerWidth\",8).attr(\"markerHeight\",6).attr(\"orient\",\"auto\");e.append(\"path\").attr(\"d\",\"M 0 0 L 10 5 L 0 10 z\").attr(\"class\",\"arrowheadPath\").style(\"stroke-width\",1).style(\"stroke-dasharray\",\"1,0\")}};var w=u.select(\"#\"+n),A=u.select(\"#\"+n+\" g\");for(x(A,g),A.selectAll(\"g.node\").attr(\"title\",function(){return r.getTooltip(this.id)}),l.useMaxWidth?(w.attr(\"height\",\"100%\"),w.attr(\"width\",l.width),w.attr(\"viewBox\",\"0 0 \"+(g.graph().width+20)+\" \"+(g.graph().height+20)),w.attr(\"style\",\"max-width:\"+(g.graph().width+20)+\"px;\")):(w.attr(\"height\",g.graph().height),\"undefined\"==typeof l.width?w.attr(\"width\",g.graph().width):w.attr(\"width\",l.width),w.attr(\"viewBox\",\"0 0 \"+(g.graph().width+20)+\" \"+(g.graph().height+20))),r.indexNodes(\"subGraph\"+m),m=0;m<y.length;m++)if(p=y[m],\"undefined\"!==p.title){var k=document.querySelectorAll(\"#\"+n+\" #\"+p.id+\" rect\"),E=document.querySelectorAll(\"#\"+n+\" #\"+p.id),M=k[0].x.baseVal.value,S=k[0].y.baseVal.value,D=k[0].width.baseVal.value,C=u.select(E[0]),T=C.append(\"text\");T.attr(\"x\",M+D/2),T.attr(\"y\",S+14),T.attr(\"fill\",\"black\"),T.attr(\"stroke\",\"none\"),T.attr(\"id\",n+\"Text\"),T.style(\"text-anchor\",\"middle\"),T.text(\"undefined\"==typeof p.title?\"Undef\":p.title)}if(!l.htmlLabels){var m,F=document.querySelectorAll(\"#\"+n+\" .edgeLabel .label\");for(m=0;m<F.length;m++){var O=F[m],L=O.getBBox(),I=document.createElementNS(\"http://www.w3.org/2000/svg\",\"rect\");I.setAttribute(\"rx\",0),I.setAttribute(\"ry\",0),I.setAttribute(\"width\",L.width),I.setAttribute(\"height\",L.height),I.setAttribute(\"style\",\"fill:#e8e8e8;\"),O.insertBefore(I,O.firstChild)}}}},{\"../../d3\":108,\"../../logger\":130,\"./dagre-d3\":115,\"./graphDb\":117,\"./parser/dot\":118,\"./parser/flow\":119}],117:[function(require,module,exports){(function(global){\"use strict\";var Logger=require(\"../../logger\"),log=new Logger.Log,utils=require(\"../../utils\"),d3=require(\"../../d3\"),vertices={},edges=[],classes=[],subGraphs=[],tooltips={},subCount=0,direction,funs=[];exports.addVertex=function(t,n,e,r){var i;\"undefined\"!=typeof t&&0!==t.trim().length&&(\"undefined\"==typeof vertices[t]&&(vertices[t]={id:t,styles:[],classes:[]}),\"undefined\"!=typeof n&&(i=n.trim(),'\"'===i[0]&&'\"'===i[i.length-1]&&(i=i.substring(1,i.length-1)),vertices[t].text=i),\"undefined\"!=typeof e&&(vertices[t].type=e),\"undefined\"!=typeof e&&(vertices[t].type=e),\"undefined\"!=typeof r&&null!==r&&r.forEach(function(n){vertices[t].styles.push(n)}))},exports.addLink=function(t,n,e,r){log.info(\"Got edge...\",t,n);var i={start:t,end:n,type:void 0,text:\"\"};r=e.text,\"undefined\"!=typeof r&&(i.text=r.trim(),'\"'===i.text[0]&&'\"'===i.text[i.text.length-1]&&(i.text=i.text.substring(1,i.text.length-1))),\"undefined\"!=typeof e&&(i.type=e.type,i.stroke=e.stroke),edges.push(i)},exports.updateLinkInterpolate=function(t,n){\"default\"===t?edges.defaultInterpolate=n:edges[t].interpolate=n},exports.updateLink=function(t,n){\"default\"===t?edges.defaultStyle=n:(-1===utils.isSubstringInArray(\"fill\",n)&&n.push(\"fill:none\"),edges[t].style=n)},exports.addClass=function(t,n){\"undefined\"==typeof classes[t]&&(classes[t]={id:t,styles:[]}),\"undefined\"!=typeof n&&null!==n&&n.forEach(function(n){classes[t].styles.push(n)})},exports.setDirection=function(t){direction=t},exports.setClass=function(t,n){t.indexOf(\",\")>0?t.split(\",\").forEach(function(t){\"undefined\"!=typeof vertices[t]&&vertices[t].classes.push(n)}):\"undefined\"!=typeof vertices[t]&&vertices[t].classes.push(n)};var setTooltip=function(t,n){\"undefined\"!=typeof n&&(tooltips[t]=n)},setClickFun=function setClickFun(id,functionName){\"undefined\"!=typeof functionName&&\"undefined\"!=typeof vertices[id]&&funs.push(function(element){var elem=d3.select(element).select(\"#\"+id);null!==elem&&elem.on(\"click\",function(){eval(functionName+\"('\"+id+\"')\")})})},setLink=function(t,n){\"undefined\"!=typeof n&&\"undefined\"!=typeof vertices[t]&&funs.push(function(e){var r=d3.select(e).select(\"#\"+t);null!==r&&r.on(\"click\",function(){window.open(n,\"newTab\")})})};exports.getTooltip=function(t){return tooltips[t]},exports.setClickEvent=function(t,n,e,r){t.indexOf(\",\")>0?t.split(\",\").forEach(function(t){setTooltip(t,r),setClickFun(t,n),setLink(t,e)}):(setTooltip(t,r),setClickFun(t,n),setLink(t,e))},exports.bindFunctions=function(t){funs.forEach(function(n){n(t)})},exports.getDirection=function(){return direction},exports.getVertices=function(){return vertices},exports.getEdges=function(){return edges},exports.getClasses=function(){return classes};var setupToolTips=function(t){var n=d3.select(\".mermaidTooltip\");null===n[0][0]&&(n=d3.select(\"body\").append(\"div\").attr(\"class\",\"mermaidTooltip\").style(\"opacity\",0));var e=d3.select(t).select(\"svg\"),r=e.selectAll(\"g.node\");r.on(\"mouseover\",function(){var t=d3.select(this),e=t.attr(\"title\");if(null!==e){var r=this.getBoundingClientRect();n.transition().duration(200).style(\"opacity\",\".9\"),n.html(t.attr(\"title\")).style(\"left\",r.left+(r.right-r.left)/2+\"px\").style(\"top\",r.top-14+document.body.scrollTop+\"px\"),t.classed(\"hover\",!0)}}).on(\"mouseout\",function(){n.transition().duration(500).style(\"opacity\",0);var t=d3.select(this);t.classed(\"hover\",!1)})};funs.push(setupToolTips),exports.clear=function(){vertices={},classes={},edges=[],funs=[],funs.push(setupToolTips),subGraphs=[],subCount=0,tooltips=[]},exports.defaultStyle=function(){return\"fill:#ffa;stroke: #f66; stroke-width: 3px; stroke-dasharray: 5, 5;fill:#ffa;stroke: #666;\"},exports.addSubGraph=function(t,n){function e(t){var n={\"boolean\":{},number:{},string:{}},e=[];return t.filter(function(t){var r=typeof t;return\" \"===t?!1:r in n?n[r].hasOwnProperty(t)?!1:n[r][t]=!0:e.indexOf(t)>=0?!1:e.push(t)})}var r=[];r=e(r.concat.apply(r,t));var i={id:\"subGraph\"+subCount,nodes:r,title:n};return subGraphs.push(i),subCount+=1,i.id};var getPosForId=function(t){var n;for(n=0;n<subGraphs.length;n++)if(subGraphs[n].id===t)return n;return-1},secCount=-1,posCrossRef=[],indexNodes=function t(n,e){var r=subGraphs[e].nodes;if(secCount+=1,!(secCount>2e3)){if(posCrossRef[secCount]=e,subGraphs[e].id===n)return{result:!0,count:0};for(var i=0,a=1;i<r.length;){var u=getPosForId(r[i]);if(u>=0){var o=t(n,u);if(o.result)return{result:!0,count:a+o.count};a+=o.count}i+=1}return{result:!1,count:a}}};exports.getDepthFirstPos=function(t){return posCrossRef[t]},exports.indexNodes=function(){secCount=-1,subGraphs.length>0&&indexNodes(\"none\",subGraphs.length-1,0)},exports.getSubGraphs=function(){return subGraphs},exports.parseError=function(t,n){global.mermaidAPI.parseError(t,n)}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../../d3\":108,\"../../logger\":130,\"../../utils\":132}],118:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[1,5],r=[1,6],i=[1,12],a=[1,13],u=[1,14],o=[1,15],s=[1,16],c=[1,17],l=[1,18],h=[1,19],f=[1,20],d=[1,21],p=[1,22],g=[8,16,17,18,19,20,21,22,23,24,25,26],y=[1,37],m=[1,33],v=[1,34],_=[1,35],b=[1,36],x=[8,10,16,17,18,19,20,21,22,23,24,25,26,28,32,37,39,40,45,57,58],w=[10,28],A=[10,28,37,57,58],k=[2,49],E=[1,45],M=[1,48],S=[1,49],D=[1,52],C=[2,65],T=[1,65],F=[1,66],O=[1,67],L=[1,68],I=[1,69],B=[1,70],N=[1,71],P=[1,72],R=[1,73],j=[8,16,17,18,19,20,21,22,23,24,25,26,47],Y=[10,28,37],U={trace:function(){},yy:{},symbols_:{error:2,expressions:3,graph:4,EOF:5,graphStatement:6,idStatement:7,\"{\":8,stmt_list:9,\"}\":10,strict:11,GRAPH:12,DIGRAPH:13,textNoTags:14,textNoTagsToken:15,ALPHA:16,NUM:17,COLON:18,PLUS:19,EQUALS:20,MULT:21,DOT:22,BRKT:23,SPACE:24,MINUS:25,keywords:26,stmt:27,\";\":28,node_stmt:29,edge_stmt:30,attr_stmt:31,\"=\":32,subgraph:33,attr_list:34,NODE:35,EDGE:36,\"[\":37,a_list:38,\"]\":39,\",\":40,edgeRHS:41,node_id:42,edgeop:43,port:44,\":\":45,compass_pt:46,SUBGRAPH:47,n:48,ne:49,e:50,se:51,s:52,sw:53,w:54,nw:55,c:56,ARROW_POINT:57,ARROW_OPEN:58,$accept:0,$end:1},terminals_:{2:\"error\",5:\"EOF\",8:\"{\",10:\"}\",11:\"strict\",12:\"GRAPH\",13:\"DIGRAPH\",16:\"ALPHA\",17:\"NUM\",18:\"COLON\",19:\"PLUS\",20:\"EQUALS\",21:\"MULT\",22:\"DOT\",23:\"BRKT\",24:\"SPACE\",25:\"MINUS\",26:\"keywords\",28:\";\",32:\"=\",35:\"NODE\",36:\"EDGE\",37:\"[\",39:\"]\",40:\",\",45:\":\",47:\"SUBGRAPH\",48:\"n\",49:\"ne\",50:\"e\",51:\"se\",52:\"s\",53:\"sw\",54:\"w\",55:\"nw\",56:\"c\",57:\"ARROW_POINT\",58:\"ARROW_OPEN\"},productions_:[0,[3,2],[4,5],[4,6],[4,4],[6,1],[6,1],[7,1],[14,1],[14,2],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[15,1],[9,1],[9,3],[27,1],[27,1],[27,1],[27,3],[27,1],[31,2],[31,2],[31,2],[34,4],[34,3],[34,3],[34,2],[38,5],[38,5],[38,3],[30,3],[30,3],[30,2],[30,2],[41,3],[41,3],[41,2],[41,2],[29,2],[29,1],[42,2],[42,1],[44,4],[44,2],[44,2],[33,5],[33,4],[33,3],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,1],[46,0],[43,1],[43,1]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 1:this.$=a[u-1];break;case 2:this.$=a[u-4];break;case 3:this.$=a[u-5];break;case 4:this.$=a[u-3];break;case 8:case 10:case 11:this.$=a[u];break;case 9:this.$=a[u-1]+\"\"+a[u];break;case 12:case 13:case 14:case 15:case 16:case 18:case 19:case 20:this.$=a[u];break;case 17:this.$=\"<br>\";break;case 39:this.$=\"oy\";break;case 40:r.addLink(a[u-1],a[u].id,a[u].op),this.$=\"oy\";break;case 42:r.addLink(a[u-1],a[u].id,a[u].op),this.$={op:a[u-2],id:a[u-1]};break;case 44:this.$={op:a[u-1],id:a[u]};break;case 48:r.addVertex(a[u-1]),this.$=a[u-1];break;case 49:r.addVertex(a[u]),this.$=a[u];break;case 66:this.$=\"arrow\";break;case 67:this.$=\"arrow_open\"}},table:[{3:1,4:2,6:3,11:[1,4],12:e,13:r},{1:[3]},{5:[1,7]},{7:8,8:[1,9],14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p},{6:23,12:e,13:r},n(g,[2,5]),n(g,[2,6]),{1:[2,1]},{8:[1,24]},{7:30,8:y,9:25,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},n([8,10,28,32,37,39,40,45,57,58],[2,7],{15:38,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p}),n(x,[2,8]),n(x,[2,10]),n(x,[2,11]),n(x,[2,12]),n(x,[2,13]),n(x,[2,14]),n(x,[2,15]),n(x,[2,16]),n(x,[2,17]),n(x,[2,18]),n(x,[2,19]),n(x,[2,20]),{7:39,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p},{7:30,8:y,9:40,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},{10:[1,41]},{10:[2,21],28:[1,42]},n(w,[2,23]),n(w,[2,24]),n(w,[2,25]),n(A,k,{44:44,32:[1,43],45:E}),n(w,[2,27],{41:46,43:47,57:M,58:S}),n(w,[2,47],{43:47,34:50,41:51,37:D,57:M,58:S}),{34:53,37:D},{34:54,37:D},{34:55,37:D},{7:56,8:[1,57],14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p},{7:30,8:y,9:58,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},n(x,[2,9]),{8:[1,59]},{10:[1,60]},{5:[2,4]},{7:30,8:y,9:61,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},{7:62,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p},n(A,[2,48]),n(A,C,{14:10,15:11,7:63,46:64,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,48:T,49:F,50:O,51:L,52:I,53:B,54:N,55:P,56:R}),n(w,[2,41],{34:74,37:D}),{7:77,8:y,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,33:76,42:75,47:b},n(j,[2,66]),n(j,[2,67]),n(w,[2,46]),n(w,[2,40],{34:78,37:D}),{7:81,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,38:79,39:[1,80]},n(w,[2,28]),n(w,[2,29]),n(w,[2,30]),{8:[1,82]},{7:30,8:y,9:83,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},{10:[1,84]},{7:30,8:y,9:85,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},{5:[2,2]},{10:[2,22]},n(w,[2,26]),n(A,[2,51],{45:[1,86]}),n(A,[2,52]),n(A,[2,56]),n(A,[2,57]),n(A,[2,58]),n(A,[2,59]),n(A,[2,60]),n(A,[2,61]),n(A,[2,62]),n(A,[2,63]),n(A,[2,64]),n(w,[2,38]),n(Y,[2,44],{43:47,41:87,57:M,58:S}),n(Y,[2,45],{43:47,41:88,57:M,58:S}),n(A,k,{44:44,45:E}),n(w,[2,39]),{39:[1,89]},n(w,[2,34],{34:90,37:D}),{32:[1,91]},{7:30,8:y,9:92,12:m,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,27:26,29:27,30:28,31:29,33:31,35:v,36:_,42:32,47:b},{10:[1,93]},n(A,[2,55]),{10:[1,94]},n(A,C,{46:95,48:T,49:F,50:O,51:L,52:I,53:B,54:N,55:P,56:R}),n(Y,[2,42]),n(Y,[2,43]),n(w,[2,33],{34:96,37:D}),n(w,[2,32]),{7:97,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p},{10:[1,98]},n(A,[2,54]),{5:[2,3]},n(A,[2,50]),n(w,[2,31]),{28:[1,99],39:[2,37],40:[1,100]},n(A,[2,53]),{7:81,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,38:101},{7:81,14:10,15:11,16:i,17:a,18:u,19:o,20:s,21:c,22:l,23:h,24:f,25:d,26:p,38:102},{39:[2,35]},{39:[2,36]}],defaultActions:{7:[2,1],41:[2,4],60:[2,2],61:[2,22],94:[2,3],101:[2,35],102:[2,36]},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},$=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;\n\nthis._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,n,e,r){switch(e){case 0:return\"STYLE\";case 1:return\"LINKSTYLE\";case 2:return\"CLASSDEF\";case 3:return\"CLASS\";case 4:return\"CLICK\";case 5:return 12;case 6:return 13;case 7:return 47;case 8:return 35;case 9:return 36;case 10:return\"DIR\";case 11:return\"DIR\";case 12:return\"DIR\";case 13:return\"DIR\";case 14:return\"DIR\";case 15:return\"DIR\";case 16:return 17;case 17:return 23;case 18:return 18;case 19:return 28;case 20:return 40;case 21:return 32;case 22:return 21;case 23:return 22;case 24:return\"ARROW_CROSS\";case 25:return 57;case 26:return\"ARROW_CIRCLE\";case 27:return 58;case 28:return 25;case 29:return 19;case 30:return 20;case 31:return 16;case 32:return\"PIPE\";case 33:return\"PS\";case 34:return\"PE\";case 35:return 37;case 36:return 39;case 37:return 8;case 38:return 10;case 39:return\"QUOTE\";case 40:return 24;case 41:return\"NEWLINE\";case 42:return 5}},rules:[/^(?:style\\b)/,/^(?:linkStyle\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:click\\b)/,/^(?:graph\\b)/,/^(?:digraph\\b)/,/^(?:subgraph\\b)/,/^(?:node\\b)/,/^(?:edge\\b)/,/^(?:LR\\b)/,/^(?:RL\\b)/,/^(?:TB\\b)/,/^(?:BT\\b)/,/^(?:TD\\b)/,/^(?:BR\\b)/,/^(?:[0-9])/,/^(?:#)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:=)/,/^(?:\\*)/,/^(?:\\.)/,/^(?:--[x])/,/^(?:->)/,/^(?:--[o])/,/^(?:--)/,/^(?:-)/,/^(?:\\+)/,/^(?:=)/,/^(?:[\\u0021-\\u0027\\u002A-\\u002E\\u003F\\u0041-\\u005A\\u0061-\\u007A\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC_])/,/^(?:\\|)/,/^(?:\\()/,/^(?:\\))/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\{)/,/^(?:\\})/,/^(?:\")/,/^(?:\\s)/,/^(?:\\n)/,/^(?:$)/],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!0}}};return t}();return U.lexer=$,t.prototype=U,U.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],119:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[1,4],r=[1,3],i=[1,5],a=[1,8,9,10,11,13,18,30,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],u=[2,2],o=[1,12],s=[1,13],c=[1,14],l=[1,15],h=[1,31],f=[1,33],d=[1,22],p=[1,34],g=[1,24],y=[1,25],m=[1,26],v=[1,27],_=[1,28],b=[1,38],x=[1,40],w=[1,35],A=[1,39],k=[1,45],E=[1,44],M=[1,36],S=[1,37],D=[1,41],C=[1,42],T=[1,43],F=[1,8,9,10,11,13,18,30,32,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],O=[1,53],L=[1,52],I=[1,54],B=[1,72],N=[1,80],P=[1,81],R=[1,66],j=[1,65],Y=[1,85],U=[1,84],$=[1,82],W=[1,83],z=[1,73],q=[1,68],G=[1,67],H=[1,63],V=[1,75],Z=[1,76],X=[1,77],K=[1,78],Q=[1,79],J=[1,70],tt=[1,69],nt=[8,9,11],et=[8,9,11,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64],rt=[1,115],it=[8,9,10,11,13,15,18,36,38,40,42,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,81,86,88,89,91,92,94,95,96,97,98],at=[8,9,10,11,12,13,15,16,17,18,30,32,36,37,38,39,40,41,42,43,46,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,81,84,86,88,89,91,92,94,95,96,97,98],ut=[1,117],ot=[1,118],st=[8,9,10,11,13,18,30,32,46,71,72,73,74,75,81,86,88,89,91,92,94,95,96,97,98],ct=[8,9,10,11,12,13,15,16,17,18,30,32,37,39,41,43,46,50,51,52,53,54,56,57,58,59,60,61,62,63,64,65,71,72,73,74,75,78,81,84,86,88,89,91,92,94,95,96,97,98],lt=[13,18,46,81,86,88,89,91,92,94,95,96,97,98],ht=[13,18,46,49,65,81,86,88,89,91,92,94,95,96,97,98],ft=[1,191],dt=[1,188],pt=[1,195],gt=[1,192],yt=[1,189],mt=[1,196],vt=[1,186],_t=[1,187],bt=[1,190],xt=[1,193],wt=[1,194],At=[1,213],kt=[8,9,11,86],Et=[8,9,10,11,46,71,80,81,84,86,88,89,90,91,92],Mt={trace:function(){},yy:{},symbols_:{error:2,mermaidDoc:3,graphConfig:4,document:5,line:6,statement:7,SEMI:8,NEWLINE:9,SPACE:10,EOF:11,GRAPH:12,DIR:13,FirstStmtSeperator:14,TAGEND:15,TAGSTART:16,UP:17,DOWN:18,ending:19,endToken:20,spaceList:21,spaceListNewline:22,verticeStatement:23,separator:24,styleStatement:25,linkStyleStatement:26,classDefStatement:27,classStatement:28,clickStatement:29,subgraph:30,text:31,end:32,vertex:33,link:34,alphaNum:35,SQS:36,SQE:37,PS:38,PE:39,\"(-\":40,\"-)\":41,DIAMOND_START:42,DIAMOND_STOP:43,alphaNumStatement:44,alphaNumToken:45,MINUS:46,linkStatement:47,arrowText:48,TESTSTR:49,\"--\":50,ARROW_POINT:51,ARROW_CIRCLE:52,ARROW_CROSS:53,ARROW_OPEN:54,\"-.\":55,DOTTED_ARROW_POINT:56,DOTTED_ARROW_CIRCLE:57,DOTTED_ARROW_CROSS:58,DOTTED_ARROW_OPEN:59,\"==\":60,THICK_ARROW_POINT:61,THICK_ARROW_CIRCLE:62,THICK_ARROW_CROSS:63,THICK_ARROW_OPEN:64,PIPE:65,textToken:66,STR:67,commentText:68,commentToken:69,keywords:70,STYLE:71,LINKSTYLE:72,CLASSDEF:73,CLASS:74,CLICK:75,textNoTags:76,textNoTagsToken:77,DEFAULT:78,stylesOpt:79,HEX:80,NUM:81,INTERPOLATE:82,commentStatement:83,PCT:84,style:85,COMMA:86,styleComponent:87,ALPHA:88,COLON:89,UNIT:90,BRKT:91,DOT:92,graphCodeTokens:93,PUNCTUATION:94,UNICODE_TEXT:95,PLUS:96,EQUALS:97,MULT:98,TAG_START:99,TAG_END:100,QUOTE:101,$accept:0,$end:1},terminals_:{2:\"error\",8:\"SEMI\",9:\"NEWLINE\",10:\"SPACE\",11:\"EOF\",12:\"GRAPH\",13:\"DIR\",15:\"TAGEND\",16:\"TAGSTART\",17:\"UP\",18:\"DOWN\",30:\"subgraph\",32:\"end\",36:\"SQS\",37:\"SQE\",38:\"PS\",39:\"PE\",40:\"(-\",41:\"-)\",42:\"DIAMOND_START\",43:\"DIAMOND_STOP\",46:\"MINUS\",49:\"TESTSTR\",50:\"--\",51:\"ARROW_POINT\",52:\"ARROW_CIRCLE\",53:\"ARROW_CROSS\",54:\"ARROW_OPEN\",55:\"-.\",56:\"DOTTED_ARROW_POINT\",57:\"DOTTED_ARROW_CIRCLE\",58:\"DOTTED_ARROW_CROSS\",59:\"DOTTED_ARROW_OPEN\",60:\"==\",61:\"THICK_ARROW_POINT\",62:\"THICK_ARROW_CIRCLE\",63:\"THICK_ARROW_CROSS\",64:\"THICK_ARROW_OPEN\",65:\"PIPE\",67:\"STR\",71:\"STYLE\",72:\"LINKSTYLE\",73:\"CLASSDEF\",74:\"CLASS\",75:\"CLICK\",78:\"DEFAULT\",80:\"HEX\",81:\"NUM\",82:\"INTERPOLATE\",84:\"PCT\",86:\"COMMA\",88:\"ALPHA\",89:\"COLON\",90:\"UNIT\",91:\"BRKT\",92:\"DOT\",94:\"PUNCTUATION\",95:\"UNICODE_TEXT\",96:\"PLUS\",97:\"EQUALS\",98:\"MULT\",99:\"TAG_START\",100:\"TAG_END\",101:\"QUOTE\"},productions_:[0,[3,2],[5,0],[5,2],[6,1],[6,1],[6,1],[6,1],[6,1],[4,2],[4,2],[4,4],[4,4],[4,4],[4,4],[4,4],[19,2],[19,1],[20,1],[20,1],[20,1],[14,1],[14,1],[14,2],[22,2],[22,2],[22,1],[22,1],[21,2],[21,1],[7,2],[7,2],[7,2],[7,2],[7,2],[7,2],[7,5],[7,4],[24,1],[24,1],[24,1],[23,3],[23,1],[33,4],[33,5],[33,6],[33,7],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,4],[33,5],[33,1],[33,2],[35,1],[35,2],[44,1],[44,1],[44,1],[44,1],[34,2],[34,3],[34,3],[34,1],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[34,3],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[47,1],[48,3],[31,1],[31,2],[31,1],[68,1],[68,2],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[70,1],[76,1],[76,2],[27,5],[27,5],[28,5],[29,5],[29,7],[29,5],[29,7],[25,5],[25,5],[26,5],[26,5],[26,9],[26,9],[26,7],[26,7],[83,3],[79,1],[79,3],[85,1],[85,2],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[87,1],[69,1],[69,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[66,1],[77,1],[77,1],[77,1],[77,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1],[93,1]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 2:this.$=[];break;case 3:a[u]!==[]&&a[u-1].push(a[u]),this.$=a[u-1];break;case 4:case 57:case 59:case 60:case 92:case 94:case 95:case 108:this.$=a[u];break;case 11:r.setDirection(a[u-1]),this.$=a[u-1];break;case 12:r.setDirection(\"LR\"),this.$=a[u-1];break;case 13:r.setDirection(\"RL\"),this.$=a[u-1];break;case 14:r.setDirection(\"BT\"),this.$=a[u-1];break;case 15:r.setDirection(\"TB\"),this.$=a[u-1];break;case 30:this.$=a[u-1];break;case 31:case 32:case 33:case 34:case 35:this.$=[];break;case 36:this.$=r.addSubGraph(a[u-1],a[u-3]);break;case 37:this.$=r.addSubGraph(a[u-1],void 0);break;case 41:r.addLink(a[u-2],a[u],a[u-1]),this.$=[a[u-2],a[u]];break;case 42:this.$=[a[u]];break;case 43:this.$=a[u-3],r.addVertex(a[u-3],a[u-1],\"square\");break;case 44:this.$=a[u-4],r.addVertex(a[u-4],a[u-2],\"square\");break;case 45:this.$=a[u-5],r.addVertex(a[u-5],a[u-2],\"circle\");break;case 46:this.$=a[u-6],r.addVertex(a[u-6],a[u-3],\"circle\");break;case 47:this.$=a[u-3],r.addVertex(a[u-3],a[u-1],\"ellipse\");break;case 48:this.$=a[u-4],r.addVertex(a[u-4],a[u-2],\"ellipse\");break;case 49:this.$=a[u-3],r.addVertex(a[u-3],a[u-1],\"round\");break;case 50:this.$=a[u-4],r.addVertex(a[u-4],a[u-2],\"round\");break;case 51:this.$=a[u-3],r.addVertex(a[u-3],a[u-1],\"diamond\");break;case 52:this.$=a[u-4],r.addVertex(a[u-4],a[u-2],\"diamond\");break;case 53:this.$=a[u-3],r.addVertex(a[u-3],a[u-1],\"odd\");break;case 54:this.$=a[u-4],r.addVertex(a[u-4],a[u-2],\"odd\");break;case 55:this.$=a[u],r.addVertex(a[u]);break;case 56:this.$=a[u-1],r.addVertex(a[u-1]);break;case 58:case 93:case 96:case 109:this.$=a[u-1]+\"\"+a[u];break;case 61:this.$=\"v\";break;case 62:this.$=\"-\";break;case 63:a[u-1].text=a[u],this.$=a[u-1];break;case 64:case 65:a[u-2].text=a[u-1],this.$=a[u-2];break;case 66:this.$=a[u];break;case 67:this.$={type:\"arrow\",stroke:\"normal\",text:a[u-1]};break;case 68:this.$={type:\"arrow_circle\",stroke:\"normal\",text:a[u-1]};break;case 69:this.$={type:\"arrow_cross\",stroke:\"normal\",text:a[u-1]};break;case 70:this.$={type:\"arrow_open\",stroke:\"normal\",text:a[u-1]};break;case 71:this.$={type:\"arrow\",stroke:\"dotted\",text:a[u-1]};break;case 72:this.$={type:\"arrow_circle\",stroke:\"dotted\",text:a[u-1]};break;case 73:this.$={type:\"arrow_cross\",stroke:\"dotted\",text:a[u-1]};break;case 74:this.$={type:\"arrow_open\",stroke:\"dotted\",text:a[u-1]};break;case 75:this.$={type:\"arrow\",stroke:\"thick\",text:a[u-1]};break;case 76:this.$={type:\"arrow_circle\",stroke:\"thick\",text:a[u-1]};break;case 77:this.$={type:\"arrow_cross\",stroke:\"thick\",text:a[u-1]};break;case 78:this.$={type:\"arrow_open\",stroke:\"thick\",text:a[u-1]};break;case 79:this.$={type:\"arrow\",stroke:\"normal\"};break;case 80:this.$={type:\"arrow_circle\",stroke:\"normal\"};break;case 81:this.$={type:\"arrow_cross\",stroke:\"normal\"};break;case 82:this.$={type:\"arrow_open\",stroke:\"normal\"};break;case 83:this.$={type:\"arrow\",stroke:\"dotted\"};break;case 84:this.$={type:\"arrow_circle\",stroke:\"dotted\"};break;case 85:this.$={type:\"arrow_cross\",stroke:\"dotted\"};break;case 86:this.$={type:\"arrow_open\",stroke:\"dotted\"};break;case 87:this.$={type:\"arrow\",stroke:\"thick\"};break;case 88:this.$={type:\"arrow_circle\",stroke:\"thick\"};break;case 89:this.$={type:\"arrow_cross\",stroke:\"thick\"};break;case 90:this.$={type:\"arrow_open\",stroke:\"thick\"};break;case 91:this.$=a[u-1];break;case 110:case 111:this.$=a[u-4],r.addClass(a[u-2],a[u]);break;case 112:this.$=a[u-4],r.setClass(a[u-2],a[u]);break;case 113:this.$=a[u-4],r.setClickEvent(a[u-2],a[u],void 0,void 0);break;case 114:this.$=a[u-6],r.setClickEvent(a[u-4],a[u-2],void 0,a[u]);break;case 115:this.$=a[u-4],r.setClickEvent(a[u-2],void 0,a[u],void 0);break;case 116:this.$=a[u-6],r.setClickEvent(a[u-4],void 0,a[u-2],a[u]);break;case 117:this.$=a[u-4],r.addVertex(a[u-2],void 0,void 0,a[u]);break;case 118:case 119:case 120:this.$=a[u-4],r.updateLink(a[u-2],a[u]);break;case 121:case 122:this.$=a[u-8],r.updateLinkInterpolate(a[u-6],a[u-2]),r.updateLink(a[u-6],a[u]);break;case 123:case 124:this.$=a[u-6],r.updateLinkInterpolate(a[u-4],a[u]);break;case 126:this.$=[a[u]];break;case 127:a[u-2].push(a[u]),this.$=a[u-2];break;case 129:this.$=a[u-1]+a[u]}},table:[{3:1,4:2,9:e,10:r,12:i},{1:[3]},n(a,u,{5:6}),{4:7,9:e,10:r,12:i},{4:8,9:e,10:r,12:i},{10:[1,9]},{1:[2,1],6:10,7:11,8:o,9:s,10:c,11:l,13:h,18:f,23:16,25:17,26:18,27:19,28:20,29:21,30:d,33:23,35:29,44:30,45:32,46:p,71:g,72:y,73:m,74:v,75:_,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(a,[2,9]),n(a,[2,10]),{13:[1,46],15:[1,47],16:[1,48],17:[1,49],18:[1,50]},n(F,[2,3]),n(F,[2,4]),n(F,[2,5]),n(F,[2,6]),n(F,[2,7]),n(F,[2,8]),{8:O,9:L,11:I,24:51},{8:O,9:L,11:I,24:55},{8:O,9:L,11:I,24:56},{8:O,9:L,11:I,24:57},{8:O,9:L,11:I,24:58},{8:O,9:L,11:I,24:59},{8:O,9:L,10:B,11:I,12:N,13:P,15:R,16:j,17:Y,18:U,24:61,30:$,31:60,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(nt,[2,42],{34:86,47:87,50:[1,88],51:[1,91],52:[1,92],53:[1,93],54:[1,94],55:[1,89],56:[1,95],57:[1,96],58:[1,97],59:[1,98],60:[1,90],61:[1,99],62:[1,100],63:[1,101],64:[1,102]}),{10:[1,103]},{10:[1,104]},{10:[1,105]},{10:[1,106]},{10:[1,107]},n(et,[2,55],{45:32,21:113,44:114,10:rt,13:h,15:[1,112],18:f,36:[1,108],38:[1,109],40:[1,110],42:[1,111],46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T}),n(it,[2,57]),n(it,[2,59]),n(it,[2,60]),n(it,[2,61]),n(it,[2,62]),n(at,[2,154]),n(at,[2,155]),n(at,[2,156]),n(at,[2,157]),n(at,[2,158]),n(at,[2,159]),n(at,[2,160]),n(at,[2,161]),n(at,[2,162]),n(at,[2,163]),n(at,[2,164]),{8:ut,9:ot,10:rt,14:116,21:119},{8:ut,9:ot,10:rt,14:120,21:119},{8:ut,9:ot,10:rt,14:121,21:119},{8:ut,9:ot,10:rt,14:122,21:119},{8:ut,9:ot,10:rt,14:123,21:119},n(F,[2,30]),n(F,[2,38]),n(F,[2,39]),n(F,[2,40]),n(F,[2,31]),n(F,[2,32]),n(F,[2,33]),n(F,[2,34]),n(F,[2,35]),{8:O,9:L,10:B,11:I,12:N,13:P,15:R,16:j,17:Y,18:U,24:124,30:$,32:W,45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(st,u,{5:126}),n(ct,[2,92]),n(ct,[2,94]),n(ct,[2,143]),n(ct,[2,144]),n(ct,[2,145]),n(ct,[2,146]),n(ct,[2,147]),n(ct,[2,148]),n(ct,[2,149]),n(ct,[2,150]),n(ct,[2,151]),n(ct,[2,152]),n(ct,[2,153]),n(ct,[2,97]),n(ct,[2,98]),n(ct,[2,99]),n(ct,[2,100]),n(ct,[2,101]),n(ct,[2,102]),n(ct,[2,103]),n(ct,[2,104]),n(ct,[2,105]),n(ct,[2,106]),n(ct,[2,107]),{13:h,18:f,33:127,35:29,44:30,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(lt,[2,66],{48:128,49:[1,129],65:[1,130]}),{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:131,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:132,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:133,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(ht,[2,79]),n(ht,[2,80]),n(ht,[2,81]),n(ht,[2,82]),n(ht,[2,83]),n(ht,[2,84]),n(ht,[2,85]),n(ht,[2,86]),n(ht,[2,87]),n(ht,[2,88]),n(ht,[2,89]),n(ht,[2,90]),{13:h,18:f,35:134,44:30,45:32,46:p,80:[1,135],81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{78:[1,136],81:[1,137]},{13:h,18:f,35:139,44:30,45:32,46:p,78:[1,138],81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{13:h,18:f,35:140,44:30,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{13:h,18:f,35:141,44:30,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:142,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:144,32:W,38:[1,143],45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:145,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:146,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:147,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(et,[2,56]),n(it,[2,58]),n(et,[2,29],{21:148,10:rt}),n(a,[2,11]),n(a,[2,21]),n(a,[2,22]),{9:[1,149]},n(a,[2,12]),n(a,[2,13]),n(a,[2,14]),n(a,[2,15]),n(st,u,{5:150}),n(ct,[2,93]),{6:10,7:11,8:o,9:s,10:c,11:l,13:h,18:f,23:16,25:17,26:18,27:19,28:20,29:21,30:d,32:[1,151],33:23,35:29,44:30,45:32,46:p,71:g,72:y,73:m,74:v,75:_,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(nt,[2,41]),n(lt,[2,63],{10:[1,152]}),{10:[1,153]},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:154,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,45:71,46:z,50:q,51:[1,155],52:[1,156],53:[1,157],54:[1,158],60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,45:71,46:z,50:q,56:[1,159],57:[1,160],58:[1,161],59:[1,162],60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,45:71,46:z,50:q,60:G,61:[1,163],62:[1,164],63:[1,165],64:[1,166],66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:[1,167],13:h,18:f,44:114,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:[1,168]},{10:[1,169]},{10:[1,170]},{10:[1,171]},{10:[1,172],13:h,18:f,44:114,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:[1,173],13:h,18:f,44:114,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:[1,174],13:h,18:f,44:114,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,37:[1,175],45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,31:176,32:W,45:71,46:z,50:q,60:G,66:62,67:H,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,39:[1,177],45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,41:[1,178],45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,43:[1,179],45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,37:[1,180],45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(et,[2,28]),n(a,[2,23]),{6:10,7:11,8:o,9:s,10:c,11:l,13:h,18:f,23:16,25:17,26:18,27:19,28:20,29:21,30:d,32:[1,181],33:23,35:29,44:30,45:32,46:p,71:g,72:y,73:m,74:v,75:_,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(F,[2,37]),n(lt,[2,65]),n(lt,[2,64]),{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,45:71,46:z,50:q,60:G,65:[1,182],66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(lt,[2,67]),n(lt,[2,68]),n(lt,[2,69]),n(lt,[2,70]),n(lt,[2,71]),n(lt,[2,72]),n(lt,[2,73]),n(lt,[2,74]),n(lt,[2,75]),n(lt,[2,76]),n(lt,[2,77]),n(lt,[2,78]),{10:ft,46:dt,71:pt,79:183,80:gt,81:yt,84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{10:ft,46:dt,71:pt,79:197,80:gt,81:yt,84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{10:ft,46:dt,71:pt,79:198,80:gt,81:yt,82:[1,199],84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{10:ft,46:dt,71:pt,79:200,80:gt,81:yt,82:[1,201],84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{10:ft,46:dt,71:pt,79:202,80:gt,81:yt,84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{10:ft,46:dt,71:pt,79:203,80:gt,81:yt,84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{13:h,18:f,35:204,44:30,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{13:h,18:f,35:205,44:30,45:32,46:p,67:[1,206],81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(et,[2,43],{21:207,10:rt}),{10:B,12:N,13:P,15:R,16:j,17:Y,18:U,30:$,32:W,39:[1,208],45:71,46:z,50:q,60:G,66:125,70:74,71:V,72:Z,73:X,74:K,75:Q,77:64,78:J,81:b,84:tt,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},n(et,[2,49],{21:209,10:rt}),n(et,[2,47],{21:210,10:rt}),n(et,[2,51],{21:211,10:rt}),n(et,[2,53],{21:212,10:rt}),n(F,[2,36]),n([10,13,18,46,81,86,88,89,91,92,94,95,96,97,98],[2,91]),n(nt,[2,117],{86:At}),n(kt,[2,126],{87:214,10:ft,46:dt,71:pt,80:gt,81:yt,84:mt,88:vt,89:_t,90:bt,91:xt,92:wt}),n(Et,[2,128]),n(Et,[2,130]),n(Et,[2,131]),n(Et,[2,132]),n(Et,[2,133]),n(Et,[2,134]),n(Et,[2,135]),n(Et,[2,136]),n(Et,[2,137]),n(Et,[2,138]),n(Et,[2,139]),n(Et,[2,140]),n(nt,[2,118],{86:At}),n(nt,[2,119],{86:At}),{10:[1,215]},n(nt,[2,120],{86:At}),{10:[1,216]},n(nt,[2,110],{86:At}),n(nt,[2,111],{86:At}),n(nt,[2,112],{45:32,44:114,13:h,18:f,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T}),n(nt,[2,113],{45:32,44:114,10:[1,217],13:h,18:f,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T}),n(nt,[2,115],{10:[1,218]}),n(et,[2,44]),{39:[1,219]},n(et,[2,50]),n(et,[2,48]),n(et,[2,52]),n(et,[2,54]),{10:ft,46:dt,71:pt,80:gt,81:yt,84:mt,85:220,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},n(Et,[2,129]),{13:h,18:f,35:221,44:30,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{13:h,18:f,35:222,44:30,45:32,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T},{67:[1,223]},{67:[1,224]},n(et,[2,45],{21:225,10:rt}),n(kt,[2,127],{87:214,10:ft,46:dt,71:pt,80:gt,81:yt,84:mt,88:vt,89:_t,90:bt,91:xt,92:wt}),n(nt,[2,123],{45:32,44:114,10:[1,226],13:h,18:f,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T}),n(nt,[2,124],{45:32,44:114,10:[1,227],13:h,18:f,46:p,81:b,86:x,88:w,89:A,91:k,92:E,94:M,95:S,96:D,97:C,98:T}),n(nt,[2,114]),n(nt,[2,116]),n(et,[2,46]),{10:ft,46:dt,71:pt,79:228,80:gt,81:yt,84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},{10:ft,46:dt,71:pt,79:229,80:gt,81:yt,84:mt,85:184,87:185,88:vt,89:_t,90:bt,91:xt,92:wt},n(nt,[2,121],{86:At}),n(nt,[2,122],{86:At})],defaultActions:{},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},St=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;\n\nreturn t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(t,n,e,r){switch(e){case 0:break;case 1:this.begin(\"string\");break;case 2:this.popState();break;case 3:return\"STR\";case 4:return 71;case 5:return 78;case 6:return 72;case 7:return 82;case 8:return 73;case 9:return 74;case 10:return 75;case 11:return 12;case 12:return 30;case 13:return 32;case 14:return 13;case 15:return 13;case 16:return 13;case 17:return 13;case 18:return 13;case 19:return 13;case 20:return 81;case 21:return 91;case 22:return 89;case 23:return 8;case 24:return 86;case 25:return 98;case 26:return 16;case 27:return 15;case 28:return 17;case 29:return 18;case 30:return 53;case 31:return 51;case 32:return 52;case 33:return 54;case 34:return 58;case 35:return 56;case 36:return 57;case 37:return 59;case 38:return 58;case 39:return 56;case 40:return 57;case 41:return 59;case 42:return 63;case 43:return 61;case 44:return 62;case 45:return 64;case 46:return 50;case 47:return 55;case 48:return 60;case 49:return 40;case 50:return 41;case 51:return 46;case 52:return 92;case 53:return 96;case 54:return 84;case 55:return 97;case 56:return 97;case 57:return 88;case 58:return 94;case 59:return 95;case 60:return 65;case 61:return 38;case 62:return 39;case 63:return 36;case 64:return 37;case 65:return 42;case 66:return 43;case 67:return 101;case 68:return 9;case 69:return 10;case 70:return 11}},rules:[/^(?:%%[^\\n]*)/,/^(?:[\"])/,/^(?:[\"])/,/^(?:[^\"]*)/,/^(?:style\\b)/,/^(?:default\\b)/,/^(?:linkStyle\\b)/,/^(?:interpolate\\b)/,/^(?:classDef\\b)/,/^(?:class\\b)/,/^(?:click\\b)/,/^(?:graph\\b)/,/^(?:subgraph\\b)/,/^(?:end\\b\\s*)/,/^(?:LR\\b)/,/^(?:RL\\b)/,/^(?:TB\\b)/,/^(?:BT\\b)/,/^(?:TD\\b)/,/^(?:BR\\b)/,/^(?:[0-9]+)/,/^(?:#)/,/^(?::)/,/^(?:;)/,/^(?:,)/,/^(?:\\*)/,/^(?:<)/,/^(?:>)/,/^(?:\\^)/,/^(?:v\\b)/,/^(?:\\s*--[x]\\s*)/,/^(?:\\s*-->\\s*)/,/^(?:\\s*--[o]\\s*)/,/^(?:\\s*---\\s*)/,/^(?:\\s*-\\.-[x]\\s*)/,/^(?:\\s*-\\.->\\s*)/,/^(?:\\s*-\\.-[o]\\s*)/,/^(?:\\s*-\\.-\\s*)/,/^(?:\\s*.-[x]\\s*)/,/^(?:\\s*\\.->\\s*)/,/^(?:\\s*\\.-[o]\\s*)/,/^(?:\\s*\\.-\\s*)/,/^(?:\\s*==[x]\\s*)/,/^(?:\\s*==>\\s*)/,/^(?:\\s*==[o]\\s*)/,/^(?:\\s*==[\\=]\\s*)/,/^(?:\\s*--\\s*)/,/^(?:\\s*-\\.\\s*)/,/^(?:\\s*==\\s*)/,/^(?:\\(-)/,/^(?:-\\))/,/^(?:-)/,/^(?:\\.)/,/^(?:\\+)/,/^(?:%)/,/^(?:=)/,/^(?:=)/,/^(?:[A-Za-z]+)/,/^(?:[!\"#$%&'*+,-.`?\\\\_\\/])/,/^(?:[\\u00AA\\u00B5\\u00BA\\u00C0-\\u00D6\\u00D8-\\u00F6]|[\\u00F8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377]|[\\u037A-\\u037D\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5]|[\\u03F7-\\u0481\\u048A-\\u0527\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA]|[\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE]|[\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA]|[\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0]|[\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0977]|[\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2]|[\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A]|[\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39]|[\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8]|[\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C]|[\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C]|[\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99]|[\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0]|[\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D]|[\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3]|[\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10]|[\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1]|[\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81]|[\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3]|[\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6]|[\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A]|[\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081]|[\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D]|[\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0]|[\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310]|[\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C]|[\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711]|[\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7]|[\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C]|[\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16]|[\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF]|[\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC]|[\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D]|[\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D]|[\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3]|[\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F]|[\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128]|[\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184]|[\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3]|[\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6]|[\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE]|[\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C]|[\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D]|[\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC]|[\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B]|[\\uA640-\\uA66E\\uA67F-\\uA697\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788]|[\\uA78B-\\uA78E\\uA790-\\uA793\\uA7A0-\\uA7AA\\uA7F8-\\uA801\\uA803-\\uA805]|[\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB]|[\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28]|[\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5]|[\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4]|[\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E]|[\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D]|[\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36]|[\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D]|[\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC]|[\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF]|[\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC])/,/^(?:\\|)/,/^(?:\\()/,/^(?:\\))/,/^(?:\\[)/,/^(?:\\])/,/^(?:\\{)/,/^(?:\\})/,/^(?:\")/,/^(?:\\n+)/,/^(?:\\s)/,/^(?:$)/],conditions:{string:{rules:[2,3],inclusive:!1},INITIAL:{rules:[0,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70],inclusive:!0}}};return t}();return Mt.lexer=St,t.prototype=Mt,Mt.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],120:[function(t,n,e){(function(n){\"use strict\";var r=t(\"moment\"),i=t(\"../../logger\"),a=new i.Log,u=\"\",o=\"\",s=[],c=[],l=\"\";e.clear=function(){s=[],c=[],l=\"\",o=\"\",g=0,h=void 0,f=void 0,_=[]},e.setDateFormat=function(t){u=t},e.getDateFormat=function(){return u},e.setTitle=function(t){o=t},e.getTitle=function(){return o},e.addSection=function(t){l=t,s.push(t)},e.getTasks=function(){for(var t=x(),n=10,e=0;!t&&n>e;)t=x(),e++;return c=_};var h,f,d=function(t,n,i){i=i.trim();var u=/^after\\s+([\\d\\w\\-]+)/,o=u.exec(i.trim());if(null!==o){var s=e.findTaskById(o[1]);if(\"undefined\"==typeof s){var c=new Date;return c.setHours(0,0,0,0),c}return s.endTime}return r(i,n.trim(),!0).isValid()?r(i,n.trim(),!0).toDate():(a.debug(\"Invalid date:\"+i),a.debug(\"With date format:\"+n.trim()),new Date)},p=function(t,n,e){if(e=e.trim(),r(e,n.trim(),!0).isValid())return r(e,n.trim()).toDate();var i=r(t),a=/^([\\d]+)([wdhms])/,u=a.exec(e.trim());if(null!==u){switch(u[2]){case\"s\":i.add(u[1],\"seconds\");break;case\"m\":i.add(u[1],\"minutes\");break;case\"h\":i.add(u[1],\"hours\");break;case\"d\":i.add(u[1],\"days\");break;case\"w\":i.add(u[1],\"weeks\")}return i.toDate()}return i.toDate()},g=0,y=function(t){return\"undefined\"==typeof t?(g+=1,\"task\"+g):t},m=function(t,n){var r;r=\":\"===n.substr(0,1)?n.substr(1,n.length):n;for(var i=r.split(\",\"),a={},u=e.getDateFormat(),o=!0;o;)o=!1,i[0].match(/^\\s*active\\s*$/)&&(a.active=!0,i.shift(1),o=!0),i[0].match(/^\\s*done\\s*$/)&&(a.done=!0,i.shift(1),o=!0),i[0].match(/^\\s*crit\\s*$/)&&(a.crit=!0,i.shift(1),o=!0);var s;for(s=0;s<i.length;s++)i[s]=i[s].trim();switch(i.length){case 1:a.id=y(),a.startTime=t.endTime,a.endTime=p(a.startTime,u,i[0]);break;case 2:a.id=y(),a.startTime=d(void 0,u,i[0]),a.endTime=p(a.startTime,u,i[1]);break;case 3:a.id=y(i[0]),a.startTime=d(void 0,u,i[1]),a.endTime=p(a.startTime,u,i[2])}return a},v=function(t,n){var e;e=\":\"===n.substr(0,1)?n.substr(1,n.length):n;for(var r=e.split(\",\"),i={},a=!0;a;)a=!1,r[0].match(/^\\s*active\\s*$/)&&(i.active=!0,r.shift(1),a=!0),r[0].match(/^\\s*done\\s*$/)&&(i.done=!0,r.shift(1),a=!0),r[0].match(/^\\s*crit\\s*$/)&&(i.crit=!0,r.shift(1),a=!0);var u;for(u=0;u<r.length;u++)r[u]=r[u].trim();switch(r.length){case 1:i.id=y(),i.startTime={type:\"prevTaskEnd\",id:t},i.endTime={data:r[0]};break;case 2:i.id=y(),i.startTime={type:\"getStartDate\",startData:r[0]},i.endTime={data:r[1]};break;case 3:i.id=y(r[0]),i.startTime={type:\"getStartDate\",startData:r[1]},i.endTime={data:r[2]}}return i},_=[],b={};e.addTask=function(t,n){var e={section:l,type:l,processed:!1,raw:{data:n},task:t},r=v(f,n);e.raw.startTime=r.startTime,e.raw.endTime=r.endTime,e.id=r.id,e.prevTaskId=f,e.active=r.active,e.done=r.done,e.crit=r.crit;var i=_.push(e);f=e.id,b[e.id]=i-1},e.findTaskById=function(t){var n=b[t];return _[n]},e.addTaskOrg=function(t,n){var e={section:l,type:l,description:t,task:t},r=m(h,n);e.startTime=r.startTime,e.endTime=r.endTime,e.id=r.id,e.active=r.active,e.done=r.done,e.crit=r.crit,h=e,c.push(e)};var x=function(){var t,n=e.getDateFormat(),r=function(t){var r=_[t],i=\"\";switch(_[t].raw.startTime.type){case\"prevTaskEnd\":var a=e.findTaskById(r.prevTaskId);r.startTime=a.endTime;break;case\"getStartDate\":i=d(void 0,n,_[t].raw.startTime.startData),i&&(_[t].startTime=i)}return _[t].startTime&&(_[t].endTime=p(_[t].startTime,n,_[t].raw.endTime.data),_[t].endTime&&(_[t].processed=!0)),_[t].processed},i=!0;for(t=0;t<_.length;t++)r(t),i=i&&_[t].processed;return i};e.parseError=function(t,e){n.mermaidAPI.parseError(t,e)}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../../logger\":130,moment:104}],121:[function(t,n){\"use strict\";var e=t(\"./parser/gantt\").parser;e.yy=t(\"./ganttDb\");var r,i=t(\"../../d3\"),a=t(\"moment\"),u={titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,rightPadding:75,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'\"Open-Sans\", \"sans-serif\"'};n.exports.setConf=function(t){var n=Object.keys(t);n.forEach(function(n){u[n]=t[n]})};var o;n.exports.draw=function(t,n){function s(t,n,e){var r=u.barHeight,a=r+u.barGap,o=u.topPadding,s=u.leftPadding,d=i.scale.linear().domain([0,A.length]).range([\"#00B9FA\",\"#F95002\"]).interpolate(i.interpolateHcl);l(s,o,n,e),c(t,a,o,s,r,d,n,e),h(a,o,s,r,d),f(s,o,n,e)}function c(t,n,e,r,i,a,o){_.append(\"g\").selectAll(\"rect\").data(t).enter().append(\"rect\").attr(\"x\",0).attr(\"y\",function(t,r){return r*n+e-2}).attr(\"width\",function(){return o-u.rightPadding/2}).attr(\"height\",n).attr(\"class\",function(t){for(var n=0;n<A.length;n++)if(t.type===A[n])return\"section section\"+n%u.numberSectionStyles;return\"section section0\"});var s=_.append(\"g\").selectAll(\"rect\").data(t).enter();s.append(\"rect\").attr(\"rx\",3).attr(\"ry\",3).attr(\"x\",function(t){return w(t.startTime)+r}).attr(\"y\",function(t,r){return r*n+e}).attr(\"width\",function(t){return w(t.endTime)-w(t.startTime)}).attr(\"height\",i).attr(\"class\",function(t){for(var n=\"task \",e=0,r=0;r<A.length;r++)t.type===A[r]&&(e=r%u.numberSectionStyles);return t.active?t.crit?n+\" activeCrit\"+e:n+\" active\"+e:t.done?t.crit?n+\" doneCrit\"+e:n+\" done\"+e:t.crit?n+\" crit\"+e:n+\" task\"+e}),s.append(\"text\").text(function(t){return t.task}).attr(\"font-size\",u.fontSize).attr(\"x\",function(t){var n=w(t.startTime),e=w(t.endTime),i=this.getBBox().width;return i>e-n?e+i+1.5*u.leftPadding>o?n+r-5:e+r+5:(e-n)/2+n+r}).attr(\"y\",function(t,r){return r*n+u.barHeight/2+(u.fontSize/2-2)+e}).attr(\"text-height\",i).attr(\"class\",function(t){for(var n=w(t.startTime),e=w(t.endTime),r=this.getBBox().width,i=0,a=0;a<A.length;a++)t.type===A[a]&&(i=a%u.numberSectionStyles);var s=\"\";return t.active&&(s=t.crit?\"activeCritText\"+i:\"activeText\"+i),t.done?s=t.crit?s+\" doneCritText\"+i:s+\" doneText\"+i:t.crit&&(s=s+\" critText\"+i),r>e-n?e+r+1.5*u.leftPadding>o?\"taskTextOutsideLeft taskTextOutside\"+i+\" \"+s:\"taskTextOutsideRight taskTextOutside\"+i+\" \"+s:\"taskText taskText\"+i+\" \"+s})}function l(t,n,e,a){var o,s=[[\".%L\",function(t){return t.getMilliseconds()}],[\":%S\",function(t){return t.getSeconds()}],[\"h1 %I:%M\",function(t){return t.getMinutes()}]],c=[[\"%Y\",function(){return!0}]],l=[[\"%I:%M\",function(t){return t.getHours()}],[\"%a %d\",function(t){return t.getDay()&&1!=t.getDate()}],[\"%b %d\",function(t){return 1!=t.getDate()}],[\"%B\",function(t){return t.getMonth()}]];\"undefined\"!=typeof u.axisFormatter&&(l=[],u.axisFormatter.forEach(function(t){var n=[];n[0]=t[0],n[1]=t[1],l.push(n)})),o=s.concat(l).concat(c);var h=i.svg.axis().scale(w).orient(\"bottom\").tickSize(-a+n+u.gridLineStartPadding,0,0).tickFormat(i.time.format.multi(o));r>7&&230>r&&(h=h.ticks(i.time.monday.range)),_.append(\"g\").attr(\"class\",\"grid\").attr(\"transform\",\"translate(\"+t+\", \"+(a-50)+\")\").call(h).selectAll(\"text\").style(\"text-anchor\",\"middle\").attr(\"fill\",\"#000\").attr(\"stroke\",\"none\").attr(\"font-size\",10).attr(\"dy\",\"1em\")}function h(t,n){for(var e=[],r=0,i=0;i<A.length;i++)e[i]=[A[i],g(A[i],E)];_.append(\"g\").selectAll(\"text\").data(e).enter().append(\"text\").text(function(t){return t[0]}).attr(\"x\",10).attr(\"y\",function(i,a){if(!(a>0))return i[1]*t/2+n;for(var u=0;a>u;u++)return r+=e[a-1][1],i[1]*t/2+r*t+n}).attr(\"class\",function(t){for(var n=0;n<A.length;n++)if(t[0]===A[n])return\"sectionTitle sectionTitle\"+n%u.numberSectionStyles;return\"sectionTitle\"})}function f(t,n,e,r){var i=_.append(\"g\").attr(\"class\",\"today\"),a=new Date;i.append(\"line\").attr(\"x1\",w(a)+t).attr(\"x2\",w(a)+t).attr(\"y1\",u.titleTopMargin).attr(\"y2\",r-u.titleTopMargin).attr(\"class\",\"today\")}function d(t){for(var n={},e=[],r=0,i=t.length;i>r;++r)n.hasOwnProperty(t[r])||(n[t[r]]=!0,e.push(t[r]));return e}function p(t){for(var n=t.length,e={};n;)e[t[--n]]=(e[t[n]]||0)+1;return e}function g(t,n){return p(n)[t]||0}e.yy.clear(),e.parse(t);var y=document.getElementById(n);o=y.parentElement.offsetWidth,\"undefined\"==typeof o&&(o=1200),\"undefined\"!=typeof u.useWidth&&(o=u.useWidth);var m=e.yy.getTasks(),v=m.length*(u.barHeight+u.barGap)+2*u.topPadding;y.setAttribute(\"height\",\"100%\"),y.setAttribute(\"viewBox\",\"0 0 \"+o+\" \"+v);var _=i.select(\"#\"+n),b=i.min(m,function(t){return t.startTime}),x=i.max(m,function(t){return t.endTime}),w=i.time.scale().domain([i.min(m,function(t){return t.startTime}),i.max(m,function(t){return t.endTime})]).rangeRound([0,o-u.leftPadding-u.rightPadding]),A=[];r=a.duration(x-b).asDays();for(var k=0;k<m.length;k++)A.push(m[k].type);var E=A;A=d(A),s(m,o,v),\"undefined\"!=typeof u.useWidth&&y.setAttribute(\"width\",o),_.append(\"text\").text(e.yy.getTitle()).attr(\"x\",o/2).attr(\"y\",u.titleTopMargin).attr(\"class\",\"titleText\")}},{\"../../d3\":108,\"./ganttDb\":120,\"./parser/gantt\":122,moment:104}],122:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[6,8,10,11,12,13,14],r=[1,9],i=[1,10],a=[1,11],u=[1,12],o={trace:function(){},yy:{},symbols_:{error:2,start:3,gantt:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NL:10,dateFormat:11,title:12,section:13,taskTxt:14,taskData:15,$accept:0,$end:1},terminals_:{2:\"error\",4:\"gantt\",6:\"EOF\",8:\"SPACE\",10:\"NL\",11:\"dateFormat\",12:\"title\",13:\"section\",14:\"taskTxt\",15:\"taskData\"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,1],[9,1],[9,2]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 1:return a[u-1];case 2:this.$=[];break;case 3:a[u-1].push(a[u]),this.$=a[u-1];break;case 4:case 5:this.$=a[u];break;case 6:case 7:this.$=[];break;case 8:r.setDateFormat(a[u].substr(11)),this.$=a[u].substr(11);break;case 9:r.setTitle(a[u].substr(6)),this.$=a[u].substr(6);break;case 10:r.addSection(a[u].substr(8)),this.$=a[u].substr(8);break;case 11:r.addTask(a[u-1],a[u]),this.$=\"task\"}},table:[{3:1,4:[1,2]},{1:[3]},n(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:r,12:i,13:a,14:u},n(e,[2,7],{1:[2,1]}),n(e,[2,3]),{9:13,11:r,12:i,13:a,14:u},n(e,[2,5]),n(e,[2,6]),n(e,[2,8]),n(e,[2,9]),n(e,[2,10]),{15:[1,14]},n(e,[2,4]),n(e,[2,11])],defaultActions:{},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},s=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(t,n,e,r){switch(e){case 0:return 10;case 1:break;case 2:break;case 3:break;case 4:return 4;case 5:return 11;case 6:return\"date\";case 7:return 12;case 8:return 13;case 9:return 14;case 10:return 15;case 11:return\":\";case 12:return 6;case 13:return\"INVALID\"}},rules:[/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gantt\\b)/i,/^(?:dateFormat\\s[^#\\n;]+)/i,/^(?:\\d\\d\\d\\d-\\d\\d-\\d\\d\\b)/i,/^(?:title\\s[^#\\n;]+)/i,/^(?:section\\s[^#:\\n;]+)/i,/^(?:[^#:\\n;]+)/i,/^(?::[^#\\n;]+)/i,/^(?::)/i,/^(?:$)/i,/^(?:.)/i],conditions:{INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],inclusive:!0}}};return t}();return o.lexer=s,t.prototype=o,o.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],123:[function(t,n,e){\"use strict\";function r(t,n){return Math.floor(Math.random()*(n-t))+t}function i(){for(var t=\"0123456789abcdef\",n=\"\",e=0;7>e;e++)n+=t[r(0,16)];return n}function a(t,n){var e,r=!0;t:for(;r;){var i=t,u=n;for(r=!1,h.debug(\"Entering isfastforwardable:\",i.id,u.id);i.seq<=u.seq&&i!=u&&null!=u.parent;){if(Array.isArray(u.parent)){if(h.debug(\"In merge commit:\",u.parent),e=a(i,f[u.parent[0]]))return e;t=i,n=f[u.parent[1]],r=!0;continue t}u=f[u.parent]}return h.debug(i.id,u.id),i.id==u.id}}function u(t,n){var e=t.seq,r=n.seq;return e>r?a(n,t):!1}function o(t,n,e){var r=l.find(t,n);if(r){var i=l.indexOf(t,l.find(t,n));t.splice(i,1,e)}else t.push(e)}function s(t){var n=l.maxBy(t,\"seq\"),e=\"\";l.each(t,function(t){e+=t==n?\"\t*\":\"\t|\"});var r=[e,n.id,n.seq];if(l.each(p,function(t,e){t==n.id&&r.push(e)}),h.debug(r.join(\" \")),Array.isArray(n.parent)){var i=f[n.parent[0]];o(t,n,i),t.push(f[n.parent[1]])}else{if(null==n.parent)return;var a=f[n.parent];o(t,n,a)}t=l.uniqBy(t,\"id\"),s(t)}var c=t(\"../../logger\"),l=t(\"lodash\"),h=new c.Log(1),f={},d=null,p={master:d},g=\"master\",y=\"LR\",m=0;e.setDirection=function(t){y=t};var v={};e.setOptions=function(t){h.debug(\"options str\",t),t=t&&t.trim(),t=t||\"{}\";try{v=JSON.parse(t)}catch(n){h.error(\"error while parsing gitGraph options\",n.message)}},e.getOptions=function(){return v},e.commit=function(t){var n={id:i(),message:t,seq:m++,parent:null==d?null:d.id};d=n,f[n.id]=n,p[g]=n.id,h.debug(\"in pushCommit \"+n.id)},e.branch=function(t){p[t]=null!=d?d.id:null,h.debug(\"in createBranch\")},e.merge=function(t){var n=f[p[g]],e=f[p[t]];if(u(n,e))return void h.debug(\"Already merged\");if(a(n,e))p[g]=p[t],d=f[p[g]];else{var r={id:i(),message:\"merged branch \"+t+\" into \"+g,seq:m++,parent:[null==d?null:d.id,p[t]]};d=r,f[r.id]=r,p[g]=r.id}h.debug(p),h.debug(\"in mergeBranch\")},e.checkout=function(t){h.debug(\"in checkout\"),g=t;var n=p[g];d=f[n]},e.reset=function(t){h.debug(\"in reset\",t);var n=t.split(\":\")[0],e=parseInt(t.split(\":\")[1]),r=\"HEAD\"==n?d:f[p[n]];for(h.debug(r,e);e>0;)if(r=f[r.parent],e--,!r){var i=\"Critical error - unique parent commit not found during reset\";throw h.error(i),i}d=r,p[g]=r.id},e.prettyPrint=function(){h.debug(f);var t=e.getCommitsArray()[0];s([t])},e.clear=function(){f={},d=null,p={master:d},g=\"master\",m=0},e.getBranchesAsObjArray=function(){var t=l.map(p,function(t,n){return{name:n,commit:f[t]}});return t},e.getBranches=function(){return p},e.getCommits=function(){return f},e.getCommitsArray=function(){var t=Object.keys(f).map(function(t){return f[t]});return l.each(t,function(t){h.debug(t.id)}),l.orderBy(t,[\"seq\"],[\"desc\"])},e.getCurrentBranch=function(){return g},e.getDirection=function(){return y},e.getHead=function(){return d}},{\"../../logger\":130,lodash:103}],124:[function(t,n,e){\"use strict\";function r(t){t.append(\"defs\").append(\"g\").attr(\"id\",\"def-commit\").append(\"circle\").attr(\"r\",v.nodeRadius).attr(\"cx\",0).attr(\"cy\",0),t.select(\"#def-commit\").append(\"foreignObject\").attr(\"width\",v.nodeLabel.width).attr(\"height\",v.nodeLabel.height).attr(\"x\",v.nodeLabel.x).attr(\"y\",v.nodeLabel.y).attr(\"class\",\"node-label\").attr(\"requiredFeatures\",\"http://www.w3.org/TR/SVG11/feature#Extensibility\").append(\"xhtml:p\").html(\"\")}function i(t,n,e,r){r=r||\"basis\";var i=v.branchColors[e%v.branchColors.length],a=p.svg.line().x(function(t){return Math.round(t.x)}).y(function(t){return Math.round(t.y)}).interpolate(r);t.append(\"svg:path\").attr(\"d\",a(n)).style(\"stroke\",i).style(\"stroke-width\",v.lineStrokeWidth).style(\"fill\",\"none\")}function a(t,n){n=n||t.node().getBBox();var e=t.node().getCTM(),r=e.e+n.x*e.a,i=e.f+n.y*e.d;\n\nreturn{left:r,top:i,width:n.width,height:n.height}}function u(t,n,e,r,u){y.debug(\"svgDrawLineForCommits: \",n,e);var o=a(t.select(\"#node-\"+n+\" circle\")),s=a(t.select(\"#node-\"+e+\" circle\"));switch(r){case\"LR\":if(o.left-s.left>v.nodeSpacing){var c={x:o.left-v.nodeSpacing,y:s.top+s.height/2},l={x:s.left+s.width,y:s.top+s.height/2};i(t,[c,l],u,\"linear\"),i(t,[{x:o.left,y:o.top+o.height/2},{x:o.left-v.nodeSpacing/2,y:o.top+o.height/2},{x:o.left-v.nodeSpacing/2,y:c.y},c],u)}else i(t,[{x:o.left,y:o.top+o.height/2},{x:o.left-v.nodeSpacing/2,y:o.top+o.height/2},{x:o.left-v.nodeSpacing/2,y:s.top+s.height/2},{x:s.left+s.width,y:s.top+s.height/2}],u);break;case\"BT\":s.top-o.top>v.nodeSpacing?(c={x:s.left+s.width/2,y:o.top+o.height+v.nodeSpacing},l={x:s.left+s.width/2,y:s.top},i(t,[c,l],u,\"linear\"),i(t,[{x:o.left+o.width/2,y:o.top+o.height},{x:o.left+o.width/2,y:o.top+o.height+v.nodeSpacing/2},{x:s.left+s.width/2,y:c.y-v.nodeSpacing/2},c],u)):i(t,[{x:o.left+o.width/2,y:o.top+o.height},{x:o.left+o.width/2,y:o.top+v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top-v.nodeSpacing/2},{x:s.left+s.width/2,y:s.top}],u)}}function o(t,n){return t.select(n).node().cloneNode(!0)}function s(t,n,e,r){var i,a=Object.keys(m).length;if(f.isString(n))do{if(i=m[n],y.debug(\"in renderCommitHistory\",i.id,i.seq),t.select(\"#node-\"+n).size()>0)return;t.append(function(){return o(t,\"#def-commit\")}).attr(\"class\",\"commit\").attr(\"id\",function(){return\"node-\"+i.id}).attr(\"transform\",function(){switch(r){case\"LR\":return\"translate(\"+(i.seq*v.nodeSpacing+v.leftMargin)+\", \"+l*v.branchOffset+\")\";case\"BT\":return\"translate(\"+(l*v.branchOffset+v.leftMargin)+\", \"+(a-i.seq)*v.nodeSpacing+\")\"}}).attr(\"fill\",v.nodeFillColor).attr(\"stroke\",v.nodeStrokeColor).attr(\"stroke-width\",v.nodeStrokeWidth);var u=f.find(e,[\"commit\",i]);u&&(y.debug(\"found branch \",u.name),t.select(\"#node-\"+i.id+\" p\").append(\"xhtml:span\").attr(\"class\",\"branch-label\").text(u.name+\", \")),t.select(\"#node-\"+i.id+\" p\").append(\"xhtml:span\").attr(\"class\",\"commit-id\").text(i.id),\"\"!==i.message&&\"BT\"===r&&t.select(\"#node-\"+i.id+\" p\").append(\"xhtml:span\").attr(\"class\",\"commit-msg\").text(\", \"+i.message),n=i.parent}while(n&&m[n]);f.isArray(n)&&(y.debug(\"found merge commmit\",n),s(t,n[0],e,r),l++,s(t,n[1],e,r),l--)}function c(t,n,e,r){for(r=r||0;n.seq>0&&!n.lineDrawn;)f.isString(n.parent)?(u(t,n.id,n.parent,e,r),n.lineDrawn=!0,n=m[n.parent]):f.isArray(n.parent)&&(u(t,n.id,n.parent[0],e,r),u(t,n.id,n.parent[1],e,r+1),c(t,m[n.parent[1]],e,r+1),n.lineDrawn=!0,n=m[n.parent[0]])}var l,h=t(\"./gitGraphAst\"),f=t(\"lodash\"),d=t(\"./parser/gitGraph\"),p=t(\"../../d3\"),g=t(\"../../logger\"),y=new g.Log,m={},v={nodeSpacing:75,nodeFillColor:\"yellow\",nodeStrokeWidth:2,nodeStrokeColor:\"grey\",lineStrokeWidth:4,branchOffset:50,lineColor:\"grey\",leftMargin:50,branchColors:[\"#442f74\",\"#983351\",\"#609732\",\"#AA9A39\"],nodeRadius:15,nodeLabel:{width:75,height:100,x:-25,y:15}},_={};e.setConf=function(t){_=t},e.draw=function(t,n,e){try{var i;i=d.parser,i.yy=h,y.debug(\"in gitgraph renderer\",t,n,e),i.parse(t+\"\\n\"),v=f.extend(v,_,h.getOptions()),y.debug(\"effective options\",v);var a=h.getDirection();m=h.getCommits();var u=h.getBranchesAsObjArray();\"BT\"===a&&(v.nodeLabel.x=u.length*v.branchOffset,v.nodeLabel.width=\"100%\",v.nodeLabel.y=-2*v.nodeRadius);var o=p.select(\"#\"+n);r(o),l=1,f.each(u,function(t){s(o,t.commit.id,u,a),c(o,t.commit,a),l++}),o.attr(\"height\",function(){return\"BT\"===a?Object.keys(m).length*v.nodeSpacing:(u.length+1)*v.branchOffset})}catch(g){y.error(\"Error while rendering gitgraph\"),y.error(g.message)}}},{\"../../d3\":108,\"../../logger\":130,\"./gitGraphAst\":123,\"./parser/gitGraph\":125,lodash:103}],125:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[2,3],r=[1,7],i=[7,12,15,17,19,20,21],a=[7,11,12,15,17,19,20,21],u=[2,20],o=[1,32],s={trace:function(){},yy:{},symbols_:{error:2,start:3,GG:4,\":\":5,document:6,EOF:7,DIR:8,options:9,body:10,OPT:11,NL:12,line:13,statement:14,COMMIT:15,commit_arg:16,BRANCH:17,ID:18,CHECKOUT:19,MERGE:20,RESET:21,reset_arg:22,STR:23,HEAD:24,reset_parents:25,CARET:26,$accept:0,$end:1},terminals_:{2:\"error\",4:\"GG\",5:\":\",7:\"EOF\",8:\"DIR\",11:\"OPT\",12:\"NL\",15:\"COMMIT\",17:\"BRANCH\",18:\"ID\",19:\"CHECKOUT\",20:\"MERGE\",21:\"RESET\",23:\"STR\",24:\"HEAD\",26:\"CARET\"},productions_:[0,[3,4],[3,5],[6,0],[6,2],[9,2],[9,1],[10,0],[10,2],[13,2],[13,1],[14,2],[14,2],[14,2],[14,2],[14,2],[16,0],[16,1],[22,2],[22,2],[25,0],[25,2]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 1:return a[u-1];case 2:return r.setDirection(a[u-3]),a[u-1];case 4:r.setOptions(a[u-1]),this.$=a[u];break;case 5:a[u-1]+=a[u],this.$=a[u-1];break;case 7:this.$=[];break;case 8:a[u-1].push(a[u]),this.$=a[u-1];break;case 9:this.$=a[u-1];break;case 11:r.commit(a[u]);break;case 12:r.branch(a[u]);break;case 13:r.checkout(a[u]);break;case 14:r.merge(a[u]);break;case 15:r.reset(a[u]);break;case 16:this.$=\"\";break;case 17:this.$=a[u];break;case 18:this.$=a[u-1]+\":\"+a[u];break;case 19:this.$=a[u-1]+\":\"+r.count,r.count=0;break;case 20:r.count=0;break;case 21:r.count+=1}},table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3],8:[1,4]},{6:5,7:e,9:6,12:r},{5:[1,8]},{7:[1,9]},n(i,[2,7],{10:10,11:[1,11]}),n(a,[2,6]),{6:12,7:e,9:6,12:r},{1:[2,1]},{7:[2,4],12:[1,15],13:13,14:14,15:[1,16],17:[1,17],19:[1,18],20:[1,19],21:[1,20]},n(a,[2,5]),{7:[1,21]},n(i,[2,8]),{12:[1,22]},n(i,[2,10]),{12:[2,16],16:23,23:[1,24]},{18:[1,25]},{18:[1,26]},{18:[1,27]},{18:[1,30],22:28,24:[1,29]},{1:[2,2]},n(i,[2,9]),{12:[2,11]},{12:[2,17]},{12:[2,12]},{12:[2,13]},{12:[2,14]},{12:[2,15]},{12:u,25:31,26:o},{12:u,25:33,26:o},{12:[2,18]},{12:u,25:34,26:o},{12:[2,19]},{12:[2,21]}],defaultActions:{9:[2,1],21:[2,2],23:[2,11],24:[2,17],25:[2,12],26:[2,13],27:[2,14],28:[2,15],31:[2,18],33:[2,19],34:[2,21]},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},c=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(t,n,e,r){switch(e){case 0:return 12;case 1:break;case 2:break;case 3:break;case 4:return 4;case 5:return 15;case 6:return 17;case 7:return 20;case 8:return 21;case 9:return 19;case 10:return 8;case 11:return 8;case 12:return 5;case 13:return 26;case 14:this.begin(\"options\");break;case 15:this.popState();break;case 16:return 11;case 17:this.begin(\"string\");break;case 18:this.popState();break;case 19:return 23;case 20:return 18;case 21:return 7}},rules:[/^(?:(\\r?\\n)+)/i,/^(?:\\s+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:gitGraph\\b)/i,/^(?:commit\\b)/i,/^(?:branch\\b)/i,/^(?:merge\\b)/i,/^(?:reset\\b)/i,/^(?:checkout\\b)/i,/^(?:LR\\b)/i,/^(?:BT\\b)/i,/^(?::)/i,/^(?:\\^)/i,/^(?:options\\r?\\n)/i,/^(?:end\\r?\\n)/i,/^(?:[^\\n]+\\r?\\n)/i,/^(?:[\"])/i,/^(?:[\"])/i,/^(?:[^\"]*)/i,/^(?:[a-zA-Z][a-zA-Z0-9_]+)/i,/^(?:$)/i],conditions:{options:{rules:[15,16],inclusive:!1},string:{rules:[18,19],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,17,20,21],inclusive:!0}}};return t}();return s.lexer=c,t.prototype=s,s.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],126:[function(t,n,e){(function(r){\"use strict\";var i=function(){function t(){this.yy={}}var n=function(t,n,e,r){for(e=e||{},r=t.length;r--;e[t[r]]=n);return e},e=[1,2],r=[1,3],i=[1,4],a=[2,4],u=[1,9],o=[1,11],s=[1,12],c=[1,14],l=[1,15],h=[1,17],f=[1,18],d=[1,19],p=[1,20],g=[1,22],y=[1,23],m=[1,4,5,10,15,16,18,20,21,22,23,24,25,36],v=[1,31],_=[4,5,10,15,16,18,20,21,22,23,25,36],b=[34,35,36],x={trace:function(){},yy:{},symbols_:{error:2,start:3,SPACE:4,NL:5,SD:6,document:7,line:8,statement:9,participant:10,actor:11,AS:12,restOfLine:13,signal:14,activate:15,deactivate:16,note_statement:17,title:18,text2:19,loop:20,end:21,opt:22,alt:23,\"else\":24,note:25,placement:26,over:27,actor_pair:28,spaceList:29,\",\":30,left_of:31,right_of:32,signaltype:33,\"+\":34,\"-\":35,ACTOR:36,SOLID_OPEN_ARROW:37,DOTTED_OPEN_ARROW:38,SOLID_ARROW:39,DOTTED_ARROW:40,SOLID_CROSS:41,DOTTED_CROSS:42,TXT:43,$accept:0,$end:1},terminals_:{2:\"error\",4:\"SPACE\",5:\"NL\",6:\"SD\",10:\"participant\",12:\"AS\",13:\"restOfLine\",15:\"activate\",16:\"deactivate\",18:\"title\",20:\"loop\",21:\"end\",22:\"opt\",23:\"alt\",24:\"else\",25:\"note\",27:\"over\",30:\",\",31:\"left_of\",32:\"right_of\",34:\"+\",35:\"-\",36:\"ACTOR\",37:\"SOLID_OPEN_ARROW\",38:\"DOTTED_OPEN_ARROW\",39:\"SOLID_ARROW\",40:\"DOTTED_ARROW\",41:\"SOLID_CROSS\",42:\"DOTTED_CROSS\",43:\"TXT\"},productions_:[0,[3,2],[3,2],[3,2],[7,0],[7,2],[8,2],[8,1],[8,1],[9,5],[9,3],[9,2],[9,3],[9,3],[9,2],[9,3],[9,4],[9,4],[9,7],[17,4],[17,4],[29,2],[29,1],[28,3],[28,1],[26,1],[26,1],[14,5],[14,5],[14,4],[11,1],[33,1],[33,1],[33,1],[33,1],[33,1],[33,1],[19,1]],performAction:function(t,n,e,r,i,a){var u=a.length-1;switch(i){case 3:return r.apply(a[u]),a[u];case 4:this.$=[];break;case 5:a[u-1].push(a[u]),this.$=a[u-1];break;case 6:case 7:this.$=a[u];break;case 8:this.$=[];break;case 9:a[u-3].description=a[u-1],this.$=a[u-3];break;case 10:this.$=a[u-1];break;case 12:this.$={type:\"activeStart\",signalType:r.LINETYPE.ACTIVE_START,actor:a[u-1]};break;case 13:this.$={type:\"activeEnd\",signalType:r.LINETYPE.ACTIVE_END,actor:a[u-1]};break;case 15:this.$=[{type:\"setTitle\",text:a[u-1]}];break;case 16:a[u-1].unshift({type:\"loopStart\",loopText:a[u-2],signalType:r.LINETYPE.LOOP_START}),a[u-1].push({type:\"loopEnd\",loopText:a[u-2],signalType:r.LINETYPE.LOOP_END}),this.$=a[u-1];break;case 17:a[u-1].unshift({type:\"optStart\",optText:a[u-2],signalType:r.LINETYPE.OPT_START}),a[u-1].push({type:\"optEnd\",optText:a[u-2],signalType:r.LINETYPE.OPT_END}),this.$=a[u-1];break;case 18:a[u-4].unshift({type:\"altStart\",altText:a[u-5],signalType:r.LINETYPE.ALT_START}),a[u-4].push({type:\"else\",altText:a[u-2],signalType:r.LINETYPE.ALT_ELSE}),a[u-4]=a[u-4].concat(a[u-1]),a[u-4].push({type:\"altEnd\",signalType:r.LINETYPE.ALT_END}),this.$=a[u-4];break;case 19:this.$=[a[u-1],{type:\"addNote\",placement:a[u-2],actor:a[u-1].actor,text:a[u]}];break;case 20:a[u-2]=[].concat(a[u-1],a[u-1]).slice(0,2),a[u-2][0]=a[u-2][0].actor,a[u-2][1]=a[u-2][1].actor,this.$=[a[u-1],{type:\"addNote\",placement:r.PLACEMENT.OVER,actor:a[u-2].slice(0,2),text:a[u]}];break;case 23:this.$=[a[u-2],a[u]];break;case 24:this.$=a[u];break;case 25:this.$=r.PLACEMENT.LEFTOF;break;case 26:this.$=r.PLACEMENT.RIGHTOF;break;case 27:this.$=[a[u-4],a[u-1],{type:\"addMessage\",from:a[u-4].actor,to:a[u-1].actor,signalType:a[u-3],msg:a[u]},{type:\"activeStart\",signalType:r.LINETYPE.ACTIVE_START,actor:a[u-1]}];break;case 28:this.$=[a[u-4],a[u-1],{type:\"addMessage\",from:a[u-4].actor,to:a[u-1].actor,signalType:a[u-3],msg:a[u]},{type:\"activeEnd\",signalType:r.LINETYPE.ACTIVE_END,actor:a[u-4]}];break;case 29:this.$=[a[u-3],a[u-1],{type:\"addMessage\",from:a[u-3].actor,to:a[u-1].actor,signalType:a[u-2],msg:a[u]}];break;case 30:this.$={type:\"addActor\",actor:a[u]};break;case 31:this.$=r.LINETYPE.SOLID_OPEN;break;case 32:this.$=r.LINETYPE.DOTTED_OPEN;break;case 33:this.$=r.LINETYPE.SOLID;break;case 34:this.$=r.LINETYPE.DOTTED;break;case 35:this.$=r.LINETYPE.SOLID_CROSS;break;case 36:this.$=r.LINETYPE.DOTTED_CROSS;break;case 37:this.$=a[u].substring(1).trim().replace(/\\\\n/gm,\"\\n\")}},table:[{3:1,4:e,5:r,6:i},{1:[3]},{3:5,4:e,5:r,6:i},{3:6,4:e,5:r,6:i},n([1,4,5,10,15,16,18,20,22,23,25,36],a,{7:7}),{1:[2,1]},{1:[2,2]},{1:[2,3],4:u,5:o,8:8,9:10,10:s,11:21,14:13,15:c,16:l,17:16,18:h,20:f,22:d,23:p,25:g,36:y},n(m,[2,5]),{9:24,10:s,11:21,14:13,15:c,16:l,17:16,18:h,20:f,22:d,23:p,25:g,36:y},n(m,[2,7]),n(m,[2,8]),{11:25,36:y},{5:[1,26]},{11:27,36:y},{11:28,36:y},{5:[1,29]},{19:30,43:v},{13:[1,32]},{13:[1,33]},{13:[1,34]},{33:35,37:[1,36],38:[1,37],39:[1,38],40:[1,39],41:[1,40],42:[1,41]},{26:42,27:[1,43],31:[1,44],32:[1,45]},n([5,12,30,37,38,39,40,41,42,43],[2,30]),n(m,[2,6]),{5:[1,47],12:[1,46]},n(m,[2,11]),{5:[1,48]},{5:[1,49]},n(m,[2,14]),{5:[1,50]},{5:[2,37]},n(_,a,{7:51}),n(_,a,{7:52}),n([4,5,10,15,16,18,20,22,23,24,25,36],a,{7:53}),{11:56,34:[1,54],35:[1,55],36:y},n(b,[2,31]),n(b,[2,32]),n(b,[2,33]),n(b,[2,34]),n(b,[2,35]),n(b,[2,36]),{11:57,36:y},{11:59,28:58,36:y},{36:[2,25]},{36:[2,26]},{13:[1,60]},n(m,[2,10]),n(m,[2,12]),n(m,[2,13]),n(m,[2,15]),{4:u,5:o,8:8,9:10,10:s,11:21,14:13,15:c,16:l,17:16,18:h,20:f,21:[1,61],22:d,23:p,25:g,36:y},{4:u,5:o,8:8,9:10,10:s,11:21,14:13,15:c,16:l,17:16,18:h,20:f,21:[1,62],22:d,23:p,25:g,36:y},{4:u,5:o,8:8,9:10,10:s,11:21,14:13,15:c,16:l,17:16,18:h,20:f,22:d,23:p,24:[1,63],25:g,36:y},{11:64,36:y},{11:65,36:y},{19:66,43:v},{19:67,43:v},{19:68,43:v},{30:[1,69],43:[2,24]},{5:[1,70]},n(m,[2,16]),n(m,[2,17]),{13:[1,71]},{19:72,43:v},{19:73,43:v},{5:[2,29]},{5:[2,19]},{5:[2,20]},{11:74,36:y},n(m,[2,9]),n(_,a,{7:75}),{5:[2,27]},{5:[2,28]},{43:[2,23]},{4:u,5:o,8:8,9:10,10:s,11:21,14:13,15:c,16:l,17:16,18:h,20:f,21:[1,76],22:d,23:p,25:g,36:y},n(m,[2,18])],defaultActions:{5:[2,1],6:[2,2],31:[2,37],44:[2,25],45:[2,26],66:[2,29],67:[2,19],68:[2,20],72:[2,27],73:[2,28],74:[2,23]},parseError:function(t,n){if(!n.recoverable){var e=function(t,n){this.message=t,this.hash=n};throw e.prototype=Error,new e(t,n)}this.trace(t)},parse:function(t){var n=this,e=[0],r=[null],i=[],a=this.table,u=\"\",o=0,s=0,c=0,l=2,h=1,f=i.slice.call(arguments,1),d=Object.create(this.lexer),p={yy:{}};for(var g in this.yy)Object.prototype.hasOwnProperty.call(this.yy,g)&&(p.yy[g]=this.yy[g]);d.setInput(t,p.yy),p.yy.lexer=d,p.yy.parser=this,\"undefined\"==typeof d.yylloc&&(d.yylloc={});var y=d.yylloc;i.push(y);var m=d.options&&d.options.ranges;this.parseError=\"function\"==typeof p.yy.parseError?p.yy.parseError:Object.getPrototypeOf(this).parseError;for(var v,_,b,x,w,A,k,E,M,S=function(){var t;return t=d.lex()||h,\"number\"!=typeof t&&(t=n.symbols_[t]||t),t},D={};;){if(b=e[e.length-1],this.defaultActions[b]?x=this.defaultActions[b]:((null===v||\"undefined\"==typeof v)&&(v=S()),x=a[b]&&a[b][v]),\"undefined\"==typeof x||!x.length||!x[0]){var C=\"\";M=[];for(A in a[b])this.terminals_[A]&&A>l&&M.push(\"'\"+this.terminals_[A]+\"'\");C=d.showPosition?\"Parse error on line \"+(o+1)+\":\\n\"+d.showPosition()+\"\\nExpecting \"+M.join(\", \")+\", got '\"+(this.terminals_[v]||v)+\"'\":\"Parse error on line \"+(o+1)+\": Unexpected \"+(v==h?\"end of input\":\"'\"+(this.terminals_[v]||v)+\"'\"),this.parseError(C,{text:d.match,token:this.terminals_[v]||v,line:d.yylineno,loc:y,expected:M})}if(x[0]instanceof Array&&x.length>1)throw new Error(\"Parse Error: multiple actions possible at state: \"+b+\", token: \"+v);switch(x[0]){case 1:e.push(v),r.push(d.yytext),i.push(d.yylloc),e.push(x[1]),v=null,_?(v=_,_=null):(s=d.yyleng,u=d.yytext,o=d.yylineno,y=d.yylloc,c>0&&c--);break;case 2:if(k=this.productions_[x[1]][1],D.$=r[r.length-k],D._$={first_line:i[i.length-(k||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(k||1)].first_column,last_column:i[i.length-1].last_column},m&&(D._$.range=[i[i.length-(k||1)].range[0],i[i.length-1].range[1]]),w=this.performAction.apply(D,[u,s,o,p.yy,x[1],r,i].concat(f)),\"undefined\"!=typeof w)return w;k&&(e=e.slice(0,-1*k*2),r=r.slice(0,-1*k),i=i.slice(0,-1*k)),e.push(this.productions_[x[1]][0]),r.push(D.$),i.push(D._$),E=a[e[e.length-2]][e[e.length-1]],e.push(E);break;case 3:return!0}}return!0}},w=function(){var t={EOF:1,parseError:function(t,n){if(!this.yy.parser)throw new Error(t);this.yy.parser.parseError(t,n)},setInput:function(t,n){return this.yy=n||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=\"\",this.conditionStack=[\"INITIAL\"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var n=t.match(/(?:\\r\\n?|\\n).*/g);return n?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},unput:function(t){var n=t.length,e=t.split(/(?:\\r\\n?|\\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-n),this.offset-=n;var r=this.match.split(/(?:\\r\\n?|\\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),e.length-1&&(this.yylineno-=e.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:e?(e.length===r.length?this.yylloc.first_column:0)+r[r.length-e.length].length-e[0].length:this.yylloc.first_column-n},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-n]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){return this.options.backtrack_lexer?(this._backtrack=!0,this):this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},less:function(t){this.unput(this.match.slice(t))},pastInput:function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?\"...\":\"\")+t.substr(-20).replace(/\\n/g,\"\")},upcomingInput:function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?\"...\":\"\")).replace(/\\n/g,\"\")},showPosition:function(){var t=this.pastInput(),n=new Array(t.length+1).join(\"-\");return t+this.upcomingInput()+\"\\n\"+n+\"^\"},test_match:function(t,n){var e,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=t[0].match(/(?:\\r\\n?|\\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\\r?\\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,n,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e)return e;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var t,n,e,r;this._more||(this.yytext=\"\",this.match=\"\");for(var i=this._currentRules(),a=0;a<i.length;a++)if(e=this._input.match(this.rules[i[a]]),e&&(!n||e[0].length>n[0].length)){if(n=e,r=a,this.options.backtrack_lexer){if(t=this.test_match(e,i[a]),t!==!1)return t;if(this._backtrack){n=!1;continue}return!1}if(!this.options.flex)break}return n?(t=this.test_match(n,i[r]),t!==!1?t:!1):\"\"===this._input?this.EOF:this.parseError(\"Lexical error on line \"+(this.yylineno+1)+\". Unrecognized text.\\n\"+this.showPosition(),{text:\"\",token:null,line:this.yylineno})},lex:function(){var t=this.next();return t?t:this.lex()},begin:function(t){this.conditionStack.push(t)},popState:function(){var t=this.conditionStack.length-1;return t>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(t){return t=this.conditionStack.length-1-Math.abs(t||0),t>=0?this.conditionStack[t]:\"INITIAL\"},pushState:function(t){this.begin(t)},stateStackSize:function(){return this.conditionStack.length},options:{\"case-insensitive\":!0},performAction:function(t,n,e,r){switch(e){case 0:return 5;case 1:break;case 2:break;case 3:break;case 4:break;case 5:return this.begin(\"ID\"),10;case 6:return this.begin(\"ALIAS\"),36;case 7:return this.popState(),this.popState(),this.begin(\"LINE\"),12;case 8:return this.popState(),this.popState(),5;case 9:return this.begin(\"LINE\"),20;case 10:return this.begin(\"LINE\"),22;case 11:return this.begin(\"LINE\"),23;case 12:return this.begin(\"LINE\"),24;case 13:return this.popState(),13;case 14:return 21;case 15:return 31;case 16:return 32;case 17:return 27;case 18:return 25;case 19:return this.begin(\"ID\"),15;case 20:return this.begin(\"ID\"),16;case 21:return 18;case 22:return 6;case 23:return 30;case 24:return 5;case 25:return n.yytext=n.yytext.trim(),36;case 26:return 39;case 27:return 40;case 28:return 37;case 29:return 38;case 30:return 41;case 31:return 42;case 32:return 43;case 33:return 34;case 34:return 35;case 35:return 5;case 36:return\"INVALID\"}},rules:[/^(?:[\\n]+)/i,/^(?:\\s+)/i,/^(?:((?!\\n)\\s)+)/i,/^(?:#[^\\n]*)/i,/^(?:%[^\\n]*)/i,/^(?:participant\\b)/i,/^(?:[^\\->:\\n,;]+?(?=((?!\\n)\\s)+as(?!\\n)\\s|[#\\n;]|$))/i,/^(?:as\\b)/i,/^(?:(?:))/i,/^(?:loop\\b)/i,/^(?:opt\\b)/i,/^(?:alt\\b)/i,/^(?:else\\b)/i,/^(?:[^#\\n;]*)/i,/^(?:end\\b)/i,/^(?:left of\\b)/i,/^(?:right of\\b)/i,/^(?:over\\b)/i,/^(?:note\\b)/i,/^(?:activate\\b)/i,/^(?:deactivate\\b)/i,/^(?:title\\b)/i,/^(?:sequenceDiagram\\b)/i,/^(?:,)/i,/^(?:;)/i,/^(?:[^\\+\\->:\\n,;]+)/i,/^(?:->>)/i,/^(?:-->>)/i,/^(?:->)/i,/^(?:-->)/i,/^(?:-[x])/i,/^(?:--[x])/i,/^(?::[^#\\n;]+)/i,/^(?:\\+)/i,/^(?:-)/i,/^(?:$)/i,/^(?:.)/i],conditions:{LINE:{rules:[2,3,13],inclusive:!1},ALIAS:{rules:[2,3,7,8],inclusive:!1},ID:{rules:[2,3,6],inclusive:!1},INITIAL:{rules:[0,1,3,4,5,9,10,11,12,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],inclusive:!0}}};return t}();return x.lexer=w,t.prototype=x,x.Parser=t,new t}();\"undefined\"!=typeof t&&\"undefined\"!=typeof e&&(e.parser=i,e.Parser=i.Parser,e.parse=function(){return i.parse.apply(i,arguments)},e.main=function(n){n[1]||(console.log(\"Usage: \"+n[0]+\" FILE\"),r.exit(1));var i=t(\"fs\").readFileSync(t(\"path\").normalize(n[1]),\"utf8\");return e.parser.parse(i)},\"undefined\"!=typeof n&&t.main===n&&e.main(r.argv.slice(1)))}).call(this,t(\"_process\"))},{_process:106,fs:1,path:105}],127:[function(t,n,e){(function(n){\"use strict\";var r={},i=[],a=[],u=\"\",o=t(\"../../logger\"),s=new o.Log;e.addActor=function(t,n,e){var i=r[t];i&&n===i.name&&null==e||(null==e&&(e=n),r[t]={name:n,description:e})},e.addMessage=function(t,n,e,r){i.push({from:t,to:n,message:e,answer:r})},e.addSignal=function(t,n,e,r){s.debug(\"Adding message from=\"+t+\" to=\"+n+\" message=\"+e+\" type=\"+r),i.push({from:t,to:n,message:e,type:r})},e.getMessages=function(){return i},e.getActors=function(){return r},e.getActor=function(t){return r[t]},e.getActorKeys=function(){return Object.keys(r)},e.getTitle=function(){return u},e.clear=function(){r={},i=[]},e.LINETYPE={SOLID:0,DOTTED:1,NOTE:2,SOLID_CROSS:3,DOTTED_CROSS:4,SOLID_OPEN:5,DOTTED_OPEN:6,LOOP_START:10,LOOP_END:11,ALT_START:12,ALT_ELSE:13,ALT_END:14,OPT_START:15,OPT_END:16,ACTIVE_START:17,ACTIVE_END:18},e.ARROWTYPE={FILLED:0,OPEN:1},e.PLACEMENT={LEFTOF:0,RIGHTOF:1,OVER:2},e.addNote=function(t,n,r){var u={actor:t,placement:n,message:r},o=[].concat(t,t);a.push(u),i.push({from:o[0],to:o[1],message:r,type:e.LINETYPE.NOTE,placement:n})},e.setTitle=function(t){u=t},e.parseError=function(t,e){n.mermaidAPI.parseError(t,e)},e.apply=function(t){if(t instanceof Array)t.forEach(function(t){e.apply(t)});else switch(t.type){case\"addActor\":e.addActor(t.actor,t.actor,t.description);break;case\"activeStart\":e.addSignal(t.actor,void 0,void 0,t.signalType);break;case\"activeEnd\":e.addSignal(t.actor,void 0,void 0,t.signalType);break;case\"addNote\":e.addNote(t.actor,t.placement,t.text);break;case\"addMessage\":e.addSignal(t.from,t.to,t.msg,t.signalType);break;case\"loopStart\":e.addSignal(void 0,void 0,t.loopText,t.signalType);break;case\"loopEnd\":e.addSignal(void 0,void 0,void 0,t.signalType);break;case\"optStart\":e.addSignal(void 0,void 0,t.optText,t.signalType);break;case\"optEnd\":e.addSignal(void 0,void 0,void 0,t.signalType);break;case\"altStart\":e.addSignal(void 0,void 0,t.altText,t.signalType);break;case\"else\":e.addSignal(void 0,void 0,t.altText,t.signalType);break;case\"altEnd\":e.addSignal(void 0,void 0,void 0,t.signalType);break;case\"setTitle\":e.setTitle(t.text)}}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../../logger\":130}],128:[function(t,n,e){\"use strict\";var r=t(\"./parser/sequenceDiagram\").parser;r.yy=t(\"./sequenceDb\");var i=t(\"./svgDraw\"),a=t(\"../../d3\"),u=t(\"../../logger\"),o=new u.Log,s={\ndiagramMarginX:50,diagramMarginY:30,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!1,bottomMarginAdj:1,activationWidth:10,textPlacement:\"tspan\"};e.bounds={data:{startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},verticalPos:0,sequenceItems:[],activations:[],init:function(){this.sequenceItems=[],this.activations=[],this.data={startx:void 0,stopx:void 0,starty:void 0,stopy:void 0},this.verticalPos=0},updateVal:function(t,n,e,r){t[n]=\"undefined\"==typeof t[n]?e:r(e,t[n])},updateBounds:function(t,n,r,i){function a(a){return function(c){o++;var l=u.sequenceItems.length-o+1;u.updateVal(c,\"starty\",n-l*s.boxMargin,Math.min),u.updateVal(c,\"stopy\",i+l*s.boxMargin,Math.max),u.updateVal(e.bounds.data,\"startx\",t-l*s.boxMargin,Math.min),u.updateVal(e.bounds.data,\"stopx\",r+l*s.boxMargin,Math.max),\"activation\"!=a&&(u.updateVal(c,\"startx\",t-l*s.boxMargin,Math.min),u.updateVal(c,\"stopx\",r+l*s.boxMargin,Math.max),u.updateVal(e.bounds.data,\"starty\",n-l*s.boxMargin,Math.min),u.updateVal(e.bounds.data,\"stopy\",i+l*s.boxMargin,Math.max))}}var u=this,o=0;this.sequenceItems.forEach(a()),this.activations.forEach(a(\"activation\"))},insert:function(t,n,r,i){var a,u,o,s;a=Math.min(t,r),o=Math.max(t,r),u=Math.min(n,i),s=Math.max(n,i),this.updateVal(e.bounds.data,\"startx\",a,Math.min),this.updateVal(e.bounds.data,\"starty\",u,Math.min),this.updateVal(e.bounds.data,\"stopx\",o,Math.max),this.updateVal(e.bounds.data,\"stopy\",s,Math.max),this.updateBounds(a,u,o,s)},newActivation:function(t,n){var e=r.yy.getActors()[t.from.actor],a=h(t.from.actor).length,u=e.x+s.width/2+(a-1)*s.activationWidth/2;this.activations.push({startx:u,starty:this.verticalPos+2,stopx:u+s.activationWidth,stopy:void 0,actor:t.from.actor,anchored:i.anchorElement(n)})},endActivation:function(t){var n=this.activations.map(function(t){return t.actor}).lastIndexOf(t.from.actor),e=this.activations.splice(n,1)[0];return e},newLoop:function(t){this.sequenceItems.push({startx:void 0,starty:this.verticalPos,stopx:void 0,stopy:void 0,title:t})},endLoop:function(){var t=this.sequenceItems.pop();return t},addElseToLoop:function(t){var n=this.sequenceItems.pop();n.elsey=e.bounds.getVerticalPos(),n.elseText=t,this.sequenceItems.push(n)},bumpVerticalPos:function(t){this.verticalPos=this.verticalPos+t,this.data.stopy=this.verticalPos},getVerticalPos:function(){return this.verticalPos},getBounds:function(){return this.data}};var c=function(t,n,r,a,u){var o=i.getNoteRect();o.x=n,o.y=r,o.width=u||s.width,o[\"class\"]=\"note\";var c=t.append(\"g\"),l=i.drawRect(c,o),h=i.getTextObj();h.x=n-4,h.y=r-13,h.textMargin=s.noteMargin,h.dy=\"1em\",h.text=a.message,h[\"class\"]=\"noteText\";var f=i.drawText(c,h,o.width-s.noteMargin),d=f[0][0].getBBox().height;!u&&d>s.width?(f.remove(),c=t.append(\"g\"),f=i.drawText(c,h,2*o.width-s.noteMargin),d=f[0][0].getBBox().height,l.attr(\"width\",2*o.width),e.bounds.insert(n,r,n+2*o.width,r+2*s.noteMargin+d)):e.bounds.insert(n,r,n+o.width,r+2*s.noteMargin+d),l.attr(\"height\",d+2*s.noteMargin),e.bounds.bumpVerticalPos(d+2*s.noteMargin)},l=function(t,n,i,a,u){var o,c=t.append(\"g\"),l=n+(i-n)/2,h=c.append(\"text\").attr(\"x\",l).attr(\"y\",a-7).style(\"text-anchor\",\"middle\").attr(\"class\",\"messageText\").text(u.message);o=\"undefined\"!=typeof h[0][0].getBBox?h[0][0].getBBox().width:h[0][0].getBoundingClientRect();var f;if(n===i){f=c.append(\"path\").attr(\"d\",\"M \"+n+\",\"+a+\" C \"+(n+60)+\",\"+(a-10)+\" \"+(n+60)+\",\"+(a+30)+\" \"+n+\",\"+(a+20)),e.bounds.bumpVerticalPos(30);var d=Math.max(o/2,100);e.bounds.insert(n-d,e.bounds.getVerticalPos()-10,i+d,e.bounds.getVerticalPos())}else f=c.append(\"line\"),f.attr(\"x1\",n),f.attr(\"y1\",a),f.attr(\"x2\",i),f.attr(\"y2\",a),e.bounds.insert(n,e.bounds.getVerticalPos()-10,i,e.bounds.getVerticalPos());u.type===r.yy.LINETYPE.DOTTED||u.type===r.yy.LINETYPE.DOTTED_CROSS||u.type===r.yy.LINETYPE.DOTTED_OPEN?(f.style(\"stroke-dasharray\",\"3, 3\"),f.attr(\"class\",\"messageLine1\")):f.attr(\"class\",\"messageLine0\");var p=\"\";s.arrowMarkerAbsolute&&(p=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\\(/g,\"\\\\(\"),p=p.replace(/\\)/g,\"\\\\)\")),f.attr(\"stroke-width\",2),f.attr(\"stroke\",\"black\"),f.style(\"fill\",\"none\"),(u.type===r.yy.LINETYPE.SOLID||u.type===r.yy.LINETYPE.DOTTED)&&f.attr(\"marker-end\",\"url(\"+p+\"#arrowhead)\"),(u.type===r.yy.LINETYPE.SOLID_CROSS||u.type===r.yy.LINETYPE.DOTTED_CROSS)&&f.attr(\"marker-end\",\"url(\"+p+\"#crosshead)\")};n.exports.drawActors=function(t,n,r,a){var u;for(u=0;u<r.length;u++){var o=r[u];n[o].x=u*s.actorMargin+u*s.width,n[o].y=a,n[o].width=s.diagramMarginX,n[o].height=s.diagramMarginY,i.drawActor(t,n[o].x,a,n[o].description,s),e.bounds.insert(n[o].x,a,n[o].x+s.width,s.height)}e.bounds.bumpVerticalPos(s.height)},n.exports.setConf=function(t){var n=Object.keys(t);n.forEach(function(n){s[n]=t[n]})};var h=function(t){return n.exports.bounds.activations.filter(function(n){return n.actor==t})},f=function(t){var n=r.yy.getActors(),e=h(t),i=e.reduce(function(t,n){return Math.min(t,n.startx)},n[t].x+s.width/2),a=e.reduce(function(t,n){return Math.max(t,n.stopx)},n[t].x+s.width/2);return[i,a]};n.exports.draw=function(t,u){function h(t,n){var r=e.bounds.endActivation(t);r.starty+18>n&&(r.starty=n-6,n+=12),i.drawActivation(y,r,n,s),e.bounds.insert(r.startx,n-10,r.stopx,n)}r.yy.clear(),r.parse(t+\"\\n\"),e.bounds.init();var d,p,g,y=a.select(\"#\"+u),m=r.yy.getActors(),v=r.yy.getActorKeys(),_=r.yy.getMessages(),b=r.yy.getTitle();n.exports.drawActors(y,m,v,0),i.insertArrowHead(y),i.insertArrowCrossHead(y);var x;_.forEach(function(t){var n;switch(t.type){case r.yy.LINETYPE.NOTE:e.bounds.bumpVerticalPos(s.boxMargin),d=m[t.from].x,p=m[t.to].x,t.placement===r.yy.PLACEMENT.RIGHTOF?c(y,d+(s.width+s.actorMargin)/2,e.bounds.getVerticalPos(),t):t.placement===r.yy.PLACEMENT.LEFTOF?c(y,d-(s.width+s.actorMargin)/2,e.bounds.getVerticalPos(),t):t.to===t.from?c(y,d,e.bounds.getVerticalPos(),t):(g=Math.abs(d-p)+s.actorMargin,c(y,(d+p+s.width-g)/2,e.bounds.getVerticalPos(),t,g));break;case r.yy.LINETYPE.ACTIVE_START:e.bounds.newActivation(t,y);break;case r.yy.LINETYPE.ACTIVE_END:h(t,e.bounds.getVerticalPos());break;case r.yy.LINETYPE.LOOP_START:e.bounds.bumpVerticalPos(s.boxMargin),e.bounds.newLoop(t.message),e.bounds.bumpVerticalPos(s.boxMargin+s.boxTextMargin);break;case r.yy.LINETYPE.LOOP_END:n=e.bounds.endLoop(),i.drawLoop(y,n,\"loop\",s),e.bounds.bumpVerticalPos(s.boxMargin);break;case r.yy.LINETYPE.OPT_START:e.bounds.bumpVerticalPos(s.boxMargin),e.bounds.newLoop(t.message),e.bounds.bumpVerticalPos(s.boxMargin+s.boxTextMargin);break;case r.yy.LINETYPE.OPT_END:n=e.bounds.endLoop(),i.drawLoop(y,n,\"opt\",s),e.bounds.bumpVerticalPos(s.boxMargin);break;case r.yy.LINETYPE.ALT_START:e.bounds.bumpVerticalPos(s.boxMargin),e.bounds.newLoop(t.message),e.bounds.bumpVerticalPos(s.boxMargin+s.boxTextMargin);break;case r.yy.LINETYPE.ALT_ELSE:e.bounds.bumpVerticalPos(s.boxMargin),n=e.bounds.addElseToLoop(t.message),e.bounds.bumpVerticalPos(s.boxMargin);break;case r.yy.LINETYPE.ALT_END:n=e.bounds.endLoop(),i.drawLoop(y,n,\"alt\",s),e.bounds.bumpVerticalPos(s.boxMargin);break;default:try{x=t,e.bounds.bumpVerticalPos(s.messageMargin);var a=f(t.from),u=f(t.to),o=a[0]<=u[0]?1:0,v=a[0]<u[0]?0:1;d=a[o],p=u[v];var _=e.bounds.getVerticalPos();l(y,d,p,_,t);var b=a.concat(u);e.bounds.insert(Math.min.apply(null,b),_,Math.max.apply(null,b),_)}catch(w){console.error(\"error while drawing message\",w)}}}),s.mirrorActors&&(e.bounds.bumpVerticalPos(2*s.boxMargin),n.exports.drawActors(y,m,v,e.bounds.getVerticalPos()));var w=e.bounds.getBounds();o.debug(\"For line height fix Querying: #\"+u+\" .actor-line\");var A=a.selectAll(\"#\"+u+\" .actor-line\");A.attr(\"y2\",w.stopy);var k=w.stopy-w.starty+2*s.diagramMarginY;s.mirrorActors&&(k=k-s.boxMargin+s.bottomMarginAdj);var E=w.stopx-w.startx+2*s.diagramMarginX;b&&y.append(\"text\").text(b).attr(\"x\",(w.stopx-w.startx)/2-2*s.diagramMarginX).attr(\"y\",-25),s.useMaxWidth?(y.attr(\"height\",\"100%\"),y.attr(\"width\",\"100%\"),y.attr(\"style\",\"max-width:\"+E+\"px;\")):(y.attr(\"height\",k),y.attr(\"width\",E));var M=b?40:0;y.attr(\"viewBox\",w.startx-s.diagramMarginX+\" -\"+(s.diagramMarginY+M)+\" \"+E+\" \"+(k+M))}},{\"../../d3\":108,\"../../logger\":130,\"./parser/sequenceDiagram\":126,\"./sequenceDb\":127,\"./svgDraw\":129}],129:[function(t,n,e){\"use strict\";e.drawRect=function(t,n){var e=t.append(\"rect\");return e.attr(\"x\",n.x),e.attr(\"y\",n.y),e.attr(\"fill\",n.fill),e.attr(\"stroke\",n.stroke),e.attr(\"width\",n.width),e.attr(\"height\",n.height),e.attr(\"rx\",n.rx),e.attr(\"ry\",n.ry),\"undefined\"!=typeof n[\"class\"]&&e.attr(\"class\",n[\"class\"]),e},e.drawText=function(t,n,e){var r=n.text.replace(/<br\\/?>/gi,\" \"),i=t.append(\"text\");i.attr(\"x\",n.x),i.attr(\"y\",n.y),i.style(\"text-anchor\",n.anchor),i.attr(\"fill\",n.fill),\"undefined\"!=typeof n[\"class\"]&&i.attr(\"class\",n[\"class\"]);var a=i.append(\"tspan\");return a.attr(\"x\",n.x+2*n.textMargin),a.text(r),\"undefined\"!=typeof i.textwrap&&i.textwrap({x:n.x,y:n.y,width:e,height:1800},n.textMargin),i},e.drawLabel=function(t,n){var r=e.getNoteRect();r.x=n.x,r.y=n.y,r.width=50,r.height=20,r.fill=\"#526e52\",r.stroke=\"none\",r[\"class\"]=\"labelBox\",e.drawRect(t,r),n.y=n.y+n.labelMargin,n.x=n.x+.5*n.labelMargin,n.fill=\"white\",e.drawText(t,n)};var r=-1;e.drawActor=function(t,n,a,u,o){var s=n+o.width/2,c=t.append(\"g\");0===a&&(r++,c.append(\"line\").attr(\"id\",\"actor\"+r).attr(\"x1\",s).attr(\"y1\",5).attr(\"x2\",s).attr(\"y2\",2e3).attr(\"class\",\"actor-line\").attr(\"stroke-width\",\"0.5px\").attr(\"stroke\",\"#999\"));var l=e.getNoteRect();l.x=n,l.y=a,l.fill=\"#eaeaea\",l.width=o.width,l.height=o.height,l[\"class\"]=\"actor\",l.rx=3,l.ry=3,e.drawRect(c,l),i(o)(u,c,l.x,l.y,l.width,l.height,{\"class\":\"actor\"})},e.anchorElement=function(t){return t.append(\"g\")},e.drawActivation=function(t,n,r){var i=e.getNoteRect(),a=n.anchored;i.x=n.startx,i.y=n.starty,i.fill=\"#f4f4f4\",i.width=n.stopx-n.startx,i.height=r-n.starty,e.drawRect(a,i)},e.drawLoop=function(t,n,r,i){var a=t.append(\"g\"),u=function(t,n,e,r){a.append(\"line\").attr(\"x1\",t).attr(\"y1\",n).attr(\"x2\",e).attr(\"y2\",r).attr(\"stroke-width\",2).attr(\"stroke\",\"#526e52\").attr(\"class\",\"loopLine\")};u(n.startx,n.starty,n.stopx,n.starty),u(n.stopx,n.starty,n.stopx,n.stopy),u(n.startx,n.stopy,n.stopx,n.stopy),u(n.startx,n.starty,n.startx,n.stopy),\"undefined\"!=typeof n.elsey&&u(n.startx,n.elsey,n.stopx,n.elsey);var o=e.getTextObj();o.text=r,o.x=n.startx,o.y=n.starty,o.labelMargin=15,o[\"class\"]=\"labelText\",o.fill=\"white\",e.drawLabel(a,o),o=e.getTextObj(),o.text=\"[ \"+n.title+\" ]\",o.x=n.startx+(n.stopx-n.startx)/2,o.y=n.starty+1.5*i.boxMargin,o.anchor=\"middle\",o[\"class\"]=\"loopText\",e.drawText(a,o),\"undefined\"!=typeof n.elseText&&(o.text=\"[ \"+n.elseText+\" ]\",o.y=n.elsey+1.5*i.boxMargin,e.drawText(a,o))},e.insertArrowHead=function(t){t.append(\"defs\").append(\"marker\").attr(\"id\",\"arrowhead\").attr(\"refX\",5).attr(\"refY\",2).attr(\"markerWidth\",6).attr(\"markerHeight\",4).attr(\"orient\",\"auto\").append(\"path\").attr(\"d\",\"M 0,0 V 4 L6,2 Z\")},e.insertArrowCrossHead=function(t){var n=t.append(\"defs\"),e=n.append(\"marker\").attr(\"id\",\"crosshead\").attr(\"markerWidth\",15).attr(\"markerHeight\",8).attr(\"orient\",\"auto\").attr(\"refX\",16).attr(\"refY\",4);e.append(\"path\").attr(\"fill\",\"black\").attr(\"stroke\",\"#000000\").style(\"stroke-dasharray\",\"0, 0\").attr(\"stroke-width\",\"1px\").attr(\"d\",\"M 9,2 V 6 L16,4 Z\"),e.append(\"path\").attr(\"fill\",\"none\").attr(\"stroke\",\"#000000\").style(\"stroke-dasharray\",\"0, 0\").attr(\"stroke-width\",\"1px\").attr(\"d\",\"M 0,1 L 6,7 M 6,1 L 0,7\")},e.getTextObj=function(){var t={x:0,y:0,fill:\"black\",\"text-anchor\":\"start\",style:\"#666\",width:100,height:100,textMargin:0,rx:0,ry:0};return t},e.getNoteRect=function(){var t={x:0,y:0,fill:\"#EDF2AE\",stroke:\"#666\",width:100,anchor:\"start\",height:100,rx:0,ry:0};return t};var i=function(){function t(t,n,e,i,a,u,o){var s=n.append(\"text\").attr(\"x\",e+a/2).attr(\"y\",i+u/2+5).style(\"text-anchor\",\"middle\").text(t);r(s,o)}function n(t,n,e,i,a,u,o){var s=n.append(\"text\").attr(\"x\",e+a/2).attr(\"y\",i).style(\"text-anchor\",\"middle\");if(s.append(\"tspan\").attr(\"x\",e+a/2).attr(\"dy\",\"0\").text(t),\"undefined\"!=typeof s.textwrap){s.textwrap({x:e+a/2,y:i,width:a,height:u},0);var c=s.selectAll(\"tspan\");c.length>0&&c[0].length>0&&(c=c[0],s.attr(\"y\",i+(u/2-s[0][0].getBBox().height*(1-1/c.length)/2)).attr(\"dominant-baseline\",\"central\").attr(\"alignment-baseline\",\"central\"))}r(s,o)}function e(t,e,i,a,u,o,s){var c=e.append(\"switch\"),l=c.append(\"foreignObject\").attr(\"x\",i).attr(\"y\",a).attr(\"width\",u).attr(\"height\",o),h=l.append(\"div\").style(\"display\",\"table\").style(\"height\",\"100%\").style(\"width\",\"100%\");h.append(\"div\").style(\"display\",\"table-cell\").style(\"text-align\",\"center\").style(\"vertical-align\",\"middle\").text(t),n(t,c,i,a,u,o,s),r(h,s)}function r(t,n){for(var e in n)n.hasOwnProperty(e)&&t.attr(e,n[e])}return function(r){return\"fo\"===r.textPlacement?e:\"old\"===r.textPlacement?t:n}}()},{}],130:[function(t,n,e){\"use strict\";function r(t){var n=t.getUTCHours(),e=t.getUTCMinutes(),r=t.getSeconds(),i=t.getMilliseconds();10>n&&(n=\"0\"+n),10>e&&(e=\"0\"+e),10>r&&(r=\"0\"+r),100>i&&(i=\"0\"+i),10>i&&(i=\"00\"+i);var a=n+\":\"+e+\":\"+r+\" (\"+i+\")\";return a}function i(t){var n=r(new Date);return\"%c \"+n+\" :%c\"+t+\": \"}function a(t){this.level=t,this.log=function(){var t=Array.prototype.slice.call(arguments),n=t.shift(),e=this.level;\"undefined\"==typeof e&&(e=o),n>=e&&\"undefined\"!=typeof console&&\"undefined\"!=typeof console.log&&(t.unshift(\"[\"+r(new Date)+\"] \"),console.log.apply(console,t.map(function(t){return\"object\"==typeof t?t.toString()+JSON.stringify(t,null,2):t})))},this.trace=window.console.debug.bind(window.console,i(\"TRACE\",name),\"color:grey;\",\"color: grey;\"),this.debug=window.console.debug.bind(window.console,i(\"DEBUG\",name),\"color:grey;\",\"color: green;\"),this.info=window.console.debug.bind(window.console,i(\"INFO\",name),\"color:grey;\",\"color: blue;\"),this.warn=window.console.debug.bind(window.console,i(\"WARN\",name),\"color:grey;\",\"color: orange;\"),this.error=window.console.debug.bind(window.console,i(\"ERROR\",name),\"color:grey;\",\"color: red;\")}var u={debug:1,info:2,warn:3,error:4,fatal:5,\"default\":5},o=u.error;e.setLogLevel=function(t){o=t},e.Log=a},{}],131:[function(t,n,e){(function(n){\"use strict\";var r=t(\"./logger\"),i=new r.Log,a=t(\"./diagrams/flowchart/graphDb\"),u=t(\"./utils\"),o=t(\"./diagrams/flowchart/flowRenderer\"),s=t(\"./diagrams/sequenceDiagram/sequenceRenderer\"),c=t(\"./diagrams/example/exampleRenderer\"),l=t(\"./diagrams/example/parser/example\"),h=t(\"./diagrams/flowchart/parser/flow\"),f=t(\"./diagrams/flowchart/parser/dot\"),d=t(\"./diagrams/sequenceDiagram/parser/sequenceDiagram\"),p=t(\"./diagrams/sequenceDiagram/sequenceDb\"),g=t(\"./diagrams/example/exampleDb\"),y=t(\"./diagrams/gantt/ganttRenderer\"),m=t(\"./diagrams/gantt/parser/gantt\"),v=t(\"./diagrams/gantt/ganttDb\"),_=t(\"./diagrams/classDiagram/parser/classDiagram\"),b=t(\"./diagrams/classDiagram/classRenderer\"),x=t(\"./diagrams/classDiagram/classDb\"),w=t(\"./diagrams/gitGraph/parser/gitGraph\"),A=t(\"./diagrams/gitGraph/gitGraphRenderer\"),k=t(\"./diagrams/gitGraph/gitGraphAst\"),E=t(\"./d3\");SVGElement.prototype.getTransformToElement=SVGElement.prototype.getTransformToElement||function(t){return t.getScreenCTM().inverse().multiply(this.getScreenCTM())};var M={logLevel:5,cloneCssStyles:!0,startOnLoad:!0,arrowMarkerAbsolute:!1,flowchart:{htmlLabels:!0,useMaxWidth:!0},sequenceDiagram:{diagramMarginX:50,diagramMarginY:10,actorMargin:50,width:150,height:65,boxMargin:10,boxTextMargin:5,noteMargin:10,messageMargin:35,mirrorActors:!0,bottomMarginAdj:1,useMaxWidth:!0},gantt:{titleTopMargin:25,barHeight:20,barGap:4,topPadding:50,leftPadding:75,gridLineStartPadding:35,fontSize:11,fontFamily:'\"Open-Sans\", \"sans-serif\"',numberSectionStyles:3,axisFormatter:[[\"%I:%M\",function(t){return t.getHours()}],[\"w. %U\",function(t){return 1==t.getDay()}],[\"%a %d\",function(t){return t.getDay()&&1!=t.getDate()}],[\"%b %d\",function(t){return 1!=t.getDate()}],[\"%m-%y\",function(t){return t.getMonth()}]]},classDiagram:{},gitGraph:{},info:{}};r.setLogLevel(M.logLevel);var S=function(t){var n,e=u.detectType(t);switch(e){case\"gitGraph\":n=w,n.parser.yy=k;break;case\"graph\":n=h,n.parser.yy=a;break;case\"dotGraph\":n=f,n.parser.yy=a;break;case\"sequenceDiagram\":n=d,n.parser.yy=p;break;case\"info\":n=l,n.parser.yy=g;break;case\"gantt\":n=m,n.parser.yy=v;break;case\"classDiagram\":n=_,n.parser.yy=x}try{return n.parse(t),!0}catch(r){return!1}};e.parse=S,e.version=function(){return t(\"../package.json\").version},e.encodeEntities=function(t){var n=t;return n=n.replace(/style.*:\\S*#.*;/g,function(t){var n=t.substring(0,t.length-1);return n}),n=n.replace(/classDef.*:\\S*#.*;/g,function(t){var n=t.substring(0,t.length-1);return n}),n=n.replace(/#\\w+\\;/g,function(t){var n=t.substring(1,t.length-1),e=/^\\+?\\d+$/.test(n);return e?\"fl°°\"+n+\"¶ß\":\"fl°\"+n+\"¶ß\"})},e.decodeEntities=function(t){var n=t;return n=n.replace(/\\fl\\°\\°/g,function(){return\"&#\"}),n=n.replace(/\\fl\\°/g,function(){return\"&\"}),n=n.replace(/¶ß/g,function(){return\";\"})};var D=function(t,n,r,l){if(\"undefined\"!=typeof l)l.innerHTML=\"\",E.select(l).append(\"div\").attr(\"id\",\"d\"+t).append(\"svg\").attr(\"id\",t).attr(\"width\",\"100%\").attr(\"xmlns\",\"http://www.w3.org/2000/svg\").append(\"g\");else{var h=document.querySelector(\"#d\"+t);h&&(h.innerHTML=\"\"),E.select(\"body\").append(\"div\").attr(\"id\",\"d\"+t).append(\"svg\").attr(\"id\",t).attr(\"width\",\"100%\").attr(\"xmlns\",\"http://www.w3.org/2000/svg\").append(\"g\")}window.txt=n,n=e.encodeEntities(n);var h=E.select(\"#d\"+t).node(),f=u.detectType(n),d={};switch(f){case\"gitGraph\":M.flowchart.arrowMarkerAbsolute=M.arrowMarkerAbsolute,A.setConf(M.gitGraph),A.draw(n,t,!1);break;case\"graph\":M.flowchart.arrowMarkerAbsolute=M.arrowMarkerAbsolute,o.setConf(M.flowchart),o.draw(n,t,!1),M.cloneCssStyles&&(d=o.getClasses(n,!1),u.cloneCssStyles(h.firstChild,d));break;case\"dotGraph\":M.flowchart.arrowMarkerAbsolute=M.arrowMarkerAbsolute,o.setConf(M.flowchart),o.draw(n,t,!0),M.cloneCssStyles&&(d=o.getClasses(n,!0),u.cloneCssStyles(h.firstChild,d));break;case\"sequenceDiagram\":M.sequenceDiagram.arrowMarkerAbsolute=M.arrowMarkerAbsolute,s.setConf(M.sequenceDiagram),s.draw(n,t),M.cloneCssStyles&&u.cloneCssStyles(h.firstChild,[]);break;case\"gantt\":M.gantt.arrowMarkerAbsolute=M.arrowMarkerAbsolute,y.setConf(M.gantt),y.draw(n,t),M.cloneCssStyles&&u.cloneCssStyles(h.firstChild,[]);break;case\"classDiagram\":M.classDiagram.arrowMarkerAbsolute=M.arrowMarkerAbsolute,b.setConf(M.classDiagram),b.draw(n,t),M.cloneCssStyles&&u.cloneCssStyles(h.firstChild,[]);break;case\"info\":M.info.arrowMarkerAbsolute=M.arrowMarkerAbsolute,c.draw(n,t,e.version()),M.cloneCssStyles&&u.cloneCssStyles(h.firstChild,[])}E.select(\"#d\"+t).selectAll(\"foreignobject div\").attr(\"xmlns\",\"http://www.w3.org/1999/xhtml\");var p=\"\";M.arrowMarkerAbsolute&&(p=window.location.protocol+\"//\"+window.location.host+window.location.pathname+window.location.search,p=p.replace(/\\(/g,\"\\\\(\"),p=p.replace(/\\)/g,\"\\\\)\"));var g=E.select(\"#d\"+t).node().innerHTML.replace(/url\\(#arrowhead/g,\"url(\"+p+\"#arrowhead\",\"g\");g=e.decodeEntities(g),\"undefined\"!=typeof r?r(g,a.bindFunctions):i.warn(\"CB = undefined!\");var m=E.select(\"#d\"+t).node();return null!==m&&\"function\"==typeof m.remove&&E.select(\"#d\"+t).node().remove(),g};e.render=function(t,n,e,r){try{if(1===arguments.length&&(n=t,t=\"mermaidId0\"),\"undefined\"!=typeof document)return D(t,n,e,r)}catch(a){i.warn(a)}};var C=function(t){var n,e=Object.keys(t);for(n=0;n<e.length;n++)if(\"object\"==typeof t[e[n]]){var r,a=Object.keys(t[e[n]]);for(r=0;r<a.length;r++)i.debug(\"Setting conf \",e[n],\"-\",a[r]),\"undefined\"==typeof M[e[n]]&&(M[e[n]]={}),i.debug(\"Setting config: \"+e[n]+\" \"+a[r]+\" to \"+t[e[n]][a[r]]),M[e[n]][a[r]]=t[e[n]][a[r]]}else M[e[n]]=t[e[n]]};e.initialize=function(t){i.debug(\"Initializing mermaidAPI\"),\"object\"==typeof t&&C(t),r.setLogLevel(M.logLevel)},e.getConfig=function(){return M},e.parseError=function(t,e){\"undefined\"!=typeof mermaid?n.mermaid.parseError(t,e):(i.debug(\"Mermaid Syntax error:\"),i.debug(t))},n.mermaidAPI={render:e.render,parse:e.parse,initialize:e.initialize,detectType:u.detectType,parseError:e.parseError,getConfig:e.getConfig}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{\"../package.json\":107,\"./d3\":108,\"./diagrams/classDiagram/classDb\":109,\"./diagrams/classDiagram/classRenderer\":110,\"./diagrams/classDiagram/parser/classDiagram\":111,\"./diagrams/example/exampleDb\":112,\"./diagrams/example/exampleRenderer\":113,\"./diagrams/example/parser/example\":114,\"./diagrams/flowchart/flowRenderer\":116,\"./diagrams/flowchart/graphDb\":117,\"./diagrams/flowchart/parser/dot\":118,\"./diagrams/flowchart/parser/flow\":119,\"./diagrams/gantt/ganttDb\":120,\"./diagrams/gantt/ganttRenderer\":121,\"./diagrams/gantt/parser/gantt\":122,\"./diagrams/gitGraph/gitGraphAst\":123,\"./diagrams/gitGraph/gitGraphRenderer\":124,\"./diagrams/gitGraph/parser/gitGraph\":125,\"./diagrams/sequenceDiagram/parser/sequenceDiagram\":126,\"./diagrams/sequenceDiagram/sequenceDb\":127,\"./diagrams/sequenceDiagram/sequenceRenderer\":128,\"./logger\":130,\"./utils\":132}],132:[function(t,n,e){\"use strict\";var r=t(\"./logger\"),i=new r.Log,a=function(t){return t=t.replace(/^\\s*%%.*\\n/g,\"\\n\"),t.match(/^\\s*sequenceDiagram/)?\"sequenceDiagram\":t.match(/^\\s*digraph/)?\"dotGraph\":t.match(/^\\s*info/)?\"info\":t.match(/^\\s*gantt/)?\"gantt\":t.match(/^\\s*classDiagram/)?(i.debug(\"Detected classDiagram syntax\"),\"classDiagram\"):t.match(/^\\s*gitGraph/)?(i.debug(\"Detected gitGraph syntax\"),\"gitGraph\"):\"graph\"};e.detectType=a;var u=function(t,n){for(var e,r=\"\",a=document.styleSheets,u=0;u<a.length;u++)if(\"mermaid-svg-internal-css\"!==a[u].title)try{var o=a[u].cssRules;if(null!==o)for(var s=0;s<o.length;s++)if(e=o[s],\"undefined\"!=typeof e.style){var c;c=t.querySelectorAll(e.selectorText),c.length>0&&(r+=e.selectorText+\" { \"+e.style.cssText+\"}\\n\")}}catch(l){\"undefined\"!=typeof e&&i.warn('Invalid CSS selector \"'+e.selectorText+'\"',l)}var h=\"\",f=\"\";for(var d in n)n.hasOwnProperty(d)&&\"undefined\"!=typeof d&&(\"default\"===d?(n[\"default\"].styles instanceof Array&&(h+=\"#\"+t.id.trim()+\" .node>rect { \"+n[d].styles.join(\"; \")+\"; }\\n\"),n[\"default\"].nodeLabelStyles instanceof Array&&(h+=\"#\"+t.id.trim()+\" .node text { \"+n[d].nodeLabelStyles.join(\"; \")+\"; }\\n\"),n[\"default\"].edgeLabelStyles instanceof Array&&(h+=\"#\"+t.id.trim()+\" .edgeLabel text { \"+n[d].edgeLabelStyles.join(\"; \")+\"; }\\n\"),n[\"default\"].clusterStyles instanceof Array&&(h+=\"#\"+t.id.trim()+\" .cluster rect { \"+n[d].clusterStyles.join(\"; \")+\"; }\\n\")):n[d].styles instanceof Array&&(f+=\"#\"+t.id.trim()+\" .\"+d+\">rect, .\"+d+\">polygon, .\"+d+\">circle, .\"+d+\">ellipse { \"+n[d].styles.join(\"; \")+\"; }\\n\"));if(\"\"!==r||\"\"!==h||\"\"!==f){var p=document.createElement(\"style\");p.setAttribute(\"type\",\"text/css\"),p.setAttribute(\"title\",\"mermaid-svg-internal-css\"),p.innerHTML=\"/* <![CDATA[ */\\n\",\"\"!==h&&(p.innerHTML+=h),\"\"!==r&&(p.innerHTML+=r),\"\"!==f&&(p.innerHTML+=f),p.innerHTML+=\"/* ]]> */\\n\",t.insertBefore(p,t.firstChild)}};e.cloneCssStyles=u;var o=function(t,n){for(var e=0;e<n.length;e++)if(n[e].match(t))return e;return-1};e.isSubstringInArray=o},{\"./logger\":130}]},{},[131])(131)});\n})($tw.node ? $tw.fakeDocument : window.document)\n" }, "$:/plugins/gt6796c/mermaid-tw5/mermaid.dark.css": { "type": "text/css", "title": "$:/plugins/gt6796c/mermaid-tw5/mermaid.dark.css", "tags": "$:/tags/Stylesheet", "text": "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n color: #323D47;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #BDD5EA;\n stroke: #81B1DB;\n stroke-width: 1px;\n}\n.edgePath .path {\n stroke: lightgrey;\n}\n.edgeLabel {\n background-color: #e8e8e8;\n}\n.cluster rect {\n fill: #6D6D65 !important;\n rx: 4 !important;\n stroke: rgba(255, 255, 255, 0.25) !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #F9FFFE;\n}\n.actor {\n stroke: #81B1DB;\n fill: #BDD5EA;\n}\ntext.actor {\n fill: black;\n stroke: none;\n}\n.actor-line {\n stroke: lightgrey;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: lightgrey;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: lightgrey;\n}\n#arrowhead {\n fill: lightgrey !important;\n}\n#crosshead path {\n fill: lightgrey !important;\n stroke: lightgrey !important;\n}\n.messageText {\n fill: lightgrey;\n stroke: none;\n}\n.labelBox {\n stroke: #81B1DB;\n fill: #BDD5EA;\n}\n.labelText {\n fill: #323D47;\n stroke: none;\n}\n.loopText {\n fill: lightgrey;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #81B1DB;\n}\n.note {\n stroke: rgba(255, 255, 255, 0.25);\n fill: #fff5ad;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: rgba(255, 255, 255, 0.3);\n}\n.section2 {\n fill: #EAE8B9;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #F9FFFE;\n}\n.sectionTitle1 {\n fill: #F9FFFE;\n}\n.sectionTitle2 {\n fill: #F9FFFE;\n}\n.sectionTitle3 {\n fill: #F9FFFE;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: rgba(255, 255, 255, 0.3);\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid .tick text {\n fill: lightgrey;\n opacity: 0.5;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: #DB5757;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 1;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: #323D47;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: #323D47;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: #323D47;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #BDD5EA;\n stroke: rgba(255, 255, 255, 0.5);\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: lightgrey;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: lightgrey;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #81B1DB;\n stroke: rgba(255, 255, 255, 0.5);\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: #323D47 !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n fill: lightgrey;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: #323D47 !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #E83737;\n fill: #E83737;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #E83737;\n fill: #81B1DB;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #E83737;\n fill: lightgrey;\n stroke-width: 1;\n cursor: pointer;\n shape-rendering: crispEdges;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: lightgrey !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: #323D47 !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: lightgrey;\n}\n/*\n\n\n*/\n.node text {\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #6D6D65;\n border: 1px solid rgba(255, 255, 255, 0.25);\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n" }, "$:/plugins/gt6796c/mermaid-tw5/mermaid.css": { "type": "text/css", "title": "$:/plugins/gt6796c/mermaid-tw5/mermaid.css", "tags": "$:/tags/Stylesheet", "text": "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n color: #333;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #ECECFF;\n stroke: #CCCCFF;\n stroke-width: 1px;\n}\n.edgePath .path {\n stroke: #333333;\n}\n.edgeLabel {\n background-color: #e8e8e8;\n}\n.cluster rect {\n fill: #ffffde !important;\n rx: 4 !important;\n stroke: #aaaa33 !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #333;\n}\n.actor {\n stroke: #CCCCFF;\n fill: #ECECFF;\n}\ntext.actor {\n fill: black;\n stroke: none;\n}\n.actor-line {\n stroke: grey;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #333;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: #333;\n}\n#arrowhead {\n fill: #333;\n}\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important;\n}\n.messageText {\n fill: #333;\n stroke: none;\n}\n.labelBox {\n stroke: #CCCCFF;\n fill: #ECECFF;\n}\n.labelText {\n fill: black;\n stroke: none;\n}\n.loopText {\n fill: black;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #CCCCFF;\n}\n.note {\n stroke: #aaaa33;\n fill: #fff5ad;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: rgba(102, 102, 255, 0.49);\n}\n.section2 {\n fill: #fff400;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #333;\n}\n.sectionTitle1 {\n fill: #333;\n}\n.sectionTitle2 {\n fill: #333;\n}\n.sectionTitle3 {\n fill: #333;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: red;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: black;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: black;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #8a90dd;\n stroke: #534fbc;\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: black;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: black;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #bfc7ff;\n stroke: #534fbc;\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: black !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: black !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #ff8888;\n fill: red;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #ff8888;\n fill: #bfc7ff;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #ff8888;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: black !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: black !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: black;\n}\n/*\n\n\n*/\n.node text {\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #ffffde;\n border: 1px solid #aaaa33;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n" }, "$:/plugins/gt6796c/mermaid-tw5/mermaid.forest.css": { "type": "text/css", "title": "$:/plugins/gt6796c/mermaid-tw5/mermaid.forest.css", "tags": "$:/tags/Stylesheet", "text": "/* Flowchart variables */\n/* Sequence Diagram variables */\n/* Gantt chart variables */\n.mermaid .label {\n font-family: 'trebuchet ms', verdana, arial;\n color: #333;\n}\n.node rect,\n.node circle,\n.node ellipse,\n.node polygon {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1px;\n}\n.edgePath .path {\n stroke: green;\n stroke-width: 1.5px;\n}\n.edgeLabel {\n background-color: #e8e8e8;\n}\n.cluster rect {\n fill: #cdffb2 !important;\n rx: 4 !important;\n stroke: #6eaa49 !important;\n stroke-width: 1px !important;\n}\n.cluster text {\n fill: #333;\n}\n.actor {\n stroke: #13540c;\n fill: #cde498;\n}\ntext.actor {\n fill: black;\n stroke: none;\n}\n.actor-line {\n stroke: grey;\n}\n.messageLine0 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #333;\n}\n.messageLine1 {\n stroke-width: 1.5;\n stroke-dasharray: \"2 2\";\n stroke: #333;\n}\n#arrowhead {\n fill: #333;\n}\n#crosshead path {\n fill: #333 !important;\n stroke: #333 !important;\n}\n.messageText {\n fill: #333;\n stroke: none;\n}\n.labelBox {\n stroke: #326932;\n fill: #cde498;\n}\n.labelText {\n fill: black;\n stroke: none;\n}\n.loopText {\n fill: black;\n stroke: none;\n}\n.loopLine {\n stroke-width: 2;\n stroke-dasharray: \"2 2\";\n marker-end: \"url(#arrowhead)\";\n stroke: #326932;\n}\n.note {\n stroke: #6eaa49;\n fill: #fff5ad;\n}\n.noteText {\n fill: black;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\n/** Section styling */\n.section {\n stroke: none;\n opacity: 0.2;\n}\n.section0 {\n fill: #6eaa49;\n}\n.section2 {\n fill: #6eaa49;\n}\n.section1,\n.section3 {\n fill: white;\n opacity: 0.2;\n}\n.sectionTitle0 {\n fill: #333;\n}\n.sectionTitle1 {\n fill: #333;\n}\n.sectionTitle2 {\n fill: #333;\n}\n.sectionTitle3 {\n fill: #333;\n}\n.sectionTitle {\n text-anchor: start;\n font-size: 11px;\n text-height: 14px;\n}\n/* Grid and axis */\n.grid .tick {\n stroke: lightgrey;\n opacity: 0.3;\n shape-rendering: crispEdges;\n}\n.grid path {\n stroke-width: 0;\n}\n/* Today line */\n.today {\n fill: none;\n stroke: red;\n stroke-width: 2px;\n}\n/* Task styling */\n/* Default task */\n.task {\n stroke-width: 2;\n}\n.taskText {\n text-anchor: middle;\n font-size: 11px;\n}\n.taskTextOutsideRight {\n fill: black;\n text-anchor: start;\n font-size: 11px;\n}\n.taskTextOutsideLeft {\n fill: black;\n text-anchor: end;\n font-size: 11px;\n}\n/* Specific task settings for the sections*/\n.taskText0,\n.taskText1,\n.taskText2,\n.taskText3 {\n fill: white;\n}\n.task0,\n.task1,\n.task2,\n.task3 {\n fill: #487e3a;\n stroke: #13540c;\n}\n.taskTextOutside0,\n.taskTextOutside2 {\n fill: black;\n}\n.taskTextOutside1,\n.taskTextOutside3 {\n fill: black;\n}\n/* Active task */\n.active0,\n.active1,\n.active2,\n.active3 {\n fill: #cde498;\n stroke: #13540c;\n}\n.activeText0,\n.activeText1,\n.activeText2,\n.activeText3 {\n fill: black !important;\n}\n/* Completed task */\n.done0,\n.done1,\n.done2,\n.done3 {\n stroke: grey;\n fill: lightgrey;\n stroke-width: 2;\n}\n.doneText0,\n.doneText1,\n.doneText2,\n.doneText3 {\n fill: black !important;\n}\n/* Tasks on the critical line */\n.crit0,\n.crit1,\n.crit2,\n.crit3 {\n stroke: #ff8888;\n fill: red;\n stroke-width: 2;\n}\n.activeCrit0,\n.activeCrit1,\n.activeCrit2,\n.activeCrit3 {\n stroke: #ff8888;\n fill: #cde498;\n stroke-width: 2;\n}\n.doneCrit0,\n.doneCrit1,\n.doneCrit2,\n.doneCrit3 {\n stroke: #ff8888;\n fill: lightgrey;\n stroke-width: 2;\n cursor: pointer;\n shape-rendering: crispEdges;\n}\n.doneCritText0,\n.doneCritText1,\n.doneCritText2,\n.doneCritText3 {\n fill: black !important;\n}\n.activeCritText0,\n.activeCritText1,\n.activeCritText2,\n.activeCritText3 {\n fill: black !important;\n}\n.titleText {\n text-anchor: middle;\n font-size: 18px;\n fill: black;\n}\n/*\n\n\n*/\ng.classGroup text {\n fill: #13540c;\n stroke: none;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ng.classGroup rect {\n fill: #cde498;\n stroke: #13540c;\n}\ng.classGroup line {\n stroke: #13540c;\n stroke-width: 1;\n}\nsvg .classLabel .box {\n stroke: none;\n stroke-width: 0;\n fill: #cde498;\n opacity: 0.5;\n}\nsvg .classLabel .label {\n fill: #13540c;\n}\n.relation {\n stroke: #13540c;\n stroke-width: 1;\n fill: none;\n}\n.composition {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#compositionStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#compositionEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n.aggregation {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1;\n}\n#aggregationStart {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1;\n}\n#aggregationEnd {\n fill: #cde498;\n stroke: #13540c;\n stroke-width: 1;\n}\n#dependencyStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#dependencyEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#extensionStart {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n#extensionEnd {\n fill: #13540c;\n stroke: #13540c;\n stroke-width: 1;\n}\n.node text {\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 14px;\n}\ndiv.mermaidTooltip {\n position: absolute;\n text-align: center;\n max-width: 200px;\n padding: 2px;\n font-family: 'trebuchet ms', verdana, arial;\n font-size: 12px;\n background: #cdffb2;\n border: 1px solid #6eaa49;\n border-radius: 2px;\n pointer-events: none;\n z-index: 100;\n}\n" }, "$:/plugins/gt6796c/mermaid-tw5/gant": { "type": "text/vnd.tiddlywiki.mermaid", "title": "$:/plugins/gt6796c/mermaid-tw5/gant", "text": "gantt\n dateFormat YYYY-MM-DD\n title Adding GANTT diagram functionality to mermaid\n section A section\n Completed task :done, des1, 2014-01-06,2014-01-08\n Active task :active, des2, 2014-01-09, 3d\n Future task : des3, after des2, 5d\n Future task2 : des4, after des3, 5d\n section Critical tasks\n Completed task in the critical line :crit, done, 2014-01-06,24h\n Implement parser and jison :crit, done, after des1, 2d\n Create tests for parser :crit, active, 3d\n Future task in critical line :crit, 5d\n Create tests for renderer :2d\n Add to mermaid :1d\n\n" }, "$:/plugins/gt6796c/mermaid-tw5/seq": { "type": "text/vnd.tiddlywiki.mermaid", "title": "$:/plugins/gt6796c/mermaid-tw5/seq", "text": "%% Example of sequence diagram\nsequenceDiagram\n Alice->>John: Hello John, how are you?\n John-->>Alice: Great!\n" }, "$:/plugins/gt6796c/mermaid-tw5/license": { "title": "$:/plugins/gt6796c/mermaid-tw5/license", "text": "The MIT License (MIT)\n\nCopyright (c) 2016 Nathaniel Jones\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\nDependencies:\n\nDepends on mermaid.js. License can be found at https://github.com/knsv/mermaid/blob/master/LICENSE\n" }, "$:/plugins/gt6796c/mermaid-tw5/readme": { "title": "$:/plugins/gt6796c/mermaid-tw5/readme", "text": "This is a TiddlyWiki plugin for using mermaid.js.\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\nIt is currently based on [[mermaid.js v.7.0.0|https://knsv.github.io/mermaid]]\n\n!Installation\nYou can either build from [[Source code|https://github.com/gt6796c/mermaid-tw5]] or install from [[here|https://gt6796c.github.io]]\n\n!Dependencies\n;This plugin requires:\n*[[rocklib Plugin|https://gt6796c.github.io]]\n\n!Notes\nWhen you are editing a Twiddler and have preview mode on, you will accrue lots of temporary shapes that are rendered by mermaid.js as you type. The WYSIWYG-as-you-type nature of TW does not play very nicely with mermaid's rendering. A simple page refresh clears them all away, they are completely transient. It is deep in mermaid.js code to try to change this and that outside what I want to do.\n\n!Troubleshooting\nIf you are getting just a blank preview/twiddler. Please try the mermaid commands in a Tiddler that has its type set to ''text/vnd.tiddlywiki.mermaid'' before filing any issues. This is how I understand the parser to work and there is no workaround.\n\n!History\n;0.2.1\n: Updated to use [[mermaid.js v.7.0.0|https://knsv.github.io/mermaid]]\n;0.1.1\n: Updated to use [[rocklib|$:/plugins/gt6796c/rocklib]]\n" }, "$:/plugins/gt6796c/mermaid-tw5/typed-parser.js": { "text": "/*\\\ntitle: $:/plugins/gt6796c/mermaid-tw5/typed-parser.js\ntype: application/javascript\nmodule-type: parser\n\nThis parser wraps unadorned railroad syntax into a railroad widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n\tvar MermaidParser = function(type,text,options) {\n\t\tvar element = {\n\t\t\ttype: \"mermaid\",\n\t\t\ttag: \"$mermaid\",\n\t\t\ttext: text\n\t\t};\n\t\tthis.tree = [element];\n\t};\n\n\texports[\"text/vnd.tiddlywiki.mermaid\"] = MermaidParser;\n\n})();\n\n", "title": "$:/plugins/gt6796c/mermaid-tw5/typed-parser.js", "type": "application/javascript", "module-type": "parser" }, "$:/plugins/gt6796c/mermaid-tw5/usage": { "title": "$:/plugins/gt6796c/mermaid-tw5/usage", "text": "!mermaid\nUse the ``<$mermaid>`` widget and place the mermaid commands within it. Any of the options that can be specified\nin the ``.render()`` options variable can be specified as JSON-encoded values in attributes of the same name on the widgets.\nThe values of the attributes can also be the title of Data Tiddlers and the values will be used from the referenced Tiddler.\nYou can set the type of a Tiddler to text/vnd.tiddlywiki.mermaid and use the native commands directly in the Tiddler body. You can\nadd fields that are the names below prefixed with 'mermaid'. So \"theme\" becomes \"mermaid-theme\"\n\n!Troubleshooting\n;When in doubt, please create a test case by creating a tiddler that has ``type=text/vnd.tiddlywiki.mermaid`` and contains ''only'' mermaid commands, (no TW markup or other contents)\n:TW treats any text inside of a Tiddler designated as a \"normal Twiddler\" (meaning type=text/vnd.tiddlywiki) as Tiddler Markup. Full stop. I've put into place some \"unparsing\" but it is twitchy difficult to maintain and buggy. So if you have cool, advanced uses of mermaid that fail in the ``<$mermaid>`` tag but work on with the type setup as mermaid, then that is probably the best you're going to get\n*As much as I'd like to make this not be this way, it just isn't possible with my skills/understanding.\n*JSON encoding only allows double-quotes ``\"`` as string delimiters\n*JSON encoding requires double-quotes around single string values\n" }, "$:/plugins/gt6796c/mermaid-tw5/wrapper.js": { "text": "/*\\\ntitle: $:/plugins/gt6796c/mermaid-tw5/wrapper.js\ntype: application/javascript\nmodule-type: widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n var uniqueID = 1;\n\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n var Rocklib = require(\"$:/plugins/gt6796c/rocklib/widget-tools.js\").rocklib;\n if ($tw.browser && !window.mermaidAPI) {\n window.rocklib = new Rocklib();\n require(\"$:/plugins/gt6796c/mermaid-tw5/mermaidAPI.js\").mermaidAPI;\n }\n\n\n var MermaidWidget = function(parseTreeNode, options) {\n this.initialise(parseTreeNode, options);\n };\n\n MermaidWidget.prototype = new Widget();\n\n /*\n Render this widget into the DOM\n */\n MermaidWidget.prototype.render = function(parent,nextSibling) {\n this.parentDomNode = parent;\n this.computeAttributes();\n this.execute();\n\n var tag = 'mermaid';\n var scriptBody = rocklib.getScriptBody(this,\"text\");\n var divNode = rocklib.getCanvas(this,tag);\n var _insertSVG = function(svgCode, bindFunctions) {\n divNode.innerHTML = svgCode;\n }\n try {\n var options = {'theme' : 'simple'};\n rocklib.getOptions(this, tag, options);\n mermaidAPI.render(divNode.id, scriptBody, _insertSVG);\n }\n catch(ex)\n {\n divNode.innerText = ex;\n }\n parent.insertBefore(divNode, nextSibling);\n\n this.domNodes.push(divNode);\n };\n\n MermaidWidget.prototype.execute = function() {\n // Nothing to do\n };\n\n /*\n Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n */\n MermaidWidget.prototype.refresh = function(changedTiddlers) {\n return false;\n };\n\n exports.mermaid = MermaidWidget;\n\n})();\n", "title": "$:/plugins/gt6796c/mermaid-tw5/wrapper.js", "type": "application/javascript", "module-type": "widget" } } }
{ "tiddlers": { "$:/plugins/gt6796c/rocklib/widget-tools.js": { "type": "application/javascript", "title": "$:/plugins/gt6796c/rocklib/widget-tools.js", "module-type": "library", "text": "/*\\\n title: $:/plugins/gt6796c/rocklib/widget-tools.js\n type: application/javascript\n*/\n\n(function() {\n\n\"use strict\";\n\n function Rocklib()\n {\n this.uniqueID = 1;\n this.hue = .2;\n };\n\n // tries to un-parse the wikitext. of dubious value\n Rocklib.prototype.getScriptBody = function(src,attr)\n {\n var scriptBody= src.getAttribute(attr, src.parseTreeNode.text || \"\");\n\n if (src.parseTreeNode.text) {\n scriptBody = src.parseTreeNode.text;\n }\n else if (src.parseTreeNode.children)\n {\n var kids = src.parseTreeNode.children;\n for (var k in kids)\n {\n var kk = kids[k];\n switch(kk.type)\n {\n // no wikiparsing found\n case \"text\":\n scriptBody += kk.text; break;\n // internal link, make it a permalink reference\n case \"link\":\n scriptBody += \"#\" + kk.children[0].text; break;\n // -- gets interpreted as an HTML element, we don't want that\n case \"entity\":\n switch(kk.entity)\n {\n case \"–\":\n scriptBody+=\"--\"; break;\n };\n break;\n // just re-write it back out\n case \"element\":\n switch (kk.tag)\n {\n case \"a\":\n scriptBody+=kk.children[0].text;\n }\n };\n }\n }\n\n return scriptBody;\n };\n\n /**\n * Runs through lots of ways to get options. It can pull them from a named data Tiddler, from the fields of the\n * Tiddler, and from the attributes of the widget specified by 'tag'. Any value pulled is treated as JSON first\n * and then as straight text.\n * @param src\n * @param tag\n * @param options\n * @returns {*}\n */\n Rocklib.prototype.getOptions = function(src, tag, options)\n {\n try {\n // try to set options from fields on tiddler first\n // [tag-xxx]\n var tt = src.getVariable('currentTiddler');\n if (tt) {\n var t = src.wiki.getTiddler(tt);\n if (t)\n {\n // this looks for fields that start with our tag\n // and then maps a.x to aX since something is\n // unCamelCasing the vars\n for (var f in t.fields) {\n var fi = f.indexOf(tag);\n if (fi != 0) continue;\n var k = f.substring(tag.length + 1);\n var cap = k.indexOf(\".\");\n while (cap > -1) {\n if (k.length < cap+2) break;\n k = k.substring(0, cap) + k.charAt(cap + 1).toUpperCase() + k.substring(cap + 2);\n cap = k.indexOf(\".\");\n }\n var v = t.fields[f];\n // try as JSON\n try {\n options[k] = JSON.parse(v);\n }\n // last attempt is just a string\n catch (ex) {\n options[k] = v;\n }\n }\n }\n }\n // treat any attributes as JSON representations of options\n // for the object\n for (var att in src.attributes) {\n\n var attval = src.getAttribute(att);\n // allow for data from named tiddlers\n if ($tw.wiki.tiddlerExists(attval))\n {\n var data = $tw.wiki.getTiddlerData(attval);\n options[att] = data;\n }\n else {\n // try as JSON\n try { options[att] = JSON.parse(attval); }\n // last attempt is just a string\n catch (ex) { options[att] = attval; }\n }\n }\n }\n catch (ex) { console.error(ex); }\n\n return options;\n\n };\n\n /**\n * Retrieves a canvas to work with based on the calling functions need of a \"div\" or \"canvas\" element\n * @param src\n * @param tag\n * @param type\n * @returns {Element}\n */\n Rocklib.prototype.getCanvas = function(src, tag, type) {\n type = typeof(type) === \"undefined\" ? \"div\" : type;\n\n var height = src.getAttribute(\"height\");\n var width = src.getAttribute(\"width\");\n\n var canvas = src.document.createElement(type);\n var style = \"\";\n if (type === \"canvas\") {\n if (width) canvas.width = width;\n if (height) canvas.height = height;\n }\n else {\n if (height) style += \" height:\" + height;\n if (width) style += \" width:\" + width;\n if (style) canvas.setAttribute(\"style\", style);\n }\n canvas.setAttribute(\"id\", tag+\"_\" + this.uniqueID);\n\n this.uniqueID++;\n return canvas;\n };\n\n /**\n * based on http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n * @param s\n * @param v\n * @returns {string}\n */\n Rocklib.prototype.nextColor = function(s, v)\n {\n var golden_ratio_conjugate = 0.618033988749895\n this.hue += golden_ratio_conjugate;\n this.hue %= 1;\n var rgb = this.hsv_to_rgb(this.hue, s, v);\n return \"#\" + rgb.r.toString(16) + rgb.g.toString(16) + rgb.b.toString(16);\n };\n\n\n /**\n * Taken from http://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately\n */\n /* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n */\n\n Rocklib.prototype.rgb_to_hsv = function (r, g, b) {\n if (arguments.length === 1) {\n g = r.g, b = r.b, r = r.r;\n }\n var max = Math.max(r, g, b), min = Math.min(r, g, b),\n d = max - min,\n h,\n s = (max === 0 ? 0 : d / max),\n v = max / 255;\n\n switch (max) {\n case min: h = 0; break;\n case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\n }\n\n return {\n h: h,\n s: s,\n v: v\n };\n };\n\n /**\n * Taken from http://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately\n */\n /* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n */\n Rocklib.prototype.hsv_to_rgb = function(h, s, v) {\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s, v = h.v, h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0: r = v, g = t, b = p; break;\n case 1: r = q, g = v, b = p; break;\n case 2: r = p, g = v, b = t; break;\n case 3: r = p, g = q, b = v; break;\n case 4: r = t, g = p, b = v; break;\n case 5: r = v, g = p, b = q; break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255)\n };\n };\n\n exports.rocklib = Rocklib;\n\n})();\n\n" }, "$:/plugins/gt6796c/rocklib/license": { "title": "$:/plugins/gt6796c/rocklib/license", "text": "The MIT License (MIT)\n\nCopyright (c) 2016 Nathaniel Jones\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n" }, "$:/plugins/gt6796c/rocklib/readme": { "title": "$:/plugins/gt6796c/rocklib/readme", "text": "\nThis plugin packages [[rocklib|https://github.com/gt6796c/rocklib]] for use by other plugins. It does not provide any end-user visible features.\n\nNo user-visible elements.\n\nprovides the following functions:\n\n;getScriptBody(src, att)\n: attempts to pull the text out of ``src`` element's body or the specified attribute ``att``\n\n;getOptions(src,tag,options)\n: in the case of a widget, adds all of ``src`` element's attributes into the ``options`` object\n: in the case of a Tiddler, adds all of the fields that begin with ``tag`` into the ``options`` object (minus the ``tag-`` prefix)\n: All options are first treated as Data Tiddler Names, then JSON, and finally as plain text\n\n;getCanvas(src,tag,type)\n: creates a uniquely-named \"canvas\" which may be of type ``type``. Supported types are ``div`` and ``canvas``\n: The height and width attributes from the ``src`` element will be applied to the canvas\n\n;nextColor(s,v)\n: returns a random-ish color string from the same palette as specified byt the ``s`` saturation and ``h`` hue.\n: The color is in the form of ``#rrggbb``\n\n;rgb_to_hsv(r,g,b)\n: returns array of [hue, saturation, value]\n: r can be array of [r,g,b] or individual parameters can be used\n\n;hsv_to_rgb(h,s,v)\n: returns array of [red, green, blue]\n: h can be array of [h,s,v] or individual parameters can be used\n" } } }
{ "tiddlers": { "$:/plugins/HCHaase/toc_counting/settings": { "created": "20190611081555857", "creator": "HC Haase", "text": "! [[Counting in Table of Contents|$:/plugins/HCHaase/toc_counting/settings]] \n\n<$checkbox tiddler=\"$:/plugins/HCHaase/toc_counting\" tag=\"$:/tags/Macro\" default=\"$:/tags/Macro\"> <$link to=\"$:/plugins/HCHaase/toc_counting/settings/readme\">Enable counting of sub-tiddlers in TOC</$link> </$checkbox>\n\n", "title": "$:/plugins/HCHaase/toc_counting/settings", "tags": "$:/plugins/HCHaase/toc_counting $:/tags/ControlPanel/Settings", "modified": "20190611082116987", "modifier": "HC Haase" }, "$:/plugins/HCHaase/toc_counting": { "created": "20180911090306734", "creator": "HC Haase", "text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] -[[$tag$]] $exclude$\"\"\">\n <$vars item=<<currentTiddler>> path=\"\"\"$path$/$tag$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\">\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\" \")\n<<toc-body tag:\"\"\"$tag$\"\"\" sort:\"\"\"$sort$\"\"\" itemClassFilter:\"\"\"$itemClassFilter$\"\"\">>\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$link>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<!-- helper function -->\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-expandable-empty-message()\n<<toc-linked-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] -[[$tag$]] $exclude$\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$link>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter:\" \",exclude,path)\n<$set name=\"toc-state\" value=<<qualify \"\"\"$:/state/toc$path$-$(currentTiddler)$\"\"\">>>\n <$set name=\"toc-item-class\" filter=\"\"\"$itemClassFilter$\"\"\" emptyValue=\"toc-item\" value=\"toc-item-selected\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$button>\n </$reveal>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$button set=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" state=<<toc-state>> text=\"open\">\n <$macrocall $name=\"\"\"toc-selective-expandable\"\"\" tag=<<currentTiddler>> sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=\"\"\"$exclude$\"\"\" path=\"\"\"$path$\"\"\"/>\n </$reveal>\n </li>\n </$set>\n</$set>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<<toc-linked-selective-expandable-body tag:\"\"\"$(tag)$\"\"\" sort:\"\"\"$(sort)$\"\"\" itemClassFilter:\"\"\"$(itemClassFilter)$\"\"\" exclude:\"\"\"$(excluded)$\"\"\" path:\"\"\"$(path)$\"\"\">>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" excluded=\"\"\"$exclude$ -[[$tag$]]\"\"\" path=\"\"\"$path$/$tag$\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag[$tag$]!has[draft.of]$sort$] -[[$tag$]] $exclude$\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=toc-unlinked-selective-expandable-body tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=\"\"\"$itemClassFilter$\"\"\" exclude=<<excluded>> path=<<path>> >\n </$list>\n </$list>\n </ol>\n</$vars>\n\\end\n\n\\define toc-tabbed-selected-item-filter(selectedTiddler)\n[all[current]field:title{$selectedTiddler$}]\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{$selectedTiddler$}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=\"$selectedTiddler$\">\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" itemClassFilter=<<toc-tabbed-selected-item-filter selectedTiddler:\"\"\"$selectedTiddler$\"\"\">>/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=\"$template$\">\n <h1><<toc-caption>><small class=\"tc-menu-list-count\"><$list filter='[tag<currentTiddler>limit[1]]' variable=null>(<$count filter=\"[all[current]tagging[]]\"/>)</$list></small></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal state=\"\"\"$selectedTiddler$\"\"\" type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=\"\"\"$selectedTiddler$\"\"\">\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=\"\"\"$tag$\"\"\" sort=\"\"\"$sort$\"\"\" selectedTiddler=\"\"\"$selectedTiddler$\"\"\" unselectedText=\"\"\"$unselectedText$\"\"\" missingText=\"\"\"$missingText$\"\"\" template=\"\"\"$template$\"\"\"/>\n</$linkcatcher>\n\\end\n\n", "title": "$:/plugins/HCHaase/toc_counting", "tags": "plugins count-stuff $:/tags/Macro", "modifier": "HC Haase", "modified": "20190611081933411" }, "$:/plugins/HCHaase/toc_counting/readme": { "created": "20190611082221870", "creator": "HC Haase", "title": "$:/plugins/HCHaase/toc_counting/readme", "modified": "20190611093630095", "modifier": "HC Haase", "text": "The //TOC counting// plugin adds a count of child tiddlers to the right of each entry in the TOC(s). No count will be shown if there isn't any child tiddlers (e.g. no 0).\n\nIt can be toggled on or of in the settings (or below).\n\n{{$:/plugins/HCHaase/toc_counting/settings}}\n\n!!! Roadmap\n When I have time \n\n#I would like to expand this to lists as well.\n# I would also like to add an extra count of sub-sub-tiddlers" } } }
{ "tiddlers": { "$:/plugins/inmysocks/Calendar/Calendar Default Macros": { "created": "20150212024632244", "modified": "20150212042506838", "tags": "$:/tags/Macro", "title": "$:/plugins/inmysocks/Calendar/Calendar Default Macros", "text": "\\define CalendarListDailyThingsFullDateString(day month year)\n<$button class='tc-btn-invisible' style='width:100%;height:100%'>\n<$action-navigate $to=\"$(day)$-$(month)$-$(year)$\"/>\n<div style='height:100%;width:100%;position:relative;text-align:left;vertical-align:top;z-index=0'>\n''$day$''<br>\n<$list filter='[has[$day$-$month$-$year$]]-[[$:/temp/MakeCalendarEntry]]'>\n<$view field='title'/><br>\n</$list>\n</div>\n</$button>\n\\end\n\n\\define CalendarListDailyThings(day month year)\n<$button class='tc-btn-invisible' style='width:100%;height:100%'>\n<$action-navigate $to=\"\"\"$day$-$month$-$year$\"\"\"/>\n<div style='height:100%;width:100%;position:relative;text-align:left;vertical-align:top;z-index=0'>\n''$day$''<br>\n<$list filter='[day[$day$]month[$month$]year[$year$]]-[[$:/temp/MakeCalendarEntry]]'>\n<$view field='title'/><br>\n</$list>\n</div>\n</$button>\n\\end" }, "$:/plugins/inmysocks/Calendar/Calendar Table Style": { "created": "20150212024632244", "modified": "20150212042506838", "tags": "$:/tags/Stylesheet", "title": "$:/plugins/inmysocks/Calendar/Calendar Table Style", "type": "text/css", "text": ".calendar-table {\n\tborder: 0px;\n overflow: hidden;\n vertical-align: top;\n width: 100%;\n}\n\n.calendar-table table {\n\twidth:100%;\n}\n\n.calendar-table td, th {\n width: 14%;\n vertical-align: top;\n}\n\n.calendar-table td {\n height: 100px;\n}" }, "$:/plugins/inmysocks/Calendar/readme": { "month": "1", "title": "$:/plugins/inmysocks/Calendar/readme", "year": "1990", "text": "To see this plugin in use you can see it on my page [[here|http://ooktech.com/jed/externalbrain/#Calendar%20Archives]]\n\nThis plugin has:\n\n*The calendar-month widget\n*Default css class for the calendar month widget\n*Default macro for calendar days\n*This readme\n\n!The calendar-month widget\n\nUsage: `<$calendar-month year=YYYY month=MM day_macro=someMacro class=someCSSClass/>`\n\nContent of the `<$calendar-month>` widget is ignored.\n\n|!Attribute |!Description |\n|year |The year that the month displayed is from. It must be in 4 digit YYYY format and has no default value. |\n|month |The month to display. See list below for valid month values. month has no default value. |\n|day_macro |(optional) The macro that defines the content of each calendar day. It is passed the parameter `day` with the value of the current day of the month. Defaluts to `CalendarListDailyThings` defined in [[Calendar Default Macros|$:/plugins/inmysocks/Calendar/Calendar Default Macros]] |\n|class |(optional) A css class to use. Defaults to the class `calendar-table` defined in [[Calendar Table Style|$:/plugins/inmysocks/Calendar/Calendar Table Style]] |\n\n!The default ~CalendarListDailyThings macro\n\nThis macro lists any tiddlers that have fields called `day`, `month` and `year` in the matching calendar day. If you click on a cell than a tiddler with a title in the form of (day)-(month)-(year) is opened.\n\n!Month values\n\nThis is a complete list of the month values the widget understands, if you want some other format added leave a message at [[my site|http://www.inmysocks.tiddlyspot.com]].:\n\n1\n01\nJan\nJan.\nJanuary\n\n2\n02\nFeb\nFeb.\nFebruary\n\n3\n03\nMar\nMar.\nMarch\n\n4\n04\nApr\nApr.\nApril\n\n5\n05\nMay\n\n6\n06\nJun\nJun.\nJune\n\n7\n07\nJul\nJul.\nJuly\n\n8\n08\nAug\nAug.\nAugust\n\n9\n09\nSep\nSep.\nSept\nSept.\nSeptember\n\n10\nOct\nOct.\nOctober\n\n11\nNov\nNov.\nNovember\n\n12\nDec\nDec.\nDecember\n\n!Example:\n\n```\nSelect year: <$select field='year'><$list filter='1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000'><option><<currentTiddler>></option></$list></$select>\n\nSelect month: <$select field='month'><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select>\n\n<$calendar-month year={{!!year}} month={{!!month}}/>\n```\n\nSelect year: <$select field='year'><$list filter='1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000'><option><<currentTiddler>></option></$list></$select>\n\nSelect month: <$select field='month'><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select>\n\n<$calendar-month year={{!!year}} month={{!!month}}/>\n" }, "$:/plugins/inmysocks/Calendar/calendar-widget.js": { "text": "/*\\\ntitle: $:/plugins/inmysocks/Calendar/calendar-widget.js\ntype: application/javascript\nmodule-type: widget\n\nA widget that creates a calendar given a year and month.\n\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar widgets;\nvar container;\n\nvar Calendar = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCalendar.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCalendar.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar domNode = this.document.createElement(\"div\");\n\tparent.insertBefore(domNode,nextSibling);\n\tdomNode.className = this.CalendarCSS;\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCalendar.prototype.execute = function() {\n\t//Get widget attributes.\n\tvar thisMonth = this.getAttribute(\"month\",-1);\n\tvar thisYear = this.getAttribute(\"year\",-1);\n\tvar thisDayMacro = this.getAttribute(\"day_macro\",\"CalendarListDailyThings\");\n\tvar thisCalendarCSS = this.getAttribute(\"class\", \"calendar-table\");\n\n\tvar badYear;\n\tvar isLeap = 0;\n\tvar numDays;\n\tvar calendarString;\n\tvar thisMonthNum;\n\n\t//Check to make sure a 4 digit year was passed\n\tif(thisYear/1000 < 1 || thisYear === -1 || isNaN(parseFloat(thisYear))) {\n\t\tbadYear = 1;\n\t} else {\n\t\tbadYear = 0;\n\t}\n\n\t//If it is February, check if the current year is a leap year. Then get the number of days in the current month.\n\tif(thisMonth === \"2\" || thisMonth === \"02\" || thisMonth === \"Feb\" || thisMonth === \"Feb.\" || thisMonth === \"February\") {\n\t\tisLeap = ((((thisYear % 4) === 0) && (thisYear % 100 !== 0)) || (((thisYear % 100) === 0) && (thisYear % 400) === 0));\n\t}\n\tswitch (thisMonth){\n\t\tcase \"1\": numDays = 31; thisMonthNum = 1; break;\n\t\tcase \"01\": numDays = 31; thisMonthNum = 1; break;\n\t\tcase \"Jan\": numDays = 31; thisMonthNum = 1; break;\n\t\tcase \"Jan.\": numDays = 31; thisMonthNum = 1; break;\n\t\tcase \"January\": numDays = 31; thisMonthNum = 1; break;\n\t\tcase \"2\": numDays = isLeap ? 29:28; thisMonthNum = 2; break;\n\t\tcase \"02\": numDays = isLeap ? 29:28; thisMonthNum = 2; break;\n\t\tcase \"Feb\": numDays = isLeap ? 29:28; thisMonthNum = 2; break;\n\t\tcase \"Feb.\": numDays = isLeap ? 29:28; thisMonthNum = 2; break;\n\t\tcase \"February\": numDays = isLeap ? 29:28; thisMonthNum = 2; break;\n\t\tcase \"3\": numDays = 31; thisMonthNum = 3; break;\n\t\tcase \"03\": numDays = 31; thisMonthNum = 3; break;\n\t\tcase \"Mar\": numDays = 31; thisMonthNum = 3; break;\n\t\tcase \"Mar.\": numDays = 31; thisMonthNum = 3; break;\n\t\tcase \"March\": numDays = 31; thisMonthNum = 3; break;\n\t\tcase \"4\": numDays = 30; thisMonthNum = 4; break;\n\t\tcase \"04\": numDays = 30; thisMonthNum = 4; break;\n\t\tcase \"Apr\": numDays = 30; thisMonthNum = 4; break;\n\t\tcase \"Apr.\": numDays = 30; thisMonthNum = 4; break;\n\t\tcase \"April\": numDays = 30; thisMonthNum = 4; break;\n\t\tcase \"5\": numDays = 31; thisMonthNum = 5; break;\n\t\tcase \"05\": numDays = 31; thisMonthNum = 5; break;\n\t\tcase \"May\": numDays = 31; thisMonthNum = 5; break;\n\t\tcase \"6\": numDays = 30; thisMonthNum = 6; break;\n\t\tcase \"06\": numDays = 30; thisMonthNum = 6; break;\n\t\tcase \"Jun\": numDays = 30; thisMonthNum = 6; break;\n\t\tcase \"Jun.\": numDays = 30; thisMonthNum = 6; break;\n\t\tcase \"June\": numDays = 30; thisMonthNum = 6; break;\n\t\tcase \"7\": numDays = 31; thisMonthNum = 7; break;\n\t\tcase \"07\": numDays = 31; thisMonthNum = 7; break;\n\t\tcase \"Jul\": numDays = 31; thisMonthNum = 7; break;\n\t\tcase \"Jul.\": numDays = 31; thisMonthNum = 7; break;\n\t\tcase \"July\": numDays = 31; thisMonthNum = 7; break;\n\t\tcase \"8\": numDays = 31; thisMonthNum = 8; break;\n\t\tcase \"08\": numDays = 31; thisMonthNum = 8; break;\n\t\tcase \"Aug\": numDays = 31; thisMonthNum = 8; break;\n\t\tcase \"Aug.\": numDays = 31; thisMonthNum = 8; break;\n\t\tcase \"August\": numDays = 31; thisMonthNum = 8; break;\n\t\tcase \"9\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"09\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"Sep\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"Sep.\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"Sept\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"Sept.\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"September\": numDays = 30; thisMonthNum = 9; break;\n\t\tcase \"10\": numDays = 31; thisMonthNum = 10; break;\n\t\tcase \"Oct\": numDays = 31; thisMonthNum = 10; break;\n\t\tcase \"Oct.\": numDays = 31; thisMonthNum = 10; break;\n\t\tcase \"October\": numDays = 31; thisMonthNum = 10; break;\n\t\tcase \"11\": numDays = 30; thisMonthNum = 11; break;\n\t\tcase \"Nov\": numDays = 30; thisMonthNum = 11; break;\n\t\tcase \"Nov.\": numDays = 30; thisMonthNum = 11; break;\n\t\tcase \"November\": numDays = 30; thisMonthNum = 11; break;\n\t\tcase \"12\": numDays = 31; thisMonthNum = 12; break;\n\t\tcase \"Dec\": numDays = 31; thisMonthNum = 12; break;\n\t\tcase \"Dec.\": numDays = 31; thisMonthNum = 12; break;\n\t\tcase \"December\": numDays = 31; thisMonthNum = 12; break;\n\t\tdefault: numDays = -1;\t\t\n\t}\n\n\tif(badYear === 1 || numDays === -1) {\n\t\t//If the input doesn't make sense give an error.\n\t\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",\"Invalid month or year. Years need to be 4 digits, months must be given as a numeric value from 1...12.\",{parseAsInline: false});\n \tvar parseTreeNodes = parser ? parser.tree : [];\n\t\tthis.CalendarCSS = thisCalendarCSS;\n\t\tthis.makeChildWidgets(parseTreeNodes);\n\t\tthis.innerHTML = \"Invalid month or year. Years need to be 4 digits, see readme for accepted month names.\";\n\t} else {\n\t\t//Get the first of the month to base everything else off of.\n\t\tvar firstDate = new Date(thisYear,thisMonthNum-1,1);\n\t\tvar startingDay = firstDate.getDay();\n\t\t\n\t\t//Make the first week, adding empty days to the front as needed.\n\t\tvar currentDate = 1;\n\t\tcalendarString = \"<table><tr><th>Sunday</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th></tr>\";\n\t\twhile(currentDate <= numDays) {\n\t\t\tcalendarString = calendarString + \"<tr>\";\n\t\t\tfor(var i = 0; i < 7; i++) {\n\t\t\t\tif(currentDate === 1 && i < startingDay) {\n\t\t\t\t\tcalendarString = calendarString + \"<td></td>\";\n\t\t\t\t} else if(currentDate <= numDays) {\n\t\t\t\t\tcalendarString = calendarString + \"<td><$macrocall $name='\" + thisDayMacro + \"' day=\" + currentDate + \" month=\" + thisMonthNum + \" year=\" + thisYear + \"/></td>\";\n\t\t\t\t\tcurrentDate++;\n\t\t\t\t} if(currentDate > numDays && i < 6) {\n\t\t\t\t\tcalendarString = calendarString + \"<td></td>\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tcalendarString = calendarString + \"</tr>\";\n\t\t}\n\t\tcalendarString = calendarString + \"</table>\";\n\t}\n\n\tvar stringPassed = calendarString;\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",calendarString,{parseAsInline: false});\n var parseTreeNodes = parser ? parser.tree : [];\n\tthis.CalendarCSS = thisCalendarCSS;\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCalendar.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"month\"] || changedAttributes[\"year\"] || changedAttributes[\"day_macro\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"calendar-month\"] = Calendar;\n\n})();", "title": "$:/plugins/inmysocks/Calendar/calendar-widget.js", "type": "application/javascript", "module-type": "widget" } } }
\define CalendarListDailyThingsFullDateString(day month year) <$button class='tc-btn-invisible' style='width:100%;height:100%'> <$action-navigate $to="$(day)$-$(month)$-$(year)$"/> <div style='height:100%;width:100%;position:relative;text-align:left;vertical-align:top;z-index=0'> ''$day$''<br> <$list filter='[has[$day$-$month$-$year$]]-[[$:/temp/MakeCalendarEntry]]'> <$view field='title'/><br> </$list> </div> </$button> \end \define CalendarListDailyThings(day month year) <$button class='tc-btn-invisible' style='width:100%;height:100%'> <$action-navigate $to="""$day$-$month$-$year$"""/> <div style='height:100%;width:100%;position:relative;text-align:left;vertical-align:top;z-index=0'> ''$day$''<br> <$list filter='[day[$day$]month[$month$]year[$year$]]-[[$:/temp/MakeCalendarEntry]]'> <$view field='title'/><br> </$list> </div> </$button> \end
.calendar-table { border: 0px; overflow: hidden; vertical-align: top; width: 100%; } .calendar-table table { width:100%; } .calendar-table td, th { width: 14%; vertical-align: top; } .calendar-table td { height: 100px; }
/*\ title: $:/plugins/inmysocks/Calendar/calendar-widget.js type: application/javascript module-type: widget A widget that creates a calendar given a year and month. \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var widgets; var container; var Calendar = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; /* Inherit from the base widget class */ Calendar.prototype = new Widget(); /* Render this widget into the DOM */ Calendar.prototype.render = function(parent,nextSibling) { this.parentDomNode = parent; this.computeAttributes(); this.execute(); var domNode = this.document.createElement("div"); parent.insertBefore(domNode,nextSibling); domNode.className = this.CalendarCSS; this.renderChildren(domNode,null); this.domNodes.push(domNode); }; /* Compute the internal state of the widget */ Calendar.prototype.execute = function() { //Get widget attributes. var thisMonth = this.getAttribute("month",-1); var thisYear = this.getAttribute("year",-1); var thisDayMacro = this.getAttribute("day_macro","CalendarListDailyThings"); var thisCalendarCSS = this.getAttribute("class", "calendar-table"); var badYear; var isLeap = 0; var numDays; var calendarString; var thisMonthNum; //Check to make sure a 4 digit year was passed if(thisYear/1000 < 1 || thisYear === -1 || isNaN(parseFloat(thisYear))) { badYear = 1; } else { badYear = 0; } //If it is February, check if the current year is a leap year. Then get the number of days in the current month. if(thisMonth === "2" || thisMonth === "02" || thisMonth === "Feb" || thisMonth === "Feb." || thisMonth === "February") { isLeap = ((((thisYear % 4) === 0) && (thisYear % 100 !== 0)) || (((thisYear % 100) === 0) && (thisYear % 400) === 0)); } switch (thisMonth){ case "1": numDays = 31; thisMonthNum = 1; break; case "01": numDays = 31; thisMonthNum = 1; break; case "Jan": numDays = 31; thisMonthNum = 1; break; case "Jan.": numDays = 31; thisMonthNum = 1; break; case "January": numDays = 31; thisMonthNum = 1; break; case "2": numDays = isLeap ? 29:28; thisMonthNum = 2; break; case "02": numDays = isLeap ? 29:28; thisMonthNum = 2; break; case "Feb": numDays = isLeap ? 29:28; thisMonthNum = 2; break; case "Feb.": numDays = isLeap ? 29:28; thisMonthNum = 2; break; case "February": numDays = isLeap ? 29:28; thisMonthNum = 2; break; case "3": numDays = 31; thisMonthNum = 3; break; case "03": numDays = 31; thisMonthNum = 3; break; case "Mar": numDays = 31; thisMonthNum = 3; break; case "Mar.": numDays = 31; thisMonthNum = 3; break; case "March": numDays = 31; thisMonthNum = 3; break; case "4": numDays = 30; thisMonthNum = 4; break; case "04": numDays = 30; thisMonthNum = 4; break; case "Apr": numDays = 30; thisMonthNum = 4; break; case "Apr.": numDays = 30; thisMonthNum = 4; break; case "April": numDays = 30; thisMonthNum = 4; break; case "5": numDays = 31; thisMonthNum = 5; break; case "05": numDays = 31; thisMonthNum = 5; break; case "May": numDays = 31; thisMonthNum = 5; break; case "6": numDays = 30; thisMonthNum = 6; break; case "06": numDays = 30; thisMonthNum = 6; break; case "Jun": numDays = 30; thisMonthNum = 6; break; case "Jun.": numDays = 30; thisMonthNum = 6; break; case "June": numDays = 30; thisMonthNum = 6; break; case "7": numDays = 31; thisMonthNum = 7; break; case "07": numDays = 31; thisMonthNum = 7; break; case "Jul": numDays = 31; thisMonthNum = 7; break; case "Jul.": numDays = 31; thisMonthNum = 7; break; case "July": numDays = 31; thisMonthNum = 7; break; case "8": numDays = 31; thisMonthNum = 8; break; case "08": numDays = 31; thisMonthNum = 8; break; case "Aug": numDays = 31; thisMonthNum = 8; break; case "Aug.": numDays = 31; thisMonthNum = 8; break; case "August": numDays = 31; thisMonthNum = 8; break; case "9": numDays = 30; thisMonthNum = 9; break; case "09": numDays = 30; thisMonthNum = 9; break; case "Sep": numDays = 30; thisMonthNum = 9; break; case "Sep.": numDays = 30; thisMonthNum = 9; break; case "Sept": numDays = 30; thisMonthNum = 9; break; case "Sept.": numDays = 30; thisMonthNum = 9; break; case "September": numDays = 30; thisMonthNum = 9; break; case "10": numDays = 31; thisMonthNum = 10; break; case "Oct": numDays = 31; thisMonthNum = 10; break; case "Oct.": numDays = 31; thisMonthNum = 10; break; case "October": numDays = 31; thisMonthNum = 10; break; case "11": numDays = 30; thisMonthNum = 11; break; case "Nov": numDays = 30; thisMonthNum = 11; break; case "Nov.": numDays = 30; thisMonthNum = 11; break; case "November": numDays = 30; thisMonthNum = 11; break; case "12": numDays = 31; thisMonthNum = 12; break; case "Dec": numDays = 31; thisMonthNum = 12; break; case "Dec.": numDays = 31; thisMonthNum = 12; break; case "December": numDays = 31; thisMonthNum = 12; break; default: numDays = -1; } if(badYear === 1 || numDays === -1) { //If the input doesn't make sense give an error. var parser = this.wiki.parseText("text/vnd.tiddlywiki","Invalid month or year. Years need to be 4 digits, months must be given as a numeric value from 1...12.",{parseAsInline: false}); var parseTreeNodes = parser ? parser.tree : []; this.CalendarCSS = thisCalendarCSS; this.makeChildWidgets(parseTreeNodes); this.innerHTML = "Invalid month or year. Years need to be 4 digits, see readme for accepted month names."; } else { //Get the first of the month to base everything else off of. var firstDate = new Date(thisYear,thisMonthNum-1,1); var startingDay = firstDate.getDay(); //Make the first week, adding empty days to the front as needed. var currentDate = 1; calendarString = "<table><tr><th>Sunday</th><th>Monday</th><th>Tuesday</th><th>Wednesday</th><th>Thursday</th><th>Friday</th><th>Saturday</th></tr>"; while(currentDate <= numDays) { calendarString = calendarString + "<tr>"; for(var i = 0; i < 7; i++) { if(currentDate === 1 && i < startingDay) { calendarString = calendarString + "<td></td>"; } else if(currentDate <= numDays) { calendarString = calendarString + "<td><$macrocall $name='" + thisDayMacro + "' day=" + currentDate + " month=" + thisMonthNum + " year=" + thisYear + "/></td>"; currentDate++; } if(currentDate > numDays && i < 6) { calendarString = calendarString + "<td></td>"; } } calendarString = calendarString + "</tr>"; } calendarString = calendarString + "</table>"; } var stringPassed = calendarString; var parser = this.wiki.parseText("text/vnd.tiddlywiki",calendarString,{parseAsInline: false}); var parseTreeNodes = parser ? parser.tree : []; this.CalendarCSS = thisCalendarCSS; this.makeChildWidgets(parseTreeNodes); }; /* Refresh the widget by ensuring our attributes are up to date */ Calendar.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes["month"] || changedAttributes["year"] || changedAttributes["day_macro"] || changedAttributes["class"]) { this.refreshSelf(); return true; } return this.refreshChildren(changedTiddlers); }; exports["calendar-month"] = Calendar; })();
To see this plugin in use you can see it on my page [[here|http://ooktech.com/jed/externalbrain/#Calendar%20Archives]] This plugin has: *The calendar-month widget *Default css class for the calendar month widget *Default macro for calendar days *This readme !The calendar-month widget Usage: `<$calendar-month year=YYYY month=MM day_macro=someMacro class=someCSSClass/>` Content of the `<$calendar-month>` widget is ignored. |!Attribute |!Description | |year |The year that the month displayed is from. It must be in 4 digit YYYY format and has no default value. | |month |The month to display. See list below for valid month values. month has no default value. | |day_macro |(optional) The macro that defines the content of each calendar day. It is passed the parameter `day` with the value of the current day of the month. Defaluts to `CalendarListDailyThings` defined in [[Calendar Default Macros|$:/plugins/inmysocks/Calendar/Calendar Default Macros]] | |class |(optional) A css class to use. Defaults to the class `calendar-table` defined in [[Calendar Table Style|$:/plugins/inmysocks/Calendar/Calendar Table Style]] | !The default ~CalendarListDailyThings macro This macro lists any tiddlers that have fields called `day`, `month` and `year` in the matching calendar day. If you click on a cell than a tiddler with a title in the form of (day)-(month)-(year) is opened. !Month values This is a complete list of the month values the widget understands, if you want some other format added leave a message at [[my site|http://www.inmysocks.tiddlyspot.com]].: 1 01 Jan Jan. January 2 02 Feb Feb. February 3 03 Mar Mar. March 4 04 Apr Apr. April 5 05 May 6 06 Jun Jun. June 7 07 Jul Jul. July 8 08 Aug Aug. August 9 09 Sep Sep. Sept Sept. September 10 Oct Oct. October 11 Nov Nov. November 12 Dec Dec. December !Example: ``` Select year: <$select field='year'><$list filter='1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000'><option><<currentTiddler>></option></$list></$select> Select month: <$select field='month'><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select> <$calendar-month year={{!!year}} month={{!!month}}/> ``` Select year: <$select field='year'><$list filter='1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000'><option><<currentTiddler>></option></$list></$select> Select month: <$select field='month'><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select> <$calendar-month year={{!!year}} month={{!!month}}/>
\define inmysocksCategoryListsMakeSubCategorySelect() Subcategory: <$select tiddler='$:/state/$(ListType)$List/SelectedSubCategory'> <option value=''>Show All</option> <$list filter='[[$:/data/$(ListType)$ListCategories/$(CurrentCategory)$/SubCategories]indexes[]]'> <$set name=CurrentSubCategory value=<<currentTiddler>>> <option><$view field='title'/></option> </$set> </$list> </$select> \end \define inmysocksCategoryListsMakeSubSubCategorySelect() <$list filter='[[$:/data/$(ListType)$ListCategories/$(CurrentCategory)$/SubCategories]indexes[]]'> <$list filter='[[$:/state/$(ListType)$List/SelectedSubCategory]text<currentTiddler>limit[1]]'> Subsubcategory: <$select tiddler='$:/state/$(ListType)$List/SelectedSubSubCategory'> <option value=''>Show All</option> <$list filter='[[$:/data/$(ListType)$ListCategories/$(CurrentCategory)$/$(CurrentSubCategory)$/subsubcategories]indexes[]]'> <$set name=CurrentSubSubCategory value=<<currentTiddler>>> <option><$view field='title'/></option> </$set> </$list> </$select> </$list> </$list> \end \define inmysocksCategoryListsSelectCategorySearch() Tag: <$select tiddler='$:/state/$(ListType)$List/search/SelectedTag'> <option value=''>Show All</option> <$list filter="""[tag[$(Tag)$]!has[draft.of]tags[]sort[title]]-[[$(Tag)$]]-[[$(FinishedTag)$]]"""> <option><$view field='title'/></option> </$list> </$select> \end \define inmysocksCategoryListsSearchTag() tag{$:/state/$(ListType)$List/search/SelectedTag} \end \define inmysocksCategoryListsExpandAllButton() <$button>Expand All <$list filter='[prefix[$:/state/$(ListType)$List/ShowCategory/]!text[show]]'> <$action-setfield $tiddler=<<currentTiddler>> text=show/> </$list> </$button> \end \define inmysocksCategoryListsCollapseAllButton() <$button>Collapse All <$list filter='[prefix[$:/state/$(ListType)$List/ShowCategory/]text[show]]'> <$action-setfield $tiddler=<<currentTiddler>> text=hide/> </$list> </$button> \end \define inmysocksCategoryListsMainBody() <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!true' text=$(ShowSearch)$> Search: <$edit-text tiddler='$:/temp/$(ListType)$List/Search' field='search_text' placeholder='Title Search' class='tc-edit-texteditor'/> Category: <$select tiddler='$:/state/$(ListType)$List/SelectedCategory'> <option value=''>Show All</option> <$list filter='[[$:/data/$(ListType)$ListCategories]indexes[]]'> <$set name=CurrentCategory value=<<currentTiddler>>> <option><$view field='title'/></option> </$set> </$list> </$select> <br> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedCategory' text=''> <<inmysocksCategoryListsMakeSubCategorySelect>> </$reveal> <br> <$set name=CurrentSubCategory value={{$:/state/$(ListType)$List/SelectedSubCategory}}> <<inmysocksCategoryListsMakeSubSubCategorySelect>> </$set> </$set> <br> <<inmysocksCategoryListsSelectCategorySearch>> </$reveal> <<inmysocksCategoryListsExpandAllButton>> <<inmysocksCategoryListsCollapseAllButton>> <$reveal type='match' state='$:/state/$(ListType)$List/search/SelectedTag' text=''> <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!true' text=$(ShowFinished)$> <<tabs "[[$:/plugins/inmysocks/CategoryLists/Unfinished Items]][[$:/plugins/inmysocks/CategoryLists/Finished Items]]">> </$reveal> <$reveal type='nomatch' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!true' text=$(ShowFinished)$> <$transclude tiddler='$:/plugins/inmysocks/CategoryLists/Unfinished Items' mode=block/> </$reveal> </$reveal> <$reveal type='nomatch' state='$:/state/$(ListType)$List/search/SelectedTag' text=''> <$set name=SearchTag value=<<inmysocksCategoryListsSearchTag>>> <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!true' text=$(ShowFinished)$> <<tabs "[[$:/plugins/inmysocks/CategoryLists/Unfinished Items]][[$:/plugins/inmysocks/CategoryLists/Finished Items]]">> </$reveal> <$reveal type='nomatch' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!true' text=$(ShowFinished)$> <$transclude tiddler='$:/plugins/inmysocks/CategoryLists/Unfinished Items' mode=block/> </$reveal> </$set> </$reveal> \end \define CategoryList(Tag:"Task" FinishedTag:"Done" ListType:"Task" ShowAddItem:"True" ShowSearch:"True" ShowFinished:"True") <$set name=ListType value=$ListType$> <$set name=Tag value="""$Tag$"""> <$set name=FinishedTag value="""$FinishedTag$"""> <$set name=ShowSearch value=$ShowSearch$> <$set name=ShowFinished value=$ShowFinished$> <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!true' text=$ShowAddItem$> <$set name=Tag value="""$Tag$"""> <$button popup='$:/state/Items/MakeItemPopup'> New $ListType$ </$button> <$reveal type='popup' state='$:/state/Items/MakeItemPopup'> <div class='tc-popup-keep' style='border:solid;border-color:grey;border-width:1px;background-color:white;width:80vw;padding:1em'> <$transclude tiddler='$:/plugins/inmysocks/CategoryLists/Make Entry' mode=block/> </div> </$reveal> </$set> </$reveal> <<inmysocksCategoryListsMainBody>> </$set> </$set> </$set> </$set> </$set> \end
\define SelectSubcategory() <$select tiddler=<<currentTiddler>> field='subcategory'> <option value=''>--</option> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/SubCategories]indexes[]]'> <option> <$view tiddler=<<currentTiddler>> field=title/> </option> </$list> </$select> (<$button popup='$:/state/Edit$(ListType)$/AddSubcategoryPopup'>New Subcategory </$button>) <$reveal type=popup state='$:/state/Edit$(ListType)$/AddSubcategoryPopup'> <div class='tc-drop-down tc-popup-keep'> Subcategory Name: <$edit-text tiddler="$:/temp/Edit$(ListType)$" field='new_subcategory_name' placeholder='New Subcategory Name'/> <$button> Create Subcategory <$action-setfield $tiddler='$:/data/$(ListType)$ListCategories/$(ThisCategory)$/SubCategories' $index={{$:/temp/Edit$(ListType)$!!new_subcategory_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Edit$(ListType)$' $field='new_subcategory_name' $value=''/> </$button> </div> </$reveal> \end \define SelectSubSubCategory() <$select tiddler=<<currentTiddler>> field='subsubcategory'> <option value=''>--</option> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/$(ThisSubCategory)$/subsubcategories]indexes[]]'> <option> <$view tiddler=<<currentTiddler>> field=title/> </option> </$list> </$select> (<$button popup='$:/state/Edit$(ListType)$/AddSubSubcategoryPopup'>New Subsubcategory </$button>) <$reveal type=popup state='$:/state/Edit$(ListType)$/AddSubSubcategoryPopup'> <div class='tc-drop-down tc-popup-keep'> Subsubcategory Name: <$edit-text tiddler='$:/state/Edit$(ListType)$' field='new_subsubcategory_name' placeholder='New Subsubcategory Name'/> <$button> Create Subcategory <$action-setfield $tiddler='$:/data/$(ListType)$ListCategories/$(ThisCategory)$/$(ThisSubCategory)$/subsubcategories' $index={{$:/temp/Edit$(ListType)$!!new_subsubcategory_name}} $value=1/> <$action-setfield $tiddler='$:/state/Edit$(ListType)$' $field='new_subsubcategory_name' $value=''/> </$button> </div> </$reveal> \end \define thisSelectSubCategoryAndSubSubCategory() <$reveal type='nomatch' state='!!category' text=''> $(ListType)$ Subcategory: <<SelectSubcategory>> <br> <$reveal type='nomatch' state='!!subcategory' text=''> $(ListType)$ Subsubcategory: <<SelectSubSubCategory>> </$reveal> </$reveal> \end \define thisMainBody() <div mode=block> $(ListType)$ Name: ''__<$view field='title'/>__'' $(ListType)$ Category: <$select tiddler=<<currentTiddler>> field='category'> <option value=''>--</option> <$list filter='[[$:/data/$(ListType)$ListCategories]indexes[]]'> <option> <$view tiddler=<<currentTiddler>> field=title/> </option> </$list> </$select> (<$button popup='$:/state/Edit$(ListType)$/AddCategoryPopup'>New Category</$button>) <$reveal type=popup state='$:/state/Edit$(ListType)$/AddCategoryPopup'> <div class='tc-drop-down tc-popup-keep' style='position:absolute'> Category Name: <$edit-text tiddler=$:/temp/Edit$(ListType)$' field='new_category_name' placeholder='New Category Name'/> <$button> Create Category <$action-setfield $tiddler='$:/data/$(ListType)$ListCategories' $index={{$:/temp/Edit$(ListType)$!!new_category_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Edit$(ListType)$' $field='new_category_name' $value=''/> </$button> </div> </$reveal> <br> <$set name=ThisCategory value={{!!category}}> <$set name=ThisSubCategory value={{!!subcategory}}> <<thisSelectSubCategoryAndSubSubCategory>> </$set> </$set> Short Description: <$edit-text field='description' class='tc-edit-texteditor' placeholder='Short Description'/> Details: <$edit-text field='text' class='tc-edit-texteditor' placeholder='Details'/> Tags: Add tag: <$select tiddler='$:/state/Edit$(ListType)$' field='selected_tag'> <$list filter='[[$:/data/$(ListType)$ListTags]indexes[]]'> <option> <<currentTiddler>> </option> </$list> </$select> <$fieldmangler tiddler=<<currentTiddler>>> <$button>Add Tag <$action-sendmessage $message='tm-add-tag' $param={{$:/state/Edit$(ListType)$!!selected_tag}}/> </$button> </$fieldmangler> (<$button popup='$:/state/Edit$(ListType)$/AddTagPopup'>New Tag</$button>) <$reveal type='popup' state='$:/state/Edit$(ListType)$/AddTagPopup'> <div class='tc-drop-down tc-popup-keep'> Tag Name: <$edit-text tiddler='$:/temp/Edit$(ListType)$' field='new_tag_name' placeholder='New Tag Name'/> <$button>Create Tag <$action-setfield $tiddler='$:/data/$(ListType)$ListTags' $index={{$:/temp/Edit$(ListType)$!!new_tag_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Edit$(ListType)$' $field='new_tag_name' $value=''/> </$button> </div> </$reveal> Current Tags: <$list filter='[is[current]tags[]]-[[$(Tag)$]]-[[$(FinishedTag)$]]' variable=ThisTag> <$fieldmangler tiddler=<<currentTiddler>>> <<ThisTag>> <$button>Remove<$action-sendmessage $message='tm-remove-tag' $param=<<ThisTag>>/></$button> </$fieldmangler><br> </$list> </div> \end <<thisMainBody>>
\define thisListTemplate() <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!task' text=$(ListType)$ tag=tr> <td style="""position:relative;width:5%;"""> <$button class="""tc-btn-invisible""" popup="""$:/state/popup/$(ListType)$list/$(CurrentEntry)$""" tooltip='$(ListType)$ Info'>{{$:/core/images/info-button}} </$button> <<thisEntryPopup>> </td> <td style='width:5%;'> <$checkbox tiddler=<<CurrentEntry>> tag="""$(FinishedTag)$"""/> </td> <td style="""width:50%"""> <$link to=<<CurrentEntry>>> <$view tiddler=<<CurrentEntry>> field="""title"""/> </$link> </td> <td style="""width:40%"""> <$view tiddler=<<CurrentEntry>> field="""description"""/> </td> <td style='position:relative;'> <$button class='tc-btn-invisible' tooltip='Edit $(ListType)$' popup="""$:/state/Edit$(ListType)$/popup/$(CurrentEntry)$"""> {{$:/core/images/edit-button}} </$button> </td> <td style="""text-align:right;width:10%"""> <$fieldmangler tiddler=<<CurrentEntry>>> <$button class='tc-btn-invisible' tooltip='Remove $(ListType)$'>{{$:/core/images/cancel-button}} <$action-sendmessage $message="""tm-remove-tag""" $param="""$(Tag)$"""/> <$action-sendmessage $message="""tm-remove-tag""" $param="""$(FinishedTag)$"""/> </$button> </$fieldmangler> </td> </$reveal> <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!event' text=$(ListType)$ tag=tr> <td style="""position:relative;width:5%;"""> <$button class="""tc-btn-invisible""" popup="""$:/state/popup/$(ListType)$list/$(CurrentEntry)$""" tooltip='$(ListType)$ Info'>{{$:/core/images/info-button}} </$button> <<thisEntryPopup>> </td> <td style='position:relative;'> <$button class='tc-btn-invisible' tooltip='Edit $(ListType)$' popup="""$:/state/Edit$(ListType)$/popup/$(CurrentEntry)$"""> {{$:/core/images/edit-button}} </$button> </td> <td style="""width:50%"""> <$link to=<<CurrentEntry>>> <$view tiddler=<<CurrentEntry>> field="""title"""/> </$link> </td> <td style="""width:40%"""> <$view tiddler=<<CurrentEntry>> field="""description"""/> </td> <td style="""text-align:right;width:20%"""> <$view tiddler=<<CurrentEntry>> field='start_day'/>/<$view tiddler=<<CurrentEntry>> field='start_month'/>/<$view tiddler=<<CurrentEntry>> field='start_year'/> </td> </$reveal> <tr> <td colspan=6 style='position:relative;top:100%'> <$reveal type='popup' state="""$:/state/Edit$(ListType)$/popup/$(CurrentEntry)$"""> <div class='tc-popup-keep' style='border:solid;border-color:grey;border-width:1px;background-color:white;max-width:800px;padding:1em;width:95vw;top:1em;position:absolute;max-width:700px;top:-1em'> <$tiddler tiddler=<<CurrentEntry>>> <$transclude tiddler='$:/plugins/inmysocks/CategoryLists/EditEntryTemplate' mode=block/> </$tiddler> </div> </$reveal> </td> </tr> \end \define thisEntryPopup() <$reveal type="""popup""" state="""$:/state/popup/$(ListType)$list/$(CurrentEntry)$"""> <div class="""tc-popup-keep tc-drop-down"""> <$transclude tiddler=<<CurrentEntry>> mode=block/> </div> </$reveal> \end \define thisMakeShowCategoryButton() <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$]!text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$""" setTo=show> <div style='width:100%;text-align:left;position:absolute;'> {{$:/core/images/right-arrow}} </div> <div style='width:100%;position:absolute;text-align:center;'> <$view tiddler=<<CurrentCategory>> field="""title"""/> </div> <div style='width:100%;text-align:right;'> {{$:/core/images/left-arrow}} </div> </$button> </$list> <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$]text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$""" setTo=hide> <div style='width:100%;text-align:left;position:absolute;'> {{$:/core/images/down-arrow}} </div> <div style='width:100%;position:absolute;text-align:center;'> <$view tiddler=<<CurrentCategory>> field="""title"""/> </div> <div style='width:100%;text-align:right;'> {{$:/core/images/down-arrow}} </div> </$button> </$list> \end \define thisMakeCurrentCategoryDisplayState() $:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$ \end \define thisMakeShowSubCategoryButton() <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$]!text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$""" setTo=show> <div style='width:100%;text-align:left;position:absolute'> {{$:/core/images/right-arrow}} </div> <div style='width:100%;text-align:center;position:absolute'> <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> </div> <div style='width:100%;text-align:right;position:relative;'> {{$:/core/images/left-arrow}} </div> </$button> </$list> <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$]text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$""" setTo=hide> <div style='width:100%;text-align:left;position:absolute;'> {{$:/core/images/down-arrow}} </div> <div style='width:100%;text-align:center;position:absolute;'> <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> </div> <div style='width:100%;text-align:right;position:relative;'> {{$:/core/images/down-arrow}} </div> </$button> </$list> \end \define thisMakeCurrentSubCategoryDisplayState() $:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$ \end \define thisMakeShowSubSubCategoryButton() <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$]!text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;background-color:beige;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$""" setTo=show> <div style='width:100%;text-align:center;'> {{$:/core/images/right-arrow}} <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> :<$view tiddler="""$(CurrentSubSubCategory)$""" field="""title"""/> {{$:/core/images/left-arrow}} </div> </$button> </$list> <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$]text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;background-color:beige;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$""" setTo=hide> <div style='width:100%;text-align:center;'> {{$:/core/images/down-arrow}} <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubSubCategory)$""" field="""title"""/> {{$:/core/images/down-arrow}} </div> </$button> </$list> \end \define thisMakeCurrentSubSubCategoryDisplayState() $:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$ \end \define thisMakeTable() <table style="""position:relative;width:100%"""> <$set name=CurrentCategory value='No Category'> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]!has[category]!has[draft.of]limit[1]]"""> <tr> <th colspan=6 style="""background-color:grey"""> <<thisMakeShowCategoryButton>> </th> </tr> </$list> <$list filter='[<thisMakeCurrentCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]!has[category]!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> </$list> </$set> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]has[category]each[category]get[category]!has[draft.of]sort[title]]""" variable="""CurrentCategory"""> <tr style='width:100%;'> <th colspan=6 style="""background-color:grey"""> <<thisMakeShowCategoryButton>> </th> </tr> <$list filter='[<thisMakeCurrentCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>!has[subcategory]!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>has[subcategory]each[subcategory]get[subcategory]!has[draft.of]sort[title]]""" variable="""CurrentSubCategory"""> <tr style='width:100%;position:relative;background-color:lightgrey'> <td colspan=2 style='width:10%'> </td> <th colspan=2 style="""position:relative;width:80%;background-color:lightgrey"""> <<thisMakeShowSubCategoryButton>> </th> <td colspan=2 style='width:10%'> </td> </tr> <$list filter='[<thisMakeCurrentSubCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]!has[subsubcategory]category<CurrentCategory>subcategory<CurrentSubCategory>!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>subcategory<CurrentSubCategory>has[subsubcategory]each[subsubcategory]get[subsubcategory]!has[draft.of]sort[title]]""" variable="""CurrentSubSubCategory"""> <tr style='width:100%;background-color:beige'> <td colspan=2 style='width:10%;'> </td> <th colspan=2 style="""position:relative;width:80%;background-color:beige;"""> <<thisMakeShowSubSubCategoryButton>> </th> <td colspan=2 style='width:10%;'> </td> </tr> <$list filter='[<thisMakeCurrentSubSubCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>subcategory<CurrentSubCategory>subsubcategory<CurrentSubSubCategory>!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> </$list> </$list> </$list> </$list> </$list> </$list> </table> \end \define thisMakeSelectedCategory() category[$(CurrentCategory)$] \end \define thisMakeSelectedSubCategory() subcategory[$(CurrentSubCategory)$] \end \define thisMakeSelectedSubSubCategory() subsubcategory[$(CurrentSubSubCategory)$] \end \define thisMainBody() <$set name=RegExpSearch value={{$:/temp/$(ListType)$List/Search!!search_text}}> <!-- Category Selected --> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedCategory' text=''> <!-- Subcategory Selected --> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedSubCategory' text=''> <!-- Subsubcategory Selected --> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedSubSubCategory' text=''> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$set name=SelectedCategory value=<<thisMakeSelectedCategory>>> <$set name=CurrentSubCategory value={{$:/state/$(ListType)$List/SelectedSubCategory}}> <$set name=SelectedSubCategory value=<<thisMakeSelectedSubCategory>>> <$set name=CurrentSubSubCategory value={{$:/state/$(ListType)$List/SelectedSubSubCategory}}> <$set name=SelectedSubSubCategory value=<<thisMakeSelectedSubSubCategory>>> <<thisMakeTable>> </$set> </$set> </$set> </$set> </$set> </$set> </$reveal> <!-- No Subsubcategory Selected --> <$reveal type='match' state='$:/state/$(ListType)$List/SelectedSubSubCategory' text=''> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$set name=SelectedCategory value=<<thisMakeSelectedCategory>>> <$set name=CurrentSubCategory value={{$:/state/$(ListType)$List/SelectedSubCategory}}> <$set name=SelectedSubCategory value=<<thisMakeSelectedSubCategory>>> <<thisMakeTable>> </$set> </$set> </$set> </$set> </$reveal> </$reveal> <!-- No Subcategory Selected --> <$reveal type='match' state='$:/state/$(ListType)$List/SelectedSubCategory' text=''> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$set name=SelectedCategory value=<<thisMakeSelectedCategory>>> <<thisMakeTable>> </$set> </$set> </$reveal> </$reveal> <!-- No Selected Category --> <$reveal type='match' state='$:/state/$(ListType)$List/SelectedCategory' text=''> <<thisMakeTable>> </$reveal> </$set> \end <<thisMainBody>>
\define CreateEntryButton() <$fieldmangler tiddler={{$:/temp/Make$(ListType)$!!task_name}}> <$button>Create $(ListType)$ <$reveal type='nomatch' state='$:/temp/Make$(ListType)$!!category' text=''> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=category $value={{$:/temp/Make$(ListType)$!!category}}/> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/SubCategories]indexes[]]'> <$list filter='[[$:/temp/Make$(ListType)$]has[category]subcategory<currentTiddler>limit[1]]'> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=subcategory $value={{$:/temp/Make$(ListType)$!!subcategory}}/> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/$(ThisSubCategory)$/subsubcategories]indexes[]]'> <$list filter='[[$:/temp/Make$(ListType)$]has[subsubcategory]subsubcategory<currentTiddler>limit[1]]'> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=subsubcategory $value={{$:/temp/Make$(ListType)$!!subsubcategory}}/> </$list> </$list> </$list> </$list> </$reveal> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=description $value={{$:/temp/Make$(ListType)$!!short_description}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=text $value={{$:/temp/Make$(ListType)$!!text}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=tags $value={{$:/temp/Make$(ListType)$!!tags}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=start_day $value={{$:/temp/Make$(ListType)$!!start_day}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=start_month $value={{$:/temp/Make$(ListType)$!!start_month}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=start_year $value={{$:/temp/Make$(ListType)$!!start_year}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=due_day $value={{$:/temp/Make$(ListType)$!!due_day}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=due_month $value={{$:/temp/Make$(ListType)$!!due_month}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=due_year $value={{$:/temp/Make$(ListType)$!!due_year}}/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=created_day $value=<<now 0DD>>/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=created_month $value=<<now 0MM>>/> <$action-setfield $tiddler={{$:/temp/Make$(ListType)$!!task_name}} $field=created_year $value=<<now YYYY>>/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field=short_description $value=''/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field=text $value=''/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field=task_name $value=''/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field=tags $value=''/> <$action-sendmessage $message=tm-add-tag $param="""$(Tag)$"""/> </$button> </$fieldmangler> \end \define SelectSubcategory() <$select tiddler='$:/temp/Make$(ListType)$' field='subcategory'> <option value=''>--</option> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/SubCategories]indexes[]]'> <option> <$view tiddler=<<currentTiddler>> field=title/> </option> </$list> </$select> (<$button popup='$:/state/Make$(ListType)$/AddSubcategoryPopup'>New Subcategory </$button>) <$reveal type=popup state='$:/state/Make$(ListType)$/AddSubcategoryPopup'> <div class='tc-drop-down tc-popup-keep'> Subcategory Name: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='new_subcategory_name' placeholder='New Subcategory Name'/> <$button> Create Subcategory <$action-setfield $tiddler='$:/data/$(ListType)$ListCategories/$(ThisCategory)$/SubCategories' $index={{$:/temp/Make$(ListType)$!!new_subcategory_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field='new_subcategory_name' $value=''/> </$button> </div> </$reveal> \end \define SelectSubSubCategory() <$select tiddler='$:/temp/Make$(ListType)$' field='subsubcategory'> <option value=''>--</option> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/$(ThisSubCategory)$/subsubcategories]indexes[]]'> <option> <$view tiddler=<<currentTiddler>> field=title/> </option> </$list> </$select> (<$button popup='$:/state/Make$(ListType)$/AddSubSubcategoryPopup'>New Subsubcategory </$button>) <$reveal type=popup state='$:/state/Make$(ListType)$/AddSubSubcategoryPopup'> <div class='tc-drop-down tc-popup-keep'> Subsubcategory Name: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='new_subsubcategory_name' placeholder='New Subsubcategory Name'/> <$button> Create Subsubcategory <$action-setfield $tiddler='$:/data/$(ListType)$ListCategories/$(ThisCategory)$/$(ThisSubCategory)$/subsubcategories' $index={{$:/temp/Make$(ListType)$!!new_subsubcategory_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field='new_subsubcategory_name' $value=''/> </$button> </div> </$reveal> \end \define thisSelectSubCategoryAndSubSubCategory() <$reveal type='nomatch' state='$:/temp/Make$(ListType)$!!category' text=''> $(ListType)$ Subcategory: <<SelectSubcategory>> <br> <$list filter='[[$:/data/$(ListType)$ListCategories/$(ThisCategory)$/SubCategories]indexes[]]'> <$reveal type='match' state='$:/temp/Make$(ListType)$!!subcategory' text=<<currentTiddler>>> $(ListType)$ Subsubcategory: <<SelectSubSubCategory>> </$reveal> </$list> </$reveal> \end \define thisSetStartDate() Day: <$select tiddler='$:/temp/Make$(ListType)$' field='start_day'><option value=''>--</option><$list filter='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31'><option><<currentTiddler>></option></$list></$select> Month: <$select tiddler='$:/temp/Make$(ListType)$' field='start_month'><option value=''>--</option><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select> Year: <$select tiddler='$:/temp/Make$(ListType)$' field='start_year'><option value=''>--</option><$list filter='2015 2016 2017 2018 2019 2020'><option><<currentTiddler>></option></$list></$select> \end \define thisSetDueDate() Day: <$select tiddler='$:/temp/Make$(ListType)$' field='due_day'><option value=''>--</option><$list filter='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31'><option><<currentTiddler>></option></$list></$select> Month: <$select tiddler='$:/temp/Make$(ListType)$' field='due_month'><option value=''>--</option><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select> Year: <$select tiddler='$:/temp/Make$(ListType)$' field='due_year'><option value=''>--</option><$list filter='2015 2016 2017 2018 2019 2020'><option><<currentTiddler>></option></$list></$select> \end \define thisMainBody() $(ListType)$ Name: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='task_name' class='tc-edit-texteditor' placeholder='$(ListType)$ Name'/> $(ListType)$ Category: <$select tiddler='$:/temp/Make$(ListType)$' field='category'> <option value=''>--</option> <$list filter='[[$:/data/$(ListType)$ListCategories]indexes[]]'> <option> <$view tiddler=<<currentTiddler>> field=title/> </option> </$list> </$select> (<$button popup='$:/state/Make$(ListType)$/AddCategoryPopup'>New Category</$button>) <$reveal type=popup state='$:/state/Make$(ListType)$/AddCategoryPopup'> <div class='tc-drop-down tc-popup-keep'> Category Name: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='new_category_name' placeholder='New Category Name'/> <$button> Create Category <$action-setfield $tiddler='$:/data/$(ListType)$ListCategories' $index={{$:/temp/Make$(ListType)$!!new_category_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field='new_category_name' $value=''/> </$button> </div> </$reveal> <br> <$set name=ThisCategory value={{$:/temp/Make$(ListType)$!!category}}> <$set name=ThisSubCategory value={{$:/temp/Make$(ListType)$!!subcategory}}> <<thisSelectSubCategoryAndSubSubCategory>> </$set> </$set> Short Description: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='short_description' class='tc-edit-texteditor' placeholder='Short Description'/> Details: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='text' class='tc-edit-texteditor' placeholder='Details'/> Start Date:<br> <<thisSetStartDate>> Due Date:<br> <<thisSetDueDate>> Tags: Add tag: <$select tiddler='$:/temp/Make$(ListType)$' field='selected_tag'> <$list filter='[[$:/data/$(ListType)$ListTags]indexes[]]'> <option> <<currentTiddler>> </option> </$list> </$select> <$fieldmangler tiddler='$:/temp/Make$(ListType)$'> <$button>Add Tag <$action-sendmessage $message='tm-add-tag' $param={{$:/temp/Make$(ListType)$!!selected_tag}}/> </$button> </$fieldmangler> (<$button popup='$:/state/Make$(ListType)$/AddTagPopup'>New Tag</$button>) <$reveal type='popup' state='$:/state/Make$(ListType)$/AddTagPopup'> <div class='tc-drop-down tc-popup-keep'> Tag Name: <$edit-text tiddler='$:/temp/Make$(ListType)$' field='new_tag_name' placeholder='New Tag Name'/> <$button>Create Tag <$action-setfield $tiddler='$:/data/$(ListType)$ListTags' $index={{$:/temp/Make$(ListType)$!!new_tag_name}} $value=1/> <$action-setfield $tiddler='$:/temp/Make$(ListType)$' $field='new_tag_name' $value=''/> </$button> </div> </$reveal> Current Tags: <$list filter='[[$:/temp/Make$(ListType)$]tags[]]'> <$fieldmangler tiddler='$:/temp/Make$(ListType)$'> <$view field='title'/> <$button>Remove<$action-sendmessage $message='tm-remove-tag' $param=<<currentTiddler>>/></$button> </$fieldmangler><br> </$list> <$set name=ThisCategory value={{$:/temp/Make$(ListType)$!!category}}> <$set name=ThisSubCategory value={{$:/temp/Make$(ListType)$!!subcategory}}> <$list filter='[{$:/temp/Make$(ListType)$!!task_name}has[title]]' emptyMessage=<<CreateEntryButton>>> ''Your task has the same name as another tiddler, change the task name. You can edit tasks using the [[task editor]]'' </$list> </$set> </$set> \end <<thisMainBody>>
\define thisListTemplate() <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!task' text=$(ListType)$ tag=tr> <td style="""position:relative;width:5%;"""> <$button class="""tc-btn-invisible""" popup="""$:/state/popup/$(ListType)$list/$(CurrentEntry)$""" tooltip='$(ListType)$ Info'>{{$:/core/images/info-button}} </$button> <<thisEntryPopup>> </td> <td style='width:5%;'> <$checkbox tiddler=<<CurrentEntry>> tag="""$(FinishedTag)$"""/> </td> <td style="""width:50%"""> <$link to=<<CurrentEntry>>> <$view tiddler=<<CurrentEntry>> field="""title"""/> </$link> </td> <td style="""width:40%"""> <$view tiddler=<<CurrentEntry>> field="""description"""/> </td> <td style='position:relative;'> <$button class='tc-btn-invisible' tooltip='Edit $(ListType)$' popup="""$:/state/Edit$(ListType)$/popup/$(CurrentEntry)$"""> {{$:/core/images/edit-button}} </$button> </td> <td style="""text-align:right;width:10%"""> <$fieldmangler tiddler=<<CurrentEntry>>> <$button class='tc-btn-invisible' tooltip='Remove $(ListType)$'>{{$:/core/images/cancel-button}} <$action-sendmessage $message="""tm-remove-tag""" $param="""$(Tag)$"""/> <$action-sendmessage $message="""tm-remove-tag""" $param="""$(FinishedTag)$"""/> </$button> </$fieldmangler> </td> </$reveal> <$reveal type='match' state='$:/plugins/inmysocks/CategoryLists/CategoryLists!!event' text=$(ListType)$ tag=tr> <td style="""position:relative;width:5%;"""> <$button class="""tc-btn-invisible""" popup="""$:/state/popup/$(ListType)$list/$(CurrentEntry)$""" tooltip='$(ListType)$ Info'>{{$:/core/images/info-button}} </$button> <<thisEntryPopup>> </td> <td style='position:relative;'> <$button class='tc-btn-invisible' tooltip='Edit $(ListType)$' popup="""$:/state/Edit$(ListType)$/popup/$(CurrentEntry)$"""> {{$:/core/images/edit-button}} </$button> </td> <td style="""width:50%"""> <$link to=<<CurrentEntry>>> <$view tiddler=<<CurrentEntry>> field="""title"""/> </$link> </td> <td style="""width:40%"""> <$view tiddler=<<CurrentEntry>> field="""description"""/> </td> <td style="""text-align:right;width:20%"""> <$view tiddler=<<CurrentEntry>> field='start_day'/>/<$view tiddler=<<CurrentEntry>> field='start_month'/>/<$view tiddler=<<CurrentEntry>> field='start_year'/> </td> </$reveal> <tr> <td colspan=6 style='position:relative;top:100%'> <$reveal type='popup' state="""$:/state/Edit$(ListType)$/popup/$(CurrentEntry)$"""> <div class='tc-popup-keep' style='border:solid;border-color:grey;border-width:1px;background-color:white;max-width:800px;padding:1em;width:95vw;top:1em;position:absolute;max-width:700px;top:-1em'> <$tiddler tiddler=<<CurrentEntry>>> <$transclude tiddler='$:/plugins/inmysocks/CategoryLists/EditEntryTemplate' mode=block/> </$tiddler> </div> </$reveal> </td> </tr> \end \define thisEntryPopup() <$reveal type="""popup""" state="""$:/state/popup/$(ListType)$list/$(CurrentEntry)$"""> <div class="""tc-popup-keep tc-drop-down"""> <$transclude tiddler=<<CurrentEntry>> mode=block/> </div> </$reveal> \end \define thisMakeShowCategoryButton() <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$]!text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$""" setTo=show> <div style='width:100%;text-align:left;position:absolute;'> {{$:/core/images/right-arrow}} </div> <div style='width:100%;position:absolute;text-align:center;'> <$view tiddler=<<CurrentCategory>> field="""title"""/> </div> <div style='width:100%;text-align:right;'> {{$:/core/images/left-arrow}} </div> </$button> </$list> <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$]text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$""" setTo=hide> <div style='width:100%;text-align:left;position:absolute;'> {{$:/core/images/down-arrow}} </div> <div style='width:100%;position:absolute;text-align:center;'> <$view tiddler=<<CurrentCategory>> field="""title"""/> </div> <div style='width:100%;text-align:right;'> {{$:/core/images/down-arrow}} </div> </$button> </$list> \end \define thisMakeCurrentCategoryDisplayState() $:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$ \end \define thisMakeShowSubCategoryButton() <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$]!text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$""" setTo=show> <div style='width:100%;text-align:left;position:absolute'> {{$:/core/images/right-arrow}} </div> <div style='width:100%;text-align:center;position:absolute'> <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> </div> <div style='width:100%;text-align:right;position:relative;'> {{$:/core/images/left-arrow}} </div> </$button> </$list> <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$]text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$""" setTo=hide> <div style='width:100%;text-align:left;position:absolute;'> {{$:/core/images/down-arrow}} </div> <div style='width:100%;text-align:center;position:absolute;'> <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> </div> <div style='width:100%;text-align:right;position:relative;'> {{$:/core/images/down-arrow}} </div> </$button> </$list> \end \define thisMakeCurrentSubCategoryDisplayState() $:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$ \end \define thisMakeShowSubSubCategoryButton() <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$]!text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;background-color:beige;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$""" setTo=show> <div style='width:100%;text-align:center;'> {{$:/core/images/right-arrow}} <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> :<$view tiddler="""$(CurrentSubSubCategory)$""" field="""title"""/> {{$:/core/images/left-arrow}} </div> </$button> </$list> <$list filter='[[$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$]text[show]]'> <$button class='tc-btn-invisible' style='width:100%;height:100%;position:relative;background-color:beige;' set="""$:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$""" setTo=hide> <div style='width:100%;text-align:center;'> {{$:/core/images/down-arrow}} <$view tiddler="""$(CurrentCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubCategory)$""" field="""title"""/> : <$view tiddler="""$(CurrentSubSubCategory)$""" field="""title"""/> {{$:/core/images/down-arrow}} </div> </$button> </$list> \end \define thisMakeCurrentSubSubCategoryDisplayState() $:/state/$(ListType)$List/ShowCategory/$(CurrentCategory)$/$(CurrentSubCategory)$/$(CurrentSubSubCategory)$ \end \define thisMakeTable() <table style="""position:relative;width:100%"""> <$set name=CurrentCategory value='No Category'> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]!has[category]!has[draft.of]limit[1]]"""> <tr> <th colspan=6 style="""background-color:grey"""> <<thisMakeShowCategoryButton>> </th> </tr> </$list> <$list filter='[<thisMakeCurrentCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]!has[category]!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> </$list> </$set> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]has[category]each[category]get[category]!has[draft.of]sort[title]]""" variable="""CurrentCategory"""> <tr style='width:100%;'> <th colspan=6 style="""background-color:grey"""> <<thisMakeShowCategoryButton>> </th> </tr> <$list filter='[<thisMakeCurrentCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>!has[subcategory]!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>has[subcategory]each[subcategory]get[subcategory]!has[draft.of]sort[title]]""" variable="""CurrentSubCategory"""> <tr style='width:100%;position:relative;background-color:lightgrey'> <td colspan=2 style='width:10%'> </td> <th colspan=2 style="""position:relative;width:80%;background-color:lightgrey"""> <<thisMakeShowSubCategoryButton>> </th> <td colspan=2 style='width:10%'> </td> </tr> <$list filter='[<thisMakeCurrentSubCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]!has[subsubcategory]category<CurrentCategory>subcategory<CurrentSubCategory>!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>subcategory<CurrentSubCategory>has[subsubcategory]each[subsubcategory]get[subsubcategory]!has[draft.of]sort[title]]""" variable="""CurrentSubSubCategory"""> <tr style='width:100%;background-color:beige'> <td colspan=2 style='width:10%;'> </td> <th colspan=2 style="""position:relative;width:80%;background-color:beige;"""> <<thisMakeShowSubSubCategoryButton>> </th> <td colspan=2 style='width:10%;'> </td> </tr> <$list filter='[<thisMakeCurrentSubSubCategoryDisplayState>text[show]]'> <$list filter="""[tag[$(Tag)$]!tag[$(FinishedTag)$]$(SearchTag)$$(SelectedCategory)$$(SelectedSubCategory)$$(SelectedSubSubCategory)$regexp[(?i)$(RegExpSearch)$]category<CurrentCategory>subcategory<CurrentSubCategory>subsubcategory<CurrentSubSubCategory>!has[draft.of]sort[title]]""" variable=CurrentEntry> <<thisListTemplate>> </$list> </$list> </$list> </$list> </$list> </$list> </$list> </table> \end \define thisMakeSelectedCategory() category[$(CurrentCategory)$] \end \define thisMakeSelectedSubCategory() subcategory[$(CurrentSubCategory)$] \end \define thisMakeSelectedSubSubCategory() subsubcategory[$(CurrentSubSubCategory)$] \end \define thisMainBody() <$set name=RegExpSearch value={{$:/temp/$(ListType)$List/Search!!search_text}}> <!-- Category Selected --> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedCategory' text=''> <!-- Subcategory Selected --> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedSubCategory' text=''> <!-- Subsubcategory Selected --> <$reveal type='nomatch' state='$:/state/$(ListType)$List/SelectedSubSubCategory' text=''> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$set name=SelectedCategory value=<<thisMakeSelectedCategory>>> <$set name=CurrentSubCategory value={{$:/state/$(ListType)$List/SelectedSubCategory}}> <$set name=SelectedSubCategory value=<<thisMakeSelectedSubCategory>>> <$set name=CurrentSubSubCategory value={{$:/state/$(ListType)$List/SelectedSubSubCategory}}> <$set name=SelectedSubSubCategory value=<<thisMakeSelectedSubSubCategory>>> <<thisMakeTable>> </$set> </$set> </$set> </$set> </$set> </$set> </$reveal> <!-- No Subsubcategory Selected --> <$reveal type='match' state='$:/state/$(ListType)$List/SelectedSubSubCategory' text=''> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$set name=SelectedCategory value=<<thisMakeSelectedCategory>>> <$set name=CurrentSubCategory value={{$:/state/$(ListType)$List/SelectedSubCategory}}> <$set name=SelectedSubCategory value=<<thisMakeSelectedSubCategory>>> <<thisMakeTable>> </$set> </$set> </$set> </$set> </$reveal> </$reveal> <!-- No Subcategory Selected --> <$reveal type='match' state='$:/state/$(ListType)$List/SelectedSubCategory' text=''> <$set name=CurrentCategory value={{$:/state/$(ListType)$List/SelectedCategory}}> <$set name=SelectedCategory value=<<thisMakeSelectedCategory>>> <<thisMakeTable>> </$set> </$set> </$reveal> </$reveal> <!-- No Selected Category --> <$reveal type='match' state='$:/state/$(ListType)$List/SelectedCategory' text=''> <<thisMakeTable>> </$reveal> </$set> \end <<thisMainBody>>
{ "tiddlers": { "$:/plugins/inmysocks/StartupActions/startup-actions.js": { "text": "/*\\\ntitle: $:/plugins/inmysocks/StartupActions/startup-actions.js\ntype: application/javascript\nmodule-type: startup\n\nStartup Actions Script thing\n\n\\*/\n(function () {\n\n\t/*jslint node: true, browser: true */\n\t/*global $tw: false */\n\t\"use strict\";\n\n\t// Export name and synchronous status\n\texports.name = \"startup-actions\";\n\texports.platforms = [\"browser\"];\n\texports.after = [\"rootwidget\"];\n\texports.synchronous = true;\n\n\texports.startup = function() {\n\t\t// Do all actions on startup.\n\t\tvar tiddlersFilter = \"[tag[$:/tags/StartupAction]!has[draft.of]]\";\n\t\tvar expressionTiddlerList = $tw.wiki.filterTiddlers(tiddlersFilter);\n\t\tif(expressionTiddlerList.length !== 0) {\n\t\t\tfor (var j = 0; j < expressionTiddlerList.length; j++) {\n\t\t\t\tvar expressionTiddler = $tw.wiki.getTiddler(expressionTiddlerList[j]);\n\t\t\t\tif(expressionTiddler) {\n\t\t\t\t\tevaluateExpression(expressionTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// This should be simple, it just takes each expression tiddler and triggers all of the action widgets in its text field.\n\tfunction evaluateExpression(expressionTiddler) {\n\t\tif(expressionTiddler) {\n\t\t\t// Import all the variables because the widget isn't part of the main tiddlywiki stuff so the global macros and similar things aren't loaded by default.\n\t\t\tvar stringPassed = \"<$importvariables filter='[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] [[\" + expressionTiddler.getFieldString(\"title\") + \"]]'>\"+expressionTiddler.getFieldString(\"text\")+\"</$importvariables>\";\n\t\t\tvar parsed = $tw.wiki.parseText(\"text/vnd.tiddlywiki\", stringPassed, {});\n\t\t\tvar widgets = $tw.wiki.makeWidget(parsed, {parentWidget:$tw.rootWidget});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\n\t\t\t// If a filter is given for the action tiddlers do the actions in each returned tiddler.\n\t\t\tif(expressionTiddler.getFieldString(\"action_filter\")) {\n\t\t\t\tvar actionTiddlerList = $tw.wiki.filterTiddlers(expressionTiddler.getFieldString(\"action_filter\"));\n\t\t\t\tfor (var k = 0; k < actionTiddlerList.length; k++) {\n\t\t\t\t\tperformAction(actionTiddlerList[k], widgets, container);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If no filter for the action tiddlers is given just evaluate the expressions.\n\t\t\t\tvar expressionTiddlerTitle = expressionTiddler.getFieldString(\"title\");\n\t\t\t\tperformAction(expressionTiddlerTitle, widgets, container);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Invoke the action(s).\n\tfunction performAction(tiddler, widgets, container) {\n\t\twidgets.setVariable(\"currentTiddler\", tiddler);\n\t\twidgets.render(container, null);\n\t\tif(widgets) {\n\t\t\twidgets.invokeActions({});\n\t\t}\n\t}\n\n})();\n", "title": "$:/plugins/inmysocks/StartupActions/startup-actions.js", "type": "application/javascript", "module-type": "startup" } } }
/*\ title: $:/plugins/inmysocks/StartupActions/startup-actions.js type: application/javascript module-type: startup Startup Actions Script thing \*/ (function () { /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; // Export name and synchronous status exports.name = "startup-actions"; exports.platforms = ["browser"]; exports.after = ["rootwidget"]; exports.synchronous = true; exports.startup = function() { // Do all actions on startup. var tiddlersFilter = "[tag[$:/tags/StartupAction]!has[draft.of]]"; var expressionTiddlerList = $tw.wiki.filterTiddlers(tiddlersFilter); if(expressionTiddlerList.length !== 0) { for (var j = 0; j < expressionTiddlerList.length; j++) { var expressionTiddler = $tw.wiki.getTiddler(expressionTiddlerList[j]); if(expressionTiddler) { evaluateExpression(expressionTiddler); } } } }; // This should be simple, it just takes each expression tiddler and triggers all of the action widgets in its text field. function evaluateExpression(expressionTiddler) { if(expressionTiddler) { // Import all the variables because the widget isn't part of the main tiddlywiki stuff so the global macros and similar things aren't loaded by default. var stringPassed = "<$importvariables filter='[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] [[" + expressionTiddler.getFieldString("title") + "]]'>"+expressionTiddler.getFieldString("text")+"</$importvariables>"; var parsed = $tw.wiki.parseText("text/vnd.tiddlywiki", stringPassed, {}); var widgets = $tw.wiki.makeWidget(parsed, {parentWidget:$tw.rootWidget}); var container = $tw.fakeDocument.createElement("div"); // If a filter is given for the action tiddlers do the actions in each returned tiddler. if(expressionTiddler.getFieldString("action_filter")) { var actionTiddlerList = $tw.wiki.filterTiddlers(expressionTiddler.getFieldString("action_filter")); for (var k = 0; k < actionTiddlerList.length; k++) { performAction(actionTiddlerList[k], widgets, container); } } else { // If no filter for the action tiddlers is given just evaluate the expressions. var expressionTiddlerTitle = expressionTiddler.getFieldString("title"); performAction(expressionTiddlerTitle, widgets, container); } } } // Invoke the action(s). function performAction(tiddler, widgets, container) { widgets.setVariable("currentTiddler", tiddler); widgets.render(container, null); if(widgets) { widgets.invokeActions({}); } } })();
{ "tiddlers": { "$:/plugins/inmysocsk/WidgetsInvokeActions/checkbox-invoke-actions.js": { "text": "/*\\\ntitle: $:/plugins/inmysocsk/WidgetsInvokeActions/checkbox-invoke-actions.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget that can trigger action widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxInvokeActionsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxInvokeActionsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxInvokeActionsWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxInvokeActionsWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value = tiddler.fields[this.checkboxField] || this.checkboxDefault || \"\";\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxInvokeActionsWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\thandled;\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tiddler.hasTag(this.checkboxTag) !== checked)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tvar value = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t}\n\t// Invoke any actions\n\tif(this.invokeActions(event)) {\n\t\thandled = true;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxInvokeActionsWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxInvokeActionsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.field || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkboxInvokeActions = CheckboxInvokeActionsWidget;\n\n})();\n", "title": "$:/plugins/inmysocsk/WidgetsInvokeActions/checkbox-invoke-actions.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/inmysocsk/WidgetsInvokeActions/link-invoke-actions.js": { "text": "/*\\\ntitle: $:/plugins/inmysocsk/WidgetsInvokeActions/link-invoke-actions.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidgetInvokeActions = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidgetInvokeActions.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidgetInvokeActions.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true;\n\t// Render the link if required\n\tif(useWikiLinks) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidgetInvokeActions.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Create our element\n\tvar domNode = this.document.createElement(\"a\");\n\t// Assign classes\n\tvar classes = [];\n\tif(this.linkClasses) {\n\t\tclasses.push(this.linkClasses);\n\t}\n\tclasses.push(\"tc-tiddlylink\");\n\tif(this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t}\n\tif(this.isMissing && !this.isShadow) {\n\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t} else {\n\t\tif(!this.isMissing) {\n\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t}\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Set an href\n\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\",\n\t\twikiLinkText = wikiLinkTemplate.replace(\"$uri_encoded$\",encodeURIComponent(this.to));\n\twikiLinkText = wikiLinkText.replace(\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"dragstart\", handlerObject: this, handlerMethod: \"handleDragStartEvent\"},\n\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t]);\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidgetInvokeActions.prototype.handleClickEvent = function(event) {\n\tvar handled;\n\t// Invoke any actions\n\tif(this.invokeActions(event)) {\n\t\thandled = true;\n\t}\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nLinkWidgetInvokeActions.prototype.handleDragStartEvent = function(event) {\n\tif(event.target === this.domNodes[0]) {\n\t\tif(this.to) {\n\t\t\t// Set the dragging class on the element being dragged\n\t\t\t$tw.utils.addClass(event.target,\"tc-tiddlylink-dragging\");\n\t\t\t// Create the drag image elements\n\t\t\tthis.dragImage = this.document.createElement(\"div\");\n\t\t\tthis.dragImage.className = \"tc-tiddler-dragger\";\n\t\t\tvar inner = this.document.createElement(\"div\");\n\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\tinner.appendChild(this.document.createTextNode(this.to));\n\t\t\tthis.dragImage.appendChild(inner);\n\t\t\tthis.document.body.appendChild(this.dragImage);\n\t\t\t// Astoundingly, we need to cover the dragger up: http://www.kryogenix.org/code/browser/custom-drag-image.html\n\t\t\tvar cover = this.document.createElement(\"div\");\n\t\t\tcover.className = \"tc-tiddler-dragger-cover\";\n\t\t\tcover.style.left = (inner.offsetLeft - 16) + \"px\";\n\t\t\tcover.style.top = (inner.offsetTop - 16) + \"px\";\n\t\t\tcover.style.width = (inner.offsetWidth + 32) + \"px\";\n\t\t\tcover.style.height = (inner.offsetHeight + 32) + \"px\";\n\t\t\tthis.dragImage.appendChild(cover);\n\t\t\t// Set the data transfer properties\n\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t// First the image\n\t\t\tdataTransfer.effectAllowed = \"copy\";\n\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\tdataTransfer.setDragImage(this.dragImage.firstChild,-16,-16);\n\t\t\t}\n\t\t\t// Then the data\n\t\t\tdataTransfer.clearData();\n\t\t\tvar jsonData = this.wiki.getTiddlerAsJson(this.to),\n\t\t\t\ttextData = this.wiki.getTiddlerText(this.to,\"\"),\n\t\t\t\ttitle = (new RegExp(\"^\" + $tw.config.textPrimitives.wikiLink + \"$\",\"mg\")).exec(this.to) ? this.to : \"[[\" + this.to + \"]]\";\n\t\t\t// IE doesn't like these content types\n\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\tdataTransfer.setData(\"text/plain\",title);\n\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURI(jsonData));\n\t\t\t}\n\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURI(jsonData));\n\t\t\tdataTransfer.setData(\"Text\",title);\n\t\t\tevent.stopPropagation();\n\t\t} else {\n\t\t\tevent.preventDefault();\n\t\t}\n\t}\n};\n\nLinkWidgetInvokeActions.prototype.handleDragEndEvent = function(event) {\n\tif(event.target === this.domNodes[0]) {\n\t\t// Remove the dragging class on the element being dragged\n\t\t$tw.utils.removeClass(event.target,\"tc-tiddlylink-dragging\");\n\t\t// Delete the drag image element\n\t\tif(this.dragImage) {\n\t\t\tthis.dragImage.parentNode.removeChild(this.dragImage);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidgetInvokeActions.prototype.execute = function() {\n\t// Get the target tiddler title\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\t// Get the link title and aria label\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\t// Get the link classes\n\tthis.linkClasses = this.getAttribute(\"class\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidgetInvokeActions.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.linkInvokeActions = LinkWidgetInvokeActions;\n\n})();\n", "title": "$:/plugins/inmysocsk/WidgetsInvokeActions/link-invoke-actions.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/inmysocsk/WidgetsInvokeActions/radio-invoke-actions.js": { "text": "/*\\\ntitle: $:/plugins/inmysocsk/WidgetsInvokeActions/radio-invoke-actions.js\ntype: application/javascript\nmodule-type: widget\n\nRadio widget\n\nWill set a field to the selected value:\n\n```\n\t<$radio field=\"myfield\" value=\"check 1\">one</$radio>\n\t<$radio field=\"myfield\" value=\"check 2\">two</$radio>\n\t<$radio field=\"myfield\" value=\"check 3\">three</$radio>\n```\n\n|Parameter |Description |h\n|tiddler |Name of the tiddler in which the field should be set. Defaults to current tiddler |\n|field |The name of the field to be set |\n|value |The value to set |\n|class |Optional class name(s) |\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidgetInvokeActions = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidgetInvokeActions.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidgetInvokeActions.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.radioClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(this.getValue() == this.radioValue) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\tthis.setVariable(\"currentOption\", this.radioValue);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidgetInvokeActions.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.radioTitle);\n\treturn tiddler && tiddler.getFieldString(this.radioField);\n};\n\nRadioWidgetInvokeActions.prototype.setValue = function() {\n\tif(this.radioField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidgetInvokeActions.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n\tvar handled;\n\t// Invoke any actions\n\tif(this.invokeActions(event)) {\n\t\thandled = true;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidgetInvokeActions.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\tif(this.radioClass !== \"\") {\n\t\tthis.radioClass += \" \";\n\t}\n\tthis.radioClass += \"tc-radio\";\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidgetInvokeActions.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radioInvokeActions = RadioWidgetInvokeActions;\n\n})();\n", "title": "$:/plugins/inmysocsk/WidgetsInvokeActions/radio-invoke-actions.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/inmysocsk/WidgetsInvokeActions/select-invoke-actions.js": { "text": "/*\\\ntitle: $:/plugins/inmysocsk/WidgetsInvokeActions/select-invoke-actions.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidgetInvokeActions = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidgetInvokeActions.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidgetInvokeActions.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidgetInvokeActions.prototype.handleChangeEvent = function(event) {\t\n\n\tvar value = this.getSelectDomNode().value;\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\n\tthis.activeChild = 2*(this.getSelectDomNode().selectedIndex)+1;\n\tvar widgets = $tw.wiki.makeWidget(this.parseTreeNode.children[this.activeChild], {parentWidget:this});\n\twidgets.parseTreeNode = this.parseTreeNode;\n\twidgets.parseTreeNode.children = [this.parseTreeNode.children[this.activeChild]];\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgets.setVariable(\"currentTiddler\", this.getVariable(\"currentTiddler\"));\n\twidgets.render(container, null);\n\tif(widgets) {\n\t\twidgets.invokeActions({});\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidgetInvokeActions.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tvar domNode = this.getSelectDomNode();\n\tif(domNode.value !== value) {\n\t\tdomNode.value = value;\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidgetInvokeActions.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidgetInvokeActions.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children,\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidgetInvokeActions.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tif(changedTiddlers[this.selectTitle]) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.selectInvokeActions = SelectWidgetInvokeActions;\n\n})();\n", "title": "$:/plugins/inmysocsk/WidgetsInvokeActions/select-invoke-actions.js", "type": "application/javascript", "module-type": "widget" } } }
{ "tiddlers": { "$:/plugins/kixam/datepicker/icon": { "title": "$:/plugins/kixam/datepicker/icon", "tags": "$:/tags/Image", "text": "<svg height=\"22pt\" width=\"22pt\" viewBox=\"0 0 128 128\">\n<path d=\"M 13.775391 0 L 2.0664062 6.8671875 L 2.0664062 20.599609 L 13.775391 27.464844 L 25.484375 20.599609 L 25.484375 6.8671875 L 13.775391 0 z M 9.6582031 3.6230469 L 10.292969 3.6230469 C 10.728856 3.6230469 11.101705 3.7794391 11.412109 4.0898438 C 11.722514 4.4002483 11.876953 4.7730982 11.876953 5.2089844 L 11.876953 6.1601562 L 15.681641 6.1601562 L 15.681641 5.2089844 C 15.681641 4.7730982 15.83608 4.4002483 16.146484 4.0898438 C 16.456889 3.7794391 16.829738 3.6230469 17.265625 3.6230469 L 17.900391 3.6230469 C 18.336278 3.6230469 18.709127 3.7794391 19.019531 4.0898438 C 19.329936 4.4002483 19.484375 4.7730982 19.484375 5.2089844 L 19.484375 6.1601562 L 20.753906 6.1601562 C 21.097333 6.1601562 21.393566 6.284192 21.644531 6.5351562 C 21.895499 6.7861224 22.021484 7.0843085 22.021484 7.4277344 L 22.021484 20.107422 C 22.021484 20.450848 21.895499 20.749034 21.644531 21 C 21.393566 21.250966 21.097333 21.375 20.753906 21.375 L 6.8046875 21.375 C 6.4612605 21.375 6.1650274 21.250966 5.9140625 21 C 5.6630976 20.749034 5.5371094 20.450848 5.5371094 20.107422 L 5.5371094 7.4277344 C 5.5371094 7.0843085 5.6630976 6.7861224 5.9140625 6.5351562 C 6.1650274 6.284192 6.4612605 6.1601563 6.8046875 6.1601562 L 8.0722656 6.1601562 L 8.0722656 5.2089844 C 8.0722656 4.7730982 8.2286584 4.4002483 8.5390625 4.0898438 C 8.8494667 3.7794391 9.2223157 3.6230469 9.6582031 3.6230469 z M 9.6582031 4.890625 C 9.5723471 4.890625 9.4982891 4.923586 9.4355469 4.9863281 C 9.3728059 5.0490687 9.3417969 5.1231279 9.3417969 5.2089844 L 9.3417969 8.0605469 C 9.3417969 8.1464033 9.3728059 8.222414 9.4355469 8.2851562 C 9.4982891 8.3478969 9.5723471 8.3789062 9.6582031 8.3789062 L 10.292969 8.3789062 C 10.378825 8.3789062 10.452884 8.3478969 10.515625 8.2851562 C 10.578367 8.222414 10.609375 8.1464033 10.609375 8.0605469 L 10.609375 5.2089844 C 10.609375 5.1231279 10.578367 5.0490687 10.515625 4.9863281 C 10.452884 4.923586 10.378825 4.890625 10.292969 4.890625 L 9.6582031 4.890625 z M 17.265625 4.890625 C 17.179769 4.890625 17.105711 4.923586 17.042969 4.9863281 C 16.980227 5.0490687 16.949219 5.1231279 16.949219 5.2089844 L 16.949219 8.0605469 C 16.949219 8.1464033 16.980227 8.222414 17.042969 8.2851562 C 17.105711 8.3478969 17.179769 8.3789062 17.265625 8.3789062 L 17.900391 8.3789062 C 17.986247 8.3789062 18.060305 8.3478969 18.123047 8.2851562 C 18.185788 8.222414 18.216797 8.1464033 18.216797 8.0605469 L 18.216797 5.2089844 C 18.216797 5.1231279 18.185788 5.0490687 18.123047 4.9863281 C 18.060305 4.923586 17.986247 4.890625 17.900391 4.890625 L 17.265625 4.890625 z M 6.8046875 9.9628906 L 6.8046875 12.816406 L 9.6582031 12.816406 L 9.6582031 9.9628906 L 6.8046875 9.9628906 z M 10.292969 9.9628906 L 10.292969 12.816406 L 13.462891 12.816406 L 13.462891 9.9628906 L 10.292969 9.9628906 z M 14.095703 9.9628906 L 14.095703 12.816406 L 17.265625 12.816406 L 17.265625 9.9628906 L 14.095703 9.9628906 z M 17.900391 9.9628906 L 17.900391 12.816406 L 20.753906 12.816406 L 20.753906 9.9628906 L 17.900391 9.9628906 z M 6.8046875 13.451172 L 6.8046875 16.621094 L 9.6582031 16.621094 L 9.6582031 13.451172 L 6.8046875 13.451172 z M 10.292969 13.451172 L 10.292969 16.621094 L 13.462891 16.621094 L 13.462891 13.451172 L 10.292969 13.451172 z M 14.095703 13.451172 L 14.095703 16.621094 L 17.265625 16.621094 L 17.265625 13.451172 L 14.095703 13.451172 z M 17.900391 13.451172 L 17.900391 16.621094 L 20.753906 16.621094 L 20.753906 13.451172 L 17.900391 13.451172 z M 6.8046875 17.253906 L 6.8046875 20.107422 L 9.6582031 20.107422 L 9.6582031 17.253906 L 6.8046875 17.253906 z M 10.292969 17.253906 L 10.292969 20.107422 L 13.462891 20.107422 L 13.462891 17.253906 L 10.292969 17.253906 z M 14.095703 17.253906 L 14.095703 20.107422 L 17.265625 20.107422 L 17.265625 17.253906 L 14.095703 17.253906 z M 17.900391 17.253906 L 17.900391 20.107422 L 20.753906 20.107422 L 20.753906 17.253906 L 17.900391 17.253906 z\" transform=\"scale(4.6545455,4.6545455)\" />\n</svg>\n" }, "$:/plugins/kixam/datepicker/pikaday.js": { "text": "/*\\\ntitle: $:/plugins/kixam/datepicker/pikaday.js\ntype: application/javascript\nmodule-type: library\n\n@preserve\n\\*/\n\n(function(root,factory){\"use strict\";var moment;if(typeof exports===\"object\"){try{moment=require(\"$:/plugins/kixam/moment/moment.js\")}catch(e){}module.exports=factory(moment)}else if(typeof define===\"function\"&&define.amd){define(function(req){var id=\"moment\";try{moment=req(id)}catch(e){}return factory(moment)})}else{root.Pikaday=factory(root.moment)}})(this,function(moment){\"use strict\";var hasMoment=typeof moment===\"function\",addEvent=function(el,e,callback,capture){if(!!window.addEventListener){el.addEventListener(e,callback,!!capture)}else{el.attachEvent(\"on\"+e,callback)}},removeEvent=function(el,e,callback,capture){if(!!window.addEventListener){el.removeEventListener(e,callback,!!capture)}else{el.detachEvent(\"on\"+e,callback)}},fireEvent=function(el,eventName,data){var ev;if(document.createEvent){ev=window.document.createEvent(\"HTMLEvents\");ev.initEvent(eventName,true,false);ev=extend(ev,data);el.dispatchEvent(ev)}else if(document.createEventObject){ev=window.document.createEventObject();ev=extend(ev,data);el.fireEvent(\"on\"+eventName,ev)}},trim=function(str){return str.trim?str.trim():str.replace(/^\\s+|\\s+$/g,\"\")},hasClass=function(el,cn){return(\" \"+el.className+\" \").indexOf(\" \"+cn+\" \")!==-1},addClass=function(el,cn){if(!hasClass(el,cn)){el.className=el.className===\"\"?cn:el.className+\" \"+cn}},removeClass=function(el,cn){el.className=trim((\" \"+el.className+\" \").replace(\" \"+cn+\" \",\" \"))},isArray=function(obj){return/Array/.test(Object.prototype.toString.call(obj))},isDate=function(obj){return/Date/.test(Object.prototype.toString.call(obj))&&!isNaN(obj.getTime())},isWeekend=function(date){var day=date.getDay();return day===0||day===6},isLeapYear=function(year){return year%4===0&&year%100!==0||year%400===0},getDaysInMonth=function(year,month){return[31,isLeapYear(year)?29:28,31,30,31,30,31,31,30,31,30,31][month]},setToStartOfDay=function(date){if(isDate(date))date.setHours(0,0,0,0)},compareDates=function(a,b){var _a=new Date(a.getTime());var _b=new Date(b.getTime());setToStartOfDay(_a);setToStartOfDay(_b);return _a.getTime()===_b.getTime()},extend=function(to,from,overwrite){var prop,hasProp;for(prop in from){hasProp=to[prop]!==undefined;if(hasProp&&typeof from[prop]===\"object\"&&from[prop]!==null&&from[prop].nodeName===undefined){if(isDate(from[prop])){if(overwrite){to[prop]=new Date(from[prop].getTime())}}else if(isArray(from[prop])){if(overwrite){to[prop]=from[prop].slice(0)}}else{to[prop]=extend({},from[prop],overwrite)}}else if(overwrite||!hasProp){to[prop]=from[prop]}}return to},adjustCalendar=function(calendar){if(calendar.month<0){calendar.year-=Math.ceil(Math.abs(calendar.month)/12);calendar.month+=12}if(calendar.month>11){calendar.year+=Math.floor(Math.abs(calendar.month)/12);calendar.month-=12}return calendar},defaults={field:null,bound:undefined,position:\"bottom left\",reposition:true,format:null,inputFormats:null,defaultDate:null,setDefaultDate:false,firstDay:0,formatStrict:false,minDate:null,maxDate:null,yearRange:10,showWeekNumber:false,minYear:0,maxYear:9999,minMonth:undefined,maxMonth:undefined,startRange:null,endRange:null,isRTL:false,yearSuffix:\"\",showMonthAfterYear:false,showDaysInNextAndPreviousMonths:false,numberOfMonths:1,showTime:true,showMinutes:true,showSeconds:false,use24hour:false,incrementHourBy:1,incrementMinuteBy:1,incrementSecondBy:1,timeLabel:null,autoClose:true,mainCalendar:\"left\",container:undefined,i18n:{previousMonth:\"Previous Month\",nextMonth:\"Next Month\",months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],weekdays:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],weekdaysShort:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],midnight:\"Midnight\",noon:\"Noon\"},theme:null,onSelect:null,onOpen:null,onClose:null,onDraw:null},renderDayName=function(opts,day,abbr){day+=opts.firstDay;while(day>=7){day-=7}return abbr?opts.i18n.weekdaysShort[day]:opts.i18n.weekdays[day]},renderDay=function(opts){var arr=[];var ariaSelected=\"false\";if(opts.isEmpty){if(opts.showDaysInNextAndPreviousMonths){arr.push(\"is-outside-current-month\")}else{return'<td class=\"is-empty\"></td>'}}if(opts.isDisabled){arr.push(\"is-disabled\")}if(opts.isToday){arr.push(\"is-today\")}if(opts.isSelected){arr.push(\"is-selected\");ariaSelected=\"true\"}if(opts.isInRange){arr.push(\"is-inrange\")}if(opts.isStartRange){arr.push(\"is-startrange\")}if(opts.isEndRange){arr.push(\"is-endrange\")}return'<td data-day=\"'+opts.day+'\" class=\"'+arr.join(\" \")+'\" aria-selected=\"'+ariaSelected+'\">'+'<button class=\"pika-button pika-day\" type=\"button\" '+'data-pika-year=\"'+opts.year+'\" data-pika-month=\"'+opts.month+'\" data-pika-day=\"'+opts.day+'\">'+opts.day+\"</button>\"+\"</td>\"},renderWeek=function(d,m,y){var onejan=new Date(y,0,1),weekNum=Math.ceil(((new Date(y,m,d)-onejan)/864e5+onejan.getDay()+1)/7);return'<td class=\"pika-week\">'+weekNum+\"</td>\"},renderRow=function(days,isRTL){return\"<tr>\"+(isRTL?days.reverse():days).join(\"\")+\"</tr>\"},renderBody=function(rows){return\"<tbody>\"+rows.join(\"\")+\"</tbody>\"},renderHead=function(opts){var i,arr=[];if(opts.showWeekNumber){arr.push(\"<th></th>\")}for(i=0;i<7;i++){arr.push('<th scope=\"col\"><abbr title=\"'+renderDayName(opts,i)+'\">'+renderDayName(opts,i,true)+\"</abbr></th>\")}return\"<thead><tr>\"+(opts.isRTL?arr.reverse():arr).join(\"\")+\"</tr></thead>\"},renderTitle=function(instance,c,year,month,refYear,randId){var i,j,arr,opts=instance._o,isMinYear=year===opts.minYear,isMaxYear=year===opts.maxYear,html='<div id=\"'+randId+'\" class=\"pika-title\" role=\"heading\" aria-live=\"assertive\">',monthHtml,yearHtml,prev=true,next=true;for(arr=[],i=0;i<12;i++){arr.push('<option value=\"'+(year===refYear?i-c:12+i-c)+'\"'+(i===month?' selected=\"selected\"':\"\")+(isMinYear&&i<opts.minMonth||isMaxYear&&i>opts.maxMonth?'disabled=\"disabled\"':\"\")+\">\"+opts.i18n.months[i]+\"</option>\")}monthHtml='<div class=\"pika-label\">'+opts.i18n.months[month]+'<select class=\"pika-select pika-select-month\" tabindex=\"-1\">'+arr.join(\"\")+\"</select></div>\";if(isArray(opts.yearRange)){i=opts.yearRange[0];j=opts.yearRange[1]+1}else{i=year-opts.yearRange;j=1+year+opts.yearRange}for(arr=[];i<j&&i<=opts.maxYear;i++){if(i>=opts.minYear){arr.push('<option value=\"'+i+'\"'+(i===year?' selected=\"selected\"':\"\")+\">\"+i+\"</option>\")}}yearHtml='<div class=\"pika-label\">'+year+opts.yearSuffix+'<select class=\"pika-select pika-select-year\" tabindex=\"-1\">'+arr.join(\"\")+\"</select></div>\";if(opts.showMonthAfterYear){html+=yearHtml+monthHtml}else{html+=monthHtml+yearHtml}if(isMinYear&&(month===0||opts.minMonth>=month)){prev=false}if(isMaxYear&&(month===11||opts.maxMonth<=month)){next=false}if(c===0){html+='<button class=\"pika-prev'+(prev?\"\":\" is-disabled\")+'\" type=\"button\">'+opts.i18n.previousMonth+\"</button>\"}if(c===instance._o.numberOfMonths-1){html+='<button class=\"pika-next'+(next?\"\":\" is-disabled\")+'\" type=\"button\">'+opts.i18n.nextMonth+\"</button>\"}return html+=\"</div>\"},renderTable=function(opts,data,randId){return'<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-table\" role=\"grid\" aria-labelledby=\"'+randId+'\">'+renderHead(opts)+renderBody(data)+\"</table>\"},renderTimePicker=function(num_options,selected_val,select_class,display_func,increment_by){increment_by=increment_by||1;var to_return='<td><select class=\"pika-select '+select_class+'\">';for(var i=0;i<num_options;i+=increment_by){to_return+='<option value=\"'+i+'\" '+(i==selected_val?\"selected\":\"\")+\">\"+display_func(i)+\"</option>\"}to_return+=\"</select></td>\";return to_return},renderTime=function(hh,mm,ss,opts){var to_return='<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-time\"><tbody><tr>'+(opts.timeLabel!==null?'<td class=\"pika-time-label\">'+opts.timeLabel+\"</td>\":\"\")+renderTimePicker(24,hh,\"pika-select-hour\",function(i){if(opts.use24hour){return i}else{var to_return=i%12+(i<12?\" AM\":\" PM\");if(to_return==\"0 AM\"){return opts.i18n.midnight}else if(to_return==\"0 PM\"){return opts.i18n.noon}else{return to_return}}},opts.incrementHourBy);if(opts.showMinutes){to_return+=\"<td>:</td>\"+renderTimePicker(60,mm,\"pika-select-minute\",function(i){if(i<10)return\"0\"+i;return i},opts.incrementMinuteBy)}if(opts.showSeconds){to_return+=\"<td>:</td>\"+renderTimePicker(60,ss,\"pika-select-second\",function(i){if(i<10)return\"0\"+i;return i},opts.incrementSecondBy)}return to_return+\"</tr></tbody></table>\"},Pikaday=function(options){var self=this,opts=self.config(options);self._onMouseDown=function(e){if(!self._v){return}e=e||window.event;var target=e.target||e.srcElement;if(!target){return}if(!hasClass(target,\"is-disabled\")){if(hasClass(target,\"pika-button\")&&!hasClass(target,\"is-empty\")&&!hasClass(target.parentNode,\"is-disabled\")){var newDate=new Date(target.getAttribute(\"data-pika-year\"),target.getAttribute(\"data-pika-month\"),target.getAttribute(\"data-pika-day\"));var prevDate=self._d||opts.defaultDate;if(prevDate&&isDate(prevDate)&&opts.showTime){newDate.setHours(prevDate.getHours());newDate.setMinutes(prevDate.getMinutes());if(opts.showSeconds){newDate.setSeconds(prevDate.getSeconds())}}self.setDate(newDate);if(opts.bound){window.setTimeout(function(){if(opts.autoClose){self.hide()}if(opts.field){opts.field.blur()}},100)}}else if(hasClass(target,\"pika-prev\")){self.prevMonth()}else if(hasClass(target,\"pika-next\")){self.nextMonth()}}if(!hasClass(target,\"pika-select\")){if(e.preventDefault){e.preventDefault()}else{e.returnValue=false;return false}}else{self._c=true}};self._onChange=function(e){e=e||window.event;var target=e.target||e.srcElement;if(!target){return}if(hasClass(target,\"pika-select-month\")){self.gotoMonth(target.value)}else if(hasClass(target,\"pika-select-year\")){self.gotoYear(target.value)}else if(hasClass(target,\"pika-select-hour\")){self.setTime(target.value)}else if(hasClass(target,\"pika-select-minute\")){self.setTime(null,target.value)}else if(hasClass(target,\"pika-select-second\")){self.setTime(null,null,target.value)}};self._onKeyChange=function(e){e=e||window.event;if(self.isVisible()){switch(e.keyCode){case 13:case 27:opts.field.blur();break;case 37:e.preventDefault();self.adjustDate(\"subtract\",1);break;case 38:self.adjustDate(\"subtract\",7);break;case 39:self.adjustDate(\"add\",1);break;case 40:self.adjustDate(\"add\",7);break}}};self._onInputChange=function(e){var date;if(e.firedBy===self){return}if(hasMoment){date=moment(opts.field.value,opts.inputFormats,opts.formatStrict);date=date&&date.isValid()?date.toDate():null}else{date=new Date(Date.parse(opts.field.value))}if(isDate(date)){self.setDate(date)}if(!self._v){self.show()}};self._onInputFocus=function(){self.show()};self._onInputClick=function(){self.show()};self._onInputBlur=function(){var pEl=window.document.activeElement;do{if(hasClass(pEl,\"pika-single\")){return}}while(pEl=pEl.parentNode);if(opts.autoClose&&!self._c){self._b=window.setTimeout(function(){self.hide()},50)}self._c=false};self._onClick=function(e){e=e||window.event;var target=e.target||e.srcElement,pEl=target;if(!target){return}if(!!!window.addEventListener&&hasClass(target,\"pika-select\")){if(!target.onchange){target.setAttribute(\"onchange\",\"return;\");addEvent(target,\"change\",self._onChange)}}do{if(hasClass(pEl,\"pika-single\")||pEl===opts.trigger||opts.showTime&&hasClass(pEl,\"pika-time-container\")){return}}while(pEl=pEl.parentNode);if(self._v&&target!==opts.trigger&&pEl!==opts.trigger){self.hide()}};self.el=window.document.createElement(\"div\");self.el.className=\"pika-single\"+(opts.isRTL?\" is-rtl\":\"\")+(opts.theme?\" \"+opts.theme:\"\");addEvent(self.el,\"mousedown\",self._onMouseDown,true);addEvent(self.el,\"touchend\",self._onMouseDown,true);addEvent(self.el,\"change\",self._onChange);addEvent(document,\"keydown\",self._onKeyChange);if(opts.field){if(opts.container){opts.container.appendChild(self.el)}else if(opts.bound){window.document.body.appendChild(self.el)}else{opts.field.parentNode.insertBefore(self.el,opts.field.nextSibling)}addEvent(opts.field,\"change\",self._onInputChange);if(!opts.defaultDate){if(hasMoment&&opts.field.value){opts.defaultDate=moment(opts.field.value,opts.inputFormats).toDate()}else{opts.defaultDate=new Date(Date.parse(opts.field.value))}opts.setDefaultDate=true}}var defDate=opts.defaultDate;if(isDate(defDate)){if(opts.setDefaultDate){self.setDate(defDate,true)}else{self.gotoDate(defDate)}}else{self.gotoDate(new Date)}if(opts.bound){this.hide();self.el.className+=\" is-bound\";addEvent(opts.trigger,\"click\",self._onInputClick);addEvent(opts.trigger,\"focus\",self._onInputFocus);addEvent(opts.trigger,\"blur\",self._onInputBlur)}else{this.show()}};Pikaday.prototype={config:function(options){if(!this._o){this._o=extend({},defaults,true)}var opts=extend(this._o,options,true);opts.isRTL=!!opts.isRTL;opts.autoClose=!!opts.autoClose;opts.field=opts.field&&opts.field.nodeName?opts.field:null;opts.theme=typeof opts.theme===\"string\"&&opts.theme?opts.theme:null;opts.bound=!!(opts.bound!==undefined?opts.field&&opts.bound:opts.field);opts.trigger=opts.trigger&&opts.trigger.nodeName?opts.trigger:opts.field;opts.disableWeekends=!!opts.disableWeekends;opts.disableDayFn=typeof opts.disableDayFn===\"function\"?opts.disableDayFn:null;var nom=parseInt(opts.numberOfMonths,10)||1;opts.numberOfMonths=nom>4?4:nom;if(!isDate(opts.minDate)){opts.minDate=false}if(!isDate(opts.maxDate)){opts.maxDate=false}if(opts.minDate&&opts.maxDate&&opts.maxDate<opts.minDate){opts.maxDate=opts.minDate=false}if(opts.minDate){this.setMinDate(opts.minDate)}if(opts.maxDate){this.setMaxDate(opts.maxDate)}if(isArray(opts.yearRange)){var fallback=(new Date).getFullYear()-10;opts.yearRange[0]=parseInt(opts.yearRange[0],10)||fallback;opts.yearRange[1]=parseInt(opts.yearRange[1],10)||fallback}else{opts.yearRange=Math.abs(parseInt(opts.yearRange,10))||defaults.yearRange;if(opts.yearRange>100){opts.yearRange=100}}if(opts.format===null){opts.format=\"YYYY-MM-DD\";if(opts.showTime){opts.format+=\" HH:mm:ss\"}}if(!opts.inputFormats){opts.inputFormats=opts.format}return opts},toString:function(format){return!isDate(this._d)?\"\":hasMoment?moment(this._d).format(format||this._o.format):this._o.showTime?this._d.toString():this._d.toDateString()},getMoment:function(){return hasMoment?moment(this._d):null},setMoment:function(date,preventOnSelect){if(hasMoment&&moment.isMoment(date)){this.setDate(date.toDate(),preventOnSelect)}},getDate:function(){return isDate(this._d)?new Date(this._d.getTime()):new Date},setTime:function(hours,minutes,seconds){if(!this._d){this._d=new Date;this._d.setHours(0,0,0,0)}if(hours){this._d.setHours(hours)}if(minutes){this._d.setMinutes(minutes)}if(seconds){this._d.setSeconds(seconds)}this.setDate(this._d)},setDate:function(date,preventOnSelect){if(!date){this._d=null;if(this._o.field){this._o.field.value=\"\";fireEvent(this._o.field,\"change\",{firedBy:this})}return this.draw()}if(typeof date===\"string\"){date=new Date(Date.parse(date))}if(!isDate(date)){return}var min=this._o.minDate,max=this._o.maxDate;if(isDate(min)&&date<min){date=min}else if(isDate(max)&&date>max){date=max}this._d=new Date(date.getTime());if(this._o.showTime&&!this._o.showSeconds){this._d.setSeconds(0)}else if(!this._o.showTime){setToStartOfDay(this._d)}this.gotoDate(this._d);if(this._o.field){this._o.field.value=this.toString();fireEvent(this._o.field,\"change\",{firedBy:this})}if(!preventOnSelect&&typeof this._o.onSelect===\"function\"){this._o.onSelect.call(this,this.getDate())}},gotoDate:function(date){var newCalendar=true;if(!isDate(date)){return}if(this.calendars){var firstVisibleDate=new Date(this.calendars[0].year,this.calendars[0].month,1),lastVisibleDate=new Date(this.calendars[this.calendars.length-1].year,this.calendars[this.calendars.length-1].month,1),visibleDate=date.getTime();lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);lastVisibleDate.setDate(lastVisibleDate.getDate()-1);newCalendar=visibleDate<firstVisibleDate.getTime()||lastVisibleDate.getTime()<visibleDate}if(newCalendar){this.calendars=[{month:date.getMonth(),year:date.getFullYear(),hour:date.getHours(),minute:date.getMinutes(),second:date.getSeconds()}];if(this._o.mainCalendar===\"right\"){this.calendars[0].month+=1-this._o.numberOfMonths}}this.adjustCalendars()},adjustDate:function(sign,days){var day=this.getDate();var difference=parseInt(days)*24*60*60*1e3;var newDay;if(sign===\"add\"){newDay=new Date(day.valueOf()+difference)}else if(sign===\"subtract\"){newDay=new Date(day.valueOf()-difference)}if(hasMoment){if(sign===\"add\"){newDay=moment(day).add(days,\"days\").toDate()}else if(sign===\"subtract\"){newDay=moment(day).subtract(days,\"days\").toDate()}}this.setDate(newDay)},adjustCalendars:function(){this.calendars[0]=adjustCalendar(this.calendars[0]);for(var c=1;c<this._o.numberOfMonths;c++){this.calendars[c]=adjustCalendar({month:this.calendars[0].month+c,year:this.calendars[0].year})}this.draw()},gotoToday:function(){this.gotoDate(new Date)},gotoMonth:function(month){if(!isNaN(month)){this.calendars[0].month=parseInt(month,10);this.adjustCalendars()}},nextMonth:function(){this.calendars[0].month++;this.adjustCalendars()},prevMonth:function(){this.calendars[0].month--;this.adjustCalendars()},gotoYear:function(year){if(!isNaN(year)){this.calendars[0].year=parseInt(year,10);this.adjustCalendars()}},setMinDate:function(value){if(value instanceof Date){if(!this._o.showTime)setToStartOfDay(value);this._o.minDate=value;this._o.minYear=value.getFullYear();this._o.minMonth=value.getMonth()}else{this._o.minDate=defaults.minDate;this._o.minYear=defaults.minYear;this._o.minMonth=defaults.minMonth;this._o.startRange=defaults.startRange}this.draw()},setMaxDate:function(value){if(value instanceof Date){if(!this._o.showTime)setToStartOfDay(value);this._o.maxDate=value;this._o.maxYear=value.getFullYear();this._o.maxMonth=value.getMonth()}else{this._o.maxDate=defaults.maxDate;this._o.maxYear=defaults.maxYear;this._o.maxMonth=defaults.maxMonth;this._o.endRange=defaults.endRange}this.draw()},setStartRange:function(value){this._o.startRange=value},setEndRange:function(value){this._o.endRange=value},draw:function(force){if(!this._v&&!force){return}var opts=this._o,minYear=opts.minYear,maxYear=opts.maxYear,minMonth=opts.minMonth,maxMonth=opts.maxMonth,html=\"\",randId;if(this._y<=minYear){this._y=minYear;if(!isNaN(minMonth)&&this._m<minMonth){this._m=minMonth}}if(this._y>=maxYear){this._y=maxYear;if(!isNaN(maxMonth)&&this._m>maxMonth){this._m=maxMonth}}randId=\"pika-title-\"+Math.random().toString(36).replace(/[^a-z]+/g,\"\").substr(0,2);for(var c=0;c<opts.numberOfMonths;c++){html+='<div class=\"pika-lendar\">'+renderTitle(this,c,this.calendars[c].year,this.calendars[c].month,this.calendars[0].year,randId)+this.render(this.calendars[c].year,this.calendars[c].month,randId)+\"</div>\"}if(opts.showTime){var prevDate=this._d||this._o.defaultDate;html+='<div class=\"pika-time-container\">'+renderTime(prevDate&&isDate(prevDate)?prevDate.getHours():0,prevDate&&isDate(prevDate)?prevDate.getMinutes():0,prevDate&&isDate(prevDate)?prevDate.getSeconds():0,opts)+\"</div>\"}this.el.innerHTML=html;if(opts.bound){if(opts.field.type!==\"hidden\"){window.setTimeout(function(){opts.trigger.focus()},1)}}if(typeof this._o.onDraw===\"function\"){this._o.onDraw(this)}if(opts.bound){opts.field.setAttribute(\"aria-label\",\"Use the arrow keys to pick a date\")}},adjustPosition:function(){var field,pEl,width,height,viewportWidth,viewportHeight,scrollTop,left,top,clientRect;if(this._o.container)return;this.el.style.position=\"absolute\";field=this._o.trigger;pEl=field;width=this.el.offsetWidth;height=this.el.offsetHeight;viewportWidth=window.innerWidth||window.document.documentElement.clientWidth;viewportHeight=window.innerHeight||window.document.documentElement.clientHeight;scrollTop=window.pageYOffset||document.body.scrollTop||window.document.documentElement.scrollTop;if(typeof field.getBoundingClientRect===\"function\"){clientRect=field.getBoundingClientRect();left=clientRect.left+window.pageXOffset;top=clientRect.bottom+window.pageYOffset}else{left=pEl.offsetLeft;top=pEl.offsetTop+pEl.offsetHeight;while(pEl=pEl.offsetParent){left+=pEl.offsetLeft;top+=pEl.offsetTop}}if(this._o.reposition&&left+width>viewportWidth||this._o.position.indexOf(\"right\")>-1&&left-width+field.offsetWidth>0){left=left-width+field.offsetWidth}if(this._o.reposition&&top+height>viewportHeight+scrollTop||this._o.position.indexOf(\"top\")>-1&&top-height-field.offsetHeight>0){top=top-height-field.offsetHeight}this.el.style.left=left+\"px\";this.el.style.top=top+\"px\"},render:function(year,month,randId){var opts=this._o,now=new Date,days=getDaysInMonth(year,month),before=new Date(year,month,1).getDay(),data=[],row=[];if(!opts.showTime)setToStartOfDay(now);if(opts.firstDay>0){before-=opts.firstDay;if(before<0){before+=7}}var previousMonth=month===0?11:month-1,nextMonth=month===11?0:month+1,yearOfPreviousMonth=month===0?year-1:year,yearOfNextMonth=month===11?year+1:year,daysInPreviousMonth=getDaysInMonth(yearOfPreviousMonth,previousMonth);var cells=days+before,after=cells;while(after>7){after-=7}cells+=7-after;var minDate_date=opts.minDate?new Date(opts.minDate.getFullYear(),opts.minDate.getMonth(),opts.minDate.getDate()):null;var maxDate_date=opts.maxDate?new Date(opts.maxDate.getFullYear(),opts.maxDate.getMonth(),opts.maxDate.getDate()):null;for(var i=0,r=0;i<cells;i++){var day=new Date(year,month,1+(i-before)),isSelected=isDate(this._d)?compareDates(day,this._d):false,isToday=compareDates(day,now),isEmpty=i<before||i>=days+before,dayNumber=1+(i-before),monthNumber=month,yearNumber=year,isStartRange=opts.startRange&&compareDates(opts.startRange,day),isEndRange=opts.endRange&&compareDates(opts.endRange,day),isInRange=opts.startRange&&opts.endRange&&opts.startRange<day&&day<opts.endRange,isDisabled=minDate_date&&day<minDate_date||maxDate_date&&day>maxDate_date||opts.disableWeekends&&isWeekend(day)||opts.disableDayFn&&opts.disableDayFn(day);if(isEmpty){if(i<before){dayNumber=daysInPreviousMonth+dayNumber;monthNumber=previousMonth;yearNumber=yearOfPreviousMonth}else{dayNumber=dayNumber-days;monthNumber=nextMonth;yearNumber=yearOfNextMonth}}var dayConfig={day:dayNumber,month:monthNumber,year:yearNumber,isSelected:isSelected,isToday:isToday,isDisabled:isDisabled,isEmpty:isEmpty,isStartRange:isStartRange,isEndRange:isEndRange,isInRange:isInRange,showDaysInNextAndPreviousMonths:opts.showDaysInNextAndPreviousMonths};row.push(renderDay(dayConfig));if(++r===7){if(opts.showWeekNumber){row.unshift(renderWeek(i-before,month,year))}data.push(renderRow(row,opts.isRTL));row=[];r=0}}return renderTable(opts,data,randId)},isVisible:function(){return this._v},show:function(){if(!this.isVisible()){removeClass(this.el,\"is-hidden\");this._v=true;this.draw();if(this._o.bound){addEvent(document,\"click\",this._onClick);this.adjustPosition()}if(typeof this._o.onOpen===\"function\"){this._o.onOpen.call(this)}}},hide:function(){var v=this._v;if(v!==false){if(this._o.bound){removeEvent(document,\"click\",this._onClick)}this.el.style.position=\"static\";this.el.style.left=\"auto\";this.el.style.top=\"auto\";addClass(this.el,\"is-hidden\");this._v=false;if(v!==undefined&&typeof this._o.onClose===\"function\"){this._o.onClose.call(this)}}},destroy:function(){this.hide();removeEvent(this.el,\"mousedown\",this._onMouseDown,true);removeEvent(this.el,\"touchend\",this._onMouseDown,true);removeEvent(this.el,\"change\",this._onChange);if(this._o.field){removeEvent(this._o.field,\"change\",this._onInputChange);if(this._o.bound){removeEvent(this._o.trigger,\"click\",this._onInputClick);removeEvent(this._o.trigger,\"focus\",this._onInputFocus);removeEvent(this._o.trigger,\"blur\",this._onInputBlur)}}if(this.el.parentNode){this.el.parentNode.removeChild(this.el)}}};return Pikaday});\n", "title": "$:/plugins/kixam/datepicker/pikaday.js", "type": "application/javascript", "module-type": "library" }, "$:/plugins/kixam/datepicker/pikaday.css": { "title": "$:/plugins/kixam/datepicker/pikaday.css", "type": "text/css", "tags": "$:/tags/Stylesheet", "text": "@charset \"UTF-8\";/*!\n * Pikaday\n * Copyright © 2014 David Bushell | BSD & MIT license | http://dbushell.com/\n */.pika-single{z-index:9999;display:block;position:relative;color:#333;background:#fff;border:1px solid #ccc;border-bottom-color:#bbb;font-family:\"Helvetica Neue\",Helvetica,Arial,sans-serif}.pika-single:before,.pika-single:after{content:\" \";display:table}.pika-single:after{clear:both}.pika-single{*zoom:1}.pika-single.is-hidden{display:none}.pika-single.is-bound{position:absolute;box-shadow:0 5px 15px -5px rgba(0,0,0,.5)}.pika-lendar{float:left;width:240px;margin:8px}.pika-title{position:relative;text-align:center}.pika-label{display:inline-block;*display:inline;position:relative;z-index:9999;overflow:hidden;margin:0;padding:5px 3px;font-size:14px;line-height:20px;font-weight:bold;background-color:#fff}.pika-title select{cursor:pointer;position:absolute;z-index:9998;margin:0;left:0;top:5px;filter:alpha(opacity=0);opacity:0}.pika-prev,.pika-next{display:block;cursor:pointer;position:relative;outline:0;border:0;padding:0;width:20px;height:30px;color:rgba(0,0,0,0);white-space:nowrap;overflow:hidden;background-color:transparent;background-position:center center;background-repeat:no-repeat;background-size:75% 75%;opacity:.5;*position:absolute;*top:0}.pika-prev:hover,.pika-next:hover{opacity:1}.pika-prev,.is-rtl .pika-next{float:left;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAUklEQVR42u3VMQoAIBADQf8Pgj+OD9hG2CtONJB2ymQkKe0HbwAP0xucDiQWARITIDEBEnMgMQ8S8+AqBIl6kKgHiXqQqAeJepBo/z38J/U0uAHlaBkBl9I4GwAAAABJRU5ErkJggg==');*left:0}.pika-next,.is-rtl .pika-prev{float:right;background-image:url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAeCAYAAAAsEj5rAAAAU0lEQVR42u3VOwoAMAgE0dwfAnNjU26bYkBCFGwfiL9VVWoO+BJ4Gf3gtsEKKoFBNTCoCAYVwaAiGNQGMUHMkjGbgjk2mIONuXo0nC8XnCf1JXgArVIZAQh5TKYAAAAASUVORK5CYII=');*right:0}.pika-prev.is-disabled,.pika-next.is-disabled{cursor:default;opacity:.2}.pika-select{display:inline-block;*display:inline}.pika-table{width:100%;border-collapse:collapse;border-spacing:0;border:0}.pika-table th,.pika-table td{width:14.285714285714286%;padding:0}.pika-table th{color:#999;font-size:12px;line-height:25px;font-weight:bold;text-align:center}.pika-button{cursor:pointer;display:block;box-sizing:border-box;-moz-box-sizing:border-box;outline:0;border:0;margin:0;width:100%;padding:5px;color:#666;font-size:12px;line-height:15px;text-align:right;background:#f5f5f5}.pika-week{font-size:11px;color:#999}.is-today .pika-button{color:#3af;font-weight:bold}.is-selected .pika-button{color:#fff;font-weight:bold;background:#3af;box-shadow:inset 0 1px 3px #178fe5;border-radius:3px}.is-inrange .pika-button{background:#d5e9f7}.is-startrange .pika-button{color:#fff;background:#6cb31d;box-shadow:none;border-radius:3px}.is-endrange .pika-button{color:#fff;background:#3af;box-shadow:none;border-radius:3px}.is-disabled .pika-button,.is-outside-current-month .pika-button{pointer-events:none;cursor:default;color:#999;opacity:.3}.pika-button:hover{color:#fff;background:#ff8000;box-shadow:none;border-radius:3px}.pika-table abbr{border-bottom:0;cursor:help}.pika-time-container{clear:both}.pika-time{margin:7px auto 7px}.pika-time .pika-time-label{font-weight:bold;font-size:11px;color:#666;padding-right:.33em}" }, "$:/plugins/kixam/datepicker/license": { "title": "$:/plugins/kixam/datepicker/license", "text": "!! Pikaday licence: [[BSD 2-clause simplified license|http://www.freebsd.org/copyright/freebsd-license.html]] and [[MIT|http://mit-license.org/]]\n```\nCopyright (c) 2014 David Bushell BSD & MIT license\n\nThe MIT License (MIT)\n\nCopyright (c) 2014 David Bushell\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\nThe BSD License\n\nCopyright (c) 2014 David Bushell\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n```\n\n!! Plugin license: [[BSD 2-clause simplified license|http://www.freebsd.org/copyright/freebsd-license.html]]\n```\nCopyright (c) 2015, kixam\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n```\n" }, "$:/plugins/kixam/datepicker/readme": { "title": "$:/plugins/kixam/datepicker/readme", "text": "! ~DatePicker\n\nA plugin for [[TiddlyWiki|http://tiddlywiki.com]] 5, that provides [[Pikaday|https://github.com/dbushell/Pikaday]].\n" }, "$:/plugins/kixam/datepicker/usage": { "title": "$:/plugins/kixam/datepicker/usage", "text": "`<$edit-date>`\n\nThis plugin can pick days and times.\n\n!! attributes\nAll attributes are optional.\n\n|!Attribute|!Purpose|!Default value|\n|`tiddler`|Edited tiddler|//current tiddler//|\n|`field`|Edited field|`created`|\n|`format`|Date format as it is shown in input control, in [[moment.js|http://momentjs.com]]'s [[parse+string format|http://momentjs.com/docs/#/parsing/string-format/]]|`YYYY-MM-DD`|\n|`firstDay`|First day of the week (0: Sunday, 1: Monday, etc.)|`0`|\n|`fieldFormat`|Date format used to save into the field, in [[moment.js|http://momentjs.com]]'s [[parse+string format|http://momentjs.com/docs/#/parsing/string-format/]]|`YYYYMMDDHHmmssSSS`|\n|`placeholder`|Placeholder|//empty//|\n|`tag`|HTML tag to render the editor|`input`|\n|`index`|The index to edit|//empty//|\n|`class`|A CSS class to be assigned to the generated HTML editing element|\n|`attributes`|[[JSON Tiddler|http://tiddlywiki.com/#JSONTiddlers]] containing HTML attributes attached to the HTML object used to render the editor, typically `style`|//empty//|\n|`icon`|Image tiddler or URL to an image that will be rendered next to the `tag`. When clicked, it will trigger the date picker|//empty//|\n|`showTime`|Show time as well as date|//not set//|\n|`showSeconds`|If `showTime` is set, shows seconds as well|//not set//|\n|`use24hour`|If `showTime` is set, use 24-hour format|//not set//|\n" }, "$:/plugins/kixam/datepicker/widget.datepicker.js": { "text": "/*\\\ntitle: $:/plugins/kixam/datepicker/widget.datepicker.js\ntype: application/javascript\nmodule-type: widget\n\n A widget for displaying date pickers using Pikaday at https://github.com/owenmead/Pikaday\n\n For full help see $:/plugins/kixam/datepicker/usage\n\n TODO: use HTML5 \"date\" (and not \"datetime-local\") input types if available\n TODO: set field type/flag to \"date\" to make TW5 render {{!!ourField}} as expected, i.e. like it renders e.g. {{!!created}}\n TODO: use our widget for system date fields (created, modified, ...)\n\\*/\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\n(function() {\n 'use strict';\n\n var Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n var moment = require(\"$:/plugins/kixam/moment/moment.js\");\n var pikaday = require(\"$:/plugins/kixam/datepicker/pikaday.js\"); // this is a modified version of pikaday.js, see build.sh\n var image = require(\"$:/core/modules/widgets/image.js\").image;\n\n var DatePickerWidget = function(parseTreeNode, options) {\n Widget.call(this);\n this.initialise(parseTreeNode, options);\n this.options = options;\n };\n\n DatePickerWidget.prototype = new Widget();\n\n DatePickerWidget.prototype.render = function(parent,nextSibling) {\n this.computeAttributes();\n this.renderChildren(parent,nextSibling);\n this.execute();\n this.parentDomNode = parent;\n\n // set HTML tag\n if(!this.editTag || $tw.config.htmlUnsafeElements.indexOf(this.editTag) !== -1) {\n this.editTag = \"input\";\n }\n\n // set HTML item attributes\n if(this.editAttributesTiddlerName) {\n this.editAttributes = $tw.wiki.getTiddlerData(this.editAttributesTiddlerName, {});\n }\n\n // create HTML item\n this.editor = $tw.utils.domMaker(this.editTag, {attributes: this.editAttributes});\n\n if(this.editPlaceholder) {\n this.editor.setAttribute(\"placeholder\",this.editPlaceholder);\n }\n\n if(this.editClass) {\n this.editor.setAttribute(\"class\",this.editClass);\n }\n\n // render HTML item\n parent.insertBefore(this.editor, nextSibling);\n this.domNodes.push(this.editor);\n\n // render icon\n if(this.iconPath) {\n var tiddler = this.wiki.getTiddler(this.iconPath);\n if(tiddler && tiddler.hasTag(\"$:/tags/Image\")) {\n // this is a system icon tiddler: just transclude the tiddler\n this.icon = $tw.utils.domMaker(\"span\", {innerHTML: tiddler.fields.text});\n parent.insertBefore(this.icon, this.editor);\n this.domNodes.push(this.icon);\n } else {\n // this is something else: render it using <$image> widget\n var ptn = this.parseTreeNode;\n ptn.attributes = {source: {name: \"source\", type: \"string\", value: this.iconPath} };\n this.icon = new image(ptn, this.options);\n this.icon.render(this.parentDomNode, this.editor);\n }\n }\n\n this.onPickerDateSelect = this.onPickerDateSelect.bind(this);\n\n var langprefix = \"$:/languages/\".length,\n lang = $tw.wiki.getTiddlerText(\"$:/language\").substring(langprefix, langprefix + 2);\n if(lang === \"zh\") {\n // TW5 does not use standard codes for Chinese\n var suffix = $tw.wiki.getTiddlerText(\"$:/language\");\n suffix = suffix.substring(suffix.length-1);\n if(suffix === \"s\") {\n lang = \"zh-cn\"; //simplified\n } else {\n lang = \"zh-tw\"; //traditional\n }\n }\n\n var locale = moment.localeData(moment.locale([lang, \"en\"])),\n i18n = {\n previousMonth : \"Previous Month\",\n nextMonth : \"Next Month\",\n months : locale._months,\n monthsShort : locale._monthsShort,\n weekdays : locale._weekdays,\n weekdaysShort : locale._weekdaysShort,\n };\n\n this.picker = new pikaday({\n field: this.editor,\n trigger: this.icon || this.editor,\n format: this.editFormat,\n firstDay: this.firstDay,\n onSelect: this.onPickerDateSelect,\n showTime: this.showTime,\n showSeconds: this.showSeconds,\n use24hour: this.use24hour,\n i18n: i18n,\n });\n\n this.refreshSelf();\n };\n\n DatePickerWidget.prototype.execute = function() {\n // Get our parameters\n this.showTime = this.getAttribute(\"showTime\");\n this.showSeconds = this.getAttribute(\"showSeconds\");\n this.use24hour = this.getAttribute(\"use24hour\");\n\n var defaultFormat = \"YYYY-MM-DD\";\n if(this.showTime) {\n if(this.use24hour) defaultFormat += \" HH\";\n else defaultFormat += \" hh\";\n defaultFormat += \":mm\";\n if(this.showSeconds) defaultFormat += \":ss\";\n }\n this.editFormat = this.getAttribute(\"format\", defaultFormat);\n this.firstDay = parseInt(this.getAttribute(\"firstDay\", \"0\"));\n this.saveFormat = this.getAttribute(\"fieldFormat\", \"YYYYMMDDHHmmssSSS\");\n this.editTitle = this.getAttribute(\"tiddler\", this.getVariable(\"currentTiddler\"));\n this.editField = this.getAttribute(\"field\",\"created\");\n this.editIndex = this.getAttribute(\"index\");\n this.editClass = this.getAttribute(\"class\");\n this.editPlaceholder = this.getAttribute(\"placeholder\");\n this.editTag = this.getAttribute(\"tag\");\n this.editAttributesTiddlerName = this.getAttribute(\"attributes\");\n this.iconPath = this.getAttribute(\"icon\");\n };\n\n // Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n DatePickerWidget.prototype.refresh = function(changedTiddlers) {\n var changedAttributes = this.computeAttributes();\n // Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.editTitle]) {\n this.refreshSelf();\n return true;\n } else {\n return this.refreshChildren(changedTiddlers);\n }\n };\n\n DatePickerWidget.prototype.refreshSelf = function() {\n var val = moment.utc(this.getEditInfo().value, this.saveFormat);\n if(val.isValid()) {\n this.editor.value = val.format(this.editFormat);\n this.picker.setMoment(val, true);\n }\n }\n\n DatePickerWidget.prototype.onPickerDateSelect = function() {\n var val = this.picker.getMoment();\n if(this.showTime) val = val.utc();\n this.saveChanges(val.format(this.saveFormat));\n $tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n };\n\n// ---------------------------------------------------------- //\n// --- inspired from $:/core/modules/widgets/edit-text.js --- //\n// ---------------------------------------------------------- //\n\n DatePickerWidget.prototype.saveChanges = function(text) {\n var editInfo = this.getEditInfo();\n if(text !== editInfo.value) {\n editInfo.update(text);\n }\n };\n\n DatePickerWidget.prototype.getEditInfo = function() {\n // Get the edit value\n var self = this,\n value,\n update;\n if(this.editIndex) {\n value = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n update = function(value) {\n var data = self.wiki.getTiddlerData(self.editTitle,{});\n if(data[self.editIndex] !== value) {\n data[self.editIndex] = value;\n self.wiki.setTiddlerData(self.editTitle,data);\n }\n };\n } else {\n // Get the current tiddler and the field name\n var tiddler = this.wiki.getTiddler(this.editTitle);\n if(tiddler) {\n // If we've got a tiddler, the value to display is the field string value\n value = tiddler.getFieldString(this.editField);\n } else {\n // Otherwise, we need to construct a default value for the editor\n switch(this.editField) {\n case \"text\":\n value = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n break;\n case \"title\":\n value = this.editTitle;\n break;\n default:\n value = \"\";\n break;\n }\n if(this.editDefault !== undefined) {\n value = this.editDefault;\n }\n }\n update = function(value) {\n var tiddler = self.wiki.getTiddler(self.editTitle),\n updateFields = {\n title: self.editTitle\n };\n updateFields[self.editField] = value;\n self.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n };\n }\n return {value: value, update: update};\n };\n\n// ---------------------------------------------------------- //\n// ---------------------------------------------------------- //\n// ---------------------------------------------------------- //\n\n exports[\"edit-date\"] = DatePickerWidget;\n}\n());\n", "title": "$:/plugins/kixam/datepicker/widget.datepicker.js", "type": "application/javascript", "module-type": "widget" } } }
{ "tiddlers": { "$:/plugins/kixam/moment/moment.js": { "text": "!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return re.apply(null,arguments)}function b(a){re=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){return null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c<a.length;++c)d.push(b(a[c],c));return d}function j(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function k(a,b){for(var c in b)j(b,c)&&(a[c]=b[c]);return j(b,\"toString\")&&(a.toString=b.toString),j(b,\"valueOf\")&&(a.valueOf=b.valueOf),a}function l(a,b,c,d){return sb(a,b,c,d,!0).utc()}function m(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}}function n(a){return null==a._pf&&(a._pf=m()),a._pf}function o(a){if(null==a._isValid){var b=n(a),c=te.call(b.parsedDateParts,function(a){return null!=a}),d=!isNaN(a._d.getTime())&&b.overflow<0&&!b.empty&&!b.invalidMonth&&!b.invalidWeekday&&!b.nullInput&&!b.invalidFormat&&!b.userInvalidated&&(!b.meridiem||b.meridiem&&c);if(a._strict&&(d=d&&0===b.charsLeftOver&&0===b.unusedTokens.length&&void 0===b.bigHour),null!=Object.isFrozen&&Object.isFrozen(a))return d;a._isValid=d}return a._isValid}function p(a){var b=l(NaN);return null!=a?k(n(b),a):n(b).userInvalidated=!0,b}function q(a,b){var c,d,e;if(f(b._isAMomentObject)||(a._isAMomentObject=b._isAMomentObject),f(b._i)||(a._i=b._i),f(b._f)||(a._f=b._f),f(b._l)||(a._l=b._l),f(b._strict)||(a._strict=b._strict),f(b._tzm)||(a._tzm=b._tzm),f(b._isUTC)||(a._isUTC=b._isUTC),f(b._offset)||(a._offset=b._offset),f(b._pf)||(a._pf=n(b)),f(b._locale)||(a._locale=b._locale),ue.length>0)for(c=0;c<ue.length;c++)d=ue[c],e=b[d],f(e)||(a[d]=e);return a}function r(b){q(this,b),this._d=new Date(null!=b._d?b._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),ve===!1&&(ve=!0,a.updateOffset(this),ve=!1)}function s(a){return a instanceof r||null!=a&&null!=a._isAMomentObject}function t(a){return a<0?Math.ceil(a)||0:Math.floor(a)}function u(a){var b=+a,c=0;return 0!==b&&isFinite(b)&&(c=t(b)),c}function v(a,b,c){var d,e=Math.min(a.length,b.length),f=Math.abs(a.length-b.length),g=0;for(d=0;d<e;d++)(c&&a[d]!==b[d]||!c&&u(a[d])!==u(b[d]))&&g++;return g+f}function w(b){a.suppressDeprecationWarnings===!1&&\"undefined\"!=typeof console&&console.warn&&console.warn(\"Deprecation warning: \"+b)}function x(b,c){var d=!0;return k(function(){if(null!=a.deprecationHandler&&a.deprecationHandler(null,b),d){for(var e,f=[],g=0;g<arguments.length;g++){if(e=\"\",\"object\"==typeof arguments[g]){e+=\"\\n[\"+g+\"] \";for(var h in arguments[0])e+=h+\": \"+arguments[0][h]+\", \";e=e.slice(0,-2)}else e=arguments[g];f.push(e)}w(b+\"\\nArguments: \"+Array.prototype.slice.call(f).join(\"\")+\"\\n\"+(new Error).stack),d=!1}return c.apply(this,arguments)},c)}function y(b,c){null!=a.deprecationHandler&&a.deprecationHandler(b,c),we[b]||(w(c),we[b]=!0)}function z(a){return a instanceof Function||\"[object Function]\"===Object.prototype.toString.call(a)}function A(a){var b,c;for(c in a)b=a[c],z(b)?this[c]=b:this[\"_\"+c]=b;this._config=a,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+\"|\"+/\\d{1,2}/.source)}function B(a,b){var c,e=k({},a);for(c in b)j(b,c)&&(d(a[c])&&d(b[c])?(e[c]={},k(e[c],a[c]),k(e[c],b[c])):null!=b[c]?e[c]=b[c]:delete e[c]);for(c in a)j(a,c)&&!j(b,c)&&d(a[c])&&(e[c]=k({},e[c]));return e}function C(a){null!=a&&this.set(a)}function D(a,b,c){var d=this._calendar[a]||this._calendar.sameElse;return z(d)?d.call(b,c):d}function E(a){var b=this._longDateFormat[a],c=this._longDateFormat[a.toUpperCase()];return b||!c?b:(this._longDateFormat[a]=c.replace(/MMMM|MM|DD|dddd/g,function(a){return a.slice(1)}),this._longDateFormat[a])}function F(){return this._invalidDate}function G(a){return this._ordinal.replace(\"%d\",a)}function H(a,b,c,d){var e=this._relativeTime[c];return z(e)?e(a,b,c,d):e.replace(/%d/i,a)}function I(a,b){var c=this._relativeTime[a>0?\"future\":\"past\"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Ge[c]=Ge[c+\"s\"]=Ge[b]=a}function K(a){return\"string\"==typeof a?Ge[a]||Ge[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){He[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:He[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d<c.length;d++)this[c[d].unit](a[c[d].unit])}else if(a=K(a),z(this[a]))return this[a](b);return this}function T(a,b,c){var d=\"\"+Math.abs(a),e=b-d.length,f=a>=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Le[a]=e),b&&(Le[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Le[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function W(a){var b,c,d=a.match(Ie);for(b=0,c=d.length;b<c;b++)Le[d[b]]?d[b]=Le[d[b]]:d[b]=V(d[b]);return function(b){var e,f=\"\";for(e=0;e<c;e++)f+=z(d[e])?d[e].call(b,a):d[e];return f}}function X(a,b){return a.isValid()?(b=Y(b,a.localeData()),Ke[b]=Ke[b]||W(b),Ke[b](a)):a.localeData().invalidDate()}function Y(a,b){function c(a){return b.longDateFormat(a)||a}var d=5;for(Je.lastIndex=0;d>=0&&Je.test(a);)a=a.replace(Je,c),Je.lastIndex=0,d-=1;return a}function Z(a,b,c){bf[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(bf,a)?bf[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c<a.length;c++)cf[a[c]]=d}function ca(a,b){ba(a,function(a,c,d,e){d._w=d._w||{},b(a,d._w,d,e)})}function da(a,b,c){null!=b&&j(cf,a)&&cf[a](b,c._a,c,a)}function ea(a,b){return new Date(Date.UTC(a,b+1,0)).getUTCDate()}function fa(a,b){return a?c(this._months)?this._months[a.month()]:this._months[(this._months.isFormat||of).test(b)?\"format\":\"standalone\"][a.month()]:c(this._months)?this._months:this._months.standalone}function ga(a,b){return a?c(this._monthsShort)?this._monthsShort[a.month()]:this._monthsShort[of.test(b)?\"format\":\"standalone\"][a.month()]:c(this._monthsShort)?this._monthsShort:this._monthsShort.standalone}function ha(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],d=0;d<12;++d)f=l([2e3,d]),this._shortMonthsParse[d]=this.monthsShort(f,\"\").toLocaleLowerCase(),this._longMonthsParse[d]=this.months(f,\"\").toLocaleLowerCase();return c?\"MMM\"===b?(e=nf.call(this._shortMonthsParse,g),e!==-1?e:null):(e=nf.call(this._longMonthsParse,g),e!==-1?e:null):\"MMM\"===b?(e=nf.call(this._shortMonthsParse,g),e!==-1?e:(e=nf.call(this._longMonthsParse,g),e!==-1?e:null)):(e=nf.call(this._longMonthsParse,g),e!==-1?e:(e=nf.call(this._shortMonthsParse,g),e!==-1?e:null))}function ia(a,b,c){var d,e,f;if(this._monthsParseExact)return ha.call(this,a,b,c);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),d=0;d<12;d++){if(e=l([2e3,d]),c&&!this._longMonthsParse[d]&&(this._longMonthsParse[d]=new RegExp(\"^\"+this.months(e,\"\").replace(\".\",\"\")+\"$\",\"i\"),this._shortMonthsParse[d]=new RegExp(\"^\"+this.monthsShort(e,\"\").replace(\".\",\"\")+\"$\",\"i\")),c||this._monthsParse[d]||(f=\"^\"+this.months(e,\"\")+\"|^\"+this.monthsShort(e,\"\"),this._monthsParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"MMMM\"===b&&this._longMonthsParse[d].test(a))return d;if(c&&\"MMM\"===b&&this._shortMonthsParse[d].test(a))return d;if(!c&&this._monthsParse[d].test(a))return d}}function ja(a,b){var c;if(!a.isValid())return a;if(\"string\"==typeof b)if(/^\\d+$/.test(b))b=u(b);else if(b=a.localeData().monthsParse(b),!g(b))return a;return c=Math.min(a.date(),ea(a.year(),b)),a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+\"Month\"](b,c),a}function ka(b){return null!=b?(ja(this,b),a.updateOffset(this,!0),this):P(this,\"Month\")}function la(){return ea(this.year(),this.month())}function ma(a){return this._monthsParseExact?(j(this,\"_monthsRegex\")||oa.call(this),a?this._monthsShortStrictRegex:this._monthsShortRegex):(j(this,\"_monthsShortRegex\")||(this._monthsShortRegex=rf),this._monthsShortStrictRegex&&a?this._monthsShortStrictRegex:this._monthsShortRegex)}function na(a){return this._monthsParseExact?(j(this,\"_monthsRegex\")||oa.call(this),a?this._monthsStrictRegex:this._monthsRegex):(j(this,\"_monthsRegex\")||(this._monthsRegex=sf),this._monthsStrictRegex&&a?this._monthsStrictRegex:this._monthsRegex)}function oa(){function a(a,b){return b.length-a.length}var b,c,d=[],e=[],f=[];for(b=0;b<12;b++)c=l([2e3,b]),d.push(this.monthsShort(c,\"\")),e.push(this.months(c,\"\")),f.push(this.months(c,\"\")),f.push(this.monthsShort(c,\"\"));for(d.sort(a),e.sort(a),f.sort(a),b=0;b<12;b++)d[b]=aa(d[b]),e[b]=aa(e[b]);for(b=0;b<24;b++)f[b]=aa(f[b]);this._monthsRegex=new RegExp(\"^(\"+f.join(\"|\")+\")\",\"i\"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp(\"^(\"+e.join(\"|\")+\")\",\"i\"),this._monthsShortStrictRegex=new RegExp(\"^(\"+d.join(\"|\")+\")\",\"i\")}function pa(a){return qa(a)?366:365}function qa(a){return a%4===0&&a%100!==0||a%400===0}function ra(){return qa(this.year())}function sa(a,b,c,d,e,f,g){var h=new Date(a,b,c,d,e,f,g);return a<100&&a>=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}function Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=nf.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=nf.call(this._minWeekdaysParse,g),e!==-1?e:(e=nf.call(this._weekdaysParse,g),e!==-1?e:(e=nf.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,\"_weekdaysRegex\")||(this._weekdaysRegex=yf),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=zf),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Af),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}function Ya(a){for(var b,c,d,e,f=0;f<a.length;){for(e=Xa(a[f]).split(\"-\"),b=e.length,c=Xa(a[f+1]),c=c?c.split(\"-\"):null;b>0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Ff[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=Bf._abbr,require(\"./locale/\"+a),$a(b)}catch(a){}return Ff[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Bf=c)),Bf._abbr}function _a(a,b){if(null!==b){var c=Ef;if(b.abbr=a,null!=Ff[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),c=Ff[a]._config;else if(null!=b.parentLocale){if(null==Ff[b.parentLocale])return Gf[b.parentLocale]||(Gf[b.parentLocale]=[]),Gf[b.parentLocale].push({name:a,config:b}),null;c=Ff[b.parentLocale]._config}return Ff[a]=new C(B(c,b)),Gf[a]&&Gf[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Ff[a]}return delete Ff[a],null}function ab(a,b){if(null!=b){var c,d=Ef;null!=Ff[a]&&(d=Ff[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Ff[a],Ff[a]=c,$a(a)}else null!=Ff[a]&&(null!=Ff[a].parentLocale?Ff[a]=Ff[a].parentLocale:null!=Ff[a]&&delete Ff[a]);return Ff[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Bf;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return ze(Ff)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[ef]<0||c[ef]>11?ef:c[ff]<1||c[ff]>ea(c[df],c[ef])?ff:c[gf]<0||c[gf]>24||24===c[gf]&&(0!==c[hf]||0!==c[jf]||0!==c[kf])?gf:c[hf]<0||c[hf]>59?hf:c[jf]<0||c[jf]>59?jf:c[kf]<0||c[kf]>999?kf:-1,n(a)._overflowDayOfYear&&(b<df||b>ff)&&(b=ff),n(a)._overflowWeeks&&b===-1&&(b=lf),n(a)._overflowWeekday&&b===-1&&(b=mf),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=Hf.exec(h)||If.exec(h);if(i){for(n(a).iso=!0,b=0,c=Kf.length;b<c;b++)if(Kf[b][1].exec(i[1])){e=Kf[b][0],d=Kf[b][2]!==!1;break}if(null==e)return void(a._isValid=!1);if(i[3]){for(b=0,c=Lf.length;b<c;b++)if(Lf[b][1].exec(i[3])){f=(i[2]||\" \")+Lf[b][0];break}if(null==f)return void(a._isValid=!1)}if(!d&&null!=f)return void(a._isValid=!1);if(i[4]){if(!Jf.exec(i[4]))return void(a._isValid=!1);g=\"Z\"}a._f=e+(f||\"\")+(g||\"\"),lb(a)}else a._isValid=!1}function fb(a){var b,c,d,e,f,g,h,i,j={\" GMT\":\" +0000\",\" EDT\":\" -0400\",\" EST\":\" -0500\",\" CDT\":\" -0500\",\" CST\":\" -0600\",\" MDT\":\" -0600\",\" MST\":\" -0700\",\" PDT\":\" -0700\",\" PST\":\" -0800\"},k=\"YXWVUTSRQPONZABCDEFGHIKLM\";if(b=a._i.replace(/\\([^\\)]*\\)|[\\n\\t]/g,\" \").replace(/(\\s\\s+)/g,\" \").replace(/^\\s|\\s$/g,\"\"),c=Nf.exec(b)){if(d=c[1]?\"ddd\"+(5===c[1].length?\", \":\" \"):\"\",e=\"D MMM \"+(c[2].length>10?\"YYYY \":\"YY \"),f=\"HH:mm\"+(c[4]?\":ss\":\"\"),c[1]){var l=new Date(c[2]),m=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=\" +0000\":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?\" -\":\" +\")+(\"\"+i).replace(/^-?/,\"0\").match(/..$/)[0]+\"00\");break;case 4:h=j[c[5]];break;default:h=j[\" GMT\"]}c[5]=h,a._i=c.splice(1).join(\"\"),g=\" ZZ\",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Mf.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ff]&&null==a._a[ef]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[df],d[df]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[ef]=c.getUTCMonth(),a._a[ff]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[gf]&&0===a._a[hf]&&0===a._a[jf]&&0===a._a[kf]&&(a._nextDay=!0,a._a[gf]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[gf]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[df],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[df],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[df]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Ie)||[],c=0;c<e.length;c++)f=e[c],d=(h.match($(f,b))||[])[0],d&&(g=h.substr(0,h.indexOf(d)),g.length>0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Le[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[gf]<=12&&n(b).bigHour===!0&&b._a[gf]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[gf]=mb(b._locale,b._a[gf],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;e<a._f.length;e++)f=0,b=q({},a),null!=a._useUTC&&(b._useUTC=a._useUTC),b._f=a._f[e],lb(b),o(b)&&(f+=n(b).charsLeftOver,f+=10*n(b).unusedTokens.length,n(b).score=f,(null==d||f<d)&&(d=f,c=b));k(a,c||b)}function ob(a){if(!a._d){var b=L(a._i);a._a=i([b.year,b.month,b.day||b.date,b.hour,b.minute,b.second,b.millisecond],function(a){return a&&parseInt(a,10)}),jb(a)}}function pb(a){var b=new r(db(qb(a)));return b._nextDay&&(b.add(1,\"d\"),b._nextDay=void 0),b}function qb(a){var b=a._i,d=a._f;return a._locale=a._locale||bb(a._l),null===b||void 0===d&&\"\"===b?p({nullInput:!0}):(\"string\"==typeof b&&(a._i=b=a._locale.preparse(b)),s(b)?new r(db(b)):(h(b)?a._d=b:c(d)?nb(a):d?lb(a):rb(a),o(a)||(a._d=null),a))}function rb(b){var e=b._i;f(e)?b._d=new Date(a.now()):h(e)?b._d=new Date(e.valueOf()):\"string\"==typeof e?gb(b):c(e)?(b._a=i(e.slice(0),function(a){return parseInt(a,10)}),jb(b)):d(e)?ob(b):g(e)?b._d=new Date(e):a.createFromInputFallback(b)}function sb(a,b,f,g,h){var i={};return f!==!0&&f!==!1||(g=f,f=void 0),(d(a)&&e(a)||c(a)&&0===a.length)&&(a=void 0),i._isAMomentObject=!0,i._useUTC=i._isUTC=h,i._l=f,i._i=a,i._f=b,i._strict=g,pb(i)}function tb(a,b,c,d){return sb(a,b,c,d,!1)}function ub(a,b){var d,e;if(1===b.length&&c(b[0])&&(b=b[0]),!b.length)return tb();for(d=b[0],e=1;e<b.length;++e)b[e].isValid()&&!b[e][a](d)||(d=b[e]);return d}function vb(){var a=[].slice.call(arguments,0);return ub(\"isBefore\",a)}function wb(){var a=[].slice.call(arguments,0);return ub(\"isAfter\",a)}function xb(a){for(var b in a)if(Rf.indexOf(b)===-1||null!=a[b]&&isNaN(a[b]))return!1;for(var c=!1,d=0;d<Rf.length;++d)if(a[Rf[d]]){if(c)return!1;parseFloat(a[Rf[d]])!==u(a[Rf[d]])&&(c=!0)}return!0}function yb(){return this._isValid}function zb(){return Sb(NaN)}function Ab(a){var b=L(a),c=b.year||0,d=b.quarter||0,e=b.month||0,f=b.week||0,g=b.day||0,h=b.hour||0,i=b.minute||0,j=b.second||0,k=b.millisecond||0;this._isValid=xb(b),this._milliseconds=+k+1e3*j+6e4*i+1e3*h*60*60,this._days=+g+7*f,this._months=+e+3*d+12*c,this._data={},this._locale=bb(),this._bubble()}function Bb(a){return a instanceof Ab}function Cb(a){return a<0?Math.round(-1*a)*-1:Math.round(a)}function Db(a,b){U(a,0,0,function(){var a=this.utcOffset(),c=\"+\";return a<0&&(a=-a,c=\"-\"),c+T(~~(a/60),2)+b+T(~~a%60,2)})}function Eb(a,b){var c=(b||\"\").match(a);if(null===c)return null;var d=c[c.length-1]||[],e=(d+\"\").match(Sf)||[\"-\",0,0],f=+(60*e[1])+u(e[2]);return 0===f?0:\"+\"===e[0]?f:-f}function Fb(b,c){var d,e;return c._isUTC?(d=c.clone(),e=(s(b)||h(b)?b.valueOf():tb(b).valueOf())-d.valueOf(),d._d.setTime(d._d.valueOf()+e),a.updateOffset(d,!1),d):tb(b).local()}function Gb(a){return 15*-Math.round(a._d.getTimezoneOffset()/15)}function Hb(b,c,d){var e,f=this._offset||0;if(!this.isValid())return null!=b?this:NaN;if(null!=b){if(\"string\"==typeof b){if(b=Eb($e,b),null===b)return this}else Math.abs(b)<16&&!d&&(b=60*b);return!this._isUTC&&c&&(e=Gb(this)),this._offset=b,this._isUTC=!0,null!=e&&this.add(e,\"m\"),f!==b&&(!c||this._changeInProgress?Xb(this,Sb(b-f,\"m\"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?f:Gb(this)}function Ib(a,b){return null!=a?(\"string\"!=typeof a&&(a=-a),this.utcOffset(a,b),this):-this.utcOffset()}function Jb(a){return this.utcOffset(0,a)}function Kb(a){return this._isUTC&&(this.utcOffset(0,a),this._isUTC=!1,a&&this.subtract(Gb(this),\"m\")),this}function Lb(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if(\"string\"==typeof this._i){var a=Eb(Ze,this._i);null!=a?this.utcOffset(a):this.utcOffset(0,!0)}return this}function Mb(a){return!!this.isValid()&&(a=a?tb(a).utcOffset():0,(this.utcOffset()-a)%60===0)}function Nb(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Tf.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:0,d:u(h[ff])*c,h:u(h[gf])*c,m:u(h[hf])*c,s:u(h[jf])*c,ms:u(Cb(1e3*h[kf]))*c}):(h=Uf.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:\"object\"==typeof f&&(\"from\"in f||\"to\"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,\"_locale\")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(\",\",\".\"));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,\"days\",!0);return c<-6?\"sameElse\":c<-1?\"lastWeek\":c<0?\"lastDay\":c<1?\"sameDay\":c<2?\"nextDay\":c<7?\"nextWeek\":\"sameElse\"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()>c.valueOf():c.valueOf()<this.clone().startOf(b).valueOf())}function ac(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()<c.valueOf():this.clone().endOf(b).valueOf()<c.valueOf())}function bc(a,b,c,d){return d=d||\"()\",(\"(\"===d[0]?this.isAfter(a,c):!this.isBefore(a,c))&&(\")\"===d[1]?this.isBefore(b,c):!this.isAfter(b,c))}function cc(a,b){var c,d=s(a)?a:tb(a);return!(!this.isValid()||!d.isValid())&&(b=K(b||\"millisecond\"),\"millisecond\"===b?this.valueOf()===d.valueOf():(c=d.valueOf(),this.clone().startOf(b).valueOf()<=c&&c<=this.clone().endOf(b).valueOf()))}function dc(a,b){return this.isSame(a,b)||this.isAfter(a,b)}function ec(a,b){return this.isSame(a,b)||this.isBefore(a,b)}function fc(a,b,c){var d,e,f,g;return this.isValid()?(d=Fb(a,this),d.isValid()?(e=6e4*(d.utcOffset()-this.utcOffset()),b=K(b),\"year\"===b||\"month\"===b||\"quarter\"===b?(g=gc(this,d),\"quarter\"===b?g/=3:\"year\"===b&&(g/=12)):(f=this-d,g=\"second\"===b?f/1e3:\"minute\"===b?f/6e4:\"hour\"===b?f/36e5:\"day\"===b?(f-e)/864e5:\"week\"===b?(f-e)/6048e5:f),c?g:t(g)):NaN):NaN}function gc(a,b){var c,d,e=12*(b.year()-a.year())+(b.month()-a.month()),f=a.clone().add(e,\"months\");return b-f<0?(c=a.clone().add(e-1,\"months\"),d=(b-f)/(f-c)):(c=a.clone().add(e+1,\"months\"),d=(b-f)/(c-f)),-(e+d)||0}function hc(){return this.clone().locale(\"en\").format(\"ddd MMM DD YYYY HH:mm:ss [GMT]ZZ\")}function ic(){if(!this.isValid())return null;var a=this.clone().utc();return a.year()<0||a.year()>9999?X(a,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function jc(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var a=\"moment\",b=\"\";this.isLocal()||(a=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",b=\"Z\");var c=\"[\"+a+'(\"]',d=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",e=\"-MM-DD[T]HH:mm:ss.SSS\",f=b+'[\")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===a&&this.weekday(0),\"isoWeek\"===a&&this.isoWeekday(1),\"quarter\"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||\"millisecond\"===a?this:(\"date\"===a&&(a=\"day\"),this.startOf(a).add(1,\"isoWeek\"===a?\"week\":a).subtract(1,\"ms\"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){\nreturn k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Mc(a,b){b[kf]=u(1e3*(\"0.\"+a))}function Nc(){return this._isUTC?\"UTC\":\"\"}function Oc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Sc(a,b,c,\"month\");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,\"month\");return e}function Uc(a,b,c,d){\"boolean\"==typeof a?(g(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,\"day\");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,\"day\");return i}function Vc(a,b){return Tc(a,b,\"months\")}function Wc(a,b){return Tc(a,b,\"monthsShort\")}function Xc(a,b,c){return Uc(a,b,c,\"weekdays\")}function Yc(a,b,c){return Uc(a,b,c,\"weekdaysShort\")}function Zc(a,b,c){return Uc(a,b,c,\"weekdaysMin\")}function $c(){var a=this._data;return this._milliseconds=dg(this._milliseconds),this._days=dg(this._days),this._months=dg(this._months),a.milliseconds=dg(a.milliseconds),a.seconds=dg(a.seconds),a.minutes=dg(a.minutes),a.hours=dg(a.hours),a.months=dg(a.months),a.years=dg(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+ed(b),\"month\"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;case\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+\"s\"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=tg(d.as(\"s\")),f=tg(d.as(\"m\")),g=tg(d.as(\"h\")),h=tg(d.as(\"d\")),i=tg(d.as(\"M\")),j=tg(d.as(\"y\")),k=e<=ug.ss&&[\"s\",e]||e<ug.s&&[\"ss\",e]||f<=1&&[\"m\"]||f<ug.m&&[\"mm\",f]||g<=1&&[\"h\"]||g<ug.h&&[\"hh\",g]||h<=1&&[\"d\"]||h<ug.d&&[\"dd\",h]||i<=1&&[\"M\"]||i<ug.M&&[\"MM\",i]||j<=1&&[\"y\"]||[\"yy\",j];return k[2]=b,k[3]=+a>0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?tg:\"function\"==typeof a&&(tg=a,!0)}function pd(a,b){return void 0!==ug[a]&&(void 0===b?ug[a]:(ug[a]=b,\"s\"===a&&(ug.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=vg(this._milliseconds)/1e3,e=vg(this._days),f=vg(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}\n//! moment.js locale configuration\n//! locale : Belarusian [be]\n//! author : Dmitry Demidov : https://github.com/demidov91\n//! author: Praleska: http://praleska.pro/\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction sd(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function td(a,b,c){var d={mm:b?\"хвіліна_хвіліны_хвілін\":\"хвіліну_хвіліны_хвілін\",hh:b?\"гадзіна_гадзіны_гадзін\":\"гадзіну_гадзіны_гадзін\",dd:\"дзень_дні_дзён\",MM:\"месяц_месяцы_месяцаў\",yy:\"год_гады_гадоў\"};return\"m\"===c?b?\"хвіліна\":\"хвіліну\":\"h\"===c?b?\"гадзіна\":\"гадзіну\":a+\" \"+sd(d[c],+a)}\n//! moment.js locale configuration\n//! locale : Breton [br]\n//! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou\nfunction ud(a,b,c){var d={mm:\"munutenn\",MM:\"miz\",dd:\"devezh\"};return a+\" \"+xd(d[c],a)}function vd(a){switch(wd(a)){case 1:case 3:case 4:case 5:case 9:return a+\" bloaz\";default:return a+\" vloaz\"}}function wd(a){return a>9?wd(a%10):a}function xd(a,b){return 2===b?yd(a):a}function yd(a){var b={m:\"v\",b:\"v\",d:\"z\"};return void 0===b[a.charAt(0)]?a:b[a.charAt(0)]+a.substring(1)}\n//! moment.js locale configuration\n//! locale : Bosnian [bs]\n//! author : Nedim Cholich : https://github.com/frontyard\n//! based on (hr) translation by Bojan Marković\nfunction zd(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}function Ad(a){return a>1&&a<5&&1!==~~(a/10)}function Bd(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"pár sekund\":\"pár sekundami\";case\"m\":return b?\"minuta\":d?\"minutu\":\"minutou\";case\"mm\":return b||d?e+(Ad(a)?\"minuty\":\"minut\"):e+\"minutami\";break;case\"h\":return b?\"hodina\":d?\"hodinu\":\"hodinou\";case\"hh\":return b||d?e+(Ad(a)?\"hodiny\":\"hodin\"):e+\"hodinami\";break;case\"d\":return b||d?\"den\":\"dnem\";case\"dd\":return b||d?e+(Ad(a)?\"dny\":\"dní\"):e+\"dny\";break;case\"M\":return b||d?\"měsíc\":\"měsícem\";case\"MM\":return b||d?e+(Ad(a)?\"měsíce\":\"měsíců\"):e+\"měsíci\";break;case\"y\":return b||d?\"rok\":\"rokem\";case\"yy\":return b||d?e+(Ad(a)?\"roky\":\"let\"):e+\"lety\"}}\n//! moment.js locale configuration\n//! locale : German (Austria) [de-at]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Martin Groller : https://github.com/MadMG\n//! author : Mikolaj Dadela : https://github.com/mik01aj\nfunction Cd(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : German (Switzerland) [de-ch]\n//! author : sschueller : https://github.com/sschueller\nfunction Dd(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : German [de]\n//! author : lluchs : https://github.com/lluchs\n//! author: Menelion Elensúle: https://github.com/Oire\n//! author : Mikolaj Dadela : https://github.com/mik01aj\nfunction Ed(a,b,c,d){var e={m:[\"eine Minute\",\"einer Minute\"],h:[\"eine Stunde\",\"einer Stunde\"],d:[\"ein Tag\",\"einem Tag\"],dd:[a+\" Tage\",a+\" Tagen\"],M:[\"ein Monat\",\"einem Monat\"],MM:[a+\" Monate\",a+\" Monaten\"],y:[\"ein Jahr\",\"einem Jahr\"],yy:[a+\" Jahre\",a+\" Jahren\"]};return b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : Estonian [et]\n//! author : Henry Kehlmann : https://github.com/madhenry\n//! improvements : Illimar Tambek : https://github.com/ragulka\nfunction Fd(a,b,c,d){var e={s:[\"mõne sekundi\",\"mõni sekund\",\"paar sekundit\"],m:[\"ühe minuti\",\"üks minut\"],mm:[a+\" minuti\",a+\" minutit\"],h:[\"ühe tunni\",\"tund aega\",\"üks tund\"],hh:[a+\" tunni\",a+\" tundi\"],d:[\"ühe päeva\",\"üks päev\"],M:[\"kuu aja\",\"kuu aega\",\"üks kuu\"],MM:[a+\" kuu\",a+\" kuud\"],y:[\"ühe aasta\",\"aasta\",\"üks aasta\"],yy:[a+\" aasta\",a+\" aastat\"]};return b?e[c][2]?e[c][2]:e[c][1]:d?e[c][0]:e[c][1]}function Gd(a,b,c,d){var e=\"\";switch(c){case\"s\":return d?\"muutaman sekunnin\":\"muutama sekunti\";case\"m\":return d?\"minuutin\":\"minuutti\";case\"mm\":e=d?\"minuutin\":\"minuuttia\";break;case\"h\":return d?\"tunnin\":\"tunti\";case\"hh\":e=d?\"tunnin\":\"tuntia\";break;case\"d\":return d?\"päivän\":\"päivä\";case\"dd\":e=d?\"päivän\":\"päivää\";break;case\"M\":return d?\"kuukauden\":\"kuukausi\";case\"MM\":e=d?\"kuukauden\":\"kuukautta\";break;case\"y\":return d?\"vuoden\":\"vuosi\";case\"yy\":e=d?\"vuoden\":\"vuotta\"}return e=Hd(a,d)+\" \"+e}function Hd(a,b){return a<10?b?$g[a]:Zg[a]:a}\n//! moment.js locale configuration\n//! locale : Konkani Latin script [gom-latn]\n//! author : The Discoverer : https://github.com/WikiDiscoverer\nfunction Id(a,b,c,d){var e={s:[\"thodde secondanim\",\"thodde second\"],m:[\"eka mintan\",\"ek minute\"],mm:[a+\" mintanim\",a+\" mintam\"],h:[\"eka horan\",\"ek hor\"],hh:[a+\" horanim\",a+\" hor\"],d:[\"eka disan\",\"ek dis\"],dd:[a+\" disanim\",a+\" dis\"],M:[\"eka mhoinean\",\"ek mhoino\"],MM:[a+\" mhoineanim\",a+\" mhoine\"],y:[\"eka vorsan\",\"ek voros\"],yy:[a+\" vorsanim\",a+\" vorsam\"]};return b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : Croatian [hr]\n//! author : Bojan Marković : https://github.com/bmarkovic\nfunction Jd(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"jedna minuta\":\"jedne minute\";case\"mm\":return d+=1===a?\"minuta\":2===a||3===a||4===a?\"minute\":\"minuta\";case\"h\":return b?\"jedan sat\":\"jednog sata\";case\"hh\":return d+=1===a?\"sat\":2===a||3===a||4===a?\"sata\":\"sati\";case\"dd\":return d+=1===a?\"dan\":\"dana\";case\"MM\":return d+=1===a?\"mjesec\":2===a||3===a||4===a?\"mjeseca\":\"mjeseci\";case\"yy\":return d+=1===a?\"godina\":2===a||3===a||4===a?\"godine\":\"godina\"}}function Kd(a,b,c,d){var e=a;switch(c){case\"s\":return d||b?\"néhány másodperc\":\"néhány másodperce\";case\"m\":return\"egy\"+(d||b?\" perc\":\" perce\");case\"mm\":return e+(d||b?\" perc\":\" perce\");case\"h\":return\"egy\"+(d||b?\" óra\":\" órája\");case\"hh\":return e+(d||b?\" óra\":\" órája\");case\"d\":return\"egy\"+(d||b?\" nap\":\" napja\");case\"dd\":return e+(d||b?\" nap\":\" napja\");case\"M\":return\"egy\"+(d||b?\" hónap\":\" hónapja\");case\"MM\":return e+(d||b?\" hónap\":\" hónapja\");case\"y\":return\"egy\"+(d||b?\" év\":\" éve\");case\"yy\":return e+(d||b?\" év\":\" éve\")}return\"\"}function Ld(a){return(a?\"\":\"[múlt] \")+\"[\"+ih[this.day()]+\"] LT[-kor]\"}\n//! moment.js locale configuration\n//! locale : Icelandic [is]\n//! author : Hinrik Örn Sigurðsson : https://github.com/hinrik\nfunction Md(a){return a%100===11||a%10!==1}function Nd(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"nokkrar sekúndur\":\"nokkrum sekúndum\";case\"m\":return b?\"mínúta\":\"mínútu\";case\"mm\":return Md(a)?e+(b||d?\"mínútur\":\"mínútum\"):b?e+\"mínúta\":e+\"mínútu\";case\"hh\":return Md(a)?e+(b||d?\"klukkustundir\":\"klukkustundum\"):e+\"klukkustund\";case\"d\":return b?\"dagur\":d?\"dag\":\"degi\";case\"dd\":return Md(a)?b?e+\"dagar\":e+(d?\"daga\":\"dögum\"):b?e+\"dagur\":e+(d?\"dag\":\"degi\");case\"M\":return b?\"mánuður\":d?\"mánuð\":\"mánuði\";case\"MM\":return Md(a)?b?e+\"mánuðir\":e+(d?\"mánuði\":\"mánuðum\"):b?e+\"mánuður\":e+(d?\"mánuð\":\"mánuði\");case\"y\":return b||d?\"ár\":\"ári\";case\"yy\":return Md(a)?e+(b||d?\"ár\":\"árum\"):e+(b||d?\"ár\":\"ári\")}}\n//! moment.js locale configuration\n//! locale : Luxembourgish [lb]\n//! author : mweimerskirch : https://github.com/mweimerskirch\n//! author : David Raison : https://github.com/kwisatz\nfunction Od(a,b,c,d){var e={m:[\"eng Minutt\",\"enger Minutt\"],h:[\"eng Stonn\",\"enger Stonn\"],d:[\"een Dag\",\"engem Dag\"],M:[\"ee Mount\",\"engem Mount\"],y:[\"ee Joer\",\"engem Joer\"]};return b?e[c][0]:e[c][1]}function Pd(a){var b=a.substr(0,a.indexOf(\" \"));return Rd(b)?\"a \"+a:\"an \"+a}function Qd(a){var b=a.substr(0,a.indexOf(\" \"));return Rd(b)?\"viru \"+a:\"virun \"+a}function Rd(a){if(a=parseInt(a,10),isNaN(a))return!1;if(a<0)return!0;if(a<10)return 4<=a&&a<=7;if(a<100){var b=a%10,c=a/10;return Rd(0===b?c:b)}if(a<1e4){for(;a>=10;)a/=10;return Rd(a)}return a/=1e3,Rd(a)}function Sd(a,b,c,d){return b?\"kelios sekundės\":d?\"kelių sekundžių\":\"kelias sekundes\"}function Td(a,b,c,d){return b?Vd(c)[0]:d?Vd(c)[1]:Vd(c)[2]}function Ud(a){return a%10===0||a>10&&a<20}function Vd(a){return nh[a].split(\"_\")}function Wd(a,b,c,d){var e=a+\" \";return 1===a?e+Td(a,b,c[0],d):b?e+(Ud(a)?Vd(c)[1]:Vd(c)[0]):d?e+Vd(c)[1]:e+(Ud(a)?Vd(c)[1]:Vd(c)[2])}function Xd(a,b,c){return c?b%10===1&&b%100!==11?a[2]:a[3]:b%10===1&&b%100!==11?a[0]:a[1]}function Yd(a,b,c){return a+\" \"+Xd(oh[c],a,b)}function Zd(a,b,c){return Xd(oh[c],a,b)}function $d(a,b){return b?\"dažas sekundes\":\"dažām sekundēm\"}function _d(a,b,c,d){var e=\"\";if(b)switch(c){case\"s\":e=\"काही सेकंद\";break;case\"m\":e=\"एक मिनिट\";break;case\"mm\":e=\"%d मिनिटे\";break;case\"h\":e=\"एक तास\";break;case\"hh\":e=\"%d तास\";break;case\"d\":e=\"एक दिवस\";break;case\"dd\":e=\"%d दिवस\";break;case\"M\":e=\"एक महिना\";break;case\"MM\":e=\"%d महिने\";break;case\"y\":e=\"एक वर्ष\";break;case\"yy\":e=\"%d वर्षे\"}else switch(c){case\"s\":e=\"काही सेकंदां\";break;case\"m\":e=\"एका मिनिटा\";break;case\"mm\":e=\"%d मिनिटां\";break;case\"h\":e=\"एका तासा\";break;case\"hh\":e=\"%d तासां\";break;case\"d\":e=\"एका दिवसा\";break;case\"dd\":e=\"%d दिवसां\";break;case\"M\":e=\"एका महिन्या\";break;case\"MM\":e=\"%d महिन्यां\";break;case\"y\":e=\"एका वर्षा\";break;case\"yy\":e=\"%d वर्षां\"}return e.replace(/%d/i,a)}function ae(a){return a%10<5&&a%10>1&&~~(a/10)%10!==1}function be(a,b,c){var d=a+\" \";switch(c){case\"m\":return b?\"minuta\":\"minutę\";case\"mm\":return d+(ae(a)?\"minuty\":\"minut\");case\"h\":return b?\"godzina\":\"godzinę\";case\"hh\":return d+(ae(a)?\"godziny\":\"godzin\");case\"MM\":return d+(ae(a)?\"miesiące\":\"miesięcy\");case\"yy\":return d+(ae(a)?\"lata\":\"lat\")}}\n//! moment.js locale configuration\n//! locale : Romanian [ro]\n//! author : Vlad Gurdiga : https://github.com/gurdiga\n//! author : Valentin Agachi : https://github.com/avaly\nfunction ce(a,b,c){var d={mm:\"minute\",hh:\"ore\",dd:\"zile\",MM:\"luni\",yy:\"ani\"},e=\" \";return(a%100>=20||a>=100&&a%100===0)&&(e=\" de \"),a+e+d[c]}\n//! moment.js locale configuration\n//! locale : Russian [ru]\n//! author : Viktorminator : https://github.com/Viktorminator\n//! Author : Menelion Elensúle : https://github.com/Oire\n//! author : Коренберг Марк : https://github.com/socketpair\nfunction de(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function ee(a,b,c){var d={mm:b?\"минута_минуты_минут\":\"минуту_минуты_минут\",hh:\"час_часа_часов\",dd:\"день_дня_дней\",MM:\"месяц_месяца_месяцев\",yy:\"год_года_лет\"};return\"m\"===c?b?\"минута\":\"минуту\":a+\" \"+de(d[c],+a)}function fe(a){return a>1&&a<5}function ge(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"pár sekúnd\":\"pár sekundami\";case\"m\":return b?\"minúta\":d?\"minútu\":\"minútou\";case\"mm\":return b||d?e+(fe(a)?\"minúty\":\"minút\"):e+\"minútami\";break;case\"h\":return b?\"hodina\":d?\"hodinu\":\"hodinou\";case\"hh\":return b||d?e+(fe(a)?\"hodiny\":\"hodín\"):e+\"hodinami\";break;case\"d\":return b||d?\"deň\":\"dňom\";case\"dd\":return b||d?e+(fe(a)?\"dni\":\"dní\"):e+\"dňami\";break;case\"M\":return b||d?\"mesiac\":\"mesiacom\";case\"MM\":return b||d?e+(fe(a)?\"mesiace\":\"mesiacov\"):e+\"mesiacmi\";break;case\"y\":return b||d?\"rok\":\"rokom\";case\"yy\":return b||d?e+(fe(a)?\"roky\":\"rokov\"):e+\"rokmi\"}}\n//! moment.js locale configuration\n//! locale : Slovenian [sl]\n//! author : Robert Sedovšek : https://github.com/sedovsek\nfunction he(a,b,c,d){var e=a+\" \";switch(c){case\"s\":return b||d?\"nekaj sekund\":\"nekaj sekundami\";case\"m\":return b?\"ena minuta\":\"eno minuto\";case\"mm\":return e+=1===a?b?\"minuta\":\"minuto\":2===a?b||d?\"minuti\":\"minutama\":a<5?b||d?\"minute\":\"minutami\":b||d?\"minut\":\"minutami\";case\"h\":return b?\"ena ura\":\"eno uro\";case\"hh\":return e+=1===a?b?\"ura\":\"uro\":2===a?b||d?\"uri\":\"urama\":a<5?b||d?\"ure\":\"urami\":b||d?\"ur\":\"urami\";case\"d\":return b||d?\"en dan\":\"enim dnem\";case\"dd\":return e+=1===a?b||d?\"dan\":\"dnem\":2===a?b||d?\"dni\":\"dnevoma\":b||d?\"dni\":\"dnevi\";case\"M\":return b||d?\"en mesec\":\"enim mesecem\";case\"MM\":return e+=1===a?b||d?\"mesec\":\"mesecem\":2===a?b||d?\"meseca\":\"mesecema\":a<5?b||d?\"mesece\":\"meseci\":b||d?\"mesecev\":\"meseci\";case\"y\":return b||d?\"eno leto\":\"enim letom\";case\"yy\":return e+=1===a?b||d?\"leto\":\"letom\":2===a?b||d?\"leti\":\"letoma\":a<5?b||d?\"leta\":\"leti\":b||d?\"let\":\"leti\"}}function ie(a){var b=a;return b=a.indexOf(\"jaj\")!==-1?b.slice(0,-3)+\"leS\":a.indexOf(\"jar\")!==-1?b.slice(0,-3)+\"waQ\":a.indexOf(\"DIS\")!==-1?b.slice(0,-3)+\"nem\":b+\" pIq\"}function je(a){var b=a;return b=a.indexOf(\"jaj\")!==-1?b.slice(0,-3)+\"Hu’\":a.indexOf(\"jar\")!==-1?b.slice(0,-3)+\"wen\":a.indexOf(\"DIS\")!==-1?b.slice(0,-3)+\"ben\":b+\" ret\"}function ke(a,b,c,d){var e=le(a);switch(c){case\"mm\":return e+\" tup\";case\"hh\":return e+\" rep\";case\"dd\":return e+\" jaj\";case\"MM\":return e+\" jar\";case\"yy\":return e+\" DIS\"}}function le(a){var b=Math.floor(a%1e3/100),c=Math.floor(a%100/10),d=a%10,e=\"\";return b>0&&(e+=Rh[b]+\"vatlh\"),c>0&&(e+=(\"\"!==e?\" \":\"\")+Rh[c]+\"maH\"),d>0&&(e+=(\"\"!==e?\" \":\"\")+Rh[d]),\"\"===e?\"pagh\":e}function me(a,b,c,d){var e={s:[\"viensas secunds\",\"'iensas secunds\"],m:[\"'n míut\",\"'iens míut\"],mm:[a+\" míuts\",\"\"+a+\" míuts\"],h:[\"'n þora\",\"'iensa þora\"],hh:[a+\" þoras\",\"\"+a+\" þoras\"],d:[\"'n ziua\",\"'iensa ziua\"],dd:[a+\" ziuas\",\"\"+a+\" ziuas\"],M:[\"'n mes\",\"'iens mes\"],MM:[a+\" mesen\",\"\"+a+\" mesen\"],y:[\"'n ar\",\"'iens ar\"],yy:[a+\" ars\",\"\"+a+\" ars\"]};return d?e[c][0]:b?e[c][0]:e[c][1]}\n//! moment.js locale configuration\n//! locale : Ukrainian [uk]\n//! author : zemlanin : https://github.com/zemlanin\n//! Author : Menelion Elensúle : https://github.com/Oire\nfunction ne(a,b){var c=a.split(\"_\");return b%10===1&&b%100!==11?c[0]:b%10>=2&&b%10<=4&&(b%100<10||b%100>=20)?c[1]:c[2]}function oe(a,b,c){var d={mm:b?\"хвилина_хвилини_хвилин\":\"хвилину_хвилини_хвилин\",hh:b?\"година_години_годин\":\"годину_години_годин\",dd:\"день_дні_днів\",MM:\"місяць_місяці_місяців\",yy:\"рік_роки_років\"};return\"m\"===c?b?\"хвилина\":\"хвилину\":\"h\"===c?b?\"година\":\"годину\":a+\" \"+ne(d[c],+a)}function pe(a,b){var c={nominative:\"неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота\".split(\"_\"),accusative:\"неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу\".split(\"_\"),genitive:\"неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи\".split(\"_\")};if(!a)return c.nominative;var d=/(\\[[ВвУу]\\]) ?dddd/.test(b)?\"accusative\":/\\[?(?:минулої|наступної)? ?\\] ?dddd/.test(b)?\"genitive\":\"nominative\";return c[d][a.day()]}function qe(a){return function(){return a+\"о\"+(11===this.hours()?\"б\":\"\")+\"] LT\"}}var re,se;se=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d<c;d++)if(d in b&&a.call(this,b[d],d,b))return!0;return!1};var te=se,ue=a.momentProperties=[],ve=!1,we={};a.suppressDeprecationWarnings=!1,a.deprecationHandler=null;var xe;xe=Object.keys?Object.keys:function(a){var b,c=[];for(b in a)j(a,b)&&c.push(b);return c};var ye,ze=xe,Ae={sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},Be={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},Ce=\"Invalid date\",De=\"%d\",Ee=/\\d{1,2}/,Fe={future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",ss:\"%d seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},Ge={},He={},Ie=/(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Je=/(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ke={},Le={},Me=/\\d/,Ne=/\\d\\d/,Oe=/\\d{3}/,Pe=/\\d{4}/,Qe=/[+-]?\\d{6}/,Re=/\\d\\d?/,Se=/\\d\\d\\d\\d?/,Te=/\\d\\d\\d\\d\\d\\d?/,Ue=/\\d{1,3}/,Ve=/\\d{1,4}/,We=/[+-]?\\d{1,6}/,Xe=/\\d+/,Ye=/[+-]?\\d+/,Ze=/Z|[+-]\\d\\d:?\\d\\d/gi,$e=/Z|[+-]\\d\\d(?::?\\d\\d)?/gi,_e=/[+-]?\\d+(\\.\\d{1,3})?/,af=/[0-9]*['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+|[\\u0600-\\u06FF\\/]+(\\s*?[\\u0600-\\u06FF]+){1,2}/i,bf={},cf={},df=0,ef=1,ff=2,gf=3,hf=4,jf=5,kf=6,lf=7,mf=8;ye=Array.prototype.indexOf?Array.prototype.indexOf:function(a){var b;for(b=0;b<this.length;++b)if(this[b]===a)return b;return-1};var nf=ye;U(\"M\",[\"MM\",2],\"Mo\",function(){return this.month()+1}),U(\"MMM\",0,0,function(a){return this.localeData().monthsShort(this,a)}),U(\"MMMM\",0,0,function(a){return this.localeData().months(this,a)}),J(\"month\",\"M\"),M(\"month\",8),Z(\"M\",Re),Z(\"MM\",Re,Ne),Z(\"MMM\",function(a,b){return b.monthsShortRegex(a)}),Z(\"MMMM\",function(a,b){return b.monthsRegex(a)}),ba([\"M\",\"MM\"],function(a,b){b[ef]=u(a)-1}),ba([\"MMM\",\"MMMM\"],function(a,b,c,d){var e=c._locale.monthsParse(a,d,c._strict);null!=e?b[ef]=e:n(c).invalidMonth=a});var of=/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,pf=\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),qf=\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),rf=af,sf=af;U(\"Y\",0,0,function(){var a=this.year();return a<=9999?\"\"+a:\"+\"+a}),U(0,[\"YY\",2],0,function(){return this.year()%100}),U(0,[\"YYYY\",4],0,\"year\"),U(0,[\"YYYYY\",5],0,\"year\"),U(0,[\"YYYYYY\",6,!0],0,\"year\"),J(\"year\",\"y\"),M(\"year\",1),Z(\"Y\",Ye),Z(\"YY\",Re,Ne),Z(\"YYYY\",Ve,Pe),Z(\"YYYYY\",We,Qe),Z(\"YYYYYY\",We,Qe),ba([\"YYYYY\",\"YYYYYY\"],df),ba(\"YYYY\",function(b,c){c[df]=2===b.length?a.parseTwoDigitYear(b):u(b)}),ba(\"YY\",function(b,c){c[df]=a.parseTwoDigitYear(b)}),ba(\"Y\",function(a,b){b[df]=parseInt(a,10)}),a.parseTwoDigitYear=function(a){return u(a)+(u(a)>68?1900:2e3)};var tf=O(\"FullYear\",!0);U(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),J(\"week\",\"w\"),J(\"isoWeek\",\"W\"),M(\"week\",5),M(\"isoWeek\",5),Z(\"w\",Re),Z(\"ww\",Re,Ne),Z(\"W\",Re),Z(\"WW\",Re,Ne),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var uf={dow:0,doy:6};U(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),J(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),M(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),Z(\"d\",Re),Z(\"e\",Re),Z(\"E\",Re),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});var vf=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),wf=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),xf=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),yf=af,zf=af,Af=af;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),J(\"hour\",\"h\"),M(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Re),Z(\"h\",Re),Z(\"k\",Re),Z(\"HH\",Re,Ne),Z(\"hh\",Re,Ne),Z(\"kk\",Re,Ne),Z(\"hmm\",Se),Z(\"hmmss\",Te),Z(\"Hmm\",Se),Z(\"Hmmss\",Te),ba([\"H\",\"HH\"],gf),ba([\"k\",\"kk\"],function(a,b,c){var d=u(a);b[gf]=24===d?0:d}),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[gf]=u(a),n(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d)),n(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d,2)),b[jf]=u(a.substr(e)),n(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[gf]=u(a.substr(0,d)),b[hf]=u(a.substr(d,2)),b[jf]=u(a.substr(e))});var Bf,Cf=/[ap]\\.?m?\\.?/i,Df=O(\"Hours\",!0),Ef={calendar:Ae,longDateFormat:Be,invalidDate:Ce,ordinal:De,dayOfMonthOrdinalParse:Ee,relativeTime:Fe,months:pf,monthsShort:qf,week:uf,weekdays:vf,weekdaysMin:xf,weekdaysShort:wf,meridiemParse:Cf},Ff={},Gf={},Hf=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,If=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Jf=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Kf=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Lf=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Mf=/^\\/?Date\\((\\-?\\d+)/i,Nf=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d?\\d\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(?:\\d\\d)?\\d\\d\\s)(\\d\\d:\\d\\d)(\\:\\d\\d)?(\\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\\d{4}))$/;a.createFromInputFallback=x(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Of=x(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a<this?this:a:p()}),Pf=x(\"moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?a>this?this:a:p()}),Qf=function(){return Date.now?Date.now():+new Date},Rf=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];Db(\"Z\",\":\"),Db(\"ZZ\",\"\"),Z(\"Z\",$e),Z(\"ZZ\",$e),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Eb($e,a)});var Sf=/([\\+\\-]|\\d\\d)/gi;a.updateOffset=function(){};var Tf=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Uf=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Vf=Wb(1,\"add\"),Wf=Wb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xf=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),Dc(\"gggg\",\"weekYear\"),Dc(\"ggggg\",\"weekYear\"),Dc(\"GGGG\",\"isoWeekYear\"),Dc(\"GGGGG\",\"isoWeekYear\"),J(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),M(\"weekYear\",1),M(\"isoWeekYear\",1),Z(\"G\",Ye),Z(\"g\",Ye),Z(\"GG\",Re,Ne),Z(\"gg\",Re,Ne),Z(\"GGGG\",Ve,Pe),Z(\"gggg\",Ve,Pe),Z(\"GGGGG\",We,Qe),Z(\"ggggg\",We,Qe),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U(\"Q\",0,\"Qo\",\"quarter\"),J(\"quarter\",\"Q\"),M(\"quarter\",7),Z(\"Q\",Me),ba(\"Q\",function(a,b){b[ef]=3*(u(a)-1)}),U(\"D\",[\"DD\",2],\"Do\",\"date\"),J(\"date\",\"D\"),M(\"date\",9),Z(\"D\",Re),Z(\"DD\",Re,Ne),Z(\"Do\",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba([\"D\",\"DD\"],ff),ba(\"Do\",function(a,b){b[ff]=u(a.match(Re)[0],10)});var Yf=O(\"Date\",!0);U(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),J(\"dayOfYear\",\"DDD\"),M(\"dayOfYear\",4),Z(\"DDD\",Ue),Z(\"DDDD\",Oe),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),U(\"m\",[\"mm\",2],0,\"minute\"),J(\"minute\",\"m\"),M(\"minute\",14),Z(\"m\",Re),Z(\"mm\",Re,Ne),ba([\"m\",\"mm\"],hf);var Zf=O(\"Minutes\",!1);U(\"s\",[\"ss\",2],0,\"second\"),J(\"second\",\"s\"),M(\"second\",15),Z(\"s\",Re),Z(\"ss\",Re,Ne),ba([\"s\",\"ss\"],jf);var $f=O(\"Seconds\",!1);U(\"S\",0,0,function(){return~~(this.millisecond()/100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),J(\"millisecond\",\"ms\"),M(\"millisecond\",16),Z(\"S\",Ue,Me),Z(\"SS\",Ue,Ne),Z(\"SSS\",Ue,Oe);var _f;for(_f=\"SSSS\";_f.length<=9;_f+=\"S\")Z(_f,Xe);for(_f=\"S\";_f.length<=9;_f+=\"S\")ba(_f,Mc);var ag=O(\"Milliseconds\",!1);U(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var bg=r.prototype;bg.add=Vf,bg.calendar=Zb,bg.clone=$b,bg.diff=fc,bg.endOf=sc,bg.format=kc,bg.from=lc,bg.fromNow=mc,bg.to=nc,bg.toNow=oc,bg.get=R,bg.invalidAt=Bc,bg.isAfter=_b,bg.isBefore=ac,bg.isBetween=bc,bg.isSame=cc,bg.isSameOrAfter=dc,bg.isSameOrBefore=ec,bg.isValid=zc,bg.lang=Xf,bg.locale=pc,bg.localeData=qc,bg.max=Pf,bg.min=Of,bg.parsingFlags=Ac,bg.set=S,bg.startOf=rc,bg.subtract=Wf,bg.toArray=wc,bg.toObject=xc,bg.toDate=vc,bg.toISOString=ic,bg.inspect=jc,bg.toJSON=yc,bg.toString=hc,bg.unix=uc,bg.valueOf=tc,bg.creationData=Cc,bg.year=tf,bg.isLeapYear=ra,bg.weekYear=Ec,bg.isoWeekYear=Fc,bg.quarter=bg.quarters=Kc,bg.month=ka,bg.daysInMonth=la,bg.week=bg.weeks=Ba,bg.isoWeek=bg.isoWeeks=Ca,bg.weeksInYear=Hc,bg.isoWeeksInYear=Gc,bg.date=Yf,bg.day=bg.days=Ka,bg.weekday=La,bg.isoWeekday=Ma,bg.dayOfYear=Lc,bg.hour=bg.hours=Df,bg.minute=bg.minutes=Zf,bg.second=bg.seconds=$f,bg.millisecond=bg.milliseconds=ag,bg.utcOffset=Hb,bg.utc=Jb,bg.local=Kb,bg.parseZone=Lb,bg.hasAlignedHourOffset=Mb,bg.isDST=Nb,bg.isLocal=Pb,bg.isUtcOffset=Qb,bg.isUtc=Rb,bg.isUTC=Rb,bg.zoneAbbr=Nc,bg.zoneName=Oc,bg.dates=x(\"dates accessor is deprecated. Use date instead.\",Yf),bg.months=x(\"months accessor is deprecated. Use month instead\",ka),bg.years=x(\"years accessor is deprecated. Use year instead\",tf),bg.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",Ib),bg.isDSTShifted=x(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",Ob);var cg=C.prototype;cg.calendar=D,cg.longDateFormat=E,cg.invalidDate=F,cg.ordinal=G,cg.preparse=Rc,cg.postformat=Rc,cg.relativeTime=H,cg.pastFuture=I,cg.set=A,cg.months=fa,cg.monthsShort=ga,cg.monthsParse=ia,cg.monthsRegex=na,cg.monthsShortRegex=ma,cg.week=ya,cg.firstDayOfYear=Aa,cg.firstDayOfWeek=za,cg.weekdays=Fa,cg.weekdaysMin=Ha,cg.weekdaysShort=Ga,cg.weekdaysParse=Ja,cg.weekdaysRegex=Na,cg.weekdaysShortRegex=Oa,cg.weekdaysMinRegex=Pa,cg.isPM=Va,cg.meridiem=Wa,$a(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var dg=Math.abs,eg=id(\"ms\"),fg=id(\"s\"),gg=id(\"m\"),hg=id(\"h\"),ig=id(\"d\"),jg=id(\"w\"),kg=id(\"M\"),lg=id(\"y\"),mg=kd(\"milliseconds\"),ng=kd(\"seconds\"),og=kd(\"minutes\"),pg=kd(\"hours\"),qg=kd(\"days\"),rg=kd(\"months\"),sg=kd(\"years\"),tg=Math.round,ug={ss:44,s:45,m:45,h:22,d:26,M:11},vg=Math.abs,wg=Ab.prototype;wg.isValid=yb,wg.abs=$c,wg.add=ad,wg.subtract=bd,wg.as=gd,wg.asMilliseconds=eg,wg.asSeconds=fg,wg.asMinutes=gg,wg.asHours=hg,wg.asDays=ig,wg.asWeeks=jg,wg.asMonths=kg,wg.asYears=lg,wg.valueOf=hd,wg._bubble=dd,wg.get=jd,wg.milliseconds=mg,wg.seconds=ng,wg.minutes=og,wg.hours=pg,wg.days=qg,wg.weeks=ld,wg.months=rg,wg.years=sg,wg.humanize=qd,wg.toISOString=rd,wg.toString=rd,wg.toJSON=rd,wg.locale=pc,wg.localeData=qc,wg.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",rd),wg.lang=Xf,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Ye),Z(\"X\",_e),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),\n//! moment.js\n//! version : 2.18.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\na.version=\"2.18.1\",b(tb),a.fn=bg,a.min=vb,a.max=wb,a.now=Qf,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bg,\n//! moment.js locale configuration\n//! locale : Afrikaans [af]\n//! author : Werner Mollentze : https://github.com/wernerm\na.defineLocale(\"af\",{months:\"Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag\".split(\"_\"),weekdaysShort:\"Son_Maa_Din_Woe_Don_Vry_Sat\".split(\"_\"),weekdaysMin:\"So_Ma_Di_Wo_Do_Vr_Sa\".split(\"_\"),meridiemParse:/vm|nm/i,isPM:function(a){return/^nm$/i.test(a)},meridiem:function(a,b,c){return a<12?c?\"vm\":\"VM\":c?\"nm\":\"NM\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Vandag om] LT\",nextDay:\"[Môre om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[Gister om] LT\",lastWeek:\"[Laas] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oor %s\",past:\"%s gelede\",s:\"'n paar sekondes\",m:\"'n minuut\",mm:\"%d minute\",h:\"'n uur\",hh:\"%d ure\",d:\"'n dag\",dd:\"%d dae\",M:\"'n maand\",MM:\"%d maande\",y:\"'n jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Arabic (Algeria) [ar-dz]\n//! author : Noureddine LOUAHEDJ : https://github.com/noureddineme\na.defineLocale(\"ar-dz\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اثنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"أح_إث_ثلا_أر_خم_جم_سب\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:0,doy:4}}),\n//! moment.js locale configuration\n//! locale : Arabic (Kuwait) [ar-kw]\n//! author : Nusret Parlak: https://github.com/nusretparlak\na.defineLocale(\"ar-kw\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:0,doy:12}});\n//! moment.js locale configuration\n//! locale : Arabic (Lybia) [ar-ly]\n//! author : Ali Hmer: https://github.com/kikoanis\nvar xg={1:\"1\",2:\"2\",3:\"3\",4:\"4\",5:\"5\",6:\"6\",7:\"7\",8:\"8\",9:\"9\",0:\"0\"},yg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},zg={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},Ag=function(a){return function(b,c,d,e){var f=yg(b),g=zg[a][yg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Bg=[\"يناير\",\"فبراير\",\"مارس\",\"أبريل\",\"مايو\",\"يونيو\",\"يوليو\",\"أغسطس\",\"سبتمبر\",\"أكتوبر\",\"نوفمبر\",\"ديسمبر\"];a.defineLocale(\"ar-ly\",{months:Bg,monthsShort:Bg,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return a<12?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:Ag(\"s\"),m:Ag(\"m\"),mm:Ag(\"m\"),h:Ag(\"h\"),hh:Ag(\"h\"),d:Ag(\"d\"),dd:Ag(\"d\"),M:Ag(\"M\"),MM:Ag(\"M\"),y:Ag(\"y\"),yy:Ag(\"y\")},preparse:function(a){return a.replace(/\\u200f/g,\"\").replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return xg[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}}),\n//! moment.js locale configuration\n//! locale : Arabic (Morocco) [ar-ma]\n//! author : ElFadili Yassine : https://github.com/ElFadiliY\n//! author : Abdel Said : https://github.com/abdelsaid\na.defineLocale(\"ar-ma\",{months:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر\".split(\"_\"),weekdays:\"الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:6,doy:12}});\n//! moment.js locale configuration\n//! locale : Arabic (Saudi Arabia) [ar-sa]\n//! author : Suhail Alkowaileet : https://github.com/xsoh\nvar Cg={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},Dg={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"};a.defineLocale(\"ar-sa\",{months:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return a<12?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},preparse:function(a){return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Dg[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return Cg[a]}).replace(/,/g,\"،\")},week:{dow:0,doy:6}}),\n//! moment.js locale configuration\n//! locale : Arabic (Tunisia) [ar-tn]\n//! author : Nader Toukabri : https://github.com/naderio\na.defineLocale(\"ar-tn\",{months:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),monthsShort:\"جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر\".split(\"_\"),weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[اليوم على الساعة] LT\",nextDay:\"[غدا على الساعة] LT\",nextWeek:\"dddd [على الساعة] LT\",lastDay:\"[أمس على الساعة] LT\",lastWeek:\"dddd [على الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"في %s\",past:\"منذ %s\",s:\"ثوان\",m:\"دقيقة\",mm:\"%d دقائق\",h:\"ساعة\",hh:\"%d ساعات\",d:\"يوم\",dd:\"%d أيام\",M:\"شهر\",MM:\"%d أشهر\",y:\"سنة\",yy:\"%d سنوات\"},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Arabic [ar]\n//! author : Abdel Said: https://github.com/abdelsaid\n//! author : Ahmed Elkhatib\n//! author : forabi https://github.com/forabi\nvar Eg={1:\"١\",2:\"٢\",3:\"٣\",4:\"٤\",5:\"٥\",6:\"٦\",7:\"٧\",8:\"٨\",9:\"٩\",0:\"٠\"},Fg={\"١\":\"1\",\"٢\":\"2\",\"٣\":\"3\",\"٤\":\"4\",\"٥\":\"5\",\"٦\":\"6\",\"٧\":\"7\",\"٨\":\"8\",\"٩\":\"9\",\"٠\":\"0\"},Gg=function(a){return 0===a?0:1===a?1:2===a?2:a%100>=3&&a%100<=10?3:a%100>=11?4:5},Hg={s:[\"أقل من ثانية\",\"ثانية واحدة\",[\"ثانيتان\",\"ثانيتين\"],\"%d ثوان\",\"%d ثانية\",\"%d ثانية\"],m:[\"أقل من دقيقة\",\"دقيقة واحدة\",[\"دقيقتان\",\"دقيقتين\"],\"%d دقائق\",\"%d دقيقة\",\"%d دقيقة\"],h:[\"أقل من ساعة\",\"ساعة واحدة\",[\"ساعتان\",\"ساعتين\"],\"%d ساعات\",\"%d ساعة\",\"%d ساعة\"],d:[\"أقل من يوم\",\"يوم واحد\",[\"يومان\",\"يومين\"],\"%d أيام\",\"%d يومًا\",\"%d يوم\"],M:[\"أقل من شهر\",\"شهر واحد\",[\"شهران\",\"شهرين\"],\"%d أشهر\",\"%d شهرا\",\"%d شهر\"],y:[\"أقل من عام\",\"عام واحد\",[\"عامان\",\"عامين\"],\"%d أعوام\",\"%d عامًا\",\"%d عام\"]},Ig=function(a){return function(b,c,d,e){var f=Gg(b),g=Hg[a][Gg(b)];return 2===f&&(g=g[c?0:1]),g.replace(/%d/i,b)}},Jg=[\"كانون الثاني يناير\",\"شباط فبراير\",\"آذار مارس\",\"نيسان أبريل\",\"أيار مايو\",\"حزيران يونيو\",\"تموز يوليو\",\"آب أغسطس\",\"أيلول سبتمبر\",\"تشرين الأول أكتوبر\",\"تشرين الثاني نوفمبر\",\"كانون الأول ديسمبر\"];a.defineLocale(\"ar\",{months:Jg,monthsShort:Jg,weekdays:\"الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت\".split(\"_\"),weekdaysShort:\"أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت\".split(\"_\"),weekdaysMin:\"ح_ن_ث_ر_خ_ج_س\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/ص|م/,isPM:function(a){return\"م\"===a},meridiem:function(a,b,c){return a<12?\"ص\":\"م\"},calendar:{sameDay:\"[اليوم عند الساعة] LT\",nextDay:\"[غدًا عند الساعة] LT\",nextWeek:\"dddd [عند الساعة] LT\",lastDay:\"[أمس عند الساعة] LT\",lastWeek:\"dddd [عند الساعة] LT\",sameElse:\"L\"},relativeTime:{future:\"بعد %s\",past:\"منذ %s\",s:Ig(\"s\"),m:Ig(\"m\"),mm:Ig(\"m\"),h:Ig(\"h\"),hh:Ig(\"h\"),d:Ig(\"d\"),dd:Ig(\"d\"),M:Ig(\"M\"),MM:Ig(\"M\"),y:Ig(\"y\"),yy:Ig(\"y\")},preparse:function(a){return a.replace(/\\u200f/g,\"\").replace(/[١٢٣٤٥٦٧٨٩٠]/g,function(a){return Fg[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return Eg[a]}).replace(/,/g,\"،\")},week:{dow:6,doy:12}});\n//! moment.js locale configuration\n//! locale : Azerbaijani [az]\n//! author : topchiyev : https://github.com/topchiyev\nvar Kg={1:\"-inci\",5:\"-inci\",8:\"-inci\",70:\"-inci\",80:\"-inci\",2:\"-nci\",7:\"-nci\",20:\"-nci\",50:\"-nci\",3:\"-üncü\",4:\"-üncü\",100:\"-üncü\",6:\"-ncı\",9:\"-uncu\",10:\"-uncu\",30:\"-uncu\",60:\"-ıncı\",90:\"-ıncı\"};a.defineLocale(\"az\",{months:\"yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr\".split(\"_\"),monthsShort:\"yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek\".split(\"_\"),weekdays:\"Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə\".split(\"_\"),weekdaysShort:\"Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən\".split(\"_\"),weekdaysMin:\"Bz_BE_ÇA_Çə_CA_Cü_Şə\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[sabah saat] LT\",nextWeek:\"[gələn həftə] dddd [saat] LT\",lastDay:\"[dünən] LT\",lastWeek:\"[keçən həftə] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s əvvəl\",s:\"birneçə saniyyə\",m:\"bir dəqiqə\",mm:\"%d dəqiqə\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir il\",yy:\"%d il\"},meridiemParse:/gecə|səhər|gündüz|axşam/,isPM:function(a){return/^(gündüz|axşam)$/.test(a)},meridiem:function(a,b,c){return a<4?\"gecə\":a<12?\"səhər\":a<17?\"gündüz\":\"axşam\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,ordinal:function(a){if(0===a)return a+\"-ıncı\";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Kg[b]||Kg[c]||Kg[d])},week:{dow:1,doy:7}}),a.defineLocale(\"be\",{months:{format:\"студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня\".split(\"_\"),standalone:\"студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань\".split(\"_\")},monthsShort:\"студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж\".split(\"_\"),weekdays:{format:\"нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу\".split(\"_\"),standalone:\"нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота\".split(\"_\"),isFormat:/\\[ ?[Вв] ?(?:мінулую|наступную)? ?\\] ?dddd/},weekdaysShort:\"нд_пн_ат_ср_чц_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_ат_ср_чц_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., HH:mm\",LLLL:\"dddd, D MMMM YYYY г., HH:mm\"},calendar:{sameDay:\"[Сёння ў] LT\",nextDay:\"[Заўтра ў] LT\",lastDay:\"[Учора ў] LT\",nextWeek:function(){return\"[У] dddd [ў] LT\"},lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return\"[У мінулую] dddd [ў] LT\";case 1:case 2:case 4:return\"[У мінулы] dddd [ў] LT\"}},sameElse:\"L\"},relativeTime:{future:\"праз %s\",past:\"%s таму\",s:\"некалькі секунд\",m:td,mm:td,h:td,hh:td,d:\"дзень\",dd:td,M:\"месяц\",MM:td,y:\"год\",yy:td},meridiemParse:/ночы|раніцы|дня|вечара/,isPM:function(a){return/^(дня|вечара)$/.test(a)},meridiem:function(a,b,c){return a<4?\"ночы\":a<12?\"раніцы\":a<17?\"дня\":\"вечара\"},dayOfMonthOrdinalParse:/\\d{1,2}-(і|ы|га)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a%10!==2&&a%10!==3||a%100===12||a%100===13?a+\"-ы\":a+\"-і\";case\"D\":return a+\"-га\";default:return a}},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Bulgarian [bg]\n//! author : Krasen Borisov : https://github.com/kraz\na.defineLocale(\"bg\",{months:\"януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"неделя_понеделник_вторник_сряда_четвъртък_петък_събота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сря_чет_пет_съб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[Днес в] LT\",nextDay:\"[Утре в] LT\",nextWeek:\"dddd [в] LT\",lastDay:\"[Вчера в] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[В изминалата] dddd [в] LT\";case 1:case 2:case 4:case 5:return\"[В изминалия] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"след %s\",past:\"преди %s\",s:\"няколко секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дни\",M:\"месец\",MM:\"%d месеца\",y:\"година\",yy:\"%d години\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&c<20?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Bengali [bn]\n//! author : Kaushik Gandhi : https://github.com/kaushikgandhi\nvar Lg={1:\"১\",2:\"২\",3:\"৩\",4:\"৪\",5:\"৫\",6:\"৬\",7:\"৭\",8:\"৮\",9:\"৯\",0:\"০\"},Mg={\"১\":\"1\",\"২\":\"2\",\"৩\":\"3\",\"৪\":\"4\",\"৫\":\"5\",\"৬\":\"6\",\"৭\":\"7\",\"৮\":\"8\",\"৯\":\"9\",\"০\":\"0\"};a.defineLocale(\"bn\",{months:\"জানুয়ারী_ফেব্রুয়ারি_মার্চ_এপ্রিল_মে_জুন_জুলাই_আগস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর\".split(\"_\"),monthsShort:\"জানু_ফেব_মার্চ_এপ্র_মে_জুন_জুল_আগ_সেপ্ট_অক্টো_নভে_ডিসে\".split(\"_\"),weekdays:\"রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পতিবার_শুক্রবার_শনিবার\".split(\"_\"),weekdaysShort:\"রবি_সোম_মঙ্গল_বুধ_বৃহস্পতি_শুক্র_শনি\".split(\"_\"),weekdaysMin:\"রবি_সোম_মঙ্গ_বুধ_বৃহঃ_শুক্র_শনি\".split(\"_\"),longDateFormat:{LT:\"A h:mm সময়\",LTS:\"A h:mm:ss সময়\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm সময়\",LLLL:\"dddd, D MMMM YYYY, A h:mm সময়\"},calendar:{sameDay:\"[আজ] LT\",nextDay:\"[আগামীকাল] LT\",nextWeek:\"dddd, LT\",lastDay:\"[গতকাল] LT\",lastWeek:\"[গত] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s পরে\",past:\"%s আগে\",s:\"কয়েক সেকেন্ড\",m:\"এক মিনিট\",mm:\"%d মিনিট\",h:\"এক ঘন্টা\",hh:\"%d ঘন্টা\",d:\"এক দিন\",dd:\"%d দিন\",M:\"এক মাস\",MM:\"%d মাস\",y:\"এক বছর\",yy:\"%d বছর\"},preparse:function(a){return a.replace(/[১২৩৪৫৬৭৮৯০]/g,function(a){return Mg[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Lg[a]})},meridiemParse:/রাত|সকাল|দুপুর|বিকাল|রাত/,meridiemHour:function(a,b){return 12===a&&(a=0),\"রাত\"===b&&a>=4||\"দুপুর\"===b&&a<5||\"বিকাল\"===b?a+12:a},meridiem:function(a,b,c){return a<4?\"রাত\":a<10?\"সকাল\":a<17?\"দুপুর\":a<20?\"বিকাল\":\"রাত\"},week:{dow:0,doy:6}});\n//! moment.js locale configuration\n//! locale : Tibetan [bo]\n//! author : Thupten N. Chakrishar : https://github.com/vajradog\nvar Ng={1:\"༡\",2:\"༢\",3:\"༣\",4:\"༤\",5:\"༥\",6:\"༦\",7:\"༧\",8:\"༨\",9:\"༩\",0:\"༠\"},Og={\"༡\":\"1\",\"༢\":\"2\",\"༣\":\"3\",\"༤\":\"4\",\"༥\":\"5\",\"༦\":\"6\",\"༧\":\"7\",\"༨\":\"8\",\"༩\":\"9\",\"༠\":\"0\"};a.defineLocale(\"bo\",{months:\"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ\".split(\"_\"),monthsShort:\"ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ\".split(\"_\"),weekdays:\"གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་\".split(\"_\"),weekdaysShort:\"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་\".split(\"_\"),weekdaysMin:\"ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[དི་རིང] LT\",nextDay:\"[སང་ཉིན] LT\",nextWeek:\"[བདུན་ཕྲག་རྗེས་མ], LT\",lastDay:\"[ཁ་སང] LT\",lastWeek:\"[བདུན་ཕྲག་མཐའ་མ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ལ་\",past:\"%s སྔན་ལ\",s:\"ལམ་སང\",m:\"སྐར་མ་གཅིག\",mm:\"%d སྐར་མ\",h:\"ཆུ་ཚོད་གཅིག\",hh:\"%d ཆུ་ཚོད\",d:\"ཉིན་གཅིག\",dd:\"%d ཉིན་\",M:\"ཟླ་བ་གཅིག\",MM:\"%d ཟླ་བ\",y:\"ལོ་གཅིག\",yy:\"%d ལོ\"},preparse:function(a){return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g,function(a){return Og[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Ng[a]})},meridiemParse:/མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"མཚན་མོ\"===b&&a>=4||\"ཉིན་གུང\"===b&&a<5||\"དགོང་དག\"===b?a+12:a},meridiem:function(a,b,c){return a<4?\"མཚན་མོ\":a<10?\"ཞོགས་ཀས\":a<17?\"ཉིན་གུང\":a<20?\"དགོང་དག\":\"མཚན་མོ\"},week:{dow:0,doy:6}}),a.defineLocale(\"br\",{months:\"Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu\".split(\"_\"),monthsShort:\"Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker\".split(\"_\"),weekdays:\"Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn\".split(\"_\"),weekdaysShort:\"Sul_Lun_Meu_Mer_Yao_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Lu_Me_Mer_Ya_Gw_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h[e]mm A\",LTS:\"h[e]mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [a viz] MMMM YYYY\",LLL:\"D [a viz] MMMM YYYY h[e]mm A\",LLLL:\"dddd, D [a viz] MMMM YYYY h[e]mm A\"},calendar:{sameDay:\"[Hiziv da] LT\",nextDay:\"[Warc'hoazh da] LT\",nextWeek:\"dddd [da] LT\",lastDay:\"[Dec'h da] LT\",lastWeek:\"dddd [paset da] LT\",sameElse:\"L\"},relativeTime:{future:\"a-benn %s\",past:\"%s 'zo\",s:\"un nebeud segondennoù\",m:\"ur vunutenn\",mm:ud,h:\"un eur\",hh:\"%d eur\",d:\"un devezh\",dd:ud,M:\"ur miz\",MM:ud,y:\"ur bloaz\",yy:vd},dayOfMonthOrdinalParse:/\\d{1,2}(añ|vet)/,ordinal:function(a){var b=1===a?\"añ\":\"vet\";return a+b},week:{dow:1,doy:4}}),a.defineLocale(\"bs\",{months:\"januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:zd,mm:zd,h:zd,hh:zd,d:\"dan\",dd:zd,M:\"mjesec\",MM:zd,y:\"godinu\",yy:zd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Catalan [ca]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\na.defineLocale(\"ca\",{months:{standalone:\"gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre\".split(\"_\"),format:\"de gener_de febrer_de març_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\"_\"),isFormat:/D[oD]?(\\s)+MMMM/},monthsShort:\"gen._febr._març_abr._maig_juny_jul._ag._set._oct._nov._des.\".split(\"_\"),monthsParseExact:!0,weekdays:\"diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte\".split(\"_\"),weekdaysShort:\"dg._dl._dt._dc._dj._dv._ds.\".split(\"_\"),weekdaysMin:\"Dg_Dl_Dt_Dc_Dj_Dv_Ds\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"[el] D MMMM [de] YYYY\",ll:\"D MMM YYYY\",LLL:\"[el] D MMMM [de] YYYY [a les] H:mm\",lll:\"D MMM YYYY, H:mm\",LLLL:\"[el] dddd D MMMM [de] YYYY [a les] H:mm\",llll:\"ddd D MMM YYYY, H:mm\"},calendar:{sameDay:function(){return\"[avui a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextDay:function(){return\"[demà a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},nextWeek:function(){return\"dddd [a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastDay:function(){return\"[ahir a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [passat a \"+(1!==this.hours()?\"les\":\"la\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"d'aquí %s\",past:\"fa %s\",s:\"uns segons\",m:\"un minut\",mm:\"%d minuts\",h:\"una hora\",hh:\"%d hores\",d:\"un dia\",dd:\"%d dies\",M:\"un mes\",MM:\"%d mesos\",y:\"un any\",yy:\"%d anys\"},dayOfMonthOrdinalParse:/\\d{1,2}(r|n|t|è|a)/,ordinal:function(a,b){var c=1===a?\"r\":2===a?\"n\":3===a?\"r\":4===a?\"t\":\"è\";return\"w\"!==b&&\"W\"!==b||(c=\"a\"),a+c},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Czech [cs]\n//! author : petrbela : https://github.com/petrbela\nvar Pg=\"leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec\".split(\"_\"),Qg=\"led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro\".split(\"_\");a.defineLocale(\"cs\",{months:Pg,monthsShort:Qg,monthsParse:function(a,b){var c,d=[];for(c=0;c<12;c++)d[c]=new RegExp(\"^\"+a[c]+\"$|^\"+b[c]+\"$\",\"i\");return d}(Pg,Qg),shortMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp(\"^\"+a[b]+\"$\",\"i\");return c}(Qg),longMonthsParse:function(a){var b,c=[];for(b=0;b<12;b++)c[b]=new RegExp(\"^\"+a[b]+\"$\",\"i\");return c}(Pg),weekdays:\"neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_út_st_čt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_út_st_čt_pá_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\",l:\"D. M. YYYY\"},calendar:{sameDay:\"[dnes v] LT\",nextDay:\"[zítra v] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v neděli v] LT\";case 1:case 2:return\"[v] dddd [v] LT\";case 3:return\"[ve středu v] LT\";case 4:return\"[ve čtvrtek v] LT\";case 5:return\"[v pátek v] LT\";case 6:return\"[v sobotu v] LT\"}},lastDay:\"[včera v] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulou neděli v] LT\";case 1:case 2:return\"[minulé] dddd [v] LT\";case 3:return\"[minulou středu v] LT\";case 4:case 5:return\"[minulý] dddd [v] LT\";case 6:return\"[minulou sobotu v] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"před %s\",s:Bd,m:Bd,mm:Bd,h:Bd,hh:Bd,d:Bd,dd:Bd,M:Bd,MM:Bd,y:Bd,yy:Bd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Chuvash [cv]\n//! author : Anatoly Mironov : https://github.com/mirontoli\na.defineLocale(\"cv\",{months:\"кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав\".split(\"_\"),monthsShort:\"кӑр_нар_пуш_ака_май_ҫӗр_утӑ_ҫур_авн_юпа_чӳк_раш\".split(\"_\"),weekdays:\"вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун\".split(\"_\"),weekdaysShort:\"выр_тун_ытл_юн_кӗҫ_эрн_шӑм\".split(\"_\"),weekdaysMin:\"вр_тн_ыт_юн_кҫ_эр_шм\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]\",LLL:\"YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm\",LLLL:\"dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm\"},calendar:{sameDay:\"[Паян] LT [сехетре]\",nextDay:\"[Ыран] LT [сехетре]\",lastDay:\"[Ӗнер] LT [сехетре]\",nextWeek:\"[Ҫитес] dddd LT [сехетре]\",lastWeek:\"[Иртнӗ] dddd LT [сехетре]\",sameElse:\"L\"},relativeTime:{future:function(a){var b=/сехет$/i.exec(a)?\"рен\":/ҫул$/i.exec(a)?\"тан\":\"ран\";return a+b},past:\"%s каялла\",s:\"пӗр-ик ҫеккунт\",m:\"пӗр минут\",mm:\"%d минут\",h:\"пӗр сехет\",hh:\"%d сехет\",d:\"пӗр кун\",dd:\"%d кун\",M:\"пӗр уйӑх\",MM:\"%d уйӑх\",y:\"пӗр ҫул\",yy:\"%d ҫул\"},dayOfMonthOrdinalParse:/\\d{1,2}-мӗш/,ordinal:\"%d-мӗш\",week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Welsh [cy]\n//! author : Robert Allen : https://github.com/robgallen\n//! author : https://github.com/ryangreaves\na.defineLocale(\"cy\",{months:\"Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr\".split(\"_\"),monthsShort:\"Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag\".split(\"_\"),weekdays:\"Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn\".split(\"_\"),weekdaysShort:\"Sul_Llun_Maw_Mer_Iau_Gwe_Sad\".split(\"_\"),weekdaysMin:\"Su_Ll_Ma_Me_Ia_Gw_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Heddiw am] LT\",nextDay:\"[Yfory am] LT\",nextWeek:\"dddd [am] LT\",lastDay:\"[Ddoe am] LT\",lastWeek:\"dddd [diwethaf am] LT\",sameElse:\"L\"},relativeTime:{future:\"mewn %s\",past:\"%s yn ôl\",s:\"ychydig eiliadau\",m:\"munud\",mm:\"%d munud\",h:\"awr\",hh:\"%d awr\",d:\"diwrnod\",dd:\"%d diwrnod\",M:\"mis\",MM:\"%d mis\",y:\"blwyddyn\",yy:\"%d flynedd\"},dayOfMonthOrdinalParse:/\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,ordinal:function(a){var b=a,c=\"\",d=[\"\",\"af\",\"il\",\"ydd\",\"ydd\",\"ed\",\"ed\",\"ed\",\"fed\",\"fed\",\"fed\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"eg\",\"fed\",\"eg\",\"fed\"];return b>20?c=40===b||50===b||60===b||80===b||100===b?\"fed\":\"ain\":b>0&&(c=d[b]),a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Danish [da]\n//! author : Ulrik Nielsen : https://github.com/mrbase\na.defineLocale(\"da\",{months:\"januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"søn_man_tir_ons_tor_fre_lør\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd [d.] D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"på dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[i] dddd[s kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"få sekunder\",m:\"et minut\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dage\",M:\"en måned\",MM:\"%d måneder\",y:\"et år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"de-at\",{months:\"Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:Cd,mm:\"%d Minuten\",h:Cd,hh:\"%d Stunden\",d:Cd,dd:Cd,M:Cd,MM:Cd,y:Cd,yy:Cd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"de-ch\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._März_April_Mai_Juni_Juli_Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH.mm\",LLLL:\"dddd, D. MMMM YYYY HH.mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:Dd,mm:\"%d Minuten\",h:Dd,hh:\"%d Stunden\",d:Dd,dd:Dd,M:Dd,MM:Dd,y:Dd,yy:Dd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"de\",{months:\"Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag\".split(\"_\"),weekdaysShort:\"So._Mo._Di._Mi._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mo_Di_Mi_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY HH:mm\",LLLL:\"dddd, D. MMMM YYYY HH:mm\"},calendar:{sameDay:\"[heute um] LT [Uhr]\",sameElse:\"L\",nextDay:\"[morgen um] LT [Uhr]\",nextWeek:\"dddd [um] LT [Uhr]\",lastDay:\"[gestern um] LT [Uhr]\",lastWeek:\"[letzten] dddd [um] LT [Uhr]\"},relativeTime:{future:\"in %s\",past:\"vor %s\",s:\"ein paar Sekunden\",m:Ed,mm:\"%d Minuten\",h:Ed,hh:\"%d Stunden\",d:Ed,dd:Ed,M:Ed,MM:Ed,y:Ed,yy:Ed},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Maldivian [dv]\n//! author : Jawish Hameed : https://github.com/jawish\nvar Rg=[\"ޖެނުއަރީ\",\"ފެބްރުއަރީ\",\"މާރިޗު\",\"އޭޕްރީލު\",\"މޭ\",\"ޖޫން\",\"ޖުލައި\",\"އޯގަސްޓު\",\"ސެޕްޓެމްބަރު\",\"އޮކްޓޯބަރު\",\"ނޮވެމްބަރު\",\"ޑިސެމްބަރު\"],Sg=[\"އާދިއްތަ\",\"ހޯމަ\",\"އަންގާރަ\",\"ބުދަ\",\"ބުރާސްފަތި\",\"ހުކުރު\",\"ހޮނިހިރު\"];a.defineLocale(\"dv\",{months:Rg,monthsShort:Rg,weekdays:Sg,weekdaysShort:Sg,weekdaysMin:\"އާދި_ހޯމަ_އަން_ބުދަ_ބުރާ_ހުކު_ހޮނި\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"D/M/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},meridiemParse:/މކ|މފ/,isPM:function(a){return\"މފ\"===a},meridiem:function(a,b,c){return a<12?\"މކ\":\"މފ\"},calendar:{sameDay:\"[މިއަދު] LT\",nextDay:\"[މާދަމާ] LT\",nextWeek:\"dddd LT\",lastDay:\"[އިއްޔެ] LT\",lastWeek:\"[ފާއިތުވި] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"ތެރޭގައި %s\",past:\"ކުރިން %s\",s:\"ސިކުންތުކޮޅެއް\",m:\"މިނިޓެއް\",mm:\"މިނިޓު %d\",h:\"ގަޑިއިރެއް\",hh:\"ގަޑިއިރު %d\",d:\"ދުވަހެއް\",dd:\"ދުވަސް %d\",M:\"މަހެއް\",MM:\"މަސް %d\",y:\"އަހަރެއް\",yy:\"އަހަރު %d\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:7,doy:12}}),\n//! moment.js locale configuration\n//! locale : Greek [el]\n//! author : Aggelos Karalias : https://github.com/mehiel\na.defineLocale(\"el\",{monthsNominativeEl:\"Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος\".split(\"_\"),monthsGenitiveEl:\"Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου\".split(\"_\"),months:function(a,b){return a?/D/.test(b.substring(0,b.indexOf(\"MMMM\")))?this._monthsGenitiveEl[a.month()]:this._monthsNominativeEl[a.month()]:this._monthsNominativeEl},monthsShort:\"Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ\".split(\"_\"),weekdays:\"Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο\".split(\"_\"),weekdaysShort:\"Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ\".split(\"_\"),weekdaysMin:\"Κυ_Δε_Τρ_Τε_Πε_Πα_Σα\".split(\"_\"),meridiem:function(a,b,c){return a>11?c?\"μμ\":\"ΜΜ\":c?\"πμ\":\"ΠΜ\"},isPM:function(a){return\"μ\"===(a+\"\").toLowerCase()[0]},meridiemParse:/[ΠΜ]\\.?Μ?\\.?/i,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendarEl:{sameDay:\"[Σήμερα {}] LT\",nextDay:\"[Αύριο {}] LT\",nextWeek:\"dddd [{}] LT\",lastDay:\"[Χθες {}] LT\",lastWeek:function(){switch(this.day()){case 6:return\"[το προηγούμενο] dddd [{}] LT\";default:return\"[την προηγούμενη] dddd [{}] LT\"}},sameElse:\"L\"},calendar:function(a,b){var c=this._calendarEl[a],d=b&&b.hours();return z(c)&&(c=c.apply(b)),c.replace(\"{}\",d%12===1?\"στη\":\"στις\")},relativeTime:{future:\"σε %s\",past:\"%s πριν\",s:\"λίγα δευτερόλεπτα\",m:\"ένα λεπτό\",mm:\"%d λεπτά\",h:\"μία ώρα\",hh:\"%d ώρες\",d:\"μία μέρα\",dd:\"%d μέρες\",M:\"ένας μήνας\",MM:\"%d μήνες\",y:\"ένας χρόνος\",yy:\"%d χρόνια\"},dayOfMonthOrdinalParse:/\\d{1,2}η/,ordinal:\"%dη\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : English (Australia) [en-au]\n//! author : Jared Morse : https://github.com/jarcoal\na.defineLocale(\"en-au\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : English (Canada) [en-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\na.defineLocale(\"en-ca\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"YYYY-MM-DD\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),\n//! moment.js locale configuration\n//! locale : English (United Kingdom) [en-gb]\n//! author : Chris Gedrim : https://github.com/chrisgedrim\na.defineLocale(\"en-gb\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : English (Ireland) [en-ie]\n//! author : Chris Cartlidge : https://github.com/chriscartlidge\na.defineLocale(\"en-ie\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : English (New Zealand) [en-nz]\n//! author : Luke McGregor : https://github.com/lukemcgregor\na.defineLocale(\"en-nz\",{months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec\".split(\"_\"),weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),weekdaysShort:\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),weekdaysMin:\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Today at] LT\",nextDay:\"[Tomorrow at] LT\",nextWeek:\"dddd [at] LT\",lastDay:\"[Yesterday at] LT\",lastWeek:\"[Last] dddd [at] LT\",sameElse:\"L\"},relativeTime:{future:\"in %s\",past:\"%s ago\",s:\"a few seconds\",m:\"a minute\",mm:\"%d minutes\",h:\"an hour\",hh:\"%d hours\",d:\"a day\",dd:\"%d days\",M:\"a month\",MM:\"%d months\",y:\"a year\",yy:\"%d years\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Esperanto [eo]\n//! author : Colin Dean : https://github.com/colindean\n//! author : Mia Nordentoft Imperatori : https://github.com/miestasmia\n//! comment : miestasmia corrected the translation by colindean\na.defineLocale(\"eo\",{months:\"januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec\".split(\"_\"),weekdays:\"dimanĉo_lundo_mardo_merkredo_ĵaŭdo_vendredo_sabato\".split(\"_\"),weekdaysShort:\"dim_lun_mard_merk_ĵaŭ_ven_sab\".split(\"_\"),weekdaysMin:\"di_lu_ma_me_ĵa_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D[-a de] MMMM, YYYY\",LLL:\"D[-a de] MMMM, YYYY HH:mm\",LLLL:\"dddd, [la] D[-a de] MMMM, YYYY HH:mm\"},meridiemParse:/[ap]\\.t\\.m/i,isPM:function(a){return\"p\"===a.charAt(0).toLowerCase()},meridiem:function(a,b,c){return a>11?c?\"p.t.m.\":\"P.T.M.\":c?\"a.t.m.\":\"A.T.M.\"},calendar:{sameDay:\"[Hodiaŭ je] LT\",nextDay:\"[Morgaŭ je] LT\",nextWeek:\"dddd [je] LT\",lastDay:\"[Hieraŭ je] LT\",lastWeek:\"[pasinta] dddd [je] LT\",sameElse:\"L\"},relativeTime:{future:\"post %s\",past:\"antaŭ %s\",s:\"sekundoj\",m:\"minuto\",mm:\"%d minutoj\",h:\"horo\",hh:\"%d horoj\",d:\"tago\",dd:\"%d tagoj\",M:\"monato\",MM:\"%d monatoj\",y:\"jaro\",yy:\"%d jaroj\"},dayOfMonthOrdinalParse:/\\d{1,2}a/,ordinal:\"%da\",week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Spanish (Dominican Republic) [es-do]\nvar Tg=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),Ug=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");a.defineLocale(\"es-do\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Ug[a.month()]:Tg[a.month()]:Tg},monthsParseExact:!0,weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY h:mm A\",LLLL:\"dddd, D [de] MMMM [de] YYYY h:mm A\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Spanish [es]\n//! author : Julio Napurí : https://github.com/julionc\nvar Vg=\"ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.\".split(\"_\"),Wg=\"ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic\".split(\"_\");a.defineLocale(\"es\",{months:\"enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Wg[a.month()]:Vg[a.month()]:Vg},monthsParseExact:!0,weekdays:\"domingo_lunes_martes_miércoles_jueves_viernes_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mié._jue._vie._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mi_ju_vi_sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoy a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextDay:function(){return\"[mañana a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},nextWeek:function(){return\"dddd [a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastDay:function(){return\"[ayer a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},lastWeek:function(){return\"[el] dddd [pasado a la\"+(1!==this.hours()?\"s\":\"\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:\"en %s\",past:\"hace %s\",s:\"unos segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"una hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un año\",yy:\"%d años\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.defineLocale(\"et\",{months:\"jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember\".split(\"_\"),monthsShort:\"jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets\".split(\"_\"),weekdays:\"pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev\".split(\"_\"),weekdaysShort:\"P_E_T_K_N_R_L\".split(\"_\"),weekdaysMin:\"P_E_T_K_N_R_L\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[Täna,] LT\",nextDay:\"[Homme,] LT\",nextWeek:\"[Järgmine] dddd LT\",lastDay:\"[Eile,] LT\",lastWeek:\"[Eelmine] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s pärast\",past:\"%s tagasi\",s:Fd,m:Fd,mm:Fd,h:Fd,hh:Fd,d:Fd,dd:\"%d päeva\",M:Fd,MM:Fd,y:Fd,yy:Fd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Basque [eu]\n//! author : Eneko Illarramendi : https://github.com/eillarra\na.defineLocale(\"eu\",{months:\"urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua\".split(\"_\"),monthsShort:\"urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.\".split(\"_\"),monthsParseExact:!0,weekdays:\"igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata\".split(\"_\"),weekdaysShort:\"ig._al._ar._az._og._ol._lr.\".split(\"_\"),weekdaysMin:\"ig_al_ar_az_og_ol_lr\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY[ko] MMMM[ren] D[a]\",LLL:\"YYYY[ko] MMMM[ren] D[a] HH:mm\",LLLL:\"dddd, YYYY[ko] MMMM[ren] D[a] HH:mm\",l:\"YYYY-M-D\",ll:\"YYYY[ko] MMM D[a]\",lll:\"YYYY[ko] MMM D[a] HH:mm\",llll:\"ddd, YYYY[ko] MMM D[a] HH:mm\"},calendar:{sameDay:\"[gaur] LT[etan]\",nextDay:\"[bihar] LT[etan]\",nextWeek:\"dddd LT[etan]\",lastDay:\"[atzo] LT[etan]\",lastWeek:\"[aurreko] dddd LT[etan]\",sameElse:\"L\"},relativeTime:{future:\"%s barru\",past:\"duela %s\",s:\"segundo batzuk\",m:\"minutu bat\",mm:\"%d minutu\",h:\"ordu bat\",hh:\"%d ordu\",d:\"egun bat\",dd:\"%d egun\",M:\"hilabete bat\",MM:\"%d hilabete\",y:\"urte bat\",yy:\"%d urte\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Persian [fa]\n//! author : Ebrahim Byagowi : https://github.com/ebraminio\nvar Xg={1:\"۱\",2:\"۲\",3:\"۳\",4:\"۴\",5:\"۵\",6:\"۶\",7:\"۷\",8:\"۸\",9:\"۹\",0:\"۰\"},Yg={\"۱\":\"1\",\"۲\":\"2\",\"۳\":\"3\",\"۴\":\"4\",\"۵\":\"5\",\"۶\":\"6\",\"۷\":\"7\",\"۸\":\"8\",\"۹\":\"9\",\"۰\":\"0\"};a.defineLocale(\"fa\",{months:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),monthsShort:\"ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر\".split(\"_\"),weekdays:\"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه\".split(\"_\"),weekdaysShort:\"یکشنبه_دوشنبه_سهشنبه_چهارشنبه_پنجشنبه_جمعه_شنبه\".split(\"_\"),weekdaysMin:\"ی_د_س_چ_پ_ج_ش\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},meridiemParse:/قبل از ظهر|بعد از ظهر/,isPM:function(a){return/بعد از ظهر/.test(a)},meridiem:function(a,b,c){return a<12?\"قبل از ظهر\":\"بعد از ظهر\"},calendar:{sameDay:\"[امروز ساعت] LT\",nextDay:\"[فردا ساعت] LT\",nextWeek:\"dddd [ساعت] LT\",lastDay:\"[دیروز ساعت] LT\",lastWeek:\"dddd [پیش] [ساعت] LT\",sameElse:\"L\"},relativeTime:{future:\"در %s\",past:\"%s پیش\",s:\"چند ثانیه\",m:\"یک دقیقه\",mm:\"%d دقیقه\",h:\"یک ساعت\",hh:\"%d ساعت\",d:\"یک روز\",dd:\"%d روز\",M:\"یک ماه\",MM:\"%d ماه\",y:\"یک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/[۰-۹]/g,function(a){return Yg[a]}).replace(/،/g,\",\")},postformat:function(a){return a.replace(/\\d/g,function(a){return Xg[a]}).replace(/,/g,\"،\")},dayOfMonthOrdinalParse:/\\d{1,2}م/,ordinal:\"%dم\",week:{dow:6,doy:12}});\n//! moment.js locale configuration\n//! locale : Finnish [fi]\n//! author : Tarmo Aidantausta : https://github.com/bleadof\nvar Zg=\"nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän\".split(\" \"),$g=[\"nolla\",\"yhden\",\"kahden\",\"kolmen\",\"neljän\",\"viiden\",\"kuuden\",Zg[7],Zg[8],Zg[9]];a.defineLocale(\"fi\",{months:\"tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu\".split(\"_\"),monthsShort:\"tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu\".split(\"_\"),weekdays:\"sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai\".split(\"_\"),weekdaysShort:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),weekdaysMin:\"su_ma_ti_ke_to_pe_la\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"Do MMMM[ta] YYYY\",LLL:\"Do MMMM[ta] YYYY, [klo] HH.mm\",LLLL:\"dddd, Do MMMM[ta] YYYY, [klo] HH.mm\",l:\"D.M.YYYY\",ll:\"Do MMM YYYY\",lll:\"Do MMM YYYY, [klo] HH.mm\",llll:\"ddd, Do MMM YYYY, [klo] HH.mm\"},calendar:{sameDay:\"[tänään] [klo] LT\",nextDay:\"[huomenna] [klo] LT\",nextWeek:\"dddd [klo] LT\",lastDay:\"[eilen] [klo] LT\",lastWeek:\"[viime] dddd[na] [klo] LT\",sameElse:\"L\"},relativeTime:{future:\"%s päästä\",past:\"%s sitten\",s:Gd,m:Gd,mm:Gd,h:Gd,hh:Gd,d:Gd,dd:Gd,M:Gd,MM:Gd,y:Gd,yy:Gd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Faroese [fo]\n//! author : Ragnar Johannesen : https://github.com/ragnar123\na.defineLocale(\"fo\",{months:\"januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur\".split(\"_\"),weekdaysShort:\"sun_mán_týs_mik_hós_frí_ley\".split(\"_\"),weekdaysMin:\"su_má_tý_mi_hó_fr_le\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D. MMMM, YYYY HH:mm\"},calendar:{sameDay:\"[Í dag kl.] LT\",nextDay:\"[Í morgin kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[Í gjár kl.] LT\",lastWeek:\"[síðstu] dddd [kl] LT\",sameElse:\"L\"},relativeTime:{future:\"um %s\",past:\"%s síðani\",s:\"fá sekund\",m:\"ein minutt\",mm:\"%d minuttir\",h:\"ein tími\",hh:\"%d tímar\",d:\"ein dagur\",dd:\"%d dagar\",M:\"ein mánaði\",MM:\"%d mánaðir\",y:\"eitt ár\",yy:\"%d ár\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : French (Canada) [fr-ca]\n//! author : Jonathan Abourbih : https://github.com/jonbca\na.defineLocale(\"fr-ca\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd’hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case\"M\":case\"Q\":case\"D\":case\"DDD\":case\"d\":return a+(1===a?\"er\":\"e\");case\"w\":case\"W\":return a+(1===a?\"re\":\"e\")}}}),\n//! moment.js locale configuration\n//! locale : French (Switzerland) [fr-ch]\n//! author : Gaspard Bucher : https://github.com/gaspard\na.defineLocale(\"fr-ch\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd’hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|e)/,ordinal:function(a,b){switch(b){default:case\"M\":case\"Q\":case\"D\":case\"DDD\":case\"d\":return a+(1===a?\"er\":\"e\");case\"w\":case\"W\":return a+(1===a?\"re\":\"e\")}},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : French [fr]\n//! author : John Fischer : https://github.com/jfroffice\na.defineLocale(\"fr\",{months:\"janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre\".split(\"_\"),monthsShort:\"janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.\".split(\"_\"),monthsParseExact:!0,weekdays:\"dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi\".split(\"_\"),weekdaysShort:\"dim._lun._mar._mer._jeu._ven._sam.\".split(\"_\"),weekdaysMin:\"Di_Lu_Ma_Me_Je_Ve_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Aujourd’hui à] LT\",nextDay:\"[Demain à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[Hier à] LT\",lastWeek:\"dddd [dernier à] LT\",sameElse:\"L\"},relativeTime:{future:\"dans %s\",past:\"il y a %s\",s:\"quelques secondes\",m:\"une minute\",mm:\"%d minutes\",h:\"une heure\",hh:\"%d heures\",d:\"un jour\",dd:\"%d jours\",M:\"un mois\",MM:\"%d mois\",y:\"un an\",yy:\"%d ans\"},dayOfMonthOrdinalParse:/\\d{1,2}(er|)/,ordinal:function(a,b){switch(b){case\"D\":return a+(1===a?\"er\":\"\");default:case\"M\":case\"Q\":case\"DDD\":case\"d\":return a+(1===a?\"er\":\"e\");case\"w\":case\"W\":return a+(1===a?\"re\":\"e\")}},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Frisian [fy]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\nvar _g=\"jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.\".split(\"_\"),ah=\"jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\");a.defineLocale(\"fy\",{months:\"jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?ah[a.month()]:_g[a.month()]:_g},monthsParseExact:!0,weekdays:\"snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon\".split(\"_\"),weekdaysShort:\"si._mo._ti._wo._to._fr._so.\".split(\"_\"),weekdaysMin:\"Si_Mo_Ti_Wo_To_Fr_So\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[hjoed om] LT\",nextDay:\"[moarn om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[juster om] LT\",lastWeek:\"[ôfrûne] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"oer %s\",past:\"%s lyn\",s:\"in pear sekonden\",m:\"ien minút\",mm:\"%d minuten\",h:\"ien oere\",hh:\"%d oeren\",d:\"ien dei\",dd:\"%d dagen\",M:\"ien moanne\",MM:\"%d moannen\",y:\"ien jier\",yy:\"%d jierren\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Scottish Gaelic [gd]\n//! author : Jon Ashdown : https://github.com/jonashdown\nvar bh=[\"Am Faoilleach\",\"An Gearran\",\"Am Màrt\",\"An Giblean\",\"An Cèitean\",\"An t-Ògmhios\",\"An t-Iuchar\",\"An Lùnastal\",\"An t-Sultain\",\"An Dàmhair\",\"An t-Samhain\",\"An Dùbhlachd\"],ch=[\"Faoi\",\"Gear\",\"Màrt\",\"Gibl\",\"Cèit\",\"Ògmh\",\"Iuch\",\"Lùn\",\"Sult\",\"Dàmh\",\"Samh\",\"Dùbh\"],dh=[\"Didòmhnaich\",\"Diluain\",\"Dimàirt\",\"Diciadain\",\"Diardaoin\",\"Dihaoine\",\"Disathairne\"],eh=[\"Did\",\"Dil\",\"Dim\",\"Dic\",\"Dia\",\"Dih\",\"Dis\"],fh=[\"Dò\",\"Lu\",\"Mà\",\"Ci\",\"Ar\",\"Ha\",\"Sa\"];a.defineLocale(\"gd\",{months:bh,monthsShort:ch,monthsParseExact:!0,weekdays:dh,weekdaysShort:eh,weekdaysMin:fh,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[An-diugh aig] LT\",nextDay:\"[A-màireach aig] LT\",nextWeek:\"dddd [aig] LT\",lastDay:\"[An-dè aig] LT\",lastWeek:\"dddd [seo chaidh] [aig] LT\",sameElse:\"L\"},relativeTime:{future:\"ann an %s\",past:\"bho chionn %s\",s:\"beagan diogan\",m:\"mionaid\",mm:\"%d mionaidean\",h:\"uair\",hh:\"%d uairean\",d:\"latha\",dd:\"%d latha\",M:\"mìos\",MM:\"%d mìosan\",y:\"bliadhna\",yy:\"%d bliadhna\"},dayOfMonthOrdinalParse:/\\d{1,2}(d|na|mh)/,ordinal:function(a){var b=1===a?\"d\":a%10===2?\"na\":\"mh\";return a+b},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Galician [gl]\n//! author : Juan G. Hurtado : https://github.com/juanghurtado\na.defineLocale(\"gl\",{months:\"xaneiro_febreiro_marzo_abril_maio_xuño_xullo_agosto_setembro_outubro_novembro_decembro\".split(\"_\"),monthsShort:\"xan._feb._mar._abr._mai._xuñ._xul._ago._set._out._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"domingo_luns_martes_mércores_xoves_venres_sábado\".split(\"_\"),weekdaysShort:\"dom._lun._mar._mér._xov._ven._sáb.\".split(\"_\"),weekdaysMin:\"do_lu_ma_mé_xo_ve_sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY H:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY H:mm\"},calendar:{sameDay:function(){return\"[hoxe \"+(1!==this.hours()?\"ás\":\"á\")+\"] LT\"},nextDay:function(){return\"[mañá \"+(1!==this.hours()?\"ás\":\"á\")+\"] LT\"},nextWeek:function(){return\"dddd [\"+(1!==this.hours()?\"ás\":\"a\")+\"] LT\"},lastDay:function(){return\"[onte \"+(1!==this.hours()?\"á\":\"a\")+\"] LT\"},lastWeek:function(){return\"[o] dddd [pasado \"+(1!==this.hours()?\"ás\":\"a\")+\"] LT\"},sameElse:\"L\"},relativeTime:{future:function(a){return 0===a.indexOf(\"un\")?\"n\"+a:\"en \"+a},past:\"hai %s\",s:\"uns segundos\",m:\"un minuto\",mm:\"%d minutos\",h:\"unha hora\",hh:\"%d horas\",d:\"un día\",dd:\"%d días\",M:\"un mes\",MM:\"%d meses\",y:\"un ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.defineLocale(\"gom-latn\",{months:\"Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr\".split(\"_\"),monthsShort:\"Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Aitar_Somar_Mongllar_Budvar_Brestar_Sukrar_Son'var\".split(\"_\"),weekdaysShort:\"Ait._Som._Mon._Bud._Bre._Suk._Son.\".split(\"_\"),weekdaysMin:\"Ai_Sm_Mo_Bu_Br_Su_Sn\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"A h:mm [vazta]\",LTS:\"A h:mm:ss [vazta]\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY A h:mm [vazta]\",LLLL:\"dddd, MMMM[achea] Do, YYYY, A h:mm [vazta]\",llll:\"ddd, D MMM YYYY, A h:mm [vazta]\"},calendar:{sameDay:\"[Aiz] LT\",nextDay:\"[Faleam] LT\",nextWeek:\"[Ieta to] dddd[,] LT\",lastDay:\"[Kal] LT\",lastWeek:\"[Fatlo] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%s\",past:\"%s adim\",s:Id,m:Id,mm:Id,h:Id,hh:Id,d:Id,dd:Id,M:Id,MM:Id,y:Id,yy:Id},dayOfMonthOrdinalParse:/\\d{1,2}(er)/,ordinal:function(a,b){switch(b){case\"D\":return a+\"er\";default:case\"M\":case\"Q\":case\"DDD\":case\"d\":case\"w\":case\"W\":return a}},week:{dow:1,doy:4},meridiemParse:/rati|sokalli|donparam|sanje/,meridiemHour:function(a,b){return 12===a&&(a=0),\"rati\"===b?a<4?a:a+12:\"sokalli\"===b?a:\"donparam\"===b?a>12?a:a+12:\"sanje\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"rati\":a<12?\"sokalli\":a<16?\"donparam\":a<20?\"sanje\":\"rati\"}}),\n//! moment.js locale configuration\n//! locale : Hebrew [he]\n//! author : Tomer Cohen : https://github.com/tomer\n//! author : Moshe Simantov : https://github.com/DevelopmentIL\n//! author : Tal Ater : https://github.com/TalAter\na.defineLocale(\"he\",{months:\"ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר\".split(\"_\"),monthsShort:\"ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳\".split(\"_\"),weekdays:\"ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת\".split(\"_\"),weekdaysShort:\"א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳\".split(\"_\"),weekdaysMin:\"א_ב_ג_ד_ה_ו_ש\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [ב]MMMM YYYY\",LLL:\"D [ב]MMMM YYYY HH:mm\",LLLL:\"dddd, D [ב]MMMM YYYY HH:mm\",l:\"D/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[היום ב־]LT\",nextDay:\"[מחר ב־]LT\",nextWeek:\"dddd [בשעה] LT\",lastDay:\"[אתמול ב־]LT\",lastWeek:\"[ביום] dddd [האחרון בשעה] LT\",sameElse:\"L\"},relativeTime:{future:\"בעוד %s\",past:\"לפני %s\",s:\"מספר שניות\",m:\"דקה\",mm:\"%d דקות\",h:\"שעה\",hh:function(a){return 2===a?\"שעתיים\":a+\" שעות\"},d:\"יום\",dd:function(a){return 2===a?\"יומיים\":a+\" ימים\"},M:\"חודש\",MM:function(a){return 2===a?\"חודשיים\":a+\" חודשים\"},y:\"שנה\",yy:function(a){return 2===a?\"שנתיים\":a%10===0&&10!==a?a+\" שנה\":a+\" שנים\"}},meridiemParse:/אחה\"צ|לפנה\"צ|אחרי הצהריים|לפני הצהריים|לפנות בוקר|בבוקר|בערב/i,isPM:function(a){return/^(אחה\"צ|אחרי הצהריים|בערב)$/.test(a)},meridiem:function(a,b,c){return a<5?\"לפנות בוקר\":a<10?\"בבוקר\":a<12?c?'לפנה\"צ':\"לפני הצהריים\":a<18?c?'אחה\"צ':\"אחרי הצהריים\":\"בערב\"}});\n//! moment.js locale configuration\n//! locale : Hindi [hi]\n//! author : Mayank Singhal : https://github.com/mayanksinghal\nvar gh={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},hh={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};a.defineLocale(\"hi\",{months:\"जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर\".split(\"_\"),monthsShort:\"जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.\".split(\"_\"),monthsParseExact:!0,weekdays:\"रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm बजे\",LTS:\"A h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm बजे\",LLLL:\"dddd, D MMMM YYYY, A h:mm बजे\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[कल] LT\",nextWeek:\"dddd, LT\",lastDay:\"[कल] LT\",lastWeek:\"[पिछले] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s में\",past:\"%s पहले\",s:\"कुछ ही क्षण\",m:\"एक मिनट\",mm:\"%d मिनट\",h:\"एक घंटा\",hh:\"%d घंटे\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महीने\",MM:\"%d महीने\",y:\"एक वर्ष\",yy:\"%d वर्ष\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return hh[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return gh[a]})},meridiemParse:/रात|सुबह|दोपहर|शाम/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात\"===b?a<4?a:a+12:\"सुबह\"===b?a:\"दोपहर\"===b?a>=10?a:a+12:\"शाम\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"रात\":a<10?\"सुबह\":a<17?\"दोपहर\":a<20?\"शाम\":\"रात\"},week:{dow:0,doy:6}}),a.defineLocale(\"hr\",{months:{format:\"siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca\".split(\"_\"),standalone:\"siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac\".split(\"_\")},monthsShort:\"sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[jučer u] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:return\"[prošlu] dddd [u] LT\";case 6:return\"[prošle] [subote] [u] LT\";case 1:case 2:case 4:case 5:return\"[prošli] dddd [u] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"par sekundi\",m:Jd,mm:Jd,h:Jd,hh:Jd,d:\"dan\",dd:Jd,M:\"mjesec\",MM:Jd,y:\"godinu\",yy:Jd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Hungarian [hu]\n//! author : Adam Brunner : https://github.com/adambrunner\nvar ih=\"vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton\".split(\" \");a.defineLocale(\"hu\",{months:\"január_február_március_április_május_június_július_augusztus_szeptember_október_november_december\".split(\"_\"),monthsShort:\"jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec\".split(\"_\"),weekdays:\"vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat\".split(\"_\"),weekdaysShort:\"vas_hét_kedd_sze_csüt_pén_szo\".split(\"_\"),weekdaysMin:\"v_h_k_sze_cs_p_szo\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"YYYY.MM.DD.\",LL:\"YYYY. MMMM D.\",LLL:\"YYYY. MMMM D. H:mm\",LLLL:\"YYYY. MMMM D., dddd H:mm\"},meridiemParse:/de|du/i,isPM:function(a){return\"u\"===a.charAt(1).toLowerCase()},meridiem:function(a,b,c){return a<12?c===!0?\"de\":\"DE\":c===!0?\"du\":\"DU\"},calendar:{sameDay:\"[ma] LT[-kor]\",nextDay:\"[holnap] LT[-kor]\",nextWeek:function(){return Ld.call(this,!0)},lastDay:\"[tegnap] LT[-kor]\",lastWeek:function(){return Ld.call(this,!1)},sameElse:\"L\"},relativeTime:{future:\"%s múlva\",past:\"%s\",s:Kd,m:Kd,mm:Kd,h:Kd,hh:Kd,d:Kd,dd:Kd,M:Kd,MM:Kd,y:Kd,yy:Kd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Armenian [hy-am]\n//! author : Armendarabyan : https://github.com/armendarabyan\na.defineLocale(\"hy-am\",{months:{format:\"հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի\".split(\"_\"),standalone:\"հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր\".split(\"_\")},monthsShort:\"հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ\".split(\"_\"),weekdays:\"կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ\".split(\"_\"),weekdaysShort:\"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ\".split(\"_\"),weekdaysMin:\"կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY թ.\",LLL:\"D MMMM YYYY թ., HH:mm\",LLLL:\"dddd, D MMMM YYYY թ., HH:mm\"},calendar:{sameDay:\"[այսօր] LT\",nextDay:\"[վաղը] LT\",lastDay:\"[երեկ] LT\",nextWeek:function(){return\"dddd [օրը ժամը] LT\"},lastWeek:function(){return\"[անցած] dddd [օրը ժամը] LT\"},sameElse:\"L\"},relativeTime:{future:\"%s հետո\",past:\"%s առաջ\",s:\"մի քանի վայրկյան\",m:\"րոպե\",mm:\"%d րոպե\",h:\"ժամ\",hh:\"%d ժամ\",d:\"օր\",dd:\"%d օր\",M:\"ամիս\",MM:\"%d ամիս\",y:\"տարի\",yy:\"%d տարի\"},meridiemParse:/գիշերվա|առավոտվա|ցերեկվա|երեկոյան/,isPM:function(a){return/^(ցերեկվա|երեկոյան)$/.test(a)},meridiem:function(a){return a<4?\"գիշերվա\":a<12?\"առավոտվա\":a<17?\"ցերեկվա\":\"երեկոյան\"},dayOfMonthOrdinalParse:/\\d{1,2}|\\d{1,2}-(ին|րդ)/,ordinal:function(a,b){switch(b){case\"DDD\":case\"w\":case\"W\":case\"DDDo\":return 1===a?a+\"-ին\":a+\"-րդ\";default:return a}},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Indonesian [id]\n//! author : Mohammad Satrio Utomo : https://github.com/tyok\n//! reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan\na.defineLocale(\"id\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Rab_Kam_Jum_Sab\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|siang|sore|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"siang\"===b?a>=11?a:a+12:\"sore\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"pagi\":a<15?\"siang\":a<19?\"sore\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Besok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kemarin pukul] LT\",lastWeek:\"dddd [lalu pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lalu\",s:\"beberapa detik\",m:\"semenit\",mm:\"%d menit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),a.defineLocale(\"is\",{months:\"janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des\".split(\"_\"),weekdays:\"sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur\".split(\"_\"),weekdaysShort:\"sun_mán_þri_mið_fim_fös_lau\".split(\"_\"),weekdaysMin:\"Su_Má_Þr_Mi_Fi_Fö_La\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd, D. MMMM YYYY [kl.] H:mm\"},calendar:{sameDay:\"[í dag kl.] LT\",nextDay:\"[á morgun kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[í gær kl.] LT\",lastWeek:\"[síðasta] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"eftir %s\",past:\"fyrir %s síðan\",s:Nd,m:Nd,mm:Nd,h:\"klukkustund\",hh:Nd,d:Nd,dd:Nd,M:Nd,MM:Nd,y:Nd,yy:Nd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Italian [it]\n//! author : Lorenzo : https://github.com/aliem\n//! author: Mattia Larentis: https://github.com/nostalgiaz\na.defineLocale(\"it\",{months:\"gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre\".split(\"_\"),monthsShort:\"gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic\".split(\"_\"),weekdays:\"domenica_lunedì_martedì_mercoledì_giovedì_venerdì_sabato\".split(\"_\"),weekdaysShort:\"dom_lun_mar_mer_gio_ven_sab\".split(\"_\"),weekdaysMin:\"do_lu_ma_me_gi_ve_sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Oggi alle] LT\",nextDay:\"[Domani alle] LT\",nextWeek:\"dddd [alle] LT\",lastDay:\"[Ieri alle] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[la scorsa] dddd [alle] LT\";default:return\"[lo scorso] dddd [alle] LT\"}},sameElse:\"L\"},relativeTime:{future:function(a){return(/^[0-9].+$/.test(a)?\"tra\":\"in\")+\" \"+a},past:\"%s fa\",s:\"alcuni secondi\",m:\"un minuto\",mm:\"%d minuti\",h:\"un'ora\",hh:\"%d ore\",d:\"un giorno\",dd:\"%d giorni\",M:\"un mese\",MM:\"%d mesi\",y:\"un anno\",yy:\"%d anni\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Japanese [ja]\n//! author : LI Long : https://github.com/baryon\na.defineLocale(\"ja\",{months:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日\".split(\"_\"),weekdaysShort:\"日_月_火_水_木_金_土\".split(\"_\"),weekdaysMin:\"日_月_火_水_木_金_土\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY年M月D日\",LLL:\"YYYY年M月D日 HH:mm\",LLLL:\"YYYY年M月D日 HH:mm dddd\",l:\"YYYY/MM/DD\",ll:\"YYYY年M月D日\",lll:\"YYYY年M月D日 HH:mm\",llll:\"YYYY年M月D日 HH:mm dddd\"},meridiemParse:/午前|午後/i,isPM:function(a){return\"午後\"===a},meridiem:function(a,b,c){return a<12?\"午前\":\"午後\"},calendar:{sameDay:\"[今日] LT\",nextDay:\"[明日] LT\",nextWeek:\"[来週]dddd LT\",lastDay:\"[昨日] LT\",lastWeek:\"[前週]dddd LT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}日/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";default:return a}},relativeTime:{future:\"%s後\",past:\"%s前\",s:\"数秒\",m:\"1分\",mm:\"%d分\",h:\"1時間\",hh:\"%d時間\",d:\"1日\",dd:\"%d日\",M:\"1ヶ月\",MM:\"%dヶ月\",y:\"1年\",yy:\"%d年\"}}),\n//! moment.js locale configuration\n//! locale : Javanese [jv]\n//! author : Rony Lantip : https://github.com/lantip\n//! reference: http://jv.wikipedia.org/wiki/Basa_Jawa\na.defineLocale(\"jv\",{months:\"Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember\".split(\"_\"),monthsShort:\"Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des\".split(\"_\"),weekdays:\"Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu\".split(\"_\"),weekdaysShort:\"Min_Sen_Sel_Reb_Kem_Jem_Sep\".split(\"_\"),weekdaysMin:\"Mg_Sn_Sl_Rb_Km_Jm_Sp\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/enjing|siyang|sonten|ndalu/,meridiemHour:function(a,b){return 12===a&&(a=0),\"enjing\"===b?a:\"siyang\"===b?a>=11?a:a+12:\"sonten\"===b||\"ndalu\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"enjing\":a<15?\"siyang\":a<19?\"sonten\":\"ndalu\"},calendar:{sameDay:\"[Dinten puniko pukul] LT\",nextDay:\"[Mbenjang pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kala wingi pukul] LT\",lastWeek:\"dddd [kepengker pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"wonten ing %s\",past:\"%s ingkang kepengker\",s:\"sawetawis detik\",m:\"setunggal menit\",mm:\"%d menit\",h:\"setunggal jam\",hh:\"%d jam\",d:\"sedinten\",dd:\"%d dinten\",M:\"sewulan\",MM:\"%d wulan\",y:\"setaun\",yy:\"%d taun\"},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Georgian [ka]\n//! author : Irakli Janiashvili : https://github.com/irakli-janiashvili\na.defineLocale(\"ka\",{months:{standalone:\"იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი\".split(\"_\"),format:\"იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს\".split(\"_\")},monthsShort:\"იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ\".split(\"_\"),weekdays:{standalone:\"კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი\".split(\"_\"),format:\"კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს\".split(\"_\"),isFormat:/(წინა|შემდეგ)/},weekdaysShort:\"კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ\".split(\"_\"),weekdaysMin:\"კვ_ორ_სა_ოთ_ხუ_პა_შა\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[დღეს] LT[-ზე]\",nextDay:\"[ხვალ] LT[-ზე]\",lastDay:\"[გუშინ] LT[-ზე]\",nextWeek:\"[შემდეგ] dddd LT[-ზე]\",lastWeek:\"[წინა] dddd LT-ზე\",sameElse:\"L\"},relativeTime:{future:function(a){return/(წამი|წუთი|საათი|წელი)/.test(a)?a.replace(/ი$/,\"ში\"):a+\"ში\"},past:function(a){return/(წამი|წუთი|საათი|დღე|თვე)/.test(a)?a.replace(/(ი|ე)$/,\"ის უკან\"):/წელი/.test(a)?a.replace(/წელი$/,\"წლის უკან\"):void 0},s:\"რამდენიმე წამი\",m:\"წუთი\",mm:\"%d წუთი\",h:\"საათი\",hh:\"%d საათი\",d:\"დღე\",dd:\"%d დღე\",M:\"თვე\",MM:\"%d თვე\",y:\"წელი\",yy:\"%d წელი\"},dayOfMonthOrdinalParse:/0|1-ლი|მე-\\d{1,2}|\\d{1,2}-ე/,ordinal:function(a){return 0===a?a:1===a?a+\"-ლი\":a<20||a<=100&&a%20===0||a%100===0?\"მე-\"+a:a+\"-ე\"},week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Kazakh [kk]\n//! authors : Nurlan Rakhimzhanov : https://github.com/nurlan\nvar jh={0:\"-ші\",1:\"-ші\",2:\"-ші\",3:\"-ші\",4:\"-ші\",5:\"-ші\",6:\"-шы\",7:\"-ші\",8:\"-ші\",9:\"-шы\",10:\"-шы\",20:\"-шы\",30:\"-шы\",40:\"-шы\",50:\"-ші\",60:\"-шы\",70:\"-ші\",80:\"-ші\",90:\"-шы\",100:\"-ші\"};a.defineLocale(\"kk\",{months:\"қаңтар_ақпан_наурыз_сәуір_мамыр_маусым_шілде_тамыз_қыркүйек_қазан_қараша_желтоқсан\".split(\"_\"),monthsShort:\"қаң_ақп_нау_сәу_мам_мау_шіл_там_қыр_қаз_қар_жел\".split(\"_\"),weekdays:\"жексенбі_дүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі\".split(\"_\"),weekdaysShort:\"жек_дүй_сей_сәр_бей_жұм_сен\".split(\"_\"),weekdaysMin:\"жк_дй_сй_ср_бй_жм_сн\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Бүгін сағат] LT\",nextDay:\"[Ертең сағат] LT\",nextWeek:\"dddd [сағат] LT\",lastDay:\"[Кеше сағат] LT\",lastWeek:\"[Өткен аптаның] dddd [сағат] LT\",sameElse:\"L\"},relativeTime:{future:\"%s ішінде\",past:\"%s бұрын\",s:\"бірнеше секунд\",m:\"бір минут\",mm:\"%d минут\",h:\"бір сағат\",hh:\"%d сағат\",d:\"бір күн\",dd:\"%d күн\",M:\"бір ай\",MM:\"%d ай\",y:\"бір жыл\",yy:\"%d жыл\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ші|шы)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(jh[a]||jh[b]||jh[c])},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Cambodian [km]\n//! author : Kruy Vanna : https://github.com/kruyvanna\na.defineLocale(\"km\",{months:\"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ\".split(\"_\"),monthsShort:\"មករា_កុម្ភៈ_មីនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ\".split(\"_\"),weekdays:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),weekdaysShort:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),weekdaysMin:\"អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ថ្ងៃនេះ ម៉ោង] LT\",nextDay:\"[ស្អែក ម៉ោង] LT\",nextWeek:\"dddd [ម៉ោង] LT\",lastDay:\"[ម្សិលមិញ ម៉ោង] LT\",lastWeek:\"dddd [សប្តាហ៍មុន] [ម៉ោង] LT\",sameElse:\"L\"},relativeTime:{future:\"%sទៀត\",past:\"%sមុន\",s:\"ប៉ុន្មានវិនាទី\",m:\"មួយនាទី\",mm:\"%d នាទី\",h:\"មួយម៉ោង\",hh:\"%d ម៉ោង\",d:\"មួយថ្ងៃ\",dd:\"%d ថ្ងៃ\",M:\"មួយខែ\",MM:\"%d ខែ\",y:\"មួយឆ្នាំ\",yy:\"%d ឆ្នាំ\"},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Kannada [kn]\n//! author : Rajeev Naik : https://github.com/rajeevnaikte\nvar kh={1:\"೧\",2:\"೨\",3:\"೩\",4:\"೪\",5:\"೫\",6:\"೬\",7:\"೭\",8:\"೮\",9:\"೯\",0:\"೦\"},lh={\"೧\":\"1\",\"೨\":\"2\",\"೩\":\"3\",\"೪\":\"4\",\"೫\":\"5\",\"೬\":\"6\",\"೭\":\"7\",\"೮\":\"8\",\"೯\":\"9\",\"೦\":\"0\"};a.defineLocale(\"kn\",{months:\"ಜನವರಿ_ಫೆಬ್ರವರಿ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬರ್_ಅಕ್ಟೋಬರ್_ನವೆಂಬರ್_ಡಿಸೆಂಬರ್\".split(\"_\"),monthsShort:\"ಜನ_ಫೆಬ್ರ_ಮಾರ್ಚ್_ಏಪ್ರಿಲ್_ಮೇ_ಜೂನ್_ಜುಲೈ_ಆಗಸ್ಟ್_ಸೆಪ್ಟೆಂಬ_ಅಕ್ಟೋಬ_ನವೆಂಬ_ಡಿಸೆಂಬ\".split(\"_\"),monthsParseExact:!0,weekdays:\"ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ಶುಕ್ರವಾರ_ಶನಿವಾರ\".split(\"_\"),weekdaysShort:\"ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ಶುಕ್ರ_ಶನಿ\".split(\"_\"),weekdaysMin:\"ಭಾ_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ಶ\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[ಇಂದು] LT\",nextDay:\"[ನಾಳೆ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ನಿನ್ನೆ] LT\",lastWeek:\"[ಕೊನೆಯ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ನಂತರ\",past:\"%s ಹಿಂದೆ\",s:\"ಕೆಲವು ಕ್ಷಣಗಳು\",m:\"ಒಂದು ನಿಮಿಷ\",mm:\"%d ನಿಮಿಷ\",h:\"ಒಂದು ಗಂಟೆ\",hh:\"%d ಗಂಟೆ\",d:\"ಒಂದು ದಿನ\",dd:\"%d ದಿನ\",M:\"ಒಂದು ತಿಂಗಳು\",MM:\"%d ತಿಂಗಳು\",y:\"ಒಂದು ವರ್ಷ\",yy:\"%d ವರ್ಷ\"},preparse:function(a){return a.replace(/[೧೨೩೪೫೬೭೮೯೦]/g,function(a){return lh[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return kh[a]})},meridiemParse:/ರಾತ್ರಿ|ಬೆಳಿಗ್ಗೆ|ಮಧ್ಯಾಹ್ನ|ಸಂಜೆ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"ರಾತ್ರಿ\"===b?a<4?a:a+12:\"ಬೆಳಿಗ್ಗೆ\"===b?a:\"ಮಧ್ಯಾಹ್ನ\"===b?a>=10?a:a+12:\"ಸಂಜೆ\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"ರಾತ್ರಿ\":a<10?\"ಬೆಳಿಗ್ಗೆ\":a<17?\"ಮಧ್ಯಾಹ್ನ\":a<20?\"ಸಂಜೆ\":\"ರಾತ್ರಿ\"},dayOfMonthOrdinalParse:/\\d{1,2}(ನೇ)/,ordinal:function(a){return a+\"ನೇ\"},week:{dow:0,doy:6}}),\n//! moment.js locale configuration\n//! locale : Korean [ko]\n//! author : Kyungwook, Park : https://github.com/kyungw00k\n//! author : Jeeeyul Lee <jeeeyul@gmail.com>\na.defineLocale(\"ko\",{months:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),monthsShort:\"1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월\".split(\"_\"),weekdays:\"일요일_월요일_화요일_수요일_목요일_금요일_토요일\".split(\"_\"),weekdaysShort:\"일_월_화_수_목_금_토\".split(\"_\"),weekdaysMin:\"일_월_화_수_목_금_토\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"YYYY.MM.DD\",LL:\"YYYY년 MMMM D일\",LLL:\"YYYY년 MMMM D일 A h:mm\",LLLL:\"YYYY년 MMMM D일 dddd A h:mm\",l:\"YYYY.MM.DD\",ll:\"YYYY년 MMMM D일\",lll:\"YYYY년 MMMM D일 A h:mm\",llll:\"YYYY년 MMMM D일 dddd A h:mm\"},calendar:{sameDay:\"오늘 LT\",nextDay:\"내일 LT\",nextWeek:\"dddd LT\",lastDay:\"어제 LT\",lastWeek:\"지난주 dddd LT\",sameElse:\"L\"},relativeTime:{future:\"%s 후\",past:\"%s 전\",s:\"몇 초\",ss:\"%d초\",m:\"1분\",mm:\"%d분\",h:\"한 시간\",hh:\"%d시간\",d:\"하루\",dd:\"%d일\",M:\"한 달\",MM:\"%d달\",y:\"일 년\",yy:\"%d년\"},dayOfMonthOrdinalParse:/\\d{1,2}일/,ordinal:\"%d일\",meridiemParse:/오전|오후/,isPM:function(a){return\"오후\"===a},meridiem:function(a,b,c){return a<12?\"오전\":\"오후\"}});\n//! moment.js locale configuration\n//! locale : Kyrgyz [ky]\n//! author : Chyngyz Arystan uulu : https://github.com/chyngyz\nvar mh={0:\"-чү\",1:\"-чи\",2:\"-чи\",3:\"-чү\",4:\"-чү\",5:\"-чи\",6:\"-чы\",7:\"-чи\",8:\"-чи\",9:\"-чу\",10:\"-чу\",20:\"-чы\",30:\"-чу\",40:\"-чы\",50:\"-чү\",60:\"-чы\",70:\"-чи\",80:\"-чи\",90:\"-чу\",100:\"-чү\"};a.defineLocale(\"ky\",{months:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\"),monthsShort:\"янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек\".split(\"_\"),weekdays:\"Жекшемби_Дүйшөмбү_Шейшемби_Шаршемби_Бейшемби_Жума_Ишемби\".split(\"_\"),weekdaysShort:\"Жек_Дүй_Шей_Шар_Бей_Жум_Ише\".split(\"_\"),weekdaysMin:\"Жк_Дй_Шй_Шр_Бй_Жм_Иш\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Бүгүн саат] LT\",nextDay:\"[Эртең саат] LT\",nextWeek:\"dddd [саат] LT\",lastDay:\"[Кече саат] LT\",lastWeek:\"[Өткен аптанын] dddd [күнү] [саат] LT\",sameElse:\"L\"},relativeTime:{future:\"%s ичинде\",past:\"%s мурун\",s:\"бирнече секунд\",m:\"бир мүнөт\",mm:\"%d мүнөт\",h:\"бир саат\",hh:\"%d саат\",d:\"бир күн\",dd:\"%d күн\",M:\"бир ай\",MM:\"%d ай\",y:\"бир жыл\",yy:\"%d жыл\"},dayOfMonthOrdinalParse:/\\d{1,2}-(чи|чы|чү|чу)/,ordinal:function(a){var b=a%10,c=a>=100?100:null;return a+(mh[a]||mh[b]||mh[c])},week:{dow:1,doy:7}}),a.defineLocale(\"lb\",{months:\"Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember\".split(\"_\"),monthsShort:\"Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.\".split(\"_\"),monthsParseExact:!0,weekdays:\"Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg\".split(\"_\"),weekdaysShort:\"So._Mé._Dë._Më._Do._Fr._Sa.\".split(\"_\"),weekdaysMin:\"So_Mé_Dë_Më_Do_Fr_Sa\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm [Auer]\",LTS:\"H:mm:ss [Auer]\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm [Auer]\",LLLL:\"dddd, D. MMMM YYYY H:mm [Auer]\"},calendar:{sameDay:\"[Haut um] LT\",sameElse:\"L\",nextDay:\"[Muer um] LT\",nextWeek:\"dddd [um] LT\",lastDay:\"[Gëschter um] LT\",lastWeek:function(){switch(this.day()){case 2:case 4:return\"[Leschten] dddd [um] LT\";default:return\"[Leschte] dddd [um] LT\"}}},relativeTime:{future:Pd,past:Qd,s:\"e puer Sekonnen\",m:Od,mm:\"%d Minutten\",h:Od,hh:\"%d Stonnen\",d:Od,dd:\"%d Deeg\",M:Od,MM:\"%d Méint\",y:Od,yy:\"%d Joer\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Lao [lo]\n//! author : Ryan Hart : https://github.com/ryanhart2\na.defineLocale(\"lo\",{months:\"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ\".split(\"_\"),monthsShort:\"ມັງກອນ_ກຸມພາ_ມີນາ_ເມສາ_ພຶດສະພາ_ມິຖຸນາ_ກໍລະກົດ_ສິງຫາ_ກັນຍາ_ຕຸລາ_ພະຈິກ_ທັນວາ\".split(\"_\"),weekdays:\"ອາທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ\".split(\"_\"),weekdaysShort:\"ທິດ_ຈັນ_ອັງຄານ_ພຸດ_ພະຫັດ_ສຸກ_ເສົາ\".split(\"_\"),weekdaysMin:\"ທ_ຈ_ອຄ_ພ_ພຫ_ສກ_ສ\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"ວັນdddd D MMMM YYYY HH:mm\"},meridiemParse:/ຕອນເຊົ້າ|ຕອນແລງ/,isPM:function(a){return\"ຕອນແລງ\"===a},meridiem:function(a,b,c){return a<12?\"ຕອນເຊົ້າ\":\"ຕອນແລງ\"},calendar:{sameDay:\"[ມື້ນີ້ເວລາ] LT\",nextDay:\"[ມື້ອື່ນເວລາ] LT\",nextWeek:\"[ວັນ]dddd[ໜ້າເວລາ] LT\",lastDay:\"[ມື້ວານນີ້ເວລາ] LT\",lastWeek:\"[ວັນ]dddd[ແລ້ວນີ້ເວລາ] LT\",sameElse:\"L\"},relativeTime:{future:\"ອີກ %s\",past:\"%sຜ່ານມາ\",s:\"ບໍ່ເທົ່າໃດວິນາທີ\",m:\"1 ນາທີ\",mm:\"%d ນາທີ\",h:\"1 ຊົ່ວໂມງ\",hh:\"%d ຊົ່ວໂມງ\",d:\"1 ມື້\",dd:\"%d ມື້\",M:\"1 ເດືອນ\",MM:\"%d ເດືອນ\",y:\"1 ປີ\",yy:\"%d ປີ\"},dayOfMonthOrdinalParse:/(ທີ່)\\d{1,2}/,ordinal:function(a){return\"ທີ່\"+a}});\n//! moment.js locale configuration\n//! locale : Lithuanian [lt]\n//! author : Mindaugas Mozūras : https://github.com/mmozuras\nvar nh={m:\"minutė_minutės_minutę\",mm:\"minutės_minučių_minutes\",h:\"valanda_valandos_valandą\",hh:\"valandos_valandų_valandas\",d:\"diena_dienos_dieną\",dd:\"dienos_dienų_dienas\",M:\"mėnuo_mėnesio_mėnesį\",MM:\"mėnesiai_mėnesių_mėnesius\",y:\"metai_metų_metus\",yy:\"metai_metų_metus\"};a.defineLocale(\"lt\",{months:{format:\"sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio\".split(\"_\"),standalone:\"sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjūtis_rugsėjis_spalis_lapkritis_gruodis\".split(\"_\"),isFormat:/D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/},monthsShort:\"sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd\".split(\"_\"),weekdays:{format:\"sekmadienį_pirmadienį_antradienį_trečiadienį_ketvirtadienį_penktadienį_šeštadienį\".split(\"_\"),standalone:\"sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis\".split(\"_\"),isFormat:/dddd HH:mm/},weekdaysShort:\"Sek_Pir_Ant_Tre_Ket_Pen_Šeš\".split(\"_\"),weekdaysMin:\"S_P_A_T_K_Pn_Š\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"YYYY [m.] MMMM D [d.]\",LLL:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",LLLL:\"YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]\",l:\"YYYY-MM-DD\",ll:\"YYYY [m.] MMMM D [d.]\",lll:\"YYYY [m.] MMMM D [d.], HH:mm [val.]\",llll:\"YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]\"},calendar:{sameDay:\"[Šiandien] LT\",nextDay:\"[Rytoj] LT\",nextWeek:\"dddd LT\",lastDay:\"[Vakar] LT\",lastWeek:\"[Praėjusį] dddd LT\",sameElse:\"L\"},relativeTime:{future:\"po %s\",past:\"prieš %s\",s:Sd,m:Td,mm:Wd,h:Td,hh:Wd,d:Td,dd:Wd,M:Td,MM:Wd,y:Td,yy:Wd},dayOfMonthOrdinalParse:/\\d{1,2}-oji/,ordinal:function(a){return a+\"-oji\"},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Latvian [lv]\n//! author : Kristaps Karlsons : https://github.com/skakri\n//! author : Jānis Elmeris : https://github.com/JanisE\nvar oh={m:\"minūtes_minūtēm_minūte_minūtes\".split(\"_\"),mm:\"minūtes_minūtēm_minūte_minūtes\".split(\"_\"),h:\"stundas_stundām_stunda_stundas\".split(\"_\"),hh:\"stundas_stundām_stunda_stundas\".split(\"_\"),d:\"dienas_dienām_diena_dienas\".split(\"_\"),dd:\"dienas_dienām_diena_dienas\".split(\"_\"),M:\"mēneša_mēnešiem_mēnesis_mēneši\".split(\"_\"),MM:\"mēneša_mēnešiem_mēnesis_mēneši\".split(\"_\"),y:\"gada_gadiem_gads_gadi\".split(\"_\"),yy:\"gada_gadiem_gads_gadi\".split(\"_\")};a.defineLocale(\"lv\",{months:\"janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena\".split(\"_\"),weekdaysShort:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysMin:\"Sv_P_O_T_C_Pk_S\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY.\",LL:\"YYYY. [gada] D. MMMM\",LLL:\"YYYY. [gada] D. MMMM, HH:mm\",LLLL:\"YYYY. [gada] D. MMMM, dddd, HH:mm\"},calendar:{sameDay:\"[Šodien pulksten] LT\",nextDay:\"[Rīt pulksten] LT\",nextWeek:\"dddd [pulksten] LT\",lastDay:\"[Vakar pulksten] LT\",lastWeek:\"[Pagājušā] dddd [pulksten] LT\",sameElse:\"L\"},relativeTime:{future:\"pēc %s\",past:\"pirms %s\",s:$d,m:Zd,mm:Yd,h:Zd,hh:Yd,d:Zd,dd:Yd,M:Zd,MM:Yd,y:Zd,yy:Yd},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Montenegrin [me]\n//! author : Miodrag Nikač <miodrag@restartit.me> : https://github.com/miodragnikac\nvar ph={words:{m:[\"jedan minut\",\"jednog minuta\"],mm:[\"minut\",\"minuta\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mjesec\",\"mjeseca\",\"mjeseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=ph.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+ph.correctGrammaticalCase(a,d)}};a.defineLocale(\"me\",{months:\"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sri._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sjutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedjelju] [u] LT\";case 3:return\"[u] [srijedu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedjelje] [u] LT\",\"[prošlog] [ponedjeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srijede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"prije %s\",s:\"nekoliko sekundi\",m:ph.translate,mm:ph.translate,h:ph.translate,hh:ph.translate,d:\"dan\",dd:ph.translate,M:\"mjesec\",MM:ph.translate,y:\"godinu\",yy:ph.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Maori [mi]\n//! author : John Corrigan <robbiecloset@gmail.com> : https://github.com/johnideal\na.defineLocale(\"mi\",{months:\"Kohi-tāte_Hui-tanguru_Poutū-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea\".split(\"_\"),monthsShort:\"Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki\".split(\"_\"),monthsRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsStrictRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsShortRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,monthsShortStrictRegex:/(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,weekdays:\"Rātapu_Mane_Tūrei_Wenerei_Tāite_Paraire_Hātarei\".split(\"_\"),weekdaysShort:\"Ta_Ma_Tū_We_Tāi_Pa_Hā\".split(\"_\"),weekdaysMin:\"Ta_Ma_Tū_We_Tāi_Pa_Hā\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [i] HH:mm\",LLLL:\"dddd, D MMMM YYYY [i] HH:mm\"},calendar:{sameDay:\"[i teie mahana, i] LT\",nextDay:\"[apopo i] LT\",nextWeek:\"dddd [i] LT\",lastDay:\"[inanahi i] LT\",lastWeek:\"dddd [whakamutunga i] LT\",sameElse:\"L\"},relativeTime:{future:\"i roto i %s\",past:\"%s i mua\",s:\"te hēkona ruarua\",m:\"he meneti\",mm:\"%d meneti\",h:\"te haora\",hh:\"%d haora\",d:\"he ra\",dd:\"%d ra\",M:\"he marama\",MM:\"%d marama\",y:\"he tau\",yy:\"%d tau\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Macedonian [mk]\n//! author : Borislav Mickov : https://github.com/B0k0\na.defineLocale(\"mk\",{months:\"јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември\".split(\"_\"),monthsShort:\"јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек\".split(\"_\"),weekdays:\"недела_понеделник_вторник_среда_четврток_петок_сабота\".split(\"_\"),weekdaysShort:\"нед_пон_вто_сре_чет_пет_саб\".split(\"_\"),weekdaysMin:\"нe_пo_вт_ср_че_пе_сa\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"D.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[Денес во] LT\",nextDay:\"[Утре во] LT\",nextWeek:\"[Во] dddd [во] LT\",lastDay:\"[Вчера во] LT\",lastWeek:function(){switch(this.day()){case 0:case 3:case 6:return\"[Изминатата] dddd [во] LT\";case 1:case 2:case 4:case 5:return\"[Изминатиот] dddd [во] LT\"}},sameElse:\"L\"},relativeTime:{future:\"после %s\",past:\"пред %s\",s:\"неколку секунди\",m:\"минута\",mm:\"%d минути\",h:\"час\",hh:\"%d часа\",d:\"ден\",dd:\"%d дена\",M:\"месец\",MM:\"%d месеци\",y:\"година\",yy:\"%d години\"},dayOfMonthOrdinalParse:/\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,ordinal:function(a){var b=a%10,c=a%100;return 0===a?a+\"-ев\":0===c?a+\"-ен\":c>10&&c<20?a+\"-ти\":1===b?a+\"-ви\":2===b?a+\"-ри\":7===b||8===b?a+\"-ми\":a+\"-ти\"},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Malayalam [ml]\n//! author : Floyd Pink : https://github.com/floydpink\na.defineLocale(\"ml\",{months:\"ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ\".split(\"_\"),monthsShort:\"ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.\".split(\"_\"),monthsParseExact:!0,weekdays:\"ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച\".split(\"_\"),weekdaysShort:\"ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി\".split(\"_\"),weekdaysMin:\"ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ\".split(\"_\"),longDateFormat:{LT:\"A h:mm -നു\",LTS:\"A h:mm:ss -നു\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm -നു\",LLLL:\"dddd, D MMMM YYYY, A h:mm -നു\"},calendar:{sameDay:\"[ഇന്ന്] LT\",nextDay:\"[നാളെ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ഇന്നലെ] LT\",lastWeek:\"[കഴിഞ്ഞ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s കഴിഞ്ഞ്\",past:\"%s മുൻപ്\",s:\"അൽപ നിമിഷങ്ങൾ\",m:\"ഒരു മിനിറ്റ്\",mm:\"%d മിനിറ്റ്\",h:\"ഒരു മണിക്കൂർ\",hh:\"%d മണിക്കൂർ\",d:\"ഒരു ദിവസം\",dd:\"%d ദിവസം\",M:\"ഒരു മാസം\",MM:\"%d മാസം\",y:\"ഒരു വർഷം\",yy:\"%d വർഷം\"},meridiemParse:/രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,meridiemHour:function(a,b){return 12===a&&(a=0),\"രാത്രി\"===b&&a>=4||\"ഉച്ച കഴിഞ്ഞ്\"===b||\"വൈകുന്നേരം\"===b?a+12:a},meridiem:function(a,b,c){return a<4?\"രാത്രി\":a<12?\"രാവിലെ\":a<17?\"ഉച്ച കഴിഞ്ഞ്\":a<20?\"വൈകുന്നേരം\":\"രാത്രി\"}});\n//! moment.js locale configuration\n//! locale : Marathi [mr]\n//! author : Harshad Kale : https://github.com/kalehv\n//! author : Vivek Athalye : https://github.com/vnathalye\nvar qh={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},rh={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};a.defineLocale(\"mr\",{months:\"जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर\".split(\"_\"),monthsShort:\"जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.\".split(\"_\"),monthsParseExact:!0,weekdays:\"रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार\".split(\"_\"),weekdaysShort:\"रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि\".split(\"_\"),weekdaysMin:\"र_सो_मं_बु_गु_शु_श\".split(\"_\"),longDateFormat:{LT:\"A h:mm वाजता\",LTS:\"A h:mm:ss वाजता\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm वाजता\",LLLL:\"dddd, D MMMM YYYY, A h:mm वाजता\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[उद्या] LT\",nextWeek:\"dddd, LT\",lastDay:\"[काल] LT\",lastWeek:\"[मागील] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%sमध्ये\",past:\"%sपूर्वी\",s:_d,m:_d,mm:_d,h:_d,hh:_d,d:_d,dd:_d,M:_d,MM:_d,y:_d,yy:_d},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return rh[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return qh[a]})},meridiemParse:/रात्री|सकाळी|दुपारी|सायंकाळी/,meridiemHour:function(a,b){return 12===a&&(a=0),\"रात्री\"===b?a<4?a:a+12:\"सकाळी\"===b?a:\"दुपारी\"===b?a>=10?a:a+12:\"सायंकाळी\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"रात्री\":a<10?\"सकाळी\":a<17?\"दुपारी\":a<20?\"सायंकाळी\":\"रात्री\"},week:{dow:0,doy:6}}),\n//! moment.js locale configuration\n//! locale : Malay [ms-my]\n//! note : DEPRECATED, the correct one is [ms]\n//! author : Weldan Jamili : https://github.com/weldan\na.defineLocale(\"ms-my\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"tengahari\"===b?a>=11?a:a+12:\"petang\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"pagi\":a<15?\"tengahari\":a<19?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Malay [ms]\n//! author : Weldan Jamili : https://github.com/weldan\na.defineLocale(\"ms\",{months:\"Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis\".split(\"_\"),weekdays:\"Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu\".split(\"_\"),weekdaysShort:\"Ahd_Isn_Sel_Rab_Kha_Jum_Sab\".split(\"_\"),weekdaysMin:\"Ah_Is_Sl_Rb_Km_Jm_Sb\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [pukul] HH.mm\",LLLL:\"dddd, D MMMM YYYY [pukul] HH.mm\"},meridiemParse:/pagi|tengahari|petang|malam/,meridiemHour:function(a,b){return 12===a&&(a=0),\"pagi\"===b?a:\"tengahari\"===b?a>=11?a:a+12:\"petang\"===b||\"malam\"===b?a+12:void 0},meridiem:function(a,b,c){return a<11?\"pagi\":a<15?\"tengahari\":a<19?\"petang\":\"malam\"},calendar:{sameDay:\"[Hari ini pukul] LT\",nextDay:\"[Esok pukul] LT\",nextWeek:\"dddd [pukul] LT\",lastDay:\"[Kelmarin pukul] LT\",lastWeek:\"dddd [lepas pukul] LT\",sameElse:\"L\"},relativeTime:{future:\"dalam %s\",past:\"%s yang lepas\",s:\"beberapa saat\",m:\"seminit\",mm:\"%d minit\",h:\"sejam\",hh:\"%d jam\",d:\"sehari\",dd:\"%d hari\",M:\"sebulan\",MM:\"%d bulan\",y:\"setahun\",yy:\"%d tahun\"},week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Burmese [my]\n//! author : Squar team, mysquar.com\n//! author : David Rossellat : https://github.com/gholadr\n//! author : Tin Aung Lin : https://github.com/thanyawzinmin\nvar sh={1:\"၁\",2:\"၂\",3:\"၃\",4:\"၄\",5:\"၅\",6:\"၆\",7:\"၇\",8:\"၈\",9:\"၉\",0:\"၀\"},th={\"၁\":\"1\",\"၂\":\"2\",\"၃\":\"3\",\"၄\":\"4\",\"၅\":\"5\",\"၆\":\"6\",\"၇\":\"7\",\"၈\":\"8\",\"၉\":\"9\",\"၀\":\"0\"};a.defineLocale(\"my\",{months:\"ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ\".split(\"_\"),monthsShort:\"ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ\".split(\"_\"),weekdays:\"တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ\".split(\"_\"),weekdaysShort:\"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ\".split(\"_\"),weekdaysMin:\"နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ယနေ.] LT [မှာ]\",nextDay:\"[မနက်ဖြန်] LT [မှာ]\",nextWeek:\"dddd LT [မှာ]\",lastDay:\"[မနေ.က] LT [မှာ]\",lastWeek:\"[ပြီးခဲ့သော] dddd LT [မှာ]\",sameElse:\"L\"},relativeTime:{future:\"လာမည့် %s မှာ\",past:\"လွန်ခဲ့သော %s က\",s:\"စက္ကန်.အနည်းငယ်\",m:\"တစ်မိနစ်\",mm:\"%d မိနစ်\",h:\"တစ်နာရီ\",hh:\"%d နာရီ\",d:\"တစ်ရက်\",dd:\"%d ရက်\",M:\"တစ်လ\",MM:\"%d လ\",y:\"တစ်နှစ်\",yy:\"%d နှစ်\"},preparse:function(a){return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g,function(a){return th[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return sh[a]})},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Norwegian Bokmål [nb]\n//! authors : Espen Hovlandsdal : https://github.com/rexxars\n//! Sigurd Gartmann : https://github.com/sigurdga\na.defineLocale(\"nb\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.\".split(\"_\"),monthsParseExact:!0,weekdays:\"søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag\".split(\"_\"),weekdaysShort:\"sø._ma._ti._on._to._fr._lø.\".split(\"_\"),weekdaysMin:\"sø_ma_ti_on_to_fr_lø\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[i dag kl.] LT\",nextDay:\"[i morgen kl.] LT\",nextWeek:\"dddd [kl.] LT\",lastDay:\"[i går kl.] LT\",lastWeek:\"[forrige] dddd [kl.] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s siden\",s:\"noen sekunder\",m:\"ett minutt\",mm:\"%d minutter\",h:\"en time\",hh:\"%d timer\",d:\"en dag\",dd:\"%d dager\",M:\"en måned\",MM:\"%d måneder\",y:\"ett år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Nepalese [ne]\n//! author : suvash : https://github.com/suvash\nvar uh={1:\"१\",2:\"२\",3:\"३\",4:\"४\",5:\"५\",6:\"६\",7:\"७\",8:\"८\",9:\"९\",0:\"०\"},vh={\"१\":\"1\",\"२\":\"2\",\"३\":\"3\",\"४\":\"4\",\"५\":\"5\",\"६\":\"6\",\"७\":\"7\",\"८\":\"8\",\"९\":\"9\",\"०\":\"0\"};a.defineLocale(\"ne\",{months:\"जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर\".split(\"_\"),monthsShort:\"जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.\".split(\"_\"),monthsParseExact:!0,weekdays:\"आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार\".split(\"_\"),weekdaysShort:\"आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.\".split(\"_\"),weekdaysMin:\"आ._सो._मं._बु._बि._शु._श.\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"Aको h:mm बजे\",LTS:\"Aको h:mm:ss बजे\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, Aको h:mm बजे\",LLLL:\"dddd, D MMMM YYYY, Aको h:mm बजे\"},preparse:function(a){return a.replace(/[१२३४५६७८९०]/g,function(a){return vh[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return uh[a]})},meridiemParse:/राति|बिहान|दिउँसो|साँझ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"राति\"===b?a<4?a:a+12:\"बिहान\"===b?a:\"दिउँसो\"===b?a>=10?a:a+12:\"साँझ\"===b?a+12:void 0},meridiem:function(a,b,c){return a<3?\"राति\":a<12?\"बिहान\":a<16?\"दिउँसो\":a<20?\"साँझ\":\"राति\"},calendar:{sameDay:\"[आज] LT\",nextDay:\"[भोलि] LT\",nextWeek:\"[आउँदो] dddd[,] LT\",lastDay:\"[हिजो] LT\",lastWeek:\"[गएको] dddd[,] LT\",sameElse:\"L\"},relativeTime:{future:\"%sमा\",past:\"%s अगाडि\",s:\"केही क्षण\",m:\"एक मिनेट\",mm:\"%d मिनेट\",h:\"एक घण्टा\",hh:\"%d घण्टा\",d:\"एक दिन\",dd:\"%d दिन\",M:\"एक महिना\",MM:\"%d महिना\",y:\"एक बर्ष\",yy:\"%d बर्ष\"},week:{dow:0,doy:6}});\n//! moment.js locale configuration\n//! locale : Dutch (Belgium) [nl-be]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\nvar wh=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),xh=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),yh=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],zh=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;a.defineLocale(\"nl-be\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?xh[a.month()]:wh[a.month()]:wh},monthsRegex:zh,monthsShortRegex:zh,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,monthsParse:yh,longMonthsParse:yh,shortMonthsParse:yh,weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Dutch [nl]\n//! author : Joris Röling : https://github.com/jorisroling\n//! author : Jacob Middag : https://github.com/middagj\nvar Ah=\"jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.\".split(\"_\"),Bh=\"jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),Ch=[/^jan/i,/^feb/i,/^maart|mrt.?$/i,/^apr/i,/^mei$/i,/^jun[i.]?$/i,/^jul[i.]?$/i,/^aug/i,/^sep/i,/^okt/i,/^nov/i,/^dec/i],Dh=/^(januari|februari|maart|april|mei|april|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;a.defineLocale(\"nl\",{months:\"januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december\".split(\"_\"),monthsShort:function(a,b){return a?/-MMM-/.test(b)?Bh[a.month()]:Ah[a.month()]:Ah},monthsRegex:Dh,monthsShortRegex:Dh,monthsStrictRegex:/^(januari|februari|maart|mei|ju[nl]i|april|augustus|september|oktober|november|december)/i,monthsShortStrictRegex:/^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,monthsParse:Ch,longMonthsParse:Ch,shortMonthsParse:Ch,weekdays:\"zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag\".split(\"_\"),weekdaysShort:\"zo._ma._di._wo._do._vr._za.\".split(\"_\"),weekdaysMin:\"Zo_Ma_Di_Wo_Do_Vr_Za\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD-MM-YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[vandaag om] LT\",nextDay:\"[morgen om] LT\",nextWeek:\"dddd [om] LT\",lastDay:\"[gisteren om] LT\",lastWeek:\"[afgelopen] dddd [om] LT\",sameElse:\"L\"},relativeTime:{future:\"over %s\",past:\"%s geleden\",s:\"een paar seconden\",m:\"één minuut\",mm:\"%d minuten\",h:\"één uur\",hh:\"%d uur\",d:\"één dag\",dd:\"%d dagen\",M:\"één maand\",MM:\"%d maanden\",y:\"één jaar\",yy:\"%d jaar\"},dayOfMonthOrdinalParse:/\\d{1,2}(ste|de)/,ordinal:function(a){return a+(1===a||8===a||a>=20?\"ste\":\"de\")},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Nynorsk [nn]\n//! author : https://github.com/mechuwind\na.defineLocale(\"nn\",{months:\"januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des\".split(\"_\"),weekdays:\"sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag\".split(\"_\"),weekdaysShort:\"sun_mån_tys_ons_tor_fre_lau\".split(\"_\"),weekdaysMin:\"su_må_ty_on_to_fr_lø\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY [kl.] H:mm\",LLLL:\"dddd D. MMMM YYYY [kl.] HH:mm\"},calendar:{sameDay:\"[I dag klokka] LT\",nextDay:\"[I morgon klokka] LT\",nextWeek:\"dddd [klokka] LT\",lastDay:\"[I går klokka] LT\",lastWeek:\"[Føregåande] dddd [klokka] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"%s sidan\",s:\"nokre sekund\",m:\"eit minutt\",mm:\"%d minutt\",h:\"ein time\",hh:\"%d timar\",d:\"ein dag\",dd:\"%d dagar\",M:\"ein månad\",MM:\"%d månader\",y:\"eit år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Punjabi (India) [pa-in]\n//! author : Harpreet Singh : https://github.com/harpreetkhalsagtbit\nvar Eh={1:\"੧\",2:\"੨\",3:\"੩\",4:\"੪\",5:\"੫\",6:\"੬\",7:\"੭\",8:\"੮\",9:\"੯\",0:\"੦\"},Fh={\"੧\":\"1\",\"੨\":\"2\",\"੩\":\"3\",\"੪\":\"4\",\"੫\":\"5\",\"੬\":\"6\",\"੭\":\"7\",\"੮\":\"8\",\"੯\":\"9\",\"੦\":\"0\"};a.defineLocale(\"pa-in\",{months:\"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ\".split(\"_\"),monthsShort:\"ਜਨਵਰੀ_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ਅਪ੍ਰੈਲ_ਮਈ_ਜੂਨ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ\".split(\"_\"),weekdays:\"ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ਸ਼ਨੀਚਰਵਾਰ\".split(\"_\"),weekdaysShort:\"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ\".split(\"_\"),weekdaysMin:\"ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ\".split(\"_\"),longDateFormat:{LT:\"A h:mm ਵਜੇ\",LTS:\"A h:mm:ss ਵਜੇ\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm ਵਜੇ\",LLLL:\"dddd, D MMMM YYYY, A h:mm ਵਜੇ\"},calendar:{sameDay:\"[ਅਜ] LT\",nextDay:\"[ਕਲ] LT\",nextWeek:\"dddd, LT\",lastDay:\"[ਕਲ] LT\",lastWeek:\"[ਪਿਛਲੇ] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s ਵਿੱਚ\",past:\"%s ਪਿਛਲੇ\",s:\"ਕੁਝ ਸਕਿੰਟ\",m:\"ਇਕ ਮਿੰਟ\",mm:\"%d ਮਿੰਟ\",h:\"ਇੱਕ ਘੰਟਾ\",hh:\"%d ਘੰਟੇ\",d:\"ਇੱਕ ਦਿਨ\",dd:\"%d ਦਿਨ\",M:\"ਇੱਕ ਮਹੀਨਾ\",MM:\"%d ਮਹੀਨੇ\",y:\"ਇੱਕ ਸਾਲ\",yy:\"%d ਸਾਲ\"},preparse:function(a){return a.replace(/[੧੨੩੪੫੬੭੮੯੦]/g,function(a){return Fh[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Eh[a]})},meridiemParse:/ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,meridiemHour:function(a,b){return 12===a&&(a=0),\"ਰਾਤ\"===b?a<4?a:a+12:\"ਸਵੇਰ\"===b?a:\"ਦੁਪਹਿਰ\"===b?a>=10?a:a+12:\"ਸ਼ਾਮ\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"ਰਾਤ\":a<10?\"ਸਵੇਰ\":a<17?\"ਦੁਪਹਿਰ\":a<20?\"ਸ਼ਾਮ\":\"ਰਾਤ\"},week:{dow:0,doy:6}});\n//! moment.js locale configuration\n//! locale : Polish [pl]\n//! author : Rafal Hirsz : https://github.com/evoL\nvar Gh=\"styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień\".split(\"_\"),Hh=\"stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia\".split(\"_\");a.defineLocale(\"pl\",{months:function(a,b){return a?\"\"===b?\"(\"+Hh[a.month()]+\"|\"+Gh[a.month()]+\")\":/D MMMM/.test(b)?Hh[a.month()]:Gh[a.month()]:Gh},monthsShort:\"sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru\".split(\"_\"),weekdays:\"niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota\".split(\"_\"),weekdaysShort:\"ndz_pon_wt_śr_czw_pt_sob\".split(\"_\"),weekdaysMin:\"Nd_Pn_Wt_Śr_Cz_Pt_So\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Dziś o] LT\",nextDay:\"[Jutro o] LT\",nextWeek:\"[W] dddd [o] LT\",lastDay:\"[Wczoraj o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[W zeszłą niedzielę o] LT\";case 3:return\"[W zeszłą środę o] LT\";case 6:return\"[W zeszłą sobotę o] LT\";default:return\"[W zeszły] dddd [o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"%s temu\",s:\"kilka sekund\",m:be,mm:be,h:be,hh:be,d:\"1 dzień\",dd:\"%d dni\",M:\"miesiąc\",MM:be,y:\"rok\",yy:be},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Portuguese (Brazil) [pt-br]\n//! author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira\na.defineLocale(\"pt-br\",{months:\"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-feira_Terça-feira_Quarta-feira_Quinta-feira_Sexta-feira_Sábado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_Sáb\".split(\"_\"),weekdaysMin:\"Do_2ª_3ª_4ª_5ª_6ª_Sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY [às] HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY [às] HH:mm\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"%s atrás\",s:\"poucos segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\"}),\n//! moment.js locale configuration\n//! locale : Portuguese [pt]\n//! author : Jefferson : https://github.com/jalex79\na.defineLocale(\"pt\",{months:\"Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ter_Qua_Qui_Sex_Sáb\".split(\"_\"),weekdaysMin:\"Do_2ª_3ª_4ª_5ª_6ª_Sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D [de] MMMM [de] YYYY\",LLL:\"D [de] MMMM [de] YYYY HH:mm\",LLLL:\"dddd, D [de] MMMM [de] YYYY HH:mm\"},calendar:{sameDay:\"[Hoje às] LT\",nextDay:\"[Amanhã às] LT\",nextWeek:\"dddd [às] LT\",lastDay:\"[Ontem às] LT\",lastWeek:function(){return 0===this.day()||6===this.day()?\"[Último] dddd [às] LT\":\"[Última] dddd [às] LT\"},sameElse:\"L\"},relativeTime:{future:\"em %s\",past:\"há %s\",s:\"segundos\",m:\"um minuto\",mm:\"%d minutos\",h:\"uma hora\",hh:\"%d horas\",d:\"um dia\",dd:\"%d dias\",M:\"um mês\",MM:\"%d meses\",y:\"um ano\",yy:\"%d anos\"},dayOfMonthOrdinalParse:/\\d{1,2}º/,ordinal:\"%dº\",week:{dow:1,doy:4}}),a.defineLocale(\"ro\",{months:\"ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie\".split(\"_\"),monthsShort:\"ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"duminică_luni_marți_miercuri_joi_vineri_sâmbătă\".split(\"_\"),weekdaysShort:\"Dum_Lun_Mar_Mie_Joi_Vin_Sâm\".split(\"_\"),weekdaysMin:\"Du_Lu_Ma_Mi_Jo_Vi_Sâ\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY H:mm\",LLLL:\"dddd, D MMMM YYYY H:mm\"},calendar:{sameDay:\"[azi la] LT\",nextDay:\"[mâine la] LT\",nextWeek:\"dddd [la] LT\",lastDay:\"[ieri la] LT\",lastWeek:\"[fosta] dddd [la] LT\",sameElse:\"L\"},relativeTime:{future:\"peste %s\",past:\"%s în urmă\",s:\"câteva secunde\",m:\"un minut\",mm:ce,h:\"o oră\",hh:ce,d:\"o zi\",dd:ce,M:\"o lună\",MM:ce,y:\"un an\",yy:ce},week:{dow:1,doy:7}});var Ih=[/^янв/i,/^фев/i,/^мар/i,/^апр/i,/^ма[йя]/i,/^июн/i,/^июл/i,/^авг/i,/^сен/i,/^окт/i,/^ноя/i,/^дек/i];a.defineLocale(\"ru\",{months:{format:\"января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря\".split(\"_\"),standalone:\"январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь\".split(\"_\")},monthsShort:{format:\"янв._февр._мар._апр._мая_июня_июля_авг._сент._окт._нояб._дек.\".split(\"_\"),standalone:\"янв._февр._март_апр._май_июнь_июль_авг._сент._окт._нояб._дек.\".split(\"_\")},weekdays:{standalone:\"воскресенье_понедельник_вторник_среда_четверг_пятница_суббота\".split(\"_\"),format:\"воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу\".split(\"_\"),isFormat:/\\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\\] ?dddd/},weekdaysShort:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"вс_пн_вт_ср_чт_пт_сб\".split(\"_\"),monthsParse:Ih,longMonthsParse:Ih,shortMonthsParse:Ih,monthsRegex:/^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,monthsShortRegex:/^(январ[ья]|янв\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[йя]|июн[ья]|июн\\.?|июл[ья]|июл\\.?|августа?|авг\\.?|сентябр[ья]|сент?\\.?|октябр[ья]|окт\\.?|ноябр[ья]|нояб?\\.?|декабр[ья]|дек\\.?)/i,monthsStrictRegex:/^(январ[яь]|феврал[яь]|марта?|апрел[яь]|ма[яй]|июн[яь]|июл[яь]|августа?|сентябр[яь]|октябр[яь]|ноябр[яь]|декабр[яь])/i,monthsShortStrictRegex:/^(янв\\.|февр?\\.|мар[т.]|апр\\.|ма[яй]|июн[ья.]|июл[ья.]|авг\\.|сент?\\.|окт\\.|нояб?\\.|дек\\.)/i,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY г.\",LLL:\"D MMMM YYYY г., HH:mm\",LLLL:\"dddd, D MMMM YYYY г., HH:mm\"},calendar:{sameDay:\"[Сегодня в] LT\",nextDay:\"[Завтра в] LT\",lastDay:\"[Вчера в] LT\",nextWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В следующее] dddd [в] LT\";case 1:case 2:case 4:return\"[В следующий] dddd [в] LT\";case 3:case 5:case 6:return\"[В следующую] dddd [в] LT\"}},lastWeek:function(a){if(a.week()===this.week())return 2===this.day()?\"[Во] dddd [в] LT\":\"[В] dddd [в] LT\";switch(this.day()){case 0:return\"[В прошлое] dddd [в] LT\";case 1:case 2:case 4:return\"[В прошлый] dddd [в] LT\";case 3:case 5:case 6:return\"[В прошлую] dddd [в] LT\"}},sameElse:\"L\"},relativeTime:{future:\"через %s\",past:\"%s назад\",s:\"несколько секунд\",m:ee,mm:ee,h:\"час\",hh:ee,d:\"день\",dd:ee,M:\"месяц\",MM:ee,y:\"год\",yy:ee},meridiemParse:/ночи|утра|дня|вечера/i,isPM:function(a){return/^(дня|вечера)$/.test(a)},meridiem:function(a,b,c){return a<4?\"ночи\":a<12?\"утра\":a<17?\"дня\":\"вечера\"},dayOfMonthOrdinalParse:/\\d{1,2}-(й|го|я)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":return a+\"-й\";case\"D\":return a+\"-го\";case\"w\":case\"W\":return a+\"-я\";default:return a}},week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Sindhi [sd]\n//! author : Narain Sagar : https://github.com/narainsagar\nvar Jh=[\"جنوري\",\"فيبروري\",\"مارچ\",\"اپريل\",\"مئي\",\"جون\",\"جولاءِ\",\"آگسٽ\",\"سيپٽمبر\",\"آڪٽوبر\",\"نومبر\",\"ڊسمبر\"],Kh=[\"آچر\",\"سومر\",\"اڱارو\",\"اربع\",\"خميس\",\"جمع\",\"ڇنڇر\"];a.defineLocale(\"sd\",{months:Jh,monthsShort:Jh,weekdays:Kh,weekdaysShort:Kh,weekdaysMin:Kh,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd، D MMMM YYYY HH:mm\"},meridiemParse:/صبح|شام/,isPM:function(a){return\"شام\"===a},meridiem:function(a,b,c){return a<12?\"صبح\":\"شام\"},calendar:{sameDay:\"[اڄ] LT\",nextDay:\"[سڀاڻي] LT\",nextWeek:\"dddd [اڳين هفتي تي] LT\",lastDay:\"[ڪالهه] LT\",lastWeek:\"[گزريل هفتي] dddd [تي] LT\",sameElse:\"L\"},relativeTime:{future:\"%s پوء\",past:\"%s اڳ\",s:\"چند سيڪنڊ\",m:\"هڪ منٽ\",mm:\"%d منٽ\",h:\"هڪ ڪلاڪ\",hh:\"%d ڪلاڪ\",d:\"هڪ ڏينهن\",dd:\"%d ڏينهن\",M:\"هڪ مهينو\",MM:\"%d مهينا\",y:\"هڪ سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Northern Sami [se]\n//! authors : Bård Rolstad Henriksen : https://github.com/karamell\na.defineLocale(\"se\",{months:\"ođđajagemánnu_guovvamánnu_njukčamánnu_cuoŋománnu_miessemánnu_geassemánnu_suoidnemánnu_borgemánnu_čakčamánnu_golggotmánnu_skábmamánnu_juovlamánnu\".split(\"_\"),monthsShort:\"ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skáb_juov\".split(\"_\"),weekdays:\"sotnabeaivi_vuossárga_maŋŋebárga_gaskavahkku_duorastat_bearjadat_lávvardat\".split(\"_\"),weekdaysShort:\"sotn_vuos_maŋ_gask_duor_bear_láv\".split(\"_\"),weekdaysMin:\"s_v_m_g_d_b_L\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"MMMM D. [b.] YYYY\",LLL:\"MMMM D. [b.] YYYY [ti.] HH:mm\",LLLL:\"dddd, MMMM D. [b.] YYYY [ti.] HH:mm\"},calendar:{sameDay:\"[otne ti] LT\",nextDay:\"[ihttin ti] LT\",nextWeek:\"dddd [ti] LT\",lastDay:\"[ikte ti] LT\",lastWeek:\"[ovddit] dddd [ti] LT\",sameElse:\"L\"},relativeTime:{future:\"%s geažes\",past:\"maŋit %s\",s:\"moadde sekunddat\",m:\"okta minuhta\",mm:\"%d minuhtat\",h:\"okta diimmu\",hh:\"%d diimmut\",d:\"okta beaivi\",dd:\"%d beaivvit\",M:\"okta mánnu\",MM:\"%d mánut\",y:\"okta jahki\",yy:\"%d jagit\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Sinhalese [si]\n//! author : Sampath Sitinamaluwa : https://github.com/sampathsris\na.defineLocale(\"si\",{months:\"ජනවාරි_පෙබරවාරි_මාර්තු_අප්රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්\".split(\"_\"),monthsShort:\"ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ\".split(\"_\"),weekdays:\"ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා\".split(\"_\"),weekdaysShort:\"ඉරි_සඳු_අඟ_බදා_බ්රහ_සිකු_සෙන\".split(\"_\"),weekdaysMin:\"ඉ_ස_අ_බ_බ්ර_සි_සෙ\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"a h:mm\",LTS:\"a h:mm:ss\",L:\"YYYY/MM/DD\",LL:\"YYYY MMMM D\",LLL:\"YYYY MMMM D, a h:mm\",LLLL:\"YYYY MMMM D [වැනි] dddd, a h:mm:ss\"},calendar:{sameDay:\"[අද] LT[ට]\",nextDay:\"[හෙට] LT[ට]\",nextWeek:\"dddd LT[ට]\",lastDay:\"[ඊයේ] LT[ට]\",lastWeek:\"[පසුගිය] dddd LT[ට]\",sameElse:\"L\"},relativeTime:{future:\"%sකින්\",past:\"%sකට පෙර\",s:\"තත්පර කිහිපය\",m:\"මිනිත්තුව\",mm:\"මිනිත්තු %d\",h:\"පැය\",hh:\"පැය %d\",d:\"දිනය\",dd:\"දින %d\",M:\"මාසය\",MM:\"මාස %d\",y:\"වසර\",yy:\"වසර %d\"},dayOfMonthOrdinalParse:/\\d{1,2} වැනි/,ordinal:function(a){return a+\" වැනි\"},meridiemParse:/පෙර වරු|පස් වරු|පෙ.ව|ප.ව./,isPM:function(a){return\"ප.ව.\"===a||\"පස් වරු\"===a},meridiem:function(a,b,c){return a>11?c?\"ප.ව.\":\"පස් වරු\":c?\"පෙ.ව.\":\"පෙර වරු\"}});\n//! moment.js locale configuration\n//! locale : Slovak [sk]\n//! author : Martin Minka : https://github.com/k2s\n//! based on work of petrbela : https://github.com/petrbela\nvar Lh=\"január_február_marec_apríl_máj_jún_júl_august_september_október_november_december\".split(\"_\"),Mh=\"jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec\".split(\"_\");a.defineLocale(\"sk\",{months:Lh,monthsShort:Mh,weekdays:\"nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota\".split(\"_\"),weekdaysShort:\"ne_po_ut_st_št_pi_so\".split(\"_\"),weekdaysMin:\"ne_po_ut_st_št_pi_so\".split(\"_\"),longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[dnes o] LT\",nextDay:\"[zajtra o] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v nedeľu o] LT\";case 1:case 2:return\"[v] dddd [o] LT\";case 3:return\"[v stredu o] LT\";case 4:return\"[vo štvrtok o] LT\";case 5:return\"[v piatok o] LT\";case 6:return\"[v sobotu o] LT\"}},lastDay:\"[včera o] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[minulú nedeľu o] LT\";case 1:case 2:return\"[minulý] dddd [o] LT\";case 3:return\"[minulú stredu o] LT\";case 4:case 5:return\"[minulý] dddd [o] LT\";case 6:return\"[minulú sobotu o] LT\"}},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pred %s\",s:ge,m:ge,mm:ge,h:ge,hh:ge,d:ge,dd:ge,M:ge,MM:ge,y:ge,yy:ge},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),a.defineLocale(\"sl\",{months:\"januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota\".split(\"_\"),weekdaysShort:\"ned._pon._tor._sre._čet._pet._sob.\".split(\"_\"),weekdaysMin:\"ne_po_to_sr_če_pe_so\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danes ob] LT\",nextDay:\"[jutri ob] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[v] [nedeljo] [ob] LT\";case 3:return\"[v] [sredo] [ob] LT\";case 6:return\"[v] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[v] dddd [ob] LT\"}},lastDay:\"[včeraj ob] LT\",lastWeek:function(){switch(this.day()){case 0:return\"[prejšnjo] [nedeljo] [ob] LT\";case 3:return\"[prejšnjo] [sredo] [ob] LT\";case 6:return\"[prejšnjo] [soboto] [ob] LT\";case 1:case 2:case 4:case 5:return\"[prejšnji] dddd [ob] LT\"}},sameElse:\"L\"},relativeTime:{future:\"čez %s\",past:\"pred %s\",s:he,m:he,mm:he,h:he,hh:he,d:he,dd:he,M:he,MM:he,y:he,yy:he},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Albanian [sq]\n//! author : Flakërim Ismani : https://github.com/flakerimi\n//! author : Menelion Elensúle : https://github.com/Oire\n//! author : Oerd Cukalla : https://github.com/oerd\na.defineLocale(\"sq\",{months:\"Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor\".split(\"_\"),monthsShort:\"Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj\".split(\"_\"),weekdays:\"E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë\".split(\"_\"),weekdaysShort:\"Die_Hën_Mar_Mër_Enj_Pre_Sht\".split(\"_\"),weekdaysMin:\"D_H_Ma_Më_E_P_Sh\".split(\"_\"),weekdaysParseExact:!0,meridiemParse:/PD|MD/,isPM:function(a){return\"M\"===a.charAt(0)},meridiem:function(a,b,c){return a<12?\"PD\":\"MD\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Sot në] LT\",nextDay:\"[Nesër në] LT\",nextWeek:\"dddd [në] LT\",lastDay:\"[Dje në] LT\",lastWeek:\"dddd [e kaluar në] LT\",sameElse:\"L\"},relativeTime:{future:\"në %s\",past:\"%s më parë\",s:\"disa sekonda\",m:\"një minutë\",mm:\"%d minuta\",h:\"një orë\",hh:\"%d orë\",d:\"një ditë\",dd:\"%d ditë\",M:\"një muaj\",MM:\"%d muaj\",y:\"një vit\",yy:\"%d vite\"},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Serbian Cyrillic [sr-cyrl]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\nvar Nh={words:{m:[\"један минут\",\"једне минуте\"],mm:[\"минут\",\"минуте\",\"минута\"],h:[\"један сат\",\"једног сата\"],hh:[\"сат\",\"сата\",\"сати\"],dd:[\"дан\",\"дана\",\"дана\"],MM:[\"месец\",\"месеца\",\"месеци\"],yy:[\"година\",\"године\",\"година\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Nh.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+Nh.correctGrammaticalCase(a,d)}};a.defineLocale(\"sr-cyrl\",{months:\"јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар\".split(\"_\"),monthsShort:\"јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.\".split(\"_\"),monthsParseExact:!0,weekdays:\"недеља_понедељак_уторак_среда_четвртак_петак_субота\".split(\"_\"),weekdaysShort:\"нед._пон._уто._сре._чет._пет._суб.\".split(\"_\"),weekdaysMin:\"не_по_ут_ср_че_пе_су\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[данас у] LT\",nextDay:\"[сутра у] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[у] [недељу] [у] LT\";case 3:return\"[у] [среду] [у] LT\";case 6:return\"[у] [суботу] [у] LT\";case 1:case 2:case 4:case 5:return\"[у] dddd [у] LT\"}},lastDay:\"[јуче у] LT\",lastWeek:function(){var a=[\"[прошле] [недеље] [у] LT\",\"[прошлог] [понедељка] [у] LT\",\"[прошлог] [уторка] [у] LT\",\"[прошле] [среде] [у] LT\",\"[прошлог] [четвртка] [у] LT\",\"[прошлог] [петка] [у] LT\",\"[прошле] [суботе] [у] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"пре %s\",s:\"неколико секунди\",m:Nh.translate,mm:Nh.translate,h:Nh.translate,hh:Nh.translate,d:\"дан\",dd:Nh.translate,M:\"месец\",MM:Nh.translate,y:\"годину\",yy:Nh.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Serbian [sr]\n//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j\nvar Oh={words:{m:[\"jedan minut\",\"jedne minute\"],mm:[\"minut\",\"minute\",\"minuta\"],h:[\"jedan sat\",\"jednog sata\"],hh:[\"sat\",\"sata\",\"sati\"],dd:[\"dan\",\"dana\",\"dana\"],MM:[\"mesec\",\"meseca\",\"meseci\"],yy:[\"godina\",\"godine\",\"godina\"]},correctGrammaticalCase:function(a,b){return 1===a?b[0]:a>=2&&a<=4?b[1]:b[2]},translate:function(a,b,c){var d=Oh.words[c];return 1===c.length?b?d[0]:d[1]:a+\" \"+Oh.correctGrammaticalCase(a,d)}};a.defineLocale(\"sr\",{months:\"januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar\".split(\"_\"),monthsShort:\"jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.\".split(\"_\"),monthsParseExact:!0,weekdays:\"nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota\".split(\"_\"),weekdaysShort:\"ned._pon._uto._sre._čet._pet._sub.\".split(\"_\"),weekdaysMin:\"ne_po_ut_sr_če_pe_su\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd, D. MMMM YYYY H:mm\"},calendar:{sameDay:\"[danas u] LT\",nextDay:\"[sutra u] LT\",nextWeek:function(){switch(this.day()){case 0:return\"[u] [nedelju] [u] LT\";case 3:return\"[u] [sredu] [u] LT\";case 6:return\"[u] [subotu] [u] LT\";case 1:case 2:case 4:case 5:return\"[u] dddd [u] LT\"}},lastDay:\"[juče u] LT\",lastWeek:function(){var a=[\"[prošle] [nedelje] [u] LT\",\"[prošlog] [ponedeljka] [u] LT\",\"[prošlog] [utorka] [u] LT\",\"[prošle] [srede] [u] LT\",\"[prošlog] [četvrtka] [u] LT\",\"[prošlog] [petka] [u] LT\",\"[prošle] [subote] [u] LT\"];return a[this.day()]},sameElse:\"L\"},relativeTime:{future:\"za %s\",past:\"pre %s\",s:\"nekoliko sekundi\",m:Oh.translate,mm:Oh.translate,h:Oh.translate,hh:Oh.translate,d:\"dan\",dd:Oh.translate,M:\"mesec\",MM:Oh.translate,y:\"godinu\",yy:Oh.translate},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : siSwati [ss]\n//! author : Nicolai Davies<mail@nicolai.io> : https://github.com/nicolaidavies\na.defineLocale(\"ss\",{months:\"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\"_\"),monthsShort:\"Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo\".split(\"_\"),weekdays:\"Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo\".split(\"_\"),weekdaysShort:\"Lis_Umb_Lsb_Les_Lsi_Lsh_Umg\".split(\"_\"),weekdaysMin:\"Li_Us_Lb_Lt_Ls_Lh_Ug\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Namuhla nga] LT\",nextDay:\"[Kusasa nga] LT\",nextWeek:\"dddd [nga] LT\",lastDay:\"[Itolo nga] LT\",lastWeek:\"dddd [leliphelile] [nga] LT\",sameElse:\"L\"},relativeTime:{future:\"nga %s\",past:\"wenteka nga %s\",s:\"emizuzwana lomcane\",m:\"umzuzu\",mm:\"%d emizuzu\",h:\"lihora\",hh:\"%d emahora\",d:\"lilanga\",dd:\"%d emalanga\",M:\"inyanga\",MM:\"%d tinyanga\",y:\"umnyaka\",yy:\"%d iminyaka\"},meridiemParse:/ekuseni|emini|entsambama|ebusuku/,meridiem:function(a,b,c){return a<11?\"ekuseni\":a<15?\"emini\":a<19?\"entsambama\":\"ebusuku\"},meridiemHour:function(a,b){return 12===a&&(a=0),\"ekuseni\"===b?a:\"emini\"===b?a>=11?a:a+12:\"entsambama\"===b||\"ebusuku\"===b?0===a?0:a+12:void 0},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:\"%d\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Swedish [sv]\n//! author : Jens Alm : https://github.com/ulmus\na.defineLocale(\"sv\",{months:\"januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december\".split(\"_\"),monthsShort:\"jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec\".split(\"_\"),weekdays:\"söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag\".split(\"_\"),weekdaysShort:\"sön_mån_tis_ons_tor_fre_lör\".split(\"_\"),weekdaysMin:\"sö_må_ti_on_to_fr_lö\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY-MM-DD\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY [kl.] HH:mm\",LLLL:\"dddd D MMMM YYYY [kl.] HH:mm\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd D MMM YYYY HH:mm\"},calendar:{sameDay:\"[Idag] LT\",nextDay:\"[Imorgon] LT\",lastDay:\"[Igår] LT\",nextWeek:\"[På] dddd LT\",lastWeek:\"[I] dddd[s] LT\",sameElse:\"L\"},relativeTime:{future:\"om %s\",past:\"för %s sedan\",s:\"några sekunder\",m:\"en minut\",mm:\"%d minuter\",h:\"en timme\",hh:\"%d timmar\",d:\"en dag\",dd:\"%d dagar\",M:\"en månad\",MM:\"%d månader\",y:\"ett år\",yy:\"%d år\"},dayOfMonthOrdinalParse:/\\d{1,2}(e|a)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"e\":1===b?\"a\":2===b?\"a\":\"e\";return a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Swahili [sw]\n//! author : Fahad Kassim : https://github.com/fadsel\na.defineLocale(\"sw\",{months:\"Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba\".split(\"_\"),monthsShort:\"Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des\".split(\"_\"),weekdays:\"Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi\".split(\"_\"),weekdaysShort:\"Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos\".split(\"_\"),weekdaysMin:\"J2_J3_J4_J5_Al_Ij_J1\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[leo saa] LT\",nextDay:\"[kesho saa] LT\",nextWeek:\"[wiki ijayo] dddd [saat] LT\",lastDay:\"[jana] LT\",lastWeek:\"[wiki iliyopita] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s baadaye\",past:\"tokea %s\",s:\"hivi punde\",m:\"dakika moja\",mm:\"dakika %d\",h:\"saa limoja\",hh:\"masaa %d\",d:\"siku moja\",dd:\"masiku %d\",M:\"mwezi mmoja\",MM:\"miezi %d\",y:\"mwaka mmoja\",yy:\"miaka %d\"},week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Tamil [ta]\n//! author : Arjunkumar Krishnamoorthy : https://github.com/tk120404\nvar Ph={1:\"௧\",2:\"௨\",3:\"௩\",4:\"௪\",5:\"௫\",6:\"௬\",7:\"௭\",8:\"௮\",9:\"௯\",0:\"௦\"},Qh={\"௧\":\"1\",\"௨\":\"2\",\"௩\":\"3\",\"௪\":\"4\",\"௫\":\"5\",\"௬\":\"6\",\"௭\":\"7\",\"௮\":\"8\",\"௯\":\"9\",\"௦\":\"0\"};a.defineLocale(\"ta\",{months:\"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்\".split(\"_\"),monthsShort:\"ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்\".split(\"_\"),weekdays:\"ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை\".split(\"_\"),weekdaysShort:\"ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி\".split(\"_\"),weekdaysMin:\"ஞா_தி_செ_பு_வி_வெ_ச\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, HH:mm\",LLLL:\"dddd, D MMMM YYYY, HH:mm\"},calendar:{sameDay:\"[இன்று] LT\",nextDay:\"[நாளை] LT\",nextWeek:\"dddd, LT\",lastDay:\"[நேற்று] LT\",lastWeek:\"[கடந்த வாரம்] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s இல்\",past:\"%s முன்\",s:\"ஒரு சில விநாடிகள்\",m:\"ஒரு நிமிடம்\",mm:\"%d நிமிடங்கள்\",h:\"ஒரு மணி நேரம்\",hh:\"%d மணி நேரம்\",d:\"ஒரு நாள்\",dd:\"%d நாட்கள்\",M:\"ஒரு மாதம்\",MM:\"%d மாதங்கள்\",y:\"ஒரு வருடம்\",yy:\"%d ஆண்டுகள்\"},dayOfMonthOrdinalParse:/\\d{1,2}வது/,ordinal:function(a){return a+\"வது\"},preparse:function(a){return a.replace(/[௧௨௩௪௫௬௭௮௯௦]/g,function(a){return Qh[a]})},postformat:function(a){return a.replace(/\\d/g,function(a){return Ph[a]})},meridiemParse:/யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,meridiem:function(a,b,c){return a<2?\" யாமம்\":a<6?\" வைகறை\":a<10?\" காலை\":a<14?\" நண்பகல்\":a<18?\" எற்பாடு\":a<22?\" மாலை\":\" யாமம்\"},meridiemHour:function(a,b){return 12===a&&(a=0),\"யாமம்\"===b?a<2?a:a+12:\"வைகறை\"===b||\"காலை\"===b?a:\"நண்பகல்\"===b&&a>=10?a:a+12},week:{dow:0,doy:6}}),\n//! moment.js locale configuration\n//! locale : Telugu [te]\n//! author : Krishna Chaitanya Thota : https://github.com/kcthota\na.defineLocale(\"te\",{months:\"జనవరి_ఫిబ్రవరి_మార్చి_ఏప్రిల్_మే_జూన్_జూలై_ఆగస్టు_సెప్టెంబర్_అక్టోబర్_నవంబర్_డిసెంబర్\".split(\"_\"),monthsShort:\"జన._ఫిబ్ర._మార్చి_ఏప్రి._మే_జూన్_జూలై_ఆగ._సెప్._అక్టో._నవ._డిసె.\".split(\"_\"),monthsParseExact:!0,weekdays:\"ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_శుక్రవారం_శనివారం\".split(\"_\"),weekdaysShort:\"ఆది_సోమ_మంగళ_బుధ_గురు_శుక్ర_శని\".split(\"_\"),weekdaysMin:\"ఆ_సో_మం_బు_గు_శు_శ\".split(\"_\"),longDateFormat:{LT:\"A h:mm\",LTS:\"A h:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY, A h:mm\",LLLL:\"dddd, D MMMM YYYY, A h:mm\"},calendar:{sameDay:\"[నేడు] LT\",nextDay:\"[రేపు] LT\",nextWeek:\"dddd, LT\",lastDay:\"[నిన్న] LT\",lastWeek:\"[గత] dddd, LT\",sameElse:\"L\"},relativeTime:{future:\"%s లో\",past:\"%s క్రితం\",s:\"కొన్ని క్షణాలు\",m:\"ఒక నిమిషం\",mm:\"%d నిమిషాలు\",h:\"ఒక గంట\",hh:\"%d గంటలు\",d:\"ఒక రోజు\",dd:\"%d రోజులు\",M:\"ఒక నెల\",MM:\"%d నెలలు\",y:\"ఒక సంవత్సరం\",yy:\"%d సంవత్సరాలు\"},dayOfMonthOrdinalParse:/\\d{1,2}వ/,ordinal:\"%dవ\",meridiemParse:/రాత్రి|ఉదయం|మధ్యాహ్నం|సాయంత్రం/,meridiemHour:function(a,b){return 12===a&&(a=0),\"రాత్రి\"===b?a<4?a:a+12:\"ఉదయం\"===b?a:\"మధ్యాహ్నం\"===b?a>=10?a:a+12:\"సాయంత్రం\"===b?a+12:void 0},meridiem:function(a,b,c){return a<4?\"రాత్రి\":a<10?\"ఉదయం\":a<17?\"మధ్యాహ్నం\":a<20?\"సాయంత్రం\":\"రాత్రి\"},week:{dow:0,doy:6}}),\n//! moment.js locale configuration\n//! locale : Tetun Dili (East Timor) [tet]\n//! author : Joshua Brooks : https://github.com/joshbrooks\n//! author : Onorio De J. Afonso : https://github.com/marobo\na.defineLocale(\"tet\",{months:\"Janeiru_Fevereiru_Marsu_Abril_Maiu_Juniu_Juliu_Augustu_Setembru_Outubru_Novembru_Dezembru\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Abr_Mai_Jun_Jul_Aug_Set_Out_Nov_Dez\".split(\"_\"),weekdays:\"Domingu_Segunda_Tersa_Kuarta_Kinta_Sexta_Sabadu\".split(\"_\"),weekdaysShort:\"Dom_Seg_Ters_Kua_Kint_Sext_Sab\".split(\"_\"),weekdaysMin:\"Do_Seg_Te_Ku_Ki_Sex_Sa\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[Ohin iha] LT\",nextDay:\"[Aban iha] LT\",nextWeek:\"dddd [iha] LT\",lastDay:\"[Horiseik iha] LT\",lastWeek:\"dddd [semana kotuk] [iha] LT\",sameElse:\"L\"},relativeTime:{future:\"iha %s\",past:\"%s liuba\",s:\"minutu balun\",m:\"minutu ida\",mm:\"minutus %d\",h:\"horas ida\",hh:\"horas %d\",d:\"loron ida\",dd:\"loron %d\",M:\"fulan ida\",MM:\"fulan %d\",y:\"tinan ida\",yy:\"tinan %d\"},dayOfMonthOrdinalParse:/\\d{1,2}(st|nd|rd|th)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Thai [th]\n//! author : Kridsada Thanabulpong : https://github.com/sirn\na.defineLocale(\"th\",{months:\"มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม\".split(\"_\"),monthsShort:\"ม.ค._ก.พ._มี.ค._เม.ย._พ.ค._มิ.ย._ก.ค._ส.ค._ก.ย._ต.ค._พ.ย._ธ.ค.\".split(\"_\"),monthsParseExact:!0,weekdays:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์\".split(\"_\"),weekdaysShort:\"อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์\".split(\"_\"),weekdaysMin:\"อา._จ._อ._พ._พฤ._ศ._ส.\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY เวลา H:mm\",LLLL:\"วันddddที่ D MMMM YYYY เวลา H:mm\"},meridiemParse:/ก่อนเที่ยง|หลังเที่ยง/,isPM:function(a){return\"หลังเที่ยง\"===a},meridiem:function(a,b,c){return a<12?\"ก่อนเที่ยง\":\"หลังเที่ยง\"},calendar:{sameDay:\"[วันนี้ เวลา] LT\",nextDay:\"[พรุ่งนี้ เวลา] LT\",nextWeek:\"dddd[หน้า เวลา] LT\",lastDay:\"[เมื่อวานนี้ เวลา] LT\",lastWeek:\"[วัน]dddd[ที่แล้ว เวลา] LT\",sameElse:\"L\"},relativeTime:{future:\"อีก %s\",past:\"%sที่แล้ว\",s:\"ไม่กี่วินาที\",m:\"1 นาที\",mm:\"%d นาที\",h:\"1 ชั่วโมง\",hh:\"%d ชั่วโมง\",d:\"1 วัน\",dd:\"%d วัน\",M:\"1 เดือน\",MM:\"%d เดือน\",y:\"1 ปี\",yy:\"%d ปี\"}}),\n//! moment.js locale configuration\n//! locale : Tagalog (Philippines) [tl-ph]\n//! author : Dan Hagman : https://github.com/hagmandan\na.defineLocale(\"tl-ph\",{months:\"Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre\".split(\"_\"),monthsShort:\"Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis\".split(\"_\"),weekdays:\"Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado\".split(\"_\"),weekdaysShort:\"Lin_Lun_Mar_Miy_Huw_Biy_Sab\".split(\"_\"),weekdaysMin:\"Li_Lu_Ma_Mi_Hu_Bi_Sab\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"MM/D/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY HH:mm\",LLLL:\"dddd, MMMM DD, YYYY HH:mm\"},calendar:{sameDay:\"LT [ngayong araw]\",nextDay:\"[Bukas ng] LT\",nextWeek:\"LT [sa susunod na] dddd\",lastDay:\"LT [kahapon]\",lastWeek:\"LT [noong nakaraang] dddd\",sameElse:\"L\"},relativeTime:{future:\"sa loob ng %s\",past:\"%s ang nakalipas\",s:\"ilang segundo\",m:\"isang minuto\",mm:\"%d minuto\",h:\"isang oras\",hh:\"%d oras\",d:\"isang araw\",dd:\"%d araw\",M:\"isang buwan\",MM:\"%d buwan\",y:\"isang taon\",yy:\"%d taon\"},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Klingon [tlh]\n//! author : Dominika Kruk : https://github.com/amaranthrose\nvar Rh=\"pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut\".split(\"_\");a.defineLocale(\"tlh\",{months:\"tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’\".split(\"_\"),monthsShort:\"jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’\".split(\"_\"),monthsParseExact:!0,weekdays:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysShort:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),weekdaysMin:\"lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[DaHjaj] LT\",nextDay:\"[wa’leS] LT\",nextWeek:\"LLL\",lastDay:\"[wa’Hu’] LT\",lastWeek:\"LLL\",sameElse:\"L\"},relativeTime:{future:ie,past:je,s:\"puS lup\",m:\"wa’ tup\",mm:ke,h:\"wa’ rep\",hh:ke,d:\"wa’ jaj\",dd:ke,M:\"wa’ jar\",MM:ke,y:\"wa’ DIS\",yy:ke},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}});\n//! moment.js locale configuration\n//! locale : Turkish [tr]\n//! authors : Erhan Gundogan : https://github.com/erhangundogan,\n//! Burak Yiğit Kaya: https://github.com/BYK\nvar Sh={1:\"'inci\",5:\"'inci\",8:\"'inci\",70:\"'inci\",80:\"'inci\",2:\"'nci\",7:\"'nci\",20:\"'nci\",50:\"'nci\",3:\"'üncü\",4:\"'üncü\",100:\"'üncü\",6:\"'ncı\",9:\"'uncu\",10:\"'uncu\",30:\"'uncu\",60:\"'ıncı\",90:\"'ıncı\"};a.defineLocale(\"tr\",{months:\"Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık\".split(\"_\"),monthsShort:\"Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara\".split(\"_\"),weekdays:\"Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi\".split(\"_\"),weekdaysShort:\"Paz_Pts_Sal_Çar_Per_Cum_Cts\".split(\"_\"),weekdaysMin:\"Pz_Pt_Sa_Ça_Pe_Cu_Ct\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[bugün saat] LT\",nextDay:\"[yarın saat] LT\",nextWeek:\"[haftaya] dddd [saat] LT\",lastDay:\"[dün] LT\",lastWeek:\"[geçen hafta] dddd [saat] LT\",sameElse:\"L\"},relativeTime:{future:\"%s sonra\",past:\"%s önce\",s:\"birkaç saniye\",m:\"bir dakika\",mm:\"%d dakika\",h:\"bir saat\",hh:\"%d saat\",d:\"bir gün\",dd:\"%d gün\",M:\"bir ay\",MM:\"%d ay\",y:\"bir yıl\",yy:\"%d yıl\"},dayOfMonthOrdinalParse:/\\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,ordinal:function(a){if(0===a)return a+\"'ıncı\";var b=a%10,c=a%100-b,d=a>=100?100:null;return a+(Sh[b]||Sh[c]||Sh[d])},week:{dow:1,doy:7}}),\n//! moment.js locale configuration\n//! locale : Talossan [tzl]\n//! author : Robin van der Vliet : https://github.com/robin0van0der0v\n//! author : Iustì Canun\na.defineLocale(\"tzl\",{months:\"Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar\".split(\"_\"),monthsShort:\"Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec\".split(\"_\"),weekdays:\"Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi\".split(\"_\"),weekdaysShort:\"Súl_Lún_Mai_Már_Xhú_Vié_Sát\".split(\"_\"),weekdaysMin:\"Sú_Lú_Ma_Má_Xh_Vi_Sá\".split(\"_\"),longDateFormat:{LT:\"HH.mm\",LTS:\"HH.mm.ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM [dallas] YYYY\",LLL:\"D. MMMM [dallas] YYYY HH.mm\",LLLL:\"dddd, [li] D. MMMM [dallas] YYYY HH.mm\"},meridiemParse:/d\\'o|d\\'a/i,isPM:function(a){return\"d'o\"===a.toLowerCase()},meridiem:function(a,b,c){return a>11?c?\"d'o\":\"D'O\":c?\"d'a\":\"D'A\"},calendar:{sameDay:\"[oxhi à] LT\",nextDay:\"[demà à] LT\",nextWeek:\"dddd [à] LT\",lastDay:\"[ieiri à] LT\",lastWeek:\"[sür el] dddd [lasteu à] LT\",sameElse:\"L\"},relativeTime:{future:\"osprei %s\",past:\"ja%s\",s:me,m:me,mm:me,h:me,hh:me,d:me,dd:me,M:me,MM:me,y:me,yy:me},dayOfMonthOrdinalParse:/\\d{1,2}\\./,ordinal:\"%d.\",week:{dow:1,doy:4}}),\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight Latin [tzm-latn]\n//! author : Abdel Said : https://github.com/abdelsaid\na.defineLocale(\"tzm-latn\",{months:\"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir\".split(\"_\"),monthsShort:\"innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir\".split(\"_\"),weekdays:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),weekdaysShort:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),weekdaysMin:\"asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[asdkh g] LT\",nextDay:\"[aska g] LT\",nextWeek:\"dddd [g] LT\",lastDay:\"[assant g] LT\",lastWeek:\"dddd [g] LT\",sameElse:\"L\"},relativeTime:{future:\"dadkh s yan %s\",past:\"yan %s\",s:\"imik\",m:\"minuḍ\",mm:\"%d minuḍ\",h:\"saɛa\",hh:\"%d tassaɛin\",d:\"ass\",dd:\"%d ossan\",M:\"ayowr\",MM:\"%d iyyirn\",y:\"asgas\",yy:\"%d isgasn\"},week:{dow:6,doy:12}}),\n//! moment.js locale configuration\n//! locale : Central Atlas Tamazight [tzm]\n//! author : Abdel Said : https://github.com/abdelsaid\na.defineLocale(\"tzm\",{months:\"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ\".split(\"_\"),monthsShort:\"ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ\".split(\"_\"),weekdays:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ\".split(\"_\"),weekdaysShort:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ\".split(\"_\"),weekdaysMin:\"ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[ⴰⵙⴷⵅ ⴴ] LT\",nextDay:\"[ⴰⵙⴽⴰ ⴴ] LT\",nextWeek:\"dddd [ⴴ] LT\",lastDay:\"[ⴰⵚⴰⵏⵜ ⴴ] LT\",lastWeek:\"dddd [ⴴ] LT\",sameElse:\"L\"},relativeTime:{future:\"ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s\",past:\"ⵢⴰⵏ %s\",s:\"ⵉⵎⵉⴽ\",m:\"ⵎⵉⵏⵓⴺ\",mm:\"%d ⵎⵉⵏⵓⴺ\",h:\"ⵙⴰⵄⴰ\",hh:\"%d ⵜⴰⵙⵙⴰⵄⵉⵏ\",d:\"ⴰⵙⵙ\",dd:\"%d oⵙⵙⴰⵏ\",M:\"ⴰⵢoⵓⵔ\",MM:\"%d ⵉⵢⵢⵉⵔⵏ\",y:\"ⴰⵙⴳⴰⵙ\",yy:\"%d ⵉⵙⴳⴰⵙⵏ\"},week:{dow:6,doy:12}}),a.defineLocale(\"uk\",{months:{format:\"січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня\".split(\"_\"),standalone:\"січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень\".split(\"_\")},monthsShort:\"січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд\".split(\"_\"),weekdays:pe,weekdaysShort:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),weekdaysMin:\"нд_пн_вт_ср_чт_пт_сб\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D MMMM YYYY р.\",LLL:\"D MMMM YYYY р., HH:mm\",LLLL:\"dddd, D MMMM YYYY р., HH:mm\"},calendar:{sameDay:qe(\"[Сьогодні \"),nextDay:qe(\"[Завтра \"),lastDay:qe(\"[Вчора \"),nextWeek:qe(\"[У] dddd [\"),lastWeek:function(){switch(this.day()){case 0:case 3:case 5:case 6:return qe(\"[Минулої] dddd [\").call(this);case 1:case 2:case 4:return qe(\"[Минулого] dddd [\").call(this)}},sameElse:\"L\"},relativeTime:{future:\"за %s\",past:\"%s тому\",s:\"декілька секунд\",m:oe,mm:oe,h:\"годину\",hh:oe,d:\"день\",dd:oe,M:\"місяць\",MM:oe,y:\"рік\",yy:oe},meridiemParse:/ночі|ранку|дня|вечора/,isPM:function(a){return/^(дня|вечора)$/.test(a)},meridiem:function(a,b,c){return a<4?\"ночі\":a<12?\"ранку\":a<17?\"дня\":\"вечора\"},dayOfMonthOrdinalParse:/\\d{1,2}-(й|го)/,ordinal:function(a,b){switch(b){case\"M\":case\"d\":case\"DDD\":case\"w\":case\"W\":return a+\"-й\";case\"D\":return a+\"-го\";default:return a}},week:{dow:1,doy:7}});\n//! moment.js locale configuration\n//! locale : Urdu [ur]\n//! author : Sawood Alam : https://github.com/ibnesayeed\n//! author : Zack : https://github.com/ZackVision\nvar Th=[\"جنوری\",\"فروری\",\"مارچ\",\"اپریل\",\"مئی\",\"جون\",\"جولائی\",\"اگست\",\"ستمبر\",\"اکتوبر\",\"نومبر\",\"دسمبر\"],Uh=[\"اتوار\",\"پیر\",\"منگل\",\"بدھ\",\"جمعرات\",\"جمعہ\",\"ہفتہ\"];\n//! moment.js locale configuration\n//! locale : Uzbek Latin [uz-latn]\n//! author : Rasulbek Mirzayev : github.com/Rasulbeeek\n//! moment.js locale configuration\n//! locale : Uzbek [uz]\n//! author : Sardor Muminov : https://github.com/muminoff\n//! moment.js locale configuration\n//! locale : Vietnamese [vi]\n//! author : Bang Nguyen : https://github.com/bangnk\n//! moment.js locale configuration\n//! locale : Pseudo [x-pseudo]\n//! author : Andrew Hood : https://github.com/andrewhood125\n//! moment.js locale configuration\n//! locale : Yoruba Nigeria [yo]\n//! author : Atolagbe Abisoye : https://github.com/andela-batolagbe\n//! moment.js locale configuration\n//! locale : Chinese (China) [zh-cn]\n//! author : suupic : https://github.com/suupic\n//! author : Zeno Zeng : https://github.com/zenozeng\n//! moment.js locale configuration\n//! locale : Chinese (Hong Kong) [zh-hk]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\n//! author : Konstantin : https://github.com/skfd\n//! moment.js locale configuration\n//! locale : Chinese (Taiwan) [zh-tw]\n//! author : Ben : https://github.com/ben-lin\n//! author : Chris Lam : https://github.com/hehachris\nreturn a.defineLocale(\"ur\",{months:Th,monthsShort:Th,weekdays:Uh,weekdaysShort:Uh,weekdaysMin:Uh,longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd، D MMMM YYYY HH:mm\"},meridiemParse:/صبح|شام/,isPM:function(a){return\"شام\"===a},meridiem:function(a,b,c){return a<12?\"صبح\":\"شام\"},calendar:{sameDay:\"[آج بوقت] LT\",nextDay:\"[کل بوقت] LT\",nextWeek:\"dddd [بوقت] LT\",lastDay:\"[گذشتہ روز بوقت] LT\",lastWeek:\"[گذشتہ] dddd [بوقت] LT\",sameElse:\"L\"},relativeTime:{future:\"%s بعد\",past:\"%s قبل\",s:\"چند سیکنڈ\",m:\"ایک منٹ\",mm:\"%d منٹ\",h:\"ایک گھنٹہ\",hh:\"%d گھنٹے\",d:\"ایک دن\",dd:\"%d دن\",M:\"ایک ماہ\",MM:\"%d ماہ\",y:\"ایک سال\",yy:\"%d سال\"},preparse:function(a){return a.replace(/،/g,\",\")},postformat:function(a){return a.replace(/,/g,\"،\")},week:{dow:1,doy:4}}),a.defineLocale(\"uz-latn\",{months:\"Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr\".split(\"_\"),monthsShort:\"Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek\".split(\"_\"),weekdays:\"Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba\".split(\"_\"),weekdaysShort:\"Yak_Dush_Sesh_Chor_Pay_Jum_Shan\".split(\"_\"),weekdaysMin:\"Ya_Du_Se_Cho_Pa_Ju_Sha\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[Bugun soat] LT [da]\",nextDay:\"[Ertaga] LT [da]\",nextWeek:\"dddd [kuni soat] LT [da]\",lastDay:\"[Kecha soat] LT [da]\",lastWeek:\"[O'tgan] dddd [kuni soat] LT [da]\",sameElse:\"L\"},relativeTime:{future:\"Yaqin %s ichida\",past:\"Bir necha %s oldin\",s:\"soniya\",m:\"bir daqiqa\",mm:\"%d daqiqa\",h:\"bir soat\",hh:\"%d soat\",d:\"bir kun\",dd:\"%d kun\",M:\"bir oy\",MM:\"%d oy\",y:\"bir yil\",yy:\"%d yil\"},week:{dow:1,doy:7}}),a.defineLocale(\"uz\",{months:\"январ_феврал_март_апрел_май_июн_июл_август_сентябр_октябр_ноябр_декабр\".split(\"_\"),monthsShort:\"янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек\".split(\"_\"),weekdays:\"Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба\".split(\"_\"),weekdaysShort:\"Якш_Душ_Сеш_Чор_Пай_Жум_Шан\".split(\"_\"),weekdaysMin:\"Як_Ду_Се_Чо_Па_Жу_Ша\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"D MMMM YYYY, dddd HH:mm\"},calendar:{sameDay:\"[Бугун соат] LT [да]\",nextDay:\"[Эртага] LT [да]\",nextWeek:\"dddd [куни соат] LT [да]\",lastDay:\"[Кеча соат] LT [да]\",lastWeek:\"[Утган] dddd [куни соат] LT [да]\",sameElse:\"L\"},relativeTime:{future:\"Якин %s ичида\",past:\"Бир неча %s олдин\",s:\"фурсат\",m:\"бир дакика\",mm:\"%d дакика\",h:\"бир соат\",hh:\"%d соат\",d:\"бир кун\",dd:\"%d кун\",M:\"бир ой\",MM:\"%d ой\",y:\"бир йил\",yy:\"%d йил\"},week:{dow:1,doy:7}}),a.defineLocale(\"vi\",{months:\"tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12\".split(\"_\"),monthsShort:\"Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12\".split(\"_\"),monthsParseExact:!0,weekdays:\"chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy\".split(\"_\"),weekdaysShort:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysMin:\"CN_T2_T3_T4_T5_T6_T7\".split(\"_\"),weekdaysParseExact:!0,meridiemParse:/sa|ch/i,isPM:function(a){return/^ch$/i.test(a)},meridiem:function(a,b,c){return a<12?c?\"sa\":\"SA\":c?\"ch\":\"CH\"},longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"DD/MM/YYYY\",LL:\"D MMMM [năm] YYYY\",LLL:\"D MMMM [năm] YYYY HH:mm\",LLLL:\"dddd, D MMMM [năm] YYYY HH:mm\",l:\"DD/M/YYYY\",ll:\"D MMM YYYY\",lll:\"D MMM YYYY HH:mm\",llll:\"ddd, D MMM YYYY HH:mm\"},calendar:{sameDay:\"[Hôm nay lúc] LT\",nextDay:\"[Ngày mai lúc] LT\",nextWeek:\"dddd [tuần tới lúc] LT\",lastDay:\"[Hôm qua lúc] LT\",lastWeek:\"dddd [tuần rồi lúc] LT\",sameElse:\"L\"},relativeTime:{future:\"%s tới\",past:\"%s trước\",s:\"vài giây\",m:\"một phút\",mm:\"%d phút\",h:\"một giờ\",hh:\"%d giờ\",d:\"một ngày\",dd:\"%d ngày\",M:\"một tháng\",MM:\"%d tháng\",y:\"một năm\",yy:\"%d năm\"},dayOfMonthOrdinalParse:/\\d{1,2}/,ordinal:function(a){return a},week:{dow:1,doy:4}}),a.defineLocale(\"x-pseudo\",{months:\"J~áñúá~rý_F~ébrú~árý_~Márc~h_Áp~ríl_~Máý_~Júñé~_Júl~ý_Áú~gúst~_Sép~témb~ér_Ó~ctób~ér_Ñ~óvém~bér_~Décé~mbér\".split(\"_\"),monthsShort:\"J~áñ_~Féb_~Már_~Ápr_~Máý_~Júñ_~Júl_~Áúg_~Sép_~Óct_~Ñóv_~Déc\".split(\"_\"),monthsParseExact:!0,weekdays:\"S~úñdá~ý_Mó~ñdáý~_Túé~sdáý~_Wéd~ñésd~áý_T~húrs~dáý_~Fríd~áý_S~átúr~dáý\".split(\"_\"),weekdaysShort:\"S~úñ_~Móñ_~Túé_~Wéd_~Thú_~Frí_~Sát\".split(\"_\"),weekdaysMin:\"S~ú_Mó~_Tú_~Wé_T~h_Fr~_Sá\".split(\"_\"),weekdaysParseExact:!0,longDateFormat:{LT:\"HH:mm\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY HH:mm\",LLLL:\"dddd, D MMMM YYYY HH:mm\"},calendar:{sameDay:\"[T~ódá~ý át] LT\",nextDay:\"[T~ómó~rró~w át] LT\",nextWeek:\"dddd [át] LT\",lastDay:\"[Ý~ést~érdá~ý át] LT\",lastWeek:\"[L~ást] dddd [át] LT\",sameElse:\"L\"},relativeTime:{future:\"í~ñ %s\",past:\"%s á~gó\",s:\"á ~féw ~sécó~ñds\",m:\"á ~míñ~úté\",mm:\"%d m~íñú~tés\",h:\"á~ñ hó~úr\",hh:\"%d h~óúrs\",d:\"á ~dáý\",dd:\"%d d~áýs\",M:\"á ~móñ~th\",MM:\"%d m~óñt~hs\",y:\"á ~ýéár\",yy:\"%d ý~éárs\"},dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===~~(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c},week:{dow:1,doy:4}}),a.defineLocale(\"yo\",{months:\"Sẹ́rẹ́_Èrèlè_Ẹrẹ̀nà_Ìgbé_Èbibi_Òkùdu_Agẹmo_Ògún_Owewe_Ọ̀wàrà_Bélú_Ọ̀pẹ̀̀\".split(\"_\"),monthsShort:\"Sẹ́r_Èrl_Ẹrn_Ìgb_Èbi_Òkù_Agẹ_Ògú_Owe_Ọ̀wà_Bél_Ọ̀pẹ̀̀\".split(\"_\"),weekdays:\"Àìkú_Ajé_Ìsẹ́gun_Ọjọ́rú_Ọjọ́bọ_Ẹtì_Àbámẹ́ta\".split(\"_\"),weekdaysShort:\"Àìk_Ajé_Ìsẹ́_Ọjr_Ọjb_Ẹtì_Àbá\".split(\"_\"),weekdaysMin:\"Àì_Aj_Ìs_Ọr_Ọb_Ẹt_Àb\".split(\"_\"),longDateFormat:{LT:\"h:mm A\",LTS:\"h:mm:ss A\",L:\"DD/MM/YYYY\",LL:\"D MMMM YYYY\",LLL:\"D MMMM YYYY h:mm A\",LLLL:\"dddd, D MMMM YYYY h:mm A\"},calendar:{sameDay:\"[Ònì ni] LT\",nextDay:\"[Ọ̀la ni] LT\",nextWeek:\"dddd [Ọsẹ̀ tón'bọ] [ni] LT\",lastDay:\"[Àna ni] LT\",lastWeek:\"dddd [Ọsẹ̀ tólọ́] [ni] LT\",sameElse:\"L\"},relativeTime:{future:\"ní %s\",past:\"%s kọjá\",s:\"ìsẹjú aayá die\",m:\"ìsẹjú kan\",mm:\"ìsẹjú %d\",h:\"wákati kan\",hh:\"wákati %d\",d:\"ọjọ́ kan\",dd:\"ọjọ́ %d\",M:\"osù kan\",MM:\"osù %d\",y:\"ọdún kan\",yy:\"ọdún %d\"},dayOfMonthOrdinalParse:/ọjọ́\\s\\d{1,2}/,ordinal:\"ọjọ́ %d\",week:{dow:1,doy:4}}),a.defineLocale(\"zh-cn\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"周日_周一_周二_周三_周四_周五_周六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日Ah点mm分\",LLLL:\"YYYY年MMMD日ddddAh点mm分\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日 HH:mm\",llll:\"YYYY年MMMD日dddd HH:mm\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"下午\"===b||\"晚上\"===b?a+12:a>=11?a:a+12},meridiem:function(a,b,c){var d=100*a+b;return d<600?\"凌晨\":d<900?\"早上\":d<1130?\"上午\":d<1230?\"中午\":d<1800?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(日|月|周)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"周\";default:return a}},relativeTime:{future:\"%s内\",past:\"%s前\",s:\"几秒\",m:\"1 分钟\",mm:\"%d 分钟\",h:\"1 小时\",hh:\"%d 小时\",d:\"1 天\",dd:\"%d 天\",M:\"1 个月\",MM:\"%d 个月\",y:\"1 年\",yy:\"%d 年\"},week:{dow:1,doy:4}}),a.defineLocale(\"zh-hk\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日 HH:mm\",LLLL:\"YYYY年MMMD日dddd HH:mm\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日 HH:mm\",llll:\"YYYY年MMMD日dddd HH:mm\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?\"凌晨\":d<900?\"早上\":d<1130?\"上午\":d<1230?\"中午\":d<1800?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"1 分鐘\",mm:\"%d 分鐘\",h:\"1 小時\",hh:\"%d 小時\",d:\"1 天\",dd:\"%d 天\",M:\"1 個月\",MM:\"%d 個月\",y:\"1 年\",yy:\"%d 年\"}}),a.defineLocale(\"zh-tw\",{months:\"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月\".split(\"_\"),monthsShort:\"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月\".split(\"_\"),weekdays:\"星期日_星期一_星期二_星期三_星期四_星期五_星期六\".split(\"_\"),weekdaysShort:\"週日_週一_週二_週三_週四_週五_週六\".split(\"_\"),weekdaysMin:\"日_一_二_三_四_五_六\".split(\"_\"),longDateFormat:{LT:\"HH:mm\",LTS:\"HH:mm:ss\",L:\"YYYY年MMMD日\",LL:\"YYYY年MMMD日\",LLL:\"YYYY年MMMD日 HH:mm\",LLLL:\"YYYY年MMMD日dddd HH:mm\",l:\"YYYY年MMMD日\",ll:\"YYYY年MMMD日\",lll:\"YYYY年MMMD日 HH:mm\",llll:\"YYYY年MMMD日dddd HH:mm\"},meridiemParse:/凌晨|早上|上午|中午|下午|晚上/,meridiemHour:function(a,b){return 12===a&&(a=0),\"凌晨\"===b||\"早上\"===b||\"上午\"===b?a:\"中午\"===b?a>=11?a:a+12:\"下午\"===b||\"晚上\"===b?a+12:void 0},meridiem:function(a,b,c){var d=100*a+b;return d<600?\"凌晨\":d<900?\"早上\":d<1130?\"上午\":d<1230?\"中午\":d<1800?\"下午\":\"晚上\"},calendar:{sameDay:\"[今天]LT\",nextDay:\"[明天]LT\",nextWeek:\"[下]ddddLT\",lastDay:\"[昨天]LT\",lastWeek:\"[上]ddddLT\",sameElse:\"L\"},dayOfMonthOrdinalParse:/\\d{1,2}(日|月|週)/,ordinal:function(a,b){switch(b){case\"d\":case\"D\":case\"DDD\":return a+\"日\";case\"M\":return a+\"月\";case\"w\":case\"W\":return a+\"週\";default:return a}},relativeTime:{future:\"%s內\",past:\"%s前\",s:\"幾秒\",m:\"1 分鐘\",mm:\"%d 分鐘\",h:\"1 小時\",hh:\"%d 小時\",d:\"1 天\",dd:\"%d 天\",M:\"1 個月\",MM:\"%d 個月\",y:\"1 年\",yy:\"%d 年\"}}),a.locale(\"en\"),a});", "type": "application/javascript", "title": "$:/plugins/kixam/moment/moment.js", "module-type": "library" }, "$:/plugins/kixam/moment/icon": { "text": "<svg height=\"22pt\" width=\"22pt\" viewBox=\"0 0 128 128\">\n<path d=\"m 64.116816,0 -54.4965957,31.959746 0.00139,63.919491 54.4965967,31.959743 54.496603,-31.959743 0,-63.919491 L 64.118211,0 Z M 63.842544,28.318892 A 35.326327,35.326327 0 0 1 99.17259,63.645219 35.326327,35.326327 0 0 1 63.842544,98.975265 35.326327,35.326327 0 0 1 28.516216,63.645219 35.326327,35.326327 0 0 1 63.842544,28.318892 Z m 0,4.775599 c -16.870097,0 -30.550728,13.680631 -30.550728,30.550728 0,16.874746 13.680631,30.555841 30.550728,30.555841 16.874745,0 30.555841,-13.681095 30.555841,-30.555841 0,-16.870097 -13.681096,-30.550728 -30.555841,-30.550728 z m 0,1.906893 c 1.06455,0 1.910611,0.860008 1.910611,1.915725 l 0,28.638722 -17.190856,0 c -1.027361,0 -1.905499,-0.85536 -1.905499,-1.910612 0,-1.059902 0.854895,-1.905963 1.905499,-1.905963 l 13.374282,0 0,-24.81285 c 0,-1.06362 0.855359,-1.925022 1.905963,-1.925022 z\"/>\n</svg>\n", "title": "$:/plugins/kixam/moment/icon", "tags": "$:/tags/Image", "type": "text/vnd.tiddlywiki" }, "$:/plugins/kixam/moment/readme": { "text": "! moment.js\n\nA plugin for [[TiddlyWiki|http://tiddlywiki.com]] 5, that provides the [[moment.js library|http://momentjs.com]].\n", "title": "$:/plugins/kixam/moment/readme" }, "$:/plugins/kixam/moment/license": { "text": "!! moment.js licence: [[MIT|http://mit-license.org/]]\n```\nCopyright (c) 2011-2015 Tim Wood, Iskren Chernev, Moment.js contributors\n\nPermission is hereby granted, free of charge, to any person\nobtaining a copy of this software and associated documentation\nfiles (the \"Software\"), to deal in the Software without\nrestriction, including without limitation the rights to use,\ncopy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following\nconditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES\nOF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\nNONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\nHOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\nWHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\nOTHER DEALINGS IN THE SOFTWARE.\n```\n\n!! Plugin license: [[BSD 2-clause simplified license|http://www.freebsd.org/copyright/freebsd-license.html]]\n```\nCopyright (c) 2015, kixam\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n1. Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n```\n", "title": "$:/plugins/kixam/moment/license" } } }
{"tiddlers":{"$:/plugins/kookma/searchwikis/history":{"title":"$:/plugins/kookma/searchwikis/history","created":"20200404125701937","modified":"20200404125707400","tags":"","type":"text/vnd.tiddlywiki","text":"Full change log https://kookma.github.io/TW-???/#ChangeLog\n\n* ''0.2.0'' -- 2020.03.12 -- first plugin\n* ''0.1.0'' -- 2019.11.19 -- first plugin\n"},"$:/plugins/kookma/searchwikis/license":{"title":"$:/plugins/kookma/searchwikis/license","created":"20200404125701938","modified":"20200404125705382","tags":"","type":"text/vnd.tiddlywiki","text":"Distributed under an MIT license.\n\nCopyright (c) 2020 [[Mohammad Rahmani|https://github.com/kookma]]\n\n<<<\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n<<<"},"$:/plugins/kookma/searchwikis/macros/create-summary":{"title":"$:/plugins/kookma/searchwikis/macros/create-summary","created":"20200304193153742","modified":"20200404130202234","tags":"","type":"text/vnd.tiddlywiki","text":"\\define tidText() {{$:/plugins/kookma/searchwikis/ui/index-summary}}\n\\define index-summary-link()\n<$button class=\"tc-btn-invisible tc-tiddlylink\" to=\"Searchwikis Index Summary\">external wikis\n<$list filter=\"[[Searchwikis Index Summary]is[missing]]\">\n<$action-createtiddler $basetitle=\"Searchwikis Index Summary\" \ntext=<<tidText>> />\n</$list>\n</$button>\n\\end"},"$:/plugins/kookma/searchwikis/macros/searchindex":{"title":"$:/plugins/kookma/searchwikis/macros/searchindex","created":"20200303071014382","modified":"20200404130202256","type":"text/vnd.tiddlywiki","text":"\\define searchIndex(searchTerm)\n\\rules except wikilink\n<$list filter=\"[all[tiddlers+shadows]prefix[$:/stw/index/]tag[$:/tags/SearchWikis]]\" variable=dataTid emptyMessage=\"//There is no index tiddler//\">\n<$vars wikiUrl={{{ [<dataTid>get[stw_wiki_url]] }}} wikiTitle={{{ [<dataTid>get[stw_wiki_title]] }}}>\n<div style=\"margin-bottom:15px\">\n--- Search in: <a href=<<wikiUrl>> target=\"_blank\" rel=\"noopener noreferrer\">''<$text text=<<wikiTitle>>/>''</a><br>\n<$list filter=\"[<dataTid>indexes[]]\" variable=idx>\n<$list filter=\"[<dataTid>getindex<idx>search:title[$searchTerm$]]\" variable=result>\n<$vars inTitle={{{[<result>split[|]nth[1]]}}}\n inCaption={{{[<result>split[|]nth[2]]}}}\n \t inTags={{{[<result>split[|]nth[3]]}}} >\n<$vars idxs={{{[<idx>split[:]join[%3A]split[#]join[%23]]}}}><!--replace colon(:) and hash(#) in title -->\n<$wikify name=targetUrl text={{{[<wikiUrl>addsuffix[#]addsuffix<idxs>]}}}> \n<a href=<<targetUrl>> target=\"_blank\" rel=\"noopener noreferrer\"><$text text=<<inTitle>> /></a><br>\n</$wikify>\n</$vars>\n<div style=\"font-size:small;\">\n<$list filter=\"[<inCaption>!is[blank]]\" variable=ignore>\nCaption: <$text text=<<inCaption>>/> \n</$list>\n<$list filter=\"[<inTags>!is[blank]]\" variable=ignore>\nTags: <$list filter=\"[enlist<inTags>]\" variable=tagItem>\n__<$text text=<<tagItem>> />__ </$list>\n</$list>\n</div>\n</$vars>\n</$list>\n</$list>\n</div>\n</$vars>\n</$list>\n\\end"},"$:/plugins/kookma/searchwikis/macros/searchresult":{"title":"$:/plugins/kookma/searchwikis/macros/searchresult","created":"20200303160932478","modified":"20200404130202265","type":"text/vnd.tiddlywiki","text":"<!-- display results -->\n<$macrocall $name=\"searchIndex\" searchTerm={{{[<tmpsearchTerm>get[text]]}}} />"},"$:/plugins/kookma/searchwikis/readme":{"title":"$:/plugins/kookma/searchwikis/readme","created":"20200404125701939","modified":"20200404131622364","tags":"","type":"text/vnd.tiddlywiki","text":"; Searchwikis\nSearchwikis plugin uses index (dataTiddler) to search multiple external Tiddlywikis. It has two parts\n\n# An indexer, to build an index of all tiddlers in an external wiki\n# A search tool to search indexes and display a link to a tiddler found in an external wiki\n\nThen one master wiki can hosts many index tiddlers and lets to search several external wikis through index tiddlers.\n\n;Code and demo\nFor learning plugin features, syntax, tutorial and examples see the plugin demo and code pages\n\n* Demo: https://kookma.github.io/TW-Searchwikis/\n* Code: https://github.com/kookma/TW-Searchwikis\n"},"$:/plugins/kookma/searchwikis/ui/advancedsearch":{"title":"$:/plugins/kookma/searchwikis/ui/advancedsearch","caption":"External wikis","created":"20200303134648969","modified":"20200404130202276","tags":"$:/tags/AdvancedSearch","type":"text/vnd.tiddlywiki","text":"\\import $:/plugins/kookma/searchwikis/macros/searchindex\n\\import $:/plugins/kookma/searchwikis/macros/create-summary\n\n\\define tmpsearchTerm() $:/temp/stw/searchterm\n\nSearch <<index-summary-link>> through index tiddlers\n\n<div class=\"tc-search\">\n<$edit-text tiddler=<<tmpsearchTerm>> tag=\"input\" type=\"search\" focus={{$:/config/Search/AutoFocus}} default=\"\"/>\n<$reveal state=<<tmpsearchTerm>> type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=<<tmpsearchTerm>> $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n\n<$reveal state=<<tmpsearchTerm>> type=\"nomatch\" text=\"\">\n<$list filter=\"[<tmpsearchTerm>get[text]minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" >\n<$transclude tiddler=\"$:/plugins/kookma/searchwikis/macros/searchresult\" field=\"text\"/>\n</$list>\n\n</$reveal>\n\n"},"$:/plugins/kookma/searchwikis/ui/index-summary":{"title":"$:/plugins/kookma/searchwikis/ui/index-summary","created":"20200304150759980","modified":"20200404130202284","tags":"","type":"text/vnd.tiddlywiki","text":"\\define delete-all-indexes()\n<$button popup=<<qualify \"$:/state/searchwikis/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n\n<$reveal state=<<qualify \"$:/state/searchwikis/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows+tiddlers]prefix[$:/stw/index/]tag[$:/tags/SearchWikis]]\"/>\"\"\">\nAre you sure you wish to delete <<resultCount>> index tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" style=\"outline:none;\">\n<$action-deletetiddler $filter=\"[all[shadows+tiddlers]prefix[$:/stw/index/]tag[$:/tags/SearchWikis]]\"/>\n{{$:/core/images/delete-button}} Yes \n</$button> \n<$button class=\"tc-btn-invisible\" style=\"outline:none;\">\n<$action-deletetiddler $tiddler=\"$:/state/searchwikis/filterDeleteDropdown\"/>\n{{$:/core/images/close-button}} No \n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n\\end\n\n\\define include-exclude-index()\n<span title=\"Include or exclude index in Searchwikis\"><$checkbox tag=\"$:/tags/SearchWikis\"/></span>\n\\end\n\n\\define display-summary()\n<div class=\"\" style=\"max-width:100%\">\n<table style=\"font-size:0.9em\">\n<thead>\n<tr><td style=\"min-width:32px\"> </td>\n<td>Title</td><td>Url</td><td>Last update</td><td>index Tiddler</td>\n<td style=\"min-width:32px\">Delete</td></tr>\n</thead>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/stw/index/]has[stw_wiki_title]]\">\n<tr>\n<td style=\"text-align:center\"><<include-exclude-index>></td>\n<td><$text text={{{[<currentTiddler>get[stw_wiki_title]]}}}/></td>\n<td><$text text={{{[<currentTiddler>get[stw_wiki_url]]}}}/></td>\n<td><$text text={{{[<currentTiddler>get[stw_last_update]]}}}/></td>\n<td><$link/></td>\n<td style=\"text-align:center\">{{||$:/core/ui/Buttons/delete}}</td>\n</tr>\n</$list>\n</tbody>\n</table>\n</div>\n\\end\n\n\n!! Index summary\n<<display-summary>><small>Delete all index tiddlers? <<delete-all-indexes>></small>\n\n;Index tools\n:[[index and export tool|Index and Export]] (drag and drop to external wiki, create index and export to this central wiki)\n:Change search result order by rearrange the index tiddlers <<tag $:/tags/SearchWikis>>"},"Index and Export":{"title":"Index and Export","created":"20200303165959003","modified":"20200404133202352","tags":"","type":"text/vnd.tiddlywiki","text":"\\define tempTidInputs() $:/temp/searchwiki/input\n\\define searchwikiTag() $:/tags/SearchWikis\n\\define indexTiddler() $:/stw/index/{{{ [<tempTidInputs>getindex[wikiTitle]] ~[{$:/SiteTitle}] }}}\n\n\n\\define indexvalue() $(title)$|$(caption)$|$(tags)$\n\n\\define index-all-tiddlers()\n<!-- this macro will inedex all tiddlers in the wiki -->\n<$list filter=\"[all[tiddlers]!is[system]] $(exclude)$\">\n<$vars title={{!!title}} caption={{!!caption}} tags={{!!tags}} >\n<$action-setfield $tiddler=<<indexTiddler>> $index=<<currentTiddler>> $value=<<indexvalue>>/>\n</$vars>\n</$list>\n\\end\n\n\\define add-wiki-info()\n<!-- add the source wiki info to index tiddler through dedicated fields -->\n<$action-setfield $tiddler=<<indexTiddler>> $field=\"stw_wiki_title\" $value={{{ [<tempTidInputs>getindex[wikiTitle]] ~[{$:/SiteTitle}] }}}/>\n<$action-setfield $tiddler=<<indexTiddler>> $field=\"stw_wiki_url\" $value={{{ [<tempTidInputs>getindex[wikiUrl]] }}} />\n<$action-setfield $tiddler=<<indexTiddler>> $field=\"stw_last_update\" $value=<<now \"mmm DDth, YYYY 0hh:0mm:0ss\">> />\n<$action-setfield $tiddler=<<indexTiddler>> tags=<<searchwikiTag>> />\n\\end\n\n\n\\define display-summary()\n<div class=\"kk-stw-indent\">\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/stw/index/]tag[$:/tags/SearchWikis]]\" emptyMessage=\"//No index tiddler existed//\">\n{{||$:/core/ui/Buttons/delete}} \n{{||$:/core/ui/Buttons/export-tiddler}} \n<$link/> <$text text={{{[<currentTiddler>get[stw_last_update]] }}}/><br>\n</$list>\n</div>\n\\end\n\n\\define btn-Clear(index) \n<$reveal state=\"$(tempTidInputs)$##$index$\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible kk-stw-btn\">{{$:/core/images/close-button}}\n<$action-setfield $tiddler=<<tempTidInputs>> $index=<<__index__>> />\n</$button>\n</$reveal>\n\\end\n\n\\define index-ui()\n<label class=\"kk-stw-lbl\">Wiki title </label>\n<$edit-text tiddler=<<tempTidInputs>> index=\"wikiTitle\" tag=input default=\"\" placeholder={{$:/SiteTitle}} class=\"kk-stw-txtbox\"/> \n<<btn-Clear index:\"wikiTitle\">><br>\n\n<label class=\"kk-stw-lbl\">Wiki url </label>\n<$edit-text tiddler=<<tempTidInputs>> index=\"wikiUrl\" tag=input default=\"\" placeholder=\"e.g. https://tiddlywiki.com\" class=\"kk-stw-txtbox\"/> \n<<btn-Clear index:\"wikiUrl\">><br>\n\n<label class=\"kk-stw-lbl\">Exclude filter</label>\n<$edit-text tiddler=<<tempTidInputs>> index=\"excludeItems\" tag=input default=\"\" placeholder=\"e.g. -[prefix[demo]]\" class=\"kk-stw-txtbox\"/> \n<<btn-Clear index:\"excludeItems\">><br>\n\n<!-- Make index tiddler-->\n<$wikify name=indexTiddler text=<<indexTiddler>> >\n<$vars exclude={{{ [<tempTidInputs>getindex[excludeItems]] }}}>\n<span class=\"kk-stw-lbl\"/>\n<$button>Make Index\n<$list filter=\"[<tempTidInputs>getindex[wikiUrl]!is[blank]]\" variable=ignore>\n<<index-all-tiddlers>>\n<<add-wiki-info>>\n</$list>\n</$button>\n<<display-export-button>>\n<<display-summary>>\n</$vars>\n</$wikify>\n\\end\n\n\n<style>\n.kk-stw-lbl {display:inline-block; width:85px;}\n.kk-stw-txtbox {display:inline-block; width:40ch;}\n.kk-stw-indent{padding-left:60px; margin-top:1em;font-size:small;}\n.kk-stw-btn svg{fill:#999999}\n</style>\n\n\n<<index-ui>>\n"}}}
{ "tiddlers": { "$:/plugins/rboue/SocialCalc/Languages/en-GB": { "type": "application/json", "title": "$:/plugins/rboue/SocialCalc/Languages/en-GB", "text": "{\n\"\":\"Translation process :\",\n\"\":\" . Translate all messages.\",\n\"\":\" . Add tiddler to your TiddlyWiki with the title :\",\n\"\":\" $:/plugins/<not sure>/SocialCalc/Languages/<your language>\",\n\"\":\" <your language> must match with the $:/language tiddler.\",\n\"\":\" Exemple : fr-FR for French.\",\n\n\"\":\"Common error messages\",\n \"s_BrowserNotSupported\": \"Browser not supported.\",\n \"s_InternalError\": \"Internal SocialCalc error (probably an internal bug): \",\n\n\"\":\"Errors thrown on unexpected value in save file\",\n \"s_pssUnknownColType\": \"Unknown col type item\",\n \"s_pssUnknownRowType\": \"Unknown row type item\",\n \"s_pssUnknownLineType\": \"Unknown line type\",\n\n\"\":\"Error thrown on unexpected cell type\",\n \"s_cfspUnknownCellType\": \"Unknown cell type item\",\n\n\"\":\"ExecuteSheetCommand\",\n \"s_escUnknownSheetCmd\": \"Unknown sheet command: \",\n \"s_escUnknownSetCoordCmd\": \"Unknown set coord command: \",\n \"s_escUnknownCmd\": \"Unknown command: \",\n\n\"\":\"SocialCalc.CheckAndCalcCell\",\n \"s_caccCircRef\": \"Circular reference to \",\n\n\"\":\"SocialCalc.RenderContext\",\n \"s_rcMissingSheet\": \"Render Context must have a sheet object\",\n\n\"\":\"SocialCalc.EditorGetStatuslineString -- strings shown on status line\",\n \"s_statusline_executing\": \"Executing...\",\n \"s_statusline_displaying\": \"Displaying...\",\n \"s_statusline_ordering\": \"Ordering...\",\n \"s_statusline_calculating\": \"Calculating...\",\n \"s_statusline_calculatingls\": \"Calculating... Loading Sheet...\",\n \"s_statusline_doingserverfunc\": \"doing server function \",\n \"s_statusline_incell\": \" in cell \",\n \"s_statusline_calcstart\": \"Calculation start...\",\n \"s_statusline_sum\": \"SUM\",\n \"s_statusline_recalcneeded\": \"<span style=\\\"color:#999;\\\">(Recalc needed)</span>\",\n \"s_statusline_circref\": \"<span style=\\\"color:red;\\\">Circular reference: \",\n\n\"\":\"SocialCalc.InputBoxDisplayCellContents\",\n \"s_inputboxdisplaymultilinetext\": \"[Multi-line text: Click icon on right to edit]\",\n \"ietUnknownFunction\": \"Unknown function \", \"\":\"displayed when typing \\\"=unknown(\",\n \"s_CHfillAllTooltip\": \"Fill Contents and Formats Down/Right\", \"\":\"tooltip for fill all handle\",\n \"s_CHfillContentsTooltip\": \"Fill Contents Only Down/Right\", \"\":\"tooltip for fill formulas handle\",\n \"s_CHmovePasteAllTooltip\": \"Move Contents and Formats\", \"\":\"etc.\",\n \"s_CHmovePasteContentsTooltip\": \"Move Contents Only\",\n \"s_CHmoveInsertAllTooltip\": \"Slide Contents and Formats within Row/Col\",\n \"s_CHmoveInsertContentsTooltip\": \"Slide Contents within Row/Col\",\n \"s_CHindicatorOperationLookup\": {\n \"Fill\": \"Fill\", \"FillC\": \"Fill Contents\",\n \"Move\": \"Move\", \"MoveI\": \"Slide\", \n \"MoveC\": \"Move Contents\", \"MoveIC\": \"Slide Contents\"\n },\n \"s_CHindicatorDirectionLookup\": {\n \"Down\": \" Down\", \"Right\": \" Right\",\n \"Horizontal\": \" Horizontal\", \"Vertical\": \" Vertical\"\n },\n\n\"\":\"Constants for default Format tab (settings)\",\n\"\":\"\",\n\"\":\"*** EVEN THOUGH THESE DON'T START WITH s_: ***\",\n\"\":\"\",\n\"\":\"These should be carefully checked for localization. Make sure you understand what they do and how they work!\",\n\"\":\"The first part of \\\"first:second|first:second|...\\\" is what is displayed and the second is the value to be used.\",\n\"\":\"The value is normally not translated -- only the displayed part. The [cancel], [break], etc., are not translated --\",\n\"\":\"they are commands to SocialCalc.SettingsControls.PopupListInitialize\",\n\n \"SCFormatNumberFormats\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!Automatic!:general|%loc!Auto w/ commas!:[,]General|[break]:|00:00|000:000|0000:0000|00000:00000|[break]:|%loc!Formula!:formula|%loc!Hidden!:hidden|[newcol]:1234:0|1,234:#,##0|1,234.5:#,##0.0|1,234.56:#,##0.00|1,234.567:#,##0.000|1,234.5678:#,##0.0000|[break]:|1,234%:#,##0%|1,234.5%:#,##0.0%|1,234.56%:#,##0.00%|[newcol]:|$1,234:$#,##0|$1,234.5:$#,##0.0|$1,234.56:$#,##0.00|[break]:|(1,234):#,##0_);(#,##0)|(1,234.5):#,##0.0_);(#,##0.0)|(1,234.56):#,##0.00_);(#,##0.00)|[break]:|($1,234):#,##0_);($#,##0)|($1,234.5):$#,##0.0_);($#,##0.0)|($1,234.56):$#,##0.00_);($#,##0.00)|[newcol]:|1/4/06:m/d/yy|01/04/2006:mm/dd/yyyy|2006-01-04:yyyy-mm-dd|4-Jan-06:d-mmm-yy|04-Jan-2006:dd-mmm-yyyy|January 4, 2006:mmmm d, yyyy|[break]:|1\\\\c23:h:mm|1\\\\c23 PM:h:mm AM/PM|1\\\\c23\\\\c45:h:mm:ss|01\\\\c23\\\\c45:hh:mm:ss|26\\\\c23 (h\\\\cm):[hh]:mm|69\\\\c45 (m\\\\cs):[mm]:ss|69 (s):[ss]|[newcol]:|2006-01-04 01\\\\c23\\\\c45:yyyy-mm-dd hh:mm:ss|January 4, 2006:mmmm d, yyyy hh:mm:ss|Wed:ddd|Wednesday:dddd|\",\n \"SCFormatTextFormats\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!Automatic!:general|%loc!Plain Text!:text-plain|HTML:text-html|%loc!Wikitext!:text-wiki|%loc!Link!:text-link|%loc!Formula!:formula|%loc!Hidden!:hidden|\",\n \"SCFormatPadsizes\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!No padding!:0px|[newcol]:|1 pixel:1px|2 pixels:2px|3 pixels:3px|4 pixels:4px|5 pixels:5px|6 pixels:6px|7 pixels:7px|8 pixels:8px|[newcol]:|9 pixels:9px|10 pixels:10px|11 pixels:11px|12 pixels:12px|13 pixels:13px|14 pixels:14px|16 pixels:16px|18 pixels:18px|[newcol]:|20 pixels:20px|22 pixels:22px|24 pixels:24px|28 pixels:28px|36 pixels:36px|\",\n \"SCFormatFontsizes\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|X-Small:x-small|Small:small|Medium:medium|Large:large|X-Large:x-large|[newcol]:|6pt:6pt|7pt:7pt|8pt:8pt|9pt:9pt|10pt:10pt|11pt:11pt|12pt:12pt|14pt:14pt|16pt:16pt|[newcol]:|18pt:18pt|20pt:20pt|22pt:22pt|24pt:24pt|28pt:28pt|36pt:36pt|48pt:48pt|72pt:72pt|[newcol]:|8 pixels:8px|9 pixels:9px|10 pixels:10px|11 pixels:11px|12 pixels:12px|13 pixels:13px|14 pixels:14px|[newcol]:|16 pixels:16px|18 pixels:18px|20 pixels:20px|22 pixels:22px|24 pixels:24px|28 pixels:28px|36 pixels:36px|\",\n \"SCFormatFontfamilies\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|Verdana:Verdana,Arial,Helvetica,sans-serif|Arial:arial,helvetica,sans-serif|Courier:'Courier New',Courier,monospace|\",\n \"SCFormatFontlook\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Normal!:normal normal|%loc!Bold!:normal bold|%loc!Italic!:italic normal|%loc!Bold Italic!:italic bold\",\n \"SCFormatTextAlignhoriz\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Left!:left|%loc!Center!:center|%loc!Right!:right|\",\n \"SCFormatNumberAlignhoriz\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Left!:left|%loc!Center!:center|%loc!Right!:right|\",\n \"SCFormatAlignVertical\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Top!:top|%loc!Middle!:middle|%loc!Bottom!:bottom|\",\n \"SCFormatColwidth\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|20 pixels:20|40:40|60:60|80:80|100:100|120:120|140:140|160:160|[newcol]:|180 pixels:180|200:200|220:220|240:240|260:260|280:280|300:300|\",\n \"SCFormatRecalc\": \"[cancel]:|[break]:|%loc!Auto!:|%loc!Manual!:off|\",\n \"SCFormatUserMaxCol\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|Unlimited:0|10:10|20:20|30:30|40:40|50:50|60:60|80:80|100:100|\",\n \"SCFormatUserMaxRow\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|Unlimited:0|10:10|20:20|30:30|40:40|50:50|60:60|80:80|100:100|\",\n\n\"\":\"SocialCalc.SettingsControls.PopupListInitialize\",\n \"s_PopupListCancel\": \"[Cancel]\",\n \"s_PopupListCustom\": \"Custom\",\n\n\"\":\"***\",\n\"\":\"\",\n\"\":\"s_loc_ constants accessed by SocialCalc.LocalizeString and SocialCalc.LocalizeSubstrings\",\n\"\":\"\",\n\"\":\"Used extensively by socialcalcspreadsheetcontrol.js\",\n\"\":\"\",\n\"\":\"***\",\n \"s_loc_align_center\": \"Align Center\",\n \"s_loc_align_left\": \"Align Left\",\n \"s_loc_align_right\": \"Align Right\",\n \"s_loc_alignment\": \"Alignment\",\n \"s_loc_audit\": \"Audit\",\n \"s_loc_audit_trail_this_session\": \"Audit Trail This Session\",\n \"s_loc_auto\": \"Auto\",\n \"s_loc_auto_sum\": \"Auto Sum\",\n \"s_loc_auto_wX_commas\": \"Auto w/ commas\",\n \"s_loc_automatic\": \"Automatic\",\n \"s_loc_background\": \"Background\",\n \"s_loc_bold\": \"Bold\",\n \"s_loc_bold_XampX_italics\": \"Bold & Italics\",\n \"s_loc_bold_italic\": \"Bold Italic\",\n \"s_loc_borders\": \"Borders\",\n \"s_loc_borders_off\": \"Borders Off\",\n \"s_loc_borders_on\": \"Borders On\",\n \"s_loc_bottom\": \"Bottom\",\n \"s_loc_bottom_border\": \"Bottom Border\",\n \"s_loc_cell_settings\": \"CELL SETTINGS\",\n \"s_loc_csv_format\": \"CSV format\",\n \"s_loc_cancel\": \"Cancel\",\n \"s_loc_category\": \"Category\",\n \"s_loc_center\": \"Center\",\n \"s_loc_clear\": \"Clear\",\n \"s_loc_clear_socialcalc_clipboard\": \"Clear SocialCalc Clipboard\",\n \"s_loc_clipboard\": \"Clipboard\",\n \"s_loc_color\": \"Color\",\n \"s_loc_column_\": \"Column \",\n \"s_loc_comment\": \"Comment\",\n \"s_loc_copy\": \"Copy\",\n \"s_loc_custom\": \"Custom\",\n \"s_loc_cut\": \"Cut\",\n \"s_loc_default\": \"Default\",\n \"s_loc_default_alignment\": \"Default Alignment\",\n \"s_loc_default_column_width\": \"Default Column Width\",\n \"s_loc_default_font\": \"Default Font\",\n \"s_loc_default_format\": \"Default Format\",\n \"s_loc_default_padding\": \"Default Padding\",\n \"s_loc_delete\": \"Delete\",\n \"s_loc_delete_column\": \"Delete Column\",\n \"s_loc_delete_contents\": \"Delete Contents\",\n \"s_loc_delete_row\": \"Delete Row\",\n \"s_loc_description\": \"Description\",\n \"s_loc_display_clipboard_in\": \"Display Clipboard in\",\n \"s_loc_down\": \"Down\",\n \"s_loc_edit\": \"Edit\",\n \"s_loc_existing_names\": \"Existing Names\",\n \"s_loc_family\": \"Family\",\n \"s_loc_fill_down\": \"Fill Down\",\n \"s_loc_fill_right\": \"Fill Right\",\n \"s_loc_font\": \"Font\",\n \"s_loc_format\": \"Format\",\n \"s_loc_formula\": \"Formula\",\n \"s_loc_function_list\": \"Function List\",\n \"s_loc_functions\": \"Functions\",\n \"s_loc_grid\": \"Grid\",\n \"s_loc_hidden\": \"Hidden\",\n \"s_loc_hide_column\": \"Hide Column\",\n \"s_loc_hide_row\": \"Hide Row\",\n \"s_loc_horizontal\": \"Horizontal\",\n \"s_loc_insert_column\": \"Insert Column\",\n \"s_loc_insert_row\": \"Insert Row\",\n \"s_loc_italic\": \"Italic\",\n \"s_loc_last_sort\": \"Last Sort\",\n \"s_loc_left\": \"Left\",\n \"s_loc_left_border\": \"Left Border\",\n \"s_loc_link\": \"Link\",\n \"s_loc_link_input_box\": \"Link Input Box\",\n \"s_loc_list\": \"List\",\n \"s_loc_load_socialcalc_clipboard_with_this\": \"Load SocialCalc Clipboard With This\",\n \"s_loc_lock\": \"Lock\",\n \"s_loc_major_sort\": \"Major Sort\",\n \"s_loc_manual\": \"Manual\",\n \"s_loc_merge_cells\": \"Merge Cells\",\n \"s_loc_middle\": \"Middle\",\n \"s_loc_minor_sort\": \"Minor Sort\",\n \"s_loc_move_insert\": \"Move Insert\",\n \"s_loc_move_paste\": \"Move Paste\",\n \"s_loc_multiXline_input_box\": \"Multi-line Input Box\",\n \"s_loc_name\": \"Name\",\n \"s_loc_names\": \"Names\",\n \"s_loc_no_padding\": \"No padding\",\n \"s_loc_normal\": \"Normal\",\n \"s_loc_number\": \"Number\",\n \"s_loc_number_horizontal\": \"Number Horizontal\",\n \"s_loc_ok\": \"OK\",\n \"s_loc_padding\": \"Padding\",\n \"s_loc_page_name\": \"Page Name\",\n \"s_loc_paste\": \"Paste\",\n \"s_loc_paste_formats\": \"Paste Formats\",\n \"s_loc_plain_text\": \"Plain Text\",\n \"s_loc_recalc\": \"Recalc\",\n \"s_loc_recalculation\": \"Recalculation\",\n \"s_loc_redo\": \"Redo\",\n \"s_loc_right\": \"Right\",\n \"s_loc_right_border\": \"Right Border\",\n \"s_loc_sheet_settings\": \"SHEET SETTINGS\",\n \"s_loc_save\": \"Save\",\n \"s_loc_save_to\": \"Save to\",\n \"s_loc_set_cell_contents\": \"Set Cell Contents\",\n \"s_loc_set_cells_to_sort\": \"Set Cells To Sort\",\n \"s_loc_set_value_to\": \"Set Value To\",\n \"s_loc_set_to_link_format\": \"Set to Link format\",\n \"s_loc_setXclear_move_from\": \"Set/Clear Move From\",\n \"s_loc_show_cell_settings\": \"Show Cell Settings\",\n \"s_loc_show_sheet_settings\": \"Show Sheet Settings\",\n \"s_loc_show_in_new_browser_window\": \"Show in new browser window\",\n \"s_loc_size\": \"Size\",\n \"s_loc_socialcalcXsave_format\": \"SocialCalc-save format\",\n \"s_loc_sort\": \"Sort\",\n \"s_loc_sort_\": \"Sort \",\n \"s_loc_sort_cells\": \"Sort Cells\",\n \"s_loc_swap_colors\": \"Swap Colors\",\n \"s_loc_tabXdelimited_format\": \"Tab-delimited format\",\n \"s_loc_text\": \"Text\",\n \"s_loc_text_horizontal\": \"Text Horizontal\",\n \"s_loc_this_is_aXbrXsample\": \"This is a<br>sample\",\n \"s_loc_top\": \"Top\",\n \"s_loc_top_border\": \"Top Border\",\n \"s_loc_undone_steps\": \"UNDONE STEPS\",\n \"s_loc_url\": \"URL\",\n \"s_loc_undo\": \"Undo\",\n \"s_loc_unlock\": \"Unlock\",\n \"s_loc_unmerge_cells\": \"Unmerge Cells\",\n \"s_loc_up\": \"Up\",\n \"s_loc_value\": \"Value\",\n \"s_loc_vertical\": \"Vertical\",\n \"s_loc_wikitext\": \"Wikitext\",\n \"s_loc_workspace\": \"Workspace\",\n \"s_loc_XnewX\": \"[New]\",\n \"s_loc_XnoneX\": \"[None]\",\n \"s_loc_Xselect_rangeX\": \"[select range]\",\n\n\"\":\"The following constants are arrays of strings with the short (3 character) and full names of days and months\",\n \"s_FormatNumber_daynames\": [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n \"s_FormatNumber_daynames3\": [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n \"s_FormatNumber_monthnames\": [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\",\n \"October\", \"November\", \"December\"],\n \"s_FormatNumber_monthnames3\": [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n \"s_FormatNumber_am\": \"AM\",\n \"s_FormatNumber_am1\": \"A\",\n \"s_FormatNumber_pm\": \"PM\",\n \"s_FormatNumber_pm1\": \"P\",\n\n\"\":\"\",\n\"\":\"SocialCalc Spreadsheet Formula module, formula1.js:\",\n\"\":\"\",\n \"s_parseerrexponent\": \"Improperly formed number exponent\",\n \"s_parseerrchar\": \"Unexpected character in formula\",\n \"s_parseerrstring\": \"Improperly formed string\",\n \"s_parseerrspecialvalue\": \"Improperly formed special value\",\n \"s_parseerrtwoops\": \"Error in formula (two operators inappropriately in a row)\",\n \"s_parseerrmissingopenparen\": \"Missing open parenthesis in list with comma(s). \",\n \"s_parseerrcloseparennoopen\": \"Closing parenthesis without open parenthesis. \",\n \"s_parseerrmissingcloseparen\": \"Missing close parenthesis. \",\n \"s_parseerrmissingoperand\": \"Missing operand. \",\n \"s_parseerrerrorinformula\": \"Error in formula.\",\n \"s_calcerrerrorvalueinformula\": \"Error value in formula\",\n \"s_parseerrerrorinformulabadval\": \"Error in formula resulting in bad value\",\n \"s_formularangeresult\": \"Formula results in range value:\",\n \"s_calcerrnumericnan\": \"Formula results in an bad numeric value\",\n \"s_calcerrnumericoverflow\": \"Numeric overflow\",\n \"s_sheetunavailable\": \"Sheet unavailable:\", \"\":\"when FindSheetInCache returns null\",\n \"s_calcerrcellrefmissing\": \"Cell reference missing when expected.\",\n \"s_calcerrsheetnamemissing\": \"Sheet name missing when expected.\",\n \"s_circularnameref\": \"Circular name reference to name\",\n \"s_calcerrunknownname\": \"Unknown name\",\n \"s_calcerrincorrectargstofunction\": \"Incorrect arguments to function\",\n \"s_sheetfuncunknownfunction\": \"Unknown function\",\n \"s_sheetfunclnarg\": \"LN argument must be greater than 0\",\n \"s_sheetfunclog10arg\": \"LOG10 argument must be greater than 0\",\n \"s_sheetfunclogsecondarg\": \"LOG second argument must be numeric greater than 0\",\n \"s_sheetfunclogfirstarg\": \"LOG first argument must be greater than 0\",\n \"s_sheetfuncroundsecondarg\": \"ROUND second argument must be numeric\",\n \"s_sheetfuncddblife\": \"DDB life must be greater than 1\",\n \"s_sheetfuncslnlife\": \"SLN life must be greater than 1\",\n\n\"\":\"Function definition text\",\n \"s_fdef_ABS\": \"Absolute value function. \",\n \"s_fdef_ACOS\": \"Trigonometric arccosine function. \",\n \"s_fdef_AND\": \"True if all arguments are true. \",\n \"s_fdef_ASIN\": \"Trigonometric arcsine function. \",\n \"s_fdef_ATAN\": \"Trigonometric arctan function. \",\n \"s_fdef_ATAN2\": \"Trigonometric arc tangent function (result is in radians). \",\n \"s_fdef_AVERAGE\": \"Averages the values. \",\n \"s_fdef_CHOOSE\": \"Returns the value specified by the index. The values may be ranges of cells. \",\n \"s_fdef_COLUMNS\": \"Returns the number of columns in the range. \",\n \"s_fdef_COS\": \"Trigonometric cosine function (value is in radians). \",\n \"s_fdef_COUNT\": \"Counts the number of numeric values, not blank, text, or error. \",\n \"s_fdef_COUNTA\": \"Counts the number of non-blank values. \",\n \"s_fdef_COUNTBLANK\": \"Counts the number of blank values. (Note: \\\"\\\" is not blank.) \",\n \"s_fdef_COUNTIF\": \"Counts the number of number of cells in the range that meet the criteria. The criteria may be a value (\\\"x\\\", 15, 1+3) or a test (>25). \",\n \"s_fdef_DATE\": \"Returns the appropriate date value given numbers for year, month, and day. For example: DATE(2006,2,1) for February 1, 2006. Note: In this program, day \\\"1\\\" is December 31, 1899 and the year 1900 is not a leap year. Some programs use January 1, 1900, as day \\\"1\\\" and treat 1900 as a leap year. In both cases, though, dates on or after March 1, 1900, are the same. \",\n \"s_fdef_DAVERAGE\": \"Averages the values in the specified field in records that meet the criteria. \",\n \"s_fdef_DAY\": \"Returns the day of month for a date value. \",\n \"s_fdef_DCOUNT\": \"Counts the number of numeric values, not blank, text, or error, in the specified field in records that meet the criteria. \",\n \"s_fdef_DCOUNTA\": \"Counts the number of non-blank values in the specified field in records that meet the criteria. \",\n \"s_fdef_DDB\": \"Returns the amount of depreciation at the given period of time (the default factor is 2 for double-declining balance). \",\n \"s_fdef_DEGREES\": \"Converts value in radians into degrees. \",\n \"s_fdef_DGET\": \"Returns the value of the specified field in the single record that meets the criteria. \",\n \"s_fdef_DMAX\": \"Returns the maximum of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DMIN\": \"Returns the maximum of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DPRODUCT\": \"Returns the result of multiplying the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DSTDEV\": \"Returns the sample standard deviation of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DSTDEVP\": \"Returns the standard deviation of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DSUM\": \"Returns the sum of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DVAR\": \"Returns the sample variance of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_DVARP\": \"Returns the variance of the numeric values in the specified field in records that meet the criteria. \",\n \"s_fdef_EVEN\": \"Rounds the value up in magnitude to the nearest even integer. \",\n \"s_fdef_EXACT\": \"Returns \\\"true\\\" if the values are exactly the same, including case, type, etc. \",\n \"s_fdef_EXP\": \"Returns e raised to the value power. \",\n \"s_fdef_FACT\": \"Returns factorial of the value. \",\n \"s_fdef_FALSE\": \"Returns the logical value \\\"false\\\". \",\n \"s_fdef_FIND\": \"Returns the starting position within string2 of the first occurrence of string1 at or after \\\"start\\\". If start is omitted, 1 is assumed. \",\n \"s_fdef_FV\": \"Returns the future value of repeated payments of money invested at the given rate for the specified number of periods, with optional present value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). \",\n \"s_fdef_HLOOKUP\": \"Look for the matching value for the given value in the range and return the corresponding value in the cell specified by the row offset. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match<=value) instead of exact match. \",\n \"s_fdef_HOUR\": \"Returns the hour portion of a time or date/time value. \",\n \"s_fdef_IF\": \"Results in true-value if logical-expression is TRUE or non-zero, otherwise results in false-value. \",\n \"s_fdef_INDEX\": \"Returns a cell or range reference for the specified row and column in the range. If range is 1-dimensional, then only one of rownum or colnum are needed. If range is 2-dimensional and rownum or colnum are zero, a reference to the range of just the specified column or row is returned. You can use the returned reference value in a range, e.g., sum(A1:INDEX(A2:A10,4)). \",\n \"s_fdef_INT\": \"Returns the value rounded down to the nearest integer (towards -infinity). \",\n \"s_fdef_IRR\": \"Returns the interest rate at which the cash flows in the range have a net present value of zero. Uses an iterative process that will return #NUM! error if it does not converge. There may be more than one possible solution. Providing the optional guess value may help in certain situations where it does not converge or finds an inappropriate solution (the default guess is 10%). \",\n \"s_fdef_ISBLANK\": \"Returns \\\"true\\\" if the value is a reference to a blank cell. \",\n \"s_fdef_ISERR\": \"Returns \\\"true\\\" if the value is of type \\\"Error\\\" but not \\\"NA\\\". \",\n \"s_fdef_ISERROR\": \"Returns \\\"true\\\" if the value is of type \\\"Error\\\". \",\n \"s_fdef_ISLOGICAL\": \"Returns \\\"true\\\" if the value is of type \\\"Logical\\\" (true/false). \",\n \"s_fdef_ISNA\": \"Returns \\\"true\\\" if the value is the error type \\\"NA\\\". \",\n \"s_fdef_ISNONTEXT\": \"Returns \\\"true\\\" if the value is not of type \\\"Text\\\". \",\n \"s_fdef_ISNUMBER\": \"Returns \\\"true\\\" if the value is of type \\\"Number\\\" (including logical values). \",\n \"s_fdef_ISTEXT\": \"Returns \\\"true\\\" if the value is of type \\\"Text\\\". \",\n \"s_fdef_LEFT\": \"Returns the specified number of characters from the text value. If count is omitted, 1 is assumed. \",\n \"s_fdef_LEN\": \"Returns the number of characters in the text value. \",\n \"s_fdef_LN\": \"Returns the natural logarithm of the value. \",\n \"s_fdef_LOG\": \"Returns the logarithm of the value using the specified base. \",\n \"s_fdef_LOG10\": \"Returns the base 10 logarithm of the value. \",\n \"s_fdef_LOWER\": \"Returns the text value with all uppercase characters converted to lowercase. \",\n \"s_fdef_MATCH\": \"Look for the matching value for the given value in the range and return position (the first is 1) in that range. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match<=value) instead of exact match. If rangelookup is -1, act like 1 but the bracket is match>=value. \",\n \"s_fdef_MAX\": \"Returns the maximum of the numeric values. \",\n \"s_fdef_MID\": \"Returns the specified number of characters from the text value starting from the specified position. \",\n \"s_fdef_MIN\": \"Returns the minimum of the numeric values. \",\n \"s_fdef_MINUTE\": \"Returns the minute portion of a time or date/time value. \",\n \"s_fdef_MOD\": \"Returns the remainder of the first value divided by the second. \",\n \"s_fdef_MONTH\": \"Returns the month part of a date value. \",\n \"s_fdef_N\": \"Returns the value if it is a numeric value otherwise an error. \",\n \"s_fdef_NA\": \"Returns the #N/A error value which propagates through most operations. \",\n \"s_fdef_NOT\": \"Returns FALSE if value is true, and TRUE if it is false. \",\n \"s_fdef_NOW\": \"Returns the current date/time. \",\n \"s_fdef_NPER\": \"Returns the number of periods at which payments invested each period at the given rate with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period) has the given present value. \",\n \"s_fdef_NPV\": \"Returns the net present value of cash flows (which may be individual values and/or ranges) at the given rate. The flows are positive if income, negative if paid out, and are assumed at the end of each period. \",\n \"s_fdef_ODD\": \"Rounds the value up in magnitude to the nearest odd integer. \",\n \"s_fdef_OR\": \"True if any argument is true \",\n \"s_fdef_PI\": \"The value 3.1415926... \",\n \"s_fdef_PMT\": \"Returns the amount of each payment that must be invested at the given rate for the specified number of periods to have the specified present value, with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). \",\n \"s_fdef_POWER\": \"Returns the first value raised to the second value power. \",\n \"s_fdef_PRODUCT\": \"Returns the result of multiplying the numeric values. \",\n \"s_fdef_PROPER\": \"Returns the text value with the first letter of each word converted to uppercase and the others to lowercase. \",\n \"s_fdef_PV\": \"Returns the present value of the given number of payments each invested at the given rate, with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). \",\n \"s_fdef_RADIANS\": \"Converts value in degrees into radians. \",\n \"s_fdef_RATE\": \"Returns the rate at which the given number of payments each invested at the given rate has the specified present value, with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). Uses an iterative process that will return #NUM! error if it does not converge. There may be more than one possible solution. Providing the optional guess value may help in certain situations where it does not converge or finds an inappropriate solution (the default guess is 10%). \",\n \"s_fdef_REPLACE\": \"Returns text1 with the specified number of characters starting from the specified position replaced by text2. \",\n \"s_fdef_REPT\": \"Returns the text repeated the specified number of times. \",\n \"s_fdef_RIGHT\": \"Returns the specified number of characters from the text value starting from the end. If count is omitted, 1 is assumed. \",\n \"s_fdef_ROUND\": \"Rounds the value to the specified number of decimal places. If precision is negative, then round to powers of 10. The default precision is 0 (round to integer). \",\n \"s_fdef_ROWS\": \"Returns the number of rows in the range. \",\n \"s_fdef_SECOND\": \"Returns the second portion of a time or date/time value (truncated to an integer). \",\n \"s_fdef_SIN\": \"Trigonometric sine function (value is in radians) \",\n \"s_fdef_SLN\": \"Returns the amount of depreciation at each period of time using the straight-line method. \",\n \"s_fdef_SQRT\": \"Square root of the value \",\n \"s_fdef_STDEV\": \"Returns the sample standard deviation of the numeric values. \",\n \"s_fdef_STDEVP\": \"Returns the standard deviation of the numeric values. \",\n \"s_fdef_SUBSTITUTE\": \"Returns text1 with the all occurrences of oldtext replaced by newtext. If \\\"occurrence\\\" is present, then only that occurrence is replaced. \",\n \"s_fdef_SUM\": \"Adds the numeric values. The values to the sum function may be ranges in the form similar to A1:B5. \",\n \"s_fdef_SUMIF\": \"Sums the numeric values of cells in the range that meet the criteria. The criteria may be a value (\\\"x\\\", 15, 1+3) or a test (>25). If range2 is present, then range1 is tested and the corresponding range2 value is summed. \",\n \"s_fdef_SYD\": \"Depreciation by Sum of Year\\\"s Digits method. \",\n \"s_fdef_T\": \"Returns the text value or else a null string. \",\n \"s_fdef_TAN\": \"Trigonometric tangent function (value is in radians) \",\n \"s_fdef_TIME\": \"Returns the time value given the specified hour, minute, and second. \",\n \"s_fdef_TODAY\": \"Returns the current date (an integer). Note: In this program, day \\\"1\\\" is December 31, 1899 and the year 1900 is not a leap year. Some programs use January 1, 1900, as day \\\"1\\\" and treat 1900 as a leap year. In both cases, though, dates on or after March 1, 1900, are the same. \",\n \"s_fdef_TRIM\": \"Returns the text value with leading, trailing, and repeated spaces removed. \",\n \"s_fdef_TRUE\": \"Returns the logical value \\\"true\\\". \",\n \"s_fdef_TRUNC\": \"Truncates the value to the specified number of decimal places. If precision is negative, truncate to powers of 10. \",\n \"s_fdef_UPPER\": \"Returns the text value with all lowercase characters converted to uppercase. \",\n \"s_fdef_VALUE\": \"Converts the specified text value into a numeric value. Various forms that look like numbers (including digits followed by %, forms that look like dates, etc.) are handled. This may not handle all of the forms accepted by other spreadsheets and may be locale dependent. \",\n \"s_fdef_VAR\": \"Returns the sample variance of the numeric values. \",\n \"s_fdef_VARP\": \"Returns the variance of the numeric values. \",\n \"s_fdef_VLOOKUP\": \"Look for the matching value for the given value in the range and return the corresponding value in the cell specified by the column offset. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match>=value) instead of exact match. \",\n \"s_fdef_WEEKDAY\": \"Returns the day of week specified by the date value. If type is 1 (the default), Sunday is day and Saturday is day 7. If type is 2, Monday is day 1 and Sunday is day 7. If type is 3, Monday is day 0 and Sunday is day 6. \",\n \"s_fdef_YEAR\": \"Returns the year part of a date value. \",\n \"s_fdef_SUMPRODUCT\": \"Sums the pairwise products of 2 or more ranges. The ranges must be of equal length.\",\n \"s_fdef_CEILING\": \"Rounds the given number up to the nearest integer or multiple of significance. Significance is the value to whose multiple of ten the value is to be rounded up (.01, .1, 1, 10, etc.)\",\n \"s_fdef_FLOOR\": \"Rounds the given number down to the nearest multiple of significance. Significance is the value to whose multiple of ten the number is to be rounded down (.01, .1, 1, 10, etc.)\",\n\n \"s_farg_v\": \"value\",\n \"s_farg_vn\": \"value1, value2, ...\",\n \"s_farg_xy\": \"valueX, valueY\",\n \"s_farg_choose\": \"index, value1, value2, ...\",\n \"s_farg_range\": \"range\",\n \"s_farg_rangec\": \"range, criteria\",\n \"s_farg_date\": \"year, month, day\",\n \"s_farg_dfunc\": \"databaserange, fieldname, criteriarange\",\n \"s_farg_ddb\": \"cost, salvage, lifetime, period, [factor]\",\n \"s_farg_find\": \"string1, string2, [start]\",\n \"s_farg_fv\": \"rate, n, payment, [pv, [paytype]]\",\n \"s_farg_hlookup\": \"value, range, row, [rangelookup]\",\n \"s_farg_iffunc\": \"logical-expression, true-value, [false-value]\",\n \"s_farg_index\": \"range, rownum, colnum\",\n \"s_farg_irr\": \"range, [guess]\",\n \"s_farg_tc\": \"text, count\",\n \"s_farg_log\": \"value, base\",\n \"s_farg_match\": \"value, range, [rangelookup]\",\n \"s_farg_mid\": \"text, start, length\",\n \"s_farg_nper\": \"rate, payment, pv, [fv, [paytype]]\",\n \"s_farg_npv\": \"rate, value1, value2, ...\",\n \"s_farg_pmt\": \"rate, n, pv, [fv, [paytype]]\",\n \"s_farg_pv\": \"rate, n, payment, [fv, [paytype]]\",\n \"s_farg_rate\": \"n, payment, pv, [fv, [paytype, [guess]]]\",\n \"s_farg_replace\": \"text1, start, length, text2\",\n \"s_farg_vp\": \"value, [precision]\",\n \"s_farg_valpre\": \"value, precision\",\n \"s_farg_csl\": \"cost, salvage, lifetime\",\n \"s_farg_cslp\": \"cost, salvage, lifetime, period\",\n \"s_farg_subs\": \"text1, oldtext, newtext, [occurrence]\",\n \"s_farg_sumif\": \"range1, criteria, [range2]\",\n \"s_farg_hms\": \"hour, minute, second\",\n \"s_farg_txt\": \"text\",\n \"s_farg_vlookup\": \"value, range, col, [rangelookup]\",\n \"s_farg_weekday\": \"date, [type]\",\n \"s_farg_dt\": \"date\",\n \"s_farg_rangen\": \"range1, range2, ...\",\n \"s_farg_vsig\": \"value, [significance]\",\n\n \"function_classlist\": [\"all\", \"stat\", \"lookup\", \"datetime\", \"financial\", \"test\", \"math\", \"text\"],\n\n \"s_fclass_all\": \"All\",\n \"s_fclass_stat\": \"Statistics\",\n \"s_fclass_lookup\": \"Lookup\",\n \"s_fclass_datetime\": \"Date & Time\",\n \"s_fclass_financial\": \"Financial\",\n \"s_fclass_test\": \"Test\",\n \"s_fclass_math\": \"Math\",\n \"s_fclass_text\": \"Text\",\n\n\"\":\"Graph tab\",\n \"s_loc_plain\": \"Plain\",\n \"s_loc_graph\": \"Graph\",\n \"s_loc_cells_to_graph\": \"Cells to Graph\",\n \"s_loc_set_cells_to_graph\": \"Set Cells To Graph\",\n \"s_loc_graph_type\": \"Graph Type\",\n \"s_loc_help\": \"Help\",\n \"s_loc_horizontal_bar\": \"Horizontal Bar\",\n \"s_loc_vertical_bar\": \"Vertical Bar\",\n \"s_loc_pie_chart\": \"Pie Chart\",\n \"s_loc_line_chart\": \"Line Chart\",\n \"s_loc_scatter_chart\": \"Plot Points\",\n \"s_loc_not_set\": \"Not Set\",\n \"s_loc_unknown_range_name\": \"Unknown range name\",\n \"s_loc_hide_help\": \"Hide Help\",\n \"s_loc_x\": \"X\",\n \"s_loc_y\": \"Y\",\n \"s_loc_max\": \"Max\",\n \"s_loc_min\": \"Min\",\n \"s_loc_Xselect_rangeX\": \"[select range]\",\n \"s_GraphRangeNotSelected\": \"Select a range of cells with numeric values to graph and use the OK button above to set the range as the graph range.\",\n \"s_graph_error_selection\": \"<b>Range selection error</b>.<br>You must select cells in a single row or column !\",\n \"s_graph_help_intro\": \"This is the help text for graph type: \",\n \"s_graph_VerticalBar_help\": \"The <b>Graph</b> tab displays a bar graph of the cells which have been selected (either in a single row across or column down). If the row above (or column to the left) of the selection has values, those values are used as labels. Otherwise the cell coordinates are used (e.g., B5).\",\n \"s_graph_HorizontalBar_help\": \"The <b>Graph</b> tab displays a bar graph of the cells which have been selected (either in a single row across or column down). If the row above (or column to the left) of the selection has values, those values are used as labels. Otherwise the cell coordinates are used (e.g., B5).\",\n \"s_graph_PieChart_help\": \"The <b>Graph</b> tab displays a pie chart of the cells which have been selected (either in a single row across or column down). If the row above (or column to the left) of the selection has values, those values are used as labels. Otherwise the cell coordinates are used (e.g., B5).\",\n \"s_graph_PieChart_error_selection\": \"<b>Selection error</b><br>You must select cells with positive value !\",\n \"s_graph_LineChart_help\": \"The <b>Graph</b> tab displays a XY profile line of the cells which have been selected (either in a single row across or column down). The row above (or column to the left) of the selection is used as X coordinates.\",\n \"s_graph_ScatterChart_help\": \"The <b>Graph</b> tab displays a XY scattered chart of the cells which have been selected (either in a single row across or column down). The row above (or column to the left) of the selection is used as X coordinates. If row below (or column to the right) have values, they are interpreted as plot dimensions.\",\n\n\"\":\"Clipboard tab\",\n \"s_loc_to\": \"to\",\n \"s_loc_tiddler\": \"Tiddler\",\n \"s_loc_import\": \"Import\",\n \"s_loc_export\": \"Export\",\n \"s_loc_XclipboardX\": \"[Clipboard]\",\n \"s_clipboard_menu_title\": \"Import/Export<br>and Clipboard\",\n \"s_clipboard_export_error_tiddler_exists\": \"Tiddler exists\",\n \"s_clipboard_export_error_tiddler_overwrite\": \"Do you want to overwrite it ?\",\n \"s_clipboard_import_error_tiddler_format\": \"Format error: tiddler's format field have incorrect value.\",\n\n\"\":\"Save sheet to tiddler\",\n \"s_loc_save_changes\": \"Save changes\",\n \"s_notification_tiddler\": \"Saved ~SocialCalc sheet\",\n\n\"\":\"End\"\n}\n" }, "$:/plugins/rboue/SocialCalc/Languages/en-GB--save-notification": { "title": "$:/plugins/rboue/SocialCalc/Languages/en-GB--save-notification", "text": "Saved ~SocialCalc sheet\n" }, "$:/plugins/rboue/SocialCalc/Languages/fr-FR": { "type": "application/json", "title": "$:/plugins/rboue/SocialCalc/Languages/fr-FR", "text": "{\n\"\":\"Origin of this translation : Framasoft (http://framacalc.org)\",\n\n\"\":\"Translation process :\",\n\"\":\" . Translate all messages.\",\n\"\":\" . Add tiddler to your TiddlyWiki with the title :\",\n\"\":\" $:/plugins/<not sure>/SocialCalc/Languages/<your language>\",\n\"\":\" <your language> must match with the $:/language tiddler.\",\n\"\":\" Exemple : fr-FR for French.\",\n\n\"\":\"Common error messages\",\n \"s_BrowserNotSupported\": \"Navigateur non supporté\",\n \"s_InternalError\": \"Erreur interne de SocialCalc (probablement un bug interne) : \",\n\n\"\":\"Errors thrown on unexpected value in save file\",\n \"s_pssUnknownColType\": \"Type de champ de colonne inconnu\",\n \"s_pssUnknownRowType\": \"Type de champ de ligne inconnu\",\n \"s_pssUnknownLineType\": \"Type de ligne inconnu\",\n\n\"\":\"Error thrown on unexpected cell type\",\n \"s_cfspUnknownCellType\": \"Type de champ de cellule inconnu\", \n\n\"\":\"ExecuteSheetCommand\",\n \"s_escUnknownSheetCmd\": \"Commande sur la feuille inconnue : \",\n \"s_escUnknownSetCoordCmd\": \"Commande de saisie des coordonnées inconnue : \",\n \"s_escUnknownCmd\": \"Commande inconnue : \",\n\n\"\":\"SocialCalc.CheckAndCalcCell\",\n \"s_caccCircRef\": \"Référence circulaire à \",\n\n\"\":\"SocialCalc.RenderContext\",\n \"s_rcMissingSheet\": \"Le contexte de rendu doit avoir un objet feuille de calcul\",\n\n\"\":\"SocialCalc.EditorGetStatuslineString -- strings shown on status line\",\n \"s_statusline_executing\": \"En cours d'exécution...\",\n \"s_statusline_displaying\": \"En cours d'affichage...\",\n \"s_statusline_ordering\": \"En cours de classement...\",\n \"s_statusline_calculating\": \"Calculs en cours...\",\n \"s_statusline_calculatingls\": \"Calculs en cours... Chargement de la feuille...\",\n \"s_statusline_doingserverfunc\": \"exécute la fonction du serveur \",\n \"s_statusline_incell\": \" en cellule \",\n \"s_statusline_calcstart\": \"Début des calculs...\",\n \"s_statusline_sum\": \"SOMME\",\n \"s_statusline_recalcneeded\": \"<span style=\\\"color:#999;\\\">(Recalcul nécessaire)</span>\",\n \"s_statusline_circref\": \"<span style=\\\"color:red;\\\">Référence circulaire : \",\n\n\"\":\"SocialCalc.InputBoxDisplayCellContents\",\n \"s_inputboxdisplaymultilinetext\": \"[Multi-ligne de texte: Cliquez sur la droite de l'icône pour éditer]\",\n \"ietUnknownFunction\": \"Fonction inconnue \", \"\":\"displayed when typing \\\"=unknown(\",\n \"s_CHfillAllTooltip\": \"Remplir les contenus et les formats bas/droite\", \"\":\"tooltip for fill all handle\",\n \"s_CHfillContentsTooltip\": \"Remplir les contenus seulement bas/droite\", \"\":\"tooltip for fill formulas handle\",\n \"s_CHmovePasteAllTooltip\": \"Déplacer les contenus et les formats\", \"\":\"etc.\",\n \"s_CHmovePasteContentsTooltip\": \"Déplacer les contenus seulement\",\n \"s_CHmoveInsertAllTooltip\": \"Déplacer les contenus et les formats en ligne/colonne\",\n \"s_CHmoveInsertContentsTooltip\": \"Déplacer les contenus en ligne/colonne\",\n \"s_CHindicatorOperationLookup\": {\n \"Fill\": \"Remplir\", \"FillC\": \"Remplir le contenu\",\n \"Move\": \"Déplacer\", \"MoveI\": \"Faire glisser\",\n \"MoveC\": \"Déplacer le contenu\", \"MoveIC\": \"Faire glisser le contenu\"\n },\n \"s_CHindicatorDirectionLookup\": {\n \"Down\": \" Bas\", \"Right\": \" Droite\",\n \"Horizontal\": \" Horizontal\", \"Vertical\": \" Vertical\"\n },\n\n\"\":\"Constants for default Format tab (settings)\",\n\"\":\"\",\n\"\":\"*** EVEN THOUGH THESE DON'T START WITH s_: ***\",\n\"\":\"\",\n\"\":\"These should be carefully checked for localization. Make sure you understand what they do and how they work!\",\n\"\":\"The first part of \\\"first:second|first:second|...\\\" is what is displayed and the second is the value to be used.\",\n\"\":\"The value is normally not translated -- only the displayed part. The [cancel], [break], etc., are not translated --\",\n\"\":\"they are commands to SocialCalc.SettingsControls.PopupListInitialize\",\n\n \"SCFormatNumberFormats\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!Automatic!:general|%loc!Auto w/ commas!:[,]General|[break]:|00:00|000:000|0000:0000|00000:00000|[break]:|%loc!Formula!:formula|%loc!Hidden!:hidden|[newcol]:1234:0|1,234:#,##0|1,234.5:#,##0.0|1,234.56:#,##0.00|1,234.567:#,##0.000|1,234.5678:#,##0.0000|[break]:|1,234%:#,##0%|1,234.5%:#,##0.0%|1,234.56%:#,##0.00%|[newcol]:|$1,234:$#,##0|$1,234.5:$#,##0.0|$1,234.56:$#,##0.00|[break]:|(1,234):#,##0_);(#,##0)|(1,234.5):#,##0.0_);(#,##0.0)|(1,234.56):#,##0.00_);(#,##0.00)|[break]:|($1,234):#,##0_);($#,##0)|($1,234.5):$#,##0.0_);($#,##0.0)|($1,234.56):$#,##0.00_);($#,##0.00)|[newcol]:|1/4/06:m/d/yy|01/04/2006:mm/dd/yyyy|2006-01-04:yyyy-mm-dd|4-Jan-06:d-mmm-yy|04-Jan-2006:dd-mmm-yyyy|Janvier 4, 2006:mmmm d, yyyy|[break]:|1\\\\c23:h:mm|1\\\\c23 PM:h:mm AM/PM|1\\\\c23\\\\c45:h:mm:ss|01\\\\c23\\\\c45:hh:mm:ss|26\\\\c23 (h\\\\cm):[hh]:mm|69\\\\c45 (m\\\\cs):[mm]:ss|69 (s):[ss]|[newcol]:|2006-01-04 01\\\\c23\\\\c45:yyyy-mm-dd hh:mm:ss|Janvier 4, 2006:mmmm d, yyyy hh:mm:ss|Mer:ddd|Mercredi:dddd|\",\n \"SCFormatTextFormats\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!Automatic!:general|%loc!Plain Text!:text-plain|HTML:text-html|%loc!Wikitext!:text-wiki|%loc!Link!:text-link|%loc!Formula!:formula|%loc!Hidden!:hidden|\",\n \"SCFormatPadsizes\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!No padding!:0px|[newcol]:|1 pixel:1px|2 pixels:2px|3 pixels:3px|4 pixels:4px|5 pixels:5px|6 pixels:6px|7 pixels:7px|8 pixels:8px|[newcol]:|9 pixels:9px|10 pixels:10px|11 pixels:11px|12 pixels:12px|13 pixels:13px|14 pixels:14px|16 pixels:16px|18 pixels:18px|[newcol]:|20 pixels:20px|22 pixels:22px|24 pixels:24px|28 pixels:28px|36 pixels:36px|\",\n \"SCFormatFontsizes\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|X-Small:x-small|Small:small|Medium:medium|Large:large|X-Large:x-large|[newcol]:|6pt:6pt|7pt:7pt|8pt:8pt|9pt:9pt|10pt:10pt|11pt:11pt|12pt:12pt|14pt:14pt|16pt:16pt|[newcol]:|18pt:18pt|20pt:20pt|22pt:22pt|24pt:24pt|28pt:28pt|36pt:36pt|48pt:48pt|72pt:72pt|[newcol]:|8 pixels:8px|9 pixels:9px|10 pixels:10px|11 pixels:11px|12 pixels:12px|13 pixels:13px|14 pixels:14px|[newcol]:|16 pixels:16px|18 pixels:18px|20 pixels:20px|22 pixels:22px|24 pixels:24px|28 pixels:28px|36 pixels:36px|\",\n \"SCFormatFontfamilies\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|Verdana:Verdana,Arial,Helvetica,sans-serif|Arial:arial,helvetica,sans-serif|Courier:'Courier New',Courier,monospace|\",\n \"SCFormatFontlook\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Normal!:normal normal|%loc!Bold!:normal bold|%loc!Italic!:italic normal|%loc!Bold Italic!:italic bold\",\n \"SCFormatTextAlignhoriz\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Left!:left|%loc!Center!:center|%loc!Right!:right|\",\n \"SCFormatNumberAlignhoriz\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Left!:left|%loc!Center!:center|%loc!Right!:right|\",\n \"SCFormatAlignVertical\": \"[cancel]:|[break]:|%loc!Default!:|%loc!Top!:top|%loc!Middle!:middle|%loc!Bottom!:bottom|\",\n \"SCFormatColwidth\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|20 pixels:20|40:40|60:60|80:80|100:100|120:120|140:140|160:160|[newcol]:|180 pixels:180|200:200|220:220|240:240|260:260|280:280|300:300|\",\n \"SCFormatRecalc\": \"[cancel]:|[break]:|%loc!Auto!:|%loc!Manual!:off|\",\n \"SCFormatUserMaxCol\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|Unlimited:0|10:10|20:20|30:30|40:40|50:50|60:60|80:80|100:100|\",\n \"SCFormatUserMaxRow\": \"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|Unlimited:0|10:10|20:20|30:30|40:40|50:50|60:60|80:80|100:100|\",\n\n\"\":\"SocialCalc.SettingsControls.PopupListInitialize\",\n \"s_PopupListCancel\": \"[Annuler]\",\n \"s_PopupListCustom\": \"Personnalisé\",\n\n\"\":\"***\",\n\"\":\"\",\n\"\":\"s_loc_ constants accessed by SocialCalc.LocalizeString and SocialCalc.LocalizeSubstrings\",\n\"\":\"\",\n\"\":\"Used extensively by socialcalcspreadsheetcontrol.js\",\n\"\":\"\",\n\"\":\"***\",\n \"s_PopupListCancel\": \"[Annuler]\",\n \"s_PopupListCustom\": \"Personnalisé\",\n \"s_loc_align_center\": \"Aligner au centre\",\n \"s_loc_align_left\": \"Aligner à gauche\",\n \"s_loc_align_right\": \"Aligner à droite\",\n \"s_loc_alignment\": \"Alignement\",\n \"s_loc_audit\": \"Historique\",\n \"s_loc_audit_trail_this_session\": \"Suivi des modifications de cette session \",\n \"s_loc_auto\": \"Automatique\",\n \"s_loc_auto_sum\": \"Somme automatique\",\n \"s_loc_auto_wX_commas\": \"Auto avec virgule\",\n \"s_loc_automatic\": \"Automatique\",\n \"s_loc_background\": \"Arrière-plan\",\n \"s_loc_bold\": \"Gras\",\n \"s_loc_bold_XampX_italics\": \"Gras & Italique\",\n \"s_loc_bold_italic\": \"Gras Italique\",\n \"s_loc_borders\": \"Bordures\",\n \"s_loc_borders_off\": \"Désactiver les bordures\",\n \"s_loc_borders_on\": \"Activer les bordures\",\n \"s_loc_bottom\": \"Bas\",\n \"s_loc_bottom_border\": \"Bordure basse\",\n \"s_loc_cell_settings\": \"PARAMÈTRES DE LA CELLULE\",\n \"s_loc_csv_format\": \"Format CSV\",\n \"s_loc_cancel\": \"Annuler\",\n \"s_loc_category\": \"Catégorie\",\n \"s_loc_center\": \"Centrer\",\n \"s_loc_clear\": \"Nettoyer\",\n \"s_loc_clear_socialcalc_clipboard\": \"Nettoyer le presse-papier de SocialCalc \",\n \"s_loc_clipboard\": \"Presse-papier\",\n \"s_loc_color\": \"Couleur\",\n \"s_loc_column_\": \"Colonne \",\n \"s_loc_comment\": \"Commentaire\",\n \"s_loc_copy\": \"Copier\",\n \"s_loc_custom\": \"Personnalisé\",\n \"s_loc_cut\": \"Couper\",\n \"s_loc_default\": \"Défaut\",\n \"s_loc_default_alignment\": \"Alignement par défaut\",\n \"s_loc_default_column_width\": \"Largeur des colonnes par défaut\",\n \"s_loc_default_font\": \"Police par défaut\",\n \"s_loc_default_format\": \"Format par défaut\",\n \"s_loc_default_padding\": \"Remplissage par défaut\",\n \"s_loc_delete\": \"Effacer le contenu\",\n \"s_loc_delete_column\": \"Supprimer une colonne\",\n \"s_loc_delete_contents\": \"Supprimer le contenu\",\n \"s_loc_delete_row\": \"Supprimer une ligne\",\n \"s_loc_description\": \"Description\",\n \"s_loc_display_clipboard_in\": \"Afficher le presse-papier dans le \",\n \"s_loc_down\": \"Bas\",\n \"s_loc_edit\": \"Édition\",\n \"s_loc_existing_names\": \"Noms existants\",\n \"s_loc_family\": \"Famille\",\n \"s_loc_fill_down\": \"Dupliquer vers le bas\",\n \"s_loc_fill_right\": \"Dupliquer vers la droite\",\n \"s_loc_font\": \"Police\",\n \"s_loc_format\": \"Format\",\n \"s_loc_formula\": \"Formule\",\n \"s_loc_function_list\": \"Liste des fonctions\",\n \"s_loc_functions\": \"Fonctions\",\n \"s_loc_grid\": \"Grille\",\n \"s_loc_hidden\": \"Caché\",\n \"s_loc_hide_column\": \"Cacher une colonne\",\n \"s_loc_hide_row\": \"Cacher une ligne\",\n \"s_loc_horizontal\": \"Horizontal\",\n \"s_loc_insert_column\": \"Ajouter une colonne\",\n \"s_loc_insert_row\": \"Ajouter une ligne\",\n \"s_loc_italic\": \"Italique\",\n \"s_loc_last_sort\": \"Dernier tri\",\n \"s_loc_left\": \"Gauche\",\n \"s_loc_left_border\": \"Bordure gauche\",\n \"s_loc_link\": \"Lien\",\n \"s_loc_link_input_box\": \"Créer un lien externe\",\n \"s_loc_list\": \"Liste\",\n \"s_loc_load_socialcalc_clipboard_with_this\": \"Charger le presse-papier de Framacalc avec ceci\",\n \"s_loc_lock\": \"Verrouiller\",\n \"s_loc_major_sort\": \"Tri principal\",\n \"s_loc_manual\": \"Manuel\",\n \"s_loc_merge_cells\": \"Fusionner des cellules\",\n \"s_loc_middle\": \"Milieu\",\n \"s_loc_minor_sort\": \"Tri secondaire\",\n \"s_loc_move_insert\": \"Insérer les cellules à déplacer\",\n \"s_loc_move_paste\": \"Coller les cellules à déplacer\",\n \"s_loc_multiXline_input_box\": \"Case d'import multi-ligne\",\n \"s_loc_name\": \"Nom\",\n \"s_loc_names\": \"Noms\",\n \"s_loc_no_padding\": \"Pas de bordure\",\n \"s_loc_normal\": \"Normal\",\n \"s_loc_number\": \"Nombre\",\n \"s_loc_number_horizontal\": \"Nombre Horizontal\",\n \"s_loc_ok\": \"OK\",\n \"s_loc_padding\": \"Épaisseur\",\n \"s_loc_page_name\": \"Nom de page\",\n \"s_loc_paste\": \"Coller\",\n \"s_loc_paste_formats\": \"Coller le formatage\",\n \"s_loc_plain_text\": \"Texte brut\",\n \"s_loc_recalc\": \"Recalculer\",\n \"s_loc_recalculation\": \"Recalcul\",\n \"s_loc_redo\": \"Rétablir\",\n \"s_loc_right\": \"Droite\",\n \"s_loc_right_border\": \"Bordure droite\",\n \"s_loc_sheet_settings\": \"PARAMÈTRES DE LA FEUILLE\",\n \"s_loc_save\": \"Enregistrer\",\n \"s_loc_save_to\": \"Enregistrer les paramètres de \",\n \"s_loc_set_cell_contents\": \"Importer le contenu dans la cellule\",\n \"s_loc_set_cells_to_sort\": \"Définir les cellules à trier\",\n \"s_loc_set_value_to\": \"Définir la valeur à\",\n \"s_loc_set_to_link_format\": \"Définir le format comme lien\",\n \"s_loc_setXclear_move_from\": \"Sélectionner/Nettoyer la zone à déplacer\",\n \"s_loc_show_cell_settings\": \"Afficher les paramètres des cellules\",\n \"s_loc_show_sheet_settings\": \"Afficher les paramètres de la feuille\",\n \"s_loc_show_in_new_browser_window\": \"Afficher dans une nouvelle fenêtre de votre navigateur\",\n \"s_loc_size\": \"Taille\",\n \"s_loc_socialcalcXsave_format\": \"Format de sauvegarde de Framacalc\",\n \"s_loc_sort\": \"Trier\",\n \"s_loc_sort_\": \"Trier \",\n \"s_loc_sort_cells\": \"Trier les cellules\",\n \"s_loc_swap_colors\": \"Permuter les couleurs\",\n \"s_loc_tabXdelimited_format\": \"Format délimité par des tabulations\",\n \"s_loc_text\": \"Texte\",\n \"s_loc_text_horizontal\": \"Texte horizontal\",\n \"s_loc_this_is_aXbrXsample\": \"Visualiser<br>le rendu\",\n \"s_loc_top\": \"Haut\",\n \"s_loc_top_border\": \"Bordure haute\",\n \"s_loc_undone_steps\": \"ANNULER DES ÉTAPES\",\n \"s_loc_url\": \"URL\",\n \"s_loc_undo\": \"Annuler\",\n \"s_loc_unlock\": \"Déverrouiller\",\n \"s_loc_unmerge_cells\": \"Défaire des cellules\",\n \"s_loc_up\": \"Haut\",\n \"s_loc_value\": \"Valeur\",\n \"s_loc_vertical\": \"Vertical\",\n \"s_loc_wikitext\": \"Wiki-texte\",\n \"s_loc_workspace\": \"Espace de travail\",\n \"s_loc_XnewX\": \"[Nouveau]\",\n \"s_loc_XnoneX\": \"[Aucun]\",\n \"s_loc_Xselect_rangeX\": \"[faites une sélection]\",\n\n\"\":\"The following constants are arrays of strings with the short (3 character) and full names of days and months\",\n \"s_FormatNumber_daynames\": [\"Dimanche\", \"Lundi\", \"Mardi\", \"Mercredi\", \"Jeudi\", \"Vendredi\", \"Samedi\"],\n \"s_FormatNumber_daynames3\": [\"Dim\", \"Lun\", \"Mar\", \"Mer\", \"Jeu\", \"Ven\", \"Sam\"],\n \"s_FormatNumber_monthnames\": [\"Janvier\", \"Février\", \"Mars\", \"Avril\", \"Mai\", \"Juin\", \"Juillet\", \"Août\", \"Septembre\", \"Octobre\", \"Novembre\", \"Décembre\"],\n \"s_FormatNumber_monthnames3\": [\"Jan\", \"Fev\", \"Mar\", \"Avr\", \"Mai\", \"Jun\", \"Jul\", \"Aou\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n \"s_FormatNumber_am\": \"AM\",\n \"s_FormatNumber_am1\": \"A\",\n \"s_FormatNumber_pm\": \"PM\",\n \"s_FormatNumber_pm1\": \"P\",\n\n\"\":\"\",\n\"\":\"SocialCalc Spreadsheet Formula module, formula1.js:\",\n\"\":\"\",\n \"s_parseerrexponent\": \"Nombre en exposant incorrect\",\n \"s_parseerrchar\": \"Caractère inattendu dans la formule\",\n \"s_parseerrstring\": \"Chaîne incorrecte\",\n \"s_parseerrspecialvalue\": \"Valeur spéciale incorrecte\",\n \"s_parseerrtwoops\": \"Erreur dans la formule (deux opérateurs inopportuns dans la chaîne)\",\n \"s_parseerrmissingopenparen\": \"Parenthèse ouvrante manquante dans la liste à virgule(s). \",\n \"s_parseerrcloseparennoopen\": \"Parenthèse fermante sans parenthèse ouvrante. \",\n \"s_parseerrmissingcloseparen\": \"Parenthèse fermante manquante. \",\n \"s_parseerrmissingoperand\": \"Opérande manquant. \",\n \"s_parseerrerrorinformula\": \"Erreur dans la formule.\",\n \"s_calcerrerrorvalueinformula\": \"Valeur erronée dans la formule\",\n \"s_parseerrerrorinformulabadval\": \"Erreur dans la formule créant une mauvaise valeur\",\n \"s_formularangeresult\": \"Formule résultante de la valeur sélectionnée :\",\n \"s_calcerrnumericnan\": \"Formule causant une mauvaise valeur numérique\",\n \"s_calcerrnumericoverflow\": \"Overflow numérique\",\n \"s_sheetunavailable\": \"Feuille indisponible :\",\n \"s_calcerrcellrefmissing\": \"Référence nécessaire manquante à une cellule.\",\n \"s_calcerrsheetnamemissing\": \"Nom de la feuille nécessaire manquante.\",\n \"s_circularnameref\": \"Nom à référence circulaire\",\n \"s_calcerrunknownname\": \"Nom inconnu\",\n \"s_calcerrincorrectargstofunction\": \"Argument de la fonction incorrect\",\n \"s_sheetfuncunknownfunction\": \"Fonction inconnue\",\n \"s_sheetfunclnarg\": \"L'argument de LN doit être plus grand que 0\",\n \"s_sheetfunclog10arg\": \"L'argument de LOG10 doit être plus grand que 0\",\n \"s_sheetfunclogsecondarg\": \"Le deuxième argument de LOG doit être une valeur numérique plus quande que 0\",\n \"s_sheetfunclogfirstarg\": \"Le premier argument de LOG doit être plus grand que 0\",\n \"s_sheetfuncroundsecondarg\": \"Le deuxième argument de ROUND doit être une valeur numérique\",\n \"s_sheetfuncddblife\": \"La vie dans DDB doit être plus grande que 1\",\n \"s_sheetfuncslnlife\": \"La vie dans SLN doit être plus grande que 1\",\n\n\"\":\"Function definition text\",\n \"s_fdef_ABS\": \"Fonction valeur absolue. \",\n \"s_fdef_ACOS\": \"Fonction trigonometrique arccosinus. \",\n \"s_fdef_AND\": \"Vrai si tous les arguments sont vrais. \",\n \"s_fdef_ASIN\": \"Fonction trigonométrique arcsinus. \",\n \"s_fdef_ATAN\": \"Fonction trigonométrique arctangente. \",\n \"s_fdef_ATAN2\": \"Fonction trigonométrique arctangente (le résultat est en radians). \",\n \"s_fdef_AVERAGE\": \"Moyenne des valeurs. \",\n \"s_fdef_CHOOSE\": \"Retourne la valeur spécifiée par l'index. Les valeurs doivent être sélectionnées. \",\n \"s_fdef_COLUMNS\": \"Retourne le nombre de colonnes de la sélection. \",\n \"s_fdef_COS\": \"Fonction trigonométrique cosinus (la valeur est en radians). \",\n \"s_fdef_COUNT\": \"Compte le nombre de valeurs numériques, pas les blancs, ni les textes, ni les erreurs. \",\n \"s_fdef_COUNTA\": \"Compte le nombre de valeurs non-vides. \",\n \"s_fdef_COUNTBLANK\": \"Compte le nombre de blancs. (Note: \\\"\\\" n'est pas un blanc.) \",\n \"s_fdef_COUNTIF\": \"Compte le nombre de cellules dans la sélection qui vérifient la condition. Le critère doit être une valeur (\\\"x\\\", 15, 1+3) ou un test (>25). \",\n \"s_fdef_DATE\": \"Retourne la date appropriée étant donné les nombres de l'année du mois et du jour. Par exemple : DATE(2006,2,1) pour le 1er février 2006. Note : Dans ce programme, le jour \\\"1\\\" est le 31 décembre 1899 et l'année 1900 n'est pas une année sautée. Certains programmes utilisent le 1er janvier 1900, comme le jour \\\"1\\\" et sautent l'année 1900. Mais dans les deux cas, les dates après le 1er mars 1900 sont les mêmes. \",\n \"s_fdef_DAVERAGE\": \"Calcule la moyenne des champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DAY\": \"Retourne le jour de la semaine d'une date donnée. \",\n \"s_fdef_DCOUNT\": \"Compte le nombre de valeurs numériques, pas les blancs, ni le texte, ni les erreurs, dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DCOUNTA\": \"Compte le nombre de valeurs non-vides dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DDB\": \"Retourne la valeur de la dépréciation sur la période donnée (le facteur par défaut est 2 pour un équilibre à double décroissance). \",\n \"s_fdef_DEGREES\": \"Convertit une valeur de radians en degrés. \",\n \"s_fdef_DGET\": \"Retourne la valeur du champ spécifié dans une seule entrée qui satisfait le critère. \",\n \"s_fdef_DMAX\": \"Retourne le maximum des valeurs numériques dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DMIN\": \"Retourne le minimun des valeurs numériques dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DPRODUCT\": \"Retourne le résultat de la multiplication des valeurs numériques dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DSTDEV\": \"Retourne l'écart-type d'une population des valeurs numériques spécifiées qui satisfont le critère. \",\n \"s_fdef_DSTDEVP\": \"Retourne l'écart-type des valeurs numériques spécifiées qui satisfont le critère. \",\n \"s_fdef_DSUM\": \"Retourne la somme des valeurs numériques dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DVAR\": \"Retourne la variance d'une population des valeurs numériques dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_DVARP\": \"Retourne la variance des valeurs numériques dans les champs spécifiés qui satisfont le critère. \",\n \"s_fdef_EVEN\": \"Arrondit supérieurement la valeur à l'entier le plus proche. \",\n \"s_fdef_EXACT\": \"Retourne \\\"true\\\" si les valeurs sont exactement les mêmes, incluant la case, le type, etc. \",\n \"s_fdef_EXP\": \"Retourne e élevé à la puissance spécifiée. \",\n \"s_fdef_FACT\": \"Retourne la factorielle de la valeur. \",\n \"s_fdef_FALSE\": \"Retourne la valeur logique \\\"false\\\". \",\n \"s_fdef_FIND\": \"Retourne la position de départ de la première occurence de chaîne1 dans la chaîne chaîne2, après la position \\\"start\\\". Si \\\"start\\\" est omis, sa valeur est 1. \",\n \"s_fdef_FV\": \"Retourne la valeur future des paiements itérés d'un montant investi à un taux donné pour un nombre spécifié de périodes, avec comme option facultative la valeur présente (0 par défaut) et le type de paiement (par défaut 0 = à la fin de la période, 1 = au début de la période). \",\n \"s_fdef_HLOOKUP\": \"Cherche la valeur assortie à la valeur donnée dans la sélection et retourne la valeur correpondante dans la cellule spécifiée par la ligne de compensation. Si l'option sélection-de-recherche est égale à 1 (par défaut) et non 0, cherche une correspondance dans une fourchette numérique (valeur associée<=valeur) au lieu d'une correspondance exacte. \",\n \"s_fdef_HOUR\": \"Retourne la partie des heures dans une valeur temporelle ou d'une date et d'un horaire. \",\n \"s_fdef_IF\": \"Effectue le résultat associé à vrai si l'expression logique est \\\"TRUE\\\" ou non-nulle, sinon effectue le résultat associé à la valeur fausse. \",\n \"s_fdef_INDEX\": \"Retourne une cellule ou une sélection de référence pour une ligne et une colonne dans cette plage. Si cette plage est de dimension 1, alors seul le numéro de colonne, ou de ligne, est nécessaire. Si elle est à 2 dimensions et que le numéro de ligne ou de colonne est égal à zéro, la référence retournée contient juste la colonne ou la ligne spécifiée. Vous pouvez utiliser la référence retournée dans la syntaxe d'une plage, comme par exemple dans sum(A1:INDEX(A2:A10,4)). \",\n \"s_fdef_INT\": \"Arrondit inférieurement la valeur à l'entier le plus proche (vers -infini). \",\n \"s_fdef_IRR\": \"Retourne le taux d'intérêt auquel le flux d'argent a une valeur nette nulle. Utilise un processus itératif qui retournera une erreur #NUM! si le résultat ne converge pas. Il peut y avoir plus d'une seule possibilité. Fournir une estimation optionnelle peut aider dans certaines situations où il n'y a pas de convergence ou s'il trouve une solution inadaptée (l'estimation par défaut est de 10%). \",\n \"s_fdef_ISBLANK\": \"Retourne \\\"true\\\" si la valeur est une référence à une cellule vide. \",\n \"s_fdef_ISERR\": \"Retourne \\\"true\\\" si la valeur est une référence à une cellule vide of type \\\"Error\\\" but not \\\"NA\\\". \",\n \"s_fdef_ISERROR\": \"Retourne \\\"true\\\" si la valeur est de type \\\"Erreur\\\". \",\n \"s_fdef_ISLOGICAL\": \"Retourne \\\"true\\\" si la valeur est de type logique (\\\"Logical\\\") (vrai/faux). \",\n \"s_fdef_ISNA\": \"Retourne \\\"true\\\" si la valeur est une erreur \\\"NA\\\". \",\n \"s_fdef_ISNONTEXT\": \"Retourne \\\"true\\\" si la valeur n'est pas de type \\\"Text\\\". \",\n \"s_fdef_ISNUMBER\": \"Retourne \\\"true\\\" si la valeur est de type \\\"nombre\\\" (incluant les valeurs logiques). \",\n \"s_fdef_ISTEXT\": \"Retourne \\\"true\\\" si la valeur est de type \\\"Texte\\\". \",\n \"s_fdef_LEFT\": \"Retourne le nombre spécifié de caractères d'une chaîne de texte. Si le nombre est omis, sa valeur est 1. \",\n \"s_fdef_LEN\": \"Retourne le nombre de caractères d'une chaîne de texte. \",\n \"s_fdef_LN\": \"Retourne le logarithme naturel d'une valeur spécifiée. \",\n \"s_fdef_LOG\": \"Retourne le logarithme d'une valeur en utilisant une base spécifiée. \",\n \"s_fdef_LOG10\": \"Retourne le logarithme en base 10 d'une valeur spécifiée. \",\n \"s_fdef_LOWER\": \"Retourne la chaîne de texte avec toutes les majuscules converties en minuscules. \",\n \"s_fdef_MATCH\": \"Cherche la valeur assortie à la valeur donnée dans la sélection et retourne la position (la première est 1) dans cette plage. Si l'option sélection-de-recherche est égale à 1 (par défaut) et non 0, cherche une correspondance dans une fouchette numérique (valeur associée<=valeur) au lieu d'une correspondance exacte. Si sélection-de-recherche est égal à -1, agit comme 1 mais avec la fourchette comme valeur associée>=valeur. \",\n \"s_fdef_MAX\": \"Retourne le maximum des valeurs numériques spécifiées. \",\n \"s_fdef_MID\": \"Retourne le nombre de caractère d'une chaîne de texte en commençant à la position spécifiée. \",\n \"s_fdef_MIN\": \"Retourne le minimum des valeurs numériques spécifiées. \",\n \"s_fdef_MINUTE\": \"Retourne la partie des minutes dans une valeur temporelle ou d'une date et d'un horaire. \",\n \"s_fdef_MOD\": \"Retourne le reste d'une division (euclidienne) d'une première valeur par une autre. \",\n \"s_fdef_MONTH\": \"Retourne la partie du mois d'une date. \",\n \"s_fdef_N\": \"Retourne la valeur si elle est numérique, sinon retourne une erreur. \",\n \"s_fdef_NA\": \"Retourne l'erreur #N/A qui se propage au travers de la plupart des opérations. \",\n \"s_fdef_NOT\": \"Retourne \\\"FALSE\\\" si la valeur est \\\"true\\\", et \\\"TRUE\\\" si la valeur est \\\"false\\\". \",\n \"s_fdef_NOW\": \"Retoune la date et l'heure actuelles. \",\n \"s_fdef_NPER\": \"Retourne le nombre de périodes nécessaire pour avoir la valeur actuelle, avec des paiements investis à chaque période à un taux d'intérêt donné. On peut spécifier la valeur future (0 par défaut) et le type de paiement (par défaut 0 = à la fin de la période, 1 = au début de la période). \",\n \"s_fdef_NPV\": \"Retourne la valeur nette actuelle d'un flux de paiements (qui peuvent être des valeurs individuelles et/ou des plages de données) à un taux d'intérêt donné. Les flux sont positifs dans le cas d'un revenu, négatif s'il s'agit d'une dépense, et pris en compte à la fin de chaque période. \",\n \"s_fdef_ODD\": \"Arrondit la valeur à l'entier impair le plus proche. \",\n \"s_fdef_OR\": \"Vrai si au moins un élément est vrai \",\n \"s_fdef_PI\": \"La valeur 3.1415926… \",\n \"s_fdef_PMT\": \"Retourne le montant de chaque paiement qui doit être investi à un taux donné pour un nombre spécifié de périodes afin d'avoir la valeur actuelle donnée, avec la valeur future optionnelle (0 par défaut) et le type de paiement (par défaut 0 = à la fin de la période, 1 = au début de la période). \",\n \"s_fdef_POWER\": \"Retourne la première valeur mise à la puissance de la seconde valeur. \",\n \"s_fdef_PRODUCT\": \"Retourne le résultat de la multiplication des valeurs numériques spécifiées. \",\n \"s_fdef_PROPER\": \"Retourne la chaîne de texte avec la première lettre de chaque mot convertie en majuscule, et les autres en minuscules. \",\n \"s_fdef_PV\": \"Retourne la valeur actuelle d'un nombre donné de paiements chacuns investis à un taux spécifié, avec la valeur future optionnelle (0 par défaut) et le type de paiement (par défaut 0 = à la fin de la période, 1 = au début de la période). \",\n \"s_fdef_RADIANS\": \"Convertit une valeur de degrès en radians. \",\n \"s_fdef_RATE\": \"Retourne le taux d'intérêt auquel un nombre donné de paiements, chacuns investis à un taux spécifié, ont les valeurs actuelles données, avec la valeur future optionnelle (0 par défaut) et le type de paiement (par défaut 0 = à la fin de la période, 1 = au début de la période). Utilise un processus itératif qui retournera une erreur #NUM! si le résultat ne converge pas. Il peut y avoir plus d'une seule possibilité. Fournir une estimation optionnelle peut aider dans certaines situations où il n'y a pas de convergence ou s'il trouve une solution inadaptée (l'estimation par défaut est de 10%). \",\n \"s_fdef_REPLACE\": \"Retourne texte1 avec le nombre de caractères spécifiés remplacés par texte2, à partir de la position de départ. \",\n \"s_fdef_REPT\": \"Retourne le texte répété le nombre de fois définis. \",\n \"s_fdef_RIGHT\": \"Retourne le nombre de caractères d'une chaîne de texte en partant de la fin. Si compte est omis, la valeur 1 est prise en compte. \",\n \"s_fdef_ROUND\": \"Arrondit au nombre de décimales spécifiées. Si la précision est négative, arrondit alors aux puissances de 10. La précision par défaut est 0 (arrondit à l'entier). \",\n \"s_fdef_ROWS\": \"Retourne le nombre de lignes de la sélection. \",\n \"s_fdef_SECOND\": \"Retourne la deuxième partie d'une heure ou d'une date et d'un horaire (tronquée à un entier). \",\n \"s_fdef_SIN\": \"Fonction trigonometrique sinus (la valeur est en radians) \",\n \"s_fdef_SLN\": \"Retourne le montant de l'amortissement à chaque période en utilisant la méthode constante. \",\n \"s_fdef_SQRT\": \"Racine carrée de la valeur \",\n \"s_fdef_STDEV\": \"Retourne l'écart-type d'une population des valeurs numériques spécifiées. \",\n \"s_fdef_STDEVP\": \"Retourne l'écart-type des valeurs numériques spécifiées. \",\n \"s_fdef_SUBSTITUTE\": \"Retourne \\\"texte1\\\" avec toutes les occurences de \\\"vieux-texte\\\" remplacées par \\\"nouveau-texte\\\". Si l'option \\\"occurrence\\\" est spécifiée, alors seulement cette occurrence est remplacée. \",\n \"s_fdef_SUM\": \"Additionne les valeurs numériques. Les valeurs à sommer doivent être de la forme A1:B5. \",\n \"s_fdef_SUMIF\": \"Additionne les valeurs numériques des cellules qui satisfont le critère. Le critère doit être une valeur (\\\"x\\\", 15, 1+3) ou un test (>25). Si sélection2 n'est pas vide, alors sélection1 sert de test et la valeur correspondante dans sélection2 est sommée. \",\n \"s_fdef_SYD\": \"Amortissement par la méthode de la somme des chiffres de chaque année. \",\n \"s_fdef_T\": \"Retourne la valeur si c'est une chaîne de texte, sinon retourne une chaîne nulle. \",\n \"s_fdef_TAN\": \"Fonction trigonometrique tangente (la valeur est en radians) \",\n \"s_fdef_TIME\": \"Retourne l'heure donnée par l'heure, la minute et la seconde spécifiées. \",\n \"s_fdef_TODAY\": \"Retourne la date actuelle (en tant qu'entier). Note : Dans ce programme, le jour \\\"1\\\" est le 31 décembre 1899 et l'année 1900 n'est pas une année sautée. Certains programmes utilisent le 1er janvier 1900, comme le jour \\\"1\\\" et sautent l'année 1900. Mais dans les deux cas, les dates après le 1er mars 1900 sont les mêmes. \",\n \"s_fdef_TRIM\": \"Retourne la chaîne de texte avec les espaces répétés, de début et de fin supprimés. \",\n \"s_fdef_TRUE\": \"Retourne la valeur logique \\\"true\\\". \",\n \"s_fdef_TRUNC\": \"Tronque la valeur du nombre spécifié decimal places. Si la precision est négative, tronque aux puissances de 10. \",\n \"s_fdef_UPPER\": \"Retourne la chaîne de texte avec toutes les minuscules converties en majuscules. \",\n \"s_fdef_VALUE\": \"Convertit la chaîne de texte donnée en valeur numérique. De nombreuses formes qui ressemblent à des nombres (incluant des chiffres suivis de %, formes ressemblant à des dates, etc.) sont supportées. Cette fonction peut ne pas supporter toutes les formes acceptées par d'autres tableurs et des syntaxes non-anglophones. \",\n \"s_fdef_VAR\": \"Retourne la variance d'une population des valeurs numériques spécifiées. \",\n \"s_fdef_VARP\": \"Retourne la variance des valeurs numériques spécifiées. \",\n \"s_fdef_VLOOKUP\": \"Cherche la valeur assortie à la valeur donnée dans la sélection et retourne la valeur correpondante dans la cellule spécifiée par la colonne de compensation. Si l'option sélection-de-recherche est égale à 1 (par défaut) et non 0, cherche une correspondance dans une fouchette numérique (valeur associée<=valeur) au lieu d'une correspondance exacte. \",\n \"s_fdef_WEEKDAY\": \"Retourne le jour de la semaine de la date spécifiée. Si le type est égal à 1 (par défaut), le jour 1 est le dimanche et le samedi est le jour 7. Si le type est égal à 2, le lundi est le jour 1 et le dimanche est le jour 7. Si le type est 3, le lundi est le jour 0 et le dimanche est le jour 6. \",\n \"s_fdef_YEAR\": \"Retourne l'année d'une date entière. \",\n \"s_fdef_SUMPRODUCT\": \"Additionne les produits en regards de 2 plages de données ou plus. Les plages de données doivent être de même taille.\",\n \"s_fdef_CEILING\": \"Arrondi le nombre fourni au plus proche entier ou magnitude supérieur. La magnitude est le multiple (ou sous-multiple) de 10 supérieur auquel le nombre doit être arrondi (.01, .1, 1, 10, etc.)\",\n \"s_fdef_FLOOR\": \"Arrondi le nombre fourni au plus proche entier ou magnitude. La magnitude est le multiple (ou sous-multiple) de 10 auquel le nombre doit être arrondie (.01, .1, 1, 10, etc.)\",\n\n \"s_farg_v\": \"valeur\",\n \"s_farg_vn\": \"valeur1, valeur2, …\",\n \"s_farg_xy\": \"valeur, valeur\",\n \"s_farg_choose\": \"index, valeur1, valeur2, …\",\n \"s_farg_range\": \"sélection\",\n \"s_farg_rangec\": \"sélection, critère\",\n \"s_farg_date\": \"année, mois, jour\",\n \"s_farg_dfunc\": \"base-de-données-de-la-plage, nom-du-champ, critère-de-sélection\",\n \"s_farg_ddb\": \"coût, amortissement, durée-de-vie, période [, facteur]\",\n \"s_farg_find\": \"chaîne1, chaîne2 [, début]\",\n \"s_farg_fv\": \"taux, n, paiement, [pv, [type-de-paiement]]\",\n \"s_farg_hlookup\": \"valeur, sélection, ligne, [sélection-de-recherche]\",\n \"s_farg_iffunc\": \"expression-logique, vraie-valeur, fausse-valeur\",\n \"s_farg_index\": \"sélection, numéro-de-ligne, numéro-de-colonne\",\n \"s_farg_irr\": \"sélection, [estimation]\",\n \"s_farg_tc\": \"texte, compte\",\n \"s_farg_log\": \"valeur, base\",\n \"s_farg_match\": \"valeur, sélection, [sélection-de-recherche]\",\n \"s_farg_mid\": \"texte, début, longueur\",\n \"s_farg_nper\": \"taux, paiement, pv, [fv, [type-de-paiement]]\",\n \"s_farg_npv\": \"taux, valeur1, valeur2, …\",\n \"s_farg_pmt\": \"taux, n, pv, [fv, [type-de-paiement]]\",\n \"s_farg_pv\": \"taux, n, paiement, [fv, [type-de-paiement]]\",\n \"s_farg_rate\": \"n, paiement, pv, [fv, [type-de-paiement, [estimation]]]\",\n \"s_farg_replace\": \"texte1, début, longueur, texte2\",\n \"s_farg_vp\": \"valeur, [précision]\",\n \"s_farg_valpre\": \"valeur, precision\",\n \"s_farg_csl\": \"coût, récupération, durée-de-vie\",\n \"s_farg_cslp\": \"coût, récupération, durée-de-vie, periode\",\n \"s_farg_subs\": \"texte1, vieux-texte, nouveau-texte [, occurrence]\",\n \"s_farg_sumif\": \"sélection1, critère [, sélection2]\",\n \"s_farg_hms\": \"heure, minute, seconde\",\n \"s_farg_txt\": \"texte\",\n \"s_farg_vlookup\": \"valeur, sélection, colonne, [sélection-de-recherche]\",\n \"s_farg_weekday\": \"date, [type]\",\n \"s_farg_dt\": \"date\",\n \"s_farg_rangen\": \"sélection1, sélection2, ...\",\n \"s_farg_vsig\": \"valeur, [magnitude]\",\n\n \"function_classlist\": [\"all\", \"stat\", \"lookup\", \"datetime\", \"financial\", \"test\", \"math\", \"text\"],\n\n \"s_fclass_all\": \"Tout\",\n \"s_fclass_stat\": \"Statistiques\",\n \"s_fclass_lookup\": \"Recherche\",\n \"s_fclass_datetime\": \"Date et heure\",\n \"s_fclass_financial\": \"Financier\",\n \"s_fclass_test\": \"Test\",\n \"s_fclass_math\": \"Maths\",\n \"s_fclass_text\": \"Texte\",\n\n\"\":\"Graph tab\",\n \"s_loc_plain\": \"Plein\",\n \"s_loc_graph\": \"Graphique\",\n \"s_loc_cells_to_graph\": \"Cellules à tracer\",\n \"s_loc_set_cells_to_graph\": \"Paramétrer les cellules à tracer\",\n \"s_loc_graph_type\": \"Type de graphique\",\n \"s_loc_help\": \"Aide\",\n \"s_loc_horizontal_bar\": \"Histogramme horizontal\",\n \"s_loc_vertical_bar\": \"Histogramme vertical\",\n \"s_loc_pie_chart\": \"Diagramme circulaire (camenbert)\",\n \"s_loc_line_chart\": \"Ligne\",\n \"s_loc_scatter_chart\": \"Nuage de points\",\n \"s_loc_not_set\": \"Non défini\",\n \"s_loc_unknown_range_name\": \"Nom de sélection inconnu\",\n \"s_loc_hide_help\": \"Cacher l'aide\",\n \"s_loc_x\": \"X\",\n \"s_loc_y\": \"Y\",\n \"s_loc_max\": \"Max\",\n \"s_loc_min\": \"Min\",\n \"s_loc_Xselect_rangeX\": \"[Sélection]\",\n \"s_loc_graph_view\": \"Graph View\",\n \"s_GraphRangeNotSelected\": \"Choisissez une plage de cellules de valeurs numériques, puis utilisez le bouton OK ci-dessus pour sélectionner cette plage comme celle à tracer.\",\n\n \"s_graph_error_selection\": \"<b>Erreur de sélection</b>.<br>Vous devez sélectionner des cellules au sein d'une même ligne ou colonne !\",\n \"s_graph_help_intro\": \"Ceci est l'aide pour le type de graphique: \",\n \"s_graph_VerticalBar_help\": \"L'onglet <b>Graphique</b> affiche un histogramme vertical des cellules sélectionnées (dans une seule ligne ou colonne). Si la ligne au-dessus (ou la colonne à gauche) de la sélection a des valeurs, celles-ci sont utilisées comme labels. Sinon ce sont les coordonnées de cellule qui sont utilisées (par exemple : B5).\",\n \"s_graph_HorizontalBar_help\": \"L'onglet <b>Graphique</b> affiche un histogramme horizontal des cellules sélectionnées (dans une seule ligne ou colonne). Si la ligne au-dessus (ou la colonne à gauche) de la sélection a des valeurs, celles-ci sont utilisées comme labels. Sinon ce sont les coordonnées de cellule qui sont utilisées (par exemple : B5).\",\n \"s_graph_PieChart_help\": \"L'onglet <b>Graphique</b> affiche un diagramme circulaire (camembert) des cellules sélectionnées (dans une seule ligne ou colonne). Si la ligne au-dessus (ou la colonne à gauche) de la sélection a des valeurs, celles-ci sont utilisées comme labels. Sinon ce sont les coordonnées de cellule qui sont utilisées (par exemple : B5).\",\n \"s_graph_PieChart_error_selection\": \"<b>Erreur de sélection</b>.<br>Vous ne devez sélectionner que des cellules ayant des valeurs positives !\",\n \"s_graph_LineChart_help\": \"L'onglet <b>Graphique</b> affiche une ligne ou profile XY des cellules sélectionnées (dans une seule ligne ou colonne). La ligne au-dessus (ou la colonne à gauche) de la sélection est utilisée comme coordonnée X.\",\n \"s_graph_ScatterChart_help\": \"L'onglet <b>Graphique</b> affiche un nuage de point ou profile discret XY des cellules sélectionnées (dans une seule ligne ou colonne). La ligne au-dessus (ou la colonne à gauche) de la sélection est utilisée comme coordonnée X. Si la ligne en-dessous (ou la colonne à droite) de la sélection a des valeurs, celles-ci sont interprétées comme une dimension appliquée aux points\",\n\n\"\":\"Clipboard tab\",\n \"s_loc_to\": \"vers\",\n \"s_loc_tiddler\": \"Tiddler\",\n \"s_loc_import\": \"Import\",\n \"s_loc_export\": \"Export\",\n \"s_loc_XclipboardX\": \"[Presse-papier]\",\n \"s_clipboard_menu_title\": \"Import/Export<br> et Presse-papier\",\n \"s_clipboard_export_error_tiddler_exists\": \"Le Tiddler existe déjà\",\n \"s_clipboard_export_error_tiddler_overwrite\": \"Voulez-vous le remplacer ?\",\n \"s_clipboard_import_error_tiddler_format\": \"Erreur de format: le champ \\\"format\\\" du Tiddler a une valeur incorrecte.\",\n\n\"\":\"Save sheet to tiddler\",\n \"s_loc_save_changes\": \"Sauvegarder\",\n \"s_notification_tiddler\": \"La feuille de calcul ~SocialCalc a été sauvegardée\",\n\n\"\":\"\"\n}\n" }, "$:/plugins/rboue/SocialCalc/Languages/fr-FR--save-notification": { "title": "$:/plugins/rboue/SocialCalc/Languages/fr-FR--save-notification", "text": "La feuille de calcul ~SocialCalc a été sauvegardée\n" }, "$:/plugins/rboue/SocialCalc/Lib/socialcalc-min.js": { "type": "application/javascript", "title": "$:/plugins/rboue/SocialCalc/Lib/socialcalc-min.js", "module-type": "library", "text": "(function(){\nvar SocialCalc;SocialCalc||(SocialCalc={});\nSocialCalc.Constants={textdatadefaulttype:\"t\",s_BrowserNotSupported:\"Browser not supported.\",s_InternalError:\"Internal SocialCalc error (probably an internal bug): \",s_pssUnknownColType:\"Unknown col type item\",s_pssUnknownRowType:\"Unknown row type item\",s_pssUnknownLineType:\"Unknown line type\",s_cfspUnknownCellType:\"Unknown cell type item\",doCanonicalizeSheet:!0,s_escUnknownSheetCmd:\"Unknown sheet command: \",s_escUnknownSetCoordCmd:\"Unknown set coord command: \",s_escUnknownCmd:\"Unknown command: \",\ns_caccCircRef:\"Circular reference to \",defaultRowNameWidth:\"30\",defaultAssumedRowHeight:15,defaultCellIDPrefix:\"cell_\",defaultCellLayout:\"padding:2px 2px 1px 2px;vertical-align:top;\",defaultCellFontStyle:\"normal normal\",defaultCellFontSize:\"small\",defaultCellFontFamily:\"Verdana,Arial,Helvetica,sans-serif\",defaultPaneDividerWidth:\"2\",defaultPaneDividerHeight:\"3\",defaultGridCSS:\"1px solid #C0C0C0;\",defaultCommentClass:\"\",defaultCommentStyle:\"background-repeat:no-repeat;background-position:top right;background-image:url(images/sc-commentbg.gif);\",\ndefaultCommentNoGridClass:\"\",defaultCommentNoGridStyle:\"\",defaultReadonlyClass:\"\",defaultReadonlyStyle:\"background-repeat:no-repeat;background-position:top right;background-image:url(images/sc-lockbg.gif);\",defaultReadonlyNoGridClass:\"\",defaultReadonlyNoGridStyle:\"\",defaultReadonlyComment:\"Locked cell\",defaultColWidth:\"80\",defaultMinimumColWidth:10,defaultHighlightTypeCursorClass:\"\",defaultHighlightTypeCursorStyle:\"color:#FFF;backgroundColor:#A6A6A6;\",defaultHighlightTypeRangeClass:\"\",defaultHighlightTypeRangeStyle:\"color:#000;backgroundColor:#E5E5E5;\",\ndefaultColnameClass:\"\",defaultColnameStyle:\"font-size:small;text-align:center;color:#FFFFFF;background-color:#808080;cursor:e-resize;\",defaultSelectedColnameClass:\"\",defaultSelectedColnameStyle:\"font-size:small;text-align:center;color:#FFFFFF;background-color:#404040;cursor:e-resize;\",defaultRownameClass:\"\",defaultRownameStyle:\"font-size:small;text-align:right;color:#FFFFFF;background-color:#808080;direction:rtl;\",defaultSelectedRownameClass:\"\",defaultSelectedRownameStyle:\"font-size:small;text-align:right;color:#FFFFFF;background-color:#404040;\",\ndefaultUpperLeftClass:\"\",defaultUpperLeftStyle:\"font-size:small;\",defaultSkippedCellClass:\"\",defaultSkippedCellStyle:\"font-size:small;background-color:#CCC\",defaultPaneDividerClass:\"\",defaultPaneDividerStyle:\"font-size:small;background-color:#C0C0C0;padding:0px;\",defaultUnhideLeftClass:\"\",defaultUnhideLeftStyle:\"float:right;width:9px;height:12px;cursor:pointer;background-image:url(images/sc-unhideleft.gif);padding:0;\",defaultUnhideRightClass:\"\",defaultUnhideRightStyle:\"float:left;width:9px;height:12px;cursor:pointer;background-image:url(images/sc-unhideright.gif);padding:0;\",\ndefaultUnhideTopClass:\"\",defaultUnhideTopStyle:\"float:left;position:absolute;bottom:-4px;width:12px;height:9px;cursor:pointer;background-image:url(images/sc-unhidetop.gif);padding:0;\",defaultUnhideBottomClass:\"\",defaultUnhideBottomStyle:\"float:left;width:12px;height:9px;cursor:pointer;background-image:url(images/sc-unhidebottom.gif);padding:0;\",s_rcMissingSheet:\"Render Context must have a sheet object\",defaultLinkFormatString:'<span style=\"font-size:smaller;text-decoration:none !important;background-color:#66B;color:#FFF;\">Link</span>',\ndefaultPageLinkFormatString:'<span style=\"font-size:smaller;text-decoration:none !important;background-color:#66B;color:#FFF;\">Page</span>',defaultTiddlerLinkFormatString:'<span style=\"font-size:smaller;text-decoration:none !important;background-color:#66B;color:#FFF;\">Tiddler</span>',defaultFormatp:\"#,##0.0%\",defaultFormatc:\"[$$]#,##0.00\",defaultFormatdt:\"d-mmm-yyyy h:mm:ss\",defaultFormatd:\"d-mmm-yyyy\",defaultFormatt:\"[h]:mm:ss\",defaultDisplayTRUE:\"TRUE\",defaultDisplayFALSE:\"FALSE\",defaultImagePrefix:\"images/sc-\",\ndefaultTableEditorIDPrefix:\"te_\",defaultPageUpDnAmount:15,AllowCtrlS:!0,defaultTableControlThickness:20,cteGriddivClass:\"\",s_statusline_executing:\"Executing...\",s_statusline_displaying:\"Displaying...\",s_statusline_ordering:\"Ordering...\",s_statusline_calculating:\"Calculating...\",s_statusline_calculatingls:\"Calculating... Loading Sheet...\",s_statusline_doingserverfunc:\"doing server function \",s_statusline_incell:\" in cell \",s_statusline_calcstart:\"Calculation start...\",s_statusline_sum:\"SUM\",s_statusline_recalcneeded:'<span style=\"color:#999;\">(Recalc needed)</span>',\ns_statusline_circref:'<span style=\"color:red;\">Circular reference: ',s_inputboxdisplaymultilinetext:\"[Multi-line text: Click icon on right to edit]\",defaultInputEchoClass:\"\",defaultInputEchoStyle:\"filter:alpha(opacity=90);opacity:.9;backgroundColor:#FFD;border:1px solid #884;fontSize:small;padding:2px 10px 1px 2px;cursor:default;\",defaultInputEchoPromptClass:\"\",defaultInputEchoPromptStyle:\"filter:alpha(opacity=90);opacity:.9;backgroundColor:#FFD;borderLeft:1px solid #884;borderRight:1px solid #884;borderBottom:1px solid #884;fontSize:small;fontStyle:italic;padding:2px 10px 1px 2px;cursor:default;\",\nietUnknownFunction:\"Unknown function \",CH_radius1:29,CH_radius2:41,s_CHfillAllTooltip:\"Fill Contents and Formats Down/Right\",s_CHfillContentsTooltip:\"Fill Contents Only Down/Right\",s_CHmovePasteAllTooltip:\"Move Contents and Formats\",s_CHmovePasteContentsTooltip:\"Move Contents Only\",s_CHmoveInsertAllTooltip:\"Slide Contents and Formats within Row/Col\",s_CHmoveInsertContentsTooltip:\"Slide Contents within Row/Col\",s_CHindicatorOperationLookup:{Fill:\"Fill\",FillC:\"Fill Contents\",Move:\"Move\",MoveI:\"Slide\",\nMoveC:\"Move Contents\",MoveIC:\"Slide Contents\"},s_CHindicatorDirectionLookup:{Down:\" Down\",Right:\" Right\",Horizontal:\" Horizontal\",Vertical:\" Vertical\"},defaultTCSliderThickness:9,defaultTCButtonThickness:20,defaultTCThumbThickness:15,TCmainStyle:\"backgroundColor:#EEE;\",TCmainClass:\"\",TCendcapStyle:\"backgroundColor:#FFF;\",TCendcapClass:\"\",TCpanesliderStyle:\"backgroundColor:#CCC;\",TCpanesliderClass:\"\",s_panesliderTooltiph:\"Drag to lock pane vertically\",s_panesliderTooltipv:\"Drag to lock pane horizontally\",\nTClessbuttonStyle:\"backgroundColor:#AAA;\",TClessbuttonClass:\"\",TClessbuttonRepeatWait:300,TClessbuttonRepeatInterval:20,TCmorebuttonStyle:\"backgroundColor:#AAA;\",TCmorebuttonClass:\"\",TCmorebuttonRepeatWait:300,TCmorebuttonRepeatInterval:20,TCscrollareaStyle:\"backgroundColor:#DDD;\",TCscrollareaClass:\"\",TCscrollareaRepeatWait:500,TCscrollareaRepeatInterval:100,TCthumbClass:\"\",TCthumbStyle:\"backgroundColor:#CCC;\",TCPStrackinglineClass:\"\",TCPStrackinglineStyle:\"overflow:hidden;position:absolute;zIndex:100;\",\nTCPStrackinglineThickness:\"2px\",TCTDFSthumbstatusvClass:\"\",TCTDFSthumbstatusvStyle:\"height:20px;width:auto;border:3px solid #808080;overflow:hidden;backgroundColor:#FFF;fontSize:small;position:absolute;zIndex:100;\",TCTDFSthumbstatushClass:\"\",TCTDFSthumbstatushStyle:\"height:20px;width:auto;border:1px solid black;padding:2px;backgroundColor:#FFF;fontSize:small;position:absolute;zIndex:100;\",TCTDFSthumbstatusrownumClass:\"\",TCTDFSthumbstatusrownumStyle:\"color:#FFF;background-color:#808080;font-size:small;white-space:nowrap;padding:3px;\",\nTCTDFStopOffsetv:0,TCTDFSleftOffsetv:-80,s_TCTDFthumbstatusPrefixv:\"Row \",TCTDFStopOffseth:-30,TCTDFSleftOffseth:0,s_TCTDFthumbstatusPrefixh:\"Col \",TooltipOffsetX:2,TooltipOffsetY:10,TDpopupElementClass:\"\",TDpopupElementStyle:\"border:1px solid black;padding:1px 2px 2px 2px;textAlign:center;backgroundColor:#FFF;fontSize:7pt;fontFamily:Verdana,Arial,Helvetica,sans-serif;position:absolute;width:auto;zIndex:110;\",SCToolbarbackground:\"background-color:#404040;\",SCTabbackground:\"background-color:#CCC;\",\nSCTabselectedCSS:\"display:inline-block;font-size:small;padding:6px 16px 6px 8px;color:#FFF;background-color:#404040;cursor:default;border-right:1px solid #CCC;\",SCTabplainCSS:\"display:inline-block;font-size:small;padding:6px 16px 6px 8px;color:#FFF;background-color:#808080;cursor:default;border-right:1px solid #CCC;\",SCToolbartext:\"font-size:x-small;font-weight:bold;color:#FFF;padding-bottom:4px;\",SCFormulabarheight:30,SCStatuslineheight:20,SCStatuslineCSS:\"font-size:10px;padding:3px 0px;\",SCFormatNumberFormats:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!Automatic!:general|%loc!Auto w/ commas!:[,]General|[break]:|00:00|000:000|0000:0000|00000:00000|[break]:|%loc!Formula!:formula|%loc!Hidden!:hidden|[newcol]:1234:0|1,234:#,##0|1,234.5:#,##0.0|1,234.56:#,##0.00|1,234.567:#,##0.000|1,234.5678:#,##0.0000|[break]:|1,234%:#,##0%|1,234.5%:#,##0.0%|1,234.56%:#,##0.00%|[newcol]:|$1,234:$#,##0|$1,234.5:$#,##0.0|$1,234.56:$#,##0.00|[break]:|(1,234):#,##0_);(#,##0)|(1,234.5):#,##0.0_);(#,##0.0)|(1,234.56):#,##0.00_);(#,##0.00)|[break]:|($1,234):#,##0_);($#,##0)|($1,234.5):$#,##0.0_);($#,##0.0)|($1,234.56):$#,##0.00_);($#,##0.00)|[newcol]:|1/4/06:m/d/yy|01/04/2006:mm/dd/yyyy|2006-01-04:yyyy-mm-dd|4-Jan-06:d-mmm-yy|04-Jan-2006:dd-mmm-yyyy|January 4, 2006:mmmm d, yyyy|[break]:|1\\\\c23:h:mm|1\\\\c23 PM:h:mm AM/PM|1\\\\c23\\\\c45:h:mm:ss|01\\\\c23\\\\c45:hh:mm:ss|26\\\\c23 (h\\\\cm):[hh]:mm|69\\\\c45 (m\\\\cs):[mm]:ss|69 (s):[ss]|[newcol]:|2006-01-04 01\\\\c23\\\\c45:yyyy-mm-dd hh:mm:ss|January 4, 2006:mmmm d, yyyy hh:mm:ss|Wed:ddd|Wednesday:dddd|\",\nSCFormatTextFormats:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!Automatic!:general|%loc!Plain Text!:text-plain|HTML:text-html|%loc!Wikitext!:text-wiki|%loc!Link!:text-link|%loc!Formula!:formula|%loc!Hidden!:hidden|\",SCFormatPadsizes:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|%loc!No padding!:0px|[newcol]:|1 pixel:1px|2 pixels:2px|3 pixels:3px|4 pixels:4px|5 pixels:5px|6 pixels:6px|7 pixels:7px|8 pixels:8px|[newcol]:|9 pixels:9px|10 pixels:10px|11 pixels:11px|12 pixels:12px|13 pixels:13px|14 pixels:14px|16 pixels:16px|18 pixels:18px|[newcol]:|20 pixels:20px|22 pixels:22px|24 pixels:24px|28 pixels:28px|36 pixels:36px|\",\nSCFormatFontsizes:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|X-Small:x-small|Small:small|Medium:medium|Large:large|X-Large:x-large|[newcol]:|6pt:6pt|7pt:7pt|8pt:8pt|9pt:9pt|10pt:10pt|11pt:11pt|12pt:12pt|14pt:14pt|16pt:16pt|[newcol]:|18pt:18pt|20pt:20pt|22pt:22pt|24pt:24pt|28pt:28pt|36pt:36pt|48pt:48pt|72pt:72pt|[newcol]:|8 pixels:8px|9 pixels:9px|10 pixels:10px|11 pixels:11px|12 pixels:12px|13 pixels:13px|14 pixels:14px|[newcol]:|16 pixels:16px|18 pixels:18px|20 pixels:20px|22 pixels:22px|24 pixels:24px|28 pixels:28px|36 pixels:36px|\",\nSCFormatFontfamilies:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|Verdana:Verdana,Arial,Helvetica,sans-serif|Arial:arial,helvetica,sans-serif|Courier:'Courier New',Courier,monospace|\",SCFormatFontlook:\"[cancel]:|[break]:|%loc!Default!:|%loc!Normal!:normal normal|%loc!Bold!:normal bold|%loc!Italic!:italic normal|%loc!Bold Italic!:italic bold\",SCFormatTextAlignhoriz:\"[cancel]:|[break]:|%loc!Default!:|%loc!Left!:left|%loc!Center!:center|%loc!Right!:right|\",SCFormatNumberAlignhoriz:\"[cancel]:|[break]:|%loc!Default!:|%loc!Left!:left|%loc!Center!:center|%loc!Right!:right|\",\nSCFormatAlignVertical:\"[cancel]:|[break]:|%loc!Default!:|%loc!Top!:top|%loc!Middle!:middle|%loc!Bottom!:bottom|\",SCFormatColwidth:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|20 pixels:20|40:40|60:60|80:80|100:100|120:120|140:140|160:160|[newcol]:|180 pixels:180|200:200|220:220|240:240|260:260|280:280|300:300|\",SCFormatRecalc:\"[cancel]:|[break]:|%loc!Auto!:|%loc!Manual!:off|\",SCFormatUserMaxCol:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|Unlimited:0|10:10|20:20|30:30|40:40|50:50|60:60|80:80|100:100|\",\nSCFormatUserMaxRow:\"[cancel]:|[break]:|%loc!Default!:|[custom]:|[newcol]:|Unlimited:0|10:10|20:20|30:30|40:40|50:50|60:60|80:80|100:100|\",ISCButtonBorderNormal:\"#404040\",ISCButtonBorderHover:\"#999\",ISCButtonBorderDown:\"#FFF\",ISCButtonDownBackground:\"#888\",s_PopupListCancel:\"[Cancel]\",s_PopupListCustom:\"Custom\",s_loc_align_center:\"Align Center\",s_loc_align_left:\"Align Left\",s_loc_align_right:\"Align Right\",s_loc_alignment:\"Alignment\",s_loc_audit:\"Audit\",s_loc_audit_trail_this_session:\"Audit Trail This Session\",\ns_loc_auto:\"Auto\",s_loc_auto_sum:\"Auto Sum\",s_loc_auto_wX_commas:\"Auto w/ commas\",s_loc_automatic:\"Automatic\",s_loc_background:\"Background\",s_loc_bold:\"Bold\",s_loc_bold_XampX_italics:\"Bold & Italics\",s_loc_bold_italic:\"Bold Italic\",s_loc_borders:\"Borders\",s_loc_borders_off:\"Borders Off\",s_loc_borders_on:\"Borders On\",s_loc_bottom:\"Bottom\",s_loc_bottom_border:\"Bottom Border\",s_loc_cell_settings:\"CELL SETTINGS\",s_loc_csv_format:\"CSV format\",s_loc_cancel:\"Cancel\",s_loc_category:\"Category\",s_loc_center:\"Center\",\ns_loc_clear:\"Clear\",s_loc_clear_socialcalc_clipboard:\"Clear SocialCalc Clipboard\",s_loc_clipboard:\"Clipboard\",s_loc_color:\"Color\",s_loc_column_:\"Column \",s_loc_comment:\"Comment\",s_loc_copy:\"Copy\",s_loc_custom:\"Custom\",s_loc_cut:\"Cut\",s_loc_default:\"Default\",s_loc_default_alignment:\"Default Alignment\",s_loc_default_column_width:\"Default Column Width\",s_loc_default_font:\"Default Font\",s_loc_default_format:\"Default Format\",s_loc_default_padding:\"Default Padding\",s_loc_delete:\"Delete\",s_loc_delete_column:\"Delete Column\",\ns_loc_delete_contents:\"Delete Contents\",s_loc_delete_row:\"Delete Row\",s_loc_description:\"Description\",s_loc_display_clipboard_in:\"Display Clipboard in\",s_loc_down:\"Down\",s_loc_edit:\"Edit\",s_loc_existing_names:\"Existing Names\",s_loc_family:\"Family\",s_loc_fill_down:\"Fill Down\",s_loc_fill_right:\"Fill Right\",s_loc_font:\"Font\",s_loc_format:\"Format\",s_loc_formula:\"Formula\",s_loc_function_list:\"Function List\",s_loc_functions:\"Functions\",s_loc_grid:\"Grid\",s_loc_hidden:\"Hidden\",s_loc_hide_column:\"Hide Column\",\ns_loc_hide_row:\"Hide Row\",s_loc_horizontal:\"Horizontal\",s_loc_insert_column:\"Insert Column\",s_loc_insert_row:\"Insert Row\",s_loc_italic:\"Italic\",s_loc_last_sort:\"Last Sort\",s_loc_left:\"Left\",s_loc_left_border:\"Left Border\",s_loc_link:\"Link\",s_loc_link_input_box:\"Link Input Box\",s_loc_list:\"List\",s_loc_load_socialcalc_clipboard_with_this:\"Load SocialCalc Clipboard With This\",s_loc_lock:\"Lock\",s_loc_major_sort:\"Major Sort\",s_loc_manual:\"Manual\",s_loc_merge_cells:\"Merge Cells\",s_loc_middle:\"Middle\",s_loc_minor_sort:\"Minor Sort\",\ns_loc_move_insert:\"Move Insert\",s_loc_move_paste:\"Move Paste\",s_loc_multiXline_input_box:\"Multi-line Input Box\",s_loc_name:\"Name\",s_loc_names:\"Names\",s_loc_no_padding:\"No padding\",s_loc_normal:\"Normal\",s_loc_number:\"Number\",s_loc_number_horizontal:\"Number Horizontal\",s_loc_ok:\"OK\",s_loc_padding:\"Padding\",s_loc_page_name:\"Page Name\",s_loc_paste:\"Paste\",s_loc_paste_formats:\"Paste Formats\",s_loc_plain_text:\"Plain Text\",s_loc_recalc:\"Recalc\",s_loc_recalculation:\"Recalculation\",s_loc_redo:\"Redo\",s_loc_right:\"Right\",\ns_loc_right_border:\"Right Border\",s_loc_sheet_settings:\"SHEET SETTINGS\",s_loc_save:\"Save\",s_loc_save_to:\"Save to\",s_loc_set_cell_contents:\"Set Cell Contents\",s_loc_set_cells_to_sort:\"Set Cells To Sort\",s_loc_set_value_to:\"Set Value To\",s_loc_set_to_link_format:\"Set to Link format\",s_loc_setXclear_move_from:\"Set/Clear Move From\",s_loc_show_cell_settings:\"Show Cell Settings\",s_loc_show_sheet_settings:\"Show Sheet Settings\",s_loc_show_in_new_browser_window:\"Show in new browser window\",s_loc_size:\"Size\",\ns_loc_socialcalcXsave_format:\"SocialCalc-save format\",s_loc_sort:\"Sort\",s_loc_sort_:\"Sort \",s_loc_sort_cells:\"Sort Cells\",s_loc_swap_colors:\"Swap Colors\",s_loc_tabXdelimited_format:\"Tab-delimited format\",s_loc_text:\"Text\",s_loc_text_horizontal:\"Text Horizontal\",s_loc_this_is_aXbrXsample:\"This is a<br>sample\",s_loc_top:\"Top\",s_loc_top_border:\"Top Border\",s_loc_undone_steps:\"UNDONE STEPS\",s_loc_url:\"URL\",s_loc_undo:\"Undo\",s_loc_unlock:\"Unlock\",s_loc_unmerge_cells:\"Unmerge Cells\",s_loc_up:\"Up\",s_loc_value:\"Value\",\ns_loc_vertical:\"Vertical\",s_loc_wikitext:\"Wikitext\",s_loc_workspace:\"Workspace\",s_loc_XnewX:\"[New]\",s_loc_XnoneX:\"[None]\",s_loc_Xselect_rangeX:\"[select range]\",SVStatuslineheight:20,SVStatuslineCSS:\"font-size:10px;padding:3px 0px;\",FormatNumber_separatorchar:\",\",FormatNumber_decimalchar:\".\",FormatNumber_defaultCurrency:\"$\",s_FormatNumber_daynames:\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \"),s_FormatNumber_daynames3:\"Sun Mon Tue Wed Thu Fri Sat\".split(\" \"),s_FormatNumber_monthnames:\"January February March April May June July August September October November December\".split(\" \"),\ns_FormatNumber_monthnames3:\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \"),s_FormatNumber_am:\"AM\",s_FormatNumber_am1:\"A\",s_FormatNumber_pm:\"PM\",s_FormatNumber_pm1:\"P\",s_parseerrexponent:\"Improperly formed number exponent\",s_parseerrchar:\"Unexpected character in formula\",s_parseerrstring:\"Improperly formed string\",s_parseerrspecialvalue:\"Improperly formed special value\",s_parseerrtwoops:\"Error in formula (two operators inappropriately in a row)\",s_parseerrmissingopenparen:\"Missing open parenthesis in list with comma(s). \",\ns_parseerrcloseparennoopen:\"Closing parenthesis without open parenthesis. \",s_parseerrmissingcloseparen:\"Missing close parenthesis. \",s_parseerrmissingoperand:\"Missing operand. \",s_parseerrerrorinformula:\"Error in formula.\",s_calcerrerrorvalueinformula:\"Error value in formula\",s_parseerrerrorinformulabadval:\"Error in formula resulting in bad value\",s_formularangeresult:\"Formula results in range value:\",s_calcerrnumericnan:\"Formula results in an bad numeric value\",s_calcerrnumericoverflow:\"Numeric overflow\",\ns_sheetunavailable:\"Sheet unavailable:\",s_calcerrcellrefmissing:\"Cell reference missing when expected.\",s_calcerrsheetnamemissing:\"Sheet name missing when expected.\",s_circularnameref:\"Circular name reference to name\",s_calcerrunknownname:\"Unknown name\",s_calcerrincorrectargstofunction:\"Incorrect arguments to function\",s_sheetfuncunknownfunction:\"Unknown function\",s_sheetfunclnarg:\"LN argument must be greater than 0\",s_sheetfunclog10arg:\"LOG10 argument must be greater than 0\",s_sheetfunclogsecondarg:\"LOG second argument must be numeric greater than 0\",\ns_sheetfunclogfirstarg:\"LOG first argument must be greater than 0\",s_sheetfuncroundsecondarg:\"ROUND second argument must be numeric\",s_sheetfuncddblife:\"DDB life must be greater than 1\",s_sheetfuncslnlife:\"SLN life must be greater than 1\",s_fdef_ABS:\"Absolute value function. \",s_fdef_ACOS:\"Trigonometric arccosine function. \",s_fdef_AND:\"True if all arguments are true. \",s_fdef_ASIN:\"Trigonometric arcsine function. \",s_fdef_ATAN:\"Trigonometric arctan function. \",s_fdef_ATAN2:\"Trigonometric arc tangent function (result is in radians). \",\ns_fdef_AVERAGE:\"Averages the values. \",s_fdef_CHOOSE:\"Returns the value specified by the index. The values may be ranges of cells. \",s_fdef_COLUMNS:\"Returns the number of columns in the range. \",s_fdef_COS:\"Trigonometric cosine function (value is in radians). \",s_fdef_COUNT:\"Counts the number of numeric values, not blank, text, or error. \",s_fdef_COUNTA:\"Counts the number of non-blank values. \",s_fdef_COUNTBLANK:'Counts the number of blank values. (Note: \"\" is not blank.) ',s_fdef_COUNTIF:'Counts the number of number of cells in the range that meet the criteria. The criteria may be a value (\"x\", 15, 1+3) or a test (>25). ',\ns_fdef_DATE:'Returns the appropriate date value given numbers for year, month, and day. For example: DATE(2006,2,1) for February 1, 2006. Note: In this program, day \"1\" is December 31, 1899 and the year 1900 is not a leap year. Some programs use January 1, 1900, as day \"1\" and treat 1900 as a leap year. In both cases, though, dates on or after March 1, 1900, are the same. ',s_fdef_DAVERAGE:\"Averages the values in the specified field in records that meet the criteria. \",s_fdef_DAY:\"Returns the day of month for a date value. \",\ns_fdef_DCOUNT:\"Counts the number of numeric values, not blank, text, or error, in the specified field in records that meet the criteria. \",s_fdef_DCOUNTA:\"Counts the number of non-blank values in the specified field in records that meet the criteria. \",s_fdef_DDB:\"Returns the amount of depreciation at the given period of time (the default factor is 2 for double-declining balance). \",s_fdef_DEGREES:\"Converts value in radians into degrees. \",s_fdef_DGET:\"Returns the value of the specified field in the single record that meets the criteria. \",\ns_fdef_DMAX:\"Returns the maximum of the numeric values in the specified field in records that meet the criteria. \",s_fdef_DMIN:\"Returns the maximum of the numeric values in the specified field in records that meet the criteria. \",s_fdef_DPRODUCT:\"Returns the result of multiplying the numeric values in the specified field in records that meet the criteria. \",s_fdef_DSTDEV:\"Returns the sample standard deviation of the numeric values in the specified field in records that meet the criteria. \",s_fdef_DSTDEVP:\"Returns the standard deviation of the numeric values in the specified field in records that meet the criteria. \",\ns_fdef_DSUM:\"Returns the sum of the numeric values in the specified field in records that meet the criteria. \",s_fdef_DVAR:\"Returns the sample variance of the numeric values in the specified field in records that meet the criteria. \",s_fdef_DVARP:\"Returns the variance of the numeric values in the specified field in records that meet the criteria. \",s_fdef_EVEN:\"Rounds the value up in magnitude to the nearest even integer. \",s_fdef_EXACT:'Returns \"true\" if the values are exactly the same, including case, type, etc. ',\ns_fdef_EXP:\"Returns e raised to the value power. \",s_fdef_FACT:\"Returns factorial of the value. \",s_fdef_FALSE:'Returns the logical value \"false\". ',s_fdef_FIND:'Returns the starting position within string2 of the first occurrence of string1 at or after \"start\". If start is omitted, 1 is assumed. ',s_fdef_FV:\"Returns the future value of repeated payments of money invested at the given rate for the specified number of periods, with optional present value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). \",\ns_fdef_HLOOKUP:\"Look for the matching value for the given value in the range and return the corresponding value in the cell specified by the row offset. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match<=value) instead of exact match. \",s_fdef_HOUR:\"Returns the hour portion of a time or date/time value. \",s_fdef_IF:\"Results in true-value if logical-expression is TRUE or non-zero, otherwise results in false-value. \",s_fdef_INDEX:\"Returns a cell or range reference for the specified row and column in the range. If range is 1-dimensional, then only one of rownum or colnum are needed. If range is 2-dimensional and rownum or colnum are zero, a reference to the range of just the specified column or row is returned. You can use the returned reference value in a range, e.g., sum(A1:INDEX(A2:A10,4)). \",\ns_fdef_INT:\"Returns the value rounded down to the nearest integer (towards -infinity). \",s_fdef_IRR:\"Returns the interest rate at which the cash flows in the range have a net present value of zero. Uses an iterative process that will return #NUM! error if it does not converge. There may be more than one possible solution. Providing the optional guess value may help in certain situations where it does not converge or finds an inappropriate solution (the default guess is 10%). \",s_fdef_ISBLANK:'Returns \"true\" if the value is a reference to a blank cell. ',\ns_fdef_ISERR:'Returns \"true\" if the value is of type \"Error\" but not \"NA\". ',s_fdef_ISERROR:'Returns \"true\" if the value is of type \"Error\". ',s_fdef_ISLOGICAL:'Returns \"true\" if the value is of type \"Logical\" (true/false). ',s_fdef_ISNA:'Returns \"true\" if the value is the error type \"NA\". ',s_fdef_ISNONTEXT:'Returns \"true\" if the value is not of type \"Text\". ',s_fdef_ISNUMBER:'Returns \"true\" if the value is of type \"Number\" (including logical values). ',s_fdef_ISTEXT:'Returns \"true\" if the value is of type \"Text\". ',\ns_fdef_LEFT:\"Returns the specified number of characters from the text value. If count is omitted, 1 is assumed. \",s_fdef_LEN:\"Returns the number of characters in the text value. \",s_fdef_LN:\"Returns the natural logarithm of the value. \",s_fdef_LOG:\"Returns the logarithm of the value using the specified base. \",s_fdef_LOG10:\"Returns the base 10 logarithm of the value. \",s_fdef_LOWER:\"Returns the text value with all uppercase characters converted to lowercase. \",s_fdef_MATCH:\"Look for the matching value for the given value in the range and return position (the first is 1) in that range. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match<=value) instead of exact match. If rangelookup is -1, act like 1 but the bracket is match>=value. \",\ns_fdef_MAX:\"Returns the maximum of the numeric values. \",s_fdef_MID:\"Returns the specified number of characters from the text value starting from the specified position. \",s_fdef_MIN:\"Returns the minimum of the numeric values. \",s_fdef_MINUTE:\"Returns the minute portion of a time or date/time value. \",s_fdef_MOD:\"Returns the remainder of the first value divided by the second. \",s_fdef_MONTH:\"Returns the month part of a date value. \",s_fdef_N:\"Returns the value if it is a numeric value otherwise an error. \",\ns_fdef_NA:\"Returns the #N/A error value which propagates through most operations. \",s_fdef_NOT:\"Returns FALSE if value is true, and TRUE if it is false. \",s_fdef_NOW:\"Returns the current date/time. \",s_fdef_NPER:\"Returns the number of periods at which payments invested each period at the given rate with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period) has the given present value. \",s_fdef_NPV:\"Returns the net present value of cash flows (which may be individual values and/or ranges) at the given rate. The flows are positive if income, negative if paid out, and are assumed at the end of each period. \",\ns_fdef_ODD:\"Rounds the value up in magnitude to the nearest odd integer. \",s_fdef_OR:\"True if any argument is true \",s_fdef_PI:\"The value 3.1415926... \",s_fdef_PMT:\"Returns the amount of each payment that must be invested at the given rate for the specified number of periods to have the specified present value, with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). \",s_fdef_POWER:\"Returns the first value raised to the second value power. \",\ns_fdef_PRODUCT:\"Returns the result of multiplying the numeric values. \",s_fdef_PROPER:\"Returns the text value with the first letter of each word converted to uppercase and the others to lowercase. \",s_fdef_PV:\"Returns the present value of the given number of payments each invested at the given rate, with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). \",s_fdef_RADIANS:\"Converts value in degrees into radians. \",s_fdef_RATE:\"Returns the rate at which the given number of payments each invested at the given rate has the specified present value, with optional future value (default 0) and payment type (default 0 = at end of period, 1 = beginning of period). Uses an iterative process that will return #NUM! error if it does not converge. There may be more than one possible solution. Providing the optional guess value may help in certain situations where it does not converge or finds an inappropriate solution (the default guess is 10%). \",\ns_fdef_REPLACE:\"Returns text1 with the specified number of characters starting from the specified position replaced by text2. \",s_fdef_REPT:\"Returns the text repeated the specified number of times. \",s_fdef_RIGHT:\"Returns the specified number of characters from the text value starting from the end. If count is omitted, 1 is assumed. \",s_fdef_ROUND:\"Rounds the value to the specified number of decimal places. If precision is negative, then round to powers of 10. The default precision is 0 (round to integer). \",\ns_fdef_ROWS:\"Returns the number of rows in the range. \",s_fdef_SECOND:\"Returns the second portion of a time or date/time value (truncated to an integer). \",s_fdef_SIN:\"Trigonometric sine function (value is in radians) \",s_fdef_SLN:\"Returns the amount of depreciation at each period of time using the straight-line method. \",s_fdef_SQRT:\"Square root of the value \",s_fdef_STDEV:\"Returns the sample standard deviation of the numeric values. \",s_fdef_STDEVP:\"Returns the standard deviation of the numeric values. \",\ns_fdef_SUBSTITUTE:'Returns text1 with the all occurrences of oldtext replaced by newtext. If \"occurrence\" is present, then only that occurrence is replaced. ',s_fdef_SUM:\"Adds the numeric values. The values to the sum function may be ranges in the form similar to A1:B5. \",s_fdef_SUMIF:'Sums the numeric values of cells in the range that meet the criteria. The criteria may be a value (\"x\", 15, 1+3) or a test (>25). If range2 is present, then range1 is tested and the corresponding range2 value is summed. ',\ns_fdef_SYD:\"Depreciation by Sum of Year's Digits method. \",s_fdef_T:\"Returns the text value or else a null string. \",s_fdef_TAN:\"Trigonometric tangent function (value is in radians) \",s_fdef_TIME:\"Returns the time value given the specified hour, minute, and second. \",s_fdef_TODAY:'Returns the current date (an integer). Note: In this program, day \"1\" is December 31, 1899 and the year 1900 is not a leap year. Some programs use January 1, 1900, as day \"1\" and treat 1900 as a leap year. In both cases, though, dates on or after March 1, 1900, are the same. ',\ns_fdef_TRIM:\"Returns the text value with leading, trailing, and repeated spaces removed. \",s_fdef_TRUE:'Returns the logical value \"true\". ',s_fdef_TRUNC:\"Truncates the value to the specified number of decimal places. If precision is negative, truncate to powers of 10. \",s_fdef_UPPER:\"Returns the text value with all lowercase characters converted to uppercase. \",s_fdef_VALUE:\"Converts the specified text value into a numeric value. Various forms that look like numbers (including digits followed by %, forms that look like dates, etc.) are handled. This may not handle all of the forms accepted by other spreadsheets and may be locale dependent. \",\ns_fdef_VAR:\"Returns the sample variance of the numeric values. \",s_fdef_VARP:\"Returns the variance of the numeric values. \",s_fdef_VLOOKUP:\"Look for the matching value for the given value in the range and return the corresponding value in the cell specified by the column offset. If rangelookup is 1 (the default) and not 0, match if within numeric brackets (match>=value) instead of exact match. \",s_fdef_WEEKDAY:\"Returns the day of week specified by the date value. If type is 1 (the default), Sunday is day and Saturday is day 7. If type is 2, Monday is day 1 and Sunday is day 7. If type is 3, Monday is day 0 and Sunday is day 6. \",\ns_fdef_YEAR:\"Returns the year part of a date value. \",s_fdef_SUMPRODUCT:\"Sums the pairwise products of 2 or more ranges. The ranges must be of equal length.\",s_fdef_CEILING:\"Rounds the given number up to the nearest integer or multiple of significance. Significance is the value to whose multiple of ten the value is to be rounded up (.01, .1, 1, 10, etc.)\",s_fdef_FLOOR:\"Rounds the given number down to the nearest multiple of significance. Significance is the value to whose multiple of ten the number is to be rounded down (.01, .1, 1, 10, etc.)\",\ns_farg_v:\"value\",s_farg_vn:\"value1, value2, ...\",s_farg_xy:\"valueX, valueY\",s_farg_choose:\"index, value1, value2, ...\",s_farg_range:\"range\",s_farg_rangec:\"range, criteria\",s_farg_date:\"year, month, day\",s_farg_dfunc:\"databaserange, fieldname, criteriarange\",s_farg_ddb:\"cost, salvage, lifetime, period, [factor]\",s_farg_find:\"string1, string2, [start]\",s_farg_fv:\"rate, n, payment, [pv, [paytype]]\",s_farg_hlookup:\"value, range, row, [rangelookup]\",s_farg_iffunc:\"logical-expression, true-value, [false-value]\",\ns_farg_index:\"range, rownum, colnum\",s_farg_irr:\"range, [guess]\",s_farg_tc:\"text, count\",s_farg_log:\"value, base\",s_farg_match:\"value, range, [rangelookup]\",s_farg_mid:\"text, start, length\",s_farg_nper:\"rate, payment, pv, [fv, [paytype]]\",s_farg_npv:\"rate, value1, value2, ...\",s_farg_pmt:\"rate, n, pv, [fv, [paytype]]\",s_farg_pv:\"rate, n, payment, [fv, [paytype]]\",s_farg_rate:\"n, payment, pv, [fv, [paytype, [guess]]]\",s_farg_replace:\"text1, start, length, text2\",s_farg_vp:\"value, [precision]\",s_farg_valpre:\"value, precision\",\ns_farg_csl:\"cost, salvage, lifetime\",s_farg_cslp:\"cost, salvage, lifetime, period\",s_farg_subs:\"text1, oldtext, newtext, [occurrence]\",s_farg_sumif:\"range1, criteria, [range2]\",s_farg_hms:\"hour, minute, second\",s_farg_txt:\"text\",s_farg_vlookup:\"value, range, col, [rangelookup]\",s_farg_weekday:\"date, [type]\",s_farg_dt:\"date\",s_farg_rangen:\"range1, range2, ...\",s_farg_vsig:\"value, [significance]\",function_classlist:\"all stat lookup datetime financial test math text\".split(\" \"),s_fclass_all:\"All\",s_fclass_stat:\"Statistics\",\ns_fclass_lookup:\"Lookup\",s_fclass_datetime:\"Date & Time\",s_fclass_financial:\"Financial\",s_fclass_test:\"Test\",s_fclass_math:\"Math\",s_fclass_text:\"Text\",s_loc_to:\"to\",s_loc_tiddler:\"Tiddler\",s_loc_import:\"Import\",s_loc_export:\"Export\",s_loc_XclipboardX:\"[Clipboard]\",s_clipboard_menu_title:\"Import/Export<br>and Clipboard\",s_clipboard_export_error_tiddler_exists:\"Tiddler exists\",s_clipboard_export_error_tiddler_overwrite:\"Do you want to overwrite it ?\",s_clipboard_import_error_tiddler_format:\"Format error: tiddler's format field have incorrect value.\",\ns_loc_save_changes:\"Save changes\",s_notification_tiddler:\"Saved ~SocialCalc sheet\",lastone:null};\nSocialCalc.ConstantsDefaultClasses={defaultComment:\"\",defaultCommentNoGrid:\"\",defaultHighlightTypeCursor:\"\",defaultHighlightTypeRange:\"\",defaultColname:\"\",defaultSelectedColname:\"\",defaultRowname:\"\",defaultSelectedRowname:\"\",defaultUpperLeft:\"\",defaultSkippedCell:\"\",defaultPaneDivider:\"\",cteGriddiv:\"\",defaultInputEcho:{classname:\"\",style:\"filter:alpha(opacity=90);opacity:.9;\"},TCmain:\"\",TCendcap:\"\",TCpaneslider:\"\",TClessbutton:\"\",TCmorebutton:\"\",TCscrollarea:\"\",TCthumb:\"\",TCPStrackingline:\"\",TCTDFSthumbstatus:\"\",\nTDpopupElement:\"\"};SocialCalc.ConstantsDefaultClasses.defaultComment={classname:\"\",style:\"background-image:url(images/sc-commentbg.gif);\"};SocialCalc.ConstantsDefaultClasses.defaultInputEcho=\"\";SocialCalc.ConstantsSetClasses=function(a){var c=SocialCalc.ConstantsDefaultClasses,b=SocialCalc.Constants,d;a=a||\"\";for(d in c)\"string\"==typeof c[d]?(b[d+\"Class\"]=a+(c[d]||d),void 0!==b[d+\"Style\"]&&(b[d+\"Style\"]=\"\")):\"object\"==typeof c[d]&&(b[d+\"Class\"]=a+(c[d].classname||d),b[d+\"Style\"]=c[d].style)};\nSocialCalc.ConstantsSetImagePrefix=function(a){var c=SocialCalc.Constants,b;for(b in c)\"string\"==typeof c[b]&&(c[b]=c[b].replace(c.defaultImagePrefix,a));c.defaultImagePrefix=a};SocialCalc||(SocialCalc={});SocialCalc.Callbacks={expand_wiki:null,expand_markup:function(a,c,b){return SocialCalc.default_expand_markup(a,c,b)},MakePageLink:null,NormalizeSheetName:null};SocialCalc.Cell=function(a){this.coord=a;this.datavalue=\"\";this.datatype=null;this.formula=\"\";this.valuetype=\"b\";this.readonly=!1};\nSocialCalc.CellProperties={coord:1,datavalue:1,datatype:1,formula:1,valuetype:1,errors:1,comment:1,readonly:1,bt:2,br:2,bb:2,bl:2,layout:2,font:2,color:2,bgcolor:2,cellformat:2,nontextvalueformat:2,textvalueformat:2,colspan:2,rowspan:2,cssc:2,csss:2,mod:2,displaystring:3,parseinfo:3,hcolspan:3,hrowspan:3};\nSocialCalc.CellPropertiesTable={bt:\"borderstyle\",br:\"borderstyle\",bb:\"borderstyle\",bl:\"borderstyle\",layout:\"layout\",font:\"font\",color:\"color\",bgcolor:\"color\",cellformat:\"cellformat\",nontextvalueformat:\"valueformat\",textvalueformat:\"valueformat\"};SocialCalc.Sheet=function(){SocialCalc.ResetSheet(this);this.statuscallbackparams=this.statuscallback=null};\nSocialCalc.ResetSheet=function(a,c){a.cells={};a.attribs={lastcol:1,lastrow:1,defaultlayout:0,usermaxcol:0,usermaxrow:0};a.rowattribs={hide:{},height:{}};a.colattribs={width:{},hide:{}};a.names={};a.layouts=[];a.layouthash={};a.fonts=[];a.fonthash={};a.colors=[];a.colorhash={};a.borderstyles=[];a.borderstylehash={};a.cellformats=[];a.cellformathash={};a.valueformats=[];a.valueformathash={};a.copiedfrom=\"\";a.changes=new SocialCalc.UndoStack;a.renderneeded=!1;a.changedrendervalues=!0;a.recalcchangedavalue=\n!1;a.hiddencolrow=\"\";a.sci=new SocialCalc.SheetCommandInfo(a)};SocialCalc.Sheet.prototype.ResetSheet=function(){SocialCalc.ResetSheet(this)};SocialCalc.Sheet.prototype.AddCell=function(a){return this.cells[a.coord]=a};SocialCalc.Sheet.prototype.GetAssuredCell=function(a){return this.cells[a]||this.AddCell(new SocialCalc.Cell(a))};SocialCalc.Sheet.prototype.ParseSheetSave=function(a){SocialCalc.ParseSheetSave(a,this)};\nSocialCalc.Sheet.prototype.CellFromStringParts=function(a,c,b){return SocialCalc.CellFromStringParts(this,a,c,b)};SocialCalc.Sheet.prototype.CreateSheetSave=function(a,c){return SocialCalc.CreateSheetSave(this,a,c)};SocialCalc.Sheet.prototype.CellToString=function(a){return SocialCalc.CellToString(this,a)};SocialCalc.Sheet.prototype.CanonicalizeSheet=function(a){return SocialCalc.CanonicalizeSheet(this,a)};\nSocialCalc.Sheet.prototype.EncodeCellAttributes=function(a){return SocialCalc.EncodeCellAttributes(this,a)};SocialCalc.Sheet.prototype.EncodeSheetAttributes=function(){return SocialCalc.EncodeSheetAttributes(this)};SocialCalc.Sheet.prototype.DecodeCellAttributes=function(a,c,b){return SocialCalc.DecodeCellAttributes(this,a,c,b)};SocialCalc.Sheet.prototype.DecodeSheetAttributes=function(a){return SocialCalc.DecodeSheetAttributes(this,a)};\nSocialCalc.Sheet.prototype.ScheduleSheetCommands=function(a,c){return SocialCalc.ScheduleSheetCommands(this,a,c)};SocialCalc.Sheet.prototype.SheetUndo=function(){return SocialCalc.SheetUndo(this)};SocialCalc.Sheet.prototype.SheetRedo=function(){return SocialCalc.SheetRedo(this)};SocialCalc.Sheet.prototype.CreateAuditString=function(){return SocialCalc.CreateAuditString(this)};SocialCalc.Sheet.prototype.GetStyleNum=function(a,c){return SocialCalc.GetStyleNum(this,a,c)};\nSocialCalc.Sheet.prototype.GetStyleString=function(a,c){return SocialCalc.GetStyleString(this,a,c)};SocialCalc.Sheet.prototype.RecalcSheet=function(){return SocialCalc.RecalcSheet(this)};\nSocialCalc.ParseSheetSave=function(a,c){var b=a.split(/\\r\\n|\\n/),d=[],e,f,g,l,h=SocialCalc.Constants;for(e=0;e<b.length;e++)switch(d=b[e],d=d.split(\":\"),d[0]){case \"cell\":g=c.GetAssuredCell(d[1]);f=2;c.CellFromStringParts(g,d,f);break;case \"col\":l=d[1];for(f=2;g=d[f++];)switch(g){case \"w\":c.colattribs.width[l]=d[f++];break;case \"hide\":c.colattribs.hide[l]=d[f++];break;default:throw h.s_pssUnknownColType+\" '\"+g+\"'\";}break;case \"row\":l=d[1]-0;for(f=2;g=d[f++];)switch(g){case \"h\":c.rowattribs.height[l]=\nd[f++]-0;break;case \"hide\":c.rowattribs.hide[l]=d[f++];break;default:throw h.s_pssUnknownRowType+\" '\"+g+\"'\";}break;case \"sheet\":l=c.attribs;for(f=1;g=d[f++];)switch(g){case \"c\":l.lastcol=d[f++]-0;break;case \"r\":l.lastrow=d[f++]-0;break;case \"w\":l.defaultcolwidth=d[f++]+\"\";break;case \"h\":l.defaultrowheight=d[f++]-0;break;case \"tf\":l.defaulttextformat=d[f++]-0;break;case \"ntf\":l.defaultnontextformat=d[f++]-0;break;case \"layout\":l.defaultlayout=d[f++]-0;break;case \"font\":l.defaultfont=d[f++]-0;break;\ncase \"tvf\":l.defaulttextvalueformat=d[f++]-0;break;case \"ntvf\":l.defaultnontextvalueformat=d[f++]-0;break;case \"color\":l.defaultcolor=d[f++]-0;break;case \"bgcolor\":l.defaultbgcolor=d[f++]-0;break;case \"circularreferencecell\":l.circularreferencecell=d[f++];break;case \"recalc\":l.recalc=d[f++];break;case \"needsrecalc\":l.needsrecalc=d[f++];break;case \"usermaxcol\":l.usermaxcol=d[f++]-0;break;case \"usermaxrow\":l.usermaxrow=d[f++]-0;break;default:f+=1}break;case \"name\":f=SocialCalc.decodeFromSave(d[1]).toUpperCase();\nc.names[f]={desc:SocialCalc.decodeFromSave(d[2])};c.names[f].definition=SocialCalc.decodeFromSave(d[3]);break;case \"layout\":d=b[e].match(/^layout\\:(\\d+)\\:(.+)$/);c.layouts[d[1]-0]=d[2];c.layouthash[d[2]]=d[1]-0;break;case \"font\":c.fonts[d[1]-0]=d[2];c.fonthash[d[2]]=d[1]-0;break;case \"color\":c.colors[d[1]-0]=d[2];c.colorhash[d[2]]=d[1]-0;break;case \"border\":c.borderstyles[d[1]-0]=d[2];c.borderstylehash[d[2]]=d[1]-0;break;case \"cellformat\":f=SocialCalc.decodeFromSave(d[2]);c.cellformats[d[1]-0]=f;\nc.cellformathash[f]=d[1]-0;break;case \"valueformat\":f=SocialCalc.decodeFromSave(d[2]);c.valueformats[d[1]-0]=f;c.valueformathash[f]=d[1]-0;break;case \"version\":break;case \"copiedfrom\":c.copiedfrom=d[1]+\":\"+d[2];break;case \"clipboardrange\":case \"clipboard\":break;case \"\":break;default:throw alert(h.s_pssUnknownLineType+\" '\"+d[0]+\"'\"),h.s_pssUnknownLineType+\" '\"+d[0]+\"'\";}};\nSocialCalc.CellFromStringParts=function(a,c,b,d){for(;a=b[d++];)switch(a){case \"v\":c.datavalue=SocialCalc.decodeFromSave(b[d++])-0;c.datatype=\"v\";c.valuetype=\"n\";break;case \"t\":c.datavalue=SocialCalc.decodeFromSave(b[d++]);c.datatype=\"t\";c.valuetype=SocialCalc.Constants.textdatadefaulttype;break;case \"vt\":a=b[d++];c.valuetype=a;\"n\"==a.charAt(0)?(c.datatype=\"v\",c.datavalue=SocialCalc.decodeFromSave(b[d++])-0):(c.datatype=\"t\",c.datavalue=SocialCalc.decodeFromSave(b[d++]));break;case \"vtf\":a=b[d++];\nc.valuetype=a;\"n\"==a.charAt(0)?c.datavalue=SocialCalc.decodeFromSave(b[d++])-0:c.datavalue=SocialCalc.decodeFromSave(b[d++]);c.formula=SocialCalc.decodeFromSave(b[d++]);c.datatype=\"f\";break;case \"vtc\":a=b[d++];c.valuetype=a;\"n\"==a.charAt(0)?c.datavalue=SocialCalc.decodeFromSave(b[d++])-0:c.datavalue=SocialCalc.decodeFromSave(b[d++]);c.formula=SocialCalc.decodeFromSave(b[d++]);c.datatype=\"c\";break;case \"ro\":ro=SocialCalc.decodeFromSave(b[d++]);c.readonly=\"yes\"==ro.toLowerCase();break;case \"e\":c.errors=\nSocialCalc.decodeFromSave(b[d++]);break;case \"b\":c.bt=b[d++]-0;c.br=b[d++]-0;c.bb=b[d++]-0;c.bl=b[d++]-0;break;case \"l\":c.layout=b[d++]-0;break;case \"f\":c.font=b[d++]-0;break;case \"c\":c.color=b[d++]-0;break;case \"bg\":c.bgcolor=b[d++]-0;break;case \"cf\":c.cellformat=b[d++]-0;break;case \"ntvf\":c.nontextvalueformat=b[d++]-0;break;case \"tvf\":c.textvalueformat=b[d++]-0;break;case \"colspan\":c.colspan=b[d++]-0;break;case \"rowspan\":c.rowspan=b[d++]-0;break;case \"cssc\":c.cssc=b[d++];break;case \"csss\":c.csss=\nSocialCalc.decodeFromSave(b[d++]);break;case \"mod\":d+=1;break;case \"comment\":c.comment=SocialCalc.decodeFromSave(b[d++]);break;default:throw SocialCalc.Constants.s_cfspUnknownCellType+\" '\"+a+\"'\";}};SocialCalc.sheetfields=\"defaultrowheight defaultcolwidth circularreferencecell recalc needsrecalc usermaxcol usermaxrow\".split(\" \");SocialCalc.sheetfieldsshort=\"h w circularreferencecell recalc needsrecalc usermaxcol usermaxrow\".split(\" \");SocialCalc.sheetfieldsxlat=\"defaulttextformat defaultnontextformat defaulttextvalueformat defaultnontextvalueformat defaultcolor defaultbgcolor defaultfont defaultlayout\".split(\" \");\nSocialCalc.sheetfieldsxlatshort=\"tf ntf tvf ntvf color bgcolor font layout\".split(\" \");SocialCalc.sheetfieldsxlatxlt=\"cellformat cellformat valueformat valueformat color color font layout\".split(\" \");\nSocialCalc.CreateSheetSave=function(a,c,b){var d,e,f,g,l,h=[];a.CanonicalizeSheet(b||SocialCalc.Constants.doCanonicalizeSheet);var m=a.xlt;e=c?SocialCalc.ParseRange(c):{cr1:{row:1,col:1},cr2:{row:m.maxrow,col:m.maxcol}};b=e.cr1;e=e.cr2;h.push(\"version:1.5\");for(f=b.row;f<=e.row;f++)for(g=b.col;g<=e.col;g++)if(l=SocialCalc.crToCoord(g,f),d=a.cells[l])d=a.CellToString(d),0!=d.length&&(d=\"cell:\"+l+d,h.push(d));for(g=1;g<=m.maxcol;g++)l=SocialCalc.rcColname(g),a.colattribs.width[l]&&h.push(\"col:\"+l+\":w:\"+\na.colattribs.width[l]),a.colattribs.hide[l]&&h.push(\"col:\"+l+\":hide:\"+a.colattribs.hide[l]);for(f=1;f<=m.maxrow;f++)a.rowattribs.height[f]&&h.push(\"row:\"+f+\":h:\"+a.rowattribs.height[f]),a.rowattribs.hide[f]&&h.push(\"row:\"+f+\":hide:\"+a.rowattribs.hide[f]);d=\"sheet:c:\"+m.maxcol+\":r:\"+m.maxrow;for(f=0;f<SocialCalc.sheetfields.length;f++)(g=SocialCalc.encodeForSave(a.attribs[SocialCalc.sheetfields[f]]))&&(d+=\":\"+SocialCalc.sheetfieldsshort[f]+\":\"+g);for(f=0;f<SocialCalc.sheetfieldsxlat.length;f++)(g=\na.attribs[SocialCalc.sheetfieldsxlat[f]])&&(d+=\":\"+SocialCalc.sheetfieldsxlatshort[f]+\":\"+m[SocialCalc.sheetfieldsxlatxlt[f]+\"sxlat\"][g]);h.push(d);for(f=1;f<m.newborderstyles.length;f++)h.push(\"border:\"+f+\":\"+m.newborderstyles[f]);for(f=1;f<m.newcellformats.length;f++)h.push(\"cellformat:\"+f+\":\"+SocialCalc.encodeForSave(m.newcellformats[f]));for(f=1;f<m.newcolors.length;f++)h.push(\"color:\"+f+\":\"+m.newcolors[f]);for(f=1;f<m.newfonts.length;f++)h.push(\"font:\"+f+\":\"+m.newfonts[f]);for(f=1;f<m.newlayouts.length;f++)h.push(\"layout:\"+\nf+\":\"+m.newlayouts[f]);for(f=1;f<m.newvalueformats.length;f++)h.push(\"valueformat:\"+f+\":\"+SocialCalc.encodeForSave(m.newvalueformats[f]));for(f=0;f<m.namesorder.length;f++)d=m.namesorder[f],h.push(\"name:\"+SocialCalc.encodeForSave(d).toUpperCase()+\":\"+SocialCalc.encodeForSave(a.names[d].desc)+\":\"+SocialCalc.encodeForSave(a.names[d].definition));c&&h.push(\"copiedfrom:\"+SocialCalc.crToCoord(b.col,b.row)+\":\"+SocialCalc.crToCoord(e.col,e.row));h.push(\"\");delete a.xlt;return h.join(\"\\n\")};\nSocialCalc.CellToString=function(a,c){var b,d,e,f,g,l;b=\"\";if(!c)return b;d=SocialCalc.encodeForSave(c.datavalue);\"v\"==c.datatype?b=\"n\"==c.valuetype?b+(\":v:\"+d):b+(\":vt:\"+c.valuetype+\":\"+d):\"t\"==c.datatype?b=c.valuetype==SocialCalc.Constants.textdatadefaulttype?b+(\":t:\"+d):b+(\":vt:\"+c.valuetype+\":\"+d):(e=SocialCalc.encodeForSave(c.formula),\"f\"==c.datatype?b+=\":vtf:\"+c.valuetype+\":\"+d+\":\"+e:\"c\"==c.datatype&&(b+=\":vtc:\"+c.valuetype+\":\"+d+\":\"+e));c.readonly&&(b+=\":ro:yes\");c.errors&&(b+=\":e:\"+SocialCalc.encodeForSave(c.errors));\nd=c.bt||\"\";e=c.br||\"\";f=c.bb||\"\";g=c.bl||\"\";if(a.xlt){l=a.xlt;if(d||e||f||g)b+=\":b:\"+l.borderstylesxlat[d||0]+\":\"+l.borderstylesxlat[e||0]+\":\"+l.borderstylesxlat[f||0]+\":\"+l.borderstylesxlat[g||0];c.layout&&(b+=\":l:\"+l.layoutsxlat[c.layout]);c.font&&(b+=\":f:\"+l.fontsxlat[c.font]);c.color&&(b+=\":c:\"+l.colorsxlat[c.color]);c.bgcolor&&(b+=\":bg:\"+l.colorsxlat[c.bgcolor]);c.cellformat&&(b+=\":cf:\"+l.cellformatsxlat[c.cellformat]);c.textvalueformat&&(b+=\":tvf:\"+l.valueformatsxlat[c.textvalueformat]);c.nontextvalueformat&&\n(b+=\":ntvf:\"+l.valueformatsxlat[c.nontextvalueformat])}else{if(d||e||f||g)b+=\":b:\"+d+\":\"+e+\":\"+f+\":\"+g;c.layout&&(b+=\":l:\"+c.layout);c.font&&(b+=\":f:\"+c.font);c.color&&(b+=\":c:\"+c.color);c.bgcolor&&(b+=\":bg:\"+c.bgcolor);c.cellformat&&(b+=\":cf:\"+c.cellformat);c.textvalueformat&&(b+=\":tvf:\"+c.textvalueformat);c.nontextvalueformat&&(b+=\":ntvf:\"+c.nontextvalueformat)}c.colspan&&(b+=\":colspan:\"+c.colspan);c.rowspan&&(b+=\":rowspan:\"+c.rowspan);c.cssc&&(b+=\":cssc:\"+c.cssc);c.csss&&(b+=\":csss:\"+SocialCalc.encodeForSave(c.csss));\nc.mod&&(b+=\":mod:\"+c.mod);c.comment&&(b+=\":comment:\"+SocialCalc.encodeForSave(c.comment));return b};\nSocialCalc.CanonicalizeSheet=function(a,c){var b,d,e,f,g,l,h,m=0,p=0,r=\"borderstyle cellformat color font layout valueformat\".split(\" \"),q={namesorder:[]};for(g in a.names)q.namesorder.push(g);q.namesorder.sort();if(SocialCalc.Constants.doCanonicalizeSheet&&c){for(f=0;f<r.length;f++)g=r[f],q[g+\"sUsed\"]={};h=q.colorsUsed;l=q.borderstylesUsed;var n=q.fontsUsed,s=q.layoutsUsed,t=q.cellformatsUsed,u=q.valueformatsUsed;for(d in a.cells)e=SocialCalc.coordToCr(d),f=a.cells[d],g=!1,f.valuetype&&\"b\"!=f.valuetype&&\n(g=!0),f.color&&(h[f.color]=1,g=!0),f.bgcolor&&(h[f.bgcolor]=1,g=!0),f.bt&&(l[f.bt]=1,g=!0),f.br&&(l[f.br]=1,g=!0),f.bb&&(l[f.bb]=1,g=!0),f.bl&&(l[f.bl]=1,g=!0),f.layout&&(s[f.layout]=1,g=!0),f.font&&(n[f.font]=1,g=!0),f.cellformat&&(t[f.cellformat]=1,g=!0),f.textvalueformat&&(u[f.textvalueformat]=1,g=!0),f.nontextvalueformat&&(u[f.nontextvalueformat]=1,g=!0),g&&(e.row>m&&(m=e.row),e.col>p&&(p=e.col));for(h=0;h<SocialCalc.sheetfieldsxlat.length;h++)(b=a.attribs[SocialCalc.sheetfieldsxlat[h]])&&(q[SocialCalc.sheetfieldsxlatxlt[h]+\n\"sUsed\"][b]=1);g={height:1,hide:1};for(b in g)for(e in a.rowattribs[b])e>m&&(m=e);g={hide:1,width:1};for(b in g)for(d in a.colattribs[b])e=SocialCalc.coordToCr(d+\"1\"),e.col>p&&(p=e.col);for(f=0;f<r.length;f++){g=r[f];d=[];e=q[g+\"sUsed\"];for(b in e)d.push(a[g+\"s\"][b]);d.sort();d.unshift(\"\");e=[\"\"];l=a[g+\"hash\"];for(h=1;h<d.length;h++)e[l[d[h]]]=h;q[g+\"sxlat\"]=e;q[\"new\"+g+\"s\"]=d}q.maxrow=m||1;q.maxcol=p||1}else{for(f=0;f<r.length;f++){g=r[f];q[\"new\"+g+\"s\"]=a[g+\"s\"];b=a[g+\"s\"].length;e=Array(b);e[0]=\n\"\";for(h=1;h<b;h++)e[h]=h;q[g+\"sxlat\"]=e}q.maxrow=a.attribs.lastrow;q.maxcol=a.attribs.lastcol}a.xlt=q};\nSocialCalc.EncodeCellAttributes=function(a,c){var b,d,e={},f=function(a){e[a]={def:!0,val:\"\"}},g=function(a){for(var b=0;b<a.length;b++)f(a[b])},l=function(a,b){e[a].def=!1;e[a].val=b||\"\"};b=function(a,b){\"*\"!=b&&(e[a].def=!1,e[a].val=b)};var h=a.GetAssuredCell(c);f(\"alignhoriz\");h.cellformat&&l(\"alignhoriz\",a.cellformats[h.cellformat]);g([\"alignvert\",\"padtop\",\"padright\",\"padbottom\",\"padleft\"]);h.layout&&(parts=a.layouts[h.layout].match(/^padding:\\s*(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+);vertical-align:\\s*(\\S+);/),\nb(\"padtop\",parts[1]),b(\"padright\",parts[2]),b(\"padbottom\",parts[3]),b(\"padleft\",parts[4]),b(\"alignvert\",parts[5]));g([\"fontfamily\",\"fontlook\",\"fontsize\"]);h.font&&(parts=a.fonts[h.font].match(/^(\\*|\\S+? \\S+?) (\\S+?) (\\S.*)$/),b(\"fontfamily\",parts[3]),b(\"fontsize\",parts[2]),b(\"fontlook\",parts[1]));f(\"textcolor\");h.color&&l(\"textcolor\",a.colors[h.color]);f(\"bgcolor\");h.bgcolor&&l(\"bgcolor\",a.colors[h.bgcolor]);g([\"numberformat\",\"textformat\"]);h.nontextvalueformat&&l(\"numberformat\",a.valueformats[h.nontextvalueformat]);\nh.textvalueformat&&l(\"textformat\",a.valueformats[h.textvalueformat]);g([\"colspan\",\"rowspan\"]);l(\"colspan\",h.colspan||1);l(\"rowspan\",h.rowspan||1);for(b=0;4>b;b++)d=\"trbl\".charAt(b),d=\"b\"+d,f(d),l(d,h[d]?a.borderstyles[h[d]]:\"\"),f(d+\"thickness\"),f(d+\"style\"),f(d+\"color\"),h[d]&&(parts=a.borderstyles[h[d]].match(/(\\S+)\\s+(\\S+)\\s+(\\S.+)/),l(d+\"thickness\",parts[1]),l(d+\"style\",parts[2]),l(d+\"color\",parts[3]));g([\"cssc\",\"csss\",\"mod\"]);l(\"cssc\",h.cssc||\"\");l(\"csss\",h.csss||\"\");l(\"mod\",h.mod||\"n\");return e};\nSocialCalc.EncodeSheetAttributes=function(a){var c=a.attribs,b={},d=function(a){b[a]={def:!0,val:\"\"}},e=function(a){for(var b=0;b<a.length;b++)d(a[b])},f=function(a,c){b[a].def=!1;b[a].val=c||void 0},g=function(a,c){\"*\"!=c&&(b[a].def=!1,b[a].val=c)};d(\"colwidth\");c.defaultcolwidth&&f(\"colwidth\",c.defaultcolwidth);d(\"rowheight\");c.rowheight&&f(\"rowheight\",c.defaultrowheight);d(\"textalignhoriz\");c.defaulttextformat&&f(\"textalignhoriz\",a.cellformats[c.defaulttextformat]);d(\"numberalignhoriz\");c.defaultnontextformat&&\nf(\"numberalignhoriz\",a.cellformats[c.defaultnontextformat]);e([\"alignvert\",\"padtop\",\"padright\",\"padbottom\",\"padleft\"]);c.defaultlayout&&(parts=a.layouts[c.defaultlayout].match(/^padding:\\s*(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+);vertical-align:\\s*(\\S+);/),g(\"padtop\",parts[1]),g(\"padright\",parts[2]),g(\"padbottom\",parts[3]),g(\"padleft\",parts[4]),g(\"alignvert\",parts[5]));e([\"fontfamily\",\"fontlook\",\"fontsize\"]);c.defaultfont&&(parts=a.fonts[c.defaultfont].match(/^(\\*|\\S+? \\S+?) (\\S+?) (\\S.*)$/),g(\"fontfamily\",\nparts[3]),g(\"fontsize\",parts[2]),g(\"fontlook\",parts[1]));d(\"textcolor\");c.defaultcolor&&f(\"textcolor\",a.colors[c.defaultcolor]);d(\"bgcolor\");c.defaultbgcolor&&f(\"bgcolor\",a.colors[c.defaultbgcolor]);e([\"numberformat\",\"textformat\"]);c.defaultnontextvalueformat&&f(\"numberformat\",a.valueformats[c.defaultnontextvalueformat]);c.defaulttextvalueformat&&f(\"textformat\",a.valueformats[c.defaulttextvalueformat]);d(\"recalc\");c.recalc&&f(\"recalc\",c.recalc);d(\"usermaxcol\");c.usermaxcol&&f(\"usermaxcol\",c.usermaxcol);\nd(\"usermaxrow\");c.usermaxrow&&f(\"usermaxrow\",c.usermaxrow);return b};\nSocialCalc.DecodeCellAttributes=function(a,c,b,d){var e,f=a.GetAssuredCell(c),g=!1,l=function(a,c,d){b[a]&&(a=b[a].def?\"\":b[a].val,a!=(c||\"\")&&m(d+\" \"+a))},h=\"\",m=function(a){h&&(h+=\"\\n\");h+=\"set \"+(d||c)+\" \"+a;g=!0};l(\"alignhoriz\",a.cellformats[f.cellformat],\"cellformat\");e=b.alignvert.def&&b.padtop.def&&b.padright.def&&b.padbottom.def&&b.padleft.def?\"\":\"padding:\"+(b.padtop.def?\"* \":b.padtop.val+\" \")+(b.padright.def?\"* \":b.padright.val+\" \")+(b.padbottom.def?\"* \":b.padbottom.val+\" \")+(b.padleft.def?\n\"*\":b.padleft.val)+\";vertical-align:\"+(b.alignvert.def?\"*;\":b.alignvert.val+\";\");e!=(a.layouts[f.layout]||\"\")&&m(\"layout \"+e);e=b.fontlook.def&&b.fontsize.def&&b.fontfamily.def?\"\":(b.fontlook.def?\"* \":b.fontlook.val+\" \")+(b.fontsize.def?\"* \":b.fontsize.val+\" \")+(b.fontfamily.def?\"*\":b.fontfamily.val);e!=(a.fonts[f.font]||\"\")&&m(\"font \"+e);l(\"textcolor\",a.colors[f.color],\"color\");l(\"bgcolor\",a.colors[f.bgcolor],\"bgcolor\");l(\"numberformat\",a.valueformats[f.nontextvalueformat],\"nontextvalueformat\");\nl(\"textformat\",a.valueformats[f.textvalueformat],\"textvalueformat\");for(i=0;4>i;i++)e=\"trbl\".charAt(i),e=\"b\"+e,l(e,a.borderstyles[f[e]],e);l(\"cssc\",f.cssc,\"cssc\");l(\"csss\",f.csss,\"csss\");b.mod&&(e=b.mod.def?\"n\":b.mod.val,e!=(f.mod||\"n\")&&(\"n\"==e&&(e=\"\"),m(\"mod \"+e)));return g?h:null};\nSocialCalc.DecodeSheetAttributes=function(a,c){var b,d=a.attribs,e=!1,f=function(a,b,d){c[a]&&(a=c[a].def?\"\":c[a].val,a!=(b||\"\")&&l(d+\" \"+a))},g=\"\",l=function(a){g&&(g+=\"\\n\");g+=\"set sheet \"+a;e=!0};f(\"colwidth\",d.defaultcolwidth,\"defaultcolwidth\");f(\"rowheight\",d.defaultrowheight,\"defaultrowheight\");f(\"textalignhoriz\",a.cellformats[d.defaulttextformat],\"defaulttextformat\");f(\"numberalignhoriz\",a.cellformats[d.defaultnontextformat],\"defaultnontextformat\");b=c.alignvert.def&&c.padtop.def&&c.padright.def&&\nc.padbottom.def&&c.padleft.def?\"\":\"padding:\"+(c.padtop.def?\"* \":c.padtop.val+\" \")+(c.padright.def?\"* \":c.padright.val+\" \")+(c.padbottom.def?\"* \":c.padbottom.val+\" \")+(c.padleft.def?\"*\":c.padleft.val)+\";vertical-align:\"+(c.alignvert.def?\"*;\":c.alignvert.val+\";\");b!=(a.layouts[d.defaultlayout]||\"\")&&l(\"defaultlayout \"+b);b=c.fontlook.def&&c.fontsize.def&&c.fontfamily.def?\"\":(c.fontlook.def?\"* \":c.fontlook.val+\" \")+(c.fontsize.def?\"* \":c.fontsize.val+\" \")+(c.fontfamily.def?\"*\":c.fontfamily.val);b!=(a.fonts[d.defaultfont]||\n\"\")&&l(\"defaultfont \"+b);f(\"textcolor\",a.colors[d.defaultcolor],\"defaultcolor\");f(\"bgcolor\",a.colors[d.defaultbgcolor],\"defaultbgcolor\");f(\"numberformat\",a.valueformats[d.defaultnontextvalueformat],\"defaultnontextvalueformat\");f(\"textformat\",a.valueformats[d.defaulttextvalueformat],\"defaulttextvalueformat\");f(\"recalc\",a.attribs.recalc,\"recalc\");f(\"usermaxcol\",a.attribs.usermaxcol,\"usermaxcol\");f(\"usermaxrow\",a.attribs.usermaxrow,\"usermaxrow\");return e?g:null};\nSocialCalc.SheetCommandInfo=function(a){this.sheetobj=a;this.timerobj=this.parseobj=null;this.firsttimerdelay=50;this.timerdelay=1;this.maxtimeslice=100;this.saveundo=!1;this.CmdExtensionCallbacks={};this.cmdextensionbusy=\"\"};\nSocialCalc.ScheduleSheetCommands=function(a,c,b){hack.log('\"'+c+'\"',hack.com,\"SocialCalc.ScheduleSheetCommands\");var d=a.sci;d.parseobj=new SocialCalc.Parse(c);d.saveundo=b;d.sheetobj.statuscallback&&a.statuscallback(d,\"cmdstart\",\"\",d.sheetobj.statuscallbackparams);d.saveundo&&d.sheetobj.changes.PushChange(\"\");d.timerobj=SocialCalc.Callbacks.broadcast?window.setTimeout(function(){var a=d.parseobj;d.parseobj=new SocialCalc.Parse(c);SocialCalc.SheetCommandsTimerRoutine(d);d.parseobj=a},d.firsttimerdelay):\nwindow.setTimeout(function(){SocialCalc.SheetCommandsTimerRoutine(d)},d.firsttimerdelay)};\nSocialCalc.SheetCommandsTimerRoutine=function(a){var c,b=new Date;for(a.timerobj=null;!a.parseobj.EOF();){(c=SocialCalc.ExecuteSheetCommand(a.sheetobj,a.parseobj,a.saveundo))&&alert(c);a.parseobj.NextLine();if(0<a.cmdextensionbusy.length){a.sheetobj.statuscallback&&a.sheetobj.statuscallback(a,\"cmdextension\",a.cmdextensionbusy,a.sheetobj.statuscallbackparams);return}if(new Date-b>=a.maxtimeslice){a.timerobj=window.setTimeout(function(){SocialCalc.SheetCommandsTimerRoutine(a)},a.timerdelay);return}}a.sheetobj.statuscallback&&\na.sheetobj.statuscallback(a,\"cmdend\",\"\",a.sheetobj.statuscallbackparams)};SocialCalc.ResumeFromCmdExtension=function(a){a.cmdextensionbusy=\"\";SocialCalc.SheetCommandsTimerRoutine(a)};\nSocialCalc.ExecuteSheetCommand=function(a,c,b){var d,e,f,g,l,h,m,p,r,q,n,s,t,u,w,v,x,y,z,C,D,G,I,E,H,B,A=a.attribs;B=a.changes;D=SocialCalc.CellProperties;w=SocialCalc.Constants;q=function(){var a=SocialCalc.ParseRange(g);p=a.cr1;r=a.cr2;r.col>A.lastcol&&(A.lastcol=r.col);r.row>A.lastrow&&(A.lastrow=r.row)};m=\"\";d=c.RestOfStringNoMove();b&&a.changes.AddDo(d);e=c.NextToken();TiddlyWiki&&(n=SocialCalc.GetSpreadsheetControlObject(),n.tiddlyWiki.monitorCallback&&n.tiddlyWiki.monitorCallback(d));switch(e){case \"set\":g=\nc.NextToken();l=c.NextToken();f=c.RestOfString();c=\"set \"+g+\" \"+l;if(\"sheet\"==g)switch(a.renderneeded=!0,l){case \"defaultcolwidth\":b&&B.AddUndo(c,A[l]);A[l]=f;break;case \"defaultcolor\":case \"defaultbgcolor\":b&&B.AddUndo(c,a.GetStyleString(\"color\",A[l]));A[l]=a.GetStyleNum(\"color\",f);break;case \"defaultlayout\":b&&B.AddUndo(c,a.GetStyleString(\"layout\",A[l]));A[l]=a.GetStyleNum(\"layout\",f);break;case \"defaultfont\":b&&B.AddUndo(c,a.GetStyleString(\"font\",A[l]));\"* * *\"==f&&(f=\"\");A[l]=a.GetStyleNum(\"font\",\nf);break;case \"defaulttextformat\":case \"defaultnontextformat\":b&&B.AddUndo(c,a.GetStyleString(\"cellformat\",A[l]));A[l]=a.GetStyleNum(\"cellformat\",f);break;case \"defaulttextvalueformat\":case \"defaultnontextvalueformat\":b&&B.AddUndo(c,a.GetStyleString(\"valueformat\",A[l]));A[l]=a.GetStyleNum(\"valueformat\",f);for(h in a.cells)delete a.cells[h].displaystring;break;case \"lastcol\":case \"lastrow\":b&&B.AddUndo(c,A[l]-0);a=f-0;\"number\"==typeof a&&(A[l]=0<a?a:1);break;case \"recalc\":b&&B.AddUndo(c,A[l]);\"off\"==\nf?A.recalc=f:delete A.recalc;break;case \"usermaxcol\":case \"usermaxrow\":b&&B.AddUndo(c,A[l]-0);a=f-0;\"number\"==typeof a&&(A[l]=0<a?a:0);break;default:m=w.s_escUnknownSheetCmd+d}else if(/^[a-z]{1,2}(:[a-z]{1,2})?$/i.test(g))for(a.renderneeded=!0,g=g.toUpperCase(),h=g.indexOf(\":\"),0<=h?(p=SocialCalc.coordToCr(g.substring(0,h)+\"1\"),r=SocialCalc.coordToCr(g.substring(h+1)+\"1\")):r=p=SocialCalc.coordToCr(g+\"1\"),c=p.col;c<=r.col;c++)\"width\"==l?(h=SocialCalc.rcColname(c),b&&B.AddUndo(\"set \"+h+\" width\",a.colattribs.width[h]),\n0<f.length?a.colattribs.width[h]=f:delete a.colattribs.width[h]):\"hide\"==l&&(a.hiddencolrow=\"col\",h=SocialCalc.rcColname(c),b&&B.AddUndo(\"set \"+h+\" hide\",a.colattribs.hide[h]),0<f.length?a.colattribs.hide[h]=f:delete a.colattribs.hide[h]);else if(/^\\d+(:\\d+)?$/i.test(g))for(a.renderneeded=!0,g=g.toUpperCase(),h=g.indexOf(\":\"),0<=h?(p=SocialCalc.coordToCr(\"A\"+g.substring(0,h)),r=SocialCalc.coordToCr(\"A\"+g.substring(h+1))):r=p=SocialCalc.coordToCr(\"A\"+g),q=p.row;q<=r.row;q++)\"height\"==l?(b&&B.AddUndo(\"set \"+\nq+\" height\",a.rowattribs.height[q]),0<f.length?a.rowattribs.height[q]=f:delete a.rowattribs.height[q]):\"hide\"==l&&(a.hiddencolrow=\"row\",b&&B.AddUndo(\"set \"+q+\" hide\",a.rowattribs.hide[q]),0<f.length?a.rowattribs.hide[q]=f:delete a.rowattribs.hide[q]);else if(/^[a-z]{1,2}\\d+(:[a-z]{1,2}\\d+)?$/i.test(g))for(q(),p.row!=r.row||p.col!=r.col||a.celldisplayneeded||a.renderneeded?(a.renderneeded=!0,a.celldisplayneeded=\"\"):a.celldisplayneeded=SocialCalc.crToCoord(p.col,p.row),q=p.row;q<=r.row;q++)for(c=p.col;c<=\nr.col;c++)h=SocialCalc.crToCoord(c,q),n=a.GetAssuredCell(h),n.readonly&&\"readonly\"!=l||(b&&B.AddUndo(\"set \"+h+\" all\",a.CellToString(n)),\"value\"==l?(h=f.indexOf(\" \"),n.datavalue=f.substring(h+1)-0,delete n.errors,n.datatype=\"v\",n.valuetype=f.substring(0,h),delete n.displaystring,delete n.parseinfo,A.needsrecalc=\"yes\"):\"text\"==l?(h=f.indexOf(\" \"),n.datavalue=SocialCalc.decodeFromSave(f.substring(h+1)),delete n.errors,n.datatype=\"t\",n.valuetype=f.substring(0,h),delete n.displaystring,delete n.parseinfo,\nA.needsrecalc=\"yes\"):\"formula\"==l?(n.datavalue=0,delete n.errors,n.datatype=\"f\",n.valuetype=\"e#N/A\",n.formula=f,delete n.displaystring,delete n.parseinfo,A.needsrecalc=\"yes\"):\"constant\"==l?(h=f.indexOf(\" \"),e=f.substring(h+1).indexOf(\" \"),n.datavalue=f.substring(h+1,h+1+e)-0,n.valuetype=f.substring(0,h),\"e\"==n.valuetype.charAt(0)?n.errors=n.valuetype.substring(1):delete n.errors,n.datatype=\"c\",n.formula=f.substring(h+e+2),delete n.displaystring,delete n.parseinfo,A.needsrecalc=\"yes\"):\"empty\"==l?(n.datavalue=\n\"\",delete n.errors,n.datatype=null,n.formula=\"\",n.valuetype=\"b\",delete n.displaystring,delete n.parseinfo,A.needsrecalc=\"yes\"):\"all\"==l?(0<f.length?(n=new SocialCalc.Cell(h),a.CellFromStringParts(n,f.split(\":\"),1),a.cells[h]=n):delete a.cells[h],A.needsrecalc=\"yes\"):/^b[trbl]$/.test(l)?(n[l]=a.GetStyleNum(\"borderstyle\",f),a.renderneeded=!0):\"color\"==l||\"bgcolor\"==l?n[l]=a.GetStyleNum(\"color\",f):\"layout\"==l||\"cellformat\"==l?n[l]=a.GetStyleNum(l,f):\"font\"==l?(\"* * *\"==f&&(f=\"\"),n[l]=a.GetStyleNum(\"font\",\nf)):\"textvalueformat\"==l||\"nontextvalueformat\"==l?(n[l]=a.GetStyleNum(\"valueformat\",f),delete n.displaystring):\"cssc\"==l?(f=f.replace(/[^a-zA-Z0-9\\-]/g,\"\"),n.cssc=f):\"csss\"==l?(f=f.replace(/\\n/g,\"\"),n.csss=f):\"mod\"==l?(f=f.replace(/[^yY]/g,\"\").toLowerCase(),n.mod=f):\"comment\"==l?n.comment=SocialCalc.decodeFromSave(f):\"readonly\"==l?n.readonly=\"yes\"==f.toLowerCase():m=w.s_escUnknownSetCoordCmd+d);break;case \"merge\":a.renderneeded=!0;g=c.NextToken();f=c.RestOfString();q();n=a.GetAssuredCell(p.coord);\nif(n.readonly)break;b&&B.AddUndo(\"unmerge \"+p.coord);r.col>p.col?n.colspan=r.col-p.col+1:delete n.colspan;r.row>p.row?n.rowspan=r.row-p.row+1:delete n.rowspan;a.changedrendervalues=!0;break;case \"unmerge\":a.renderneeded=!0;g=c.NextToken();f=c.RestOfString();q();n=a.GetAssuredCell(p.coord);if(n.readonly)break;b&&B.AddUndo(\"merge \"+p.coord+\":\"+SocialCalc.crToCoord(p.col+(n.colspan||1)-1,p.row+(n.rowspan||1)-1));delete n.colspan;delete n.rowspan;a.changedrendervalues=!0;break;case \"erase\":case \"cut\":a.renderneeded=\n!0;a.changedrendervalues=!0;g=c.NextToken();f=c.RestOfString();q();b&&B.AddUndo(\"changedrendervalues\");\"cut\"==e&&(b&&B.AddUndo(\"loadclipboard\",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard)),SocialCalc.Clipboard.clipboard=SocialCalc.CreateSheetSave(a,g));for(q=p.row;q<=r.row;q++)for(c=p.col;c<=r.col;c++)h=SocialCalc.crToCoord(c,q),n=a.GetAssuredCell(h),n.readonly||(b&&B.AddUndo(\"set \"+h+\" all\",a.CellToString(n)),\"all\"==f?delete a.cells[h]:\"formulas\"==f?(n.datavalue=\"\",n.datatype=null,n.formula=\n\"\",n.valuetype=\"b\",delete n.errors,delete n.displaystring,delete n.parseinfo,n.comment&&delete n.comment):\"formats\"==f&&(l=new SocialCalc.Cell(h),l.datavalue=n.datavalue,l.datatype=n.datatype,l.formula=n.formula,l.valuetype=n.valuetype,n.comment&&(l.comment=n.comment),a.cells[h]=l));A.needsrecalc=\"yes\";break;case \"fillright\":case \"filldown\":a.renderneeded=!0;a.changedrendervalues=!0;b&&B.AddUndo(\"changedrendervalues\");g=c.NextToken();f=c.RestOfString();q();\"fillright\"==e?(e=!0,s=p.row,t=p.col+1):\n(e=!1,s=p.row+1,t=p.col);for(q=s;q<=r.row;q++)for(c=t;c<=r.col;c++)if(h=SocialCalc.crToCoord(c,q),n=a.GetAssuredCell(h),!n.readonly){b&&B.AddUndo(\"set \"+h+\" all\",a.CellToString(n));e?(u=SocialCalc.crToCoord(p.col,q),w=c-t+1,d=0):(u=SocialCalc.crToCoord(c,p.row),w=0,d=q-s+1);v=a.GetAssuredCell(u);if(\"all\"==f||\"formats\"==f)for(l in D)1!=D[l]&&(void 0===typeof v[l]||3==D[l]?delete n[l]:n[l]=v[l]);if(\"all\"==f||\"formulas\"==f)n.datavalue=v.datavalue,n.datatype=v.datatype,n.valuetype=v.valuetype,n.formula=\n\"f\"==n.datatype?SocialCalc.OffsetFormulaCoords(v.formula,w,d):v.formula,delete n.parseinfo,n.errors=v.errors;delete n.displaystring}A.needsrecalc=\"yes\";break;case \"copy\":g=c.NextToken();f=c.RestOfString();b&&B.AddUndo(\"loadclipboard\",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard=SocialCalc.CreateSheetSave(a,g);break;case \"loadclipboard\":f=c.RestOfString();b&&B.AddUndo(\"loadclipboard\",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));TiddlyWiki&&f&&\n(SocialCalc.Clipboard.clipboard=SocialCalc.decodeFromSave(f));break;case \"clearclipboard\":b&&B.AddUndo(\"loadclipboard\",SocialCalc.encodeForSave(SocialCalc.Clipboard.clipboard));SocialCalc.Clipboard.clipboard=\"\";break;case \"paste\":a.renderneeded=!0;a.changedrendervalues=!0;b&&B.AddUndo(\"changedrendervalues\");g=c.NextToken();f=c.RestOfString();q();if(!SocialCalc.Clipboard.clipboard)break;e=new SocialCalc.Sheet;e.ParseSheetSave(SocialCalc.Clipboard.clipboard);x=SocialCalc.ParseRange(e.copiedfrom);w=\np.col-x.cr1.col;d=p.row-x.cr1.row;y=Math.max(r.col-p.col+1,x.cr2.col-x.cr1.col+1);z=Math.max(r.row-p.row+1,x.cr2.row-x.cr1.row+1);p.col+y-1>A.lastcol&&(A.lastcol=p.col+y-1);p.row+z-1>A.lastrow&&(A.lastrow=p.row+z-1);for(q=p.row;q<p.row+z;q++)for(c=p.col;c<p.col+y;c++)if(h=SocialCalc.crToCoord(c,q),n=a.GetAssuredCell(h),!n.readonly){b&&B.AddUndo(\"set \"+h+\" all\",a.CellToString(n));u=SocialCalc.crToCoord(x.cr1.col+(c-p.col)%(x.cr2.col-x.cr1.col+1),x.cr1.row+(q-p.row)%(x.cr2.row-x.cr1.row+1));v=e.GetAssuredCell(u);\nif(\"all\"==f||\"formats\"==f)for(l in D)1!=D[l]&&(void 0===typeof v[l]||3==D[l]?delete n[l]:(h=SocialCalc.CellPropertiesTable[l],n[l]=h&&v[l]?a.GetStyleNum(h,e.GetStyleString(h,v[l])):v[l]));if(\"all\"==f||\"formulas\"==f)n.datavalue=v.datavalue,n.datatype=v.datatype,n.valuetype=v.valuetype,n.formula=\"f\"==n.datatype?SocialCalc.OffsetFormulaCoords(v.formula,w,d):v.formula,delete n.parseinfo,n.errors=v.errors,v.comment?n.comment=v.comment:n.comment&&delete n.comment;delete n.displaystring}A.needsrecalc=\"yes\";\nbreak;case \"sort\":a.renderneeded=!0;a.changedrendervalues=!0;b&&B.AddUndo(\"changedrendervalues\");g=c.NextToken();q();d=[];G=[];for(w=I=0;3>=w;w++)d[w]=c.NextToken(),G[w]=c.NextToken(),d[w]&&(I=w);e={};l=[];E=[];H=[];for(q=p.row;q<=r.row;q++){for(c=p.col;c<=r.col;c++)h=SocialCalc.crToCoord(c,q),(n=a.cells[h])?(e[h]=a.CellToString(n),b&&B.AddUndo(\"set \"+h+\" all\",e[h])):b&&B.AddUndo(\"set \"+h+\" all\");l.push(l.length);E.push([]);H.push([]);slast=H.length-1;for(w=0;w<=I;w++)h=d[w]+q,n=a.GetAssuredCell(h),\nh=n.datavalue,c=n.valuetype.charAt(0)||\"b\",\"t\"==c&&(h=h.toLowerCase()),E[slast].push(h),H[slast].push(c)}b=function(a,b){var c,d,e,f,g;for(c=0;c<=I;c++)if(\"up\"==G[c]?(d=a,e=b):(d=b,e=a),f=H[d][c],tb=H[e][c],\"t\"==f?\"t\"==tb?(d=E[d][c],e=E[e][c],g=d>e?1:d<e?-1:0):\"n\"==tb?g=1:\"b\"==tb?g=\"up\"==G[c]?-1:1:\"e\"==tb&&(g=-1):\"n\"==f?\"t\"==tb?g=-1:\"n\"==tb?(d=E[d][c]-0,e=E[e][c]-0,g=d>e?1:d<e?-1:0):\"b\"==tb?g=\"up\"==G[c]?-1:1:\"e\"==tb&&(g=-1):\"e\"==f?\"e\"==tb?(d=E[d][c],e=E[e][c],g=d>e?1:d<e?-1:0):g=\"b\"==tb?\"up\"==G[c]?\n-1:1:1:\"b\"==f&&(g=\"b\"==tb?0:\"up\"==G[c]?1:-1),g)return g;return a>b?1:a<b?-1:0};l.sort(b);for(q=p.row;q<=r.row;q++)for(b=l[q-p.row],c=p.col;c<=r.col;c++)h=SocialCalc.crToCoord(c,q),B=SocialCalc.crToCoord(c,b+p.row),e[B]?(n=new SocialCalc.Cell(h),a.CellFromStringParts(n,e[B].split(\":\"),1),\"f\"==n.datatype&&(n.formula=SocialCalc.OffsetFormulaCoords(n.formula,0,q-p.row-b)),a.cells[h]=n):delete a.cells[h];A.needsrecalc=\"yes\";break;case \"insertcol\":case \"insertrow\":a.renderneeded=!0;a.changedrendervalues=\n!0;g=c.NextToken();f=c.RestOfString();q();\"insertcol\"==e?(w=1,f=p.col,d=0,t=1,C=s=p.col,n=1,y=A.lastrow,b&&B.AddUndo(\"deletecol \"+p.coord)):(w=0,d=f=1,t=p.row,s=1,C=A.lastcol,y=n=p.row,b&&B.AddUndo(\"deleterow \"+p.coord));for(q=A.lastrow;q>=t;q--)for(c=A.lastcol;c>=f;c--)u=SocialCalc.crToCoord(c,q),h=SocialCalc.crToCoord(c+w,q+d),a.cells[u]?a.cells[h]=a.cells[u]:delete a.cells[h];for(q=n;q<=y;q++)for(c=s;c<=C;c++)for(l in h=SocialCalc.crToCoord(c,q),n=new SocialCalc.Cell(h),a.cells[h]=n,u=SocialCalc.crToCoord(c-\nw,q-d),v=a.GetAssuredCell(u),D)2==D[l]&&(n[l]=v[l]);for(h in a.cells)(n=a.cells[h])&&\"f\"==n.datatype&&(n.formula=SocialCalc.AdjustFormulaCoords(n.formula,p.col,w,p.row,d)),n&&delete n.parseinfo;for(x in a.names)a.names[x]&&(h=a.names[x].definition,c=\"\",\"=\"==h.charAt(0)&&(c=\"=\",h=h.substring(1)),a.names[x].definition=c+SocialCalc.AdjustFormulaCoords(h,p.col,w,p.row,d));for(q=A.lastrow;q>=t&&\"insertrow\"==e;q--)for(l in b=q+d,a.rowattribs)h=a.rowattribs[l][q],a.rowattribs[l][b]!=h&&(h?a.rowattribs[l][b]=\nh:delete a.rowattribs[l][b]);for(c=A.lastcol;c>=f&&\"insertcol\"==e;c--)for(l in q=SocialCalc.rcColname(c),b=SocialCalc.rcColname(c+w),a.colattribs)h=a.colattribs[l][q],a.colattribs[l][b]!=h&&(h?a.colattribs[l][b]=h:delete a.colattribs[l][b]);A.lastcol+=w;A.lastrow+=d;A.needsrecalc=\"yes\";break;case \"deletecol\":case \"deleterow\":a.renderneeded=!0;a.changedrendervalues=!0;g=c.NextToken();f=c.RestOfString();f=A.lastcol;D=A.lastrow;q();\"deletecol\"==e?(w=p.col-r.col-1,d=0,t=r.col+1,s=1):(w=0,d=p.row-r.row-\n1,t=1,s=r.row+1);for(q=s;q<=D-d;q++)for(c=t;c<=f-w;c++)if(h=SocialCalc.crToCoord(c+w,q+d),(n=a.cells[h])&&n.readonly)return m;for(q=s;q<=D-d;q++)for(c=t;c<=f-w;c++)h=SocialCalc.crToCoord(c+w,q+d),b&&(q<s-d||c<t-w)&&((n=a.cells[h])?B.AddUndo(\"set \"+h+\" all\",a.CellToString(n)):B.AddUndo(\"erase \"+h+\" all\")),u=SocialCalc.crToCoord(c,q),(n=a.cells[u])?a.cells[h]=n:delete a.cells[h];for(h in a.cells)if(n=a.cells[h])\"f\"==n.datatype?(q=n.formula,n.formula=SocialCalc.AdjustFormulaCoords(q,p.col,w,p.row,d),\nn.formula!=q&&(delete n.parseinfo,b&&-1!=n.formula.indexOf(\"#REF!\")&&(c=SocialCalc.coordToCr(h),B.AddUndo(\"set \"+SocialCalc.rcColname(c.col-w)+(c.row-d)+\" formula \"+q)))):delete n.parseinfo;for(x in a.names)a.names[x]&&(h=a.names[x].definition,c=\"\",\"=\"==h.charAt(0)&&(c=\"=\",h=h.substring(1)),a.names[x].definition=c+SocialCalc.AdjustFormulaCoords(h,p.col,w,p.row,d));for(q=s;q<=D-d&&\"deleterow\"==e;q++)for(l in c=q+d,a.rowattribs)h=a.rowattribs[l][q],a.rowattribs[l][c]!=h&&(b&&B.AddUndo(\"set \"+c+\" \"+\nl,a.rowattribs[l][c]),h?a.rowattribs[l][c]=h:delete a.rowattribs[l][c]);for(c=t;c<=f-w&&\"deletecol\"==e;c++)for(l in q=SocialCalc.rcColname(c),n=SocialCalc.rcColname(c+w),a.colattribs)h=a.colattribs[l][q],a.colattribs[l][n]!=h&&(b&&B.AddUndo(\"set \"+n+\" \"+l,a.colattribs[l][n]),h?a.colattribs[l][n]=h:delete a.colattribs[l][n]);if(b)if(\"deletecol\"==e)for(c=p.col;c<=r.col;c++)B.AddUndo(\"insertcol \"+SocialCalc.rcColname(c));else for(q=p.row;q<=r.row;q++)B.AddUndo(\"insertrow \"+q);\"deletecol\"==e?p.col<=f&&\n(A.lastcol=r.col<=f?A.lastcol+w:p.col-1):p.row<=D&&(A.lastrow=r.row<=D?A.lastrow+d:p.row-1);A.needsrecalc=\"yes\";break;case \"movepaste\":case \"moveinsert\":var J,F;a.renderneeded=!0;a.changedrendervalues=!0;b&&B.AddUndo(\"changedrendervalues\");g=c.NextToken();n=c.NextToken();f=c.RestOfString();\"\"==f&&(f=\"all\");q();F=SocialCalc.coordToCr(n);w=F.col-p.col;d=F.row-p.row;y=r.col-p.col+1;z=r.row-p.row+1;J={};for(q=p.row;q<=r.row;q++)for(c=p.col;c<=r.col;c++)if(h=SocialCalc.crToCoord(c,q),n=a.GetAssuredCell(h),\n!n.readonly&&(b&&B.AddUndo(\"set \"+h+\" all\",a.CellToString(n)),a.cells[h])){J[h]=new SocialCalc.Cell(h);for(l in D)void 0!==typeof n[l]&&(J[h][l]=n[l],\"all\"==f&&delete n[l],\"formulas\"==f&&(1!=D[l]&&3!=D[l]||delete n[l]),\"formats\"==f&&2==D[l]&&delete n[l]);\"formulas\"==f&&(n.datavalue=\"\",n.datatype=null,n.formula=\"\",n.valuetype=\"b\");\"all\"==f&&delete a.cells[h]}\"moveinsert\"==e&&(s=t=!1,0==d&&(F.col<p.col||F.col>r.col)?F.col<p.col?(C=p.col-F.col,t=-1):(--F.col,w=F.col-r.col,C=F.col-r.col,t=1):0==w&&(F.row<\np.row||F.row>r.row)?F.row<p.row?(C=p.row-F.row,s=-1):(--F.row,d=F.row-r.row,C=F.row-r.row,s=1):e=\"movepaste\");e={};if(s)for(q=0;q<C;q++)for(c=p.col;c<=r.col;c++){0>s?(u=SocialCalc.crToCoord(c,F.row+C-q-1),h=SocialCalc.crToCoord(c,r.row-q)):(u=SocialCalc.crToCoord(c,F.row-C+q+1),h=SocialCalc.crToCoord(c,p.row+q));v=a.GetAssuredCell(u);b&&B.AddUndo(\"set \"+u+\" all\",a.CellToString(v));n=a.GetAssuredCell(h);if(\"all\"==f||\"formats\"==f)for(l in D)1!=D[l]&&(void 0===typeof v[l]||3==D[l]?delete n[l]:n[l]=v[l]);\nif(\"all\"==f||\"formulas\"==f)n.datavalue=v.datavalue,n.datatype=v.datatype,n.valuetype=v.valuetype,n.formula=v.formula,delete n.parseinfo,n.errors=v.errors;delete n.displaystring;e[u]=h}if(t)for(c=0;c<C;c++)for(q=p.row;q<=r.row;q++){0>t?(u=SocialCalc.crToCoord(F.col+C-c-1,q),h=SocialCalc.crToCoord(r.col-c,q)):(u=SocialCalc.crToCoord(F.col-C+c+1,q),h=SocialCalc.crToCoord(p.col+c,q));v=a.GetAssuredCell(u);b&&B.AddUndo(\"set \"+u+\" all\",a.CellToString(v));n=a.GetAssuredCell(h);if(\"all\"==f||\"formats\"==f)for(l in D)1!=\nD[l]&&(void 0===typeof v[l]||3==D[l]?delete n[l]:n[l]=v[l]);if(\"all\"==f||\"formulas\"==f)n.datavalue=v.datavalue,n.datatype=v.datatype,n.valuetype=v.valuetype,n.formula=v.formula,delete n.parseinfo,n.errors=v.errors;delete n.displaystring;e[u]=h}F.col+y-1>A.lastcol&&(A.lastcol=F.col+y-1);F.row+z-1>A.lastrow&&(A.lastrow=F.row+z-1);for(q=p.row;q<p.row+z;q++)for(c=p.col;c<p.col+y;c++)if(h=SocialCalc.crToCoord(c+w,q+d),n=a.GetAssuredCell(h),!n.readonly)if(b&&B.AddUndo(\"set \"+h+\" all\",a.CellToString(n)),\nu=SocialCalc.crToCoord(c,q),e[u]=h,\"all\"!=f||J[u]){(v=J[u])||(v=a.GetAssuredCell(u));if(\"all\"==f||\"formats\"==f)for(l in D)1!=D[l]&&(void 0===typeof v[l]||3==D[l]?delete n[l]:n[l]=v[l]);if(\"all\"==f||\"formulas\"==f)n.datavalue=v.datavalue,n.datatype=v.datatype,n.valuetype=v.valuetype,n.formula=v.formula,delete n.parseinfo,n.errors=v.errors,v.comment?n.comment=v.comment:n.comment&&delete n.comment;delete n.displaystring}else delete a.cells[h];for(h in a.cells)if(n=a.cells[h])\"f\"==n.datatype?(q=n.formula,\nn.formula=SocialCalc.ReplaceFormulaCoords(q,e),n.formula!=q&&(delete n.parseinfo,b&&!e[h]&&B.AddUndo(\"set \"+h+\" formula \"+q))):delete n.parseinfo;for(x in a.names)a.names[x]&&(q=h=a.names[x].definition,c=\"\",\"=\"==h.charAt(0)&&(c=\"=\",h=h.substring(1)),a.names[x].definition=c+SocialCalc.ReplaceFormulaCoords(h,e),b&&a.names[x].definition!=q&&B.AddUndo(\"name define \"+x+\" \"+q));A.needsrecalc=\"yes\";break;case \"name\":g=c.NextToken();x=c.NextToken();f=c.RestOfString();x=x.toUpperCase().replace(/[^A-Z0-9_\\.]/g,\n\"\");if(\"\"==x)break;if(\"define\"==g){if(\"\"==f)break;a.names[x]?(b&&B.AddUndo(\"name define \"+x+\" \"+a.names[x].definition),a.names[x].definition=f):(b&&B.AddUndo(\"name delete \"+x),a.names[x]={definition:f,desc:\"\"})}else\"desc\"==g?a.names[x]&&(b&&B.AddUndo(\"name desc \"+x+\" \"+a.names[x].desc),a.names[x].desc=f):\"delete\"==g&&(b&&(a.names[x].desc&&B.AddUndo(\"name desc \"+x+\" \"+a.names[x].desc),B.AddUndo(\"name define \"+x+\" \"+a.names[x].definition)),delete a.names[x]);A.needsrecalc=\"yes\";break;case \"recalc\":A.needsrecalc=\n\"yes\";a.recalconce=!0;break;case \"redisplay\":a.renderneeded=!0;break;case \"changedrendervalues\":a.changedrendervalues=!0;break;case \"startcmdextension\":x=c.NextToken();(B=a.sci.CmdExtensionCallbacks[x])&&B.func(x,B.data,a,c,b);break;default:m=w.s_escUnknownCmd+d}return m};SocialCalc.SheetUndo=function(a){var c,b=a.changes.TOS(),d=\"\";for(c=b?b.undo.length-1:-1;0<=c;c--)d&&(d+=\"\\n\"),d+=b.undo[c];a.changes.Undo();a.ScheduleSheetCommands(d,!1)};\nSocialCalc.SheetRedo=function(a){var c,b;if(a.changes.Redo()){c=a.changes.TOS();var d=\"\";for(b=0;c&&b<c.command.length;b++)d&&(d+=\"\\n\"),d+=c.command[b];a.ScheduleSheetCommands(d,!1)}else a.ScheduleSheetCommands(\"\",!1)};SocialCalc.CreateAuditString=function(a){var c,b=\"\",d=a.changes.stack,e=a.changes.tos;for(a=0;a<=e;a++)for(c=0;c<d[a].command.length;c++)b+=d[a].command[c]+\"\\n\";return b};\nSocialCalc.GetStyleNum=function(a,c,b){var d;if(0==b.length)return 0;d=a[c+\"hash\"][b];d||(1>a[c+\"s\"].length&&a[c+\"s\"].push(\"\"),d=a[c+\"s\"].push(b)-1,a[c+\"hash\"][b]=d,a.changedrendervalues=!0);return d};SocialCalc.GetStyleString=function(a,c,b){return b?a[c+\"s\"][b]:null};\nSocialCalc.OffsetFormulaCoords=function(a,c,b){var d,e,f,g,l=\"\";d=SocialCalc.Formula;if(!d)return\"Need SocialCalc.Formula\";var h=d.TokenType,m=h.op,p=h.string,h=h.coord,r=d.TokenOpExpansion;a=d.ParseFormulaIntoTokens(a);for(f=0;f<a.length;f++)if(e=a[f].type,d=a[f].text,e==h){g=\"\";e=SocialCalc.coordToCr(d);\"$\"!=d.charAt(0)?e.col+=c:g+=\"$\";g+=SocialCalc.rcColname(e.col);-1==d.indexOf(\"$\",1)?e.row+=b:g+=\"$\";g+=e.row;if(1>e.row||1>e.col)g=\"#REF!\";l+=g}else l=e==p?0<=d.indexOf('\"')?l+('\"'+d.replace(/\"/,\n'\"\"')+'\"'):l+('\"'+d+'\"'):e==m?l+(r[d]||d):l+d;return l};\nSocialCalc.AdjustFormulaCoords=function(a,c,b,d,e){var f,g,l=\"\",h=!1,m=SocialCalc.Formula;if(!m)return\"Need SocialCalc.Formula\";var p=m.TokenType,r=p.op,q=p.string,p=p.coord,m=m.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(g=0;g<parseinfo.length;g++){f=parseinfo[g].type;a=parseinfo[g].text;f==r&&(\"!\"==a?h=!0:\":\"!=a&&(h=!1),a=m[a]||a);if(f==p){cr=SocialCalc.coordToCr(a);(0>b&&cr.col>=c&&cr.col<c-b||0>e&&cr.row>=d&&cr.row<d-e)&&!h&&(cr.col=0,cr.row=0);h||(cr.col>=c&&(cr.col+=\nb),cr.row>=d&&(cr.row+=e));f=\"$\"==a.charAt(0)?\"$\"+SocialCalc.rcColname(cr.col):SocialCalc.rcColname(cr.col);f=-1!=a.indexOf(\"$\",1)?f+(\"$\"+cr.row):f+cr.row;if(1>cr.row||1>cr.col)f=\"#REF!\";a=f}else f==q&&(a=0<=a.indexOf('\"')?'\"'+a.replace(/\"/,'\"\"')+'\"':'\"'+a+'\"');l+=a}return l};\nSocialCalc.ReplaceFormulaCoords=function(a,c){var b,d,e,f=\"\",g=!1;d=SocialCalc.Formula;if(!d)return\"Need SocialCalc.Formula\";var l=d.TokenType,h=l.op,m=l.string,l=l.coord,p=d.TokenOpExpansion;parseinfo=SocialCalc.Formula.ParseFormulaIntoTokens(a);for(e=0;e<parseinfo.length;e++)b=parseinfo[e].type,d=parseinfo[e].text,b==h&&(\"!\"==d?g=!0:\":\"!=d&&(g=!1),d=p[d]||d),b==l?(cr=SocialCalc.coordToCr(d),b=SocialCalc.crToCoord(cr.col,cr.row),c[b]&&!g&&(cr=SocialCalc.coordToCr(c[b]),b=\"$\"==d.charAt(0)?\"$\"+SocialCalc.rcColname(cr.col):\nSocialCalc.rcColname(cr.col),d=b=-1!=d.indexOf(\"$\",1)?b+(\"$\"+cr.row):b+cr.row)):b==m&&(d=0<=d.indexOf('\"')?'\"'+d.replace(/\"/,'\"\"')+'\"':'\"'+d+'\"'),f+=d;return f};SocialCalc.RecalcInfo={sheet:null,currentState:0,state:{idle:0,start_calc:1,order:2,calc:3,start_wait:4,done_wait:5},recalctimer:null,maxtimeslice:100,timeslicedelay:1,starttime:0,queue:[],LoadSheet:function(a){return!1}};\nSocialCalc.RecalcData=function(){this.inrecalc=!0;this.celllist=[];this.celllistitem=0;this.calclist=null;this.calclistlength=0;this.nextcalc=this.lastcalc=this.firstcalc=null;this.count=0;this.checkinfo={}};SocialCalc.RecalcCheckInfo=function(){this.oldcoord=null;this.parsepos=0;this.inrangestart=this.inrange=!1;this.r=this.c=this.r2=this.r1=this.c2=this.c1=this.cr2=this.cr1=null};\nSocialCalc.RecalcSheet=function(a){hack.log(\"\",hack.recalc,\"SocialCalc.RecalcSheet\");var c=SocialCalc.RecalcInfo;c.currentState!=c.state.idle?c.queue.push(a):(delete a.attribs.circularreferencecell,SocialCalc.Formula.FreshnessInfoReset(),SocialCalc.RecalcClearTimeout(),c.sheet=a,c.currentState=c.state.start_calc,c.starttime=new Date,a.statuscallback&&a.statuscallback(c,\"calcstart\",null,a.statuscallbackparams),SocialCalc.RecalcSetTimeout())};\nSocialCalc.RecalcSetTimeout=function(){var a=SocialCalc.RecalcInfo;a.recalctimer=window.setTimeout(SocialCalc.RecalcTimerRoutine,a.timeslicedelay)};SocialCalc.RecalcClearTimeout=function(){var a=SocialCalc.RecalcInfo;a.recalctimer&&(window.clearTimeout(a.recalctimer),a.recalctimer=null)};\nSocialCalc.RecalcLoadedSheet=function(a,c,b,d,e){var f=SocialCalc.RecalcInfo,g=SocialCalc.Formula;a=SocialCalc.Formula.AddSheetToCache(a||g.SheetCache.waitingForLoading,c,d,e);b&&a&&\"off\"!=a.attribs.recalc&&(a.previousrecalcsheet=f.sheet,f.sheet=a,f.currentState=f.state.start_calc);g.SheetCache.waitingForLoading=null;SocialCalc.RecalcSetTimeout()};\nSocialCalc.RecalcTimerRoutine=function(){hack.log(\"\",hack.recalc,\"SocialCalc.RecalcTimerRoutine\");var a,c,b,d=new Date,e=0,f=SocialCalc.Formula;if(!f)return\"Need SocialCalc.Formula\";var g=SocialCalc.RecalcInfo,l=g.sheet;if(l){var h=l.recalcdata,m=function(a,b){l.statuscallback&&l.statuscallback(h,a,b,l.statuscallbackparams)};SocialCalc.RecalcClearTimeout();if(g.currentState==g.state.start_calc){h=new SocialCalc.RecalcData;l.recalcdata=h;for(b in l.cells)b&&h.celllist.push(b);h.calclist={};g.currentState=\ng.state.order}if(g.currentState==g.state.order){for(;h.celllistitem<h.celllist.length;)if(b=h.celllist[h.celllistitem++],SocialCalc.RecalcCheckCell(l,b),new Date-d>=g.maxtimeslice){m(\"calcorder\",{coord:b,total:h.celllist.length,count:h.celllistitem});SocialCalc.RecalcSetTimeout();return}m(\"calccheckdone\",h.calclistlength);h.nextcalc=h.firstcalc;g.currentState=g.state.calc;SocialCalc.RecalcSetTimeout()}else if(g.currentState==g.state.start_wait){g.currentState=g.state.done_wait;if(g.LoadSheet&&(a=\ng.LoadSheet(f.SheetCache.waitingForLoading)))return;SocialCalc.RecalcLoadedSheet(null,\"\",!1)}else if(g.currentState==g.state.done_wait)g.currentState=g.state.calc,SocialCalc.RecalcSetTimeout();else{g.currentState!=g.state.calc&&alert(\"Recalc state error: \"+g.currentState+\". Error in SocialCalc code.\");for(b=l.recalcdata.nextcalc;b;){c=l.cells[b];a=f.evaluate_parsed_formula(c.parseinfo,l,!1);if(f.SheetCache.waitingForLoading){h.nextcalc=b;h.count+=e;m(\"calcloading\",{sheetname:f.SheetCache.waitingForLoading});\ng.currentState=g.state.start_wait;SocialCalc.RecalcSetTimeout();return}if(f.RemoteFunctionInfo.waitingForServer){h.nextcalc=b;h.count+=e;m(\"calcserverfunc\",{funcname:f.RemoteFunctionInfo.waitingForServer,coord:b,total:h.calclistlength,count:h.count});g.currentState=g.state.done_wait;return}if(c.datavalue!=a.value||c.valuetype!=a.type)c.datavalue=a.value,c.valuetype=a.type,delete c.displaystring,l.recalcchangedavalue=!0;a.error&&(c.errors=a.error);e++;b=l.recalcdata.calclist[b];if(new Date-d>=g.maxtimeslice){h.nextcalc=\nb;h.count+=e;m(\"calcstep\",{coord:b,total:h.calclistlength,count:h.count});SocialCalc.RecalcSetTimeout();return}}h.inrecalc=!1;delete l.recalcdata;delete l.attribs.needsrecalc;g.sheet=l.previousrecalcsheet||null;g.sheet?(g.currentState=g.state.calc,SocialCalc.RecalcSetTimeout()):(f.FreshnessInfo.recalc_completed=!0,g.currentState=g.state.idle,m(\"calcfinished\",new Date-g.starttime),0<g.queue.length&&(l=g.queue.shift(),l.RecalcSheet()))}}};\nSocialCalc.RecalcCheckCell=function(a,c){var b,d,e,f,g,l,h,m,p=SocialCalc.Formula;if(!p)return\"Need SocialCalc.Formula\";f=p.TokenType;var r=f.op,q=f.name,n=f.coord,s=a.recalcdata,t=s.checkinfo,u=!1,w=null,v=c;a:for(;v;)if(h=a.cells[v],m=t[v],!h||\"f\"!=h.datatype||m&&\"object\"!=typeof m)v=w,t[v]&&(w=t[v].oldcoord);else{m||(m=new SocialCalc.RecalcCheckInfo,t[v]=m);h.errors&&delete h.errors;h.parseinfo||(h.parseinfo=p.ParseFormulaIntoTokens(h.formula));b=h.parseinfo;for(f=m.parsepos;f<b.length;f++){if(m.inrange){m.inrangestart&&\n(m.cr1.col>m.cr2.col?(m.c1=m.cr2.col,m.c2=m.cr1.col):(m.c1=m.cr1.col,m.c2=m.cr2.col),m.c=m.c1-1,m.cr1.row>m.cr2.row?(m.r1=m.cr2.row,m.r2=m.cr1.row):(m.r1=m.cr1.row,m.r2=m.cr2.row),m.r=m.r1,m.inrangestart=!1);m.c+=1;if(m.c>m.c2){m.r+=1;if(m.r>m.r2){m.inrange=!1;continue}m.c=m.c1}b=SocialCalc.crToCoord(m.c,m.r);m.parsepos=f;m.oldcoord=w;w=v;v=b;if(t[v]&&\"object\"==typeof t[v])return h.errors=SocialCalc.Constants.s_caccCircRef+c,t[c]=!0,s.firstcalc?s.calclist[s.lastcalc]=c:s.firstcalc=c,s.lastcalc=c,\ns.calclistlength++,a.attribs.circularreferencecell=v+\"|\"+w,h.errors;continue a}e=b[f].type;d=b[f].text;e==r&&(\"!\"==d?u=!0:\":\"!=d&&(u=!1));if(e==q)if(g=p.LookupName(a,d),\"range\"==g.type){if(l=g.value.indexOf(\"|\"),-1!=l){m.cr1=SocialCalc.coordToCr(g.value.substring(0,l));d=g.value.indexOf(\"|\",l+1);m.cr2=SocialCalc.coordToCr(g.value.substring(l+1,d));m.inrange=!0;m.inrangestart=!0;--f;continue}}else\"coord\"==g.type&&(e=n,d=g.value);if(e==n)if(2<=f&&b[f-1].type==r&&\":\"==b[f-1].text&&b[f-2].type==n&&!u)m.cr1=\nSocialCalc.coordToCr(b[f-2].text),m.cr2=SocialCalc.coordToCr(d),m.inrange=!0,m.inrangestart=!0,--f;else if(!u){-1!=d.indexOf(\"$\")&&(d=d.replace(/\\$/g,\"\"));m.parsepos=f+1;m.oldcoord=w;w=v;v=d;if(t[v]&&\"object\"==typeof t[v])return h.errors=SocialCalc.Constants.s_caccCircRef+c,t[c]=!0,s.firstcalc?s.calclist[s.lastcalc]=c:s.firstcalc=c,s.lastcalc=c,s.calclistlength++,a.attribs.circularreferencecell=v+\"|\"+w,h.errors;continue a}}u=!1;t[v]=!0;s.firstcalc?s.calclist[s.lastcalc]=v:s.firstcalc=v;s.lastcalc=\nv;s.calclistlength++;v=w;w=t[v]?t[v].oldcoord:null}return\"\"};SocialCalc.Parse=function(a){this.str=a;this.pos=0;this.delimiter=\" \";this.lineEnd=a.indexOf(\"\\n\");0>this.lineEnd&&(this.lineEnd=a.length)};SocialCalc.Parse.prototype.NextToken=function(){if(0>this.pos)return\"\";var a=this.str.indexOf(this.delimiter,this.pos),c=this.pos;a>this.lineEnd&&(a=this.lineEnd);if(0<=a)return this.pos=a+1,this.str.substring(c,a);this.pos=this.lineEnd;return this.str.substring(c,this.lineEnd)};\nSocialCalc.Parse.prototype.RestOfString=function(){var a=this.pos;if(0>this.pos||this.pos>=this.lineEnd)return\"\";this.pos=this.lineEnd;return this.str.substring(a,this.lineEnd)};SocialCalc.Parse.prototype.RestOfStringNoMove=function(){return 0>this.pos||this.pos>=this.lineEnd?\"\":this.str.substring(this.pos,this.lineEnd)};SocialCalc.Parse.prototype.NextLine=function(){this.pos=this.lineEnd+1;this.lineEnd=this.str.indexOf(\"\\n\",this.pos);0>this.lineEnd&&(this.lineEnd=this.str.length)};\nSocialCalc.Parse.prototype.EOF=function(){return 0>this.pos||this.pos>=this.str.length?!0:!1};SocialCalc.UndoStack=function(){this.stack=[];this.tos=-1;this.maxRedo=0;this.maxUndo=50};\nSocialCalc.UndoStack.prototype.PushChange=function(a){for(;0<this.stack.length&&this.stack.length-1>this.tos;)this.stack.pop();this.stack.push({command:[],type:a,undo:[]});this.maxRedo&&this.stack.length>this.maxRedo&&this.stack.shift();this.maxUndo&&this.stack.length>this.maxUndo&&(this.stack[this.stack.length-this.maxUndo-1].undo=[]);this.tos=this.stack.length-1};\nSocialCalc.UndoStack.prototype.AddDo=function(){if(this.stack[this.stack.length-1]){for(var a=[],c=0;c<arguments.length;c++)null!=arguments[c]&&a.push(arguments[c]);a=a.join(\" \");this.stack[this.stack.length-1].command.push(a)}};SocialCalc.UndoStack.prototype.AddUndo=function(){if(this.stack[this.stack.length-1]){for(var a=[],c=0;c<arguments.length;c++)null!=arguments[c]&&a.push(arguments[c]);a=a.join(\" \");this.stack[this.stack.length-1].undo.push(a)}};\nSocialCalc.UndoStack.prototype.TOS=function(){return 0<=this.tos?this.stack[this.tos]:null};SocialCalc.UndoStack.prototype.Undo=function(){return 0<=this.tos&&(!this.maxUndo||this.tos>this.stack.length-this.maxUndo-1)?(--this.tos,!0):!1};SocialCalc.UndoStack.prototype.Redo=function(){return this.tos<this.stack.length-1?(this.tos+=1,!0):!1};SocialCalc.Clipboard={clipboard:\"\"};\nSocialCalc.RenderContext=function(a){var c=a.attribs,b=SocialCalc.Constants;this.sheetobj=a;this.showRCHeaders=this.showGrid=this.hideRowsCols=!1;this.rownamewidth=b.defaultRowNameWidth;this.pixelsPerRow=b.defaultAssumedRowHeight;this.cellskip={};this.coordToCR={};this.colwidth=[];this.totalwidth=0;this.rowpanes=[];this.colpanes=[];this.colunhideleft=[];this.colunhideright=[];this.rowunhidetop=[];this.rowunhidebottom=[];this.maxrow=this.maxcol=0;this.highlights={};this.cursorsuffix=\"\";this.highlightTypes=\n{cursor:{style:b.defaultHighlightTypeCursorStyle,className:b.defaultHighlightTypeCursorClass},range:{style:b.defaultHighlightTypeRangeStyle,className:b.defaultHighlightTypeRangeClass},cursorinsertup:{style:TiddlyWiki.getModifiedCssImageStyle(\"color:#FFF;backgroundColor:#A6A6A6;backgroundRepeat:repeat-x;backgroundPosition:top left;backgroundImage:url(\"+b.defaultImagePrefix+\"cursorinsertup.gif);\"),className:b.defaultHighlightTypeCursorClass},cursorinsertleft:{style:TiddlyWiki.getModifiedCssImageStyle(\"color:#FFF;backgroundColor:#A6A6A6;backgroundRepeat:repeat-y;backgroundPosition:top left;backgroundImage:url(\"+\nb.defaultImagePrefix+\"cursorinsertleft.gif);\"),className:b.defaultHighlightTypeCursorClass},range2:{style:TiddlyWiki.getModifiedCssImageStyle(\"color:#000;backgroundColor:#FFF;backgroundImage:url(\"+b.defaultImagePrefix+\"range2.gif);\"),className:\"\"}};this.cellIDprefix=b.defaultCellIDPrefix;this.defaultlinkstyle=null;this.defaultHTMLlinkstyle={type:\"html\"};this.defaultfontstyle=b.defaultCellFontStyle;this.defaultfontsize=b.defaultCellFontSize;this.defaultfontfamily=b.defaultCellFontFamily;this.defaultlayout=\nb.defaultCellLayout;this.defaultpanedividerwidth=b.defaultPaneDividerWidth;this.defaultpanedividerheight=b.defaultPaneDividerHeight;this.gridCSS=b.defaultGridCSS;this.commentClassName=b.defaultCommentClass;this.commentCSS=b.defaultCommentStyle;this.commentNoGridClassName=b.defaultCommentNoGridClass;this.commentNoGridCSS=b.defaultCommentNoGridStyle;this.readonlyClassName=b.defaultReadonlyClass;this.readonlyCSS=b.defaultReadonlyStyle;this.readonlyNoGridClassName=b.defaultReadonlyNoGridClass;this.readonlyNoGridCSS=\nb.defaultReadonlyNoGridStyle;this.readonlyComment=b.defaultReadonlyComment;this.classnames={colname:b.defaultColnameClass,rowname:b.defaultRownameClass,selectedcolname:b.defaultSelectedColnameClass,selectedrowname:b.defaultSelectedRownameClass,upperleft:b.defaultUpperLeftClass,skippedcell:b.defaultSkippedCellClass,panedivider:b.defaultPaneDividerClass,unhideleft:b.defaultUnhideLeftClass,unhideright:b.defaultUnhideRightClass,unhidetop:b.defaultUnhideTopClass,unhidebottom:b.defaultUnhideBottomClass};\nthis.explicitStyles={colname:b.defaultColnameStyle,rowname:b.defaultRownameStyle,selectedcolname:b.defaultSelectedColnameStyle,selectedrowname:b.defaultSelectedRownameStyle,upperleft:b.defaultUpperLeftStyle,skippedcell:b.defaultSkippedCellStyle,panedivider:b.defaultPaneDividerStyle,unhideleft:b.defaultUnhideLeftStyle,unhideright:b.defaultUnhideRightStyle,unhidetop:b.defaultUnhideTopStyle,unhidebottom:b.defaultUnhideBottomStyle};this.cellskip=null;this.needcellskip=!0;this.fonts=[];this.layouts=[];\nthis.needprecompute=!0;if(c)this.rowpanes[0]={first:1,last:c.lastrow},this.colpanes[0]={first:1,last:c.lastcol},this.usermaxcol=c.usermaxcol,this.usermaxrow=c.usermaxrow;else throw b.s_rcMissingSheet;};SocialCalc.RenderContext.prototype.PrecomputeSheetFontsAndLayouts=function(){SocialCalc.PrecomputeSheetFontsAndLayouts(this)};SocialCalc.RenderContext.prototype.CalculateCellSkipData=function(){SocialCalc.CalculateCellSkipData(this)};SocialCalc.RenderContext.prototype.CalculateColWidthData=function(){SocialCalc.CalculateColWidthData(this)};\nSocialCalc.RenderContext.prototype.SetRowPaneFirstLast=function(a,c,b){this.rowpanes[a]={first:c,last:b}};SocialCalc.RenderContext.prototype.SetColPaneFirstLast=function(a,c,b){this.colpanes[a]={first:c,last:b}};SocialCalc.RenderContext.prototype.CoordInPane=function(a,c,b){return SocialCalc.CoordInPane(this,a,c,b)};SocialCalc.RenderContext.prototype.CellInPane=function(a,c,b,d){return SocialCalc.CellInPane(this,a,c,b,d)};\nSocialCalc.RenderContext.prototype.InitializeTable=function(a){SocialCalc.InitializeTable(this,a)};SocialCalc.RenderContext.prototype.RenderSheet=function(a,c){return SocialCalc.RenderSheet(this,a,c)};SocialCalc.RenderContext.prototype.RenderColGroup=function(){return SocialCalc.RenderColGroup(this)};SocialCalc.RenderContext.prototype.RenderColHeaders=function(){return SocialCalc.RenderColHeaders(this)};SocialCalc.RenderContext.prototype.RenderSizingRow=function(){return SocialCalc.RenderSizingRow(this)};\nSocialCalc.RenderContext.prototype.RenderRow=function(a,c,b){return SocialCalc.RenderRow(this,a,c,b)};SocialCalc.RenderContext.prototype.RenderSpacingRow=function(){return SocialCalc.RenderSpacingRow(this)};SocialCalc.RenderContext.prototype.RenderCell=function(a,c,b,d,e,f){return SocialCalc.RenderCell(this,a,c,b,d,e,f)};\nSocialCalc.PrecomputeSheetFontsAndLayouts=function(a){var c,b,d,e,f,g,l=a.sheetobj;e=l.attribs;e.defaultfont&&(c=l.fonts[e.defaultfont],c=c.replace(/^\\*/,SocialCalc.Constants.defaultCellFontStyle),c=c.replace(/(.+)\\*(.+)/,\"$1\"+SocialCalc.Constants.defaultCellFontSize+\"$2\"),c=c.replace(/\\*$/,SocialCalc.Constants.defaultCellFontFamily),b=c.match(/^(\\S+? \\S+?) (\\S+?) (\\S.*)$/),a.defaultfontstyle=b[1],a.defaultfontsize=b[2],a.defaultfontfamily=b[3]);for(f=1;f<l.fonts.length;f++)b=l.fonts[f],b=b.replace(/^\\*/,\na.defaultfontstyle),b=b.replace(/(.+)\\*(.+)/,\"$1\"+a.defaultfontsize+\"$2\"),b=b.replace(/\\*$/,a.defaultfontfamily),b=b.match(/^(\\S+?) (\\S+?) (\\S+?) (\\S.*)$/),a.fonts[f]={style:b[1],weight:b[2],size:b[3],family:b[4]};c=/^padding:\\s*(\\S+)\\s+(\\S+)\\s+(\\S+)\\s+(\\S+);vertical-align:\\s*(\\S+);/;d=SocialCalc.Constants.defaultCellLayout.match(c);e=e.defaultlayout?l.layouts[e.defaultlayout].match(c):\" * * * * *\".split(\" \");for(f=1;f<l.layouts.length;f++){b=l.layouts[f];b=b.match(c);for(g=1;5>=g;g++)\"*\"==b[g]&&\n(b[g]=\"*\"!=e[g]?e[g]:d[g]);a.layouts[f]=\"padding:\"+b[1]+\" \"+b[2]+\" \"+b[3]+\" \"+b[4]+\";vertical-align:\"+b[5]+\";\"}a.needprecompute=!1};\nSocialCalc.CalculateCellSkipData=function(a){var c,b,d,e,f,g,l,h,m=a.sheetobj;a.maxrow=0;a.maxcol=0;a.cellskip={};for(c=1;c<=m.attribs.lastrow;c++)for(b=1;b<=m.attribs.lastcol;b++)if(d=SocialCalc.crToCoord(b,c),e=m.cells[d],void 0!==e&&!a.cellskip[d]&&(f=e.colspan||1,e=e.rowspan||1,1<f||1<e))for(g=c;g<c+e;g++)for(l=b;l<b+f;l++)h=SocialCalc.crToCoord(l,g),h==d?a.coordToCR[d]={row:c,col:b}:a.cellskip[h]=d,g>a.maxrow&&(maxrow=g),l>a.maxcol&&(maxcol=l);a.needcellskip=!1};\nSocialCalc.CalculateColWidthData=function(a){var c,b,d,e=a.sheetobj;d=a.showRCHeaders?a.rownamewidth-0:0;for(colpane=0;colpane<a.colpanes.length;colpane++)for(c=a.colpanes[colpane].first;c<=a.colpanes[colpane].last;c++)if(b=SocialCalc.rcColname(c),\"yes\"==e.colattribs.hide[b])a.colwidth[c]=0;else{b=e.colattribs.width[b]||e.attribs.defaultcolwidth||SocialCalc.Constants.defaultColWidth;if(\"blank\"==b||\"auto\"==b)b=\"\";a.colwidth[c]=b+\"\";d+=b&&0<b-0?b-0:10}a.totalwidth=d};\nSocialCalc.InitializeTable=function(a,c){c.style.borderCollapse=\"collapse\";c.cellSpacing=\"0\";c.cellPadding=\"0\";c.style.width=a.totalwidth+\"px\"};\nSocialCalc.RenderSheet=function(a,c,b){var d,e,f,g;a.sheetobj.changedrendervalues&&(a.needcellskip=!0,a.needprecompute=!0,a.sheetobj.changedrendervalues=!1);a.needcellskip&&a.CalculateCellSkipData();a.needprecompute&&a.PrecomputeSheetFontsAndLayouts();a.CalculateColWidthData();f=document.createElement(\"table\");a.InitializeTable(f);d=a.RenderColGroup();f.appendChild(d);g=document.createElement(\"tbody\");g.appendChild(a.RenderSizingRow());a.showRCHeaders&&(d=a.RenderColHeaders())&&g.appendChild(d);for(e=\n0;e<a.rowpanes.length;e++){for(rownum=a.rowpanes[e].first;rownum<=a.rowpanes[e].last;rownum++)d=a.RenderRow(rownum,e,b),g.appendChild(d);e<a.rowpanes.length-1&&(d=a.RenderSpacingRow(),g.appendChild(d))}f.appendChild(g);c&&(a=c.parentNode)&&a.replaceChild(f,c);return f};\nSocialCalc.RenderRow=function(a,c,b,d){var e=a.sheetobj,f=document.createElement(\"tr\"),g,l,h;a.showRCHeaders&&(l=document.createElement(\"td\"),a.classnames&&(l.className=a.classnames.rowname),a.explicitStyles&&(l.style.cssText=a.explicitStyles.rowname),l.width=a.rownamewidth,l.style.verticalAlign=\"top\",l.innerHTML=c+\"\",c<a.rowpanes[a.rowpanes.length-1].last&&\"yes\"==e.rowattribs.hide[c+1]&&(h=document.createElement(\"div\"),h.style.position=\"relative\",g=document.createElement(\"div\"),a.classnames&&(g.className=\na.classnames.unhidetop),a.explicitStyles&&(g.style.cssText=a.explicitStyles.unhidetop),a.rowunhidetop[c]=g,h.appendChild(g),l.appendChild(h)),1<c&&\"yes\"==e.rowattribs.hide[c-1]&&(g=document.createElement(\"div\"),a.classnames&&(g.className=a.classnames.unhidebottom),a.explicitStyles&&(g.style.cssText=a.explicitStyles.unhidebottom),a.rowunhidebottom[c]=g,l.appendChild(g)),f.appendChild(l));for(h=0;h<a.colpanes.length;h++){for(g=a.colpanes[h].first;g<=a.colpanes[h].last;g++)(l=a.RenderCell(c,g,b,h,null,\nd))&&f.appendChild(l);h<a.colpanes.length-1&&(l=document.createElement(\"td\"),l.width=a.defaultpanedividerwidth,a.classnames.panedivider&&(l.className=a.classnames.panedivider),a.explicitStyles.panedivider&&(l.style.cssText=a.explicitStyles.panedivider),g=document.createElement(\"div\"),g.style.width=a.defaultpanedividerwidth+\"px\",g.style.overflow=\"hidden\",l.appendChild(g),f.appendChild(l))}\"yes\"==e.rowattribs.hide[c]&&(f.style.cssText+=\";display:none\");return f};\nSocialCalc.RenderSpacingRow=function(a){var c,b,d,e,f=document.createElement(\"tr\");a.showRCHeaders&&(b=document.createElement(\"td\"),b.width=a.rownamewidth,b.height=a.defaultpanedividerheight,a.classnames.panedivider&&(b.className=a.classnames.panedivider),a.explicitStyles.panedivider&&(b.style.cssText=a.explicitStyles.panedivider),f.appendChild(b));for(d=0;d<a.colpanes.length;d++){for(c=a.colpanes[d].first;c<=a.colpanes[d].last;c++){b=document.createElement(\"td\");if(e=a.colwidth[c])b.width=e;b.height=\na.defaultpanedividerheight;a.classnames.panedivider&&(b.className=a.classnames.panedivider);a.explicitStyles.panedivider&&(b.style.cssText=a.explicitStyles.panedivider);b&&f.appendChild(b)}d<a.colpanes.length-1&&(b=document.createElement(\"td\"),b.width=a.defaultpanedividerwidth,b.height=a.defaultpanedividerheight,a.classnames.panedivider&&(b.className=a.classnames.panedivider),a.explicitStyles.panedivider&&(b.style.cssText=a.explicitStyles.panedivider),f.appendChild(b))}return f};\nSocialCalc.RenderColHeaders=function(a){var c=a.sheetobj,b=document.createElement(\"tr\"),d,e;if(!a.showRCHeaders)return null;e=document.createElement(\"td\");a.classnames&&(e.className=a.classnames.upperleft);a.explicitStyles&&(e.style.cssText=a.explicitStyles.upperleft);e.width=a.rownamewidth;b.appendChild(e);for(colpane=0;colpane<a.colpanes.length;colpane++){for(d=a.colpanes[colpane].first;d<=a.colpanes[colpane].last;d++){e=document.createElement(\"td\");a.classnames&&(e.className=a.classnames.colname);\na.explicitStyles&&(e.style.cssText=a.explicitStyles.colname);\"yes\"==c.colattribs.hide[SocialCalc.rcColname(d)]&&(e.style.cssText+=\";display:none\");e.innerHTML=SocialCalc.rcColname(d);if(d<a.colpanes[a.colpanes.length-1].last&&\"yes\"==c.colattribs.hide[SocialCalc.rcColname(d+1)]){var f=document.createElement(\"div\");a.classnames&&(f.className=a.classnames.unhideleft);a.explicitStyles&&(f.style.cssText=a.explicitStyles.unhideleft);a.colunhideleft[d]=f;e.appendChild(f)}1<d&&\"yes\"==c.colattribs.hide[SocialCalc.rcColname(d-\n1)]&&(f=document.createElement(\"div\"),a.classnames&&(f.className=a.classnames.unhideright),a.explicitStyles&&(f.style.cssText=a.explicitStyles.unhideright),a.colunhideright[d]=f,e.appendChild(f));b.appendChild(e)}colpane<a.colpanes.length-1&&(e=document.createElement(\"td\"),e.width=a.defaultpanedividerwidth,a.classnames.panedivider&&(e.className=a.classnames.panedivider),a.explicitStyles.panedivider&&(e.style.cssText=a.explicitStyles.panedivider),b.appendChild(e))}return b};\nSocialCalc.RenderColGroup=function(a){var c,b,d,e,f=a.sheetobj,g=document.createElement(\"colgroup\");a.showRCHeaders&&(d=document.createElement(\"col\"),d.width=a.rownamewidth,g.appendChild(d));for(c=0;c<a.colpanes.length;c++){for(b=a.colpanes[c].first;b<=a.colpanes[c].last;b++)if(d=document.createElement(\"col\"),\"yes\"==f.colattribs.hide[SocialCalc.rcColname(b)])d.width=\"1\";else{if(e=a.colwidth[b])d.width=e;g.appendChild(d)}c<a.colpanes.length-1&&(d=document.createElement(\"col\"),d.width=a.defaultpanedividerwidth,\ng.appendChild(d))}return g};\nSocialCalc.RenderSizingRow=function(a){var c,b,d,e,f=a.sheetobj,g=document.createElement(\"tr\");a.showRCHeaders&&(d=document.createElement(\"td\"),d.style.width=a.rownamewidth+\"px\",d.height=\"1\",g.appendChild(d));for(c=0;c<a.colpanes.length;c++){for(b=a.colpanes[c].first;b<=a.colpanes[c].last;b++){d=document.createElement(\"td\");if(\"yes\"==f.colattribs.hide[SocialCalc.rcColname(b)])d.width=\"1\";else if(e=a.colwidth[b])d.width=e;d.height=\"1\";g.appendChild(d)}c<a.colpanes.length-1&&(d=document.createElement(\"td\"),\nd.width=a.defaultpanedividerwidth,d.height=\"1\",g.appendChild(d))}return g};\nSocialCalc.RenderCell=function(a,c,b,d,e,f,g){var l=a.sheetobj,h,m,p,r,q,n=\"\";c-=0;b-=0;var s=SocialCalc.crToCoord(b,c);if(a.cellskip[s]){if(a.CoordInPane(a.cellskip[s],d,e))return null;f=f?SocialCalc.CreatePseudoElement():document.createElement(\"td\");a.classnames.skippedcell&&(f.className=a.classnames.skippedcell);a.explicitStyles.skippedcell&&(f.style.cssText=a.explicitStyles.skippedcell);f.innerHTML=\" \";return f}f=f?SocialCalc.CreatePseudoElement():document.createElement(\"td\");a.cellIDprefix&&\n(f.id=a.cellIDprefix+s);(p=l.cells[s])||(p=new SocialCalc.Cell(s));q=l.attribs;scc=SocialCalc.Constants;if(1<p.colspan){for(h=m=1;h<p.colspan;h++)\"yes\"!=l.colattribs.hide[SocialCalc.rcColname(b+h)]&&a.CellInPane(c,b+h,d,e)&&m++;f.colSpan=m}if(1<p.rowspan){for(h=m=1;h<p.rowspan;h++)\"yes\"!=l.rowattribs.hide[c+h+\"\"]&&a.CellInPane(c+h,b,d,e)&&m++;f.rowSpan=m}void 0==p.displaystring&&(p.displaystring=SocialCalc.FormatValueForDisplay(l,p.datavalue,s,g||a.defaultlinkstyle));f.innerHTML=p.displaystring;n=\n(h=p.layout||q.defaultlayout)&&\"undefined\"!==typeof a.layouts[h]?n+a.layouts[h]:n+scc.defaultCellLayout;(h=p.font||q.defaultfont)&&\"undefined\"!==typeof a.fonts[h]?(g=a.fonts[h],n+=\"font-style:\"+g.style+\";font-weight:\"+g.weight+\";font-size:\"+g.size+\";font-family:\"+g.family+\";\"):(scc.defaultCellFontSize&&(n+=\"font-size:\"+scc.defaultCellFontSize+\";\"),scc.defaultCellFontFamily&&(n+=\"font-family:\"+scc.defaultCellFontFamily+\";\"));(h=p.color||q.defaultcolor)&&\"undefined\"!==typeof l.colors[h]&&(n+=\"color:\"+\nl.colors[h]+\";\");(h=p.bgcolor||q.defaultbgcolor)&&\"undefined\"!==typeof l.colors[h]&&(n+=\"background-color:\"+l.colors[h]+\";\");(h=p.cellformat)&&\"undefined\"!==typeof l.cellformats[h]?n+=\"text-align:\"+l.cellformats[h]+\";\":(g=p.valuetype.charAt(0),\"t\"==g?(h=q.defaulttextformat)&&\"undefined\"!==typeof l.cellformats[h]&&(n+=\"text-align:\"+l.cellformats[h]+\";\"):\"n\"==g?n=(h=q.defaultnontextformat)&&\"undefined\"!==typeof l.cellformats[h]?n+(\"text-align:\"+l.cellformats[h]+\";\"):n+\"text-align:right;\":n+=\"text-align:left;\");\nif(1<p.colspan||1<p.rowspan)r=l.cells[SocialCalc.crToCoord(b+(p.colspan||1)-1,c+(p.rowspan||1)-1)];(h=p.bt)&&\"undefined\"!==typeof l.borderstyles[h]&&(n+=\"border-top:\"+l.borderstyles[h]+\";\");(h=\"undefined\"!=typeof r?r.br:p.br)&&\"undefined\"!==typeof l.borderstyles[h]?n+=\"border-right:\"+l.borderstyles[h]+\";\":a.showGrid&&(g=a.CellInPane(c,b+(p.colspan||1),d,e)?SocialCalc.crToCoord(b+(p.colspan||1),c):\"nomatch\",a.cellskip[g]&&(g=a.cellskip[g]),l.cells[g]&&l.cells[g].bl||(n+=\"border-right:\"+a.gridCSS));\n(h=\"undefined\"!=typeof r?r.bb:p.bb)&&\"undefined\"!==typeof l.borderstyles[h]?n+=\"border-bottom:\"+l.borderstyles[h]+\";\":a.showGrid&&(g=a.CellInPane(c+(p.rowspan||1),b,d,e)?SocialCalc.crToCoord(b,c+(p.rowspan||1)):\"nomatch\",a.cellskip[g]&&(g=a.cellskip[g]),l.cells[g]&&l.cells[g].bt||(n+=\"border-bottom:\"+a.gridCSS));(h=p.bl)&&\"undefined\"!==typeof l.borderstyles[h]&&(n+=\"border-left:\"+l.borderstyles[h]+\";\");p.comment&&(f.title=p.comment,a.showGrid?(a.commentClassName&&(f.className=(f.className?f.className+\n\" \":\"\")+a.commentClassName),n+=a.commentCSS):(a.commentNoGridClassName&&(f.className=(f.className?f.className+\" \":\"\")+a.commentNoGridClassName),n+=a.commentNoGridCSS));p.readonly&&(p.comment||(f.title=a.readonlyComment),a.showGrid?(a.readonlyClassName&&(f.className=(f.className?f.className+\" \":\"\")+a.readonlyClassName),n+=a.readonlyCSS):(a.readonlyNoGridClassName&&(f.className=(f.className?f.className+\" \":\"\")+a.readonlyNoGridClassName),n+=a.readonlyNoGridCSS));f.style.cssText=n;if(g=a.highlights[s])\"cursor\"==\ng&&(g+=a.cursorsuffix),a.highlightTypes[g].className&&(f.className=(f.className?f.className+\" \":\"\")+a.highlightTypes[g].className),SocialCalc.setStyles(f,a.highlightTypes[g].style);\"yes\"==l.colattribs.hide[SocialCalc.rcColname(b)]&&(f.style.cssText+=\";display:none\");\"yes\"==l.rowattribs.hide[c]&&(f.style.cssText+=\";display:none\");return f};SocialCalc.CoordInPane=function(a,c,b,d){var e=a.coordToCR[c];if(!e||!e.row||!e.col)throw\"Bad coordToCR for \"+c;return a.CellInPane(e.row,e.col,b,d)};\nSocialCalc.CellInPane=function(a,c,b,d,e){var f=a.rowpanes[d];a=a.colpanes[e];if(!f||!a)throw\"CellInPane called with unknown panes \"+d+\"/\"+e;return c<f.first||c>f.last||b<a.first||b>a.last?!1:!0};SocialCalc.CreatePseudoElement=function(){return{style:{cssText:\"\"},innerHTML:\"\",className:\"\"}};SocialCalc.rcColname=function(a){702<a&&(a=702);1>a&&(a=1);var c=(a-1)%26+65;return(a=Math.floor((a-1)/26))?String.fromCharCode(a+64)+String.fromCharCode(c):String.fromCharCode(c)};SocialCalc.letters=\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\".split(\"\");\nSocialCalc.crToCoord=function(a,c){1>a&&(a=1);702<a&&(a=702);1>c&&(c=1);var b=(a-1)%26,d=Math.floor((a-1)/26);return d?SocialCalc.letters[d-1]+SocialCalc.letters[b]+c:SocialCalc.letters[b]+c};SocialCalc.coordToCol={};SocialCalc.coordToRow={};\nSocialCalc.coordToCr=function(a){var c,b,d,e=SocialCalc.coordToRow[a];if(e)return{row:e,col:SocialCalc.coordToCol[a]};for(b=e=c=0;b<a.length;b++)d=a.charCodeAt(b),36!=d&&(57>=d?e=10*e+d-48:97<=d?c=26*c+d-96:65<=d&&(c=26*c+d-64));SocialCalc.coordToCol[a]=c;SocialCalc.coordToRow[a]=e;return{row:e,col:c}};\nSocialCalc.ParseRange=function(a){var c,b,d;a||(a=\"A1:A1\");a=a.toUpperCase();c=a.indexOf(\":\");0<=c?(b=a.substring(0,c),d=SocialCalc.coordToCr(b),d.coord=b,b=a.substring(c+1),c=SocialCalc.coordToCr(b),c.coord=b):(d=SocialCalc.coordToCr(a),d.coord=a,c=SocialCalc.coordToCr(a),c.coord=a);return{cr1:d,cr2:c}};SocialCalc.decodeFromSave=function(a){if(\"string\"!=typeof a||-1==a.indexOf(\"\\\\\"))return a;a=a.replace(/\\\\c/g,\":\");a=a.replace(/\\\\n/g,\"\\n\");return a.replace(/\\\\b/g,\"\\\\\")};\nSocialCalc.decodeFromAjax=function(a){if(\"string\"!=typeof a||-1==a.indexOf(\"\\\\\"))return a;a=a.replace(/\\\\c/g,\":\");a=a.replace(/\\\\n/g,\"\\n\");a=a.replace(/\\\\e/g,\"]]\");return a.replace(/\\\\b/g,\"\\\\\")};SocialCalc.encodeForSave=function(a){if(\"string\"!=typeof a)return a;-1!=a.indexOf(\"\\\\\")&&(a=a.replace(/\\\\/g,\"\\\\b\"));-1!=a.indexOf(\":\")&&(a=a.replace(/:/g,\"\\\\c\"));-1!=a.indexOf(\"\\n\")&&(a=a.replace(/\\n/g,\"\\\\n\"));return a};\nSocialCalc.special_chars=function(a){/[&<>\"]/.test(a)&&(a=a.replace(/&/g,\"&\"),a=a.replace(/</g,\"<\"),a=a.replace(/>/g,\">\"),a=a.replace(/\"/g,\""\"));return a};SocialCalc.Lookup=function(a,c){for(i=0;i<c.length;i++)if(c[i]>a)return 0<i?i-1:null;return c.length-1};\nSocialCalc.setStyles=function(a,c){var b,d,e,f;if(c)for(b=c.split(\";\"),d=0;d<b.length;d++)if(e=b[d].indexOf(\":\"),-1!=e&&(f=b[d].substring(0,e),e=b[d].substring(e+1),f&&e)){if(TiddlyWiki&&\"backgroundImage\"==f){var g=TiddlyWiki.pathImages;if(e.match(\".*?url(.+).*\")){var l=/.*?url[(][\"]?.*?images\\/(.+?)[\"]?[)].*$/.exec(e);!l||2>l.length||(e=(g=TiddlyWiki.getRawTiddlerImage(g+\"/\"+l[1]))?e.replace(/url[(].+?[)]/,\"url(\"+g+\")\"):e)}}a.style[f]=e}};\nSocialCalc.GetViewportInfo=function(){var a={};window.innerWidth?(a.width=window.innerWidth,a.height=window.innerHeight,a.horizontalScroll=window.pageXOffset,a.verticalScroll=window.pageYOffset):document.documentElement&&document.documentElement.clientWidth?(a.width=document.documentElement.clientWidth,a.height=document.documentElement.clientHeight,a.horizontalScroll=document.documentElement.scrollLeft,a.verticalScroll=document.documentElement.scrollTop):document.body.clientWidth&&(a.width=document.body.clientWidth,\na.height=document.body.clientHeight,a.horizontalScroll=document.body.scrollLeft,a.verticalScroll=document.body.scrollTop);return a};SocialCalc.GetElementPosition=function(a){for(var c=0,b=0;a&&\"relative\"!=SocialCalc.GetComputedStyle(a,\"position\");)c+=a.offsetLeft,b+=a.offsetTop,a=a.offsetParent;return{left:c,top:b}};\nSocialCalc.GetElementPositionWithScroll=function(a){a=a.getBoundingClientRect();return{left:a.left,right:a.right,top:a.top,bottom:a.bottom,width:a.width?a.width:a.right-a.left,height:a.height?a.height:a.bottom-a.top}};SocialCalc.GetElementFixedParent=function(a){for(;a&&\"HTML\"!=a.tagName;){if(\"fixed\"==SocialCalc.GetComputedStyle(a,\"position\"))return a;a=a.parentNode}return!1};\nSocialCalc.GetComputedStyle=function(a,c){return(\"undefined\"!=typeof a.currentStyle?a.currentStyle:document.defaultView.getComputedStyle(a,null))[c]};SocialCalc.LookupElement=function(a,c){var b;for(b=0;b<c.length;b++)if(c[b].element==a)return c[b];return null};SocialCalc.AssignID=function(a,c,b){a.idPrefix&&(c.id=a.idPrefix+b)};\nSocialCalc.GetCellContents=function(a,c){var b=\"\",d=a.cells[c];if(d)switch(d.datatype){case \"v\":b=d.datavalue+\"\";break;case \"t\":b=\"'\"+d.datavalue;break;case \"f\":b=\"=\"+d.formula;break;case \"c\":b=d.formula}return b};\nSocialCalc.FormatValueForDisplay=function(a,c,b,d){var e,f=a.attribs,g=a.cells[b];g||(g=new SocialCalc.Cell(b));b=g.valuetype||\"\";e=b.substring(1);b=b.charAt(0);if(g.errors||\"e\"==b)return c=g.errors||e||\"Error in cell\";if(\"t\"==b){b=a.valueformats[g.textvalueformat-0]||a.valueformats[f.defaulttextvalueformat-0]||\"\";if(\"formula\"==b)return c=\"f\"==g.datatype?SocialCalc.special_chars(\"=\"+g.formula)||\" \":\"c\"==g.datatype?SocialCalc.special_chars(\"'\"+g.formula)||\" \":SocialCalc.special_chars(\"'\"+\nc)||\" \";c=SocialCalc.format_text_for_display(c,g.valuetype,b,a,d,g.nontextvalueformat)}else if(\"n\"==b){b=g.nontextvalueformat;if(null==b||\"\"==b)b=f.defaultnontextvalueformat;b=a.valueformats[b-0];if(null==b||\"none\"==b)b=\"\";if(\"formula\"==b)return c=\"f\"==g.datatype?SocialCalc.special_chars(\"=\"+g.formula)||\" \":\"c\"==g.datatype?SocialCalc.special_chars(\"'\"+g.formula)||\" \":SocialCalc.special_chars(\"'\"+c)||\" \";if(\"forcetext\"==b)return c=\"f\"==g.datatype?SocialCalc.special_chars(\"=\"+g.formula)||\n\" \":\"c\"==g.datatype?SocialCalc.special_chars(g.formula)||\" \":SocialCalc.special_chars(c)||\" \";c=SocialCalc.format_number_for_display(c,g.valuetype,b)}else c=\" \";return c};\nSocialCalc.format_text_for_display=function(a,c,b,d,e,f){var g,l,h;g=c.substring(1);h=a;if(\"none\"==b||null==b)b=\"\";/^(text-|custom|hidden)/.test(b)||(b=\"\");if(\"\"==b||\"General\"==b){\"h\"==g&&(b=\"text-html\");if(\"w\"==g||\"r\"==g)b=\"text-wiki\";\"l\"==g&&(b=\"text-link\");g||(b=\"text-plain\")}\"text-html\"!=b&&(SocialCalc.Callbacks.expand_wiki&&/^text-wiki/.test(b)?h=SocialCalc.Callbacks.expand_wiki(h,d,e,b):\"text-wiki\"==b?h=SocialCalc.Callbacks.expand_markup&&SocialCalc.Callbacks.expand_markup(h,d,e)||SocialCalc.special_chars(\"wiki-text:\"+\nh):\"text-url\"==b?(a=SocialCalc.special_chars(h),c=encodeURI(h),h='<a href=\"'+c+'\">'+a+\"</a>\"):\"text-link\"==b?h=SocialCalc.expand_text_link(h,d,e,b):\"text-image\"==b?(c=encodeURI(h),h='<img src=\"'+c+'\">'):\"text-custom:\"==b.substring(0,12)?(a=SocialCalc.special_chars(h),a=a.replace(/ /g,\" \"),a=a.replace(/\\n/g,\"<br>\"),c=encodeURI(h),l={},l.r=h,l.s=a,l.u=c,h=b.substring(12),h=h.replace(/@(r|s|u)/g,function(a,b){return l[b]})):\"custom\"==b.substring(0,6)?(h=SocialCalc.special_chars(h),h=h.replace(/ /g,\n\" \"),h=h.replace(/\\n/g,\"<br>\"),h+=\" (custom format)\"):\"hidden\"==b?h=\" \":null!=f&&\"\"!=f&&\"none\"!=d.valueformats[f-0]&&\"\"!=d.valueformats[f-0]?(b=d.valueformats[f],h=SocialCalc.format_number_for_display(a,c,b)):(h=SocialCalc.special_chars(h),h=h.replace(/ /g,\" \"),h=h.replace(/\\n/g,\"<br>\")));return h};\nSocialCalc.format_number_for_display=function(a,c,b){var d,e=SocialCalc.Constants;d=a-0;c=c.substring(1);if(\"Auto\"==b||\"\"==b)b=\"%\"==c?e.defaultFormatp:\"$\"==c?e.defaultFormatc:\"dt\"==c?e.defaultFormatdt:\"d\"==c?e.defaultFormatd:\"t\"==c?e.defaultFormatt:\"l\"==c?\"logical\":\"General\";return\"logical\"==b?d?e.defaultDisplayTRUE:e.defaultDisplayFALSE:\"hidden\"==b?\" \":SocialCalc.FormatNumber.formatNumberWithFormat(a,b,\"\")};\nSocialCalc.DetermineValueType=function(a){var c=a+\"\",b=\"t\",d,e;d=c.replace(/^\\s+/,\"\");d=d.replace(/\\s+$/,\"\");0==c.length?b=\"\":c.match(/^\\s+$/)||(d.match(/^[-+]?\\d*(?:\\.)?\\d*(?:[eE][-+]?\\d+)?$/)?(c=d-0,isNaN(c)?c=a+\"\":b=\"n\"):d.match(/^[-+]?\\d*(?:\\.)?\\d*\\s*%$/)?(c=(d.slice(0,-1)-0)/100,b=\"n%\"):d.match(/^[-+]?\\$\\s*\\d*(?:\\.)?\\d*\\s*$/)&&d.match(/\\d/)?(c=d.replace(/\\$/,\"\")-0,b=\"n$\"):d.match(/^[-+]?(\\d*,\\d*)+(?:\\.)?\\d*$/)?(c=d.replace(/,/g,\"\")-0,b=\"n\"):d.match(/^[-+]?(\\d*,\\d*)+(?:\\.)?\\d*\\s*%$/)?(c=(d.replace(/[%,]/g,\n\"\")-0)/100,b=\"n%\"):d.match(/^[-+]?\\$\\s*(\\d*,\\d*)+(?:\\.)?\\d*$/)&&d.match(/\\d/)?(c=d.replace(/[\\$,]/g,\"\")-0,b=\"n$\"):(a=c.match(/^(\\d{1,2})[\\/\\-](\\d{1,2})[\\/\\-](\\d{1,4})\\s*$/))?(c=a[3]-0,c=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(1E3>c?c+2E3:c,a[1]-0,a[2]-0)-2415019,b=\"nd\"):(a=c.match(/^(\\d{4})[\\/\\-](\\d{1,2})[\\/\\-](\\d{1,2})\\s*$/))?(c=a[1]-0,c=1E3>c?c+2E3:c,c=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(c,a[2]-0,a[3]-0)-2415019,b=\"nd\"):(a=c.match(/^(\\d{1,2}):(\\d{1,2})\\s*$/))?\n(d=a[1]-0,e=a[2]-0,24>d&&60>e&&(c=d/24+e/1440,b=\"nt\")):(a=c.match(/^(\\d{1,2}):(\\d{1,2}):(\\d{1,2})\\s*$/))?(d=a[1]-0,e=a[2]-0,a=a[3]-0,24>d&&60>e&&60>a&&(c=d/24+e/1440+a/86400,b=\"nt\")):(a=c.match(/^\\s*([-+]?\\d+) (\\d+)\\/(\\d+)\\s*$/))?(e=a[1]-0,d=a[2]-0,(a=a[3]-0)&&0<a&&(c=e+(0>e?-d/a:d/a),b=\"n\")):(a=SocialCalc.InputConstants[c.toUpperCase()])?(d=a.indexOf(\",\"),c=a.substring(0,d)-0,b=a.substring(d+1)):7<d.length&&\"http://\"==d.substring(0,7).toLowerCase()?(c=d,b=\"tl\"):d.match(/<([A-Z][A-Z0-9]*)\\b[^>]*>[\\s\\S]*?<\\/\\1>/i)&&\n(c=d,b=\"th\"));return{value:c,type:b}};SocialCalc.InputConstants={TRUE:\"1,nl\",FALSE:\"0,nl\",\"#N/A\":\"0,e#N/A\",\"#NULL!\":\"0,e#NULL!\",\"#NUM!\":\"0,e#NUM!\",\"#DIV/0!\":\"0,e#DIV/0!\",\"#VALUE!\":\"0,e#VALUE!\",\"#REF!\":\"0,e#REF!\",\"#NAME?\":\"0,e#NAME?\"};SocialCalc.default_expand_markup=function(a,c,b){a=SocialCalc.special_chars(a);a=a.replace(/ /g,\" \");return a=a.replace(/\\n/g,\"<br>\")};\nSocialCalc.expand_text_link=function(a,c,b,d){var e;e=SocialCalc.Constants;var f=\"\";c=SocialCalc.ParseCellLinkText(a+\"\");hack.log(\"desc=\"+c.desc+\", url=\"+c.url+\", pagename=\"+c.pagename,hack.url,\"SocialCalc.expand_text_link\");e=c.desc?SocialCalc.special_chars(c.desc):c.pagename?e.defaultPageLinkFormatString:e.defaultLinkFormatString;7<a.length&&\"http://\"==a.substring(0,7).toLowerCase()&&\">\"!=a.charAt(a.length-1)&&(e=e.substring(7));a=c.newwin||!b?' target=\"_blank\"':\"\";c.pagename?SocialCalc.Callbacks.MakePageLink&&\n(f=SocialCalc.Callbacks.MakePageLink(c.pagename,c.workspacename,b,d)):f=encodeURI(c.url);b='<a href=\"'+f+'\"'+a+\">\"+e+\"</a>\";TiddlyWiki&&(d=SocialCalc.GetSpreadsheetControlObject(),a=null,c.pagename||c.url.match(/^tw:/))&&(c.desc&&(e=SocialCalc.special_chars(c.desc)),c.pagename?(a=c.pagename,c.desc||(e=c.pagename)):(a=c.url.replace(/^tw:/,\"\"),c.desc||(e=a)),a=d.tiddlyWiki.resolvePath(a),b='<a href=\"javascript:void(0);\" title=\"'+a+'\" onclick=\"TiddlyWiki.navigateToTiddler(\\''+a+\"');\\\">\"+e+\"</a>\");hack.log(\"html = \"+\nb,hack.url,\"SocialCalc.expand_text_link\");return b};\nSocialCalc.ParseCellLinkText=function(a){var c={url:\"\",desc:\"\",newwin:!1,pagename:\"\",workspace:\"\"},b=!1,d=a.length-1,e=0,f=a.lastIndexOf(\"<\"),g=a.lastIndexOf(\"[\"),l=a.lastIndexOf(\"{\"),h=-1;\">\"==a.charAt(d)&&-1!=f||\"]\"==a.charAt(d)&&-1!=g||!(\"}\"!=a.charAt(d)||\"]\"!=a.charAt(d-1)||-1==l||-1==g||g<l)?(\">\"==a.charAt(d)?(h=f-1,0<f&&\"<\"==a.charAt(h)&&\">\"==a.charAt(d-1)&&(h--,d--,c.newwin=!0)):\"]\"==a.charAt(d)?(h=g-1,b=!0,0<g&&\"[\"==a.charAt(h)&&\"]\"==a.charAt(d-1)&&(h--,d--,c.newwin=!0)):\"}\"==a.charAt(d)&&\n(h=l-1,b=!0,wsend=g,d--,0<g&&\"[\"==a.charAt(g-1)&&\"]\"==a.charAt(d-1)&&(wsend=g-1,d--,c.newwin=!0),\" \"==a.charAt(wsend-1)&&wsend--,c.workspace=a.substring(l+1,wsend)||\"\"),\" \"==a.charAt(h)&&h--,'\"'==a.charAt(e)&&'\"'==a.charAt(h)&&(e++,h--)):(d++,h=d);b?c.pagename=a.substring(g+1,d)||\"\":c.url=a.substring(f+1,d)||\"\";h>=e&&(c.desc=a.substring(e,h+1));return c};\nSocialCalc.ConvertSaveToOtherFormat=function(a,c,b){var d,e,f,g;e=\"\";if(\"scsave\"==c)return a;if(\"\"==a)return\"\";d=new SocialCalc.Sheet;d.ParseSheetSave(a);if(b)throw\"SocialCalc.ConvertSaveToOtherFormat: Not doing recalc.\";a=d.copiedfrom?SocialCalc.ParseRange(d.copiedfrom):{cr1:{row:1,col:1},cr2:{row:d.attribs.lastrow,col:d.attribs.lastcol}};if(\"html\"==c)return e=new SocialCalc.RenderContext(d),d.copiedfrom&&(e.rowpanes[0]={first:a.cr1.row,last:a.cr2.row},e.colpanes[0]={first:a.cr1.col,last:a.cr2.col}),\nc=document.createElement(\"div\"),a=e.RenderSheet(null,e.defaultHTMLlinkstyle),c.appendChild(a),delete e,delete d,e=c.innerHTML,delete a,delete c,e;for(b=a.cr1.row;b<=a.cr2.row;b++){for(f=a.cr1.col;f<=a.cr2.col;f++)g=SocialCalc.crToCoord(f,b),g=d.GetAssuredCell(g),g=g.errors?g.errors:g.datavalue+\"\",\"csv\"==c?(-1!=g.indexOf('\"')&&(g=g.replace(/\"/g,'\"\"')),/[, \\n\"]/.test(g)&&(g='\"'+g+'\"'),f>a.cr1.col&&(g=\",\"+g)):\"tab\"==c&&(-1!=g.indexOf(\"\\n\")&&(-1!=g.indexOf('\"')&&(g=g.replace(/\"/g,'\"\"')),g='\"'+g+'\"'),\nf>a.cr1.col&&(g=\"\\t\"+g)),e+=g;e+=\"\\n\"}return e};\nSocialCalc.ConvertOtherFormatToSave=function(a,c){var b,d,e,f,g,l,h,m,p,r,q,n,s=\"\",t=function(){r++;r>n&&(n=r);q=SocialCalc.crToCoord(r,p);SocialCalc.SetConvertedCell(b,q,g);g=\"\"};if(\"scsave\"==c)return a;b=new SocialCalc.Sheet;d=a.split(/\\r\\n|\\n/);n=0;if(\"csv\"==c){p=0;l=!1;for(e=0;e<d.length&&(e!=d.length-1||\"\"!=d[e]);e++)for(l?g+=\"\\n\":(g=\"\",p++,r=0),f=d[e],h=0;h<f.length;h++)m=f.charAt(h),'\"'==m?l?h<f.length-1&&'\"'==f.charAt(h+1)?(h++,g+='\"'):(l=!1,h==f.length-1&&t()):l=!0:(\",\"!=m||l?g+=m:t(),h!=\nf.length-1||l||t());0<n&&(b.attribs.lastrow=p,b.attribs.lastcol=n,s=b.CreateSheetSave(\"A1:\"+SocialCalc.crToCoord(n,p)))}if(\"tab\"==c){p=0;l=!1;for(e=0;e<d.length&&(e!=d.length-1||\"\"!=d[e]);e++)for(l?g+=\"\\n\":(g=\"\",p++,r=0),f=d[e],h=0;h<f.length;h++){m=f.charAt(h);if('\"'==m){if(l){h<f.length-1?'\"'==f.charAt(h+1)?(h++,g+='\"'):\"\\t\"==f.charAt(h+1)&&(h++,l=!1,t()):(l=!1,t());continue}if(\"\"==g){l=!0;continue}}\"\\t\"!=m||l?g+=m:t();h!=f.length-1||l||t()}0<n&&(b.attribs.lastrow=p,b.attribs.lastcol=n,s=b.CreateSheetSave(\"A1:\"+\nSocialCalc.crToCoord(n,p)))}return s};SocialCalc.SetConvertedCell=function(a,c,b){a=a.GetAssuredCell(c);c=SocialCalc.DetermineValueType(b);\"n\"==c.type&&c.value==b?(a.datatype=\"v\",a.valuetype=\"n\",a.datavalue=c.value):\"t\"==c.type.charAt(0)?(a.datatype=\"t\",a.valuetype=c.type,a.datavalue=c.value):(a.datatype=\"c\",a.valuetype=c.type,a.datavalue=c.value,a.formula=b)};SocialCalc||(SocialCalc={});\nSocialCalc.TableEditor=function(a){var c=SocialCalc.Constants;this.context=a;this.fullgrid=this.toplevel=null;this.noEdit=!1;this.timeout=this.cellhandles=this.logo=this.horizontaltablecontrol=this.verticaltablecontrol=this.inputEcho=this.inputBox=this.tableheight=this.height=this.tablewidth=this.width=null;this.ensureecell=this.busy=!1;this.deferredCommands=[];this.lastvisiblecol=this.lastnonscrollingcol=this.firstscrollingcolleft=this.firstscrollingcol=this.lastvisiblerow=this.lastnonscrollingrow=\nthis.firstscrollingrowtop=this.firstscrollingrow=this.headposition=this.gridposition=null;this.rowpositions=[];this.colpositions=[];this.rowheight=[];this.colwidth=[];this.ecell=null;this.state=\"start\";this.workingvalues={};this.imageprefix=c.defaultImagePrefix;this.idPrefix=c.defaultTableEditorIDPrefix;this.pageUpDnAmount=c.defaultPageUpDnAmount;this.recalcFunction=function(a){if(a.context.sheetobj.RecalcSheet)a.context.sheetobj.RecalcSheet(SocialCalc.EditorSheetStatusCallback,a);else return null};\nthis.ctrlkeyFunction=function(a,c){var e,f,g,l;switch(c){case \"[ctrl-c]\":case \"[ctrl-x]\":e=a.pasteTextarea;e.value=\"\";if(f=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col))f=SocialCalc.GetElementPosition(f.element),e.style.left=f.left-1+\"px\",e.style.top=f.top-1+\"px\";l=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom):a.ecell.coord;f=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.CreateSheetSave(a.context.sheetobj,l),\"tab\");\ng=\"[ctrl-c]\"==c||a.noEdit||a.ECellReadonly()?\"copy \"+l+\" formulas\":\"cut \"+l+\" formulas\";a.EditorScheduleSheetCommands(g,!0,!1);e.style.display=\"block\";e.value=f;e.focus();e.select();window.setTimeout(function(){var c=a.pasteTextarea;c.blur();c.style.display=\"none\";SocialCalc.KeyboardFocus()},200);break;case \"[ctrl-v]\":if(a.noEdit||a.ECellReadonly())break;e=a.pasteTextarea;e.value=\"\";if(f=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col))f=SocialCalc.GetElementPosition(f.element),e.style.left=\nf.left-1+\"px\",e.style.top=f.top-1+\"px\";e.style.display=\"block\";e.value=\"\";e.focus();window.setTimeout(function(){var c=a.pasteTextarea,d=c.value;c.blur();c.style.display=\"none\";var c=\"\",e=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,\"tab\"),d=d.replace(/\\r\\n/g,\"\\n\");d==e||1==d.length-e.length&&d.substring(0,d.length-1)==e||(c=\"loadclipboard \"+SocialCalc.encodeForSave(SocialCalc.ConvertOtherFormatToSave(d,\"tab\"))+\"\\n\");d=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top):\na.ecell.coord;a.EditorScheduleSheetCommands(c+(\"paste \"+d+\" formulas\"),!0,!1);SocialCalc.KeyboardFocus()},200);break;case \"[ctrl-z]\":return a.EditorScheduleSheetCommands(\"undo\",!0,!1),!1;case \"[ctrl-s]\":if(!SocialCalc.Constants.AllowCtrlS)break;TiddlyWiki&&(e=SocialCalc.GetSpreadsheetControlObject(),TiddlyWiki.executeExtensionCmd(e,\"tiddlywiki-save\"),SocialCalc.KeyboardFocus());return!1;case \"[ctrl-j]\":if(!SocialCalc.Constants.AllowCtrlJ)break;window.setTimeout(function(){var c=a.context.sheetobj,\nd=c.GetAssuredCell(a.ecell.coord),c=window.prompt(\"Advanced Feature:\\n\\nCustom Numeric Format or Command\",d.nontextvalueformat?c.valueformats[d.nontextvalueformat-0]||\"\":\"\");if(null!=c){if(c.match(/^cmd:/))g=c.substring(4);else{if(c.match(/^edit:/)){g=c.substring(5);SocialCalc.CtrlSEditor&&SocialCalc.CtrlSEditor(g);return}l=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom):a.ecell.coord;g=\"set \"+l+\" nontextvalueformat \"+c}a.EditorScheduleSheetCommands(g,\n!0,!1)}},200);return!1}return!0};a.sheetobj.statuscallback=SocialCalc.EditorSheetStatusCallback;a.sheetobj.statuscallbackparams=this;this.StatusCallback={};this.MoveECellCallback={};this.RangeChangeCallback={};this.SettingsCallbacks={};this.ecell={coord:\"A1\",row:1,col:1};a.highlights[this.ecell.coord]=\"cursor\";this.range={hasrange:!1};this.range2={hasrange:!1}};SocialCalc.TableEditor.prototype.CreateTableEditor=function(a,c){return SocialCalc.CreateTableEditor(this,a,c)};\nSocialCalc.TableEditor.prototype.ResizeTableEditor=function(a,c){return SocialCalc.ResizeTableEditor(this,a,c)};SocialCalc.TableEditor.prototype.SaveEditorSettings=function(){return SocialCalc.SaveEditorSettings(this)};SocialCalc.TableEditor.prototype.LoadEditorSettings=function(a,c){return SocialCalc.LoadEditorSettings(this,a,c)};SocialCalc.TableEditor.prototype.EditorRenderSheet=function(){SocialCalc.EditorRenderSheet(this)};\nSocialCalc.TableEditor.prototype.EditorScheduleSheetCommands=function(a,c,b){SocialCalc.EditorScheduleSheetCommands(this,a,c,b)};SocialCalc.TableEditor.prototype.ScheduleSheetCommands=function(a,c){this.context.sheetobj.ScheduleSheetCommands(a,c)};SocialCalc.TableEditor.prototype.SheetUndo=function(){this.context.sheetobj.SheetUndo()};SocialCalc.TableEditor.prototype.SheetRedo=function(){this.context.sheetobj.SheetRedo()};\nSocialCalc.TableEditor.prototype.EditorStepSet=function(a,c){SocialCalc.EditorStepSet(this,a,c)};SocialCalc.TableEditor.prototype.GetStatuslineString=function(a,c,b){return SocialCalc.EditorGetStatuslineString(this,a,c,b)};SocialCalc.TableEditor.prototype.EditorMouseRegister=function(){return SocialCalc.EditorMouseRegister(this)};SocialCalc.TableEditor.prototype.EditorMouseUnregister=function(){return SocialCalc.EditorMouseUnregister(this)};\nSocialCalc.TableEditor.prototype.EditorMouseRange=function(a){return SocialCalc.EditorMouseRange(this,a)};SocialCalc.TableEditor.prototype.EditorProcessKey=function(a,c){return SocialCalc.EditorProcessKey(this,a,c)};SocialCalc.TableEditor.prototype.EditorAddToInput=function(a,c){return SocialCalc.EditorAddToInput(this,a,c)};SocialCalc.TableEditor.prototype.DisplayCellContents=function(){return SocialCalc.EditorDisplayCellContents(this)};\nSocialCalc.TableEditor.prototype.EditorSaveEdit=function(a){return SocialCalc.EditorSaveEdit(this,a)};SocialCalc.TableEditor.prototype.EditorApplySetCommandsToRange=function(a,c){return SocialCalc.EditorApplySetCommandsToRange(this,a,c)};SocialCalc.TableEditor.prototype.MoveECellWithKey=function(a){return SocialCalc.MoveECellWithKey(this,a)};SocialCalc.TableEditor.prototype.MoveECell=function(a){return SocialCalc.MoveECell(this,a)};\nSocialCalc.TableEditor.prototype.ReplaceCell=function(a,c,b){SocialCalc.ReplaceCell(this,a,c,b)};SocialCalc.TableEditor.prototype.UpdateCellCSS=function(a,c,b){SocialCalc.UpdateCellCSS(this,a,c,b)};SocialCalc.TableEditor.prototype.SetECellHeaders=function(a){SocialCalc.SetECellHeaders(this,a)};SocialCalc.TableEditor.prototype.EnsureECellVisible=function(){SocialCalc.EnsureECellVisible(this)};SocialCalc.TableEditor.prototype.ECellReadonly=function(a){return SocialCalc.ECellReadonly(this,a)};\nSocialCalc.TableEditor.prototype.RangeAnchor=function(a){SocialCalc.RangeAnchor(this,a)};SocialCalc.TableEditor.prototype.RangeExtend=function(a){SocialCalc.RangeExtend(this,a)};SocialCalc.TableEditor.prototype.RangeRemove=function(){SocialCalc.RangeRemove(this)};SocialCalc.TableEditor.prototype.Range2Remove=function(){SocialCalc.Range2Remove(this)};SocialCalc.TableEditor.prototype.FitToEditTable=function(){SocialCalc.FitToEditTable(this)};\nSocialCalc.TableEditor.prototype.CalculateEditorPositions=function(){SocialCalc.CalculateEditorPositions(this)};SocialCalc.TableEditor.prototype.ScheduleRender=function(){SocialCalc.ScheduleRender(this)};SocialCalc.TableEditor.prototype.DoRenderStep=function(){SocialCalc.DoRenderStep(this)};SocialCalc.TableEditor.prototype.SchedulePositionCalculations=function(){SocialCalc.SchedulePositionCalculations(this)};SocialCalc.TableEditor.prototype.DoPositionCalculations=function(){SocialCalc.DoPositionCalculations(this)};\nSocialCalc.TableEditor.prototype.CalculateRowPositions=function(a,c,b){return SocialCalc.CalculateRowPositions(this,a,c,b)};SocialCalc.TableEditor.prototype.CalculateColPositions=function(a,c,b){return SocialCalc.CalculateColPositions(this,a,c,b)};SocialCalc.TableEditor.prototype.ScrollRelative=function(a,c){SocialCalc.ScrollRelative(this,a,c)};SocialCalc.TableEditor.prototype.ScrollRelativeBoth=function(a,c){SocialCalc.ScrollRelativeBoth(this,a,c)};\nSocialCalc.TableEditor.prototype.PageRelative=function(a,c){SocialCalc.PageRelative(this,a,c)};SocialCalc.TableEditor.prototype.LimitLastPanes=function(){SocialCalc.LimitLastPanes(this)};SocialCalc.TableEditor.prototype.ScrollTableUpOneRow=function(){return SocialCalc.ScrollTableUpOneRow(this)};SocialCalc.TableEditor.prototype.ScrollTableDownOneRow=function(){return SocialCalc.ScrollTableDownOneRow(this)};SocialCalc.TableEditor.prototype.ScrollTableLeftOneCol=function(){return SocialCalc.ScrollTableLeftOneCol(this)};\nSocialCalc.TableEditor.prototype.ScrollTableRightOneCol=function(){return SocialCalc.ScrollTableRightOneCol(this)};\nSocialCalc.CreateTableEditor=function(a,c,b){var d=SocialCalc.Constants,e=SocialCalc.AssignID;a.toplevel=document.createElement(\"div\");a.toplevel.style.position=\"relative\";e(a,a.toplevel,\"toplevel\");a.width=c;a.height=b;a.griddiv=document.createElement(\"div\");a.tablewidth=Math.max(0,c-d.defaultTableControlThickness);a.tableheight=Math.max(0,b-d.defaultTableControlThickness);a.griddiv.style.width=a.tablewidth+\"px\";a.griddiv.style.height=a.tableheight+\"px\";a.griddiv.style.overflow=\"hidden\";a.griddiv.style.cursor=\n\"default\";d.cteGriddivClass&&(a.griddiv.className=d.cteGriddivClass);e(a,a.griddiv,\"griddiv\");a.FitToEditTable();a.EditorRenderSheet();a.griddiv.appendChild(a.fullgrid);a.verticaltablecontrol=new SocialCalc.TableControl(a,!0,a.tableheight);a.verticaltablecontrol.CreateTableControl();e(a,a.verticaltablecontrol.main,\"tablecontrolv\");a.horizontaltablecontrol=new SocialCalc.TableControl(a,!1,a.tablewidth);a.horizontaltablecontrol.CreateTableControl();e(a,a.horizontaltablecontrol.main,\"tablecontrolh\");\nc=document.createElement(\"table\");a.layouttable=c;c.cellSpacing=0;c.cellPadding=0;e(a,c,\"layouttable\");d=document.createElement(\"tbody\");c.appendChild(d);c=document.createElement(\"tr\");d.appendChild(c);b=document.createElement(\"td\");b.appendChild(a.griddiv);c.appendChild(b);b=document.createElement(\"td\");b.appendChild(a.verticaltablecontrol.main);c.appendChild(b);c=document.createElement(\"tr\");d.appendChild(c);b=document.createElement(\"td\");b.appendChild(a.horizontaltablecontrol.main);c.appendChild(b);\nb=document.createElement(\"td\");d=\"url(\"+a.imageprefix+\"logo.gif) no-repeat center center\";TiddlyWiki&&(d=TiddlyWiki.getModifiedCssImageStyle(d));b.style.background=d;d=\"<div style='cursor:pointer;font-size:1px;'><img src='\"+a.imageprefix+\"1x1.gif' border='0' width='18' height='18'></div>\";if(TiddlyWiki)for(var f=/['][.]?[/]?images\\/(.+?)[']/g,g;g=f.exec(d);){var l=TiddlyWiki.getModifiedImgSrc(g[0].replace(/\\'/g,\"\"));l&&(d=d.replace(g[0],'\"'+l+'\"'))}b.innerHTML=d;c.appendChild(b);a.logo=b;e(a,a.logo,\n\"logo\");SocialCalc.TooltipRegister(b.firstChild.firstChild,\"SocialCalc\",null,a.toplevel);a.toplevel.appendChild(a.layouttable);a.noEdit||(a.inputEcho=new SocialCalc.InputEcho(a),e(a,a.inputEcho.main,\"inputecho\"));a.cellhandles=new SocialCalc.CellHandles(a);c=document.createElement(\"textarea\");SocialCalc.setStyles(c,\"display:none;position:absolute;height:1px;width:1px;opacity:0;filter:alpha(opacity=0);\");c.value=\"\";a.pasteTextarea=c;e(a,a.pasteTextarea,\"pastetextarea\");navigator.userAgent.match(/Safari\\//)&&\n!navigator.userAgent.match(/Chrome\\//)&&(window.removeEventListener(\"beforepaste\",SocialCalc.SafariPasteFunction,!1),window.addEventListener(\"beforepaste\",SocialCalc.SafariPasteFunction,!1),window.removeEventListener(\"beforecopy\",SocialCalc.SafariPasteFunction,!1),window.addEventListener(\"beforecopy\",SocialCalc.SafariPasteFunction,!1),window.removeEventListener(\"beforecut\",SocialCalc.SafariPasteFunction,!1),window.addEventListener(\"beforecut\",SocialCalc.SafariPasteFunction,!1));a.toplevel.appendChild(a.pasteTextarea);\nSocialCalc.MouseWheelRegister(a.toplevel,{WheelMove:SocialCalc.EditorProcessMouseWheel,editor:a});SocialCalc.KeyboardSetFocus(a);SocialCalc.EditorSheetStatusCallback(null,\"startup\",null,a);return a.toplevel};SocialCalc.SafariPasteFunction=function(a){a.preventDefault()};\nSocialCalc.ResizeTableEditor=function(a,c,b){var d=SocialCalc.Constants;a.width=c;a.height=b;a.toplevel.style.width=c+\"px\";a.toplevel.style.height=b+\"px\";a.tablewidth=Math.max(0,c-d.defaultTableControlThickness);a.tableheight=Math.max(0,b-d.defaultTableControlThickness);a.griddiv.style.width=a.tablewidth+\"px\";a.griddiv.style.height=a.tableheight+\"px\";a.verticaltablecontrol.main.style.height=a.tableheight+\"px\";a.horizontaltablecontrol.main.style.width=a.tablewidth+\"px\";a.FitToEditTable();a.ScheduleRender()};\nSocialCalc.SaveEditorSettings=function(a){var c,b,d=a.context,e=a.range,f;f=\"version:1.0\\n\";for(c=0;c<d.rowpanes.length;c++)f+=\"rowpane:\"+c+\":\"+d.rowpanes[c].first+\":\"+d.rowpanes[c].last+\"\\n\";for(c=0;c<d.colpanes.length;c++)f+=\"colpane:\"+c+\":\"+d.colpanes[c].first+\":\"+d.colpanes[c].last+\"\\n\";a.ecell&&(f+=\"ecell:\"+a.ecell.coord+\"\\n\");e.hasrange&&(f+=\"range:\"+e.anchorcoord+\":\"+e.top+\":\"+e.bottom+\":\"+e.left+\":\"+e.right+\"\\n\");for(b in a.SettingsCallbacks)f+=a.SettingsCallbacks[b].save(a,b);return f};\nSocialCalc.LoadEditorSettings=function(a,c,b){c=c.split(/\\r\\n|\\n/);var d=[],e,f,g,l=a.context,h,m;l.rowpanes=[{first:1,last:1}];l.colpanes=[{first:1,last:1}];a.ecell=null;a.range={hasrange:!1};a.range2={hasrange:!1};m=a.range;l.highlights={};h=l.highlights;for(f=0;f<c.length;f++)switch(e=c[f],d=e.split(\":\"),g=d[0],g){case \"version\":break;case \"rowpane\":l.rowpanes[d[1]-0]={first:d[2]-0,last:d[3]-0};break;case \"colpane\":l.colpanes[d[1]-0]={first:d[2]-0,last:d[3]-0};break;case \"ecell\":a.ecell=SocialCalc.coordToCr(d[1]);\na.ecell.coord=d[1];h[d[1]]=\"cursor\";break;case \"range\":m.hasrange=!0;m.anchorcoord=d[1];e=SocialCalc.coordToCr(m.anchorcoord);m.anchorrow=e.row;m.anchorcol=e.col;m.top=d[2]-0;m.bottom=d[3]-0;m.left=d[4]-0;m.right=d[5]-0;for(d=m.top;d<=m.bottom;d++)for(e=m.left;e<=m.right;e++)g=SocialCalc.crToCoord(e,d),\"cursor\"!=h[g]&&(h[g]=\"range\");break;default:a.SettingsCallbacks[g]&&a.SettingsCallbacks[g].load(a,g,e,b)}};\nSocialCalc.EditorRenderSheet=function(a){a.EditorMouseUnregister();a.fullgrid=a.context.RenderSheet(a.fullgrid);a.ecell&&a.SetECellHeaders(\"selected\");SocialCalc.AssignID(a,a.fullgrid,\"fullgrid\");a.EditorMouseRegister()};\nSocialCalc.EditorScheduleSheetCommands=function(a,c,b,d){if(\"start\"==a.state||d)if(a.busy&&!d)a.deferredCommands.push({cmdstr:c,saveundo:b});else switch(c){case \"recalc\":case \"redisplay\":a.context.sheetobj.ScheduleSheetCommands(c,!1);break;case \"undo\":a.SheetUndo();break;case \"redo\":a.SheetRedo();break;default:a.context.sheetobj.ScheduleSheetCommands(c,b)}};\nSocialCalc.EditorSheetStatusCallback=function(a,c,b,d){var e;a=d.context.sheetobj;var f=function(a){for(e in d.StatusCallback)d.StatusCallback[e].func&&d.StatusCallback[e].func(d,a,b,d.StatusCallback[e].params)};switch(c){case \"startup\":break;case \"cmdstart\":d.busy=!0;a.celldisplayneeded=\"\";break;case \"cmdextension\":break;case \"cmdend\":f(c);a.changedrendervalues&&(d.context.PrecomputeSheetFontsAndLayouts(),d.context.CalculateCellSkipData(),a.changedrendervalues=!1);a.celldisplayneeded&&!a.renderneeded&&\n(cr=SocialCalc.coordToCr(a.celldisplayneeded),c=SocialCalc.GetEditorCellElement(d,cr.row,cr.col),d.ReplaceCell(c,cr.row,cr.col));if(d.deferredCommands.length){a=d.deferredCommands.shift();d.EditorScheduleSheetCommands(a.cmdstr,a.saveundo,!0);return}a.attribs.needsrecalc&&(\"off\"!=a.attribs.recalc||a.recalconce)&&d.recalcFunction?(d.FitToEditTable(),a.renderneeded=!1,a.recalconce&&delete a.recalconce,d.recalcFunction(d)):a.renderneeded?(d.FitToEditTable(),a.renderneeded=!1,d.ScheduleRender()):d.SchedulePositionCalculations();\nif(\"col\"==a.hiddencolrow){for(c=d.ecell.col;\"yes\"==a.colattribs.hide[SocialCalc.rcColname(c)];)c++;c=SocialCalc.crToCoord(c,d.ecell.row);d.MoveECell(c);a.hiddencolrow=\"\"}if(\"row\"==a.hiddencolrow){for(c=d.ecell.row;\"yes\"==a.rowattribs.hide[c];)c++;c=SocialCalc.crToCoord(d.ecell.col,c);d.MoveECell(c);a.hiddencolrow=\"\"}return;case \"calcstart\":d.busy=!0;break;case \"calccheckdone\":case \"calcorder\":case \"calcstep\":case \"calcloading\":case \"calcserverfunc\":break;case \"calcfinished\":f(c);d.ScheduleRender();\nreturn;case \"schedrender\":d.busy=!0;break;case \"renderdone\":break;case \"schedposcalc\":d.busy=!0;break;case \"doneposcalc\":d.deferredCommands.length?(f(c),a=d.deferredCommands.shift(),d.EditorScheduleSheetCommands(a.cmdstr,a.saveundo,!0)):(d.busy=!1,f(c),\"start\"==d.state&&d.DisplayCellContents());return;default:addmsg(\"Unknown status: \"+c)}f(c)};\nSocialCalc.EditorGetStatuslineString=function(a,c,b,d){var e=SocialCalc.Constants,f,g,l;f=\"\";switch(c){case \"moveecell\":case \"rangechange\":case \"startup\":break;case \"cmdstart\":d.command=!0;document.body.style.cursor=\"progress\";a.griddiv.style.cursor=\"progress\";f=e.s_statusline_executing;break;case \"cmdextension\":f=\"Command Extension: \"+b;break;case \"cmdend\":d.command=!1;break;case \"schedrender\":f=e.s_statusline_displaying;break;case \"renderdone\":f=\" \";break;case \"schedposcalc\":f=e.s_statusline_displaying;\nbreak;case \"cmdendnorender\":case \"doneposcalc\":document.body.style.cursor=\"default\";a.griddiv.style.cursor=\"default\";break;case \"calcorder\":f=e.s_statusline_ordering+Math.floor(100*b.count/(b.total||1))+\"%\";break;case \"calcstep\":f=e.s_statusline_calculating+Math.floor(100*b.count/(b.total||1))+\"%\";break;case \"calcloading\":f=e.s_statusline_calculatingls+\": \"+b.sheetname;break;case \"calcserverfunc\":f=e.s_statusline_calculating+Math.floor(100*b.count/(b.total||1))+\"%, \"+e.s_statusline_doingserverfunc+\nb.funcname+e.s_statusline_incell+b.coord;break;case \"calcstart\":d.calculating=!0;document.body.style.cursor=\"progress\";a.griddiv.style.cursor=\"progress\";f=e.s_statusline_calcstart;break;case \"calccheckdone\":break;case \"calcfinished\":d.calculating=!1;break;default:f=c}!f&&d.calculating&&(f=e.s_statusline_calculating);if(!(d.calculating||d.command||f||!a.range.hasrange||a.range.left==a.range.right&&a.range.top==a.range.bottom)){c=0;for(b=a.range.top;b<=a.range.bottom;b++)for(g=a.range.left;g<=a.range.right;g++)(l=\na.context.sheetobj.cells[SocialCalc.crToCoord(g,b)])&&l.valuetype&&\"n\"==l.valuetype.charAt(0)&&(c+=l.datavalue-0);c=SocialCalc.FormatNumber.formatNumberWithFormat(c,\"[,]General\",\"\");b=SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom);f=b+\" (\"+(a.range.right-a.range.left+1)+\"x\"+(a.range.bottom-a.range.top+1)+\") \"+e.s_statusline_sum+\"=\"+c+\" \"+f}f=a.ecell.coord+\" \"+f;d.calculating||\"yes\"!=a.context.sheetobj.attribs.needsrecalc||(f+=\" \"+\ne.s_statusline_recalcneeded);if(a=a.context.sheetobj.attribs.circularreferencecell)a=a.replace(/\\|/,\" referenced by \"),f+=\" \"+e.s_statusline_circref+a+\"</span>\";return f};SocialCalc.EditorMouseInfo={registeredElements:[],editor:null,element:null,ignore:!1,mousedowncoord:\"\",mouselastcoord:\"\",mouseresizecol:\"\",mouseresizeclientx:null,mouseresizedisplay:null};\nSocialCalc.EditorMouseRegister=function(a){var c=SocialCalc.EditorMouseInfo,b=a.fullgrid,d;for(d=0;d<c.registeredElements.length;d++)if(c.registeredElements[d].editor==a){if(c.registeredElements[d].element==b)return;break}d<c.registeredElements.length?c.registeredElements[d].element=b:c.registeredElements.push({element:b,editor:a});if(b.addEventListener)b.addEventListener(\"mousedown\",SocialCalc.ProcessEditorMouseDown,!1),b.addEventListener(\"dblclick\",SocialCalc.ProcessEditorDblClick,!1);else if(b.attachEvent)b.attachEvent(\"onmousedown\",\nSocialCalc.ProcessEditorMouseDown),b.attachEvent(\"ondblclick\",SocialCalc.ProcessEditorDblClick);else throw\"Browser not supported\";c.ignore=!1};\nSocialCalc.EditorMouseUnregister=function(a){var c=SocialCalc.EditorMouseInfo,b;for(b=0;b<c.registeredElements.length&&c.registeredElements[b].editor!=a;b++);b<c.registeredElements.length&&(a=c.registeredElements[b].element,a.removeEventListener?(a.removeEventListener(\"mousedown\",SocialCalc.ProcessEditorMouseDown,!1),a.removeEventListener(\"dblclick\",SocialCalc.ProcessEditorDblClick,!1)):a.detachEvent&&(a.detachEvent(\"onmousedown\",SocialCalc.ProcessEditorMouseDown),a.detachEvent(\"ondblclick\",SocialCalc.ProcessEditorDblClick)),\nc.registeredElements.splice(b,1))};\nSocialCalc.ProcessEditorMouseDown=function(a){var c,b,d,e=a||window.event,f=SocialCalc.EditorMouseInfo,g=e.target||e.srcElement;if(!f.ignore){for(c=null;!c&&g;g=g.parentNode)c=SocialCalc.LookupElement(g,f.registeredElements);if(c){if(c=c.editor,f.element=g,d=c.range,b=SocialCalc.GetElementPositionWithScroll(c.toplevel),b=SocialCalc.GridMousePosition(c,e.clientX-b.left,e.clientY-b.top))f.editor=c,b.rowheader&&b.rowtounhide?SocialCalc.ProcessEditorRowsizeMouseDown(a,g,b):b.colheader&&b.coltoresize?\nSocialCalc.ProcessEditorColsizeMouseDown(a,g,b):b.coord&&(d.hasrange||a.shiftKey&&c.RangeAnchor(),b=c.MoveECell(b.coord),d.hasrange&&(a.shiftKey?c.RangeExtend():c.RangeRemove()),f.mousedowncoord=b,f.mouselastcoord=b,c.EditorMouseRange(b),SocialCalc.KeyboardSetFocus(c),\"start\"!=c.state&&c.inputBox&&c.inputBox.element.focus(),TiddlyWiki&&(a=SocialCalc.GetSpreadsheetControlObject(),a.inputView&&a.inputView.focus()),document.addEventListener?(document.addEventListener(\"mousemove\",SocialCalc.ProcessEditorMouseMove,\n!0),document.addEventListener(\"mouseup\",SocialCalc.ProcessEditorMouseUp,!0)):g.attachEvent&&(g.setCapture(),g.attachEvent(\"onmousemove\",SocialCalc.ProcessEditorMouseMove),g.attachEvent(\"onmouseup\",SocialCalc.ProcessEditorMouseUp),g.attachEvent(\"onlosecapture\",SocialCalc.ProcessEditorMouseUp)),e.stopPropagation?e.stopPropagation():e.cancelBubble=!0,e.preventDefault?e.preventDefault():e.returnValue=!1)}else f.editor=null}};\nSocialCalc.EditorMouseRange=function(a,c){var b,d,e=a.range;switch(a.state){case \"input\":b=a.inputBox.GetText();d=a.workingvalues;if(0<=\"(+-*/,:!&<>=^\".indexOf(b.slice(-1))&&\"=\"==b.slice(0,1)||\"=\"==b)d.partialexpr=b;d.partialexpr?c&&(e.hasrange?a.inputBox.SetText(d.partialexpr+SocialCalc.crToCoord(e.left,e.top)+\":\"+SocialCalc.crToCoord(e.right,e.bottom)):a.inputBox.SetText(d.partialexpr+c)):(a.inputBox.Blur(),a.inputBox.ShowInputBox(!1),a.state=\"start\",a.cellhandles.ShowCellHandles(!0),a.EditorSaveEdit(),\na.inputBox.DisplayCellContents(null));break;case \"inputboxdirect\":a.inputBox.Blur(),a.inputBox.ShowInputBox(!1),a.state=\"start\",a.cellhandles.ShowCellHandles(!0),a.EditorSaveEdit(),a.inputBox.DisplayCellContents(null)}};\nSocialCalc.ProcessEditorMouseMove=function(a){var c,b,d=a||window.event,e=SocialCalc.EditorMouseInfo;(c=e.editor)&&!e.ignore&&(b=SocialCalc.GetElementPositionWithScroll(c.toplevel),b=SocialCalc.GridMousePosition(c,d.clientX-b.left,d.clientY-b.top))&&(b&&!b.coord?SocialCalc.SetDragAutoRepeat(c,b):(SocialCalc.SetDragAutoRepeat(c,null),b.coord&&(b.coord!=e.mouselastcoord&&(a.shiftKey||c.range.hasrange||c.RangeAnchor(e.mousedowncoord),c.MoveECell(b.coord),c.RangeExtend()),e.mouselastcoord=b.coord,c.EditorMouseRange(b.coord),\nd.stopPropagation?d.stopPropagation():d.cancelBubble=!0,d.preventDefault?d.preventDefault():d.returnValue=!1)))};\nSocialCalc.ProcessEditorMouseUp=function(a){var c,b,d=a||window.event,e=SocialCalc.EditorMouseInfo;if((a=e.editor)&&!e.ignore&&(c=e.element,b=SocialCalc.GetElementPositionWithScroll(a.toplevel),b=SocialCalc.GridMousePosition(a,d.clientX-b.left,d.clientY-b.top),SocialCalc.SetDragAutoRepeat(a,null),b))return b.coord||(b.coord=a.ecell.coord),a.range.hasrange?(a.MoveECell(b.coord),a.RangeExtend()):b.coord&&b.coord!=e.mousedowncoord&&(a.RangeAnchor(e.mousedowncoord),a.MoveECell(b.coord),a.RangeExtend()),\na.EditorMouseRange(b.coord),d.stopPropagation?d.stopPropagation():d.cancelBubble=!0,d.preventDefault?d.preventDefault():d.returnValue=!1,document.removeEventListener?(document.removeEventListener(\"mousemove\",SocialCalc.ProcessEditorMouseMove,!0),document.removeEventListener(\"mouseup\",SocialCalc.ProcessEditorMouseUp,!0)):c.detachEvent&&(c.detachEvent(\"onlosecapture\",SocialCalc.ProcessEditorMouseUp),c.detachEvent(\"onmouseup\",SocialCalc.ProcessEditorMouseUp),c.detachEvent(\"onmousemove\",SocialCalc.ProcessEditorMouseMove),\nc.releaseCapture()),e.editor=null,!1};\nSocialCalc.ProcessEditorColsizeMouseDown=function(a,c,b){a=a||window.event;c=SocialCalc.EditorMouseInfo;var d=c.editor,e=SocialCalc.GetElementPositionWithScroll(d.toplevel),e=a.clientX-e.left;c.mouseresizecolnum=b.coltoresize;c.mouseresizecol=SocialCalc.rcColname(b.coltoresize);c.mousedownclientx=e;c.mousecoltounhide=b.coltounhide;c.mousecoltounhide||(e=document.createElement(\"div\"),c.mouseresizedisplay=e,e.style.width=\"auto\",e.style.position=\"absolute\",e.style.zIndex=100,e.style.top=d.headposition.top+\n\"px\",e.style.left=d.colpositions[b.coltoresize]+\"px\",e.innerHTML='<table cellpadding=\"0\" cellspacing=\"0\"><tr><td style=\"height:100px;border:1px dashed black;background-color:white;width:'+(d.context.colwidth[c.mouseresizecolnum]-2)+'px;\"> </td><td><div style=\"font-size:small;color:white;background-color:gray;padding:4px;\">'+d.context.colwidth[c.mouseresizecolnum]+\"</div></td></tr></table>\",SocialCalc.setStyles(e.firstChild.lastChild.firstChild.childNodes[0],\"filter:alpha(opacity=85);opacity:.85;\"),\nd.toplevel.appendChild(e));document.addEventListener?(document.addEventListener(\"mousemove\",SocialCalc.ProcessEditorColsizeMouseMove,!0),document.addEventListener(\"mouseup\",SocialCalc.ProcessEditorColsizeMouseUp,!0)):d.toplevel.attachEvent&&(d.toplevel.setCapture(),d.toplevel.attachEvent(\"onmousemove\",SocialCalc.ProcessEditorColsizeMouseMove),d.toplevel.attachEvent(\"onmouseup\",SocialCalc.ProcessEditorColsizeMouseUp),d.toplevel.attachEvent(\"onlosecapture\",SocialCalc.ProcessEditorColsizeMouseUp));a.stopPropagation?\na.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1};\nSocialCalc.ProcessEditorColsizeMouseMove=function(a){a=a||window.event;var c=SocialCalc.EditorMouseInfo,b=c.editor;if(b){if(!c.mousecoltounhide){var d=SocialCalc.GetElementPositionWithScroll(b.toplevel),b=b.context.colwidth[c.mouseresizecolnum]-0+(a.clientX-d.left-c.mousedownclientx);b<SocialCalc.Constants.defaultMinimumColWidth&&(b=SocialCalc.Constants.defaultMinimumColWidth);c=c.mouseresizedisplay;c.innerHTML='<table cellpadding=\"0\" cellspacing=\"0\"><tr><td style=\"height:100px;border:1px dashed black;background-color:white;width:'+\n(b-2)+'px;\"> </td><td><div style=\"font-size:small;color:white;background-color:gray;padding:4px;\">'+b+\"</div></td></tr></table>\";SocialCalc.setStyles(c.firstChild.lastChild.firstChild.childNodes[0],\"filter:alpha(opacity=85);opacity:.85;\")}a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1}};\nSocialCalc.ProcessEditorColsizeMouseUp=function(a){var c=a||window.event;a=SocialCalc.EditorMouseInfo;var b=a.editor;if(b){element=a.element;var d=SocialCalc.GetElementPositionWithScroll(b.toplevel),d=c.clientX-d.left;c.stopPropagation?c.stopPropagation():c.cancelBubble=!0;c.preventDefault?c.preventDefault():c.returnValue=!1;document.removeEventListener?(document.removeEventListener(\"mousemove\",SocialCalc.ProcessEditorColsizeMouseMove,!0),document.removeEventListener(\"mouseup\",SocialCalc.ProcessEditorColsizeMouseUp,\n!0)):b.toplevel.detachEvent&&(b.toplevel.detachEvent(\"onlosecapture\",SocialCalc.ProcessEditorColsizeMouseUp),b.toplevel.detachEvent(\"onmouseup\",SocialCalc.ProcessEditorColsizeMouseUp),b.toplevel.detachEvent(\"onmousemove\",SocialCalc.ProcessEditorColsizeMouseMove),b.toplevel.releaseCapture());a.mousecoltounhide?b.EditorScheduleSheetCommands(\"set \"+SocialCalc.rcColname(a.mousecoltounhide)+\" hide\",!0,!1):(c=b.context.colwidth[a.mouseresizecolnum]-0+(d-a.mousedownclientx),c<SocialCalc.Constants.defaultMinimumColWidth&&\n(c=SocialCalc.Constants.defaultMinimumColWidth),b.EditorScheduleSheetCommands(\"set \"+a.mouseresizecol+\" width \"+c,!0,!1),b.timeout&&window.clearTimeout(b.timeout),b.timeout=window.setTimeout(SocialCalc.FinishColsize,1));return!1}};SocialCalc.FinishColsize=function(){var a=SocialCalc.EditorMouseInfo,c=a.editor;c&&(c.toplevel.removeChild(a.mouseresizedisplay),a.mouseresizedisplay=null,a.editor=null)};\nSocialCalc.ProcessEditorRowsizeMouseDown=function(a,c,b){a=a||window.event;c=SocialCalc.EditorMouseInfo;var d=c.editor;SocialCalc.GetElementPositionWithScroll(d.toplevel);c.mouserowtounhide=b.rowtounhide;document.addEventListener?(document.addEventListener(\"mousemove\",SocialCalc.ProcessEditorRowsizeMouseMove,!0),document.addEventListener(\"mouseup\",SocialCalc.ProcessEditorRowsizeMouseUp,!0)):d.toplevel.attachEvent&&(d.toplevel.setCapture(),d.toplevel.attachEvent(\"onmousemove\",SocialCalc.ProcessEditorRowsizeMouseMove),\nd.toplevel.attachEvent(\"onmouseup\",SocialCalc.ProcessEditorRowsizeMouseUp),d.toplevel.attachEvent(\"onlosecapture\",SocialCalc.ProcessEditorRowsizeMouseUp));a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1};SocialCalc.ProcessEditorRowsizeMouseMove=function(a){a=a||window.event;SocialCalc.EditorMouseInfo.editor&&(a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1)};\nSocialCalc.ProcessEditorRowsizeMouseUp=function(a){a=a||window.event;var c=SocialCalc.EditorMouseInfo,b=c.editor;if(b)return element=c.element,SocialCalc.GetElementPositionWithScroll(b.toplevel),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,document.removeEventListener?(document.removeEventListener(\"mousemove\",SocialCalc.ProcessEditorRowsizeMouseMove,!0),document.removeEventListener(\"mouseup\",SocialCalc.ProcessEditorRowsizeMouseUp,!0)):\nb.toplevel.detachEvent&&(b.toplevel.detachEvent(\"onlosecapture\",SocialCalc.ProcessEditorRowsizeMouseUp),b.toplevel.detachEvent(\"onmouseup\",SocialCalc.ProcessEditorRowsizeMouseUp),b.toplevel.detachEvent(\"onmousemove\",SocialCalc.ProcessEditorRowsizeMouseMove),b.toplevel.releaseCapture()),c.mouserowtounhide&&b.EditorScheduleSheetCommands(\"set \"+c.mouserowtounhide+\" hide\",!0,!1),!1};SocialCalc.AutoRepeatInfo={timer:null,mouseinfo:null,repeatinterval:1E3,editor:null,repeatcallback:null};\nSocialCalc.SetDragAutoRepeat=function(a,c,b){var d=SocialCalc.AutoRepeatInfo;d.repeatcallback=b;if(c){d.editor=a;d.mouseinfo&&(c.rowheader||c.rowfooter?c.row!=d.mouseinfo.row&&(b=SocialCalc.crToCoord(a.ecell.col,c.row),d.repeatcallback?(a=c.row<d.mouseinfo.row?\"left\":c.row>d.mouseinfo.row?\"right\":\"\",d.repeatcallback(b,a)):(a.MoveECell(b),a.MoveECell(b),a.RangeExtend(),a.EditorMouseRange(b))):(c.colheader||c.colfooter)&&c.col!=d.mouseinfo.col&&(b=SocialCalc.crToCoord(c.col,a.ecell.row),d.repeatcallback?\n(a=c.row<d.mouseinfo.row?\"left\":c.row>d.mouseinfo.row?\"right\":\"\",d.repeatcallback(b,a)):(a.MoveECell(b),a.RangeExtend(),a.EditorMouseRange(b))));d.mouseinfo=c;if(5>c.distance)d.repeatinterval=333;else if(10>c.distance)d.repeatinterval=250;else if(25>c.distance)d.repeatinterval=100;else if(35>c.distance)d.repeatinterval=75;else{d.timer&&(window.clearTimeout(d.timer),d.timer=null);return}d.timer||(d.timer=window.setTimeout(SocialCalc.DragAutoRepeat,d.repeatinterval))}else d.timer&&(window.clearTimeout(d.timer),\nd.timer=null),d.mouseinfo=null};\nSocialCalc.DragAutoRepeat=function(){var a=SocialCalc.AutoRepeatInfo,c=a.mouseinfo,b;c.rowheader?b=\"left\":c.rowfooter?b=\"right\":c.colheader?b=\"up\":c.colfooter&&(b=\"down\");a.repeatcallback?(c=SocialCalc.coordToCr(a.editor.ecell.coord),\"left\"==b&&1<c.col?c.col--:\"right\"==b?c.col++:\"up\"==b&&1<c.row?c.row--:\"down\"==b&&c.row++,c=SocialCalc.crToCoord(c.col,c.row),a.repeatcallback(c,b)):(c=a.editor.MoveECellWithKey(\"[a\"+b+\"]shifted\"))&&a.editor.EditorMouseRange(c);a.timer=window.setTimeout(SocialCalc.DragAutoRepeat,\na.repeatinterval)};\nSocialCalc.ProcessEditorDblClick=function(a){var c,b;a=a||window.event;var d=SocialCalc.EditorMouseInfo,e=a.target||a.srcElement;if(!d.ignore){for(c=null;!c&&e;e=e.parentNode)c=SocialCalc.LookupElement(e,d.registeredElements);if(c){if(c=c.editor,b=SocialCalc.GetElementPositionWithScroll(c.toplevel),(b=SocialCalc.GridMousePosition(c,a.clientX-b.left,a.clientY-b.top))&&b.coord){d.editor=c;d.element=e;sheetobj=c.context.sheetobj;switch(c.state){case \"start\":SocialCalc.EditorOpenCellEdit(c)}a.stopPropagation?a.stopPropagation():\na.cancelBubble=!0;a.preventDefault?a.preventDefault():a.returnValue=!1}}else d.editor=null}};SocialCalc.EditorOpenCellEdit=function(a){var c;if(!a.ecell||!a.inputBox||a.inputBox.element.disabled)return!0;a.inputBox.ShowInputBox(!0);a.inputBox.Focus();a.state=\"inputboxdirect\";a.inputBox.SetText(\"\");a.inputBox.DisplayCellContents();a.inputBox.Select(\"end\");c=a.workingvalues;c.partialexpr=\"\";c.ecoord=a.ecell.coord;c.erow=a.ecell.row;c.ecol=a.ecell.col};\nSocialCalc.EditorProcessKey=function(a,c,b){hack.log(\"editor.state = \"+a.state+\", ch = \"+c,hack.keyboard,\"SocialCalc.EditorProcessKey\");var d=SocialCalc.GetSpreadsheetControlObject();TiddlyWiki&&(d.tiddlyWiki.saveTodo.flagStart=!0);var e,f=a.workingvalues,g=a.range;\"string\"!=typeof c&&(c=\"\");switch(a.state){case \"start\":b.shiftKey&&\"[a\"==c.substr(0,2)&&(c+=\"shifted\");\"[enter]\"==c&&(c=\"[adown]\");\"[tab]\"==c&&(c=b.shiftKey?\"[aleft]\":\"[aright]\");if(\"[a\"==c.substr(0,2)||\"[pg\"==c.substr(0,3)||\"[home]\"==\nc)return a=a.MoveECellWithKey(c),!a;if(TiddlyWiki&&d.tiddlyWiki.flagView)break;if(\"[del]\"==c||\"[backspace]\"==c){a.noEdit||a.ECellReadonly()||a.EditorApplySetCommandsToRange(\"empty\",\"\");break}if(\"[esc]\"==c){if(g.hasrange)for(e in a.RangeRemove(),a.MoveECell(g.anchorcoord),a.StatusCallback)a.StatusCallback[e].func(a,\"specialkey\",c,a.StatusCallback[e].params);break}if(\"[f2]\"==c){if(a.noEdit||a.ECellReadonly())return!0;SocialCalc.EditorOpenCellEdit(a);break}if(1<c.length&&\"[\"==c.substr(0,1)||0==c.length)return a.ctrlkeyFunction&&\n0<c.length?a.ctrlkeyFunction(a,c):!0;if(!a.ecell||!a.inputBox||a.ECellReadonly())return!0;a.inputBox.element.disabled=!1;a.state=\"input\";a.inputBox.ShowInputBox(!0);a.inputBox.Focus();a.inputBox.SetText(c);a.inputBox.Select(\"end\");f.partialexpr=\"\";f.ecoord=a.ecell.coord;f.erow=a.ecell.row;f.ecol=a.ecell.col;a.RangeRemove();break;case \"input\":d=a.inputBox.GetText();if(a.inputBox.skipOne)break;if(\"[esc]\"==c||\"[enter]\"==c||\"[tab]\"==c||c&&\"[a\"==c.substr(0,2)){if(0<=\"(+-*/,:!&<>=^\".indexOf(d.slice(-1))&&\n\"=\"==d.slice(0,1)||\"=\"==d)f.partialexpr=d;if(f.partialexpr&&(b.shiftKey&&\"[a\"==c.substr(0,2)&&(c+=\"shifted\"),d=a.MoveECellWithKey(c))){g.hasrange?a.inputBox.SetText(f.partialexpr+SocialCalc.crToCoord(g.left,g.top)+\":\"+SocialCalc.crToCoord(g.right,g.bottom)):a.inputBox.SetText(f.partialexpr+d);break}a.inputBox.Blur();a.inputBox.ShowInputBox(!1);a.state=\"start\";a.cellhandles.ShowCellHandles(!0);\"[esc]\"!=c?(a.EditorSaveEdit(),a.ecell.coord!=f.ecoord&&a.MoveECell(f.ecoord),\"[enter]\"==c&&(c=\"[adown]\"),\n\"[tab]\"==c&&(c=b.shiftKey?\"[aleft]\":\"[aright]\"),\"[a\"==c.substr(0,2)&&a.MoveECellWithKey(c)):(a.inputBox.DisplayCellContents(),a.RangeRemove(),a.MoveECell(f.ecoord));break}if(f.partialexpr&&\"[backspace]\"==c){a.inputBox.SetText(f.partialexpr);f.partialexpr=\"\";a.RangeRemove();a.MoveECell(f.ecoord);a.inputBox.ShowInputBox(!0);break}if(\"[f2]\"==c)break;g.hasrange&&a.RangeRemove();a.MoveECell(f.ecoord);f.partialexpr&&(a.inputBox.ShowInputBox(!0),f.partialexpr=\"\");return!0;case \"inputboxdirect\":a.inputBox.GetText();\nif(\"[esc]\"==c||\"[enter]\"==c||\"[tab]\"==c){a.inputBox.Blur();a.inputBox.ShowInputBox(!1);a.state=\"start\";a.cellhandles.ShowCellHandles(!0);\"[esc]\"==c?a.inputBox.DisplayCellContents():(a.EditorSaveEdit(),a.ecell.coord!=f.ecoord&&a.MoveECell(f.ecoord),\"[enter]\"==c&&(c=\"[adown]\"),\"[tab]\"==c&&(c=b.shiftKey?\"[aleft]\":\"[aright]\"),\"[a\"==c.substr(0,2)&&a.MoveECellWithKey(c));break}if(\"[f2]\"==c)break;return!0;case \"skip-and-start\":a.state=\"start\";a.cellhandles.ShowCellHandles(!0);break;default:return!0}return!1};\nSocialCalc.EditorAddToInput=function(a,c,b){var d=a.workingvalues;if(!a.noEdit&&!a.ECellReadonly())switch(a.state){case \"start\":a.state=\"input\";a.inputBox.ShowInputBox(!0);a.inputBox.element.disabled=!1;a.inputBox.Focus();a.inputBox.SetText((b||\"\")+c);a.inputBox.Select(\"end\");d.partialexpr=\"\";d.ecoord=a.ecell.coord;d.erow=a.ecell.row;d.ecol=a.ecell.col;a.RangeRemove();break;case \"input\":case \"inputboxdirect\":a.inputBox.element.focus(),d.partialexpr&&(a.inputBox.SetText(d.partialexpr),d.partialexpr=\n\"\",a.RangeRemove(),a.MoveECell(d.ecoord)),a.inputBox.SetText(a.inputBox.GetText()+c)}};SocialCalc.EditorDisplayCellContents=function(a){a.inputBox&&a.inputBox.DisplayCellContents()};\nSocialCalc.EditorSaveEdit=function(a,c){var b,d,e;b=a.context.sheetobj;var f=a.workingvalues;e=\"string\"==typeof c?c:a.inputBox.GetText();b=SocialCalc.GetCellContents(b,f.ecoord)+\"\";e!=b&&(b=e.charAt(0),\"=\"==b&&-1==e.indexOf(\"\\n\")?(d=\"formula\",e=e.substring(1)):\"'\"==b?(d=\"text t\",e=e.substring(1),b=SocialCalc.DetermineValueType(e),\"t\"==b.type.charAt(0)&&(d=\"text \"+b.type)):0==e.length?d=\"empty\":(b=SocialCalc.DetermineValueType(e),d=\"n\"==b.type&&e==b.value+\"\"?\"value n\":\"t\"==b.type.charAt(0)?\"text \"+\nb.type:\"\"==b.type?\"text t\":\"constant \"+b.type+\" \"+b.value),\"t\"==d.charAt(0)&&(e=SocialCalc.encodeForSave(e)),e=\"set \"+f.ecoord+\" \"+d+\" \"+e,a.EditorScheduleSheetCommands(e,!0,!1))};SocialCalc.EditorApplySetCommandsToRange=function(a,c){var b;b=a.ecell;var d=a.range;d.hasrange?(coord=SocialCalc.crToCoord(d.left,d.top)+\":\"+SocialCalc.crToCoord(d.right,d.bottom),b=\"set \"+coord+\" \"+c):b=\"set \"+b.coord+\" \"+c;a.EditorScheduleSheetCommands(b,!0,!1);a.DisplayCellContents()};\nSocialCalc.EditorProcessMouseWheel=function(a,c,b,d){d.functionobj.editor.busy||(0<c&&d.functionobj.editor.ScrollRelative(!0,Math.floor(1.5*-c)),0>c&&d.functionobj.editor.ScrollRelative(!0,Math.ceil(1.5*-c)))};\nSocialCalc.GridMousePosition=function(a,c,b){var d,e,f={};for(d=1;d<a.rowpositions.length&&!(a.rowheight[d]&&a.rowpositions[d]+a.rowheight[d]>b);d++);for(e=1;e<a.colpositions.length&&!(a.colwidth[e]&&a.colpositions[e]+a.colwidth[e]>c);e++);f.row=d;f.col=e;if(a.headposition){if(c<a.headposition.left&&c>=a.gridposition.left){f.rowheader=!0;f.distance=a.headposition.left-c;f.rowtounhide=\"\";if(unhide=a.context.rowunhidetop[d])pos=SocialCalc.GetElementPosition(unhide),c>=pos.left&&c<pos.left+unhide.offsetWidth&&\nb>=pos.top&&b<pos.top+unhide.offsetHeight&&(f.rowtounhide=d+1);if(unhide=a.context.rowunhidebottom[d])pos=SocialCalc.GetElementPosition(unhide),c>=pos.left&&c<pos.left+unhide.offsetWidth&&b>=pos.top&&b<pos.top+unhide.offsetHeight&&(f.rowtounhide=d-1)}else if(b<a.headposition.top&&b>a.gridposition.top){f.colheader=!0;f.distance=a.headposition.top-b;f.coltoresize=e-(a.colpositions[e]+a.colwidth[e]/2>c?1:0)||1;if(unhide=a.context.colunhideleft[e])pos=SocialCalc.GetElementPosition(unhide),c>=pos.left&&\nc<pos.left+unhide.offsetWidth&&b>=pos.top&&b<pos.top+unhide.offsetHeight&&(f.coltounhide=e+1);if(unhide=a.context.colunhideright[e])pos=SocialCalc.GetElementPosition(unhide),c>=pos.left&&c<pos.left+unhide.offsetWidth&&b>=pos.top&&b<pos.top+unhide.offsetHeight&&(f.coltounhide=e-1);for(c=0;c<a.context.colpanes.length;c++)if(f.coltoresize>=a.context.colpanes[c].first&&f.coltoresize<=a.context.colpanes[c].last)return f;delete f.coltoresize}else c>=a.verticaltablecontrol.controlborder?(f.rowfooter=!0,\nf.distance=c-a.verticaltablecontrol.controlborder):b>=a.horizontaltablecontrol.controlborder?(f.colfooter=!0,f.distance=b-a.horizontaltablecontrol.controlborder):c<a.gridposition.left?(f.rowheader=!0,f.distance=a.headposition.left-c):b<=a.gridposition.top?(f.colheader=!0,f.distance=a.headposition.top-b):(f.coord=SocialCalc.crToCoord(f.col,f.row),a.context.cellskip[f.coord]&&(f.coord=a.context.cellskip[f.coord]));return f}return null};\nSocialCalc.GetEditorCellElement=function(a,c,b){var d,e,f,g,l=0,h=0;for(d=0;d<a.context.rowpanes.length;d++){if(c>=a.context.rowpanes[d].first&&c<=a.context.rowpanes[d].last)for(e=0;e<a.context.colpanes.length;e++){if(b>=a.context.colpanes[e].first&&b<=a.context.colpanes[e].last){l+=c-a.context.rowpanes[d].first+2;for(f=a.context.colpanes[e].first;f<=b;f++)(g=a.context.cellskip[SocialCalc.crToCoord(f,c)])&&a.context.CoordInPane(g,d,e)||h++;return{element:a.griddiv.firstChild.lastChild.childNodes[l].childNodes[h],\nrowpane:d,colpane:e}}for(f=a.context.colpanes[e].first;f<=a.context.colpanes[e].last;f++)(g=a.context.cellskip[SocialCalc.crToCoord(f,c)])&&a.context.CoordInPane(g,d,e)||h++;h+=1}l+=a.context.rowpanes[d].last-a.context.rowpanes[d].first+2}return null};\nSocialCalc.MoveECellWithKey=function(a,c){var b,d,e,f=!1,g=1;if(!a.ecell)return null;\"shifted\"==c.slice(-7)&&(c=c.slice(0,-7),f=!0);b=a.ecell.row;d=a.ecell.col;e=a.context.sheetobj.cells[a.ecell.coord];switch(c){case \"[adown]\":b+=e&&e.rowspan||1;break;case \"[aup]\":b--;g=-1;break;case \"[pgdn]\":b+=a.pageUpDnAmount-1+(e&&e.rowspan||1);break;case \"[pgup]\":b-=a.pageUpDnAmount;g=-1;break;case \"[aright]\":d+=e&&e.colspan||1;break;case \"[aleft]\":d--;g=-1;break;case \"[home]\":d=b=1;break;default:return null}a.context.sheetobj.attribs.usermaxcol&&\n(d=Math.min(a.context.sheetobj.attribs.usermaxcol,d));for(a.context.sheetobj.attribs.usermaxrow&&(b=Math.min(a.context.sheetobj.attribs.usermaxrow,b));\"yes\"==a.context.sheetobj.colattribs.hide[SocialCalc.rcColname(d)];)d+=g,1>d&&(g=-g,d=1);for(;\"yes\"==a.context.sheetobj.rowattribs.hide[b];)b+=g,1>b&&(g=-g,b=1);a.range.hasrange||f&&a.RangeAnchor();b=a.MoveECell(SocialCalc.crToCoord(d,b));a.range.hasrange&&(f?a.RangeExtend():a.RangeRemove());return b};\nSocialCalc.MoveECell=function(a,c){var b,d,e=a.context.highlights;b=SocialCalc.coordToCr(c);a.context.sheetobj.attribs.usermaxcol&&b.col>a.context.sheetobj.attribs.usermaxcol&&(b.col=a.context.sheetobj.attribs.usermaxcol);a.context.sheetobj.attribs.usermaxrow&&b.row>a.context.sheetobj.attribs.usermaxrow&&(b.row=a.context.sheetobj.attribs.usermaxrow);c=SocialCalc.crToCoord(b.col,b.row);if(a.ecell){if(a.ecell.coord==c)return c;b=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col);delete e[a.ecell.coord];\na.range2.hasrange&&a.ecell.row>=a.range2.top&&a.ecell.row<=a.range2.bottom&&a.ecell.col>=a.range2.left&&a.ecell.col<=a.range2.right&&(e[a.ecell.coord]=\"range2\");a.UpdateCellCSS(b,a.ecell.row,a.ecell.col);a.SetECellHeaders(\"\");a.cellhandles.ShowCellHandles(!1)}c=a.context.cellskip[c]||c;a.ecell=SocialCalc.coordToCr(c);a.ecell.coord=c;b=SocialCalc.GetEditorCellElement(a,a.ecell.row,a.ecell.col);e[c]=\"cursor\";for(d in a.MoveECellCallback)a.MoveECellCallback[d](a);a.UpdateCellCSS(b,a.ecell.row,a.ecell.col);\na.SetECellHeaders(\"selected\");for(d in a.StatusCallback)a.StatusCallback[d].func(a,\"moveecell\",c,a.StatusCallback[d].params);a.busy?a.ensureecell=!0:(a.ensureecell=!1,a.EnsureECellVisible());return c};\nSocialCalc.EnsureECellVisible=function(a){var c=0,b=0;a.ecell.row>a.lastnonscrollingrow&&(a.ecell.row<a.firstscrollingrow?c=a.ecell.row-a.firstscrollingrow:a.ecell.row>a.lastvisiblerow&&(c=a.ecell.row-a.lastvisiblerow));a.ecell.col>a.lastnonscrollingcol&&(a.ecell.col<a.firstscrollingcol?b=a.ecell.col-a.firstscrollingcol:a.ecell.col>a.lastvisiblecol&&(b=a.ecell.col-a.lastvisiblecol));0!=c||0!=b?a.ScrollRelativeBoth(c,b):a.cellhandles.ShowCellHandles(!0)};\nSocialCalc.ReplaceCell=function(a,c,b,d){var e;if(c&&(a=a.context.RenderCell(b,d,c.rowpane,c.colpane,!0,null)))for(e in c.element.innerHTML=a.innerHTML,c.element.style.cssText=\"\",c.element.className=a.className,a.style)\"cssText\"!=a.style[e]&&(c.element.style[e]=a.style[e])};\nSocialCalc.UpdateCellCSS=function(a,c,b,d){var e;if(c&&(a=a.context.RenderCell(b,d,c.rowpane,c.colpane,!0,null)))for(e in c.element.style.cssText=\"\",c.element.className=a.className,a.style)\"cssText\"!=a.style[e]&&(c.element.style[e]=a.style[e])};\nSocialCalc.SetECellHeaders=function(a,c){var b=a.ecell,d=a.context,e,f,g,l=0,h=0,m;if(b){for(;\"yes\"==d.sheetobj.colattribs.hide[SocialCalc.rcColname(b.col)];)b.col++;for(;\"yes\"==d.sheetobj.rowattribs.hide[b.row];)b.row++;b.coord=SocialCalc.crToCoord(b.col,b.row);for(e=0;e<d.rowpanes.length;e++)f=d.rowpanes[e].first,g=d.rowpanes[e].last,b.row>=f&&b.row<=g&&(m=a.fullgrid.childNodes[1].childNodes[2+l+b.row-f].childNodes[0])&&(d.classnames&&(m.className=d.classnames[c+\"rowname\"]),d.explicitStyles&&(m.style.cssText=\nd.explicitStyles[c+\"rowname\"]),m.style.verticalAlign=\"top\"),l+=g-f+2;for(e=0;e<d.colpanes.length;e++)f=d.colpanes[e].first,g=d.colpanes[e].last,b.col>=f&&b.col<=g&&(m=a.fullgrid.childNodes[1].childNodes[1].childNodes[1+h+b.col-f])&&(d.classnames&&(m.className=d.classnames[c+\"colname\"]),d.explicitStyles&&(m.style.cssText=d.explicitStyles[c+\"colname\"])),h+=g-f+2}};SocialCalc.ECellReadonly=function(a,c){!c&&a.ecell&&(c=a.ecell.coord);if(!c)return!1;var b=a.context.sheetobj.cells[c];return b&&b.readonly};\nSocialCalc.RangeAnchor=function(a,c){a.range.hasrange&&a.RangeRemove();a.RangeExtend(c)};\nSocialCalc.RangeExtend=function(a,c){var b,d,e,f,g,l,h=a.context.highlights;b=a.range;d=a.range2;c?(f=SocialCalc.coordToCr(c),f.coord=c):f=a.ecell;if(f){b.hasrange||(b.anchorcoord=f.coord,b.anchorrow=f.row,b.top=f.row,b.bottom=f.row,b.anchorcol=f.col,b.left=f.col,b.right=f.col,b.hasrange=!0);b.anchorrow<f.row?(b.top=b.anchorrow,b.bottom=f.row):(b.top=f.row,b.bottom=b.anchorrow);b.anchorcol<f.col?(b.left=b.anchorcol,b.right=f.col):(b.left=f.col,b.right=b.anchorcol);for(e in h)switch(h[e]){case \"range\":h[e]=\n\"unrange\";break;case \"range2\":h[e]=\"unrange2\"}for(f=b.top;f<=b.bottom;f++)for(g=b.left;g<=b.right;g++)switch(e=SocialCalc.crToCoord(g,f),h[e]){case \"unrange\":h[e]=\"range\";break;case \"cursor\":break;default:h[e]=\"newrange\"}for(f=d.top;d.hasrange&&f<=d.bottom;f++)for(g=d.left;g<=d.right;g++)switch(e=SocialCalc.crToCoord(g,f),h[e]){case \"unrange2\":h[e]=\"range2\";break;case \"range\":case \"newrange\":case \"cursor\":break;default:h[e]=\"newrange2\"}for(e in h){switch(h[e]){case \"unrange\":delete h[e];break;case \"newrange\":h[e]=\n\"range\";break;case \"newrange2\":h[e]=\"range2\";break;case \"range\":case \"range2\":case \"cursor\":continue}d=SocialCalc.coordToCr(e);b=SocialCalc.GetEditorCellElement(a,d.row,d.col);a.UpdateCellCSS(b,d.row,d.col)}for(l in a.RangeChangeCallback)a.RangeChangeCallback[l](a);e=SocialCalc.crToCoord(a.range.left,a.range.top);if(a.range.left!=a.range.right||a.range.top!=a.range.bottom)e+=\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom);for(l in a.StatusCallback)a.StatusCallback[l].func(a,\"rangechange\",e,\na.StatusCallback[l].params)}};\nSocialCalc.RangeRemove=function(a){var c,b,d,e,f=a.context.highlights,g=a.range,l=a.range2;if(g.hasrange||l.hasrange){for(c=l.top;l.hasrange&&c<=l.bottom;c++)for(b=l.left;b<=l.right;b++)switch(d=SocialCalc.crToCoord(b,c),f[d]){case \"range\":f[d]=\"newrange2\";break;case \"range2\":case \"cursor\":break;default:f[d]=\"newrange2\"}for(d in f){switch(f[d]){case \"range\":delete f[d];break;case \"newrange2\":f[d]=\"range2\";break;case \"cursor\":continue}b=SocialCalc.coordToCr(d);c=SocialCalc.GetEditorCellElement(a,b.row,\nb.col);a.UpdateCellCSS(c,b.row,b.col)}g.hasrange=!1;for(e in a.RangeChangeCallback)a.RangeChangeCallback[e](a);for(e in a.StatusCallback)a.StatusCallback[e].func(a,\"rangechange\",\"\",a.StatusCallback[e].params)}};\nSocialCalc.Range2Remove=function(a){var c,b,d,e=a.context.highlights,f=a.range2;if(f.hasrange){for(d in e){switch(e[d]){case \"range2\":delete e[d];break;case \"range\":case \"cursor\":continue}b=SocialCalc.coordToCr(d);c=SocialCalc.GetEditorCellElement(a,b.row,b.col);a.UpdateCellCSS(c,b.row,b.col)}f.hasrange=!1}};\nSocialCalc.FitToEditTable=function(a){var c,b,d,e=a.context,f=e.sheetobj;d=e.showRCHeaders?e.rownamewidth-0:0;for(colpane=0;colpane<e.colpanes.length-1;colpane++)for(c=e.colpanes[colpane].first;c<=e.colpanes[colpane].last;c++)if(b=SocialCalc.rcColname(c),\"yes\"!=f.colattribs.hide[b]){b=f.colattribs.width[b]||f.attribs.defaultcolwidth||SocialCalc.Constants.defaultColWidth;if(\"blank\"==b||\"auto\"==b)b=\"\";d+=b&&0<b-0?b-0:10}for(c=e.colpanes[colpane].first;1E4>=c;c++){b=SocialCalc.rcColname(c);if(\"yes\"!=\nf.colattribs.hide[b]){b=f.colattribs.width[b]||f.attribs.defaultcolwidth||SocialCalc.Constants.defaultColWidth;if(\"blank\"==b||\"auto\"==b)b=\"\";d+=b&&0<b-0?b-0:10}if(d>a.tablewidth)break}e.colpanes[colpane].last=e.sheetobj.attribs.usermaxcol||c;d=e.showRCHeaders?1:0;for(c=0;c<e.rowpanes.length-1;c++)for(d+=e.rowpanes[c].last-e.rowpanes[c].first+1,b=e.rowpanes[c].first;b<=e.rowpanes[c].last;b++)\"yes\"==f.rowattribs.hide[b]&&d--;a=a.tableheight-d*e.pixelsPerRow;e.rowpanes[c].last=e.sheetobj.attribs.usermaxrow||\ne.rowpanes[c].first+Math.floor(a/e.pixelsPerRow)+1};\nSocialCalc.CalculateEditorPositions=function(a){var c;a.gridposition=SocialCalc.GetElementPosition(a.griddiv);c=a.griddiv.firstChild.lastChild.childNodes[1].childNodes[0];a.headposition=SocialCalc.GetElementPosition(c);a.headposition.left+=c.offsetWidth;a.headposition.top+=c.offsetHeight;a.rowpositions=[];for(c=0;c<a.context.rowpanes.length;c++)a.CalculateRowPositions(c,a.rowpositions,a.rowheight);for(c=0;c<a.rowpositions.length&&!(a.rowpositions[c]>a.gridposition.top+a.tableheight);c++);a.lastvisiblerow=\nc-1;a.colpositions=[];for(c=0;c<a.context.colpanes.length;c++)a.CalculateColPositions(c,a.colpositions,a.colwidth);for(c=0;c<a.colpositions.length&&!(a.colpositions[c]>a.gridposition.left+a.tablewidth);c++);a.lastvisiblecol=c-1;for(a.firstscrollingrow=a.context.rowpanes[a.context.rowpanes.length-1].first;\"yes\"==a.context.sheetobj.rowattribs.hide[a.firstscrollingrow];)a.firstscrollingrow++;a.firstscrollingrowtop=a.rowpositions[a.firstscrollingrow]||a.headposition.top;a.lastnonscrollingrow=0<a.context.rowpanes.length-\n1?a.context.rowpanes[a.context.rowpanes.length-2].last:0;for(a.firstscrollingcol=a.context.colpanes[a.context.colpanes.length-1].first;\"yes\"==a.context.sheetobj.colattribs.hide[SocialCalc.rcColname(a.firstscrollingcol)];)a.firstscrollingcol++;a.firstscrollingcolleft=a.colpositions[a.firstscrollingcol]||a.headposition.left;a.lastnonscrollingcol=0<a.context.colpanes.length-1?a.context.colpanes[a.context.colpanes.length-2].last:0;a.verticaltablecontrol.ComputeTableControlPositions();a.horizontaltablecontrol.ComputeTableControlPositions()};\nSocialCalc.ScheduleRender=function(a){a.timeout&&window.clearTimeout(a.timeout);SocialCalc.EditorSheetStatusCallback(null,\"schedrender\",null,a);a.timeout=window.setTimeout(function(){SocialCalc.DoRenderStep(a)},1)};SocialCalc.DoRenderStep=function(a){a.timeout=null;a.EditorRenderSheet();SocialCalc.EditorSheetStatusCallback(null,\"renderdone\",null,a);SocialCalc.EditorSheetStatusCallback(null,\"schedposcalc\",null,a);a.timeout=window.setTimeout(function(){SocialCalc.DoPositionCalculations(a)},1)};\nSocialCalc.SchedulePositionCalculations=function(a){SocialCalc.EditorSheetStatusCallback(null,\"schedposcalc\",null,a);a.timeout=window.setTimeout(function(){SocialCalc.DoPositionCalculations(a)},1)};\nSocialCalc.DoPositionCalculations=function(a){a.timeout=null;a.CalculateEditorPositions();a.verticaltablecontrol.PositionTableControlElements();a.horizontaltablecontrol.PositionTableControlElements();SocialCalc.EditorSheetStatusCallback(null,\"doneposcalc\",null,a);a.ensureecell&&a.ecell&&!a.deferredCommands.length&&(a.ensureecell=!1,a.EnsureECellVisible());a.cellhandles.ShowCellHandles(!0)};\nSocialCalc.CalculateRowPositions=function(a,c,b,d){var e,f,g,l,h=a.context,m;if(!h.showRCHeaders)throw\"Needs showRCHeaders=true\";m=a.fullgrid.lastChild;a=2;for(e=0;e<c;e++)a+=h.rowpanes[e].last-h.rowpanes[e].first+2;f=0;for(c=h.rowpanes[e].first;c<=h.rowpanes[e].last;c++)g=m.childNodes[a+f],f++,l=SocialCalc.GetElementPosition(g.firstChild),b[c]||(b[c]=l.top,d[c]=g.firstChild.offsetHeight)};\nSocialCalc.CalculateColPositions=function(a,c,b,d){var e,f,g,l,h=a.context;if(!h.showRCHeaders)throw\"Needs showRCHeaders=true\";f=a.fullgrid.lastChild;a=1;for(e=0;e<c;e++)a+=h.colpanes[e].last-h.colpanes[e].first+2;g=f.childNodes[1];f=0;for(c=h.colpanes[e].first;c<=h.colpanes[e].last;c++)l=SocialCalc.GetElementPosition(g.childNodes[a+f]),b[c]||(b[c]=l.left,g.childNodes[a+f]&&(d[c]=g.childNodes[a+f].offsetWidth)),f++};\nSocialCalc.ScrollRelative=function(a,c,b){c?a.ScrollRelativeBoth(b,0):a.ScrollRelativeBoth(0,b)};\nSocialCalc.ScrollRelativeBoth=function(a,c,b){var d=a.context,e=0<c?1:-1,f=0<b?1:-1,g=d.rowpanes.length,l=1<g?d.rowpanes[g-2].last+1:1;d.rowpanes[g-1].first+c<l&&(c=-d.rowpanes[g-1].first+l);var l=d.colpanes.length,h=1<l?d.colpanes[l-2].last+1:1;for(d.colpanes[l-1].first+b<h&&(b=-d.colpanes[l-1].first+h);\"yes\"==d.sheetobj.colattribs.hide[SocialCalc.rcColname(d.colpanes[l-1].first+b)];)if(b+=f,1>b){b=0;break}for(;\"yes\"==d.sheetobj.rowattribs.hide[d.rowpanes[g-1].first+c];)if(c+=e,1>c){c=0;break}if((1==\nc||-1==c)&&0==b)1==c?a.ScrollTableUpOneRow():a.ScrollTableDownOneRow(),a.ecell&&a.SetECellHeaders(\"selected\"),a.SchedulePositionCalculations();else if(0!=c||0!=b)d.rowpanes[g-1].first+=c,d.rowpanes[g-1].last+=c,d.colpanes[l-1].first+=b,d.colpanes[l-1].last+=b,a.LimitLastPanes(),a.FitToEditTable(),a.ScheduleRender()};\nSocialCalc.PageRelative=function(a,c,b){var d=a.context,e=c?\"rowpanes\":\"colpanes\",d=d[e][d[e].length-1],f=c?\"lastvisiblerow\":\"lastvisiblecol\",e=c?a.rowheight:a.colwidth,g=c?SocialCalc.Constants.defaultAssumedRowHeight:SocialCalc.Constants.defaultColWidth;if(0<b)c=a[f],c==d.first&&(c+=1);else{b=c?a.tableheight-(a.firstscrollingrowtop-a.gridposition.top):a.tablewidth-(a.firstscrollingcolleft-a.gridposition.left);b-=0<e[a[f]]?e[a[f]]:g;for(c=d.first-1;0<c;c--){f=0<e[c]?e[c]:g;if(b<f)break;b-=f}e=d.first;\nc>=e&&(c=e-1);1>c&&(c=1)}d.first=c;d.last=c+1;a.LimitLastPanes();a.FitToEditTable();a.ScheduleRender()};\nSocialCalc.LimitLastPanes=function(a){a=a.context;var c;c=a.rowpanes.length;1<c&&a.rowpanes[c-1].first<=a.rowpanes[c-2].last&&(a.rowpanes[c-1].first=a.rowpanes[c-2].last+1);a.sheetobj.attribs.usermaxrow&&a.rowpanes[c-1].first>a.sheetobj.attribs.usermaxrow&&(a.rowpanes[c-1].first=a.sheetobj.attribs.usermaxrow);c=a.colpanes.length;1<c&&a.colpanes[c-1].first<=a.colpanes[c-2].last&&(a.colpanes[c-1].first=a.colpanes[c-2].last+1);a.sheetobj.attribs.usermaxcol&&a.colpanes[c-1].first>a.sheetobj.attribs.usermaxcol&&\n(a.colpanes[c-1].first=a.sheetobj.attribs.usermaxcol)};\nSocialCalc.ScrollTableUpOneRow=function(a){var c,b,d,e,f,g,l={},h=a.context,m=h.sheetobj,p=a.fullgrid,r;r=p.lastChild;c=h.showRCHeaders?2:1;for(b=0;b<h.rowpanes.length-1;b++)c+=h.rowpanes[b].last-h.rowpanes[b].first+2;if(h.sheetobj.attribs.usermaxrow&&1>h.sheetobj.attribs.usermaxrow-h.rowpanes[b].first)return p;r.removeChild(r.childNodes[c]);h.rowpanes[b].first++;h.rowpanes[b].last++;a.FitToEditTable();h.CalculateColWidthData();h.sheetobj.attribs.usermaxrow&&h.rowpanes[b].last==h.sheetobj.attribs.usermaxrow||\n(a=h.RenderRow(h.rowpanes[b].last,b),r.appendChild(a));maxrowspan=1;a=h.rowpanes[b].first-1;for(f=0;f<h.colpanes.length;f++)for(e=h.colpanes[f].first;e<=h.colpanes[f].last;e++)coord=SocialCalc.crToCoord(e,a),h.cellskip[coord]||(g=m.cells[coord])&&g.rowspan>maxrowspan&&(maxrowspan=g.rowspan);if(1<maxrowspan)for(d=1;d<maxrowspan&&!(d+a>=h.rowpanes[b].last);d++)e=h.RenderRow(d+a,b),f=r.childNodes[c+d-1],r.replaceChild(e,f);a=h.rowpanes[b].last;for(f=0;f<h.colpanes.length;f++)for(e=h.colpanes[f].first;e<=\nh.colpanes[f].last;e++)if(coord=h.cellskip[SocialCalc.crToCoord(e,a)])d=h.coordToCR[coord].row-0,d==h.rowpanes[b].last||d<h.rowpanes[b].first||(g=m.cells[coord])&&1<g.rowspan&&(l[d]=!0);for(d in l)e=h.RenderRow(d,b),f=r.childNodes[c+(d-h.rowpanes[b].first)],r.replaceChild(e,f);return p};\nSocialCalc.ScrollTableDownOneRow=function(a){var c,b,d,e,f,g,l={},h=a.context,m=h.sheetobj,p=a.fullgrid,r;r=p.lastChild;c=h.showRCHeaders?2:1;for(b=0;b<h.rowpanes.length-1;b++)c+=h.rowpanes[b].last-h.rowpanes[b].first+2;h.sheetobj.attribs.usermaxrow||r.removeChild(r.childNodes[c+(h.rowpanes[b].last-h.rowpanes[b].first)]);h.rowpanes[b].first--;h.rowpanes[b].last--;a.FitToEditTable();h.CalculateColWidthData();e=h.RenderRow(h.rowpanes[b].first,b);r.insertBefore(e,r.childNodes[c]);maxrowspan=1;a=h.rowpanes[b].first;\nfor(f=0;f<h.colpanes.length;f++)for(e=h.colpanes[f].first;e<=h.colpanes[f].last;e++)coord=SocialCalc.crToCoord(e,a),h.cellskip[coord]||(g=m.cells[coord])&&g.rowspan>maxrowspan&&(maxrowspan=g.rowspan);if(1<maxrowspan)for(d=1;d<maxrowspan&&!(d+a>h.rowpanes[b].last);d++)e=h.RenderRow(d+a,b),f=r.childNodes[c+d],r.replaceChild(e,f);a=h.rowpanes[b].last;for(f=0;f<h.colpanes.length;f++)for(e=h.colpanes[f].first;e<=h.colpanes[f].last;e++)if(coord=SocialCalc.crToCoord(e,a),(g=m.cells[coord])&&1<g.rowspan)l[a]=\n!0;else if(coord=h.cellskip[SocialCalc.crToCoord(e,a)])d=h.coordToCR[coord].row-0,d==a||d<h.rowpanes[b].first||(g=m.cells[coord])&&1<g.rowspan&&(l[d]=!0);for(d in l)e=h.RenderRow(d,b),f=r.childNodes[c+(d-h.rowpanes[b].first)],r.replaceChild(e,f);return p};SocialCalc.InputBox=function(a,c){a&&(this.element=a,this.editor=c,this.inputEcho=null,c.inputBox=this,a.onmousedown=SocialCalc.InputBoxOnMouseDown,c.MoveECellCallback.formulabar=function(a){\"start\"==a.state&&c.inputBox.DisplayCellContents(a.ecell.coord)})};\nSocialCalc.InputBox.prototype.DisplayCellContents=function(a){SocialCalc.InputBoxDisplayCellContents(this,a)};SocialCalc.InputBox.prototype.ShowInputBox=function(a){this.editor.inputEcho.ShowInputEcho(a)};SocialCalc.InputBox.prototype.GetText=function(){return this.element.value};SocialCalc.InputBox.prototype.SetText=function(a){this.element&&(this.element.value=a,this.editor.inputEcho.SetText(a+\"_\"))};SocialCalc.InputBox.prototype.Focus=function(){SocialCalc.InputBoxFocus(this)};\nSocialCalc.InputBox.prototype.Blur=function(){return this.element.blur()};\nSocialCalc.InputBox.prototype.Select=function(a){if(this.element)switch(a){case \"end\":if(document.selection&&document.selection.createRange)try{var c=document.selection.createRange().duplicate();c.moveToElementText(this.element);c.collapse(!1);c.select()}catch(b){void 0!=this.element.selectionStart&&(this.element.selectionStart=this.element.value.length,this.element.selectionEnd=this.element.value.length)}else void 0!=this.element.selectionStart&&(this.element.selectionStart=this.element.value.length,\nthis.element.selectionEnd=this.element.value.length)}};SocialCalc.InputBoxDisplayCellContents=function(a,c){var b=SocialCalc.Constants;if(a){c||(c=a.editor.ecell.coord);var d=SocialCalc.GetCellContents(a.editor.context.sheetobj,c);-1!=d.indexOf(\"\\n\")?(d=b.s_inputboxdisplaymultilinetext,a.element.disabled=!0):a.editor.ECellReadonly()?a.element.disabled=!0:a.element.disabled=!1;a.SetText(d)}};\nSocialCalc.InputBoxFocus=function(a){if(a){a.element.focus();a=a.editor;a.state=\"input\";var c=a.workingvalues;c.partialexpr=\"\";c.ecoord=a.ecell.coord;c.erow=a.ecell.row;c.ecol=a.ecell.col}};\nSocialCalc.InputBoxOnMouseDown=function(a){a=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!a)return!0;var c=a.workingvalues;switch(a.state){case \"start\":a.state=\"inputboxdirect\";c.partialexpr=\"\";c.ecoord=a.ecell.coord;c.erow=a.ecell.row;c.ecol=a.ecell.col;a.inputEcho.ShowInputEcho(!0);break;case \"input\":c.partialexpr=\"\",a.MoveECell(c.ecoord),a.state=\"inputboxdirect\",SocialCalc.KeyboardFocus()}};\nSocialCalc.InputEcho=function(a){var c=SocialCalc.Constants;this.editor=a;this.text=\"\";this.functionbox=this.prompt=this.main=this.container=this.interval=null;this.container=document.createElement(\"div\");SocialCalc.setStyles(this.container,\"display:none;position:absolute;zIndex:10;\");this.main=document.createElement(\"div\");c.defaultInputEchoClass&&(this.main.className=c.defaultInputEchoClass);c.defaultInputEchoStyle&&SocialCalc.setStyles(this.main,c.defaultInputEchoStyle);this.main.innerHTML=\" \";\nthis.container.appendChild(this.main);this.prompt=document.createElement(\"div\");c.defaultInputEchoPromptClass&&(this.prompt.className=c.defaultInputEchoPromptClass);c.defaultInputEchoPromptStyle&&SocialCalc.setStyles(this.prompt,c.defaultInputEchoPromptStyle);this.prompt.innerHTML=\"\";this.container.appendChild(this.prompt);SocialCalc.DragRegister(this.main,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,\npositionobj:this.container},this.editor.toplevel);a.toplevel.appendChild(this.container)};SocialCalc.InputEcho.prototype.ShowInputEcho=function(a){return SocialCalc.ShowInputEcho(this,a)};SocialCalc.InputEcho.prototype.SetText=function(a){return SocialCalc.SetInputEchoText(this,a)};\nSocialCalc.ShowInputEcho=function(a,c){var b;if(b=a.editor)if(c){b.cellhandles.ShowCellHandles(!1);if(b=SocialCalc.GetEditorCellElement(b,b.ecell.row,b.ecell.col))b=SocialCalc.GetElementPosition(b.element),a.container.style.left=b.left-1+\"px\",a.container.style.top=b.top-1+\"px\";a.container.style.display=\"block\";a.interval&&window.clearInterval(a.interval);a.interval=window.setInterval(SocialCalc.InputEchoHeartbeat,50)}else a.interval&&window.clearInterval(a.interval),a.container.style.display=\"none\"};\nSocialCalc.SetInputEchoText=function(a,c){var b=SocialCalc.Constants,d;d=SocialCalc.special_chars(c);d=d.replace(/\\n/g,\"<br>\");a.text!=d&&(a.main.innerHTML=d,a.text=d);d=c.match(/.*[\\+\\-\\*\\/\\&\\^\\<\\>\\=\\,\\(]([A-Za-z][A-Za-z][\\w\\.]*?)\\([^\\)]*$/);\"=\"==c.charAt(0)&&d?(d=d[1].toUpperCase(),SocialCalc.Formula.FunctionList[d]?(SocialCalc.Formula.FillFunctionInfo(),b=SocialCalc.special_chars(d+\"(\"+SocialCalc.Formula.FunctionArgString(d)+\")\")):b=b.ietUnknownFunction+d,a.prompt.innerHTML!=b&&(a.prompt.innerHTML=\nb,a.prompt.style.display=\"block\")):\"none\"!=a.prompt.style.display&&(a.prompt.innerHTML=\"\",a.prompt.style.display=\"none\")};SocialCalc.InputEchoHeartbeat=function(){var a=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!a)return!0;a.inputEcho.SetText(a.inputBox.GetText()+\"_\")};SocialCalc.InputEchoMouseDown=function(a){a=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!a)return!0;a.inputBox.element.focus()};\nSocialCalc.CellHandles=function(a){if(!a.noEdit){this.editor=a;this.movedmouse=this.noCursorSuffix=!1;this.draghandle=document.createElement(\"div\");SocialCalc.setStyles(this.draghandle,\"display:none;position:absolute;zIndex:8;border:1px solid white;width:4px;height:4px;fontSize:1px;backgroundColor:#0E93D8;cursor:default;\");TiddlyWiki&&(this.draghandle.style.width=\"6px\",this.draghandle.style.height=\"6px\");this.draghandle.innerHTML=\" \";a.toplevel.appendChild(this.draghandle);SocialCalc.AssignID(a,\nthis.draghandle,\"draghandle\");var c=\"png\";navigator.userAgent.match(/MSIE 6\\.0/)&&(c=\"gif\");this.dragpalette=document.createElement(\"div\");SocialCalc.setStyles(this.dragpalette,\"display:none;position:absolute;zIndex:8;width:90px;height:90px;fontSize:1px;textAlign:center;cursor:default;backgroundImage:url(\"+SocialCalc.Constants.defaultImagePrefix+\"drag-handles.\"+c+\");\");this.dragpalette.innerHTML=\" \";a.toplevel.appendChild(this.dragpalette);SocialCalc.AssignID(a,this.dragpalette,\"dragpalette\");\nthis.dragtooltip=document.createElement(\"div\");SocialCalc.setStyles(this.dragtooltip,\"display:none;position:absolute;zIndex:9;border:1px solid black;width:100px;height:auto;fontSize:10px;backgroundColor:#FFFFFF;\");this.dragtooltip.innerHTML=\" \";a.toplevel.appendChild(this.dragtooltip);SocialCalc.AssignID(a,this.dragtooltip,\"dragtooltip\");this.fillinghandle=document.createElement(\"div\");SocialCalc.setStyles(this.fillinghandle,\"display:none;position:absolute;zIndex:9;border:1px solid black;width:auto;height:14px;fontSize:10px;backgroundColor:#FFFFFF;\");\nthis.fillinghandle.innerHTML=\" \";a.toplevel.appendChild(this.fillinghandle);SocialCalc.AssignID(a,this.fillinghandle,\"fillinghandle\");if(this.draghandle.addEventListener)this.draghandle.addEventListener(\"mousemove\",SocialCalc.CellHandlesMouseMoveOnHandle,!1),this.dragpalette.addEventListener(\"mousedown\",SocialCalc.CellHandlesMouseDown,!1),this.dragpalette.addEventListener(\"mousemove\",SocialCalc.CellHandlesMouseMoveOnHandle,!1);else if(this.draghandle.attachEvent)this.draghandle.attachEvent(\"onmousemove\",\nSocialCalc.CellHandlesMouseMoveOnHandle),this.dragpalette.attachEvent(\"onmousedown\",SocialCalc.CellHandlesMouseDown),this.dragpalette.attachEvent(\"onmousemove\",SocialCalc.CellHandlesMouseMoveOnHandle);else throw\"Browser not supported\";}};SocialCalc.CellHandles.prototype.ShowCellHandles=function(a,c){return SocialCalc.ShowCellHandles(this,a,c)};\nSocialCalc.ShowCellHandles=function(a,c,b){var d=a.editor,e=!1,f,g,l=1,h=1;if(d){if(c&&(f=d.ecell.row,g=d.ecell.col,\"start\"==d.state&&!(f>=d.lastvisiblerow||g>=d.lastvisiblecol||f<d.firstscrollingrow||g<d.firstscrollingcol))){for(;\"yes\"==d.context.sheetobj.colattribs.hide[SocialCalc.rcColname(g+l)];)l++;for(;\"yes\"==d.context.sheetobj.rowattribs.hide[f+h];)h++;c=d.context.sheetobj.cells[SocialCalc.crToCoord(g+l-1,f+h-1)];\"undefined\"!=typeof c&&(l+=(c.colspan||1)-1,h+=(c.rowspan||1)-1);d.rowpositions[f+\nh]+20>d.horizontaltablecontrol.controlborder||d.rowpositions[f+h]-10<d.headposition.top||d.colpositions[g+l]+20>d.verticaltablecontrol.controlborder||d.colpositions[g+l]-30<d.headposition.left||(a.draghandle.style.left=d.colpositions[g+l]-1+\"px\",a.draghandle.style.top=d.rowpositions[f+h]-1+\"px\",a.draghandle.style.display=\"block\",b&&(a.draghandle.style.display=\"none\",a.dragpalette.style.left=d.colpositions[g+l]-45+\"px\",a.dragpalette.style.top=d.rowpositions[f+h]-45+\"px\",a.dragpalette.style.display=\n\"block\",a.dragtooltip.style.left=d.colpositions[g+l]-45+\"px\",a.dragtooltip.style.top=d.rowpositions[f+h]+45+\"px\",a.dragtooltip.style.display=\"none\"),e=!0)}e||(a.draghandle.style.display=\"none\");b||(a.dragpalette.style.display=\"none\",a.dragtooltip.style.display=\"none\")}};\nSocialCalc.CellHandlesMouseMoveOnHandle=function(a){var c=SocialCalc.Constants,b=a||window.event,d=b.target||b.srcElement,e=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!e)return!0;a=e.cellhandles;if(!a.editor)return!0;var f=SocialCalc.GetElementPositionWithScroll(e.toplevel),g=b.clientX-f.left,b=b.clientY-f.top;if(!e.cellhandles.mouseDown){e.cellhandles.ShowCellHandles(!0,!0);if(d==a.dragpalette){c=SocialCalc.SegmentDivHit([c.CH_radius1,c.CH_radius2],e.cellhandles.dragpalette,\ng,b);if(0==c){SocialCalc.CellHandlesHoverTimeout();return}a.tooltipstimer&&(window.clearTimeout(a.tooltipstimer),a.tooltipstimer=null);a.tooltipswhichhandle=c;a.tooltipstimer=window.setTimeout(SocialCalc.CellHandlesTooltipsTimeout,700)}a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.timer=window.setTimeout(SocialCalc.CellHandlesHoverTimeout,3E3)}};\nSocialCalc.SegmentDivHit=function(a,c,b,d){var e=c.offsetWidth,f=c.offsetHeight,g=c.offsetLeft;c=c.offsetTop;var l=0,h=a,m=Math.sqrt(Math.pow(b-g-(e/2-.5),2)+Math.pow(d-c-(f/2-.5),2));if(2==h.length)return b>=g&&b<g+e/2&&d>=c&&d<c+f/2&&(m<=a[0]?l=-1:m<=a[1]&&(l=1)),b>=g+e/2&&b<g+e&&d>=c&&d<c+f/2&&(m<=a[0]?l=-2:m<=a[1]&&(l=2)),b>=g+e/2&&b<g+e&&d>=c+f/2&&d<c+f&&(m<=a[0]?l=-3:m<=a[1]&&(l=3)),b>=g&&b<g+e/2&&d>=c+f/2&&d<c+f&&(m<=a[0]?l=-4:m<=a[1]&&(l=4)),l;for(;;)if(b>=g&&b<g+e/2&&d>=c&&d<c+f/2){quadrant+=\n\"1\";l=h[0];if(\"number\"==typeof l)break;h=l;e/=2;f/=2}else if(b>=g+e/2&&b<g+e&&d>=c&&d<c+f/2){quadrant+=\"2\";l=h[1];if(\"number\"==typeof l)break;h=l;e/=2;g+=e;f/=2}else if(b>=g+e/2&&b<g+e&&d>=c+f/2&&d<c+f){quadrant+=\"3\";l=h[2];if(\"number\"==typeof l)break;h=l;e/=2;g+=e;f/=2;c+=f}else if(b>=g&&b<g+e/2&&d>=c+f/2&&d<c+f){quadrant+=\"4\";l=h[3];if(\"number\"==typeof l)break;h=l;e/=2;f/=2;c+=f}else return 0;return l};\nSocialCalc.CellHandlesHoverTimeout=function(){editor=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!editor)return!0;var a=editor.cellhandles;a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.tooltipstimer&&(window.clearTimeout(a.tooltipstimer),a.tooltipstimer=null);editor.cellhandles.ShowCellHandles(!0,!1)};\nSocialCalc.CellHandlesTooltipsTimeout=function(){editor=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!editor)return!0;var a=editor.cellhandles;a.tooltipstimer&&(window.clearTimeout(a.tooltipstimer),a.tooltipstimer=null);var c=a.tooltipswhichhandle;if(0==c)SocialCalc.CellHandlesHoverTimeout();else{if(-3==c)a.dragtooltip.innerHTML=scc.s_CHfillAllTooltip;else if(3==c)a.dragtooltip.innerHTML=scc.s_CHfillContentsTooltip;else if(-2==c)a.dragtooltip.innerHTML=scc.s_CHmovePasteAllTooltip;\nelse if(-4==c)a.dragtooltip.innerHTML=scc.s_CHmoveInsertAllTooltip;else if(2==c)a.dragtooltip.innerHTML=scc.s_CHmovePasteContentsTooltip;else if(4==c)a.dragtooltip.innerHTML=scc.s_CHmoveInsertContentsTooltip;else{a.dragtooltip.innerHTML=\" \";a.dragtooltip.style.display=\"none\";return}a.dragtooltip.style.display=\"block\"}};\nSocialCalc.CellHandlesMouseDown=function(a){var c=SocialCalc.Constants,b,d=a||window.event,e=SocialCalc.EditorMouseInfo;a=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;if(!a)return!0;if(!a.busy){var f=a.cellhandles;f.movedmouse=!1;var g=SocialCalc.GetElementPositionWithScroll(a.toplevel),l=d.clientX-g.left,g=d.clientY-g.top;f.timer&&(window.clearTimeout(f.timer),f.timer=null);f.tooltipstimer&&(window.clearTimeout(f.tooltipstimer),f.tooltipstimer=null);f.dragtooltip.innerHTML=\" \";\nf.dragtooltip.style.display=\"none\";b=a.range;var h=SocialCalc.SegmentDivHit([c.CH_radius1,c.CH_radius2],a.cellhandles.dragpalette,l,g);if(1==h||-1==h||0==h)f.ShowCellHandles(!0,!1);else{e.ignore=!0;-3==h?(f.dragtype=\"Fill\",f.noCursorSuffix=!1):3==h?(f.dragtype=\"FillC\",f.noCursorSuffix=!1):-2==h?(f.dragtype=\"Move\",f.noCursorSuffix=!0):-4==h?(f.dragtype=\"MoveI\",f.noCursorSuffix=!1):2==h?(f.dragtype=\"MoveC\",f.noCursorSuffix=!0):4==h&&(f.dragtype=\"MoveIC\",f.noCursorSuffix=!1);f.filltype=null;switch(f.dragtype){case \"Fill\":case \"FillC\":b.hasrange||\na.RangeAnchor();break;case \"Move\":case \"MoveI\":case \"MoveC\":case \"MoveIC\":b.hasrange||a.RangeAnchor();a.range2.top=a.range.top;a.range2.right=a.range.right;a.range2.bottom=a.range.bottom;a.range2.left=a.range.left;a.range2.hasrange=!0;a.RangeRemove();break;default:return}f.fillinghandle.style.left=l+\"px\";f.fillinghandle.style.top=g-17+\"px\";f.fillinghandle.innerHTML=c.s_CHindicatorOperationLookup[f.dragtype]+(c.s_CHindicatorDirectionLookup[a.cellhandles.filltype]||\"\");f.fillinghandle.style.display=\n\"block\";f.ShowCellHandles(!0,!1);f.mouseDown=!0;e.editor=a;c=a.ecell.coord;f.startingcoord=c;f.startingX=l;f.startingY=g;e.mouselastcoord=c;SocialCalc.KeyboardSetFocus(a);document.addEventListener?(document.addEventListener(\"mousemove\",SocialCalc.CellHandlesMouseMove,!0),document.addEventListener(\"mouseup\",SocialCalc.CellHandlesMouseUp,!0)):f.draghandle.attachEvent&&(f.draghandle.setCapture(),f.draghandle.attachEvent(\"onmousemove\",SocialCalc.CellHandlesMouseMove),f.draghandle.attachEvent(\"onmouseup\",\nSocialCalc.CellHandlesMouseUp),f.draghandle.attachEvent(\"onlosecapture\",SocialCalc.CellHandlesMouseUp));d.stopPropagation?d.stopPropagation():d.cancelBubble=!0;d.preventDefault?d.preventDefault():d.returnValue=!1}}};\nSocialCalc.CellHandlesMouseMove=function(a){var c=SocialCalc.Constants,b,d,e,f=a||window.event,g=SocialCalc.EditorMouseInfo;if(a=g.editor){var l=a.cellhandles;b=SocialCalc.GetElementPositionWithScroll(a.toplevel);var h=f.clientX-b.left,m=f.clientY-b.top;if(b=SocialCalc.GridMousePosition(a,h,m))if(b&&!b.coord)SocialCalc.SetDragAutoRepeat(a,b,SocialCalc.CellHandlesDragAutoRepeat);else if(SocialCalc.SetDragAutoRepeat(a,null),b.coord){d=SocialCalc.coordToCr(a.cellhandles.startingcoord);e=SocialCalc.coordToCr(b.coord);\nl.movedmouse=!0;switch(l.dragtype){case \"Fill\":case \"FillC\":b.coord==l.startingcoord?(l.filltype=null,l.startingX=h,l.startingY=m):l.filltype?\"Down\"==l.filltype?(e.col=d.col,e.row<d.row&&(e.row=d.row)):(e.row=d.row,e.col<d.col&&(e.col=d.col)):(10<Math.abs(m-l.startingY)?l.filltype=\"Down\":10<Math.abs(h-l.startingX)&&(l.filltype=\"Right\"),e.col=d.col,e.row=d.row);b.coord=SocialCalc.crToCoord(e.col,e.row);b.coord!=g.mouselastcoord&&(a.MoveECell(b.coord),a.RangeExtend());break;case \"Move\":case \"MoveC\":b.coord!=\ng.mouselastcoord&&(a.MoveECell(b.coord),d=a.range2.right-a.range2.left+b.col,e=a.range2.bottom-a.range2.top+b.row,a.RangeAnchor(SocialCalc.crToCoord(d,e)),a.RangeExtend());break;case \"MoveI\":case \"MoveIC\":b.coord==l.startingcoord?(l.filltype=null,l.startingX=h,l.startingY=m):l.filltype?\"Vertical\"==l.filltype?(e.col=a.range2.left,e.row>=a.range2.top&&e.row<=a.range2.bottom+1&&(e.row=a.range2.bottom+2)):(e.row=a.range2.top,e.col>=a.range2.left&&e.col<=a.range2.right+1&&(e.col=a.range2.right+2)):(10<\nMath.abs(m-l.startingY)?l.filltype=\"Vertical\":10<Math.abs(h-l.startingX)&&(l.filltype=\"Horizontal\"),e.col=d.col,e.row=d.row),b.coord=SocialCalc.crToCoord(e.col,e.row),b.coord!=g.mouselastcoord&&(a.MoveECell(b.coord),l.filltype?(d=a.range2.right-a.range2.left+e.col,e=a.range2.bottom-a.range2.top+e.row,a.RangeAnchor(SocialCalc.crToCoord(d,e)),a.RangeExtend()):a.RangeRemove())}l.fillinghandle.style.left=h+\"px\";l.fillinghandle.style.top=m-17+\"px\";l.fillinghandle.innerHTML=c.s_CHindicatorOperationLookup[l.dragtype]+\n(c.s_CHindicatorDirectionLookup[a.cellhandles.filltype]||\"\");l.fillinghandle.style.display=\"block\";g.mouselastcoord=b.coord;f.stopPropagation?f.stopPropagation():f.cancelBubble=!0;f.preventDefault?f.preventDefault():f.returnValue=!1}}};\nSocialCalc.CellHandlesDragAutoRepeat=function(a,c){var b=SocialCalc.EditorMouseInfo,d=b.editor;if(d){var e=d.cellhandles,f=SocialCalc.coordToCr(d.cellhandles.startingcoord),g=SocialCalc.coordToCr(a),l,h=0,m=0;\"left\"==c?m=-1:\"right\"==c?m=1:\"up\"==c?h=-1:\"down\"==c&&(h=1);d.ScrollRelativeBoth(h,m);switch(e.dragtype){case \"Fill\":case \"FillC\":e.filltype?\"Down\"==e.filltype?(g.col=f.col,g.row<f.row&&(g.row=f.row)):(g.row=f.row,g.col<f.col&&(g.col=f.col)):(g.col=f.col,g.row=f.row);l=SocialCalc.crToCoord(g.col,\ng.row);l!=b.mouselastcoord&&(d.MoveECell(a),d.RangeExtend());break;case \"Move\":case \"MoveC\":a!=b.mouselastcoord&&(d.MoveECell(a),e=d.range2.right-d.range2.left+d.ecell.col,g=d.range2.bottom-d.range2.top+d.ecell.row,d.RangeAnchor(SocialCalc.crToCoord(e,g)),d.RangeExtend());break;case \"MoveI\":case \"MoveIC\":e.filltype?\"Vertical\"==e.filltype?(g.col=d.range2.left,g.row>=d.range2.top&&g.row<=d.range2.bottom+1&&(g.row=d.range2.bottom+2)):(g.row=d.range2.top,g.col>=d.range2.left&&g.col<=d.range2.right+1&&\n(g.col=d.range2.right+2)):(g.col=f.col,g.row=f.row),l=SocialCalc.crToCoord(g.col,g.row),l!=b.mouselastcoord&&(d.MoveECell(l),e=d.range2.right-d.range2.left+g.col,g=d.range2.bottom-d.range2.top+g.row,d.RangeAnchor(SocialCalc.crToCoord(e,g)),d.RangeExtend())}b.mouselastcoord=l}};\nSocialCalc.CellHandlesMouseUp=function(a){var c,b,d,e,f,g=a||window.event,l=SocialCalc.EditorMouseInfo;if(a=l.editor){var h=a.cellhandles;l.ignore=!1;c=SocialCalc.GetElementPositionWithScroll(a.toplevel);c=SocialCalc.GridMousePosition(a,g.clientX-c.left,g.clientY-c.top);SocialCalc.SetDragAutoRepeat(a,null);h.mouseDown=!1;h.noCursorSuffix=!1;h.fillinghandle.style.display=\"none\";c||(c={});c.coord||(c.coord=a.ecell.coord);switch(h.dragtype){case \"Fill\":case \"Move\":case \"MoveI\":b=\" all\";break;case \"FillC\":case \"MoveC\":case \"MoveIC\":b=\n\" formulas\"}h.movedmouse||(h.dragtype=\"Nothing\");switch(h.dragtype){case \"Nothing\":a.Range2Remove();a.RangeRemove();break;case \"Fill\":case \"FillC\":d=SocialCalc.coordToCr(h.startingcoord);e=SocialCalc.coordToCr(c.coord);h.filltype&&(\"Down\"==h.filltype?e.col=d.col:e.row=d.row);c.coord=SocialCalc.crToCoord(e.col,e.row);a.MoveECell(c.coord);a.RangeExtend();c=\"Right\"==a.cellhandles.filltype?\"right\":\"down\";b=\"fill\"+c+\" \"+SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,\na.range.bottom)+b;a.EditorScheduleSheetCommands(b,!0,!1);break;case \"Move\":case \"MoveC\":a.context.cursorsuffix=\"\";b=\"movepaste \"+SocialCalc.crToCoord(a.range2.left,a.range2.top)+\":\"+SocialCalc.crToCoord(a.range2.right,a.range2.bottom)+\" \"+a.ecell.coord+b;a.EditorScheduleSheetCommands(b,!0,!1);a.Range2Remove();break;case \"MoveI\":case \"MoveIC\":a.context.cursorsuffix=\"\",c=a.range2.right-a.range2.left,d=a.range2.bottom-a.range2.top,e=a.ecell.col-a.range2.left,f=a.ecell.row-a.range2.top,b=\"moveinsert \"+\nSocialCalc.crToCoord(a.range2.left,a.range2.top)+\":\"+SocialCalc.crToCoord(a.range2.right,a.range2.bottom)+\" \"+a.ecell.coord+b,a.EditorScheduleSheetCommands(b,!0,!1),a.Range2Remove(),a.RangeRemove(),\" Horizontal\"==a.cellhandles.filltype&&0<e?a.MoveECell(SocialCalc.crToCoord(a.ecell.col-c-1,a.ecell.row)):\" Vertical\"==a.cellhandles.filltype&&0<f&&a.MoveECell(SocialCalc.crToCoord(a.ecell.col,a.ecell.row-d-1)),a.RangeAnchor(SocialCalc.crToCoord(a.ecell.col+c,a.ecell.row+d)),a.RangeExtend()}g.stopPropagation?\ng.stopPropagation():g.cancelBubble=!0;g.preventDefault?g.preventDefault():g.returnValue=!1;document.removeEventListener?(document.removeEventListener(\"mousemove\",SocialCalc.CellHandlesMouseMove,!0),document.removeEventListener(\"mouseup\",SocialCalc.CellHandlesMouseUp,!0)):h.draghandle.detachEvent&&(h.draghandle.detachEvent(\"onlosecapture\",SocialCalc.CellHandlesMouseUp),h.draghandle.detachEvent(\"onmouseup\",SocialCalc.CellHandlesMouseUp),h.draghandle.detachEvent(\"onmousemove\",SocialCalc.CellHandlesMouseMove),\nh.draghandle.releaseCapture());l.editor=null;return!1}};\nSocialCalc.TableControl=function(a,c,b){var d=SocialCalc.Constants;this.editor=a;this.vertical=c;this.size=b;this.thumbpos=this.scrollareasize=this.scrollareaend=this.scrollareastart=this.morebuttonstart=this.lessbuttonstart=this.panesliderstart=this.endcapstart=this.controlborder=this.thumb=this.scrollarea=this.morebutton=this.lessbutton=this.paneslider=this.endcap=this.main=null;this.controlthickness=d.defaultTableControlThickness;this.sliderthickness=d.defaultTCSliderThickness;this.buttonthickness=\nd.defaultTCButtonThickness;this.thumbthickness=d.defaultTCThumbThickness;this.minscrollingpanesize=this.buttonthickness+this.buttonthickness+this.thumbthickness+20};SocialCalc.TableControl.prototype.CreateTableControl=function(){return SocialCalc.CreateTableControl(this)};SocialCalc.TableControl.prototype.PositionTableControlElements=function(){SocialCalc.PositionTableControlElements(this)};SocialCalc.TableControl.prototype.ComputeTableControlPositions=function(){SocialCalc.ComputeTableControlPositions(this)};\nSocialCalc.CreateTableControl=function(a){var c,b,d=SocialCalc.AssignID,e=SocialCalc.setStyles,f=SocialCalc.Constants,g=a.editor.imageprefix,l=a.vertical?\"v\":\"h\";a.main=document.createElement(\"div\");c=a.main.style;c.height=(a.vertical?a.size:a.controlthickness)+\"px\";c.width=(a.vertical?a.controlthickness:a.size)+\"px\";c.zIndex=0;e(a.main,f.TCmainStyle);c.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"main-\"+l+\".gif)\");f.TCmainClass&&(a.main.className=f.TCmainClass);a.main.style.display=\n\"none\";a.endcap=document.createElement(\"div\");c=a.endcap.style;c.height=a.controlthickness+\"px\";c.width=a.controlthickness+\"px\";c.zIndex=1;c.overflow=\"hidden\";c.position=\"absolute\";e(a.endcap,f.TCendcapStyle);c.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"endcap-\"+l+\".gif)\");f.TCendcapClass&&(a.endcap.className=f.TCendcapClass);d(a.editor,a.endcap,\"endcap\"+l);a.main.appendChild(a.endcap);a.paneslider=document.createElement(\"div\");c=a.paneslider.style;c.height=(a.vertical?a.sliderthickness:\na.controlthickness)+\"px\";c.overflow=\"hidden\";c.width=(a.vertical?a.controlthickness:a.sliderthickness)+\"px\";c.position=\"absolute\";c[a.vertical?\"top\":\"left\"]=\"4px\";c.zIndex=3;e(a.paneslider,f.TCpanesliderStyle);c.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"paneslider-\"+l+\".gif)\");f.TCpanesliderClass&&(a.paneslider.className=f.TCpanesliderClass);d(a.editor,a.paneslider,\"paneslider\"+l);(function(c,b,d){f[\"s_\"+b+\"Tooltip\"+d]&&SocialCalc.TooltipRegister(c,f[\"s_\"+b+\"Tooltip\"+d],null,a.editor.toplevel)})(a.paneslider,\n\"paneslider\",l);c={MouseDown:SocialCalc.TCPSDragFunctionStart,MouseMove:SocialCalc.TCPSDragFunctionMove,MouseUp:SocialCalc.TCPSDragFunctionStop,Disabled:function(){return a.editor.busy}};c.control=a;SocialCalc.DragRegister(a.paneslider,a.vertical,!a.vertical,c,a.editor.toplevel);a.main.appendChild(a.paneslider);a.lessbutton=document.createElement(\"div\");c=a.lessbutton.style;c.height=(a.vertical?a.buttonthickness:a.controlthickness)+\"px\";c.width=(a.vertical?a.controlthickness:a.buttonthickness)+\"px\";\nc.zIndex=2;c.overflow=\"hidden\";c.position=\"absolute\";e(a.lessbutton,f.TClessbuttonStyle);c.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"less-\"+l+\"n.gif)\");f.TClessbuttonClass&&(a.lessbutton.className=f.TClessbuttonClass);d(a.editor,a.lessbutton,\"lessbutton\"+l);b={repeatwait:f.TClessbuttonRepeatWait,repeatinterval:f.TClessbuttonRepeatInterval,normalstyle:\"backgroundImage:url(\"+g+\"less-\"+l+\"n.gif);\",downstyle:\"backgroundImage:url(\"+g+\"less-\"+l+\"d.gif);\",hoverstyle:\"backgroundImage:url(\"+\ng+\"less-\"+l+\"h.gif);\"};c={MouseDown:function(){a.editor.busy||a.editor.ScrollRelative(a.vertical,-1)},Repeat:function(){a.editor.busy||a.editor.ScrollRelative(a.vertical,-1)},Disabled:function(){return a.editor.busy}};SocialCalc.ButtonRegister(a.editor,a.lessbutton,b,c);a.main.appendChild(a.lessbutton);a.morebutton=document.createElement(\"div\");c=a.morebutton.style;c.height=(a.vertical?a.buttonthickness:a.controlthickness)+\"px\";c.width=(a.vertical?a.controlthickness:a.buttonthickness)+\"px\";c.zIndex=\n2;c.overflow=\"hidden\";c.position=\"absolute\";e(a.morebutton,f.TCmorebuttonStyle);c.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"more-\"+l+\"n.gif)\");f.TCmorebuttonClass&&(a.morebutton.className=f.TCmorebuttonClass);d(a.editor,a.morebutton,\"morebutton\"+l);b={repeatwait:f.TCmorebuttonRepeatWait,repeatinterval:f.TCmorebuttonRepeatInterval,normalstyle:\"backgroundImage:url(\"+g+\"more-\"+l+\"n.gif);\",downstyle:\"backgroundImage:url(\"+g+\"more-\"+l+\"d.gif);\",hoverstyle:\"backgroundImage:url(\"+g+\"more-\"+\nl+\"h.gif);\"};c={MouseDown:function(){a.editor.busy||a.editor.ScrollRelative(a.vertical,1)},Repeat:function(){a.editor.busy||a.editor.ScrollRelative(a.vertical,1)},Disabled:function(){return a.editor.busy}};SocialCalc.ButtonRegister(a.editor,a.morebutton,b,c);a.main.appendChild(a.morebutton);a.scrollarea=document.createElement(\"div\");c=a.scrollarea.style;c.height=a.controlthickness+\"px\";c.width=a.controlthickness+\"px\";c.zIndex=1;c.overflow=\"hidden\";c.position=\"absolute\";e(a.scrollarea,f.TCscrollareaStyle);\nc.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"scrollarea-\"+l+\".gif)\");f.TCscrollareaClass&&(a.scrollarea.className=f.TCscrollareaClass);d(a.editor,a.scrollarea,\"scrollarea\"+l);b={repeatwait:f.TCscrollareaRepeatWait,repeatinterval:f.TCscrollareaRepeatWait};c={MouseDown:SocialCalc.ScrollAreaClick,Repeat:SocialCalc.ScrollAreaClick,Disabled:function(){return a.editor.busy}};c.control=a;SocialCalc.ButtonRegister(a.editor,a.scrollarea,b,c);a.main.appendChild(a.scrollarea);a.thumb=document.createElement(\"div\");\nc=a.thumb.style;c.height=(a.vertical?a.thumbthickness:a.controlthickness)+\"px\";c.width=(a.vertical?a.controlthickness:a.thumbthickness)+\"px\";c.zIndex=2;c.overflow=\"hidden\";c.position=\"absolute\";e(a.thumb,f.TCthumbStyle);a.thumb.style.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+g+\"thumb-\"+l+\"n.gif)\");f.TCthumbClass&&(a.thumb.className=f.TCthumbClass);d(a.editor,a.thumb,\"thumb\"+l);c={MouseDown:SocialCalc.TCTDragFunctionStart,MouseMove:SocialCalc.TCTDragFunctionMove,MouseUp:SocialCalc.TCTDragFunctionStop,\nDisabled:function(){return a.editor.busy}};c.control=a;SocialCalc.DragRegister(a.thumb,a.vertical,!a.vertical,c,a.editor.toplevel);b={normalstyle:\"backgroundImage:url(\"+g+\"thumb-\"+l+\"n.gif)\",name:\"Thumb\",downstyle:\"backgroundImage:url(\"+g+\"thumb-\"+l+\"d.gif)\",hoverstyle:\"backgroundImage:url(\"+g+\"thumb-\"+l+\"h.gif)\"};SocialCalc.ButtonRegister(a.editor,a.thumb,b,null);a.main.appendChild(a.thumb);return a.main};\nSocialCalc.ScrollAreaClick=function(a,c,b){a=b.functionobj.control;b=SocialCalc.GetElementPositionWithScroll(a.editor.toplevel);c=a.vertical?c.clientY-b.top:c.clientX-b.left;a.editor.busy||a.editor.PageRelative(a.vertical,c>a.thumbpos?1:-1)};\nSocialCalc.PositionTableControlElements=function(a){var c,b,d=a.editor;a.vertical?(c=a.controlborder+\"px\",a.endcap.style.top=a.endcapstart+\"px\",a.endcap.style.left=c,a.paneslider.style.top=a.panesliderstart+\"px\",a.paneslider.style.left=c,a.lessbutton.style.top=a.lessbuttonstart+\"px\",a.lessbutton.style.left=c,a.morebutton.style.top=a.morebuttonstart+\"px\",a.morebutton.style.left=c,a.scrollarea.style.top=a.scrollareastart+\"px\",a.scrollarea.style.left=c,a.scrollarea.style.height=a.scrollareasize+\"px\",\nb=Math.max(d.context.sheetobj.attribs.lastrow,d.firstscrollingrow+1),b=(d.firstscrollingrow-(d.lastnonscrollingrow+1))*(a.scrollareasize-3*a.thumbthickness)/(b-(d.lastnonscrollingrow+1))+a.scrollareastart-1,b=Math.floor(b),a.thumb.style.top=b+\"px\",a.thumb.style.left=c):(c=a.controlborder+\"px\",a.endcap.style.left=a.endcapstart+\"px\",a.endcap.style.top=c,a.paneslider.style.left=a.panesliderstart+\"px\",a.paneslider.style.top=c,a.lessbutton.style.left=a.lessbuttonstart+\"px\",a.lessbutton.style.top=c,a.morebutton.style.left=\na.morebuttonstart+\"px\",a.morebutton.style.top=c,a.scrollarea.style.left=a.scrollareastart+\"px\",a.scrollarea.style.top=c,a.scrollarea.style.width=a.scrollareasize+\"px\",b=Math.max(d.context.sheetobj.attribs.lastcol,d.firstscrollingcol+1),b=(d.firstscrollingcol-(d.lastnonscrollingcol+1))*(a.scrollareasize-a.thumbthickness)/(b-d.lastnonscrollingcol)+a.scrollareastart-1,b=Math.floor(b),a.thumb.style.left=b+\"px\",a.thumb.style.top=c);a.thumbpos=b;a.main.style.display=\"block\"};\nSocialCalc.ComputeTableControlPositions=function(a){var c=a.editor;if(!c.gridposition||!c.headposition)throw\"Can't compute table control positions before editor positions\";a.vertical?(a.controlborder=c.gridposition.left+c.tablewidth,a.endcapstart=c.gridposition.top,a.panesliderstart=c.firstscrollingrowtop-a.sliderthickness,a.lessbuttonstart=c.firstscrollingrowtop-1,a.morebuttonstart=c.gridposition.top+c.tableheight-a.buttonthickness,a.scrollareastart=c.firstscrollingrowtop-1+a.buttonthickness):(a.controlborder=\nc.gridposition.top+c.tableheight,a.endcapstart=c.gridposition.left,a.panesliderstart=c.firstscrollingcolleft-a.sliderthickness,a.lessbuttonstart=c.firstscrollingcolleft-1,a.morebuttonstart=c.gridposition.left+c.tablewidth-a.buttonthickness,a.scrollareastart=c.firstscrollingcolleft-1+a.buttonthickness);a.scrollareaend=a.morebuttonstart-1;a.scrollareasize=a.scrollareaend-a.scrollareastart+1};\nSocialCalc.TCPSDragFunctionStart=function(a,c,b){var d=b.functionobj.control.editor,e=SocialCalc.Constants;SocialCalc.DragFunctionStart(a,c,b);c.trackingline=document.createElement(\"div\");c.trackingline.style.height=b.vertical?e.TCPStrackinglineThickness:d.tableheight-(d.headposition.top-d.gridposition.top)+\"px\";c.trackingline.style.width=b.vertical?d.tablewidth-(d.headposition.left-d.gridposition.left)+\"px\":e.TCPStrackinglineThickness;c.trackingline.style.backgroundImage=TiddlyWiki.getModifiedCssImageStyle(\"url(\"+\nd.imageprefix+\"trackingline-\"+(b.vertical?\"v\":\"h\")+\".gif)\");e.TCPStrackinglineClass&&(c.trackingline.className=e.TCPStrackinglineClass);SocialCalc.setStyles(c.trackingline,e.TCPStrackinglineStyle);b.vertical?(row=SocialCalc.Lookup(c.clientY+b.functionobj.control.sliderthickness,d.rowpositions),c.trackingline.style.top=(d.rowpositions[row]||d.headposition.top)+\"px\",c.trackingline.style.left=d.headposition.left+\"px\",d.context.rowpanes.length-1&&(d.context.SetRowPaneFirstLast(1,d.context.rowpanes[0].last+\n1,d.context.rowpanes[0].last+1),d.FitToEditTable(),d.ScheduleRender())):(col=SocialCalc.Lookup(c.clientX+b.functionobj.control.sliderthickness,d.colpositions),c.trackingline.style.top=d.headposition.top+\"px\",c.trackingline.style.left=(d.colpositions[col]||d.headposition.left)+\"px\",d.context.colpanes.length-1&&(d.context.SetColPaneFirstLast(1,d.context.colpanes[0].last+1,d.context.colpanes[0].last+1),d.FitToEditTable(),d.ScheduleRender()));d.griddiv.appendChild(c.trackingline)};\nSocialCalc.TCPSDragFunctionMove=function(a,c,b){var d,e;e=b.functionobj.control;d=e.sliderthickness;var f=e.editor;if(b.vertical){e=e.morebuttonstart-e.minscrollingpanesize-c.offsetY;c.clientY>e&&(c.clientY=e);e=f.headposition.top-d-c.offsetY;c.clientY<e&&(c.clientY=e);for(d=SocialCalc.Lookup(c.clientY+d,f.rowpositions);\"yes\"==f.context.sheetobj.rowattribs.hide[d];)d++;c.trackingline.style.top=(f.rowpositions[d]||f.headposition.top)+\"px\"}else{e=e.morebuttonstart-e.minscrollingpanesize-c.offsetX;c.clientX>\ne&&(c.clientX=e);e=f.headposition.left-d-c.offsetX;c.clientX<e&&(c.clientX=e);for(d=SocialCalc.Lookup(c.clientX+d,f.colpositions);\"yes\"==f.context.sheetobj.colattribs.hide[SocialCalc.rcColname(d)];)d++;c.trackingline.style.left=(f.colpositions[d]||f.headposition.left)+\"px\"}SocialCalc.DragFunctionPosition(a,c,b)};\nSocialCalc.TCPSDragFunctionStop=function(a,c,b){var d,e=b.functionobj.control;d=e.sliderthickness;a=e.editor;if(b.vertical){b=e.morebuttonstart-e.minscrollingpanesize-c.offsetY;c.clientY>b&&(c.clientY=b);b=a.headposition.top-d-c.offsetY;c.clientY<b&&(c.clientY=b);d=SocialCalc.Lookup(c.clientY+d,a.rowpositions);d>a.context.sheetobj.attribs.lastrow&&(d=a.context.sheetobj.attribs.lastrow);for(;\"yes\"==a.context.sheetobj.rowattribs.hide[d];)d++;!d||d<=a.context.rowpanes[0].first?1<a.context.rowpanes.length&&\n(a.context.rowpanes.length=1):a.context.rowpanes.length-1?a.timeout||(a.context.SetRowPaneFirstLast(0,a.context.rowpanes[0].first,d-1),a.context.SetRowPaneFirstLast(1,d,d)):(a.context.SetRowPaneFirstLast(0,a.context.rowpanes[0].first,d-1),a.context.SetRowPaneFirstLast(1,d,d))}else{b=e.morebuttonstart-e.minscrollingpanesize-c.offsetX;c.clientX>b&&(c.clientX=b);b=a.headposition.left-d-c.offsetX;c.clientX<b&&(c.clientX=b);d=SocialCalc.Lookup(c.clientX+d,a.colpositions);d>a.context.sheetobj.attribs.lastcol&&\n(d=a.context.sheetobj.attribs.lastcol);for(;\"yes\"==a.context.sheetobj.colattribs.hide[SocialCalc.rcColname(d)];)d++;!d||d<=a.context.colpanes[0].first?1<a.context.colpanes.length&&(a.context.colpanes.length=1):a.context.colpanes.length-1?a.timeout||(a.context.SetColPaneFirstLast(0,a.context.colpanes[0].first,d-1),a.context.SetColPaneFirstLast(1,d,d)):(a.context.SetColPaneFirstLast(0,a.context.colpanes[0].first,d-1),a.context.SetColPaneFirstLast(1,d,d))}a.FitToEditTable();a.griddiv.removeChild(c.trackingline);\na.ScheduleRender()};\nSocialCalc.TCTDragFunctionStart=function(a,c,b){var d=b.functionobj.control,e=d.editor,f=SocialCalc.Constants;SocialCalc.DragFunctionStart(a,c,b);c.thumbstatus&&(c.thumbstatus.rowmsgele&&(c.thumbstatus.rowmsgele=null),c.thumbstatus.rowpreviewele&&(c.thumbstatus.rowpreviewele=null),e.toplevel.removeChild(c.thumbstatus),c.thumbstatus=null);c.thumbstatus=document.createElement(\"div\");b.vertical?(f.TCTDFSthumbstatusvClass&&(c.thumbstatus.className=f.TCTDFSthumbstatusvClass),SocialCalc.setStyles(c.thumbstatus,f.TCTDFSthumbstatusvStyle),\nc.thumbstatus.style.top=c.clientY+f.TCTDFStopOffsetv+\"px\",c.thumbstatus.style.left=d.controlborder-10-e.tablewidth/2+\"px\",c.thumbstatus.style.width=e.tablewidth/2+\"px\",c.thumbcontext=new SocialCalc.RenderContext(e.context.sheetobj),c.thumbcontext.showGrid=!0,c.thumbcontext.rowpanes=[{first:1,last:1}],a=e.context.colpanes[e.context.colpanes.length-1],c.thumbcontext.colpanes=[{first:a.first,last:a.last}],c.thumbstatus.innerHTML='<table cellspacing=\"0\" cellpadding=\"0\"><tr><td valign=\"top\" style=\"'+f.TCTDFSthumbstatusrownumStyle+\n'\" class=\"'+f.TCTDFSthumbstatusrownumClass+'\"><div>msg</div></td><td valign=\"top\"><div style=\"overflow:hidden;\">preview</div></td></tr></table>',c.thumbstatus.rowmsgele=c.thumbstatus.firstChild.firstChild.firstChild.firstChild.firstChild,c.thumbstatus.rowpreviewele=c.thumbstatus.firstChild.firstChild.firstChild.childNodes[1].firstChild,e.toplevel.appendChild(c.thumbstatus),SocialCalc.TCTDragFunctionRowSetStatus(c,e,e.firstscrollingrow||1)):(f.TCTDFSthumbstatushClass&&(c.thumbstatus.className=f.TCTDFSthumbstatushClass),\nSocialCalc.setStyles(c.thumbstatus,f.TCTDFSthumbstatushStyle),c.thumbstatus.style.top=d.controlborder+f.TCTDFStopOffseth+\"px\",c.thumbstatus.style.left=c.clientX+f.TCTDFSleftOffseth+\"px\",e.toplevel.appendChild(c.thumbstatus),c.thumbstatus.innerHTML=f.s_TCTDFthumbstatusPrefixh+SocialCalc.rcColname(e.firstscrollingcol))};\nSocialCalc.TCTDragFunctionRowSetStatus=function(a,c,b){a.thumbstatus.rowmsgele.innerHTML=SocialCalc.Constants.s_TCTDFthumbstatusPrefixv+b+\" \";a.thumbcontext.rowpanes=[{first:b,last:b}];a.thumbrowshown=b;a.thumbcontext.RenderSheet(a.thumbstatus.rowpreviewele.firstChild,{type:\"html\"})};\nSocialCalc.TCTDragFunctionMove=function(a,c,b){var d,e;d=b.functionobj.control;e=d.editor;var f=SocialCalc.Constants;b.vertical?(c.clientY>d.scrollareaend-c.offsetY-d.thumbthickness+2&&(c.clientY=d.scrollareaend-c.offsetY-d.thumbthickness+2),c.clientY<d.scrollareastart-c.offsetY-1&&(c.clientY=d.scrollareastart-c.offsetY-1),c.thumbstatus.style.top=c.clientY+\"px\",d=(c.clientY+c.offsetY-d.scrollareastart+1)/(d.scrollareasize-d.thumbthickness)*(e.context.sheetobj.attribs.lastrow-e.lastnonscrollingrow)+\ne.lastnonscrollingrow+1,d=Math.floor(d),d<=e.lastnonscrollingrow&&(d=e.lastnonscrollingrow+1),d>e.context.sheetobj.attribs.lastrow&&(d=e.context.sheetobj.attribs.lastrow),d!=c.thumbrowshown&&SocialCalc.TCTDragFunctionRowSetStatus(c,e,d)):(c.clientX>d.scrollareaend-c.offsetX-d.thumbthickness+2&&(c.clientX=d.scrollareaend-c.offsetX-d.thumbthickness+2),c.clientX<d.scrollareastart-c.offsetX-1&&(c.clientX=d.scrollareastart-c.offsetX-1),c.thumbstatus.style.left=c.clientX+\"px\",d=(c.clientX+c.offsetX-d.scrollareastart+\n1)/(d.scrollareasize-d.thumbthickness)*(e.context.sheetobj.attribs.lastcol-e.lastnonscrollingcol)+e.lastnonscrollingcol+1,d=Math.floor(d),d<=e.lastnonscrollingcol&&(d=e.lastnonscrollingcol+1),d>e.context.sheetobj.attribs.lastcol&&(d=e.context.sheetobj.attribs.lastcol),e=f.s_TCTDFthumbstatusPrefixh+SocialCalc.rcColname(d),c.thumbstatus.innerHTML=e);SocialCalc.DragFunctionPosition(a,c,b)};\nSocialCalc.TCTDragFunctionStop=function(a,c,b){var d=b.functionobj.control;a=d.editor;b.vertical?(b=(c.clientY+c.offsetY-d.scrollareastart+1)/(d.scrollareasize-d.thumbthickness)*(a.context.sheetobj.attribs.lastrow-a.lastnonscrollingrow)+a.lastnonscrollingrow+1,b=Math.floor(b),b<=a.lastnonscrollingrow&&(b=a.lastnonscrollingrow+1),b>a.context.sheetobj.attribs.lastrow&&(b=a.context.sheetobj.attribs.lastrow),a.context.SetRowPaneFirstLast(a.context.rowpanes.length-1,b,b+1)):(b=(c.clientX+c.offsetX-d.scrollareastart+\n1)/(d.scrollareasize-d.thumbthickness)*(a.context.sheetobj.attribs.lastcol-a.lastnonscrollingcol)+a.lastnonscrollingcol+1,b=Math.floor(b),b<=a.lastnonscrollingcol&&(b=a.lastnonscrollingcol+1),b>a.context.sheetobj.attribs.lastcol&&(b=a.context.sheetobj.attribs.lastcol),a.context.SetColPaneFirstLast(a.context.colpanes.length-1,b,b+1));a.FitToEditTable();c.thumbstatus.rowmsgele&&(c.thumbstatus.rowmsgele=null);c.thumbstatus.rowpreviewele&&(c.thumbstatus.rowpreviewele=null);a.toplevel.removeChild(c.thumbstatus);\nc.thumbstatus=null;a.ScheduleRender()};SocialCalc.DragInfo={registeredElements:[],draggingElement:null,startX:0,startY:0,startZ:0,clientX:0,clientY:0,offsetX:0,offsetY:0,relativeOffset:{left:0,top:0}};\nSocialCalc.DragRegister=function(a,c,b,d,e){var f=SocialCalc.DragInfo;d||(d={MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null});f.registeredElements.push({element:a,vertical:c,horizontal:b,functionobj:d,parent:e});if(a.addEventListener)a.addEventListener(\"mousedown\",SocialCalc.DragMouseDown,!1);else if(a.attachEvent)a.attachEvent(\"onmousedown\",SocialCalc.DragMouseDown);else throw SocialCalc.Constants.s_BrowserNotSupported;\n};SocialCalc.DragUnregister=function(a){var c=SocialCalc.DragInfo,b;if(a)for(b=0;b<c.registeredElements.length;b++)if(c.registeredElements[b].element==a){c.registeredElements.splice(b,1);a.removeEventListener?a.removeEventListener(\"mousedown\",SocialCalc.DragMouseDown,!1):a.detachEvent(\"onmousedown\",SocialCalc.DragMouseDown);break}};\nSocialCalc.DragMouseDown=function(a){a=a||window.event;var c=SocialCalc.DragInfo,b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);if(b&&!(b&&b.functionobj&&b.functionobj.Disabled&&b.functionobj.Disabled(a,c,b)))return c.draggingElement=b,b.parent&&(c.relativeOffset=SocialCalc.GetElementPositionWithScroll(b.parent)),c.clientX=a.clientX-c.relativeOffset.left,c.clientY=a.clientY-c.relativeOffset.top,c.startX=c.clientX,c.startY=c.clientY,c.startZ=b.element.style.zIndex,c.offsetX=\n0,c.offsetY=0,b.element.style.zIndex=\"100\",document.addEventListener?(document.addEventListener(\"mousemove\",SocialCalc.DragMouseMove,!0),document.addEventListener(\"mouseup\",SocialCalc.DragMouseUp,!0)):b.element.attachEvent&&(b.element.setCapture(),b.element.attachEvent(\"onmousemove\",SocialCalc.DragMouseMove),b.element.attachEvent(\"onmouseup\",SocialCalc.DragMouseUp),b.element.attachEvent(\"onlosecapture\",SocialCalc.DragMouseUp)),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?\na.preventDefault():a.returnValue=!1,b&&b.functionobj&&b.functionobj.MouseDown&&b.functionobj.MouseDown(a,c,b),!1};SocialCalc.DragMouseMove=function(a){a=a||window.event;var c=SocialCalc.DragInfo,b=c.draggingElement;c.clientX=a.clientX-c.relativeOffset.left;c.clientY=a.clientY-c.relativeOffset.top;a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;b&&b.functionobj&&b.functionobj.MouseMove&&b.functionobj.MouseMove(a,c,b);return!1};\nSocialCalc.DragMouseUp=function(a){a=a||window.event;var c=SocialCalc.DragInfo,b=c.draggingElement;c.clientX=a.clientX-c.relativeOffset.left;c.clientY=a.clientY-c.relativeOffset.top;b.element.style.zIndex=c.startZ;b&&b.functionobj&&b.functionobj.MouseUp&&b.functionobj.MouseUp(a,c,b);a.stopPropagation?a.stopPropagation():a.cancelBubble=!0;document.removeEventListener?(document.removeEventListener(\"mousemove\",SocialCalc.DragMouseMove,!0),document.removeEventListener(\"mouseup\",SocialCalc.DragMouseUp,\n!0)):b.element.detachEvent&&(b.element.detachEvent(\"onlosecapture\",SocialCalc.DragMouseUp),b.element.detachEvent(\"onmouseup\",SocialCalc.DragMouseUp),b.element.detachEvent(\"onmousemove\",SocialCalc.DragMouseMove),b.element.releaseCapture());c.draggingElement=null;return!1};SocialCalc.DragFunctionStart=function(a,c,b){a=b.functionobj.positionobj||b.element;c.offsetY=parseInt(a.style.top)-c.clientY;c.offsetX=parseInt(a.style.left)-c.clientX};\nSocialCalc.DragFunctionPosition=function(a,c,b){a=b.functionobj.positionobj||b.element;b.vertical&&(a.style.top=c.clientY+c.offsetY+\"px\");b.horizontal&&(a.style.left=c.clientX+c.offsetX+\"px\")};SocialCalc.TooltipInfo={registeredElements:[],registered:!1,tooltipElement:null,timer:null,popupElement:null,clientX:0,clientY:0,offsetX:SocialCalc.Constants.TooltipOffsetX,offsetY:SocialCalc.Constants.TooltipOffsetY};\nSocialCalc.TooltipRegister=function(a,c,b,d){var e=SocialCalc.TooltipInfo;e.registeredElements.push({element:a,tiptext:c,functionobj:b,parent:d});if(!e.registered){if(document.addEventListener)document.addEventListener(\"mousemove\",SocialCalc.TooltipMouseMove,!1);else if(document.attachEvent)document.attachEvent(\"onmousemove\",SocialCalc.TooltipMouseMove);else throw SocialCalc.Constants.s_BrowserNotSupported;e.registered=!0}};\nSocialCalc.TooltipMouseMove=function(a){var c=a||window.event;a=SocialCalc.TooltipInfo;a.clientX=c.clientX;a.clientY=c.clientY;c=SocialCalc.LookupElement(c.target||c.srcElement,a.registeredElements);a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.popupElement&&SocialCalc.TooltipHide();a.tooltipElement=c||null;c&&!SocialCalc.ButtonInfo.buttonDown&&(a.timer=window.setTimeout(SocialCalc.TooltipWaitDone,700),a.tooltipElement.element.addEventListener?a.tooltipElement.element.addEventListener(\"mousedown\",\nSocialCalc.TooltipMouseDown,!1):a.tooltipElement.element.attachEvent&&a.tooltipElement.element.attachEvent(\"onmousedown\",SocialCalc.TooltipMouseDown))};\nSocialCalc.TooltipMouseDown=function(a){a=SocialCalc.TooltipInfo;a.timer&&(window.clearTimeout(a.timer),a.timer=null);a.popupElement&&SocialCalc.TooltipHide();a.tooltipElement&&(a.tooltipElement.element.removeEventListener?a.tooltipElement.element.removeEventListener(\"mousedown\",SocialCalc.TooltipMouseDown,!1):a.tooltipElement.element.attachEvent&&a.tooltipElement.element.detachEvent(\"onmousedown\",SocialCalc.TooltipMouseDown),a.tooltipElement=null)};\nSocialCalc.TooltipDisplay=function(a){var c=SocialCalc.TooltipInfo,b=SocialCalc.Constants,d=a.functionobj&&\"number\"==typeof a.functionobj.offsetx?a.functionobj.offsetx:c.offsetX,e=a.functionobj&&\"number\"==typeof a.functionobj.offsety?a.functionobj.offsety:c.offsetY,f=SocialCalc.GetViewportInfo(),g=SocialCalc.GetElementPositionWithScroll(a.parent);c.popupElement=document.createElement(\"div\");b.TDpopupElementClass&&(c.popupElement.className=b.TDpopupElementClass);SocialCalc.setStyles(c.popupElement,\nb.TDpopupElementStyle);c.popupElement.innerHTML=a.tiptext;c.clientX>f.width/2?(c.popupElement.style.bottom=g.height-c.clientY+e+g.top+\"px\",c.popupElement.style.right=g.width-c.clientX+d+g.left+\"px\"):(c.popupElement.style.bottom=g.height-c.clientY+e+g.top+\"px\",c.popupElement.style.left=c.clientX+d-g.left+\"px\");50>c.clientY&&(c.popupElement.style.bottom=g.height-c.clientY+e-50+g.top+\"px\");a.parent.appendChild(c.popupElement)};\nSocialCalc.TooltipHide=function(){var a=SocialCalc.TooltipInfo;a.popupElement&&(a.popupElement.parentNode.removeChild(a.popupElement),a.popupElement=null)};SocialCalc.TooltipWaitDone=function(){var a=SocialCalc.TooltipInfo;a.timer=null;SocialCalc.TooltipDisplay(a.tooltipElement)};SocialCalc.ButtonInfo={registeredElements:[],buttonElement:null,doingHover:!1,buttonDown:!1,timer:null,relativeOffset:null,clientX:0,clientY:0};\nSocialCalc.ButtonRegister=function(a,c,b,d){var e=SocialCalc.ButtonInfo;b||(b={});e.registeredElements.push({name:b.name,element:c,editor:a,normalstyle:b.normalstyle,hoverstyle:b.hoverstyle,downstyle:b.downstyle,repeatwait:b.repeatwait,repeatinterval:b.repeatinterval,functionobj:d});if(c.addEventListener)c.addEventListener(\"mousedown\",SocialCalc.ButtonMouseDown,!1),c.addEventListener(\"mouseover\",SocialCalc.ButtonMouseOver,!1),c.addEventListener(\"mouseout\",SocialCalc.ButtonMouseOut,!1);else if(c.attachEvent)c.attachEvent(\"onmousedown\",\nSocialCalc.ButtonMouseDown),c.attachEvent(\"onmouseover\",SocialCalc.ButtonMouseOver),c.attachEvent(\"onmouseout\",SocialCalc.ButtonMouseOut);else throw SocialCalc.Constants.s_BrowserNotSupported;};\nSocialCalc.ButtonMouseOver=function(a){a=a||window.event;var c=SocialCalc.ButtonInfo,b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);b&&(c.buttonDown?c.buttonElement==b&&(c.doingHover=!0):(c.buttonElement&&c.buttonElement!=b&&c.doingHover&&SocialCalc.setStyles(c.buttonElement.element,c.buttonElement.normalstyle),c.buttonElement=b,c.doingHover=!0,SocialCalc.setStyles(b.element,b.hoverstyle),b&&b.functionobj&&b.functionobj.MouseOver&&b.functionobj.MouseOver(a,c,b)))};\nSocialCalc.ButtonMouseOut=function(a){a=a||window.event;var c=SocialCalc.ButtonInfo;if(c.buttonDown)c.doingHover=!1;else{var b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);c.doingHover&&(c.buttonElement&&SocialCalc.setStyles(c.buttonElement.element,c.buttonElement.normalstyle),c.buttonElement=null,c.doingHover=!1);b&&b.functionobj&&b.functionobj.MouseOut&&b.functionobj.MouseOut(a,c,b)}};\nSocialCalc.ButtonMouseDown=function(a){a=a||window.event;var c=SocialCalc.ButtonInfo;SocialCalc.GetViewportInfo();var b=SocialCalc.LookupElement(a.target||a.srcElement,c.registeredElements);!b||b&&b.functionobj&&b.functionobj.Disabled&&b.functionobj.Disabled(a,c,b)||(c.buttonElement=b,c.buttonDown=!0,SocialCalc.setStyles(b.element,c.buttonElement.downstyle),document.addEventListener?document.addEventListener(\"mouseup\",SocialCalc.ButtonMouseUp,!0):b.element.attachEvent&&(b.element.setCapture(),b.element.attachEvent(\"onmouseup\",\nSocialCalc.ButtonMouseUp),b.element.attachEvent(\"onlosecapture\",SocialCalc.ButtonMouseUp)),a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,c.relativeOffset=SocialCalc.GetElementPositionWithScroll(b.editor.toplevel),c.clientX=a.clientX-c.relativeOffset.left,c.clientY=a.clientY-c.relativeOffset.top,b&&b.functionobj&&b.functionobj.MouseDown&&b.functionobj.MouseDown(a,c,b),b.repeatwait&&(c.timer=window.setTimeout(SocialCalc.ButtonRepeat,b.repeatwait)))};\nSocialCalc.ButtonMouseUp=function(a){a=a||window.event;var c=SocialCalc.ButtonInfo,b=c.buttonElement;c.timer&&(window.clearTimeout(c.timer),c.timer=null);c.buttonDown&&(a.stopPropagation?a.stopPropagation():a.cancelBubble=!0,a.preventDefault?a.preventDefault():a.returnValue=!1,document.removeEventListener?document.removeEventListener(\"mouseup\",SocialCalc.ButtonMouseUp,!0):document.detachEvent&&(b.element.detachEvent(\"onlosecapture\",SocialCalc.ButtonMouseUp),b.element.detachEvent(\"onmouseup\",SocialCalc.ButtonMouseUp),\nb.element.releaseCapture()),c.buttonElement.downstyle&&(c.doingHover?SocialCalc.setStyles(b.element,c.buttonElement.hoverstyle):SocialCalc.setStyles(b.element,c.buttonElement.normalstyle)),c.buttonDown=!1,b&&b.functionobj&&b.functionobj.MouseUp&&b.functionobj.MouseUp(a,c,b))};\nSocialCalc.ButtonRepeat=function(){var a=SocialCalc.ButtonInfo,c=a.buttonElement;c&&(c&&c.functionobj&&c.functionobj.Repeat&&c.functionobj.Repeat(null,a,c),a.timer=window.setTimeout(SocialCalc.ButtonRepeat,c.repeatinterval||100))};SocialCalc.MouseWheelInfo={registeredElements:[]};\nSocialCalc.MouseWheelRegister=function(a,c){SocialCalc.MouseWheelInfo.registeredElements.push({element:a,functionobj:c});if(a.addEventListener)a.addEventListener(\"DOMMouseScroll\",SocialCalc.ProcessMouseWheel,!1),a.addEventListener(\"mousewheel\",SocialCalc.ProcessMouseWheel,!1);else if(a.attachEvent)a.attachEvent(\"onmousewheel\",SocialCalc.ProcessMouseWheel);else throw SocialCalc.Constants.s_BrowserNotSupported;};\nSocialCalc.ProcessMouseWheel=function(a){a=a||window.event;var c;if(!SocialCalc.GetSpreadsheetControlObject().keyboard.passThru){var b=SocialCalc.MouseWheelInfo;c=a.target||a.srcElement;var d;for(d=null;!d&&c;c=c.parentNode)d=SocialCalc.LookupElement(c,b.registeredElements);d&&((c=a.wheelDelta?a.wheelDelta/120:-a.detail/3)||(c=0),d.functionobj&&d.functionobj.WheelMove&&d.functionobj.WheelMove(a,c,b,d),a.preventDefault&&a.preventDefault(),a.returnValue=!1)}};\nSocialCalc.keyboardTables={specialKeysCommon:{8:\"[backspace]\",9:\"[tab]\",13:\"[enter]\",25:\"[tab]\",27:\"[esc]\",33:\"[pgup]\",34:\"[pgdn]\",35:\"[end]\",36:\"[home]\",37:\"[aleft]\",38:\"[aup]\",39:\"[aright]\",40:\"[adown]\",45:\"[ins]\",46:\"[del]\",113:\"[f2]\"},specialKeysIE:{8:\"[backspace]\",9:\"[tab]\",13:\"[enter]\",25:\"[tab]\",27:\"[esc]\",33:\"[pgup]\",34:\"[pgdn]\",35:\"[end]\",36:\"[home]\",37:\"[aleft]\",38:\"[aup]\",39:\"[aright]\",40:\"[adown]\",45:\"[ins]\",46:\"[del]\",113:\"[f2]\"},controlKeysIE:{67:\"[ctrl-c]\",83:\"[ctrl-s]\",86:\"[ctrl-v]\",\n88:\"[ctrl-x]\",90:\"[ctrl-z]\"},specialKeysOpera:{8:\"[backspace]\",9:\"[tab]\",13:\"[enter]\",25:\"[tab]\",27:\"[esc]\",33:\"[pgup]\",34:\"[pgdn]\",35:\"[end]\",36:\"[home]\",37:\"[aleft]\",38:\"[aup]\",39:\"[aright]\",40:\"[adown]\",45:\"[ins]\",46:\"[del]\",113:\"[f2]\"},controlKeysOpera:{67:\"[ctrl-c]\",83:\"[ctrl-s]\",86:\"[ctrl-v]\",88:\"[ctrl-x]\",90:\"[ctrl-z]\"},specialKeysSafari:{8:\"[backspace]\",9:\"[tab]\",13:\"[enter]\",25:\"[tab]\",27:\"[esc]\",63232:\"[aup]\",63233:\"[adown]\",63234:\"[aleft]\",63235:\"[aright]\",63272:\"[del]\",63273:\"[home]\",\n63275:\"[end]\",63276:\"[pgup]\",63277:\"[pgdn]\",63237:\"[f2]\"},controlKeysSafari:{99:\"[ctrl-c]\",115:\"[ctrl-s]\",118:\"[ctrl-v]\",120:\"[ctrl-x]\",122:\"[ctrl-z]\"},ignoreKeysSafari:{63236:\"[f1]\",63238:\"[f3]\",63239:\"[f4]\",63240:\"[f5]\",63241:\"[f6]\",63242:\"[f7]\",63243:\"[f8]\",63244:\"[f9]\",63245:\"[f10]\",63246:\"[f11]\",63247:\"[f12]\",63289:\"[numlock]\"},specialKeysFirefox:{8:\"[backspace]\",9:\"[tab]\",13:\"[enter]\",25:\"[tab]\",27:\"[esc]\",33:\"[pgup]\",34:\"[pgdn]\",35:\"[end]\",36:\"[home]\",37:\"[aleft]\",38:\"[aup]\",39:\"[aright]\",\n40:\"[adown]\",45:\"[ins]\",46:\"[del]\",113:\"[f2]\"},controlKeysFirefox:{99:\"[ctrl-c]\",115:\"[ctrl-s]\",118:\"[ctrl-v]\",120:\"[ctrl-x]\",122:\"[ctrl-z]\"},ignoreKeysFirefox:{16:\"[shift]\",17:\"[ctrl]\",18:\"[alt]\",20:\"[capslock]\",19:\"[pause]\",44:\"[printscreen]\",91:\"[windows]\",92:\"[windows]\",112:\"[f1]\",114:\"[f3]\",115:\"[f4]\",116:\"[f5]\",117:\"[f6]\",118:\"[f7]\",119:\"[f8]\",120:\"[f9]\",121:\"[f10]\",122:\"[f11]\",123:\"[f12]\",144:\"[numlock]\",145:\"[scrolllock]\",224:\"[cmd]\"}};SocialCalc.Constants.AllowCtrlS=!0;\nSocialCalc.Constants.AllowCtrlJ=!0;SocialCalc.keyboardTables.controlKeysIE[74]=\"[ctrl-j]\";SocialCalc.keyboardTables.controlKeysOpera[74]=\"[ctrl-j]\";SocialCalc.keyboardTables.controlKeysSafari[106]=\"[ctrl-j]\";SocialCalc.keyboardTables.controlKeysFirefox[106]=\"[ctrl-j]\";\nSocialCalc.KeyboardSetFocus=function(a){hack.log(\"\",hack.keyboard,\"SocialCalc.KeyboardSetFocus\");var c=SocialCalc.GetSpreadsheetControlObject();c.keyboard.focusTable=a;c.keyboard.areListener||(TiddlyWiki?(hack.log(\"add event listener: keydown, keypress, focus\",hack.keyboard,\"SocialCalc.KeyboardSetFocus\"),c.spreadsheetDiv.addEventListener(\"keydown\",SocialCalc.ProcessKeyDown,!1),c.spreadsheetDiv.addEventListener(\"keypress\",SocialCalc.ProcessKeyPress,!1),c.spreadsheetDiv.addEventListener(\"focus\",function(a){c.tiddlyWiki.inputboxHasKeyboard=\n!1},!1),c.tiddlyWiki.flagView||(c.editor.inputBox.element.addEventListener(\"focus\",function(a){c.tiddlyWiki.inputboxHasKeyboard=!0},!1),c.editor.inputBox.element.addEventListener(\"blur\",function(a){c.spreadsheetDiv.focus()},!1))):(document.onkeydown=SocialCalc.ProcessKeyDown,document.onkeypress=SocialCalc.ProcessKeyPress),c.keyboard.areListener=!0);c.keyboard.passThru&&(c.keyboard.passThru.blur&&c.keyboard.passThru.blur(),c.keyboard.passThru=null);TiddlyWiki?(hack.log(\"spreadsheet.spreadsheetDiv: take focus\",\nhack.keyboard,\"SocialCalc.KeyboardSetFocus\"),c.spreadsheetDiv.focus()):window.focus()};SocialCalc.KeyboardFocus=function(){hack.log(\"\",hack.keyboard,\"SocialCalc.KeyboardFocus\");var a=SocialCalc.GetSpreadsheetControlObject();a.keyboard.passThru=null;TiddlyWiki?a.spreadsheetDiv.focus():window.focus()};\nSocialCalc.ProcessKeyDown=function(a){hack.log(\"\",hack.keyboard,\"SocialCalc.ProcessKeyDown\");var c=SocialCalc.GetSpreadsheetControlObject(),b=SocialCalc.keyboardTables;b.didProcessKey=!1;b.statusFromProcessKey=!1;b.repeatingKeyPress=!1;var d=\"\",e=!0;if(!c.keyboard.passThru){a=a||window.event;if(void 0==a.which){d=b.specialKeysCommon[a.keyCode];if(!d&&(a.ctrlKey&&(d=b.controlKeysIE[a.keyCode]),!d))return!0;e=SocialCalc.ProcessKey(d,a);e||(a.preventDefault?a.preventDefault():a.returnValue=!1)}else{d=\nb.specialKeysCommon[a.keyCode];if(!d){if(a.ctrlKey||a.metaKey)d=b.controlKeysIE[a.keyCode];if(!d)return!0}e=SocialCalc.ProcessKey(d,a);b.didProcessKey=!0;b.statusFromProcessKey=e;b.chForProcessKey=d}TiddlyWiki&&!c.tiddlyWiki.inputboxHasKeyboard&&(a.preventDefault?a.preventDefault():a.returnValue=!1);return e}};\nSocialCalc.ProcessKeyPress=function(a){var c=SocialCalc.GetSpreadsheetControlObject(),b=SocialCalc.keyboardTables,d=\"\";a=a||window.event;if(!c.keyboard.passThru){if(b.didProcessKey){if(b.repeatingKeyPress)return SocialCalc.ProcessKey(b.chForProcessKey,a);b.repeatingKeyPress=!0;return b.statusFromProcessKey}if(void 0==a.which)d=String.fromCharCode(a.keyCode);else{if(!a.which)return!1;if(void 0==a.charCode)if(0!=a.which)if(32>a.which||144==a.which){if(d=b.specialKeysOpera[a.which])return!0}else d=a.ctrlKey?\nb.controlKeysOpera[a.keyCode]:String.fromCharCode(a.which);else return!0;else{if(0==a.keyCode&&0==a.charCode)return;if(a.keyCode==a.charCode){if(d=b.specialKeysSafari[a.keyCode],!d){if(b.ignoreKeysSafari[a.keyCode])return!0;d=a.metaKey?b.controlKeysSafari[a.keyCode]:String.fromCharCode(a.which)}}else{if(b.specialKeysFirefox[a.keyCode])return!0;d=String.fromCharCode(a.which);if(a.ctrlKey||a.metaKey)d=b.controlKeysFirefox[a.which]}}}c=SocialCalc.ProcessKey(d,a);c||(a.preventDefault?a.preventDefault():\na.returnValue=!1);return c}};SocialCalc.ProcessKey=function(a,c){var b=SocialCalc.GetSpreadsheetControlObject().keyboard.focusTable;return b?b.EditorProcessKey(a,c):!0};SocialCalc||(SocialCalc={});SocialCalc.FormatNumber={};SocialCalc.FormatNumber.format_definitions={};SocialCalc.FormatNumber.separatorchar=\",\";SocialCalc.FormatNumber.decimalchar=\".\";SocialCalc.FormatNumber.daynames=\"Sunday Monday Tuesday Wednesday Thursday Friday Saturday\".split(\" \");SocialCalc.FormatNumber.daynames3=\"Sun Mon Tue Wed Thu Fri Sat\".split(\" \");SocialCalc.FormatNumber.monthnames3=\"Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec\".split(\" \");SocialCalc.FormatNumber.monthnames=\"January February March April May June July August September October November December\".split(\" \");\nSocialCalc.FormatNumber.allowedcolors={BLACK:\"#000000\",BLUE:\"#0000FF\",CYAN:\"#00FFFF\",GREEN:\"#00FF00\",MAGENTA:\"#FF00FF\",RED:\"#FF0000\",WHITE:\"#FFFFFF\",YELLOW:\"#FFFF00\"};SocialCalc.FormatNumber.alloweddates={H:\"h]\",M:\"m]\",MM:\"mm]\",S:\"s]\",SS:\"ss]\"};SocialCalc.FormatNumber.commands={copy:1,color:2,integer_placeholder:3,fraction_placeholder:4,decimal:5,currency:6,general:7,separator:8,date:9,comparison:10,section:11,style:12};\nSocialCalc.FormatNumber.datevalues={julian_offset:2415019,seconds_in_a_day:86400,seconds_in_an_hour:3600};\nSocialCalc.FormatNumber.formatNumberWithFormat=function(a,c,b){b=SocialCalc.Constants;var d=SocialCalc.FormatNumber,e,f,g,l,h,m,p,r,q,n,s,t=\"\",u,w,v,x,y,z,C,D,G,I,E;if(\"string\"==typeof a&&!a.length)return\"\";E=a-0;if(!isFinite(E))return\"string\"==typeof a?d.formatTextWithFormat(a,c):\"NaN\";a=E;var H=0>E?1:0;H&&(E=-E);v=0==E?1:0;d.parse_format_string(d.format_definitions,c);c=d.format_definitions[c];if(!c)throw\"Format not parsed error!\";u=c.sectioninfo.length-1;if(c.hascomparison)for(v=s=u=0;;v++){e=\nc.operators[v];f=c.operands[v];if(!e){s&&(c=\"General\",d.parse_format_string(d.format_definitions,c),c=d.format_definitions[c],u=0);break}if(e==d.commands.section){if(!s)break;s=0;u++}else if(e==d.commands.comparison){s=f.indexOf(\":\");w=f.substring(0,s);f=f.substring(s+1)-0;if(\"<\"==w&&a<f||\"<=\"==w&&a<=f||\"=\"==w&&a==f||\"<>\"==w&&a!=f||\">=\"==w&&a>=f||\">\"==w&&a>f)break;s=1}}else if(0<u)if(1==u)H?(H=0,u=1):u=0;else if(2==u||3==u)H?(H=0,u=1):u=v?2:0;u=c.sectioninfo[u];if(0<u.commas)for(s=0;s<u.commas;s++)E/=\n1E3;if(0<u.percent)for(s=0;s<u.percent;s++)E*=100;f=1;for(s=0;s<u.fractiondigits;s++)f*=10;v=Math.floor(E*f+.5);v/=f;if(\"number\"!=typeof v||!isFinite(v))return\"NaN\";f=v+\"\";0==v&&(u.fractiondigits||u.integerdigits)&&(H=0);if(0<=f.indexOf(\"e\"))return a+\"\";f=f.match(/^\\+{0,1}(\\d*)(?:\\.(\\d*)){0,1}$/);if(!f)return\"NaN\";(v=f[1])&&\"0\"!=v||(v=\"\");(w=f[2])||(w=\"\");if(u.hasdate){if(0>a)return\"??-???-?? ??:??:??\";g=(a-Math.floor(a))*d.datevalues.seconds_in_a_day;l=a*d.datevalues.seconds_in_a_day;h=Math.floor(g/\nd.datevalues.seconds_in_an_hour);p=Math.floor(l/d.datevalues.seconds_in_an_hour);g-=h*d.datevalues.seconds_in_an_hour;m=Math.floor(g/60);r=Math.floor(l/60);f=1;for(s=0;s<u.fractiondigits;s++)f*=10;g=Math.floor((g-60*m)*f+.5);g/=f;l=Math.floor(l*f+.5);l/=f;60<=g&&(g=0,m++,r++,60<=m&&(m=0,h++,p++,24<=h&&(h=0,a++)));w=g-Math.floor(g)+\"\";w=w.substring(2);n=SocialCalc.FormatNumber.convert_date_julian_to_gregorian(Math.floor(a+d.datevalues.julian_offset));s=0;for(mspos=u.sectionstart;;mspos++){e=c.operators[mspos];\nf=c.operands[mspos];if(!e)break;if(e==d.commands.section)break;e==d.commands.date?(\"am/pm\"!=f.toLowerCase()&&\"a/p\"!=f.toLowerCase()||q||(12<=h?(h-=12,q=\"a/p\"==f.toLowerCase()?b.s_FormatNumber_pm1:b.s_FormatNumber_pm):q=\"a/p\"==f.toLowerCase()?b.s_FormatNumber_am1:b.s_FormatNumber_am,0>f.indexOf(q)&&(q=q.toLowerCase())),!s||\"m\"!=f&&\"mm\"!=f||(c.operands[mspos]+=\"in\"),s=\"h\"==f.charAt(0)?1:0):e!=d.commands.copy&&(s=0)}s=0;for(--mspos;;mspos--){e=c.operators[mspos];f=c.operands[mspos];if(!e)break;if(e==\nd.commands.section)break;e==d.commands.date?(!s||\"m\"!=f&&\"mm\"!=f||(c.operands[mspos]+=\"in\"),s=\"ss\"==f?1:0):e!=d.commands.copy&&(s=0)}}z=y=x=0;D=C=\"\";G=b.FormatNumber_separatorchar;0<=G.indexOf(\" \")&&(G=G.replace(/ /g,\" \"));I=b.FormatNumber_decimalchar;0<=I.indexOf(\" \")&&(I=I.replace(/ /g,\" \"));for(s=u.sectionstart;e=c.operators[s];)if(f=c.operands[s++],e==d.commands.copy)t+=f;else if(e==d.commands.color)C=f;else if(e==d.commands.style)D=f;else if(e==d.commands.integer_placeholder){H&&(t+=\n\"-\",H=0);x++;if(1==x&&v.length>u.integerdigits)for(;y<v.length-u.integerdigits;y++)t+=v.charAt(y),u.thousandssep&&(e=v.length-y-1,2<e&&0==e%3&&(t+=G));if(v.length<u.integerdigits&&x<=u.integerdigits-v.length){if(\"0\"==f||\"?\"==f)t+=\"0\"==f?\"0\":\" \",u.thousandssep&&(e=u.integerdigits-x,2<e&&0==e%3&&(t+=G))}else t+=v.charAt(y),u.thousandssep&&(e=v.length-y-1,2<e&&0==e%3&&(t+=G)),y++}else if(e==d.commands.fraction_placeholder){if(z>=w.length){if(\"0\"==f||\"?\"==f)t+=\"0\"==f?\"0\":\" \"}else t+=w.charAt(z);\nz++}else if(e==d.commands.decimal)H&&(t+=\"-\",H=0),t+=I;else if(e==d.commands.currency)H&&(t+=\"-\",H=0),t+=f;else if(e==d.commands.general){if(0!=E&&(f=Math.floor(Math.LOG10E*Math.log(E)),f=Math.pow(10,13-f),E=Math.floor(f*E+.5)/f,!isFinite(E)))return\"NaN\";H&&(t+=\"-\");f=E+\"\";if(0<=f.indexOf(\"e\"))t+=f;else{f=f.match(/^\\+{0,1}(\\d*)(?:\\.(\\d*)){0,1}$/);(v=f[1])&&\"0\"!=v||(v=\"\");(w=f[2])||(w=\"\");z=y=0;if(v.length)for(;y<v.length;y++)t+=v.charAt(y),u.thousandssep&&(e=v.length-y-1,2<e&&0==e%3&&(t+=G));else t+=\n\"0\";if(w.length)for(t+=I;z<w.length;z++)t+=w.charAt(z)}}else if(e==d.commands.date)f=f.toLowerCase(),\"y\"==f||\"yy\"==f?t+=(n.year+\"\").substring(2):\"yyyy\"==f?t+=n.year+\"\":\"d\"==f?t+=n.day+\"\":\"dd\"==f?(f=1E3+n.day,t+=(f+\"\").substr(2)):\"ddd\"==f?(f=Math.floor(a+6)%7,t+=b.s_FormatNumber_daynames3[f]):\"dddd\"==f?(f=Math.floor(a+6)%7,t+=b.s_FormatNumber_daynames[f]):\"m\"==f?t+=n.month+\"\":\"mm\"==f?(f=1E3+n.month,t+=(f+\"\").substr(2)):\"mmm\"==f?t+=b.s_FormatNumber_monthnames3[n.month-1]:\"mmmm\"==f?t+=b.s_FormatNumber_monthnames[n.month-\n1]:\"mmmmm\"==f?t+=b.s_FormatNumber_monthnames[n.month-1].charAt(0):\"h\"==f?t+=h+\"\":\"h]\"==f?t+=p+\"\":\"mmin\"==f?(f=1E3+m+\"\",t+=f.substr(2)):\"mm]\"==f?100>r?(f=1E3+r+\"\",t+=f.substr(2)):t+=r+\"\":\"min\"==f?t+=m+\"\":\"m]\"==f?t+=r+\"\":\"hh\"==f?(f=1E3+h+\"\",t+=f.substr(2)):\"s\"==f?(f=Math.floor(g),t+=f+\"\"):\"ss\"==f?(f=1E3+Math.floor(g)+\"\",t+=f.substr(2)):\"am/pm\"==f||\"a/p\"==f?t+=q:\"ss]\"==f&&(100>l?(f=1E3+Math.floor(l)+\"\",t+=f.substr(2)):(f=Math.floor(l),t+=f+\"\"));else if(e==d.commands.section)break;else e!=d.commands.comparison&&\n(t+=\"!! Parse error !!\");C&&(t='<span style=\"color:'+C+';\">'+t+\"</span>\");D&&(t='<span style=\"'+D+';\">'+t+\"</span>\");return t};\nSocialCalc.FormatNumber.formatTextWithFormat=function(a,c){var b=SocialCalc.FormatNumber,d=a+\"\",e=\"\",f,g,l=\"\",h=\"\";b.parse_format_string(b.format_definitions,c);thisformat=b.format_definitions[c];if(!thisformat)throw\"Format not parsed error!\";f=thisformat.sectioninfo.length-1;if(0==f)f=0;else if(3==f)f=3;else return d;for(f=thisformat.sectioninfo[f].sectionstart;op=thisformat.operators[f];)g=thisformat.operands[f++],op==b.commands.copy?e=\"@\"==g?e+d:e+g.replace(/ /g,\" \"):op==b.commands.color?\nl=g:op==b.commands.style&&(h=g);l&&(e='<span style=\"color:'+l+';\">'+e+\"</span>\");h&&(e='<span style=\"'+h+';\">'+e+\"</span>\");return e};\nSocialCalc.FormatNumber.parse_format_string=function(a,c){var b=SocialCalc.FormatNumber,d,e,f=1,g,l,h,m,p,r,q,n,s,t,u,w,v;if(!a[c]){d={operators:[],operands:[],sectioninfo:[{}]};a[c]=d;e=0;sectioninfo=d.sectioninfo[e];sectioninfo.sectionstart=0;sectioninfo.integerdigits=0;sectioninfo.fractiondigits=0;sectioninfo.commas=0;for(v=sectioninfo.percent=0;v<c.length;v++)if(s=c.charAt(v),p)'\"'==s?(p=0,d.operators.push(b.commands.copy),d.operands.push(r)):r+=s;else if(q)\"]\"==s?(q=0,s=SocialCalc.FormatNumber.parse_format_bracket(n),\ns.operator==b.commands.separator?sectioninfo.thousandssep=1:(s.operator==b.commands.date&&(sectioninfo.hasdate=1),s.operator==b.commands.comparison&&(d.hascomparison=1),d.operators.push(s.operator),d.operands.push(s.operand))):n+=s;else if(l)d.operators.push(b.commands.copy),d.operands.push(s),l=!1;else if(h)d.operators.push(b.commands.copy),d.operands.push(s+s+s+s+s),h=!1;else if(m)d.operators.push(b.commands.copy),d.operands.push(\" \"),m=!1;else{if(t){if(\"general\".charAt(t)==s.toLowerCase()){t++;\n7==t&&(d.operators.push(b.commands.general),d.operands.push(s),t=0);continue}t=0}if(w){if(w.charAt(0)==s){w+=s;continue}d.operators.push(b.commands.date);d.operands.push(w);sectioninfo.hasdate=1;w=\"\"}if(u)if(u+=s,s=u.toLowerCase(),s!=\"am/pm\".substring(0,s.length)&&s!=\"a/p\".substring(0,s.length))ampstr=\"\";else{if(\"am/pm\"==s||\"a/p\"==s)d.operators.push(b.commands.date),d.operands.push(u),u=\"\"}else\"#\"==s||\"0\"==s||\"?\"==s?(f?(sectioninfo.integerdigits++,sectioninfo.commas&&(sectioninfo.thousandssep=1,sectioninfo.commas=\n0),g=1,d.operators.push(b.commands.integer_placeholder)):(sectioninfo.fractiondigits++,g=1,d.operators.push(b.commands.fraction_placeholder)),d.operands.push(s)):\".\"==s?(g=0,d.operators.push(b.commands.decimal),d.operands.push(s),f=0):\"$\"==s?(g=0,d.operators.push(b.commands.currency),d.operands.push(s)):\",\"==s?g?sectioninfo.commas++:(d.operators.push(b.commands.copy),d.operands.push(s)):\"%\"==s?(g=0,sectioninfo.percent++,d.operators.push(b.commands.copy),d.operands.push(s)):'\"'==s?(g=0,p=1,r=\"\"):\"[\"==\ns?(g=0,q=1,n=\"\"):\"\\\\\"==s?(l=1,g=0):\"*\"==s?(h=1,g=0):\"_\"==s?(m=1,g=0):\";\"==s?(e++,d.sectioninfo[e]={},sectioninfo=d.sectioninfo[e],sectioninfo.sectionstart=1+d.operators.length,sectioninfo.integerdigits=0,sectioninfo.fractiondigits=0,sectioninfo.commas=0,sectioninfo.percent=0,f=1,g=0,d.operators.push(b.commands.section),d.operands.push(s)):\"g\"==s.toLowerCase()?(t=1,g=0):\"a\"==s.toLowerCase()?(u=s,g=0):0<=\"dmyhHs\".indexOf(s)?w=s:(g=0,d.operators.push(b.commands.copy),d.operands.push(s))}w&&(d.operators.push(b.commands.date),\nd.operands.push(w),sectioninfo.hasdate=1)}};\nSocialCalc.FormatNumber.parse_format_bracket=function(a){var c=SocialCalc.FormatNumber,b=SocialCalc.Constants,d={},e;\"$\"==a.charAt(0)?(d.operator=c.commands.currency,e=a.match(/^\\$(.+?)(\\-.+?){0,1}$/),d.operand=e?e[1]||b.FormatNumber_defaultCurrency||\"$\":a.substring(1)||b.FormatNumber_defaultCurrency||\"$\"):\"?$\"==a?(d.operator=c.commands.currency,d.operand=\"[?$]\"):c.allowedcolors[a.toUpperCase()]?(d.operator=c.commands.color,d.operand=c.allowedcolors[a.toUpperCase()]):(e=a.match(/^style=([^\"]*)$/))?\n(d.operator=c.commands.style,d.operand=e[1]):\",\"==a?(d.operator=c.commands.separator,d.operand=a):c.alloweddates[a.toUpperCase()]?(d.operator=c.commands.date,d.operand=c.alloweddates[a.toUpperCase()]):a.match(/^[<>=]/)?(e=a.match(/^([<>=]+)(.+)$/),d.operator=c.commands.comparison,d.operand=e[1]+\":\"+e[2]):(d.operator=c.commands.copy,d.operand=\"[\"+a+\"]\");return d};\nSocialCalc.FormatNumber.convert_date_gregorian_to_julian=function(a,c,b){b=b-32075+SocialCalc.intFunc(1461*(a+4800+SocialCalc.intFunc((c-14)/12))/4);b+=SocialCalc.intFunc(367*(c-2-12*SocialCalc.intFunc((c-14)/12))/12);return b-=SocialCalc.intFunc(3*SocialCalc.intFunc((a+4900+SocialCalc.intFunc((c-14)/12))/100)/4)};\nSocialCalc.FormatNumber.convert_date_julian_to_gregorian=function(a){var c,b,d,e;a+=68569;c=Math.floor(4*a/146097);a-=Math.floor((146097*c+3)/4);b=Math.floor(4E3*(a+1)/1461001);a=a-Math.floor(1461*b/4)+31;d=Math.floor(80*a/2447);e=a-Math.floor(2447*d/80);a=Math.floor(d/11);return{year:100*(c-49)+b+a,month:d+2-12*a,day:e}};SocialCalc.intFunc=function(a){return 0>a?-Math.floor(-a):Math.floor(a)};SocialCalc||(SocialCalc={});SocialCalc.Formula={};SocialCalc.Formula.ParseState={num:1,alpha:2,coord:3,string:4,stringquote:5,numexp1:6,numexp2:7,alphanumeric:8,specialvalue:9};SocialCalc.Formula.TokenType={num:1,coord:2,op:3,name:4,error:5,string:6,space:7};SocialCalc.Formula.CharClass={num:1,numstart:2,op:3,eof:4,alpha:5,incoord:6,error:7,quote:8,space:9,specialstart:10};\nSocialCalc.Formula.CharClassTable={\" \":9,\"!\":3,'\"':8,\"'\":8,\"#\":10,$:6,\"%\":3,\"&\":3,\"(\":3,\")\":3,\"*\":3,\"+\":3,\",\":3,\"-\":3,\".\":2,\"/\":3,0:1,1:1,2:1,3:1,4:1,5:1,6:1,7:1,8:1,9:1,\":\":3,\"<\":3,\"=\":3,\">\":3,A:5,B:5,C:5,D:5,E:5,F:5,G:5,H:5,I:5,J:5,K:5,L:5,M:5,N:5,O:5,P:5,Q:5,R:5,S:5,T:5,U:5,V:5,W:5,X:5,Y:5,Z:5,\"^\":3,_:5,a:5,b:5,c:5,d:5,e:5,f:5,g:5,h:5,i:5,j:5,k:5,l:5,m:5,n:5,o:5,p:5,q:5,r:5,s:5,t:5,u:5,v:5,w:5,x:5,y:5,z:5};\nSocialCalc.Formula.UpperCaseTable={a:\"A\",b:\"B\",c:\"C\",d:\"D\",e:\"E\",f:\"F\",g:\"G\",h:\"H\",i:\"I\",j:\"J\",k:\"K\",l:\"L\",m:\"M\",n:\"N\",o:\"O\",p:\"P\",q:\"Q\",r:\"R\",s:\"S\",t:\"T\",u:\"U\",v:\"V\",w:\"W\",x:\"X\",y:\"Y\",z:\"Z\",A:\"A\",B:\"B\",C:\"C\",D:\"D\",E:\"E\",F:\"F\",G:\"G\",H:\"H\",I:\"I\",J:\"J\",K:\"K\",L:\"L\",M:\"M\",N:\"N\",O:\"O\",P:\"P\",Q:\"Q\",R:\"R\",S:\"S\",T:\"T\",U:\"U\",V:\"V\",W:\"W\",X:\"X\",Y:\"Y\",Z:\"Z\"};SocialCalc.Formula.SpecialConstants={\"#NULL!\":\"0,e#NULL!\",\"#NUM!\":\"0,e#NUM!\",\"#DIV/0!\":\"0,e#DIV/0!\",\"#VALUE!\":\"0,e#VALUE!\",\"#REF!\":\"0,e#REF!\",\"#NAME?\":\"0,e#NAME?\"};\nSocialCalc.Formula.TokenPrecedence={\"!\":1,\":\":2,\",\":2,M:-3,P:-3,\"%\":4,\"^\":5,\"*\":6,\"/\":6,\"+\":7,\"-\":7,\"&\":8,\"<\":9,\">\":9,G:9,L:9,N:9};SocialCalc.Formula.TokenOpExpansion={G:\">=\",L:\"<=\",M:\"-\",N:\"<>\",P:\"+\"};\nSocialCalc.Formula.TypeLookupTable={unaryminus:{\"n*\":\"|n*:1|\",\"e*\":\"|e*:1|\",\"t*\":\"|t*:e#VALUE!|\",b:\"|b:n|\"},unaryplus:{\"n*\":\"|n*:1|\",\"e*\":\"|e*:1|\",\"t*\":\"|t*:e#VALUE!|\",b:\"|b:n|\"},unarypercent:{\"n*\":\"|n:n%|n*:n|\",\"e*\":\"|e*:1|\",\"t*\":\"|t*:e#VALUE!|\",b:\"|b:n|\"},plus:{\"n%\":\"|n%:n%|nd:n|nt:n|ndt:n|n$:n|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|\",nd:\"|n%:n|nd:nd|nt:ndt|ndt:ndt|n$:n|n:nd|n*:n|b:n|e*:2|t*:e#VALUE!|\",nt:\"|n%:n|nd:ndt|nt:nt|ndt:ndt|n$:n|n:nt|n*:n|b:n|e*:2|t*:e#VALUE!|\",ndt:\"|n%:n|nd:ndt|nt:ndt|ndt:ndt|n$:n|n:ndt|n*:n|b:n|e*:2|t*:e#VALUE!|\",\nn$:\"|n%:n|nd:n|nt:n|ndt:n|n$:n$|n:n$|n*:n|b:n|e*:2|t*:e#VALUE!|\",nl:\"|n%:n|nd:n|nt:n|ndt:n|n$:n|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|\",n:\"|n%:n|nd:nd|nt:nt|ndt:ndt|n$:n$|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|\",b:\"|n%:n%|nd:nd|nt:nt|ndt:ndt|n$:n$|n:n|n*:n|b:n|e*:2|t*:e#VALUE!|\",\"t*\":\"|n*:e#VALUE!|t*:e#VALUE!|b:e#VALUE!|e*:2|\",\"e*\":\"|e*:1|n*:1|t*:1|b:1|\"},concat:{t:\"|t:t|th:th|tw:tw|tl:t|tr:tr|t*:2|e*:2|\",th:\"|t:th|th:th|tw:t|tl:th|tr:t|t*:t|e*:2|\",tw:\"|t:tw|th:t|tw:tw|tl:tw|tr:tw|t*:t|e*:2|\",tl:\"|t:tl|th:th|tw:tw|tl:tl|tr:tr|t*:t|e*:2|\",\n\"t*\":\"|t*:t|e*:2|\",\"e*\":\"|e*:1|n*:1|t*:1|\"},oneargnumeric:{\"n*\":\"|n*:n|\",\"e*\":\"|e*:1|\",\"t*\":\"|t*:e#VALUE!|\",b:\"|b:n|\"},twoargnumeric:{\"n*\":\"|n*:n|t*:e#VALUE!|e*:2|\",\"e*\":\"|e*:1|n*:1|t*:1|\",\"t*\":\"|t*:e#VALUE!|n*:e#VALUE!|e*:2|\"},propagateerror:{\"n*\":\"|n*:2|e*:2|\",\"e*\":\"|e*:2|\",\"t*\":\"|t*:2|e*:2|\",b:\"|b:2|e*:2|\"}};\nSocialCalc.Formula.ParseFormulaIntoTokens=function(a){var c,b,d,e,f,g;c=SocialCalc.Formula;var l=SocialCalc.Constants,h=c.ParseState,m=c.TokenType,p=c.CharClass,r=c.CharClassTable,q=c.UpperCaseTable,n=c.ParsePushToken,s=/^\\$?[A-Z]{1,2}\\$?[1-9]\\d*$/i,t=[],u=\"\";f=0;e=!1;for(c=0;c<=a.length;c++)c<a.length?(b=a.charAt(c),d=r[b]):(b=\"\",d=p.eof),f==h.num&&(d==p.num?u+=b:d!=p.numstart||e?\"E\"==b||\"e\"==b?(u+=b,e=!1,f=h.numexp1):(n(t,u,m.num,0),e=!1,f=0):(e=!0,u+=b)),f==h.numexp1&&(d==h.num?f=h.numexp2:\"+\"!=\nb&&\"-\"!=b||\"E\"!=q[u.charAt(u.length-1)]?\"E\"!=b&&\"e\"!=b&&(n(t,l.s_parseerrexponent,m.error,0),f=0):u+=b),f==h.numexp2&&(d==p.num?u+=b:(n(t,u,m.num,0),f=0)),f==h.alpha&&(d==p.num?f=h.coord:d==p.alpha||\".\"==b?u+=b:d==p.incoord?f=h.coord:(d==p.op||d==p.numstart||d==p.space||d==p.eof?n(t,u.toUpperCase(),m.name,0):n(t,l.s_parseerrchar,m.error,0),f=0)),f==h.coord&&(d==p.num?u+=b:d==p.incoord?u+=b:d==p.alpha?f=h.alphanumeric:(d==p.op||d==p.numstart||d==p.eof||d==p.space?(f=s.test(u)?m.coord:m.name,n(t,u.toUpperCase(),\nf,0)):n(t,l.s_parseerrchar,m.error,0),f=0)),f==h.alphanumeric&&(d==p.num||d==p.alpha?u+=b:(d==p.op||d==p.numstart||d==p.space||d==p.eof?n(t,u.toUpperCase(),m.name,0):n(t,l.s_parseerrchar,m.error,0),f=0)),f==h.string?d==p.quote?f=h.stringquote:d==p.eof?(n(t,l.s_parseerrstring,m.error,0),f=0):u+=b:f==h.stringquote?d==p.quote?(u+=b,f=h.string):(n(t,u,m.string,0),f=0):f==h.specialvalue&&(\"!\"==u.charAt(u.length-1)?(n(t,u,m.name,0),f=0):d==p.eof?(n(t,l.s_parseerrspecialvalue,m.error,0),f=0):u+=b),0==f&&\n(d==p.num?(u=b,f=h.num):d==p.numstart?(u=b,e=!0,f=h.num):d==p.alpha||d==p.incoord?(u=b,f=h.alpha):d==p.specialstart?(u=b,f=h.specialvalue):d==p.op?(u=b,0<t.length?(f=t[t.length-1],d=f.type,g=f.text,d!=p.op||\"<\"!=g&&\">\"!=g||(u=g+u,t.pop(),0<t.length?(f=t[t.length-1],d=f.type,g=f.text):(d=p.eof,g=\"EOF\"))):(d=p.eof,g=\"EOF\"),f=m.op,0==t.length||d==p.op&&\")\"!=g&&\"%\"!=g?\"-\"==u?b=u=\"M\":\"+\"==u?b=u=\"P\":\")\"==u&&\"(\"==g||\"(\"==u||(f=m.error,u=l.s_parseerrtwoops):1<u.length&&(\">=\"==u?b=u=\"G\":\"<=\"==u?b=u=\"L\":\"<>\"==\nu?b=u=\"N\":(f=m.error,u=l.s_parseerrtwoops)),n(t,u,f,b),f=0):d==p.quote?(u=\"\",f=h.string):d!=p.space&&d!=p.eof&&n(t,l.s_parseerrchar,m.error,0));return t};SocialCalc.Formula.ParsePushToken=function(a,c,b,d){a.push({text:c,type:b,opcode:d})};SocialCalc.Formula.evaluate_parsed_formula=function(a,c,b){var d=SocialCalc.Formula,e;e=d.ConvertInfixToPolish(a);return d.EvaluatePolish(a,e,c,b)};\nSocialCalc.Formula.ConvertInfixToPolish=function(a){var c=SocialCalc.Formula,b=SocialCalc.Constants,d=c.TokenType,c=c.TokenPrecedence,e=[],f=[],g=\"\",l,h,m,p;for(l=0;l<a.length;l++)if(h=a[l],m=h.type,p=h.text,m==d.num||m==d.coord||m==d.string)e.push(l);else if(m==d.name)f.push(l),e.push(-1);else if(m!=d.space)if(\",\"==p){for(;f.length&&\"(\"!=a[f[f.length-1]].text;)e.push(f.pop());if(0==f.length){g=b.s_parseerrmissingopenparen;break}}else if(\"(\"==p)f.push(l);else if(\")\"==p){for(;f.length&&\"(\"!=a[f[f.length-\n1]].text;)e.push(f.pop());if(0==f.length){g=b.s_parseerrcloseparennoopen;break}f.pop();f.length&&a[f[f.length-1]].type==d.name&&e.push(f.pop())}else if(m==d.op){for(f.length&&a[f[f.length-1]].type==d.name&&e.push(f.pop());f.length&&a[f[f.length-1]].type==d.op&&\"(\"!=a[f[f.length-1]].text;){m=c[h.opcode];p=c[a[f[f.length-1]].opcode];if(0<=m&&m<p)break;else if(0>m&&(m=-m,0>p&&(p=-p),m<=p))break;e.push(f.pop())}f.push(l)}else{g=m==d.error?p:\"Internal error while processing parsed formula. \";break}for(;0<\nf.length;){if(\"(\"==a[f[f.length-1]].text){g=b.s_parseerrmissingcloseparen;break}e.push(f.pop())}return g?g:e};\nSocialCalc.Formula.EvaluatePolish=function(a,c,b,d){var e=SocialCalc.Formula,f=SocialCalc.Constants,g=e.TokenType,l=e.LookupResultType,h=e.TypeLookupTable,m=e.OperandAsNumber,p=e.OperandAsText,r=e.OperandValueAndType,q=e.OperandsAsCoordOnSheet,n=SocialCalc.format_number_for_display||function(a,c,b){return a+\"\"},s=\"\",t={value:\"\",type:\"e#VALUE!\",error:f.s_parseerrmissingoperand},u=[],w=function(a,c){u.push({type:a,value:c})},v,x,y,z,C,D;if(!(a.length&&c instanceof Array))return{value:\"\",type:\"e#VALUE!\",\nerror:\"string\"==typeof c?c:\"\"};for(v=0;v<c.length;v++)if(x=c[v],-1==x)w(\"start\",0);else if(x=a[x],y=x.type,x=x.text,y==g.num)w(\"n\",x-0);else if(y==g.coord)w(\"coord\",x);else if(y==g.string)w(\"t\",x);else if(y==g.op){if(0>=u.length)return t;if(\"M\"==x)y=m(b,u),x=l(y.type,y.type,h.unaryminus),w(x,-y.value);else if(\"P\"==x)y=m(b,u),x=l(y.type,y.type,h.unaryplus),w(x,y.value);else if(\"%\"==x)y=m(b,u),x=l(y.type,y.type,h.unarypercent),w(x,.01*y.value);else if(\"&\"==x){if(1>=u.length)return t;z=p(b,u);y=p(b,\nu);x=l(y.type,y.type,h.concat);w(x,y.value+z.value)}else if(\":\"==x){if(1>=u.length)return t;y=e.OperandsAsRangeOnSheet(b,u);y.error&&(s=s||y.error);w(y.type,y.value)}else if(\"!\"==x){if(1>=u.length)return t;y=q(b,u);y.error&&(s=s||y.error);w(y.type,y.value)}else if(\"<\"==x||\"L\"==x||\"=\"==x||\"G\"==x||\">\"==x||\"N\"==x){if(1>=u.length){s=f.s_parseerrmissingoperand;break}z=r(b,u);y=r(b,u);\"n\"==y.type.charAt(0)&&\"n\"==z.type.charAt(0)?(C=0,\"<\"==x?C=y.value<z.value?1:0:\"L\"==x?C=y.value<=z.value?1:0:\"=\"==x?C=y.value==\nz.value?1:0:\"G\"==x?C=y.value>=z.value?1:0:\">\"==x?C=y.value>z.value?1:0:\"N\"==x&&(C=y.value!=z.value?1:0),w(\"nl\",C)):\"e\"==y.type.charAt(0)?w(y.type,0):\"e\"==z.type.charAt(0)?w(z.type,0):(C=y.type.charAt(0),D=z.type.charAt(0),\"n\"==C?y.value=n(y.value,\"n\",\"\"):\"b\"==C&&(y.value=\"\"),\"n\"==D?z.value=n(z.value,\"n\",\"\"):\"b\"==D&&(z.value=\"\"),C=0,y.value=y.value.toLowerCase(),z.value=z.value.toLowerCase(),\"<\"==x?C=y.value<z.value?1:0:\"L\"==x?C=y.value<=z.value?1:0:\"=\"==x?C=y.value==z.value?1:0:\"G\"==x?C=y.value>=\nz.value?1:0:\">\"==x?C=y.value>z.value?1:0:\"N\"==x&&(C=y.value!=z.value?1:0),w(\"nl\",C))}else{if(1>=u.length){s=f.s_parseerrmissingoperand;break}z=m(b,u);y=m(b,u);\"+\"==x?(x=l(y.type,z.type,h.plus),w(x,y.value+z.value)):\"-\"==x?(x=l(y.type,z.type,h.plus),w(x,y.value-z.value)):\"*\"==x?(x=l(y.type,z.type,h.plus),w(x,y.value*z.value)):\"/\"==x?0!=z.value?w(\"n\",y.value/z.value):w(\"e#DIV/0!\",0):\"^\"==x&&(y.value=Math.pow(y.value,z.value),y.type=\"n\",isNaN(y.value)&&(y.value=0,y.type=\"e#NUM!\"),w(y.type,y.value))}}else if(y==\ng.name){if(s=e.CalculateFunction(x,u,b))break}else{s=f.s_InternalError+\"Unknown token \"+y+\" (\"+x+\"). \";break}value=u[0]?u[0].value:\"\";C=u[0]?u[0].type:\"\";\"name\"==C&&(y=SocialCalc.Formula.LookupName(b,value),value=y.value,C=y.type,s=s||y.error);\"coord\"==C&&(y=r(b,u),value=y.value,C=y.type,\"b\"==C&&(C=\"n\",value=0));1<u.length&&!s&&(s+=f.s_parseerrerrorinformula);a=C;\"e\"==C.charAt(0)?s=s||C.substring(1)||f.s_calcerrerrorvalueinformula:\"range\"==C&&(c=value.match(/^(.*)\\|(.*)\\|/),b=c[1].indexOf(\"!\"),c[1]=\n0<=b?c[1].substring(b+1)+\"!\"+c[1].substring(0,b).toUpperCase():c[1].toUpperCase(),value=c[1]+\":\"+c[2].toUpperCase(),d||(s=f.s_formularangeresult+\" \"+value));s&&\"e\"!=a.charAt(0)&&(value=s,a=\"e\");\"n\"!=a.charAt(0)||!isNaN(value)&&isFinite(value)||(value=0,a=\"e#NUM!\",s=isNaN(value)?f.s_calcerrnumericnan:f.s_calcerrnumericoverflow);return{value:value,type:a,error:s}};\nSocialCalc.Formula.LookupResultType=function(a,c,b){var d,e;e=b[a];if(!e&&(e=b[a.charAt(0)+\"*\"],!e))return\"e#VALUE! (internal error, missing LookupResultType \"+a.charAt(0)+\"*)\";b=e.indexOf(\"|\"+c+\":\");if(0<=b){d=e.indexOf(\"|\",b+1);if(0>d)return\"e#VALUE! (internal error, incorrect LookupResultType \"+e+\")\";e=e.substring(b+c.length+2,d);return\"1\"==e?a:\"2\"==e?c:e}b=e.indexOf(\"|\"+c.charAt(0)+\"*:\");if(0<=b){d=e.indexOf(\"|\",b+1);if(0>d)return\"e#VALUE! (internal error, incorrect LookupResultType \"+e+\")\";e=\ne.substring(b+4,d);return\"1\"==e?a:\"2\"==e?c:e}return\"e#VALUE!\"};SocialCalc.Formula.TopOfStackValueAndType=function(a,c){var b=SocialCalc.Formula,d={type:\"\",value:\"\"},e=c.length;if(!e)return d.error=SocialCalc.Constants.s_InternalError+\"no operand on stack\",d;d.value=c[e-1].value;d.type=c[e-1].type;c.pop();\"name\"==d.type&&(d=b.LookupName(a,d.value));return d};\nSocialCalc.Formula.OperandAsNumber=function(a,c){var b,d=SocialCalc.Formula.OperandValueAndType(a,c);b=d.type.charAt(0);\"n\"==b?d.value-=0:\"b\"==b?(d.type=\"n\",d.value=0):\"e\"==b?d.value=0:(b=SocialCalc.DetermineValueType?SocialCalc.DetermineValueType(d.value):{value:d.value-0,type:\"n\"},\"n\"==b.type.charAt(0)?d.value=b.value-0:d.value=0,d.type=b.type);return d};\nSocialCalc.Formula.OperandAsText=function(a,c){var b,d=SocialCalc.Formula.OperandValueAndType(a,c);b=d.type.charAt(0);\"t\"!=b&&(\"n\"==b?(d.value=SocialCalc.format_number_for_display?SocialCalc.format_number_for_display(d.value,d.type,\"\"):d.value+=\"\",d.type=\"t\"):\"b\"==b?(d.value=\"\",d.type=\"t\"):\"e\"==b?d.value=\"\":(c.value=d.value+\"\",c.type=\"t\"));return d};\nSocialCalc.Formula.OperandValueAndType=function(a,c){var b,d,e;b=SocialCalc.Formula;var f={type:\"\",value:\"\"};d=c.length;if(!d)return f.error=SocialCalc.Constants.s_InternalError+\"no operand on stack\",f;f.value=c[d-1].value;f.type=c[d-1].type;c.pop();\"name\"==f.type&&(f=b.LookupName(a,f.value));\"range\"==f.type&&(f=b.StepThroughRangeDown(c,f.value));if(\"coord\"==f.type){e=a;d=f.value.indexOf(\"!\");if(-1!=d){e=b.FindInSheetCache(f.value.substring(d+1));if(null==e)return f.type=\"e#REF!\",f.error=SocialCalc.Constants.s_sheetunavailable+\n\" \"+f.value.substring(d+1),f.value=0,f;f.value=f.value.substring(0,d)}e?(d=e.cells[SocialCalc.Formula.PlainCoord(f.value)])?(b=d.valuetype,f.value=d.datavalue):b=\"b\":(b=\"e#N/A\",f.value=0);f.type=b||\"b\";\"b\"==f.type&&(f.value=0)}return f};\nSocialCalc.Formula.OperandAsCoord=function(a,c){var b={type:\"\",value:\"\"},d=c.length;b.value=c[d-1].value;b.type=c[d-1].type;c.pop();\"name\"==b.type&&(b=SocialCalc.Formula.LookupName(a,b.value));\"coord\"!=b.type&&(b.value=SocialCalc.Constants.s_calcerrcellrefmissing,b.type=\"e#REF!\");return b};\nSocialCalc.Formula.OperandsAsCoordOnSheet=function(a,c){var b,d,e,f={},g={};e=SocialCalc.Formula;b=c.length;f.value=c[b-1].value;f.type=c[b-1].type;c.pop();b=e.OperandAsSheetName(a,c);d=e.FindInSheetCache(b.value);if(null==d)return g.type=\"e#REF!\",g.value=0,g.error=SocialCalc.Constants.s_sheetunavailable+\" \"+b.value,g;\"name\"==f.type&&(f=e.LookupName(d,f.value));g.type=f.type;\"coord\"==f.type?g.value=f.value+\"!\"+b.value:\"range\"==f.type?(e=f.value.indexOf(\"|\"),d=f.value.indexOf(\"|\",e+1),g.value=f.value.substring(0,\ne)+\"!\"+b.value+\"|\"+f.value.substring(e+1,d)+\"|\"):\"e\"==f.type.charAt(0)?g.value=f.value:(g.error=SocialCalc.Constants.s_calcerrcellrefmissing,g.type=\"e#REF!\",g.value=0);return g};\nSocialCalc.Formula.OperandsAsRangeOnSheet=function(a,c){var b,d,e,f,g={},l=SocialCalc.Formula,h=SocialCalc.Constants;b=c.length;g.value=c[b-1].value;g.type=c[b-1].type;c.pop();b=l.OperandAsCoord(a,c);if(\"coord\"!=b.type)return{value:0,type:\"e#REF!\"};d=a;e=b.value.indexOf(\"!\");if(-1!=e&&(f=b.value.indexOf(\"|\",e+1),0>f&&(f=b.value.length),d=l.FindInSheetCache(b.value.substring(e+1,f)),null==d))return{value:0,type:\"e#REF!\",errortext:h.s_sheetunavailable+\" \"+b.value.substring(e+1,f)};\"name\"==g.type&&(g=\nl.LookupName(d,g.value,\"end\"));return\"coord\"==g.type?{value:b.value+\"|\"+g.value+\"|\",type:\"range\"}:{value:h.s_calcerrcellrefmissing,type:\"e#REF!\"}};\nSocialCalc.Formula.OperandAsSheetName=function(a,c){var b,d={type:\"\",value:\"\"};b=c.length;d.value=c[b-1].value;d.type=c[b-1].type;c.pop();if(\"name\"==d.type){b=SocialCalc.Formula.LookupName(a,d.value);if(!b.value)return d;d.value=b.value;d.type=b.type}\"coord\"==d.type&&((b=a.cells[SocialCalc.Formula.PlainCoord(d.value)])?(d.value=b.datavalue,d.type=b.valuetype):(d.value=\"\",d.type=\"b\"));\"t\"!=d.type.charAt(0)&&(d.value=\"\",d.error=SocialCalc.Constants.s_calcerrsheetnamemissing);return d};\nSocialCalc.Formula.LookupName=function(a,c,b){var d,e,f=a.names;e={};d=!1;if(f[c.toUpperCase()]){e.value=f[c.toUpperCase()].definition;if(\"=\"==e.value.charAt(0)){if(!a.checknamecirc)a.checknamecirc={},d=!0;else if(a.checknamecirc[c])return e.type=\"e#NAME?\",e.error=SocialCalc.Constants.s_circularnameref+' \"'+c+'\".',e;a.checknamecirc[c]=!0;e=SocialCalc.Formula.ParseFormulaIntoTokens(e.value.substring(1));e=SocialCalc.Formula.evaluate_parsed_formula(e,a,1);delete a.checknamecirc[c];d&&delete a.checknamecirc;\nif(\"range\"!=e.type)return e}a=e.value.indexOf(\":\");-1!=a?(e.type=\"range\",e.value=e.value.substring(0,a)+\"|\"+e.value.substring(a+1)+\"|\"):e.type=\"coord\";e.value=e.value.toUpperCase()}else(d=SocialCalc.Formula.SpecialConstants[c.toUpperCase()])?(a=d.indexOf(\",\"),e.value=d.substring(0,a)-0,e.type=d.substring(a+1)):/^[a-zA-Z][a-zA-Z]?$/.test(c)?(e.type=\"coord\",e.value=c.toUpperCase()+(b?a.attribs.lastrow:1)):(e.value=\"\",e.type=\"e#NAME?\",e.error=SocialCalc.Constants.s_calcerrunknownname+' \"'+c+'\"');return e};\nSocialCalc.Formula.StepThroughRangeDown=function(a,c){var b,d,e,f,g,l,h,m,p=SocialCalc.Formula;f=c.indexOf(\"|\");e=c.indexOf(\"|\",f+1);b=c.substring(0,f);d=c.substring(f+1,e);e=c.substring(e+1)-0;f=b.indexOf(\"!\");-1!=f?(g=b.substring(f),b=b.substring(0,f)):g=\"\";f=d.indexOf(\"!\");-1!=f&&(d=d.substring(0,f));f=p.OrderRangeParts(b,d);m=0;for(h=f.r1;h<=f.r2;h++)for(l=f.c1;l<=f.c2;l++)if(m++,m>e)return h==f.r2&&l==f.c2||p.PushOperand(a,\"range\",b+g+\"|\"+d+\"|\"+m),{value:SocialCalc.crToCoord(l,h)+g,type:\"coord\"}};\nSocialCalc.Formula.DecodeRangeParts=function(a,c){var b,d,e,f,g=SocialCalc.Formula;e=c.indexOf(\"|\");f=c.indexOf(\"|\",e+1);b=c.substring(0,e);d=c.substring(e+1,f);e=b.indexOf(\"!\");-1!=e?(f=b.substring(e+1),b=b.substring(0,e)):f=\"\";e=d.indexOf(\"!\");-1!=e&&(d=d.substring(0,e));e=a;if(f&&(e=g.FindInSheetCache(f),null==e))return null;b=g.OrderRangeParts(b,d);return{sheetdata:e,sheetname:f,col1num:b.c1,ncols:b.c2-b.c1+1,row1num:b.r1,nrows:b.r2-b.r1+1}};\nSocialCalc.Formula.FunctionList||(SocialCalc.Formula.FunctionList={});SocialCalc.Formula.FunctionClasses=null;SocialCalc.Formula.FunctionArgDefs={};\nSocialCalc.Formula.CalculateFunction=function(a,c,b){var d,e,f,g=SocialCalc.Formula;e=\"\";if(d=g.FunctionList[a]){e=[];f=d[0];d=d[1];g.CopyFunctionArgs(c,e);if(100!=d)if(0>d){if(e.length<-d)return e=g.FunctionArgsError(a,c)}else if(e.length!=d)return e=g.FunctionArgsError(a,c);e=f(a,c,e,b)}else c.length&&\"start\"==c[c.length-1].type?(c.pop(),g.PushOperand(c,\"name\",a)):e=SocialCalc.Constants.s_sheetfuncunknownfunction+\" \"+a+\". \";return e};\nSocialCalc.Formula.PushOperand=function(a,c,b){a.push({type:c,value:b})};SocialCalc.Formula.CopyFunctionArgs=function(a,c){for(;0<a.length&&\"start\"!=a[a.length-1].type;)c.push(a.pop());a.pop()};SocialCalc.Formula.FunctionArgsError=function(a,c){var b=SocialCalc.Constants.s_calcerrincorrectargstofunction+\" \"+a+\". \";SocialCalc.Formula.PushOperand(c,\"e#VALUE!\",b);return b};SocialCalc.Formula.FunctionSpecificError=function(a,c,b,d){SocialCalc.Formula.PushOperand(c,b,d);return d};\nSocialCalc.Formula.CheckForErrorValue=function(a,c){return\"e\"==c.type.charAt(0)?(a.push(c),!0):!1};\nSocialCalc.Formula.FillFunctionInfo=function(){var a=SocialCalc.Formula,c=SocialCalc.Constants,b,d,e;if(!a.FunctionClasses){for(b in a.FunctionList)d=a.FunctionList[b],d[2]&&(a.FunctionArgDefs[d[2]]=c[\"s_farg_\"+d[2]]||\"\"),d[3]||c[\"s_fdef_\"+b]&&(a.FunctionList[b][3]=c[\"s_fdef_\"+b]);a.FunctionClasses={};for(d=0;d<c.function_classlist.length;d++)e=c.function_classlist[d],a.FunctionClasses[e]={name:c[\"s_fclass_\"+e],items:[]};for(b in a.FunctionList)for(d=a.FunctionList[b],c=d[4]?d[4].split(\",\"):[],c.push(\"all\"),\nd=0;d<c.length;d++)e=c[d],a.FunctionClasses[e].items.push(b);for(e in a.FunctionClasses)a.FunctionClasses[e].items.sort()}};SocialCalc.Formula.FunctionArgString=function(a){var c=SocialCalc.Formula;a=c.FunctionList[a];var b;b=a[2];if(!b)if(a=a[1],0==a)b=\" \";else{if(0<a){b=\"v1\";for(c=2;c<=a;c++)b+=\", v\"+c;return b}if(0>a){b=\"v1\";for(c=2;c<-a;c++)b+=\", v\"+c;return b+\", ...\"}return\"nargs: \"+a}return b=c.FunctionArgDefs[b]||b};\nSocialCalc.Formula.SeriesFunctions=function(a,c,b,d){var e,f;e=SocialCalc.Formula;for(var g=e.OperandValueAndType,l=e.LookupResultType,h=e.TypeLookupTable.plus,m=function(a,b){c.push({type:a,value:b})},p=0,r=\"\",q=0,n=0,s=0,t=1,u,w,v,x,y,z;0<b.length;)e=g(d,b),f=e.type.charAt(0),\"n\"==f&&(q+=1),\"b\"!=f&&(n+=1),\"b\"==f&&(s+=1),\"n\"==f?(f=e.value-0,p+=f,t*=f,u=void 0!=u?f>u?f:u:f,w=void 0!=w?f<w?f:w:f,1==q?(y=f,z=0):(v=y+(f-y)/q,z=x=z+(f-y)*(f-v),y=v),r=l(e.type,r||e.type,h)):\"e\"==f&&\"e\"!=r.charAt(0)&&(r=\ne.type);r=r||\"n\";switch(a){case \"SUM\":m(r,p);break;case \"PRODUCT\":m(r,t);break;case \"MIN\":m(r,w||0);break;case \"MAX\":m(r,u||0);break;case \"COUNT\":m(\"n\",q);break;case \"COUNTA\":m(\"n\",n);break;case \"COUNTBLANK\":m(\"n\",s);break;case \"AVERAGE\":0<q?m(r,p/q):m(\"e#DIV/0!\",0);break;case \"STDEV\":1<q?m(r,Math.sqrt(x/(q-1))):m(\"e#DIV/0!\",0);break;case \"STDEVP\":1<q?m(r,Math.sqrt(x/q)):m(\"e#DIV/0!\",0);break;case \"VAR\":1<q?m(r,x/(q-1)):m(\"e#DIV/0!\",0);break;case \"VARP\":1<q?m(r,x/q):m(\"e#DIV/0!\",0)}return null};\nSocialCalc.Formula.FunctionList.AVERAGE=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.COUNT=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.COUNTA=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.COUNTBLANK=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.MAX=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];\nSocialCalc.Formula.FunctionList.MIN=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.PRODUCT=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.STDEV=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.STDEVP=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.SUM=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];\nSocialCalc.Formula.FunctionList.VAR=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];SocialCalc.Formula.FunctionList.VARP=[SocialCalc.Formula.SeriesFunctions,-1,\"vn\",null,\"stat\"];\nSocialCalc.Formula.SumProductFunction=function(a,c,b,d){for(var e=[],f=0,g=SocialCalc.Formula,l=0,h=0,m=function(a,b){c.push({type:a,value:b})};0<b.length;){a=g.TopOfStackValueAndType(d,b);if(\"range\"!=a.type){m(\"e#VALUE!\",0);return}rangeinfo=g.DecodeRangeParts(d,a.value);if(!l)l=rangeinfo.ncols;else if(l!=rangeinfo.ncols){m(\"e#VALUE!\",0);return}if(!h)h=rangeinfo.nrows;else if(h!=rangeinfo.nrows){m(\"e#VALUE!\",0);return}for(i=0;i<rangeinfo.ncols;i++)for(j=0;j<rangeinfo.nrows;j++)k=i*rangeinfo.nrows+\nj,cellcr=SocialCalc.crToCoord(rangeinfo.col1num+i,rangeinfo.row1num+j),cell=rangeinfo.sheetdata.GetAssuredCell(cellcr),value=\"n\"==cell.valuetype?cell.datavalue:0,e[k]=(e[k]||1)*value}for(i=0;i<e.length;i++)f+=e[i];m(\"n\",f)};SocialCalc.Formula.FunctionList.SUMPRODUCT=[SocialCalc.Formula.SumProductFunction,-1,\"rangen\",\"\",\"stat\"];\nSocialCalc.Formula.DSeriesFunctions=function(a,c,b,d){var e,f,g,l,h,m,p,r,q=SocialCalc.Formula,n=q.LookupResultType,s=q.TypeLookupTable.plus,t=function(a,b){c.push({type:a,value:b})};f=e=void 0;var u=0,w=\"\",v=0,x=0,y=1,z,C,D,G,I;g=q.TopOfStackValueAndType(d,b);l=q.OperandValueAndType(d,b);h=q.TopOfStackValueAndType(d,b);if(\"range\"!=g.type||\"range\"!=h.type)return q.FunctionArgsError(a,c);b=q.DecodeRangeParts(d,g.value);d=q.DecodeRangeParts(d,h.value);l=q.FieldToColnum(b.sheetdata,b.col1num,b.ncols,\nb.row1num,l.value,l.type);if(0>=l)t(\"e#VALUE!\",0);else{l=b.col1num+l-1;h=[];for(g=0;g<d.ncols;g++){m=d.sheetdata.GetAssuredCell(SocialCalc.crToCoord(d.col1num+g,d.row1num));criterianum=q.FieldToColnum(b.sheetdata,b.col1num,b.ncols,b.row1num,m.datavalue,m.valuetype);if(0>=criterianum){t(\"e#VALUE!\",0);return}h.push(b.col1num+criterianum-1)}for(g=1;g<b.nrows;g++){p=!1;e=1;a:for(;e<d.nrows;e++){for(f=0;f<d.ncols;f++)if(r=SocialCalc.crToCoord(d.col1num+f,d.row1num+e),m=d.sheetdata.GetAssuredCell(r),r=\nm.datavalue,\"string\"!=typeof r||0!=r.length)if(m=h[f],m=SocialCalc.crToCoord(m,b.row1num+g),m=d.sheetdata.GetAssuredCell(m),!q.TestCriteria(m.datavalue,m.valuetype||\"b\",r))continue a;p=!0;break a}p&&(e=SocialCalc.crToCoord(l,b.row1num+g),m=b.sheetdata.GetAssuredCell(e),e=m.datavalue,f=m.valuetype,p=f.charAt(0),\"n\"==p&&(v+=1),\"b\"!=p&&(x+=1),\"n\"==p?(v1=e-0,u+=v1,y*=v1,z=void 0!=z?v1>z?v1:z:v1,C=void 0!=C?v1<C?v1:C:v1,1==v?(G=v1,I=0):(e=G+(v1-G)/v,I=D=I+(v1-G)*(v1-e),G=e),w=n(f,w||f,s)):\"e\"==p&&\"e\"!=\nw.charAt(0)&&(w=f))}w=w||\"n\";switch(a){case \"DSUM\":t(w,u);break;case \"DPRODUCT\":t(w,y);break;case \"DMIN\":t(w,C||0);break;case \"DMAX\":t(w,z||0);break;case \"DCOUNT\":t(\"n\",v);break;case \"DCOUNTA\":t(\"n\",x);break;case \"DAVERAGE\":0<v?t(w,u/v):t(\"e#DIV/0!\",0);break;case \"DSTDEV\":1<v?t(w,Math.sqrt(D/(v-1))):t(\"e#DIV/0!\",0);break;case \"DSTDEVP\":1<v?t(w,Math.sqrt(D/v)):t(\"e#DIV/0!\",0);break;case \"DVAR\":1<v?t(w,D/(v-1)):t(\"e#DIV/0!\",0);break;case \"DVARP\":1<v?t(w,D/v):t(\"e#DIV/0!\",0);break;case \"DGET\":1==v?t(w,\nu):0==v?t(\"e#VALUE!\",0):t(\"e#NUM!\",0)}}};SocialCalc.Formula.FunctionList.DAVERAGE=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DCOUNT=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DCOUNTA=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DGET=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];\nSocialCalc.Formula.FunctionList.DMAX=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DMIN=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DPRODUCT=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DSTDEV=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DSTDEVP=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];\nSocialCalc.Formula.FunctionList.DSUM=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DVAR=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.DVARP=[SocialCalc.Formula.DSeriesFunctions,3,\"dfunc\",\"\",\"stat\"];\nSocialCalc.Formula.FieldToColnum=function(a,c,b,d,e,f){var g;if(\"n\"==f.charAt(0))return f=e-0,0>=f||f>b?0:Math.floor(f);if(\"t\"!=f.charAt(0))return 0;e=e?e.toLowerCase():\"\";for(f=0;f<b;f++)if(g=a.GetAssuredCell(SocialCalc.crToCoord(c+f,d)),g=g.datavalue,g=(g+\"\").toLowerCase(),g==e)return f+1;return 0};\nSocialCalc.Formula.LookupFunctions=function(a,c,b,d){var e,f,g,l,h,m,p,r,q,n,s;s=SocialCalc.Formula;e=s.OperandValueAndType;var t=function(a,b){c.push({type:a,value:b})};e=e(d,b);\"string\"==typeof e.value&&(e.value=e.value.toLowerCase());f=s.TopOfStackValueAndType(d,b);g=1;if(\"MATCH\"==a){if(b.length){g=s.OperandAsNumber(d,b);if(\"n\"!=g.type.charAt(0)){t(\"e#VALUE!\",0);return}if(b.length)return s.FunctionArgsError(a,c),0;g=g.value-0}}else{l=s.OperandAsNumber(d,b);if(\"n\"!=l.type.charAt(0)){t(\"e#VALUE!\",\n0);return}l=Math.floor(l.value);if(b.length){g=s.OperandAsNumber(d,b);if(\"n\"!=g.type.charAt(0)){t(\"e#VALUE!\",0);return}if(b.length)return s.FunctionArgsError(a,c),0;g=g.value?1:0}}e.type=e.type.charAt(0);\"n\"==e.type&&(e.value-=0);if(\"range\"!=f.type)return s.FunctionArgsError(a,c),0;if(b=s.DecodeRangeParts(d,f.value,f.type)){m=h=f=d=0;if(\"HLOOKUP\"==a){if(h=1,l>b.nrows){t(\"e#REF!\",0);return}}else if(\"VLOOKUP\"==a){if(m=1,l>b.ncols){t(\"e#REF!\",0);return}}else if(\"MATCH\"==a)if(1<b.ncols){if(1<b.nrows){t(\"e#N/A\",\n0);return}h=1}else m=1;else return s.FunctionArgsError(a,c),0;if(1>l&&\"MATCH\"!=a)return t(\"e#VALUE!\",0),0;for(;;){s=SocialCalc.crToCoord(b.col1num+d,b.row1num+f);n=b.sheetdata.GetAssuredCell(s);s=n.datavalue;n=n.valuetype?n.valuetype.charAt(0):\"b\";\"n\"==n&&(s-=0);if(g)if(\"n\"==e.type&&\"n\"==n){if(e.value==s)break;if(0<g&&e.value>s||0>g&&e.value<s)p=1,r=d,q=f;else if(p){p=2;break}}else{if(\"t\"==e.type&&\"t\"==n){s=\"string\"==typeof s?s.toLowerCase():\"\";if(e.value==s)break;if(0<g&&e.value>s||0>g&&e.value<\ns)p=1,r=d,q=f;else if(p){p=2;break}}}else if(\"n\"==e.type&&\"n\"==n){if(e.value==s)break}else if(\"t\"==e.type&&\"t\"==n&&(s=\"string\"==typeof s?s.toLowerCase():\"\",e.value==s))break;f+=m;d+=h;if(f>=b.nrows||d>=b.ncols){if(p){p=2;break}t(\"e#N/A\",0);return}}2==p&&(f=q,d=r);\"MATCH\"==a?(s=d+f+1,n=\"n\"):(s=SocialCalc.crToCoord(b.col1num+d+(\"VLOOKUP\"==a?l-1:0),b.row1num+f+(\"HLOOKUP\"==a?l-1:0)),n=b.sheetdata.GetAssuredCell(s),s=n.datavalue,n=n.valuetype);t(n,s)}else t(\"e#REF!\",0)};\nSocialCalc.Formula.FunctionList.HLOOKUP=[SocialCalc.Formula.LookupFunctions,-3,\"hlookup\",\"\",\"lookup\"];SocialCalc.Formula.FunctionList.MATCH=[SocialCalc.Formula.LookupFunctions,-2,\"match\",\"\",\"lookup\"];SocialCalc.Formula.FunctionList.VLOOKUP=[SocialCalc.Formula.LookupFunctions,-3,\"vlookup\",\"\",\"lookup\"];\nSocialCalc.Formula.IndexFunction=function(a,c,b,d){var e,f,g,l,h=SocialCalc.Formula,m=function(a,b){c.push({type:a,value:b})};e=h.TopOfStackValueAndType(d,b);if(\"range\"!=e.type)return h.FunctionArgsError(a,c),0;f=h.DecodeRangeParts(d,e.value,e.type);e=f.sheetname?\"!\"+f.sheetname:\"\";g={value:0};l={value:0};if(b.length){g=h.OperandAsNumber(d,b);if(\"n\"!=g.type.charAt(0)||0>g.value){m(\"e#VALUE!\",0);return}if(b.length){l=h.OperandAsNumber(d,b);if(\"n\"!=l.type.charAt(0)||0>l.value){m(\"e#VALUE!\",0);return}if(b.length)return h.FunctionArgsError(a,\nc),0}else 1==f.nrows&&(l.value=g.value,g.value=0)}g.value>f.nrows||l.value>f.ncols?m(\"e#REF!\",0):(0==g.value?0==l.value?1==f.nrows&&1==f.ncols?(a=SocialCalc.crToCoord(f.col1num,f.row1num)+e,b=\"coord\"):(a=SocialCalc.crToCoord(f.col1num,f.row1num)+e+\"|\"+SocialCalc.crToCoord(f.col1num+f.ncols-1,f.row1num+f.nrows-1)+\"|\",b=\"range\"):1==f.nrows?(a=SocialCalc.crToCoord(f.col1num+l.value-1,f.row1num)+e,b=\"coord\"):(a=SocialCalc.crToCoord(f.col1num+l.value-1,f.row1num)+e+\"|\"+SocialCalc.crToCoord(f.col1num+l.value-\n1,f.row1num+f.nrows-1)+\"|\",b=\"range\"):0==l.value?1==f.ncols?(a=SocialCalc.crToCoord(f.col1num,f.row1num+g.value-1)+e,b=\"coord\"):(a=SocialCalc.crToCoord(f.col1num,f.row1num+g.value-1)+e+\"|\"+SocialCalc.crToCoord(f.col1num+f.ncols-1,f.row1num+g.value-1)+\"|\",b=\"range\"):(a=SocialCalc.crToCoord(f.col1num+l.value-1,f.row1num+g.value-1)+e,b=\"coord\"),m(b,a))};SocialCalc.Formula.FunctionList.INDEX=[SocialCalc.Formula.IndexFunction,-1,\"index\",\"\",\"lookup\"];\nSocialCalc.Formula.CountifSumifFunctions=function(a,c,b,d){var e,f,g,l,h=0,m=\"\",p=0,r=SocialCalc.Formula,q=r.OperandValueAndType,n=r.LookupResultType,s=r.TypeLookupTable.plus;e=r.TopOfStackValueAndType(d,b);f=r.OperandAsText(d,b);if(\"SUMIF\"==a)if(1==b.length)g=r.TopOfStackValueAndType(d,b);else if(0==b.length)g={value:e.value,type:e.type};else return r.FunctionArgsError(a,c),0;else g={value:e.value,type:e.type};\"n\"==f.type.charAt(0)?f.value+=\"\":\"e\"==f.type.charAt(0)?f.value=null:\"b\"==f.type.charAt(0)&&\n(f.value=null);if(\"coord\"!=e.type&&\"range\"!=e.type||\"SUMIF\"==a&&\"coord\"!=g.type&&\"range\"!=g.type)return r.FunctionArgsError(a,c),0;b.push(e);e=[];for(e.push(g);b.length;)g=q(d,b),l=q(d,e),r.TestCriteria(g.value,g.type,f.value)&&(p+=1,\"n\"==l.type.charAt(0)?(h+=l.value-0,m=n(l.type,m||l.type,s)):\"e\"==l.type.charAt(0)&&\"e\"!=m.charAt(0)&&(m=l.type));\"SUMIF\"==a?c.push({type:m||\"n\",value:h}):\"COUNTIF\"==a&&c.push({type:\"n\",value:p})};\nSocialCalc.Formula.FunctionList.COUNTIF=[SocialCalc.Formula.CountifSumifFunctions,2,\"rangec\",\"\",\"stat\"];SocialCalc.Formula.FunctionList.SUMIF=[SocialCalc.Formula.CountifSumifFunctions,-2,\"sumif\",\"\",\"stat\"];\nSocialCalc.Formula.SumifsFunction=function(a,c,b,d){var e,f,g,l=0,h=\"\",m=SocialCalc.Formula,p=m.OperandValueAndType,r=m.LookupResultType,q=m.TypeLookupTable.plus;g=m.TopOfStackValueAndType(d,b);if(\"coord\"!=g.type&&\"range\"!=g.type)return m.FunctionArgsError(a,c),0;for(var n=[],s=[];b.length;){e=m.TopOfStackValueAndType(d,b);f=m.OperandAsText(d,b);\"n\"==f.type.charAt(0)?f.value+=\"\":\"e\"==f.type.charAt(0)?f.value=null:\"b\"==f.type.charAt(0)&&(f.value=null);if(\"coord\"!=e.type&&\"range\"!=e.type)return m.FunctionArgsError(a,\nc),0;n.push([e]);s.push(f)}a=[];for(a.push(g);a.length;){b=p(d,a);e=!0;for(f=0;f<n.length;f++)if(g=p(d,n[f]),!m.TestCriteria(g.value,g.type,s[f].value)){e=!1;break}e&&(\"n\"==b.type.charAt(0)?(l+=b.value-0,h=r(b.type,h||b.type,q)):\"e\"==b.type.charAt(0)&&\"e\"!=h.charAt(0)&&(h=b.type))}c.push({type:h||\"n\",value:l})};SocialCalc.Formula.FunctionList.SUMIFS=[SocialCalc.Formula.SumifsFunction,-3,\"sumifs\",\"\",\"stat\"];\nSocialCalc.Formula.IfFunction=function(a,c,b,d){var e;d=SocialCalc.Formula.OperandValueAndType(d,b);e=d.type.charAt(0);if(\"n\"!=e&&\"b\"!=e)c.push({type:\"e#VALUE!\",value:0});else{e=b.pop();if(1==b.length)a=b.pop();else if(0==b.length)a={type:\"n\",value:0};else{scf.FunctionArgsError(a,c);return}c.push(d.value?e:a)}};SocialCalc.Formula.FunctionList.IF=[SocialCalc.Formula.IfFunction,-2,\"iffunc\",\"\",\"test\"];\nSocialCalc.Formula.DateFunction=function(a,c,b,d){a=SocialCalc.Formula;var e=0,f=a.OperandAsNumber(d,b),g=a.OperandAsNumber(d,b);b=a.OperandAsNumber(d,b);d=a.LookupResultType(f.type,g.type,a.TypeLookupTable.twoargnumeric);d=a.LookupResultType(d,b.type,a.TypeLookupTable.twoargnumeric);\"n\"==d.charAt(0)&&(e=SocialCalc.FormatNumber.convert_date_gregorian_to_julian(Math.floor(f.value),Math.floor(g.value),Math.floor(b.value))-SocialCalc.FormatNumber.datevalues.julian_offset,d=\"nd\");a.PushOperand(c,d,e)};\nSocialCalc.Formula.FunctionList.DATE=[SocialCalc.Formula.DateFunction,3,\"date\",\"\",\"datetime\"];SocialCalc.Formula.TimeFunction=function(a,c,b,d){a=SocialCalc.Formula;var e=0,f=a.OperandAsNumber(d,b),g=a.OperandAsNumber(d,b);b=a.OperandAsNumber(d,b);d=a.LookupResultType(f.type,g.type,a.TypeLookupTable.twoargnumeric);d=a.LookupResultType(d,b.type,a.TypeLookupTable.twoargnumeric);\"n\"==d.charAt(0)&&(e=(3600*f.value+60*g.value+b.value)/86400,d=\"nt\");a.PushOperand(c,d,e)};\nSocialCalc.Formula.FunctionList.TIME=[SocialCalc.Formula.TimeFunction,3,\"hms\",\"\",\"datetime\"];\nSocialCalc.Formula.DMYFunctions=function(a,c,b,d){var e,f=SocialCalc.Formula,g=0,l=f.OperandAsNumber(d,b),h=f.LookupResultType(l.type,l.type,f.TypeLookupTable.oneargnumeric);if(\"n\"==h.charAt(0))switch(e=SocialCalc.FormatNumber.convert_date_julian_to_gregorian(Math.floor(l.value+SocialCalc.FormatNumber.datevalues.julian_offset)),a){case \"DAY\":g=e.day;break;case \"MONTH\":g=e.month;break;case \"YEAR\":g=e.year;break;case \"WEEKDAY\":e={value:1};if(b.length){e=f.OperandAsNumber(d,b);if(\"n\"!=e.type.charAt(0)||\n1>e.value||3<e.value){f.PushOperand(c,\"e#VALUE!\",0);return}if(b.length){f.FunctionArgsError(a,c);return}}a=6;1<e.value&&--a;g=Math.floor(l.value+a)%7+(3>e.value?1:0)}f.PushOperand(c,h,g)};SocialCalc.Formula.FunctionList.DAY=[SocialCalc.Formula.DMYFunctions,1,\"v\",\"\",\"datetime\"];SocialCalc.Formula.FunctionList.MONTH=[SocialCalc.Formula.DMYFunctions,1,\"v\",\"\",\"datetime\"];SocialCalc.Formula.FunctionList.YEAR=[SocialCalc.Formula.DMYFunctions,1,\"v\",\"\",\"datetime\"];\nSocialCalc.Formula.FunctionList.WEEKDAY=[SocialCalc.Formula.DMYFunctions,-1,\"weekday\",\"\",\"datetime\"];\nSocialCalc.Formula.HMSFunctions=function(a,c,b,d){var e,f=SocialCalc.Formula,g=0,l=f.OperandAsNumber(d,b),h=f.LookupResultType(l.type,l.type,f.TypeLookupTable.oneargnumeric);if(\"n\"==h.charAt(0)){if(0>l.value){f.PushOperand(c,\"e#NUM!\",0);return}e=l.value-Math.floor(l.value);e*=24;b=Math.floor(e);e-=Math.floor(e);e*=60;d=Math.floor(e);e-=Math.floor(e);e=Math.floor(60*e+(0<=l.value?.5:-.5));\"HOUR\"==a?g=b:\"MINUTE\"==a?g=d:\"SECOND\"==a&&(g=e)}f.PushOperand(c,h,g)};\nSocialCalc.Formula.FunctionList.HOUR=[SocialCalc.Formula.HMSFunctions,1,\"v\",\"\",\"datetime\"];SocialCalc.Formula.FunctionList.MINUTE=[SocialCalc.Formula.HMSFunctions,1,\"v\",\"\",\"datetime\"];SocialCalc.Formula.FunctionList.SECOND=[SocialCalc.Formula.HMSFunctions,1,\"v\",\"\",\"datetime\"];\nSocialCalc.Formula.ExactFunction=function(a,c,b,d){a=SocialCalc.Formula;var e=0,f=\"nl\",g=a.OperandValueAndType(d,b),l=g.type.charAt(0);b=a.OperandValueAndType(d,b);d=b.type.charAt(0);\"t\"==l?\"t\"==d?e=g.value==b.value?1:0:\"b\"==d?e=g.value.length?0:1:\"n\"==d?e=g.value==b.value+\"\"?1:0:\"e\"==d?(e=b.value,f=b.type):e=0:\"n\"==l?\"n\"==d?e=g.value-0==b.value-0?1:0:\"b\"==d?e=0:\"t\"==d?e=g.value+\"\"==b.value?1:0:\"e\"==d?(e=b.value,f=b.type):e=0:\"b\"==l?\"t\"==d?e=b.value.length?0:1:\"b\"==d?e=1:\"n\"==d?e=0:\"e\"==d?(e=b.value,\nf=b.type):e=0:\"e\"==l&&(e=g.value,f=g.type);a.PushOperand(c,f,e)};SocialCalc.Formula.FunctionList.EXACT=[SocialCalc.Formula.ExactFunction,2,\"\",\"\",\"text\"];SocialCalc.Formula.ArgList={FIND:[1,1,0],LEFT:[1,0],LEN:[1],LOWER:[1],MID:[1,0,0],PROPER:[1],REPLACE:[1,0,0,1],REPT:[1,0],RIGHT:[1,0],SUBSTITUTE:[1,1,1,0],TRIM:[1],HEXCODE:[1],UPPER:[1]};\nSocialCalc.Formula.StringFunctions=function(a,c,b,d){var e,f,g,l=SocialCalc.Formula;g=0;var h=\"e#VALUE!\",m=b.length,p=l.ArgList[a],r=[],q=[];for(e=1;e<=m;e++){if(e>p.length){l.FunctionArgsError(a,c);return}0==p[e-1]?f=l.OperandAsNumber(d,b):1==p[e-1]?f=l.OperandAsText(d,b):-1==p[e-1]&&(f=l.OperandValueAndType(d,b));r[e]=f.value;q[e]=f.type;if(\"e\"==f.type.charAt(0)){l.PushOperand(c,f.type,g);return}}switch(a){case \"FIND\":g=q[3]?r[3]-1:0;0>g?g=\"Start is before string\":(g=r[2].indexOf(r[1],g),0<=g?(g+=\n1,h=\"n\"):g=\"Not found\");break;case \"LEFT\":g=q[2]?r[2]-0:1;0>g?g=\"Negative length\":(g=r[1].substring(0,g),h=\"t\");break;case \"LEN\":g=r[1].length;h=\"n\";break;case \"LOWER\":g=r[1].toLowerCase();h=\"t\";break;case \"MID\":a=r[2]-0;g=r[3]-0;1>g||1>a?g=\"Bad arguments\":(g=r[1].substring(a-1,a+g-1),h=\"t\");break;case \"PROPER\":g=r[1].replace(/\\b\\w+\\b/g,function(a){return a.substring(0,1).toUpperCase()+a.substring(1)});h=\"t\";break;case \"REPLACE\":a=r[2]-0;g=r[3]-0;0>g||1>a?g=\"Bad arguments\":(g=r[1].substring(0,a-1)+\nr[4]+r[1].substring(a-1+g),h=\"t\");break;case \"REPT\":a=r[2]-0;if(0>a)g=\"Negative count\";else{for(g=\"\";0<a;a--)g+=r[1];h=\"t\"}break;case \"RIGHT\":g=q[2]?r[2]-0:1;0>g?g=\"Negative length\":(g=r[1].slice(-g),h=\"t\");break;case \"SUBSTITUTE\":fulltext=r[1];oldtext=r[2];newtext=r[3];if(null!=r[4]){if(which=r[4]-0,0>=which){g=\"Non-positive instance number\";break}}else which=0;oldpos=a=0;for(g=\"\";;)if(pos=fulltext.indexOf(oldtext,oldpos),0<=pos){a++;g+=fulltext.substring(oldpos,pos);if(0==which)g+=newtext;else if(which==\na){g+=newtext+fulltext.substring(pos+oldtext.length);break}else g+=oldtext;oldpos=pos+oldtext.length}else{g+=fulltext.substring(oldpos);break}h=\"t\";break;case \"TRIM\":g=r[1];g=g.replace(/^ */,\"\");g=g.replace(/ *$/,\"\");g=g.replace(/ +/g,\" \");h=\"t\";break;case \"HEXCODE\":g=String(r[1]);h=g.charCodeAt(0);55296<=h&&56319>=h&&(r=g.charCodeAt(1),56320<=r&&57343>=r&&(h=1024*(h-55296)+(r-56320)+65536));g=h.toString(16).toUpperCase();h=\"t\";break;case \"UPPER\":g=r[1].toUpperCase(),h=\"t\"}l.PushOperand(c,h,g)};\nSocialCalc.Formula.FunctionList.FIND=[SocialCalc.Formula.StringFunctions,-2,\"find\",\"\",\"text\"];SocialCalc.Formula.FunctionList.LEFT=[SocialCalc.Formula.StringFunctions,-2,\"tc\",\"\",\"text\"];SocialCalc.Formula.FunctionList.LEN=[SocialCalc.Formula.StringFunctions,1,\"txt\",\"\",\"text\"];SocialCalc.Formula.FunctionList.LOWER=[SocialCalc.Formula.StringFunctions,1,\"txt\",\"\",\"text\"];SocialCalc.Formula.FunctionList.MID=[SocialCalc.Formula.StringFunctions,3,\"mid\",\"\",\"text\"];\nSocialCalc.Formula.FunctionList.PROPER=[SocialCalc.Formula.StringFunctions,1,\"v\",\"\",\"text\"];SocialCalc.Formula.FunctionList.REPLACE=[SocialCalc.Formula.StringFunctions,4,\"replace\",\"\",\"text\"];SocialCalc.Formula.FunctionList.REPT=[SocialCalc.Formula.StringFunctions,2,\"tc\",\"\",\"text\"];SocialCalc.Formula.FunctionList.RIGHT=[SocialCalc.Formula.StringFunctions,-1,\"tc\",\"\",\"text\"];SocialCalc.Formula.FunctionList.SUBSTITUTE=[SocialCalc.Formula.StringFunctions,-3,\"subs\",\"\",\"text\"];\nSocialCalc.Formula.FunctionList.TRIM=[SocialCalc.Formula.StringFunctions,1,\"v\",\"\",\"text\"];SocialCalc.Formula.FunctionList.HEXCODE=[SocialCalc.Formula.StringFunctions,1,\"v\",\"\",\"text\"];SocialCalc.Formula.FunctionList.UPPER=[SocialCalc.Formula.StringFunctions,1,\"v\",\"\",\"text\"];\nSocialCalc.Formula.IsFunctions=function(a,c,b,d){var e=SocialCalc.Formula,f=0;b=e.OperandValueAndType(d,b);d=b.type.charAt(0);switch(a){case \"ISBLANK\":f=\"b\"==b.type?1:0;break;case \"ISERR\":f=\"e\"==d?\"e#N/A\"==b.type?0:1:0;break;case \"ISERROR\":f=\"e\"==d?1:0;break;case \"ISLOGICAL\":f=\"nl\"==b.type?1:0;break;case \"ISNA\":f=\"e#N/A\"==b.type?1:0;break;case \"ISNONTEXT\":f=\"t\"==d?0:1;break;case \"ISNUMBER\":f=\"n\"==d?1:0;break;case \"ISTEXT\":f=\"t\"==d?1:0}e.PushOperand(c,\"nl\",f)};\nSocialCalc.Formula.FunctionList.ISBLANK=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];SocialCalc.Formula.FunctionList.ISERR=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];SocialCalc.Formula.FunctionList.ISERROR=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];SocialCalc.Formula.FunctionList.ISLOGICAL=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];SocialCalc.Formula.FunctionList.ISNA=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];\nSocialCalc.Formula.FunctionList.ISNONTEXT=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];SocialCalc.Formula.FunctionList.ISNUMBER=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];SocialCalc.Formula.FunctionList.ISTEXT=[SocialCalc.Formula.IsFunctions,1,\"v\",\"\",\"test\"];\nSocialCalc.Formula.NTVFunctions=function(a,c,b,d){var e=SocialCalc.Formula,f=0,g=\"e#VALUE!\";b=e.OperandValueAndType(d,b);d=b.type.charAt(0);switch(a){case \"N\":f=\"n\"==d?b.value-0:0;g=\"n\";break;case \"T\":f=\"t\"==d?b.value+\"\":\"\";g=\"t\";break;case \"VALUE\":\"n\"==d||\"b\"==d?(f=b.value||0,g=\"n\"):\"t\"==d&&(b=SocialCalc.DetermineValueType(b.value),\"n\"!=b.type.charAt(0)?(f=0,g=\"e#VALUE!\"):(f=b.value-0,g=\"n\"))}\"e\"==d&&(g=b.type);e.PushOperand(c,g,f)};\nSocialCalc.Formula.FunctionList.N=[SocialCalc.Formula.NTVFunctions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.T=[SocialCalc.Formula.NTVFunctions,1,\"v\",\"\",\"text\"];SocialCalc.Formula.FunctionList.VALUE=[SocialCalc.Formula.NTVFunctions,1,\"v\",\"\",\"text\"];\nSocialCalc.Formula.Math1Functions=function(a,c,b,d){var e={},f=SocialCalc.Formula;d=f.OperandAsNumber(d,b);b=d.value;e.type=f.LookupResultType(d.type,d.type,f.TypeLookupTable.oneargnumeric);if(\"n\"==e.type)switch(a){case \"ABS\":b=Math.abs(b);break;case \"ACOS\":-1<=b&&1>=b?b=Math.acos(b):e.type=\"e#NUM!\";break;case \"ASIN\":-1<=b&&1>=b?b=Math.asin(b):e.type=\"e#NUM!\";break;case \"ATAN\":b=Math.atan(b);break;case \"COS\":b=Math.cos(b);break;case \"DEGREES\":b=180*b/Math.PI;break;case \"EVEN\":b=0>b?-b:b;b=b!=Math.floor(b)?\nMath.floor(b+1)+Math.floor(b+1)%2:b+b%2;0>d.value&&(b=-b);break;case \"EXP\":b=Math.exp(b);break;case \"FACT\":a=1;for(b=Math.floor(b);0<b;b--)a*=b;b=a;break;case \"INT\":b=Math.floor(b);break;case \"LN\":0>=b&&(e.type=\"e#NUM!\",e.error=SocialCalc.Constants.s_sheetfunclnarg);b=Math.log(b);break;case \"LOG10\":0>=b&&(e.type=\"e#NUM!\",e.error=SocialCalc.Constants.s_sheetfunclog10arg);b=Math.log(b)/Math.log(10);break;case \"ODD\":b=0>b?-b:b;b=b!=Math.floor(b)?Math.floor(b+1)+(1-Math.floor(b+1)%2):b+(1-b%2);0>d.value&&\n(b=-b);break;case \"RADIANS\":b=b*Math.PI/180;break;case \"SIN\":b=Math.sin(b);break;case \"SQRT\":0<=b?b=Math.sqrt(b):e.type=\"e#NUM!\";break;case \"TAN\":0!=Math.cos(b)?b=Math.tan(b):e.type=\"e#NUM!\"}e.value=b;c.push(e);return null};SocialCalc.Formula.FunctionList.ABS=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.ACOS=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.ASIN=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];\nSocialCalc.Formula.FunctionList.ATAN=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.COS=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.DEGREES=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.EVEN=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.EXP=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];\nSocialCalc.Formula.FunctionList.FACT=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.INT=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.LN=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.LOG10=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.ODD=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];\nSocialCalc.Formula.FunctionList.RADIANS=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.SIN=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.SQRT=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];SocialCalc.Formula.FunctionList.TAN=[SocialCalc.Formula.Math1Functions,1,\"v\",\"\",\"math\"];\nSocialCalc.Formula.Math2Functions=function(a,c,b,d){var e,f,g={};f=SocialCalc.Formula;e=f.OperandAsNumber(d,b);b=f.OperandAsNumber(d,b);g.type=f.LookupResultType(e.type,b.type,f.TypeLookupTable.twoargnumeric);if(\"n\"==g.type)switch(a){case \"ATAN2\":0==e.value&&0==b.value?g.type=\"e#DIV/0!\":g.value=Math.atan2(b.value,e.value);break;case \"POWER\":g.value=Math.pow(e.value,b.value);isNaN(g.value)&&(g.value=0,g.type=\"e#NUM!\");break;case \"MOD\":0==b.value?g.type=\"e#DIV/0!\":(a=e.value/b.value,a=Math.floor(a),\ng.value=e.value-a*b.value);break;case \"TRUNC\":a=1;if(0<=b.value){b.value=Math.floor(b.value);for(f=0;f<b.value;f++)a*=10;g.value=Math.floor(Math.abs(e.value)*a)/a}else if(0>b.value){b.value=Math.floor(-b.value);for(f=0;f<b.value;f++)a*=10;g.value=Math.floor(Math.abs(e.value)/a)*a}0>e.value&&(g.value=-g.value)}c.push(g);return null};SocialCalc.Formula.FunctionList.ATAN2=[SocialCalc.Formula.Math2Functions,2,\"xy\",\"\",\"math\"];\nSocialCalc.Formula.FunctionList.MOD=[SocialCalc.Formula.Math2Functions,2,\"\",\"\",\"math\"];SocialCalc.Formula.FunctionList.POWER=[SocialCalc.Formula.Math2Functions,2,\"\",\"\",\"math\"];SocialCalc.Formula.FunctionList.TRUNC=[SocialCalc.Formula.Math2Functions,2,\"valpre\",\"\",\"math\"];\nSocialCalc.Formula.LogFunction=function(a,c,b,d){var e,f={},g=SocialCalc.Formula;f.value=0;e=g.OperandAsNumber(d,b);f.type=g.LookupResultType(e.type,e.type,g.TypeLookupTable.oneargnumeric);if(1==b.length){if(b=g.OperandAsNumber(d,b),\"n\"!=b.type.charAt(0)||0>=b.value)return g.FunctionSpecificError(a,c,\"e#NUM!\",SocialCalc.Constants.s_sheetfunclogsecondarg),0}else{if(0!=b.length)return g.FunctionArgsError(a,c),0;b={value:Math.E,type:\"n\"}}if(\"n\"==f.type){if(0>=e.value)return g.FunctionSpecificError(a,\nc,\"e#NUM!\",SocialCalc.Constants.s_sheetfunclogfirstarg),0;f.value=Math.log(e.value)/Math.log(b.value)}c.push(f)};SocialCalc.Formula.FunctionList.LOG=[SocialCalc.Formula.LogFunction,-1,\"log\",\"\",\"math\"];\nSocialCalc.Formula.RoundFunction=function(a,c,b,d){var e,f,g=SocialCalc.Formula;f=0;var l=\"e#VALUE!\";e=g.OperandValueAndType(d,b);l=g.LookupResultType(e.type,e.type,g.TypeLookupTable.oneargnumeric);if(1==b.length){if(b=g.OperandValueAndType(d,b),\"n\"!=b.type.charAt(0))return g.FunctionSpecificError(a,c,\"e#NUM!\",SocialCalc.Constants.s_sheetfuncroundsecondarg),0}else{if(0!=b.length)return g.FunctionArgsError(a,c),0;b={value:0,type:\"n\"}}if(\"n\"==l)if(b.value-=0,0==b.value)f=Math.round(e.value);else if(0<\nb.value){a=1;b.value=Math.floor(b.value);for(f=0;f<b.value;f++)a*=10;e=Math.round(e.value*a);f=e/a}else if(0>b.value){a=1;b.value=Math.floor(-b.value);for(f=0;f<b.value;f++)a*=10;e=Math.round(e.value/a);f=e*a}g.PushOperand(c,l,f)};SocialCalc.Formula.FunctionList.ROUND=[SocialCalc.Formula.RoundFunction,-1,\"vp\",\"\",\"math\"];\nSocialCalc.Formula.CeilingFloorFunctions=function(a,c,b,d){var e=SocialCalc.Formula,f,g,l=function(a,b){c.push({type:a,value:b})};f=e.OperandValueAndType(d,b);g=f.type.charAt(0);if(\"n\"!=g)l(\"e#VALUE!\",0);else if(0==f.value)l(\"n\",0);else{if(1==b.length){if(b=e.OperandValueAndType(d,b),g=f.type.charAt(0),\"n\"!=g){l(\"e#VALUE!\",0);return}}else if(0==b.length)b={type:\"n\",value:0<f.value?1:-1};else{l(\"e#VALUE!\",0);return}if(0==b.value)l(\"n\",0);else if(0>b.value*f.value)l(\"e#NUM!\",0);else switch(a){case \"CEILING\":l(\"n\",\nMath.ceil(f.value/b.value)*b.value);break;case \"FLOOR\":l(\"n\",Math.floor(f.value/b.value)*b.value)}}};SocialCalc.Formula.FunctionList.CEILING=[SocialCalc.Formula.CeilingFloorFunctions,-1,\"vsig\",\"\",\"math\"];SocialCalc.Formula.FunctionList.FLOOR=[SocialCalc.Formula.CeilingFloorFunctions,-1,\"vsig\",\"\",\"math\"];\nSocialCalc.Formula.AndOrFunctions=function(a,c,b,d){var e,f,g=SocialCalc.Formula,l=\"\";for(\"AND\"==a?f=1:\"OR\"==a&&(f=0);b.length;)e=g.OperandValueAndType(d,b),\"n\"==e.type.charAt(0)?(e.value-=0,\"AND\"==a?f=0!=e.value?f:0:\"OR\"==a&&(f=0!=e.value?1:f),l=g.LookupResultType(e.type,l||\"nl\",g.TypeLookupTable.propagateerror)):\"e\"==e.type.charAt(0)&&\"e\"!=l.charAt(0)&&(l=e.type);1>l.length&&(l=\"e#VALUE!\",f=0);g.PushOperand(c,l,f)};\nSocialCalc.Formula.FunctionList.AND=[SocialCalc.Formula.AndOrFunctions,-1,\"vn\",\"\",\"test\"];SocialCalc.Formula.FunctionList.OR=[SocialCalc.Formula.AndOrFunctions,-1,\"vn\",\"\",\"test\"];SocialCalc.Formula.NotFunction=function(a,c,b,d){a=0;var e=SocialCalc.Formula;b=e.OperandValueAndType(d,b);d=e.LookupResultType(b.type,b.type,e.TypeLookupTable.propagateerror);\"n\"==b.type.charAt(0)||\"b\"==b.type?(a=0!=b.value-0?0:1,d=\"nl\"):\"t\"==b.type.charAt(0)&&(d=\"e#VALUE!\");e.PushOperand(c,d,a)};\nSocialCalc.Formula.FunctionList.NOT=[SocialCalc.Formula.NotFunction,1,\"v\",\"\",\"test\"];SocialCalc.Formula.ChooseFunction=function(a,c,b,d){var e,f,g=0,l=SocialCalc.Formula,h=l.OperandAsNumber(d,b);\"n\"!=h.type.charAt(0)&&(h.value=0);h.value=Math.floor(h.value);for(a=0;b.length;)if(f=l.TopOfStackValueAndType(d,b),a+=1,h.value==a){g=f.value;e=f.type;break}e?l.PushOperand(c,e,g):l.PushOperand(c,\"e#VALUE!\",0)};SocialCalc.Formula.FunctionList.CHOOSE=[SocialCalc.Formula.ChooseFunction,-2,\"choose\",\"\",\"lookup\"];\nSocialCalc.Formula.ColumnsRowsFunctions=function(a,c,b,d){var e=0,f=SocialCalc.Formula;b=f.TopOfStackValueAndType(d,b);\"coord\"==b.type?(e=1,a=\"n\"):\"range\"==b.type?(d=f.DecodeRangeParts(d,b.value),\"COLUMNS\"==a?e=d.ncols:\"ROWS\"==a&&(e=d.nrows),a=\"n\"):(e=0,a=\"e#VALUE!\");f.PushOperand(c,a,e)};SocialCalc.Formula.FunctionList.COLUMNS=[SocialCalc.Formula.ColumnsRowsFunctions,1,\"range\",\"\",\"lookup\"];SocialCalc.Formula.FunctionList.ROWS=[SocialCalc.Formula.ColumnsRowsFunctions,1,\"range\",\"\",\"lookup\"];\nSocialCalc.Formula.ZeroArgFunctions=function(a,c,b,d){b={value:0};switch(a){case \"FALSE\":b.type=\"nl\";b.value=0;break;case \"NA\":b.type=\"e#N/A\";break;case \"NOW\":a=new Date;d=a.getTimezoneOffset();a=a.getTime()/1E3;b.value=25569+a/86400-d/1440;b.type=\"ndt\";SocialCalc.Formula.FreshnessInfo.volatile.NOW=!0;break;case \"PI\":b.type=\"n\";b.value=Math.PI;break;case \"TODAY\":a=new Date;d=a.getTimezoneOffset();a=a.getTime()/1E3;b.value=Math.floor(25569+a/86400-d/1440);b.type=\"nd\";SocialCalc.Formula.FreshnessInfo.volatile.TODAY=\n!0;break;case \"TRUE\":b.type=\"nl\";b.value=1;break;case \"RAND\":b.type=\"n\",b.value=Math.random(),SocialCalc.Formula.FreshnessInfo.volatile.RAND=!0}c.push(b);return null};SocialCalc.Formula.FunctionList.FALSE=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"test\"];SocialCalc.Formula.FunctionList.NA=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"test\"];SocialCalc.Formula.FunctionList.NOW=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"datetime\"];\nSocialCalc.Formula.FunctionList.RAND=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"math\"];SocialCalc.Formula.FunctionList.PI=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"math\"];SocialCalc.Formula.FunctionList.TODAY=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"datetime\"];SocialCalc.Formula.FunctionList.TRUE=[SocialCalc.Formula.ZeroArgFunctions,0,\"\",\"\",\"test\"];\nSocialCalc.Formula.DDBFunction=function(a,c,b,d){var e,f=SocialCalc.Formula,g=f.OperandAsNumber(d,b),l=f.OperandAsNumber(d,b),h=f.OperandAsNumber(d,b),m=f.OperandAsNumber(d,b);if(!(f.CheckForErrorValue(c,g)||f.CheckForErrorValue(c,l)||f.CheckForErrorValue(c,h)||f.CheckForErrorValue(c,m))){if(1>h.value)return f.FunctionSpecificError(a,c,\"e#NUM!\",SocialCalc.Constants.s_sheetfuncddblife),0;e={value:2,type:\"n\"};0<b.length&&(e=f.OperandAsNumber(d,b));if(0!=b.length)return f.FunctionArgsError(a,c),0;if(!f.CheckForErrorValue(c,\ne)){b=a=0;for(d=1;d<=m.value-0&&d<=h.value;d++)a=e.value/h.value*(g.value-b),g.value-b-a<l.value&&(a=g.value-b-l.value),b+=a;f.PushOperand(c,\"n$\",a)}}};SocialCalc.Formula.FunctionList.DDB=[SocialCalc.Formula.DDBFunction,-4,\"ddb\",\"\",\"financial\"];\nSocialCalc.Formula.SLNFunction=function(a,c,b,d){var e=SocialCalc.Formula,f=e.OperandAsNumber(d,b),g=e.OperandAsNumber(d,b);b=e.OperandAsNumber(d,b);if(!e.CheckForErrorValue(c,f)&&!e.CheckForErrorValue(c,g)&&!e.CheckForErrorValue(c,b)){if(1>b.value)return e.FunctionSpecificError(a,c,\"e#NUM!\",SocialCalc.Constants.s_sheetfuncslnlife),0;a=(f.value-g.value)/b.value;e.PushOperand(c,\"n$\",a)}};SocialCalc.Formula.FunctionList.SLN=[SocialCalc.Formula.SLNFunction,3,\"csl\",\"\",\"financial\"];\nSocialCalc.Formula.SYDFunction=function(a,c,b,d){var e;a=SocialCalc.Formula;e=a.OperandAsNumber(d,b);var f=a.OperandAsNumber(d,b),g=a.OperandAsNumber(d,b);d=a.OperandAsNumber(d,b);if(!(a.CheckForErrorValue(c,e)||a.CheckForErrorValue(c,f)||a.CheckForErrorValue(c,g)||a.CheckForErrorValue(c,d))){if(1>g.value||0>=d.value)return a.PushOperand(c,\"e#NUM!\",0),0;b=(g.value+1)*g.value/2;e=(e.value-f.value)*(g.value-d.value+1)/b;a.PushOperand(c,\"n$\",e)}};\nSocialCalc.Formula.FunctionList.SYD=[SocialCalc.Formula.SYDFunction,4,\"cslp\",\"\",\"financial\"];\nSocialCalc.Formula.InterestFunctions=function(a,c,b,d){var e,f,g,l,h,m,p,r,q,n=SocialCalc.Formula,s=n.OperandAsNumber(d,b);p=n.OperandAsNumber(d,b);m=n.OperandAsNumber(d,b);e=n.LookupResultType(s.type,p.type,n.TypeLookupTable.twoargnumeric);e=n.LookupResultType(e,m.type,n.TypeLookupTable.twoargnumeric);if(b.length&&(g=n.OperandAsNumber(d,b),e=n.LookupResultType(e,g.type,n.TypeLookupTable.twoargnumeric),b.length&&(l=n.OperandAsNumber(d,b),e=n.LookupResultType(e,l.type,n.TypeLookupTable.twoargnumeric),\nb.length))){if(\"RATE\"!=a)return n.FunctionArgsError(a,c),0;h=n.OperandAsNumber(d,b);e=n.LookupResultType(e,h.type,n.TypeLookupTable.twoargnumeric)}if(\"n\"==e)switch(a){case \"FV\":h=s.value;a=p.value;p=m.value;m=null!=g?g.value:0;l=null!=l?l.value?1:0:0;f=g=0==h?-m-p*a:-(m*Math.pow(1+h,a)+p*(1+h*l)*(Math.pow(1+h,a)-1)/h);e=\"n$\";break;case \"NPER\":h=s.value;p=p.value;m=m.value;g=null!=g?g.value:0;l=null!=l?l.value?1:0:0;if(0==h){if(0==p){n.PushOperand(c,\"e#NUM!\",0);return}a=(m+g)/-p}else{r=p*(1+h*l)/h;\nq=m+r;if(0==q||-1>=h){n.PushOperand(c,\"e#NUM!\",0);return}r=(r-g)/q;if(0>=r){n.PushOperand(c,\"e#NUM!\",0);return}r=Math.log(r);q=Math.log(1+h);a=r/q}f=a;e=\"n\";break;case \"PMT\":h=s.value;a=p.value;m=m.value;g=null!=g?g.value:0;l=null!=l?l.value?1:0:0;if(0==a){n.PushOperand(c,\"e#NUM!\",0);return}f=p=0==h?(g-m)/a:(0-g-m*Math.pow(1+h,a))/((1+h*l)*(Math.pow(1+h,a)-1)/h);e=\"n$\";break;case \"PV\":h=s.value;a=p.value;p=m.value;g=null!=g?g.value:0;l=null!=l?l.value?1:0:0;if(-1==h){n.PushOperand(c,\"e#DIV/0!\",0);\nreturn}f=m=0==h?-g-p*a:(-g-p*(1+h*l)*(Math.pow(1+h,a)-1)/h)/Math.pow(1+h,a);e=\"n$\";break;case \"RATE\":a=s.value;p=p.value;m=m.value;g=null!=g?g.value:0;l=null!=l?l.value?1:0:0;h=null!=h?h.value:.1;b=0;delta=1;epsilon=1E-7;for(h=h||1E-8;(0<=delta?delta:-delta)>epsilon&&h!=r;)if(delta=g+m*Math.pow(1+h,a)+p*(1+h*l)*(Math.pow(1+h,a)-1)/h,null!=q?(q=(delta-q)/(h-r)||.001,r=h,h-=delta/q):(r=h,h*=1.1),q=delta,b++,100<=b){n.PushOperand(c,\"e#NUM!\",0);return}f=h;e=\"n%\"}n.PushOperand(c,e,f)};\nSocialCalc.Formula.FunctionList.FV=[SocialCalc.Formula.InterestFunctions,-3,\"fv\",\"\",\"financial\"];SocialCalc.Formula.FunctionList.NPER=[SocialCalc.Formula.InterestFunctions,-3,\"nper\",\"\",\"financial\"];SocialCalc.Formula.FunctionList.PMT=[SocialCalc.Formula.InterestFunctions,-3,\"pmt\",\"\",\"financial\"];SocialCalc.Formula.FunctionList.PV=[SocialCalc.Formula.InterestFunctions,-3,\"pv\",\"\",\"financial\"];SocialCalc.Formula.FunctionList.RATE=[SocialCalc.Formula.InterestFunctions,-3,\"rate\",\"\",\"financial\"];\nSocialCalc.Formula.NPVFunction=function(a,c,b,d){var e,f,g,l,h=SocialCalc.Formula;e=h.OperandAsNumber(d,b);if(!h.CheckForErrorValue(c,e)){f=0;a=\"n\";for(g=1;b.length;)if(l=h.OperandValueAndType(d,b),\"n\"==l.type.charAt(0)){g*=1+e.value;if(0==g){h.PushOperand(c,\"e#DIV/0!\",0);return}f+=l.value/g;a=h.LookupResultType(l.type,a||l.type,h.TypeLookupTable.plus)}else if(\"e\"==l.type.charAt(0)&&\"e\"!=a.charAt(0)){a=l.type;break}\"n\"==a.charAt(0)&&(a=\"n$\");h.PushOperand(c,a,f)}};\nSocialCalc.Formula.FunctionList.NPV=[SocialCalc.Formula.NPVFunction,-2,\"npv\",\"\",\"financial\"];\nSocialCalc.Formula.IRRFunction=function(a,c,b,d){var e,f,g,l;l=[];var h=[],m=SocialCalc.Formula;for(l.push(b.pop());l.length;)if(e=m.OperandValueAndType(d,l),\"n\"==e.type.charAt(0))h.push(e.value);else if(\"e\"==e.type.charAt(0)){m.PushOperand(c,\"e#VALUE!\",0);return}if(h.length){e={value:0};if(b.length){e=m.OperandAsNumber(d,b);if(\"n\"!=e.type.charAt(0)&&\"b\"!=e.type.charAt(0)){m.PushOperand(c,\"e#VALUE!\",0);return}if(b.length){m.FunctionArgsError(a,c);return}}e.value=e.value||.1;a=0;b=e.value;for(d=1;1E-7<\n(0<=d?d:-d)&&b!=g;){d=0;e=1;for(l=0;l<h.length;l++){e*=1+b;if(0==e){m.PushOperand(c,\"e#DIV/0!\",0);return}d+=h[l]/e}null!=f?(f=(d-f)/(b-g),g=b,b-=d/f):(g=b,b*=1.1);f=d;a++;if(20<=a){m.PushOperand(c,\"e#NUM!\",0);return}}m.PushOperand(c,\"n%\",b)}else m.PushOperand(c,\"e#NUM!\",0)};SocialCalc.Formula.FunctionList.IRR=[SocialCalc.Formula.IRRFunction,-1,\"irr\",\"\",\"financial\"];SocialCalc.Formula.SheetCache={sheets:{},waitingForLoading:null,constants:{asloaded:0,recalcing:1,recalcdone:2},loadsheet:null,tiddlersToSheets:{}};\nSocialCalc.Formula.FindInSheetCache=function(a){var c=SocialCalc.Formula.SheetCache,b=SocialCalc.Formula.NormalizeSheetName(a);if(c.sheets[b])return hack.log(\"Found: \"+a,hack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\"),hack.log(\" .name: \"+c.sheets[b].name,hack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\"),hack.log(\" .tiddlerTitle: \"+c.sheets[b].tiddlerTitle,hack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\"),hack.log(\" .recalcstate: \"+c.sheets[b].recalcstate,hack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\"),\nTiddlyWiki?c.tiddlersToSheets[c.sheets[b].tiddlerTitle]:c.sheets[b].sheet;hack.log(\"Not found: \"+a,hack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\");if(c.waitingForLoading)return hack.log(\"Waiting other sheet to be loaded: sfsc.waitingForLoading = \"+c.waitingForLoading,hack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\"),null;c.loadsheet&&alert(\"Using SocialCalc.Formula.SheetCache.loadsheet - deprecated\");c.waitingForLoading=b;hack.log(\"To be loaded: sfsc.waitingForLoading = \"+c.waitingForLoading,\nhack.recalcLink,\"SocialCalc.Formula.FindInSheetCache\");return null};\nSocialCalc.Formula.AddSheetToCache=function(a,c,b,d){var e=null,f=SocialCalc.Formula.SheetCache,g=f.constants;a=SocialCalc.Formula.NormalizeSheetName(a);if(TiddlyWiki){if(f.sheets[a])return f.tiddlersToSheets[f.sheets[a].tiddlerTitle];f.sheets[a]={recalcstate:g.asloaded,name:a,tiddlerTitle:d};d&&f.tiddlersToSheets[d]?e=f.tiddlersToSheets[d]:(c&&(e=new SocialCalc.Sheet,e.ParseSheetSave(c)),f.tiddlersToSheets[d]=e)}else c&&(e=new SocialCalc.Sheet,e.ParseSheetSave(c)),f.sheets[a]={sheet:e,recalcstate:g.asloaded,\nname:a};SocialCalc.Formula.FreshnessInfo.sheets[a]=\"undefined\"==typeof b||!1===b;return e};SocialCalc.Formula.NormalizeSheetName=function(a){return SocialCalc.Callbacks.NormalizeSheetName?SocialCalc.Callbacks.NormalizeSheetName(a):a.toLowerCase()};SocialCalc.Formula.RemoteFunctionInfo={waitingForServer:null};SocialCalc.Formula.FreshnessInfo={sheets:{},volatile:{},recalc_completed:!1};\nSocialCalc.Formula.FreshnessInfoReset=function(){var a=SocialCalc.Formula.FreshnessInfo,c=SocialCalc.Formula.SheetCache,b;for(b in a.sheets)!1===a.sheets[b]&&delete c.sheets[b];TiddlyWiki&&(tiddlersToSheets={});a.sheets={};a.volatile={};a.recalc_completed=!1};SocialCalc.Formula.PlainCoord=function(a){return-1==a.indexOf(\"$\")?a:a.replace(/\\$/g,\"\")};\nSocialCalc.Formula.OrderRangeParts=function(a,c){var b,d,e={};b=SocialCalc.coordToCr(a);d=SocialCalc.coordToCr(c);b.col>d.col?(e.c1=d.col,e.c2=b.col):(e.c1=b.col,e.c2=d.col);b.row>d.row?(e.r1=d.row,e.r2=b.row):(e.r1=b.row,e.r2=d.row);return e};\nSocialCalc.Formula.TestCriteria=function(a,c,b){var d,e,f;if(null==b)return!1;b+=\"\";d=b.charAt(0);\"=\"==d||\"<\"==d||\">\"==d?b=b.substring(1):(d=b.substring(0,2),\"<=\"==d||\"<>\"==d||\">=\"==d?b=b.substring(2):d=\"none\");b=SocialCalc.DetermineValueType(b);if(!b.type){if(\"none\"==d)return!1;if(\"b\"==c.charAt(0)){if(\"=\"==d)return!0}else if(\"<>\"==d)return!0;return!1}e=!1;\"n\"==b.type.charAt(0)&&\"t\"==c.charAt(0)&&(f=SocialCalc.DetermineValueType(a),\"n\"==f.type.charAt(0)&&(a=f.value,c=f.type));if(\"n\"==c.charAt(0)&&\n\"n\"==b.type.charAt(0))switch(a-=0,b.value-=0,d){case \"<\":e=a<b.value;break;case \"<=\":e=a<=b.value;break;case \"=\":case \"none\":e=a==b.value;break;case \">=\":e=a>=b.value;break;case \">\":e=a>b.value;break;case \"<>\":e=a!=b.value}else if(\"e\"==c.charAt(0))e=!1;else if(\"e\"==b.type.charAt(0))e=!1;else{\"n\"==c.charAt(0)&&(a=SocialCalc.format_number_for_display(a,\"n\",\"\"));if(\"n\"==b.type.charAt(0))return!1;a=a?a.toLowerCase():\"\";b.value=b.value?b.value.toLowerCase():\"\";switch(d){case \"<\":e=a<b.value;break;case \"<=\":e=\na<=b.value;break;case \"=\":e=a==b.value;break;case \"none\":e=a.substring(0,b.value.length)==b.value;break;case \">=\":e=a>=b.value;break;case \">\":e=a>b.value;break;case \"<>\":e=a!=b.value}}return e};SocialCalc||(SocialCalc={});SocialCalc.Popup={};SocialCalc.Popup.Types={};SocialCalc.Popup.Controls={};SocialCalc.Popup.Current={};SocialCalc.Popup.LocalizeString=function(a){return a};SocialCalc.Popup.Create=function(a,c,b){var d=SocialCalc.Popup.Types[a];d&&d.Create&&d.Create(a,c,b);SocialCalc.Popup.imagePrefix=SocialCalc.Constants.defaultImagePrefix};\nSocialCalc.Popup.SetValue=function(a,c){var b=SocialCalc.Popup,d=b.Types,e=b.Controls;e[a]?(b=e[a].type,d=d[b],e=e[a].data,d&&d.Create&&(d.SetValue(b,a,c),e.attribs&&e.attribs.changedcallback&&e.attribs.changedcallback(e.attribs,a,c))):alert(\"Unknown control \"+a)};\nSocialCalc.Popup.SetDisabled=function(a,c){var b=SocialCalc.Popup,d=b.Types,e=b.Controls;e[a]?(e=e[a].type,(d=d[e])&&d.Create&&(b.Current.id&&a==b.Current.id&&(d.Hide(e,b.Current.id),b.Current.id=null),d.SetDisabled(e,a,c))):alert(\"Unknown control \"+a)};SocialCalc.Popup.GetValue=function(a){var c=SocialCalc.Popup,b=c.Types,c=c.Controls;if(c[a])return c=c[a].type,(b=b[c])&&b.Create?b.GetValue(c,a):null;alert(\"Unknown control \"+a)};\nSocialCalc.Popup.Initialize=function(a,c){var b=SocialCalc.Popup,d=b.Types,b=b.Controls;b[a]?(b=b[a].type,(d=d[b])&&d.Initialize&&d.Initialize(b,a,c)):alert(\"Unknown control \"+a)};SocialCalc.Popup.Reset=function(a){var c=SocialCalc.Popup.Types;c[a].Reset&&c[a].Reset(a)};\nSocialCalc.Popup.CClick=function(a){var c=SocialCalc.Popup,b=c.Types,d=c.Controls;if(!d[a])alert(\"Unknown control \"+a);else if(!d[a].data||!d[a].data.disabled){var e=d[a].type,f=b[e];if(c.Current.id&&(b[d[c.Current.id].type].Hide(e,c.Current.id),a==c.Current.id)){c.Current.id=null;return}f&&f.Show&&f.Show(e,a);c.Current.id=a}};SocialCalc.Popup.Close=function(){var a=SocialCalc.Popup;a.Current.id&&a.CClick(a.Current.id)};\nSocialCalc.Popup.Cancel=function(){var a=SocialCalc.Popup,c=a.Types,b=a.Controls;a.Current.id&&(b=b[a.Current.id].type,c[b].Cancel(b,a.Current.id),a.Current.id=null)};\nSocialCalc.Popup.CreatePopupDiv=function(a,c){var b,d=SocialCalc.Popup.Controls[a].data,e=document.createElement(\"div\");e.style.position=\"absolute\";b=SocialCalc.GetElementPosition(d.mainele);e.style.top=b.top+d.mainele.offsetHeight+\"px\";e.style.left=b.left+\"px\";e.style.zIndex=100;e.style.backgroundColor=\"#FFF\";e.style.border=\"1px solid black\";c.width&&(e.style.width=c.width);d.mainele.appendChild(e);c.title&&(e.innerHTML='<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom:1px solid black;\"><tr><td style=\"font-size:10px;cursor:default;width:100%;background-color:#999;color:#FFF;\">'+\nc.title+'</td><td style=\"font-size:10px;cursor:default;color:#666;\" onclick=\"SocialCalc.Popup.Cancel();\"> X </td></tr></table>',c.moveable&&(d.dragregistered=e.firstChild.firstChild.firstChild.firstChild,SocialCalc.DragRegister(d.dragregistered,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:e},d.mainele)));return e};\nSocialCalc.Popup.EnsurePosition=function(a,c){function b(a){var c=SocialCalc.GetElementPosition(a);c.height=a.offsetHeight;c.width=a.offsetWidth;c.bottom=c.top+c.height;c.right=c.left+c.width;return c}var d=SocialCalc.Popup.Controls[a].data,e=d.mainele.firstChild;if(e){var d=d.popupele,f=b(d),g=b(c),e=b(e);e.bottom+f.height<g.bottom&&e.left+f.width<g.right?(d.style.top=e.bottom+\"px\",d.style.left=e.left+\"px\"):e.top-f.height>g.top&&e.left+f.width<g.right?(d.style.top=e.top-f.height+\"px\",d.style.left=\ne.left+\"px\"):e.bottom+f.height<g.bottom&&e.right-f.width>g.left?(d.style.top=e.bottom+\"px\",d.style.left=e.right-f.width+\"px\"):e.top-f.height>g.top&&e.right-f.width>g.left?(d.style.top=e.top-f.height+\"px\",d.style.left=e.right-f.width+\"px\"):e.bottom+f.height<g.bottom&&f.width<g.width?(d.style.top=e.bottom+\"px\",d.style.left=g.left+Math.floor((g.width-f.width)/2)+\"px\"):e.top-f.height>g.top&&f.width<g.width?(d.style.top=e.top-f.height+\"px\",d.style.left=g.left+Math.floor((g.width-f.width)/2)+\"px\"):f.height<\ng.height&&e.right+f.width<g.right?(d.style.top=g.top+Math.floor((g.height-f.height)/2)+\"px\",d.style.left=e.right+\"px\"):f.height<g.height&&e.left-f.width>g.left&&(d.style.top=g.top+Math.floor((g.height-f.height)/2)+\"px\",d.style.left=e.left-f.width+\"px\")}else alert(\"No main popup element firstChild.\")};SocialCalc.Popup.DestroyPopupDiv=function(a,c){a&&(a.innerHTML=\"\",SocialCalc.DragUnregister(c),a.parentNode&&a.parentNode.removeChild(a))};\nSocialCalc.Popup.RGBToHex=function(a){var c=SocialCalc.Popup;return\"\"==a?\"000000\":(a=a.match(/(\\d+)\\D+(\\d+)\\D+(\\d+)/))?c.ToHex(a[1])+c.ToHex(a[2])+c.ToHex(a[3]):\"000000\"};SocialCalc.Popup.HexDigits=\"0123456789ABCDEF\";SocialCalc.Popup.ToHex=function(a){var c=SocialCalc.Popup,b=a%16;return c.HexDigits.charAt(Math.floor(a/16))+c.HexDigits.charAt(b)};\nSocialCalc.Popup.FromHex=function(a){var c=SocialCalc.Popup,b=c.HexDigits.indexOf(a.charAt(0).toUpperCase());a=c.HexDigits.indexOf(a.charAt(1).toUpperCase());return 16*(0<=b?b:0)+(0<=a?a:0)};SocialCalc.Popup.HexToRGB=function(a){var c=SocialCalc.Popup;return\"rgb(\"+c.FromHex(a.substring(1,3))+\",\"+c.FromHex(a.substring(3,5))+\",\"+c.FromHex(a.substring(5,7))+\")\"};SocialCalc.Popup.makeRGB=function(a,c,b){return\"rgb(\"+(0<a?a:0)+\",\"+(0<c?c:0)+\",\"+(0<b?b:0)+\")\"};\nSocialCalc.Popup.splitRGB=function(a){return(a=a.match(/(\\d+)\\D+(\\d+)\\D+(\\d+)\\D/))?{r:a[1]-0,g:a[2]-0,b:a[3]-0}:{r:0,g:0,b:0}};SocialCalc.Popup.Types.List={};\nSocialCalc.Popup.Types.List.Create=function(a,c,b){a={type:a,value:\"\",display:\"\",data:{}};SocialCalc.Popup.Controls[c]=a;a=a.data;a.attribs=b||{};(b=document.getElementById(c))?(a.mainele=b,b.innerHTML='<input style=\"cursor:pointer;width:100px;font-size:smaller;\" onfocus=\"this.blur();\" onclick=\"SocialCalc.Popup.CClick(\\''+c+'\\');\" value=\"\">',a.options=[]):alert(\"Missing element \"+c)};\nSocialCalc.Popup.Types.List.SetValue=function(a,c,b){a=SocialCalc.Popup.Controls[c].data;a.value=b;a.custom=!1;for(b=0;b<a.options.length;b++)if(o=a.options[b],!(o.a&&(o.a.skip||o.a.custom||o.a.cancel)||o.v!=a.value)){a.display=o.o;break}b==a.options.length&&(a.display=\"Custom\",a.custom=!0);a.mainele&&a.mainele.firstChild&&(a.mainele.firstChild.value=a.display)};\nSocialCalc.Popup.Types.List.SetDisabled=function(a,c,b){a=SocialCalc.Popup.Controls[c].data;a.disabled=b;a.mainele&&a.mainele.firstChild&&(a.mainele.firstChild.disabled=b)};SocialCalc.Popup.Types.List.GetValue=function(a,c){return SocialCalc.Popup.Controls[c].data.value};SocialCalc.Popup.Types.List.Initialize=function(a,c,b){var d;a=SocialCalc.Popup;var e=a.Controls[c].data;for(d in b.attribs)e.attribs[d]=b.attribs[d];e.options=b?b.options:[];b.value&&a.SetValue(c,b.value)};\nSocialCalc.Popup.Types.List.Reset=function(a){var c=SocialCalc.Popup,b=c.Types,d=c.Controls;c.Current.id&&d[c.Current.id].type==a&&(b[a].Hide(a,c.Current.id),c.Current.id=null)};\nSocialCalc.Popup.Types.List.Show=function(a,c){var b;b=SocialCalc.Popup;var d=b.Controls[c].data,e=\"\";d.popupele=b.CreatePopupDiv(c,d.attribs);d.custom?(e=SocialCalc.Popup.Types.List.MakeCustom(a,c),b=document.createElement(\"div\"),b.innerHTML='<div style=\"cursor:default;padding:4px;background-color:#CCC;\">'+e+\"</div>\",d.customele=b.firstChild.firstChild.childNodes[1],d.listdiv=null):(e=SocialCalc.Popup.Types.List.MakeList(a,c),b=document.createElement(\"div\"),b.innerHTML='<div style=\"cursor:default;padding:4px;\">'+\ne+\"</div>\",d.customele=null,d.listdiv=b.firstChild);d.contentele=b;d.mainele&&d.mainele.firstChild&&(d.mainele.firstChild.disabled=!0);d.popupele.appendChild(b);d.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(c,d.attribs.ensureWithin)};\nSocialCalc.Popup.Types.List.MakeList=function(a,c){var b,d,e,f=SocialCalc.Popup.Controls[c].data,g;g='<table cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"vertical-align:top;\">';f.ncols=1;for(b=0;b<f.options.length;b++){d=f.options[b];if(d.a){if(d.a.newcol){g+='</td><td style=\"vertical-align:top;\"> </td><td style=\"vertical-align:top;\">';f.ncols+=1;continue}if(d.a.skip){g+='<div style=\"font-size:x-small;white-space:nowrap;\">'+d.o+\"</div>\";continue}}e=d.v!=f.value||d.a&&(d.a.custom||\nd.a.cancel)?\"\":\"background-color:#DDF;\";g+='<div style=\"font-size:x-small;white-space:nowrap;'+e+'\" onclick=\"SocialCalc.Popup.Types.List.ItemClicked(\\''+c+\"','\"+b+\"');\\\" onmousemove=\\\"SocialCalc.Popup.Types.List.MouseMove('\"+c+\"',this);\\\">\"+d.o+\"</div>\"}return g+\"</td></tr></table>\"};\nSocialCalc.Popup.Types.List.MakeCustom=function(a,c){var b=SocialCalc.Popup.LocalizeString,d=\"\",d=SocialCalc.Popup.Controls[c].data.value,d=SocialCalc.special_chars(d);return d='<div style=\"white-space:nowrap;\"><br><input id=\"customvalue\" value=\"'+d+'\"><br><br><input style=\"font-size:smaller;\" type=\"button\" value=\"'+b(\"OK\")+'\" onclick=\"SocialCalc.Popup.Types.List.CustomOK(\\''+c+'\\');return false;\"><input style=\"font-size:smaller;\" type=\"button\" value=\"'+b(\"List\")+'\" onclick=\"SocialCalc.Popup.Types.List.CustomToList(\\''+\nc+'\\');\"><input style=\"font-size:smaller;\" type=\"button\" value=\"'+b(\"Cancel\")+'\" onclick=\"SocialCalc.Popup.Close();\"><br></div>'};\nSocialCalc.Popup.Types.List.ItemClicked=function(a,c){var b,d,e,f=SocialCalc.Popup.Controls[a].data;(b=f.options[c].a)&&b.custom?(b=f.contentele,d=SocialCalc.Popup.Types.List.MakeCustom(\"List\",a),e=document.createElement(\"div\"),e.innerHTML='<div style=\"cursor:default;padding:4px;background-color:#CCC;\">'+d+\"</div>\",f.customele=e.firstChild.firstChild.childNodes[1],f.listdiv=null,f.contentele=e,f.popupele.replaceChild(e,b),f.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(a,f.attribs.ensureWithin)):\n(b&&b.cancel||SocialCalc.Popup.SetValue(a,f.options[c].v),SocialCalc.Popup.Close())};SocialCalc.Popup.Types.List.CustomToList=function(a){var c,b,d,e=SocialCalc.Popup.Controls[a].data;c=e.contentele;b=SocialCalc.Popup.Types.List.MakeList(\"List\",a);d=document.createElement(\"div\");d.innerHTML='<div style=\"cursor:default;padding:4px;\">'+b+\"</div>\";e.customele=null;e.listdiv=d.firstChild;e.contentele=d;e.popupele.replaceChild(d,c);e.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(a,e.attribs.ensureWithin)};\nSocialCalc.Popup.Types.List.CustomOK=function(a){SocialCalc.Popup.SetValue(a,SocialCalc.Popup.Controls[a].data.customele.value);SocialCalc.Popup.Close()};SocialCalc.Popup.Types.List.MouseMove=function(a,c){var b,d,e=SocialCalc.Popup.Controls[a].data;if(b=e.listdiv){var f=b.firstChild.firstChild.firstChild;for(b=0;b<e.ncols;b++)for(d=0;d<f.childNodes[2*b].childNodes.length;d++)f.childNodes[2*b].childNodes[d].style.backgroundColor=\"#FFF\";c.style.backgroundColor=\"#DDF\"}};\nSocialCalc.Popup.Types.List.Hide=function(a,c){var b=SocialCalc.Popup,d=b.Controls[c].data;b.DestroyPopupDiv(d.popupele,d.dragregistered);d.popupele=null;d.mainele&&d.mainele.firstChild&&(d.mainele.firstChild.disabled=!1)};SocialCalc.Popup.Types.List.Cancel=function(a,c){SocialCalc.Popup.Types.List.Hide(a,c)};SocialCalc.Popup.Types.ColorChooser={};\nSocialCalc.Popup.Types.ColorChooser.Create=function(a,c,b){a={type:a,value:\"\",display:\"\",data:{}};SocialCalc.Popup.Controls[c]=a;a=a.data;a.attribs=b||{};b=a.attribs;a.value=\"\";var d=document.getElementById(c);d?(a.mainele=d,d.innerHTML='<div style=\"cursor:pointer;border:1px solid black;vertical-align:top;width:'+(b.sampleWidth||\"15px\")+\";height:\"+(b.sampleHeight||\"15px\")+';\" onclick=\"SocialCalc.Popup.Types.ColorChooser.ControlClicked(\\''+c+\"');\\\"> </div>\"):alert(\"Missing element \"+c)};\nSocialCalc.Popup.Types.ColorChooser.SetValue=function(a,c,b){a=SocialCalc.Popup;c=a.Controls[c].data;var d=c.attribs;c.value=b;c.custom=!1;c.mainele&&c.mainele.firstChild&&(c.value?(c.mainele.firstChild.style.backgroundColor=c.value,b=d.backgroundImage?\"url(\"+a.imagePrefix+d.backgroundImage+\")\":\"\",a=\"center center\"):(c.mainele.firstChild.style.backgroundColor=\"#FFF\",d.backgroundImageDefault?(b=\"url(\"+a.imagePrefix+d.backgroundImageDefault+\")\",a=\"center center\"):(b=\"url(\"+a.imagePrefix+\"defaultcolor.gif)\",\na=\"left top\")),c.mainele.firstChild.style.backgroundPosition=a,TiddlyWiki&&(b=TiddlyWiki.getModifiedCssImageStyle(b)),c.mainele.firstChild.style.backgroundImage=b)};\nSocialCalc.Popup.Types.ColorChooser.SetDisabled=function(a,c,b){a=SocialCalc.Popup;var d=a.Controls[c].data,e=d.attribs;d.disabled=b;d.mainele&&d.mainele.firstChild&&(b?(d.mainele.firstChild.style.backgroundColor=\"#DDD\",e.backgroundImageDisabled?(img=\"url(\"+a.imagePrefix+e.backgroundImageDisabled+\")\",pos=\"center center\"):(img=\"url(\"+a.imagePrefix+\"defaultcolor.gif)\",pos=\"left top\"),d.mainele.firstChild.style.backgroundPosition=pos,TiddlyWiki&&(img=TiddlyWiki.getModifiedCssImageStyle(img)),d.mainele.firstChild.style.backgroundImage=\nimg):a.SetValue(c,d.value))};SocialCalc.Popup.Types.ColorChooser.GetValue=function(a,c){return SocialCalc.Popup.Controls[c].data.value};SocialCalc.Popup.Types.ColorChooser.Initialize=function(a,c,b){var d;a=SocialCalc.Popup;var e=a.Controls[c].data;for(d in b.attribs)e.attribs[d]=b.attribs[d];b.value&&a.SetValue(c,b.value)};\nSocialCalc.Popup.Types.ColorChooser.Reset=function(a){var c=SocialCalc.Popup,b=c.Types,d=c.Controls;c.Current.id&&d[c.Current.id].type==a&&(b[a].Hide(a,c.Current.id),c.Current.id=null)};\nSocialCalc.Popup.Types.ColorChooser.Show=function(a,c){var b,d;b=SocialCalc.Popup;var e=b.Controls[c].data;d=\"\";e.oldvalue=e.value;e.popupele=b.CreatePopupDiv(c,e.attribs);e.custom?(d=SocialCalc.Popup.Types.ColorChooser.MakeCustom(a,c),b=document.createElement(\"div\"),b.innerHTML='<div style=\"cursor:default;padding:4px;background-color:#CCC;\">'+d+\"</div>\",e.customele=b.firstChild.firstChild.childNodes[2]):(d=SocialCalc.Popup.Types.ColorChooser.CreateGrid(a,c),b=document.createElement(\"div\"),b.style.padding=\n\"3px\",b.style.backgroundColor=\"#CCC\",b.appendChild(d),e.customele=null);e.contentele=b;e.popupele.appendChild(b);e.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(c,e.attribs.ensureWithin)};\nSocialCalc.Popup.Types.ColorChooser.MakeCustom=function(a,c){var b=SocialCalc.Popup,d=b.LocalizeString,e=\"\";return e='<div style=\"white-space:nowrap;\"><br>#<input id=\"customvalue\" style=\"width:75px;\" value=\"'+b.Controls[c].data.value+'\"><br><br><input style=\"font-size:smaller;\" type=\"button\" value=\"'+d(\"OK\")+'\" onclick=\"SocialCalc.Popup.Types.ColorChooser.CustomOK(\\''+c+'\\');return false;\"><input style=\"font-size:smaller;\" type=\"button\" value=\"'+d(\"Grid\")+'\" onclick=\"SocialCalc.Popup.Types.ColorChooser.CustomToGrid(\\''+\nc+\"');\\\"><br></div>\"};SocialCalc.Popup.Types.ColorChooser.ItemClicked=function(a,c){SocialCalc.Popup.Close()};SocialCalc.Popup.Types.ColorChooser.CustomToList=function(a){};SocialCalc.Popup.Types.ColorChooser.CustomOK=function(a){var c=SocialCalc.Popup;c.SetValue(a,c.Controls[a].data.customele.value);c.Close()};SocialCalc.Popup.Types.ColorChooser.Hide=function(a,c){var b=SocialCalc.Popup,d=b.Controls[c].data;b.DestroyPopupDiv(d.popupele,d.dragregistered);d.popupele=null};\nSocialCalc.Popup.Types.ColorChooser.Cancel=function(a,c){var b=SocialCalc.Popup;b.SetValue(c,b.Controls[c].data.oldvalue);SocialCalc.Popup.Types.ColorChooser.Hide(a,c)};\nSocialCalc.Popup.Types.ColorChooser.CreateGrid=function(a,c){var b,d,e,f,g,l=SocialCalc.Popup,h=l.Types,m=l.LocalizeString;b=l.Controls[c].data;b.grid={};var p=b.grid,r=document.createElement(\"div\");b=document.createElement(\"table\");b.cellSpacing=0;b.cellPadding=0;b.style.width=\"100px\";p.table=b;b=document.createElement(\"tbody\");p.table.appendChild(b);p.tbody=b;for(d=0;16>d;d++){e=document.createElement(\"tr\");for(f=0;5>f;f++)g={},p[d+\",\"+f]=g,b=document.createElement(\"td\"),b.style.fontSize=\"1px\",\nb.innerHTML=\" \",b.style.height=\"10px\",1>=f?(b.style.width=\"17px\",b.style.borderRight=\"3px solid white\"):(b.style.width=\"20px\",b.style.backgroundRepeat=\"no-repeat\"),e.appendChild(b),g.ele=b;p.tbody.appendChild(e)}r.appendChild(p.table);b=document.createElement(\"div\");b.style.marginTop=\"3px\";b.innerHTML='<table cellspacing=\"0\" cellpadding=\"0\"><tr><td style=\"width:17px;background-color:#FFF;background-image:url('+l.imagePrefix+'defaultcolor.gif);height:16px;font-size:10px;cursor:pointer;\" title=\"'+\nm(\"Default\")+'\"> </td><td style=\"width:23px;height:16px;font-size:10px;text-align:center;cursor:pointer;\" title=\"'+m(\"Custom\")+'\">#</td><td style=\"width:60px;height:16px;font-size:10px;text-align:center;cursor:pointer;\">'+m(\"OK\")+\"</td></tr></table>\";TiddlyWiki&&(b.innerHTML=TiddlyWiki.getModifiedCssImageStyle(b.innerHTML));p.defaultbox=b.firstChild.firstChild.firstChild.childNodes[0];p.defaultbox.onclick=h.ColorChooser.DefaultClicked;p.custom=b.firstChild.firstChild.firstChild.childNodes[1];\np.custom.onclick=h.ColorChooser.CustomClicked;p.msg=b.firstChild.firstChild.firstChild.childNodes[2];p.msg.onclick=h.ColorChooser.CloseOK;r.appendChild(b);p.table.onmousedown=h.ColorChooser.GridMouseDown;h.ColorChooser.DetermineColors(c);h.ColorChooser.SetColors(c);return r};SocialCalc.Popup.Types.ColorChooser.gridToG=function(a,c,b){return a[c+\",\"+b]};\nSocialCalc.Popup.Types.ColorChooser.DetermineColors=function(a){var c=SocialCalc.Popup,b=c.Types.ColorChooser,d=c.Controls[a].data;a=d.grid;var e,f=c.splitRGB(d.value),d=2;e=16-Math.floor((f.r+16)/16);a[\"selectedrow\"+d]=e;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(17*(15-e),0,0);d=3;e=16-Math.floor((f.g+16)/16);a[\"selectedrow\"+d]=e;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(0,17*(15-e),0);d=4;e=16-Math.floor((f.b+16)/16);a[\"selectedrow\"+d]=e;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(0,\n0,17*(15-e));d=1;for(e=0;16>e;e++)b.gridToG(a,e,d).rgb=c.makeRGB(17*(15-e),17*(15-e),17*(15-e));var d=0,c=[0,68,153,204,255],f=\"400 310 420 440 442 340 040 042 032 044 024 004 204 314 402 414\".split(\" \"),g;for(e=0;16>e;e++)g=f[e],b.gridToG(a,e,d).rgb=\"rgb(\"+c[g.charAt(0)-0]+\",\"+c[g.charAt(1)-0]+\",\"+c[g.charAt(2)-0]+\")\"};\nSocialCalc.Popup.Types.ColorChooser.SetColors=function(a){var c,b,d,e=SocialCalc.Popup,f=e.Types.ColorChooser,g=e.Controls[a].data,l=g.grid;for(c=0;16>c;c++)for(b=0;5>b;b++)d=f.gridToG(l,c,b),d.ele.style.backgroundColor=d.rgb,d.ele.title=e.RGBToHex(d.rgb),d.ele.style.backgroundImage=l[\"selectedrow\"+b]==c?TiddlyWiki?TiddlyWiki.getModifiedCssImageStyle(\"url(\"+e.imagePrefix+\"chooserarrow.gif)\"):\"url(\"+e.imagePrefix+\"chooserarrow.gif)\":\"\";e.SetValue(a,g.value);l.msg.style.backgroundColor=g.value;a=e.splitRGB(g.value||\n\"rgb(255,255,255)\");l.msg.style.color=220>a.r+a.g+a.b?\"#FFF\":\"#000\";g.value?(l.msg.style.backgroundImage=\"\",l.msg.title=e.RGBToHex(g.value)):(l.msg.style.backgroundColor=\"#FFF\",l.msg.style.backgroundImage=TiddlyWiki?TiddlyWiki.getModifiedCssImageStyle(\"url(\"+e.imagePrefix+\"defaultcolor.gif)\"):\"url(\"+e.imagePrefix+\"defaultcolor.gif)\",l.msg.title=\"Default\")};\nSocialCalc.Popup.Types.ColorChooser.GridMouseDown=function(a){var c=a||window.event;a=SocialCalc.Popup;var b=a.Types.ColorChooser,d=a.Controls,e=a.Current.id;if(e){var d=d[e].data,f=d.grid;switch(c.type){case \"mousedown\":f.mousedown=!0;break;case \"mouseup\":f.mousedown=!1;break;case \"mousemove\":if(!f.mousedown)return}var g=SocialCalc.GetElementPositionWithScroll(d.mainele),l=c.clientX-g.left,h=c.clientY-g.top,c=SocialCalc.GetElementPositionWithScroll(f.table);c.left-=g.left;c.top-=g.top;g=Math.floor((h-\nc.top-2)/10);g=0>g?0:g;l=Math.floor((l-c.left)/20);l=0>l?0:4<l?4:l;f=b.gridToG(f,0>g?0:15<g?15:g,l).ele.style.backgroundColor;g=a.splitRGB(f);c=a.splitRGB(d.value);switch(l){case 2:d.value=a.makeRGB(g.r,c.g,c.b);break;case 3:d.value=a.makeRGB(c.r,g.g,c.b);break;case 4:d.value=a.makeRGB(c.r,c.g,g.b);break;case 0:case 1:d.value=f}b.DetermineColors(e);b.SetColors(e)}};\nSocialCalc.Popup.Types.ColorChooser.ControlClicked=function(a){var c=SocialCalc.Popup,b=c.Types.ColorChooser,d=c.Current.id;d&&a==d?b.CloseOK():c.CClick(a)};SocialCalc.Popup.Types.ColorChooser.DefaultClicked=function(a){var c=SocialCalc.Popup;a=c.Controls;if(c=c.Current.id)a=a[c].data,a.value=\"\",SocialCalc.Popup.SetValue(c,a.value),SocialCalc.Popup.Close()};\nSocialCalc.Popup.Types.ColorChooser.CustomClicked=function(a){a=SocialCalc.Popup;var c=a.Controls,b=a.Current.id;if(b){var c=c[b].data,d,e,f;d=c.contentele;e=SocialCalc.Popup.Types.ColorChooser.MakeCustom(\"ColorChooser\",b);f=document.createElement(\"div\");f.innerHTML='<div style=\"cursor:default;padding:4px;background-color:#CCC;\">'+e+\"</div>\";c.customele=f.firstChild.firstChild.childNodes[2];c.contentele=f;c.popupele.replaceChild(f,d);c.customele.value=a.RGBToHex(c.value);c.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(b,\nc.attribs.ensureWithin)}};\nSocialCalc.Popup.Types.ColorChooser.CustomToGrid=function(a){var c,b;c=SocialCalc.Popup;var d=c.Controls[a].data;SocialCalc.Popup.SetValue(a,c.HexToRGB(\"#\"+d.customele.value));var e;c=d.contentele;e=SocialCalc.Popup.Types.ColorChooser.CreateGrid(\"ColorChooser\",a);b=document.createElement(\"div\");b.style.padding=\"3px\";b.style.backgroundColor=\"#CCC\";b.appendChild(e);d.customele=null;d.contentele=b;d.popupele.replaceChild(b,c);d.attribs.ensureWithin&&SocialCalc.Popup.EnsurePosition(a,d.attribs.ensureWithin)};\nSocialCalc.Popup.Types.ColorChooser.CustomOK=function(a){var c=SocialCalc.Popup;SocialCalc.Popup.SetValue(a,c.HexToRGB(\"#\"+c.Controls[a].data.customele.value));SocialCalc.Popup.Close()};SocialCalc.Popup.Types.ColorChooser.CloseOK=function(a){var c=SocialCalc.Popup;a=c.Controls;if(c=c.Current.id)SocialCalc.Popup.SetValue(c,a[c].data.value),SocialCalc.Popup.Close()};SocialCalc||(alert(\"Main SocialCalc code module needed\"),SocialCalc={});SocialCalc.TableEditor||alert(\"SocialCalc TableEditor code module needed\");SocialCalc.CurrentSpreadsheetControlObject=null;\nSocialCalc.SpreadsheetControl=function(a,c){var b=SocialCalc.Constants;TiddlyWiki&&(this.tiddlyWiki=c,this.keyboard={areListener:!1,focusTable:null,passThru:null,didProcessKey:!1,statusFromProcessKey:!1,repeatingKeyPress:!1,chForProcessKey:\"\"},this.importExport=null);this.spreadsheetDiv=this.parentNode=null;this.viewheight=this.width=this.height=this.requestedSpaceBelow=this.requestedWidth=this.requestedHeight=0;this.tabs=[];this.tabnums={};this.tabreplacements={};this.currentTab=-1;this.views={};\nthis.editorDiv=this.spreadsheetDiv=this.editor=this.context=this.sheet=null;this.moverange=this.sortrange=\"\";this.idPrefix=a||\"SocialCalc-\";this.multipartBoundary=\"SocialCalcSpreadsheetControlSave\";this.imagePrefix=b.defaultImagePrefix;this.toolbarbackground=b.SCToolbarbackground;this.tabbackground=b.SCTabbackground;this.tabselectedCSS=b.SCTabselectedCSS;this.tabplainCSS=b.SCTabplainCSS;this.toolbartext=b.SCToolbartext;this.formulabarheight=b.SCFormulabarheight;this.statuslineheight=b.SCStatuslineheight;\nthis.statuslineCSS=b.SCStatuslineCSS;this.ExportCallback=null;this.sheet=new SocialCalc.Sheet;this.context=new SocialCalc.RenderContext(this.sheet);this.context.showGrid=!0;this.context.showRCHeaders=!0;this.editor=new SocialCalc.TableEditor(this.context);this.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetControlStatuslineCallback,params:{statuslineid:this.idPrefix+\"statusline\",recalcid1:this.idPrefix+\"divider_recalc\",recalcid2:this.idPrefix+\"button_recalc\"}};SocialCalc.CurrentSpreadsheetControlObject=\nthis;this.editor.MoveECellCallback.movefrom=function(a){var c=SocialCalc.GetSpreadsheetControlObject();c.context.cursorsuffix=\"\";a.range2.hasrange&&!a.cellhandles.noCursorSuffix&&(a.ecell.row==a.range2.top&&(a.ecell.col<a.range2.left||a.ecell.col>a.range2.right+1)&&(c.context.cursorsuffix=\"insertleft\"),a.ecell.col==a.range2.left&&(a.ecell.row<a.range2.top||a.ecell.row>a.range2.bottom+1)&&(c.context.cursorsuffix=\"insertup\"))};this.formulabuttons={formulafunctions:{image:\"formuladialog.gif\",tooltip:\"Functions\",\ncommand:SocialCalc.SpreadsheetControl.DoFunctionList},multilineinput:{image:\"multilinedialog.gif\",tooltip:\"Multi-line Input Box\",command:SocialCalc.SpreadsheetControl.DoMultiline},link:{image:\"linkdialog.gif\",tooltip:\"Link Input Box\",command:SocialCalc.SpreadsheetControl.DoLink},sum:{image:\"sumdialog.gif\",tooltip:\"Auto Sum\",command:SocialCalc.SpreadsheetControl.DoSum}};this.tabnums.edit=this.tabs.length;this.tabs.push({name:\"edit\",text:\"Edit\",html:' <div id=\"%id.edittools\" class=\"SocialCalc-toolbar\"> <img id=\"%id.button_undo\" src=\"%img.undo.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_redo\" src=\"%img.redo.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_copy\" src=\"%img.copy.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_cut\" src=\"%img.cut.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_paste\" src=\"%img.paste.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_delete\" src=\"%img.delete.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_pasteformats\" src=\"%img.pasteformats.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <span id=\"%id.locktools\"><img id=\"%id.button_lock\" src=\"%img.lock.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_unlock\" src=\"%img.unlock.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> </span> <img id=\"%id.button_filldown\" src=\"%img.filldown.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_fillright\" src=\"%img.fillright.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_movefrom\" src=\"%img.movefromoff.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_movepaste\" src=\"%img.movepasteoff.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_moveinsert\" src=\"%img.moveinsertoff.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_alignleft\" src=\"%img.alignleft.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_aligncenter\" src=\"%img.aligncenter.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_alignright\" src=\"%img.alignright.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_borderon\" src=\"%img.borderson.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_borderoff\" src=\"%img.bordersoff.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_swapcolors\" src=\"%img.swapcolors.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_merge\" src=\"%img.merge.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_unmerge\" src=\"%img.unmerge.gif\" style=\"vertical-align:bottom;\"> <img src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_insertrow\" src=\"%img.insertrow.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_insertcol\" src=\"%img.insertcol.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_deleterow\" src=\"%img.deleterow.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_deletecol\" src=\"%img.deletecol.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_hiderow\" src=\"%img.hiderow.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_hidecol\" src=\"%img.hidecol.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.divider_recalc\" src=\"%img.divider1.gif\" style=\"vertical-align:bottom;\"> <img id=\"%id.button_recalc\" src=\"%img.recalc.gif\" style=\"vertical-align:bottom;\"> </div>',\noncreate:null,onclick:null});this.tabnums.settings=this.tabs.length;this.tabs.push({name:\"settings\",text:\"Format\",html:'<div id=\"%id.settingstools\" class=\"SocialCalc-toolbar\" style=\"display:none;\"> <div id=\"%id.sheetsettingstoolbar\" style=\"display:none;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr><td> <div style=\"%tbt.\">%loc!SHEET SETTINGS!:</div> </td></tr><tr><td> <input id=\"%id.settings-savesheet\" type=\"button\" value=\"%loc!Save!\" onclick=\"SocialCalc.SettingsControlSave(\\'sheet\\');\"> <input type=\"button\" value=\"%loc!Cancel!\" onclick=\"SocialCalc.SettingsControlSave(\\'cancel\\');\"> <input type=\"button\" value=\"%loc!Show Cell Settings!\" onclick=\"SocialCalc.SpreadsheetControlSettingsSwitch(\\'cell\\');return false;\"> </td></tr></table> </div> <div id=\"%id.cellsettingstoolbar\" style=\"display:none;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr><td> <div style=\"%tbt.\">%loc!CELL SETTINGS!: <span id=\"%id.settingsecell\"> </span></div> </td></tr><tr><td> <input id=\"%id.settings-savecell\" type=\"button\" value=\"%loc!Save!\" onclick=\"SocialCalc.SettingsControlSave(\\'cell\\');\"> <input type=\"button\" value=\"%loc!Cancel!\" onclick=\"SocialCalc.SettingsControlSave(\\'cancel\\');\"> <input type=\"button\" value=\"%loc!Show Sheet Settings!\" onclick=\"SocialCalc.SpreadsheetControlSettingsSwitch(\\'sheet\\');return false;\"> </td></tr></table> </div></div>',\nview:\"settings\",onclick:function(a,c){SocialCalc.SettingsControls.idPrefix=a.idPrefix;SocialCalc.SettingControlReset();var b=a.sheet.EncodeSheetAttributes(),g=a.sheet.EncodeCellAttributes(a.editor.ecell.coord);SocialCalc.SettingsControlLoadPanel(a.views.settings.values.sheetspanel,b);SocialCalc.SettingsControlLoadPanel(a.views.settings.values.cellspanel,g);document.getElementById(a.idPrefix+\"settingsecell\").innerHTML=a.editor.ecell.coord;SocialCalc.SpreadsheetControlSettingsSwitch(\"cell\");a.views.settings.element.style.height=\na.viewheight+\"px\";a.views.settings.element.firstChild.style.height=a.viewheight+\"px\";b=a.editor.range.hasrange?SocialCalc.crToCoord(a.editor.range.left,a.editor.range.top)+\":\"+SocialCalc.crToCoord(a.editor.range.right,a.editor.range.bottom):a.editor.ecell.coord;document.getElementById(a.idPrefix+\"settings-savecell\").value=SocialCalc.LocalizeString(\"Save to\")+\": \"+b},onclickFocus:!0});this.views.settings={name:\"settings\",values:{},oncreate:function(a,c){var b=SocialCalc.Constants;c.values.sheetspanel=\n{colorchooser:{id:a.idPrefix+\"scolorchooser\"},formatnumber:{setting:\"numberformat\",type:\"PopupList\",id:a.idPrefix+\"formatnumber\",initialdata:b.SCFormatNumberFormats},formattext:{setting:\"textformat\",type:\"PopupList\",id:a.idPrefix+\"formattext\",initialdata:b.SCFormatTextFormats},fontfamily:{setting:\"fontfamily\",type:\"PopupList\",id:a.idPrefix+\"fontfamily\",initialdata:b.SCFormatFontfamilies},fontlook:{setting:\"fontlook\",type:\"PopupList\",id:a.idPrefix+\"fontlook\",initialdata:b.SCFormatFontlook},fontsize:{setting:\"fontsize\",\ntype:\"PopupList\",id:a.idPrefix+\"fontsize\",initialdata:b.SCFormatFontsizes},textalignhoriz:{setting:\"textalignhoriz\",type:\"PopupList\",id:a.idPrefix+\"textalignhoriz\",initialdata:b.SCFormatTextAlignhoriz},numberalignhoriz:{setting:\"numberalignhoriz\",type:\"PopupList\",id:a.idPrefix+\"numberalignhoriz\",initialdata:b.SCFormatNumberAlignhoriz},alignvert:{setting:\"alignvert\",type:\"PopupList\",id:a.idPrefix+\"alignvert\",initialdata:b.SCFormatAlignVertical},textcolor:{setting:\"textcolor\",type:\"ColorChooser\",id:a.idPrefix+\n\"textcolor\"},bgcolor:{setting:\"bgcolor\",type:\"ColorChooser\",id:a.idPrefix+\"bgcolor\"},padtop:{setting:\"padtop\",type:\"PopupList\",id:a.idPrefix+\"padtop\",initialdata:b.SCFormatPadsizes},padright:{setting:\"padright\",type:\"PopupList\",id:a.idPrefix+\"padright\",initialdata:b.SCFormatPadsizes},padbottom:{setting:\"padbottom\",type:\"PopupList\",id:a.idPrefix+\"padbottom\",initialdata:b.SCFormatPadsizes},padleft:{setting:\"padleft\",type:\"PopupList\",id:a.idPrefix+\"padleft\",initialdata:b.SCFormatPadsizes},colwidth:{setting:\"colwidth\",\ntype:\"PopupList\",id:a.idPrefix+\"colwidth\",initialdata:b.SCFormatColwidth},recalc:{setting:\"recalc\",type:\"PopupList\",id:a.idPrefix+\"recalc\",initialdata:b.SCFormatRecalc},usermaxcol:{setting:\"usermaxcol\",type:\"PopupList\",id:a.idPrefix+\"usermaxcol\",initialdata:b.SCFormatUserMaxCol},usermaxrow:{setting:\"usermaxrow\",type:\"PopupList\",id:a.idPrefix+\"usermaxrow\",initialdata:b.SCFormatUserMaxRow}};c.values.cellspanel={name:\"cell\",colorchooser:{id:a.idPrefix+\"scolorchooser\"},cformatnumber:{setting:\"numberformat\",\ntype:\"PopupList\",id:a.idPrefix+\"cformatnumber\",initialdata:b.SCFormatNumberFormats},cformattext:{setting:\"textformat\",type:\"PopupList\",id:a.idPrefix+\"cformattext\",initialdata:b.SCFormatTextFormats},cfontfamily:{setting:\"fontfamily\",type:\"PopupList\",id:a.idPrefix+\"cfontfamily\",initialdata:b.SCFormatFontfamilies},cfontlook:{setting:\"fontlook\",type:\"PopupList\",id:a.idPrefix+\"cfontlook\",initialdata:b.SCFormatFontlook},cfontsize:{setting:\"fontsize\",type:\"PopupList\",id:a.idPrefix+\"cfontsize\",initialdata:b.SCFormatFontsizes},\ncalignhoriz:{setting:\"alignhoriz\",type:\"PopupList\",id:a.idPrefix+\"calignhoriz\",initialdata:b.SCFormatTextAlignhoriz},calignvert:{setting:\"alignvert\",type:\"PopupList\",id:a.idPrefix+\"calignvert\",initialdata:b.SCFormatAlignVertical},ctextcolor:{setting:\"textcolor\",type:\"ColorChooser\",id:a.idPrefix+\"ctextcolor\"},cbgcolor:{setting:\"bgcolor\",type:\"ColorChooser\",id:a.idPrefix+\"cbgcolor\"},cbt:{setting:\"bt\",type:\"BorderSide\",id:a.idPrefix+\"cbt\"},cbr:{setting:\"br\",type:\"BorderSide\",id:a.idPrefix+\"cbr\"},cbb:{setting:\"bb\",\ntype:\"BorderSide\",id:a.idPrefix+\"cbb\"},cbl:{setting:\"bl\",type:\"BorderSide\",id:a.idPrefix+\"cbl\"},cpadtop:{setting:\"padtop\",type:\"PopupList\",id:a.idPrefix+\"cpadtop\",initialdata:b.SCFormatPadsizes},cpadright:{setting:\"padright\",type:\"PopupList\",id:a.idPrefix+\"cpadright\",initialdata:b.SCFormatPadsizes},cpadbottom:{setting:\"padbottom\",type:\"PopupList\",id:a.idPrefix+\"cpadbottom\",initialdata:b.SCFormatPadsizes},cpadleft:{setting:\"padleft\",type:\"PopupList\",id:a.idPrefix+\"cpadleft\",initialdata:b.SCFormatPadsizes}};\nSocialCalc.SettingsControlInitializePanel(c.values.sheetspanel);SocialCalc.SettingsControlInitializePanel(c.values.cellspanel)},replacements:{itemtitle:{regex:/\\%itemtitle\\./g,replacement:'style=\"padding:12px 10px 0px 10px;font-weight:bold;text-align:right;vertical-align:top;font-size:small;\"'},sectiontitle:{regex:/\\%sectiontitle\\./g,replacement:'style=\"padding:16px 10px 0px 0px;font-weight:bold;vertical-align:top;font-size:small;color:#C00;\"'},parttitle:{regex:/\\%parttitle\\./g,replacement:'style=\"font-weight:bold;font-size:x-small;padding:0px 0px 3px 0px;\"'},\nitembody:{regex:/\\%itembody\\./g,replacement:'style=\"padding:12px 0px 0px 0px;vertical-align:top;font-size:small;\"'},bodypart:{regex:/\\%bodypart\\./g,replacement:'style=\"padding:0px 10px 0px 0px;font-size:small;vertical-align:top;\"'}},divStyle:\"border:1px solid black;overflow:auto;\",html:'<div id=\"%id.scolorchooser\" style=\"display:none;position:absolute;z-index:20;\"></div><table cellspacing=\"0\" cellpadding=\"0\"> <tr><td style=\"vertical-align:top;\"><table id=\"%id.sheetsettingstable\" style=\"display:none;\" cellspacing=\"0\" cellpadding=\"0\"><tr> <td %itemtitle.><br>%loc!Default Format!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Number!</div> <span id=\"%id.formatnumber\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Text!</div> <span id=\"%id.formattext\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Default Alignment!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Text Horizontal!</div> <span id=\"%id.textalignhoriz\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Number Horizontal!</div> <span id=\"%id.numberalignhoriz\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Vertical!</div> <span id=\"%id.alignvert\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Default Font!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Family!</div> <span id=\"%id.fontfamily\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Bold & Italics!</div> <span id=\"%id.fontlook\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Size!</div> <span id=\"%id.fontsize\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Color!</div> <div id=\"%id.textcolor\" class=\"SocialCalc-colorchooser\"></div> </td> <td %bodypart.> <div %parttitle.>%loc!Background!</div> <div id=\"%id.bgcolor\" class=\"SocialCalc-colorchooser\"></div> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Default Padding!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Top!</div> <span id=\"%id.padtop\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Right!</div> <span id=\"%id.padright\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Bottom!</div> <span id=\"%id.padbottom\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Left!</div> <span id=\"%id.padleft\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Default Column Width!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.> </div> <span id=\"%id.colwidth\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Recalculation!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.> </div> <span id=\"%id.recalc\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Dimensions!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Columns!</div> <span id=\"%id.usermaxcol\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Rows!</div> <span id=\"%id.usermaxrow\"></span> </td> </tr></table> </td></tr></table><table id=\"%id.cellsettingstable\" cellspacing=\"0\" cellpadding=\"0\"><tr> <td %itemtitle.><br>%loc!Format!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Number!</div> <span id=\"%id.cformatnumber\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Text!</div> <span id=\"%id.cformattext\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Alignment!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Horizontal!</div> <span id=\"%id.calignhoriz\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Vertical!</div> <span id=\"%id.calignvert\"></span> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Font!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Family!</div> <span id=\"%id.cfontfamily\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Bold & Italics!</div> <span id=\"%id.cfontlook\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Size!</div> <span id=\"%id.cfontsize\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Color!</div> <div id=\"%id.ctextcolor\" class=\"SocialCalc-colorchooser\"></div> </td> <td %bodypart.> <div %parttitle.>%loc!Background!</div> <div id=\"%id.cbgcolor\" class=\"SocialCalc-colorchooser\"></div> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Borders!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"> <tr><td %bodypart. colspan=\"3\"><div %parttitle.>%loc!Top Border!</div></td> <td %bodypart. colspan=\"3\"><div %parttitle.>%loc!Right Border!</div></td> <td %bodypart. colspan=\"3\"><div %parttitle.>%loc!Bottom Border!</div></td> <td %bodypart. colspan=\"3\"><div %parttitle.>%loc!Left Border!</div></td> </tr><tr> <td %bodypart.> <input id=\"%id.cbt-onoff-bcb\" onclick=\"SocialCalc.SettingsControlOnchangeBorder(this);\" type=\"checkbox\"> </td> <td %bodypart.> <div id=\"%id.cbt-color\" class=\"SocialCalc-colorchooser\"></div> </td> <td> </td> <td %bodypart.> <input id=\"%id.cbr-onoff-bcb\" onclick=\"SocialCalc.SettingsControlOnchangeBorder(this);\" type=\"checkbox\"> </td> <td %bodypart.> <div id=\"%id.cbr-color\" class=\"SocialCalc-colorchooser\"></div> </td> <td> </td> <td %bodypart.> <input id=\"%id.cbb-onoff-bcb\" onclick=\"SocialCalc.SettingsControlOnchangeBorder(this);\" type=\"checkbox\"> </td> <td %bodypart.> <div id=\"%id.cbb-color\" class=\"SocialCalc-colorchooser\"></div> </td> <td> </td> <td %bodypart.> <input id=\"%id.cbl-onoff-bcb\" onclick=\"SocialCalc.SettingsControlOnchangeBorder(this);\" type=\"checkbox\"> </td> <td %bodypart.> <div id=\"%id.cbl-color\" class=\"SocialCalc-colorchooser\"></div> </td> <td> </td> </tr></table> </td></tr><tr> <td %itemtitle.><br>%loc!Padding!:</td> <td %itembody.> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td %bodypart.> <div %parttitle.>%loc!Top!</div> <span id=\"%id.cpadtop\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Right!</div> <span id=\"%id.cpadright\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Bottom!</div> <span id=\"%id.cpadbottom\"></span> </td> <td %bodypart.> <div %parttitle.>%loc!Left!</div> <span id=\"%id.cpadleft\"></span> </td> </tr></table> </td></tr></table> </td><td style=\"vertical-align:top;padding:12px 0px 0px 12px;\"> <div style=\"width:100px;height:100px;overflow:hidden;border:1px solid black;background-color:#EEE;padding:6px;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td id=\"sample-text\" style=\"height:100px;width:100px;\"><div>%loc!This is a<br>sample!</div><div>-1234.5</div></td> </tr></table> </div> </td></tr></table><br>'};\nthis.tabnums.sort=this.tabs.length;this.tabs.push({name:\"sort\",text:\"Sort\",html:' <div id=\"%id.sorttools\" class=\"SocialCalc-toolbar\" style=\"display:none;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td style=\"vertical-align:top;padding-right:4px;width:160px;\"> <div style=\"%tbt.\">%loc!Set Cells To Sort!</div> <select id=\"%id.sortlist\" size=\"1\" onfocus=\"%s.CmdGotFocus(this);\"><option selected>[select range]</option></select> <input type=\"button\" value=\"%loc!OK!\" onclick=\"%s.DoCmd(this, \\'ok-setsort\\');\" style=\"font-size:x-small;\"> </td> <td style=\"vertical-align:middle;padding-right:16px;width:100px;text-align:right;\"> <div style=\"%tbt.\"> </div> <input type=\"button\" id=\"%id.sortbutton\" value=\"%loc!Sort Cells! A1:A1\" onclick=\"%s.DoCmd(this, \\'dosort\\');\" style=\"visibility:hidden;\"> </td> <td style=\"vertical-align:top;padding-right:16px;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td style=\"vertical-align:top;\"> <div style=\"%tbt.\">%loc!Major Sort!</div> <select id=\"%id.majorsort\" size=\"1\" onfocus=\"%s.CmdGotFocus(this);\"></select> </td><td> <input type=\"radio\" name=\"majorsort\" id=\"%id.majorsortup\" value=\"up\" checked><span style=\"font-size:x-small;color:#FFF;\">%loc!Up!</span><br> <input type=\"radio\" name=\"majorsort\" id=\"%id.majorsortdown\" value=\"down\"><span style=\"font-size:x-small;color:#FFF;\">%loc!Down!</span> </td> </tr></table> </td> <td style=\"vertical-align:top;padding-right:16px;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td style=\"vertical-align:top;\"> <div style=\"%tbt.\">%loc!Minor Sort!</div> <select id=\"%id.minorsort\" size=\"1\" onfocus=\"%s.CmdGotFocus(this);\"></select> </td><td> <input type=\"radio\" name=\"minorsort\" id=\"%id.minorsortup\" value=\"up\" checked><span style=\"font-size:x-small;color:#FFF;\">%loc!Up!</span><br> <input type=\"radio\" name=\"minorsort\" id=\"%id.minorsortdown\" value=\"down\"><span style=\"font-size:x-small;color:#FFF;\">%loc!Down!</span> </td> </tr></table> </td> <td style=\"vertical-align:top;padding-right:16px;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td style=\"vertical-align:top;\"> <div style=\"%tbt.\">%loc!Last Sort!</div> <select id=\"%id.lastsort\" size=\"1\" onfocus=\"%s.CmdGotFocus(this);\"></select> </td><td> <input type=\"radio\" name=\"lastsort\" id=\"%id.lastsortup\" value=\"up\" checked><span style=\"font-size:x-small;color:#FFF;\">%loc!Up!</span><br> <input type=\"radio\" name=\"lastsort\" id=\"%id.lastsortdown\" value=\"down\"><span style=\"font-size:x-small;color:#FFF;\">%loc!Down!</span> </td> </tr></table> </td> </tr></table> </div>',\nonclick:SocialCalc.SpreadsheetControlSortOnclick});this.editor.SettingsCallbacks.sort={save:SocialCalc.SpreadsheetControlSortSave,load:SocialCalc.SpreadsheetControlSortLoad};this.tabnums.audit=this.tabs.length;this.tabs.push({name:\"audit\",text:\"Audit\",html:'<div id=\"%id.audittools\" class=\"SocialCalc-toolbar\" style=\"display:none;\"> <div style=\"%tbt.\"> </div></div>',view:\"audit\",onclick:function(a,c){var b=SocialCalc.LocalizeString,g,l,h='<table cellspacing=\"0\" cellpadding=\"0\" style=\"margin-bottom:10px;\"><tr><td style=\"font-size:small;padding:6px;\"><b>'+\nb(\"Audit Trail This Session\")+\":</b><br><br>\",m=a.sheet.changes.stack,p=a.sheet.changes.tos;for(g=0;g<m.length;g++)for(g==p+1&&(h+='<br></td></tr><tr><td style=\"font-size:small;background-color:#EEE;padding:6px;\">'+b(\"UNDONE STEPS\")+\":<br>\"),l=0;l<m[g].command.length;l++)h+=SocialCalc.special_chars(m[g].command[l])+\"<br>\";a.views.audit.element.innerHTML=h+\"</td></tr></table>\";SocialCalc.CmdGotFocus(!0)},onclickFocus:!0});this.views.audit={name:\"audit\",divStyle:\"border:1px solid black;overflow:auto;\",\nhtml:\"Audit Trail\"};this.tabnums.comment=this.tabs.length;this.tabs.push({name:\"comment\",text:\"Comment\",html:'<div id=\"%id.commenttools\" class=\"SocialCalc-toolbar\" style=\"display:none;\"><table cellspacing=\"0\" cellpadding=\"0\"><tr><td><textarea id=\"%id.commenttext\" class=\"SocialCalc-commenttext\" style=\"font-size:small;overflow:auto;\" onfocus=\"%s.CmdGotFocus(this);\"></textarea></td><td style=\"vertical-align:top;\"> <input type=\"button\" value=\"%loc!Save!\" onclick=\"%s.SpreadsheetControlCommentSet();\" style=\"font-size:x-small;\"></td></tr></table></div>',\nview:\"sheet\",onclick:SocialCalc.SpreadsheetControlCommentOnclick,onunclick:SocialCalc.SpreadsheetControlCommentOnunclick});this.tabnums.names=this.tabs.length;this.tabs.push({name:\"names\",text:\"Names\",html:'<div id=\"%id.namestools\" class=\"SocialCalc-toolbar\" style=\"display:none;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td style=\"vertical-align:top;padding-right:24px;\"> <div style=\"%tbt.\">%loc!Existing Names!</div> <select id=\"%id.nameslist\" size=\"1\" onchange=\"%s.SpreadsheetControlNamesChangedName();\" onfocus=\"%s.CmdGotFocus(this);\"><option selected>[New]</option></select> </td> <td style=\"vertical-align:top;padding-right:6px;\"> <div style=\"%tbt.\">%loc!Name!</div> <input type=\"text\" id=\"%id.namesname\" style=\"font-size:x-small;width:75px;\" onfocus=\"%s.CmdGotFocus(this);\"> </td> <td style=\"vertical-align:top;padding-right:6px;\"> <div style=\"%tbt.\">%loc!Description!</div> <input type=\"text\" id=\"%id.namesdesc\" style=\"font-size:x-small;width:150px;\" onfocus=\"%s.CmdGotFocus(this);\"> </td> <td style=\"vertical-align:top;padding-right:6px;\"> <div style=\"%tbt.\">%loc!Value!</div> <input type=\"text\" id=\"%id.namesvalue\" width=\"16\" style=\"font-size:x-small;width:100px;\" onfocus=\"%s.CmdGotFocus(this);\"> </td> <td style=\"vertical-align:top;padding-right:12px;width:100px;\"> <div style=\"%tbt.\">%loc!Set Value To!</div> <input type=\"button\" id=\"%id.namesrangeproposal\" value=\"A1\" onclick=\"%s.SpreadsheetControlNamesSetValue();\" style=\"font-size:x-small;\"> </td> <td style=\"vertical-align:top;padding-right:6px;\"> <div style=\"%tbt.\"> </div> <input type=\"button\" value=\"%loc!Save!\" onclick=\"%s.SpreadsheetControlNamesSave();\" style=\"font-size:x-small;\"> <input type=\"button\" value=\"%loc!Delete!\" onclick=\"%s.SpreadsheetControlNamesDelete()\" style=\"font-size:x-small;\"> </td> </tr></table></div>',\nview:\"sheet\",onclick:SocialCalc.SpreadsheetControlNamesOnclick,onunclick:SocialCalc.SpreadsheetControlNamesOnunclick});this.tabnums.clipboard=this.tabs.length;this.tabs.push({name:\"clipboard\",text:\"Clipboard\",html:'<div id=\"%id.clipboardtools\" class=\"SocialCalc-toolbar\" style=\"display:none;\"> <table cellspacing=\"0\" cellpadding=\"0\"><tr> <td style=\"vertical-align:top;padding-right:24px;\"><!- *tiddlywiki* begin /> <div style=\"%tbt.\">'+SocialCalc.Constants.s_clipboard_menu_title+'</div> </td> <td style=\"vertical-align:top;padding-right:16px;\"> <span style=\"%tbt.\">%loc!Tiddler! : </span> <input type=\"text\" id=\"%id.clipboard-tiddler\" onfocus=\"%s.CmdGotFocus(this);\"> </td> <td style=\"vertical-align:top;\"> <input type=\"button\" value=\"%loc!Export!\" id=\"%id.clipboard-export\" style=\"font-size:x-small;\"> <select id=\"%id.clipboard-export-select-source\" onfocus=\"%s.CmdGotFocus(this);\"></select> <span style=\"%tbt.\"> %loc!to! </span> <select id=\"%id.clipboard-export-select-format\" onfocus=\"%s.CmdGotFocus(this);\"></select> <div style=\"padding-top:4px;\"> <input type=\"button\" value=\"%loc!Import!\" id=\"%id.clipboard-import\" style=\"font-size:x-small;\"> </div><!- *tiddlywiki* end /> </td> </tr></table></div>',\nview:\"clipboard\",onclick:SocialCalc.SpreadsheetControlClipboardOnclick,onclickFocus:\"clipboardtext\"});this.views.clipboard={name:\"clipboard\",divStyle:\"overflow:auto;\",html:'<div style=\"width:100%;height:100%;overflow:hidden\"> <div style=\"font-size:x-small;padding:5px 0px 10px 0px;\"> <b>%loc!Display Clipboard in!:</b> <input type=\"radio\" id=\"%id.clipboardformat-tab\" name=\"%id.clipboardformat\" checked onclick=\"%s.SpreadsheetControlClipboardFormat(\\'tab\\');\"> %loc!Tab-delimited format! <input type=\"radio\" id=\"%id.clipboardformat-csv\" name=\"%id.clipboardformat\" onclick=\"%s.SpreadsheetControlClipboardFormat(\\'csv\\');\"> %loc!CSV format! <input type=\"radio\" id=\"%id.clipboardformat-scsave\" name=\"%id.clipboardformat\" onclick=\"%s.SpreadsheetControlClipboardFormat(\\'scsave\\');\"> %loc!SocialCalc-save format! </div> <input type=\"button\" value=\"%loc!Load SocialCalc Clipboard With This!\" style=\"font-size:x-small;\" onclick=\"%s.SpreadsheetControlClipboardLoad();\"> <input type=\"button\" value=\"%loc!Clear SocialCalc Clipboard!\" style=\"font-size:x-small;\" onclick=\"%s.SpreadsheetControlClipboardClear();\"> <textarea id=\"%id.clipboardtext\" style=\"width:100%;height:80%;font-size:small;overflow:auto;margin-top:5px;\" onfocus=\"%s.CmdGotFocus(this);\"></textarea></div>'}};\nSocialCalc.SpreadsheetControl.prototype.InitializeSpreadsheetControl=function(a,c,b,d){return SocialCalc.InitializeSpreadsheetControl(this,a,c,b,d)};SocialCalc.SpreadsheetControl.prototype.DoOnResize=function(){return SocialCalc.DoOnResize(this)};SocialCalc.SpreadsheetControl.prototype.SizeSSDiv=function(){return SocialCalc.SizeSSDiv(this)};SocialCalc.SpreadsheetControl.prototype.ExecuteCommand=function(a,c){return SocialCalc.SpreadsheetControlExecuteCommand(this,a,c)};\nSocialCalc.SpreadsheetControl.prototype.CreateSheetHTML=function(){return SocialCalc.SpreadsheetControlCreateSheetHTML(this)};SocialCalc.SpreadsheetControl.prototype.CreateSpreadsheetSave=function(a){return SocialCalc.SpreadsheetControlCreateSpreadsheetSave(this,a)};SocialCalc.SpreadsheetControl.prototype.DecodeSpreadsheetSave=function(a){return SocialCalc.SpreadsheetControlDecodeSpreadsheetSave(this,a)};\nSocialCalc.SpreadsheetControl.prototype.CreateCellHTML=function(a){return SocialCalc.SpreadsheetControlCreateCellHTML(this,a)};SocialCalc.SpreadsheetControl.prototype.CreateCellHTMLSave=function(a){return SocialCalc.SpreadsheetControlCreateCellHTMLSave(this,a)};SocialCalc.SpreadsheetControl.prototype.ParseSheetSave=function(a){return this.sheet.ParseSheetSave(a)};SocialCalc.SpreadsheetControl.prototype.CreateSheetSave=function(){return this.sheet.CreateSheetSave()};\nSocialCalc.InitializeSpreadsheetControl=function(a,c,b,d,e){var f=SocialCalc.Constants,g=SocialCalc.LocalizeString,l=SocialCalc.LocalizeSubstrings,h,m,p,r=a.tabs,q=a.views;a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;\"string\"==typeof c&&(c=document.getElementById(c));null==c&&alert(\"SocialCalc.SpreadsheetControl not given parent node.\");a.parentNode=c;a.spreadsheetDiv=document.createElement(\"div\");a.SizeSSDiv();for(b=c.firstChild;null!=b;b=c.firstChild)c.removeChild(b);b=TiddlyWiki?\n'<div><div style=\"'+a.toolbarbackground+'padding:0px 0px 0p 0px;\">':'<div><div style=\"'+a.toolbarbackground+'padding:12px 10px 10px 4px;height:40px;\">';for(d=0;d<r.length;d++)b+=r[d].html;b+=\"</div>\";b=TiddlyWiki?b+('<div style=\"'+a.tabbackground+'margin:0px 0px 8px 0px;\">'):b+('<div style=\"'+a.tabbackground+'padding-bottom:4px;margin:0px 0px 8px 0px;\">');if(TiddlyWiki)for(d=0;d<r.length;d++)b+='<div id=\"%id.'+r[d].name+'tab\" style=\"'+(0==d?a.tabselectedCSS:a.tabplainCSS)+'\" onclick=\"%s.SetTab(this);\">'+\ng(r[d].text)+\"</div>\";else{b+='<table cellpadding=\"0\" cellspacing=\"0\"><tr>';for(d=0;d<r.length;d++)b+=' <td id=\"%id.'+r[d].name+'tab\" style=\"'+(0==d?a.tabselectedCSS:a.tabplainCSS)+'\" onclick=\"%s.SetTab(this);\">'+g(r[d].text)+\"</td>\";b+=\" </tr></table>\"}b+=\"</div></div>\";a.currentTab=0;for(m in a.tabreplacements)b=b.replace(a.tabreplacements[m].regex,a.tabreplacements[m].replacement);b=b.replace(/\\%s\\./g,\"SocialCalc.\");b=b.replace(/\\%id\\./g,a.idPrefix);b=b.replace(/\\%tbt\\./g,a.toolbartext);b=b.replace(/\\%img\\./g,\na.imagePrefix);b=l(b);if(TiddlyWiki){e=/[\"][.]?[/]?images\\/(.+?)[\"]/g;for(var n;n=e.exec(b);)(d=TiddlyWiki.getModifiedImgSrc(n[0].replace(/\\\"/g,\"\")))&&(b=b.replace(n[0],'\"'+d+'\"'))}a.spreadsheetDiv.innerHTML=b;c.appendChild(a.spreadsheetDiv);a.Buttons={button_undo:{tooltip:\"Undo\",command:\"undo\"},button_redo:{tooltip:\"Redo\",command:\"redo\"},button_copy:{tooltip:\"Copy\",command:\"copy\"},button_cut:{tooltip:\"Cut\",command:\"cut\"},button_paste:{tooltip:\"Paste\",command:\"paste\"},button_pasteformats:{tooltip:\"Paste Formats\",\ncommand:\"pasteformats\"},button_lock:{tooltip:\"Lock\",command:\"lock\"},button_unlock:{tooltip:\"Unlock\",command:\"unlock\"},button_delete:{tooltip:\"Delete Contents\",command:\"delete\"},button_filldown:{tooltip:\"Fill Down\",command:\"filldown\"},button_fillright:{tooltip:\"Fill Right\",command:\"fillright\"},button_movefrom:{tooltip:\"Set/Clear Move From\",command:\"movefrom\"},button_movepaste:{tooltip:\"Move Paste\",command:\"movepaste\"},button_moveinsert:{tooltip:\"Move Insert\",command:\"moveinsert\"},button_alignleft:{tooltip:\"Align Left\",\ncommand:\"align-left\"},button_aligncenter:{tooltip:\"Align Center\",command:\"align-center\"},button_alignright:{tooltip:\"Align Right\",command:\"align-right\"},button_borderon:{tooltip:\"Borders On\",command:\"borderon\"},button_borderoff:{tooltip:\"Borders Off\",command:\"borderoff\"},button_swapcolors:{tooltip:\"Swap Colors\",command:\"swapcolors\"},button_merge:{tooltip:\"Merge Cells\",command:\"merge\"},button_unmerge:{tooltip:\"Unmerge Cells\",command:\"unmerge\"},button_insertrow:{tooltip:\"Insert Row\",command:\"insertrow\"},\nbutton_insertcol:{tooltip:\"Insert Column\",command:\"insertcol\"},button_deleterow:{tooltip:\"Delete Row\",command:\"deleterow\"},button_deletecol:{tooltip:\"Delete Column\",command:\"deletecol\"},button_hiderow:{tooltip:\"Hide Row\",command:\"hiderow\"},button_hidecol:{tooltip:\"Hide Column\",command:\"hidecol\"},button_recalc:{tooltip:\"Recalc\",command:\"recalc\"}};for(p in a.Buttons)(c=document.getElementById(a.idPrefix+p))?(c.style.border=\"1px solid \"+f.ISCButtonBorderNormal,SocialCalc.TooltipRegister(c,g(a.Buttons[p].tooltip),\n{},a.spreadsheetDiv),SocialCalc.ButtonRegister(a.editor,c,{normalstyle:\"border:1px solid \"+f.ISCButtonBorderNormal+\";backgroundColor:\"+f.ISCButtonBorderNormal+\";\",hoverstyle:\"border:1px solid \"+f.ISCButtonBorderHover+\";backgroundColor:\"+f.ISCButtonBorderNormal+\";\",downstyle:\"border:1px solid \"+f.ISCButtonBorderDown+\";backgroundColor:\"+f.ISCButtonDownBackground+\";\"},{MouseDown:SocialCalc.DoButtonCmd,command:a.Buttons[p].command})):alert(\"Button \"+(a.idPrefix+p)+\" missing\");TiddlyWiki?(a.formulabarDiv=\ndocument.createElement(\"div\"),a.formulabarDiv.style=\"margin: 0px 0px 8px 0px;\",a.formulabarDiv.innerHTML='<input type=\"text\" style=\"width:70%;margin-right:4px;\" value=\"\">'):(a.formulabarDiv=document.createElement(\"div\"),a.formulabarDiv.style.height=a.formulabarheight+\"px\",a.formulabarDiv.innerHTML='<input type=\"text\" size=\"60\" value=\"\"> ');a.spreadsheetDiv.appendChild(a.formulabarDiv);f=new SocialCalc.InputBox(a.formulabarDiv.firstChild,a.editor);TiddlyWiki&&SocialCalc.CmdGotFocus(f.element);\nfor(p in a.formulabuttons){c=document.createElement(\"img\");c.id=a.idPrefix+p;if(TiddlyWiki){if(d=(a.formulabuttons[p].skipImagePrefix?\"\":a.imagePrefix)+a.formulabuttons[p].image,d=TiddlyWiki.getModifiedImgSrc(d))c.src=d}else c.src=(a.formulabuttons[p].skipImagePrefix?\"\":a.imagePrefix)+a.formulabuttons[p].image;c.style.verticalAlign=\"middle\";c.style.border=\"1px solid #FFF\";c.style.marginLeft=\"4px\";SocialCalc.TooltipRegister(c,g(a.formulabuttons[p].tooltip),{},a.spreadsheetDiv);SocialCalc.ButtonRegister(a.editor,\nc,{normalstyle:\"border:1px solid #FFF;backgroundColor:#FFF;\",hoverstyle:\"border:1px solid #CCC;backgroundColor:#FFF;\",downstyle:\"border:1px solid #000;backgroundColor:#FFF;\"},{MouseDown:a.formulabuttons[p].command,Disabled:function(){return a.editor.ECellReadonly()}});a.formulabarDiv.appendChild(c)}for(d=0;d<r.length;d++)if(r[d].oncreate)r[d].oncreate(a,r[d].name);a.nonviewheight=a.statuslineheight+a.spreadsheetDiv.firstChild.offsetHeight+a.spreadsheetDiv.lastChild.offsetHeight;a.viewheight=a.height-\na.nonviewheight;a.editorDiv=a.editor.CreateTableEditor(a.width,a.viewheight);a.spreadsheetDiv.appendChild(a.editorDiv);for(h in q){b=q[h].html;for(m in q[h].replacements)b=b.replace(q[h].replacements[m].regex,q[h].replacements[m].replacement);b=b.replace(/\\%s\\./g,\"SocialCalc.\");b=b.replace(/\\%id\\./g,a.idPrefix);b=b.replace(/\\%tbt\\./g,a.toolbartext);b=b.replace(/\\%img\\./g,a.imagePrefix);g=document.createElement(\"div\");SocialCalc.setStyles(g,q[h].divStyle);g.style.display=\"none\";g.style.width=a.width+\n\"px\";g.style.height=a.viewheight+\"px\";g.id=a.idPrefix+q[h].name+\"view\";b=l(b);g.innerHTML=b;a.spreadsheetDiv.appendChild(g);q[h].element=g;if(q[h].oncreate)q[h].oncreate(a,q[h])}q.sheet={name:\"sheet\",element:a.editorDiv};a.statuslineDiv=document.createElement(\"div\");TiddlyWiki?a.statuslineDiv.setAttribute(\"class\",\"SocialCalc-statusline\"):(a.statuslineDiv.style.cssText=a.statuslineCSS,a.statuslineDiv.style.height=a.statuslineheight-(a.statuslineDiv.style.paddingTop.slice(0,-2)-0)-(a.statuslineDiv.style.paddingBottom.slice(0,\n-2)-0)+\"px\");a.statuslineDiv.id=a.idPrefix+\"statusline\";a.spreadsheetDiv.appendChild(a.statuslineDiv);TiddlyWiki&&a.spreadsheetDiv.setAttribute(\"tabindex\",\"0\");if(a.spreadsheetDiv.addEventListener)a.spreadsheetDiv.addEventListener(\"mousedown\",function(){SocialCalc.SetSpreadsheetControlObject(a);TiddlyWiki&&(a.tiddlyWiki.saveTodo.flagStart=!0)},!1),a.spreadsheetDiv.addEventListener(\"mouseover\",function(){SocialCalc.SetSpreadsheetControlObject(a)},!1);else if(a.spreadsheetDiv.attachEvent)a.spreadsheetDiv.attachEvent(\"onmousedown\",\nfunction(){SocialCalc.SetSpreadsheetControlObject(a)}),a.spreadsheetDiv.attachEvent(\"onmouseover\",function(){SocialCalc.SetSpreadsheetControlObject(a)});else throw SocialCalc.Constants.s_BrowserNotSupported;};SocialCalc.LocalizeString=function(a){var c=SocialCalc.LocalizeStringList[a];c||(c=SocialCalc.Constants[\"s_loc_\"+a.toLowerCase().replace(/\\s/g,\"_\").replace(/\\W/g,\"X\")]||a,SocialCalc.LocalizeStringList[a]=c);return c};SocialCalc.LocalizeStringList={};\nSocialCalc.LocalizeSubstrings=function(a){var c=SocialCalc.LocalizeString;return a.replace(/%(loc|ssc)!(.*?)!/g,function(a,d,e){return\"ssc\"==d?SocialCalc.Constants[e]||alert(\"Missing constant: \"+e):c(e)})};SocialCalc.GetSpreadsheetControlObject=function(){var a=SocialCalc.CurrentSpreadsheetControlObject;if(a)return a};SocialCalc.SetSpreadsheetControlObject=function(a){SocialCalc.CurrentSpreadsheetControlObject=a;a.keyboard.focusTable&&a&&(a.keyboard.focusTable=a.editor)};\nSocialCalc.DoOnResize=function(a){var c,b=a.views;TiddlyWiki&&(a.keyboard.areListener=!1);if(a.SizeSSDiv()){for(vname in b)c=b[vname].element,c.style.width=a.width+\"px\",c.style.height=a.height-a.nonviewheight+\"px\";a.editor.ResizeTableEditor(a.width,a.height-a.nonviewheight)}};\nSocialCalc.SizeSSDiv=function(a){var c,b=!1,d;c=SocialCalc.GetViewportInfo();d=a.requestedHeight||c.height-(a.requestedSpaceBelow||0);a.height!=d&&(a.height=d,a.spreadsheetDiv.style.height=d+\"px\",b=!0);d=a.requestedWidth||c.width;a.width!=d&&(a.width=d,a.spreadsheetDiv.style.width=d+\"px\",b=!0);a.spreadsheetDiv.style.position=\"relative\";return b};\nSocialCalc.SetTab=function(a){var c,b,d,e,f,g={},l={},h=SocialCalc.GetSpreadsheetControlObject(),m=h.tabs,p=h.views;a=\"string\"==typeof a?a:a.id.slice(h.idPrefix.length,-3);if(h.editor.busy&&(!m[h.currentTab].view||\"sheet\"==m[h.currentTab].view))for(e=0;e<m.length;e++)if(m[e].name==a&&m[e].view&&\"sheet\"!=m[e].view)return;if(h.tabs[h.currentTab].onunclick)h.tabs[h.currentTab].onunclick(h,h.tabs[h.currentTab].name);for(e=0;e<m.length;e++)c=m[e].name,g[c]=document.getElementById(h.idPrefix+c+\"tab\"),l[c]=\ndocument.getElementById(h.idPrefix+c+\"tools\"),c==a?(b=e,l[c].style.display=\"block\",g[c].style.cssText=h.tabselectedCSS):(l[c].style.display=\"none\",g[c].style.cssText=h.tabplainCSS);h.currentTab=b;if(m[b].onclick)m[b].onclick(h,a);for(f in p)!m[b].view&&\"sheet\"==f||m[b].view==f?(p[f].element.style.display=\"block\",d=f):p[f].element.style.display=\"none\";m[b].onclickFocus?(b=m[b].onclickFocus,\"string\"==typeof b&&(b=document.getElementById(h.idPrefix+b),b.focus()),SocialCalc.CmdGotFocus(b)):SocialCalc.KeyboardFocus();\np[d].needsresize&&p[d].onresize&&(p[d].needsresize=!1,p[d].onresize(h,p[d]));\"sheet\"==d?(h.statuslineDiv.style.display=\"block\",h.editor.ScheduleRender()):h.statuslineDiv.style.display=\"none\"};\nSocialCalc.SpreadsheetControlStatuslineCallback=function(a,c,b,d){var e=document.getElementById(d.statuslineid);e&&(e.innerHTML=a.GetStatuslineString(c,b,d));switch(c){case \"cmdendnorender\":case \"calcfinished\":case \"doneposcalc\":c=document.getElementById(d.recalcid1);d=document.getElementById(d.recalcid2);if(!c||!d)break;\"yes\"==a.context.sheetobj.attribs.needsrecalc?(c.style.display=\"inline\",d.style.display=\"inline\"):(c.style.display=\"none\",d.style.display=\"none\")}};\nSocialCalc.UpdateSortRangeProposal=function(a){document.getElementById(SocialCalc.GetSpreadsheetControlObject().idPrefix+\"sortlist\").options[0].text=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom):SocialCalc.LocalizeString(\"[select range]\")};\nSocialCalc.LoadColumnChoosers=function(a){var c=SocialCalc.LocalizeString,b,d,e,f;a.sortrange&&-1==a.sortrange.indexOf(\":\")?(b=SocialCalc.Formula.LookupName(a.sheet,a.sortrange||\"\"),\"range\"==b.type?(b=b.value.match(/^(.*)\\|(.*)\\|$/),b=b[1]+\":\"+b[2]):b=\"A1:A1\"):b=a.sortrange;var g=SocialCalc.ParseRange(b);e=document.getElementById(a.idPrefix+\"majorsort\");f=e.selectedIndex;e.options.length=0;e.options[e.options.length]=new Option(c(\"[None]\"),\"\");for(b=g.cr1.col;b<=g.cr2.col;b++)d=SocialCalc.rcColname(b),\ne.options[e.options.length]=new Option(c(\"Column \")+d,d);e.selectedIndex=1<f&&f<=g.cr2.col-g.cr1.col+1?f:1;e=document.getElementById(a.idPrefix+\"minorsort\");f=e.selectedIndex;e.options.length=0;e.options[e.options.length]=new Option(c(\"[None]\"),\"\");for(b=g.cr1.col;b<=g.cr2.col;b++)d=SocialCalc.rcColname(b),e.options[e.options.length]=new Option(d,d);e.selectedIndex=0<f&&f<=g.cr2.col-g.cr1.col+1?f:0;e=document.getElementById(a.idPrefix+\"lastsort\");f=e.selectedIndex;e.options.length=0;e.options[e.options.length]=\nnew Option(c(\"[None]\"),\"\");for(b=g.cr1.col;b<=g.cr2.col;b++)d=SocialCalc.rcColname(b),e.options[e.options.length]=new Option(d,d);e.selectedIndex=0<f&&f<=g.cr2.col-g.cr1.col+1?f:0};SocialCalc.CmdGotFocus=function(a){SocialCalc.GetSpreadsheetControlObject().keyboard.passThru=a};SocialCalc.DoButtonCmd=function(a,c,b){SocialCalc.DoCmd(b.element,b.functionobj.command)};\nSocialCalc.DoCmd=function(a,c){var b,d,e,f,g,l;f=SocialCalc.GetSpreadsheetControlObject();e=f.editor;switch(c){case \"undo\":f.ExecuteCommand(\"undo\",\"\");break;case \"redo\":f.ExecuteCommand(\"redo\",\"\");break;case \"fill-rowcolstuff\":case \"fill-text\":e=c.substring(5);d=document.getElementById(f.idPrefix+e+\"list\");for(b=d.length=0;b<SocialCalc.SpreadsheetCmdTable[e].length;b++)d.options[b]=new Option(SocialCalc.SpreadsheetCmdTable[e][b].t);c=\"changed-\"+e;case \"changed-rowcolstuff\":case \"changed-text\":e=c.substring(8);\nd=document.getElementById(f.idPrefix+e+\"list\");d=SocialCalc.SpreadsheetCmdTable.slists[SocialCalc.SpreadsheetCmdTable[e][d.selectedIndex].s];f=document.getElementById(f.idPrefix+e+\"slist\");for(b=f.length=0;b<(d.length||0);b++)f.options[b]=new Option(d[b].t,d[b].s);return;case \"ok-rowcolstuff\":case \"ok-text\":e=c.substring(3);d=document.getElementById(f.idPrefix+e+\"list\");f=document.getElementById(f.idPrefix+e+\"slist\");b=SocialCalc.SpreadsheetCmdTable[e][d.selectedIndex].c;d=f[f.selectedIndex].value;\nSocialCalc.SpreadsheetControlExecuteCommand(a,b,d);break;case \"ok-setsort\":b=document.getElementById(f.idPrefix+\"sortlist\");f.sortrange=0==b.selectedIndex?e.range.hasrange?SocialCalc.crToCoord(e.range.left,e.range.top)+\":\"+SocialCalc.crToCoord(e.range.right,e.range.bottom):e.ecell.coord+\":\"+e.ecell.coord:b.options[b.selectedIndex].value;d=document.getElementById(f.idPrefix+\"sortbutton\");d.value=SocialCalc.LocalizeString(\"Sort \")+f.sortrange;d.style.visibility=\"visible\";SocialCalc.LoadColumnChoosers(f);\na&&a.blur&&a.blur();SocialCalc.KeyboardFocus();return;case \"dosort\":if(f.sortrange&&-1==f.sortrange.indexOf(\":\")){e=SocialCalc.Formula.LookupName(f.sheet,f.sortrange||\"\");if(\"range\"!=e.type)return;e=e.value.match(/^(.*)\\|(.*)\\|$/);e=e[1]+\":\"+e[2]}else e=f.sortrange;if(\"A1:A1\"==e)return;b=\"sort \"+e+\" \";e=document.getElementById(f.idPrefix+\"majorsort\");d=document.getElementById(f.idPrefix+\"majorsortup\");b+=e.options[e.selectedIndex].value+(d.checked?\" up\":\" down\");e=document.getElementById(f.idPrefix+\n\"minorsort\");0<e.selectedIndex&&(d=document.getElementById(f.idPrefix+\"minorsortup\"),b+=\" \"+e.options[e.selectedIndex].value+(d.checked?\" up\":\" down\"));e=document.getElementById(f.idPrefix+\"lastsort\");0<e.selectedIndex&&(d=document.getElementById(f.idPrefix+\"lastsortup\"),b+=\" \"+e.options[e.selectedIndex].value+(d.checked?\" up\":\" down\"));f.ExecuteCommand(b,\"\");break;case \"merge\":b=SocialCalc.SpreadsheetCmdLookup[c]||\"\";d=SocialCalc.SpreadsheetCmdSLookup[c]||\"\";f.ExecuteCommand(b,d);e.range.hasrange&&\n(e.MoveECell(SocialCalc.crToCoord(e.range.left,e.range.top)),e.RangeRemove());break;case \"movefrom\":e.range2.hasrange?(f.context.cursorsuffix=\"\",e.Range2Remove(),f.ExecuteCommand(\"redisplay\",\"\")):e.range.hasrange?(e.range2.top=e.range.top,e.range2.right=e.range.right,e.range2.bottom=e.range.bottom,e.range2.left=e.range.left,e.range2.hasrange=!0,e.MoveECell(SocialCalc.crToCoord(e.range.left,e.range.top))):(e.range2.top=e.ecell.row,e.range2.right=e.ecell.col,e.range2.bottom=e.ecell.row,e.range2.left=\ne.ecell.col,e.range2.hasrange=!0);b=e.range2.hasrange?\"\":\"off\";d=document.getElementById(f.idPrefix+\"button_movefrom\");d.src=f.imagePrefix+\"movefrom\"+b+\".gif\";d=document.getElementById(f.idPrefix+\"button_movepaste\");d.src=f.imagePrefix+\"movepaste\"+b+\".gif\";d=document.getElementById(f.idPrefix+\"button_moveinsert\");d.src=f.imagePrefix+\"moveinsert\"+b+\".gif\";e.range2.hasrange&&e.RangeRemove();break;case \"movepaste\":case \"moveinsert\":e.range2.hasrange&&(f.context.cursorsuffix=\"\",b=c+\" \"+SocialCalc.crToCoord(e.range2.left,\ne.range2.top)+\":\"+SocialCalc.crToCoord(e.range2.right,e.range2.bottom)+\" \"+e.ecell.coord,f.ExecuteCommand(b,\"\"),e.Range2Remove(),d=document.getElementById(f.idPrefix+\"button_movefrom\"),d.src=f.imagePrefix+\"movefromoff.gif\",d=document.getElementById(f.idPrefix+\"button_movepaste\"),d.src=f.imagePrefix+\"movepasteoff.gif\",d=document.getElementById(f.idPrefix+\"button_moveinsert\"),d.src=f.imagePrefix+\"moveinsertoff.gif\");break;case \"swapcolors\":b=f.sheet;g=b.GetAssuredCell(e.ecell.coord);d=b.attribs.defaultcolor?\nb.colors[b.attribs.defaultcolor]:\"rgb(0,0,0)\";l=b.attribs.defaultbgcolor?b.colors[b.attribs.defaultbgcolor]:\"rgb(255,255,255)\";e=g.color?b.colors[g.color]:d;e==l&&(e=\"\");b=g.bgcolor?b.colors[g.bgcolor]:l;b==d&&(b=\"\");f.ExecuteCommand(\"set %C color \"+b+\"%Nset %C bgcolor \"+e,\"\");break;default:b=SocialCalc.SpreadsheetCmdLookup[c]||\"\",d=SocialCalc.SpreadsheetCmdSLookup[c]||\"\",f.ExecuteCommand(b,d)}a&&a.blur&&a.blur();SocialCalc.KeyboardFocus()};\nSocialCalc.SpreadsheetCmdLookup={copy:\"copy %C all\",cut:\"cut %C all\",paste:\"paste %C all\",pasteformats:\"paste %C formats\",lock:\"set %C readonly yes\",unlock:\"set %C readonly no\",\"delete\":\"erase %C formulas\",filldown:\"filldown %C all\",fillright:\"fillright %C all\",erase:\"erase %C all\",borderon:\"set %C bt %S%Nset %C br %S%Nset %C bb %S%Nset %C bl %S\",borderoff:\"set %C bt %S%Nset %C br %S%Nset %C bb %S%Nset %C bl %S\",merge:\"merge %C\",unmerge:\"unmerge %C\",\"align-left\":\"set %C cellformat left\",\"align-center\":\"set %C cellformat center\",\n\"align-right\":\"set %C cellformat right\",\"align-default\":\"set %C cellformat\",insertrow:\"insertrow %C\",insertcol:\"insertcol %C\",deleterow:\"deleterow %C\",deletecol:\"deletecol %C\",hiderow:\"set %H hide yes\",hidecol:\"set %W hide yes\",undo:\"undo\",redo:\"redo\",recalc:\"recalc\"};SocialCalc.SpreadsheetCmdSLookup={borderon:\"1px solid rgb(0,0,0)\",borderoff:\"\"};\nSocialCalc.SpreadsheetControlExecuteCommand=function(a,c,b){a=SocialCalc.GetSpreadsheetControlObject().editor;var d,e,f,g;a.range.hasrange?(e=d=SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom),f=SocialCalc.rcColname(a.range.left)+\":\"+SocialCalc.rcColname(a.range.right),g=a.range.top+\":\"+a.range.bottom):(e=a.ecell.coord,d=a.ecell.coord+\":\"+a.ecell.coord,f=SocialCalc.rcColname(SocialCalc.coordToCr(a.ecell.coord).col),g=SocialCalc.coordToCr(a.ecell.coord).row);\nc=c.replace(/%C/g,e);c=c.replace(/%R/g,d);c=c.replace(/%N/g,\"\\n\");c=c.replace(/%S/g,b);c=c.replace(/%W/g,f);c=c.replace(/%H/g,g);c=c.replace(/%P/g,\"%\");a.EditorScheduleSheetCommands(c,!0,!1)};SocialCalc.SpreadsheetControlCreateSheetHTML=function(a){var c,b;c=\"\";c=new SocialCalc.RenderContext(a.sheet);a=document.createElement(\"div\");b=c.RenderSheet(null,{type:\"html\"});a.appendChild(b);delete c;c=a.innerHTML;delete b;delete a;return c};\nSocialCalc.SpreadsheetControlCreateCellHTML=function(a,c,b){var d=\"\",d=a.sheet.cells[c];if(!d)return\"\";d=void 0==d.displaystring?SocialCalc.FormatValueForDisplay(a.sheet,d.datavalue,c,b||a.context.defaultHTMLlinkstyle):d.displaystring;\" \"==d&&(d=\"\");return d};\nSocialCalc.SpreadsheetControlCreateCellHTMLSave=function(a,c,b){var d,e,f,g,l,h=[];d=c?SocialCalc.ParseRange(c):{cr1:{row:1,col:1},cr2:{row:a.sheet.attribs.lastrow,col:a.sheet.attribs.lastcol}};c=d.cr1;d=d.cr2;h.push(\"version:1.0\");for(e=c.row;e<=d.row;e++)for(f=c.col;f<=d.col;f++)if(g=SocialCalc.crToCoord(f,e),l=a.sheet.cells[g])l=void 0==l.displaystring?SocialCalc.FormatValueForDisplay(a.sheet,l.datavalue,g,b||a.context.defaultHTMLlinkstyle):l.displaystring,\" \"!=l&&h.push(g+\":\"+SocialCalc.encodeForSave(l));\nh.push(\"\");return h.join(\"\\n\")};\nSocialCalc.SpreadsheetControl.DoFunctionList=function(){var a,c,b=SocialCalc.Formula,d=SocialCalc.Constants.function_classlist,e=SocialCalc.GetSpreadsheetControlObject(),f=e.idPrefix+\"function\";c=document.getElementById(f+\"dialog\");if(!c){b.FillFunctionInfo();c='<table><tr><td><span style=\"font-size:x-small;font-weight:bold\">%loc!Category!</span><br><select id=\"'+f+'class\" size=\"'+d.length+'\" style=\"width:120px;\" onchange=\"SocialCalc.SpreadsheetControl.FunctionClassChosen(this.options[this.selectedIndex].value);\">';for(a=\n0;a<d.length;a++)c+='<option value=\"'+d[a]+'\"'+(0==a?\" selected>\":\">\")+SocialCalc.special_chars(b.FunctionClasses[d[a]].name)+\"</option>\";c+='</select></td><td> </td><td id=\"'+f+'list\"><span style=\"font-size:x-small;font-weight:bold\">%loc!Functions!</span><br><select id=\"'+f+'name\" size=\"'+d.length+'\" style=\"width:240px;\" onchange=\"SocialCalc.SpreadsheetControl.FunctionChosen(this.options[this.selectedIndex].value);\" ondblclick=\"SocialCalc.SpreadsheetControl.DoFunctionPaste();\">';c+=SocialCalc.SpreadsheetControl.GetFunctionNamesStr(\"all\");\nc+='</td></tr><tr><td colspan=\"3\"><div id=\"'+f+'desc\" style=\"width:380px;height:80px;overflow:auto;font-size:x-small;\">'+SocialCalc.SpreadsheetControl.GetFunctionInfoStr(b.FunctionClasses[d[0]].items[0])+'</div><div style=\"width:380px;text-align:right;padding-top:6px;font-size:small;\"><input type=\"button\" value=\"%loc!Paste!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.DoFunctionPaste();\"> <input type=\"button\" value=\"%loc!Cancel!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.HideFunctions();\"></div></td></tr></table>';\nb=document.createElement(\"div\");b.id=f+\"dialog\";b.style.position=\"absolute\";d=SocialCalc.GetViewportInfo();a=SocialCalc.GetElementPositionWithScroll(e.spreadsheetDiv);b.style.top=d.height/3-a.top+\"px\";b.style.left=d.width/3-a.left+\"px\";b.style.zIndex=100;b.style.backgroundColor=\"#FFF\";b.style.border=\"1px solid black\";b.style.width=\"400px\";c=SocialCalc.LocalizeSubstrings('<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom:1px solid black;\"><tr><td style=\"font-size:10px;cursor:default;width:100%;background-color:#999;color:#FFF;\"> %loc!Function List!</td><td style=\"font-size:10px;cursor:default;color:#666;\" onclick=\"SocialCalc.SpreadsheetControl.HideFunctions();\"> X </td></tr></table><div class=\"SocialCalc-functiondialogbody\" style=\"background-color:#DDD;\">'+\nc+\"</div>\");b.innerHTML=c;SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b},e.spreadsheetDiv);e.spreadsheetDiv.appendChild(b);c=document.getElementById(f+\"name\");c.focus();SocialCalc.CmdGotFocus(c)}};\nSocialCalc.SpreadsheetControl.GetFunctionNamesStr=function(a){var c,b=\"\";c=SocialCalc.Formula.FunctionClasses[a];for(a=0;a<c.items.length;a++)b+='<option value=\"'+c.items[a]+'\"'+(0==a?\" selected>\":\">\")+c.items[a]+\"</option>\";return b};SocialCalc.SpreadsheetControl.FillFunctionNames=function(a,c){var b,d;b=SocialCalc.Formula;c.length=0;d=b.FunctionClasses[a];for(b=0;b<d.items.length;b++)c.options[b]=new Option(d.items[b],d.items[b]),0==b&&(c.options[b].selected=!0)};\nSocialCalc.SpreadsheetControl.GetFunctionInfoStr=function(a){var c=SocialCalc.Formula,b=c.FunctionList[a],d=SocialCalc.special_chars;a=\"<b>\"+a+\"(\"+d(c.FunctionArgString(a))+\")</b><br>\";return a+=d(b[3])};SocialCalc.SpreadsheetControl.FunctionClassChosen=function(a){var c=SocialCalc.GetSpreadsheetControlObject().idPrefix+\"function\",b=SocialCalc.Formula;SocialCalc.SpreadsheetControl.FillFunctionNames(a,document.getElementById(c+\"name\"));SocialCalc.SpreadsheetControl.FunctionChosen(b.FunctionClasses[a].items[0])};\nSocialCalc.SpreadsheetControl.FunctionChosen=function(a){var c=SocialCalc.GetSpreadsheetControlObject().idPrefix+\"function\";document.getElementById(c+\"desc\").innerHTML=SocialCalc.SpreadsheetControl.GetFunctionInfoStr(a)};SocialCalc.SpreadsheetControl.HideFunctions=function(){var a=SocialCalc.GetSpreadsheetControlObject(),a=document.getElementById(a.idPrefix+\"functiondialog\");a.innerHTML=\"\";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a)};\nSocialCalc.SpreadsheetControl.DoFunctionPaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=document.getElementById(a.idPrefix+\"functionname\"),a=document.getElementById(a.idPrefix+\"multilinetextarea\"),b=b.value+\"(\";SocialCalc.SpreadsheetControl.HideFunctions();a?(a.value+=b,a.focus(),SocialCalc.CmdGotFocus(a)):c.EditorAddToInput(b,\"=\")};\nSocialCalc.SpreadsheetControl.DoMultiline=function(){var a=SocialCalc.LocalizeSubstrings,c,b,d=SocialCalc.GetSpreadsheetControlObject(),e=d.editor,f=e.workingvalues,d=SocialCalc.GetSpreadsheetControlObject(),g=d.idPrefix+\"multiline\";c=document.getElementById(g+\"dialog\");if(!c){switch(e.state){case \"start\":f.ecoord=e.ecell.coord;f.erow=e.ecell.row;f.ecol=e.ecell.col;e.RangeRemove();b=SocialCalc.GetCellContents(e.context.sheetobj,f.ecoord);break;case \"input\":case \"inputboxdirect\":b=e.inputBox.GetText()}e.inputBox.element.disabled=\n!0;b=SocialCalc.special_chars(b);c='<textarea id=\"'+g+'textarea\" style=\"width:380px;height:120px;margin:10px 0px 0px 6px;\">'+b+'</textarea><div style=\"width:380px;text-align:right;padding:6px 0px 4px 6px;font-size:small;\">'+a('<input type=\"button\" value=\"%loc!Set Cell Contents!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.DoMultilinePaste();\"> <input type=\"button\" value=\"%loc!Clear!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.DoMultilineClear();\"> <input type=\"button\" value=\"%loc!Cancel!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.HideMultiline();\"></div></div>');\nb=document.createElement(\"div\");b.id=g+\"dialog\";b.style.position=\"absolute\";e=SocialCalc.GetViewportInfo();f=SocialCalc.GetElementPositionWithScroll(d.spreadsheetDiv);b.style.top=e.height/3-f.top+\"px\";b.style.left=e.width/3-f.left+\"px\";b.style.zIndex=100;b.style.backgroundColor=\"#FFF\";b.style.border=\"1px solid black\";b.style.width=\"400px\";b.innerHTML='<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom:1px solid black;\"><tr><td style=\"font-size:10px;cursor:default;width:100%;background-color:#999;color:#FFF;\">'+\na(\" %loc!Multi-line Input Box!\")+'</td><td style=\"font-size:10px;cursor:default;color:#666;\" onclick=\"SocialCalc.SpreadsheetControl.HideMultiline();\"> X </td></tr></table><div style=\"background-color:#DDD;\">'+c+\"</div>\";SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b},d.spreadsheetDiv);d.spreadsheetDiv.appendChild(b);\nc=document.getElementById(g+\"textarea\");c.focus();SocialCalc.CmdGotFocus(c)}};SocialCalc.SpreadsheetControl.HideMultiline=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,a=document.getElementById(a.idPrefix+\"multilinedialog\");a.innerHTML=\"\";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a);switch(c.state){case \"start\":c.inputBox.DisplayCellContents(null);break;case \"input\":case \"inputboxdirect\":c.inputBox.element.disabled=!1,c.inputBox.Focus()}};\nSocialCalc.SpreadsheetControl.DoMultilineClear=function(){var a=SocialCalc.GetSpreadsheetControlObject(),a=document.getElementById(a.idPrefix+\"multilinetextarea\");a.value=\"\";a.focus()};\nSocialCalc.SpreadsheetControl.DoMultilinePaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=c.workingvalues,a=document.getElementById(a.idPrefix+\"multilinetextarea\").value;SocialCalc.SpreadsheetControl.HideMultiline();switch(c.state){case \"start\":b.partialexpr=\"\";b.ecoord=c.ecell.coord;b.erow=c.ecell.row;b.ecol=c.ecell.col;break;case \"input\":case \"inputboxdirect\":c.inputBox.Blur(),c.inputBox.ShowInputBox(!1),c.state=\"start\"}c.EditorSaveEdit(a)};\nSocialCalc.SpreadsheetControl.DoLink=function(){var a=SocialCalc.LocalizeString,c,b,d,e,f=SocialCalc.GetSpreadsheetControlObject();d=f.editor;e=d.workingvalues;var f=SocialCalc.GetSpreadsheetControlObject(),g=f.idPrefix+\"link\";b=document.getElementById(g+\"dialog\");if(!b){switch(d.state){case \"start\":e.ecoord=d.ecell.coord;e.erow=d.ecell.row;e.ecol=d.ecell.col;d.RangeRemove();c=SocialCalc.GetCellContents(d.context.sheetobj,e.ecoord);break;case \"input\":case \"inputboxdirect\":c=d.inputBox.GetText()}d.inputBox.element.disabled=\n!0;\"'\"==c.charAt(0)&&(c=c.slice(1));b=SocialCalc.ParseCellLinkText(c);SocialCalc.special_chars(c);d=(c=f.sheet.cells[d.ecell.coord])&&c.textvalueformat?\"\":\" checked\";e=b.newwin?\" checked\":\"\";c='<div style=\"padding:6px 0px 4px 6px;\"><span style=\"font-size:smaller;\">'+a(\"Description\")+'</span><br><input type=\"text\" id=\"'+g+'desc\" style=\"width:380px;\" value=\"'+SocialCalc.special_chars(b.desc)+'\"><br><span style=\"font-size:smaller;\">'+a(\"URL\")+'</span><br><input type=\"text\" id=\"'+g+'url\" style=\"width:380px;\" value=\"'+\nSocialCalc.special_chars(b.url)+'\"><br>';SocialCalc.Callbacks.MakePageLink&&(c+='<span style=\"font-size:smaller;\">'+a(\"Page Name\")+'</span><br><input type=\"text\" id=\"'+g+'pagename\" style=\"width:380px;\" value=\"'+SocialCalc.special_chars(b.pagename)+'\"><br><span style=\"font-size:smaller;\">'+a(\"Workspace\")+'</span><br><input type=\"text\" id=\"'+g+'workspace\" style=\"width:380px;\" value=\"'+SocialCalc.special_chars(b.workspace)+'\"><br>');c+=SocialCalc.LocalizeSubstrings('<input type=\"checkbox\" id=\"'+g+'format\"'+\nd+'> <span style=\"font-size:smaller;\">%loc!Set to Link format!</span><br><input type=\"checkbox\" id=\"'+g+'popup\"'+e+'> <span style=\"font-size:smaller;\">%loc!Show in new browser window!</span></div><div style=\"width:380px;text-align:right;padding:6px 0px 4px 6px;font-size:small;\"><input type=\"button\" value=\"%loc!Set Cell Contents!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.DoLinkPaste();\"> <input type=\"button\" value=\"%loc!Clear!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.DoLinkClear();\"> <input type=\"button\" value=\"%loc!Cancel!\" style=\"font-size:smaller;\" onclick=\"SocialCalc.SpreadsheetControl.HideLink();\"></div></div>');\nb=document.createElement(\"div\");b.id=g+\"dialog\";b.style.position=\"absolute\";d=SocialCalc.GetViewportInfo();e=SocialCalc.GetElementPositionWithScroll(f.spreadsheetDiv);b.style.top=d.height/3-e.top+\"px\";b.style.left=d.width/3-e.left+\"px\";b.style.zIndex=100;b.style.backgroundColor=\"#FFF\";b.style.border=\"1px solid black\";b.style.width=\"400px\";b.innerHTML='<table cellspacing=\"0\" cellpadding=\"0\" style=\"border-bottom:1px solid black;\"><tr><td style=\"font-size:10px;cursor:default;width:100%;background-color:#999;color:#FFF;\"> '+\na(\"Link Input Box\")+'</td><td style=\"font-size:10px;cursor:default;color:#666;\" onclick=\"SocialCalc.SpreadsheetControl.HideLink();\"> X </td></tr></table><div style=\"background-color:#DDD;\">'+c+\"</div>\";SocialCalc.DragRegister(b.firstChild.firstChild.firstChild.firstChild,!0,!0,{MouseDown:SocialCalc.DragFunctionStart,MouseMove:SocialCalc.DragFunctionPosition,MouseUp:SocialCalc.DragFunctionPosition,Disabled:null,positionobj:b},f.spreadsheetDiv);f.spreadsheetDiv.appendChild(b);b=document.getElementById(g+\n\"url\");b.focus();SocialCalc.CmdGotFocus(b)}};SocialCalc.SpreadsheetControl.HideLink=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,a=document.getElementById(a.idPrefix+\"linkdialog\");a.innerHTML=\"\";SocialCalc.DragUnregister(a);SocialCalc.KeyboardFocus();a.parentNode&&a.parentNode.removeChild(a);switch(c.state){case \"start\":c.inputBox.DisplayCellContents(null);break;case \"input\":case \"inputboxdirect\":c.inputBox.element.disabled=!1,c.inputBox.Focus()}};\nSocialCalc.SpreadsheetControl.DoLinkClear=function(){var a=SocialCalc.GetSpreadsheetControlObject();document.getElementById(a.idPrefix+\"linkdesc\").value=\"\";document.getElementById(a.idPrefix+\"linkpagename\").value=\"\";document.getElementById(a.idPrefix+\"linkworkspace\").value=\"\";a=document.getElementById(a.idPrefix+\"linkurl\");a.value=\"\";a.focus()};\nSocialCalc.SpreadsheetControl.DoLinkPaste=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=a.editor,b=c.workingvalues,d=document.getElementById(a.idPrefix+\"linkdesc\"),e=document.getElementById(a.idPrefix+\"linkurl\"),f=document.getElementById(a.idPrefix+\"linkpagename\"),g=document.getElementById(a.idPrefix+\"linkworkspace\"),l=document.getElementById(a.idPrefix+\"linkformat\"),h=\"\",m,p;document.getElementById(a.idPrefix+\"linkpopup\").checked?(a=\"<<\",h=\">>\",m=\"[[\",p=\"]]\"):(a=\"<\",h=\">\",m=\"[\",p=\"]\");\nh=f&&f.value?g.value?d.value+\"{\"+g.value+m+f.value+p+\"}\":d.value+m+f.value+p:d.value+a+e.value+h;SocialCalc.SpreadsheetControl.HideLink();switch(c.state){case \"start\":b.partialexpr=\"\";b.ecoord=c.ecell.coord;b.erow=c.ecell.row;b.ecol=c.ecell.col;break;case \"input\":case \"inputboxdirect\":c.inputBox.Blur(),c.inputBox.ShowInputBox(!1),c.state=\"start\"}l.checked&&SocialCalc.SpreadsheetControlExecuteCommand(null,\"set %C textvalueformat text-link\",\"\");c.EditorSaveEdit(h)};\nSocialCalc.SpreadsheetControl.DoSum=function(){var a,c,b,d,e=SocialCalc.GetSpreadsheetControlObject().editor,f=e.context.sheetobj;if(e.range.hasrange)a=SocialCalc.crToCoord(e.range.left,e.range.top)+\":\"+SocialCalc.crToCoord(e.range.right,e.range.bottom),a=\"set \"+SocialCalc.crToCoord(e.range.right,e.range.bottom+1)+\" formula sum(\"+a+\")\";else if(a=e.ecell.row-1,b=e.ecell.col,1>=a)a=\"set \"+e.ecell.coord+\" constant e#REF! 0 #REF!\";else{for(d=!1;0<a;){c=SocialCalc.crToCoord(b,a);c=f.GetAssuredCell(c);\nif(c.datatype&&\"t\"!=c.datatype)d=!0;else if(d){a++;break}a--}a=\"set \"+e.ecell.coord+\" formula sum(\"+SocialCalc.crToCoord(b,a)+\":\"+SocialCalc.crToCoord(b,e.ecell.row-1)+\")\"}e.EditorScheduleSheetCommands(a,!0,!1)};\nSocialCalc.SpreadsheetControlSortOnclick=function(a,c){var b,d,e=[],f=document.getElementById(a.idPrefix+\"sortlist\");SocialCalc.LoadColumnChoosers(a);a.editor.RangeChangeCallback.sort=SocialCalc.UpdateSortRangeProposal;for(b in a.sheet.names)e.push(b);e.sort();f.length=0;f.options[0]=new Option(SocialCalc.LocalizeString(\"[select range]\"));for(d=0;d<e.length;d++)b=e[d],f.options[d+1]=new Option(b,b),b==a.sortrange&&(f.options[d+1].selected=!0);\"\"==a.sortrange&&(f.options[0].selected=!0);SocialCalc.UpdateSortRangeProposal(a.editor);\nSocialCalc.KeyboardFocus()};\nSocialCalc.SpreadsheetControlSortSave=function(a,c){var b=SocialCalc.GetSpreadsheetControlObject(),d,e,f;d=\"sort:\"+SocialCalc.encodeForSave(b.sortrange)+\":\";e=document.getElementById(b.idPrefix+\"majorsort\");f=document.getElementById(b.idPrefix+\"majorsortup\");d+=e.selectedIndex+(f.checked?\":up\":\":down\");e=document.getElementById(b.idPrefix+\"minorsort\");0<e.selectedIndex?(f=document.getElementById(b.idPrefix+\"minorsortup\"),d+=\":\"+e.selectedIndex+(f.checked?\":up\":\":down\")):d+=\"::\";e=document.getElementById(b.idPrefix+\n\"lastsort\");0<e.selectedIndex?(f=document.getElementById(b.idPrefix+\"lastsortup\"),d+=\":\"+e.selectedIndex+(f.checked?\":up\":\":down\")):d+=\"::\";return d+\"\\n\"};\nSocialCalc.SpreadsheetControlSortLoad=function(a,c,b,d){a=SocialCalc.GetSpreadsheetControlObject();b=b.split(\":\");a.sortrange=SocialCalc.decodeFromSave(b[1]);c=document.getElementById(a.idPrefix+\"sortbutton\");a.sortrange?(c.value=SocialCalc.LocalizeString(\"Sort \")+a.sortrange,c.style.visibility=\"visible\"):c.style.visibility=\"hidden\";SocialCalc.LoadColumnChoosers(a);sele=document.getElementById(a.idPrefix+\"majorsort\");sele.selectedIndex=b[2]-0;document.getElementById(a.idPrefix+\"majorsort\"+b[3]).checked=\n!0;sele=document.getElementById(a.idPrefix+\"minorsort\");b[4]?(sele.selectedIndex=b[4]-0,document.getElementById(a.idPrefix+\"minorsort\"+b[5]).checked=!0):(sele.selectedIndex=0,document.getElementById(a.idPrefix+\"minorsortup\").checked=!0);sele=document.getElementById(a.idPrefix+\"lastsort\");b[6]?(sele.selectedIndex=b[6]-0,document.getElementById(a.idPrefix+\"lastsort\"+b[7]).checked=!0):(sele.selectedIndex=0,document.getElementById(a.idPrefix+\"lastsortup\").checked=!0);return!0};\nSocialCalc.SpreadsheetControlCommentOnclick=function(a,c){a.editor.MoveECellCallback.comment=SocialCalc.SpreadsheetControlCommentMoveECell;SocialCalc.SpreadsheetControlCommentDisplay(a,c);SocialCalc.KeyboardFocus()};SocialCalc.SpreadsheetControlCommentDisplay=function(a,c){var b=\"\";a.editor.ecell&&a.editor.ecell.coord&&a.sheet.cells[a.editor.ecell.coord]&&(b=a.sheet.cells[a.editor.ecell.coord].comment||\"\");document.getElementById(a.idPrefix+\"commenttext\").value=b};\nSocialCalc.SpreadsheetControlCommentMoveECell=function(a){SocialCalc.SpreadsheetControlCommentDisplay(SocialCalc.GetSpreadsheetControlObject(),\"comment\")};\nSocialCalc.SpreadsheetControlCommentSet=function(){var a=SocialCalc.GetSpreadsheetControlObject();a.ExecuteCommand(\"set %C comment \"+SocialCalc.encodeForSave(document.getElementById(a.idPrefix+\"commenttext\").value));var c=SocialCalc.GetEditorCellElement(a.editor,a.editor.ecell.row,a.editor.ecell.col);a.editor.ECellReadonly()||(c.element.title=document.getElementById(a.idPrefix+\"commenttext\").value,a.editor.UpdateCellCSS(c,a.editor.ecell.row,a.editor.ecell.col));SocialCalc.KeyboardFocus()};\nSocialCalc.SpreadsheetControlCommentOnunclick=function(a,c){delete a.editor.MoveECellCallback.comment};\nSocialCalc.SpreadsheetControlNamesOnclick=function(a,c){document.getElementById(a.idPrefix+\"namesname\").value=\"\";document.getElementById(a.idPrefix+\"namesdesc\").value=\"\";document.getElementById(a.idPrefix+\"namesvalue\").value=\"\";a.editor.RangeChangeCallback.names=SocialCalc.SpreadsheetControlNamesRangeChange;a.editor.MoveECellCallback.names=SocialCalc.SpreadsheetControlNamesRangeChange;SocialCalc.SpreadsheetControlNamesRangeChange(a.editor);SocialCalc.SpreadsheetControlNamesFillNameList();SocialCalc.SpreadsheetControlNamesChangedName()};\nSocialCalc.SpreadsheetControlNamesFillNameList=function(){var a=SocialCalc.LocalizeString,c,b=[],d=SocialCalc.GetSpreadsheetControlObject(),e=document.getElementById(d.idPrefix+\"nameslist\"),f=document.getElementById(d.idPrefix+\"namesname\").value.toUpperCase().replace(/[^A-Z0-9_\\.]/g,\"\");for(c in d.sheet.names)b.push(c);b.sort();e.length=0;e.options[0]=0<b.length?new Option(a(\"[New]\")):new Option(a(\"[None]\"));for(a=0;a<b.length;a++)c=b[a],e.options[a+1]=new Option(c,c),c==f&&(e.options[a+1].selected=\n!0);\"\"==f&&(e.options[0].selected=!0)};\nSocialCalc.SpreadsheetControlNamesChangedName=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+\"nameslist\"),c=c.options[c.selectedIndex].value;a.sheet.names[c]?(document.getElementById(a.idPrefix+\"namesname\").value=c,document.getElementById(a.idPrefix+\"namesdesc\").value=a.sheet.names[c].desc||\"\",document.getElementById(a.idPrefix+\"namesvalue\").value=a.sheet.names[c].definition||\"\"):(document.getElementById(a.idPrefix+\"namesname\").value=\"\",document.getElementById(a.idPrefix+\n\"namesdesc\").value=\"\",document.getElementById(a.idPrefix+\"namesvalue\").value=\"\")};SocialCalc.SpreadsheetControlNamesRangeChange=function(a){var c=SocialCalc.GetSpreadsheetControlObject();document.getElementById(c.idPrefix+\"namesrangeproposal\").value=a.range.hasrange?SocialCalc.crToCoord(a.range.left,a.range.top)+\":\"+SocialCalc.crToCoord(a.range.right,a.range.bottom):a.ecell.coord};SocialCalc.SpreadsheetControlNamesOnunclick=function(a,c){delete a.editor.RangeChangeCallback.names;delete a.editor.MoveECellCallback.names};\nSocialCalc.SpreadsheetControlNamesSetValue=function(){var a=SocialCalc.GetSpreadsheetControlObject();document.getElementById(a.idPrefix+\"namesvalue\").value=document.getElementById(a.idPrefix+\"namesrangeproposal\").value;SocialCalc.KeyboardFocus()};\nSocialCalc.SpreadsheetControlNamesSave=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+\"namesname\").value;SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus();\"\"!=c&&a.ExecuteCommand(\"name define \"+c+\" \"+document.getElementById(a.idPrefix+\"namesvalue\").value+\"\\nname desc \"+c+\" \"+document.getElementById(a.idPrefix+\"namesdesc\").value)};\nSocialCalc.SpreadsheetControlNamesDelete=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+\"namesname\").value;SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus();\"\"!=c&&a.ExecuteCommand(\"name delete \"+c);SocialCalc.KeyboardFocus()};\nSocialCalc.SpreadsheetControlClipboardOnclick=function(a,c){a=SocialCalc.GetSpreadsheetControlObject();TiddlyWiki&&a.tiddlyWiki.clickImportExportUI(a);clipele=document.getElementById(a.idPrefix+\"clipboardtext\");document.getElementById(a.idPrefix+\"clipboardformat-tab\").checked=!0;clipele.value=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,\"tab\")};\nSocialCalc.SpreadsheetControlClipboardFormat=function(a){var c=SocialCalc.GetSpreadsheetControlObject();clipele=document.getElementById(c.idPrefix+\"clipboardtext\");clipele.value=SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard,a)};\nSocialCalc.SpreadsheetControlClipboardLoad=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=\"tab\";SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus();document.getElementById(a.idPrefix+\"clipboardformat-csv\").checked?c=\"csv\":document.getElementById(a.idPrefix+\"clipboardformat-scsave\").checked&&(c=\"scsave\");a.editor.EditorScheduleSheetCommands(\"loadclipboard \"+SocialCalc.encodeForSave(SocialCalc.ConvertOtherFormatToSave(document.getElementById(a.idPrefix+\"clipboardtext\").value,c)),\n!0,!1)};SocialCalc.SpreadsheetControlClipboardClear=function(){var a=SocialCalc.GetSpreadsheetControlObject(),c=document.getElementById(a.idPrefix+\"clipboardtext\");c.value=\"\";a.editor.EditorScheduleSheetCommands(\"clearclipboard\",!0,!1);c.focus()};SocialCalc.SpreadsheetControlClipboardExport=function(){var a=SocialCalc.GetSpreadsheetControlObject();a.ExportCallback&&a.ExportCallback(a);SocialCalc.SetTab(a.tabs[0].name);SocialCalc.KeyboardFocus()};\nSocialCalc.SpreadsheetControlSettingsSwitch=function(a){SocialCalc.SettingControlReset();var c=SocialCalc.GetSpreadsheetControlObject(),b=document.getElementById(c.idPrefix+\"sheetsettingstable\"),d=document.getElementById(c.idPrefix+\"cellsettingstable\"),e=document.getElementById(c.idPrefix+\"sheetsettingstoolbar\"),f=document.getElementById(c.idPrefix+\"cellsettingstoolbar\");\"sheet\"==a?(b.style.display=\"block\",d.style.display=\"none\",e.style.display=\"block\",f.style.display=\"none\",SocialCalc.SettingsControlSetCurrentPanel(c.views.settings.values.sheetspanel)):\n(b.style.display=\"none\",d.style.display=\"block\",e.style.display=\"none\",f.style.display=\"block\",SocialCalc.SettingsControlSetCurrentPanel(c.views.settings.values.cellspanel))};\nSocialCalc.SettingsControlSave=function(a){var c,b,d=SocialCalc.GetSpreadsheetControlObject(),e=SocialCalc.SettingsControlUnloadPanel(SocialCalc.SettingsControls.CurrentPanel);SocialCalc.SetTab(d.tabs[0].name);SocialCalc.KeyboardFocus();\"sheet\"==a?b=d.sheet.DecodeSheetAttributes(e):\"cell\"==a&&(d.editor.range.hasrange&&(c=SocialCalc.crToCoord(d.editor.range.left,d.editor.range.top)+\":\"+SocialCalc.crToCoord(d.editor.range.right,d.editor.range.bottom)),b=d.sheet.DecodeCellAttributes(d.editor.ecell.coord,\ne,c));b&&d.editor.EditorScheduleSheetCommands(b,!0,!1)};\nSocialCalc.SpreadsheetControlCreateSpreadsheetSave=function(a,c){var b=\"\",d=\"\",e,f;if(c)for(e in c)f=\"\\n\"!=c[e].charAt(c[e]-1)?\"\\n\":\"\",b+=\"--\"+a.multipartBoundary+\"\\nContent-type: text/plain; charset=UTF-8\\n\\n\"+c[e]+f,d+=\"part:\"+e+\"\\n\";return\"socialcalc:version:1.0\\nMIME-Version: 1.0\\nContent-Type: multipart/mixed; boundary=\"+a.multipartBoundary+\"\\n--\"+a.multipartBoundary+\"\\nContent-type: text/plain; charset=UTF-8\\n\\n# SocialCalc Spreadsheet Control Save\\nversion:1.0\\npart:sheet\\npart:edit\\npart:audit\\n\"+d+\n\"--\"+a.multipartBoundary+\"\\nContent-type: text/plain; charset=UTF-8\\n\\n\"+a.CreateSheetSave()+\"--\"+a.multipartBoundary+\"\\nContent-type: text/plain; charset=UTF-8\\n\\n\"+a.editor.SaveEditorSettings()+\"--\"+a.multipartBoundary+\"\\nContent-type: text/plain; charset=UTF-8\\n\\n\"+a.sheet.CreateAuditString()+b+\"--\"+a.multipartBoundary+\"--\\n\"};\nSocialCalc.SpreadsheetControlDecodeSpreadsheetSave=function(a,c){var b,d,e,f,g,l,h,m={},p=[];b=c.search(/^MIME-Version:\\s1\\.0/mi);if(0>b)return m;d=/^Content-Type:\\s*multipart\\/mixed;\\s*boundary=(\\S+)/mig;d.lastIndex=b;e=d.exec(c);if(0>=d.lastIndex)return m;b=e[1];f=new RegExp(\"^--\"+b+\"(?:\\r\\n|\\n)\",\"mg\");f.lastIndex=d.lastIndex;f.exec(c);d=/(?:\\r\\n|\\n)(?:\\r\\n|\\n)/gm;d.lastIndex=f.lastIndex;e=d.exec(c);if(!e)return m;g=d.lastIndex;f.lastIndex=g;e=f.exec(c);if(!e)return m;e=e.index;g=c.substring(g,\ne).split(/\\r\\n|\\n/);for(l=0;l<g.length;l++)switch(line=g[l],h=line.split(\":\"),h[0]){case \"part\":p.push(h[1])}for(pnum=0;pnum<p.length;pnum++){d.lastIndex=e;e=d.exec(c);if(!e)break;g=d.lastIndex;pnum==p.length-1&&(f=new RegExp(\"^--\"+b+\"--$\",\"mg\"));f.lastIndex=g;e=f.exec(c);if(!e)break;e=e.index;m[p[pnum]]={start:g,end:e}}return m};SocialCalc.SettingsControls={Controls:{},CurrentPanel:null};\nSocialCalc.SettingsControlSetCurrentPanel=function(a){SocialCalc.SettingsControls.CurrentPanel=a;SocialCalc.SettingsControls.PopupChangeCallback({panelobj:a},\"\",null)};SocialCalc.SettingsControlInitializePanel=function(a){var c,b=SocialCalc.SettingsControls;for(c in a)\"name\"!=c&&(ctrl=b.Controls[a[c].type])&&ctrl.Initialize&&ctrl.Initialize(a,c)};\nSocialCalc.SettingsControlLoadPanel=function(a,c){var b,d=SocialCalc.SettingsControls;for(b in a)\"name\"!=b&&(ctrl=d.Controls[a[b].type])&&ctrl.SetValue&&ctrl.SetValue(a,b,c[a[b].setting])};SocialCalc.SettingsControlUnloadPanel=function(a){var c,b=SocialCalc.SettingsControls,d={};for(c in a)\"name\"!=c&&(ctrl=b.Controls[a[c].type])&&ctrl.GetValue&&(d[a[c].setting]=ctrl.GetValue(a,c));return d};\nSocialCalc.SettingsControls.PopupChangeCallback=function(a,c,b){var d=SocialCalc.Constants;if((c=document.getElementById(\"sample-text\"))&&a&&a.panelobj){b=SocialCalc.CurrentSpreadsheetControlObject.idPrefix;var e=\"cell\"==a.panelobj.name?\"c\":\"\",f,g;g=d.defaultCellLayout.match(/^padding.(\\S+) (\\S+) (\\S+) (\\S+).vertical.align.(\\S+);$/)||[];g={color:[\"textcolor\"],backgroundColor:[\"bgcolor\",\"#FFF\"],fontSize:[\"fontsize\",d.defaultCellFontSize],fontFamily:[\"fontfamily\"],paddingTop:[\"padtop\",g[1]],paddingRight:[\"padright\",\ng[2]],paddingBottom:[\"padbottom\",g[3]],paddingLeft:[\"padleft\",g[4]],verticalAlign:[\"alignvert\",g[5]]};for(f in g)d=SocialCalc.Popup.GetValue(b+e+g[f][0])||g[f][1]||\"\",c.style[f]=d;if(\"c\"==e){g={borderTop:\"cbt\",borderRight:\"cbr\",borderBottom:\"cbb\",borderLeft:\"cbl\"};for(f in g)d=SocialCalc.SettingsControls.BorderSideGetValue(a.panelobj,g[f]),c.style[f]=d?d.val||\"\":\"\";d=SocialCalc.Popup.GetValue(b+\"calignhoriz\");c.style.textAlign=d||\"left\"}else c.style.border=\"\",d=SocialCalc.Popup.GetValue(b+\"textalignhoriz\"),\nc.style.textAlign=d||\"left\",d=SocialCalc.Popup.GetValue(b+\"numberalignhoriz\");c.childNodes[1].style.textAlign=d||\"right\";g=(d=SocialCalc.Popup.GetValue(b+e+\"fontlook\"))?d.match(/^(\\S+) (\\S+)$/)||[]:[];c.style.fontStyle=g[1]||\"\";c.style.fontWeight=g[2]||\"\";d=SocialCalc.Popup.GetValue(b+e+\"formatnumber\")||\"General\";a=SocialCalc.FormatNumber.formatNumberWithFormat(9.8765,d,\"\");f=SocialCalc.FormatNumber.formatNumberWithFormat(-1234.5,d,\"\");\"??-???-?? ??:??:??\"!=f&&(a+=\"<br>\"+f);c.childNodes[1].innerHTML=\na}};SocialCalc.SettingsControls.PopupListSetValue=function(a,c,b){if(b){var d=SocialCalc.Popup;b.def?d.SetValue(a[c].id,\"\"):d.SetValue(a[c].id,b.val)}else alert(c+\" no value\")};SocialCalc.SettingsControls.PopupListGetValue=function(a,c){var b=a[c];return b?(b=SocialCalc.Popup.GetValue(b.id))?{def:!1,val:b}:{def:!0,val:0}:null};\nSocialCalc.SettingsControls.PopupListInitialize=function(a,c){var b,d,e,f;b=SocialCalc.SettingsControls;b=a[c].initialdata||b.Controls[a[c].type].InitialData||\"\";b=SocialCalc.LocalizeSubstrings(b);var g=b.split(/\\|/),l=[];for(b=0;b<(g.length||0);b++)d=g[b],e=d.indexOf(\":\"),f=d.substring(0,e),-1!=f.indexOf(\"\\\\\")&&(f=f.replace(/\\\\c/g,\":\"),f=f.replace(/\\\\b/g,\"\\\\\")),f=SocialCalc.special_chars(f),l[b]=\"[custom]\"==f?{o:SocialCalc.Constants.s_PopupListCustom,v:d.substring(e+1),a:{custom:!0}}:\"[cancel]\"==\nf?{o:SocialCalc.Constants.s_PopupListCancel,v:\"\",a:{cancel:!0}}:\"[break]\"==f?{o:\"-----\",v:\"\",a:{skip:!0}}:\"[newcol]\"==f?{o:\"\",v:\"\",a:{newcol:!0}}:{o:f,v:d.substring(e+1)};SocialCalc.Popup.Create(\"List\",a[c].id,{});SocialCalc.Popup.Initialize(a[c].id,{options:l,attribs:{changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};SocialCalc.SettingsControls.PopupListReset=function(a){SocialCalc.Popup.Reset(\"List\")};\nSocialCalc.SettingsControls.Controls.PopupList={SetValue:SocialCalc.SettingsControls.PopupListSetValue,GetValue:SocialCalc.SettingsControls.PopupListGetValue,Initialize:SocialCalc.SettingsControls.PopupListInitialize,OnReset:SocialCalc.SettingsControls.PopupListReset,ChangedCallback:null};SocialCalc.SettingsControls.ColorChooserSetValue=function(a,c,b){if(b){var d=SocialCalc.Popup;b.def?d.SetValue(a[c].id,\"\"):d.SetValue(a[c].id,b.val)}else alert(c+\" no value\")};\nSocialCalc.SettingsControls.ColorChooserGetValue=function(a,c){var b=SocialCalc.Popup.GetValue(a[c].id);return b?{def:!1,val:b}:{def:!0,val:0}};SocialCalc.SettingsControls.ColorChooserInitialize=function(a,c){SocialCalc.Popup.Create(\"ColorChooser\",a[c].id,{});SocialCalc.Popup.Initialize(a[c].id,{attribs:{title:\" \",moveable:!0,width:\"106px\",changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};SocialCalc.SettingsControls.ColorChooserReset=function(a){SocialCalc.Popup.Reset(\"ColorChooser\")};\nSocialCalc.SettingsControls.Controls.ColorChooser={SetValue:SocialCalc.SettingsControls.ColorChooserSetValue,GetValue:SocialCalc.SettingsControls.ColorChooserGetValue,Initialize:SocialCalc.SettingsControls.ColorChooserInitialize,OnReset:SocialCalc.SettingsControls.ColorChooserReset,ChangedCallback:null};\nSocialCalc.SettingsControls.BorderSideSetValue=function(a,c,b){a=a[c].id;if(b){if(c=document.getElementById(a+\"-onoff-bcb\"))b.val?(c.checked=!0,c.value=b.val,b=b.val.match(/(\\S+)\\s+(\\S+)\\s+(\\S.+)/),a+=\"-color\",SocialCalc.Popup.SetValue(a,b[3]),SocialCalc.Popup.SetDisabled(a,!1)):(c.checked=!1,c.value=b.val,a+=\"-color\",SocialCalc.Popup.SetValue(a,\"\"),SocialCalc.Popup.SetDisabled(a,!0))}else alert(c+\" no value\")};\nSocialCalc.SettingsControls.BorderSideGetValue=function(a,c){var b,d=a[c].id;if(b=document.getElementById(d+\"-onoff-bcb\"))return b.checked?(b=SocialCalc.Popup.GetValue(d+\"-color\"),{def:!1,val:\"1px solid \"+(b||\"rgb(0,0,0)\")}):{def:!1,val:\"\"}};\nSocialCalc.SettingsControls.BorderSideInitialize=function(a,c){var b=a[c].id;SocialCalc.Popup.Create(\"ColorChooser\",b+\"-color\",{});SocialCalc.Popup.Initialize(b+\"-color\",{attribs:{title:\" \",width:\"106px\",moveable:!0,changedcallback:SocialCalc.SettingsControls.PopupChangeCallback,panelobj:a}})};\nSocialCalc.SettingsControlOnchangeBorder=function(a){var c=SocialCalc.SettingsControls,b=c.CurrentPanel,d=a.id.match(/(^.*\\-)(\\w+)\\-(\\w+)\\-(\\w+)$/);if(d){var e=d[2],b=b[e].type;switch(d[4]){case \"bcb\":a.checked?c.Controls[b].SetValue(c.CurrentPanel,e,{def:!1,val:a.value||\"1px solid rgb(0,0,0)\"}):c.Controls[b].SetValue(c.CurrentPanel,e,{def:!1,val:\"\"})}}};\nSocialCalc.SettingsControls.Controls.BorderSide={SetValue:SocialCalc.SettingsControls.BorderSideSetValue,GetValue:SocialCalc.SettingsControls.BorderSideGetValue,OnClick:SocialCalc.SettingsControls.ColorComboOnClick,Initialize:SocialCalc.SettingsControls.BorderSideInitialize,InitialData:{thickness:\"1 pixel:1px\",style:\"Solid:solid\"},ChangedCallback:null};SocialCalc.SettingControlReset=function(){var a=SocialCalc.SettingsControls,c;for(c in a.Controls)a.Controls[c].OnReset&&a.Controls[c].OnReset(c)};\nSocialCalc.OtherSaveParts={};\nSocialCalc.CtrlSEditor=function(a){var c,b;if(0<a.length)c=SocialCalc.special_chars(SocialCalc.OtherSaveParts[a]||\"\");else for(b in c=\"Listing of Parts\\n\",SocialCalc.OtherSaveParts)c+=SocialCalc.special_chars(\"\\nPart: \"+b+\"\\n=====\\n\"+SocialCalc.OtherSaveParts[b]+\"\\n\");b=document.createElement(\"div\");b.style.cssText=\"position:absolute;z-index:500;width:300px;height:300px;left:100px;top:200px;border:1px solid black;background-color:#EEE;text-align:center;\";b.id=\"socialcalc-editbox\";b.innerHTML=a+'<br><br><textarea id=\"socialcalc-editbox-textarea\" style=\"width:250px;height:200px;\">'+\nc+\"</textarea><br><br><input type=button onclick=\\\"SocialCalc.CtrlSEditorDone ('socialcalc-editbox', '\"+a+'\\');\" value=\"OK\">';document.body.appendChild(b);a=document.getElementById(\"socialcalc-editbox-textarea\");a.focus();SocialCalc.CmdGotFocus(a)};SocialCalc.CtrlSEditorDone=function(a,c){var b=document.getElementById(a+\"-textarea\").value;0<c.length&&(0<b.length?SocialCalc.OtherSaveParts[c]=b:delete SocialCalc.OtherSaveParts[c]);b=document.getElementById(a);SocialCalc.KeyboardFocus();b.parentNode.removeChild(b)};SocialCalc||(alert(\"Main SocialCalc code module needed\"),SocialCalc={});SocialCalc.TableEditor||alert(\"SocialCalc TableEditor code module needed\");SocialCalc.CurrentSpreadsheetViewerObject=null;\nSocialCalc.SpreadsheetViewer=function(a,c){var b=SocialCalc.Constants;TiddlyWiki&&(this.tiddlyWiki=c,this.keyboard={areListener:!1,focusTable:null,passThru:null,didProcessKey:!1,statusFromProcessKey:!1,repeatingKeyPress:!1,chForProcessKey:\"\"},this.inputView=null);this.spreadsheetDiv=this.parentNode=null;this.viewheight=this.width=this.height=this.requestedSpaceBelow=this.requestedWidth=this.requestedHeight=0;this.editorDiv=this.spreadsheetDiv=this.editor=this.context=this.sheet=null;this.sortrange=\n\"\";this.idPrefix=a||\"SocialCalc-\";this.imagePrefix=b.defaultImagePrefix;this.statuslineheight=b.SVStatuslineheight;this.statuslineCSS=b.SVStatuslineCSS;this.sheet=new SocialCalc.Sheet;this.context=new SocialCalc.RenderContext(this.sheet);this.context.showGrid=!0;this.context.showRCHeaders=!0;this.editor=new SocialCalc.TableEditor(this.context);this.editor.noEdit=!0;this.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetViewerStatuslineCallback,params:{}};this.hasStatusLine=!0;this.statuslineHTML=\n'<table cellspacing=\"0\" cellpadding=\"0\"><tr><td width=\"100%\" style=\"overflow:hidden;\">{status}</td><td> </td></tr></table>';this.noRecalc=this.statuslineFull=!0;this.repeatingMacroTimer=null;this.repeatingMacroInterval=60;this.repeatingMacroCommands=\"\";TiddlyWiki?SocialCalc.CurrentSpreadsheetControlObject=this:SocialCalc.CurrentSpreadsheetViewerObject=this};\nSocialCalc.SpreadsheetViewer.prototype.InitializeSpreadsheetViewer=function(a,c,b,d){return SocialCalc.InitializeSpreadsheetViewer(this,a,c,b,d)};SocialCalc.SpreadsheetViewer.prototype.LoadSave=function(a){return SocialCalc.SpreadsheetViewerLoadSave(this,a)};SocialCalc.SpreadsheetViewer.prototype.DoOnResize=function(){return SocialCalc.DoOnResize(this)};SocialCalc.SpreadsheetViewer.prototype.SizeSSDiv=function(){return SocialCalc.SizeSSDiv(this)};\nSocialCalc.SpreadsheetViewer.prototype.DecodeSpreadsheetSave=function(a){return SocialCalc.SpreadsheetViewerDecodeSpreadsheetSave(this,a)};SocialCalc.SpreadsheetViewer.prototype.ParseSheetSave=function(a){return this.sheet.ParseSheetSave(a)};\nSocialCalc.InitializeSpreadsheetViewer=function(a,c,b,d,e){a.requestedHeight=b;a.requestedWidth=d;a.requestedSpaceBelow=e;\"string\"==typeof c&&(c=document.getElementById(c));null==c&&alert(\"SocialCalc.SpreadsheetControl not given parent node.\");a.parentNode=c;a.spreadsheetDiv=document.createElement(\"div\");a.SizeSSDiv();for(b=c.firstChild;null!=b;b=c.firstChild)c.removeChild(b);c.appendChild(a.spreadsheetDiv);a.nonviewheight=a.hasStatusLine?a.statuslineheight:0;a.viewheight=a.height-a.nonviewheight;\na.editorDiv=a.editor.CreateTableEditor(a.width,a.viewheight);a.spreadsheetDiv.appendChild(a.editorDiv);a.hasStatusLine&&(a.statuslineDiv=document.createElement(\"div\"),a.statuslineDiv.style.cssText=a.statuslineCSS,a.statuslineDiv.style.height=a.statuslineheight-(a.statuslineDiv.style.paddingTop.slice(0,-2)-0)-(a.statuslineDiv.style.paddingBottom.slice(0,-2)-0)+\"px\",a.statuslineDiv.id=a.idPrefix+\"statusline\",a.spreadsheetDiv.appendChild(a.statuslineDiv),a.editor.StatusCallback.statusline={func:SocialCalc.SpreadsheetViewerStatuslineCallback,\nparams:{spreadsheetobj:a}});TiddlyWiki&&(a.inputView=document.createElement(\"input\"),a.inputView.setAttribute(\"type\",\"text\"),a.inputView.style.width=\"0px\",a.inputView.style.height=\"0px\",a.inputView.style.padding=\"0\",a.inputView.style.border=\"0\",a.spreadsheetDiv.appendChild(a.inputView),SocialCalc.CmdGotFocus(a.inputView));if(TiddlyWiki)if(a.spreadsheetDiv.addEventListener)a.spreadsheetDiv.addEventListener(\"mousedown\",function(){SocialCalc.SetSpreadsheetControlObject(a)},!1),a.spreadsheetDiv.addEventListener(\"mouseover\",\nfunction(){SocialCalc.SetSpreadsheetControlObject(a)},!1);else if(a.spreadsheetDiv.attachEvent)a.spreadsheetDiv.attachEvent(\"onmousedown\",function(){SocialCalc.SetSpreadsheetControlObject(a)}),a.spreadsheetDiv.attachEvent(\"onmouseover\",function(){SocialCalc.SetSpreadsheetControlObject(a)});else throw SocialCalc.Constants.s_BrowserNotSupported;};\nSocialCalc.SpreadsheetViewerLoadSave=function(a,c){var b,d,e;if(b=a.DecodeSpreadsheetSave(c))b.sheet&&(a.sheet.ResetSheet(),a.sheet.ParseSheetSave(c.substring(b.sheet.start,b.sheet.end))),b.edit&&a.editor.LoadEditorSettings(c.substring(b.edit.start,b.edit.end)),b.startupmacro&&a.editor.EditorScheduleSheetCommands(c.substring(b.startupmacro.start,b.startupmacro.end),!1,!0),b.repeatingmacro&&(b=c.substring(b.repeatingmacro.start,b.repeatingmacro.end),b=b.replace(\"\\r\",\"\"),d=b.indexOf(\"\\n\"),0<d&&(e=b.substring(0,\nd)-0,a.repeatingMacroInterval=e,a.repeatingMacroCommands=b.substring(d+1),0<e&&(a.repeatingMacroTimer=window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro,1E3*a.repeatingMacroInterval))));\"off\"==a.editor.context.sheetobj.attribs.recalc||a.noRecalc?a.editor.ScheduleRender():a.editor.EditorScheduleSheetCommands(\"recalc\")};\nSocialCalc.SpreadsheetViewerDoRepeatingMacro=function(){var a=SocialCalc.GetSpreadsheetViewerObject(),c=a.editor;a.repeatingMacroTimer=null;SocialCalc.SheetCommandInfo.CmdExtensionCallbacks.repeatmacro={func:SocialCalc.SpreadsheetViewerRepeatMacroCommand,data:null};c.EditorScheduleSheetCommands(a.repeatingMacroCommands)};\nSocialCalc.SpreadsheetViewerRepeatMacroCommand=function(a,c,b,d,e){a=SocialCalc.GetSpreadsheetViewerObject();d=d.RestOfString()-0;0<d||(d=a.repeatingMacroInterval);a.repeatingMacroInterval=d;a.repeatingMacroTimer=window.setTimeout(SocialCalc.SpreadsheetViewerDoRepeatingMacro,1E3*a.repeatingMacroInterval)};SocialCalc.SpreadsheetViewerStopRepeatingMacro=function(){var a=SocialCalc.GetSpreadsheetViewerObject();a.repeatingMacroTimer&&(window.clearTimeout(a.repeatingMacroTimer),a.repeatingMacroTimer=null)};\nSocialCalc.SpreadsheetViewerDoButtonCmd=function(a,c,b){a=b.element;b=b.functionobj.command;c=SocialCalc.GetSpreadsheetViewerObject().editor;switch(b){case \"recalc\":c.EditorScheduleSheetCommands(\"recalc\")}a&&a.blur&&a.blur();SocialCalc.KeyboardFocus()};SocialCalc.LocalizeString=function(a){var c=SocialCalc.LocalizeStringList[a];c||(c=SocialCalc.Constants[\"s_loc_\"+a.toLowerCase().replace(/\\s/g,\"_\").replace(/\\W/g,\"X\")]||a,SocialCalc.LocalizeStringList[a]=c);return c};SocialCalc.LocalizeStringList={};\nSocialCalc.LocalizeSubstrings=function(a){var c=SocialCalc.LocalizeString;return a.replace(/%(loc|ssc)!(.*?)!/g,function(a,d,e){return\"ssc\"==d?SocialCalc.Constants[e]||alert(\"Missing constant: \"+e):c(e)})};SocialCalc.GetSpreadsheetViewerObject=function(){var a=SocialCalc.CurrentSpreadsheetViewerObject;if(a)return a;throw\"No current SpreadsheetViewer object.\";};\nSocialCalc.DoOnResize=function(a){var c,b=a.views;if(a.SizeSSDiv()){for(vname in b)c=b[vname].element,c.style.width=a.width+\"px\",c.style.height=a.height-a.nonviewheight+\"px\";a.editor.ResizeTableEditor(a.width,a.height-a.nonviewheight)}};SocialCalc.SpreadsheetViewerStatuslineCallback=function(a,c,b,d){var e=d.spreadsheetobj,f=\"\";e&&e.statuslineDiv&&(f=e.statuslineFull?a.GetStatuslineString(c,b,d):a.ecell.coord,f=e.statuslineHTML.replace(/\\{status\\}/,f),e.statuslineDiv.innerHTML=f)};\nSocialCalc.CmdGotFocus=function(a){SocialCalc.GetSpreadsheetControlObject().keyboard.passThru=a};SocialCalc.SpreadsheetViewerCreateSheetHTML=function(a){var c,b;c=\"\";c=new SocialCalc.RenderContext(a.sheet);a=document.createElement(\"div\");b=c.RenderSheet(null,{type:\"html\"});a.appendChild(b);delete c;c=a.innerHTML;delete b;delete a;return c};\nSocialCalc.SpreadsheetViewerDecodeSpreadsheetSave=function(a,c){var b,d,e,f,g,l,h,m={},p=[];/[^\\n]\\r[^\\n]/.test(c)&&(c=c.replace(/([^\\n])\\r([^\\n])/g,\"$1\\r\\n$2\"));b=c.search(/^MIME-Version:\\s1\\.0/mi);if(0>b)return m;d=/^Content-Type:\\s*multipart\\/mixed;\\s*boundary=(\\S+)/mig;d.lastIndex=b;e=d.exec(c);if(0>=d.lastIndex)return m;b=e[1];f=new RegExp(\"^--\"+b+\"(?:\\r\\n|\\n)\",\"mg\");f.lastIndex=d.lastIndex;f.exec(c);d=/(?:\\r\\n|\\n)(?:\\r\\n|\\n)/gm;d.lastIndex=f.lastIndex;e=d.exec(c);if(!e)return m;g=d.lastIndex;\nf.lastIndex=g;e=f.exec(c);if(!e)return m;e=e.index;g=c.substring(g,e).split(/\\r\\n|\\n/);for(l=0;l<g.length;l++)switch(line=g[l],h=line.split(\":\"),h[0]){case \"part\":p.push(h[1])}for(pnum=0;pnum<p.length;pnum++){d.lastIndex=e;e=d.exec(c);if(!e)break;g=d.lastIndex;pnum==p.length-1&&(f=new RegExp(\"^--\"+b+\"--$\",\"mg\"));f.lastIndex=g;e=f.exec(c);if(!e)break;e=e.index;m[p[pnum]]={start:g,end:e}}return m};(function(){Class=function(a,c){if(!a)throw\"Class requires a class definition string as its first argument\";if(!c)throw\"Class requires a class wrapper function as its second argument\";if(!a.match(/^([\\w\\.]+)(?:\\(\\s*([\\w\\.]+)\\s*\\))?(?:\\s+(.*?)\\s*)?$/))throw\"Can't parse Class Definition: '\"+a+\"'\";var b=RegExp.$1,d=RegExp.$2||\"\",e=[];RegExp.$3&&(e=RegExp.$3.split(/\\s+/));for(var f=[],g=!0,l=0,h=e.length;l<h;l++){var m=e[l];\"-nostrict\"==m&&(g=!1);m.match(/^-inc=(.+)$/)&&(f=RegExp.$1.split(\",\"))}for(var e=\nb.split(\".\"),p=Class.global,l=0;l<e.length;l++)p[e[l]]||(p[e[l]]=function(){try{this.init()}catch(a){}}),p=p[e[l]];p.className=b;p.isa=function(a){if(p.baseClassName=a)p.prototype=eval(\"new \"+a+\"()\"),p.prototype.superFunc=function(c){return eval(a).prototype[c]}};p.isa(d);p.global=Class.global;p.addGlobal=function(){this.newGlobals++;return Class.global};p.extend=function(a){if(\"object\"!=typeof a)throw\"extend requires an object of name:value pairs\";for(var c in a)p.prototype[c]=a[c]};b=0;for(d=f.length;b<\nd;b++)l=f[b],f[b]=\"proto\"==l?p.prototype:\"this\"==l?p:Class.global[l];g?Class.eval_strict(c,p,f):c.apply(p,f);return p}})();Class.global=this;Class.eval_strict=function(a,c,b){var d=0,e;for(e in Class.global)d++;c.newGlobals=0;a.apply(c,b);a=0;for(e in Class.global)a++;if(d+c.newGlobals!=a)throw\"Class '\"+c.className+\"' defines \"+(a-d)+\" new global JavaScript variables without using this.addGlobal()\";delete c.newGlobals};Class(\"Document.Emitter\",function(){var a=this.prototype;a.className=\"Document.Emitter\";a.instantiate=function(){return eval(\"new \"+this.className+\"()\")};a.init=function(){this.output=\"\"};a.content=function(){return this.output};a.insert=function(a){this.output+=a.output}});Class(\"Document.Emitter.HTML(Document.Emitter)\",function(){var a=this.prototype;a.className=\"Document.Emitter.HTML\";a.begin_node=function(a){var b=a.type;switch(b){case \"asis\":case \"line\":break;case \"br\":case \"hr\":this.output+=\"<\"+b+\" />\";break;case \"html\":this.output+='<span class=\"wafl\">Raw HTML section. Edit in Wiki Text mode.</span>';break;case \"waflparagraph\":case \"waflphrase\":case \"im\":if(a._wafl.match(/^image:\\s*(\\S+)(?:\\s+size=(\\w+))?/)){a=\"if (typeof(ss) != 'undefined' && ss.editor) { var recalc = function () { try { ss.editor.DoPositionCalculations() } catch (e) { setTimeout(recalc, 500) } }; recalc() } if (!window.image_dimension_cache) window.image_dimension_cache = {};window.image_dimension_cache['/data/wafl/\"+\na._label.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/'/g,\"\\\\'\").replace(/\\\\/g,\"\\\\\\\\\")+\"'] = [ this.offsetWidth, this.offsetHeight ]; this.style.width = this.offsetWidth + 'px'; this.style.height = this.offsetHeight + 'px'\";var b=RegExp.$1,d=RegExp.$2;switch(d){case \"small\":d=\"100\";break;case \"medium\":d=\"300\";break;case \"large\":d=\"600\"}d&&(d=' width=\"'+d+'\"');this.output+='<img src=\"'+b.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/</g,\"<\").replace(/>/g,\n\">\")+'\" onload=\"'+a+'\"'+d+\" />\";break}this.output+='<span class=\"wafl\">'+a._label.replace(/&/g,\"&\").replace(/\"/g,\""\").replace(/</g,\"<\").replace(/>/g,\">\").replace(/'/g,\"\\\\'\").replace(/\\\\/g,\"\\\\\\\\\")+\"</span>\";break;case \"a\":case \"wikilink\":this.output+='<a href=\"'+encodeURI(a._href)+'\">';break;case \"file\":this.output+='<a title=\"(network resource)\" href=\"'+encodeURI(a._href)+'\">';break;case \"ul\":case \"ol\":case \"table\":case \"tr\":this.output+=\"<\"+b+\">\\n\";break;default:this.output+=\"<\"+\nb+\">\"}};a.end_node=function(a){a=a.type;switch(a){case \"asis\":case \"br\":case \"hr\":case \"html\":case \"waflparagraph\":case \"waflphrase\":case \"im\":break;case \"line\":this.output+=\"<br />\";break;case \"file\":case \"wikilink\":this.output+=\"</a>\";break;default:0==a.search(/^(?:p|ul|ol|li|h\\d|table|tr|td)$/)?this.output+=\"</\"+a+\">\\n\":this.output+=\"</\"+a+\">\"}};a.text_node=function(a){this.output+=a.replace(/&/g,\"&\").replace(/>/g,\">\").replace(/</g,\"<\").replace(/\"/g,\""\").replace(/'/g,\"'\")}});Class(\"Document.Parser\",function(){var a=this.prototype;a.className=\"Document.Parser\";a.init=function(){};a.parse=function(a,b){this.input=-1==a.search(/\\n$/)?a+\"\\n\":a;b&&(this.receiver=b);this.receiver.init();this.grammar=this.create_grammar();this.parse_blocks(\"top\");return this.receiver.content()};a.create_grammar=function(){throw\"Please define create_grammar in a derived class of Document.Parser.\";};a.parse_blocks=function(a){if(a=this.grammar[a].blocks)for(;this.input.length;){for(var b=this.input.length,\nd=0;d<a.length;d++){var e=a[d],f=this.find_match(\"matched_block\",e);if(f){this.input=this.input.substr(f.end);this.handle_match(e,f);break}}if(this.input.length>=b)throw this.classname+\": Reduction error for:\\n\"+this.input+\"\\n\"+JSON.stringify(this);}};a.handle_match=function(a,b){var d=this.grammar[a];this.subparse(d.blocks?\"parse_blocks\":\"parse_phrases\",b,a,d.filter)};a.find_match=function(a,b){var d=this.grammar[b].match;if(!d)throw\"no regexp for type: \"+b;if(d=this.input.match(d))return d=this[a].call(this,\nd,this.grammar[b].lookbehind),d.type=this.grammar[b].type||b,d};a.parse_phrases=function(a){if(a=this.grammar[a].phrases)for(;this.input.length;){for(var b=null,d=0;d<a.length;d++){var e=this.find_match(\"matched_phrase\",a[d]);if(e&&(!b||e.begin<b.begin)&&(b=e,0==b.begin))break}if(!b){this.receiver.text_node(this.input||\"\");break}0!=b.begin&&this.receiver.text_node(this.input.substr(0,b.begin)||\"\");this.input=this.input.substr(b.end);this.handle_match(b.type,b)}else this.receiver.text_node(this.input||\n\"\")};a.subparse=function(a,b,d,e){b.type=this.grammar[d].type;null==b.type&&(b.type=d);e=e?e(b):null;b.type&&this.receiver.begin_node(b);var f=eval(\"new \"+this.className+\"()\");f.input=null==e?b.text:e;f.grammar=this.grammar;f.receiver=this.receiver.instantiate();f[a].call(f,d);this.receiver.insert(f.receiver);b.type&&this.receiver.end_node(b)};a.matched_block=function(a){return{begin:a.index,text:a[1],end:a[0].length,1:a[2],2:a[3],3:a[4]}};a.matched_phrase=function(a,b){if(b){var d=a[2],e=this.input.indexOf(a[1]);\nreturn{text:d,begin:e,end:e+a[1].length,1:RegExp.$2,2:RegExp.$3,3:RegExp.$4}}return{begin:a.index,text:a[1],end:a.index+a[0].length,1:a[2],2:a[3],3:a[4]}}});Class(\"Document.Parser.Wikitext(Document.Parser)\",function(){var a=this.prototype;a.className=\"Document.Parser.Wikitext\";a.init=function(){};a.create_grammar=function(){var a=\"pre html hr hx waflparagraph ul ol blockquote p empty else\".split(\" \"),b=\"waflphrase asis wikilink wikilink2 a im mail file tt b i del a\".split(\" \"),d=function(a,c){c=\"\\\\\"+(c||a);a=\"\\\\\"+a;return{match:new RegExp(\"(?:^|[^\"+a+\"\\\\w])(\"+a+\"(?=\\\\S)(?!\"+c+\")(.*?)\"+c+\"(?=[^\"+c+\"\\\\w]|$))\"),phrases:\"\\\\`\"==a?null:b,lookbehind:!0}},e=\n{yahoo:\"yahoo\",ymsgr:\"yahoo\",callto:\"callto\",callme:\"callto\",skype:\"callto\",aim:\"aim\"},f={aim:\"AIM: %1\",yahoo:\"Yahoo: %1\",callto:\"Skype: %1\"},g=\"(\\\\b(\",l;for(l in e)g+=l+\"|\";g=g.replace(/\\|$/,\")\\\\:([^\\\\s\\\\>\\\\)]+))\");l=function(a,b){var c=new RegExp(\"(^|\\n)\"+b+\" *\",\"g\");return{match:new RegExp(\"^(\"+a+\"+ .*\\n(?:[*-+#]+ .*\\n)*)(?:s*\\n)?\"),blocks:[\"ul\",\"ol\",\"subl\",\"li\"],filter:function(a){return a.text.replace(c,\"$1\")}}};return{_all_blocks:a,_all_phrases:b,top:{blocks:a},ol:l(\"#\",\"[*#]\"),ul:l(\"[-+*]\",\n\"[-+*#]\"),blockquote:{match:/^((?:>[^\\n]*\\n)+)(?:\\s*\\n)?/,blocks:[\"blockquote\",\"line\"],filter:function(a){return a.text.replace(/(^|\\n)>\\ ?/g,\"$1\")}},line:{match:/([^\\n]*)\\n/,phrases:b},subl:{type:\"li\",match:/^(([^\\n]*)\\n[*#]+\\ [^\\n]*\\n(?:[*#]+\\ [^\\n]*\\n)*)(?:\\s*\\n)?/,blocks:[\"ul\",\"ol\",\"li2\"]},li:{match:/([^\\n]*)\\n/,phrases:b},li2:{type:\"\",match:/([^\\n]*)\\n/,phrases:b},html:{match:/^(\\.html\\ *\\n(?:[^\\n]*\\n)*?\\.html)\\ *\\n(?:\\s*\\n)?/,filter:function(a){a._html=a.text;return\"\"}},pre:{match:/^\\.pre\\ *\\n((?:[^\\n]*\\n)*?)\\.pre\\ *\\n(?:\\s*\\n)?/},\nhr:{match:/^--+(?:\\s*\\n)?/},hx:{match:/^((\\^+) *([^\\n]*?)(\\s+=+)?\\s*?\\n+)/,phrases:b,filter:function(a){a.type=\"h\"+a[\"1\"].length;return a[2]}},p:{match:/^((?:(?!(?:(?:\\^+|\\#+|\\*+|\\-+) |\\>|\\.\\w+\\s*\\n|\\{[^\\}]+\\}\\s*\\n))[^\\n]*\\S[^\\n]*\\n)+(?:(?=^|\\n)\\s*\\n)*)/,phrases:b,filter:function(a){return a.text.replace(/\\n$/,\"\")}},empty:{match:/^(\\s*\\n)/,filter:function(a){a.type=\"\"}},\"else\":{match:/^(([^\\n]*)\\n)/,phrases:[],filter:function(a){a.type=\"p\"}},waflparagraph:{match:/^\\{(.*)\\}[\\ \\t]*\\n(?:\\s*\\n)?/,filter:function(a){a._wafl=\na._label=a.text;return\"\"}},waflphrase:{match:/(?:^|[\\s\\-])((?:\"([^\\n]+?)\")?\\{([\\w-]+(?=[\\:\\ \\}])(?:\\s*:)?\\s*[^\\n]*?\\s*)\\}(?=[\\W_]|$))/,filter:function(a){a._wafl=a[2];a._label=a[1]||a._wafl;return\"\"},lookbehind:!0},asis:{match:/(\\{\\{([^\\n]*?)\\}\\}(\\}*))/,filter:function(a){a.type=\"\";return a[1]+a[2]}},wikilink:{match:/(?:^|[_\\W])(\\[()(?=[^\\s\\[\\]])(.*?)\\](?=[_\\W]|$))/,filter:function(a){a._href=\"?\"+a[2];return a.text||a[2]},lookbehind:!0},wikilink2:{type:\"wikilink\",match:/(?:\"([^\"]*)\"\\s*)(\\[(?=[^\\s\\[\\]])(.*?)\\](?=[_\\W]|$))/,\nfilter:function(a){a._href=\"?\"+a[2];return a[1]||a[2]}},a:{match:/((?:\"([^\"]*)\"\\s*)?<?((?:http|https|ftp|irc|file):(?:\\/\\/)?[\\;\\/\\?\\:\\@\\&\\=\\+\\$\\,\\[\\]\\#A-Za-z0-9\\-\\_\\.\\!\\~\\*\\'\\(\\)]+[A-Za-z0-9\\/#])>?)/,filter:function(a){a._href=a[2];return a[1]||a[2]}},file:{match:/((?:\"([^\"]*)\")?<(\\\\\\\\[^\\s\\>\\)]+)>)/,filter:function(a){var b=a[2].replace(/^\\\\\\\\/,\"\");a._href=\"file://\"+b.replace(/\\\\/g,\"/\");return a[\"1\"]||b}},im:{match:new RegExp(g),filter:function(a){a._wafl=a[1]+\": \"+a[2];a._label=(f[e[a[1]]]||\"%1\").replace(/%1/g,\na[2]);return\"\"}},mail:{match:/([\\w+%\\-\\.]+@(?:[\\w\\-]+\\.)+[\\w\\-]+)/,filter:function(a){a.type=\"a\";a._href=\"mailto:\"+a.text.replace(/%/g,\"%25\")}},tt:d(\"`\"),b:d(\"*\"),i:d(\"_\"),del:d(\"-\")}}});\n\nexports.SocialCalc = SocialCalc;\n})();" }, "$:/plugins/rboue/SocialCalc/Lib/graph.js": { "type": "application/javascript", "title": "$:/plugins/rboue/SocialCalc/Lib/graph.js", "module-type": "library", "text": "(function (){\n\n // Graph object\n\n var Graph = function() {};\n\n Graph.init = function(SocialCalc, sessionConfig) {\n if (!SocialCalc) alert('Cannot find SocialCalc');\n\n // Localization\n\n SocialCalc.Constants.s_loc_plain = \"Plain\";\n SocialCalc.Constants.s_loc_graph = \"Graph\";\n SocialCalc.Constants.s_loc_cells_to_graph = \"Cells to Graph\";\n SocialCalc.Constants.s_loc_set_cells_to_graph = \"Set Cells To Graph\";\n SocialCalc.Constants.s_loc_graph_type = \"Graph Type\";\n SocialCalc.Constants.s_loc_help = \"Help\";\n SocialCalc.Constants.s_loc_horizontal_bar = \"Horizontal Bar\";\n SocialCalc.Constants.s_loc_vertical_bar = \"Vertical Bar\";\n SocialCalc.Constants.s_loc_pie_chart = \"Pie Chart\";\n SocialCalc.Constants.s_loc_line_chart = \"Line Chart\";\n SocialCalc.Constants.s_loc_scatter_chart = \"Plot Points\";\n SocialCalc.Constants.s_loc_not_set = \"Not Set\";\n SocialCalc.Constants.s_loc_unknown_range_name = \"Unknown range name\";\n SocialCalc.Constants.s_loc_hide_help = \"Hide Help\";\n SocialCalc.Constants.s_loc_x = \"X\";\n SocialCalc.Constants.s_loc_y = \"Y\";\n SocialCalc.Constants.s_loc_max = \"Max\";\n SocialCalc.Constants.s_loc_min = \"Min\";\n SocialCalc.Constants.s_loc_ok = \" OK \";\n SocialCalc.Constants.s_loc_Xselect_rangeX = \"[select range]\";\n SocialCalc.Constants.s_GraphRangeNotSelected = \"Select a range of cells with numeric values to graph and use the OK button above to set the range as the graph range.\";\n SocialCalc.Constants.s_graph_error_selection = \"<b>Range selection error</b>.<br>You must select cells in a single row or column !\";\n SocialCalc.Constants.s_graph_help_intro = \"This is the help text for graph type: \";\n SocialCalc.Constants.s_graph_VerticalBar_help = \"The <b>Graph</b> tab displays a bar graph of the cells which have been selected (either in a single row across or column down). If the row above (or column to the left) of the selection has values, those values are used as labels. Otherwise the cell coordinates are used (e.g., B5).\";\n SocialCalc.Constants.s_graph_HorizontalBar_help = \"The <b>Graph</b> tab displays a bar graph of the cells which have been selected (either in a single row across or column down). If the row above (or column to the left) of the selection has values, those values are used as labels. Otherwise the cell coordinates are used (e.g., B5).\";\n SocialCalc.Constants.s_graph_PieChart_help = \"The <b>Graph</b> tab displays a pie chart of the cells which have been selected (either in a single row across or column down). If the row above (or column to the left) of the selection has values, those values are used as labels. Otherwise the cell coordinates are used (e.g., B5).\";\n SocialCalc.Constants.s_graph_PieChart_error_selection = \"<b>Selection error</b><br>You must select cells with positive value !\";\n SocialCalc.Constants.s_graph_LineChart_help = \"The <b>Graph</b> tab displays a XY profile line of the cells which have been selected (either in a single row across or column down). The row above (or column to the left) of the selection is used as X coordinates.\";\n SocialCalc.Constants.s_graph_ScatterChart_help = \"The <b>Graph</b> tab displays a XY scattered chart of the cells which have been selected (either in a single row across or column down). The row above (or column to the left) of the selection is used as X coordinates. If row below (or column to the right) have values, they are interpreted as plot dimensions.\";\n\n // Configuration\n\n SocialCalc.GraphTypesInfo = {\n // Graph types\n displayorder: [\"verticalbar\", \"horizontalbar\", \"piechart\", \"linechart\", \"scatterchart\"],\n verticalbar: {\n display: SocialCalc.Constants.s_loc_vertical_bar,\n func: Graph.GraphVerticalBar\n },\n horizontalbar: {\n display: SocialCalc.Constants.s_loc_horizontal_bar,\n func: Graph.GraphHorizontalBar\n },\n piechart: {\n display: SocialCalc.Constants.s_loc_pie_chart,\n func: Graph.MakePieChart\n },\n linechart: {\n display: SocialCalc.Constants.s_loc_line_chart,\n func: Graph.MakeLineChart\n },\n scatterchart: {\n display: SocialCalc.Constants.s_loc_scatter_chart,\n func: Graph.MakeScatterChart\n },\n\n // Graph visuals\n visual: {\n marginX: 0.07, // X margin ratio v/s graph width\n marginY: 0.07, // Y margin ratio v/s graph height\n axisWidth: 0.01, // axis printed width\n fontSize: 0.03, // font size ratio v/s graph height\n fontSizeMin: 10, // minimum font size in pixel\n valueMargin: 0.7, // margin between value and X axis, in font size unit\n labelMargin: 0.7 // margin between label and X axis, in font size unit\n }\n };\n };\n\n \n var colorIndex = 0;\n var getBarColor = function(){\n var colors = ['00f', 'ff0', '0ff', 'f0f', 'f00', '0f0', '888', '880', '088', '808', '008', '800', '080'];\n var iMax = colors.length - 1;\n if (colorIndex <= iMax)\n return colors[colorIndex++]\n else {\n return colors[Math.round(Math.random() * iMax)];\n }\n };\n var getDrawColor = function(){\n return \"#\" + getBarColor();\n };\n\n // Add Graph tab\n Graph.addGraphTab = function(spreadsheet) {\n if (spreadsheet.tabs) {\n spreadsheet.tabnums.graph = spreadsheet.tabs.length;\n spreadsheet.tabs.push({\n name: 'graph',\n text: SocialCalc.Constants.s_loc_graph,\n html:\n '<div id=\"%id.graphtools\" class=\"SocialCalc-toolbar\" style=\"display:none;\">' +\n ' <table cellspacing=\"0\" cellpadding=\"0\">' +\n ' <tr>' +\n ' <td style=\"vertical-align:top;padding-right:24px;\">' +\n ' <div style=\"%tbt.\">%loc!Cells to Graph!</div>' +\n ' <div id=\"%id.graphrange\" style=\"%tbt.\">Not Set</div>' +\n ' </td>' +\n ' <td style=\"vertical-align:top;padding-right:24px;\">' +\n ' <div style=\"%tbt.\">%loc!Set Cells To Graph!</div>' +\n ' <select id=\"%id.graphlist\" size=\"1\" onfocus=\"%s.CmdGotFocus(this);\">' +\n ' <option selected>[select range]</option>' +\n ' </select>' +\n ' </td>' +\n ' <td style=\"vertical-align:top;padding-right:4px;\">' +\n ' <div style=\"%tbt.\">%loc!Graph Type!</div>' +\n ' <select id=\"%id.graphtype\" size=\"1\" onchange=\"Graph.GraphChanged(this);\" onfocus=\"%s.CmdGotFocus(this);\">' +\n ' </select>' +\n ' <input type=\"button\" value=\"OK\" onclick=\"Graph.GraphSetCells();\" style=\"font-size:x-small;\">' +\n ' </td>' +\n ' <td style=\"vertical-align:top;padding-right:16px;\">' +\n ' <div style=\"%tbt.\"> </div>' +\n ' <input id=\"%id.graphhelp\" type=\"button\" onclick=\"Graph.DoGraph(true);\" value=\"Help\" style=\"font-size:x-small;\"/>' +\n ' </td>' +\n ' <td style=\"vertical-align:top\">' +\n ' <div id=\"%id.graphLimits\">' +\n ' <span style=\"%tbt.\">%loc!Min! %loc!X!</span>' +\n ' <input type=\"text\" id=\"%id.graphMinX\" onchange=\"Graph.MinMaxChanged(this,0);\" onfocus=\"%s.CmdGotFocus(this);\" size=\"5\"/>' +\n ' <span style=\"%tbt.\">%loc!Max! %loc!X!</span>' +\n ' <input type=\"text\" id=\"%id.graphMaxX\" onchange=\"Graph.MinMaxChanged(this,1);\" onfocus=\"%s.CmdGotFocus(this);\" size=\"5\"/><br>' +\n ' <span style=\"%tbt.\">%loc!Min! %loc!Y!</span>' +\n ' <input type=\"text\" id=\"%id.graphMinY\" onchange=\"Graph.MinMaxChanged(this,2);\" onfocus=\"%s.CmdGotFocus(this);\" size=\"5\"/>' +\n ' <span style=\"%tbt.\">%loc!Max! %loc!Y!</span>' +\n ' <input type=\"text\" id=\"%id.graphMaxY\" onchange=\"Graph.MinMaxChanged(this,3);\" onfocus=\"%s.CmdGotFocus(this);\" size=\"5\"/>' +\n ' </div>' +\n ' </td>' +\n ' </tr>' +\n ' </table>' +\n '</div>',\n view: 'graph',\n onclick: Graph.GraphOnClick,\n onclickFocus: true\n });\n }\n if (spreadsheet.views) {\n spreadsheet.views.graph = {\n name: 'graph',\n divStyle: \"overflow:auto;\",\n values: {},\n html: '<div style=\"padding:6px;\">Graph View</div>'\n };\n }\n if (spreadsheet.editor) {\n spreadsheet.editor.SettingsCallbacks.graph = {\n save: Graph.GraphSave,\n load: Graph.GraphLoad\n };\n }\n };\n\n Graph.GraphOnClick = function(s, t){\n colorIndex = 0;\n var SCLoc = SocialCalc.LocalizeString;\n var namelist = [];\n var nl = document.getElementById(s.idPrefix + 'graphlist');\n s.editor.RangeChangeCallback.graph = Graph.UpdateGraphRangeProposal;\n for (var name in s.sheet.names) {\n namelist.push(name);\n }\n namelist.sort();\n nl.length = 0;\n nl.options[0] = new Option(SCLoc(\"[select range]\"));\n for (var i = 0; i < namelist.length; i++) {\n var name = namelist[i];\n nl.options[i + 1] = new Option(name, name);\n if (name === s.graphrange) {\n nl.options[i + 1].selected = true;\n }\n }\n if (s.graphrange === '') {\n nl.options[0].selected = true;\n }\n Graph.UpdateGraphRangeProposal(s.editor);\n nl = document.getElementById(s.idPrefix + 'graphtype');\n nl.length = 0;\n for (var i = 0; i < SocialCalc.GraphTypesInfo.displayorder.length; i++) {\n var name = SocialCalc.GraphTypesInfo.displayorder[i];\n nl.options[i] = new Option(SCLoc(SocialCalc.GraphTypesInfo[name].display), name);\n if (name === s.graphtype) {\n nl.options[i].selected = true;\n }\n }\n if (!s.graphtype) {\n nl.options[0].selected = true;\n s.graphtype = nl.options[0].value;\n }\n var graphLimits = document.getElementById(s.idPrefix + \"graphLimits\");\n graphLimits.style.display = \"none\";\n\n Graph.DoGraph(false, false);\n };\n\n Graph.UpdateGraphRangeProposal = function(editor){\n var ele;\n ele = document.getElementById(SocialCalc.GetSpreadsheetControlObject().idPrefix + \"graphlist\");\n if (editor.range.hasrange) {\n return ele.options[0].text = SocialCalc.crToCoord(editor.range.left, editor.range.top) + \":\" + SocialCalc.crToCoord(editor.range.right, editor.range.bottom);\n } else {\n return ele.options[0].text = SocialCalc.LocalizeString(\"[select range]\");\n }\n };\n\n Graph.GraphSetCells = function(){\n var spreadsheet, editor, lele, ele;\n spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n editor = spreadsheet.editor;\n lele = document.getElementById(spreadsheet.idPrefix + \"graphlist\");\n if (lele.selectedIndex === 0) {\n if (editor.range.hasrange) {\n spreadsheet.graphrange = SocialCalc.crToCoord(editor.range.left, editor.range.top) + \":\" + SocialCalc.crToCoord(editor.range.right, editor.range.bottom);\n } else {\n spreadsheet.graphrange = editor.ecell.coord + \":\" + editor.ecell.coord;\n }\n } else {\n spreadsheet.graphrange = lele.options[lele.selectedIndex].value;\n }\n ele = document.getElementById(spreadsheet.idPrefix + \"graphrange\");\n ele.innerHTML = spreadsheet.graphrange;\n Graph.DoGraph(false, false);\n };\n\n Graph.DoGraph = function(helpflag, isResize){\n colorIndex = 0;\n var spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n var editor = spreadsheet.editor;\n var gview = spreadsheet.views.graph.element;\n var ginfo = SocialCalc.GraphTypesInfo[spreadsheet.graphtype];\n var gfunc = ginfo.func;\n if (!spreadsheet.graphrange) {\n if (gfunc && helpflag) {\n gfunc(spreadsheet, null, gview, spreadsheet.graphtype, helpflag, isResize);\n } else {\n gview.innerHTML = \"<div style=\\\"padding:30px;font-weight:bold;\\\">\" + SocialCalc.Constants.s_GraphRangeNotSelected + \"</div>\";\n }\n return;\n }\n var grange = spreadsheet.graphrange;\n if (grange && grange.indexOf(\":\") === -1) {\n var nrange = SocialCalc.Formula.LookupName(spreadsheet.sheet, grange || \"\");\n if (nrange.type !== \"range\") {\n gview.innerHTML = SocialCalc.LocalizeString(\"Unknown range name\") + \": \" + grange;\n return;\n }\n var rparts = nrange.value.match(/^(.*)\\|(.*)\\|$/);\n grange = rparts[1] + \":\" + rparts[2];\n }\n var prange = SocialCalc.ParseRange(grange);\n var range = {};\n if (prange.cr1.col <= prange.cr2.col) {\n range.left = prange.cr1.col;\n range.right = prange.cr2.col;\n } else {\n range.left = prange.cr2.col;\n range.right = prange.cr1.col;\n }\n if (prange.cr1.row <= prange.cr2.row) {\n range.top = prange.cr1.row;\n range.bottom = prange.cr2.row;\n } else {\n range.top = prange.cr2.row;\n range.bottom = prange.cr1.row;\n }\n if (gfunc) {\n gfunc(spreadsheet, range, gview, spreadsheet.graphtype, helpflag, isResize);\n }\n };\n\n Graph.GraphChanged = function(gtobj){\n SocialCalc.CurrentSpreadsheetControlObject.graphtype = gtobj.options[gtobj.selectedIndex].value;\n return Graph.DoGraph(false, false);\n };\n\n Graph.MinMaxChanged = function(minmaxobj, index){\n var spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n switch (index) {\n case 0:\n spreadsheet.graphMinX = minmaxobj.value;\n break;\n case 1:\n spreadsheet.graphMaxX = minmaxobj.value;\n break;\n case 2:\n spreadsheet.graphMinY = minmaxobj.value;\n break;\n case 3:\n spreadsheet.graphMaxY = minmaxobj.value;\n }\n return Graph.DoGraph(false, true);\n };\n\n Graph.GraphSave = function(editor, setting){\n var spreadsheet, gtype, str;\n spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n gtype = spreadsheet.graphtype || \"\";\n str = \"graph:range:\" + SocialCalc.encodeForSave(spreadsheet.graphrange) + \":type:\" + SocialCalc.encodeForSave(gtype);\n str += \":minmax:\" + SocialCalc.encodeForSave(spreadsheet.graphMinX + \",\" + spreadsheet.graphMaxX + \",\" + spreadsheet.graphMinY + \",\" + spreadsheet.graphMaxY) + \"\\n\";\n return str;\n };\n\n Graph.GraphLoad = function(editor, setting, line, flags){\n var spreadsheet, parts, i, splitMinMax;\n spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n parts = line.split(\":\");\n i = 1;\n while (i < parts.length) {\n switch (parts[i]) {\n case 'type':\n spreadsheet.graphtype = SocialCalc.decodeFromSave(parts[i + 1]);\n break;\n case 'range':\n spreadsheet.graphrange = SocialCalc.decodeFromSave(parts[i + 1]);\n break;\n case 'minmax':\n splitMinMax = SocialCalc.decodeFromSave(parts[i + 1]).split(',');\n spreadsheet.graphMinX = splitMinMax[0];\n document.getElementById(spreadsheet.idPrefix+\"graphMinX\").value = spreadsheet.graphMinX;\n spreadsheet.graphMaxX = splitMinMax[1];\n document.getElementById(spreadsheet.idPrefix+\"graphMaxX\").value = spreadsheet.graphMaxX;\n spreadsheet.graphMinY = splitMinMax[2];\n document.getElementById(spreadsheet.idPrefix+\"graphMinY\").value = spreadsheet.graphMinY;\n spreadsheet.graphMaxY = splitMinMax[3];\n document.getElementById(spreadsheet.idPrefix+\"graphMaxY\").value = spreadsheet.graphMaxY;\n }\n i += 2;\n }\n return true;\n };\n\n // Extract display data from a range of cell\n var cellRangeToDisplay = function(range) {\n var spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n var values = [];\n var labels = [];\n var nitems, byrow;\n if (!(range.right === range.left || range.top === range.bottom))\n return null;\n if (range.left === range.right) {\n nitems = range.bottom - range.top + 1;\n byrow = true;\n } else {\n nitems = range.right - range.left + 1;\n byrow = false;\n }\n var val = null; minval = null, maxval = null;\n for (var i = 0; i < nitems; i++) {\n var cr = byrow\n ? SocialCalc.rcColname(range.left) + (i + range.top)\n : SocialCalc.rcColname(i + range.left) + range.top;\n var cr1 = byrow\n ? SocialCalc.rcColname(range.left - 1 || 1) + (i + range.top)\n : SocialCalc.rcColname(i + range.left) + (range.top - 1 || 1);\n var cell = spreadsheet.sheet.GetAssuredCell(cr);\n if (cell.valuetype.charAt(0) === \"n\") {\n val = cell.datavalue - 0;\n if (maxval == null || maxval < val) maxval = val;\n if (minval == null || minval > val) minval = val;\n values.push(val);\n cell = spreadsheet.sheet.GetAssuredCell(cr1);\n if (cell.valuetype.charAt(0) === \"t\" || cell.valuetype.charAt(0) === \"n\")\n labels.push(\"\" + cell.datavalue);\n else\n labels.push(cr);\n }\n }\n if (maxval < 0) maxval = 0;\n if (minval > 0) minval = 0;\n\n return {values: values, labels: labels, minval: minval, maxval: maxval};\n };\n\n Graph.GraphVerticalBar = function(spreadsheet, range, gview, gtype, helpflag) {\n fonc = \"Graph.GraphVerticalBar\";\n var scc = SocialCalc.Constants;\n var str;\n if (helpflag || !range) {\n str = \"<input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\"><br><br>\" + scc.s_graph_help_intro + SocialCalc.GraphTypesInfo[gtype].display + \".<br><br>\" + scc.s_graph_VerticalBar_help + \"<br><br><input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\">\";\n str = SocialCalc.LocalizeSubstrings(str);\n gview.innerHTML = str;\n return;\n }\n var data = cellRangeToDisplay(range);\n if (!data) {\n gview.innerHTML = scc.s_graph_error_selection;\n return;\n }\n var graphLimits = document.getElementById(spreadsheet.idPrefix + \"graphLimits\");\n graphLimits.style.display = \"none\";\n\n // Create display\n str = \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" style=\\\"width:100%;\\\"><tr><td><canvas id=\\\"\"+spreadsheet.idPrefix+\"myBarCanvas\\\" style=\\\"border:1px solid black;\\\"></canvas></td></tr></table>\";\n gview.innerHTML = str;\n var canv = document.getElementById(spreadsheet.idPrefix+'myBarCanvas');\n\n // The canvas must be explicitly resized to fill space\n canv.width = 0 + gview.style.width.replace(\"px\", \"\") - 4;\n canv.height = 0 + gview.style.height.replace(\"px\", \"\") - 4;\n\n var configVisual = SocialCalc.GraphTypesInfo.visual;\n var marginX = Math.floor(canv.width * configVisual.marginX);\n var marginY = Math.floor(canv.height * configVisual.marginY);\n totalWidth = canv.width - 2 * marginX;\n totalHeight = canv.height - 2 * marginY;\n\n // Draw X axis\n var ctx = canv.getContext('2d');\n var barColor = getBarColor();\n ctx.fillStyle = '#' + barColor;\n var originY = totalHeight * (data.maxval / (data.maxval - data.minval)) + marginY;\n ctx.lineWidth = totalHeight * configVisual.axisWidth;\n ctx.moveTo(0, originY);\n ctx.lineTo(canv.width, originY);\n ctx.stroke();\n\n // Draw bars\n var barWidth = Math.floor(totalWidth / (data.values.length || 1));\n var yScale = totalHeight / (data.maxval - data.minval);\n for (var i = 0; i < data.values.length; i++) {\n ctx.fillRect(marginX + i * barWidth, originY - yScale * data.values[i], barWidth, yScale * data.values[i]);\n barColor = getBarColor();\n ctx.fillStyle = '#' + barColor;\n }\n\n // Draw labels\n ctx.strokeStyle = '#000000';\n ctx.fillStyle = '#000000';\n var fontSize = Math.floor(canv.height * configVisual.fontSize);\n if (fontSize < configVisual.fontSizeMin) fontSize = configVisual.fontSizeMin;\n ctx.font = \"\" + fontSize + \"px bold Arial\";\n var offsetTextX = (barWidth <= 3 * fontSize) ? 0 : fontSize;\n for (var i = 0; i < data.values.length; i++) {\n var yValue, yLabel;\n if (data.values[i] > 0) {\n yValue = originY - fontSize * configVisual.valueMargin;\n yLabel = originY + fontSize * (configVisual.labelMargin + 1);\n } else {\n yValue = originY + fontSize * (configVisual.valueMargin + 1);\n yLabel = originY - fontSize * configVisual.labelMargin;\n }\n var x = marginX + offsetTextX + i * barWidth;\n ctx.fillText(data.values[i], x, yValue);\n ctx.fillText(data.labels[i], x, yLabel);\n }\n };\n\n Graph.GraphHorizontalBar = function(spreadsheet, range, gview, gtype, helpflag){\n fonc = \"Graph.GraphHorizontalBar\";\n var scc = SocialCalc.Constants;\n var str;\n if (helpflag || !range) {\n str = \"<input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\"><br><br>\" + scc.s_graph_help_intro + SocialCalc.GraphTypesInfo[gtype].display + \".<br><br>\" + scc.s_graph_HorizontalBar_help + \"<br><br><input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\">\";\n gview.innerHTML = str;\n return;\n }\n var data = cellRangeToDisplay(range);\n if (!data) {\n gview.innerHTML = scc.s_graph_error_selection;\n return;\n }\n var graphLimits = document.getElementById(spreadsheet.idPrefix + \"graphLimits\");\n graphLimits.style.display = \"none\";\n\n // Create display\n str = \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" style=\\\"width:100%;\\\"><tr><td><canvas id=\\\"\"+spreadsheet.idPrefix+\"myBarCanvas\\\" style=\\\"border:1px solid black;\\\"></canvas></td></tr></table>\";\n gview.innerHTML = str;\n var canv = document.getElementById(spreadsheet.idPrefix+\"myBarCanvas\");\n\n // The canvas must be explicitly resized to fill space\n canv.width = 0 + gview.style.width.replace(\"px\", \"\") - 4;\n canv.height = 0 + gview.style.height.replace(\"px\", \"\") - 4;\n\n var configVisual = SocialCalc.GraphTypesInfo.visual;\n var marginX = Math.floor(canv.width * configVisual.marginX);\n var marginY = Math.floor(canv.height * configVisual.marginY);\n totalWidth = canv.width - 2 * marginX;\n totalHeight = canv.height - 2 * marginY;\n\n // Draw Y axis\n var ctx = canv.getContext(\"2d\");\n barColor = getBarColor();\n ctx.fillStyle = \"#\" + barColor;\n var originX = totalWidth * (1 - (data.maxval / (data.maxval - data.minval))) + marginX;\n ctx.lineWidth = totalWidth * configVisual.axisWidth;\n ctx.moveTo(originX, 0);\n ctx.lineTo(originX, canv.height);\n ctx.stroke();\n\n // Draw bars\n var barWidth = Math.floor(totalHeight / (data.values.length || 1));\n var yScale = totalWidth / (data.maxval - data.minval);\n for (var i = 0; i < data.values.length; i++) {\n ctx.fillRect(originX + yScale * data.values[i], marginY + i * barWidth, - yScale * data.values[i], barWidth);\n barColor = getBarColor();\n ctx.fillStyle = \"#\" + barColor;\n }\n\n // Draw labels\n ctx.strokeStyle = \"#000000\";\n ctx.fillStyle = \"#000000\";\n var fontSize = Math.floor(canv.height * configVisual.fontSize);\n if (fontSize < configVisual.fontSizeMin) fontSize = configVisual.fontSizeMin;\n ctx.font = \"\" + fontSize + \"px bold Arial\";\n var offsetTextY = (barWidth <= 3 * fontSize) ? 0 : 2 * fontSize;\n for (var i = 0; i < data.values.length; i++) {\n var xValue, xLabel;\n if (data.values[i] > 0) {\n xValue = originX + fontSize * configVisual.valueMargin;\n xLabel = originX - fontSize * (configVisual.labelMargin + 1);\n } else {\n xValue = originX - fontSize * configVisual.valueMargin - ctx.measureText(\"\"+data.values[i]).width;\n xLabel = originX + fontSize * configVisual.labelMargin;\n }\n var y = marginY + offsetTextY + i * barWidth;\n ctx.fillText(data.values[i], xValue, y);\n ctx.save();\n ctx.translate(xLabel, y);\n ctx.rotate(90 * Math.PI/180);\n ctx.fillText(data.labels[i], 0, 0);\n ctx.restore();\n }\n };\n\n Graph.MakePieChart = function(spreadsheet, range, gview, gtype, helpflag){\n fonc = \"Graph.MakePieChart\";\n var scc = SocialCalc.Constants;\n var str;\n if (helpflag || !range) {\n str = \"<input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\"><br><br>\" + scc.s_graph_help_intro + SocialCalc.GraphTypesInfo[gtype].display + \".<br><br>\" + scc.s_graph_PieChart_help + \"<br><br><input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\">\";\n str = SocialCalc.LocalizeSubstrings(str);\n gview.innerHTML = str;\n return;\n }\n var data = cellRangeToDisplay(range);\n if (!data) {\n gview.innerHTML = scc.s_graph_error_selection;\n return;\n }\n for (var i = 0; i < data.values.length; i++) {\n if (data.values[i] < 0) {\n gview.innerHTML = scc.s_graph_PieChart_error_selection;\n return;\n }\n }\n var graphLimits = document.getElementById(spreadsheet.idPrefix + \"graphLimits\");\n graphLimits.style.display = \"none\";\n\n // Create display\n str = \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" style=\\\"width:100%;\\\"><tr><td><canvas id=\\\"\"+spreadsheet.idPrefix+\"myCanvas\\\" style=\\\"border:1px solid black;\\\"></canvas></td></tr></table>\";\n gview.innerHTML = str;\n var canv = document.getElementById(spreadsheet.idPrefix+\"myCanvas\");\n\n // The canvas must be explicitly resized to fill space\n canv.width = 0 + gview.style.width.replace(\"px\", \"\") - 4;\n canv.height = 0 + gview.style.height.replace(\"px\", \"\") - 4;\n\n var ctx = canv.getContext(\"2d\");\n var configVisual = SocialCalc.GraphTypesInfo.visual;\n var fontSize = Math.floor(canv.height * configVisual.fontSize);\n if (fontSize < configVisual.fontSizeMin) fontSize = configVisual.fontSizeMin;\n ctx.font = \"\" + fontSize + \"px bold Arial\";\n var total = 0;\n for (var i = 0; i < data.values.length; i++) {\n total += data.values[i];\n }\n centerX = canv.width / 2;\n centerY = canv.height / 2;\n var rad = centerY - 50;\n var textRad = rad * 1.1;\n var lastStart = 0;\n for (var i = 0; i < data.values.length; i++) {\n if (Number(data.values[i]) === 0) continue;\n ctx.beginPath();\n ctx.moveTo(centerX, centerY);\n var arcColor = getDrawColor();\n ctx.fillStyle = arcColor;\n var arcRads = 2 * Math.PI * (data.values[i] / total);\n ctx.arc(centerX, centerY, rad, lastStart, lastStart + arcRads, false);\n ctx.closePath();\n ctx.fill();\n ctx.fillStyle = \"black\";\n var centralRad = lastStart + 0.5 * arcRads;\n var leftBias = 0;\n if (centralRad > 1.5 && centralRad < 4.6) {\n leftBias = 55;\n }\n ctx.translate(centerX + Math.cos(centralRad) * textRad - leftBias, centerY + Math.sin(centralRad) * textRad);\n ctx.fillText(data.labels[i] + \" (\" + Math.round(data.values[i] / total * 100) + \"%)\", 0, 0);\n ctx.translate(-1 * centerX - Math.cos(centralRad) * textRad + leftBias, -1 * centerY - Math.sin(centralRad) * textRad);\n ctx.fillRect(1, 1, 1, 1);\n ctx.closePath();\n lastStart += arcRads;\n }\n };\n\n // Extract XY display data from a range of cell\n var cellRangeToDisplay2 = function(range, isResize) {\n var spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n var values = [];\n var labels = [];\n var nitems, byrow;\n if (range.left === range.right) {\n nitems = range.bottom - range.top + 1;\n byrow = true;\n } else {\n nitems = range.right - range.left + 1;\n byrow = false;\n }\n var val = null, minX = null, maxX = null, minval = null, maxval = null;\n if (isResize) {\n try {\n minX = 1 * document.getElementById(spreadsheet.idPrefix+\"graphMinX\").value;\n } catch (e$) {\n e = e$;\n minX = null;\n }\n try {\n maxX = 1 * document.getElementById(spreadsheet.idPrefix+\"graphMaxX\").value;\n } catch (e$) {\n e = e$;\n maxX = null;\n }\n try {\n minval = 1 * document.getElementById(spreadsheet.idPrefix+\"graphMinY\").value;\n } catch (e$) {\n e = e$;\n minval = null;\n }\n try {\n maxval = 1 * document.getElementById(spreadsheet.idPrefix+\"graphMaxY\").value;\n } catch (e$) {\n e = e$;\n maxval = null;\n }\n }\n dotSizes = new Array();\n var evenlySpaced = false;\n for (var i = 0; i < nitems; i++) {\n cr = byrow\n ? SocialCalc.rcColname(range.left) + (i + range.top)\n : SocialCalc.rcColname(i + range.left) + range.top;\n cr1 = byrow\n ? SocialCalc.rcColname(range.left - 1 || 1) + (i + range.top)\n : SocialCalc.rcColname(i + range.left) + (range.top - 1 || 1);\n cr2 = byrow\n ? SocialCalc.rcColname(range.left + 1 || 2) + (i + range.top)\n : SocialCalc.rcColname(i + range.left) + (range.top + 1 || 2);\n cell = spreadsheet.sheet.GetAssuredCell(cr);\n if (cell.valuetype.charAt(0) === \"n\") {\n val = cell.datavalue - 0;\n if ((maxval == null || maxval < val) && !isResize) maxval = val;\n if ((minval == null || minval > val) && !isResize) minval = val;\n values.push(val);\n cell = spreadsheet.sheet.GetAssuredCell(cr1);\n if ((range.right === range.left || range.top === range.bottom) && (cell.valuetype.charAt(0) === \"t\" || cell.valuetype.charAt(0) === \"n\")) {\n labels.push(cell.datavalue + \"\");\n if ((maxX == null || maxX < cell.datavalue) && !isResize) maxX = cell.datavalue;\n if ((minX == null || minX > cell.datavalue) && !isResize) minX = cell.datavalue;\n } else {\n labels.push(cr);\n evenlySpaced = true;\n }\n cell = spreadsheet.sheet.GetAssuredCell(cr2);\n if ((range.right === range.left || range.top === range.bottom) && (cell.valuetype.charAt(0) === \"t\" || cell.valuetype.charAt(0) === \"n\"))\n dotSizes.push(cell.datavalue + \"\");\n else\n dotSizes.push(\"5\");\n }\n }\n if (evenlySpaced) {\n for (var i = 0; i < values.length; i++) {\n labels[i] = i;\n }\n if (!isResize) {\n minX = 0;\n maxX = values.length - 1;\n }\n }\n\n return {values: values, labels: labels, dotSizes: dotSizes, minval: minval, maxval: maxval, minX: minX, maxX: maxX};\n };\n\n Graph.MakeLineChart = function(spreadsheet, range, gview, gtype, helpflag, isResize){\n fonc = \"Graph.MakeLineChart\";\n var scc = SocialCalc.Constants;\n var str;\n if (helpflag || !range) {\n str = \"<input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\"><br><br>\" + scc.s_graph_help_intro + SocialCalc.GraphTypesInfo[gtype].display + \".<br><br>\" + scc.s_graph_LineChart_help + \"<br><br><input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\">\";\n str = SocialCalc.LocalizeSubstrings(str);\n gview.innerHTML = str;\n return;\n }\n var data = cellRangeToDisplay2(range, isResize);\n if (!data) {\n gview.innerHTML = scc.s_graph_error_selection;\n return;\n }\n var graphLimits = document.getElementById(spreadsheet.idPrefix + \"graphLimits\");\n graphLimits.style.display = \"block\";\n\n // Create display\n str = \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" style=\\\"width:100%;\\\"><tr><td><canvas id=\\\"\"+spreadsheet.idPrefix+\"myLineCanvas\\\" style=\\\"border:1px solid black;\\\"></canvas></td></tr></table>\";\n gview.innerHTML = str;\n if (!isResize) {\n document.getElementById(spreadsheet.idPrefix+\"graphMinX\").value = data.minX;\n spreadsheet.graphMinX = minX;\n document.getElementById(spreadsheet.idPrefix+\"graphMaxX\").value = data.maxX;\n spreadsheet.graphMaxX = maxX;\n document.getElementById(spreadsheet.idPrefix+\"graphMinY\").value = data.minval;\n spreadsheet.graphMinY = minval;\n document.getElementById(spreadsheet.idPrefix+\"graphMaxY\").value = data.maxval;\n spreadsheet.graphMaxY = maxval;\n }\n var canv = document.getElementById(spreadsheet.idPrefix+\"myLineCanvas\");\n\n // The canvas must be explicitly resized to fill space\n canv.width = 0 + gview.style.width.replace(\"px\", \"\") - 4;\n canv.height = 0 + gview.style.height.replace(\"px\", \"\") - 4;\n\n var ctx = canv.getContext(\"2d\");\n var minX = data.minX, maxX = data.maxX, minval = data.minval, maxval = data.maxval;\n var scaleFactorX = (canv.width - 40) / (maxX - minX);\n var scaleFactorY = (canv.height - 40) / (maxval - minval);\n var topY = canv.height;\n var colorArray = [];\n for (var i = 0; i < data.values.length; i++) {\n var lastX, lastY, drawColor;\n if ((i > 0) && (data.labels[i] * 1 > data.labels[i - 1] * 1)) {\n ctx.moveTo(lastX, topY - lastY);\n ctx.lineTo(scaleFactorX * (data.labels[i] - minX) + 20, topY - (scaleFactorY * (data.values[i] - minval) + 20));\n ctx.stroke();\n } else {\n ctx.beginPath();\n drawColor = getDrawColor();\n colorArray.push(drawColor.replace(\"#\", \"\"));\n ctx.strokeStyle = drawColor;\n ctx.fillStyle = drawColor;\n }\n lastX = scaleFactorX * (data.labels[i] - minX) + 20;\n lastY = scaleFactorY * (data.values[i] - minval) + 20;\n if ((colorArray.length - 1) % 3 === 0) {\n ctx.fillRect(lastX - 3, topY - lastY - 3, 6, 6);\n } else if ((colorArray.length - 1) % 3 === 1) {\n ctx.beginPath();\n ctx.arc(lastX, topY - lastY, 3, 0, Math.PI * 2, false);\n ctx.fill();\n } else {\n ctx.fillRect(lastX, topY - lastY - 3, 2, 8);\n ctx.fillRect(lastX - 3, topY - lastY, 8, 2);\n }\n }\n ctx.stroke();\n for (var i = 0; i < colorArray.length; i++) {\n if (i % 3 === 0)\n colorArray[i] = \"s,\" + colorArray[i] + \",\" + i + \",-1,6\";\n else if (i % 3 === 1)\n colorArray[i] = \"o,\" + colorArray[i] + \",\" + i + \",-1,6\";\n else\n colorArray[i] = \"c,\" + colorArray[i] + \",\" + i + \",-1,10\";\n }\n if (minval <= 0 && maxval >= 0) {\n ctx.beginPath();\n ctx.strokeStyle = \"#000000\";\n ctx.moveTo(0, canv.height - (scaleFactorY * -1 * minval + 20));\n ctx.lineTo(canv.width, canv.height - (scaleFactorY * -1 * minval + 20));\n ctx.stroke();\n graphPlace = 1 - (canv.height - (scaleFactorY * -1 * minval + 20)) / canv.height;\n }\n if (minX <= 0 && maxX >= 0) {\n ctx.beginPath();\n ctx.strokeStyle = \"#000000\";\n ctx.moveTo(scaleFactorX * -1 * minX + 20, 0);\n ctx.lineTo(scaleFactorX * -1 * minX + 20, canv.height);\n ctx.stroke();\n graphPlace = (scaleFactorX * -1 * minX + 20) / canv.width;\n }\n minX -= (maxX - minX) / 23;\n maxX += (maxX - minX) / 23;\n minval -= (maxval - minval) / 18;\n maxval += (maxval - minval) / 18;\n };\n\n Graph.MakeScatterChart = function(spreadsheet, range, gview, gtype, helpflag, isResize){\n fonc = \"Graph.MakeScatterChart\";\n var scc = SocialCalc.Constants;\n var str;\n if (helpflag || !range) {\n str = \"<input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\"><br><br>\" + scc.s_graph_help_intro + SocialCalc.GraphTypesInfo[gtype].display + \".<br><br>\" + scc.s_graph_ScatterChart_help + \"<br><br><input type=\\\"button\\\" value=\" + scc.s_loc_hide_help + \" onclick=\\\"Graph.DoGraph(false,false);\\\">\";\n str = SocialCalc.LocalizeSubstrings(str);\n gview.innerHTML = str;\n return;\n }\n var data = cellRangeToDisplay2(range, isResize);\n if (!data) {\n gview.innerHTML = scc.s_graph_error_selection;\n return;\n }\n var graphLimits = document.getElementById(spreadsheet.idPrefix + \"graphLimits\");\n graphLimits.style.display = \"block\";\n\n // Create display\n str = \"<table cellspacing=\\\"0\\\" cellpadding=\\\"0\\\" style=\\\"width:100%;\\\"><tr><td><canvas id=\\\"\"+spreadsheet.idPrefix+\"myScatterCanvas\\\" style=\\\"border:1px solid black;\\\"></canvas></td></tr></table>\";\n gview.innerHTML = str;\n if (!isResize) {\n document.getElementById(spreadsheet.idPrefix+\"graphMinX\").value = data.minX;\n spreadsheet.graphMinX = minX;\n document.getElementById(spreadsheet.idPrefix+\"graphMaxX\").value = data.maxX;\n spreadsheet.graphMaxX = maxX;\n document.getElementById(spreadsheet.idPrefix+\"graphMinY\").value = data.minval;\n spreadsheet.graphMinY = minval;\n document.getElementById(spreadsheet.idPrefix+\"graphMaxY\").value = data.maxval;\n spreadsheet.graphMaxY = maxval;\n }\n var canv = document.getElementById(spreadsheet.idPrefix+\"myScatterCanvas\");\n\n // The canvas must be explicitly resized to fill space\n canv.width = 0 + gview.style.width.replace(\"px\", \"\") - 4;\n canv.height = 0 + gview.style.height.replace(\"px\", \"\") - 4;\n\n var ctx = canv.getContext(\"2d\");\n var minX = data.minX, maxX = data.maxX, minval = data.minval, maxval = data.maxval;\n var scaleFactorX = (canv.width - 40) / (maxX - minX);\n var scaleFactorY = (canv.height - 40) / (maxval - minval);\n var topY = canv.height;\n\n lastX = scaleFactorX * (data.labels[0] - minX) + 20;\n lastY = scaleFactorY * (data.values[0] - minval) + 20;\n drawColor = getDrawColor();\n ctx.fillStyle = drawColor;\n ctx.beginPath();\n ctx.arc(lastX, topY - lastY, data.dotSizes[0], 0, 2 * Math.PI, false);\n ctx.fill();\n for (var i = 1; i < data.values.length; i++) {\n ctx.moveTo(lastX, topY - lastY);\n lastX = scaleFactorX * (data.labels[i] - minX) + 20;\n lastY = scaleFactorY * (data.values[i] - minval) + 20;\n ctx.beginPath();\n ctx.arc(lastX, topY - lastY, data.dotSizes[i], 0, 2 * Math.PI, false);\n ctx.fill();\n }\n if (minval <= 0 && maxval >= 0) {\n ctx.beginPath();\n ctx.strokeStyle = \"#000000\";\n ctx.moveTo(0, canv.height - (scaleFactorY * -1 * minval + 20));\n ctx.lineTo(canv.width, canv.height - (scaleFactorY * -1 * minval + 20));\n ctx.stroke();\n graphPlace = 1 - (canv.height - (scaleFactorY * -1 * minval + 20)) / canv.height;\n }\n if (minX <= 0 && maxX >= 0) {\n ctx.beginPath();\n ctx.strokeStyle = \"#000000\";\n ctx.moveTo(scaleFactorX * -1 * minX + 20, 0);\n ctx.lineTo(scaleFactorX * -1 * minX + 20, canv.height);\n ctx.stroke();\n graphPlace = (scaleFactorX * -1 * minX + 20) / canv.width;\n }\n minX -= (maxX - minX) / 23;\n maxX += (maxX - minX) / 23;\n minval -= (maxval - minval) / 18;\n maxval += (maxval - minval) / 18;\n };\n\n exports.Graph = Graph;\n})();" }, "$:/plugins/rboue/SocialCalc/Lib/socialcalc.css": { "type": "text/css", "title": "$:/plugins/rboue/SocialCalc/Lib/socialcalc.css", "tags": "[[$:/tags/Stylesheet]]", "text": "/*\n// The optional default CSS style sheet for the SocialCalc package.\n// SocialCalc can run without a style sheet (the default) or with one.\n//\n// (c) Copyright 2008 Socialtext, Inc.\n// All Rights Reserved.\n//\n// The contents of this file are subject to the Artistic License 2.0; you may not\n// use this file except in compliance with the License. You may obtain a copy of \n// the License at http://socialcalc.org/licenses/al-20/.\n//\n// Some of the other files in the SocialCalc package are licensed under\n// different licenses. Please note the licenses of the modules you use.\n//\n// Code History:\n//\n// Initially coded by Dan Bricklin of Software Garden, Inc., for Socialtext, Inc.\n*/\n\nbody:last-child .defaultPeer {\n border-collapse: separate;\n filter: none;\n}\n\n.defaultPeer {\n box-shadow: inset 0 0 0 2px blue;\n -webkit-box-shadow: inset 0 0 0 2px blue;\n -moz-box-shadow: inset 0 0 0 2px blue;\n *background: white;\n filter: progid:DXImageTransform.Microsoft.DropShadow(OffX=1, OffY=1, Color=#0000ff),\n progid:DXImageTransform.Microsoft.DropShadow(OffX=-1, OffY=1, Color=#0000ff),\n progid:DXImageTransform.Microsoft.DropShadow(OffX=1, OffY=-1, Color=#0000ff),\n progid:DXImageTransform.Microsoft.DropShadow(OffX=-1, OffY=-1, Color=#0000ff),\n progid:DXImageTransform.Microsoft.Chroma(Color=#FFFFFF);\n /*\n * concat peer combinations into multishadows:\n inset 0 0 0 4px orange,\n inset 0 0 0 6px yellow,\n inset 0 0 0 8px lime,\n inset 0 0 0 10px cyan,\n inset 0 0 0 12px blue,\n inset 0 0 0 14px purple; \n */\n}\n.defaultComment {background-repeat:no-repeat;background-position:top right;background-image:url(images/sc-commentbg.gif);}\n.defaultCommentNoGridStyle {}\n.defaultHighlightTypeCursor {color:#FFF;background-color:#A6A6A6;}\n.defaultHighlightTypeRange {color:#000;background-color:#E5E5E5;}\n.defaultColname {font-size:small;text-align:center;color:#FFFFFF;background-color:#808080;cursor:e-resize;}\n.defaultSelectedColname {font-size:small;text-align:center;color:#FFFFFF;background-color:#404040;cursor:e-resize;}\n.defaultRowname {font-size:small;text-align:right;color:#FFFFFF;background-color:#808080;}\n.defaultSelectedRowname {font-size:small;text-align:right;color:#FFFFFF;background-color:#404040;}\n.defaultUpperLeft {font-size:small;}\n.defaultSkippedCell {font-size:small;background-color:#CCC;}\n.defaultPaneDivider {font-size:small;background-color:#ECECEC;padding:0px;}\n.cteGriddiv {}\n.defaultInputEcho {background-color:#FFD;border:1px solid #884;\n font-size:small;padding:2px 10px 1px 2px;cursor:default;}\n.TCmain {background-color:#EEE;}\n.TCendcap {background-color:#FFF;}\n.TCpaneslider {background-color:#CCC;}\n.TClessbutton {background-color:#AAA;}\n.TCmorebutton {background-color:#AAA;}\n.TCscrollarea {background-color:#DDD;}\n.TCthumb {background-color:#CCC;}\n.TCPStrackingline {overflow:hidden;position:absolute;z-index:100;}\n.TCTDFSthumbstatus {height:20px;width:auto;border:1px solid black;padding:2px;\n background-color:#FFF;font-size:small;position:absolute;z-index:100;}\n.TDpopupElement {border:1px solid black;padding:1px 2px 2px 2px;text-align:center;background-color:#FFF;\n font-size:7pt;font-family:Verdana,Arial,Helvetica,sans-serif;\n position:absolute;width:auto;z-index:110;}\n\n#te_fullgrid {\n table-layout: fixed;\n}\n\n#te_fullgrid td {\n overflow: hidden;\n word-break: break-all;\n word-wrap: break-word;\n}\n\n#SocialCalc-settings-savecell, #SocialCalc-settings-savesheet {\n background: #AEF;\n font-weight: bold;\n}\n" }, "$:/plugins/rboue/SocialCalc/config.css": { "type": "text/css", "title": "$:/plugins/rboue/SocialCalc/config.css", "tags": "[[$:/tags/Stylesheet]]", "text": "/* Root node */\n.SocialCalcWidget {\n font-family: verdana,helvetica,sans-serif;\n font-size: small;\n margin: 0;\n padding: 0;\n padding-bottom: 4px;\n border: none;\n}\n\n/* Toolbars */\n.SocialCalc-toolbar {\n padding: 8px 8px 8px 8px;\n height: 60px;\n}\n\n/* Comment text area */\n.SocialCalc-commenttext {\n width: 500px;\n height: 32px;\n}\n\n/* Function chooser */\n.SocialCalc-functiondialogbody {\n padding: 8px 8px 8px 8px;\n}\n\n/* Status line */\n.SocialCalc-statusline {\n font-size: 10px;\n padding: 3px 0 2px 0;\n}\n\n/* Fix conflicts with TiddlyWiki defaults\n*/\n.SocialCalcWidget {\n line-height: 10pt;\n}\n.SocialCalcWidget table {\n margin: 0;\n padding: 0;\n border: none;\n}\n.SocialCalcWidget table td {\n margin: 0;\n padding: 0;\n border: none;\n}\n.SocialCalcWidget table td p {\n margin: 0;\n}\n.SocialCalcWidget #te_logo div {\n line-height: 3pt;\n}\n#SocialCalc-functiondialog div {\n padding: 4px 4px 4px 8px;\n}\n\n/* Transparent keyboard management (no more dashed border with focus) */\n.SocialCalcWidget :focus {\n outline: none;\n}\n\n/* Fix color pickers */\n.SocialCalc-colorchooser {\n line-height: 1px;\n}\n\n/* Sheet aspect (cf. SocialCalc.ConstantsSetClasses())\n */\n.SocialCalc-defaultComment { /* cells with non-null comments when grid enabled */\n background-repeat: no-repeat;\n background-position: top right;\n}\n.SocialCalc-defaultCommentNoGrid {} /* cells with non-null comments when grid not enabled */\n.SocialCalc-defaultHighlightTypeCursor {\n color: #FFF;\n background-color: #A6A6A6;\n}\n.SocialCalc-defaultHighlightTypeRange {\n color: #000;\n background-color: #E5E5E5;\n}\n.SocialCalc-defaultColname { /* regular column heading letters, needs a cursor property */\n font-size: small;\n text-align: center;\n color: #FFFFFF;\n background-color: #808080;\n cursor: e-resize;\n}\n.SocialCalc-defaultSelectedColname { /* column with selected cell, needs a cursor property */\n font-size: small;\n text-align: center;\n color: #FFFFFF;\n background-color: #404040;\n cursor: e-resize;\n}\n.SocialCalc-defaultRowname { /* regular row heading numbers */\n font-size: small;\n text-align: right;\n color: #FFFFFF;\n background-color: #808080;\n direction: rtl;\n}\n.SocialCalc-defaultSelectedRowname { /* column with selected cell, needs a cursor property */\n font-size: small;\n text-align: right;\n color: #FFFFFF;\n background-color: #404040;\n} \n.SocialCalc-defaultUpperLeft { /* Corner cell in upper left */\n font-size: small;\n}\n.SocialCalc-defaultSkippedCell { /* used if present for spanned cells peeking into a pane */\n font-size: small;\n background-color: #CCC\n}\n.SocialCalc-defaultPaneDivider { /* used if present for the look of the space between panes */\n font-size: small;\n background-color: #C0C0C0;\n padding: 0px;\n}\n.SocialCalc-cteGriddiv {} /* the TableEditor griddiv element */\n.SocialCalc-defaultInputEcho { /* the popup inputEcho div */\n filter: alpha(opacity=90);\n opacity: .9;\n background-color: #FFD;\n border: 1px solid #884;\n}\n.SocialCalc-TCmain { /* pseudo style (text-align is textAlign) for main div of a table control */\n background-color: #EEE;\n}\n.SocialCalc-TCendcap { /* may be used while waiting for image that may not come */\n background-color: #FFF;\n}\n.SocialCalc-TCpaneslider {\n background-color: #CCC;\n}\n.SocialCalc-TClessbutton {\n background-color: #AAA;\n}\n.SocialCalc-TCmorebutton {\n background-color: #AAA;\n}\n.SocialCalc-TCscrollarea {\n background-color: #DDD;\n}\n.SocialCalc-TCthumb {\n background-color: #CCC;\n}\n.SocialCalc-TCPStrackingline { /* pane slider tracking line display in table control */\n overflow: hidden;\n position: absolute;\n z-index: 100;\n}\n.SocialCalc-TCTDFSthumbstatus { /* vertical thumb dragging status display in table control */\n height: 20px;\n width: auto;\n border: 3px solid #808080;\n overflow: hidden;\n background-color: #FFF;\n font-size: small;\n position: absolute;\n z-index:100;\n}\n.SocialCalc-TDpopupElement { /* tooltip display */\n border: 1px solid black;\n padding: 1px 2px 2px 2px;\n text-align: center;\n background-color: #FFF;\n font-size: 7pt;\n font-family: Verdana,Arial,Helvetica,sans-serif;\n position: absolute;\n width: auto;\n z-index: 110;\n}" }, "$:/plugins/rboue/SocialCalc/LEGAL.txt": { "type": "text/plain", "title": "$:/plugins/rboue/SocialCalc/LEGAL.txt", "text": "SOCIALCALC LEGAL.txt FILE:\n\nLEGAL INFORMATION\n\nThis LEGAL.txt file accompanies the SocialCalc program. It includes notices required by the \nlicenses as well as general legal notices.\n\n=========================================\n COPYRIGHT AND ATTRIBUTION NOTICES\n=========================================\n\nCopyright (C) 2009 Socialtext, Inc. \nAll Rights Reserved.\n\nimage:sc-logo.gif\n\"SocialCalc\"\nhttp://www.socialcalc.org/xoattrib\n\n=========================================\n SOURCE CODE AVAILABILITY NOTICE\n=========================================\n\nThe source code for this product is available from:\nhttp://socialcalc.org/.\n\n=========================================\n GENERAL LEGAL NOTICES\n=========================================\n\nwikiCalc, Garden, and Software Garden are registered trademarks of Software Garden, Inc.\nSocialtext and SocialCalc are registered trademarks of Socialtext, Inc.\nThe Socialtext logo and Dreamcatcher are trademarks of Socialtext, Inc.\n\n=========================================\n LEGAL NOTICES REQUIRED BY THE LICENSE\n=========================================\n\nCHANGES MADE TO THE COVERED CODE (see CPAL Version 1.0 Section 3.3):\n\n2012-04-21:\n Incorporated charting framework from OLPC Sugar into player.coffee.\n\n The pie, line and bar chart tools was developed by Nicholas Doiron,\n an engineering student from Carnegie Mellon University, U.S.A under\n the guidance of Manusheel Gupta.\n\n2008-02-08:\n Original Code started as a translation to JavaScript of code in SocialCalc 1.1.0 plus\n much new code.\n\n Python code for the OLPC XO-1 initially coded by Luke Closs of Socialtext, Inc.\n\n JavaScript initially coded by Dan Bricklin of Software Garden, Inc., for Socialtext, Inc.\n Based in part on the SocialCalc 1.1.0 code written in Perl.\n The SocialCalc 1.1.0 code was:\n Portions (c) Copyright 2005, 2006, 2007 Software Garden, Inc.\n All Rights Reserved.\n Portions (c) Copyright 2007 Socialtext, Inc.\n All Rights Reserved.\n The Perl SocialCalc started as modifications to the wikiCalc(R) program, version 1.0.\n wikiCalc 1.0 was written by Software Garden, Inc.\n Unless otherwise specified, referring to \"SocialCalc\" in comments refers to this\n JavaScript version of the code, not the SocialCalc Perl code.\n\n----------\n\n(Documentation of future changes as the result of Modifications, including the date of \nchange, will go here in this LEGAL.txt file. This documentation may be summaries of \nchanges with the more detailed descriptions included in the actual modified files as \nappropriate.)\n\n==========\n\nTHIRD PARTY CLAIMS (see CPAL Version 1.0 Section 3.4(a)):\n\nNone.\n\n[End of LEGAL.txt]\n\n" }, "$:/plugins/rboue/SocialCalc/LICENSE.txt": { "type": "text/plain", "title": "$:/plugins/rboue/SocialCalc/LICENSE.txt", "text": "SOCIALCALC LICENSE.txt FILE:\n\n=========================================\n ABOUT THIS FILE\n=========================================\n\nThis file includes copies of the Common Public Attribution License (CPAL) and\nthe Artistic License 2.0.\n\nThis product consists of components licensed under different licenses.\nCheck the contents of each file for a statement of the license for that file.\nFiles without license information are licensed under the Artistic License 2.0.\n\n======================================================\n COMMON PUBLIC ATTRIBUTION LICENSE VERSION 1.0 (CPAL)\n======================================================\n\nCommon Public Attribution License Version 1.0 (CPAL)\n\n1. \"Definitions\"\n\n1.0.1 \"Commercial Use\" means distribution or otherwise making the Covered Code \navailable to a third party.\n\n1.1 \"Contributor\" means each entity that creates or contributes to the creation \nof Modifications.\n\n1.2 \"Contributor Version\" means the combination of the Original Code, prior \nModifications used by a Contributor, and the Modifications made by that particular \nContributor.\n\n1.3 \"Covered Code\" means the Original Code or Modifications or the combination of \nthe Original Code and Modifications, in each case including portions thereof.\n\n1.4 \"Electronic Distribution Mechanism\" means a mechanism generally accepted in \nthe software development community for the electronic transfer of data.\n\n1.5 \"Executable\" means Covered Code in any form other than Source Code.\n\n1.6 \"Initial Developer\" means the individual or entity identified as the Initial \nDeveloper in the Source Code notice required by Exhibit A.\n\n1.7 \"Larger Work\" means a work which combines Covered Code or portions thereof with \ncode not governed by the terms of this License.\n\n1.8 \"License\" means this document.\n\n1.8.1 \"Licensable\" means having the right to grant, to the maximum extent possible, \nwhether at the time of the initial grant or subsequently acquired, any and all of \nthe rights conveyed herein.\n\n1.9 \"Modifications\" means any addition to or deletion from the substance or structure \nof either the Original Code or any previous Modifications. When Covered Code is \nreleased as a series of files, a Modification is:\n\nA. Any addition to or deletion from the contents of a file containing Original Code \nor previous Modifications.\n\nB. Any new file that contains any part of the Original Code or previous Modifications.\n\n1.10 \"Original Code\" means Source Code of computer software code which is described in \nthe Source Code notice required by Exhibit A as Original Code, and which, at the time \nof its release under this License is not already Covered Code governed by this License.\n\n1.10.1 \"Patent Claims\" means any patent claim(s), now owned or hereafter acquired, \nincluding without limitation, method, process, and apparatus claims, in any patent \nLicensable by grantor.\n\n1.11 \"Source Code\" means the preferred form of the Covered Code for making modifications \nto it, including all modules it contains, plus any associated interface definition files, \nscripts used to control compilation and installation of an Executable, or source code \ndifferential comparisons against either the Original Code or another well known, \navailable Covered Code of the Contributor�s choice. The Source Code can be in a compressed \nor archival form, provided the appropriate decompression or de-archiving software is \nwidely available for no charge.\n\n1.12 \"You\" (or \"Your\") means an individual or a legal entity exercising rights under, and \ncomplying with all of the terms of, this License or a future version of this License \nissued under Section 6.1. For legal entities, \"You\" includes any entity which controls, \nis controlled by, or is under common control with You. For purposes of this definition, \n\"control\" means (a) the power, direct or indirect, to cause the direction or management \nof such entity, whether by contract or otherwise, or (b) ownership of more than fifty \npercent (50%) of the outstanding shares or beneficial ownership of such entity.\n\n2. Source Code License.\n\n2.1 The Initial Developer Grant.\n\nThe Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive \nlicense, subject to third party intellectual property claims:\n\n(a) under intellectual property rights (other than patent or trademark) Licensable by \nInitial Developer to use, reproduce, modify, display, perform, sublicense and distribute \nthe Original Code (or portions thereof) with or without Modifications, and/or as part \nof a Larger Work; and\n\n(b) under Patents Claims infringed by the making, using or selling of Original Code, to \nmake, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of \nthe Original Code (or portions thereof).\n\n(c) the licenses granted in this Section 2.1(a) and (b) are effective on the date \nInitial Developer first distributes Original Code under the terms of this License.\n\n(d) Notwithstanding Section 2.1(b) above, no patent license is granted: 1) for code \nthat You delete from the Original Code; 2) separate from the Original Code; or 3) for \ninfringements caused by: i) the modification of the Original Code or ii) the combination \nof the Original Code with other software or devices.\n\n2.2 Contributor Grant.\n\nSubject to third party intellectual property claims, each Contributor hereby grants You \na world-wide, royalty-free, non-exclusive license\n\n(a) under intellectual property rights (other than patent or trademark) Licensable by \nContributor, to use, reproduce, modify, display, perform, sublicense and distribute \nthe Modifications created by such Contributor (or portions thereof) either on an \nunmodified basis, with other Modifications, as Covered Code and/or as part of a Larger \nWork; and\n\n(b) under Patent Claims infringed by the making, using, or selling of Modifications \nmade by that Contributor either alone and/or in combination with its Contributor \nVersion (or portions of such combination), to make, use, sell, offer for sale, have \nmade, and/or otherwise dispose of: 1) Modifications made by that Contributor (or \nportions thereof); and 2) the combination of Modifications made by that Contributor \nwith its Contributor Version (or portions of such combination).\n\n(c) the licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date \nContributor first makes Commercial Use of the Covered Code.\n\n(d) Notwithstanding Section 2.2(b) above, no patent license is granted: 1) for any code \nthat Contributor has deleted from the Contributor Version; 2) separate from the \nContributor Version; 3) for infringements caused by: i) third party modifications of \nContributor Version or ii) the combination of Modifications made by that Contributor \nwith other software (except as part of the Contributor Version) or other devices; or \n4) under Patent Claims infringed by Covered Code in the absence of Modifications made \nby that Contributor.\n\n3. Distribution Obligations.\n\n3.1 Application of License.\n\nThe Modifications which You create or to which You contribute are governed by the terms \nof this License, including without limitation Section 2.2. The Source Code version of \nCovered Code may be distributed only under the terms of this License or a future version \nof this License released under Section 6.1, and You must include a copy of this License \nwith every copy of the Source Code You distribute. You may not offer or impose any terms \non any Source Code version that alters or restricts the applicable version of this License \nor the recipients� rights hereunder. However, You may include an additional document \noffering the additional rights described in Section 3.5.\n\n3.2 Availability of Source Code.\n\nAny Modification which You create or to which You contribute must be made available in \nSource Code form under the terms of this License either on the same media as an Executable \nversion or via an accepted Electronic Distribution Mechanism to anyone to whom you made \nan Executable version available; and if made available via Electronic Distribution \nMechanism, must remain available for at least twelve (12) months after the date it \ninitially became available, or at least six (6) months after a subsequent version of that \nparticular Modification has been made available to such recipients. You are responsible \nfor ensuring that the Source Code version remains available even if the Electronic \nDistribution Mechanism is maintained by a third party.\n\n3.3 Description of Modifications.\n\nYou must cause all Covered Code to which You contribute to contain a file documenting the \nchanges You made to create that Covered Code and the date of any change. You must include \na prominent statement that the Modification is derived, directly or indirectly, from \nOriginal Code provided by the Initial Developer and including the name of the Initial \nDeveloper in (a) the Source Code, and (b) in any notice in an Executable version or \nrelated documentation in which You describe the origin or ownership of the Covered Code.\n\n3.4 Intellectual Property Matters\n\n(a) Third Party Claims.\n\nIf Contributor has knowledge that a license under a third party�s intellectual property \nrights is required to exercise the rights granted by such Contributor under Sections 2.1 \nor 2.2, Contributor must include a text file with the Source Code distribution titled \"LEGAL\" \nwhich describes the claim and the party making the claim in sufficient detail that a \nrecipient will know whom to contact. If Contributor obtains such knowledge after the \nModification is made available as described in Section 3.2, Contributor shall promptly \nmodify the LEGAL file in all copies Contributor makes available thereafter and shall take \nother steps (such as notifying appropriate mailing lists or newsgroups) reasonably \ncalculated to inform those who received the Covered Code that new knowledge has been obtained.\n\n(b) Contributor APIs.\n\nIf Contributor�s Modifications include an application programming interface and Contributor \nhas knowledge of patent licenses which are reasonably necessary to implement that API, \nContributor must also include this information in the LEGAL file.\n\n(c) Representations.\n\nContributor represents that, except as disclosed pursuant to Section 3.4(a) above, Contributor \nbelieves that Contributor�s Modifications are Contributor�s original creation(s) and/or \nContributor has sufficient rights to grant the rights conveyed by this License.\n\n3.5 Required Notices.\n\nYou must duplicate the notice in Exhibit A in each file of the Source Code. If it is not \npossible to put such notice in a particular Source Code file due to its structure, then \nYou must include such notice in a location (such as a relevant directory) where a user \nwould be likely to look for such a notice. If You created one or more Modification(s) \nYou may add your name as a Contributor to the notice described in Exhibit A. You must \nalso duplicate this License in any documentation for the Source Code where You describe \nrecipients� rights or ownership rights relating to Covered Code. You may choose to offer, \nand to charge a fee for, warranty, support, indemnity or liability obligations to one or \nmore recipients of Covered Code. However, You may do so only on Your own behalf, and not \non behalf of the Initial Developer or any Contributor. You must make it absolutely clear \nthan any such warranty, support, indemnity or liability obligation is offered by You alone, \nand You hereby agree to indemnify the Initial Developer and every Contributor for any \nliability incurred by the Initial Developer or such Contributor as a result of warranty, \nsupport, indemnity or liability terms You offer.\n\n3.6 Distribution of Executable Versions.\n\nYou may distribute Covered Code in Executable form only if the requirements of Section \n3.1-3.5 have been met for that Covered Code, and if You include a notice stating that the \nSource Code version of the Covered Code is available under the terms of this License, \nincluding a description of how and where You have fulfilled the obligations of Section \n3.2. The notice must be conspicuously included in any notice in an Executable version, \nrelated documentation or collateral in which You describe recipients� rights relating to \nthe Covered Code. You may distribute the Executable version of Covered Code or ownership \nrights under a license of Your choice, which may contain terms different from this License, \nprovided that You are in compliance with the terms of this License and that the license for \nthe Executable version does not attempt to limit or alter the recipient�s rights in the \nSource Code version from the rights set forth in this License. If You distribute the \nExecutable version under a different license You must make it absolutely clear that any \nterms which differ from this License are offered by You alone, not by the Initial Developer, \nOriginal Developer or any Contributor. You hereby agree to indemnify the Initial Developer, \nOriginal Developer and every Contributor for any liability incurred by the Initial Developer, \nOriginal Developer or such Contributor as a result of any such terms You offer.\n\n3.7 Larger Works.\n\nYou may create a Larger Work by combining Covered Code with other code not governed by the \nterms of this License and distribute the Larger Work as a single product. In such a case, You \nmust make sure the requirements of this License are fulfilled for the Covered Code.\n\n4. Inability to Comply Due to Statute or Regulation.\n\nIf it is impossible for You to comply with any of the terms of this License with respect to \nsome or all of the Covered Code due to statute, judicial order, or regulation then You must: \n(a) comply with the terms of this License to the maximum extent possible; and (b) describe the \nlimitations and the code they affect. Such description must be included in the LEGAL file \ndescribed in Section 3.4 and must be included with all distributions of the Source Code. \nExcept to the extent prohibited by statute or regulation, such description must be \nsufficiently detailed for a recipient of ordinary skill to be able to understand it.\n\n5. Application of this License.\n\nThis License applies to code to which the Initial Developer has attached the notice in Exhibit \nA and to related Covered Code.\n\n6. Versions of the License.\n\n6.1 New Versions.\n\nSocialtext, Inc. (\"Socialtext\") may publish revised and/or new versions of the License from \ntime to time. Each version will be given a distinguishing version number.\n\n6.2 Effect of New Versions.\n\nOnce Covered Code has been published under a particular version of the License, You may always \ncontinue to use it under the terms of that version. You may also choose to use such Covered \nCode under the terms of any subsequent version of the License published by Socialtext. No one \nother than Socialtext has the right to modify the terms applicable to Covered Code created \nunder this License.\n\n6.3 Derivative Works.\n\nIf You create or use a modified version of this License (which you may only do in order to \napply it to code which is not already Covered Code governed by this License), You must (a) \nrename Your license so that the phrases \"Socialtext\", \"CPAL\" or any confusingly similar phrase \ndo not appear in your license (except to note that your license differs from this License) and \n(b) otherwise make it clear that Your version of the license contains terms which differ from \nthe CPAL. (Filling in the name of the Initial Developer, Original Developer, Original Code or \nContributor in the notice described in Exhibit A shall not of themselves be deemed to be \nmodifications of this License.)\n\n7. DISCLAIMER OF WARRANTY.\n\nCOVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN \"AS IS\" BASIS, WITHOUT WARRANTY OF ANY KIND, \nEITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS \nFREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK \nAS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE IS WITH YOU. SHOULD ANY COVERED CODE PROVE \nDEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER, ORIGINAL DEVELOPER OR ANY OTHER \nCONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER \nOF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED CODE IS \nAUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.\n\n8. TERMINATION.\n\n8.1 This License and the rights granted hereunder will terminate automatically if You fail to \ncomply with terms herein and fail to cure such breach within 30 days of becoming aware of the \nbreach. All sublicenses to the Covered Code which are properly granted shall survive any \ntermination of this License. Provisions which, by their nature, must remain in effect beyond \nthe termination of this License shall survive.\n\n8.2 If You initiate litigation by asserting a patent infringement claim (excluding declatory \njudgment actions) against Initial Developer, Original Developer or a Contributor (the Initial \nDeveloper, Original Developer or Contributor against whom You file such action is referred to \nas \"Participant\") alleging that:\n\n(a) such Participant�s Contributor Version directly or indirectly infringes any patent, then \nany and all rights granted by such Participant to You under Sections 2.1 and/or 2.2 of this \nLicense shall, upon 60 days notice from Participant terminate prospectively, unless if within \n60 days after receipt of notice You either: (i) agree in writing to pay Participant a mutually \nagreeable reasonable royalty for Your past and future use of Modifications made by such \nParticipant, or (ii) withdraw Your litigation claim with respect to the Contributor Version \nagainst such Participant. If within 60 days of notice, a reasonable royalty and payment \narrangement are not mutually agreed upon in writing by the parties or the litigation claim is \nnot withdrawn, the rights granted by Participant to You under Sections 2.1 and/or 2.2 \nautomatically terminate at the expiration of the 60 day notice period specified above.\n\n(b) any software, hardware, or device, other than such Participant�s Contributor Version, \ndirectly or indirectly infringes any patent, then any rights granted to You by such Participant \nunder Sections 2.1(b) and 2.2(b) are revoked effective as of the date You first made, used, \nsold, distributed, or had made, Modifications made by that Participant.\n\n8.3 If You assert a patent infringement claim against Participant alleging that such \nParticipant�s Contributor Version directly or indirectly infringes any patent where such claim \nis resolved (such as by license or settlement) prior to the initiation of patent infringement \nlitigation, then the reasonable value of the licenses granted by such Participant under Sections \n2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or \nlicense.\n\n8.4 In the event of termination under Sections 8.1 or 8.2 above, all end user license agreements \n(excluding distributors and resellers) which have been validly granted by You or any distributor \nhereunder prior to termination shall survive termination.\n\n9. LIMITATION OF LIABILITY.\n\nUNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, \nOR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ORIGINAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR \nANY DISTRIBUTOR OF COVERED CODE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON \nFOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, \nWITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, \nOR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF \nTHE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR \nDEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY�S NEGLIGENCE TO THE EXTENT APPLICABLE LAW \nPROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF \nINCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.\n\n10. U.S. GOVERNMENT END USERS.\n\nThe Covered Code is a \"commercial item,\" as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), \nconsisting of \"commercial computer software\" and \"commercial computer software documentation,\" as \nsuch terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 \nC.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered \nCode with only those rights set forth herein.\n\n11. MISCELLANEOUS.\n\nThis License represents the complete agreement concerning subject matter hereof. If any provision \nof this License is held to be unenforceable, such provision shall be reformed only to the extent \nnecessary to make it enforceable. This License shall be governed by California law provisions \n(except to the extent applicable law, if any, provides otherwise), excluding its conflict-of-law \nprovisions. With respect to disputes in which at least one party is a citizen of, or an entity \nchartered or registered to do business in the United States of America, any litigation relating to \nthis License shall be subject to the jurisdiction of the Federal Courts of the Northern District \nof California, with venue lying in Santa Clara County, California, with the losing party \nresponsible for costs, including without limitation, court costs and reasonable attorneys� fees \nand expenses. The application of the United Nations Convention on Contracts for the International \nSale of Goods is expressly excluded. Any law or regulation which provides that the language of a \ncontract shall be construed against the drafter shall not apply to this License.\n\n12. RESPONSIBILITY FOR CLAIMS.\n\nAs between Initial Developer, Original Developer and the Contributors, each party is responsible \nfor claims and damages arising, directly or indirectly, out of its utilization of rights under \nthis License and You agree to work with Initial Developer, Original Developer and Contributors to \ndistribute such responsibility on an equitable basis. Nothing herein is intended or shall be \ndeemed to constitute any admission of liability.\n\n13. MULTIPLE-LICENSED CODE.\n\nInitial Developer may designate portions of the Covered Code as Multiple-Licensed. \nMultiple-Licensed means that the Initial Developer permits you to utilize portions of the Covered \nCode under Your choice of the CPAL or the alternative licenses, if any, specified by the Initial \nDeveloper in the file described in Exhibit A.\n\n14. ADDITIONAL TERM: ATTRIBUTION\n\n(a) As a modest attribution to the organizer of the development of the Original Code (\"Original \nDeveloper\"), in the hope that its promotional value may help justify the time, money and effort \ninvested in writing the Original Code, the Original Developer may include in Exhibit B \n(\"Attribution Information\") a requirement that each time an Executable and Source Code or a Larger \nWork is launched or initially run (which includes initiating a session), a prominent display of \nthe Original Developer�s Attribution Information (as defined below) must occur on the graphic user \ninterface employed by the end user to access such Covered Code (which may include display on a \nsplash screen), if any. The size of the graphic image should be consistent with the size of the \nother elements of the Attribution Information. If the access by the end user to the Executable and \nSource Code does not create a graphic user interface for access to the Covered Code, this \nobligation shall not apply. If the Original Code displays such Attribution Information in a \nparticular form (such as in the form of a splash screen, notice at login, an \"about\" display, or \ndedicated attribution area on user interface screens), continued use of such form for that \nAttribution Information is one way of meeting this requirement for notice.\n\n(b) Attribution information may only include a copyright notice, a brief phrase, graphic image and \na URL (\"Attribution Information\") and is subject to the Attribution Limits as defined below. For \nthese purposes, prominent shall mean display for sufficient duration to give reasonable notice to \nthe user of the identity of the Original Developer and that if You include Attribution Information \nor similar information for other parties, You must ensure that the Attribution Information for the \nOriginal Developer shall be no less prominent than such Attribution Information or similar \ninformation for the other party. For greater certainty, the Original Developer may choose to \nspecify in Exhibit B below that the above attribution requirement only applies to an Executable \nand Source Code resulting from the Original Code or any Modification, but not a Larger Work. The \nintent is to provide for reasonably modest attribution, therefore the Original Developer cannot \nrequire that You display, at any time, more than the following information as Attribution \nInformation: (a) a copyright notice including the name of the Original Developer; (b) a word or \none phrase (not exceeding 10 words); (c) one graphic image provided by the Original Developer; and \n(d) a URL (collectively, the \"Attribution Limits\").\n\n(c) If Exhibit B does not include any Attribution Information, then there are no requirements for \nYou to display any Attribution Information of the Original Developer.\n\n(d) You acknowledge that all trademarks, service marks and/or trade names contained within the \nAttribution Information distributed with the Covered Code are the exclusive property of their \nowners and may only be used with the permission of their owners, or under circumstances otherwise \npermitted by law or as expressly set out in this License.\n\n15. ADDITIONAL TERM: NETWORK USE.\nThe term \"External Deployment\" means the use, distribution, or communication of the Original Code \nor Modifications in any way such that the Original Code or Modifications may be used by anyone \nother than You, whether those works are distributed or communicated to those persons or made \navailable as an application intended for use over a network. As an express condition for the grants \nof license hereunder, You must treat any External Deployment by You of the Original Code or \nModifications as a distribution under section 3.1 and make Source Code available under Section 3.2.\n\nEXHIBIT A. Common Public Attribution License Version 1.0.\n\n\"The contents of this file are subject to the Common Public Attribution License Version 1.0 (the \n\"License\"); you may not use this file except in compliance with the License. You may obtain a copy \nof the License at _____________. The License is based on the Mozilla Public License Version 1.1 but \nSections 14 and 15 have been added to cover use of software over a computer network and provide for \nlimited attribution for the Original Developer. In addition, Exhibit A has been modified to be \nconsistent with Exhibit B.\n\nSoftware distributed under the License is distributed on an \"AS IS\" basis, WITHOUT WARRANTY OF ANY \nKIND, either express or implied. See the License for the specific language governing rights and \nlimitations under the License.\n\nThe Original Code is______________________.\n\nThe Original Developer is not the Initial Developer and is __________. If left blank, the Original \nDeveloper is the Initial Developer.\n\nThe Initial Developer of the Original Code is ____________. All portions of the code written by \n___________ are Copyright (c) _____. All Rights Reserved.\n\nContributor ______________________.\n\nAlternatively, the contents of this file may be used under the terms of the _____ license (the \n[___] License), in which case the provisions of [______] License are applicable instead of those \nabove.\n\nIf you wish to allow use of your version of this file only under the terms of the [____] License \nand not to allow others to use your version of this file under the CPAL, indicate your decision by \ndeleting the provisions above and replace them with the notice and other provisions required by \nthe [___] License. If you do not delete the provisions above, a recipient may use your version of \nthis file under either the CPAL or the [___] License.\"\n\n[NOTE: The text of this Exhibit A may differ slightly from the text of the notices in the Source \nCode files of the Original Code. You should use the text of this Exhibit A rather than the text \nfound in the Original Code Source Code for Your Modifications.]\n\nEXHIBIT B. Attribution Information\n\nWhen the TableEditor is producing and/or controlling the display the Graphic Image must be\ndisplayed on the screen visible to the user in a manner comparable to that in the \nOriginal Code. The Attribution Phrase must be displayed as a \"tooltip\" or \"hover-text\" for\nthat image. The image must be linked to the Attribution URL so as to access that page\nwhen clicked. If the user interface includes a prominent \"about\" display which includes\nfactual prominent attribution in a form similar to that in the \"about\" display included\nwith the Original Code, including Socialtext copyright notices and URLs, then the image\nneed not be linked to the Attribution URL but the \"tool-tip\" is still required.\n\nAttribution Copyright Notice:\n\n Copyright (C) 2009 Socialtext, Inc.\n All Rights Reserved.\n\nAttribution Phrase (not exceeding 10 words): SocialCalc\n\nAttribution URL: http://www.socialcalc.org\n\nGraphic Image: The contents of the sc-logo.gif file in the Original Code or\na suitable replacement from http://www.socialcalc.org/licenses specified as\nbeing for SocialCalc.\n\nDisplay of Attribution Information is required in Larger Works which are defined \nin the CPAL as a work which combines Covered Code or portions thereof with code \nnot governed by the terms of the CPAL.\n\n\n=========================================\n THE ARTISTIC LICENSE 2.0\n=========================================\n\n\t\t The Artistic License 2.0\n\n\t Copyright (c) 2000-2006, The Perl Foundation.\n\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\nPreamble\n\nThis license establishes the terms under which a given free software\nPackage may be copied, modified, distributed, and/or redistributed.\nThe intent is that the Copyright Holder maintains some artistic\ncontrol over the development of that Package while still keeping the\nPackage available as open source and free software.\n\nYou are always permitted to make arrangements wholly outside of this\nlicense directly with the Copyright Holder of a given Package. If the\nterms of this license do not permit the full use that you propose to\nmake of the Package, you should contact the Copyright Holder and seek\na different licensing arrangement. \n\nDefinitions\n\n \"Copyright Holder\" means the individual(s) or organization(s)\n named in the copyright notice for the entire Package.\n\n \"Contributor\" means any party that has contributed code or other\n material to the Package, in accordance with the Copyright Holder's\n procedures.\n\n \"You\" and \"your\" means any person who would like to copy,\n distribute, or modify the Package.\n\n \"Package\" means the collection of files distributed by the\n Copyright Holder, and derivatives of that collection and/or of\n those files. A given Package may consist of either the Standard\n Version, or a Modified Version.\n\n \"Distribute\" means providing a copy of the Package or making it\n accessible to anyone else, or in the case of a company or\n organization, to others outside of your company or organization.\n\n \"Distributor Fee\" means any fee that you charge for Distributing\n this Package or providing support for this Package to another\n party. It does not mean licensing fees.\n\n \"Standard Version\" refers to the Package if it has not been\n modified, or has been modified only in ways explicitly requested\n by the Copyright Holder.\n\n \"Modified Version\" means the Package, if it has been changed, and\n such changes were not explicitly requested by the Copyright\n Holder. \n\n \"Original License\" means this Artistic License as Distributed with\n the Standard Version of the Package, in its current version or as\n it may be modified by The Perl Foundation in the future.\n\n \"Source\" form means the source code, documentation source, and\n configuration files for the Package.\n\n \"Compiled\" form means the compiled bytecode, object code, binary,\n or any other form resulting from mechanical transformation or\n translation of the Source form.\n\n\nPermission for Use and Modification Without Distribution\n\n(1) You are permitted to use the Standard Version and create and use\nModified Versions for any purpose without restriction, provided that\nyou do not Distribute the Modified Version.\n\n\nPermissions for Redistribution of the Standard Version\n\n(2) You may Distribute verbatim copies of the Source form of the\nStandard Version of this Package in any medium without restriction,\neither gratis or for a Distributor Fee, provided that you duplicate\nall of the original copyright notices and associated disclaimers. At\nyour discretion, such verbatim copies may or may not include a\nCompiled form of the Package.\n\n(3) You may apply any bug fixes, portability changes, and other\nmodifications made available from the Copyright Holder. The resulting\nPackage will still be considered the Standard Version, and as such\nwill be subject to the Original License.\n\n\nDistribution of Modified Versions of the Package as Source \n\n(4) You may Distribute your Modified Version as Source (either gratis\nor for a Distributor Fee, and with or without a Compiled form of the\nModified Version) provided that you clearly document how it differs\nfrom the Standard Version, including, but not limited to, documenting\nany non-standard features, executables, or modules, and provided that\nyou do at least ONE of the following:\n\n (a) make the Modified Version available to the Copyright Holder\n of the Standard Version, under the Original License, so that the\n Copyright Holder may include your modifications in the Standard\n Version.\n\n (b) ensure that installation of your Modified Version does not\n prevent the user installing or running the Standard Version. In\n addition, the Modified Version must bear a name that is different\n from the name of the Standard Version.\n\n (c) allow anyone who receives a copy of the Modified Version to\n make the Source form of the Modified Version available to others\n under\n\t\n (i) the Original License or\n\n (ii) a license that permits the licensee to freely copy,\n modify and redistribute the Modified Version using the same\n licensing terms that apply to the copy that the licensee\n received, and requires that the Source form of the Modified\n Version, and of any works derived from it, be made freely\n available in that license fees are prohibited but Distributor\n Fees are allowed.\n\n\nDistribution of Compiled Forms of the Standard Version \nor Modified Versions without the Source\n\n(5) You may Distribute Compiled forms of the Standard Version without\nthe Source, provided that you include complete instructions on how to\nget the Source of the Standard Version. Such instructions must be\nvalid at the time of your distribution. If these instructions, at any\ntime while you are carrying out such distribution, become invalid, you\nmust provide new instructions on demand or cease further distribution.\nIf you provide valid instructions or cease distribution within thirty\ndays after you become aware that the instructions are invalid, then\nyou do not forfeit any of your rights under this license.\n\n(6) You may Distribute a Modified Version in Compiled form without\nthe Source, provided that you comply with Section 4 with respect to\nthe Source of the Modified Version.\n\n\nAggregating or Linking the Package \n\n(7) You may aggregate the Package (either the Standard Version or\nModified Version) with other packages and Distribute the resulting\naggregation provided that you do not charge a licensing fee for the\nPackage. Distributor Fees are permitted, and licensing fees for other\ncomponents in the aggregation are permitted. The terms of this license\napply to the use and Distribution of the Standard or Modified Versions\nas included in the aggregation.\n\n(8) You are permitted to link Modified and Standard Versions with\nother works, to embed the Package in a larger work of your own, or to\nbuild stand-alone binary or bytecode versions of applications that\ninclude the Package, and Distribute the result without restriction,\nprovided the result does not expose a direct interface to the Package.\n\n\nItems That are Not Considered Part of a Modified Version \n\n(9) Works (including, but not limited to, modules and scripts) that\nmerely extend or make use of the Package, do not, by themselves, cause\nthe Package to be a Modified Version. In addition, such works are not\nconsidered parts of the Package itself, and are not subject to the\nterms of this license.\n\n\nGeneral Provisions\n\n(10) Any use, modification, and distribution of the Standard or\nModified Versions is governed by this Artistic License. By using,\nmodifying or distributing the Package, you accept this license. Do not\nuse, modify, or distribute the Package, if you do not accept this\nlicense.\n\n(11) If your Modified Version has been derived from a Modified\nVersion made by someone other than you, you are nevertheless required\nto ensure that your Modified Version complies with the requirements of\nthis license.\n\n(12) This license does not grant you the right to use any trademark,\nservice mark, tradename, or logo of the Copyright Holder.\n\n(13) This license includes the non-exclusive, worldwide,\nfree-of-charge patent license to make, have made, use, offer to sell,\nsell, import and otherwise transfer the Package with respect to any\npatent claims licensable by the Copyright Holder that are necessarily\ninfringed by the Package. If you institute patent litigation\n(including a cross-claim or counterclaim) against any party alleging\nthat the Package constitutes direct or contributory patent\ninfringement, then this Artistic License to you shall terminate on the\ndate that such litigation is filed.\n\n(14) Disclaimer of Warranty:\nTHE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS \"AS\nIS\" AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED\nWARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR\nNON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL\nLAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL\nBE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL\nDAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n[End of LICENSE.txt]\n\n\n" }, "$:/plugins/rboue/SocialCalc/CHANGES.txt": { "type": "text/plain", "title": "$:/plugins/rboue/SocialCalc/CHANGES.txt", "text": "SocialCalc sources modification\n-------------------------------\n\nAll modifications are under if(TiddlyWiki) test or identified with comments (\"*tiddlywiki*\" string).\n\nVersion 1.0.0 : 2015-02-01\n formula1.js :\n Modify Sheet Cache to handle sheet data in tiddlers.\n socialcalc-3.js :\n Add a callback to monitor commands.\n Replace images or icon's url by tiddler images.\n Modify link behaviour to handle specific TiddlyWiki URL's like <tw:a-tiddler-to-get>.\n socialcalcpopup.js :\n Replace images or icon's url by tiddler images.\n socialcalcspreadsheetcontrol.js and socialcalcviewer.js :\n Add a TiddlyWiki interface object.\n Adapt visual interface to tiddler's smallness.\n Replace images or icon's url by tiddler images.\n Add class attribute to essential DOM elements.\n Enhance events and keyboard management : switch between widget's sheet pages.\n socialcalctableeditor.js :\n Implement a copy functionnality (Ctrl-s).\n Enhance events and keyboard management : grid navigation without browser's interception and\n focus management.\n Replace images or icon's url by tiddler images.\n Other :\n Enhance graph visual and behaviour.\n Add an export to tiddler functionality.\n" }, "$:/plugins/rboue/SocialCalc/Lib/Images/export.png": { "type": "image/png", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/export.png", "text": "iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAMAAABhEH5lAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAADeUExURf///ygoKHx8fDExMTAwMDQ0NCkpKTMzMy0tLSYmJnl5eTIyMv7+/vn5+eTk5Dg4ODs7O+zs7CwsLEZGRsrKyioqKkJCQvv7+/T09P39/XZ2dn5+fnp6evz8/ODg4BsbG2ZmZra2tjU1NcbGxsjIyCIiIsDAwF5eXsPDwzc3NzY2NmJiYmxsbHh4eObm5m9vby8vL+Xl5UFBQaamplBQUG1tbbCwsFtbW7m5ubKyspeXl9/f34uLi5WVlYmJiYiIiJ2dncHBwfb29vHx8Z6eniAgIJGRkVpaWiEhIa6urtMWpG0AAACnSURBVBjThY/lDsJAEISvdnvXQr3F3d3dHd7/hagAIW0C82ey32Y3Mwj9VDSMxHQkiPK5VOLrRuvKcsuibMaftdFkbKuKIgBQMeaS6ZBi0uc5TgKQaDKO0AIT+EggkEUnQwfgdcwwDC8AKVYROljAYXXW67CswZNm3fl0dpbLgReoXWmUXL9S8nglqZGy5/vL7R2uYPpu3nfBFkd7Eyq7XYfQao7+6gkNmwxuhUmepgAAAABJRU5ErkJggg==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-1x1.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-1x1.gif", "text": "R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAEBMgA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-aligncenter.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-aligncenter.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIdjI+py+0PD5i02hnh3bkb62XbGD4jUJonlbbu+xYAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-alignleft.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-alignleft.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIdjI+py+0PowO02ktlw1jH7oXcCITLaEpklrbumxQAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-alignright.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-alignright.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIejI+py+0PEZi02hlzuFf7030KRwJiRp5OianuC2cFADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-bordersoff.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-bordersoff.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIdjI+pywr4TjSz2YuzxrXDDYai6EnfiKZqUFLnGhYAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-borderson.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-borderson.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIwjI+pywoPowSIHmtw0Lz6+2XhNnbXhD7lCraiS8LmS8d1mrK3bvezz/vhUI2i8VgAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-chooserarrow.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-chooserarrow.gif", "text": "R0lGODlhBQAKAMQCAAAAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAFAAoAAAUTYCCMwieOn4mmYsq6rVqeAk2SIQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-commentbg.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-commentbg.gif", "text": "R0lGODlhBAAEAJECAP////8CAv///wAAACH5BAEAAAIALAAAAAAEAAQAAAIHRC4WkstQAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-copy.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-copy.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI4jI+pEOytopzwgIvzlWx26HyRiITaY4hksqbNiYIv1YIYa5U092quG9qNhIuer1b7LWAZivM5KQAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-cursorinsertleft.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-cursorinsertleft.gif", "text": "R0lGODlhBAAEAIAAAP///////yH5BAEAAAEALAAAAAAEAAQAAAIFRB6GelAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-cursorinsertup.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-cursorinsertup.gif", "text": "R0lGODlhBAAEAIAAAP///////yH5BAEAAAEALAAAAAAEAAQAAAIFRB6GelAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-cut.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-cut.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIujI+pCNvL0oNnGkvDxHln1XBf+DmleUZip6VX5XolQFc15cloq4NwD7pphC5IAQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-defaultcolor.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-defaultcolor.gif", "text": "R0lGODlhBAAEAIAAAKampv///yH5BAEAAAEALAAAAAAEAAQAAAIFRB6GelAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-deletecol.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-deletecol.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI2jI+pwHzwGjQzVFTz25Rbj3laR37lJabaaJrQxMbp2cHzt94ozbdyGer9fCCdRHRUKJfMZqAAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-delete.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-delete.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIrjI+pywrxIpyy2fTuXBmz3hmgNTYh5V0n550rUn6HO8uOrWq6xKOvDgwCCwA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-deleterow.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-deleterow.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIvjI+pwO3PDlDUTFvpDTtLCYWNR1ZbV05oonIf1mZxidX0LeYvfd6unQLlIL4iqQAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-divider1.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-divider1.gif", "text": "R0lGODlhAQAUAIAAAJmZmQAAACH5BAAAAAAALAAAAAABABQAAAIEhI+ZBQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-drag-handles.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-drag-handles.gif", "text": "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" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-drag-handles.png": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-drag-handles.png", "text": "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" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-endcap-h.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-endcap-h.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAITwBNmSo1UGCpgwILEiQ48J/DhxAjQiwlsaJEihYz/jOlMSPGjhdBVuQoMiLJkg9Poty48uHHlS9RqkQZs+RMmy0d1hR5U+RCgwMZLmQYNCAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-endcap-v.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-endcap-v.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAISgD/CRxIsGDBUqVMmUq4EKHChg8TljJI8aCpihj/KcxYESFHihs/WhRZcCFJgiZPCkyocuXFliFVeoT5UmVKmzVPsmy50+ZEngEBADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-filldown.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-filldown.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAJAjI+pAe3vDECTplola2xPbEUfBx6ZZnUmxJaoeb3dN9eqfKPnmat7C5HxhkKdMUdM/YARZEyZgoU4uCRvgTUUAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-fillright.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-fillright.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI7jI+pwO3fDEDz1HAlnlx7u2GUmJFddZXZClLQ63xiO4MM+akh2413n0qwaCqYUYFMKpMpI2zJhEqnigIAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-formuladialog.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-formuladialog.gif", "text": "R0lGODlhEgAMAIAAAAQEBP///yH5BAEAAAEALAAAAAASAAwAAAIjjI+pAb3rwJEMUnNrcljlxmXdBI6IyGnndomqlKpyuZnPbRQAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-hidecol.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-hidecol.gif", "text": "R0lGODlhFAAUAIABAP///wAAACH5BAEAAAEALAAAAAAUABQAAAIyjI+pwHzwGjQzVFTz25Rbj3laR37lJaanaiZj+8YgK6+2S+d3eNfw3JOIhIqi8YgMFAAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-hiderow.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-hiderow.gif", "text": "R0lGODlhFAAUAIABAP///wAAACH5BAEAAAEALAAAAAAUABQAAAIrjI+pwO3PDlDUTFvpDTtLCYWNR5bm+U0qx64dCsekSH/n9no4itOhDEwUAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-insertcol.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-insertcol.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI7jI+pwGz9GjjzxVpD3td6TXXgx2nOiJZQGnpryZpYG7+0esL4TFKSdAv9YrVcsIckInS05Q24gCqm0wIAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-insertrow.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-insertrow.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAItjI+pwO3fDFD0zHDrkppeCD6dNVaMF4pJCq1sVCJnLJtvi9Fcrn86f8P9hooCADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-hd.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-hd.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIjABNmSpFcCDBgqUEJhQ4ENu1a9gcRpwIUSJEgeHCiROnMSPHjR01iiP4r6TJkyhNJkyJkkzKlSxLkimTcmDMf2Vy1iwVM6dOlDBR+vx5kmTLoTSB8hSK9KUpljNzukRpE6rPmk97ElWZNeZMpzdl7gwbkyDHjGg/nvWYUeBEiW8rRqx48KBChQsNHgwIADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-hh.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-hh.gif", "text": "R0lGODlhFAAUAKIAANfX1+Li4uHh4djY2KWlpaampv///wAAACH5BAAAAAAALAAAAAAUABQAAANWSFRb3C6qOEC9I+s9XBBg8IljKHyMoa5suypuS7hOvNYtHkd0YS8w2cwF8cmMLMiiR5voXkgWg3f8TZi2Kda6zXZtzRMJRP6UQQqNpbLmaCTTOHyiSAAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-hn.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-hn.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIiQBNlRpYypRBgQUPFiRoCptDh9ciPpSI7VpFg+HEhcvIcaPHjRrDCVxHsqTJkyULojxZqqQ6kgNXpmzJkubKhChjrhRoMKepmwpRjqzJ0+ZMoUV/slR6kmfPpTIXMp35cudTk0NlXi25dSdSmWDXDQSZMWTZsiHFDXzItm3FiQYHxkW4kCFCUwEBADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-vd.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-vd.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIjQBLlTJFcKDBgaYECixoClu4fxAjSpQYDltCbOImaowoDttAjBs3ViR47WHIiRU/mjwZcWTDjCw5WizlUGOZMhpH0oQZ8eZNlB5fSvTpU2JHlRHJkCG6lOO1iyaXLi0jVSnElA0fMiVatCPBmjGvBgUbVifIsP+8CkUb7hpStF5prozpMiFCgnYXKiwYEAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-vh.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-vh.gif", "text": "R0lGODlhFAAUAKIAANfX1+Hh4eLi4tjY2KWlpaampv///wAAACH5BAAAAAAALAAAAAAUABQAAANjWErFvY0wR4YwOGstgATXJmIBoADBOAoDA6oiywwprAVD89oZ29AiRqxVAGoehQ1OV8MgJZxWJWR4OBQ9UzEUUUSEBlkBVfVOzkmxhdfLTdkk0xuubvJ8W7hhmafnvFZPV2cJADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-vn.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-less-vn.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIlQBLCTRVypRBgQMJFjxYCpu4dRAjRlQnMRw2gg4hUpTIcZ1FgdjCdRzpEVvBjCQ5WsQoMqVEcSZNoXQJEWbBaw85Cuy4UmbLiApLbax5UWZOiAQNEqxYNOQ6igcVGoxo0yjEhVGTQuyZMSlCr0thGpw5dOTHhkdp2iyFk2ZErj9TUhRrqq3bdXSd3l2JsK/UggMBlwoIADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-linkdialog.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-linkdialog.gif", "text": "R0lGODlhEgAMAIAAAAQEBP///yH5BAEAAAEALAAAAAASAAwAAAIejI+py+0BYkRyGpAwzPcdDVZit3ml9pHpVVGtCTsFADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-linkout.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-linkout.gif", "text": "R0lGODlhFAALANUCAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAIALAAAAAAUAAsAAAYwQIEQQCwajcLhkRhoOpGCZdHZREqN1KuUGtAen1UvMwzoip/aKJYsVU7N6aS4mAwCADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-lockbg.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-lockbg.gif", "text": "R0lGODlhBAAEAJECAP////8CAv///wAAACH5BAEAAAIALAAAAAAEAAQAAAIHRC4WkstQAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-lock.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-lock.gif", "text": "R0lGODlhDQAUAMIGAGFhYbm5ucLCwt3d3fHx8f39/QAAAAAAACH5BAEKAAcALAAAAAANABQAAAMqeLrc/jDKuYq1DyvNSvNfKFYdYZ6mRkTgunFtJx/uNtcHaOfse/0cCiUBADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-logo.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-logo.gif", "text": "R0lGODlhEAAQANU5AJeXl5qamufn55ubm/X19dbW1q2trYGBgYyMjLe3t8PDw+Dg4IuLi4aGhllZWdvb28LCwmVlZWZmZm1tbW9vb66urubm5sXFxYeHh25ublpaWmlpadra2qKiooCAgGpqanh4eJCQkOvr68zMzHNzc5GRkcfHx9zc3MbGxqSkpGNjY1JSUqysrPT09PLy8vPz89DQ0HZ2dnd3d7i4uM/Pz2BgYKGhoVFRUVBQUP///wAAAAAAAAAAAAAAAAAAAAAAACH5BAEAADkALAAAAAAQABAAAAbEwJyL5prJYghGLDYbWnICBw4HcIk2tZELMHU8bLewLVeo1QI52hRng61nuUGDNCA8cOHZ7HAAqDIQOTkEERMAHgczMS9QeDaPYDgtOS9HBAsDJXCCaR0BBQsyIB81KTQ0nIIwCWYUEmYhNDCpOTAVZhEyARgYF7OpKAMGRjKMCysajIITNwSUMjMINgo3OAYwNBfVCjYMMxzVbCYNCQYBJyx4N9xTN2MQZhVpazYW4QgvZTUJW+2oAjZoKJLhKgY0gKiCAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-main-h.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-main-h.gif", "text": "R0lGODlhCgAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAACgAUAAAIKgBVuXoFi5UqVaxeufrHsKHDhxAjSpxIsaLFixgzatzIcWKpj6ZKhRwZEAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-main-v.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-main-v.gif", "text": "R0lGODlhFAAKAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAKAAAINABN/RtIsKBBgqoEHlxY0FUphhD/vVIY8SAsihULssKYcaCqhx0LpgIZcuAqkiVdcez4KiAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-merge.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-merge.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIxjI+pywoBnpQQvobRNbueDmpiRkbmiUZjuWYh6XFwbKV2NzvtK3973phUVEIc8IgoAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-hd.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-hd.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIjgBNlRJoqmCpgQUFIkRoCts1bA4hSpzo8OFBceEyZsQoriNHjBkL/htJsqRJkiJNljlpUuDJMmRYkhz4ssxKmTRVkrEp06VKmzxPpiy5E+jNkjlL2ty5U6ipk0ybCi0FFSjOpz+POq0pc+RQkjG7/jsotqcpjRo7hgOZNuPAiBCvPYw4d+JBgwwXKiQoMCAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-hh.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-hh.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIhQBLmRo4sJRAggYFHjR47Rq2hw8bQnQIEdvAcOIyhtuIcaPGjuEE/htJsqRJkqZKnVR5sqRIky9b/jN4kqDMmSxdKpQ5sGbKnitNBUXoM+jCojBTxiwJVGdTk09HKr25dGTVpDVvWs2pFaopjxnFeewYFqO4gRXTVpSI7dpPgnALJkRYKiAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-hn.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-hn.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIiQBLCSxlimBBggNNHUSIraHDaw6xQYyIrWA4ceIuYrwYTqNHcQrXiRSpbqTJkwRPriul8mRBlS9HljQZ0mXMlilRCjTVct3NkQWDtqwp86BCni5Z6jQKEylNhTltNiWaVOXOnj6V0tSK0ylQrCKpgn2qEWPGjmY3oi0ocSLFiNcmDpxrEGHdugEBADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-vd.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-vd.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIlABNlTJFsNTAgQINClxIEJu4fxAjSpQoDttAbOEmaoxYsWHGjRrDXWv4EOREkRdLmowYDhvJlRJbGnT4r0wZMjZx5rT5r+LMjzdt7uT5T6YpjBGFktFZhqVFU9c+QgwqlOLIUkglCm0a0+VRlUm5UvSaFWZRsmBXGqVptufIo1JhGo3atqdLrHHVXkNY8OBCvwQLBgQAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-vh.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-vh.gif", "text": "R0lGODlhFAAUAKIAANfX1+Hh4eLi4tjY2KWlpaampv///wAAACH5BAAAAAAALAAAAAAUABQAAANkSEW6vLDANoS5OGcxZNUgxjFfCAYAaZkaqgwB23YELG/01yj8Uxichc3AkxgZl1FtZXDsCBiUMIaJSHAe5sXxywRoAGpmAQoWSjfDd5q+rGvi2+gcl63PWllw2VYPdkYSPkc9CQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-vn.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-more-vn.gif", "text": "R0lGODlhFAAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAUAAAIjwBLlTIlcCDBggcHGjSFLdy6hxAjRhSHzRRDhxIzPgyHTeA1h+o0SqRIEJs4kRk5CmyIcmTHUixFhoTIseRJhQRzCiS4TiXMk+sWKlS48dpAkxBx6oRIcSXQhxYXRqx5UaLBUhJrwsQY0WJGkqU+tpxa8edYpi9jnlXJ8OlYcUbNnl0HFulctgstHsyp92pAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movefrom.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movefrom.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAI7jI+pwO2sDJQHBBstvnUnvIURR5UeMpHcWanhg5ZuS8+2JFK5Xqce2KtdHkThKHNMspLDBvOTehqliQIAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movefromoff.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movefromoff.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAIwjI+pEOwNlVyTzXveixRjHVndBZRixqHGeX4UyLGeOscICK/1uOt9Y2p5TD9fEVEAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-moveinsert.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-moveinsert.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAI4jI+pkOAPnWGIqonrPdTi+ARds2WeKILMqJUsWprcuUxgTEt4HcP8LKFlNkKYykdyEXcXVaQXKwAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-moveinsertoff.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-moveinsertoff.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAIzjI+pkOzxmJGqwtlsXvfdf1AaiESfJI4baaFhqgHyDJdLreJ2lXpq3MKYfkEe0WjyHREFADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movepaste.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movepaste.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAI2jI+poL0ODYtu0nfxAbx7LiVWM42BKYYI83WnWkbxydLta3uyWK+uOasIc7+hMQVBSVqfjKMAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movepasteoff.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-movepasteoff.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAIxjI+poL0ODYtu0nfxYTx0a2VT6InNV6ajZHpg2anATGcbya6Ibj8ozurZgLBiTIgoAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-multilinedialog.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-multilinedialog.gif", "text": "R0lGODlhEgAMAIAAAAQEBP///yH5BAEAAAEALAAAAAASAAwAAAIWjI+JwO0KY3JA2htow/zo30lbSJZBAQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-paneslider-h.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-paneslider-h.gif", "text": "R0lGODlhCQAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAACQAUAAAIZgBLmRpoSqDBa9gSKiyITZxDceGuDcQW7p/FiKVKXat4UaIpihb/icM2kaNIkh/FhQyHsuFKbAJBWhxZ8JrKmTBThqRZyiVOhiZ5+hR5TaDNnRJ73vzHsuRDljGxXUOYkGBBgxkDAgA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-paneslider-v.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-paneslider-v.gif", "text": "R0lGODlhFAAJAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAJAAAIWQBNCTRViiDBggUFIkSI7Rq2hw8dQpz4UCA2cRjDaRSncSNGjNgKXvxHsqRJk+GuEcQW7qTLkilLlRr50qU4bBbDfeTIsePOlCshXhsasehEmQcHIjy4MGFAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-pasteformats.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-pasteformats.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI6jI+pwO2tAjAT1ZruuxFH2YHTKIafxCxnmZUe2Z6wtc4HiVNgbO735/EJfyrKJlWUuYaqXHBxfK4UBQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-paste.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-paste.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI7jI+pwO2tAjAT1ZruuxFH2YHTeHjldy7L5lCi+3GZtIG2hXIkQ/OpeVMFXSwbEPgrKnPMWLPDgqCmgQIAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-peerbg.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-peerbg.gif", "text": "R0lGODlhBAAEAJEAAP////8AAP///wAAACH5BAEAAAIALAAAAAAEAAQAAAIHjHESIMJdAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-range2.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-range2.gif", "text": "R0lGODlhBAAEAIAAAKampv///yH5BAEAAAEALAAAAAAEAAQAAAIFRB6GelAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-recalc.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-recalc.gif", "text": "R0lGODlhFAAUAMQBAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAEAAAEALAAAAAAUABQAAAU7YCCOZGmeAYCuKaCyKem+byzL7qjW7Sz6uhMPGOP9cLTgigjT5ZpIaFSqrFKFM+MvC9M2mV5T+EpehQAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-redo.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-redo.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIwjI+pyx0Aozuxgmmtq1Qy310fpICJaaDhoj5k+Z5xmskiotnsvLLjPekFhcOikVEAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-scrollarea-h.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-scrollarea-h.gif", "text": "R0lGODlhCgAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAACgAUAAAIPwBNlTJFcKDAUtiwXUvIMGG4hxDDiXu4rqLFi/8yatzIsaPHjyBDihxJsqTJiyjXSZQ4EaI4hQ0ZXhtI0+DAgAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-scrollarea-v.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-scrollarea-v.gif", "text": "R0lGODlhFAAKAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAKAAAIUABNYRO37p/BgwgNrguHzZSpawQTSvy38JrDgQUnIlwnDlupUtjCZdSosONHjCQPLmwIUmTKkixDjiS50lSpa+HUvaTIsJTAiC8rngSasmZAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-sumdialog.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-sumdialog.gif", "text": "R0lGODlhEgAMAIAAAAQEBP///yH5BAEAAAEALAAAAAASAAwAAAIcjI+pwO16nIQRJEsNy3Tzi31aKHpRJj1QqopZAQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-swapcolors.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-swapcolors.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEAAAEALAAAAAAUABQAAAI3jI+py40A3IJQvhiq1YYz32GfeICJaV7USpaZ1L5ORNJuG+PyW+/2o9CJfh3frnjiKW0xi1NSAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-hd.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-hd.gif", "text": "R0lGODlhDwAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAADwAUAAAIZQBNlRJYaqCpgwcHFvzHsKHDhgIfSmQ48GGZiw8PWiRDJqOpjWU8gny40OHFjg41OiSDMeVHkxxFrmwJ8WXDMixJlrKIUyfPkCl3rszpsORNmhRtMsQJtOZEiRWfukSYkGDVUgEBADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-hh.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-hh.gif", "text": "R0lGODlhDwAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAADwAUAAAIWQBLmRookKCpggdN/VvIsCHDgw4jLoTYMKFDig8HXlRYUWPHjaUcCtzIMePFkR87lpwYsmEplCZdvtxIkqbMlf9gLhTYMmZGnDpzBg0qMSfOojwTDkz4smBAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-hn.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-hn.gif", "text": "R0lGODlhDwAUAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAADwAUAAAIkABNCRxYqpTAggdLYVvIsCFDgdjCSZwoUVw4cdgKYrNocaA4i+EymtpYEeFFidggVgxn0NRHiylHXrRosNREcdcgcmQpcGa4nKauUTx4EqMphRRrggxpkKREoiCBRpyplGPMqRehwjxKkubRmRgNXluqtGJKpCBr3rx6MhzRk2x9vnwpleG1hXcbIkyIcK/AgAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-vd.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-vd.gif", "text": "R0lGODlhFAAPAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAPAAAIWQBNCRRYqtTAgggJmjL4r6HDhxAdCoxIEeLEihgZYqyocWPEi2TKiBw5MqTIhgsblixDxqRIkyhNqSRJk2TDgh4ppswJESfPhzt/oiwl1KHBggsVHlx41GBAADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-vh.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-vh.gif", "text": "R0lGODlhFAAPAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAPAAAIVgBLmRpYSqCpggILEiRY6p/DhxAjPhQosWLEgRYz/qOoseLBjh5NOVxocODBgw03pkxokqHClB83mjTIEuVIkSAv4sz5ECPPnjt/+vypEuXJozONmgoIADs=" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-vn.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-thumb-vn.gif", "text": "R0lGODlhFAAPAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///ywAAAAAFAAPAAAIjgBNCSxVaiBBUwQLIixIENs1bA4fRoToEOK1awixhRMnbqNHjh07bsRWEJvIkyhBiiNZymS4lxtFvlQpDqMplxw/wszZkaSpa+EEGhTKsGA4nxoRKl0odOFRgSaLNp1qqmZDnjNjhhSJDerHkFnBrsw4E+RXjyNL7kR7sqzNiw8vWpxLEeJBhksTKtVrKiAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-trackingline-h.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-trackingline-h.gif", "text": "R0lGODlhAgAIAJECAKampqWlpf///wAAACH5BAEAAAIALAAAAAACAAgAAAIHjCEpAaZSAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-trackingline-v.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-trackingline-v.gif", "text": "R0lGODlhCAACAJECAKWlpaampv///wAAACH5BAEAAAIALAAAAAAIAAIAAAIHRCRxYhiACgA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-undo.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-undo.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAIxjI+py30Ao3uxzopBs4YviYCKSGkfNKKpmZDlyXZZq4beu8JMbPNT4PoFL7Wf8WgoAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhidebottom.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhidebottom.gif", "text": "R0lGODlhDAAJAKEBAMzMzP///////////yH5BAEKAAIALAAAAAAMAAkAAAIUjI8BycvogJzxUKeghAkb/1wiIBQAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhideleft.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhideleft.gif", "text": "R0lGODlhCQAMAKEBAMzMzP///////////yH5BAEKAAIALAAAAAAJAAwAAAIWRI5niavd3AIU0vrChUomz2ShcJVAAQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhideright.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhideright.gif", "text": "R0lGODlhCQAMAKEBAMzMzP///////////yH5BAEKAAIALAAAAAAJAAwAAAIWjG+AqMkHWpCx0TphdInCt3BhRUZCAQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhidetop.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unhidetop.gif", "text": "R0lGODlhDAAJAKEBAMzMzP///////////yH5BAEKAAIALAAAAAAMAAkAAAIUhI8gwe0BXnSTHdpStmnWt4GYmBUAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unlock.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unlock.gif", "text": "R0lGODlhDQAUAMIGAGFhYbm5ucLCwt3d3fHx8f39/QAAAAAAACH5BAEKAAcALAAAAAANABQAAAMreLrc/jDKU2p9V2VWWp+fFEZjQZzomRGkwmrb92qcWy/yTVMtZf2WiZCRAAA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unmerge.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-unmerge.gif", "text": "R0lGODlhFAAUAIABAP///////yH5BAEAAAEALAAAAAAUABQAAAI0jI+pywoBnpQQvobRNbueDmpiRkbmiUYjt3rs14bw/NbuDaa6Smay/cO1eotJRWXsEJeNAgA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-wikiflag.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-wikiflag.gif", "text": "R0lGODlhDQAMAJEAABrH7P///////wAAACH5BAEAAAIALAAAAAANAAwAAAIijI8hEuD/FAPJ0NWyzZjSfU1aFpJm6Z2SlnJihULQWiFLAQA7" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-wikilinkflag.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-wikilinkflag.gif", "text": "R0lGODlhEAAMAJEAABrH7P///////wAAACH5BAEAAAIALAAAAAAQAAwAAAIplIKpagEP4wsNrGWrUxblY3Ve922htGmiQ1LglojluXoufNmVxN/5VQAAOw==" }, "$:/plugins/rboue/SocialCalc/Lib/Images/sc-save.gif": { "type": "image/gif", "title": "$:/plugins/rboue/SocialCalc/Lib/Images/sc-save.gif", "text": "R0lGODlhFAAUAIAAAP///////yH5BAEKAAEALAAAAAAUABQAAAI2jI+pCw0Lg3tRzWodTnefXk2ixoyiZZgkJTWp+VLdGMvuR8Y6cuM2G1nlSjeV8Xc81ZJAT6IAADs=" }, "$:/plugins/rboue/SocialCalc/config.json": { "title": "$:/plugins/rboue/SocialCalc/config.json", "type": "application/json", "text": "{\n\"\":\"Localisation\",\n \"LANG\": \"en-GB\",\n\n\"\":\"Graphics of the Graph tab. Actually the only choice is \\\"native\\\".\",\n \"graphics\": \"native\",\n\n\"\":\"Visualization mode. \\\"edit\\\" to modify the sheet. \\\"view\\\" to view the sheet in read-only mode.\",\n \"mode\": \"edit\",\n\n\"\":\"Display grid (\\\"yes\\\") or no (\\\"no\\\").\",\n \"displayGrid\": \"yes\",\n\n\"\":\"Height of widget in pixel when in tiddler editor.\",\n \"heightInTiddlerEditor\": \"400\",\n\n\n\"\":\"\"\n}" }, "$:/plugins/rboue/SocialCalc/edit-socialcalc.js": { "text": "/*\\\ntitle: $:/plugins/rboue/SocialCalc/edit-socialcalc.js\ntype: application/javascript\nmodule-type: widget\n\nThe edit-socialcalc widget edit a SocialCalc sheet stored in a tiddler.\n\n```\n<$edit-socialcalc tiddler=\"myTiddler\" height=\"400\"/>\n```\n\nThe widget displays a SocialCalc sheet stored in the specified tiddler.\nThe width and height attribute are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\nThe mode attribute defines the type of display : \"edit\" to edit the data (default value), \"view\" to\ndisplay without modification\nThe grid attribute defines the display grid behaviour : \"yes\" to display the grid (default\nvalue), \"no\" otherwise.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CONST_NODE_ID_PREFIX = \"SocialCalcWidget\"; // prefix of root node's id attribute\nvar CONST_NODE_CLASS = \"SocialCalcWidget\"; // class of root node\nvar CONST_MIN_HEIGHT = 300; // root node minimal height\nvar CONST_PLUGIN_PATH = \"$:/plugins/rboue/SocialCalc\";\nvar CONST_CONFIG_TIDDLER = \"$:/config/rboue/SocialCalc\";\nvar CONST_CONFIG_DEFAULT_TIDDLER = CONST_PLUGIN_PATH+\"/config.json\";\nvar CONST_SHEET_TIDDLER_TYPE = \"application/x-socialcalc\"; // type of sheet tiddler\n\n// Get session configuration.\nvar sessionConfig = null;\nvar configTiddler = $tw.wiki.getTiddler(CONST_CONFIG_TIDDLER);\nif ((typeof(configTiddler) != \"undefined\") && configTiddler) {\n sessionConfig = $tw.wiki.getTiddlerData(configTiddler, null)\n}\nif (!sessionConfig) {\n var configTiddlerDefault = $tw.wiki.getTiddler(CONST_CONFIG_DEFAULT_TIDDLER);\n if ((typeof(configTiddlerDefault) != \"undefined\") && configTiddlerDefault) {\n sessionConfig = $tw.wiki.getTiddlerData(configTiddlerDefault, null)\n }\n}\n\n// Create objects\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar SocialCalc = require(\"./Lib/socialcalc-min.js\").SocialCalc;\nvar Graph = require(\"./Lib/graph.js\").Graph;\n Graph.init(SocialCalc, sessionConfig);\nvar TiddlyWiki = require(\"./tiddlywiki.js\").TiddlyWiki;\n TiddlyWiki.init(SocialCalc, sessionConfig);\n\nvar EditSCWidget = function(parseTreeNode,options) {\n this.initialise(parseTreeNode,options);\n};\nEditSCWidget.instanceNb = 0; // count class instances\n\n// Inherit from the base widget class\nEditSCWidget.prototype = new Widget();\n\n//=======================================================================================\n\n// Render this widget into the DOM\nEditSCWidget.prototype.render = function(parent, nextSibling) {\n var fonc = \"EditSCWidget.render\";\n var self = this;\n\n // Debug tools\n var hack = {\n flagActiv: true, // Activate the logs\n log: function(mess, flagNoLog, fonc) {\n if (!hack.flagActiv || flagNoLog) return;\n var id = \"[]\";\n var ss = SocialCalc.GetSpreadsheetControlObject();\n if (ss) id = \"[\"+ss.idPrefix+\"]\";\n console.log(id+(fonc ? fonc+\": \" : \"\")+mess);\n },\n // Following are flags activating logs for specific fonctionnalities.\n // Value : false to activate, true to desactivate (no log).\n bug: false, // current bug investigation\n com: true, // command execution\n save: true, // tiddlywiki-save commande\n recalc: true, // recalc\n recalcLink: true, // recalc : page link in formula\n link: true, // page link in formula loaded as tiddler\n url: true, // text-link cell\n filesystem: true, // filesystem\n keyboard: true, // keyboard\n loc: true // localization\n };\n if (!window.hack) window.hack = hack;\n\n this.parentDomNode = parent;\n this.computeAttributes();\n this.flagEditWidget = this.execute();\n\n // Create element and assign attributes\n this.nodeRoot = this.document.createElement(\"div\");\n this.nodeRootId = CONST_NODE_ID_PREFIX + \"-\" + ++EditSCWidget.instanceNb;\n this.nodeRoot.setAttribute(\"id\", this.nodeRootId);\n this.nodeRoot.setAttribute(\"class\", CONST_NODE_CLASS);\n if (this[\"class\"])\n this.nodeRoot.setAttribute(\"class\", CONST_NODE_CLASS + \" \" + this[\"class\"]);\n if (this.width)\n this.nodeRoot.setAttribute(\"width\", \"\"+this.width+\"px\");\n if (this.height)\n this.nodeRoot.setAttribute(\"height\", \"\"+this.height+\"px\");\n\n // Insert element\n parent.insertBefore(this.nodeRoot, nextSibling);\n this.domNodes.push(this.nodeRoot);\n\n // Get data tiddler\n if (!this.tiddler) {\n nodeRoot.innerHTML = \"Error: you must specify a SocialCalc data tiddler\";\n return;\n }\n\n var tiddler = null;\n var tiddler1 = this.wiki.getTiddler(this.tiddler);\n if ((typeof(tiddler1) == \"undefined\") || !tiddler1) {\n this.wiki.addTiddler(new $tw.Tiddler({title: this.tiddler, type: CONST_SHEET_TIDDLER_TYPE, text: \"\"}));\n tiddler = this.wiki.getTiddler(this.tiddler);\n } else\n tiddler = tiddler1;\n\n // Get widget configuration\n this.flagView = false;\n if (this.mode && (this.mode.toLowerCase() == \"view\") ||\n (sessionConfig && sessionConfig.mode && (sessionConfig.mode.toLowerCase() == \"view\")))\n this.flagView = true;\n this.flagDisplayGrid = true;\n if (this.grid && (this.grid.toLowerCase() == \"no\") ||\n (sessionConfig && sessionConfig.grid && (sessionConfig.grid.toLowerCase() == \"no\")))\n this.flagDisplayGrid = false;\n if (sessionConfig && sessionConfig.heightInTiddlerEditor && this.flagEditWidget)\n this.height = sessionConfig.heightInTiddlerEditor;\n \n var widgetConfig = {\n mode: this.flagView ? \"view\" : \"edit\"\n };\n if (sessionConfig && sessionConfig.filesystem) {\n widgetConfig.filesystem = {};\n if (sessionConfig.filesystem.PATH)\n widgetConfig.filesystem.PATH = sessionConfig.filesystem.PATH;\n }\n\n // Get Socialcalc and adapt it to TiddlyWiki\n if (!SocialCalc) {\n this.nodeRoot.innerHTML = \"Error: SocialCalc missing !\";\n return;\n }\n\n // Hack : execution of handlers defined with raw HTML, like onclick=\"SocialCalc.Bazz()\".\n // SocialCalc must be defined at top level.\n if (!window.SocialCalc) window.SocialCalc = SocialCalc;\n // Hack : TiddlyWiki must be defined at top level.\n if (!window.TiddlyWiki) window.TiddlyWiki = TiddlyWiki;\n\n this.tiddlyWiki = new TiddlyWiki(this, this.tiddler, widgetConfig);\n this.setSheetGeometry(this.nodeRoot);\n\n // Activate wiki-text\n if (Document && Document.Parser) {\n SocialCalc.Callbacks.expand_wiki = function(val){\n return \"<div class=\\\"wiki\\\">\" + new Document.Parser.Wikitext().parse(val, new Document.Emitter.HTML()) + \"</div>\";\n };\n }\n\n hack.log(\"tiddler: \"+this.tiddler, hack.com, fonc);\n\n if (!this.flagView) {\n // Edit mode\n\n // Create spreadsheet\n this.spreadsheet = new SocialCalc.SpreadsheetControl(\"SocialCalc-\"+EditSCWidget.instanceNb+\"-\", this.tiddlyWiki);\n\n // Add graph tab\n // Hack : execution of handlers defined with raw HTML, like onclick=\"Graph.Bazz()\".\n // Graph must be defined at top level.\n if (!window.Graph) window.Graph = Graph;\n Graph.addGraphTab(this.spreadsheet);\n \n // Initialise UI\n this.spreadsheet.InitializeSpreadsheetControl(this.nodeRootId, 0, 0, 0);\n this.tiddlyWiki.addImportExportUI(this.spreadsheet);\n \n // Execute initial commands\n this.spreadsheet.ExecuteCommand(\"redisplay\", \"\");\n \n // Load data from tiddler\n this.loadData(tiddler);\n \n // Add new commands\n this.tiddlyWiki.addNewCommands(this.spreadsheet, this.tiddler);\n \n // Start monitoring\n this.tiddlyWiki.monitor(this.spreadsheet);\n\n } else {\n // View mode\n\n // Create spreadsheet\n this.spreadsheet = new SocialCalc.SpreadsheetViewer(\"SocialCalc-\"+EditSCWidget.instanceNb+\"-\", this.tiddlyWiki);\n if (!this.flagDisplayGrid)\n this.spreadsheet.context.showGrid = false;\n\n // Initialise UI\n this.spreadsheet.InitializeSpreadsheetViewer(this.nodeRootId, 0, 0, 0);\n\n // Execute initial commands\n this.spreadsheet.editor.EditorScheduleSheetCommands(\"redisplay\");\n\n // Load data from tiddler\n this.loadData(tiddler); \n }\n};\n \n//=======================================================================================\n\n// Compute the internal state of the widget\nEditSCWidget.prototype.execute = function() {\n var fonc = \"EditSCWidget.execute\";\n\n // Get our parameters\n\n var flagEditWidget = false;\n this.tiddler = this.getAttribute(\"tiddler\", this.getVariable(\"currentTiddler\"));\n var tiddler = this.wiki.getTiddler(this.tiddler);\n if (this.tiddler && tiddler && tiddler.isDraft()) {\n // The tiddler is a draft.\n // We suspect that widget is used as default editor for tiddlers of type application/x-socialcalc.\n flagEditWidget = true;\n }\n\n this.width = this.getAttribute(\"width\");\n this.height = this.getAttribute(\"height\");\n this.mode = this.getAttribute(\"mode\");\n this.grid = this.getAttribute(\"grid\");\n this[\"class\"] = this.getAttribute(\"class\");\n\n return flagEditWidget;\n};\n\n// Selectively refreshes the widget if needed. Returns true if the widget or any\n// of its children needed re-rendering\nEditSCWidget.prototype.refresh = function(changedTiddlers) {\n var fonc = \"EditSCWidget.refresh\";\n SocialCalc.SetSpreadsheetControlObject(this.spreadsheet);\n\n // Resize calc sheet\n this.setSheetGeometry(this.nodeRoot);\n SocialCalc.DoOnResize(this.spreadsheet);\n if (this.spreadsheet.currentTab && this.spreadsheet.tabs[this.spreadsheet.currentTab].name == \"graph\")\n Graph.DoGraph(false, false);\n\n var changedAttributes = this.computeAttributes();\n if (changedAttributes.tiddler ||\n changedAttributes.width ||\n changedAttributes.height ||\n changedAttributes.mode ||\n changedAttributes.grid ||\n changedAttributes[\"class\"]) {\n this.refreshSelf();\n return true;\n } else if (changedTiddlers[this.tiddler]) {\n // Remove tiddler from sheet cache to force a reload and a recalc in other pages.\n TiddlyWiki.removeTiddlerFromSheetCache(this.tiddler);\n this.refreshSelf();\n return true;\n } else if (this.spreadsheet.editor.context.sheetobj.attribs.recalc != \"off\") {\n // Recalc to update cells with references to external sheets, if any\n this.spreadsheet.editor.EditorScheduleSheetCommands(\"recalc\");\n return true;\n } else {\n return false;\t\t\n }\n};\n\n// Geometry preparation for sheet display\nEditSCWidget.prototype.setSheetGeometry = function(nodeRoot) {\n var calcWidth = nodeRoot.offsetWidth; // maximal width\n if (this.width && (this.width <= calcWidth))\n calcWidth = this.width;\n var calcHeight = CONST_MIN_HEIGHT;\n if (this.height)\n calcHeight = this.height;\n\n TiddlyWiki.modifyViewport(calcWidth, calcHeight);\n}\n\n// Load sheet\nEditSCWidget.prototype.loadData = function(tiddler) {\n var fonc = \"EditSCWidget.loadData\";\n if (!tiddler) return;\n\n var calcData = tiddler.fields.text;\n var parts = this.spreadsheet.DecodeSpreadsheetSave(calcData);\n if (parts) {\n if (parts.sheet) {\n this.spreadsheet.sheet.ResetSheet();\n this.spreadsheet.sheet.ParseSheetSave(calcData.substring(parts.sheet.start, parts.sheet.end));\n }\n if (parts.edit) {\n this.spreadsheet.editor.LoadEditorSettings(calcData.substring(parts.edit.start, parts.edit.end));\n }\n }\n if (this.spreadsheet.editor.context.sheetobj.attribs.recalc == \"off\")\n this.spreadsheet.editor.ScheduleRender();\n else {\n this.spreadsheet.editor.EditorScheduleSheetCommands(\"recalc\");\n }\n}\n\nexports[\"edit-socialcalc\"] = EditSCWidget;\n\n})();\n", "title": "$:/plugins/rboue/SocialCalc/edit-socialcalc.js", "type": "application/javascript", "module-type": "widget" }, "$:/config/EditorTypeMappings/application/x-socialcalc": { "title": "$:/config/EditorTypeMappings/application/x-socialcalc", "text": "socialcalc" }, "$:/plugins/rboue/SocialCalc/icon": { "created": "20150122113649353", "modified": "20150122113650949", "title": "$:/plugins/rboue/SocialCalc/icon", "type": "image/png", "text": "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\n" }, "$:/plugins/rboue/SocialCalc/license": { "title": "$:/plugins/rboue/SocialCalc/license", "text": "!Plugin license\nCopyright (C) 2015 René Boué (rboue) <rboue01 (at) gmail (dot) com><br>\nAll rights reserved.\n\nThis program is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nThis program is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with this program. If not, see <http://www.gnu.org/licenses/>.\n\n!Modification of the ~SocialCalc code\nSee [[CHANGES.txt|$:/plugins/rboue/SocialCalc/CHANGES.txt]] tiddler.\n\n!Traduction française\nMartin Gubri pour [[Framasoft|http://www.framasoft.org/]].\n\n<<<\nJuste pour préciser : j'avais traduit une bonne partie d'Ethercalc, mais\nje m'étais en partie servi de la traduction partielle qu'avait fait le\n[[CRDP de Versailles|http://www.crdp.ac-versailles.fr/]].\n<<<\n\nA voir : [[Framacalc|http://www.framacalc.org]].\n\n!~SocialCalc license\n(c) Copyright 2009 Socialtext, Inc.<br>\nAll Rights Reserved.<br>\n\nOriginal components licensed under different licenses. Some are licensed under the Common Public Attribution License (CPAL) and others under the Artistic License 2.0. Check the contents of each file for a statement of the license for that file. Files without license information (e.g., image files) are licensed under the Artistic License 2.0.<br>\nSee [[LEGAL.txt|$:/plugins/rboue/SocialCalc/LEGAL.txt]] and [[LICENSE.txt|$:/plugins/rboue/SocialCalc/LICENSE.txt]] for details.<br>\n\nThe ~JavaScript ~SocialCalc code was initially coded by Dan Bricklin of Software Garden, Inc., for ~Socialtext, Inc.<br>\nBased in part on the ~SocialCalc 1.1.0 code written in Perl.<br>\nThe ~SocialCalc 1.1.0 code was:<br>\n\n Portions (c) Copyright 2005, 2006, 2007 Software Garden, Inc.\n All Rights Reserved.\n Portions (c) Copyright 2007 Socialtext, Inc.\n All Rights Reserved.<br>\n\nThe Perl ~SocialCalc started as modifications to the wikiCalc(R) program, version 1.0.<br>\nwikiCalc 1.0 was written by Software Garden, Inc.<br>\n\nwikiCalc, Garden, and Software Garden are registered trademarks of Software Garden, Inc.<br>\nSocialtext, ~SocialCalc, and the Socialtext logo and Dreamcatcher are trademarks of Socialtext, Inc.<br>\nDan Bricklin's is a registered trademark of Daniel Bricklin." }, "$:/plugins/rboue/SocialCalc/parser.js": { "text": "/*\\\ntitle: $:/plugins/rboue/SocialCalc/parser.js\ntype: application/javascript\nmodule-type: parser\n\nThe SocialCalc parser parses SocialCalc's save format into single text node (like \"text/plain\" parser)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar SocialCalcParser = function(type,text,options) {\n this.tree = [{\n type: \"codeblock\",\n attributes: {\n code: {type: \"string\", value: text},\n language: {type: \"string\", value: type}\n }\n }];\n};\n\nexports[\"application/x-socialcalc\"] = SocialCalcParser;\n\n})();\n\n", "title": "$:/plugins/rboue/SocialCalc/parser.js", "type": "application/javascript", "module-type": "parser" }, "$:/plugins/rboue/SocialCalc/readme": { "title": "$:/plugins/rboue/SocialCalc/readme", "text": "~SocialCalc for ~TiddlyWiki." }, "$:/plugins/rboue/SocialCalc/tiddlywiki.js": { "text": "/*\\\ntitle: $:/plugins/rboue/SocialCalc/tiddlywiki.js\ntype: application/javascript\nmodule-type: library\n\n Adaptation of SocialCalc to TiddlyWiki.\n\n\\*/\n(function() {\n\n // TiddlyWiki environnement for a SocialCalc sheet\n // Manage all interactions and interfaces with TiddlyWiki system.\n //\n var TiddlyWiki = function(widget, tiddlerTitle, widgetConfiguration) {\n this.widget = widget; // widget\n this.tiddlerTitle = tiddlerTitle; // title of the sheet data tiddler\n this.widgetConfiguration = widgetConfiguration; // widget's configuration object\n this.flagView = (this.widgetConfiguration.mode && this.widgetConfiguration.mode == \"view\") ? true : false; // display mode\n\n // Management of notification that sheet needs saving (You ! Your sheet has been modified.\n // Remember to save it !)\n // Notification consists of changing background color of the toobar save button.\n this.saveTodo = {\n flagStart: false, // start monitoring anything related to saving of data\n button: {\n image: TiddlyWiki.pathImages+\"/sc-save.gif\", // image tiddler\n idSuffix: \"button_save\", // suffix of id attribute (prefix is stylesheet.idPrefix)\n index: null, // index of saveButton in SocialCalc.ButtonInfo.registeredElements (read at start)\n normalBackgroundColor: null, // initial background color (read at start)\n needSavingBackgroundColor: \"#0000ff\", // new background when need saving\n style: null, // initial style (read at start)\n needSavingStyle: null // style used when need saving\n }\n }\n\n // Enable/block key events propagation (keyboard share between input box and grid)\n // Allow to forbid tiddler scrolling by the browser when we just want to move current\n // cell in the grid with up and down keys.\n this.inputboxHasKeyboard = false;\n // Callback to monitor commands : function(cmd) {}\n this.monitorCallback = null;\n };\n\n // Static members\n\n // Overall parameters\n TiddlyWiki.pluginPath = \"$:/plugins/rboue/SocialCalc\";\n TiddlyWiki.configTiddler = \"$:/config/rboue/SocialCalc\";\n TiddlyWiki.configDefaultTiddler = TiddlyWiki.pluginPath + \"/config.json\";\n TiddlyWiki.pathImages = TiddlyWiki.pluginPath + \"/Lib/Images\";\n TiddlyWiki.curentLanguageTiddler = \"$:/language\";\n TiddlyWiki.defaultLanguage = \"en-GB\";\n TiddlyWiki.pathLanguages = TiddlyWiki.pluginPath + \"/Languages\";\n TiddlyWiki.saveNotificationTiddlerSuffix = \"--save-notification\";\n TiddlyWiki.saveCommandKeyword = \"tiddlywiki-save\"; // keyword of save command\n TiddlyWiki.exportCommandKeyword = \"tiddlywiki-export\"; // keyword of export command\n TiddlyWiki.importCommandKeyword = \"tiddlywiki-import\"; // keyword of import command\n TiddlyWiki.sheetTiddlerType = \"application/x-socialcalc\"; // type of tiddler with sheet data\n TiddlyWiki.dataTiddlerType = \"text/plain\"; // type of tiddler with import/export data\n\n // Initialized at TiddlyWiki session opening\n TiddlyWiki.sessionConfiguration = null; // Session configuration\n TiddlyWiki.currentLanguage = null; // current language\n\n // Static initialisations\n TiddlyWiki.init = function(sc, sessionConfiguration) {\n TiddlyWiki.sessionConfiguration = sessionConfiguration;\n\n // Normalization of sheet names.\n // Sheet name are tiddler title and therefore could have Uppercase/lowercase characters.\n sc.Callbacks.NormalizeSheetName = function(sheetName) {return sheetName;};\n\n // Add class attribute to DOM nodes pertaining to sheet visual\n sc.ConstantsSetClasses(\"SocialCalc-\");\n\n // Background images redefinition\n sc.Constants.defaultCommentStyle = TiddlyWiki.getModifiedCssImageStyle(sc.Constants.defaultCommentStyle);\n sc.Constants.defaultReadonlyStyle = TiddlyWiki.getModifiedCssImageStyle(sc.Constants.defaultReadonlyStyle);\n sc.Constants.defaultUnhideLeftStyle = TiddlyWiki.getModifiedCssImageStyle(sc.Constants.defaultUnhideLeftStyle);\n sc.Constants.defaultUnhideRightStyle = TiddlyWiki.getModifiedCssImageStyle(sc.Constants.defaultUnhideRightStyle);\n sc.Constants.defaultUnhideTopStyle = TiddlyWiki.getModifiedCssImageStyle(sc.Constants.defaultUnhideTopStyle);\n sc.Constants.defaultUnhideBottomStyle = TiddlyWiki.getModifiedCssImageStyle(sc.Constants.defaultUnhideBottomStyle);\n\n // Management of indirect calc data (data referenced in other sheet).\n // With TiddlyWiki, other sheets are tiddlers with SocialCalc data.\n sc.RecalcInfo.LoadSheet = function(pageName) {\n var spreadsheet = sc.GetSpreadsheetControlObject();\n if (spreadsheet && spreadsheet.tiddlyWiki)\n return spreadsheet.tiddlyWiki.getCalcPage(pageName);\n return false;\n };\n\n // Localization with current langage.\n TiddlyWiki.localize(sc);\n };\n\n // Localization with current langage.\n TiddlyWiki.localize = function(sc) {\n var fonc = \"TiddlyWiki.localize\";\n\n // Get configuration\n var configLang = (TiddlyWiki.sessionConfiguration ? TiddlyWiki.sessionConfiguration.LANG : null);\n\n // Replace all strings in SocialCalc.Constants with a translation of the current language\n // <lang> kept in $<colon>/plugins/SocialCalc/Languages/<lang> tiddler.\n // Current language read in $<colon>/language tiddler.\n // Default language is \"en-GB\". It is statically implemented and don't needs translation.\n\n // Current language\n var language = null;\n if (configLang) {\n language = configLang;\n } else {\n language = $tw.wiki.getTiddlerText(TiddlyWiki.curentLanguageTiddler);\n language = language.replace(/^\\$\\/:languages\\//, \"\");\n }\n TiddlyWiki.currentLanguage = language;\n \n if (language == TiddlyWiki.defaultLanguage) return;\n //console.log(fonc+\":language = \"+language);\n\n // Read translations\n var translations = $tw.wiki.getTiddlerData(TiddlyWiki.pathLanguages + \"/\" + language);\n if (!translations) return;\n for (var trans in translations) {\n //console.log(fonc+\": \"+trans + \" = \"+translations[trans]);\n if (typeof(sc.Constants[trans]) == \"undefined\") continue;\n sc.Constants[trans] = translations[trans];\n }\n };\n\n // Redefine viewport geometry (now a tiddler)\n TiddlyWiki.modifyViewport = function(width, height) {\n // Ugly hack...\n SocialCalc.GetViewportInfo = function () {\n return {\n width: width,\n height: height,\n horizontalScrol: null,\n verticalScroll: null\n };\n }\n };\n\n // Modify CSS style of image with tiddler raw image syntax\n TiddlyWiki.getModifiedCssImageStyle = function(style) {\n var pattern = \".*?url(.+).*\";\n var regexp = \".*?url[(][\\\"]?.*?images/\\(.+?\\)[\\\"]?[)].*$\";\n\n if (!style) return false;\n if (!style.match(pattern)) return false;\n // File image extraction\n var reg = new RegExp(regexp, \"\");\n var tab = reg.exec(style);\n if (! tab || tab.length < 2) return false;\n // Get tiddler\n var tiddlerName = TiddlyWiki.pathImages+\"/\"+tab[1];\n var src = TiddlyWiki.getRawTiddlerImage(tiddlerName);\n if (!src) return false;\n var newStyle = style.replace(/url[(].+?[)]/, \"url(\"+src+\")\");\n \n return(newStyle);\n };\n\n // Modify \"src\" attribute of <img> node with tiddler raw image data\n TiddlyWiki.getModifiedImgSrc = function(src) {\n var regexp = \".*images/\\(.+?\\)$\";\n\n if (!src) return false;\n // File image extraction\n var reg = new RegExp(regexp, \"\");\n var tab = reg.exec(src);\n if (! tab || tab.length < 2) return false;\n // Get tiddler\n var tiddlerName = TiddlyWiki.pathImages+\"/\"+tab[1];\n var newSrc = TiddlyWiki.getRawTiddlerImage(tiddlerName);\n if (!newSrc) return false;\n\n return newSrc;\n };\n\n // Get CSS raw source of a tiddler image\n TiddlyWiki.getRawTiddlerImage = function(tiddlerName) {\n if (!$tw || !$tw.wiki) return false;\n // Check if it is an image tiddler\n if (!$tw.wiki.isImageTiddler(tiddlerName)) return false;\n var tiddler = $tw.wiki.getTiddler(tiddlerName);\n if ((typeof(tiddler) == \"undefined\") || !tiddler) return false;\n var text = tiddler.fields.text;\n if (!text) return false;\n var type = tiddler.fields.type;\n // Render the appropriate element for the image type\n var src = \"\";\n switch(type) {\n case \"image/svg+xml\":\n src = \"data:image/svg+xml,\" + encodeURIComponent(text);\n break;\n default:\n src = \"data:\" + type + \";base64,\" + text;\n break;\n }\n\n return src;\n }; \n\n // Execute extension command\n TiddlyWiki.executeExtensionCmd = function(spreadsheet, com) {\n spreadsheet.editor.EditorScheduleSheetCommands(\"startcmdextension \"+com);\n };\n\n // Remove tiddler from sheet cache\n TiddlyWiki.removeTiddlerFromSheetCache = function(tiddlerTitle) {\n var fonc = \"TiddlyWiki.removeTiddlerFromSheetCache\";\n var sfsc = SocialCalc.Formula.SheetCache;\n if (sfsc.tiddlersToSheets[tiddlerTitle])\n sfsc.tiddlersToSheets[tiddlerTitle] = undefined;\n for (var sheetname in sfsc.sheets) {\n if (sfsc.sheets[sheetname].tiddlerTitle == tiddlerTitle) {\n delete sfsc.sheets[sheetname];\n sfsc.sheets[sheetname] = undefined;\n }\n }\n hack.log(\"Tiddler removed from cache: \"+tiddlerTitle, hack.recalcLink, fonc);\n };\n\n // Navigate to a tiddler.\n // Called by cell's link (cf. SocialCalc.expand_text_link()).\n TiddlyWiki.navigateToTiddler = function(tiddlerTitle) {\n var fonc = \"TiddlyWiki.navigateToTiddler\";\n var spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n\n // Send a \"tm-navigate\" event from widget to tiddler\n var bounds = spreadsheet.tiddlyWiki.widget.domNodes[0].getBoundingClientRect();\n spreadsheet.tiddlyWiki.widget.dispatchEvent({\n type: \"tm-navigate\",\n navigateTo: tiddlerTitle,\n navigateFromTitle: spreadsheet.tiddlyWiki.tiddlerTitle,\n navigateFromNode: spreadsheet.tiddlyWiki.widget,\n navigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height},\n navigateSuppressNavigation: false\n });\n };\n\n // Instance members\n\n TiddlyWiki.prototype = {\n\n // Resolve file path.\n //\n // Following behaviour apply only if SocialCalc's configuration's object property \"filesystem\"\n // is defined. If not, file is assumed to be a tiddler's title.\n //\n // File path resolution is inspired by Unix.\n // We make assumption that tiddler title follows classical Unix Path pattern\n // like : /dir1/dir2/ ... /dir/file. If not the case, file should be\n // in the directories of the PATH (see below), or completely out of path convention.\n // There is no notion of curent directory (if any).\n //\n // Unlike Unix, there is no notion of root directory or \"/\". TiddlyWiki has no\n // real filesystem so we can't rely on a root node. Relative versus absolute\n // path is deduced from the following. If the first caracter of a file\n // path is \"/\", and there is no more \"/\" after that, then the path is absolute.\n // In that case, the behavior is identical to Unix. A file path beginning with a \"/\"\n // will be directly converted in a tiddler title.\n // By default (and unlike Unix), malformed path like multiple \"/\" instead of one\n // are not accepted. For example \"//\" is not reduced to \"/\" and treated like a\n // path separator. It is the responsibility of the user to be clear about the significance of\n // it's file reference, path-like name or tiddler title.\n // With optionnal <flagNormalize> parameter set, malformed path are normalized like\n // Unix does.\n //\n // A file is searched under a collection of path directories, pre-defined in the PATH\n // variable. Those directories are absolute.\n // Syntax of the PATH variable :\n // <path1>';'<path2>';' ... ';'<pathN>\n // The PATH is defined in the widget's configuration object, under filesystem.PATH property.\n // The widget's configuration object is searched first in $:/config/SocialCalc tiddler of\n // \"application/json\" type, then in $:/plugins/SocialCalc/config-defaults tiddler.\n //\n // Search algorithm :\n // <file> : input file path.\n // PATH <- value of a \"path\"\n // if <PATH> exists then\n // for all <dir> in <PATH>\n // if tiddler <dir>/<file> found then return <dir>/<file>\n // end for\n // end if\n // if tiddler <file> found then return file\n //\n resolvePath: function(file, flagNormalize) {\n var fonc = \"TiddlyWiki.resolvePath\";\n\n hack.log(\"==<<== file = \"+file, hack.filesystem, fonc);\n\n if (!file) return null;\n var tiddlerTitle = \"\";\n var tiddler = false;\n if (!this.widgetConfiguration || !this.widgetConfiguration.filesystem) {\n hack.log(\"no filesystem in widget's configuration !\", hack.filesystem, fonc);\n return(file);\n }\n\n // Get PATH\n var tabPath = null;\n if (this.widgetConfiguration.filesystem.PATH && this.widgetConfiguration.filesystem.PATH != \"\")\n tabPath = this.widgetConfiguration.filesystem.PATH.split(/[\\s]*;[\\s]*/);\n hack.log(\"tabPath = \"+(tabPath ? tabPath.join(\" | \"): tabPath), hack.filesystem, fonc);\n\n var flagFind = false;\n \n if (!flagFind && tabPath) {\n // Search under PATH directories\n for (var i = 0; i < tabPath.length; i++) {\n var file1 = tabPath[i] + \"/\" + file;\n if (flagNormalize) {\n // File normalization\n file1 = file.replace(/[\\/][\\/]+/g, \"/\").replace(/\\/\\.\\//g, \"/\");\n }\n tiddlerTitle = file1;\n var tiddler2 = $tw.wiki.getTiddler(tiddlerTitle);\n if ((typeof(tiddler2) != \"undefined\") && tiddler2) {\n flagFind = true;\n break;\n }\n }\n }\n \n // Maybe a tiddler already\n if (!flagFind) {\n if (flagNormalize) {\n // File normalization\n file = file.replace(/[\\/][\\/]+/g, \"/\").replace(/\\/\\.\\//g, \"/\");\n }\n tiddlerTitle = file;\n }\n\n hack.log(\"==>>== tiddler = \"+tiddlerTitle, hack.filesystem, fonc);\n return tiddlerTitle;\n },\n\n // Get a tiddler calc page referenced in a page\n //\n // Status :\n // True if page found and loaded, false otherwise.\n //\n // A page reference appears in formulae to access data on other pages.\n // Exemple :\n // =\"My root calc data page\"!C3 aims to access C3 cell in a page named\n // \"My root calc data page\".\n // If widget's configuration object property \"filesystem\" is defined this page name is\n // a file path. Otherwise this is a tiddler's title.\n //\n getCalcPage: function(pageName) {\n var fonc = \"TiddlyWiki.getCalcPage\";\n\n hack.log(\"==<<== pageName = \"+pageName, hack.link, fonc);\n\n var spreadsheet = SocialCalc.GetSpreadsheetControlObject();\n var tiddlerTitle = this.resolvePath(pageName);\n hack.log(\"tiddlerTitle = \"+tiddlerTitle, hack.link, fonc);\n\n // Is the tiddler already referenced in cache ?\n if (SocialCalc.Formula.SheetCache.tiddlersToSheets[tiddlerTitle]) {\n // We just add the page to the cache\n SocialCalc.Formula.AddSheetToCache(pageName, null, null, tiddlerTitle);\n // Fake call to continue recalc\n SocialCalc.RecalcLoadedSheet(pageName, null, false, null, tiddlerTitle);\n hack.log(\"Sheet already in cache, tiddler not loaded: \"+tiddlerTitle, hack.recalcLink, fonc);\n } else {\n // We read the tiddler\n var tiddler = $tw.wiki.getTiddler(tiddlerTitle);\n if ((typeof(tiddler) == \"undefined\") || !tiddler) return false;\n hack.log(\"checked tiddler\", hack.link, fonc);\n var calcData = tiddler.fields.text;\n if (!calcData) return false;\n hack.log(\"checked calcData\", hack.link, fonc);\n var parts = spreadsheet.DecodeSpreadsheetSave(calcData);\n if (!parts) return false;\n hack.log(\"checked parts\", hack.link, fonc);\n var page = calcData.substring(parts.sheet.start, parts.sheet.end);\n \n // Tell Socialcalc to load this sheet page and recalc\n SocialCalc.RecalcLoadedSheet(pageName, page, true, null, tiddlerTitle);\n hack.log(\"Tiddler loaded: \"+tiddlerTitle, hack.recalcLink, fonc);\n }\n return true;\n },\n\n // Add UI for extension commands.\n addExtensionCmdUI: function(spreadsheet) {\n // Save command button\n // First button on the left in the toobar.\n var scc = SocialCalc.Constants;\n var SCLoc = SocialCalc.LocalizeString;\n \n var divToolbar = null;\n var tabDiv = spreadsheet.spreadsheetDiv.getElementsByTagName(\"div\");\n if (!tabDiv || tabDiv.length == 0) return;\n for (var i = 0; i < tabDiv.length; i++) {\n if (tabDiv[i].getAttribute(\"id\") == spreadsheet.idPrefix+\"edittools\") {\n divToolbar = tabDiv[i];\n break;\n }\n }\n if (!divToolbar) return;\n var saveButton = document.createElement(\"img\");\n if (!saveButton) return;\n saveButton.id = spreadsheet.idPrefix + this.saveTodo.button.id;\n saveButton.style = \"vertical-align: bottom; border: 1px solid rgb(64, 64, 64); background-color: rgb(64, 64, 64); margin-right: 8px;\";\n saveButton.src = TiddlyWiki.getRawTiddlerImage(this.saveTodo.button.image);\n divToolbar.insertBefore(saveButton, divToolbar.getElementsByTagName(\"img\")[0]);\n var saveButtonStyle = {\n name: \"saveButton\",\n normalstyle: \"border:1px solid \"+scc.ISCButtonBorderNormal+\";background-color:\"+scc.ISCButtonBorderNormal+\";\",\n hoverstyle: \"border:1px solid \"+scc.ISCButtonBorderHover+\";background-color:\"+scc.ISCButtonBorderNormal+\";\",\n downstyle: \"border:1px solid \"+scc.ISCButtonBorderDown+\";background-color:\"+scc.ISCButtonDownBackground+\";\"\n };\n var saveButtonNeedSavingStyle = {\n name: \"saveButton\",\n normalstyle: \"border:1px solid \"+scc.ISCButtonBorderNormal+\";background-color:\"+this.saveTodo.button.needSavingBackgroundColor+\";\",\n hoverstyle: \"border:1px solid \"+scc.ISCButtonBorderHover+\";background-color:\"+this.saveTodo.button.needSavingBackgroundColor+\";\",\n downstyle: \"border:1px solid \"+scc.ISCButtonBorderDown+\";background-color:\"+this.saveTodo.button.needSavingBackgroundColor+\";\"\n };\n SocialCalc.TooltipRegister(saveButton, SCLoc(\"Save changes\"), {}, spreadsheet.spreadsheetDiv);\n var self = this;\n SocialCalc.ButtonRegister(spreadsheet.editor, saveButton, saveButtonStyle, {\n MouseDown: function() {\n TiddlyWiki.executeExtensionCmd(spreadsheet, TiddlyWiki.saveCommandKeyword);\n },\n Disabled: function() {}\n });\n\n // Remember initial style data\n this.saveTodo.button.index = SocialCalc.ButtonInfo.registeredElements.length - 1;\n this.saveTodo.button.style = saveButtonStyle;\n this.saveTodo.button.normalBackgroundColor = saveButton.style.backgroundColor;\n\n // Remember need saving style\n this.saveTodo.button.needSavingStyle = saveButtonNeedSavingStyle;\n },\n\n // Change the save button visual\n changeSaveButtonVisual: function(flagNeedSavingStyle) {\n // Get registered button element\n if (!SocialCalc.ButtonInfo.registeredElements || this.saveTodo.button.index == null) return;\n var elem = SocialCalc.ButtonInfo.registeredElements[this.saveTodo.button.index];\n if (elem.name != \"saveButton\") return;\n // Change style\n if (flagNeedSavingStyle) {\n elem.element.style.backgroundColor = this.saveTodo.button.needSavingBackgroundColor;\n elem.normalstyle = this.saveTodo.button.needSavingStyle.normalstyle;\n elem.hoverstyle = this.saveTodo.button.needSavingStyle.hoverstyle;\n elem.downstyle = this.saveTodo.button.needSavingStyle.downstyle;\n } else {\n elem.element.style.backgroundColor = this.saveTodo.button.normalBackgroundColor;\n elem.normalstyle = this.saveTodo.button.style.normalstyle;\n elem.hoverstyle = this.saveTodo.button.style.hoverstyle;\n elem.downstyle = this.saveTodo.button.style.downstyle;\n this.saveTodo.flagStart = false;\n }\n },\n\n // Add UI for import/export (cf. Clipboard tab).\n addImportExportUI: function(spreadsheet) {\n // The UI skeleton is defined in HTML. See SocialCalc.SpreadsheetControl(), clipboard tab.\n \n if (!spreadsheet.importExport) spreadsheet.importExport = {};\n\n // Populate format selection\n var select = document.getElementById(spreadsheet.idPrefix+\"clipboard-export-select-format\");\n if (!select) return;\n var tabFormat = [\"Tab-delimited\", \"CSV\", \"SocialCalc-save\"];\n select.length = 0;\n for (i=0; i < tabFormat.length; i++) {\n var name = tabFormat[i];\n select.options[i] = new Option(name, name);\n }\n select.options[0].selected = true;\n\n // Click on Export button\n var buttonExport = document.getElementById(spreadsheet.idPrefix+\"clipboard-export\");\n if (!buttonExport) return;\n buttonExport.addEventListener(\"click\", function() {\n TiddlyWiki.executeExtensionCmd(spreadsheet, TiddlyWiki.exportCommandKeyword);\n }, false);\n\n // Click on Import button \n var buttonImport = document.getElementById(spreadsheet.idPrefix+\"clipboard-import\");\n if (!buttonImport) return;\n buttonImport.addEventListener(\"DOMNodeRemoved\", function() {\n TiddlyWiki.executeExtensionCmd(spreadsheet, TiddlyWiki.importCommandKeyword);\n }, false);\n },\n\n // Tab click management for import/export (cf. Clipboard tab).\n clickImportExportUI: function(spreadsheet) {\n // Refresh export selection\n var tabNames = [];\n var select = document.getElementById(spreadsheet.idPrefix+\"clipboard-export-select-source\");\n if (!select) return;\n for (name in spreadsheet.sheet.names) {\n tabNames.push(name);\n }\n tabNames.sort();\n select.length = 0;\n select.options[0] = new Option(SocialCalc.LocalizeString(\"[Clipboard]\"));\n for (i=0; i < tabNames.length; i++) {\n var name = tabNames[i];\n select.options[i+1] = new Option(name, name);\n }\n select.options[0].selected = true;\n },\n\n // Add new commands\n addNewCommands: function(spreadsheet, sheetTiddlerTitle) {\n var self = this;\n\n // Extension commands callback\n var comTiddlywiki = function(cmdname, data, sheet, cmd, saveundo) {\n var fonc = \"addNewCommands/comTiddlywiki\";\n if (!cmdname || !sheet) return;\n\n if (cmdname == TiddlyWiki.saveCommandKeyword) {\n // SAVE SHEET TO TIDDLER\n // Activated by Ctrl-S or the toolbar save button.\n\n // Serialize sheet data\n var calcData = SocialCalc.SpreadsheetControlCreateSpreadsheetSave(spreadsheet);\n\n // Save data to tiddler\n if (!sheetTiddlerTitle) return;\n var tiddler = $tw.wiki.getTiddler(sheetTiddlerTitle);\n if (typeof(tiddler) == \"undefined\" || !tiddler) return;\n $tw.wiki.addTiddler(new $tw.Tiddler(tiddler, {type: TiddlyWiki.sheetTiddlerType, text: calcData}));\n \n // Remove tiddler from sheet cache to force a reload, then a recalc of all\n // sheets in SocialCalc widgets with references to this sheet.\n TiddlyWiki.removeTiddlerFromSheetCache(sheetTiddlerTitle);\n \n // Notification\n var language = TiddlyWiki.currentLanguage ? TiddlyWiki.currentLanguage : \"en-GB\";\n var tiddlerTitle = TiddlyWiki.pathLanguages + \"/\" + language + TiddlyWiki.saveNotificationTiddlerSuffix;\n var tiddlerNotification = $tw.wiki.getTiddler(tiddlerTitle);\n if ($tw.notifier) {\n if (typeof(tiddlerNotification) != \"undefined\" && tiddlerNotification)\n $tw.notifier.display(tiddlerTitle);\n else {\n // Try with default language\n tiddlerTitle = TiddlyWiki.pathLanguages + \"/\" + TiddlyWiki.defaultLanguage + TiddlyWiki.saveNotificationTiddlerSuffix;\n var tiddlerNotification1 = $tw.wiki.getTiddler(tiddlerTitle);\n if (typeof(tiddlerNotification1) != \"undefined\" && tiddlerNotification1)\n $tw.notifier.display(tiddlerTitle);\n }\n }\n\n // Give the save button it's normal aspect\n spreadsheet.tiddlyWiki.changeSaveButtonVisual(false);\n\n } else if (cmdname == TiddlyWiki.exportCommandKeyword) {\n // EXPORT DATA TO TIDDLER\n // Set type to \"text/plain\" and \"format\" field to \"tab\", \"csv\" or \"scsave\".\n\n var inputTiddler = document.getElementById(spreadsheet.idPrefix+\"clipboard-tiddler\");\n if (!inputTiddler) return;\n var tiddlerTitle = self.resolvePath(inputTiddler.value);\n if (!tiddlerTitle) return;\n\n // Choosen format\n var select = document.getElementById(spreadsheet.idPrefix+\"clipboard-export-select-format\");\n if (!select) return;\n var format = select.options[select.selectedIndex >= 0 ? select.selectedIndex : 0].text;\n if (format == \"Tab-delimited\") format = \"tab\";\n else if (format == \"CSV\") format = \"csv\";\n else format = \"scsave\";\n\n // Read and format data\n var data = \"\";\n select = document.getElementById(spreadsheet.idPrefix+\"clipboard-export-select-source\");\n if (!select) return;\n if (select.selectedIndex <= 0) {\n // Clipboard\n data = SocialCalc.ConvertSaveToOtherFormat(SocialCalc.Clipboard.clipboard, format);\n } else {\n // Named selection\n var name = spreadsheet.sheet.names[select.options[select.selectedIndex].text.toUpperCase()];\n if (!name || !name.definition) return;\n var sel = name.definition;\n var data = SocialCalc.ConvertSaveToOtherFormat(SocialCalc.CreateSheetSave(spreadsheet.editor.context.sheetobj, sel), format);\n }\n\n // Save data to tiddler\n var tiddler = $tw.wiki.getTiddler(tiddlerTitle);\n if (typeof(tiddler) != \"undefined\" && tiddler) {\n // Ask confirmation before smashing tiddler\n spreadsheet.tiddlyWiki.createDialog(spreadsheet, SocialCalc.Constants.s_clipboard_export_error_tiddler_exists + \" : <b>\"+tiddlerTitle+\"</b>.<br>\" + SocialCalc.Constants.s_clipboard_export_error_tiddler_overwrite, true, function() {\n $tw.wiki.addTiddler(new $tw.Tiddler({title: tiddlerTitle, type: TiddlyWiki.dataTiddlerType, text: data, format: format}));\n });\n } else\n $tw.wiki.addTiddler(new $tw.Tiddler({title: tiddlerTitle, type: TiddlyWiki.dataTiddlerType, text: data, format: format}));\n\n } else if (cmdname == TiddlyWiki.importCommandKeyword) {\n // IMPORT DATA TIDDLER TO CLIPBOARD\n // Expect \"format\" field to be \"tab\", \"csv\" or \"scsave\". If no format field, assume\n // Tab-delimited format.\n // Don't check tiddler's type.\n\n var inputTiddler = document.getElementById(spreadsheet.idPrefix+\"clipboard-tiddler\");\n if (!inputTiddler) return;\n var tiddlerTitle = self.resolvePath(inputTiddler.value);\n if (!tiddlerTitle) return;\n var tiddler = $tw.wiki.getTiddler(tiddlerTitle);\n if (typeof(tiddler) == \"undefined\" || !tiddler) return;\n var format = null;\n if (tiddler.fields)\n var format = tiddler.fields.format;\n if (format && (format != \"tab\") && (format != \"csv\") && (format != \"scsave\")) {\n alert(SocialCalc.Constants.s_clipboard_import_error_tiddler_format);\n return;\n }\n if (!format) format = \"tab\";\n var data = tiddler.fields.text;\n\n // Fill clipboard area with data\n var radioTab = document.getElementById(spreadsheet.idPrefix+\"clipboardformat-tab\");\n radioTab.click();\n SocialCalc.Clipboard.clipboard = SocialCalc.ConvertOtherFormatToSave(data, format) ;\n SocialCalc.SpreadsheetControlClipboardFormat(\"tab\");\n }\n };\n if (!spreadsheet.sheet || !spreadsheet.sheet.sci) return;\n spreadsheet.sheet.sci.CmdExtensionCallbacks[TiddlyWiki.saveCommandKeyword] = {func:comTiddlywiki, data:null};\n spreadsheet.sheet.sci.CmdExtensionCallbacks[TiddlyWiki.exportCommandKeyword] = {func:comTiddlywiki, data:null};\n spreadsheet.sheet.sci.CmdExtensionCallbacks[TiddlyWiki.importCommandKeyword] = {func:comTiddlywiki, data:null};\n \n // Add UI for the commands (buttons in the toolbar)\n this.addExtensionCmdUI(spreadsheet);\n },\n\n // Create a simple modal dialog to query a OK or Cancel answer and do something if OK\n createDialog: function(spreadsheet, mess, flagDoIfOK, func) {\n // (Inspired by SocialCalc.SpreadsheetControl.DoFunctionList())\n\n self = this;\n var scc = SocialCalc.Constants;\n var idp = spreadsheet.idPrefix+\"dialog\";\n\n // Visual\n var win = document.createElement(\"div\");\n win.id = idp;\n win.style.position = \"absolute\";\n var vp = SocialCalc.GetViewportInfo();\n var pos = SocialCalc.GetElementPositionWithScroll(spreadsheet.spreadsheetDiv);\n win.style.top = ((vp.height/2)-pos.top)+\"px\";\n win.style.left = ((vp.width/2)-pos.left)+\"px\";\n win.style.zIndex = 100;\n win.style.backgroundColor = \"#FFF\";\n win.style.border = \"1px solid black\";\n\n var str =\n '<div class=\"SocialCalc-dialog\" style=\"width:100%;background-color:#DDD;\">'+\n ' <table>'+\n ' <tr>'+\n ' <td>'+\n ' <div style=\"padding:6px 6px 6px 6px;font-size:small;\">'+ mess + '</div>'+\n ' </td>'+\n ' </tr>'+\n ' <tr>'+\n ' <td>'+\n ' <div style=\"text-align:right;padding:12px 6px 6px 6px;font-size:small;\">'+\n ' <input type=\"button\" value=\"%loc!OK!\" id=\"'+idp+'-ok\" style=\"font-size:smaller;\"> '+\n ' <input type=\"button\" value=\"%loc!Cancel!\" id=\"'+idp+'-cancel\" style=\"font-size:smaller;\">'+\n ' </div>'+\n ' </td>'+\n ' </tr>'+\n ' </table>'+\n '</div>';\n\n win.innerHTML = SocialCalc.LocalizeSubstrings(str);\n spreadsheet.spreadsheetDiv.appendChild(win);\n\n // Buttons behaviour\n var deleteWin = function() {\n if (win.parentNode)\n win.parentNode.removeChild(win);\n SocialCalc.KeyboardFocus();\n };\n var buttonOK = document.getElementById(idp+\"-ok\");\n buttonOK.addEventListener(\"click\", function() {\n if (flagDoIfOK && func) func();\n deleteWin();\n }, false);\n var buttonCancel = document.getElementById(idp+\"-cancel\");\n buttonCancel.addEventListener(\"click\", function() {\n deleteWin();\n }, false);\n },\n\n // Monitoring\n monitor: function(spreadsheet) {\n var self = this;\n\n // Register an editor callback (called at almost every steps)\n this.monitorCallback = function(cmdComplete) {\n //console.log(\"TiddlyWiki.monitorCallback: cmd = \"+cmdComplete);\n var tabTokens = cmdComplete.toLowerCase().split(/[\\s]+/);\n var cmd = tabTokens[0];\n var doChange = function(tab) {\n var tabCmdNoChange = [\"copy\", \"cut\", \"clearclipboard\", \"recalc\", \"redisplay\"];\n var cmd = tab[0];\n for (var i = 0; i < tabCmdNoChange.length; i++) {\n if (cmd == tabCmdNoChange[i]) return false;\n }\n if (cmd == \"loadclipboard\" && tabTokens.length == 1) return false;\n return true;\n };\n\n // Change button color when need saving\n if (self.saveTodo.flagStart && doChange(tabTokens)) {\n self.changeSaveButtonVisual(true);\n }\n }\n }\n\n };\n\n exports.TiddlyWiki = TiddlyWiki;\n\n})();", "title": "$:/plugins/rboue/SocialCalc/tiddlywiki.js", "type": "application/javascript", "module-type": "library" } } }
<svg xmlns="http://www.w3.org/2000/svg" width="22pt" height="22pt" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M7 11H1v2h6v-2zm2.17-3.24L7.05 5.64 5.64 7.05l2.12 2.12 1.41-1.41zM13 1h-2v6h2V1zm5.36 6.05l-1.41-1.41-2.12 2.12 1.41 1.41 2.12-2.12zM17 11v2h6v-2h-6zm-5-2c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3zm2.83 7.24l2.12 2.12 1.41-1.41-2.12-2.12-1.41 1.41zm-9.19.71l1.41 1.41 2.12-2.12-1.41-1.41-2.12 2.12zM11 23h2v-6h-2v6z"/></svg>
{ "tiddlers": { "$:/core/images/format-colortext": { "text": "<svg class=\"tc-image-format-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 24 22\">\n <g fill-rule=\"evenodd\">\n\n<path d=\"M11 3L5.5 17h2.25l1.12-3h6.25l1.12 3h2.25L13 3h-2zm-1.38 9L12 5.67 14.38 12H9.62z\" fill={{$:/palettes/Editor##alt-text}} />\n\n<path d=\"M0 20h24v4H0z\" fill={{$:/palettes/Editor##alt-text}} transform=\"matrix(0., 0, 0, 0, -3.41595, 3.41595)\"/>\n\n </g>\n</svg>", "created": "20160308201122806", "modified": "20160323163121312", "tags": "$:/tags/Image", "title": "$:/core/images/format-colortext" }, "$:/core/ui/TextEditorToolbar/colortext": { "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"@@color:{{$:/palettes/Editor##alt-text}};\"\n\tsuffix=\"@@\"\n/>\n", "caption": "{{$:/language/Buttons/ColorText/Caption}}", "condition": "[all[current]!is[image]]", "created": "20160308201549795", "creator": "Stephen", "description": "{{$:/language/Buttons/ColorText/Hint}}", "icon": "$:/core/images/format-colortext", "list-after": "$:/core/ui/TextEditorToolbar/preview", "modified": "20160505115508026", "modifier": "Stephen", "shortcuts": "((colortext))", "tags": "$:/tags/EditorToolbar", "title": "$:/core/ui/TextEditorToolbar/colortext" }, "$:/language/Buttons/ColorText/Caption": { "text": "Color Text", "created": "20160224030859261", "creator": "Stephen", "modified": "20160224030926535", "modifier": "Stephen", "tags": "ske", "title": "$:/language/Buttons/ColorText/Caption" }, "$:/language/Buttons/ColorText/Hint": { "text": "Color the highlighted selection", "created": "20160224030934985", "creator": "Stephen", "modified": "20160224031023656", "modifier": "Stephen", "tags": "ske", "title": "$:/language/Buttons/ColorText/Hint" }, "$:/palettes/Editor": { "text": "alt-text: #ee82fd\nhighlight: #999999", "created": "20160219032556001", "creator": "Stephen", "description": "My editor colors", "modified": "20160402021839352", "modifier": "Stephen", "name": "BlueOne", "title": "$:/palettes/Editor", "type": "application/x-tiddler-dictionary" }, "$:/core/images/format-colourpicker": { "text": "<svg class=\"tc-image-format-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 32 32\">\n <g fill-rule=\"evenodd\">\n<rect x=\"3.18037\" y=\"4.16196\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e2_rectangle\" width=\"7.14601\" height=\"6.79264\" transform=\"matrix(1, 0, 0, 1, -0.078125, 0)\" fill=\"red\"/><rect x=\"12.3681\" y=\"4.43681\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e3_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"orange\" transform=\"matrix(1, 0, 0, 1, 0.078125, -0.277344)\"/><rect x=\"21.7129\" y=\"4.5546\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e4_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"yellow\" transform=\"matrix(1, 0, 0, 1, 0, -0.394531)\"/><rect x=\"3.10186\" y=\"13.0748\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e5_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"black\" transform=\"matrix(1, 0, 0, 1, 0, 0)\"/><rect x=\"12.7608\" y=\"13.1141\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e6_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"white\" transform=\"matrix(1, 0, 0, 1, -0.316406, 0)\"/><rect x=\"21.6737\" y=\"13.2319\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e7_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"brown\" transform=\"matrix(1, 0, 0, 1, 0.0390625, 0)\"/><rect x=\"3.53382\" y=\"22.2233\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e8_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"purple\" transform=\"matrix(1, 0, 0, 1, -0.433594, 0)\"/><rect x=\"12.5252\" y=\"22.1055\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e9_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"blue\" transform=\"matrix(1, 0, 0, 1, -0.078125, 0)\"/><rect x=\"21.5951\" y=\"22.0662\" style=\"stroke-width: 1px; vector-effect: non-scaling-stroke;\" stroke=\"black\" id=\"e10_rectangle\" width=\"7.14601\" height=\"6.79264\" fill=\"green\" transform=\"matrix(1, 0, 0, 1, 0.117188, 0)\"/>\n </g>\n</svg>", "created": "20160308222135787", "modified": "20160308222237936", "tags": "$:/tags/Image", "title": "$:/core/images/format-colourpicker" }, "$:/core/ui/TextEditorToolbar/Colour-Picker": { "text": "", "caption": "Colour Picker", "condition": "[all[current]!is[image]]", "created": "20160308222708458", "description": "Pick a colour", "dropdown": "$:/sk/ColourPickToolbar", "icon": "$:/core/images/format-colourpicker", "list-after": "$:/core/ui/TextEditorToolbar/highlight", "modified": "20160327030731065", "tags": "$:/tags/EditorToolbar", "title": "$:/core/ui/TextEditorToolbar/Colour-Picker" }, "$:/sk/ColourDropDown": { "text": "<style>\n.dropdown {\n position: relative;\n display: inline-block;\n}\n\n.dropdown-content {\n display: none;\n position: absolute;\n min-width: 200px;\n box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);\n padding: 5px 12px;\n}\n\n.dropdown:hover .dropdown-content {\n display: block;\n}\n</style><div class=\"dropdown\"><span>{{$:/core/images/format-colourpicker}}</span><div class=\"dropdown-content\">{{$:/sk/ColourPickToolbar}}</div></div>\n", "caption": "{{$:/language/Buttons/Colourpick/Caption}}", "created": "20160226170158102", "creator": "Stephen", "description": "{{$:/language/Buttons/Colourpick/Hint}}", "modified": "20160328122306350", "modifier": "Stephen", "tags": "ske", "title": "$:/sk/ColourDropDown" }, "$:/sk/ColourPickToolbar": { "text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n<$set name=\"currentTiddler\" value=\"$:/palettes/Editor\">\n<table class=\"noborders\"><tbody><$list filter=\"[all[current]indexes[]]\" variable=\"colourName\"><tr><td>\n<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/></td>\n<td><$edit-text index=<<colourName>> type=\"color\" tag=\"input\"/></td></tr></$list></tbody></table>\n</$set>", "created": "20160224130815967", "creator": "Stephen", "modified": "20160302035820782", "modifier": "Stephen", "tags": "ske exclude", "title": "$:/sk/ColourPickToolbar" }, "$:/core/images/format-highlight": { "text": "<svg class=\"tc-image-format-strikethrough tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 100 100\">\n <g fill-rule=\"evenodd\">\n\n<path d=\"M47.444000244140625,64.54199981689453l17.49199676513672,-17.810001373291016c0.28400421142578125,-0.2879981994628906,0.33300018310546875,-0.5879974365234375,0.32900238037109375,-0.7869987487792969c-0.009002685546875,-0.197998046875,-0.08300018310546875,-0.4949989318847656,-0.38800048828125,-0.7519989013671875l-37.07599639892578,-32.14400100708008c-0.47100067138671875,-0.4089994430541992,-1.2460002899169922,-0.48600006103515625,-1.8410015106201172,-0.1829996109008789c-0.1399993896484375,0.06799983978271484,-0.2709999084472656,0.1639995574951172,-0.37599945068359375,0.2719993591308594l-12.434999465942383,12.664002418518066c-0.5539999008178711,0.5629997253417969,-0.5790004730224609,1.6229991912841797,-0.05000019073486328,2.2129993438720703l32.80500030517578,36.490997314453125c0.5460014343261719,0.6100006103515625,1.1669998168945312,0.41100311279296875,1.5400009155273438,0.03600311279296875Z\" id=\"svg_1\" stroke-width=\"1.5\" stroke=\"#000\" fill={{$:/palettes/Editor##highlight}} />\n\n <path d=\"m91.361,70.514999c-0.264999,-2.648003 -1.417,-5.224998 -3.456001,-7.246998l-1.771996,-1.732002c-1.299004,-1.278999 -2.084,-2.926998 -2.238014,-4.616001c2.068001,-4.543999 1.215004,-10.086998 -2.511986,-13.743999c-0.016014,-0.014999 -0.213013,-0.212997 -0.230003,-0.229c-1.310997,-1.286999 -2.855003,-2.230999 -4.514999,-2.810997c-0.812004,-1.721001 -1.982002,-3.274002 -3.444,-4.534l-37.074001,-32.148001c-4.344,-3.764 -10.735998,-4.531 -15.907999,-1.906c-1.368999,0.696 -2.608,1.6 -3.686001,2.695l-12.444999,12.672001c-5.279,5.391998 -5.457,14 -0.416,19.587997l32.795999,36.487999c1.352001,1.507004 2.977001,2.652 4.742001,3.424004c0.632999,1.645996 1.630001,3.198997 2.995003,4.548996c3.676998,3.604004 9.197998,4.508003 13.824997,2.297005c1.690002,0.119995 3.351002,0.875999 4.646,2.149002l1.792999,1.764c1.997002,1.959 4.560013,3.089996 7.214005,3.321999l0.998001,0.984001c3.82,3.743996 9.817986,4.670998 14.589996,2.246986c0.002998,0 0.005997,-0.003998 0.010002,-0.003998l4.473,-2.278999c3.272987,-1.674004 5.470001,-4.657013 6.017998,-8.191002c0.549004,-3.538002 -0.632996,-7.053001 -3.278,-9.670998l-3.125999,-3.067001l0,0.000008zm-47.825001,-3.879997l-32.797999,-36.490002c-1.667,-1.848 -1.601,-4.804001 0.137,-6.578001l12.436001,-12.66c1.74,-1.771 4.702999,-1.894 6.577999,-0.269l37.075996,32.145001c1.880005,1.625 1.993004,4.404999 0.249001,6.177998l-17.497997,17.815002c-1.737999,1.771996 -4.521,1.708 -6.18,-0.140999zm43.885998,16.340996l-4.461998,2.271004c-1.102997,0.560997 -2.737,0.313995 -3.623001,-0.556l-2.962997,-2.913002c-0.056,-0.054001 -0.095001,-0.113998 -0.143997,-0.174004l6.298996,-6.406998c0.058998,0.045998 0.120003,0.082001 0.175003,0.139l5.124001,5.028999c0.879997,0.875 0.701996,2.046013 -0.406013,2.611l0.000008,0zm-12.709999,-29.227997l-0.172997,0.174999c-0.760002,5.029999 0.902,10.438 4.924995,14.393002l1.793015,1.753998c0.879997,0.872002 0.895996,2.307999 0.026985,3.195l-6.966995,7.088997c-0.870003,0.886002 -2.306,0.901001 -3.191002,0.032013l-1.789001,-1.759003c-4.021996,-3.956985 -9.466,-5.512985 -14.473,-4.668999l-0.178997,0.181c-1.043003,1.061005 -2.766003,1.076004 -3.831001,0.034004l-0.188999,-0.182999c-1.060001,-1.050995 -1.081001,-2.771004 -0.035999,-3.828995l20.027996,-20.392998c1.042999,-1.063999 2.771004,-1.080002 3.834999,-0.036999l0.183014,0.182999c1.066986,1.047001 1.078987,2.767998 0.036987,3.834l0,-0.000019z\" id=\"svg_3\" stroke-width=\"1.5\" stroke=\"#000\" fill={{$:/palettes/Editor##highlight}} />\n\n </g>\n</svg>", "created": "20160309032359242", "modified": "20160309033009206", "tags": "$:/tags/Image", "title": "$:/core/images/format-highlight" }, "$:/core/ui/TextEditorToolbar/highlight": { "text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"@@background-color:{{$:/palettes/Editor##highlight}};\"\n\tsuffix=\"@@\"\n/>\n", "caption": "{{$:/language/Buttons/Highlight/Caption}}", "condition": "[all[current]!is[image]]", "created": "20160309032623968", "creator": "Stephen", "description": "{{$:/language/Buttons/Highlight/Hint}}", "icon": "$:/core/images/format-highlight", "list-after": "$:/core/ui/TextEditorToolbar/colortext", "modified": "20160505115545257", "modifier": "Stephen", "shortcuts": "((highlight))", "tags": "$:/tags/EditorToolbar", "title": "$:/core/ui/TextEditorToolbar/highlight" }, "$:/language/Buttons/Highlight/Caption": { "text": "highlight", "created": "20150202183727182", "creator": "Stephen", "modified": "20150204201936988", "modifier": "Stephen", "tags": "ske", "title": "$:/language/Buttons/Highlight/Caption" }, "$:/language/Buttons/Highlight/Hint": { "text": "highlight the selected text", "created": "20150202182722936", "creator": "Stephen", "modified": "20150204201951251", "modifier": "Stephen", "tags": "ske", "title": "$:/language/Buttons/Highlight/Hint" }, "$:/core/modules/parsers/wikiparser/rules/styleinline.js": { "text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\n//sk additions for parsing inline style with library lookup\n// convert {{$:/palettes/Editor##alt-text}} to color and substitute back into the inline style\n\n//Error trap for normal inline styles\ntry{\nvar n = stylesString.indexOf(\"{{\"); \n}\ncatch(err){\nn=0;}\n\nif (n>0) {\n\n// Only do this if parsing a library lookup\n\n var re = /(.*?)\\{\\{(.*?)##(.*?)\\}\\}(.*?);/gm; \n var str = stylesString;\n var subst = '$2##$3'; \n var result = str.replace(re, subst);\n\n//result is the address we'll use for the lookup\n\nvar retrcolour=$tw.wiki.getTextReference(result);\n\n var subst = '$1'+retrcolour+';'; \n\nstylesString=str.replace(re, subst);\n\n};\n\n//end sk additions\n\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n", "created": "20160229195901635", "creator": "Stephen", "modified": "20160301182549308", "modifier": "Stephen", "module-type": "wikirule", "tags": "ske", "title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js", "type": "application/javascript" }, "$:/config/ShortcutInfo/colortext": { "text": "{{$:/language/Buttons/ColorText/Hint}}", "created": "20160505025404285", "creator": "Stephen", "modified": "20160505025425976", "modifier": "Stephen", "tags": "", "title": "$:/config/ShortcutInfo/colortext" }, "$:/config/shortcuts/colortext": { "text": "ctrl-alt-C", "created": "20160505025306327", "creator": "Stephen", "modified": "20160505121829971", "modifier": "Stephen", "tags": "", "title": "$:/config/shortcuts/colortext" }, "$:/config/ShortcutInfo/highlight": { "text": "{{$:/language/Buttons/Highlight/Hint}}", "created": "20160505025332862", "creator": "Stephen", "modified": "20160505025357551", "modifier": "Stephen", "tags": "", "title": "$:/config/ShortcutInfo/highlight" }, "$:/config/shortcuts/highlight": { "text": "ctrl-alt-I", "created": "20160505025246382", "creator": "Stephen", "modified": "20160505122138246", "modifier": "Stephen", "tags": "", "title": "$:/config/shortcuts/highlight" } } }
/*\ title: $:/plugins/skeeve/newtiddler.js type: application/javascript module-type: widget newtiddler widget ``` <$newtiddler title="name" skeleton="name">Buttontext</$newtiddler> Modified by Danielo Rodríguez to add the hability of reseting temporary tiddlers. ``` The skeleton tiddler may contain variables which are replaced during creation \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var NewtiddlerWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; /* Inherit from the base widget class */ NewtiddlerWidget.prototype = new Widget(); /* Render this widget into the DOM */ NewtiddlerWidget.prototype.render = function(parent,nextSibling) { var self = this; // Remember parent this.parentDomNode = parent; // Compute attributes and execute state this.computeAttributes(); this.execute(); // Create element var domNode = this.document.createElement("button"); // Assign classes domNode.className = this.newtiddlerClass; // Assign styles if(this.style) { domNode.setAttribute("style",this.style); } // Add a click event handler $tw.utils.addEventListeners(domNode,[ {name: "click", handlerObject: this, handlerMethod: "handleClickEvent"} ]); // Insert element parent.insertBefore(domNode,nextSibling); this.renderChildren(domNode,null); this.domNodes.push(domNode); }; NewtiddlerWidget.prototype.handleClickEvent = function(event) { var skeleton = this.wiki.getTiddlerAsJson(this.newtiddlerSkeleton); var skeletonClone = JSON.parse(this.substituteVariableReferences(skeleton)); var basetitle = this.newtiddlerTitle; var title = basetitle; for(var t=1; this.wiki.tiddlerExists(title); t++) { title = basetitle + " " + t; } skeletonClone.title = title; for(var modificationField in this.wiki.getModificationFields()) { delete skeletonClone[modificationField]; } var created = this.wiki.getCreationFields(); for(var creationField in created) { skeletonClone[modificationField] = created[creationField]; } this.wiki.addTiddler(new $tw.Tiddler({"tags":this.newTiddlerTags},skeletonClone)); /*-------DANIELO EDIT-----*/ this.clearNonStandardFields(this.clearTiddler); /*-----END DANIELO EDIT---*/ switch(this.newtiddlerEdit) { case "show": case "yes": var bounds = this.domNodes[0].getBoundingClientRect(); this.dispatchEvent({ type: "tw-navigate", navigateTo: title, navigateFromTitle: this.getVariable("currentTiddler"), navigateFromNode: this, navigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height } }); if(this.newtiddlerEdit === "yes") { this.dispatchEvent({type: "tw-edit-tiddler", tiddlerTitle: title}); } break; case "no": break; case "inline": // not implemented yet break; } }; /*-------DANIELO EDIT-----*/ NewtiddlerWidget.prototype.clearNonStandardFields =function(title) { var standardFieldNames = "title tags modified modifier created creator".split(" "), tiddler = this.wiki.getTiddler(title); if(tiddler) { var clearFields = {}; for(var fieldName in tiddler.fields) { if(standardFieldNames.indexOf(fieldName) === -1) { clearFields[fieldName] = ""; } } this.wiki.addTiddler(new $tw.Tiddler(tiddler,clearFields)); } }; /*-----END DANIELO EDIT---*/ /* Compute the internal state of the widget */ NewtiddlerWidget.prototype.execute = function() { // Get attributes this.newtiddlerTitle = this.getAttribute("title"); this.newTiddlerTags=this.getAttribute("tags"); this.newtiddlerSkeleton = this.getAttribute("skeleton"); this.newtiddlerEdit = this.getAttribute("edit", "yes"); this.newtiddlerClass = this.getAttribute("class",""); this.newtiddlerStyle = this.getAttribute("style"); this.clearTiddler=this.getAttribute("clear"); if(this.newtiddlerClass != "") { this.newtiddlerClass = " " + this.newtiddlerClass; } this.newtiddlerClass = "tw-newtiddler-button" + this.newtiddlerClass; // Make child widgets this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ NewtiddlerWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes.title || changedAttributes.skeleton || changedAttributes.class || changedAttributes.style) { this.refreshSelf(); return true; } return this.refreshChildren(changedTiddlers); }; exports.newtiddler = NewtiddlerWidget; })();
{ "tiddlers": { "$:/plugins/sycom/feather-icons/doc/devDiary": { "title": "$:/plugins/sycom/feather-icons/doc/devDiary", "type": "text/vnd.tiddlywiki", "text": "Some notes about coding this plugin. Might be useful to others...\n\n* 20190508\n** On mobile, search field will always begin with UpperCase, so had to `toLowerCase` the string query.\n* 20190503\n** Added library extension capabilities and two icons : pentagon and motovun-jack to try it. Dealed with the NodeList concept to enable multiple list crossing. (almost) finished translation.\n* 20190417\n** Fixed some problems with stacking. Due to `xxem` usage in stylesheet, stacked use was moving somewhat randomly. Fixed it by using the viewBox attribute.\n* 20190330\n** Adding the full list of icons via a macro directly picking in the svg. Had to add an id to the svg. Will have to remember this when updating library...\n* 20190329\n** Creating an icon for the plugin, based upon <<f-i feather>>. Had to hack style `.tc-plugin-info-chunk` to remove //fill// and color //stroke// the right way. In $:/plugins/sycom/feather-icons/feather.css\n** Beginning to ad some usage : more sizes (x5, x11), block.\n* 20190328\n** First implementation attempt. Just importing svg sprites library, declaring a css stylesheet. The svg sprite file is tagged `$:/tags/RawMarkup` in order to be loaded at wiki load.\n" }, "$:/plugins/sycom/feather-icons/icons": { "title": "$:/plugins/sycom/feather-icons/icons", "type": "text/vnd.tiddlywiki", "caption": "Icons", "text": "<<i18n list_intro $:/plugins/sycom/feather-icons dico>>\n\n<div style=\"text-align:center\">\n<$edit-text tag=\"input\" tiddler=\"$:/temp/searchFeatherIcons\" placeholder=\"find yours\" />\n</div>\n\n<$macrocall $name=list-feather-icons string={{$:/temp/searchFeatherIcons}}>>\n" }, "$:/plugins/sycom/feather-icons/readme": { "title": "$:/plugins/sycom/feather-icons/readme", "caption": "Readme", "text": "<<i18n readme $:/plugins/sycom/feather-icons>>\n" }, "$:/plugins/sycom/feather-icons/usage": { "title": "$:/plugins/sycom/feather-icons/usage", "caption": "Usage", "text": "<<i18n usage $:/plugins/sycom/feather-icons>>\n" }, "$:/plugins/sycom/feather-icons/feather.css": { "title": "$:/plugins/sycom/feather-icons/feather.css", "tags": "[[$:/tags/Stylesheet]]", "text": "/* Styles for the plugin (icon) */\n.tc-plugin-info-chunk > svg.tc-image-feather-icons {\n fill: none;\n stroke: <<colour foreground>>;\n stroke-width: 4;\n}\n\nsvg.feather .nofill {\n fill: <<colour background>>;\n}\n\n/* Styles for feathers sprites svg icons */\nsvg.feather, ul.feather svg {\n width: 1.1em;\n height: 1.1em;\n stroke: currentColor;\n stroke-width: 1.5;\n stroke-linecap: round;\n stroke-linejoin: round;\n fill: none;\n vertical-align: sub;\n}\nsvg.feather.x2 {\n width: 2em;\n height: 2em;\n stroke-width: 1.35;\n}\nsvg.feather.x3 {\n width: 3em;\n height: 3em;\n stroke-width: 1.25;\n}\nsvg.feather.x5 {\n width: 5em;\n height: 5em;\n stroke-width: 1.15;\n}\nsvg.feather.x11 {\n width: 11em;\n height: 11em;\n stroke-width: 0.9;\n}\nsvg.feather.thin {\n stroke-width: 1px;\n}\nsvg.feather.block {\n display:block;\n}\n\nul.feather {\n margin:.5em;\n}\nul.feather li {\n list-style: none;\n}\nul.feather li svg {\n margin: 0 0.1em;\n}\n\n/* styles for the list */\n.count {\n text-align:center;\n font-size:.9em;\n}\n\n.presentation {\n display: flex;\n flex-wrap: wrap;\n}\n.presentation .block {\n\tdisplay: inline-block;\n padding: .5em;\n width: 33%;\n}\n.presentation div div {\n background: <<colour page-background>>;\n padding: .5em;\n}\n.presentation .feather-icons div {\n background: rgba(175, 190, 210, 0.35)\n}\n.presentation .feather-icons-ext div {\n background: rgba(210, 190, 175, 0.35)\n}\n\n.presentation span {\n margin-left: .2em;\n font-size: .9em;\n vertical-align: top;\n padding-left: .5em;\n}\n\n\n/* style corrections for TW usage (icon substitution) */\n.tc-btn-invisible svg.feather,\n.tc-tiddler-controls svg.feather,\nbody.tc-dirty span.tc-dirty-indicator svg.feather {\n fill:none;\n}\n\n.tc-btn-invisible:hover svg.feather,\n.tc-tiddler-controls svg.feather {\n fill:none;\n stroke: <<colour sidebar-controls-foreground-hover>>;\n stroke-width: 2;\n}\n\nbutton.tc-selected svg.feather {\n\tfill:none;\n stroke: <<colour primary>>;\n stroke-width: 2px;\n}\n" }, "$:/plugins/sycom/feather-icons/i18n/en-GB": { "title": "$:/plugins/sycom/feather-icons/i18n/en-GB", "type": "application/x-tiddler-dictionary", "text": "list_intro: Here is the Feather icons list. Find yours...\n" }, "$:/plugins/sycom/feather-icons/i18n/en-GB/macrosIntro": { "title": "$:/plugins/sycom/feather-icons/i18n/en-GB/macrosIntro", "text": "List of pre-defined macros for the feather icons plugin\n\n* `<<f-i>> (icon class)` will display the `icon` with the `class`. If class are multiple, put them into single or double quotes `'` , `\"`\n* `<<f-i-stack>> (icon1 icon2 class adjust)` will //stack// icon2 above icon1. You may adjust icon2 position with adjust (translate coordinates)\n* `<<list-feather-icons>> (string)` will display a list of icons corresponding to the `string`\n\n!! examples\n" }, "$:/plugins/sycom/feather-icons/i18n/en-GB/usage": { "title": "$:/plugins/sycom/feather-icons/i18n/en-GB/usage", "text": "Once plugin is installed, you can call any icon of the library using its name. See //Icons// for the full list. Some classes are ready to go :\n\n* `x2`, `x3`, `x5`, `x11` will increase the icon size\n* `thin` will force the stroke line to be... ...thin\n* `block` will treat your icon as a block and have its own paragraph (defaultly icons are inline block)\n\n!!! hard coding your svg sprites call\n```\n<svg class=\"feather class\" style=\"your_styles\"><use href=\"#name_of_your_icon\" /></svg>\n```\n\n!!! using integrated [[macros|$:/plugins/sycom/feather-icons/macros.tid]]\n\n!!!! `<<f-i>>` (//icon// //class//)\n```\n<<f-i feather>>\n```\n<<f-i feather>> icons are pretty nice and easy to use\n\n```\n<<f-i box 'x3 block'>>\n```\nthey may also be displayed <<f-i box 'x3 block'>> on its own line\n\n!!!! `<<f-i-stack>>` (//icon1// //icon2// //class// //scale(1)// //move(\"0 0\")//)\n```\n<<f-i-stack search more-horizontal x3 .6 '6 7'>>\n```\nAnd you can stack them! <<f-i-stack search more-horizontal x3 .6 '6 7'>>\n" }, "$:/plugins/sycom/feather-icons/i18n/fr-FR": { "title": "$:/plugins/sycom/feather-icons/i18n/fr-FR", "type": "application/x-tiddler-dictionary", "text": "list_intro: La liste de tous les icones de Feather. Trouve le tien...\n" }, "$:/plugins/sycom/feather-icons/i18n/fr-FR/macrosIntro": { "title": "$:/plugins/sycom/feather-icons/i18n/fr-FR/macrosIntro", "text": "Liste des macros prédéfinies pour le plugin feather icons\n\n* `<<f-i>> (icon class)` affichera l'icône `icon` avec la classe `class`. Si vous voulez utiliser des classes multiples, mettez-les à l'intérieur de guillemets simples ou doubles `'` , `\"`\n* `<<f-i-stack>> (icon1 icon2 class scale translate)` //empilera// l'icon2 sur l'icon1. Vous pouvez ajuster l'échelle (scale entre O et 1) et la position de icon2 (translate 'x y')\n* `<<list-feather-icons>> (string)` affichera une liste d'icônes correspondant à la chaine de caractères `string`\n\n!! exemples\n" }, "$:/plugins/sycom/feather-icons/i18n/fr-FR/readme": { "title": "$:/plugins/sycom/feather-icons/i18n/fr-FR/readme", "text": "Le [plugin feather icons](#$:/plugins/sycom/feather-icons) est un travail en cours pour l'intégration de la librairie d'icônes [feather][feather] dans TiddlyWiki.\n\n## Sources / licences\n* [feather icons][feather] (_4.21.0_) licence MIT\n* [i18n macro][i18n] sous licence [BSD 3-Clause][license]\n* le **plugin feather icons** est sous une [licence BSD 3-Clause][license] similaire à celle de TiddlyWiki\n* la librairie d'icones complémentaires pour le plugin est sous licence MIT\n\n[feather]: https://feathericons.com/\n[i18n]: https://sycom.gitlab.io/TiddlyWiki-Plugins/#i18n%20macro\n[license]: https://framagit.org/sycom/TiddlyWiki-Plugins/LICENSE.md\n", "type": "text/x-markdown", "caption": "LisezMoi" }, "$:/plugins/sycom/feather-icons/i18n/fr-FR/usage": { "title": "$:/plugins/sycom/feather-icons/i18n/fr-FR/usage", "text": "Une fois le plugin installé, vous pouvez utiliser n'importe quel icone de la bibliothèque. Voir //Icons// pour la liste complète. Certaines classes sont prêtes à l'emploi :\n\n* `x2`, `x3`, `x5`, `x11` augmentera la taille de l'icone\n* `thin` forcera un tracé fin de la ligne de l'icone\n* `block` fera de votre icone un objet isolé dans son propre paragraphe (par défaut, les icones s'inscrivent dans le texte)\n\n!!! appeler directement les icones SVG sous forme de \"sprites\"\n```\n<svg class=\"feather class\" style=\"your_styles\"><use href=\"#name_of_your_icon\" /></svg>\n```\n\n!!! utiliser les [[macros|$:/plugins/sycom/feather-icons/macros.tid]] intégrée\n\n!!!! `<<f-i>>` (//icon// //class//)\n```\n<<f-i feather>>\n```\nLes icones <<f-i feather>> sont très chouettes et faciles à utiliser\n\n```\n<<f-i box 'x3 block'>>\n```\nIls peuvent aussi s'afficher <<f-i box 'x3 block'>> sur leur propre ligne\n\n!!!! `<<f-i-stack>>` (//icon1// //icon2// //class// //scale(1)// //move(\"0 0\")//)\n```\n<<f-i-stack search more-horizontal x3 .6 '6 7'>>\n```\nEt il est aussi possible de les empiler! <<f-i-stack search more-horizontal x3 .6 '6 7'>>\n" }, "$:/plugins/sycom/feather-icons/icon": { "title": "$:/plugins/sycom/feather-icons/icon", "tags": "$:/tags/Image", "text": "<<f-i-stack hexagon feather '' .6 '8 8'>>\n" }, "$:/plugins/sycom/feather-icons/lib/feather-sprite.svg": { "text": "<svg id=\"feather-icons\" xmlns=\"http://www.w3.org/2000/svg\"><defs><symbol id=\"activity\" viewBox=\"0 0 24 24\"><polyline points=\"22 12 18 12 15 21 9 3 6 12 2 12\"></polyline></symbol><symbol id=\"airplay\" viewBox=\"0 0 24 24\"><path d=\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"></path><polygon points=\"12 15 17 21 7 21 12 15\"></polygon></symbol><symbol id=\"alert-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"16\"></line></symbol><symbol id=\"alert-octagon\" viewBox=\"0 0 24 24\"><polygon points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"></polygon><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"16\"></line></symbol><symbol id=\"alert-triangle\" viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"13\"></line><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"17\"></line></symbol><symbol id=\"align-center\" viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"10\" x2=\"6\" y2=\"10\"></line><line x1=\"21\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"21\" y1=\"14\" x2=\"3\" y2=\"14\"></line><line x1=\"18\" y1=\"18\" x2=\"6\" y2=\"18\"></line></symbol><symbol id=\"align-justify\" viewBox=\"0 0 24 24\"><line x1=\"21\" y1=\"10\" x2=\"3\" y2=\"10\"></line><line x1=\"21\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"21\" y1=\"14\" x2=\"3\" y2=\"14\"></line><line x1=\"21\" y1=\"18\" x2=\"3\" y2=\"18\"></line></symbol><symbol id=\"align-left\" viewBox=\"0 0 24 24\"><line x1=\"17\" y1=\"10\" x2=\"3\" y2=\"10\"></line><line x1=\"21\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"21\" y1=\"14\" x2=\"3\" y2=\"14\"></line><line x1=\"17\" y1=\"18\" x2=\"3\" y2=\"18\"></line></symbol><symbol id=\"align-right\" viewBox=\"0 0 24 24\"><line x1=\"21\" y1=\"10\" x2=\"7\" y2=\"10\"></line><line x1=\"21\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"21\" y1=\"14\" x2=\"3\" y2=\"14\"></line><line x1=\"21\" y1=\"18\" x2=\"7\" y2=\"18\"></line></symbol><symbol id=\"anchor\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"5\" r=\"3\"></circle><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"8\"></line><path d=\"M5 12H2a10 10 0 0 0 20 0h-3\"></path></symbol><symbol id=\"aperture\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"14.31\" y1=\"8\" x2=\"20.05\" y2=\"17.94\"></line><line x1=\"9.69\" y1=\"8\" x2=\"21.17\" y2=\"8\"></line><line x1=\"7.38\" y1=\"12\" x2=\"13.12\" y2=\"2.06\"></line><line x1=\"9.69\" y1=\"16\" x2=\"3.95\" y2=\"6.06\"></line><line x1=\"14.31\" y1=\"16\" x2=\"2.83\" y2=\"16\"></line><line x1=\"16.62\" y1=\"12\" x2=\"10.88\" y2=\"21.94\"></line></symbol><symbol id=\"archive\" viewBox=\"0 0 24 24\"><polyline points=\"21 8 21 21 3 21 3 8\"></polyline><rect x=\"1\" y=\"3\" width=\"22\" height=\"5\"></rect><line x1=\"10\" y1=\"12\" x2=\"14\" y2=\"12\"></line></symbol><symbol id=\"arrow-down-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"8 12 12 16 16 12\"></polyline><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"16\"></line></symbol><symbol id=\"arrow-down-left\" viewBox=\"0 0 24 24\"><line x1=\"17\" y1=\"7\" x2=\"7\" y2=\"17\"></line><polyline points=\"17 17 7 17 7 7\"></polyline></symbol><symbol id=\"arrow-down-right\" viewBox=\"0 0 24 24\"><line x1=\"7\" y1=\"7\" x2=\"17\" y2=\"17\"></line><polyline points=\"17 7 17 17 7 17\"></polyline></symbol><symbol id=\"arrow-down\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><polyline points=\"19 12 12 19 5 12\"></polyline></symbol><symbol id=\"arrow-left-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 8 8 12 12 16\"></polyline><line x1=\"16\" y1=\"12\" x2=\"8\" y2=\"12\"></line></symbol><symbol id=\"arrow-left\" viewBox=\"0 0 24 24\"><line x1=\"19\" y1=\"12\" x2=\"5\" y2=\"12\"></line><polyline points=\"12 19 5 12 12 5\"></polyline></symbol><symbol id=\"arrow-right-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 16 16 12 12 8\"></polyline><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line></symbol><symbol id=\"arrow-right\" viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line><polyline points=\"12 5 19 12 12 19\"></polyline></symbol><symbol id=\"arrow-up-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"16 12 12 8 8 12\"></polyline><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"8\"></line></symbol><symbol id=\"arrow-up-left\" viewBox=\"0 0 24 24\"><line x1=\"17\" y1=\"17\" x2=\"7\" y2=\"7\"></line><polyline points=\"7 17 7 7 17 7\"></polyline></symbol><symbol id=\"arrow-up-right\" viewBox=\"0 0 24 24\"><line x1=\"7\" y1=\"17\" x2=\"17\" y2=\"7\"></line><polyline points=\"7 7 17 7 17 17\"></polyline></symbol><symbol id=\"arrow-up\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"5\"></line><polyline points=\"5 12 12 5 19 12\"></polyline></symbol><symbol id=\"at-sign\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"4\"></circle><path d=\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"></path></symbol><symbol id=\"award\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"8\" r=\"7\"></circle><polyline points=\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"></polyline></symbol><symbol id=\"bar-chart-2\" viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"></line><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"></line><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"></line></symbol><symbol id=\"bar-chart\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"10\"></line><line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"4\"></line><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"16\"></line></symbol><symbol id=\"battery-charging\" viewBox=\"0 0 24 24\"><path d=\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"></path><line x1=\"23\" y1=\"13\" x2=\"23\" y2=\"11\"></line><polyline points=\"11 6 7 12 13 12 9 18\"></polyline></symbol><symbol id=\"battery\" viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" ry=\"2\"></rect><line x1=\"23\" y1=\"13\" x2=\"23\" y2=\"11\"></line></symbol><symbol id=\"bell-off\" viewBox=\"0 0 24 24\"><path d=\"M13.73 21a2 2 0 0 1-3.46 0\"></path><path d=\"M18.63 13A17.89 17.89 0 0 1 18 8\"></path><path d=\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"></path><path d=\"M18 8a6 6 0 0 0-9.33-5\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></symbol><symbol id=\"bell\" viewBox=\"0 0 24 24\"><path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"></path><path d=\"M13.73 21a2 2 0 0 1-3.46 0\"></path></symbol><symbol id=\"bluetooth\" viewBox=\"0 0 24 24\"><polyline points=\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"></polyline></symbol><symbol id=\"bold\" viewBox=\"0 0 24 24\"><path d=\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"></path><path d=\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"></path></symbol><symbol id=\"book-open\" viewBox=\"0 0 24 24\"><path d=\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"></path><path d=\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"></path></symbol><symbol id=\"book\" viewBox=\"0 0 24 24\"><path d=\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"></path><path d=\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"></path></symbol><symbol id=\"bookmark\" viewBox=\"0 0 24 24\"><path d=\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"></path></symbol><symbol id=\"box\" viewBox=\"0 0 24 24\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"></path><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"></polyline><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"></line></symbol><symbol id=\"briefcase\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><path d=\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"></path></symbol><symbol id=\"calendar\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"></line><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"></line><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"></line></symbol><symbol id=\"camera-off\" viewBox=\"0 0 24 24\"><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line><path d=\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"></path></symbol><symbol id=\"camera\" viewBox=\"0 0 24 24\"><path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"></path><circle cx=\"12\" cy=\"13\" r=\"4\"></circle></symbol><symbol id=\"cast\" viewBox=\"0 0 24 24\"><path d=\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"></path><line x1=\"2\" y1=\"20\" x2=\"2\" y2=\"20\"></line></symbol><symbol id=\"check-circle\" viewBox=\"0 0 24 24\"><path d=\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"></path><polyline points=\"22 4 12 14.01 9 11.01\"></polyline></symbol><symbol id=\"check-square\" viewBox=\"0 0 24 24\"><polyline points=\"9 11 12 14 22 4\"></polyline><path d=\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"></path></symbol><symbol id=\"check\" viewBox=\"0 0 24 24\"><polyline points=\"20 6 9 17 4 12\"></polyline></symbol><symbol id=\"chevron-down\" viewBox=\"0 0 24 24\"><polyline points=\"6 9 12 15 18 9\"></polyline></symbol><symbol id=\"chevron-left\" viewBox=\"0 0 24 24\"><polyline points=\"15 18 9 12 15 6\"></polyline></symbol><symbol id=\"chevron-right\" viewBox=\"0 0 24 24\"><polyline points=\"9 18 15 12 9 6\"></polyline></symbol><symbol id=\"chevron-up\" viewBox=\"0 0 24 24\"><polyline points=\"18 15 12 9 6 15\"></polyline></symbol><symbol id=\"chevrons-down\" viewBox=\"0 0 24 24\"><polyline points=\"7 13 12 18 17 13\"></polyline><polyline points=\"7 6 12 11 17 6\"></polyline></symbol><symbol id=\"chevrons-left\" viewBox=\"0 0 24 24\"><polyline points=\"11 17 6 12 11 7\"></polyline><polyline points=\"18 17 13 12 18 7\"></polyline></symbol><symbol id=\"chevrons-right\" viewBox=\"0 0 24 24\"><polyline points=\"13 17 18 12 13 7\"></polyline><polyline points=\"6 17 11 12 6 7\"></polyline></symbol><symbol id=\"chevrons-up\" viewBox=\"0 0 24 24\"><polyline points=\"17 11 12 6 7 11\"></polyline><polyline points=\"17 18 12 13 7 18\"></polyline></symbol><symbol id=\"chrome\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"4\"></circle><line x1=\"21.17\" y1=\"8\" x2=\"12\" y2=\"8\"></line><line x1=\"3.95\" y1=\"6.06\" x2=\"8.54\" y2=\"14\"></line><line x1=\"10.88\" y1=\"21.94\" x2=\"15.46\" y2=\"14\"></line></symbol><symbol id=\"circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle></symbol><symbol id=\"clipboard\" viewBox=\"0 0 24 24\"><path d=\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"></path><rect x=\"8\" y=\"2\" width=\"8\" height=\"4\" rx=\"1\" ry=\"1\"></rect></symbol><symbol id=\"clock\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polyline points=\"12 6 12 12 16 14\"></polyline></symbol><symbol id=\"cloud-drizzle\" viewBox=\"0 0 24 24\"><line x1=\"8\" y1=\"19\" x2=\"8\" y2=\"21\"></line><line x1=\"8\" y1=\"13\" x2=\"8\" y2=\"15\"></line><line x1=\"16\" y1=\"19\" x2=\"16\" y2=\"21\"></line><line x1=\"16\" y1=\"13\" x2=\"16\" y2=\"15\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"17\"></line><path d=\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"></path></symbol><symbol id=\"cloud-lightning\" viewBox=\"0 0 24 24\"><path d=\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"></path><polyline points=\"13 11 9 17 15 17 11 23\"></polyline></symbol><symbol id=\"cloud-off\" viewBox=\"0 0 24 24\"><path d=\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></symbol><symbol id=\"cloud-rain\" viewBox=\"0 0 24 24\"><line x1=\"16\" y1=\"13\" x2=\"16\" y2=\"21\"></line><line x1=\"8\" y1=\"13\" x2=\"8\" y2=\"21\"></line><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"23\"></line><path d=\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"></path></symbol><symbol id=\"cloud-snow\" viewBox=\"0 0 24 24\"><path d=\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"></path><line x1=\"8\" y1=\"16\" x2=\"8\" y2=\"16\"></line><line x1=\"8\" y1=\"20\" x2=\"8\" y2=\"20\"></line><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"18\"></line><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"22\"></line><line x1=\"16\" y1=\"16\" x2=\"16\" y2=\"16\"></line><line x1=\"16\" y1=\"20\" x2=\"16\" y2=\"20\"></line></symbol><symbol id=\"cloud\" viewBox=\"0 0 24 24\"><path d=\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"></path></symbol><symbol id=\"code\" viewBox=\"0 0 24 24\"><polyline points=\"16 18 22 12 16 6\"></polyline><polyline points=\"8 6 2 12 8 18\"></polyline></symbol><symbol id=\"codepen\" viewBox=\"0 0 24 24\"><polygon points=\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"></polygon><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"15.5\"></line><polyline points=\"22 8.5 12 15.5 2 8.5\"></polyline><polyline points=\"2 15.5 12 8.5 22 15.5\"></polyline><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"8.5\"></line></symbol><symbol id=\"codesandbox\" viewBox=\"0 0 24 24\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"></path><polyline points=\"7.5 4.21 12 6.81 16.5 4.21\"></polyline><polyline points=\"7.5 19.79 7.5 14.6 3 12\"></polyline><polyline points=\"21 12 16.5 14.6 16.5 19.79\"></polyline><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"></polyline><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"></line></symbol><symbol id=\"coffee\" viewBox=\"0 0 24 24\"><path d=\"M18 8h1a4 4 0 0 1 0 8h-1\"></path><path d=\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"></path><line x1=\"6\" y1=\"1\" x2=\"6\" y2=\"4\"></line><line x1=\"10\" y1=\"1\" x2=\"10\" y2=\"4\"></line><line x1=\"14\" y1=\"1\" x2=\"14\" y2=\"4\"></line></symbol><symbol id=\"columns\" viewBox=\"0 0 24 24\"><path d=\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"></path></symbol><symbol id=\"command\" viewBox=\"0 0 24 24\"><path d=\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"></path></symbol><symbol id=\"compass\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polygon points=\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"></polygon></symbol><symbol id=\"copy\" viewBox=\"0 0 24 24\"><rect x=\"9\" y=\"9\" width=\"13\" height=\"13\" rx=\"2\" ry=\"2\"></rect><path d=\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"></path></symbol><symbol id=\"corner-down-left\" viewBox=\"0 0 24 24\"><polyline points=\"9 10 4 15 9 20\"></polyline><path d=\"M20 4v7a4 4 0 0 1-4 4H4\"></path></symbol><symbol id=\"corner-down-right\" viewBox=\"0 0 24 24\"><polyline points=\"15 10 20 15 15 20\"></polyline><path d=\"M4 4v7a4 4 0 0 0 4 4h12\"></path></symbol><symbol id=\"corner-left-down\" viewBox=\"0 0 24 24\"><polyline points=\"14 15 9 20 4 15\"></polyline><path d=\"M20 4h-7a4 4 0 0 0-4 4v12\"></path></symbol><symbol id=\"corner-left-up\" viewBox=\"0 0 24 24\"><polyline points=\"14 9 9 4 4 9\"></polyline><path d=\"M20 20h-7a4 4 0 0 1-4-4V4\"></path></symbol><symbol id=\"corner-right-down\" viewBox=\"0 0 24 24\"><polyline points=\"10 15 15 20 20 15\"></polyline><path d=\"M4 4h7a4 4 0 0 1 4 4v12\"></path></symbol><symbol id=\"corner-right-up\" viewBox=\"0 0 24 24\"><polyline points=\"10 9 15 4 20 9\"></polyline><path d=\"M4 20h7a4 4 0 0 0 4-4V4\"></path></symbol><symbol id=\"corner-up-left\" viewBox=\"0 0 24 24\"><polyline points=\"9 14 4 9 9 4\"></polyline><path d=\"M20 20v-7a4 4 0 0 0-4-4H4\"></path></symbol><symbol id=\"corner-up-right\" viewBox=\"0 0 24 24\"><polyline points=\"15 14 20 9 15 4\"></polyline><path d=\"M4 20v-7a4 4 0 0 1 4-4h12\"></path></symbol><symbol id=\"cpu\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"4\" width=\"16\" height=\"16\" rx=\"2\" ry=\"2\"></rect><rect x=\"9\" y=\"9\" width=\"6\" height=\"6\"></rect><line x1=\"9\" y1=\"1\" x2=\"9\" y2=\"4\"></line><line x1=\"15\" y1=\"1\" x2=\"15\" y2=\"4\"></line><line x1=\"9\" y1=\"20\" x2=\"9\" y2=\"23\"></line><line x1=\"15\" y1=\"20\" x2=\"15\" y2=\"23\"></line><line x1=\"20\" y1=\"9\" x2=\"23\" y2=\"9\"></line><line x1=\"20\" y1=\"14\" x2=\"23\" y2=\"14\"></line><line x1=\"1\" y1=\"9\" x2=\"4\" y2=\"9\"></line><line x1=\"1\" y1=\"14\" x2=\"4\" y2=\"14\"></line></symbol><symbol id=\"credit-card\" viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"4\" width=\"22\" height=\"16\" rx=\"2\" ry=\"2\"></rect><line x1=\"1\" y1=\"10\" x2=\"23\" y2=\"10\"></line></symbol><symbol id=\"crop\" viewBox=\"0 0 24 24\"><path d=\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"></path><path d=\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"></path></symbol><symbol id=\"crosshair\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"22\" y1=\"12\" x2=\"18\" y2=\"12\"></line><line x1=\"6\" y1=\"12\" x2=\"2\" y2=\"12\"></line><line x1=\"12\" y1=\"6\" x2=\"12\" y2=\"2\"></line><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"18\"></line></symbol><symbol id=\"database\" viewBox=\"0 0 24 24\"><ellipse cx=\"12\" cy=\"5\" rx=\"9\" ry=\"3\"></ellipse><path d=\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"></path><path d=\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"></path></symbol><symbol id=\"delete\" viewBox=\"0 0 24 24\"><path d=\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"></path><line x1=\"18\" y1=\"9\" x2=\"12\" y2=\"15\"></line><line x1=\"12\" y1=\"9\" x2=\"18\" y2=\"15\"></line></symbol><symbol id=\"disc\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></symbol><symbol id=\"dollar-sign\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"23\"></line><path d=\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"></path></symbol><symbol id=\"download-cloud\" viewBox=\"0 0 24 24\"><polyline points=\"8 17 12 21 16 17\"></polyline><line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line><path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"></path></symbol><symbol id=\"download\" viewBox=\"0 0 24 24\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path><polyline points=\"7 10 12 15 17 10\"></polyline><line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\"></line></symbol><symbol id=\"droplet\" viewBox=\"0 0 24 24\"><path d=\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"></path></symbol><symbol id=\"edit-2\" viewBox=\"0 0 24 24\"><path d=\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"></path></symbol><symbol id=\"edit-3\" viewBox=\"0 0 24 24\"><path d=\"M12 20h9\"></path><path d=\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"></path></symbol><symbol id=\"edit\" viewBox=\"0 0 24 24\"><path d=\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"></path><path d=\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"></path></symbol><symbol id=\"external-link\" viewBox=\"0 0 24 24\"><path d=\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"></path><polyline points=\"15 3 21 3 21 9\"></polyline><line x1=\"10\" y1=\"14\" x2=\"21\" y2=\"3\"></line></symbol><symbol id=\"eye-off\" viewBox=\"0 0 24 24\"><path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></symbol><symbol id=\"eye\" viewBox=\"0 0 24 24\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></symbol><symbol id=\"facebook\" viewBox=\"0 0 24 24\"><path d=\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"></path></symbol><symbol id=\"fast-forward\" viewBox=\"0 0 24 24\"><polygon points=\"13 19 22 12 13 5 13 19\"></polygon><polygon points=\"2 19 11 12 2 5 2 19\"></polygon></symbol><symbol id=\"feather\" viewBox=\"0 0 24 24\"><path d=\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"></path><line x1=\"16\" y1=\"8\" x2=\"2\" y2=\"22\"></line><line x1=\"17.5\" y1=\"15\" x2=\"9\" y2=\"15\"></line></symbol><symbol id=\"figma\" viewBox=\"0 0 24 24\"><path d=\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"></path><path d=\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"></path><path d=\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"></path><path d=\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"></path><path d=\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"></path></symbol><symbol id=\"file-minus\" viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"></line></symbol><symbol id=\"file-plus\" viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"12\"></line><line x1=\"9\" y1=\"15\" x2=\"15\" y2=\"15\"></line></symbol><symbol id=\"file-text\" viewBox=\"0 0 24 24\"><path d=\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"></path><polyline points=\"14 2 14 8 20 8\"></polyline><line x1=\"16\" y1=\"13\" x2=\"8\" y2=\"13\"></line><line x1=\"16\" y1=\"17\" x2=\"8\" y2=\"17\"></line><polyline points=\"10 9 9 9 8 9\"></polyline></symbol><symbol id=\"file\" viewBox=\"0 0 24 24\"><path d=\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"></path><polyline points=\"13 2 13 9 20 9\"></polyline></symbol><symbol id=\"film\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"2.18\" ry=\"2.18\"></rect><line x1=\"7\" y1=\"2\" x2=\"7\" y2=\"22\"></line><line x1=\"17\" y1=\"2\" x2=\"17\" y2=\"22\"></line><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"></line><line x1=\"2\" y1=\"7\" x2=\"7\" y2=\"7\"></line><line x1=\"2\" y1=\"17\" x2=\"7\" y2=\"17\"></line><line x1=\"17\" y1=\"17\" x2=\"22\" y2=\"17\"></line><line x1=\"17\" y1=\"7\" x2=\"22\" y2=\"7\"></line></symbol><symbol id=\"filter\" viewBox=\"0 0 24 24\"><polygon points=\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"></polygon></symbol><symbol id=\"flag\" viewBox=\"0 0 24 24\"><path d=\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"></path><line x1=\"4\" y1=\"22\" x2=\"4\" y2=\"15\"></line></symbol><symbol id=\"folder-minus\" viewBox=\"0 0 24 24\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"></path><line x1=\"9\" y1=\"14\" x2=\"15\" y2=\"14\"></line></symbol><symbol id=\"folder-plus\" viewBox=\"0 0 24 24\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"></path><line x1=\"12\" y1=\"11\" x2=\"12\" y2=\"17\"></line><line x1=\"9\" y1=\"14\" x2=\"15\" y2=\"14\"></line></symbol><symbol id=\"folder\" viewBox=\"0 0 24 24\"><path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"></path></symbol><symbol id=\"frown\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M16 16s-1.5-2-4-2-4 2-4 2\"></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line></symbol><symbol id=\"gift\" viewBox=\"0 0 24 24\"><polyline points=\"20 12 20 22 4 22 4 12\"></polyline><rect x=\"2\" y=\"7\" width=\"20\" height=\"5\"></rect><line x1=\"12\" y1=\"22\" x2=\"12\" y2=\"7\"></line><path d=\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"></path><path d=\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"></path></symbol><symbol id=\"git-branch\" viewBox=\"0 0 24 24\"><line x1=\"6\" y1=\"3\" x2=\"6\" y2=\"15\"></line><circle cx=\"18\" cy=\"6\" r=\"3\"></circle><circle cx=\"6\" cy=\"18\" r=\"3\"></circle><path d=\"M18 9a9 9 0 0 1-9 9\"></path></symbol><symbol id=\"git-commit\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"4\"></circle><line x1=\"1.05\" y1=\"12\" x2=\"7\" y2=\"12\"></line><line x1=\"17.01\" y1=\"12\" x2=\"22.96\" y2=\"12\"></line></symbol><symbol id=\"git-merge\" viewBox=\"0 0 24 24\"><circle cx=\"18\" cy=\"18\" r=\"3\"></circle><circle cx=\"6\" cy=\"6\" r=\"3\"></circle><path d=\"M6 21V9a9 9 0 0 0 9 9\"></path></symbol><symbol id=\"git-pull-request\" viewBox=\"0 0 24 24\"><circle cx=\"18\" cy=\"18\" r=\"3\"></circle><circle cx=\"6\" cy=\"6\" r=\"3\"></circle><path d=\"M13 6h3a2 2 0 0 1 2 2v7\"></path><line x1=\"6\" y1=\"9\" x2=\"6\" y2=\"21\"></line></symbol><symbol id=\"github\" viewBox=\"0 0 24 24\"><path d=\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"></path></symbol><symbol id=\"gitlab\" viewBox=\"0 0 24 24\"><path d=\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"></path></symbol><symbol id=\"globe\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"></line><path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"></path></symbol><symbol id=\"grid\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"7\" height=\"7\"></rect><rect x=\"14\" y=\"3\" width=\"7\" height=\"7\"></rect><rect x=\"14\" y=\"14\" width=\"7\" height=\"7\"></rect><rect x=\"3\" y=\"14\" width=\"7\" height=\"7\"></rect></symbol><symbol id=\"hard-drive\" viewBox=\"0 0 24 24\"><line x1=\"22\" y1=\"12\" x2=\"2\" y2=\"12\"></line><path d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"></path><line x1=\"6\" y1=\"16\" x2=\"6\" y2=\"16\"></line><line x1=\"10\" y1=\"16\" x2=\"10\" y2=\"16\"></line></symbol><symbol id=\"hash\" viewBox=\"0 0 24 24\"><line x1=\"4\" y1=\"9\" x2=\"20\" y2=\"9\"></line><line x1=\"4\" y1=\"15\" x2=\"20\" y2=\"15\"></line><line x1=\"10\" y1=\"3\" x2=\"8\" y2=\"21\"></line><line x1=\"16\" y1=\"3\" x2=\"14\" y2=\"21\"></line></symbol><symbol id=\"headphones\" viewBox=\"0 0 24 24\"><path d=\"M3 18v-6a9 9 0 0 1 18 0v6\"></path><path d=\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"></path></symbol><symbol id=\"heart\" viewBox=\"0 0 24 24\"><path d=\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"></path></symbol><symbol id=\"help-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"></path><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"17\"></line></symbol><symbol id=\"hexagon\" viewBox=\"0 0 24 24\"><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"></path></symbol><symbol id=\"home\" viewBox=\"0 0 24 24\"><path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"></path><polyline points=\"9 22 9 12 15 12 15 22\"></polyline></symbol><symbol id=\"image\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><circle cx=\"8.5\" cy=\"8.5\" r=\"1.5\"></circle><polyline points=\"21 15 16 10 5 21\"></polyline></symbol><symbol id=\"inbox\" viewBox=\"0 0 24 24\"><polyline points=\"22 12 16 12 14 15 10 15 8 12 2 12\"></polyline><path d=\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"></path></symbol><symbol id=\"info\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"16\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"8\"></line></symbol><symbol id=\"instagram\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\"></rect><path d=\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"></path><line x1=\"17.5\" y1=\"6.5\" x2=\"17.5\" y2=\"6.5\"></line></symbol><symbol id=\"italic\" viewBox=\"0 0 24 24\"><line x1=\"19\" y1=\"4\" x2=\"10\" y2=\"4\"></line><line x1=\"14\" y1=\"20\" x2=\"5\" y2=\"20\"></line><line x1=\"15\" y1=\"4\" x2=\"9\" y2=\"20\"></line></symbol><symbol id=\"key\" viewBox=\"0 0 24 24\"><path d=\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"></path></symbol><symbol id=\"layers\" viewBox=\"0 0 24 24\"><polygon points=\"12 2 2 7 12 12 22 7 12 2\"></polygon><polyline points=\"2 17 12 22 22 17\"></polyline><polyline points=\"2 12 12 17 22 12\"></polyline></symbol><symbol id=\"layout\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"3\" y1=\"9\" x2=\"21\" y2=\"9\"></line><line x1=\"9\" y1=\"21\" x2=\"9\" y2=\"9\"></line></symbol><symbol id=\"life-buoy\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"4\"></circle><line x1=\"4.93\" y1=\"4.93\" x2=\"9.17\" y2=\"9.17\"></line><line x1=\"14.83\" y1=\"14.83\" x2=\"19.07\" y2=\"19.07\"></line><line x1=\"14.83\" y1=\"9.17\" x2=\"19.07\" y2=\"4.93\"></line><line x1=\"14.83\" y1=\"9.17\" x2=\"18.36\" y2=\"5.64\"></line><line x1=\"4.93\" y1=\"19.07\" x2=\"9.17\" y2=\"14.83\"></line></symbol><symbol id=\"link-2\" viewBox=\"0 0 24 24\"><path d=\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"></path><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line></symbol><symbol id=\"link\" viewBox=\"0 0 24 24\"><path d=\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"></path><path d=\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"></path></symbol><symbol id=\"linkedin\" viewBox=\"0 0 24 24\"><path d=\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"></path><rect x=\"2\" y=\"9\" width=\"4\" height=\"12\"></rect><circle cx=\"4\" cy=\"4\" r=\"2\"></circle></symbol><symbol id=\"list\" viewBox=\"0 0 24 24\"><line x1=\"8\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"8\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"8\" y1=\"18\" x2=\"21\" y2=\"18\"></line><line x1=\"3\" y1=\"6\" x2=\"3\" y2=\"6\"></line><line x1=\"3\" y1=\"12\" x2=\"3\" y2=\"12\"></line><line x1=\"3\" y1=\"18\" x2=\"3\" y2=\"18\"></line></symbol><symbol id=\"loader\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"6\"></line><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"22\"></line><line x1=\"4.93\" y1=\"4.93\" x2=\"7.76\" y2=\"7.76\"></line><line x1=\"16.24\" y1=\"16.24\" x2=\"19.07\" y2=\"19.07\"></line><line x1=\"2\" y1=\"12\" x2=\"6\" y2=\"12\"></line><line x1=\"18\" y1=\"12\" x2=\"22\" y2=\"12\"></line><line x1=\"4.93\" y1=\"19.07\" x2=\"7.76\" y2=\"16.24\"></line><line x1=\"16.24\" y1=\"7.76\" x2=\"19.07\" y2=\"4.93\"></line></symbol><symbol id=\"lock\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path></symbol><symbol id=\"log-in\" viewBox=\"0 0 24 24\"><path d=\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"></path><polyline points=\"10 17 15 12 10 7\"></polyline><line x1=\"15\" y1=\"12\" x2=\"3\" y2=\"12\"></line></symbol><symbol id=\"log-out\" viewBox=\"0 0 24 24\"><path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"></path><polyline points=\"16 17 21 12 16 7\"></polyline><line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\"></line></symbol><symbol id=\"mail\" viewBox=\"0 0 24 24\"><path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"></path><polyline points=\"22,6 12,13 2,6\"></polyline></symbol><symbol id=\"map-pin\" viewBox=\"0 0 24 24\"><path d=\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"></path><circle cx=\"12\" cy=\"10\" r=\"3\"></circle></symbol><symbol id=\"map\" viewBox=\"0 0 24 24\"><polygon points=\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"></polygon><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"18\"></line><line x1=\"16\" y1=\"6\" x2=\"16\" y2=\"22\"></line></symbol><symbol id=\"maximize-2\" viewBox=\"0 0 24 24\"><polyline points=\"15 3 21 3 21 9\"></polyline><polyline points=\"9 21 3 21 3 15\"></polyline><line x1=\"21\" y1=\"3\" x2=\"14\" y2=\"10\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line></symbol><symbol id=\"maximize\" viewBox=\"0 0 24 24\"><path d=\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"></path></symbol><symbol id=\"meh\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"8\" y1=\"15\" x2=\"16\" y2=\"15\"></line><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line></symbol><symbol id=\"menu\" viewBox=\"0 0 24 24\"><line x1=\"3\" y1=\"12\" x2=\"21\" y2=\"12\"></line><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line><line x1=\"3\" y1=\"18\" x2=\"21\" y2=\"18\"></line></symbol><symbol id=\"message-circle\" viewBox=\"0 0 24 24\"><path d=\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"></path></symbol><symbol id=\"message-square\" viewBox=\"0 0 24 24\"><path d=\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"></path></symbol><symbol id=\"mic-off\" viewBox=\"0 0 24 24\"><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line><path d=\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"></path><path d=\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"></path><line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line><line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line></symbol><symbol id=\"mic\" viewBox=\"0 0 24 24\"><path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path><path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path><line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line><line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line></symbol><symbol id=\"minimize-2\" viewBox=\"0 0 24 24\"><polyline points=\"4 14 10 14 10 20\"></polyline><polyline points=\"20 10 14 10 14 4\"></polyline><line x1=\"14\" y1=\"10\" x2=\"21\" y2=\"3\"></line><line x1=\"3\" y1=\"21\" x2=\"10\" y2=\"14\"></line></symbol><symbol id=\"minimize\" viewBox=\"0 0 24 24\"><path d=\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"></path></symbol><symbol id=\"minus-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line></symbol><symbol id=\"minus-square\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line></symbol><symbol id=\"minus\" viewBox=\"0 0 24 24\"><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line></symbol><symbol id=\"monitor\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"3\" width=\"20\" height=\"14\" rx=\"2\" ry=\"2\"></rect><line x1=\"8\" y1=\"21\" x2=\"16\" y2=\"21\"></line><line x1=\"12\" y1=\"17\" x2=\"12\" y2=\"21\"></line></symbol><symbol id=\"moon\" viewBox=\"0 0 24 24\"><path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"></path></symbol><symbol id=\"more-horizontal\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"19\" cy=\"12\" r=\"1\"></circle><circle cx=\"5\" cy=\"12\" r=\"1\"></circle></symbol><symbol id=\"more-vertical\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"1\"></circle><circle cx=\"12\" cy=\"5\" r=\"1\"></circle><circle cx=\"12\" cy=\"19\" r=\"1\"></circle></symbol><symbol id=\"mouse-pointer\" viewBox=\"0 0 24 24\"><path d=\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"></path><path d=\"M13 13l6 6\"></path></symbol><symbol id=\"move\" viewBox=\"0 0 24 24\"><polyline points=\"5 9 2 12 5 15\"></polyline><polyline points=\"9 5 12 2 15 5\"></polyline><polyline points=\"15 19 12 22 9 19\"></polyline><polyline points=\"19 9 22 12 19 15\"></polyline><line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"></line><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"22\"></line></symbol><symbol id=\"music\" viewBox=\"0 0 24 24\"><path d=\"M9 18V5l12-2v13\"></path><circle cx=\"6\" cy=\"18\" r=\"3\"></circle><circle cx=\"18\" cy=\"16\" r=\"3\"></circle></symbol><symbol id=\"navigation-2\" viewBox=\"0 0 24 24\"><polygon points=\"12 2 19 21 12 17 5 21 12 2\"></polygon></symbol><symbol id=\"navigation\" viewBox=\"0 0 24 24\"><polygon points=\"3 11 22 2 13 21 11 13 3 11\"></polygon></symbol><symbol id=\"octagon\" viewBox=\"0 0 24 24\"><polygon points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"></polygon></symbol><symbol id=\"package\" viewBox=\"0 0 24 24\"><line x1=\"16.5\" y1=\"9.4\" x2=\"7.5\" y2=\"4.21\"></line><path d=\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"></path><polyline points=\"3.27 6.96 12 12.01 20.73 6.96\"></polyline><line x1=\"12\" y1=\"22.08\" x2=\"12\" y2=\"12\"></line></symbol><symbol id=\"paperclip\" viewBox=\"0 0 24 24\"><path d=\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"></path></symbol><symbol id=\"pause-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"10\" y1=\"15\" x2=\"10\" y2=\"9\"></line><line x1=\"14\" y1=\"15\" x2=\"14\" y2=\"9\"></line></symbol><symbol id=\"pause\" viewBox=\"0 0 24 24\"><rect x=\"6\" y=\"4\" width=\"4\" height=\"16\"></rect><rect x=\"14\" y=\"4\" width=\"4\" height=\"16\"></rect></symbol><symbol id=\"pen-tool\" viewBox=\"0 0 24 24\"><path d=\"M12 19l7-7 3 3-7 7-3-3z\"></path><path d=\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"></path><path d=\"M2 2l7.586 7.586\"></path><circle cx=\"11\" cy=\"11\" r=\"2\"></circle></symbol><symbol id=\"percent\" viewBox=\"0 0 24 24\"><line x1=\"19\" y1=\"5\" x2=\"5\" y2=\"19\"></line><circle cx=\"6.5\" cy=\"6.5\" r=\"2.5\"></circle><circle cx=\"17.5\" cy=\"17.5\" r=\"2.5\"></circle></symbol><symbol id=\"phone-call\" viewBox=\"0 0 24 24\"><path d=\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path></symbol><symbol id=\"phone-forwarded\" viewBox=\"0 0 24 24\"><polyline points=\"19 1 23 5 19 9\"></polyline><line x1=\"15\" y1=\"5\" x2=\"23\" y2=\"5\"></line><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path></symbol><symbol id=\"phone-incoming\" viewBox=\"0 0 24 24\"><polyline points=\"16 2 16 8 22 8\"></polyline><line x1=\"23\" y1=\"1\" x2=\"16\" y2=\"8\"></line><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path></symbol><symbol id=\"phone-missed\" viewBox=\"0 0 24 24\"><line x1=\"23\" y1=\"1\" x2=\"17\" y2=\"7\"></line><line x1=\"17\" y1=\"1\" x2=\"23\" y2=\"7\"></line><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path></symbol><symbol id=\"phone-off\" viewBox=\"0 0 24 24\"><path d=\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"></path><line x1=\"23\" y1=\"1\" x2=\"1\" y2=\"23\"></line></symbol><symbol id=\"phone-outgoing\" viewBox=\"0 0 24 24\"><polyline points=\"23 7 23 1 17 1\"></polyline><line x1=\"16\" y1=\"8\" x2=\"23\" y2=\"1\"></line><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path></symbol><symbol id=\"phone\" viewBox=\"0 0 24 24\"><path d=\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"></path></symbol><symbol id=\"pie-chart\" viewBox=\"0 0 24 24\"><path d=\"M21.21 15.89A10 10 0 1 1 8 2.83\"></path><path d=\"M22 12A10 10 0 0 0 12 2v10z\"></path></symbol><symbol id=\"play-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><polygon points=\"10 8 16 12 10 16 10 8\"></polygon></symbol><symbol id=\"play\" viewBox=\"0 0 24 24\"><polygon points=\"5 3 19 12 5 21 5 3\"></polygon></symbol><symbol id=\"plus-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"16\"></line><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line></symbol><symbol id=\"plus-square\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"16\"></line><line x1=\"8\" y1=\"12\" x2=\"16\" y2=\"12\"></line></symbol><symbol id=\"plus\" viewBox=\"0 0 24 24\"><line x1=\"12\" y1=\"5\" x2=\"12\" y2=\"19\"></line><line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\"></line></symbol><symbol id=\"pocket\" viewBox=\"0 0 24 24\"><path d=\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"></path><polyline points=\"8 10 12 14 16 10\"></polyline></symbol><symbol id=\"power\" viewBox=\"0 0 24 24\"><path d=\"M18.36 6.64a9 9 0 1 1-12.73 0\"></path><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"12\"></line></symbol><symbol id=\"printer\" viewBox=\"0 0 24 24\"><polyline points=\"6 9 6 2 18 2 18 9\"></polyline><path d=\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"></path><rect x=\"6\" y=\"14\" width=\"12\" height=\"8\"></rect></symbol><symbol id=\"radio\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"2\"></circle><path d=\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"></path></symbol><symbol id=\"refresh-ccw\" viewBox=\"0 0 24 24\"><polyline points=\"1 4 1 10 7 10\"></polyline><polyline points=\"23 20 23 14 17 14\"></polyline><path d=\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"></path></symbol><symbol id=\"refresh-cw\" viewBox=\"0 0 24 24\"><polyline points=\"23 4 23 10 17 10\"></polyline><polyline points=\"1 20 1 14 7 14\"></polyline><path d=\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"></path></symbol><symbol id=\"repeat\" viewBox=\"0 0 24 24\"><polyline points=\"17 1 21 5 17 9\"></polyline><path d=\"M3 11V9a4 4 0 0 1 4-4h14\"></path><polyline points=\"7 23 3 19 7 15\"></polyline><path d=\"M21 13v2a4 4 0 0 1-4 4H3\"></path></symbol><symbol id=\"rewind\" viewBox=\"0 0 24 24\"><polygon points=\"11 19 2 12 11 5 11 19\"></polygon><polygon points=\"22 19 13 12 22 5 22 19\"></polygon></symbol><symbol id=\"rotate-ccw\" viewBox=\"0 0 24 24\"><polyline points=\"1 4 1 10 7 10\"></polyline><path d=\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"></path></symbol><symbol id=\"rotate-cw\" viewBox=\"0 0 24 24\"><polyline points=\"23 4 23 10 17 10\"></polyline><path d=\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"></path></symbol><symbol id=\"rss\" viewBox=\"0 0 24 24\"><path d=\"M4 11a9 9 0 0 1 9 9\"></path><path d=\"M4 4a16 16 0 0 1 16 16\"></path><circle cx=\"5\" cy=\"19\" r=\"1\"></circle></symbol><symbol id=\"save\" viewBox=\"0 0 24 24\"><path d=\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"></path><polyline points=\"17 21 17 13 7 13 7 21\"></polyline><polyline points=\"7 3 7 8 15 8\"></polyline></symbol><symbol id=\"scissors\" viewBox=\"0 0 24 24\"><circle cx=\"6\" cy=\"6\" r=\"3\"></circle><circle cx=\"6\" cy=\"18\" r=\"3\"></circle><line x1=\"20\" y1=\"4\" x2=\"8.12\" y2=\"15.88\"></line><line x1=\"14.47\" y1=\"14.48\" x2=\"20\" y2=\"20\"></line><line x1=\"8.12\" y1=\"8.12\" x2=\"12\" y2=\"12\"></line></symbol><symbol id=\"search\" viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line></symbol><symbol id=\"send\" viewBox=\"0 0 24 24\"><line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line><polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon></symbol><symbol id=\"server\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"2\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\"></rect><rect x=\"2\" y=\"14\" width=\"20\" height=\"8\" rx=\"2\" ry=\"2\"></rect><line x1=\"6\" y1=\"6\" x2=\"6\" y2=\"6\"></line><line x1=\"6\" y1=\"18\" x2=\"6\" y2=\"18\"></line></symbol><symbol id=\"settings\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"3\"></circle><path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"></path></symbol><symbol id=\"share-2\" viewBox=\"0 0 24 24\"><circle cx=\"18\" cy=\"5\" r=\"3\"></circle><circle cx=\"6\" cy=\"12\" r=\"3\"></circle><circle cx=\"18\" cy=\"19\" r=\"3\"></circle><line x1=\"8.59\" y1=\"13.51\" x2=\"15.42\" y2=\"17.49\"></line><line x1=\"15.41\" y1=\"6.51\" x2=\"8.59\" y2=\"10.49\"></line></symbol><symbol id=\"share\" viewBox=\"0 0 24 24\"><path d=\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"></path><polyline points=\"16 6 12 2 8 6\"></polyline><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"15\"></line></symbol><symbol id=\"shield-off\" viewBox=\"0 0 24 24\"><path d=\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"></path><path d=\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></symbol><symbol id=\"shield\" viewBox=\"0 0 24 24\"><path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path></symbol><symbol id=\"shopping-bag\" viewBox=\"0 0 24 24\"><path d=\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"></path><line x1=\"3\" y1=\"6\" x2=\"21\" y2=\"6\"></line><path d=\"M16 10a4 4 0 0 1-8 0\"></path></symbol><symbol id=\"shopping-cart\" viewBox=\"0 0 24 24\"><circle cx=\"9\" cy=\"21\" r=\"1\"></circle><circle cx=\"20\" cy=\"21\" r=\"1\"></circle><path d=\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"></path></symbol><symbol id=\"shuffle\" viewBox=\"0 0 24 24\"><polyline points=\"16 3 21 3 21 8\"></polyline><line x1=\"4\" y1=\"20\" x2=\"21\" y2=\"3\"></line><polyline points=\"21 16 21 21 16 21\"></polyline><line x1=\"15\" y1=\"15\" x2=\"21\" y2=\"21\"></line><line x1=\"4\" y1=\"4\" x2=\"9\" y2=\"9\"></line></symbol><symbol id=\"sidebar\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"9\" y1=\"3\" x2=\"9\" y2=\"21\"></line></symbol><symbol id=\"skip-back\" viewBox=\"0 0 24 24\"><polygon points=\"19 20 9 12 19 4 19 20\"></polygon><line x1=\"5\" y1=\"19\" x2=\"5\" y2=\"5\"></line></symbol><symbol id=\"skip-forward\" viewBox=\"0 0 24 24\"><polygon points=\"5 4 15 12 5 20 5 4\"></polygon><line x1=\"19\" y1=\"5\" x2=\"19\" y2=\"19\"></line></symbol><symbol id=\"slack\" viewBox=\"0 0 24 24\"><path d=\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"></path><path d=\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"></path><path d=\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"></path><path d=\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"></path><path d=\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"></path><path d=\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"></path><path d=\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"></path><path d=\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"></path></symbol><symbol id=\"slash\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"4.93\" y1=\"4.93\" x2=\"19.07\" y2=\"19.07\"></line></symbol><symbol id=\"sliders\" viewBox=\"0 0 24 24\"><line x1=\"4\" y1=\"21\" x2=\"4\" y2=\"14\"></line><line x1=\"4\" y1=\"10\" x2=\"4\" y2=\"3\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"12\"></line><line x1=\"12\" y1=\"8\" x2=\"12\" y2=\"3\"></line><line x1=\"20\" y1=\"21\" x2=\"20\" y2=\"16\"></line><line x1=\"20\" y1=\"12\" x2=\"20\" y2=\"3\"></line><line x1=\"1\" y1=\"14\" x2=\"7\" y2=\"14\"></line><line x1=\"9\" y1=\"8\" x2=\"15\" y2=\"8\"></line><line x1=\"17\" y1=\"16\" x2=\"23\" y2=\"16\"></line></symbol><symbol id=\"smartphone\" viewBox=\"0 0 24 24\"><rect x=\"5\" y=\"2\" width=\"14\" height=\"20\" rx=\"2\" ry=\"2\"></rect><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"18\"></line></symbol><symbol id=\"smile\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><path d=\"M8 14s1.5 2 4 2 4-2 4-2\"></path><line x1=\"9\" y1=\"9\" x2=\"9.01\" y2=\"9\"></line><line x1=\"15\" y1=\"9\" x2=\"15.01\" y2=\"9\"></line></symbol><symbol id=\"speaker\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" ry=\"2\"></rect><circle cx=\"12\" cy=\"14\" r=\"4\"></circle><line x1=\"12\" y1=\"6\" x2=\"12\" y2=\"6\"></line></symbol><symbol id=\"square\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect></symbol><symbol id=\"star\" viewBox=\"0 0 24 24\"><polygon points=\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"></polygon></symbol><symbol id=\"stop-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><rect x=\"9\" y=\"9\" width=\"6\" height=\"6\"></rect></symbol><symbol id=\"sun\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"5\"></circle><line x1=\"12\" y1=\"1\" x2=\"12\" y2=\"3\"></line><line x1=\"12\" y1=\"21\" x2=\"12\" y2=\"23\"></line><line x1=\"4.22\" y1=\"4.22\" x2=\"5.64\" y2=\"5.64\"></line><line x1=\"18.36\" y1=\"18.36\" x2=\"19.78\" y2=\"19.78\"></line><line x1=\"1\" y1=\"12\" x2=\"3\" y2=\"12\"></line><line x1=\"21\" y1=\"12\" x2=\"23\" y2=\"12\"></line><line x1=\"4.22\" y1=\"19.78\" x2=\"5.64\" y2=\"18.36\"></line><line x1=\"18.36\" y1=\"5.64\" x2=\"19.78\" y2=\"4.22\"></line></symbol><symbol id=\"sunrise\" viewBox=\"0 0 24 24\"><path d=\"M17 18a5 5 0 0 0-10 0\"></path><line x1=\"12\" y1=\"2\" x2=\"12\" y2=\"9\"></line><line x1=\"4.22\" y1=\"10.22\" x2=\"5.64\" y2=\"11.64\"></line><line x1=\"1\" y1=\"18\" x2=\"3\" y2=\"18\"></line><line x1=\"21\" y1=\"18\" x2=\"23\" y2=\"18\"></line><line x1=\"18.36\" y1=\"11.64\" x2=\"19.78\" y2=\"10.22\"></line><line x1=\"23\" y1=\"22\" x2=\"1\" y2=\"22\"></line><polyline points=\"8 6 12 2 16 6\"></polyline></symbol><symbol id=\"sunset\" viewBox=\"0 0 24 24\"><path d=\"M17 18a5 5 0 0 0-10 0\"></path><line x1=\"12\" y1=\"9\" x2=\"12\" y2=\"2\"></line><line x1=\"4.22\" y1=\"10.22\" x2=\"5.64\" y2=\"11.64\"></line><line x1=\"1\" y1=\"18\" x2=\"3\" y2=\"18\"></line><line x1=\"21\" y1=\"18\" x2=\"23\" y2=\"18\"></line><line x1=\"18.36\" y1=\"11.64\" x2=\"19.78\" y2=\"10.22\"></line><line x1=\"23\" y1=\"22\" x2=\"1\" y2=\"22\"></line><polyline points=\"16 5 12 9 8 5\"></polyline></symbol><symbol id=\"tablet\" viewBox=\"0 0 24 24\"><rect x=\"4\" y=\"2\" width=\"16\" height=\"20\" rx=\"2\" ry=\"2\" transform=\"rotate(180 12 12)\"></rect><line x1=\"12\" y1=\"18\" x2=\"12\" y2=\"18\"></line></symbol><symbol id=\"tag\" viewBox=\"0 0 24 24\"><path d=\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"></path><line x1=\"7\" y1=\"7\" x2=\"7\" y2=\"7\"></line></symbol><symbol id=\"target\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><circle cx=\"12\" cy=\"12\" r=\"6\"></circle><circle cx=\"12\" cy=\"12\" r=\"2\"></circle></symbol><symbol id=\"terminal\" viewBox=\"0 0 24 24\"><polyline points=\"4 17 10 11 4 5\"></polyline><line x1=\"12\" y1=\"19\" x2=\"20\" y2=\"19\"></line></symbol><symbol id=\"thermometer\" viewBox=\"0 0 24 24\"><path d=\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"></path></symbol><symbol id=\"thumbs-down\" viewBox=\"0 0 24 24\"><path d=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"></path></symbol><symbol id=\"thumbs-up\" viewBox=\"0 0 24 24\"><path d=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"></path></symbol><symbol id=\"toggle-left\" viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"5\" width=\"22\" height=\"14\" rx=\"7\" ry=\"7\"></rect><circle cx=\"8\" cy=\"12\" r=\"3\"></circle></symbol><symbol id=\"toggle-right\" viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"5\" width=\"22\" height=\"14\" rx=\"7\" ry=\"7\"></rect><circle cx=\"16\" cy=\"12\" r=\"3\"></circle></symbol><symbol id=\"trash-2\" viewBox=\"0 0 24 24\"><polyline points=\"3 6 5 6 21 6\"></polyline><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path><line x1=\"10\" y1=\"11\" x2=\"10\" y2=\"17\"></line><line x1=\"14\" y1=\"11\" x2=\"14\" y2=\"17\"></line></symbol><symbol id=\"trash\" viewBox=\"0 0 24 24\"><polyline points=\"3 6 5 6 21 6\"></polyline><path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"></path></symbol><symbol id=\"trello\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><rect x=\"7\" y=\"7\" width=\"3\" height=\"9\"></rect><rect x=\"14\" y=\"7\" width=\"3\" height=\"5\"></rect></symbol><symbol id=\"trending-down\" viewBox=\"0 0 24 24\"><polyline points=\"23 18 13.5 8.5 8.5 13.5 1 6\"></polyline><polyline points=\"17 18 23 18 23 12\"></polyline></symbol><symbol id=\"trending-up\" viewBox=\"0 0 24 24\"><polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\"></polyline><polyline points=\"17 6 23 6 23 12\"></polyline></symbol><symbol id=\"triangle\" viewBox=\"0 0 24 24\"><path d=\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"></path></symbol><symbol id=\"truck\" viewBox=\"0 0 24 24\"><rect x=\"1\" y=\"3\" width=\"15\" height=\"13\"></rect><polygon points=\"16 8 20 8 23 11 23 16 16 16 16 8\"></polygon><circle cx=\"5.5\" cy=\"18.5\" r=\"2.5\"></circle><circle cx=\"18.5\" cy=\"18.5\" r=\"2.5\"></circle></symbol><symbol id=\"tv\" viewBox=\"0 0 24 24\"><rect x=\"2\" y=\"7\" width=\"20\" height=\"15\" rx=\"2\" ry=\"2\"></rect><polyline points=\"17 2 12 7 7 2\"></polyline></symbol><symbol id=\"twitter\" viewBox=\"0 0 24 24\"><path d=\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"></path></symbol><symbol id=\"type\" viewBox=\"0 0 24 24\"><polyline points=\"4 7 4 4 20 4 20 7\"></polyline><line x1=\"9\" y1=\"20\" x2=\"15\" y2=\"20\"></line><line x1=\"12\" y1=\"4\" x2=\"12\" y2=\"20\"></line></symbol><symbol id=\"umbrella\" viewBox=\"0 0 24 24\"><path d=\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"></path></symbol><symbol id=\"underline\" viewBox=\"0 0 24 24\"><path d=\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"></path><line x1=\"4\" y1=\"21\" x2=\"20\" y2=\"21\"></line></symbol><symbol id=\"unlock\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect><path d=\"M7 11V7a5 5 0 0 1 9.9-1\"></path></symbol><symbol id=\"upload-cloud\" viewBox=\"0 0 24 24\"><polyline points=\"16 16 12 12 8 16\"></polyline><line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line><path d=\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"></path><polyline points=\"16 16 12 12 8 16\"></polyline></symbol><symbol id=\"upload\" viewBox=\"0 0 24 24\"><path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"></path><polyline points=\"17 8 12 3 7 8\"></polyline><line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\"></line></symbol><symbol id=\"user-check\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><polyline points=\"17 11 19 13 23 9\"></polyline></symbol><symbol id=\"user-minus\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"></line></symbol><symbol id=\"user-plus\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><line x1=\"20\" y1=\"8\" x2=\"20\" y2=\"14\"></line><line x1=\"23\" y1=\"11\" x2=\"17\" y2=\"11\"></line></symbol><symbol id=\"user-x\" viewBox=\"0 0 24 24\"><path d=\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"8.5\" cy=\"7\" r=\"4\"></circle><line x1=\"18\" y1=\"8\" x2=\"23\" y2=\"13\"></line><line x1=\"23\" y1=\"8\" x2=\"18\" y2=\"13\"></line></symbol><symbol id=\"user\" viewBox=\"0 0 24 24\"><path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path><circle cx=\"12\" cy=\"7\" r=\"4\"></circle></symbol><symbol id=\"users\" viewBox=\"0 0 24 24\"><path d=\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"></path><circle cx=\"9\" cy=\"7\" r=\"4\"></circle><path d=\"M23 21v-2a4 4 0 0 0-3-3.87\"></path><path d=\"M16 3.13a4 4 0 0 1 0 7.75\"></path></symbol><symbol id=\"video-off\" viewBox=\"0 0 24 24\"><path d=\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"></path><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></symbol><symbol id=\"video\" viewBox=\"0 0 24 24\"><polygon points=\"23 7 16 12 23 17 23 7\"></polygon><rect x=\"1\" y=\"5\" width=\"15\" height=\"14\" rx=\"2\" ry=\"2\"></rect></symbol><symbol id=\"voicemail\" viewBox=\"0 0 24 24\"><circle cx=\"5.5\" cy=\"11.5\" r=\"4.5\"></circle><circle cx=\"18.5\" cy=\"11.5\" r=\"4.5\"></circle><line x1=\"5.5\" y1=\"16\" x2=\"18.5\" y2=\"16\"></line></symbol><symbol id=\"volume-1\" viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"></polygon><path d=\"M15.54 8.46a5 5 0 0 1 0 7.07\"></path></symbol><symbol id=\"volume-2\" viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"></polygon><path d=\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"></path></symbol><symbol id=\"volume-x\" viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"></polygon><line x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\"></line><line x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\"></line></symbol><symbol id=\"volume\" viewBox=\"0 0 24 24\"><polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"></polygon></symbol><symbol id=\"watch\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"7\"></circle><polyline points=\"12 9 12 12 13.5 13.5\"></polyline><path d=\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"></path></symbol><symbol id=\"wifi-off\" viewBox=\"0 0 24 24\"><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line><path d=\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"></path><path d=\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"></path><path d=\"M10.71 5.05A16 16 0 0 1 22.58 9\"></path><path d=\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"></path><path d=\"M8.53 16.11a6 6 0 0 1 6.95 0\"></path><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"20\"></line></symbol><symbol id=\"wifi\" viewBox=\"0 0 24 24\"><path d=\"M5 12.55a11 11 0 0 1 14.08 0\"></path><path d=\"M1.42 9a16 16 0 0 1 21.16 0\"></path><path d=\"M8.53 16.11a6 6 0 0 1 6.95 0\"></path><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"20\"></line></symbol><symbol id=\"wind\" viewBox=\"0 0 24 24\"><path d=\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"></path></symbol><symbol id=\"x-circle\" viewBox=\"0 0 24 24\"><circle cx=\"12\" cy=\"12\" r=\"10\"></circle><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line></symbol><symbol id=\"x-octagon\" viewBox=\"0 0 24 24\"><polygon points=\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"></polygon><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line></symbol><symbol id=\"x-square\" viewBox=\"0 0 24 24\"><rect x=\"3\" y=\"3\" width=\"18\" height=\"18\" rx=\"2\" ry=\"2\"></rect><line x1=\"9\" y1=\"9\" x2=\"15\" y2=\"15\"></line><line x1=\"15\" y1=\"9\" x2=\"9\" y2=\"15\"></line></symbol><symbol id=\"x\" viewBox=\"0 0 24 24\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></symbol><symbol id=\"youtube\" viewBox=\"0 0 24 24\"><path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"></path><polygon points=\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"></polygon></symbol><symbol id=\"zap-off\" viewBox=\"0 0 24 24\"><polyline points=\"12.41 6.75 13 2 10.57 4.92\"></polyline><polyline points=\"18.57 12.91 21 10 15.66 10\"></polyline><polyline points=\"8 8 3 14 12 14 11 22 16 16\"></polyline><line x1=\"1\" y1=\"1\" x2=\"23\" y2=\"23\"></line></symbol><symbol id=\"zap\" viewBox=\"0 0 24 24\"><polygon points=\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"></polygon></symbol><symbol id=\"zoom-in\" viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line><line x1=\"11\" y1=\"8\" x2=\"11\" y2=\"14\"></line><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"></line></symbol><symbol id=\"zoom-out\" viewBox=\"0 0 24 24\"><circle cx=\"11\" cy=\"11\" r=\"8\"></circle><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"></line><line x1=\"8\" y1=\"11\" x2=\"14\" y2=\"11\"></line></symbol></defs></svg>\n", "title": "$:/plugins/sycom/feather-icons/lib/feather-sprite.svg", "module-type": "library", "tags": "$:/tags/RawMarkup", "source": "https://github.com/feathericons/feather", "version": "4.21.0" }, "$:/plugins/sycom/feather-icons/lib/feather-ext.svg": { "text": "<svg id=\"feather-icons-ext\" xmlns=\"http://www.w3.org/2000/svg\"><defs><symbol id=\"motovun-jack\"><path d=\"M2.4 6.9s-.4 1-.2 2c.2 1.1 1 1.7 1.8 2 .8.2 1.8.3 2.4.1.7-.2 1.1-.9 2-1.2.6-.3 3.6 0 4.3 0 .7 0 2.1-.4 2.1-.4s.7-2 .6-2.7a4 4 0 0 1 .8-2.7c.6 2 .7.9 2.3 1.2 1.5.4 1.7.3 3.4-.3-1.3 1.4-.6 1.6-.9 2.1-.3.5 0 1.5 0 2.8 0 1.3-1.6 2-2 2a3 3 0 0 1-1.5-.4\"/>\n<path d=\"M19 11.9l-.2 1.1c-.2.8-.7 1.3-.8 2-.1.7.7 3.2.4 3.7-.2.5-2.2.3-3 .3a19 19 0 0 1-.4-2.9l-.7-1.5s-1 .4-1.7.4c-.9 0-2-.5-2-.5l-.5.7c-.3.4-.2.7.1 1.7.3 1 2.3 1 1.8 1.8-.5.7-2.8.3-4 .3-1-1-1.8-2.3-1.8-2.6 0-.4 1-1.5.9-1.7C7 14.4 6 14 6 13s1-2.2 1-2.2\"/></symbol><symbol id=\"pentagon\" viewBox=\"0 0 24 24\"><path d=\"M12 2.6l10 7.2-3.8 11.8H5.8L2 9.8z\"/></symbol></defs></svg>\n", "title": "$:/plugins/sycom/feather-icons/lib/feather-ext.svg", "module-type": "library", "tags": "$:/tags/RawMarkup", "version": "4.21.0" }, "$:/ext/modules/macros/i18n-macro.js": { "text": "/*\\\ntitle: $:/ext/modules/macros/i18n-macro.js\ntype: application/javascript\nmodule-type: macro\nversion: 0.3.0\n\ni18n macro for easiest translation of any string outside lingo\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\ni18n macro enables automatic translation of a tiddler in wiki language (if exists)\ncould, maybe, in the future, take care of browser language\n*/\n\nexports.name = \"i18n\";\n\nexports.params = [\n {name: \"title\"}, // short title of the tiddler (without translation path)\n {name: \"domain\"}, // translation path (default $:)\n {name: \"dico\"}, // tells if mode is dictionnary or tiddler (default false)\n {name: \"orig_lang\"}, // original tiddler language (default en-GB)\n {name: \"inline\"} // boolean for inline transclusion (default false)\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title,domain,dico,orig_lang,inline) {\n // if first run, will create a styling tiddler for edit button\n if($tw.wiki.getTiddler(\"$:/temp/ext/modules/macros/i18n-style\") === undefined) {\n $tw.wiki.setText(\"$:/temp/ext/modules/macros/i18n-style\",\"text\",null,\".i18n-edit{float:right;display:none;opacity:0.5} .i18n-edit svg {width:16px} div:hover > p > .i18n-edit, div:hover > .i18n-edit, h1:hover > .i18n-edit, h2:hover > .i18n-edit, h3:hover > .i18n-edit{display:block} .i18n-edit.alert{color:red;margin:0 4px}\");\n $tw.wiki.setText(\"$:/temp/ext/modules/macros/i18n-style\",\"tags\",null,\"$:/tags/Stylesheet\");\n }\n // whatever, let's go for translation\n\tvar parent = this.parentDomNode,\n title = title || this.getVariable(\"currentTiddler\"),\n dom = domain || \"$:\",\n dico = dico || \"no\",\n base = orig_lang || \"en-GB\",\n inline = inline || false,\n language = this.wiki.getTiddler(\"$:/language\").fields.text || \"$:/languages/en-GB\",\n lang = (this.wiki.getTiddler(language) !== undefined ?\n this.wiki.getTiddler(language).fields.name :\n \"en-GB\"),\n // getting base and translation tiddler depending on \"dico\" mode active\n tid = (dico === \"dico\" ?\n this.wiki.getTiddler(dom+\"/i18n/\"+base) :\n this.wiki.getTiddler(dom+\"/i18n/\"+base+\"/\"+title)),\n translation = (dico === \"dico\" ?\n this.wiki.getTiddler(dom+\"/i18n/\"+lang) :\n this.wiki.getTiddler(dom+\"/i18n/\"+lang+\"/\"+title)),\n option = {};\n if(inline === true) option.parseAsInline = true;\n // checks if there is a translation for the tiddlers\n if(!translation) {\n // if not checks if there is an original\n if(!tid) {\n // if not displays a text telling the original is not defined\n return (dico === \"dico\" ?\n \"<div class='tc-tiddler-info'>sorry but there is not any [[\" + dom+\"/i18n/\"+base+\"]] dictionnary tiddler</div>\" :\n \"<div class='tc-tiddler-info'>sorry but there is not any [[\" + dom+\"/i18n/\"+base+\"/\"+title + \"]] tiddler</div>\")\n }\n // if yes, displays original\n else {\n var html;\n if(dico === \"dico\") { // dictionnary reference\n html = \"<$link to='\" + dom+\"/i18n/\"+base+ \"' class='i18n-edit'>{{$:/core/images/edit-button}}</$link>\";\n html += \"<$link to='\" + dom+\"/i18n/\"+lang + \"' class='i18n-edit alert'> + \" + lang + \"</$link>\";\n html += \"\\n\\n{{\" + dom+\"/i18n/\"+base+\"##\"+title + \"}}\";\n }\n else { // full tiddler reference\n html = \"<$link to='\" + dom+\"/i18n/\"+base+\"/\"+title + \"' class='i18n-edit'>{{$:/core/images/edit-button}}</$link>\";\n html += \"<$link to='\" + dom+\"/i18n/\"+lang+\"/\"+title + \"' class='i18n-edit alert'> + \" + lang + \"</$link>\";\n html += \"\\n\\n{{\" + dom+\"/i18n/\"+base+\"/\"+title + \"}}\";\n }\n return html;\n }\n\t}\n\telse {\n var html;\n if(dico === \"dico\") { // dictionnary reference\n html = \"<$link to='\" + dom+\"/i18n/\"+lang+\"' class='i18n-edit'>{{$:/core/images/edit-button}}</$link>\";\n html += \"\\n\\n{{\" + dom+\"/i18n/\"+lang+\"##\"+title + \"}}\";\n }\n else { // full tiddler reference\n html = \"<$link to='\" + dom+\"/i18n/\"+lang+\"/\"+title + \"' class='i18n-edit'>{{$:/core/images/edit-button}}</$link>\";\n html += \"\\n\\n{{\" + dom+\"/i18n/\"+lang+\"/\"+title + \"}}\";\n }\n return html;\n }\n};\n\n})();\n", "title": "$:/ext/modules/macros/i18n-macro.js", "type": "application/javascript", "module-type": "macro" }, "$:/plugins/sycom/feather-icons/macros/list-icons.js": { "title": "$:/plugins/sycom/feather-icons/macros/list-icons.js", "text": "/*\\\ntitle: $:/plugins/sycom/feather-icons/macros/list-icons.js\ntype: application/javascript\nmodule-type: macro\nMacro to output svg icons from feather-icons\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"list-feather-icons\";\n\nexports.params = [\n\t{name: \"string\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(string) {\n\tvar allIcons = document.querySelectorAll('#feather-icons > defs symbol, #feather-icons-ext > defs symbol'),\n\t\thtml = \"<div class='presentation'>\",\n\t\tstr = string.toLowerCase(),\n\t\tregFilter = new RegExp(\"(\" + string.toLowerCase() + \")\",\"g\"),\n\t\tiCount = 0;\nconsole.log(string);\nconsole.log(str);\nconsole.log(regFilter);\n\tfor (var i in allIcons) {\n\t\tif (allIcons[i].id !== undefined && allIcons[i].id.match(regFilter)) {\n\t\t\tlet cls = allIcons[i].parentNode.parentNode.id;\n\t\t\thtml +=\"<div class='\" + cls + \" block'><div><svg class='feather x2'><use href='#\" + allIcons[i].id + \"'/></svg><span class='name'>\" + allIcons[i].id +\"</span></div></div>\";\n\t\t\tiCount++;\n\t\t}\n\t}\n\tvar pluriel = \"\"; if(iCount>1) pluriel =\"s\";\n\thtml += \"</div>\";\n html = \"<div class='count'>\" + iCount + \" icon\" + pluriel + \"</div>\" + html;\nreturn html;\n};\n\n})();\n", "type": "application/javascript", "module-type": "macro" }, "$:/plugins/sycom/feather-icons/macros.tid": { "title": "$:/plugins/sycom/feather-icons/macros.tid", "tags": "$:/tags/Macro", "text": "\\define f-i(icon class)\n<svg class=\"feather $class$\" viewBox=\"0 0 24 24\"><use href=\"#$icon$\" /></svg>\n\\end\n\\define f-i-stack(icon1 icon2 class scale:'1' move:'0 0')\n<svg class=\"feather $class$\" viewBox=\"0 0 24 24\"><use href=\"#$icon1$\" /><use class=\"stack\" href=\"#$icon2$\" transform=\"scale($scale$) translate($move$)\" /></svg>\n\\end\n\n<<i18n macrosIntro $:/plugins/sycom/feather-icons>>\n\n{{$:/plugins/sycom/feather-icons/usage}}\n" }, "$:/plugins/sycom/feather-icons/i18n/en-GB/readme": { "title": "$:/plugins/sycom/feather-icons/i18n/en-GB/readme", "text": "The [feather icons plugin](#$:/plugins/sycom/feather-icons) is a work in progress integration of the [feather icons][feather] library into TiddlyWiki.\n\n## Sources / licenses\n* [feather icons][feather] (_4.21.0_) license MIT\n* [i18n macro][i18n] under [BSD 3-Clause license][license]\n* **feather icons plugin** is released under similar [BSD 3-Clause license][license] as TiddlyWiki\n* extended feather icons library for the plugin is under MIT license\n\n[feather]: https://feathericons.com/\n[i18n]: https://sycom.gitlab.io/TiddlyWiki-Plugins/#i18n%20macro\n[license]: https://framagit.org/sycom/TiddlyWiki-Plugins/LICENSE.md\n", "type": "text/x-markdown", "caption": "Readme" }, "$:/temp/searchFeatherIcons": { "title": "$:/temp/searchFeatherIcons" } } }
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <$set name="currentTiddler" value={{$:/palette}}> <<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name="currentTiddler" $output="text/plain"/></$link> <$list filter="[all[current]is[shadow]is[tiddler]]" variable="listItem"> <<lingo Prompt/Modified>> <$button message="tm-delete-tiddler" param={{$:/palette}}><<lingo Reset/Caption>></$button> </$list> <$list filter="[all[current]is[shadow]!is[tiddler]]" variable="listItem"> <<lingo Clone/Prompt>> </$list> <$button message="tm-new-tiddler" param={{$:/palette}}><<lingo Clone/Caption>></$button> <table class="table table-striped table-hover"> <tbody> <$list filter="[[primary]][[tiddler-title-foreground]][[foreground]][[muted-foreground]][[very-muted-foreground]][[background]][[page-background]]" variable="colourName"> <tr> <td> ''<$macrocall $name="describePaletteColour" colour=<<colourName>>/>''<br/> <$macrocall $name="colourName" $output="text/plain"/> </td> <td> <$edit-text index=<<colourName>> tag="input"/> <br> <$edit-text index=<<colourName>> type="color" tag="input"/> <$wikify name="bg" text="<$macrocall $name=colour name=<<colourName>> mode=inline/>"> <$wikify name="bg-class" text="te-<<colourName>>"> <$reveal type="nomatch" state=<<colourName>> text=<<bg>> class=<<bg-class>>> <<bg>> <span class="te-white"> <<bg>> </span></$reveal> <style> .<<bg-class>> {background:<<bg>>;} .<<bg-class>> .te-white {color:#fff;} </style> </$wikify> </$wikify> </td> </tr> </$list> </tbody> </table> </$set> Voir aussi la [[palette complète|$:/snippets/paletteeditor]] disponible dans le [[Panneau de Contrôle|$:/ControlPanel]] .
{ "tiddlers": { "$:/plugins/telmiger/details/details.css": { "created": "20170122140815442", "creator": "Thomas Elmiger", "text": "/* details and summary */\n\ndetails {\n background-color: <<colour tiddler-info-tab-background>>;\n transition: height 1s ease;\n}\n\ndetails summary {\n display: list-item;\n padding: 0.2em 0.5em 0.2em 0.66em;\n padding-left: 1.76em; /* adjust for indentation */\n text-indent: -1.1em;\n cursor: pointer;\n background-color: <<colour dropdown-tab-background>>;\n}\n\ndetails.notification summary {\n background-color: <<colour notification-background>>;\n}\ndetails.warning summary {\n background-color: #ffe4df;\n}\ndetails.success summary {\n background-color: #bfffe6;\n}\n\ndetails > span {\n padding: 0 0.75em 0.1em 0.8em;\n display: block;\n}\n\ndetails:not([open]) { \n border-bottom: 1px solid lightgray;\n cursor: pointer;\n}\n\ndetails[open] { \n border-bottom: 1px solid gray;\n}", "title": "$:/plugins/telmiger/details/details.css", "tags": "$:/tags/Stylesheet", "modifier": "Thomas Elmiger", "modified": "20171219172329530" }, "$:/plugins/telmiger/details/details.js": { "text": "/*\\\ntitle: $:/plugins/telmiger/details/details.js\ntype: application/javascript\nmodule-type: widget\n\nDetails widget v 0.6.1\n\nWill output an HTML 5 <details> section including a <summary>\n\n```\n\t<details>\n\t\t<summary>This sums it up</summary> \n\t\t<span>All the details follow here.</span>\n\t</details>\n```\n\n|Parameter |Description |h\n|summary |Optional text to display as summary. Wins over field (see below). |\n|open |Optional initial state, set to \"open\" to show details on load. Defaults to \"\". |\n|state |An optional TextReference containing the state. Wins over open. |\n|field |Optionally, the summary is taken from the field with this name in a given tiddler. Defaults to \"title\". |\n|tiddler |Optional title of a tiddler to watch, connected to field. Defaults to current tiddler. |\n|class |Optional CSS classes to be assigned to the details tag. |\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DetailsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDetailsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDetailsWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.detailsDomNode = this.document.createElement(\"details\");\n\tthis.detailsDomNode.setAttribute(\"class\",this.detailsClass);\n\tif(this.detailsOpen == \"open\") {\n\t\tthis.detailsDomNode.setAttribute(\"open\",\"open\");\n\t}\n\tif(this.detailsSummary !== \"\") {\n\t\tthis.summaryDomNode = this.document.createElement(\"summary\");\n\t\tthis.detailsDomNode.appendChild(this.summaryDomNode);\n\t\tthis.summaryDomNode.appendChild(this.document.createTextNode(this.detailsSummary));\n\t}\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.detailsDomNode.appendChild(this.spanDomNode);\n// register an event listener?\n/* Maybe this can be reactivated later, see below. Remember to change back inverted toggle logic too.\n\tif(this.detailsStateTitle) {\n\t\t$tw.utils.addEventListeners(this.detailsDomNode,[\n\t\t\t{name: \"toggle\", handlerObject: this, handlerMethod: \"handleToggleEvent\"},\n\t\t]);\n\t}\n*/\n// As iOS mobile browsers lack support of toggle events on details \n// we emulate the toggle event using click\n\tif(this.detailsStateTitle && this.summaryDomNode) {\n\t\t$tw.utils.addEventListeners(this.summaryDomNode,[\n\t\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleToggleEvent\"},\n\t\t]);\n\t} else {\n\t\tif(this.detailsStateTitle) {\n\t\t\t$tw.utils.addEventListeners(this.detailsDomNode,[\n\t\t\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleToggleEvent\"},\n\t\t\t]);\n\t\t}\n\t}\n\t// Insert the details into the DOM and render any children\n\tthis.parentDomNode.insertBefore(this.detailsDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.detailsDomNode);\n};\n\n/*\nRetrieve the value of the summary\n*/\nDetailsWidget.prototype.getSummary = function() {\n\tvar value = \"\";\n\tif(this.summaryTitle === \"\" && this.summaryField === \"\" && \n\t this.detailsSummary === \"\") {\n\t\tvalue = \"\";\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.summaryTitle) || this.wiki.getTiddler(this.getVariable(\"currentTiddler\"));\n\t\tif(this.summaryField !== \"\") {\n\t\t\tif(this.summaryField === \"text\") {\n \t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.summaryTitle);\n\t\t\t} else {\n\t\t\t\t if(this.summaryField === \"title\") {\n\t\t\t\t\tvalue = this.summaryTitle;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = tiddler.fields[this.summaryField];\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t // no field specified, use title\n\t\t\tvalue = tiddler.fields[\"title\"];\n\t\t}\n\t}\n \treturn value;\n};\n\n/*\nRetrieve the value of the state text reference\n*/\nDetailsWidget.prototype.getStateFromReference = function() {\n var state = this.detailsStateTitle ? this.wiki.getTextReference(this.detailsStateTitle,\"\",this.getVariable(\"currentTiddler\")) : \"\";\n return state;\n};\n\n/*\nCheck all open signals, state fields/tiddlers get priority\n*/\nDetailsWidget.prototype.getOpenState = function() {\n\tvar result = \"\";\n\tif((this.detailsOpenDefault !== \"\" && this.detailsOpenDefault !== \"no\") \n\t || this.detailsState === \"open\") {\n\t\tresult = \"open\";\n\t } \n\tif(this.detailsStateTitle !==\"\" && this.detailsState !== \"open\") {\n\t\tresult = \"\";\n\t}\n\treturn result;\n}\n\n/*\nUpdate the state text reference after click event\n*/\nDetailsWidget.prototype.updateState = function(openState) {\n\tvar fieldValue = \"false\";\n\tvar currentTiddler = this.getVariable(\"currentTiddler\");\n // get the title for the (existing/new) tiddler\n\tvar tr = $tw.utils.parseTextReference(this.detailsStateTitle);\n\tvar tidTitle = tr.title || currentTiddler;\n // is it an existing state tiddler?\n\tvar isStateTiddler = (tr.title === this.detailsStateTitle);\n\tvar hasStateTiddler = this.wiki.tiddlerExists(tr.title);\n\tvar currentStateTiddler = (tr.title === currentTiddler);\n\tif(isStateTiddler || hasStateTiddler || (currentStateTiddler && tr.field !== \"text\")) { \n\t\t// Set the state field (but never overwrite the current tiddler’s text field\n\t\tthis.wiki.setText(tidTitle,tr.field,tr.index,openState);\n\t} else {\n\t \t// Set or create the tiddler if specified (but do not overwrite current tiddler by accident)\n\t\tif(!hasStateTiddler && tidTitle !== currentTiddler) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t\tthis.wiki.getCreationFields(),\n\t\t\t\tthis.wiki.getModificationFields(),\n\t\t\t\t{\n\t\t\t\t\ttitle: tidTitle,\n\t\t\t\t\ttags: []\n\t\t\t\t}\n\t\t\t));\n\t\t\tthis.wiki.setText(tidTitle,tr.field,tr.index,openState);\n\t\t} \n\t}\n};\n\n/*\nSet openState according to click\n*/\nDetailsWidget.prototype.handleToggleEvent = function(event) {\n// console.log (\"event registered\");\n/* Maybe normal logic can be reactivated later when toggle is supported, see section rendering above\n\tvar state = this.detailsDomNode.open ? \"open\" : \"\";\n*/\n\tvar state = this.detailsDomNode.open ? \"\" : \"open\";\n\t// update only, if the node has a new state\n\tif(state !== this.detailsState) {\n\t\tthis.updateState(state);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDetailsWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes \n\tthis.summaryTitle = this.getAttribute(\"tiddler\",\"\");\n\tthis.summaryField = this.getAttribute(\"field\",\"\");\n\tthis.detailsSummary = this.getAttribute(\"summary\",\"\");\n\tif(this.detailsSummary === \"\") {\n\t\tthis.detailsSummary = this.getSummary();\n\t}\n\tthis.detailsStateTitle = this.getAttribute(\"state\",\"\");\n\tthis.detailsState = this.getStateFromReference();\n\tthis.detailsOpenDefault = this.getAttribute(\"open\",\"\");\n\tthis.detailsOpen = this.getOpenState();\n\tthis.detailsClass = this.getAttribute(\"class\",\"\");\n\tif(this.detailsClass !== \"\") {\n\t\tthis.detailsClass += \" \";\n\t}\n\tthis.detailsClass += \"tc-details\";\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDetailsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.summary || changedAttributes.state || changedAttributes.open || changedAttributes[\"class\"]) {\n // paused: || changedTiddlers[this.summaryTitle]\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tvar testState = this.getStateFromReference();\n\t\tif(testState !== this.detailsState) {\n\t\t\t// state change\n\t\t\tthis.refreshSelf();\n\t\t\trefreshed = true;\n\t\t} \n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.details = DetailsWidget;\n\n})();", "type": "application/javascript", "title": "$:/plugins/telmiger/details/details.js", "tags": "Plugins", "module-type": "widget", "modifier": "Thomas Elmiger", "modified": "20170205211040196", "creator": "Thomas Elmiger", "created": "20170124173619910" }, "$:/plugins/telmiger/details/icon": { "created": "20170205205314072", "text": "<svg class=\"tc-image-button telmiger-icon\" viewBox=\"0 0 128 128\" xmlns=\"http://www.w3.org/2000/svg\" fill-rule=\"evenodd\" viewBox=\"0 0 128 128\" role=\"img\" aria-labelledby=\"title\"><title id=\"title\">T</title><path class=\"circle\" d=\"M64 2C30 2 2 29.753 2 64c0 34.235 27.753 62 62 62s62-27.752 62-62C126 29.753 98.221 2 64 2z\"/><path class=\"t\" d=\"M100.41 63.254c-2.886 1.92-7.544 2.883-13.979 2.883h-8.008c-4.246 0-7.331.845-9.254 2.536-1.922 1.69-3.449 5.086-4.576 10.19 0 0-.181 1.481-.503 1.481s-.369-.877-.518-1.586a37.897 37.897 0 0 0-.721-2.754c-.631-2.137-1.262-3.753-1.894-4.847-.764-1.359-1.727-2.452-2.889-3.28-1.162-.83-2.49-1.326-3.985-1.492l-2.092-.248H41.73c-6.144 0-10.711-.962-13.7-2.884-4.976-3.159-7.649-9.129-8.02-17.91-.03-.706.003-1.351.132-2.171h.585c.399 3.975 3.679 7.048 6.086 9.219 2.408 2.172 6.269 3.258 11.581 3.258h9.313c5.347 0 9.257 1.226 11.731 3.68 2.231 2.213 3.701 5.68 4.406 10.4.076.511.03.736.178.736.149 0 .11-.256.17-.783.713-6.122 3.085-10.219 7.117-12.294 2.487-1.292 6.434-1.906 11.841-1.839l6.368.1c4.311.066 7.942-.788 10.893-2.56 2.953-1.773 6.447-5.079 6.844-9.917h.595c.183.478.16 1.576.127 2.333-.371 8.752-2.894 14.668-7.567 17.749z\"/></svg>\n<style>\n.telmiger-icon .circle { fill: #e2001a }\n.telmiger-icon .t { fill: #fff }\n</style>", "title": "$:/plugins/telmiger/details/icon", "tags": "", "modified": "20171219183752113" }, "$:/plugins/telmiger/details/license": { "created": "20170205213335455", "text": "!! Plugin license\n!!!The MIT License (MIT)\n\n```\nCopyright © 2017 Thomas Elmiger – thomas-elmiger.ch\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n```", "title": "$:/plugins/telmiger/details/license", "tags": "", "modified": "20170205214435064" }, "$:/plugins/telmiger/details/readme": { "created": "20170205212323032", "text": "! ~DetailsWidget\n\nA plugin for [[TiddlyWiki|http://tiddlywiki.com]] 5 containing a script and some styles to create an HTML 5 `<details>` section including a `<summary>`. Here’s an example:\n\n<$details summary=\"W3C definition\">\n\n<<<\nThe [[details|http://w3c.github.io/html/interactive-elements.html#elementdef-details]] element represents a disclosure widget from which the user can obtain additional information or controls.\n<<< W3C\n\n</$details>\n\nDocumentation can be found at http://tid.li/tw5/plugins.html#DetailsWidget\n", "title": "$:/plugins/telmiger/details/readme", "tags": "", "modified": "20171219183358331" } } }
/*\ title: $:/plugins/telmiger/details/details.js type: application/javascript module-type: widget Details widget v 0.6.1 Will output an HTML 5 <details> section including a <summary> ``` <details> <summary>This sums it up</summary> <span>All the details follow here.</span> </details> ``` |Parameter |Description |h |summary |Optional text to display as summary. Wins over field (see below). | |open |Optional initial state, set to "open" to show details on load. Defaults to "". | |state |An optional TextReference containing the state. Wins over open. | |field |Optionally, the summary is taken from the field with this name in a given tiddler. Defaults to "title". | |tiddler |Optional title of a tiddler to watch, connected to field. Defaults to current tiddler. | |class |Optional CSS classes to be assigned to the details tag. | \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var DetailsWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); }; /* Inherit from the base widget class */ DetailsWidget.prototype = new Widget(); /* Render this widget into the DOM */ DetailsWidget.prototype.render = function(parent,nextSibling) { // Save the parent dom node this.parentDomNode = parent; // Compute our attributes this.computeAttributes(); // Execute our logic this.execute(); // Create our elements this.detailsDomNode = this.document.createElement("details"); this.detailsDomNode.setAttribute("class",this.detailsClass); if(this.detailsOpen == "open") { this.detailsDomNode.setAttribute("open","open"); } if(this.detailsSummary !== "") { this.summaryDomNode = this.document.createElement("summary"); this.detailsDomNode.appendChild(this.summaryDomNode); this.summaryDomNode.appendChild(this.document.createTextNode(this.detailsSummary)); } this.spanDomNode = this.document.createElement("span"); this.detailsDomNode.appendChild(this.spanDomNode); // register an event listener? /* Maybe this can be reactivated later, see below. Remember to change back inverted toggle logic too. if(this.detailsStateTitle) { $tw.utils.addEventListeners(this.detailsDomNode,[ {name: "toggle", handlerObject: this, handlerMethod: "handleToggleEvent"}, ]); } */ // As iOS mobile browsers lack support of toggle events on details // we emulate the toggle event using click if(this.detailsStateTitle && this.summaryDomNode) { $tw.utils.addEventListeners(this.summaryDomNode,[ {name: "click", handlerObject: this, handlerMethod: "handleToggleEvent"}, ]); } else { if(this.detailsStateTitle) { $tw.utils.addEventListeners(this.detailsDomNode,[ {name: "click", handlerObject: this, handlerMethod: "handleToggleEvent"}, ]); } } // Insert the details into the DOM and render any children this.parentDomNode.insertBefore(this.detailsDomNode,nextSibling); this.renderChildren(this.spanDomNode,null); this.domNodes.push(this.detailsDomNode); }; /* Retrieve the value of the summary */ DetailsWidget.prototype.getSummary = function() { var value = ""; if(this.summaryTitle === "" && this.summaryField === "" && this.detailsSummary === "") { value = ""; } else { var tiddler = this.wiki.getTiddler(this.summaryTitle) || this.wiki.getTiddler(this.getVariable("currentTiddler")); if(this.summaryField !== "") { if(this.summaryField === "text") { // Calling getTiddlerText() triggers lazy loading of skinny tiddlers value = this.wiki.getTiddlerText(this.summaryTitle); } else { if(this.summaryField === "title") { value = this.summaryTitle; } else { value = tiddler.fields[this.summaryField]; } } } else { // no field specified, use title value = tiddler.fields["title"]; } } return value; }; /* Retrieve the value of the state text reference */ DetailsWidget.prototype.getStateFromReference = function() { var state = this.detailsStateTitle ? this.wiki.getTextReference(this.detailsStateTitle,"",this.getVariable("currentTiddler")) : ""; return state; }; /* Check all open signals, state fields/tiddlers get priority */ DetailsWidget.prototype.getOpenState = function() { var result = ""; if((this.detailsOpenDefault !== "" && this.detailsOpenDefault !== "no") || this.detailsState === "open") { result = "open"; } if(this.detailsStateTitle !=="" && this.detailsState !== "open") { result = ""; } return result; } /* Update the state text reference after click event */ DetailsWidget.prototype.updateState = function(openState) { var fieldValue = "false"; var currentTiddler = this.getVariable("currentTiddler"); // get the title for the (existing/new) tiddler var tr = $tw.utils.parseTextReference(this.detailsStateTitle); var tidTitle = tr.title || currentTiddler; // is it an existing state tiddler? var isStateTiddler = (tr.title === this.detailsStateTitle); var hasStateTiddler = this.wiki.tiddlerExists(tr.title); var currentStateTiddler = (tr.title === currentTiddler); if(isStateTiddler || hasStateTiddler || (currentStateTiddler && tr.field !== "text")) { // Set the state field (but never overwrite the current tiddler’s text field this.wiki.setText(tidTitle,tr.field,tr.index,openState); } else { // Set or create the tiddler if specified (but do not overwrite current tiddler by accident) if(!hasStateTiddler && tidTitle !== currentTiddler) { this.wiki.addTiddler(new $tw.Tiddler( this.wiki.getCreationFields(), this.wiki.getModificationFields(), { title: tidTitle, tags: [] } )); this.wiki.setText(tidTitle,tr.field,tr.index,openState); } } }; /* Set openState according to click */ DetailsWidget.prototype.handleToggleEvent = function(event) { // console.log ("event registered"); /* Maybe normal logic can be reactivated later when toggle is supported, see section rendering above var state = this.detailsDomNode.open ? "open" : ""; */ var state = this.detailsDomNode.open ? "" : "open"; // update only, if the node has a new state if(state !== this.detailsState) { this.updateState(state); } }; /* Compute the internal state of the widget */ DetailsWidget.prototype.execute = function() { // Get the parameters from the attributes this.summaryTitle = this.getAttribute("tiddler",""); this.summaryField = this.getAttribute("field",""); this.detailsSummary = this.getAttribute("summary",""); if(this.detailsSummary === "") { this.detailsSummary = this.getSummary(); } this.detailsStateTitle = this.getAttribute("state",""); this.detailsState = this.getStateFromReference(); this.detailsOpenDefault = this.getAttribute("open",""); this.detailsOpen = this.getOpenState(); this.detailsClass = this.getAttribute("class",""); if(this.detailsClass !== "") { this.detailsClass += " "; } this.detailsClass += "tc-details"; // Construct the child widgets this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ DetailsWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.summary || changedAttributes.state || changedAttributes.open || changedAttributes["class"]) { // paused: || changedTiddlers[this.summaryTitle] this.refreshSelf(); return true; } else { var refreshed = false; var testState = this.getStateFromReference(); if(testState !== this.detailsState) { // state change this.refreshSelf(); refreshed = true; } return this.refreshChildren(changedTiddlers) || refreshed; } }; exports.details = DetailsWidget; })();
\rules only filteredtranscludeinline transcludeinline <div class="tc-remove-when-wiki-loaded"> <style scoped> .tc-splash-text { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 1.5rem; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; margin: 20px auto 0; width: 20rem; text-align: center; color: <<colour foreground>>; fill: <<colour foreground>>; } html body.tc-body { background: <<colour page-background>>; } </style> <div class="loading loading-lg"></div> <div class="tc-splash-text"> <p>Un moment s'il vous plaît ...</p> <p>{{$:/SiteTitle}} est en cours de chargement.</p> <p><svg xmlns="http://www.w3.org/2000/svg" width="166" height="166" viewBox="-40 -40 80 80"> <circle r="39"/> <path d="M0,38a38,38 0 0 1 0,-76a19,19 0 0 1 0,38a19,19 0 0 0 0,38" fill="#fff"/> <circle cy="19" r="5" fill="#fff"/> <circle cy="-19" r="5"/> </svg></p> </div> </div>
{ "tiddlers": { "$:/plugins/telmiger/WMR/plugin-macros": { "created": "20181124191802720", "text": "\\define wt(wikitext:\"example\")\n<$wikify name=\"in\" text=\"\"\"$wikitext$\"\"\" type=\"text/plain\">\n<$set name=\"out\" value=\"\"\"\n\n$wikitext$\n\n\"\"\">\n<$macrocall $name=\"renderWT\" input=<<in>> output=<<out>>/>\n</$set>\n</$wikify>\n\\end\n\n\\define renderWT(input,output)\n<div class=\"wmr-input\">\n\n```\n$input$\n```\n</div>\n<div class=\"wmr-output\">$output$</div>\n\\end\n\n\\define revealstate(tiddler,stateID)\n<$set name=\"qualstate\" value=<<qualify \"$:/state/wiki-markup/$stateID$\">> >\n<$reveal type=\"nomatch\" state=<<qualstate>> text=\"visible\" animate=\"yes\">\n <$button set=<<qualstate>> setTo=\"visible\" class=\"btnClosed\">Show</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<qualstate>> text=\"visible\" animate=\"yes\">\n <$button set=<<qualstate>> setTo=\"hidden\" class=\"btnOpen\">Hide section</$button>\n<article class=\"wikitext-examples\">\n<$transclude tiddler=\"$tiddler$\" mode=\"block\"/>\n<footer>\n<$list filter=\"[{$tiddler$!!wmr-source-link}prefix[https://tiddlywiki.com]]\">\n<a href={{$tiddler$!!wmr-source-link}}>More on tiddlywiki.com</a> | </$list>\n<$link to=\"$tiddler$\">Open separately</$link>\n</footer>\n</article>\n</$reveal>\n</$set>\n\\end\n", "title": "$:/plugins/telmiger/WMR/plugin-macros", "tags": "$:/tags/Macro", "modified": "20181125091902187" }, "$:/plugins/telmiger/WMR/styles.css": { "created": "20181124215313762", "text": ".wikitext-examples .wmr-input {\n margin-top: 2rem;\n max-width: 28rem;\n}\n\n.wikitext-examples footer {\n background-color: #e9e9e9;\n padding: 0.25rem;\n border-bottom: 1px solid #999;\n}\n\n.wmr-output .red {\n color: red;\n fill: red;\n}\n\n\n/* Buttons */\n\n.wikitext-examples .btnClosed,\n.wikitext-examples .btnOpen {\n width: 100%;\n text-align: left;\n background: #e9e9e9;\n border: none;\n padding: 0.25rem;\n}\n\n.wikitext-examples .btnClosed:before {\n content: \"▶\";\n margin-right: 0.5rem;\n}\n\n.wikitext-examples .btnOpen:before {\n content: \"▼\";\n margin-right: 0.5rem;\n}", "title": "$:/plugins/telmiger/WMR/styles.css", "tags": "$:/tags/Stylesheet", "modified": "20181125100726086" }, "$:/plugins/telmiger/WMR/about": { "created": "20181125122609022", "modified": "20181125122609022", "title": "$:/plugins/telmiger/WMR/about", "text": "!!! About the Wikitext Markup Reference \n\nExamples are copied from or inspired by\n\n* [[Tobi Beer's Markup Reference|http://tobibeer.github.io/tb5/#Markup%20Reference]]\n** try the [[searchable version|http://tobibeer.github.io/tb5/#Markup]] too!\n\nA great idea found via [[Greg Davis' Begin plugin|http://gdplugins.tiddlyspot.com/#%24%3A%2Fplugins%2Fgdavis%2Ftwbegin]].", "tags": "" }, "CircleJack.svg": { "text": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"256\" height=\"256\" viewBox=\"0 0 256 256\"><circle cx=\"128\" cy=\"128\" r=\"128\"/><path fill=\"#FFF\" d=\"M181.035 228.486c-9.88 0-14.08-.336-19.035-8.486 0 0-6.002.148-9 0-5.014-.193-6-4.928-6-8 0-8.04 3.104-16.455 3-25-.035-3.04-4.467-14.16-6-18-4.81.906-9.5 2-18 2s-19.914-2.254-31-4c-2.16 8.926-8.31 21.928-3 31 6.442 9.383 10.992 11.436 18 12s8.695 8.174 7 11c-2.125 3.375-4.883 3-9 3s-8.858-1.53-12-3c-5.25-2.932-7.973-6.625-12-11 .938 1.748-.3 4.807-2 6-3.47 2.434-13.328 2.62-17 1-5.358-2.383-19-19.477-21-32 5.325-10.074 13.074-18.03 17-29-8.556-5.46-13.674-16.99-11.993-25.143.89-4.324 1.993-6.84-3.007-9.857-22.066-10.832-18.714-46.676-11-65 6.706-15.934 22.39-23.95 31-16 7.623 7.04 7.375 13 4 13-3.376 0-5.01-6.266-8-8-8.052-4.676-16.65 6.92-20 17-4.586 13.797-8.236 47.324 14 48 4.284-.146 6.647-.51 10-2 5.48-2.434 13.572-3.895 18-4 15.02-.48 33.03 5.746 42 6 8.967.252 21.168-2.508 29-2 5.68.26 11.518 1.54 17 3 3.55-17.297 3.586-30.05 12-33 4.936.78 9.184 7.406 12 11 5.746-.23 10.574 1.387 16 3 9.824-1.395 18.324-6.707 27-11-8.79 7.18-10.004 18.2-9 29 .373 5.605-1.045 12.26-3 18-3.664 9.352-10.79 19.504-19 19-3.105-.1-5.693-2.123-8-4-.447 3.8-2.303 7.637-4 11-3.914 7.453-13.527 10.04-23 18s2.97 36.82 6 42c3.033 5.18 11.195 6.176 9 11-.71 2.1-2.812 3.486-6.965 3.486zm-109.03-23.59c2.187.862 6.98.556 8.995 1.104-3.707-3.51-8.977-8.752-13-12-1.32-3.93-1-12-1-12-1.584 3.215-3.918 6.62-5 10-1.137 3.71 5.34 11.053 10.006 12.895z\"/></svg>", "type": "image/svg+xml", "title": "CircleJack.svg", "tags": "picture", "modifier": "Thomas Elmiger", "modified": "20170918220236294", "creator": "Thomas Elmiger", "created": "20170918060138058" }, "$:/plugins/telmiger/WMR/icon": { "created": "20181125123109958", "text": "{{CircleJack.svg}}", "title": "$:/plugins/telmiger/WMR/icon", "tags": "$:/tags/Macro", "modified": "20181125123135913" }, "$:/plugins/telmiger/WMR/bar": { "created": "20181129205651711", "creator": "Thomas", "text": "He ordered another beer.", "title": "$:/plugins/telmiger/WMR/bar", "tags": "Bar", "modifier": "Thomas Elmiger", "modified": "20181130195238270", "caption": "Bar" }, "$:/plugins/telmiger/WMR/code": { "created": "20181124200421812", "creator": "Thomas", "text": "<<wt \"Display `code` via backticks.\">> \n\nUse double backticks ... <<wt \"``for `embedded` backticks`` in code.\">>\n\nFor longer code use a [[code block|https://tiddlywiki.com/#Code%20Blocks%20in%20WikiText]]:\n\n<div class=\"wmr-input\">\n<pre>```\nmonospaced\ncodeblock\n```</pre>\n</div>\n\n```\nmonospaced\ncodeblock\n```", "title": "$:/plugins/telmiger/WMR/code", "tags": "ShortReference", "modifier": "Thomas", "modified": "20181129172414626" }, "$:/plugins/telmiger/WMR/filters": { "created": "20181128065322406", "creator": "Thomas", "title": "$:/plugins/telmiger/WMR/filters", "modified": "20181130200642067", "modifier": "Thomas Elmiger", "tags": "ShortReference", "text": "\n!!! Display the result of a filter expression\n\nUse [[filter operators|https://tiddlywiki.com/#Filter%20Operators]] like `tag` to select tiddlers.\n\nList tiddlers tagged `Foo`:\n\n<<wt \"{{{ [tag[Foo]] }}}\n\">>\n\nList tiddlers tagged `Foo` OR `Bar`:\n\n<<wt \"{{{ [tag[Foo]][tag[Bar]] }}}\n\">>\n\nList tiddlers tagged `Foo` AND `Bar`:\n\n<<wt \"{{{ [tag[Foo]] +[tag[Bar]] }}}\n\">>\n\nList tiddlers tagged `Foo` NOT `Bar`:\n\n<<wt \"{{{ [tag[Foo]] -[tag[Bar]] }}}\n\">>\n\n---\n\n!!! Limit results\n\n<<wt \"{{{ [tag[Foo]limit[1]] }}}\n\">>\n\n---\n\n!!! Sorting\n\nSort titles:\n\n<<wt \"{{{ [tag[Foo]][tag[Bar]] +[sort[]] }}}\n\">>\n\nSort reverse:\n\n<<wt \"{{{ [tag[Foo]][tag[Bar]] +[!sort[]] }}}\n\">>\n\nSort numbers:\n\n<<wt \"{{{ [[1]][[10]][[2]][[3]] +[nsort[]] }}}\n\">>\n\nFirst created:\n\n<<wt \"{{{ [tag[Foo]][tag[Bar]] +[sort[created]] }}}\n\">>\n\nLast modified:\n\n<<wt \"{{{ [tag[Foo]][tag[Bar]] +[!sort[modified]] }}}\n\">>\n\n---\n\n!!! Special effects\n\n!!!! If empty ... aka Else ~\n\nSince TW version 5.1.18\n\n<<wt \"{{{ [tag[foo]] ~[[no foo]] }}}\n\">>\n\n!!!! Range\n\n<<wt \"{{{ [range[3,1,0.5]] }}}\n\">>\n\nSee https://tiddlywiki.com/#range%20Operator", "wmr-source-link": "https://tiddlywiki.com/#Filter%20Expression" }, "$:/plugins/telmiger/WMR/font-variants": { "created": "20181124191306552", "creator": "Thomas", "text": "<<wt \"Normal text: We don’t serve their kind here! What? Your droids. They’ll have to wait outside. We don’t want them here. Listen, why don’t you wait out by the speeder. We don’t want any trouble. I heartily agree with you sir. Negola dewaghi wooldugger?!? He doesn’t like you. I’m sorry.\">>\n\n<<wt \"''bold'' \">>\n\n\n<<wt //italics//>>\n\n\n<<wt \"''//bold italics//'' \">>\n\n\n<<wt __underline__>>\n\n\n<<wt ~~strikethrough~~>>\n\n\n<<wt super^^script^^>>\n\n\n<<wt sub,,script,,>>\n\n\n<<wt \"! Heading 1\n\n!! Heading 2\n\n!!! Heading 3\n\n!!!! Heading 4\n\n!!!!! Heading 5\n\n!!!!!! Heading 6\n\">>", "title": "$:/plugins/telmiger/WMR/font-variants", "tags": "ShortReference", "modified": "20181128063401100", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/foo": { "created": "20181127222534567", "creator": "Thomas", "text": "A man went into a ''bar''.\n\nHe ordered a beer.", "title": "$:/plugins/telmiger/WMR/foo", "tags": "Foo Dummy", "modifier": "Thomas Elmiger", "modified": "20181130210029401", "caption": "Foo", "wmr-example": "54rem" }, "$:/plugins/telmiger/WMR/foo-bar": { "created": "20181130170447615", "creator": "Thomas Elmiger", "text": "Dummy text", "title": "$:/plugins/telmiger/WMR/foo-bar", "tags": "Bar Foo Dummy", "modifier": "Thomas Elmiger", "modified": "20181130193831647", "caption": "Foo Bar" }, "$:/plugins/telmiger/WMR/html": { "created": "20181124205849430", "creator": "Thomas", "text": "<div class=\"wmr-input\">\n\n```\n<article class=\"hello\">\nHTML tags work like that.\n<!-- even comments -->\n</article>\n```\n</div>\n\n<article class=\"hello\">\nHTML tags work like that.\n<!-- even comments -->\n</article>\n\n\n<div class=\"wmr-input\">\n\n```\n<a href={{TiddlerWithURL}}>link</a>\n<b class=<<getClass>>>bold</b>\n```\n</div>\n\n<a href={{TiddlerWithURL}}>link</a>\n<b class=<<version>>>bold</b>\n\nset attributes via transclusion or macro\n\n\n<div class=\"wmr-input\">\n\n```\n<div address=\"\"\"attribute,\n\"quoted\",\nwith,\nlinebreaks.\"\"\">inspect me!</div>\n```\n</div>\n\n<div address=\"\"\"attribute,\n\"quoted\",\nwith,\nlinebreaks.\"\"\">inspect me!</div>\n\n\n<div class=\"wmr-input\">\n\n```\n* nest<div>\n\n; via\n: html\n</div>\n```\n</div>\n\n*nest <div>\n\n;via\n:html\n</div>\n", "title": "$:/plugins/telmiger/WMR/html", "tags": "ShortReference", "modified": "20181128063415521", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/images": { "created": "20181124203347203", "creator": "Thomas", "text": "!!! Internal images\n\nImages saved in the wiki:\n\n<<wt \"\"\"[img width=128 [CircleJack.svg]]\n[img width=64 [title/tooltip|CircleJack.svg]]\n[img width=32 [CircleJack.svg]]\n[img width=32 class=\"red\" [CircleJack.svg]]\n\"\"\">>\n\n\n!!! Images from the web\n\n<<wt \"\"\"[img[https://tiddlywiki.com/favicon.ico]]\n\"\"\">>\n\n\n!!! Images in separate files\n\n<<wt \"\"\"[img[path/image.jpg]]\n\"\"\">>\n\nSolutions can be found in the user group ...\n", "title": "$:/plugins/telmiger/WMR/images", "tags": "ShortReference", "modified": "20181201150622535", "wmr-source-link": "https://tiddlywiki.com/#Images%20in%20WikiText", "modifier": "Thomas Elmiger" }, "$:/plugins/telmiger/WMR/links": { "created": "20181124191601375", "creator": "Thomas", "text": "!!! Internal Wiki Links\n\n<<wt \"[[Wikitext Markup Reference]]\n\n[[Missing Tiddler]] – italic\n\n$:/AdvancedSearch\n\n[[shadow tiddler|$:/AdvancedSearch]] – bold\n\">>\n\n\n<<wt \"CamelCaseLink\n\n~SuppressedLink\n\">>\n\n\n!!! External Links\n\n<<wt \"https://tiddlywiki.com\n\n[[web link|https://tiddlywiki.com]]\n\n~https://not.alink.com\n\">>\n\n\n!!! File Links\n\nLinks to local/external files: see [[tiddlywiki.com|https://tiddlywiki.com/#Linking%20in%20WikiText]]\n", "wmr-source-link": "https://tiddlywiki.com/#Linking%20in%20WikiText", "title": "$:/plugins/telmiger/WMR/links", "tags": "ShortReference", "modifier": "Thomas", "modified": "20181129172442346" }, "$:/plugins/telmiger/WMR/lists": { "created": "20181124191350660", "creator": "Thomas", "text": "!! Wikitext lists\n\n!!! Unordered list\n\n<<wt \"* list item\n** list in list\n*** list in list in list\n\">>\n\n!!! Ordered list\n\n<<wt \"# list item\n#* list in list\n#** list in list in list\n# list item\n## numbered list in list\n\">>\n\n!!! [[Definition list|https://tiddlywiki.com/#Definitions%20in%20WikiText]]\n\n<<wt \"; term\n: definition of the term\n\">>\n\n---\n\n!! [[List widget|https://tiddlywiki.com/prerelease/#ListWidget]]\n\n<<wt \"\"\"<$list filter=\"[tag[Foo]sort[title]]\"/>\n\"\"\">>\n\n<<wt \"{{{ [tag[Foo]!sort[title]] }}}\"\n\"\"\">>\n\n\n!!! List format\n\n```\n<ul>\n<$list filter=\"[tag[Foo]sort[title]]\">\n<li><<currentTiddler>></li>\n</$list>\n</ul>\n```\n\n<ul>\n<$list filter=\"[tag[Foo]sort[title]]\">\n<li><<currentTiddler>></li>\n</$list>\n</ul>\n\n!!! Store list item in variable\n\nBy default, the title of the list item is stored in the Current Tiddler variable:\n\n\n```\n<$list filter=\"[tag[Bar]]\">\n<<currentTiddler>>\n{{||$:/core/ui/ViewTemplate/tags}}\n</$list>\n```\n\n<$list filter=\"[tag[Bar]]\">\n<<currentTiddler>>\n{{||$:/core/ui/ViewTemplate/tags}}\n</$list>\n\n\nWhen we store the title in our own variable, the Current Tiddler remains unchanged. In the following example, the tags of the displaying tiddler will be shown:\n\n```\n<$list filter=\"[tag[Bar]]\" variable=\"tiddler\">\n<<tiddler>>\n{{||$:/core/ui/ViewTemplate/tags}}\n</$list>\n```\n\n<$list filter=\"[tag[Bar]]\" variable=\"tiddler\">\n<<tiddler>>\n{{||$:/core/ui/ViewTemplate/tags}}\n</$list>\n\n!!! Empty message\n\n\n```\n<$list filter=\"[tag[foo]limit[1]]\" emptyMessage=\"No `foo` tagged tiddlers available.\">\n`foo` tagged tiddlers exist\n</$list>\n\n```\n\n<$list filter=\"[tag[foo]limit[1]]\" emptyMessage=\"No `foo` tagged tiddlers available.\">\n`foo` tagged tiddlers exist\n</$list>\n\n```\n<$list filter=\"[tag[Foo]limit[1]]\" emptyMessage=\"no `Foo` tagged tiddlers available\">\n`Foo` tagged tiddlers exist.\n</$list>\n```\n\n<$list filter=\"[tag[Foo]limit[1]]\" emptyMessage=\"no `Foo` tagged tiddlers available\">\n`Foo` tagged tiddlers exist.\n</$list>\n", "title": "$:/plugins/telmiger/WMR/lists", "tags": "ShortReference", "modifier": "Thomas Elmiger", "modified": "20181129231942492" }, "$:/plugins/telmiger/WMR/macros": { "created": "20181124210017691", "creator": "Thomas", "text": "<div class=\"wikitext-examples\">\n\n<div class=\"wmr-input\">\n\n```\n\\define run(foo:'bar') [[$foo$]]\n\n<<run \"foo bar\">>\n```\n</div>\n\n» defines macro `run`<br>\n» with parameter `foo`<br>\n» whose value defaults to `bar`<br>\n» outputs a link to value of param:<br>\n [[foo bar]]\n\n<div class=\"wmr-input\">\n\n```\n\\define test()\nI am $(x)$.\n\\end\n\n<$set name=\"x\" value=\"y\nof z\">\n<<test>>\n</$set>\n```\n</div>\n\n» defines macro test which<br>\n» outputs value of variable x<br><br>\n\n» sets variable x to: \"y<br>\n of z\" //(multiline allowed)//<br>\n» runs macro test which outputs:<br>\n \"I am y of z.\"\n\n<div class=\"wmr-input\">\n\n```\n\\define test(x, y, z:'0')\n$x$ $y$ $z$\n\\end\n\n<$macrocall\n$name=\"test\"\nx=<<version>>\ny={{!!title}}/>\n```\n</div>\n\n» defines macro test<br>\n» outputs 3 params<br><br>\n\n» calls test via macrocall widget<br>\n» using macro version as param x<br>\n» and transclusion as param y<br><br>\n\n» output: <<version>> {{!!title}} 0\n\n</div>", "title": "$:/plugins/telmiger/WMR/macros", "tags": "ShortReference", "modified": "20181128065443126", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/new-lines": { "created": "20181124200219330", "creator": "Thomas", "text": "<<wt \"Since\nnew paragraphs\nneed two linebreaks in TW5 ...\n\nYou can also use:\n\">>\n\n<div class=\"wmr-input\">\n\n```\n\"\"\"\ntripple quotes to \nforce hard linebreaks\nlike this.\n\"\"\"\n```\n</div>\n\n\"\"\"\ntripple quotes to \nforce hard linebreaks\nlike this.\n\"\"\"\n\n<<wt \"HTML tags: <br>\nas well as <br/> are accepted\n\">>\n\nBoth result in a `<br>` when rendered.\n", "title": "$:/plugins/telmiger/WMR/new-lines", "tags": "ShortReference", "modifier": "Thomas", "modified": "20181128063152165" }, "$:/plugins/telmiger/WMR/quotes": { "created": "20181129204618410", "creator": "Thomas", "text": "!!! [[Quotes and citations|https://tiddlywiki.com/#Block%20Quotes%20in%20WikiText]]\n\n<<wt \"<<<\nWe are the ones we have been waiting for. \n<<< Hopi wisdom\n\">>\n\n<<wt \"<<<.tc-big-quote\nWe are the ones we have been waiting for. \n<<< Hopi wisdom\n\">>\n", "title": "$:/plugins/telmiger/WMR/quotes", "tags": "ShortReference", "modifier": "Thomas", "modified": "20181129204700838" }, "$:/plugins/telmiger/WMR/reference": { "created": "20181125111047842", "creator": "Thomas", "text": "<div class=\"wikitext-examples\">\n\n!! Font Variants\n\n<<revealstate \"$:/plugins/telmiger/WMR/font-variants\" \"font-variants\">>\n\n\n!! Lists, Definitions\n\n<<revealstate \"$:/plugins/telmiger/WMR/lists\" \"lists\">>\n\n\n!! Links\n\n<<revealstate \"$:/plugins/telmiger/WMR/links\" \"links\">>\n\n\n!! Special Characters, Lines, Ruler\n\n<<revealstate \"$:/plugins/telmiger/WMR/special-chars\" \"special-chars\">>\n\n\n!! New Lines\n\n<<revealstate \"$:/plugins/telmiger/WMR/new-lines\" \"new-lines\">>\n\n\n!! Quotes\n\n<<revealstate \"$:/plugins/telmiger/WMR/quotes\" \"quotes\">>\n\n\n!! Styles\n\n<<revealstate \"$:/plugins/telmiger/WMR/styles\" \"styles\">>\n\n\n!! Images\n\n<<revealstate \"$:/plugins/telmiger/WMR/images\" \"images\">>\n\n\n!! Tables\n\n<<revealstate \"$:/plugins/telmiger/WMR/tables\" \"tables\">>\n\n\n!! Code\n\n<<revealstate \"$:/plugins/telmiger/WMR/code\" \"code\">>\n\n\n!! Plain HTML\n\n<<revealstate \"$:/plugins/telmiger/WMR/html\" \"html\">>\n\n\n!! Transclusion\n\n<<revealstate \"$:/plugins/telmiger/WMR/transclusion\" \"transclusion\">>\n\n\n!! Tabs\n\n<<revealstate \"$:/plugins/telmiger/WMR/tabs\" \"tabs\">>\n\n\n!! Special Cases\n\n<<revealstate \"$:/plugins/telmiger/WMR/special\" \"special\">>\n\n\n!! Variables\n\n<<revealstate \"$:/plugins/telmiger/WMR/variables\" \"variables\">>\n\n\n!! Macros\n\n<<revealstate \"$:/plugins/telmiger/WMR/macros\" \"macros\">>\n\n\n!! Filters\n\n<<revealstate \"$:/plugins/telmiger/WMR/filters\" \"filters\">>\n\n\n!! Templates\n\n<<revealstate \"$:/plugins/telmiger/WMR/templates\" \"templates\">>\n\n\n!! Typed Elements\n\n<<revealstate \"$:/plugins/telmiger/WMR/typed-elements\" \"typed-elements\">>\n\n</div>\n", "title": "$:/plugins/telmiger/WMR/reference", "tags": "ShortReference", "modified": "20181130210006750", "modifier": "Thomas Elmiger" }, "$:/plugins/telmiger/WMR/special": { "created": "20181124200507179", "creator": "Thomas", "text": "<div class=\"wmr-input\">\n\n```\n> block\n>> quotes\n>>> are easy\n```\n</div>\n\n> block\n>> quotes\n>>> are <br>easy\n\n\n<<wt \"# mixed\n#* lists\n#; you\n#: know\n#> like so\n\">>\n", "title": "$:/plugins/telmiger/WMR/special", "tags": "ShortReference", "modified": "20181128065512504", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/special-chars": { "created": "20181124191754197", "creator": "Thomas", "text": "<<wt \"Dashes come in two sizes---the longer is the em dash (HTML: —).\n\nThe en dash (HTML: –) is for ranges (2000--2018) and connections (London--New York) \n\">>\n\n<<wt \"---\nhorizontal rules: line with `---` only or HTML:\n<hr>\n\">>\n\n\n<<wt \"2 × 5 m = 10 m\n\næ – å – œ – ø – Æ – Å – Œ – Ø\n\">>\n\n<<wt \"* a non breaking space: entity\n* a narrow no-break space: (no entity available)\n* a en space: entity\n* a em space: entity\n* a 3-per-em space: entity\n* a 4-per-em space: entity\n* a 6-per-em space: (no entity available)\n* a figure space entity\n* a punctuation space: entity\n* a thin space: entity\n* a hair space: entity\n\">>\n\n[[More Unicode characters and HTML entities|https://www.key-shortcut.com/en/character-tables/unicode-2000-2fff/]]", "title": "$:/plugins/telmiger/WMR/special-chars", "tags": "ShortReference", "modified": "20181128065614974", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/styles": { "created": "20181124200539896", "creator": "Thomas", "text": "<<wt \"!.red CSS\n#.red classes can be\n;.red assigned\n:.red like\n>.red this\n\">>\n\n\n<<wt \"@@.myClass.red\nassign classes using double @\n@@\n\">>\n\n\n<<wt \"@@color:darkorange; apply styles directly @@\n\">>\n\n\n<<wt \"@@.red\n@@border:1px solid blue;\ncombine classes and styles \n@@\n\">>\n\n\n<<wt \"@@.purple Use style tags. @@ – Is it purple?\n\n<style>\n.purple{color:purple;}\n</style>\n\">>", "title": "$:/plugins/telmiger/WMR/styles", "tags": "ShortReference", "modified": "20181128065714950", "wmr-source-link": "https://tiddlywiki.com/#How%20to%20apply%20custom%20styles", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/tables": { "created": "20181124205512397", "creator": "Thomas", "text": "!!! Positioning\n\n<<wt \"\"\"| highClass |k\n|!Left | !Center | !Right|\n|^NW |^ N |^ NE|\n|W | ✦ | E|\n|,SW |, S |, SE|\n\"\"\">>\n\n!!! Cells\n\n<<wt \"\"\"|!merge cells|<|<|\n| 1 | 2 | 3 |\n|to the |< left |<|\n|and|also| vertical <br>~ (up) |\n|>| right >|~|\n\n\"\"\">>\n\n!!! Header, Footer, Caption, Style\n<<wt \"\"\"|!header 1 |!header 2|\n| Footer |<|f\n| cell 1 | cell 2 |\n|This is a caption |c\n| red |k\n\"\"\">>\n\n<style>\n.highClass td {\n height: 2.75rem;\n min-width: 3.75rem; \n}\n</style>", "title": "$:/plugins/telmiger/WMR/tables", "tags": "ShortReference", "modified": "20181128063215976", "modifier": "Thomas" }, "$:/plugins/telmiger/WMR/tabs": { "created": "20181130193703180", "creator": "Thomas Elmiger", "text": "!!! Filter tiddlers for tabs\n\n<$macrocall $name=\"wt\" wikitext=\"\"\"<<tabs \"[tag[Foo]][tag[Bar]]\" default:\"$:/plugins/telmiger/WMR/foo\">>\"\"\"/>\n\n\n\n!!! Vertical tabs\n\n<$macrocall $name=\"wt\" wikitext=\"\"\"<<tabs \"[tag[Foo]][tag[Bar]]\" \"$:/plugins/telmiger/WMR/foo\" class:\"tc-vertical\">>\"\"\"/>", "title": "$:/plugins/telmiger/WMR/tabs", "modified": "20181130195012073", "modifier": "Thomas Elmiger", "tags": "ShortReference", "wmr-source-link": "https://tiddlywiki.com/#tabs%20Macro" }, "$:/plugins/telmiger/WMR/templates": { "created": "20181129173332986", "creator": "Thomas", "text": "[[Transclude|https://tiddlywiki.com/#Transclusion%20in%20WikiText]] tiddler `.../foo` applying [[template|https://tiddlywiki.com/#TemplateTiddlers]] `.../tmpl-code`:\n\n<<wt \"{{$:/plugins/telmiger/WMR/foo||$:/plugins/telmiger/WMR/tmpl-code}}\">>\n\nUse template `Bar` for the [[Current Tiddler|https://tiddlywiki.com/#Current%20Tiddler]] (default):\n\n<div class=\"wmr-input\">\n\n```\n{{||Bar}}\n```\n</div>\n\n---\n\nA template can show different fields of a tiddler. While the list of tiddlers tagged `Foo` shows the content of the field `title` ...\n\n<<wt \"{{{ [tag[Foo]] }}}\n\">>\n\n... the same for tag `Bar` displayed through the template $:/core/ui/ViewTemplate/subtitle shows the content of the fields `modifier` and `modified`:\n\n<<wt \"{{{ [tag[Bar]]||$:/core/ui/ViewTemplate/subtitle }}}\n\">>", "title": "$:/plugins/telmiger/WMR/templates", "modified": "20181201142137043", "modifier": "Thomas Elmiger", "tags": "ShortReference", "wmr-source-link": "https://tiddlywiki.com/#Transclusion%20with%20Templates" }, "$:/plugins/telmiger/WMR/tmpl-code": { "created": "20181130195051148", "creator": "Thomas Elmiger", "text": "<pre><code>{{!!text}}</code></pre>", "title": "$:/plugins/telmiger/WMR/tmpl-code", "modifier": "Thomas Elmiger", "modified": "20181130195148774", "caption": "Bar" }, "$:/plugins/telmiger/WMR/transclusion": { "created": "20181124205928499", "creator": "Thomas", "text": "!!! Display content from other tiddlers\n\nTransclude [[text|$:/plugins/telmiger/WMR/foo]] and [[images|$:/core/images/home-button]] from the main content (text field): \n\n<<wt \"{{$:/plugins/telmiger/WMR/foo}}\">>\n\n<<wt \"{{$:/core/images/home-button}}\">>\n\n\n!!! Content of tiddler fields\n\n<div class=\"wmr-input\">\n\n```\n{{Foo!!bar}}\n{{!!bar}}\n```\n</div>\n\n* field `bar` of tiddler `Foo`\n* field `bar` of the Current Tiddler\n\n!!! Data tiddler entries\n\n<div class=\"wmr-input\">\n\n```\n{{Foo##index}}\n{{##index}}\n```\n</div>\n\n* `index` of [[datatiddler|https://tiddlywiki.com/#DataTiddlers]] titled `Foo`\n* `index` of `CurrentTiddler`\n\n---\n\n!!! Transclude widget\n\nTry the [[transclude widget|https://tiddlywiki.com/#TranscludeWidget]] if you have to set the parsing mode manually.\n\n<<wt 'Story: <$transclude tiddler=\"$:/plugins/telmiger/WMR/foo\" mode=\"block\"/>'>>\n\n<<wt 'Story: <$transclude tiddler=\"$:/plugins/telmiger/WMR/foo\" mode=\"inline\"/>'>>", "title": "$:/plugins/telmiger/WMR/transclusion", "tags": "ShortReference", "modifier": "Thomas Elmiger", "modified": "20181130201019473", "wmr-source-link": "http://tiddlywiki.com/#Transclusion%20in%20WikiText" }, "$:/plugins/telmiger/WMR/typed-elements": { "created": "20181124210140010", "creator": "Thomas", "text": "<div class=\"wmr-input\">\n\n```\n$$$text/unknown\nplain text, not //formatted//\n$$$\n```\n</div>\n\n$$$text/unknown\nplain text, not //formatted//\n$$$\n\n<br>\nThese are [[Typed Blocks|https://tiddlywiki.com/#Typed%20Blocks%20in%20WikiText]]\n\n<div class=\"wmr-input\">\n\n```\n$$$image/svg+xml\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke-width=\"0\" fill=\"green\" />\n</svg>\n$$$\n```\n</div>\n\n\n$$$image/svg+xml\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke-width=\"0\" fill=\"green\" />\n</svg>\n$$$\n\n<div class=\"wmr-input\">\n\n```\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"blue\" />\n</svg>\n$$$\n```\n</div>\n\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"blue\" />\n</svg>\n$$$\n\n\n<div class=\"wmr-input\">\n\n```\n$$$text/vnd.tiddlywiki>text/html\nThis is ''some'' wikitext\n$$$\n```\n</div>\n\n$$$text/vnd.tiddlywiki>text/html\nThis is ''some'' wikitext\n$$$\n\n<div class=\"wmr-input\">\n\n```\n$$$text/vnd.tiddlywiki>text/plain\nThis is ''some'' wikitext\n$$$\n```\n</div>\n\n$$$text/vnd.tiddlywiki>text/plain\nThis is ''some'' wikitext\n$$$\n", "title": "$:/plugins/telmiger/WMR/typed-elements", "tags": "ShortReference", "modified": "20181201143104715", "modifier": "Thomas Elmiger" }, "$:/plugins/telmiger/WMR/variables": { "created": "20181128064053957", "creator": "Thomas", "title": "$:/plugins/telmiger/WMR/variables", "modified": "20181130211541726", "modifier": "Thomas Elmiger", "text": "\\define animal1() lion\n\\define animals1()\nseal <br>\npenguin\n\\end\n\n\n!!! Set the value of a variable\n\nTo use a local variable in a single tiddler, insert a definition at the very top of the tiddler:\n\n`\\define animal1() lion`\n\nTo use a variable in a limited part of a tiddler, use the [[set widget|https://tiddlywiki.com/#SetWidget]]: \n\n<$macrocall $name=\"wt\" wikitext=\"\"\"<$set name=\"animal2\" value=\"zebra\">\n<<animal1>> eats <<animal2>>\n</$set>\n\"\"\"/>\n\n!!! Multi-line variables\n\n```\n\\define animals1()\nseal <br>\npenguin\n\\end\n\n<<animals1>>\n```\n\n<<animals1>>\n\n<$macrocall $name=\"wt\" wikitext=\"\"\"<$set name=\"animals2\" value=\"\n* zebra\n* gnu\n* antelope\n\">\n\n<<animals2>>\n</$set>\n\"\"\"/>\n\n\n!!! Variables as parameters\n\n<$tiddler tiddler=\"$:/plugins/telmiger/WMR/foo\">\n\n<$macrocall $name=\"wt\" wikitext=\"\"\"<$set name=\"mywidth\" value={{!!wmr-example}}>\n[img width=<<mywidth>> [CircleJack.svg]]\n</$set>\n\"\"\"/>\n\n</$tiddler>\n\n!!!! Change the value\n\n<$macrocall $name=\"wt\" wikitext=\"\"\"<$edit-text tiddler=\"$:/plugins/telmiger/WMR/foo\" field=\"wmr-example\"/>\n\"\"\"/>\n\nHint: We also use the [[tiddler widget|https://tiddlywiki.com/#TiddlerWidget]] above to set $:/plugins/telmiger/WMR/foo as the current tiddler in the context of the image. This makes sure that the [[text reference|https://tiddlywiki.com/#TextReference]] `!!wmr-example` points to the right field.\n\nThe edit text widget should ''not'' be used to edit a field of the tiddler that contains it to ommit unwanted side effects. ", "tags": "ShortReference" } } }
{ "tiddlers": { "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js": { "text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js\ntype: application/javascript\nmodule-type: wikirule\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"checkbox\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\n\t// Match on [ ], [x], and [X], to the end of the line\n\tthis.matchRegExp = /^\\[([ xX])\\] .*$/mg;\n};\n\n/*\nRetrieve the configuration state of the clear all button\n*/\n\nexports.shouldShowClearAll = function() {\n var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n var showClearAll = configWidgetFields[\"show-clearall\"] || \"true\";\n return (showClearAll === \"true\");\n}\n\n/*\nCreate list items\n*/\n\nexports.parse = function() {\n var listItems = [];\n var listStartPos = this.parser.pos;\n var match = this.match;\n\n // Start the list with a \"New List Item\" placeholder\n listItems.push({\n type: \"element\",\n tag: \"li\",\n children: [\n {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-newitem-icon\"},\n for: {type: \"string\", value: \"checklist-new\"}\n }\n },\n {\n type: \"element\",\n tag: \"input\",\n attributes: {\n class: {type: \"string\", value: \"checklist-newitem\"},\n id: {type: \"string\", value: \"checklist-new\"},\n placeholder: {type: \"string\", value: \"New list item (WikiText)\"}\n // impossible? add an aria-label \"Write a new todo item\"\n // attribute aria-label seems to be missing in $:/core/modules/widgets/edit.js \n }\n },\n // label for the input field\n {\n type: \"element\",\n tag: \"label\",\n attributes: {\n class: {type: \"string\", value: \"checklist-vh\"},\n for: {type: \"string\", value: \"checklist-new\"}\n },\n children: [\n {type: \"text\", text: \"Write a new item for the list.\"}\n ]\n },\n // (pseudo) button to add the new item to the list\n {\n type: \"element\",\n tag: \"button\",\n attributes: {\n class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-add\"},\n title: {type: \"string\", value: \"add to list\"}\n },\n children: [\n {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-vh\"}\n },\n children: [\n {type: \"text\", text: \"add list item\"}\n ]\n }\n ]\n }\n // end of button\n ]\n });\n\n // Create items in a loop\n do {\n var startPos = this.parser.pos;\n this.parser.pos = this.matchRegExp.lastIndex;\n var parseResults = this.parser.wiki.parseText(\n \"text/vnd.tiddlywiki\",\n this.parser.source.substring(startPos + 4, this.parser.pos),\n {parseAsInline: true});\n\n // Use the listitem body as a label for the checkbox to get better accessibility\n var itembody = {\n type: \"element\",\n tag: \"label\",\n attributes: {\n for: {type: \"string\", value: match.index}\n },\n children: parseResults.tree\n };\n\n var checkbox = {\n type: \"element\",\n tag: \"input\",\n attributes: {\n type: {type: \"string\", value: \"checkbox\"},\n pos: {type: \"string\", value: match.index},\n id: {type: \"string\", value: match.index}\n }\n };\n if (match[1] === \"x\" || match[1] === \"X\") {\n checkbox.attributes.checked = {type: \"boolean\", value: true};\n }\n\n // Make a button to delete the item\n var removelabel = {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-vh\"}\n },\n children: [\n {type: \"text\", text: \"delete list item\"}\n ]\n };\n\n var removebutton = {\n type: \"element\",\n tag: \"button\",\n attributes: {\n class: {type: \"string\", value: \"tc-btn-invisible tc-btn-mini checklist-remove\"},\n title: {type: \"string\", value: \"delete\"}\n },\n children: [\n removelabel\n ]\n };\n\n // add the item to the list\n listItems.push({\n type: \"element\",\n tag: \"li\",\n children: [\n checkbox,\n removebutton,\n itembody\n ]\n });\n\n match = this.matchRegExp.exec(this.parser.source);\n } while (match != null && match.index == 1 + this.parser.pos);\n\n if (this.shouldShowClearAll()) {\n // show the clear-all button\n var clearallbutton = {\n type: \"element\",\n tag: \"button\",\n attributes: {\n class: {type: \"string\", value: \"checklist-clearall\"}\n },\n children: [\n {\n type: \"element\",\n tag: \"span\",\n attributes: {\n class: {type: \"string\", value: \"checklist-clearall-label\"}\n },\n children: [\n {type: \"text\", text: \"Clear all\"}\n ]\n }\n ]\n };\n\n listItems.push({\n type: \"element\",\n tag: \"li\",\n children: [\n clearallbutton\n ]\n });\n }\n\n return [{\n type: \"checklist\",\n attributes: {\n listStartPos: {type: \"string\", value: listStartPos},\n listStopPos: {type: \"string\", value: this.parser.pos}\n },\n children: listItems\n }];\n};\n\n})();\n", "title": "$:/plugins/tgrosinger/tw5-checklist/checkbox-wikirule.js", "type": "application/javascript", "module-type": "wikirule" }, "$:/plugins/tgrosinger/tw5-checklist/checklist.js": { "text": "/*\\\ntitle: $:/plugins/tgrosinger/tw5-checklist/checklist.js\ntype: application/javascript\nmodule-type: widget\n\\*/\n\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckListWidget = function(parseTreeNode,options) {\n this.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckListWidget.prototype.render = function(parent,nextSibling) {\n this.tiddlerTitle = this.getVariable(\"currentTiddler\");\n this.startPos = parseInt(this.parseTreeNode.attributes.listStartPos.value);\n this.stopPos = parseInt(this.parseTreeNode.attributes.listStopPos.value);\n\n this.parentDomNode = parent;\n this.nextSibling = nextSibling;\n this.computeAttributes();\n this.execute();\n};\n\n/*\nRetrieve the configuration state indicating if items should be re-arranged\n*/\nCheckListWidget.prototype.shouldMoveChecked = function() {\n var configWidgetTitle = \"$:/plugins/tgrosinger/tw5-checklist/Configuration\";\n var configWidgetFields = $tw.wiki.getTiddler(configWidgetTitle).fields;\n\n var moveChecked = configWidgetFields[\"move-checked\"] || \"true\";\n return (moveChecked === \"true\");\n}\n\n/*\nCompute the internal state of the widget\n*/\nCheckListWidget.prototype.execute = function() {\n var domNode = this.document.createElement(\"ul\");\n domNode.className = \"checklist\";\n\n this.makeChildWidgets();\n this.renderChildren(domNode);\n\n /* add event listeners */\n $tw.utils.each(domNode.childNodes, function(childNode) {\n if (childNode.childNodes[0].className === \"checklist-clearall\") {\n // ClearAllChecks, do not use checkbox listener\n $tw.utils.addEventListeners(childNode.childNodes[0],\n [{name: \"click\", handlerObject: this,\n handlerMethod: \"handleClearChecksEvent\"}]);\n } else if (childNode.childNodes[1].className === \"checklist-newitem\") {\n // NewListItem, do not use checkbox listener\n $tw.utils.addEventListeners(childNode.childNodes[1], [\n {name: \"blur\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"},\n {name: \"keyup\", handlerObject: this, handlerMethod: \"handleBlurNewItemEvent\"}\n ]);\n // If this is a normal checklist item …\n } else {\n if (childNode.childNodes[0].checked) {\n $tw.utils.addEventListeners(childNode,\n [{name: \"change\", handlerObject: this, handlerMethod: \"handleUncheckEvent\"}]);\n } else {\n $tw.utils.addEventListeners(childNode,\n [{name: \"change\", handlerObject: this, handlerMethod: \"handleCheckEvent\"}]);\n }\n $tw.utils.addEventListeners(childNode.childNodes[1], [\n {name: \"click\", handlerObject: this, handlerMethod: \"handleRemoveEvent\"}\n ]);\n }\n }.bind(this));\n\n this.parentDomNode.insertBefore(domNode, this.nextSibling);\n};\n\n// When the user clicks the clear-all button, remove all checks\nCheckListWidget.prototype.handleClearChecksEvent = function(event) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n var bodyLen = bodyList.length;\n\n for (var i = 0; i < bodyLen; i++) {\n bodyList[i] = bodyList[i].replace(\"[x]\", \"[ ]\");\n bodyList[i] = bodyList[i].replace(\"[X]\", \"[ ]\");\n }\n\n // Save the updated body\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n// On blur or enter, save the new list item\nCheckListWidget.prototype.handleBlurNewItemEvent = function(event) {\n if (event.type == \"keyup\" && event.keyCode != 13) {\n // This function receives both blur and keyup events.\n // Only run on blur or enter key\n return;\n }\n\n if (event.target.value.trim() === \"\") {\n // Don't save an empty list item\n return;\n }\n\n var checklist = event.target.parentNode.parentNode;\n var firstItem = checklist.childNodes[1];\n var pos = firstItem.childNodes[0].attributes.pos.nodeValue;\n\n var newItem = \"[ ] \" + event.target.value.trim() + \"\\n\";\n event.target.value = \"\";\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n tiddlerBody = tiddlerBody.substring(0, pos) + newItem + tiddlerBody.substring(pos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, tiddlerBody);\n};\n\nCheckListWidget.prototype.handleCheckEvent = function(event) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n // Find the index of the first checked item\n var i = 1;\n var firstChecked = domItem.nextSibling;\n while (firstChecked !== null && !firstChecked.childNodes[0].checked) {\n i++;\n firstChecked = firstChecked.nextSibling;\n }\n\n // Update the tiddler data\n bodyList[itemIndex] = bodyList[itemIndex].replace(\"[ ]\", \"[x]\");\n\n // Rearrange items (if configured to do so)\n var shouldMove = this.shouldMoveChecked();\n if (shouldMove) {\n bodyList.splice(itemIndex + i, 0, bodyList[itemIndex]);\n bodyList.splice(itemIndex, 1);\n }\n\n // Save the updated body\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n if (shouldMove) {\n // Update the DOM (pre-refresh for animations)\n domList.insertBefore(domItem, firstChecked);\n }\n};\n\nCheckListWidget.prototype.handleUncheckEvent = function(event) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n // Find the index of the first checked item\n var i = 0;\n var firstChecked = domList.firstChild.nextSibling; // Skip the newItem input\n while (firstChecked !== null) {\n if (firstChecked.childNodes[0].checked || firstChecked == domItem) {\n break;\n }\n i++;\n firstChecked = firstChecked.nextSibling;\n }\n\n // Update the tiddler data\n bodyList[itemIndex] = bodyList[itemIndex].replace(\"[x]\", \"[ ]\");\n\n // Rearrange items (if configured to do so)\n var shouldMove = this.shouldMoveChecked();\n if (shouldMove) {\n var bodyItem = bodyList[itemIndex];\n bodyList.splice(itemIndex, 1);\n bodyList.splice(i, 0, bodyItem);\n }\n\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n\n if (shouldMove) {\n // Update the DOM (pre-refresh for animations)\n domList.insertBefore(domItem, firstChecked);\n }\n};\n\nCheckListWidget.prototype.handleRemoveEvent = function (event) {\n var domItem = event.target.parentNode;\n var domList = domItem.parentNode;\n var itemIndex = [].indexOf.call(domList.childNodes, domItem) - 1;\n\n var tiddlerBody = $tw.wiki.getTiddler(this.tiddlerTitle).fields.text;\n var bodyList = tiddlerBody.substring(this.startPos, this.stopPos).split(\"\\n\");\n\n // Update the tiddler data\n bodyList.splice(itemIndex, 1);\n var newBody = tiddlerBody.substring(0, this.startPos) +\n bodyList.join(\"\\n\") +\n tiddlerBody.substring(this.stopPos);\n $tw.wiki.setText(this.tiddlerTitle, \"text\", null, newBody);\n};\n\n/*\nSelectively refreshes the widget if needed.\nReturns true if the widget or any of its children needed re-rendering\n*/\nCheckListWidget.prototype.refresh = function(changedTiddlers) {\n var changedAttributes = this.computeAttributes();\n // Refresh if an attribute has changed, or the type associated with\n // the target tiddler has changed\n if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index ||\n (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n this.refreshSelf();\n return true;\n } else {\n return this.refreshChildren(changedTiddlers);\n }\n};\n\nexports.checklist = CheckListWidget;\n\n})();\n", "title": "$:/plugins/tgrosinger/tw5-checklist/checklist.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/tgrosinger/tw5-checklist/Configuration": { "title": "$:/plugins/tgrosinger/tw5-checklist/Configuration", "move-checked": "true", "strike-checked": "true", "show-clearall": "true", "text": "Please see the [[homepage|https://grosinger.net/tw5-checklist/]] for more information on the options.\n\nSave and reload the wiki to activate changes.\n\n<table>\n <tr>\n <th align=\"left\">Rearrange checked items:</th>\n <td>\n <$checkbox field=\"move-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n </td>\n </tr>\n <tr>\n <th align=\"left\" class=\"rerendering-required\">Strike checked items: </th>\n <td>\n <$checkbox field=\"strike-checked\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n </td>\n </tr>\n <tr>\n <th align=\"left\" class=\"rerendering-required\">Show Clear-All: </th>\n <td>\n <$checkbox field=\"show-clearall\" tiddler=\"$:/plugins/tgrosinger/tw5-checklist/Configuration\"\n checked=\"true\" unchecked=\"false\" default=\"true\"></$checkbox>\n </td>\n </tr>\n</table>\n\n* make a change in a list to see the effect (check/uncheck or add/delete an item).\n\n<style>\n.rerendering-required:after {\n content: ' *';\n color: #e32;\n}\n</style>\n" }, "$:/plugins/tgrosinger/tw5-checklist/license": { "title": "$:/plugins/tgrosinger/tw5-checklist/license", "text": "The MIT License (MIT)\n\nCopyright (c) 2015 Tony Grosinger\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\n" }, "$:/plugins/tgrosinger/tw5-checklist/readme": { "title": "$:/plugins/tgrosinger/tw5-checklist/readme", "text": "This plugin provides a simple checklist which does not create a new tiddler for\neach task. Features include:\n\n[x] Check and uncheck items\n[x] Simple, no configuration necessary\n[x] Easily editable, and easy to read in edit view\n[x] Add new list items without using edit mode\n[x] Move completed items to bottom of list\n\n[[Source code|https://github.com/tgrosinger/tw5-checklist]]\n" }, "$:/plugins/tgrosinger/tw5-checklist/stylesheet": { "title": "$:/plugins/tgrosinger/tw5-checklist/stylesheet", "tags": "$:/tags/Stylesheet", "text": "ul.checklist {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\nul.checklist > li {\n position: relative;\n width: calc(100% - 1em);\n}\n\n\n/* input form */\n\n.checklist-newitem-icon::before {\n content: \"✎\";\n}\n\ninput.checklist-newitem {\n margin-left: 1em;\n margin-bottom: 0.75em;\n padding: 2px;\n border: none;\n border-bottom: solid 2px <<colour sidebar-tab-background>>;\n transition: border 0.3s;\n width: calc(100% - 2em - 20px);\n}\n\ninput:focus.checklist-newitem {\n border-bottom: solid 2px <<colour notification-border>>;\n}\n\n\n/* placeholder text */\n\n::-webkit-input-placeholder { \n color: #444;\n font-style: italic;\n}\n::-moz-placeholder { \n color: #444;\n font-style: italic;\n}\n:-ms-input-placeholder { \n color: #444;\n font-style: italic;\n}\n:-moz-placeholder { \n color: #444;\n font-style: italic;\n}\n::placeholder {\n color: #444;\n font-style: italic;\n}\n\n\n/* list items content */\n\n.checklist li input[type=\"checkbox\"] {\n vertical-align: top;\n margin-top: 4px;\n}\n\n.checklist label {\n display: inline-block;\n position: relative;\n margin-left: -1em;\n padding-left: 0.4em;\n left: 1.4em;\n width: calc(100% - 2em - 20px);\n}\n\n.checklist > li:hover label, \n.checklist input[type=\"checkbox\"]:hover + button + label, \n.checklist input[type=\"checkbox\"]:focus + button + label {\n background-color: <<colour sidebar-tab-background>>;\n}\n\ninput:checked + .checklist-remove + label {\n opacity: 0.5;\n}\n\n.checklist li input + .checklist-remove:hover + label,\n.checklist li input + .checklist-remove:focus + label {\n background-color: rgba(255,0,0,0.25);\n opacity: 0.8;\n border-radius: 5px;\n}\n\n/* strike checked items only if set in user configuration */\n<$list filter=\"[[$:/plugins/tgrosinger/tw5-checklist/Configuration]field:strike-checked[true]]\">\ninput:checked + .checklist-remove + label {\n text-decoration: line-through;\n}\n</$list>\n\n\n/* buttons */\n\nbutton.checklist-add {\n position: relative;\n left: 0.75em;\n width: 18px;\n height: 18px;\n border-radius: 5px;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%221%22%20height%3D%227%22%20x%3D%225%22%20y%3D%222%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3Crect%20width%3D%227%22%20height%3D%221%22%20x%3D%222%22%20y%3D%225%22%20fill%3D%22%239B9B9B%22%2F%3E%0A%3C%2Fsvg%3E');\n background-size: 100%;\n}\n\nbutton.checklist-add:hover, button.checklist-add:focus {\n background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-remove {\n display: block;\n position: absolute;\n top: 2px;\n right: -6px;\n width: 18px;\n height: 18px;\n border-radius: 5px;\n color: <<colour sidebar-muted-foreground>>;\nbackground-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2211%22%20height%3D%2211%22%3E%0A%3Crect%20width%3D%225%22%20height%3D%221%22%20x%3D%223%22%20y%3D%225%22%20fill%3D%22%23444%22%2F%3E%0A%3C%2Fsvg%3E');\n background-size: 100%;\n/* background-color: <<colour sidebar-tab-background-selected>>; */\n border: 1px solid <<colour sidebar-tab-background>>;\n}\n\nul.checklist > li:hover button.checklist-remove {\n color: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton.checklist-remove:hover,\nbutton.checklist-remove:focus {\n color: <<colour dirty-indicator>>;\n background-color: <<colour sidebar-tab-background>>;\n}\n\nbutton.checklist-clearall {\n margin-top: 0.75em;\n}\n\nbutton.checklist-clearall::before {\n content: \"↻ \";\n}\n\n\n/* visualliy hidden, accessible for screen reader */\n\n.checklist-vh {\n position: absolute !important;\n clip: rect(1px, 1px, 1px, 1px);\n padding:0 !important;\n border:0 !important;\n height: 1px !important;\n width: 1px !important;\n overflow: hidden;\n}\n" }, "$:/plugins/tgrosinger/tw5-checklist/Usage": { "title": "$:/plugins/tgrosinger/tw5-checklist/Usage", "text": "! Creating a New Checklist\n\nThis plugin provides a wikitext rule for use in normal wikitext tiddlers. A\nchecklist is defined as two brackets with either a <kbd>space</kbd> or an\n<kbd>x</kbd> between them.\n\n```\n! My Shopping List\n\n[ ] Milk\n[ ] Eggs\n[x] Bread\n\n```\n\n!! Multiple Checklists\n\nThere is no need to declare an instance of a checklist, and you can place\nchecklist items throughout a tiddler. Each set of consecutive (single new-line\ndelimited) checklist items will be displayed as a single checklist.\n\n```\n! My first list\n\n[ ] Item 1\n[x] Item 2\n\n! My second list\n\n[x] Item 3\n[x] Item 4\n\n```\n\n!! List Item Formatting\n\nList items support any inline formatting rules. This means you can create links,\nbold, or anything else found on the\n[[Formatting in WikiText|http://tiddlywiki.com/static/Formatting%2520in%2520WikiText.html]] guide.\n\n! Configuration\n\nPlease see [[the configuration|$:/plugins/tgrosinger/tw5-checklist/Configuration]]\npage to learn about and adjust configuration options.\n" } } }
{ "tiddlers": { "$:/plugins/tiddlywiki/blog/docs": { "title": "$:/plugins/tiddlywiki/blog/docs", "text": "Until there's more documentation, see an example of the use of this plugin here:\n\n* Blog: http://jermolene-blog.github.io/\n* Repository: https://github.com/Jermolene-blog/blog\n" }, "$:/plugins/tiddlywiki/blog/readme": { "title": "$:/plugins/tiddlywiki/blog/readme", "text": "This plugin contains tools to help publish blogs:\n\n* Templates and tools for building static HTML pages and posts\n" }, "$:/plugins/tiddlywiki/blog/templates/html-page/page": { "title": "$:/plugins/tiddlywiki/blog/templates/html-page/page", "text": "\\define tv-wikilink-template() posts/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$transclude field=\"caption\"><$view field=\"title\"/></$transclude>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/plugins/tiddlywiki/blog/templates/tiddler\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`\n" }, "$:/plugins/tiddlywiki/blog/templates/html-page/post": { "title": "$:/plugins/tiddlywiki/blog/templates/html-page/post", "text": "\\define tv-wikilink-template() /$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"../favicon.ico\">\n<link rel=\"stylesheet\" href=\"../static.css\">\n<title>`<$transclude field=\"caption\"><$view field=\"title\"/></$transclude>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$importvariables filter=\"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\">\n<$view tiddler=\"$:/plugins/tiddlywiki/blog/templates/tiddler\" format=\"htmlwikified\"/>\n<$view tiddler=\"$:/plugins/tiddlywiki/blog/templates/menu\" format=\"htmlwikified\"/>\n</$importvariables>`\n</section>\n</body>\n</html>\n`\n" }, "$:/plugins/tiddlywiki/blog/templates/menu": { "title": "$:/plugins/tiddlywiki/blog/templates/menu", "text": "<div class=\"tc-blog-menu\">\n\n<div class=\"tc-blog-menu-item\">\n\n<a href=\"../index.html\">\n\n{{$:/core/images/home-button}}\n\n</a>\n\n</div>\n\n</div>\n" }, "$:/plugins/tiddlywiki/blog/templates/tiddler": { "title": "$:/plugins/tiddlywiki/blog/templates/tiddler", "text": "<div class=\"tc-tiddler-frame tc-tiddler-view-frame\">\n\n<div class=\"tc-tiddler-title\">\n\n<div class=\"tc-titlebar\">\n\n<h2 class=\"tc-title\">\n\n<$transclude field=\"caption\" mode=\"inline\">\n\n<$view field=\"title\"/>\n\n</$transclude>\n\n</h2>\n\n</div>\n\n</div>\n\n<div class=\"tc-subtitle\">\n\n<$view field=\"modified\" format=\"date\" template=\"DDth MMM YYYY\"/>\n\n</div>\n\n<div class=\"tc-tiddler-body\">\n\n<$transclude/>\n\n</div>\n\n</div>\n" } } }
{ "tiddlers": { "$:/config/Comments/EnableFilter": { "title": "$:/config/Comments/EnableFilter", "text": "[all[current]!is[system]]\n" }, "$:/plugins/tiddlywiki/comments/above-story": { "title": "$:/plugins/tiddlywiki/comments/above-story", "tags": "$:/tags/AboveStory", "text": "<$reveal state=\"$:/config/Comments/EnableWikiComments\" type=\"match\" text=\"yes\" default=\"no\">\n<$tiddler tiddler=\"$:/SiteTitle\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/comments/comments-template\" mode=\"inline\"/>\n</$tiddler>\n</$reveal>\n" }, "$:/plugins/tiddlywiki/comments/add-comment-button-actions": { "title": "$:/plugins/tiddlywiki/comments/add-comment-button-actions", "text": "<$set name=\"username\" value={{$:/status/UserName}} emptyValue=\"(anonymous)\">\n<$set name=\"target\" filter=\"[<currentTiddler>]\">\n<$action-createtiddler $basetitle={{{ [[Comment by ']addsuffix<username>addsuffix[' on ']addsuffix<currentTiddler>addsuffix[']] }}} role=\"comment\" list=<<target>> text=\"\" edit-mode=\"yes\"/>\n</$set>\n</$set>\n" }, "$:/plugins/tiddlywiki/comments/add-comment-button": { "title": "$:/plugins/tiddlywiki/comments/add-comment-button", "text": "<$reveal state=\"$:/status/IsReadOnly\" type=\"match\" text=\"no\" default=\"no\" tag=\"div\" class=\"tc-comment-button\">\n<$button class=\"tc-btn-invisible\" actions={{$:/plugins/tiddlywiki/comments/add-comment-button-actions}}>\nadd comment {{$:/core/images/add-comment}}\n</$button>\n</$reveal>\n" }, "$:/plugins/tiddlywiki/comments/comments-template": { "title": "$:/plugins/tiddlywiki/comments/comments-template", "text": "<div class=\"tc-comments\">\n<ol class=\"tc-comment-list\">\n<$list filter=\"[all[tiddlers+shadows]role[comment]contains<currentTiddler>sort[created]!has[draft.of]]\">\n<li>\n<div class=\"tc-comment-entry\">\n<div class=\"tc-comment-entry-heading\">\n<$link>{{!!creator}} at <$view field=\"modified\" format=\"date\" template=\"0hh:0mm:0ss DDD DDth MMM YYYY\"/></$link>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/CommentToolbarButton]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$list>\n</div>\n<div class=\"tc-comment-entry-body\">\n<$reveal type=\"match\" state=\"!!edit-mode\" text=\"yes\">\n<$edit-text tiddler=<<currentTiddler>> tag=\"textarea\" focus=\"true\"/>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"!!edit-mode\" text=\"yes\">\n<$transclude tiddler=<<currentTiddler>> mode=\"block\"/>\n<$transclude tiddler=\"$:/plugins/tiddlywiki/comments/add-comment-button\" mode=\"inline\"/>\n</$reveal>\n</div>\n</div>\n<$transclude tiddler=\"$:/plugins/tiddlywiki/comments/comments-template\" mode=\"inline\"/>\n</li>\n</$list>\n</ol>\n</div>\n" }, "$:/plugins/tiddlywiki/comments/config": { "title": "$:/plugins/tiddlywiki/comments/config", "text": "\\define select(description,filter)\n<$button>\n<$action-setfield $tiddler=\"$:/config/Comments/EnableFilter\" $value=<<__filter__>>/>\n$description$\n</$button>\n\\end\n\n! Wiki Comments\n\n<$checkbox tiddler=\"$:/config/Comments/EnableWikiComments\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Comments/EnableWikiComments\">Allow wiki-level comments as well as tiddler comments</$link> </$checkbox>\n\n! Tiddler Comments\n\nThis filter expression determines which tiddlers will have commenting enabled:\n\n<$edit-text tiddler=\"$:/config/Comments/EnableFilter\" tag=\"input\"/>\n\nOr you can choose a preselected filter:\n\n* <<select \"All tiddlers except system tiddlers\" \"[all[current]!is[system]]\">>\n* <<select \"Only tiddlers tagged 'commentable'\" \"[all[current]tag[commentable]]\">>\n* <<select \"Disable all commenting\" \"\">>\n" }, "$:/plugins/tiddlywiki/comments/filter-all-comments": { "title": "$:/plugins/tiddlywiki/comments/filter-all-comments", "tags": "$:/tags/Filter", "filter": "[role[comment]!sort[modified]]", "description": "All comments", "text": "" }, "$:/plugins/tiddlywiki/comments/footer-view-template-segment": { "title": "$:/plugins/tiddlywiki/comments/footer-view-template-segment", "tags": "$:/tags/ViewTemplate", "list-after": "$:/core/ui/ViewTemplate/body", "text": "<$list filter={{$:/config/Comments/EnableFilter}} variable=\"ignore\">\n<div class=\"tc-comments-segment\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/comments/add-comment-button\" mode=\"inline\"/>\n<$transclude tiddler=\"$:/plugins/tiddlywiki/comments/comments-template\" mode=\"inline\"/>\n</div>\n</$list>" }, "$:/plugins/tiddlywiki/comments/header-view-template-segment": { "title": "$:/plugins/tiddlywiki/comments/header-view-template-segment", "tags": "$:/tags/ViewTemplate", "list-before": "$:/core/ui/ViewTemplate/body", "text": "<$list filter=\"[all[current]role[comment]]\" variable=\"ignore\">\n<div class=\"tc-is-comment-header\">\nThis tiddler is a comment on:\n<ul>\n<$list filter=\"[list<currentTiddler>sort[title]]\">\n<li>\n<$link to=<<currentTiddler>>><$text text=<<currentTiddler>>/></$link>\n</li>\n</$list>\n</ul>\n</div>\n</$list>\n" }, "$:/plugins/tiddlywiki/comments/readme": { "title": "$:/plugins/tiddlywiki/comments/readme", "text": "This plugin provides a simple means for adding threaded comments to tiddlers.\n\n* Click the \"add comment\" button to make a new comment, and then click the \"save\" button to save it\n* You can comment on a tiddler itself, or add a comment to an existing comment\n* The sidebar tab ''Comments'' lists a timeline of all comments\n* Comments are attributed to the username stored in the system tiddler [[$:/status/UserName]]\n* By default, comments are available on all non-system tiddlers. The ''config'' tab lets you customise which tiddlers can accept comments by specifying a filter extension\n* The buttons for adding and editing comments are only available if the system tiddler [[$:/status/IsReadOnly]] is not set to `yes`\n* Use the \"All comments\" option in the $:/AdvancedSearch ''Filter'' tab to see or export all comments\n\n!! Data Model\n\nThe data model employed by the comments plugin is very simple:\n\n* Comment tiddlers are identified by the `role` field being set to `comment`\n* The `list` field of comment tiddlers lists the tiddlers to which this comment applies\n** It is thus possible for a comment to be applied to multiple tiddlers at once\n** The links between comments can be preserved when renaming them by using the relink checkbox in the edit template\n* The `edit-mode` field of comment tiddlers is set to `yes` to display it in edit mode, or `no` to display it in view mode\n* The `saved-text` field is updated when switching to edit mode so that it can be restored if the user cancels\n\n" }, "$:/plugins/tiddlywiki/comments/sidebar-segment": { "title": "$:/plugins/tiddlywiki/comments/sidebar-segment", "tags": "$:/tags/SideBarSegment", "list-after": "$:/core/ui/SideBarSegments/site-subtitle", "text": "<$reveal state=\"$:/config/Comments/EnableWikiComments\" type=\"match\" text=\"yes\" default=\"no\">\n<$tiddler tiddler=\"$:/SiteTitle\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/comments/add-comment-button\" mode=\"inline\"/>\n</$tiddler>\n</$reveal>\n" }, "$:/plugins/tiddlywiki/comments/sidebar": { "title": "$:/plugins/tiddlywiki/comments/sidebar", "tags": "$:/tags/SideBar", "caption": "Comments", "text": "<div class=\"tc-timeline\">\n<$list filter=\"[all[tiddlers+shadows]role[comment]has[modified]!sort[modified]eachday[modified]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"modified\" format=\"date\" template=\"DDth MMM YYYY\"/>\n<$list filter=\"[all[tiddlers+shadows]role[comment]sameday:modified{!!modified}!sort[modified]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link>Comment by '<$view field=\"modifier\">(anonymous)</$view>'</$link> on\n<$list filter=\"[list<currentTiddler>sort[title]]\">\n<$link to=<<currentTiddler>>><$text text=<<currentTiddler>>/></$link>\n</$list>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n" }, "$:/plugins/tiddlywiki/comments/styles": { "title": "$:/plugins/tiddlywiki/comments/styles", "tags": "[[$:/tags/Stylesheet]]", "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-is-comment-header {\n\tpadding: 0.25em;\n\tborder: 2px solid #c1e1ea;\n\tborder-radius: 4px;\n\tbackground: #f1fcff;\n}\n\n.tc-comments-segment {\n\tborder-top: 2px solid #d7eef4;\n}\n\n.tc-comment-button button {\n\twidth: 100%;\n\ttext-align: right;\n}\n\n.tc-sidebar-scrollable .tc-comment-button button {\n\twidth: auto;\n\ttext-align: right;\n}\n\n.tc-comment-button button svg {\n\tfill: #26cb56;\n\theight: 2em;\n\twidth: 2em;\n}\n\n.tc-comments {\n}\n\n.tc-comment-list {\n\tlist-style: none;\n padding-left: 0;\n}\n\n.tc-comment-list .tc-comments {\n\tpadding-left: 1em;\n}\n\n.tc-comment-entry {\n\tposition: relative;\n\tborder: 2px solid #c1e1ea;\n\tborder-radius: 4px;\n\tmargin: 0.5em 0 0 0;\n\tbackground: #f1fcff;\n}\n\n.tc-comment-entry-heading {\n\tfont-size: 0.7em;\n\tfont-weight: bold;\n\ttext-transform: uppercase;\n\tbackground: #d7eef4;\n\tcolor: #5B6D80;\n\tpadding: 0 0.5em;\n}\n\n.tc-comment-entry-body {\n\tfont-size: 0.8em;\n\tpadding: 0 0.5em;\n}\n\n.tc-comment-entry-body textarea {\n\tfont-size: 1.1em;\n\twidth: 100%\n}\n" }, "$:/tags/CommentToolbarButton": { "title": "$:/tags/CommentToolbarButton", "list": "[[$:/plugins/tiddlywiki/comments/toolbar-button-cancel]] [[$:/plugins/tiddlywiki/comments/toolbar-button-delete]] [[$:/plugins/tiddlywiki/comments/toolbar-button-save]] [[$:/plugins/tiddlywiki/comments/toolbar-button-edit]]" }, "$:/plugins/tiddlywiki/comments/toolbar-button-cancel": { "title": "$:/plugins/tiddlywiki/comments/toolbar-button-cancel", "tags": "$:/tags/CommentToolbarButton", "text": "<$reveal state=\"$:/status/IsReadOnly\" type=\"match\" text=\"no\" default=\"no\" tag=\"span\">\n<$reveal type=\"match\" state=\"!!edit-mode\" text=\"yes\">\n<$button>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"edit-mode\" $value=\"no\"/>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"text\" $value={{!!saved-text}}/>\ncancel\n</$button>\n</$reveal>\n</$reveal>\n" }, "$:/plugins/tiddlywiki/comments/toolbar-button-delete": { "title": "$:/plugins/tiddlywiki/comments/toolbar-button-delete", "tags": "$:/tags/CommentToolbarButton", "text": "<$reveal state=\"$:/status/IsReadOnly\" type=\"match\" text=\"no\" default=\"no\" tag=\"span\">\n<$reveal type=\"match\" state=\"!!edit-mode\" text=\"yes\">\n<$button>\n<$action-deletetiddler $tiddler=<<currentTiddler>>/>\ndelete\n</$button>\n</$reveal>\n</$reveal>\n" }, "$:/plugins/tiddlywiki/comments/toolbar-button-edit": { "title": "$:/plugins/tiddlywiki/comments/toolbar-button-edit", "tags": "$:/tags/CommentToolbarButton", "text": "<$reveal state=\"$:/status/IsReadOnly\" type=\"match\" text=\"no\" default=\"no\" tag=\"span\">\n<$reveal type=\"nomatch\" state=\"!!edit-mode\" text=\"yes\">\n<$button>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"edit-mode\" $value=\"yes\"/>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"saved-text\" $value={{!!text}}/>\nedit\n</$button>\n</$reveal>\n</$reveal>\n" }, "$:/plugins/tiddlywiki/comments/toolbar-button-save": { "title": "$:/plugins/tiddlywiki/comments/toolbar-button-save", "tags": "$:/tags/CommentToolbarButton", "text": "<$reveal state=\"$:/status/IsReadOnly\" type=\"match\" text=\"no\" default=\"no\" tag=\"span\">\n<$reveal type=\"match\" state=\"!!edit-mode\" text=\"yes\">\n<$button>\n<$action-setfield $tiddler=<<currentTiddler>> $field=\"edit-mode\" $value=\"no\"/>\nsave\n</$button>\n</$reveal>\n</$reveal>\n" } } }
<div class="tc-timeline"> <$list filter="[all[tiddlers+shadows]role[comment]has[modified]!sort[modified]eachday[modified]]"> <div class="tc-menu-list-item"> <$view field="modified" format="date" template="DDth MMM YYYY"/> <$list filter="[all[tiddlers+shadows]role[comment]sameday:modified{!!modified}!sort[modified]]"> <div class="tc-menu-list-subitem"> <$link>Comment by '<$view field="modifier">(anonymous)</$view>'</$link> on <$list filter="[list<currentTiddler>sort[title]]"> <$link to=<<currentTiddler>>><$text text=<<currentTiddler>>/></$link> </$list> </div> </$list> </div> </$list> </div> <i class="icon icon-apps" alt="Paramètres" title="Paramètres"></i>
{ "tiddlers": { "$:/plugins/tiddlywiki/dynaview/above-story": { "title": "$:/plugins/tiddlywiki/dynaview/above-story", "tags": "$:/tags/AboveStory-disabled", "text": "<!-- Remove the \"-disabled\" part of the tag to cause the currently selected example to appear at the top of the story river. Intended to make it easier to make clean screencaps -->\n<div style=\"height:100em;\">\n<$transclude tiddler={{$:/state/tab--1915807570}} mode=\"block\"/>\n</div>\n" }, "$:/config/DynaView/ViewportDimensions": { "title": "$:/config/DynaView/ViewportDimensions", "text": "no" }, "$:/config/DynaView/UpdateAddressBar": { "title": "$:/config/DynaView/UpdateAddressBar", "text": "no" }, "$:/plugins/tiddlywiki/dynaview/config": { "title": "$:/plugins/tiddlywiki/dynaview/config", "text": "<$checkbox tiddler=\"$:/config/DynaView/ViewportDimensions\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Enable dynamic saving of the viewport [[width|$:/state/DynaView/ViewportDimensions/Width]] and [[height|$:/state/DynaView/ViewportDimensions/Height]]</$checkbox>\n\n<$checkbox tiddler=\"$:/config/DynaView/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Update address bar while scrolling</$checkbox>\n\n" }, "$:/plugins/tiddlywiki/dynaview/docs": { "title": "$:/plugins/tiddlywiki/dynaview/docs", "text": "! Documentation\n\nThe components of this plugin include:\n\n* A background task that:\n** performs specified actions when elements are scrolled into view\n** updates certain base classes on the `document.body` according to the current zoom level\n** if enabled in the DynaView config panel - dynamically stores the viewport dimensions in $:/state/viewport/width and $:/state/viewport/height\n* Pre-configured CSS classes to simplify using those base classes\n* Usage examples\n\n! Scroll Features\n\n!! Set tiddler field when visible\n\nThe background task detects when elements with the class `tc-dynaview-set-tiddler-when-visible` scroll into view. The first time that they do, the background task assigns the value in the attribute `data-dynaview-set-value` to the tiddler whose title is in the attribute `data-dynaview-set-tiddler`. This assignment can be tied to a reveal widget to cause content to be displayed when it becomes visible. If the class `tc-dynaview-expand-viewport` is set then the viewport is expanded so that the processing occurs when elements move near the viewport.\n\n!! Unset tiddler field when set visible before but then scrolled out of view\n\nThe background task detects when elements with the class `tc-dynaview-set-tiddler-when-visible` scroll out view after they have scrolled into view. When scrolling out of view after they have scrolled in, the background task assigns the value in the attribute `data-dynaview-unset-value` to the tiddler whose title is in the attribute `data-dynaview-unset-tiddler`. This assignment can be tied to a reveal widget to cause content to be hidden when it becomes invisible. If the class `tc-dynaview-expand-viewport` is set then the viewport is expanded so that the processing occurs when elements move near the viewport.\n\n!! Update address bar when scrolling\n\nThe background task detects the tiddler at the top of the viewport and sets the address bar location hash to the title of that tiddler.\n\n! Viewport Size Features\n\n!! Resize Tracking\n\nSome widgets require re-rendering or refreshing if the size of the viewport changes. This can be accomplished using \"resize counting\" in two steps:\n\n* Ensure that a DOM element with the class `tc-dynaview-request-refresh-on-resize` is present in the DOM to enable resize counting\n* Have the widget check for changes to the tiddler $:/state/DynaView/ViewportDimensions/ResizeCount to detect viewport resizes\n\n!! Viewport Size Tracking\n\nThe background task can optionally dynamically update a pair of state tiddlers with the dimensions of the browser viewport.\n\n* Set the configuration tiddler $:/config/DynaView/ViewportDimensions to the text \"yes\" to enable this feature\n* The viewport dimensions can be found in $:/state/DynaView/ViewportDimensions/Width and $:/state/DynaView/ViewportDimensions/Height\n\n! Zoom Features\n\n!! Document Body Zoom Classes\n\nThe background task sets the following classes on `document.body` according to the current zoom level.\n\n|!Class |!Description |\n|`tc-dynaview-zoom-factor-1` |Set when the zoom level is less than 2.00 |\n|`tc-dynaview-zoom-factor-2` |Set when the zoom level is greater than 2.00 and less than 3.00 |\n|`tc-dynaview-zoom-factor-3` |Set when the zoom level is greater than 3.00 and less than 4.00 |\n|`tc-dynaview-zoom-factor-4` |Set when the zoom level is greater than 4.00 |\n|`tc-dynaview-zoom-factor-1-and-above` |Set when the zoom level is greater than or equal to 1.00 |\n|`tc-dynaview-zoom-factor-1a-and-above` |Set when the zoom level is greater than or equal to 1.14 |\n|`tc-dynaview-zoom-factor-1b-and-above` |Set when the zoom level is greater than or equal to 1.33 |\n|`tc-dynaview-zoom-factor-1c-and-above` |Set when the zoom level is greater than or equal to 1.60 |\n|`tc-dynaview-zoom-factor-2-and-above` |Set when the zoom level is greater than or equal to 2.00 |\n|`tc-dynaview-zoom-factor-2a-and-above` |Set when the zoom level is greater than or equal to 2.66 |\n|`tc-dynaview-zoom-factor-3-and-above` |Set when the zoom level is greater than or equal to 3.00 |\n|`tc-dynaview-zoom-factor-4-and-above` |Set when the zoom level is greater than or equal to 4.00 |\n\n!! Pre-configured Classes\n\nThese classes can be used on any element to control its visibility at different zoom levels.\n\n|!Class |!Description |\n|`tc-dynaview-zoom-visible-1-and-above` |Visible when the zoom level is 1.00 or more |\n|`tc-dynaview-zoom-visible-1a-and-above` |Visible when the zoom level is 1.14 or more |\n|`tc-dynaview-zoom-visible-1b-and-above` |Visible when the zoom level is 1.33 or more |\n|`tc-dynaview-zoom-visible-1c-and-above` |Visible when the zoom level is 1.60 or more |\n|`tc-dynaview-zoom-visible-2-and-above` |Visible when the zoom level is 2.00 or more |\n|`tc-dynaview-zoom-visible-2a-and-above` |Visible when the zoom level is 2.66 or more |\n|`tc-dynaview-zoom-visible-3-and-above` |Visible when the zoom level is 3.00 or more |\n|`tc-dynaview-zoom-visible-4-and-above` |Visible when the zoom level is 4.00 or more |\n|`tc-dynaview-zoom-visible-1` |Visible when the zoom level is less than 2.00 |\n|`tc-dynaview-zoom-visible-2` |Visible when the zoom level is greater than or equal to 2.00 and less than 3.00 |\n|`tc-dynaview-zoom-visible-3` |Visible when the zoom level is greater than or equal to 3.00 and less than 4.00 |\n|`tc-dynaview-zoom-visible-4` |Visible when the zoom level is greater than or equal to 4.00 |\n" }, "$:/plugins/tiddlywiki/dynaview/dynaview.js": { "title": "$:/plugins/tiddlywiki/dynaview/dynaview.js", "text": "/*\\\ntitle: $:/plugins/tiddlywiki/dynaview/dynaview.js\ntype: application/javascript\nmodule-type: startup\n\nZoom everything\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"dynaview\";\nexports.platforms = [\"browser\"];\nexports.after = [\"render\"];\nexports.synchronous = true;\n\nvar isWaitingForAnimationFrame = 0, // Bitmask:\n\tANIM_FRAME_CAUSED_BY_LOAD = 1, // Animation frame was requested because of page load\n\tANIM_FRAME_CAUSED_BY_SCROLL = 2, // Animation frame was requested because of page scroll\n\tANIM_FRAME_CAUSED_BY_RESIZE = 4; // Animation frame was requested because of window resize\n\nexports.startup = function() {\n\twindow.addEventListener(\"load\",onLoad,false);\n\twindow.addEventListener(\"scroll\",onScroll,false);\n\twindow.addEventListener(\"resize\",onResize,false);\n\t$tw.hooks.addHook(\"th-page-refreshed\",function() {\n\t\tcheckTopmost();\n\t\tcheckVisibility();\n\t\tsaveViewportDimensions();\n\t});\n};\n\nfunction onLoad(event) {\n\tif(!isWaitingForAnimationFrame) {\n\t\twindow.requestAnimationFrame(worker);\n\t}\n\tisWaitingForAnimationFrame |= ANIM_FRAME_CAUSED_BY_LOAD;\n}\n\nfunction onScroll(event) {\n\tif(!isWaitingForAnimationFrame) {\n\t\twindow.requestAnimationFrame(worker);\n\t}\n\tisWaitingForAnimationFrame |= ANIM_FRAME_CAUSED_BY_SCROLL;\n}\n\nfunction onResize(event) {\n\tif(!isWaitingForAnimationFrame) {\n\t\twindow.requestAnimationFrame(worker);\n\t}\n\tisWaitingForAnimationFrame |= ANIM_FRAME_CAUSED_BY_RESIZE;\n}\n\nfunction worker() {\n\tif(isWaitingForAnimationFrame & (ANIM_FRAME_CAUSED_BY_RESIZE | ANIM_FRAME_CAUSED_BY_LOAD)) {\n\t\tsaveViewportDimensions();\n\t}\n\tsetZoomClasses();\n\tcheckTopmost();\n\tcheckVisibility();\n\tisWaitingForAnimationFrame = 0;\n}\n\nfunction setZoomClasses() {\n\tvar zoomFactor = document.body.scrollWidth / window.innerWidth,\n\t\tclassList = document.body.classList;\n\tclassList.add(\"tc-dynaview\");\n\tclassList.toggle(\"tc-dynaview-zoom-factor-1\",zoomFactor <= 2);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-1-and-above\",zoomFactor >= 1);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-1a-and-above\",zoomFactor >= 1.14);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-1b-and-above\",zoomFactor >= 1.33);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-1c-and-above\",zoomFactor >= 1.6);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-2\",zoomFactor >= 2 && zoomFactor <= 3);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-2-and-above\",zoomFactor >= 2);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-2a-and-above\",zoomFactor >= 2.66);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-3\",zoomFactor >= 3 && zoomFactor <= 4);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-3-and-above\",zoomFactor >= 3);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-4\",zoomFactor >= 4);\n\tclassList.toggle(\"tc-dynaview-zoom-factor-4-and-above\",zoomFactor >= 4);\n}\n\nfunction checkVisibility() {\n\tvar elements = document.querySelectorAll(\".tc-dynaview-set-tiddler-when-visible\");\n\t$tw.utils.each(elements,function(element) {\n\t\t// Bail if we've already triggered this element and we're not unsetting a tiddler when this element leaves the viewport\n\t\tif(element.getAttribute(\"data-dynaview-has-triggered\") === \"true\" && !element.hasAttribute(\"data-dynaview-unset-tiddler\")) {\n\t\t\treturn;\n\t\t}\n\t\t// Calculate whether the element is visible\n\t\tvar elementRect = element.getBoundingClientRect(),\n\t\t\tviewportWidth = window.innerWidth || document.documentElement.clientWidth,\n\t\t\tviewportHeight = window.innerHeight || document.documentElement.clientHeight,\n\t\t\tviewportRect = {\n\t\t\t\tleft: 0,\n\t\t\t\tright: viewportWidth,\n\t\t\t\ttop: 0,\n\t\t\t\tbottom: viewportHeight\n\t\t\t},\n\t\t\ttiddler,\n\t\t\tvalue;\n\t\tif(element.classList.contains(\"tc-dynaview-expand-viewport\")) {\n\t\t\tviewportRect.left -= viewportWidth;\n\t\t\tviewportRect.right += viewportWidth;\n\t\t\tviewportRect.top -= viewportHeight;\n\t\t\tviewportRect.bottom += viewportHeight;\n\t\t}\n\t\tif(elementRect.left > viewportRect.right || \n\t\t\telementRect.right < viewportRect.left || \n\t\t\telementRect.top > viewportRect.bottom ||\n\t\t\telementRect.bottom < viewportRect.top) {\n\t\t\t// Element is not visible\n\t\t\t// Set the unset tiddler if required and this element has previously been triggered\n\t\t\tif(element.getAttribute(\"data-dynaview-has-triggered\") === \"true\" && element.hasAttribute(\"data-dynaview-unset-tiddler\")) {\n\t\t\t\ttiddler = element.getAttribute(\"data-dynaview-unset-tiddler\");\n\t\t\t\tvalue = element.getAttribute(\"data-dynaview-unset-value\") || \"\";\n\t\t\t\tif(tiddler && $tw.wiki.getTiddlerText(tiddler) !== value) {\n\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler({title: tiddler, text: value}));\n\t\t\t\t}\n\t\t\t\telement.setAttribute(\"data-dynaview-has-triggered\",\"false\");\t\t\t\t\n\t\t\t}\n\t\t} else {\n\t\t\t// Element is visible\n\t\t\ttiddler = element.getAttribute(\"data-dynaview-set-tiddler\");\n\t\t\tvalue = element.getAttribute(\"data-dynaview-set-value\") || \"\";\n\t\t\tif(tiddler && $tw.wiki.getTiddlerText(tiddler) !== value) {\n\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler({title: tiddler, text: value}));\n\t\t\t}\n\t\t\telement.setAttribute(\"data-dynaview-has-triggered\",\"true\");\n\t\t}\n\t});\n}\n\nfunction checkTopmost() {\n\tif($tw.wiki.getTiddlerText(\"$:/config/DynaView/UpdateAddressBar\") === \"yes\") {\n\t\tvar elements = document.querySelectorAll(\".tc-tiddler-frame[data-tiddler-title]\"),\n\t\t\ttopmostElement = null,\n\t\t\ttopmostElementTop = 1 * 1000 * 1000;\n\t\t$tw.utils.each(elements,function(element) {\n\t\t\t// Check if the element is visible\n\t\t\tvar elementRect = element.getBoundingClientRect();\n\t\t\tif((elementRect.top < topmostElementTop) && (elementRect.bottom > 0)) {\n\t\t\t\ttopmostElement = element;\n\t\t\t\ttopmostElementTop = elementRect.top;\n\t\t\t}\n\t\t});\n\t\tif(topmostElement) {\n\t\t\tvar title = topmostElement.getAttribute(\"data-tiddler-title\"),\n\t\t\t\thash = \"#\" + encodeURIComponent(title) + \":\" + encodeURIComponent(\"[list[$:/StoryList]]\");\n\t\t\tif(title && $tw.locationHash !== hash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\twindow.location.hash = hash;\t\t\t\n\t\t\t}\n\t\t}\n\t}\n}\n\nvar previousViewportWidth, previousViewportHeight;\n\nfunction saveViewportDimensions() {\n\tvar viewportWidth = window.innerWidth || document.documentElement.clientWidth,\n\t\tviewportHeight = window.innerHeight || document.documentElement.clientHeight;\n\tif(document.querySelector(\".tc-dynaview-request-refresh-on-resize\")) {\n\t\tif(previousViewportWidth !== viewportWidth || previousViewportHeight !== viewportHeight) {\n\t\t\tvar count = parseInt($tw.wiki.getTiddlerText(\"$:/state/DynaView/ViewportDimensions/ResizeCount\",\"0\"),10) || 0;\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler({title: \"$:/state/DynaView/ViewportDimensions/ResizeCount\", text: (count + 1) + \"\"}));\n\t\t\tpreviousViewportWidth = viewportWidth;\n\t\t\tpreviousViewportHeight = viewportHeight;\n\t\t}\n\t}\n\tif($tw.wiki.getTiddlerText(\"$:/config/DynaView/ViewportDimensions\") === \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/state/DynaView/ViewportDimensions/Width\") !== viewportWidth.toString()) {\n\t\t\t$tw.wiki.setText(\"$:/state/DynaView/ViewportDimensions/Width\",undefined,undefined,viewportWidth.toString(),undefined);\n\t\t}\n\t\tif($tw.wiki.getTiddlerText(\"$:/state/DynaView/ViewportDimensions/Height\") !== viewportHeight.toString()) {\n\t\t\t$tw.wiki.setText(\"$:/state/DynaView/ViewportDimensions/Height\",undefined,undefined,viewportHeight.toString(),undefined);\n\t\t}\n\t}\n}\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/plugins/tiddlywiki/dynaview/examples/progressive-text": { "title": "$:/plugins/tiddlywiki/dynaview/examples/progressive-text", "tags": "$:/tags/dynaviewExamples", "caption": "Progressive Text", "text": "//Zoom into the space below to see a poem//\n\n''N.B. This example only works in Safari at the moment''\n\n<pre><div class=\"tc-dynaview-zoom-visible-1-and-above\" style=\"font-size: 0.7em;line-height:1.5;\">\n 'Fury said to a\n mouse, That he\n met in the\n house,</div><div class=\"tc-dynaview-zoom-visible-1a-and-above\" style=\"font-size: 0.6em;line-height:1.5;\"> \"Let us\n both go to\n law: I will\n prosecute\n YOU.--Come,</div><div class=\"tc-dynaview-zoom-visible-1b-and-above\" style=\"font-size: 0.5em;line-height:1.5;\"> I'll take no\n denial; We\n must have a\n trial: For</div><div class=\"tc-dynaview-zoom-visible-1c-and-above\" style=\"font-size: 0.4em;line-height:1.5;\"> really this\n morning I've\n nothing\n to do.\"</div><div class=\"tc-dynaview-zoom-visible-2-and-above\" style=\"font-size: 0.3em;line-height:1.5;\"> Said the\n mouse to the\n cur, \"Such\n a trial,\n dear Sir,</div><div class=\"tc-dynaview-zoom-visible-2a-and-above\" style=\"font-size: 0.25em;line-height:1.5;\"> With\n no jury\n or judge,\n would be\n wasting\n our\n breath.\"</div><div class=\"tc-dynaview-zoom-visible-3-and-above\" style=\"font-size: 0.2em;line-height:1.5;\"> \"I'll be\n judge, I'll\n be jury,\"\n Said\n cunning\n old Fury:\n \"I'll\n try the\n whole\n cause,</div><div class=\"tc-dynaview-zoom-visible-4-and-above\" style=\"font-size: 0.15em;line-height:1.5;\"> and\n condemn\n you\n to\n death.\"'\n</div></pre>\n" }, "$:/plugins/tiddlywiki/dynaview/examples/reveal-on-scroll": { "title": "$:/plugins/tiddlywiki/dynaview/examples/reveal-on-scroll", "tags": "$:/tags/dynaviewExamples", "caption": "Reveal on Scroll", "text": "\\define indicator(index)\n<$reveal state=\"$:/state/unreveal-on-scroll/example$index$\" type=\"match\" text=\"yes\">\n$index$\n</$reveal>\n\\end\n\n\\define lorem-ipsum(index)\n<div class=\"tc-dynaview-set-tiddler-when-visible\" style=\"min-height: 75px;\" data-dynaview-set-tiddler=\"$:/state/unreveal-on-scroll/example$index$\" data-dynaview-set-value=\"yes\">\n<h1>Heading $index$</h1>\n<$reveal state=\"$:/state/unreveal-on-scroll/example$index$\" type=\"match\" text=\"yes\">\n(Rendered at <<now \"[UTC]YYYY-0MM-0DD 0hh:0mm:0ss.XXX\">>) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n</$reveal>\n</div>\n\\end\n\nThis example renders tiddlers as they are scrolled into view.\n\nVisible: <$list filter=\"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\">\n<$macrocall $name=\"indicator\" index=<<currentTiddler>>/>\n</$list>\n\n<$list filter=\"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\">\n<$macrocall $name=\"lorem-ipsum\" index=<<currentTiddler>>/>\n</$list>" }, "$:/plugins/tiddlywiki/dynaview/examples/unreveal-on-scroll": { "title": "$:/plugins/tiddlywiki/dynaview/examples/unreveal-on-scroll", "tags": "$:/tags/dynaviewExamples", "caption": "Unreveal on Scroll", "text": "\\define indicator(index)\n<$reveal state=\"$:/state/reveal-on-scroll/example$index$\" type=\"match\" text=\"yes\">\n$index$\n</$reveal>\n\\end\n\n\\define lorem-ipsum(index)\n<div class=\"tc-dynaview-set-tiddler-when-visible\" style=\"min-height: 75px;\" data-dynaview-set-tiddler=\"$:/state/reveal-on-scroll/example$index$\" data-dynaview-set-value=\"yes\" data-dynaview-unset-tiddler=\"$:/state/reveal-on-scroll/example$index$\" data-dynaview-unset-value=\"no\">\n<h1>Heading $index$</h1>\n<$reveal state=\"$:/state/reveal-on-scroll/example$index$\" type=\"match\" text=\"yes\">\n(Rendered at <<now \"[UTC]YYYY-0MM-0DD 0hh:0mm:0ss.XXX\">>) Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n</$reveal>\n</div>\n\\end\n\nThis example renders tiddlers as they are scrolled into view, and hides them when they scroll out of view again.\n\nVisible: <$list filter=\"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\">\n<$macrocall $name=\"indicator\" index=<<currentTiddler>>/>\n</$list>\n\n<$list filter=\"1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16\">\n<$macrocall $name=\"lorem-ipsum\" index=<<currentTiddler>>/>\n</$list>\n" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/TiddlyWiki Architecture": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/TiddlyWiki Architecture", "caption": "TiddlyWiki Architecture", "tags": "[[$:/tags:/ZoomableDiagram]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Browser Architecture": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Browser Architecture", "caption": "Browser Architecture", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/TiddlyWiki Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Service Workers": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Service Workers", "caption": "Service Workers", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Browser Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Service Bosses": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Service Bosses", "caption": "Service Bosses", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Service Workers]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Out of Service Workers": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Out of Service Workers", "caption": "Out of Service Workers", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Service Workers]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Events": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Events", "caption": "Events", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Browser Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Non Events": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Non Events", "caption": "Non Events", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Events]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Past Events": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Past Events", "caption": "Past Events", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Events]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/DOM": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/DOM", "caption": "DOM", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Browser Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Nodes": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Nodes", "caption": "Nodes", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/DOM]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Attributes": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Attributes", "caption": "Attributes", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/DOM]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Pathogens": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Pathogens", "caption": "Pathogens", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/DOM]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Connection": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Connection", "caption": "Connection", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/TiddlyWiki Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/HTTP": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/HTTP", "caption": "HTTP", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Connection]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Server Architecture": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Server Architecture", "caption": "Server Architecture", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/TiddlyWiki Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Node.js": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Node.js", "caption": "Node.js", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Server Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/C/C++": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/C/C++", "caption": "C/C++", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Node.js]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Quotation Marks": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Quotation Marks", "caption": "Quotation Marks", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Node.js]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Asterisks": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Asterisks", "caption": "Asterisks", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Node.js]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Potatoes": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Potatoes", "caption": "Potatoes", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Server Architecture]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Carrots": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Carrots", "caption": "Carrots", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Potatoes]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Apricots": { "title": "$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Apricots", "caption": "Apricots", "tags": "[[$:/plugins/tiddlywiki/dynaview/zoomable-diagram/Potatoes]]", "text": "<<lorem-ipsum>>" }, "$:/plugins/tiddlywiki/dynaview/examples/zoomable-diagram": { "title": "$:/plugins/tiddlywiki/dynaview/examples/zoomable-diagram", "tags": "$:/tags/dynaviewExamples", "caption": "Zoomable Diagram", "text": "\\define lorem-ipsum()\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\n\\end\n\n\\define zoomable-diagram(tag,level:\"1 2 3 4 5 6 7\")\n<div class={{{ $level$ +[addprefix[zoomable-diagram-level-]addprefix[zoomable-diagram-list ]] }}}>\n\t<$list filter=\"[all[shadows+tiddlers]tag[$tag$]]\">\n\t\t<div class=\"zoomable-diagram-item\">\n\t\t\t<div class=\"zoomable-diagram-title\">\n\t\t\t\t<$transclude field=\"caption\" mode=\"inline\"/>\n\t\t\t</div>\n\t\t\t<div class=\"zoomable-diagram-body\">\n\t\t\t\t<div class=\"zoomable-diagram-text\">\n\t\t\t\t\t<$transclude field=\"text\" mode=\"block\"/>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"zoomable-diagram-children\">\n\t\t\t\t\t<$set name=\"new-level\" filter=\"\"\" $level$ +[butfirst[]] \"\"\">\n\t\t\t\t\t\t<$macrocall $name=\"zoomable-diagram\" tag=<<currentTiddler>> level=<<new-level>>/>\n\t\t\t\t\t</$set>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</$list>\n</div>\n\\end\n\n//Zoom into the diagram below to find out more//\n\n''N.B. This example only works in Safari at the moment''\n\n<style>\n.zoomable-diagram-wrapper {\n\tmin-height: 300px;\n}\n\n.zoomable-diagram-list {\n\tdisplay: flex;\n\tflex-direction: row;\n\tline-height: 1.5;\n}\n\n.zoomable-diagram-level-1 {font-size: 1em;}\n.zoomable-diagram-level-2 {font-size: 0.8em;}\n.zoomable-diagram-level-3 {font-size: 0.6em;}\n.zoomable-diagram-level-4 {font-size: 0.4em;}\n\n.zoomable-diagram-level-1,\n.zoomable-diagram-level-2,\n.zoomable-diagram-level-3,\n.zoomable-diagram-level-4,\n.zoomable-diagram-text {\n\ttransition: opacity 150ms ease-in-out;\n}\n\nbody.tc-dynaview.tc-dynaview-zoom-factor-1 .zoomable-diagram-level-1 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-1 .zoomable-diagram-level-2 {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-1 .zoomable-diagram-level-3 {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-1 .zoomable-diagram-level-4 {opacity: 0;}\n\nbody.tc-dynaview.tc-dynaview-zoom-factor-2 .zoomable-diagram-level-1 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2 .zoomable-diagram-level-1 > .zoomable-diagram-item > .zoomable-diagram-body > .zoomable-diagram-text {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2 .zoomable-diagram-level-2 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2 .zoomable-diagram-level-3 {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2 .zoomable-diagram-level-4 {opacity: 0;}\n\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .zoomable-diagram-level-1 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .zoomable-diagram-level-1 > .zoomable-diagram-item > .zoomable-diagram-body > .zoomable-diagram-text {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .zoomable-diagram-level-2 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .zoomable-diagram-level-2 > .zoomable-diagram-item > .zoomable-diagram-body > .zoomable-diagram-text {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .zoomable-diagram-level-3 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .zoomable-diagram-level-4 {opacity: 0;}\n\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-1 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-1 > .zoomable-diagram-item > .zoomable-diagram-body > .zoomable-diagram-text {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-2 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-2 > .zoomable-diagram-item > .zoomable-diagram-body > .zoomable-diagram-text {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-3 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-3 > .zoomable-diagram-item > .zoomable-diagram-body > .zoomable-diagram-text {opacity: 0;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .zoomable-diagram-level-4 {opacity: 1;}\n\n.zoomable-diagram-item {\n\tmargin: 0.5em;\n\tflex: 1 1 0;\n}\n\n.zoomable-diagram-title {\n\tfont-weight: bold;\n}\n\n.zoomable-diagram-body {\n\tdisplay: flex;\n\tflex-direction: column;\n\tposition: relative;\n}\n\n.zoomable-diagram-text {\n\tposition: absolute;\n}\n\n.zoomable-diagram-children {\n}\n\n</style>\n\n<div class=\"zoomable-diagram-wrapper\">\n<<zoomable-diagram \"$:/tags:/ZoomableDiagram\">>\n</div>\n" }, "$:/plugins/tiddlywiki/dynaview/examples/zoomable-tooltips": { "title": "$:/plugins/tiddlywiki/dynaview/examples/zoomable-tooltips", "tags": "$:/tags/dynaviewExamples", "caption": "Zoomable Tooltips", "text": "//Zoom into the images below to see their titles//\n\n''N.B. This example only works in Safari at the moment''\n\n<style>\n.zoomable-tooltip-demo-container {\n\tdisplay: flex;\n\tflex-wrap: wrap;\n}\n\n.zoomable-tooltip-demo-item {\n\tdisplay: flex;\n\tflex-direction: column;\n\tflex: 0 0 auto;\n\tpadding: 4px;\n\twidth: 5em;\n\theight: 7em;\n}\n\n.zoomable-tooltip-demo-item-image {\n\tflex: 0 0 auto;\n}\n\n.zoomable-tooltip-demo-item-image svg {\n\twidth: 4em;\n\theight: 4em;\n}\n\n.zoomable-tooltip-demo-item-text {\n\tfont-size:0.3em;\n\tflex: 0 0 auto;\n\tline-height: 1.1;\n\ttext-align: center;\n text-align: center;\n background: #f7f747;\n border: 1px solid #c2c235;\n padding: 2px;\n border-radius: 2px;\n}\n</style>\n<div class=\"zoomable-tooltip-demo-container\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/Image]]\">\n<div class=\"zoomable-tooltip-demo-item\">\n<span class=\"zoomable-tooltip-demo-item-image\">\n<$transclude/>\n</span>\n<span class=\"zoomable-tooltip-demo-item-text tc-dynaview-zoom-visible-3-and-above\">\n<$text text=<<currentTiddler>>/>\n</span>\n</div>\n</$list>\n</div>\n" }, "$:/plugins/tiddlywiki/dynaview/examples": { "title": "$:/plugins/tiddlywiki/dynaview/examples", "text": "<<tabs \"[all[tiddlers+shadows]tag[$:/tags/dynaviewExamples]!has[draft.of]]\" \"$:/plugins/tiddlywiki/dynaview/examples/progressive-text\">>\n" }, "$:/plugins/tiddlywiki/dynaview/macros": { "title": "$:/plugins/tiddlywiki/dynaview/macros", "tags": "$:/tags/Macro", "text": "\\define transclude-when-visible(tiddler,mode:\"block\",state,minHeight:\"1em\",loadingText:\"…\")\n<$reveal state=<<__state__>> type=\"match\" text=\"visible\" tag=\"div\">\n<div class=\"tc-dynaview-set-tiddler-when-visible\" data-dynaview-set-tiddler=<<__state__>> data-dynaview-set-value=\"visible\">\n<$transclude tiddler=<<__tiddler__>> mode=<<__mode__>>/>\n</div>\n</$reveal>\n<$reveal state=<<__state__>> type=\"nomatch\" text=\"visible\" tag=\"div\">\n<div class=\"tc-dynaview-set-tiddler-when-visible\" style=\"min-height: $minHeight$;\" data-dynaview-set-tiddler=<<__state__>> data-dynaview-set-value=\"visible\">\n$loadingText$\n</div>\n</$reveal>\n\\end\n" }, "$:/plugins/tiddlywiki/dynaview/readme": { "title": "$:/plugins/tiddlywiki/dynaview/readme", "text": "! Dynaview\n\nThis plugin makes it possible to build user interfaces that dynamically respond to changes in the browser viewport via scrolling or zooming:\n\n* CSS classes that allow rendering to be deferred until the output is scrolled into view\n* CSS classes that allow the opacity of DOM elements to vary according to the current zoom level\n* A daemon that can dynamically update a pair of state tiddlers with the current dimensions of the browser viewport\n* A daemon that can dynamically update the address bar with the title of the tiddler at the top of the viewport\n\nSome points to note about the zoom features:\n\n<<<\n\n* The zoom level currently only works on Safari, both on Mac OS and on the iPhone/iPad\n* The zoom level tracked by the plugin is the pinch-zoom level, and not the text-zoom level\n* Rather than being progressively rendered as needed, hidden item are rendered with zero opacity. Which means that they can still be interacted with\n\nThis is really just a proof of concept to allow the user experience to be evaluated. A production version would need to work in all browsers, which would mean adopting a polyfill such as [[Hammer.js|http://hammerjs.github.io/]] to give us manual pan and zoom support. It would also allow deeper levels of zoom.\n\n<<<\n" }, "$:/plugins/tiddlywiki/dynaview/styles": { "title": "$:/plugins/tiddlywiki/dynaview/styles", "tags": "$:/tags/Stylesheet", "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\nbody.tc-dynaview .tc-dynaview-zoom-visible-1-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-1a-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-1b-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-1c-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-2-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-2a-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-3-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-4-and-above,\nbody.tc-dynaview .tc-dynaview-zoom-visible-1,\nbody.tc-dynaview .tc-dynaview-zoom-visible-2,\nbody.tc-dynaview .tc-dynaview-zoom-visible-3,\nbody.tc-dynaview .tc-dynaview-zoom-visible-4 {\n\ttransition: opacity 150ms ease-in-out;\n\topacity: 0;\n}\n\nbody.tc-dynaview .tc-dynaview-zoom-visible-1-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-1a-and-above .tc-dynaview-zoom-visible-1a-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-1b-and-above .tc-dynaview-zoom-visible-1b-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-1c-and-above .tc-dynaview-zoom-visible-1c-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2-and-above .tc-dynaview-zoom-visible-2-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2a-and-above .tc-dynaview-zoom-visible-2a-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3-and-above .tc-dynaview-zoom-visible-3-and-above {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4-and-above .tc-dynaview-zoom-visible-4-and-above {opacity: 1;}\n\nbody.tc-dynaview.tc-dynaview-zoom-factor-1 .tc-dynaview-zoom-visible-1 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-2 .tc-dynaview-zoom-visible-2 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-3 .tc-dynaview-zoom-visible-3 {opacity: 1;}\nbody.tc-dynaview.tc-dynaview-zoom-factor-4 .tc-dynaview-zoom-visible-4 {opacity: 1;}\n" } } }
{ "tiddlers": { "$:/plugins/tiddlywiki/hammerjs/hammer.js": { "text": "/*! Hammer.JS - v2.0.8 - 2016-04-23\n * http://hammerjs.github.io/\n *\n * Copyright (c) 2016 Jorik Tangelder;\n * Licensed under the MIT license */\n!function(a,b,c,d){\"use strict\";function e(a,b,c){return setTimeout(j(a,c),b)}function f(a,b,c){return Array.isArray(a)?(g(a,c[b],c),!0):!1}function g(a,b,c){var e;if(a)if(a.forEach)a.forEach(b,c);else if(a.length!==d)for(e=0;e<a.length;)b.call(c,a[e],e,a),e++;else for(e in a)a.hasOwnProperty(e)&&b.call(c,a[e],e,a)}function h(b,c,d){var e=\"DEPRECATED METHOD: \"+c+\"\\n\"+d+\" AT \\n\";return function(){var c=new Error(\"get-stack-trace\"),d=c&&c.stack?c.stack.replace(/^[^\\(]+?[\\n$]/gm,\"\").replace(/^\\s+at\\s+/gm,\"\").replace(/^Object.<anonymous>\\s*\\(/gm,\"{anonymous}()@\"):\"Unknown Stack Trace\",f=a.console&&(a.console.warn||a.console.log);return f&&f.call(a.console,e,d),b.apply(this,arguments)}}function i(a,b,c){var d,e=b.prototype;d=a.prototype=Object.create(e),d.constructor=a,d._super=e,c&&la(d,c)}function j(a,b){return function(){return a.apply(b,arguments)}}function k(a,b){return typeof a==oa?a.apply(b?b[0]||d:d,b):a}function l(a,b){return a===d?b:a}function m(a,b,c){g(q(b),function(b){a.addEventListener(b,c,!1)})}function n(a,b,c){g(q(b),function(b){a.removeEventListener(b,c,!1)})}function o(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1}function p(a,b){return a.indexOf(b)>-1}function q(a){return a.trim().split(/\\s+/g)}function r(a,b,c){if(a.indexOf&&!c)return a.indexOf(b);for(var d=0;d<a.length;){if(c&&a[d][c]==b||!c&&a[d]===b)return d;d++}return-1}function s(a){return Array.prototype.slice.call(a,0)}function t(a,b,c){for(var d=[],e=[],f=0;f<a.length;){var g=b?a[f][b]:a[f];r(e,g)<0&&d.push(a[f]),e[f]=g,f++}return c&&(d=b?d.sort(function(a,c){return a[b]>c[b]}):d.sort()),d}function u(a,b){for(var c,e,f=b[0].toUpperCase()+b.slice(1),g=0;g<ma.length;){if(c=ma[g],e=c?c+f:b,e in a)return e;g++}return d}function v(){return ua++}function w(b){var c=b.ownerDocument||b;return c.defaultView||c.parentWindow||a}function x(a,b){var c=this;this.manager=a,this.callback=b,this.element=a.element,this.target=a.options.inputTarget,this.domHandler=function(b){k(a.options.enable,[a])&&c.handler(b)},this.init()}function y(a){var b,c=a.options.inputClass;return new(b=c?c:xa?M:ya?P:wa?R:L)(a,z)}function z(a,b,c){var d=c.pointers.length,e=c.changedPointers.length,f=b&Ea&&d-e===0,g=b&(Ga|Ha)&&d-e===0;c.isFirst=!!f,c.isFinal=!!g,f&&(a.session={}),c.eventType=b,A(a,c),a.emit(\"hammer.input\",c),a.recognize(c),a.session.prevInput=c}function A(a,b){var c=a.session,d=b.pointers,e=d.length;c.firstInput||(c.firstInput=D(b)),e>1&&!c.firstMultiple?c.firstMultiple=D(b):1===e&&(c.firstMultiple=!1);var f=c.firstInput,g=c.firstMultiple,h=g?g.center:f.center,i=b.center=E(d);b.timeStamp=ra(),b.deltaTime=b.timeStamp-f.timeStamp,b.angle=I(h,i),b.distance=H(h,i),B(c,b),b.offsetDirection=G(b.deltaX,b.deltaY);var j=F(b.deltaTime,b.deltaX,b.deltaY);b.overallVelocityX=j.x,b.overallVelocityY=j.y,b.overallVelocity=qa(j.x)>qa(j.y)?j.x:j.y,b.scale=g?K(g.pointers,d):1,b.rotation=g?J(g.pointers,d):0,b.maxPointers=c.prevInput?b.pointers.length>c.prevInput.maxPointers?b.pointers.length:c.prevInput.maxPointers:b.pointers.length,C(c,b);var k=a.element;o(b.srcEvent.target,k)&&(k=b.srcEvent.target),b.target=k}function B(a,b){var c=b.center,d=a.offsetDelta||{},e=a.prevDelta||{},f=a.prevInput||{};b.eventType!==Ea&&f.eventType!==Ga||(e=a.prevDelta={x:f.deltaX||0,y:f.deltaY||0},d=a.offsetDelta={x:c.x,y:c.y}),b.deltaX=e.x+(c.x-d.x),b.deltaY=e.y+(c.y-d.y)}function C(a,b){var c,e,f,g,h=a.lastInterval||b,i=b.timeStamp-h.timeStamp;if(b.eventType!=Ha&&(i>Da||h.velocity===d)){var j=b.deltaX-h.deltaX,k=b.deltaY-h.deltaY,l=F(i,j,k);e=l.x,f=l.y,c=qa(l.x)>qa(l.y)?l.x:l.y,g=G(j,k),a.lastInterval=b}else c=h.velocity,e=h.velocityX,f=h.velocityY,g=h.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g}function D(a){for(var b=[],c=0;c<a.pointers.length;)b[c]={clientX:pa(a.pointers[c].clientX),clientY:pa(a.pointers[c].clientY)},c++;return{timeStamp:ra(),pointers:b,center:E(b),deltaX:a.deltaX,deltaY:a.deltaY}}function E(a){var b=a.length;if(1===b)return{x:pa(a[0].clientX),y:pa(a[0].clientY)};for(var c=0,d=0,e=0;b>e;)c+=a[e].clientX,d+=a[e].clientY,e++;return{x:pa(c/b),y:pa(d/b)}}function F(a,b,c){return{x:b/a||0,y:c/a||0}}function G(a,b){return a===b?Ia:qa(a)>=qa(b)?0>a?Ja:Ka:0>b?La:Ma}function H(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return Math.sqrt(d*d+e*e)}function I(a,b,c){c||(c=Qa);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*Math.atan2(e,d)/Math.PI}function J(a,b){return I(b[1],b[0],Ra)+I(a[1],a[0],Ra)}function K(a,b){return H(b[0],b[1],Ra)/H(a[0],a[1],Ra)}function L(){this.evEl=Ta,this.evWin=Ua,this.pressed=!1,x.apply(this,arguments)}function M(){this.evEl=Xa,this.evWin=Ya,x.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function N(){this.evTarget=$a,this.evWin=_a,this.started=!1,x.apply(this,arguments)}function O(a,b){var c=s(a.touches),d=s(a.changedTouches);return b&(Ga|Ha)&&(c=t(c.concat(d),\"identifier\",!0)),[c,d]}function P(){this.evTarget=bb,this.targetIds={},x.apply(this,arguments)}function Q(a,b){var c=s(a.touches),d=this.targetIds;if(b&(Ea|Fa)&&1===c.length)return d[c[0].identifier]=!0,[c,c];var e,f,g=s(a.changedTouches),h=[],i=this.target;if(f=c.filter(function(a){return o(a.target,i)}),b===Ea)for(e=0;e<f.length;)d[f[e].identifier]=!0,e++;for(e=0;e<g.length;)d[g[e].identifier]&&h.push(g[e]),b&(Ga|Ha)&&delete d[g[e].identifier],e++;return h.length?[t(f.concat(h),\"identifier\",!0),h]:void 0}function R(){x.apply(this,arguments);var a=j(this.handler,this);this.touch=new P(this.manager,a),this.mouse=new L(this.manager,a),this.primaryTouch=null,this.lastTouches=[]}function S(a,b){a&Ea?(this.primaryTouch=b.changedPointers[0].identifier,T.call(this,b)):a&(Ga|Ha)&&T.call(this,b)}function T(a){var b=a.changedPointers[0];if(b.identifier===this.primaryTouch){var c={x:b.clientX,y:b.clientY};this.lastTouches.push(c);var d=this.lastTouches,e=function(){var a=d.indexOf(c);a>-1&&d.splice(a,1)};setTimeout(e,cb)}}function U(a){for(var b=a.srcEvent.clientX,c=a.srcEvent.clientY,d=0;d<this.lastTouches.length;d++){var e=this.lastTouches[d],f=Math.abs(b-e.x),g=Math.abs(c-e.y);if(db>=f&&db>=g)return!0}return!1}function V(a,b){this.manager=a,this.set(b)}function W(a){if(p(a,jb))return jb;var b=p(a,kb),c=p(a,lb);return b&&c?jb:b||c?b?kb:lb:p(a,ib)?ib:hb}function X(){if(!fb)return!1;var b={},c=a.CSS&&a.CSS.supports;return[\"auto\",\"manipulation\",\"pan-y\",\"pan-x\",\"pan-x pan-y\",\"none\"].forEach(function(d){b[d]=c?a.CSS.supports(\"touch-action\",d):!0}),b}function Y(a){this.options=la({},this.defaults,a||{}),this.id=v(),this.manager=null,this.options.enable=l(this.options.enable,!0),this.state=nb,this.simultaneous={},this.requireFail=[]}function Z(a){return a&sb?\"cancel\":a&qb?\"end\":a&pb?\"move\":a&ob?\"start\":\"\"}function $(a){return a==Ma?\"down\":a==La?\"up\":a==Ja?\"left\":a==Ka?\"right\":\"\"}function _(a,b){var c=b.manager;return c?c.get(a):a}function aa(){Y.apply(this,arguments)}function ba(){aa.apply(this,arguments),this.pX=null,this.pY=null}function ca(){aa.apply(this,arguments)}function da(){Y.apply(this,arguments),this._timer=null,this._input=null}function ea(){aa.apply(this,arguments)}function fa(){aa.apply(this,arguments)}function ga(){Y.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}function ha(a,b){return b=b||{},b.recognizers=l(b.recognizers,ha.defaults.preset),new ia(a,b)}function ia(a,b){this.options=la({},ha.defaults,b||{}),this.options.inputTarget=this.options.inputTarget||a,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=a,this.input=y(this),this.touchAction=new V(this,this.options.touchAction),ja(this,!0),g(this.options.recognizers,function(a){var b=this.add(new a[0](a[1]));a[2]&&b.recognizeWith(a[2]),a[3]&&b.requireFailure(a[3])},this)}function ja(a,b){var c=a.element;if(c.style){var d;g(a.options.cssProps,function(e,f){d=u(c.style,f),b?(a.oldCssProps[d]=c.style[d],c.style[d]=e):c.style[d]=a.oldCssProps[d]||\"\"}),b||(a.oldCssProps={})}}function ka(a,c){var d=b.createEvent(\"Event\");d.initEvent(a,!0,!0),d.gesture=c,c.target.dispatchEvent(d)}var la,ma=[\"\",\"webkit\",\"Moz\",\"MS\",\"ms\",\"o\"],na=b.createElement(\"div\"),oa=\"function\",pa=Math.round,qa=Math.abs,ra=Date.now;la=\"function\"!=typeof Object.assign?function(a){if(a===d||null===a)throw new TypeError(\"Cannot convert undefined or null to object\");for(var b=Object(a),c=1;c<arguments.length;c++){var e=arguments[c];if(e!==d&&null!==e)for(var f in e)e.hasOwnProperty(f)&&(b[f]=e[f])}return b}:Object.assign;var sa=h(function(a,b,c){for(var e=Object.keys(b),f=0;f<e.length;)(!c||c&&a[e[f]]===d)&&(a[e[f]]=b[e[f]]),f++;return a},\"extend\",\"Use `assign`.\"),ta=h(function(a,b){return sa(a,b,!0)},\"merge\",\"Use `assign`.\"),ua=1,va=/mobile|tablet|ip(ad|hone|od)|android/i,wa=\"ontouchstart\"in a,xa=u(a,\"PointerEvent\")!==d,ya=wa&&va.test(navigator.userAgent),za=\"touch\",Aa=\"pen\",Ba=\"mouse\",Ca=\"kinect\",Da=25,Ea=1,Fa=2,Ga=4,Ha=8,Ia=1,Ja=2,Ka=4,La=8,Ma=16,Na=Ja|Ka,Oa=La|Ma,Pa=Na|Oa,Qa=[\"x\",\"y\"],Ra=[\"clientX\",\"clientY\"];x.prototype={handler:function(){},init:function(){this.evEl&&m(this.element,this.evEl,this.domHandler),this.evTarget&&m(this.target,this.evTarget,this.domHandler),this.evWin&&m(w(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&n(this.element,this.evEl,this.domHandler),this.evTarget&&n(this.target,this.evTarget,this.domHandler),this.evWin&&n(w(this.element),this.evWin,this.domHandler)}};var Sa={mousedown:Ea,mousemove:Fa,mouseup:Ga},Ta=\"mousedown\",Ua=\"mousemove mouseup\";i(L,x,{handler:function(a){var b=Sa[a.type];b&Ea&&0===a.button&&(this.pressed=!0),b&Fa&&1!==a.which&&(b=Ga),this.pressed&&(b&Ga&&(this.pressed=!1),this.callback(this.manager,b,{pointers:[a],changedPointers:[a],pointerType:Ba,srcEvent:a}))}});var Va={pointerdown:Ea,pointermove:Fa,pointerup:Ga,pointercancel:Ha,pointerout:Ha},Wa={2:za,3:Aa,4:Ba,5:Ca},Xa=\"pointerdown\",Ya=\"pointermove pointerup pointercancel\";a.MSPointerEvent&&!a.PointerEvent&&(Xa=\"MSPointerDown\",Ya=\"MSPointerMove MSPointerUp MSPointerCancel\"),i(M,x,{handler:function(a){var b=this.store,c=!1,d=a.type.toLowerCase().replace(\"ms\",\"\"),e=Va[d],f=Wa[a.pointerType]||a.pointerType,g=f==za,h=r(b,a.pointerId,\"pointerId\");e&Ea&&(0===a.button||g)?0>h&&(b.push(a),h=b.length-1):e&(Ga|Ha)&&(c=!0),0>h||(b[h]=a,this.callback(this.manager,e,{pointers:b,changedPointers:[a],pointerType:f,srcEvent:a}),c&&b.splice(h,1))}});var Za={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},$a=\"touchstart\",_a=\"touchstart touchmove touchend touchcancel\";i(N,x,{handler:function(a){var b=Za[a.type];if(b===Ea&&(this.started=!0),this.started){var c=O.call(this,a,b);b&(Ga|Ha)&&c[0].length-c[1].length===0&&(this.started=!1),this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}}});var ab={touchstart:Ea,touchmove:Fa,touchend:Ga,touchcancel:Ha},bb=\"touchstart touchmove touchend touchcancel\";i(P,x,{handler:function(a){var b=ab[a.type],c=Q.call(this,a,b);c&&this.callback(this.manager,b,{pointers:c[0],changedPointers:c[1],pointerType:za,srcEvent:a})}});var cb=2500,db=25;i(R,x,{handler:function(a,b,c){var d=c.pointerType==za,e=c.pointerType==Ba;if(!(e&&c.sourceCapabilities&&c.sourceCapabilities.firesTouchEvents)){if(d)S.call(this,b,c);else if(e&&U.call(this,c))return;this.callback(a,b,c)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var eb=u(na.style,\"touchAction\"),fb=eb!==d,gb=\"compute\",hb=\"auto\",ib=\"manipulation\",jb=\"none\",kb=\"pan-x\",lb=\"pan-y\",mb=X();V.prototype={set:function(a){a==gb&&(a=this.compute()),fb&&this.manager.element.style&&mb[a]&&(this.manager.element.style[eb]=a),this.actions=a.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var a=[];return g(this.manager.recognizers,function(b){k(b.options.enable,[b])&&(a=a.concat(b.getTouchAction()))}),W(a.join(\" \"))},preventDefaults:function(a){var b=a.srcEvent,c=a.offsetDirection;if(this.manager.session.prevented)return void b.preventDefault();var d=this.actions,e=p(d,jb)&&!mb[jb],f=p(d,lb)&&!mb[lb],g=p(d,kb)&&!mb[kb];if(e){var h=1===a.pointers.length,i=a.distance<2,j=a.deltaTime<250;if(h&&i&&j)return}return g&&f?void 0:e||f&&c&Na||g&&c&Oa?this.preventSrc(b):void 0},preventSrc:function(a){this.manager.session.prevented=!0,a.preventDefault()}};var nb=1,ob=2,pb=4,qb=8,rb=qb,sb=16,tb=32;Y.prototype={defaults:{},set:function(a){return la(this.options,a),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(a){if(f(a,\"recognizeWith\",this))return this;var b=this.simultaneous;return a=_(a,this),b[a.id]||(b[a.id]=a,a.recognizeWith(this)),this},dropRecognizeWith:function(a){return f(a,\"dropRecognizeWith\",this)?this:(a=_(a,this),delete this.simultaneous[a.id],this)},requireFailure:function(a){if(f(a,\"requireFailure\",this))return this;var b=this.requireFail;return a=_(a,this),-1===r(b,a)&&(b.push(a),a.requireFailure(this)),this},dropRequireFailure:function(a){if(f(a,\"dropRequireFailure\",this))return this;a=_(a,this);var b=r(this.requireFail,a);return b>-1&&this.requireFail.splice(b,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(a){return!!this.simultaneous[a.id]},emit:function(a){function b(b){c.manager.emit(b,a)}var c=this,d=this.state;qb>d&&b(c.options.event+Z(d)),b(c.options.event),a.additionalEvent&&b(a.additionalEvent),d>=qb&&b(c.options.event+Z(d))},tryEmit:function(a){return this.canEmit()?this.emit(a):void(this.state=tb)},canEmit:function(){for(var a=0;a<this.requireFail.length;){if(!(this.requireFail[a].state&(tb|nb)))return!1;a++}return!0},recognize:function(a){var b=la({},a);return k(this.options.enable,[this,b])?(this.state&(rb|sb|tb)&&(this.state=nb),this.state=this.process(b),void(this.state&(ob|pb|qb|sb)&&this.tryEmit(b))):(this.reset(),void(this.state=tb))},process:function(a){},getTouchAction:function(){},reset:function(){}},i(aa,Y,{defaults:{pointers:1},attrTest:function(a){var b=this.options.pointers;return 0===b||a.pointers.length===b},process:function(a){var b=this.state,c=a.eventType,d=b&(ob|pb),e=this.attrTest(a);return d&&(c&Ha||!e)?b|sb:d||e?c&Ga?b|qb:b&ob?b|pb:ob:tb}}),i(ba,aa,{defaults:{event:\"pan\",threshold:10,pointers:1,direction:Pa},getTouchAction:function(){var a=this.options.direction,b=[];return a&Na&&b.push(lb),a&Oa&&b.push(kb),b},directionTest:function(a){var b=this.options,c=!0,d=a.distance,e=a.direction,f=a.deltaX,g=a.deltaY;return e&b.direction||(b.direction&Na?(e=0===f?Ia:0>f?Ja:Ka,c=f!=this.pX,d=Math.abs(a.deltaX)):(e=0===g?Ia:0>g?La:Ma,c=g!=this.pY,d=Math.abs(a.deltaY))),a.direction=e,c&&d>b.threshold&&e&b.direction},attrTest:function(a){return aa.prototype.attrTest.call(this,a)&&(this.state&ob||!(this.state&ob)&&this.directionTest(a))},emit:function(a){this.pX=a.deltaX,this.pY=a.deltaY;var b=$(a.direction);b&&(a.additionalEvent=this.options.event+b),this._super.emit.call(this,a)}}),i(ca,aa,{defaults:{event:\"pinch\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.scale-1)>this.options.threshold||this.state&ob)},emit:function(a){if(1!==a.scale){var b=a.scale<1?\"in\":\"out\";a.additionalEvent=this.options.event+b}this._super.emit.call(this,a)}}),i(da,Y,{defaults:{event:\"press\",pointers:1,time:251,threshold:9},getTouchAction:function(){return[hb]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime>b.time;if(this._input=a,!d||!c||a.eventType&(Ga|Ha)&&!f)this.reset();else if(a.eventType&Ea)this.reset(),this._timer=e(function(){this.state=rb,this.tryEmit()},b.time,this);else if(a.eventType&Ga)return rb;return tb},reset:function(){clearTimeout(this._timer)},emit:function(a){this.state===rb&&(a&&a.eventType&Ga?this.manager.emit(this.options.event+\"up\",a):(this._input.timeStamp=ra(),this.manager.emit(this.options.event,this._input)))}}),i(ea,aa,{defaults:{event:\"rotate\",threshold:0,pointers:2},getTouchAction:function(){return[jb]},attrTest:function(a){return this._super.attrTest.call(this,a)&&(Math.abs(a.rotation)>this.options.threshold||this.state&ob)}}),i(fa,aa,{defaults:{event:\"swipe\",threshold:10,velocity:.3,direction:Na|Oa,pointers:1},getTouchAction:function(){return ba.prototype.getTouchAction.call(this)},attrTest:function(a){var b,c=this.options.direction;return c&(Na|Oa)?b=a.overallVelocity:c&Na?b=a.overallVelocityX:c&Oa&&(b=a.overallVelocityY),this._super.attrTest.call(this,a)&&c&a.offsetDirection&&a.distance>this.options.threshold&&a.maxPointers==this.options.pointers&&qa(b)>this.options.velocity&&a.eventType&Ga},emit:function(a){var b=$(a.offsetDirection);b&&this.manager.emit(this.options.event+b,a),this.manager.emit(this.options.event,a)}}),i(ga,Y,{defaults:{event:\"tap\",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[ib]},process:function(a){var b=this.options,c=a.pointers.length===b.pointers,d=a.distance<b.threshold,f=a.deltaTime<b.time;if(this.reset(),a.eventType&Ea&&0===this.count)return this.failTimeout();if(d&&f&&c){if(a.eventType!=Ga)return this.failTimeout();var g=this.pTime?a.timeStamp-this.pTime<b.interval:!0,h=!this.pCenter||H(this.pCenter,a.center)<b.posThreshold;this.pTime=a.timeStamp,this.pCenter=a.center,h&&g?this.count+=1:this.count=1,this._input=a;var i=this.count%b.taps;if(0===i)return this.hasRequireFailures()?(this._timer=e(function(){this.state=rb,this.tryEmit()},b.interval,this),ob):rb}return tb},failTimeout:function(){return this._timer=e(function(){this.state=tb},this.options.interval,this),tb},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==rb&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}}),ha.VERSION=\"2.0.8\",ha.defaults={domEvents:!1,touchAction:gb,enable:!0,inputTarget:null,inputClass:null,preset:[[ea,{enable:!1}],[ca,{enable:!1},[\"rotate\"]],[fa,{direction:Na}],[ba,{direction:Na},[\"swipe\"]],[ga],[ga,{event:\"doubletap\",taps:2},[\"tap\"]],[da]],cssProps:{userSelect:\"none\",touchSelect:\"none\",touchCallout:\"none\",contentZooming:\"none\",userDrag:\"none\",tapHighlightColor:\"rgba(0,0,0,0)\"}};var ub=1,vb=2;ia.prototype={set:function(a){return la(this.options,a),a.touchAction&&this.touchAction.update(),a.inputTarget&&(this.input.destroy(),this.input.target=a.inputTarget,this.input.init()),this},stop:function(a){this.session.stopped=a?vb:ub},recognize:function(a){var b=this.session;if(!b.stopped){this.touchAction.preventDefaults(a);var c,d=this.recognizers,e=b.curRecognizer;(!e||e&&e.state&rb)&&(e=b.curRecognizer=null);for(var f=0;f<d.length;)c=d[f],b.stopped===vb||e&&c!=e&&!c.canRecognizeWith(e)?c.reset():c.recognize(a),!e&&c.state&(ob|pb|qb)&&(e=b.curRecognizer=c),f++}},get:function(a){if(a instanceof Y)return a;for(var b=this.recognizers,c=0;c<b.length;c++)if(b[c].options.event==a)return b[c];return null},add:function(a){if(f(a,\"add\",this))return this;var b=this.get(a.options.event);return b&&this.remove(b),this.recognizers.push(a),a.manager=this,this.touchAction.update(),a},remove:function(a){if(f(a,\"remove\",this))return this;if(a=this.get(a)){var b=this.recognizers,c=r(b,a);-1!==c&&(b.splice(c,1),this.touchAction.update())}return this},on:function(a,b){if(a!==d&&b!==d){var c=this.handlers;return g(q(a),function(a){c[a]=c[a]||[],c[a].push(b)}),this}},off:function(a,b){if(a!==d){var c=this.handlers;return g(q(a),function(a){b?c[a]&&c[a].splice(r(c[a],b),1):delete c[a]}),this}},emit:function(a,b){this.options.domEvents&&ka(a,b);var c=this.handlers[a]&&this.handlers[a].slice();if(c&&c.length){b.type=a,b.preventDefault=function(){b.srcEvent.preventDefault()};for(var d=0;d<c.length;)c[d](b),d++}},destroy:function(){this.element&&ja(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}},la(ha,{INPUT_START:Ea,INPUT_MOVE:Fa,INPUT_END:Ga,INPUT_CANCEL:Ha,STATE_POSSIBLE:nb,STATE_BEGAN:ob,STATE_CHANGED:pb,STATE_ENDED:qb,STATE_RECOGNIZED:rb,STATE_CANCELLED:sb,STATE_FAILED:tb,DIRECTION_NONE:Ia,DIRECTION_LEFT:Ja,DIRECTION_RIGHT:Ka,DIRECTION_UP:La,DIRECTION_DOWN:Ma,DIRECTION_HORIZONTAL:Na,DIRECTION_VERTICAL:Oa,DIRECTION_ALL:Pa,Manager:ia,Input:x,TouchAction:V,TouchInput:P,MouseInput:L,PointerEventInput:M,TouchMouseInput:R,SingleTouchInput:N,Recognizer:Y,AttrRecognizer:aa,Tap:ga,Pan:ba,Swipe:fa,Pinch:ca,Rotate:ea,Press:da,on:m,off:n,each:g,merge:ta,extend:sa,assign:la,inherit:i,bindFn:j,prefixed:u});var wb=\"undefined\"!=typeof a?a:\"undefined\"!=typeof self?self:{};wb.Hammer=ha,\"function\"==typeof define&&define.amd?define(function(){return ha}):\"undefined\"!=typeof module&&module.exports?module.exports=ha:a[c]=ha}(window,document,\"Hammer\");\n", "type": "application/javascript", "title": "$:/plugins/tiddlywiki/hammerjs/hammer.js", "module-type": "library" }, "$:/plugins/tiddlywiki/hammerjs/license": { "text": "The MIT License (MIT)\n\nCopyright (C) 2011-2017 by Jorik Tangelder (Eight Media)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n", "type": "text/plain", "title": "$:/plugins/tiddlywiki/hammerjs/license" }, "$:/plugins/tiddlywiki/hammerjs/readme": { "title": "$:/plugins/tiddlywiki/hammerjs/readme", "text": "This plugin packages [[HammerJS|https://hammerjs.github.io]] for use by other plugins. It does not provide any end-user visible features.\n" } } }
{ "tiddlers": { "$:/plugins/tiddlywiki/help/HelpPanel": { "title": "$:/plugins/tiddlywiki/help/HelpPanel", "tags": "$:/tags/PageTemplate", "text": "<$reveal type=\"match\" state=\"$:/config/ShowHelp\" text=\"yes\">\n<div class=\"tc-help-panel\">\n<div class=\"tc-tiddler-controls\">\n<$button set=\"$:/config/ShowHelp\" setTo=\"no\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button> ''Help Panel''\n</div>\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/HelpPanel]!has[draft.of]]\" \"$:/plugins/tiddlywiki/help/HelpPanel/Support\" \"$:/state/tab/help\">>\n</div>\n</$reveal>\n\n" }, "$:/config/Help/CurrentVideo": { "title": "$:/config/Help/CurrentVideo", "text": "$:/plugins/tiddlywiki/help/Videos/Introduction" }, "$:/config/ShowHelp": { "title": "$:/config/ShowHelp", "text": "no" }, "$:/plugins/help/Buttons/help": { "title": "$:/plugins/help/Buttons/help", "tags": "$:/tags/PageControls", "caption": "{{$:/core/images/help}} {{$:/language/Buttons/Help/Caption}}", "description": "{{$:/language/Buttons/Help/Hint}}", "text": "\\define help-inner()\n<$reveal type=\"match\" state=\"$:/config/ShowHelp\" text=\"yes\">\n<$button set=\"$:/config/ShowHelp\" setTo=\"no\" tooltip={{$:/language/Buttons/Help/Hint}} aria-label={{$:/language/Buttons/Help/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ tc-selected\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/help}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Help/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/config/ShowHelp\" text=\"yes\">\n<$button set=\"$:/config/ShowHelp\" setTo=\"yes\" tooltip={{$:/language/Buttons/Help/Hint}} aria-label={{$:/language/Buttons/Help/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/help}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Help/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n\\end\n<<help-inner>>\n" }, "$:/plugins/tiddlywiki/help/readme": { "title": "$:/plugins/tiddlywiki/help/readme", "text": "This plugin provides an overlay help panel at the bottom right of the window.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/help]]\n" }, "$:/plugins/tiddlywiki/help/styles": { "title": "$:/plugins/tiddlywiki/help/styles", "tags": "[[$:/tags/Stylesheet]]", "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-help-panel {\n\tposition: fixed;\n\tbottom: 0;\n\tright: 0;\n\twidth: 310px;\n\theight: 400px;\n\toverflow: auto;\n\t-webkit-overflow-scrolling: touch;\n\t<<box-shadow \"0px 0px 5px rgba(0, 0, 0, 0.3)\">>\n\tborder: 1px solid <<colour tiddler-border>>;\n\tbackground: <<colour tiddler-background>>;\n\tpadding: 1em;\n\tmargin: 0.5em;\n\tz-index: 1000;\n}\n\ndl.tc-help-cheatsheet {\n\toverflow: hidden;\n}\n\ndl.tc-help-cheatsheet .red {\n\tcolor: red;\n}\n\n.tc-help-cheatsheet > dt {\n\tdisplay: block;\n\tfloat: left;\n\tclear: left;\n\tmargin: 2% 1em 0 0;\n\tpadding;\n\tfont-weight: normal;\n\twidth: 45%;\n}\n\n.tc-help-cheatsheet > dt > pre {\n\tmargin: 0;\n}\n\n.tc-help-cheatsheet > dd {\n\tdisplay: block;\n\tfloat: left;\n\twidth: 45%;\n\tmargin: 1em 0 0 0;\n\tpadding: 0;\n}\n\n.tc-help-cheatsheet > dd > p,\n.tc-help-cheatsheet > dd > h1,\n.tc-help-cheatsheet > dd > pre,\n.tc-help-cheatsheet > dd > ul,\n.tc-help-cheatsheet > dd > ol,\n.tc-help-cheatsheet > dd > dl,\n.tc-help-cheatsheet > dd > table,\n.tc-help-cheatsheet > dd > blockquote,\n.tc-help-cheatsheet > dd > blockquote >p {\n\tmargin: 0;\n}\n\n.tc-help-cheatsheet .tc-image {\n\twidth: 16px;\n}\n" }, "$:/plugins/tiddlywiki/help/HelpPanel/Support": { "title": "$:/plugins/tiddlywiki/help/HelpPanel/Support", "tags": "$:/tags/HelpPanel", "caption": "Support", "text": "~TiddlyWiki is an open source project with a vibrant community of users and developers. We're always happy to help new users get the most from ~TiddlyWiki.\n\nJoin the ~TiddlyWiki mailing list:\n\nhttp://groups.google.com/group/TiddlyWiki\n\nPost bug reports to the ~TiddlyWiki ~GitHub repository:\n\nhttps://github.com/Jermolene/TiddlyWiki5\n" }, "$:/plugins/tiddlywiki/help/HelpPanel/Videos": { "title": "$:/plugins/tiddlywiki/help/HelpPanel/Videos", "tags": "$:/tags/HelpPanel", "caption": "Videos", "text": "\\define show-video-inner(embed)\n<iframe width=\"280\" height=\"157\" src=\"\"\"https://www.youtube.com/embed/$embed$?autoplay=0&showinfo=0&theme=light&rel=0&modestbranding=1&autohide=1\"\"\" frameborder=\"0\" allowfullscreen></iframe>\n\\end\n\n\\define show-video(title)\n<$macrocall $name=\"show-video-inner\" embed={{$title$!!embed}}/>\n<p>{{$title$!!text}}</p>\n\\end\n\n<div class=\"tc-help-panel-inner\">\n\nChoose video: <$select tiddler=\"$:/config/Help/CurrentVideo\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/HelpPanel/Videos]]\">\n<option value=<<currentTiddler>>><$view field=\"caption\"/></option>\n</$list>\n</$select>\n\n<$macrocall $name=\"show-video\" title={{$:/config/Help/CurrentVideo}}>>\n\n</div>\n" }, "$:/plugins/tiddlywiki/help/Videos/FirefoxAndroid": { "title": "$:/plugins/tiddlywiki/help/Videos/FirefoxAndroid", "tags": "$:/tags/HelpPanel/Videos", "caption": "Firefox for Android", "embed": "iikkv9orGGI", "text": "How to get started with using TiddlyWiki as a standalone HTML file with the TiddlyFox add-on for Firefox for Android.\n" }, "$:/plugins/tiddlywiki/help/Videos/GettingStarted": { "title": "$:/plugins/tiddlywiki/help/Videos/GettingStarted", "tags": "$:/tags/HelpPanel/Videos", "caption": "GettingStarted", "embed": "1g66s7UbyuU", "text": "How to get started with using TiddlyWiki as a standalone HTML file.\n" }, "$:/plugins/tiddlywiki/help/Videos/Introduction": { "title": "$:/plugins/tiddlywiki/help/Videos/Introduction", "tags": "$:/tags/HelpPanel/Videos", "caption": "Introduction", "embed": "KtCUr83XgyE", "text": "An introduction to the concepts of TiddlyWiki.\n" }, "$:/plugins/tiddlywiki/help/Videos/TiddlyDesktop": { "title": "$:/plugins/tiddlywiki/help/Videos/TiddlyDesktop", "tags": "$:/tags/HelpPanel/Videos", "caption": "TiddlyDesktop", "embed": "i3Bggkm7paA", "text": "Using TiddlyDesktop, the custom desktop TiddlyWiki application for Windows, OS X and Linux.\n" } } }
<$reveal type="match" state="$:/config/ShowHelp" text="yes"> <div class="tc-help-panel"> <div class="tc-tiddler-controls"> <$button set="$:/config/ShowHelp" setTo="no" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> ''Help Panel'' </div> <<tabs "[all[shadows+tiddlers]tag[$:/tags/HelpPanel]!has[draft.of]]" "$:/plugins/tiddlywiki/help/HelpPanel/Support" "$:/state/tab/help">> </div> </$reveal>
~TiddlyWiki is un projet open source comprenant une communauté très active d'utilisateurs et de développeurs. Nous sommes toujours heureux de pouvoir aider les nouveaux utilisateurs à apprendre plus de ~TiddlyWiki. Rejoignez la mailing list de ~TiddlyWiki [EN]:<br/> http://groups.google.com/group/TiddlyWiki Postez vos rapports de bugs sur le dépôt~GitHub de ~TiddlyWiki [EN]:<br/> https://github.com/Jermolene/TiddlyWiki5 Ou bien rejoignez nous sur le forum ~TiddlyWiki [FR]:<br/> https://forum.tiddlywiki.fr/ Vous y serez toujours bien accueilli
\define show-video-inner(embed) <iframe width="280" height="157" src="""https://www.youtube.com/embed/$embed$?autoplay=0&showinfo=0&theme=light&rel=0&modestbranding=1&autohide=1""" frameborder="0" allowfullscreen></iframe> \end \define show-video(title) <$macrocall $name="show-video-inner" embed={{$title$!!embed}}/> <p>{{$title$!!text}}</p> \end <div class="tc-help-panel-inner"> Choisir une video: <$select tiddler="$:/config/Help/CurrentVideo"> <$list filter="[all[shadows+tiddlers]tag[$:/tags/HelpPanel/Videos]]"> <option value=<<currentTiddler>>><$view field="caption"/></option> </$list> </$select> <$macrocall $name="show-video" title={{$:/config/Help/CurrentVideo}}>> </div>
{ "tiddlers": { "$:/plugins/tiddlywiki/jszip/jszip.js": { "text": "/*!\n\nJSZip - A Javascript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2014 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n!function(a){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=a();else if(\"function\"==typeof define&&define.amd)define([],a);else{var b;b=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i=\"function\"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error(\"Cannot find module '\"+g+\"'\");throw j.code=\"MODULE_NOT_FOUND\",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f=\"function\"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){\"use strict\";function d(a){if(a){this.data=a,this.length=this.data.length,this.index=0,this.zero=0;for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}}var e=a(\"./dataReader\");d.prototype=new e,d.prototype.byteAt=function(a){return this.data[this.zero+a]},d.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./dataReader\":6}],2:[function(a,b,c){\"use strict\";var d=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";c.encode=function(a,b){for(var c,e,f,g,h,i,j,k=\"\",l=0;l<a.length;)c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k=k+d.charAt(g)+d.charAt(h)+d.charAt(i)+d.charAt(j);return k},c.decode=function(a,b){var c,e,f,g,h,i,j,k=\"\",l=0;for(a=a.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");l<a.length;)g=d.indexOf(a.charAt(l++)),h=d.indexOf(a.charAt(l++)),i=d.indexOf(a.charAt(l++)),j=d.indexOf(a.charAt(l++)),c=g<<2|h>>4,e=(15&h)<<4|i>>2,f=(3&i)<<6|j,k+=String.fromCharCode(c),64!=i&&(k+=String.fromCharCode(e)),64!=j&&(k+=String.fromCharCode(f));return k}},{}],3:[function(a,b,c){\"use strict\";function d(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}d.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},b.exports=d},{}],4:[function(a,b,c){\"use strict\";c.STORE={magic:\"\\0\\0\",compress:function(a,b){return a},uncompress:function(a){return a},compressInputType:null,uncompressInputType:null},c.DEFLATE=a(\"./flate\")},{\"./flate\":9}],5:[function(a,b,c){\"use strict\";var d=a(\"./utils\"),e=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];b.exports=function(a,b){if(\"undefined\"==typeof a||!a.length)return 0;var c=\"string\"!==d.getTypeOf(a);\"undefined\"==typeof b&&(b=0);var f=0,g=0,h=0;b^=-1;for(var i=0,j=a.length;i<j;i++)h=c?a[i]:a.charCodeAt(i),g=255&(b^h),f=e[g],b=b>>>8^f;return b^-1}},{\"./utils\":22}],6:[function(a,b,c){\"use strict\";function d(a){this.data=null,this.length=0,this.index=0,this.zero=0}var e=a(\"./utils\");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+a+\"). Corrupted zip ?\")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo(\"string\",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1)}},b.exports=d},{\"./utils\":22}],7:[function(a,b,c){\"use strict\";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!1,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],8:[function(a,b,c){\"use strict\";var d=a(\"./utils\");c.string2binary=function(a){return d.string2binary(a)},c.string2Uint8Array=function(a){return d.transformTo(\"uint8array\",a)},c.uint8Array2String=function(a){return d.transformTo(\"string\",a)},c.string2Blob=function(a){var b=d.transformTo(\"arraybuffer\",a);return d.arrayBuffer2Blob(b)},c.arrayBuffer2Blob=function(a){return d.arrayBuffer2Blob(a)},c.transformTo=function(a,b){return d.transformTo(a,b)},c.getTypeOf=function(a){return d.getTypeOf(a)},c.checkSupport=function(a){return d.checkSupport(a)},c.MAX_VALUE_16BITS=d.MAX_VALUE_16BITS,c.MAX_VALUE_32BITS=d.MAX_VALUE_32BITS,c.pretty=function(a){return d.pretty(a)},c.findCompression=function(a){return d.findCompression(a)},c.isRegExp=function(a){return d.isRegExp(a)}},{\"./utils\":22}],9:[function(a,b,c){\"use strict\";var d=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,e=a(\"pako\");c.uncompressInputType=d?\"uint8array\":\"array\",c.compressInputType=d?\"uint8array\":\"array\",c.magic=\"\\b\\0\",c.compress=function(a,b){return e.deflateRaw(a,{level:b.level||-1})},c.uncompress=function(a){return e.inflateRaw(a)}},{pako:25}],10:[function(a,b,c){\"use strict\";function d(a,b){return this instanceof d?(this.files={},this.comment=null,this.root=\"\",a&&this.load(a,b),void(this.clone=function(){var a=new d;for(var b in this)\"function\"!=typeof this[b]&&(a[b]=this[b]);return a})):new d(a,b)}var e=a(\"./base64\");d.prototype=a(\"./object\"),d.prototype.load=a(\"./load\"),d.support=a(\"./support\"),d.defaults=a(\"./defaults\"),d.utils=a(\"./deprecatedPublicUtils\"),d.base64={encode:function(a){return e.encode(a)},decode:function(a){return e.decode(a)}},d.compressions=a(\"./compressions\"),b.exports=d},{\"./base64\":2,\"./compressions\":4,\"./defaults\":7,\"./deprecatedPublicUtils\":8,\"./load\":11,\"./object\":14,\"./support\":18}],11:[function(a,b,c){\"use strict\";var d=a(\"./base64\"),e=a(\"./utf8\"),f=a(\"./utils\"),g=a(\"./zipEntries\");b.exports=function(a,b){var c,h,i,j;for(b=f.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:e.utf8decode}),b.base64&&(a=d.decode(a)),h=new g(a,b),c=h.files,i=0;i<c.length;i++)j=c[i],this.file(j.fileNameStr,j.decompressed,{binary:!0,optimizedBinaryString:!0,date:j.date,dir:j.dir,comment:j.fileCommentStr.length?j.fileCommentStr:null,unixPermissions:j.unixPermissions,dosPermissions:j.dosPermissions,createFolders:b.createFolders});return h.zipComment.length&&(this.comment=h.zipComment),this}},{\"./base64\":2,\"./utf8\":21,\"./utils\":22,\"./zipEntries\":23}],12:[function(a,b,c){(function(a){\"use strict\";b.exports=function(b,c){return new a(b,c)},b.exports.test=function(b){return a.isBuffer(b)}}).call(this,\"undefined\"!=typeof Buffer?Buffer:void 0)},{}],13:[function(a,b,c){\"use strict\";function d(a){this.data=a,this.length=this.data.length,this.index=0,this.zero=0}var e=a(\"./uint8ArrayReader\");d.prototype=new e,d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./uint8ArrayReader\":19}],14:[function(a,b,c){\"use strict\";var d=a(\"./support\"),e=a(\"./utils\"),f=a(\"./crc32\"),g=a(\"./signature\"),h=a(\"./defaults\"),i=a(\"./base64\"),j=a(\"./compressions\"),k=a(\"./compressedObject\"),l=a(\"./nodeBuffer\"),m=a(\"./utf8\"),n=a(\"./stringWriter\"),o=a(\"./uint8ArrayWriter\"),p=function(a){if(a._data instanceof k&&(a._data=a._data.getContent(),a.options.binary=!0,a.options.base64=!1,\"uint8array\"===e.getTypeOf(a._data))){var b=a._data;a._data=new Uint8Array(b.length),0!==b.length&&a._data.set(b,0)}return a._data},q=function(a){var b=p(a),c=e.getTypeOf(b);return\"string\"===c?!a.options.binary&&d.nodebuffer?l(b,\"utf-8\"):a.asBinary():b},r=function(a){var b=p(this);return null===b||\"undefined\"==typeof b?\"\":(this.options.base64&&(b=i.decode(b)),b=a&&this.options.binary?D.utf8decode(b):e.transformTo(\"string\",b),a||this.options.binary||(b=e.transformTo(\"string\",D.utf8encode(b))),b)},s=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this.options=c,this._initialMetadata={dir:c.dir,date:c.date}};s.prototype={asText:function(){return r.call(this,!0)},asBinary:function(){return r.call(this,!1)},asNodeBuffer:function(){var a=q(this);return e.transformTo(\"nodebuffer\",a)},asUint8Array:function(){var a=q(this);return e.transformTo(\"uint8array\",a)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var t=function(a,b){var c,d=\"\";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},u=function(a){return a=a||{},a.base64!==!0||null!==a.binary&&void 0!==a.binary||(a.binary=!0),a=e.extend(a,h),a.date=a.date||new Date,null!==a.compression&&(a.compression=a.compression.toUpperCase()),a},v=function(a,b,c){var d,f=e.getTypeOf(b);if(c=u(c),\"string\"==typeof c.unixPermissions&&(c.unixPermissions=parseInt(c.unixPermissions,8)),c.unixPermissions&&16384&c.unixPermissions&&(c.dir=!0),c.dosPermissions&&16&c.dosPermissions&&(c.dir=!0),c.dir&&(a=x(a)),c.createFolders&&(d=w(a))&&y.call(this,d,!0),c.dir||null===b||\"undefined\"==typeof b)c.base64=!1,c.binary=!1,b=null,f=null;else if(\"string\"===f)c.binary&&!c.base64&&c.optimizedBinaryString!==!0&&(b=e.string2binary(b));else{if(c.base64=!1,c.binary=!0,!(f||b instanceof k))throw new Error(\"The data of '\"+a+\"' is in an unsupported format !\");\"arraybuffer\"===f&&(b=e.transformTo(\"uint8array\",b))}var g=new s(a,b,c);return this.files[a]=g,g},w=function(a){\"/\"==a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf(\"/\");return b>0?a.substring(0,b):\"\"},x=function(a){return\"/\"!=a.slice(-1)&&(a+=\"/\"),a},y=function(a,b){return b=\"undefined\"!=typeof b&&b,a=x(a),this.files[a]||v.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},z=function(a,b,c){var d,g=new k;return a._data instanceof k?(g.uncompressedSize=a._data.uncompressedSize,g.crc32=a._data.crc32,0===g.uncompressedSize||a.dir?(b=j.STORE,g.compressedContent=\"\",g.crc32=0):a._data.compressionMethod===b.magic?g.compressedContent=a._data.getCompressedContent():(d=a._data.getContent(),g.compressedContent=b.compress(e.transformTo(b.compressInputType,d),c))):(d=q(a),d&&0!==d.length&&!a.dir||(b=j.STORE,d=\"\"),g.uncompressedSize=d.length,g.crc32=f(d),g.compressedContent=b.compress(e.transformTo(b.compressInputType,d),c)),g.compressedSize=g.compressedContent.length,g.compressionMethod=b.magic,g},A=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},B=function(a,b){return 63&(a||0)},C=function(a,b,c,d,h,i){var j,k,l,n,o=(c.compressedContent,i!==m.utf8encode),p=e.transformTo(\"string\",i(b.name)),q=e.transformTo(\"string\",m.utf8encode(b.name)),r=b.comment||\"\",s=e.transformTo(\"string\",i(r)),u=e.transformTo(\"string\",m.utf8encode(r)),v=q.length!==b.name.length,w=u.length!==r.length,x=b.options,y=\"\",z=\"\",C=\"\";l=b._initialMetadata.dir!==b.dir?b.dir:x.dir,n=b._initialMetadata.date!==b.date?b.date:x.date;var D=0,E=0;l&&(D|=16),\"UNIX\"===h?(E=798,D|=A(b.unixPermissions,l)):(E=20,D|=B(b.dosPermissions,l)),j=n.getHours(),j<<=6,j|=n.getMinutes(),j<<=5,j|=n.getSeconds()/2,k=n.getFullYear()-1980,k<<=4,k|=n.getMonth()+1,k<<=5,k|=n.getDate(),v&&(z=t(1,1)+t(f(p),4)+q,y+=\"up\"+t(z.length,2)+z),w&&(C=t(1,1)+t(this.crc32(s),4)+u,y+=\"uc\"+t(C.length,2)+C);var F=\"\";F+=\"\\n\\0\",F+=o||!v&&!w?\"\\0\\0\":\"\\0\\b\",F+=c.compressionMethod,F+=t(j,2),F+=t(k,2),F+=t(c.crc32,4),F+=t(c.compressedSize,4),F+=t(c.uncompressedSize,4),F+=t(p.length,2),F+=t(y.length,2);var G=g.LOCAL_FILE_HEADER+F+p+y,H=g.CENTRAL_FILE_HEADER+t(E,2)+F+t(s.length,2)+\"\\0\\0\\0\\0\"+t(D,4)+t(d,4)+p+y+s;return{fileRecord:G,dirRecord:H,compressedObject:c}},D={load:function(a,b){throw new Error(\"Load method is not defined. Is the file jszip-load.js included ?\")},filter:function(a){var b,c,d,f,g=[];for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],f=new s(d.name,d._data,e.extend(d.options)),c=b.slice(this.root.length,b.length),b.slice(0,this.root.length)===this.root&&a(c,f)&&g.push(f));return g},file:function(a,b,c){if(1===arguments.length){if(e.isRegExp(a)){var d=a;return this.filter(function(a,b){return!b.dir&&d.test(a)})}return this.filter(function(b,c){return!c.dir&&b===a})[0]||null}return a=this.root+a,v.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(e.isRegExp(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=y.call(this,b),d=this.clone();return d.root=c.name,d},remove:function(a){a=this.root+a;var b=this.files[a];if(b||(\"/\"!=a.slice(-1)&&(a+=\"/\"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){a=e.extend(a||{},{base64:!0,compression:\"STORE\",compressionOptions:null,type:\"base64\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:m.utf8encode}),e.checkSupport(a.type),\"darwin\"!==a.platform&&\"freebsd\"!==a.platform&&\"linux\"!==a.platform&&\"sunos\"!==a.platform||(a.platform=\"UNIX\"),\"win32\"===a.platform&&(a.platform=\"DOS\");var b,c,d=[],f=0,h=0,k=e.transformTo(\"string\",a.encodeFileName(a.comment||this.comment||\"\"));for(var l in this.files)if(this.files.hasOwnProperty(l)){var p=this.files[l],q=p.options.compression||a.compression.toUpperCase(),r=j[q];if(!r)throw new Error(q+\" is not a valid compression method !\");var s=p.options.compressionOptions||a.compressionOptions||{},u=z.call(this,p,r,s),v=C.call(this,l,p,u,f,a.platform,a.encodeFileName);f+=v.fileRecord.length+u.compressedSize,h+=v.dirRecord.length,d.push(v)}var w=\"\";w=g.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+t(d.length,2)+t(d.length,2)+t(h,4)+t(f,4)+t(k.length,2)+k;var x=a.type.toLowerCase();for(b=\"uint8array\"===x||\"arraybuffer\"===x||\"blob\"===x||\"nodebuffer\"===x?new o(f+h+w.length):new n(f+h+w.length),c=0;c<d.length;c++)b.append(d[c].fileRecord),b.append(d[c].compressedObject.compressedContent);for(c=0;c<d.length;c++)b.append(d[c].dirRecord);b.append(w);var y=b.finalize();switch(a.type.toLowerCase()){case\"uint8array\":case\"arraybuffer\":case\"nodebuffer\":return e.transformTo(a.type.toLowerCase(),y);case\"blob\":return e.arrayBuffer2Blob(e.transformTo(\"arraybuffer\",y),a.mimeType);case\"base64\":return a.base64?i.encode(y):y;default:return y}},crc32:function(a,b){return f(a,b)},utf8encode:function(a){return e.transformTo(\"string\",m.utf8encode(a))},utf8decode:function(a){return m.utf8decode(a)}};b.exports=D},{\"./base64\":2,\"./compressedObject\":3,\"./compressions\":4,\"./crc32\":5,\"./defaults\":7,\"./nodeBuffer\":12,\"./signature\":15,\"./stringWriter\":17,\"./support\":18,\"./uint8ArrayWriter\":20,\"./utf8\":21,\"./utils\":22}],15:[function(a,b,c){\"use strict\";c.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",c.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",c.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",c.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",c.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],16:[function(a,b,c){\"use strict\";function d(a,b){this.data=a,b||(this.data=f.string2binary(this.data)),this.length=this.data.length,this.index=0,this.zero=0}var e=a(\"./dataReader\"),f=a(\"./utils\");d.prototype=new e,d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./dataReader\":6,\"./utils\":22}],17:[function(a,b,c){\"use strict\";var d=a(\"./utils\"),e=function(){this.data=[]};e.prototype={append:function(a){a=d.transformTo(\"string\",a),this.data.push(a)},finalize:function(){return this.data.join(\"\")}},b.exports=e},{\"./utils\":22}],18:[function(a,b,c){(function(a){\"use strict\";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,c.nodebuffer=\"undefined\"!=typeof a,c.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)c.blob=!1;else{var b=new ArrayBuffer(0);try{c.blob=0===new Blob([b],{type:\"application/zip\"}).size}catch(d){try{var e=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,f=new e;f.append(b),c.blob=0===f.getBlob(\"application/zip\").size}catch(d){c.blob=!1}}}}).call(this,\"undefined\"!=typeof Buffer?Buffer:void 0)},{}],19:[function(a,b,c){\"use strict\";function d(a){a&&(this.data=a,this.length=this.data.length,this.index=0,this.zero=0)}var e=a(\"./arrayReader\");d.prototype=new e,d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./arrayReader\":1}],20:[function(a,b,c){\"use strict\";var d=a(\"./utils\"),e=function(a){this.data=new Uint8Array(a),this.index=0};e.prototype={append:function(a){0!==a.length&&(a=d.transformTo(\"uint8array\",a),this.data.set(a,this.index),this.index+=a.length)},finalize:function(){return this.data}},b.exports=e},{\"./utils\":22}],21:[function(a,b,c){\"use strict\";for(var d=a(\"./utils\"),e=a(\"./support\"),f=a(\"./nodeBuffer\"),g=new Array(256),h=0;h<256;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;g[254]=g[254]=1;var i=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=e.uint8array?new Uint8Array(i):new Array(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},j=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+g[a[c]]>b?c:b},k=function(a){var b,c,e,f,h=a.length,i=new Array(2*h);for(c=0,b=0;b<h;)if(e=a[b++],e<128)i[c++]=e;else if(f=g[e],f>4)i[c++]=65533,b+=f-1;else{for(e&=2===f?31:3===f?15:7;f>1&&b<h;)e=e<<6|63&a[b++],f--;f>1?i[c++]=65533:e<65536?i[c++]=e:(e-=65536,i[c++]=55296|e>>10&1023,i[c++]=56320|1023&e)}return i.length!==c&&(i.subarray?i=i.subarray(0,c):i.length=c),d.applyFromCharCode(i)};c.utf8encode=function(a){return e.nodebuffer?f(a,\"utf-8\"):i(a)},c.utf8decode=function(a){if(e.nodebuffer)return d.transformTo(\"nodebuffer\",a).toString(\"utf-8\");a=d.transformTo(e.uint8array?\"uint8array\":\"array\",a);for(var b=[],c=0,f=a.length,g=65536;c<f;){var h=j(a,Math.min(c+g,f));e.uint8array?b.push(k(a.subarray(c,h))):b.push(k(a.slice(c,h))),c=h}return b.join(\"\")}},{\"./nodeBuffer\":12,\"./support\":18,\"./utils\":22}],22:[function(a,b,c){\"use strict\";function d(a){return a}function e(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function f(a){var b=65536,d=[],e=a.length,f=c.getTypeOf(a),g=0,h=!0;try{switch(f){case\"uint8array\":String.fromCharCode.apply(null,new Uint8Array(0));break;case\"nodebuffer\":String.fromCharCode.apply(null,j(0))}}catch(i){h=!1}if(!h){for(var k=\"\",l=0;l<a.length;l++)k+=String.fromCharCode(a[l]);return k}for(;g<e&&b>1;)try{\"array\"===f||\"nodebuffer\"===f?d.push(String.fromCharCode.apply(null,a.slice(g,Math.min(g+b,e)))):d.push(String.fromCharCode.apply(null,a.subarray(g,Math.min(g+b,e)))),g+=b}catch(i){b=Math.floor(b/2)}return d.join(\"\")}function g(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];return b}var h=a(\"./support\"),i=a(\"./compressions\"),j=a(\"./nodeBuffer\");c.string2binary=function(a){for(var b=\"\",c=0;c<a.length;c++)b+=String.fromCharCode(255&a.charCodeAt(c));return b},c.arrayBuffer2Blob=function(a,b){c.checkSupport(\"blob\"),b=b||\"application/zip\";try{return new Blob([a],{type:b})}catch(d){try{var e=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,f=new e;return f.append(a),f.getBlob(b)}catch(d){throw new Error(\"Bug : can't construct the Blob.\")}}},c.applyFromCharCode=f;var k={};k.string={string:d,array:function(a){return e(a,new Array(a.length))},arraybuffer:function(a){return k.string.uint8array(a).buffer},uint8array:function(a){return e(a,new Uint8Array(a.length))},nodebuffer:function(a){return e(a,j(a.length))}},k.array={string:f,array:d,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return j(a)}},k.arraybuffer={string:function(a){return f(new Uint8Array(a))},array:function(a){return g(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:d,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return j(new Uint8Array(a))}},k.uint8array={string:f,array:function(a){return g(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:d,nodebuffer:function(a){return j(a)}},k.nodebuffer={string:f,array:function(a){return g(a,new Array(a.length))},arraybuffer:function(a){return k.nodebuffer.uint8array(a).buffer},uint8array:function(a){return g(a,new Uint8Array(a.length))},nodebuffer:d},c.transformTo=function(a,b){if(b||(b=\"\"),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=k[d][a](b);return e},c.getTypeOf=function(a){return\"string\"==typeof a?\"string\":\"[object Array]\"===Object.prototype.toString.call(a)?\"array\":h.nodebuffer&&j.test(a)?\"nodebuffer\":h.uint8array&&a instanceof Uint8Array?\"uint8array\":h.arraybuffer&&a instanceof ArrayBuffer?\"arraybuffer\":void 0},c.checkSupport=function(a){var b=h[a.toLowerCase()];if(!b)throw new Error(a+\" is not supported by this browser\")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d=\"\";for(c=0;c<(a||\"\").length;c++)b=a.charCodeAt(c),d+=\"\\\\x\"+(b<16?\"0\":\"\")+b.toString(16).toUpperCase();return d},c.findCompression=function(a){for(var b in i)if(i.hasOwnProperty(b)&&i[b].magic===a)return i[b];return null},c.isRegExp=function(a){return\"[object RegExp]\"===Object.prototype.toString.call(a)},c.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&\"undefined\"==typeof c[b]&&(c[b]=arguments[a][b]);return c}},{\"./compressions\":4,\"./nodeBuffer\":12,\"./support\":18}],23:[function(a,b,c){\"use strict\";function d(a,b){this.files=[],this.loadOptions=b,a&&this.load(a)}var e=a(\"./stringReader\"),f=a(\"./nodeBufferReader\"),g=a(\"./uint8ArrayReader\"),h=a(\"./arrayReader\"),i=a(\"./utils\"),j=a(\"./signature\"),k=a(\"./zipEntry\"),l=a(\"./support\");a(\"./object\");d.prototype={checkSignature:function(a){var b=this.reader.readString(4);if(b!==a)throw new Error(\"Corrupted zip or bug : unexpected signature (\"+i.pretty(b)+\", expected \"+i.pretty(a)+\")\")},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4),e=d===b;return this.reader.setIndex(c),e},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=l.uint8array?\"uint8array\":\"array\",c=i.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;e<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readString(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(j.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===j.CENTRAL_FILE_HEADER;)a=new k({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(j.CENTRAL_DIRECTORY_END);if(a<0){var b=!this.isSignature(0,j.LOCAL_FILE_HEADER);throw b?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip : can't find end of central directory\")}this.reader.setIndex(a);var c=a;if(this.checkSignature(j.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(j.ZIP64_CENTRAL_DIRECTORY_LOCATOR),a<0)throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(a),this.checkSignature(j.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,j.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(j.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(j.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,j.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(e)+\" bytes.\")},prepareReader:function(a){var b=i.getTypeOf(a);if(i.checkSupport(b),\"string\"!==b||l.uint8array)if(\"nodebuffer\"===b)this.reader=new f(a);else if(l.uint8array)this.reader=new g(i.transformTo(\"uint8array\",a));else{if(!l.array)throw new Error(\"Unexpected error: unsupported type '\"+b+\"'\");this.reader=new h(i.transformTo(\"array\",a))}else this.reader=new e(a,this.loadOptions.optimizedBinaryString)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{\"./arrayReader\":1,\"./nodeBufferReader\":13,\"./object\":14,\"./signature\":15,\"./stringReader\":16,\"./support\":18,\"./uint8ArrayReader\":19,\"./utils\":22,\"./zipEntry\":24}],24:[function(a,b,c){\"use strict\";function d(a,b){this.options=a,this.loadOptions=b}var e=a(\"./stringReader\"),f=a(\"./utils\"),g=a(\"./compressedObject\"),h=a(\"./object\"),i=a(\"./support\"),j=0,k=3;d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},prepareCompressedContent:function(a,b,c){return function(){var d=a.index;a.setIndex(b);var e=a.readData(c);return a.setIndex(d),e}},prepareContent:function(a,b,c,d,e){return function(){var a=f.transformTo(d.uncompressInputType,this.getCompressedContent()),b=d.uncompress(a);if(b.length!==e)throw new Error(\"Bug : uncompressed data size mismatch\");return b}},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize==-1||this.uncompressedSize==-1)throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)\");if(b=f.findCompression(this.compressionMethod),null===b)throw new Error(\"Corrupted zip : compression \"+f.pretty(this.compressionMethod)+\" unknown (inner file : \"+f.transformTo(\"string\",this.fileName)+\")\");if(this.decompressed=new g,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(a,a.index,this.compressedSize,b),this.decompressed.getContent=this.prepareContent(a,a.index,this.compressedSize,b,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=f.transformTo(\"string\",this.decompressed.getContent()),h.crc32(this.decompressed)!==this.crc32))throw new Error(\"Corrupted zip : CRC32 mismatch\");\n},readCentralPart:function(a){if(this.versionMadeBy=a.readInt(2),this.versionNeeded=a.readInt(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4),this.fileNameLength=a.readInt(2),this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");this.fileName=a.readData(this.fileNameLength),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===j&&(this.dosPermissions=63&this.externalFileAttributes),a===k&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=new e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index;for(this.extraFields=this.extraFields||{};a.index<e+this.extraFieldsLength;)b=a.readInt(2),c=a.readInt(2),d=a.readString(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){var a=i.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=h.utf8decode(this.fileName),this.fileCommentStr=h.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=f.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var e=f.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(e)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=new e(a.value);return 1!==b.readInt(1)?null:h.crc32(this.fileName)!==b.readInt(4)?null:h.utf8decode(b.readString(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=new e(a.value);return 1!==b.readInt(1)?null:h.crc32(this.fileComment)!==b.readInt(4)?null:h.utf8decode(b.readString(a.length-5))}return null}},b.exports=d},{\"./compressedObject\":3,\"./object\":14,\"./stringReader\":16,\"./support\":18,\"./utils\":22}],25:[function(a,b,c){\"use strict\";var d=a(\"./lib/utils/common\").assign,e=a(\"./lib/deflate\"),f=a(\"./lib/inflate\"),g=a(\"./lib/zlib/constants\"),h={};d(h,e,f,g),b.exports=h},{\"./lib/deflate\":26,\"./lib/inflate\":27,\"./lib/utils/common\":28,\"./lib/zlib/constants\":31}],26:[function(a,b,c){\"use strict\";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:\"\"},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e=\"string\"==typeof b.dictionary?j.string2buf(b.dictionary):\"[object ArrayBuffer]\"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a(\"./zlib/deflate\"),i=a(\"./utils/common\"),j=a(\"./utils/strings\"),k=a(\"./zlib/messages\"),l=a(\"./zlib/zstream\"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,\"string\"==typeof a?e.input=j.string2buf(a):\"[object ArrayBuffer]\"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||(\"string\"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{\"./utils/common\":28,\"./utils/strings\":29,\"./zlib/deflate\":33,\"./zlib/messages\":38,\"./zlib/zstream\":40}],27:[function(a,b,c){\"use strict\";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:\"\"},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a(\"./zlib/inflate\"),h=a(\"./utils/common\"),i=a(\"./utils/strings\"),j=a(\"./zlib/constants\"),k=a(\"./zlib/messages\"),l=a(\"./zlib/zstream\"),m=a(\"./zlib/gzheader\"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,\"string\"==typeof a?m.input=i.binstring2buf(a):\"[object ArrayBuffer]\"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l=\"string\"==typeof p?i.string2buf(p):\"[object ArrayBuffer]\"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{\"./utils/common\":28,\"./utils/strings\":29,\"./zlib/constants\":31,\"./zlib/gzheader\":34,\"./zlib/inflate\":36,\"./zlib/messages\":38,\"./zlib/zstream\":40}],28:[function(a,b,c){\"use strict\";var d=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if(\"object\"!=typeof c)throw new TypeError(c+\"must be non-object\");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],29:[function(a,b,c){\"use strict\";function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c=\"\",d=0;d<b;d++)c+=String.fromCharCode(a[d]);return c}var e=a(\"./common\"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;j<256;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new e.Buf8(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c<d;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;c<h;)if(f=a[c++],f<128)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c<h;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{\"./common\":28}],30:[function(a,b,c){\"use strict\";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}b.exports=d},{}],31:[function(a,b,c){\"use strict\";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],32:[function(a,b,c){\"use strict\";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],33:[function(a,b,c){\"use strict\";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ja-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ja)););}while(a.lookahead<la&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c)),a.match_length>=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ja-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===U||a.match_length===ja&&a.strstart-a.match_start>4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ja-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return ua}else if(a.match_available){if(d=F._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return ua}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=F._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a),a.lookahead<=ka&&b===J)return ua;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&e<f);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ja-1)/ja),i.window=new E.Buf8(2*i.w_size),i.head=new E.Buf16(i.hash_size),i.prev=new E.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new E.Buf8(i.pending_buf_size),i.d_buf=1*i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+ja-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--e);c.strstart=d,c.lookahead=ja-1,m(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=ja-1,c.match_available=0,a.next_in=i,a.input=j,a.avail_in=h,c.wrap=g,O}var D,E=a(\"../utils/common\"),F=a(\"./trees\"),G=a(\"./adler32\"),H=a(\"./crc32\"),I=a(\"./messages\"),J=0,K=1,L=3,M=4,N=5,O=0,P=1,Q=-2,R=-3,S=-5,T=-1,U=1,V=2,W=3,X=4,Y=0,Z=2,$=8,_=9,aa=15,ba=8,ca=29,da=256,ea=da+1+ca,fa=30,ga=19,ha=2*ea+1,ia=15,ja=3,ka=258,la=ka+ja+1,ma=32,na=42,oa=69,pa=73,qa=91,ra=103,sa=113,ta=666,ua=1,va=2,wa=3,xa=4,ya=3;D=[new s(0,0,0,0,n),new s(4,4,8,4,o),new s(4,5,16,8,o),new s(4,6,32,32,o),new s(4,4,16,16,p),new s(8,16,32,32,p),new s(8,16,128,128,p),new s(8,32,128,256,p),new s(32,128,258,1024,p),new s(32,258,258,4096,p)],c.deflateInit=z,c.deflateInit2=y,c.deflateReset=w,c.deflateResetKeep=v,c.deflateSetHeader=x,c.deflate=A,c.deflateEnd=B,c.deflateSetDictionary=C,c.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":28,\"./adler32\":30,\"./crc32\":32,\"./messages\":38,\"./trees\":39}],34:[function(a,b,c){\"use strict\";function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}b.exports=d},{}],35:[function(a,b,c){\"use strict\";var d=30,e=12;b.exports=function(a,b){var c,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;c=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=c.dmax,l=c.wsize,m=c.whave,n=c.wnext,o=c.window,p=c.hold,q=c.bits,r=c.lencode,s=c.distcode,t=(1<<c.lenbits)-1,u=(1<<c.distbits)-1;a:do{q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){c.mode=e;break a}a.msg=\"invalid literal/length code\",c.mode=d;break a}x=65535&v,w&=15,w&&(q<w&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg=\"invalid distance code\",c.mode=d;break a}if(y=65535&v,w&=15,q<w&&(p+=B[f++]<<q,q+=8,q<w&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg=\"invalid distance too far back\",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg=\"invalid distance too far back\",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(n<w){if(z+=l+n-w,w-=n,w<x){x-=w;do C[h++]=o[z++];while(--w);if(z=0,n<x){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f<g&&h<j);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=f<g?5+(g-f):5-(f-g),a.avail_out=h<j?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],36:[function(a,b,c){\"use strict\";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg=\"\",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new s.Buf8(f.wsize)),d>=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new s.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return G;c=a.state,c.mode===W&&(c.mode=X),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=D;a:for(;;)switch(c.mode){case L:if(0===c.wrap){c.mode=X;break}for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg=\"incorrect header check\",c.mode=ma;break}if((15&m)!==K){a.msg=\"unknown compression method\",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg=\"invalid window size\",c.mode=ma;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?U:W,m=0,n=0;break;case M:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==K){a.msg=\"unknown compression method\",c.mode=ma;break}if(57344&c.flags){a.msg=\"unknown header flags set\",c.mode=ma;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,\nn+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg=\"header crc mismatch\",c.mode=ma;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=V;case V:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,F;a.adler=c.check=1,c.mode=W;case W:if(b===B||b===C)break a;case X:if(c.last){m>>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg=\"invalid block type\",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg=\"invalid stored block lengths\",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg=\"too many length or distance symbols\",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.ncode;){for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg=\"invalid code lengths set\",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(sa<16)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg=\"invalid bit length repeat\",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg=\"invalid bit length repeat\",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg=\"invalid code -- missing end-of-block\",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg=\"invalid literal/lengths set\",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg=\"invalid distances set\",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg=\"invalid literal/length code\",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg=\"invalid distance code\",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg=\"invalid distance too far back\",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg=\"invalid distance too far back\",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?u(c.check,f,p,h-p):t(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg=\"incorrect data check\",c.mode=ma;break}m=0,n=0}c.mode=ka;case ka:if(c.wrap&&c.flags){for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg=\"incorrect length check\",c.mode=ma;break}m=0,n=0}c.mode=la;case la:xa=E;break a;case ma:xa=H;break a;case na:return I;case oa:default:return G}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<ma&&(c.mode<ja||b!==A))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=na,I):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?u(c.check,f,p,a.next_out-p):t(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===W?128:0)+(c.mode===ca||c.mode===Z?256:0),(0===o&&0===p||b===A)&&xa===D&&(xa=J),xa)}function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b.window=null),a.state=null,D}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.head=b,b.done=!1,D)):G}function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c.wrap&&c.mode!==V?G:c.mode===V&&(d=1,d=t(d,b,f,0),d!==c.check)?H:(e=l(a,b,f,f))?(c.mode=na,I):(c.havedict=1,D)):G}var q,r,s=a(\"../utils/common\"),t=a(\"./adler32\"),u=a(\"./crc32\"),v=a(\"./inffast\"),w=a(\"./inftrees\"),x=0,y=1,z=2,A=4,B=5,C=6,D=0,E=1,F=2,G=-2,H=-3,I=-4,J=-5,K=8,L=1,M=2,N=3,O=4,P=5,Q=6,R=7,S=8,T=9,U=10,V=11,W=12,X=13,Y=14,Z=15,$=16,_=17,aa=18,ba=19,ca=20,da=21,ea=22,fa=23,ga=24,ha=25,ia=26,ja=27,ka=28,la=29,ma=30,na=31,oa=32,pa=852,qa=592,ra=15,sa=ra,ta=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateSetDictionary=p,c.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":28,\"./adler32\":30,\"./crc32\":32,\"./inffast\":35,\"./inftrees\":37}],37:[function(a,b,c){\"use strict\";var d=a(\"../utils/common\"),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;D<=e;D++)P[D]=0;for(E=0;E<o;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F<G&&0===P[F];F++);for(H<F&&(H=F),K=1,D=1;D<=e;D++)if(K<<=1,K-=P[D],K<0)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D<e;D++)Q[D+1]=Q[D]+P[D];for(E=0;E<o;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;I+J<G&&(K-=P[I+J],!(K<=0));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{\"../utils/common\":28}],38:[function(a,b,c){\"use strict\";b.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],39:[function(a,b,c){\"use strict\";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi_buf),a.bi_buf=b>>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function j(a,b,c){i(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;c<V;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka[d]=c,a=0;a<1<<ba[d];a++)ja[c++]=d;for(ja[c-1]=d,f=0,d=0;d<16;d++)for(la[d]=f,a=0;a<1<<ca[d];a++)ia[f++]=d;for(f>>=7;d<T;d++)for(la[d]=f<<7,a=0;a<1<<ca[d]-7;a++)ia[256+f++]=d;for(b=0;b<=W;b++)g[b]=0;for(a=0;a<=143;)ga[2*a+1]=8,a++,g[8]++;for(;a<=255;)ga[2*a+1]=9,a++,g[9]++;for(;a<=279;)ga[2*a+1]=7,a++,g[7]++;for(;a<=287;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;a<T;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a.dyn_dtree[2*b]=0;for(b=0;b<U;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&s(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!s(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],e=a.pending_buf[a.l_buf+k],k++,0===d?j(a,e,b):(f=ja[e],j(a,f+R+1,b),h=ba[f],0!==h&&(e-=ka[f],i(a,e,h)),d--,f=g(d),j(a,f,c),h=ca[f],0!==h&&(d-=la[f],i(a,d,h)));while(k<a.last_lit);j(a,Z,b)}function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=V,c=0;c<i;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=j<2?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):h<=10?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;d<=c;d++)if(e=g,g=b[2*(d+1)+1],!(++h<k&&e===g)){if(h<l){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):h<=10?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b<R;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a(\"../utils/common\"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{\"../utils/common\":28}],40:[function(a,b,c){\"use strict\";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)});", "type": "application/javascript", "title": "$:/plugins/tiddlywiki/jszip/jszip.js", "module-type": "library" }, "$:/plugins/tiddlywiki/jszip/license": { "text": "JSZip is dual licensed. You may use it under the MIT license *or* the GPLv3\nlicense.\n\nThe MIT License\n===============\n\nCopyright (c) 2009-2014 Stuart Knightley, David Duponchel, Franz Buchinger, António Afonso\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nGPL version 3\n=============\n\n GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n Preamble\n\n The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users. We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors. You can apply it to\nyour programs, too.\n\n When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights. Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received. You must make sure that they, too, receive\nor can get the source code. And you must show them these terms so they\nknow their rights.\n\n Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software. For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so. This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software. The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable. Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts. If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary. To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n The precise terms and conditions for copying, distribution and\nmodification follow.\n\n TERMS AND CONDITIONS\n\n 0. Definitions.\n\n \"This License\" refers to version 3 of the GNU General Public License.\n\n \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n \"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n 1. Source Code.\n\n The \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\n A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n The Corresponding Source for a work in source code form is that\nsame work.\n\n 2. Basic Permissions.\n\n All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n Conveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n 4. Conveying Verbatim Copies.\n\n You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n 5. Conveying Modified Source Versions.\n\n You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n\n b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n\n c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n\n d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\n A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n\n b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n\n c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n\n d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n\n e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\n A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n 7. Additional Terms.\n\n \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n\n b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n\n c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n\n d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n\n e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n\n f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors.\n\n All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n 8. Termination.\n\n You may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n 9. Acceptance Not Required for Having Copies.\n\n You are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n 10. Automatic Licensing of Downstream Recipients.\n\n Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\n An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n 11. Patents.\n\n A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\n A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n 12. No Surrender of Others' Freedom.\n\n If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n 13. Use with the GNU Affero General Public License.\n\n Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n 14. Revised Versions of this License.\n\n The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time. Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n Each version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation. If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n Later license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n 15. Disclaimer of Warranty.\n\n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n 16. Limitation of Liability.\n\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n 17. Interpretation of Sections 15 and 16.\n\n If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n END OF TERMS AND CONDITIONS\n", "type": "text/plain", "title": "$:/plugins/tiddlywiki/jszip/license" }, "$:/plugins/tiddlywiki/jszip/readme": { "title": "$:/plugins/tiddlywiki/jszip/readme", "text": "This plugin packages [[JSZip|https://stuk.github.io/jszip/]] for use by other plugins. It does not provide any end-user visible features.\n" } } }
{ "tiddlers": { "$:/plugins/tiddlywiki/xlsx-utils/controls": { "title": "$:/plugins/tiddlywiki/xlsx-utils/controls", "caption": "XLSX Utilities", "tags": "$:/tags/ControlPanel", "text": "\\define help-button(state)\n<$button popup=\"\"\"$:/state/expand-help/$state$\"\"\" class=\"tc-btn-invisible tc-popup-keep\">\n{{$:/core/images/help}}\n</$button>\n\\end\n\n\\define help-content(type,state)\n<$reveal tag=\"span\" state=\"\"\"$:/state/expand-help/$state$\"\"\" type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down tc-popup-keep\" style=\"padding: 0.5em; max-width: 30em; white-space: normal;\">\n<$transclude tiddler=\"\"\"$:/plugins/tiddlywiki/xlsx-utils/docs/$type$\"\"\" mode=\"block\"/>\n</div>\n</$reveal>\n\\end\n\n\\define renameProxyTitle()\n$:/state/plugins/tiddlywiki/xlsx-utils/rename-$(currentTiddler)$\n\\end\n\n\\define rename-current-tiddler()\n<$edit-text tag=\"input\" tiddler=<<renameProxyTitle>> placeholder=\"Rename\" default=<<currentTiddler>> size=\"50\"/>\n<$reveal type=\"nomatch\" state=\"\"\"$(renameProxyTitle)$\"\"\" text=<<currentTiddler>> default=<<currentTiddler>> tag=\"span\">\n<$button>\n<$action-deletetiddler $tiddler=<<renameProxyTitle>>/>\ncancel\n</$button>\n<$button>\n<$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to={{$(renameProxyTitle)$}}/>\n<$action-deletetiddler $tiddler=<<renameProxyTitle>>/>\nrename\n</$button>\n<$set name=\"proxy-title\" value={{$(renameProxyTitle)$}}>\n<$list filter=\"\"\"[<proxy-title>is[tiddler]]\"\"\">\nWarning: tiddler already exists\n</$list>\n</$set>\n</$reveal>\n\\end\n\n\\define expand-collapse-button(state)\n<$reveal state=\"\"\"$:/state/expand/$state$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/expand/$state$\"\"\" $value=\"no\"/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal state=\"\"\"$:/state/expand/$state$\"\"\" type=\"nomatch\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/expand/$state$\"\"\" $value=\"yes\"/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n\\end\n\n\\define expand-collapse-content(state,content,class)\n<$reveal state=\"\"\"$:/state/expand/$state$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"div\" class=\"\"\"$class$\"\"\" animate=\"yes\" retain=\"yes\">\n$content$\n</$reveal>\n\\end\n\n\\define up-down-buttons(parent,child)\n<$list filter=\"[list<$parent$>butfirst[]field:title<$child$>limit[1]]\" variable=\"listItem\">\n<$button class=\"tc-btn-invisible\">\n<$action-listops $tiddler=<<$parent$>> $subfilter=\"+[move:-1<$child$>]\"/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$list>\n<$list filter=\"[list<$parent$>butlast[]field:title<$child$>limit[1]]\" variable=\"listItem\">\n<$button class=\"tc-btn-invisible\">\n<$action-listops $tiddler=<<$parent$>> $subfilter=\"+[move:1<$child$>]\"/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$list>\n\\end\n\n\\define edit-button(state)\n<$reveal state=\"\"\"$:/state/edit/$state$\"\"\" type=\"nomatch\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/edit/$state$\"\"\" $value=\"yes\"/>\n<$action-setfield $tiddler=\"\"\"$:/state/expand/$state$\"\"\" $value=\"yes\"/>\n{{$:/core/images/edit-button}}\n</$button>\n</$reveal>\n<$reveal state=\"\"\"$:/state/edit/$state$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/edit/$state$\"\"\" $value=\"no\"/>\n{{$:/core/images/done-button}} Finish editing\n</$button>\n</$reveal>\n\\end\n\n\\define delete-item-button(filter,parent,title,prompt)\n<$button class=\"tc-btn-invisible\">\n<$action-deletetiddler $filter=\"\"\"$filter$\"\"\"/>\n<$action-listops $tiddler=\"\"\"$parent$\"\"\" $subfilter=\"-[[$title$]]\"/>\n{{$:/core/images/delete-button}}$prompt$\n</$button>\n\\end\n\n\\define edit-field()\n<$select tiddler=<<field>> field=\"import-field-list-op\" default=\"none\">\n<option value=\"none\">Set field</option>\n<option value=\"append\">Append to list field</option>\n</$select>\n<$edit-text tiddler=<<field>> field=\"import-field-name\" size=\"10\" tag=\"input\" placeholder=\"field name\"default=\"\"/>\n<$reveal state=\"\"\"$(field)$!!import-field-list-op\"\"\" type=\"match\" text=\"none\" default=\"none\" tag=\"span\">\nto\n</$reveal>\n<$reveal state=\"\"\"$(field)$!!import-field-list-op\"\"\" type=\"match\" text=\"append\" default=\"none\" tag=\"span\">\nthe\n</$reveal>\n<$select tiddler=<<field>> field=\"import-field-type\" default=\"string\">\n<option value=\"date\">date</option>\n<option value=\"string\">string</option>\n</$select>\n<$select tiddler=<<field>> field=\"import-field-source\" default=\"column\">\n<option value=\"column\">from column</option>\n<option value=\"constant\">constant</option>\n</$select>\n<$reveal state=\"\"\"$(field)$!!import-field-source\"\"\" type=\"match\" text=\"column\" default=\"column\" tag=\"span\">\n<$edit-text tiddler=<<field>> field=\"import-field-column\" tag=\"input\" placeholder=\"column\" default=\"\"/>\nprefixed\n<$edit-text tiddler=<<field>> field=\"import-field-prefix\" tag=\"input\" placeholder=\"prefix\" default=\"\"/>,\nsuffixed\n<$edit-text tiddler=<<field>> field=\"import-field-suffix\" tag=\"input\" placeholder=\"suffix\" default=\"\"/>\n</$reveal>\n<$reveal state=\"\"\"$(field)$!!import-field-source\"\"\" type=\"match\" text=\"constant\" default=\"column\" tag=\"span\">\n<$edit-text tiddler=<<field>> field=\"import-field-value\" tag=\"input\" placeholder=\"constant\" default=\"\"/>\n</$reveal>\n<$checkbox tiddler=<<field>> field=\"import-field-skip-tiddler-if-blank\" checked=\"yes\" unchecked=\"no\" default=\"no\">\nSkip this tiddler when field blank\n<br/>\nTitle:\n<$tiddler tiddler=<<field>>>\n<<rename-current-tiddler>>\n</$tiddler>\n\\end\n\n\\define view-field()\n<$link to=<<field>>>\n<$list filter=\"[<field>!has[import-field-list-op]]\" variable=\"listItem\">\nSet field ''<$view tiddler=<<field>> field=\"import-field-name\"/>'' to\n</$list>\n<$list filter=\"[<field>get[import-field-list-op]prefix[append]]\" variable=\"listItem\">\nAppend to list field ''<$view tiddler=<<field>> field=\"import-field-name\"/>''\n</$list>\n<$list filter=\"[<field>has[import-field-prefix]]\" variable=\"listItem\">\n''<code><$view tiddler=<<field>> field=\"import-field-prefix\"/></code>'' +\n</$list>\n<$list filter=\"[<field>get[import-field-type]prefix[date]]\" variable=\"listItem\">\ndate\n</$list>\n<$list filter=\"[<field>get[import-field-source]prefix[column]]\" variable=\"listItem\">\nvalue from column ''<$view tiddler=<<field>> field=\"import-field-column\"/>''\n</$list>\n<$list filter=\"[<field>get[import-field-source]prefix[constant]]\" variable=\"listItem\">\nconstant ''<code><$view tiddler=<<field>> field=\"import-field-value\"/></code>''\n</$list>\n<$list filter=\"[<field>has[import-field-suffix]]\" variable=\"listItem\">\n+ ''<code><$view tiddler=<<field>> field=\"import-field-suffix\"/></code>''\n</$list>\n</$link>\n\\end\n\n\\define list-fields()\n<ul class=\"tc-import-spec-row-list\">\n<$list filter=\"[list<row>]\" variable=\"field\" emptyMessage=\"<div>(No field import specifiers)</div>\">\n<li class=\"tc-import-spec-field-wrapper\">\n<$reveal state=\"\"\"$:/state/edit/$(row)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"span\">\n<<edit-field>>\n<<up-down-buttons parent:\"row\" child:\"field\">>\n<$macrocall $name=\"delete-item-button\" filter=\"[<field>]\" parent=<<row>> title=<<field>>/>\n</$reveal>\n<$reveal state=\"\"\"$:/state/edit/$(row)$\"\"\" type=\"nomatch\" text=\"yes\" default=\"no\" tag=\"span\">\n<<view-field>>\n</$reveal>\n</li>\n</$list>\n</ul>\n\\end\n\n\\define view-row-content()\n<$reveal state=\"\"\"$:/state/edit/$(row)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"ul\" class=\"tc-import-spec-row-controls\" animate=\"yes\" retain=\"yes\">\n<li>\n<$macrocall $name=\"delete-item-button\" filter=\"[<row>] [<row>getlist[]]\" parent=<<sheet>> title=<<row>> prompt=\" Delete this row\"/>\n</li>\n<li>\nTitle:\n<$tiddler tiddler=<<row>>>\n<<rename-current-tiddler>>\n</$tiddler>\n</li>\n<li>\nRow type:\n<$select tiddler=<<row>> field=\"import-row-type\" default=\"by-field\">\n<option value=\"by-field\">By field</option>\n<option value=\"by-column\">By column</option>\n</$select>\n</li>\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Field\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"field\" import-field-name=\"fieldname\" import-field-type=\"string\" import-field-source=\"column\" import-field-column=\"Column Name\" />\n<$action-listops $tiddler=<<row>> $subfilter=\"[{$:/temp/newtiddler}] +[putfirst[]]\"/>\n{{$:/core/images/new-button}} Add new field\n</$button>\n</li>\n</$reveal>\n<<list-fields>>\n\\end\n\n\\define view-row()\n<div class=\"tc-import-spec-row-wrapper\">\n<h5>\n<$macrocall $name=\"expand-collapse-button\" state=<<row>>/>\nEach row: <$list filter=\"[list<row>import-field-name[title]]\" variable=\"field\" emptyMessage=\"\n<$link to=<<field>>>(title field not set)</$link>\"><<view-field>></$list>\n<$macrocall $name=\"edit-button\" state=<<row>>/>\n<<up-down-buttons parent:\"sheet\" child:\"row\">>\n<$macrocall $name=\"help-button\" state=<<row>>/>\n</h5>\n<$macrocall $name=\"help-content\" type=\"row\" state=<<row>>/>\n<$macrocall $name=\"expand-collapse-content\" state=<<row>> content=<<view-row-content>> class=\"tc-import-spec-row\"/>\n</div>\n\\end\n\n\\define list-rows()\n<div class=\"tc-import-spec-sheet-list\">\n<$list filter=\"[list<sheet>]\" variable=\"row\" emptyMessage=\"<div>(No row import specifiers)</div>\">\n<<view-row>>\n</$list>\n\\end\n\n\\define view-sheet-content()\n<$reveal state=\"\"\"$:/state/edit/$(sheet)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"ul\" class=\"tc-import-spec-sheet-controls\" animate=\"yes\" retain=\"yes\">\n<li>\n<$macrocall $name=\"delete-item-button\" filter=\"[<sheet>] [<sheet>getlist[]] [<sheet>getlist[]getlist[]]\" parent=<<workbook>> title=<<sheet>> prompt=\" Delete this sheet\"/>\n</li>\n<li>\nTitle:\n<$tiddler tiddler=<<sheet>>>\n<<rename-current-tiddler>>\n</$tiddler>\n</li>\n<li>\nImport sheet name:\n<$edit-text tiddler=<<sheet>> field=\"import-sheet-name\" size=\"50\"/>\n</li>\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Row\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"row\"/>\n<$action-listops $tiddler=<<sheet>> $subfilter=\"[{$:/temp/newtiddler}] +[putfirst[]]\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/edit/]] }}} $value=\"yes\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/expand/]] }}} $value=\"yes\"/>\n{{$:/core/images/new-button}} Add new row\n</$button>\n</li>\n</$reveal>\n<<list-rows>>\n\\end\n\n\\define view-sheet()\n<div class=\"tc-import-spec-sheet-wrapper\">\n<h4>\n<$macrocall $name=\"expand-collapse-button\" state=<<sheet>>/>\nSheet: <$link to=<<sheet>>><$view tiddler=<<sheet>> field=\"import-sheet-name\"/></$link>\n<$macrocall $name=\"edit-button\" state=<<sheet>>/>\n<<up-down-buttons parent:\"workbook\" child:\"sheet\">>\n<$macrocall $name=\"help-button\" state=<<sheet>>/>\n</h4>\n<$macrocall $name=\"help-content\" type=\"sheet\" state=<<sheet>>/>\n<$macrocall $name=\"expand-collapse-content\" state=<<sheet>> content=<<view-sheet-content>> class=\"tc-import-spec-sheet\"/>\n</div>\n\\end\n\n\\define list-sheets()\n<div class=\"tc-import-spec-workbook-list\">\n<$list filter=\"[list<workbook>]\" variable=\"sheet\" emptyMessage=\"<div>(No sheet import specifiers)</div>\">\n<<view-sheet>>\n</$list>\n</div>\n\\end\n\n\\define view-workbook-content()\n<$reveal state=\"\"\"$:/state/edit/$(workbook)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"ul\" class=\"tc-import-spec-workbook-controls\" animate=\"yes\" retain=\"yes\">\n<li>\n<$macrocall $name=\"delete-item-button\" filter=\"[<workbook>] [<workbook>getlist[]] [<workbook>getlist[]getlist[]] [<workbook>getlist[]getlist[]getlist[]]\" prompt=\" Delete this workbook\"/>\n</li>\n<li>\nTitle:\n<$tiddler tiddler=<<workbook>>>\n<<rename-current-tiddler>>\n</$tiddler>\n</li>\n<li>\nCaption:\n<$edit-text tiddler=<<workbook>> field=\"caption\" size=\"50\"/>\n</li>\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Sheet\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"sheet\" import-sheet-name=\"Sheet name\"/>\n<$action-listops $tiddler=<<workbook>> $subfilter=\"[{$:/temp/newtiddler}] +[putfirst[]]\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/edit/]] }}} $value=\"yes\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/expand/]] }}} $value=\"yes\"/>\n{{$:/core/images/new-button}} Add new sheet\n</$button>\n</li>\n</$reveal>\n<<list-sheets>>\n\\end\n\n\\define view-workbook()\n<div class=\"tc-import-spec-workbook-wrapper\">\n<h3>\n<$macrocall $name=\"expand-collapse-button\" state=<<workbook>>/>\nWorkbook: <$link to=<<workbook>>><$view tiddler=<<workbook>> field=\"caption\"/></$link>\n<$macrocall $name=\"edit-button\" state=<<workbook>>/>\n<$macrocall $name=\"help-button\" state=<<workbook>>/>\n</h3>\n<$macrocall $name=\"help-content\" type=\"workbook\" state=<<workbook>>/>\n<$macrocall $name=\"expand-collapse-content\" state=<<workbook>> content=<<view-workbook-content>> class=\"tc-import-spec-workbook\"/>\n</div>\n\\end\n\n\\define list-workbooks()\n<ul class=\"tc-import-spec-editor-controls\">\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Workbook\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"workbook\" caption=\"New workbook\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/edit/]] }}} $value=\"yes\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/expand/]] }}} $value=\"yes\"/>\n{{$:/core/images/new-button}} Add new workbook\n</$button>\n</li>\n</ul>\n<div class=\"tc-import-spec-editor-list\">\n<$list filter=\"[all[shadows+tiddlers]import-spec-role[workbook]sort[caption]]\" variable=\"workbook\">\n<<view-workbook>>\n</$list>\n</div>\n\\end\n\n<h1>\nControls for XLSX Spreadsheet Utilities\n</h1>\n\n<div class=\"tc-import-spec-selector\">\n<h2>\nCurrent Import Specification\n</h2>\n<$list filter=\"[all[shadows+tiddlers]import-spec-role[workbook]limit[1]]\" emptyMessage=\"\"\"\nThere are no import specifications available. Use the controls below to create one\n\"\"\">\nThis is the import specification that will be used for the next import of an `.XLSX` file\n<$select tiddler=\"$:/config/plugins/tiddlywiki/xlsx-utils/default-import-spec\">\n<$list filter=\"[all[shadows+tiddlers]import-spec-role[workbook]sort[caption]]\">\n<option value=<<currentTiddler>>><$text text={{!!caption}}/></option>\n</$list>\n</$select>\n</$list>\n</div>\n\n<div class=\"tc-import-spec-editor-wrapper\">\n<h2>\n Import Specifications\n<$macrocall $name=\"help-button\" state=\"\"/>\n</h2>\n<$macrocall $name=\"help-content\" type=\"editor\" state=\"\"/>\n<div class=\"tc-import-spec-editor\">\n<<list-workbooks>>\n</div>\n</div>\n" }, "$:/plugins/tiddlywiki/xlsx-utils/deserializer.js": { "title": "$:/plugins/tiddlywiki/xlsx-utils/deserializer.js", "text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/deserializer.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nXLSX file deserializer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse an XLSX file into tiddlers\n*/\nexports[\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"] = function(text,fields) {\n\t// Collect output tiddlers in an array\n\tvar results = [],\n\t\tXLSXImporter = require(\"$:/plugins/tiddlywiki/xlsx-utils/importer.js\").XLSXImporter,\n\t\timporter = new XLSXImporter({\n\t\t\ttext: text\n\t\t});\n\t// Return the output tiddlers\n\treturn importer.getResults();\n};\n\n})();\n", "type": "application/javascript", "module-type": "tiddlerdeserializer" }, "$:/plugins/tiddlywiki/xlsx-utils/docs/editor": { "title": "$:/plugins/tiddlywiki/xlsx-utils/docs/editor", "text": "!!! Import Specifications\n\nImport specifications govern how spreadsheets are converted into individual tiddlers.\n\nEach \"workbook\" describes how spreadsheets of a particular format should be converted.\n" }, "$:/plugins/tiddlywiki/xlsx-utils/docs/row": { "title": "$:/plugins/tiddlywiki/xlsx-utils/docs/row", "text": "!!! Row Import Specifications\n\nEach row import specification describes how one tiddler should be extracted from each row of the current sheet.\n\nNote that using multiple row import specifications within a sheet enables multiple tiddlers to be created from each row of the sheet.\n\nRows contain a list of field import specifications that describe how each field of the tiddler should be created.\n\n!!! Field Import Specifications\n\nField import specifications describe the value given to a particular field of a tiddler.\n\nThey follow a rich syntax for describing how each field of the tiddler is created. For example:\n\n* Set field `title` to string from column `Organization`\n* Set field `role` to string constant `organization`\n* Append to list field `list` the string from column `Country` prefixed with `Map:`\n\n" }, "$:/plugins/tiddlywiki/xlsx-utils/docs/sheet": { "title": "$:/plugins/tiddlywiki/xlsx-utils/docs/sheet", "text": "!!! Sheet Import Specifications\n\nEach sheet import specification describes how a named sheet within a workbook should be converted into individual tiddlers.\n\nSheets contain a list of row import specifications that describe how individual rows of the sheet should be handled.\n\nEach sheet has the name of the sheet that it handles.\n\nNote that the first row of each sheet is interpreted as the title of each column.\n" }, "$:/plugins/tiddlywiki/xlsx-utils/docs/workbook": { "title": "$:/plugins/tiddlywiki/xlsx-utils/docs/workbook", "text": "!!! Workbook Import Specifications\n\nEach workbook import specification describes how spreadsheets of a particular format should be converted into individual tiddlers.\n\nCreate a new workbook for each type of spreadsheet that you will be working with.\n\nWorkbooks contain a list of sheet import specifications that describe how individual sheets of the workbook should be handled.\n\nEach workbook has a caption that you can use to describe its purpose.\n" }, "$:/plugins/tiddlywiki/xlsx-utils/xlsx.js": { "text": "var old_exports = exports,JSZip = require(\"$:/plugins/tiddlywiki/jszip/jszip.js\");exports = {};if($tw.browser){module.exports=undefined;};/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint -W041 */\n/*jshint funcscope:true, eqnull:true */\nvar XLSX = {};\n(function make_xlsx(XLSX){\nXLSX.version = '0.8.0';\nvar current_codepage = 1200, current_cptable;\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') cptable = require('./dist/cpexcel');\n\tcurrent_cptable = cptable[current_codepage];\n}\nfunction reset_cp() { set_cp(1200); }\nvar set_cp = function(cp) { current_codepage = cp; };\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\nvar debom_xml = function(data) { return data; };\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; current_cptable = cptable[cp]; };\n\tdebom_xml = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.substr(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n}\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input, utf8) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1, c2, c3, e1, e2, e3, e4;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te1 = c1 >> 2;\n\t\t\t\te2 = (c1 & 3) << 4 | c2 >> 4;\n\t\t\t\te3 = (c2 & 15) << 2 | c3 >> 6;\n\t\t\t\te4 = c3 & 63;\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input, utf8) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1, c2, c3;\n\t\t\tvar e1, e2, e3, e4;\n\t\t\tinput = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = e1 << 2 | e2 >> 4;\n\t\t\t\tc2 = (e2 & 15) << 4 | e3 >> 2;\n\t\t\t\tc3 = (e3 & 3) << 6 | e4;\n\t\t\t\to += String.fromCharCode(c1);\n\t\t\t\tif (e3 != 64) { o += String.fromCharCode(c2); }\n\t\t\t\tif (e4 != 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined');\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn new (has_buf ? Buffer : Array)(len);\n\t/* jshint +W056 */\n}\n\nfunction s2a(s) {\n\tif(has_buf) return new Buffer(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/;\n/* ssf.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = {};\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.8.1';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\n/* Options */\nvar opts_fmt = [\n\t[\"date1904\", 0],\n\t[\"output\", \"\"],\n\t[\"WTF\", false]\n];\nfunction fixopts(o){\n\tfor(var y = 0; y != opts_fmt.length; ++y) if(o[opts_fmt[y][0]]===undefined) o[opts_fmt[y][0]]=opts_fmt[y][1];\n}\nSSF.opts = opts_fmt;\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"',\n\t65535: 'General'\n};\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.0000000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { Q = Q_1; P = P_1; }\n\tif(Q > D) { Q = Q_2; P = P_2; }\n\tif(!mixed) return [0, sgn * P, Q];\n\tif(Q===0) throw \"Unexpected state: \"+P+\" \"+P_1+\" \"+P_2+\" \"+Q+\" \"+Q_1+\" \"+Q_2;\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction general_fmt_int(v, opts) { return \"\"+v; }\nSSF._general_int = general_fmt_int;\nvar general_fmt_num = (function make_general_fmt_num() {\nvar gnr1 = /\\.(\\d*[1-9])0+$/, gnr2 = /\\.0*$/, gnr4 = /\\.(\\d*[1-9])0+/, gnr5 = /\\.0*[Ee]/, gnr6 = /(E[+-])(\\d)$/;\nfunction gfn2(v) {\n\tvar w = (v<0?12:11);\n\tvar o = gfn5(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\nfunction gfn3(v) {\n\tvar o = v.toFixed(11).replace(gnr1,\".$1\");\n\tif(o.length > (v<0?12:11)) o = v.toPrecision(6);\n\treturn o;\n}\nfunction gfn4(o) {\n\tfor(var i = 0; i != o.length; ++i) if((o.charCodeAt(i) | 0x20) === 101) return o.replace(gnr4,\".$1\").replace(gnr5,\"E\").replace(\"e\",\"E\").replace(gnr6,\"$10$2\");\n\treturn o;\n}\nfunction gfn5(o) {\n\t//for(var i = 0; i != o.length; ++i) if(o.charCodeAt(i) === 46) return o.replace(gnr2,\"\").replace(gnr1,\".$1\");\n\t//return o;\n\treturn o.indexOf(\".\") > -1 ? o.replace(gnr2,\"\").replace(gnr1,\".$1\") : o;\n}\nreturn function general_fmt_num(v, opts) {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = gfn2(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = gfn3(v);\n\treturn gfn5(gfn4(o));\n};})();\nSSF._general_num = general_fmt_num;\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? general_fmt_int(v, opts) : general_fmt_num(v, opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) { return 0; }\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tfixopts(opts != null ? opts : (opts=[]));\n\tif(opts.date1904) date += 1462;\n\tif(out.u > 0.999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { time = 0; ++date; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 */\n\t\tvar d = new Date(1900,0,1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\tif(val.u === 0) switch(fmt) {\n\t\t\tcase 's': case 'ss': return pad0(val.S, fmt.length);\n\t\t\tcase '.0': case '.00': case '.000':\n\t\t}\n\t\tswitch(fmt) {\n\t\t\tcase 's': case 'ss': case '.0': case '.00': case '.000':\n\t\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\t\to = pad0(ss,2 + ss0);\n\t\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\t\tdefault: throw 'bad second format: ' + fmt;\n\t\t}\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1;\n\t}\n\tif(outl > 0) return pad0(out, outl); else return \"\";\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tif(s.length <= 3) return s;\n\tvar j = (s.length % 3), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=3) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,3);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o[0] + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o[0] + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o[o.length-1];\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4]), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.(0+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) { return Math.round((val-Math.floor(val))*Math.pow(10,d)); }\nfunction flr(val) { if(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0)); return \"\"+Math.floor(val); }\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt[1]==' '?2:1),val);\n\tvar o, oo;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1)) !== null) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/) !== null) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1)) !== null) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+r[1]).replace(/\\.$/,\".\"+r[1]).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", r[1].length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/)) !== null) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#,##0(\\.?)$/)) !== null) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/)) !== null) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/)) !== null) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/)) !== null) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o[ri++]:x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone) !== null) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa[oa.length-1] == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/)) !== null) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n if((r = fmt.match(/^([#0?]+)\\.([#0]+)$/)) !== null) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/)) !== null) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o[0] + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o[o.length-1];\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt[1]==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1)) !== null) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/) !== null) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1)) !== null) {\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+r[1]).replace(/\\.$/,\".\"+r[1]).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", r[1].length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/)) !== null) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#,##0(\\.?)$/)) !== null) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/)) !== null) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/)) !== null) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/)) !== null) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o[ri++]:x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone) !== null) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa[oa.length-1] == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/)) !== null) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/)) !== null) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/)) !== null) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nreturn function write_num(type, fmt, val) {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n};})();\nfunction split_fmt(fmt) {\n\tvar out = [];\n\tvar in_str = false, cc;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((cc=fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\nSSF._split = split_fmt;\nvar abstime = /\\[[HhMmSs]*\\]/;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', q, dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt[i])) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt[++i], t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt[i+1] === \"1\" || fmt[i+1] === \"2\") {\n if(dt==null) { dt=parse_date_code(v, opts, fmt[i+1] === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i<fmt.length && fmt[i].toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M'; /* m = minute */\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A':\n\t\t\t\tq={t:c, v:\"A\"};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n if(fmt.substr(i, 3) === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n else if(fmt.substr(i,5) === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt[i++] !== ']' && i < fmt.length) o += fmt[i];\n\t\t\t\tif(o.substr(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t} else { o=\"\"; }\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while((c=fmt[++i]) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(\"0#?.,E+-%\".indexOf(c=fmt[++i]) > -1 || c=='\\\\' && fmt[i+1] == \"-\" && \"0#\".indexOf(fmt[i+2])>-1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt[++i] === c) o+=c;\n\t\t\t\tq={t:c, v:o}; out[out.length] = q; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt[i] == ' ' || fmt[i] == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(\"0123456789\".indexOf(fmt[++i]) > -1) o+=fmt[i];\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': if(out[i].v === \"B2\");\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i] = undefined; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\tout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '(': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t(c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/') ||\n\t\t\t\t\tout[i].t === '(' && (c === ' ' || c === 'n' || c === ')') ||\n\t\t\t\t\tc === 't' && (out[jj].v === '/' || '$€'.indexOf(out[jj].v) > -1 || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?')\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = undefined; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v); /* '-' */\n\t\tostr = write_num(nstr.charCodeAt(0) === 40 ? '(' : 'n', nstr, myv); /* '(' */\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v[j] === \"0\" || out[i].v[j] === \"#\")) vv = ostr[jj--] + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1 && i !== decpt ) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr[jj++];\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n(?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[([=<>]*)(-?\\d+\\.?\\d*)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw \"cannot find right format for |\" + fmt + \"|\";\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tfixopts(o != null ? o : (o=[]));\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\": sfmt = fmt; break;\n\t\tcase \"number\": sfmt = (o.table != null ? o.table : table_fmt)[fmt]; break;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nSSF._table = table_fmt;\nSSF.load = function load_entry(fmt, idx) { table_fmt[idx] = fmt; };\nSSF.format = format;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) { for(var i=0; i!=0x0188; ++i) if(tbl[i] !== undefined) SSF.load(tbl[i], i); };\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap = {\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n};\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n\n/* [MS-CFB] v20130118 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '0.10.2';\nfunction parse(file) {\nvar mver = 3; // major version\nvar ssz = 512; // sector size\nvar nmfs = 0; // number of mini FAT sectors\nvar ndfs = 0; // number of DIFAT sectors\nvar dir_start = 0; // first directory sector location\nvar minifat_start = 0; // first mini FAT sector location\nvar difat_start = 0; // first mini FAT sector location\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tdefault: throw \"Major Version: Expected 3 or 4 saw \" + mver;\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar nds = blob.read_shift(4, 'i');\nif(mver === 3 && nds !== 0) throw '# Directory Sectors: Expected 0 saw ' + nds;\n\n// Number of FAT Sectors\n//var nfs = blob.read_shift(4, 'i');\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\nndfs = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, ndfs, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [], FullPathDir = {};\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex);\n\nbuild_full_paths(FileIndex, FullPathDir, FullPaths, Paths);\n\nvar root_name = Paths.shift();\nPaths.root = root_name;\n\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nvar find_path = make_find_path(FullPaths, Paths, FileIndex, files, root_name);\n\nreturn {\n\traw: {header: header, sectors: sectors},\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths,\n\tFullPathDir: FullPathDir,\n\tfind: find_path\n};\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\tblob.chk(HEADER_CLSID, 'CLSID: ');\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\tblob.chk('feff', 'Byte Order: ');\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver !== 3) throw 'MajorVersion/SectorShift Mismatch'; break;\n\t\tcase 0x0c: if(mver !== 4) throw 'MajorVersion/SectorShift Mismatch'; break;\n\t\tdefault: throw 'Sector Shift: Expected 9 or 12 saw ' + shift;\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = new Array(nsectors);\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FPD, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = new Array(pl), q = new Array(pl);\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1) { dad[L] = dad[i]; q.push(L); }\n\t\tif(R !== -1) { dad[R] = dad[i]; q.push(R); }\n\t}\n\tfor(i=1; i !== pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = dad[i];\n\t\tif(j === 0) FP[i] = FP[0] + \"/\" + FP[i];\n\t\telse while(j !== 0) {\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t\tj = dad[j];\n\t\t}\n\t\tdad[i] = 0;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t\tFPD[FP[i]] = FI[i];\n\t}\n}\n\n/* [MS-CFB] 2.6.4 */\nfunction make_find_path(FullPaths, Paths, FileIndex, files, root_name) {\n\tvar UCFullPaths = new Array(FullPaths.length);\n\tvar UCPaths = new Array(Paths.length), i;\n\tfor(i = 0; i < FullPaths.length; ++i) UCFullPaths[i] = FullPaths[i].toUpperCase().replace(chr0,'').replace(chr1,'!');\n\tfor(i = 0; i < Paths.length; ++i) UCPaths[i] = Paths[i].toUpperCase().replace(chr0,'').replace(chr1,'!');\n\treturn function find_path(path) {\n\t\tvar k;\n\t\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k=true; path = root_name + path; }\n\t\telse k = path.indexOf(\"/\") !== -1;\n\t\tvar UCPath = path.toUpperCase().replace(chr0,'').replace(chr1,'!');\n\t\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\t\tif(w === -1) return null;\n\t\treturn k === true ? FileIndex[w] : files[Paths[w]];\n\t};\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bytes */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw \"DIFAT chain shorter than expected\";\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar sl = sectors.length;\n\tvar buf, buf_chain;\n\tif(!chkd) chkd = new Array(sl);\n\tvar modulus = ssz - 1, j, jj;\n\tbuf = [];\n\tbuf_chain = [];\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw \"FAT boundary crossed: \" + j + \" 4 \"+ssz;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = new Array(sl);\n\tvar chkd = new Array(sl), buf, buf_chain;\n\tvar modulus = ssz - 1, i, j, k, jj;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = [];\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k] === true) continue;\n\t\tbuf_chain = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw \"FAT boundary crossed: \" + j + \" 4 \"+ssz;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t}\n\t\tsector_list[k] = {nodes: buf, data:__toBuffer([buf_chain])};\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex) {\n\tvar blob;\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name, o, ctime, mtime;\n\tfor(; i < sector.length; i+= 128) {\n\t\tblob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tif(namelen === 0) continue;\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\to = {\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i')\n\t\t};\n\t\tctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) {\n\t\t\to.ctime = ctime; o.ct = read_date(blob, blob.l-8);\n\t\t}\n\t\tmtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) {\n\t\t\to.mtime = mtime; o.mt = read_date(blob, blob.l-8);\n\t\t}\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = sector_list[o.start].data.slice(0,o.size);\n\t\t\tprep_blob(o.content, 0);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN) {\n\t\t\t\to.content = sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size);\n\t\t\t\tprep_blob(o.content, 0);\n\t\t\t}\n\t\t}\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nvar fs;\nfunction readFileSync(filename, options) {\n\tif(fs === undefined) fs = require('fs');\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction readSync(blob, options) {\n\tswitch(options !== undefined && options.type !== undefined ? options.type : \"base64\") {\n\t\tcase \"file\": return readFileSync(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob);\n}\n\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nexports.read = readSync;\nexports.parse = parse;\nexports.utils = {\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nfunction isval(x) { return x !== undefined && x !== null; }\n\nfunction keys(o) { return Object.keys(o); }\n\nfunction evert_key(obj, key) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\n/* TODO: date1904 logic */\nfunction datenum(v, date1904) {\n\tif(date1904) v+=1462;\n\tvar epoch = Date.parse(v);\n\treturn (epoch + 2209161600000) / (24 * 60 * 60 * 1000);\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction getdata(data) {\n\tif(!data) return null;\n\tif(data.name.substr(-4) === \".bin\") {\n\t\tif(data.data) return char_codes(data.data);\n\t\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\t\tif(data._data && data._data.getContent) return Array.prototype.slice.call(data._data.getContent());\n\t} else {\n\t\tif(data.data) return data.name.substr(-4) !== \".bin\" ? debom_xml(data.data) : char_codes(data.data);\n\t\tif(data.asNodeBuffer && has_buf) return debom_xml(data.asNodeBuffer().toString('binary'));\n\t\tif(data.asBinary) return debom_xml(data.asBinary());\n\t\tif(data._data && data._data.getContent) return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\t}\n\treturn null;\n}\n\nfunction safegetzipfile(zip, file) {\n\tvar f = file; if(zip.files[f]) return zip.files[f];\n\tf = file.toLowerCase(); if(zip.files[f]) return zip.files[f];\n\tf = f.replace(/\\//g,'\\\\'); if(zip.files[f]) return zip.files[f];\n\treturn null;\n}\n\nfunction getzipfile(zip, file) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file, safe) {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nvar _fs, jszip;\nif(typeof JSZip !== 'undefined') jszip = JSZip;\nif (typeof exports !== 'undefined') {\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tif(has_buf && typeof jszip === 'undefined') jszip = require('js'+'zip');\n\t\tif(typeof jszip === 'undefined') jszip = require('./js'+'zip').JSZip;\n\t\t_fs = require('f'+'s');\n\t}\n}\nvar attregexg=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar tagregex=/<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root) {\n\tvar z = [];\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.substr(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, w=\"\", v=\"\", i=0, q=\"\", cc=\"\";\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.substr(0,c); v = cc.substring(c+2, cc.length-1);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) z[q] = v;\n\t\telse z[(j===5 && q.substr(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.substr(j+1)] = v;\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\nvar rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\tvar encregex = /&[a-z]*;/g, coderegex = /_x([\\da-fA-F]+)_/g;\n\treturn function unescapexml(text){\n\t\tvar s = text + '';\n\t\treturn s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).substr(-4) + \"_\";});\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\n\nfunction parsexmlbool(value, tag) {\n\tswitch(value) {\n\t\tcase '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { out += String.fromCharCode(((c & 31) << 6) | (d & 63)); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = new Buffer(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\tout.length = k;\n\t\treturn out.toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n}\n\n// matches <foo>...</foo> extracts content\nvar matchtag = (function() {\n\tvar mtcache = {};\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+g;\n\t\tif(mtcache[t] !== undefined) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([^\\u2603]*)</(?:\\\\w+:)?'+f+'>',(g||\"\")));\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<vt:\" + bt + \">(.*?)</vt:\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?vt:variant>/g, vtmregex = /<vt:([^>]*)>(.*)</;\nfunction parseVector(data) {\n\tvar h = parsexmltag(data);\n\n\tvar matches = data.match(vtregex(h.baseType))||[];\n\tif(matches.length != h.size) throw \"unexpected vector length \" + matches.length + \" != \" + h.size;\n\tvar res = [];\n\tmatches.forEach(function(x) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tres.push({v:v[2], t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f,g) {return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>';}\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + (isval(h) ? wxt_helper(h) : \"\") + (isval(g) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } }\n\nfunction write_vt(s) {\n\tswitch(typeof s) {\n\t\tcase 'string': return writextag('vt:lpwstr', s);\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', String(s));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar XMLNS = {\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n};\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nfunction readIEEE754(buf, idx, isLE, nl, ml) {\n\tif(isLE === undefined) isLE = true;\n\tif(!nl) nl = 8;\n\tif(!ml && nl === 8) ml = 52;\n\tvar e, m, el = nl * 8 - ml - 1, eMax = (1 << el) - 1, eBias = eMax >> 1;\n\tvar bits = -7, d = isLE ? -1 : 1, i = isLE ? (nl - 1) : 0, s = buf[idx + i];\n\n\ti += d;\n\te = s & ((1 << (-bits)) - 1); s >>>= (-bits); bits += el;\n\tfor (; bits > 0; e = e * 256 + buf[idx + i], i += d, bits -= 8);\n\tm = e & ((1 << (-bits)) - 1); e >>>= (-bits); bits += ml;\n\tfor (; bits > 0; m = m * 256 + buf[idx + i], i += d, bits -= 8);\n\tif (e === eMax) return m ? NaN : ((s ? -1 : 1) * Infinity);\n\telse if (e === 0) e = 1 - eBias;\n\telse { m = m + Math.pow(2, ml); e = e - eBias; }\n\treturn (s ? -1 : 1) * m * Math.pow(2, e - ml);\n}\n\nvar __toBuffer, ___toBuffer;\n__toBuffer = ___toBuffer = function toBuffer_(bufs) { var x = []; for(var i = 0; i < bufs[0].length; ++i) { x.push.apply(x, bufs[0][i]); } return x; };\nvar __utf16le, ___utf16le;\n__utf16le = ___utf16le = function utf16le_(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\"); };\nvar __hexlify, ___hexlify;\n__hexlify = ___hexlify = function hexlify_(b,s,l) { return b.slice(s,(s+l)).map(function(x){return (x<16?\"0\":\"\") + x.toString(16);}).join(\"\"); };\nvar __utf8, ___utf8;\n__utf8 = ___utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __lpstr, ___lpstr;\n__lpstr = ___lpstr = function lpstr_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr, ___lpwstr;\n__lpwstr = ___lpwstr = function lpwstr_(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __double, ___double;\n__double = ___double = function(b, idx) { return readIEEE754(b, idx);};\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\nif(has_buf) {\n\t__utf16le = function utf16le_b(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e); };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__utf8 = function utf8_b(s,e) { return this.toString('utf8',s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b,i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return b[idx+1]*(1<<8)+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = b[idx+1]*(1<<8)+b[idx]; return (u < 0x8000) ? u : (0xffff - u + 1) * -1; };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\n\nvar ___unhexlify = function(s) { return s.match(/../g).map(function(x) { return parseInt(x,16);}); };\nvar __unhexlify = typeof Buffer !== \"undefined\" ? function(s) { return Buffer.isBuffer(s) ? new Buffer(s, 'hex') : ___unhexlify(s); } : ___unhexlify;\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr': o = __lpstr(this, this.l); size = 5 + o.length; break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 5 + o.length; if(o[o.length-1] == '\\u0000') size += 2; break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase 'wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4:\n\t\t\tif(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = __readInt32LE(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; return oR; } break;\n\t\tcase 8: if(t === 'f') { oR = __double(this, this.l); this.l += 8; return oR; }\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nfunction WriteShift(t, val, f) {\n\tvar size, i;\n\tif(f === 'dbcs') {\n\t\tfor(i = 0; i != val.length; ++i) this.writeUInt16LE(val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&255; break;\n\t\tcase 3: size = 3; this[this.l+2] = val & 255; val >>>= 8; this[this.l+1] = val&255; val >>>= 8; this[this.l] = val&255; break;\n\t\tcase 4: size = 4; this.writeUInt32LE(val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { this.writeDoubleLE(val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; this.writeInt32LE(val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw fld + 'Expected ' + hexstr + ' saw ' + m;\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction writenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\twhile(data.l < data.length) {\n\t\tvar RT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\tvar d = R.f(data, length, opts);\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = new_buf(sz);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tcurbuf.length = curbuf.l;\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(sz < curbuf.length - curbuf.l) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; next(blksz); };\n\n\treturn { next:next, push:push, end:end, _bufs:bufs };\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = evert_RE[type], l;\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1 + length;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt) {\n\tif(tgt.s) {\n\t\tif(cell.cRel) cell.c += tgt.s.c;\n\t\tif(cell.rRel) cell.r += tgt.s.r;\n\t} else {\n\t\tcell.c += tgt.c;\n\t\tcell.r += tgt.r;\n\t}\n\tcell.cRel = cell.rRel = 0;\n\twhile(cell.c >= 0x100) cell.c -= 0x100;\n\twhile(cell.r >= 0x10000) cell.r -= 0x10000;\n\treturn cell;\n}\n\nfunction shift_range_xls(cell, range) {\n\tcell.s = shift_cell_xls(cell.s, range.s);\n\tcell.e = shift_cell_xls(cell.e, range.s);\n\treturn cell;\n}\n\nvar OFFCRYPTO = {};\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('cry'+'pto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\ti = j = 0; out = Buffer(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tif(crypto) {\n\t\tO.md5 = function(hex) { return crypto.createHash('md5').update(hex).digest('hex'); };\n\t} else {\n\t\tO.md5 = function(hex) { throw \"unimplemented\"; };\n\t}\n};\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data, length) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\n\n/* [MS-XLSB] 2.1.7.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = { t: str, h: str };\n\tif((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor(var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = \"<t>\" + escapexml(str) + \"</t>\";\n\tif((flags & 2) !== 0) { /* fExtStr */\n\t\t/* TODO: phonetic string */\n\t}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tif(o == null) o = new_buf(5+2*str.t.length);\n\to.write_shift(1,0);\n\twrite_XLWideString(str.t, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tvar fPhShow = data.read_shift(1);\n\treturn { c:col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif(o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef === undefined ? cell.iStyleRef : cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nfunction parse_XLSBCodeName (data, length) { return parse_XLWideString(data, length); }\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tif(o == null) o = new_buf(4+2*data.length);\n\to.write_shift(4, data.length);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLSB] 2.5.122 */\n/* [MS-XLS] 2.5.217 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l+4);\n\tvar fX100 = b[0] & 1, fInt = b[0] & 2;\n\tdata.l+=4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2;\n\treturn fX100 ? RK/100 : RK;\n}\n\n/* [MS-XLSB] 2.5.153 */\nfunction parse_UncheckedRfX(data) {\n\tvar cell = {s: {}, e: {}};\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\n\nfunction write_UncheckedRfX(r, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.171 */\n/* [MS-XLS] 2.5.342 */\nfunction parse_Xnum(data, length) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, 'f', data); }\n\n/* [MS-XLSB] 2.5.198.2 */\nvar BErr = {\n\t0x00: \"#NULL!\",\n\t0x07: \"#DIV/0!\",\n\t0x0F: \"#VALUE!\",\n\t0x17: \"#REF!\",\n\t0x1D: \"#NAME?\",\n\t0x24: \"#NUM!\",\n\t0x2A: \"#N/A\",\n\t0x2B: \"#GETTING_DATA\",\n\t0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n\n/* [MS-XLSB] 2.4.321 BrtColor */\nfunction parse_BrtColor(data, length) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\tout.fValidRGB = d & 1;\n\tout.xColorType = d >>> 1;\n\tout.index = data.read_shift(1);\n\tout.nTintAndShade = data.read_shift(2, 'i');\n\tout.bRed = data.read_shift(1);\n\tout.bGreen = data.read_shift(1);\n\tout.bBlue = data.read_shift(1);\n\tout.bAlpha = data.read_shift(1);\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data, length) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfItalic: d & 0x2,\n\t\tfStrikeout: d & 0x8,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\n/* [MS-OLEPS] 2.2 PropertyType */\n{\n\tvar VT_EMPTY = 0x0000;\n\tvar VT_NULL = 0x0001;\n\tvar VT_I2 = 0x0002;\n\tvar VT_I4 = 0x0003;\n\tvar VT_R4 = 0x0004;\n\tvar VT_R8 = 0x0005;\n\tvar VT_CY = 0x0006;\n\tvar VT_DATE = 0x0007;\n\tvar VT_BSTR = 0x0008;\n\tvar VT_ERROR = 0x000A;\n\tvar VT_BOOL = 0x000B;\n\tvar VT_VARIANT = 0x000C;\n\tvar VT_DECIMAL = 0x000E;\n\tvar VT_I1 = 0x0010;\n\tvar VT_UI1 = 0x0011;\n\tvar VT_UI2 = 0x0012;\n\tvar VT_UI4 = 0x0013;\n\tvar VT_I8 = 0x0014;\n\tvar VT_UI8 = 0x0015;\n\tvar VT_INT = 0x0016;\n\tvar VT_UINT = 0x0017;\n\tvar VT_LPSTR = 0x001E;\n\tvar VT_LPWSTR = 0x001F;\n\tvar VT_FILETIME = 0x0040;\n\tvar VT_BLOB = 0x0041;\n\tvar VT_STREAM = 0x0042;\n\tvar VT_STORAGE = 0x0043;\n\tvar VT_STREAMED_Object = 0x0044;\n\tvar VT_STORED_Object = 0x0045;\n\tvar VT_BLOB_Object = 0x0046;\n\tvar VT_CF = 0x0047;\n\tvar VT_CLSID = 0x0048;\n\tvar VT_VERSIONED_STREAM = 0x0049;\n\tvar VT_VECTOR = 0x1000;\n\tvar VT_ARRAY = 0x2000;\n\n\tvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\n\tvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\n\tvar VT_CUSTOM = [VT_STRING, VT_USTR];\n}\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Category', t: VT_STRING },\n\t0x03: { n: 'PresentationFormat', t: VT_STRING },\n\t0x04: { n: 'ByteCount', t: VT_I4 },\n\t0x05: { n: 'LineCount', t: VT_I4 },\n\t0x06: { n: 'ParagraphCount', t: VT_I4 },\n\t0x07: { n: 'SlideCount', t: VT_I4 },\n\t0x08: { n: 'NoteCount', t: VT_I4 },\n\t0x09: { n: 'HiddenCount', t: VT_I4 },\n\t0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n\t0x0b: { n: 'Scale', t: VT_BOOL },\n\t0x0c: { n: 'HeadingPair', t: VT_VECTOR | VT_VARIANT },\n\t0x0d: { n: 'DocParts', t: VT_VECTOR | VT_LPSTR },\n\t0x0e: { n: 'Manager', t: VT_STRING },\n\t0x0f: { n: 'Company', t: VT_STRING },\n\t0x10: { n: 'LinksDirty', t: VT_BOOL },\n\t0x11: { n: 'CharacterCount', t: VT_I4 },\n\t0x13: { n: 'SharedDoc', t: VT_BOOL },\n\t0x16: { n: 'HLinksChanged', t: VT_BOOL },\n\t0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t0x1A: { n: 'ContentType', t: VT_STRING },\n\t0x1B: { n: 'ContentStatus', t: VT_STRING },\n\t0x1C: { n: 'Language', t: VT_STRING },\n\t0x1D: { n: 'Version', t: VT_STRING },\n\t0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Title', t: VT_STRING },\n\t0x03: { n: 'Subject', t: VT_STRING },\n\t0x04: { n: 'Author', t: VT_STRING },\n\t0x05: { n: 'Keywords', t: VT_STRING },\n\t0x06: { n: 'Comments', t: VT_STRING },\n\t0x07: { n: 'Template', t: VT_STRING },\n\t0x08: { n: 'LastAuthor', t: VT_STRING },\n\t0x09: { n: 'RevNumber', t: VT_STRING },\n\t0x0A: { n: 'EditTime', t: VT_FILETIME },\n\t0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n\t0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n\t0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n\t0x0E: { n: 'PageCount', t: VT_I4 },\n\t0x0F: { n: 'WordCount', t: VT_I4 },\n\t0x10: { n: 'CharCount', t: VT_I4 },\n\t0x11: { n: 'Thumbnail', t: VT_CF },\n\t0x12: { n: 'ApplicationName', t: VT_LPSTR },\n\t0x13: { n: 'DocumentSecurity', t: VT_I4 },\n\t0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n\t0x80000000: { n: 'Locale', t: VT_UI4 },\n\t0x80000003: { n: 'Behavior', t: VT_UI4 },\n\t0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(SpecialProperties.hasOwnProperty(y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t0x0001: \"US\", // United States\n\t0x0002: \"CA\", // Canada\n\t0x0003: \"\", // Latin America (except Brazil)\n\t0x0007: \"RU\", // Russia\n\t0x0014: \"EG\", // Egypt\n\t0x001E: \"GR\", // Greece\n\t0x001F: \"NL\", // Netherlands\n\t0x0020: \"BE\", // Belgium\n\t0x0021: \"FR\", // France\n\t0x0022: \"ES\", // Spain\n\t0x0024: \"HU\", // Hungary\n\t0x0027: \"IT\", // Italy\n\t0x0029: \"CH\", // Switzerland\n\t0x002B: \"AT\", // Austria\n\t0x002C: \"GB\", // United Kingdom\n\t0x002D: \"DK\", // Denmark\n\t0x002E: \"SE\", // Sweden\n\t0x002F: \"NO\", // Norway\n\t0x0030: \"PL\", // Poland\n\t0x0031: \"DE\", // Germany\n\t0x0034: \"MX\", // Mexico\n\t0x0037: \"BR\", // Brazil\n\t0x003d: \"AU\", // Australia\n\t0x0040: \"NZ\", // New Zealand\n\t0x0042: \"TH\", // Thailand\n\t0x0051: \"JP\", // Japan\n\t0x0052: \"KR\", // Korea\n\t0x0054: \"VN\", // Viet Nam\n\t0x0056: \"CN\", // China\n\t0x005A: \"TR\", // Turkey\n\t0x0069: \"JS\", // Ramastan\n\t0x00D5: \"DZ\", // Algeria\n\t0x00D8: \"MA\", // Morocco\n\t0x00DA: \"LY\", // Libya\n\t0x015F: \"PT\", // Portugal\n\t0x0162: \"IS\", // Iceland\n\t0x0166: \"FI\", // Finland\n\t0x01A4: \"CZ\", // Czech Republic\n\t0x0376: \"TW\", // Taiwan\n\t0x03C1: \"LB\", // Lebanon\n\t0x03C2: \"JO\", // Jordan\n\t0x03C3: \"SY\", // Syria\n\t0x03C4: \"IQ\", // Iraq\n\t0x03C5: \"KW\", // Kuwait\n\t0x03C6: \"SA\", // Saudi Arabia\n\t0x03CB: \"AE\", // United Arab Emirates\n\t0x03CC: \"IL\", // Israel\n\t0x03CE: \"QA\", // Qatar\n\t0x03D5: \"IR\", // Iran\n\t0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\nvar XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Sheet */\n\t0xFFFFFF,\n\t0x000000\n]);\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations */\n/* [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type = {\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.ms-excel.chartsheet\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"TODO\",\n\n\t/* Dialogsheet */\n\t\"application/vnd.ms-excel.dialogsheet\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"TODO\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"TODO\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t\"sheet\": \"js\"\n};\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tsheets: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tstyles: {/* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { if(!o[k].xlsm) o[k].xlsm = o[k].xlsx; });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction parse_ct(data, opts) {\n\tvar ctext = {};\n\tif(!data || !data.match) return data;\n\tvar ct = { workbooks: [], sheets: [], calcchains: [], themes: [], styles: [],\n\t\tcoreprops: [], extprops: [], custprops: [], strs:[], comments: [], vba: [],\n\t\tTODO:[], rels:[], xmlns: \"\" };\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\telse if(opts.WTF) console.error(y);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\tvar f2 = function(w) {\n\t\tct[w].forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\tf1('workbooks');\n\tf2('sheets');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3.2 OPC Relationships Markup */\nvar RELS = {\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\"\n};\n\nfunction parse_rels(data, currentFilePath) {\n\tif (!data) return data;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar rels = {};\n\tvar hash = {};\n\tvar resolveRelativePathIntoAbsolute = function (to) {\n\t\tvar toksFrom = currentFilePath.split('/');\n\t\ttoksFrom.pop(); // folder path\n\t\tvar toksTo = to.split('/');\n\t\tvar reversed = [];\n\t\twhile (toksTo.length !== 0) {\n\t\t\tvar tokTo = toksTo.shift();\n\t\t\tif (tokTo === '..') {\n\t\t\t\ttoksFrom.pop();\n\t\t\t} else if (tokTo !== '.') {\n\t\t\t\ttoksFrom.push(tokTo);\n\t\t\t}\n\t\t}\n\t\treturn toksFrom.join('/');\n\t};\n\n\tdata.match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolveRelativePathIntoAbsolute(y.Target);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\n\nvar RELS_ROOT = writextag('Relationships', null, {\n\t//'xmlns:ns0': XMLNS.RELS,\n\t'xmlns': XMLNS.RELS\n});\n\n/* TODO */\nfunction write_rels(rels) {\n\tvar o = [];\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (RELS_ROOT);\n\tkeys(rels['!id']).forEach(function(rid) { var rel = rels['!id'][rid];\n\t\to[o.length] = (writextag('Relationship', null, rel));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].substr(0,f[0].indexOf(\":\")) +\":)\"+ f[0].substr(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>(.*)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = cur[1];\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = new Date(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, opts) {\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp) return o.join(\"\");\n\n\n\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) { var f = CORE_PROPS[i]; cp_doit(f[0], cp[f[1]], null, o, p); }\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nfunction parse_ext_props(data, p) {\n\tvar q = {}; if(!p) p = {};\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1]; break;\n\t\t\tcase \"bool\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1] === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>(.*)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) {\n\t\tvar v = parseVector(q.HeadingPairs);\n\t\tvar j = 0, widx = 0;\n\t\tfor(var i = 0; i !== v.length; ++i) {\n\t\t\tswitch(v[i].v) {\n\t\t\t\tcase \"Worksheets\": widx = j; p.Worksheets = +(v[++i].v); break;\n\t\t\t\tcase \"Named Ranges\": ++i; break; // TODO: Handle Named Ranges\n\t\t\t}\n\t\t}\n\t\tvar parts = parseVector(q.TitlesOfParts).map(function(x) { return utf8read(x.v); });\n\t\tp.SheetNames = parts.slice(widx, widx + p.Worksheets);\n\t}\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp, opts) {\n\tvar o = [], p = {}, W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = cp[f[1]]; break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + s + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name;\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties':\n\t\t\t\tif(y.xmlns !== XMLNS.CUST_PROPS) throw \"unrecognized xmlns \" + y.xmlns;\n\t\t\t\tif(y.xmlnsvt && y.xmlnsvt !== XMLNS.vt) throw \"unrecognized vt \" + y.xmlnsvt;\n\t\t\t\tbreak;\n\t\t\tcase '<property': name = y.name; break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].substring(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'lpwstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text, '<vt:bool>');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = new Date(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.substr(0,2) === \"</\") {\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.CUST_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_cust_props(cp, opts) {\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k]), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': k\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\nfunction xlml_set_prop(Props, tag, val) {\n\t/* TODO: Normalize the properties */\n\tswitch(tag) {\n\t\tcase 'Description': tag = 'Comments'; break;\n\t}\n\tProps[tag] = val;\n}\n\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"dafuq?\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = {};\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tif(size & 3 > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.14 Vector and Array Property Types */\nfunction parse_VtVector(blob, cb) {\n\t/* [MS-OLEPS] 2.14.2 VectorHeader */\n/*\tvar Length = blob.read_shift(4);\n\tvar o = [];\n\tfor(var i = 0; i != Length; ++i) {\n\t\to.push(cb(blob));\n\t}\n\treturn o;*/\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw && 4).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t, 4).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\n/* [MS-OLEPS] 2.14.2 VectorHeader */\n/*function parse_VTVectorVariant(blob) {\n\tvar Length = blob.read_shift(4);\n\n\tif(Length & 1 !== 0) throw new Error(\"VectorHeader Length=\" + Length + \" must be even\");\n\tvar o = [];\n\tfor(var i = 0; i != Length; ++i) {\n\t\to.push(parse_TypedPropertyValue(blob, VT_VARIANT));\n\t}\n\treturn o;\n}*/\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj;\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l +2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif(!PIDSI && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + String(PropH[piddsi.n] & 0xFFFF);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 10000: // OSX Roman\n\t\t\t\tcase 1252: // Windows Latin\n\n\t\t\t\tcase 874: // SB Windows Thai\n\t\t\t\tcase 1250: // SB Windows Central Europe\n\t\t\t\tcase 1251: // SB Windows Cyrillic\n\t\t\t\tcase 1253: // SB Windows Greek\n\t\t\t\tcase 1254: // SB Windows Turkish\n\t\t\t\tcase 1255: // SB Windows Hebrew\n\t\t\t\tcase 1256: // SB Windows Arabic\n\t\t\t\tcase 1257: // SB Windows Baltic\n\t\t\t\tcase 1258: // SB Windows Vietnam\n\n\t\t\t\tcase 932: // DB Windows Japanese Shift-JIS\n\t\t\t\tcase 936: // DB Windows Simplified Chinese GBK\n\t\t\t\tcase 949: // DB Windows Korean\n\t\t\t\tcase 950: // DB Windows Traditional Chinese Big5\n\n\t\t\t\tcase 1200: // UTF16LE\n\t\t\t\tcase 1201: // UTF16BE\n\t\t\t\tcase 65000: case -536: // UTF-7\n\t\t\t\tcase 65001: case -535: // UTF-8\n\t\t\t\t\tset_cp(CodePage = PropH[piddsi.n]); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = new Date(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI) {\n\tvar blob = file.content;\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1;\n\tblob.chk('feff', 'Byte Order: ');\n\n\tvar vers = blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tblob.chk(CFB.utils.consts.HEADER_CLSID, 'CLSID: ');\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw \"Unrecognized #Sets: \" + NumSets;\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw \"Length mismatch\";\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = { SystemIdentifier: SystemIdentifier };\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(blob.l !== Offset1) throw \"Length mismatch 2: \" + blob.l + \" !== \" + Offset1;\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) { }\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\n\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parslurp2(blob, length, cb) {\n\tvar arr = [], target = blob.l + length, len = blob.read_shift(2);\n\twhile(len-- !== 0) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length) { return blob.read_shift(length) === 0x1; }\n\nfunction parseuint16(blob) { return blob.read_shift(2, 'u'); }\nfunction parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.14 Boolean */\nvar parse_Boolean = parsebool;\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(1);\n\tvar width = 1, encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(opts === undefined || opts.biff !== 5) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { width = 2; encoding = 'dbcs-cont'; }\n\t}\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = (flags & 0x1) ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts !== undefined && opts.biff > 0 && opts.biff < 8 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff !== 5 && opts.biff !== 2) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nvar parse_ControlInfo = parsenoop;\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nvar parse_URLMoniker = function(blob, length) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n};\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nvar parse_FileMoniker = function(blob, length) {\n\tvar cAnti = blob.read_shift(2);\n\tvar ansiLength = blob.read_shift(4);\n\tvar ansiPath = blob.read_shift(ansiLength, 'cstr');\n\tvar endServer = blob.read_shift(2);\n\tvar versionNumber = blob.read_shift(2);\n\tvar cbUnicodePathSize = blob.read_shift(4);\n\tif(cbUnicodePathSize === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar cbUnicodePathBytes = blob.read_shift(4);\n\tvar usKeyValue = blob.read_shift(2);\n\tvar unicodePath = blob.read_shift(cbUnicodePathBytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n};\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nvar parse_HyperlinkMoniker = function(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw \"unsupported moniker \" + clsid;\n\t}\n};\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nvar parse_HyperlinkString = function(blob, length) {\n\tvar len = blob.read_shift(4);\n\tvar o = blob.read_shift(len, 'utf16le').replace(chr0, \"\");\n\treturn o;\n};\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object TODO: unify params with XLSX */\nvar parse_Hyperlink = function(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, location, guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) location = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob, 8);\n\tblob.l = end;\n\tvar target = (targetFrameName||moniker||oleMoniker);\n\tif(location) target+=\"#\"+location;\n\treturn {Target: target};\n};\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob, length) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* --- MS-XLS --- */\n\n/* 2.5.19 */\nfunction parse_XLSCell(blob, length) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn {r:rw, c:col, ixfe:ixfe};\n}\n\n/* 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* 2.5.158 */\nvar HIDEOBJENUM = ['SHOWALL', 'SHOWPLACEHOLDER', 'HIDEALL'];\nvar parse_HideObjEnum = parseuint16;\n\n/* 2.5.344 */\nfunction parse_XTI(blob, length) {\n\tvar iSupBook = blob.read_shift(2), itabFirst = blob.read_shift(2,'i'), itabLast = blob.read_shift(2,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* 2.5.218 */\nfunction parse_RkRec(blob, length) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\t//console.log(\"::\", ixfe, RK,\";;\");\n\treturn [ixfe, RK];\n}\n\n/* 2.5.1 */\nfunction parse_AddinUdf(blob, length) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw \"Malformed AddinUdf: padding = \" + l + \" != \" + cb;\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob, length) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* 2.5.211 */\nfunction parse_RefU(blob, length) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* 2.5.143 */\nfunction parse_FtCmo(blob, length) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* 2.5.149 */\nfunction parse_FtNts(blob, length) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* 2.5.142 */\nfunction parse_FtCf(blob, length) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* 2.5.140 - 2.5.154 and friends */\nvar FtTab = {\n\t0x15: parse_FtCmo,\n\t0x13: parsenoop, /* FtLbsData */\n\t0x12: function(blob, length) { blob.l += 12; }, /* FtCblsData */\n\t0x11: function(blob, length) { blob.l += 8; }, /* FtRboData */\n\t0x10: parsenoop, /* FtEdoData */\n\t0x0F: parsenoop, /* FtGboData */\n\t0x0D: parse_FtNts, /* FtNts */\n\t0x0C: function(blob, length) { blob.l += 24; }, /* FtSbs */\n\t0x0B: function(blob, length) { blob.l += 10; }, /* FtRbo */\n\t0x0A: function(blob, length) { blob.l += 16; }, /* FtCbls */\n\t0x09: parsenoop, /* FtPictFmla */\n\t0x08: function(blob, length) { blob.l += 6; }, /* FtPioGrbit */\n\t0x07: parse_FtCf, /* FtCf */\n\t0x06: function(blob, length) { blob.l += 6; }, /* FtGmo */\n\t0x04: parsenoop, /* FtMacro */\n\t0x00: function(blob, length) { blob.l += 4; } /* FtEnding */\n};\nfunction parse_FtArray(blob, length, ot) {\n\tvar s = blob.l;\n\tvar fts = [];\n\twhile(blob.l < s + length) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, s + length - blob.l));\n\t\t} catch(e) { blob.l = s + length; return fts; }\n\t}\n\tif(blob.l != s + length) blob.l = s + length; //throw \"bad Object Ft-sequence\";\n\treturn fts;\n}\n\n/* 2.5.129 */\nvar parse_FontIndex = parseuint16;\n\n/* --- 2.4 Records --- */\n\n/* 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: throw \"Unexpected BIFF Ver \" + o.BIFFVer;\n\t}\n\tblob.read_shift(length);\n\treturn o;\n}\n\n\n/* 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tvar q;\n\tif((q=blob.read_shift(2))!==0x04b0) throw 'InterfaceHdr codePage ' + q;\n\treturn 0x04b0;\n}\n\n\n/* 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\n\n/* 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) >> 6;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\n\n/* 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = [];\n\tfor(var i = 0; i != ucnt; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\n\n/* 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* 2.4.221 TODO*/\nfunction parse_Row(blob, length) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2), Col = blob.read_shift(2), rht = blob.read_shift(2);\n\tblob.read_shift(4); // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.read_shift(1); // reserved\n\tblob.read_shift(2); //ixfe, other flags\n\treturn {r:rw, c:col, cnt:Col-col};\n}\n\n\n/* 2.4.125 */\nfunction parse_ForceFullCalculation(blob, length) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw \"Invalid Future Record \" + header.type;\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\nvar parse_CompressPictures = parsenoop2; /* 2.4.55 Not interesting */\n\n\n\n/* 2.4.215 rt */\nfunction parse_RecalcId(blob, length) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* 2.4.87 */\nfunction parse_DefaultRowHeight (blob, length) {\n\tvar f = blob.read_shift(2), miyRw;\n\tmiyRw = blob.read_shift(2); // flags & 0x02 -> hidden, else empty\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* 2.4.345 TODO */\nfunction parse_Window1(blob, length) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\n\n/* 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tblob.l += 14;\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn name;\n}\n\n/* 2.4.149 */\nfunction parse_LabelSst(blob, length) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\n\n/* 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar str = parse_XLUnicodeString(blob, length-6, opts);\n\tcell.val = str;\n\treturn cell;\n}\n\n/* 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar ifmt = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [ifmt, fmtstr];\n}\n\n/* 2.4.90 */\nfunction parse_Dimensions(blob, length) {\n\tvar w = length === 10 ? 2 : 4;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w),\n\t c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l += 2;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\n\n/* 2.4.220 */\nfunction parse_RK(blob, length) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw \"MulRK read error\";\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw \"MulRK length mismatch\";\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n\n/* 2.5.20 2.5.249 TODO */\nfunction parse_CellStyleXF(blob, length, style) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\treturn o;\n}\nfunction parse_CellXF(blob, length) {return parse_CellStyleXF(blob,length,0);}\nfunction parse_StyleXF(blob, length) {return parse_CellStyleXF(blob,length,1);}\n\n/* 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.ifmt = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle);\n\treturn o;\n}\n\n/* 2.4.134 */\nfunction parse_Guts(blob, length) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw \"Bad Gutters: \" + out;\n\treturn out;\n}\n\n/* 2.4.24 */\nfunction parse_BoolErr(blob, length) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\n\n/* 2.4.180 Number */\nfunction parse_Number(blob, length) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\tvar virtPath;\n\tif(cch >=0x01 && cch <=0xff) virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\tvar rgst = blob.read_shift(end - blob.l);\n\topts.sbcch = cch;\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = {\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t};\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\treturn o;\n}\n\n/* 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tif(opts.biff < 8) return parse_Label(blob, length, opts);\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(2);\n\tblob.l += 2;\n\tvar itab = blob.read_shift(2);\n\tblob.l += 4;\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tvar rgce = parse_NameParsedFormula(blob, target - blob.l, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\trgce: rgce\n\t};\n}\n\n/* 2.4.106 TODO: verify supbook manipulation */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_ShortXLUnicodeString(blob, length, opts);\n\tvar o = parslurp2(blob,length,parse_XTI);\n\tvar oo = [];\n\tif(opts.sbcch === 0x0401) {\n\t\tfor(var i = 0; i != o.length; ++i) oo.push(opts.snames[o[i][1]]);\n\t\treturn oo;\n\t}\n\telse return o;\n}\n\n/* 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse];\n}\n\n/* 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\tblob.l += 6; length -= 12; /* TODO: fAlwaysCalc */\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* 2.4.173 */\nfunction parse_MTRSettings(blob, length) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\n\n/* 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length) {\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n\n/* 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo;\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\tvar cbRuns = blob.read_shift(2);\n\tvar ifntEmpty = parse_FontIndex(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tvar texts = \"\";\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw \"TxO: bad continue record\";\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow \"cchText: \" + cchText + \" != \" + texts.length;\n\t}\n\n\tblob.l = s + length;\n\t/* 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw \"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText;\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw \"TxO \" + (s + length) + \", at \" + blob.l;\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts||\"\" }; }\n}\n\n/* 2.4.140 */\nvar parse_HLink = function(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n};\n\n/* 2.4.141 */\nvar parse_HLinkTooltip = function(blob, length) {\n\tvar end = blob.l + length;\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n};\n\n/* 2.4.63 */\nfunction parse_Country(blob, length) {\n\tvar o = [], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\n\n/* 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob, length) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* 2.4.188 */\nfunction parse_Palette(blob, length) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* 2.4.354 */\nfunction parse_XFCRC(blob, length) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n\nvar parse_Style = parsenoop;\nvar parse_StyleExt = parsenoop;\n\nvar parse_ColInfo = parsenoop;\n\nvar parse_Window2 = parsenoop;\n\n\nvar parse_Backup = parsebool; /* 2.4.14 */\nvar parse_Blank = parse_XLSCell; /* 2.4.20 Just the cell */\nvar parse_BottomMargin = parse_Xnum; /* 2.4.27 */\nvar parse_BuiltInFnGroupCount = parseuint16; /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */\nvar parse_CalcCount = parseuint16; /* 2.4.31 #Iterations */\nvar parse_CalcDelta = parse_Xnum; /* 2.4.32 */\nvar parse_CalcIter = parsebool; /* 2.4.33 1=iterative calc */\nvar parse_CalcMode = parseuint16; /* 2.4.34 0=manual, 1=auto (def), 2=table */\nvar parse_CalcPrecision = parsebool; /* 2.4.35 */\nvar parse_CalcRefMode = parsenoop2; /* 2.4.36 */\nvar parse_CalcSaveRecalc = parsebool; /* 2.4.37 */\nvar parse_CodePage = parseuint16; /* 2.4.52 */\nvar parse_Compat12 = parsebool; /* 2.4.54 true = no compatibility check */\nvar parse_Date1904 = parsebool; /* 2.4.77 - 1=1904,0=1900 */\nvar parse_DefColWidth = parseuint16; /* 2.4.89 */\nvar parse_DSF = parsenoop2; /* 2.4.94 -- MUST be ignored */\nvar parse_EntExU2 = parsenoop2; /* 2.4.102 -- Explicitly says to ignore */\nvar parse_EOF = parsenoop2; /* 2.4.103 */\nvar parse_Excel9File = parsenoop2; /* 2.4.104 -- Optional and unused */\nvar parse_FeatHdr = parsenoop2; /* 2.4.112 */\nvar parse_FontX = parseuint16; /* 2.4.123 */\nvar parse_Footer = parse_XLHeaderFooter; /* 2.4.124 */\nvar parse_GridSet = parseuint16; /* 2.4.132, =1 */\nvar parse_HCenter = parsebool; /* 2.4.135 sheet centered horizontal on print */\nvar parse_Header = parse_XLHeaderFooter; /* 2.4.136 */\nvar parse_HideObj = parse_HideObjEnum; /* 2.4.139 */\nvar parse_InterfaceEnd = parsenoop2; /* 2.4.145 -- noop */\nvar parse_LeftMargin = parse_Xnum; /* 2.4.151 */\nvar parse_Mms = parsenoop2; /* 2.4.169 -- Explicitly says to ignore */\nvar parse_ObjProtect = parsebool; /* 2.4.183 -- must be 1 if present */\nvar parse_Password = parseuint16; /* 2.4.191 */\nvar parse_PrintGrid = parsebool; /* 2.4.202 */\nvar parse_PrintRowCol = parsebool; /* 2.4.203 */\nvar parse_PrintSize = parseuint16; /* 2.4.204 0:3 */\nvar parse_Prot4Rev = parsebool; /* 2.4.205 */\nvar parse_Prot4RevPass = parseuint16; /* 2.4.206 */\nvar parse_Protect = parsebool; /* 2.4.207 */\nvar parse_RefreshAll = parsebool; /* 2.4.217 -- must be 0 if not template */\nvar parse_RightMargin = parse_Xnum; /* 2.4.219 */\nvar parse_RRTabId = parseuint16a; /* 2.4.241 */\nvar parse_ScenarioProtect = parsebool; /* 2.4.245 */\nvar parse_Scl = parseuint16a; /* 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* 2.4.268 */\nvar parse_SxBool = parsebool; /* 2.4.274 */\nvar parse_TopMargin = parse_Xnum; /* 2.4.328 */\nvar parse_UsesELFs = parsebool; /* 2.4.337 -- should be 0 */\nvar parse_VCenter = parsebool; /* 2.4.342 */\nvar parse_WinProtect = parsebool; /* 2.4.347 */\nvar parse_WriteProtect = parsenoop; /* 2.4.350 empty record */\n\n\n/* ---- */\nvar parse_VerticalPageBreaks = parsenoop;\nvar parse_HorizontalPageBreaks = parsenoop;\nvar parse_Selection = parsenoop;\nvar parse_Continue = parsenoop;\nvar parse_Pane = parsenoop;\nvar parse_Pls = parsenoop;\nvar parse_DCon = parsenoop;\nvar parse_DConRef = parsenoop;\nvar parse_DConName = parsenoop;\nvar parse_XCT = parsenoop;\nvar parse_CRN = parsenoop;\nvar parse_FileSharing = parsenoop;\nvar parse_Uncalced = parsenoop;\nvar parse_Template = parsenoop;\nvar parse_Intl = parsenoop;\nvar parse_WsBool = parsenoop;\nvar parse_Sort = parsenoop;\nvar parse_Sync = parsenoop;\nvar parse_LPr = parsenoop;\nvar parse_DxGCol = parsenoop;\nvar parse_FnGroupName = parsenoop;\nvar parse_FilterMode = parsenoop;\nvar parse_AutoFilterInfo = parsenoop;\nvar parse_AutoFilter = parsenoop;\nvar parse_Setup = parsenoop;\nvar parse_ScenMan = parsenoop;\nvar parse_SCENARIO = parsenoop;\nvar parse_SxView = parsenoop;\nvar parse_Sxvd = parsenoop;\nvar parse_SXVI = parsenoop;\nvar parse_SxIvd = parsenoop;\nvar parse_SXLI = parsenoop;\nvar parse_SXPI = parsenoop;\nvar parse_DocRoute = parsenoop;\nvar parse_RecipName = parsenoop;\nvar parse_MulBlank = parsenoop;\nvar parse_SXDI = parsenoop;\nvar parse_SXDB = parsenoop;\nvar parse_SXFDB = parsenoop;\nvar parse_SXDBB = parsenoop;\nvar parse_SXNum = parsenoop;\nvar parse_SxErr = parsenoop;\nvar parse_SXInt = parsenoop;\nvar parse_SXString = parsenoop;\nvar parse_SXDtr = parsenoop;\nvar parse_SxNil = parsenoop;\nvar parse_SXTbl = parsenoop;\nvar parse_SXTBRGIITM = parsenoop;\nvar parse_SxTbpg = parsenoop;\nvar parse_ObProj = parsenoop;\nvar parse_SXStreamID = parsenoop;\nvar parse_DBCell = parsenoop;\nvar parse_SXRng = parsenoop;\nvar parse_SxIsxoper = parsenoop;\nvar parse_BookBool = parsenoop;\nvar parse_DbOrParamQry = parsenoop;\nvar parse_OleObjectSize = parsenoop;\nvar parse_SXVS = parsenoop;\nvar parse_BkHim = parsenoop;\nvar parse_MsoDrawingGroup = parsenoop;\nvar parse_MsoDrawing = parsenoop;\nvar parse_MsoDrawingSelection = parsenoop;\nvar parse_PhoneticInfo = parsenoop;\nvar parse_SxRule = parsenoop;\nvar parse_SXEx = parsenoop;\nvar parse_SxFilt = parsenoop;\nvar parse_SxDXF = parsenoop;\nvar parse_SxItm = parsenoop;\nvar parse_SxName = parsenoop;\nvar parse_SxSelect = parsenoop;\nvar parse_SXPair = parsenoop;\nvar parse_SxFmla = parsenoop;\nvar parse_SxFormat = parsenoop;\nvar parse_SXVDEx = parsenoop;\nvar parse_SXFormula = parsenoop;\nvar parse_SXDBEx = parsenoop;\nvar parse_RRDInsDel = parsenoop;\nvar parse_RRDHead = parsenoop;\nvar parse_RRDChgCell = parsenoop;\nvar parse_RRDRenSheet = parsenoop;\nvar parse_RRSort = parsenoop;\nvar parse_RRDMove = parsenoop;\nvar parse_RRFormat = parsenoop;\nvar parse_RRAutoFmt = parsenoop;\nvar parse_RRInsertSh = parsenoop;\nvar parse_RRDMoveBegin = parsenoop;\nvar parse_RRDMoveEnd = parsenoop;\nvar parse_RRDInsDelBegin = parsenoop;\nvar parse_RRDInsDelEnd = parsenoop;\nvar parse_RRDConflict = parsenoop;\nvar parse_RRDDefName = parsenoop;\nvar parse_RRDRstEtxp = parsenoop;\nvar parse_LRng = parsenoop;\nvar parse_CUsr = parsenoop;\nvar parse_CbUsr = parsenoop;\nvar parse_UsrInfo = parsenoop;\nvar parse_UsrExcl = parsenoop;\nvar parse_FileLock = parsenoop;\nvar parse_RRDInfo = parsenoop;\nvar parse_BCUsrs = parsenoop;\nvar parse_UsrChk = parsenoop;\nvar parse_UserBView = parsenoop;\nvar parse_UserSViewBegin = parsenoop; // overloaded\nvar parse_UserSViewEnd = parsenoop;\nvar parse_RRDUserView = parsenoop;\nvar parse_Qsi = parsenoop;\nvar parse_CondFmt = parsenoop;\nvar parse_CF = parsenoop;\nvar parse_DVal = parsenoop;\nvar parse_DConBin = parsenoop;\nvar parse_Lel = parsenoop;\nvar parse_XLSCodeName = parse_XLUnicodeString;\nvar parse_SXFDBType = parsenoop;\nvar parse_ObNoMacros = parsenoop;\nvar parse_Dv = parsenoop;\nvar parse_Index = parsenoop;\nvar parse_Table = parsenoop;\nvar parse_BigName = parsenoop;\nvar parse_ContinueBigName = parsenoop;\nvar parse_WebPub = parsenoop;\nvar parse_QsiSXTag = parsenoop;\nvar parse_DBQueryExt = parsenoop;\nvar parse_ExtString = parsenoop;\nvar parse_TxtQry = parsenoop;\nvar parse_Qsir = parsenoop;\nvar parse_Qsif = parsenoop;\nvar parse_RRDTQSIF = parsenoop;\nvar parse_OleDbConn = parsenoop;\nvar parse_WOpt = parsenoop;\nvar parse_SXViewEx = parsenoop;\nvar parse_SXTH = parsenoop;\nvar parse_SXPIEx = parsenoop;\nvar parse_SXVDTEx = parsenoop;\nvar parse_SXViewEx9 = parsenoop;\nvar parse_ContinueFrt = parsenoop;\nvar parse_RealTimeData = parsenoop;\nvar parse_ChartFrtInfo = parsenoop;\nvar parse_FrtWrapper = parsenoop;\nvar parse_StartBlock = parsenoop;\nvar parse_EndBlock = parsenoop;\nvar parse_StartObject = parsenoop;\nvar parse_EndObject = parsenoop;\nvar parse_CatLab = parsenoop;\nvar parse_YMult = parsenoop;\nvar parse_SXViewLink = parsenoop;\nvar parse_PivotChartBits = parsenoop;\nvar parse_FrtFontList = parsenoop;\nvar parse_SheetExt = parsenoop;\nvar parse_BookExt = parsenoop;\nvar parse_SXAddl = parsenoop;\nvar parse_CrErr = parsenoop;\nvar parse_HFPicture = parsenoop;\nvar parse_Feat = parsenoop;\nvar parse_DataLabExt = parsenoop;\nvar parse_DataLabExtContents = parsenoop;\nvar parse_CellWatch = parsenoop;\nvar parse_FeatHdr11 = parsenoop;\nvar parse_Feature11 = parsenoop;\nvar parse_DropDownObjIds = parsenoop;\nvar parse_ContinueFrt11 = parsenoop;\nvar parse_DConn = parsenoop;\nvar parse_List12 = parsenoop;\nvar parse_Feature12 = parsenoop;\nvar parse_CondFmt12 = parsenoop;\nvar parse_CF12 = parsenoop;\nvar parse_CFEx = parsenoop;\nvar parse_AutoFilter12 = parsenoop;\nvar parse_ContinueFrt12 = parsenoop;\nvar parse_MDTInfo = parsenoop;\nvar parse_MDXStr = parsenoop;\nvar parse_MDXTuple = parsenoop;\nvar parse_MDXSet = parsenoop;\nvar parse_MDXProp = parsenoop;\nvar parse_MDXKPI = parsenoop;\nvar parse_MDB = parsenoop;\nvar parse_PLV = parsenoop;\nvar parse_DXF = parsenoop;\nvar parse_TableStyles = parsenoop;\nvar parse_TableStyle = parsenoop;\nvar parse_TableStyleElement = parsenoop;\nvar parse_NamePublish = parsenoop;\nvar parse_NameCmt = parsenoop;\nvar parse_SortData = parsenoop;\nvar parse_GUIDTypeLib = parsenoop;\nvar parse_FnGrp12 = parsenoop;\nvar parse_NameFnGrp12 = parsenoop;\nvar parse_HeaderFooter = parsenoop;\nvar parse_CrtLayout12 = parsenoop;\nvar parse_CrtMlFrt = parsenoop;\nvar parse_CrtMlFrtContinue = parsenoop;\nvar parse_ShapePropsStream = parsenoop;\nvar parse_TextPropsStream = parsenoop;\nvar parse_RichTextStream = parsenoop;\nvar parse_CrtLayout12A = parsenoop;\nvar parse_Units = parsenoop;\nvar parse_Chart = parsenoop;\nvar parse_Series = parsenoop;\nvar parse_DataFormat = parsenoop;\nvar parse_LineFormat = parsenoop;\nvar parse_MarkerFormat = parsenoop;\nvar parse_AreaFormat = parsenoop;\nvar parse_PieFormat = parsenoop;\nvar parse_AttachedLabel = parsenoop;\nvar parse_SeriesText = parsenoop;\nvar parse_ChartFormat = parsenoop;\nvar parse_Legend = parsenoop;\nvar parse_SeriesList = parsenoop;\nvar parse_Bar = parsenoop;\nvar parse_Line = parsenoop;\nvar parse_Pie = parsenoop;\nvar parse_Area = parsenoop;\nvar parse_Scatter = parsenoop;\nvar parse_CrtLine = parsenoop;\nvar parse_Axis = parsenoop;\nvar parse_Tick = parsenoop;\nvar parse_ValueRange = parsenoop;\nvar parse_CatSerRange = parsenoop;\nvar parse_AxisLine = parsenoop;\nvar parse_CrtLink = parsenoop;\nvar parse_DefaultText = parsenoop;\nvar parse_Text = parsenoop;\nvar parse_ObjectLink = parsenoop;\nvar parse_Frame = parsenoop;\nvar parse_Begin = parsenoop;\nvar parse_End = parsenoop;\nvar parse_PlotArea = parsenoop;\nvar parse_Chart3d = parsenoop;\nvar parse_PicF = parsenoop;\nvar parse_DropBar = parsenoop;\nvar parse_Radar = parsenoop;\nvar parse_Surf = parsenoop;\nvar parse_RadarArea = parsenoop;\nvar parse_AxisParent = parsenoop;\nvar parse_LegendException = parsenoop;\nvar parse_ShtProps = parsenoop;\nvar parse_SerToCrt = parsenoop;\nvar parse_AxesUsed = parsenoop;\nvar parse_SBaseRef = parsenoop;\nvar parse_SerParent = parsenoop;\nvar parse_SerAuxTrend = parsenoop;\nvar parse_IFmtRecord = parsenoop;\nvar parse_Pos = parsenoop;\nvar parse_AlRuns = parsenoop;\nvar parse_BRAI = parsenoop;\nvar parse_SerAuxErrBar = parsenoop;\nvar parse_SerFmt = parsenoop;\nvar parse_Chart3DBarShape = parsenoop;\nvar parse_Fbi = parsenoop;\nvar parse_BopPop = parsenoop;\nvar parse_AxcExt = parsenoop;\nvar parse_Dat = parsenoop;\nvar parse_PlotGrowth = parsenoop;\nvar parse_SIIndex = parsenoop;\nvar parse_GelFrame = parsenoop;\nvar parse_BopPopCustom = parsenoop;\nvar parse_Fbi2 = parsenoop;\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_BIFF5String(blob) {\n\tvar len = blob.read_shift(1);\n\treturn blob.read_shift(len, 'sbcs-cont');\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.val = num;\n\treturn cell;\n}\n\n/* 18.4.1 charset to codepage mapping */\nvar CS2CP = {\n\t0: 1252, /* ANSI */\n\t1: 65001, /* DEFAULT */\n\t2: 65001, /* SYMBOL */\n\t77: 10000, /* MAC */\n\t128: 932, /* SHIFTJIS */\n\t129: 949, /* HANGUL */\n\t130: 1361, /* JOHAB */\n\t134: 936, /* GB2312 */\n\t136: 950, /* CHINESEBIG5 */\n\t161: 1253, /* GREEK */\n\t162: 1254, /* TURKISH */\n\t163: 1258, /* VIETNAMESE */\n\t177: 1255, /* HEBREW */\n\t178: 1256, /* ARABIC */\n\t186: 1257, /* BALTIC */\n\t204: 1251, /* RUSSIAN */\n\t222: 874, /* THAI */\n\t238: 1250, /* EASTEUROPE */\n\t255: 1252, /* OEM */\n\t69: 6969 /* MISC */\n};\n\n/* Parse a list of <r> tags */\nvar parse_rs = (function parse_rs_factory() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\"), rregex = /<r>/g, rend = /<\\/r>/, nlregex = /\\r\\n/g;\n\t/* 18.4.7 rPr CT_RPrElt */\n\tvar parse_rpr = function parse_rpr(rpr, intro, outro) {\n\t\tvar font = {}, cp = 65001;\n\t\tvar m = rpr.match(tagregex), i = 0;\n\t\tif(m) for(;i!=m.length; ++i) {\n\t\t\tvar y = parsexmltag(m[i]);\n\t\t\tswitch(y[0]) {\n\t\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '<condense': break;\n\t\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '<extend': break;\n\t\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '<shadow':\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<shadow/>': break;\n\n\t\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\t\tcase '<charset':\n\t\t\t\t\tif(y.val == '1') break;\n\t\t\t\t\tcp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\t\tbreak;\n\n\t\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\t\tcase '<outline':\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<outline/>': break;\n\n\t\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\t\tcase '<strike':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\t\tcase '</strike>': break;\n\n\t\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\t\tcase '<u':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\t\tcase '</u>': break;\n\n\t\t\t\t/* 18.8.2 b */\n\t\t\t\tcase '<b':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\t\tcase '</b>': break;\n\n\t\t\t\t/* 18.8.26 i */\n\t\t\t\tcase '<i':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\t\tcase '</i>': break;\n\n\t\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\t\tcase '<color':\n\t\t\t\t\tif(y.rgb) font.color = y.rgb.substr(2,6);\n\t\t\t\t\tbreak;\n\n\t\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\t\tcase '<family': font.family = y.val; break;\n\n\t\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\t\tcase '<vertAlign': break;\n\n\t\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\t\tcase '<scheme': break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(y[0].charCodeAt(1) !== 47) throw 'Unrecognized rich format ' + y[0];\n\t\t\t}\n\t\t}\n\t\t/* TODO: These should be generated styles, not inline */\n\t\tvar style = [];\n\t\tif(font.b) style.push(\"font-weight: bold;\");\n\t\tif(font.i) style.push(\"font-style: italic;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\t\toutro.push(\"</span>\");\n\t\treturn cp;\n\t};\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\tvar terms = [[],\"\",[]];\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex), cp = 65001;\n\t\tif(!isval(t)) return \"\";\n\t\tterms[1] = t[1];\n\n\t\tvar rpr = r.match(rpregex);\n\t\tif(isval(rpr)) cp = parse_rpr(rpr[1], terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<t[^>]*>([^<]*)<\\/t>/g, sirregex = /<r>/;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return null;\n\tvar y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\tif(x.charCodeAt(1) === 116) {\n\t\tz.t = utf8read(unescapexml(x.substr(x.indexOf(\">\")+1).split(/<\\/t>/)[0]));\n\t\tz.r = x;\n\t\tif(html) z.h = z.t;\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((y = x.match(sirregex))) {\n\t\tz.r = x;\n\t\tz.t = utf8read(unescapexml(x.match(sitregex).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = parse_rs(x);\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<sst([^>]*)>([\\s\\S]*)<\\/sst>/;\nvar sstr1 = /<(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = [], ss;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(isval(sst)) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i], opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.219 BrtBeginSst */\nfunction parse_BrtBeginSst(data, length) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtBeginSst': s.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 'BrtSSTItem': s.push(val); break;\n\t\t\tcase 'BrtEndSst': return true;\n\t\t\t/* TODO: produce a test case with a future record */\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) { if(typeof cptable !== 'undefined') return cptable.utils.encode(1252, str); return str.split(\"\").map(function(x) { return x.charCodeAt(0); }); }\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_Version(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar o = {};\n\to.Flags = blob.read_shift(4);\n\n\t// Check if SizeExtra is 0x00000000\n\tvar tmp = blob.read_shift(4);\n\tif(tmp !== 0) throw 'Unrecognized SizeExtra: ' + tmp;\n\n\to.AlgID = blob.read_shift(4);\n\tswitch(o.AlgID) {\n\t\tcase 0: case 0x6801: case 0x660E: case 0x660F: case 0x6610: break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tparsenoop(blob, length-12);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\treturn parsenoop(blob, length);\n}\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw 'unrecognized minor version code: ' + vers.Minor;\n\tif(vers.Major > 4 || vers.Major < 2) throw 'unrecognized major version code: ' + vers.Major;\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4;\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(null, Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = { key: parseuint16(blob), verificationBytes: parseuint16(blob) };\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu_decrypt = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = { Type: blob.read_shift(2) }; /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, length-2, opts, o);\n\treturn o;\n}\n\n\nfunction hex2RGB(h) {\n\tvar o = h.substr(h[0]===\"#\"?1:0,6);\n\treturn [parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().substr(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\nvar DEF_MDW = 7, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return (( width + ((128/MDW)|0)/256 )* MDW )|0; }\nfunction px2char(px) { return (((px - 5)/MDW * 100 + 0.5)|0)/100; }\nfunction char2width(chr) { return (((chr * MDW + 5)/MDW*256)|0)/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\nfunction find_mdw(collw, coll) {\n\tif(cycle_width(collw) != collw) {\n\t\tfor(MDW=DEF_MDW; MDW>MIN_MDW; --MDW) if(cycle_width(collw) === collw) break;\n\t\tif(MDW === MIN_MDW) for(MDW=DEF_MDW+1; MDW<MAX_MDW; ++MDW) if(cycle_width(collw) === collw) break;\n\t\tif(MDW === MAX_MDW) MDW = DEF_MDW;\n\t}\n}\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\nvar styles = {}; // shared styles\n\nvar themes = {}; // shared themes\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': break;\n\t\t\tcase '</fill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.substring(y.rgb.length - 6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.fgColor.rgb = y.rgb.substring(y.rgb.length - 6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in fills';\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, opts) {\n\tstyles.NumberFmt = [];\n\tvar k = keys(SSF._table);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0]) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f; if(j>0) SSF.load(f,j);\n\t\t\t} break;\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in numFmts';\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF, opts) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[63,66],[164,392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] !== undefined) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nfunction parse_cellXfs(t, opts) {\n\tstyles.CellXf = [];\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': delete y[0];\n\t\t\t\tif(y.numFmtId) y.numFmtId = parseInt(y.numFmtId, 10);\n\t\t\t\tif(y.fillId) y.fillId = parseInt(y.fillId, 10);\n\t\t\t\tstyles.CellXf.push(y); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection': case '</protection>': case '<protection/>': break;\n\n\t\t\tcase '<extLst': case '</extLst>': break;\n\t\t\tcase '<ext': break;\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in cellXfs';\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) { o[o.length] = (writextag('xf', null, c)); });\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<numFmts([^>]*)>.*<\\/numFmts>/;\nvar cellXfRegex = /<cellXfs([^>]*)>.*<\\/cellXfs>/;\nvar fillsRegex = /<fills([^>]*)>.*<\\/fills>/;\n\nreturn function parse_sty_xml(data, opts) {\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, opts);\n\n\t/* fonts CT_Fonts ? */\n\t/*if((t=data.match(/<fonts([^>]*)>.*<\\/fonts>/))) parse_fonts(t, opts);*/\n\n\t/* fills CT_Fills */\n\tif((t=data.match(fillsRegex))) parse_fills(t, opts);\n\n\t/* borders CT_Borders ? */\n\t/* cellStyleXfs CT_CellStyleXfs ? */\n\n\t/* cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, opts);\n\n\t/* dxfs CT_Dxfs ? */\n\t/* tableStyles CT_TableStyles ? */\n\t/* colors CT_Colors ? */\n\t/* extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif((w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.651 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar ifmt = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [ifmt, stFmtCode];\n}\n\n/* [MS-XLSB] 2.4.653 BrtFont TODO */\nfunction parse_BrtFont(data, length) {\n\tvar out = {flags:{}};\n\tout.dyHeight = data.read_shift(2);\n\tout.grbit = parse_FontFlags(data, 2);\n\tout.bls = data.read_shift(2);\n\tout.sss = data.read_shift(2);\n\tout.uls = data.read_shift(1);\n\tout.bFamily = data.read_shift(1);\n\tout.bCharSet = data.read_shift(1);\n\tdata.l++;\n\tout.brtColor = parse_BrtColor(data, 8);\n\tout.bFontScheme = data.read_shift(1);\n\tout.name = parse_XLWideString(data, length - 21);\n\n\tout.flags.Bold = out.bls === 0x02BC;\n\tout.flags.Italic = out.grbit.fItalic;\n\tout.flags.Strikeout = out.grbit.fStrikeout;\n\tout.flags.Outline = out.grbit.fOutline;\n\tout.flags.Shadow = out.grbit.fShadow;\n\tout.flags.Condense = out.grbit.fCondense;\n\tout.flags.Extend = out.grbit.fExtend;\n\tout.flags.Sub = out.sss & 0x2;\n\tout.flags.Sup = out.sss & 0x1;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.816 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tparsenoop(data, length-4);\n\treturn {ixfe:ixfeParent, ifmt:ifmt };\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, opts) {\n\tstyles.NumberFmt = [];\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tvar state = \"\"; /* TODO: this should be a stack */\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtFmt':\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 'BrtFont': break; /* TODO */\n\t\t\tcase 'BrtKnownFonts': break; /* TODO */\n\t\t\tcase 'BrtFill': break; /* TODO */\n\t\t\tcase 'BrtBorder': break; /* TODO */\n\t\t\tcase 'BrtXF':\n\t\t\t\tif(state === \"CELLXFS\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak; /* TODO */\n\t\t\tcase 'BrtStyle': break; /* TODO */\n\t\t\tcase 'BrtDXF': break; /* TODO */\n\t\t\tcase 'BrtMRUColor': break; /* TODO */\n\t\t\tcase 'BrtIndexedColor': break; /* TODO */\n\t\t\tcase 'BrtBeginStyleSheet': break;\n\t\t\tcase 'BrtEndStyleSheet': break;\n\t\t\tcase 'BrtBeginTableStyle': break;\n\t\t\tcase 'BrtTableStyleElement': break;\n\t\t\tcase 'BrtEndTableStyle': break;\n\t\t\tcase 'BrtBeginFmts': state = \"FMTS\"; break;\n\t\t\tcase 'BrtEndFmts': state = \"\"; break;\n\t\t\tcase 'BrtBeginFonts': state = \"FONTS\"; break;\n\t\t\tcase 'BrtEndFonts': state = \"\"; break;\n\t\t\tcase 'BrtACBegin': state = \"ACFONTS\"; break;\n\t\t\tcase 'BrtACEnd': state = \"\"; break;\n\t\t\tcase 'BrtBeginFills': state = \"FILLS\"; break;\n\t\t\tcase 'BrtEndFills': state = \"\"; break;\n\t\t\tcase 'BrtBeginBorders': state = \"BORDERS\"; break;\n\t\t\tcase 'BrtEndBorders': state = \"\"; break;\n\t\t\tcase 'BrtBeginCellStyleXFs': state = \"CELLSTYLEXFS\"; break;\n\t\t\tcase 'BrtEndCellStyleXFs': state = \"\"; break;\n\t\t\tcase 'BrtBeginCellXFs': state = \"CELLXFS\"; break;\n\t\t\tcase 'BrtEndCellXFs': state = \"\"; break;\n\t\t\tcase 'BrtBeginStyles': state = \"STYLES\"; break;\n\t\t\tcase 'BrtEndStyles': state = \"\"; break;\n\t\t\tcase 'BrtBeginDXFs': state = \"DXFS\"; break;\n\t\t\tcase 'BrtEndDXFs': state = \"\"; break;\n\t\t\tcase 'BrtBeginTableStyles': state = \"TABLESTYLES\"; break;\n\t\t\tcase 'BrtEndTableStyles': state = \"\"; break;\n\t\t\tcase 'BrtBeginColorPalette': state = \"COLORPALETTE\"; break;\n\t\t\tcase 'BrtEndColorPalette': state = \"\"; break;\n\t\t\tcase 'BrtBeginIndexedColors': state = \"INDEXEDCOLORS\"; break;\n\t\t\tcase 'BrtEndIndexedColors': state = \"\"; break;\n\t\t\tcase 'BrtBeginMRUColors': state = \"MRUCOLORS\"; break;\n\t\t\tcase 'BrtEndMRUColors': state = \"\"; break;\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tcase 'BrtBeginStyleSheetExt14': break;\n\t\t\tcase 'BrtBeginSlicerStyles': break;\n\t\t\tcase 'BrtEndSlicerStyles': break;\n\t\t\tcase 'BrtBeginTimelineStylesheetExt15': break;\n\t\t\tcase 'BrtEndTimelineStylesheetExt15': break;\n\t\t\tcase 'BrtBeginTimelineStyles': break;\n\t\t\tcase 'BrtEndTimelineStyles': break;\n\t\t\tcase 'BrtEndStyleSheetExt14': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn styles;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(data, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\t/* [FMTS] */\n\t/* [FONTS] */\n\t/* [FILLS] */\n\t/* [BORDERS] */\n\t/* CELLSTYLEXFS */\n\t/* CELLXFS*/\n\t/* STYLES */\n\t/* DXFS */\n\t/* TABLESTYLES */\n\t/* [COLORPALETTE] */\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr': color.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr': color.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\tcase '<a:dk1>':\n\t\t\tcase '</a:dk1>':\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\tcase '<a:dk2>':\n\t\t\tcase '</a:dk2>':\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\tcase '<a:lt1>':\n\t\t\tcase '</a:lt1>':\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:lt2>':\n\t\t\tcase '</a:lt2>':\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\tcase '<a:accent1>':\n\t\t\tcase '</a:accent1>':\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\tcase '<a:accent2>':\n\t\t\tcase '</a:accent2>':\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\tcase '<a:accent3>':\n\t\t\tcase '</a:accent3>':\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\tcase '<a:accent4>':\n\t\t\tcase '</a:accent4>':\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\tcase '<a:accent5>':\n\t\t\tcase '</a:accent5>':\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\tcase '<a:accent6>':\n\t\t\tcase '</a:accent6>':\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\tcase '<a:hlink>':\n\t\t\tcase '</a:hlink>':\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\tcase '<a:folHlink>':\n\t\t\tcase '</a:folHlink>':\n\t\t\t\tif (y[0][1] === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme.push(color);\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].substring(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in clrScheme';\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(t, opts) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(t, opts) { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[^\\u2603]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[^\\u2603]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[^\\u2603]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw m[0] + ' not found in themeElements';\n\t\tm[2](t, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[^\\u2603]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return themes;\n\n\tvar t;\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw 'themeElements not found in theme';\n\tparse_themeElements(t[0], opts);\n\n\treturn themes;\n}\n\nfunction write_theme() { return '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"><a:themeElements><a:clrScheme name=\"Office\"><a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1><a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1><a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2><a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2><a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1><a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2><a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3><a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4><a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5><a:accent6><a:srgbClr val=\"F79646\"/></a:accent6><a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink><a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink></a:clrScheme><a:fontScheme name=\"Office\"><a:majorFont><a:latin typeface=\"Cambria\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/><a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/><a:font script=\"Hang\" typeface=\"맑은 고딕\"/><a:font script=\"Hans\" typeface=\"宋体\"/><a:font script=\"Hant\" typeface=\"新細明體\"/><a:font script=\"Arab\" typeface=\"Times New Roman\"/><a:font script=\"Hebr\" typeface=\"Times New Roman\"/><a:font script=\"Thai\" typeface=\"Tahoma\"/><a:font script=\"Ethi\" typeface=\"Nyala\"/><a:font script=\"Beng\" typeface=\"Vrinda\"/><a:font script=\"Gujr\" typeface=\"Shruti\"/><a:font script=\"Khmr\" typeface=\"MoolBoran\"/><a:font script=\"Knda\" typeface=\"Tunga\"/><a:font script=\"Guru\" typeface=\"Raavi\"/><a:font script=\"Cans\" typeface=\"Euphemia\"/><a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/><a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/><a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/><a:font script=\"Thaa\" typeface=\"MV Boli\"/><a:font script=\"Deva\" typeface=\"Mangal\"/><a:font script=\"Telu\" typeface=\"Gautami\"/><a:font script=\"Taml\" typeface=\"Latha\"/><a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/><a:font script=\"Orya\" typeface=\"Kalinga\"/><a:font script=\"Mlym\" typeface=\"Kartika\"/><a:font script=\"Laoo\" typeface=\"DokChampa\"/><a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/><a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/><a:font script=\"Viet\" typeface=\"Times New Roman\"/><a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/><a:font script=\"Geor\" typeface=\"Sylfaen\"/></a:majorFont><a:minorFont><a:latin typeface=\"Calibri\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/><a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/><a:font script=\"Hang\" typeface=\"맑은 고딕\"/><a:font script=\"Hans\" typeface=\"宋体\"/><a:font script=\"Hant\" typeface=\"新細明體\"/><a:font script=\"Arab\" typeface=\"Arial\"/><a:font script=\"Hebr\" typeface=\"Arial\"/><a:font script=\"Thai\" typeface=\"Tahoma\"/><a:font script=\"Ethi\" typeface=\"Nyala\"/><a:font script=\"Beng\" typeface=\"Vrinda\"/><a:font script=\"Gujr\" typeface=\"Shruti\"/><a:font script=\"Khmr\" typeface=\"DaunPenh\"/><a:font script=\"Knda\" typeface=\"Tunga\"/><a:font script=\"Guru\" typeface=\"Raavi\"/><a:font script=\"Cans\" typeface=\"Euphemia\"/><a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/><a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/><a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/><a:font script=\"Thaa\" typeface=\"MV Boli\"/><a:font script=\"Deva\" typeface=\"Mangal\"/><a:font script=\"Telu\" typeface=\"Gautami\"/><a:font script=\"Taml\" typeface=\"Latha\"/><a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/><a:font script=\"Orya\" typeface=\"Kalinga\"/><a:font script=\"Mlym\" typeface=\"Kartika\"/><a:font script=\"Laoo\" typeface=\"DokChampa\"/><a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/><a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/><a:font script=\"Viet\" typeface=\"Arial\"/><a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/><a:font script=\"Geor\" typeface=\"Sylfaen\"/></a:minorFont></a:fontScheme><a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs><a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"16200000\" scaled=\"1\"/></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"16200000\" scaled=\"0\"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln><a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln><a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs><a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs></a:gsLst><a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs></a:gsLst><a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults><a:spDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style></a:spDef><a:lnDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style></a:lnDef></a:objectDefaults><a:extraClrSchemeLst/></a:theme>'; }\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length) {\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tblob.l += length-4;\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob, length) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob, length) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.108 */\nfunction parse_ExtProp(blob, length) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2);\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 5 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x07: case 0x08: case 0x09: case 0x0a: break;\n\t\t\tcase 0x0d: break; /* text color */\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tdefault: throw \"bafuq\" + xfe[0].toString(16);\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data, opts) {\n\tvar d = [];\n\tvar l = 0, i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\nfunction write_cc_xml(data, opts) { }\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data, length) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtCalcChainItem$': out.push(val); break;\n\t\t\tcase 'BrtBeginCalcChain$': break;\n\t\t\tcase 'BrtEndCalcChain$': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_cc_bin(data, opts) { }\n\nfunction parse_comments(zip, dirComments, sheets, sheetRels, opts) {\n\tfor(var i = 0; i != dirComments.length; ++i) {\n\t\tvar canonicalpath=dirComments[i];\n\t\tvar comments=parse_cmnt(getzipdata(zip, canonicalpath.replace(/^\\//,''), true), canonicalpath, opts);\n\t\tif(!comments || !comments.length) continue;\n\t\t// find the sheets targeted by these comments\n\t\tvar sheetNames = keys(sheets);\n\t\tfor(var j = 0; j != sheetNames.length; ++j) {\n\t\t\tvar sheetName = sheetNames[j];\n\t\t\tvar rels = sheetRels[sheetName];\n\t\t\tif(rels) {\n\t\t\t\tvar rel = rels[canonicalpath];\n\t\t\t\tif(rel) insertCommentsIntoSheet(sheetName, sheets[sheetName], comments);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction insertCommentsIntoSheet(sheetName, sheet, comments) {\n\tcomments.forEach(function(comment) {\n\t\tvar cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = {};\n\t\t\tsheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tvar thisCell = decode_cell(comment.ref);\n\t\t\tif(range.s.r > thisCell.r) range.s.r = thisCell.r;\n\t\t\tif(range.e.r < thisCell.r) range.e.r = thisCell.r;\n\t\t\tif(range.s.c > thisCell.c) range.s.c = thisCell.c;\n\t\t\tif(range.e.c < thisCell.c) range.e.c = thisCell.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = {a: comment.author, t: comment.t, r: comment.r};\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7.3 CT_Comment */\nfunction parse_comments_xml(data, opts) {\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tdata.match(/<(?:\\w+:)?authors>([^\\u2603]*)<\\/(?:\\w+:)?authors>/)[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tauthors.push(x.match(/<(?:\\w+:)?author[^>]*>(.*)/)[1]);\n\t});\n\t(data.match(/<(?:\\w+:)?commentList>([^\\u2603]*)<\\/(?:\\w+:)?commentList>/)||[\"\",\"\"])[1].split(/<\\/\\w*:?comment>/).forEach(function(x, index) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar y = parsexmltag(x.match(/<(?:\\w+:)?comment[^>]*>/)[0]);\n\t\tvar comment = { author: y.authorId && authors[y.authorId] ? authors[y.authorId] : undefined, ref: y.ref, guid: y.guid };\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<text>([^\\u2603]*)<\\/text>/);\n\t\tif (!textMatch || !textMatch[1]) return; // a comment may contain an empty text tag.\n\t\tvar rt = parse_si(textMatch[1]);\n\t\tcomment.r = rt.r;\n\t\tcomment.t = rt.t;\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data, opts) { }\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data, length) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.324 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\n\n/* [MS-XLSB] 2.4.325 BrtCommentText */\nvar parse_BrtCommentText = parse_RichStr;\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtCommentAuthor': authors.push(val); break;\n\t\t\tcase 'BrtBeginComment': c = val; break;\n\t\t\tcase 'BrtCommentText': c.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 'BrtEndComment':\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete c.iauthor;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\t\t\tcase 'BrtBeginComments': break;\n\t\t\tcase 'BrtEndComments': break;\n\t\t\tcase 'BrtBeginCommentAuthors': break;\n\t\t\tcase 'BrtEndCommentAuthors': break;\n\t\t\tcase 'BrtBeginCommentList': break;\n\t\t\tcase 'BrtEndCommentList': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data, opts) { }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z])R(\\[?)(-?\\d+|)\\]?C(\\[?)(-?\\d+|)\\]?/g;\n\tvar rcbase;\n\tfunction rcfunc($$,$1,$2,$3,$4,$5) {\n\t\tvar R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0;\n\t\tif(C<0 && $4.length === 0) C=0;\n\t\tif($4.length > 0) C += rcbase.c;\n\t\tif($2.length > 0) R += rcbase.r;\n\t\treturn $1 + encode_col(C) + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\n/* --- formula references point to MS-XLS --- */\n/* Small helpers */\nfunction parseread(l) { return function(blob, length) { blob.l+=l; return; }; }\nfunction parseread1(blob, length) { blob.l+=1; return; }\n\n/* Rgce Helpers */\n\n/* 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* 2.5.198.105 */\nfunction parse_RgceArea(blob, length) {\n\tvar r=blob.read_shift(2), R=blob.read_shift(2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* 2.5.198.105 TODO */\nfunction parse_RgceAreaRel(blob, length) {\n\tvar r=blob.read_shift(2), R=blob.read_shift(2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* 2.5.198.109 */\nfunction parse_RgceLoc(blob, length) {\n\tvar r = blob.read_shift(2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\n\n/* 2.5.198.111 */\nfunction parse_RgceLocRel(blob, length) {\n\tvar r = blob.read_shift(2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x8000) >> 15, rRel = (cl & 0x4000) >> 14;\n\tcl &= 0x3FFF;\n\tif(cRel !== 0) while(cl >= 0x100) cl -= 0x100;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\n\n/* Ptg Tokens */\n\n/* 2.5.198.27 */\nfunction parse_PtgArea(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, 8);\n\treturn [type, area];\n}\n\n/* 2.5.198.28 */\nfunction parse_PtgArea3d(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar area = parse_RgceArea(blob, 8);\n\treturn [type, ixti, area];\n}\n\n/* 2.5.198.29 */\nfunction parse_PtgAreaErr(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += 8;\n\treturn [type];\n}\n/* 2.5.198.30 */\nfunction parse_PtgAreaErr3d(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tblob.l += 8;\n\treturn [type, ixti];\n}\n\n/* 2.5.198.31 */\nfunction parse_PtgAreaN(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, 8);\n\treturn [type, area];\n}\n\n/* 2.5.198.32 -- ignore this and look in PtgExtraArray for shape + values */\nfunction parse_PtgArray(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += 7;\n\treturn [type];\n}\n\n/* 2.5.198.33 */\nfunction parse_PtgAttrBaxcel(blob, length) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* 2.5.198.34 */\nfunction parse_PtgAttrChoose(blob, length) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(2));\n\treturn o;\n}\n\n/* 2.5.198.35 */\nfunction parse_PtgAttrGoto(blob, length) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(2)];\n}\n\n/* 2.5.198.36 */\nfunction parse_PtgAttrIf(blob, length) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* 2.5.198.37 */\nfunction parse_PtgAttrSemi(blob, length) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 4;\n\treturn [bitSemi];\n}\n\n/* 2.5.198.40 (used by PtgAttrSpace and PtgAttrSpaceSemi) */\nfunction parse_PtgAttrSpaceType(blob, length) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* 2.5.198.38 */\nfunction parse_PtgAttrSpace(blob, length) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* 2.5.198.39 */\nfunction parse_PtgAttrSpaceSemi(blob, length) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* 2.5.198.84 TODO */\nfunction parse_PtgRef(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob,4);\n\treturn [type, loc];\n}\n\n/* 2.5.198.88 TODO */\nfunction parse_PtgRefN(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob,4);\n\treturn [type, loc];\n}\n\n/* 2.5.198.85 TODO */\nfunction parse_PtgRef3d(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar loc = parse_RgceLoc(blob,4);\n\treturn [type, ixti, loc];\n}\n\n\n/* 2.5.198.62 TODO */\nfunction parse_PtgFunc(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(2);\n\treturn [FtabArgc[iftab], Ftab[iftab]];\n}\n/* 2.5.198.63 TODO */\nfunction parse_PtgFuncVar(blob, length) {\n\tblob.l++;\n\tvar cparams = blob.read_shift(1), tab = parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob, length) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* 2.5.198.41 */\nvar parse_PtgAttrSum = parseread(4);\n/* 2.5.198.43 */\nvar parse_PtgConcat = parseread1;\n\n/* 2.5.198.58 */\nfunction parse_PtgExp(blob, length) {\n\tblob.l++;\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(2);\n\treturn [row, col];\n}\n\n/* 2.5.198.57 */\nfunction parse_PtgErr(blob, length) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* 2.5.198.66 TODO */\nfunction parse_PtgInt(blob, length) { blob.l++; return blob.read_shift(2); }\n\n/* 2.5.198.42 */\nfunction parse_PtgBool(blob, length) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* 2.5.198.79 */\nfunction parse_PtgNum(blob, length) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* 2.5.198.89 */\nfunction parse_PtgStr(blob, length) { blob.l++; return parse_ShortXLUnicodeString(blob); }\n\n/* 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\nfunction parse_SerAr(blob) {\n\tvar val = [];\n\tswitch((val[0] = blob.read_shift(1))) {\n\t\t/* 2.5.192.113 */\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tblob.l += 7; break;\n\t\t/* 2.5.192.114 */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += 8; break;\n\t\t/* 2.5.192.115 */\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\t/* 2.5.192.116 */\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\t/* 2.5.192.117 */\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString(blob); break;\n\t\t// default: throw \"Bad SerAr: \" + val[0]; /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* 2.5.198.61 */\nfunction parse_PtgExtraMem(blob, cce) {\n\tvar count = blob.read_shift(2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(parse_Ref8U(blob, 8));\n\treturn out;\n}\n\n/* 2.5.198.59 */\nfunction parse_PtgExtraArray(blob) {\n\tvar cols = 1 + blob.read_shift(1); //DColByteU\n\tvar rows = 1 + blob.read_shift(2); //DRw\n\tfor(var i = 0, o=[]; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob);\n\treturn o;\n}\n\n/* 2.5.198.76 */\nfunction parse_PtgName(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, 0, nameindex];\n}\n\n/* 2.5.198.77 */\nfunction parse_PtgNameX(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\n\n/* 2.5.198.70 */\nfunction parse_PtgMemArea(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\n\n/* 2.5.198.72 */\nfunction parse_PtgMemFunc(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\n\n\n/* 2.5.198.86 */\nfunction parse_PtgRefErr(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\treturn [type];\n}\n\n/* 2.5.198.26 */\nvar parse_PtgAdd = parseread1;\n/* 2.5.198.45 */\nvar parse_PtgDiv = parseread1;\n/* 2.5.198.56 */\nvar parse_PtgEq = parseread1;\n/* 2.5.198.64 */\nvar parse_PtgGe = parseread1;\n/* 2.5.198.65 */\nvar parse_PtgGt = parseread1;\n/* 2.5.198.67 */\nvar parse_PtgIsect = parseread1;\n/* 2.5.198.68 */\nvar parse_PtgLe = parseread1;\n/* 2.5.198.69 */\nvar parse_PtgLt = parseread1;\n/* 2.5.198.74 */\nvar parse_PtgMissArg = parseread1;\n/* 2.5.198.75 */\nvar parse_PtgMul = parseread1;\n/* 2.5.198.78 */\nvar parse_PtgNe = parseread1;\n/* 2.5.198.80 */\nvar parse_PtgParen = parseread1;\n/* 2.5.198.81 */\nvar parse_PtgPercent = parseread1;\n/* 2.5.198.82 */\nvar parse_PtgPower = parseread1;\n/* 2.5.198.83 */\nvar parse_PtgRange = parseread1;\n/* 2.5.198.90 */\nvar parse_PtgSub = parseread1;\n/* 2.5.198.93 */\nvar parse_PtgUminus = parseread1;\n/* 2.5.198.94 */\nvar parse_PtgUnion = parseread1;\n/* 2.5.198.95 */\nvar parse_PtgUplus = parseread1;\n\n/* 2.5.198.71 */\nvar parse_PtgMemErr = parsenoop;\n/* 2.5.198.73 */\nvar parse_PtgMemNoMem = parsenoop;\n/* 2.5.198.87 */\nvar parse_PtgRefErr3d = parsenoop;\n/* 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\n/* 2.5.198.25 */\nvar PtgTypes = {\n\t0x01: { n:'PtgExp', f:parse_PtgExp },\n\t0x02: { n:'PtgTbl', f:parse_PtgTbl },\n\t0x03: { n:'PtgAdd', f:parse_PtgAdd },\n\t0x04: { n:'PtgSub', f:parse_PtgSub },\n\t0x05: { n:'PtgMul', f:parse_PtgMul },\n\t0x06: { n:'PtgDiv', f:parse_PtgDiv },\n\t0x07: { n:'PtgPower', f:parse_PtgPower },\n\t0x08: { n:'PtgConcat', f:parse_PtgConcat },\n\t0x09: { n:'PtgLt', f:parse_PtgLt },\n\t0x0A: { n:'PtgLe', f:parse_PtgLe },\n\t0x0B: { n:'PtgEq', f:parse_PtgEq },\n\t0x0C: { n:'PtgGe', f:parse_PtgGe },\n\t0x0D: { n:'PtgGt', f:parse_PtgGt },\n\t0x0E: { n:'PtgNe', f:parse_PtgNe },\n\t0x0F: { n:'PtgIsect', f:parse_PtgIsect },\n\t0x10: { n:'PtgUnion', f:parse_PtgUnion },\n\t0x11: { n:'PtgRange', f:parse_PtgRange },\n\t0x12: { n:'PtgUplus', f:parse_PtgUplus },\n\t0x13: { n:'PtgUminus', f:parse_PtgUminus },\n\t0x14: { n:'PtgPercent', f:parse_PtgPercent },\n\t0x15: { n:'PtgParen', f:parse_PtgParen },\n\t0x16: { n:'PtgMissArg', f:parse_PtgMissArg },\n\t0x17: { n:'PtgStr', f:parse_PtgStr },\n\t0x1C: { n:'PtgErr', f:parse_PtgErr },\n\t0x1D: { n:'PtgBool', f:parse_PtgBool },\n\t0x1E: { n:'PtgInt', f:parse_PtgInt },\n\t0x1F: { n:'PtgNum', f:parse_PtgNum },\n\t0x20: { n:'PtgArray', f:parse_PtgArray },\n\t0x21: { n:'PtgFunc', f:parse_PtgFunc },\n\t0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t0x23: { n:'PtgName', f:parse_PtgName },\n\t0x24: { n:'PtgRef', f:parse_PtgRef },\n\t0x25: { n:'PtgArea', f:parse_PtgArea },\n\t0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n\t0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t0x39: { n:'PtgNameX', f:parse_PtgNameX },\n\t0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t0x40: 0x20, 0x60: 0x20,\n\t0x41: 0x21, 0x61: 0x21,\n\t0x42: 0x22, 0x62: 0x22,\n\t0x43: 0x23, 0x63: 0x23,\n\t0x44: 0x24, 0x64: 0x24,\n\t0x45: 0x25, 0x65: 0x25,\n\t0x46: 0x26, 0x66: 0x26,\n\t0x47: 0x27, 0x67: 0x27,\n\t0x48: 0x28, 0x68: 0x28,\n\t0x49: 0x29, 0x69: 0x29,\n\t0x4A: 0x2A, 0x6A: 0x2A,\n\t0x4B: 0x2B, 0x6B: 0x2B,\n\t0x4C: 0x2C, 0x6C: 0x2C,\n\t0x4D: 0x2D, 0x6D: 0x2D,\n\t0x59: 0x39, 0x79: 0x39,\n\t0x5A: 0x3A, 0x7A: 0x3A,\n\t0x5B: 0x3B, 0x7B: 0x3B,\n\t0x5C: 0x3C, 0x7C: 0x3C,\n\t0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {};\nvar Ptg19 = {\n\t0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t0xFF: {}\n};\n\n/* 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tblob.read_shift(1);\n\tvar chn = blob.read_shift(4);\n\tvar cbf = \"\";\n\tif(opts.biff === 5) blob.l += length-20;\n\telse cbf = parse_XLSCellParsedFormula(blob, length-20, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\n\n/* 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n}\n\n/* 2.5.198.103 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1]);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce);\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, length - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts, ref) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce);\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.104 */\nfunction parse_Rgce(blob, length) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\t//console.log(\"ptg\", id, R)\n\t\tif(id === 0x18 || id === 0x19) {\n\t\t\tid = blob[blob.l + 1];\n\t\t\tR = (id === 0x18 ? Ptg18 : Ptg19)[id];\n\t\t}\n\t\tif(!R || !R.f) { ptgs.push(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction mapper(x) { return x.map(function f2(y) { return y[1];}).join(\",\");}\n\n/* 2.2.2 + Magic TODO */\nfunction stringify_formula(formula, range, cell, supbooks, opts) {\n\tif(opts !== undefined && opts.biff === 5) return \"BIFF5??\";\n\tvar _range = range !== undefined ? range : {s:{c:0, r:0}};\n\tvar stack = [], e1, e2, type, c, ixti, nameidx, r;\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\t//console.log(\"--\",cell,formula[0])\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\t//console.log(\"++\",f, stack)\n\t\tswitch(f[0]) {\n\t\t/* 2.2.2.1 Unary Operator Tokens */\n\t\t\t/* 2.5.198.93 */\n\t\t\tcase 'PtgUminus': stack.push(\"-\" + stack.pop()); break;\n\t\t\t/* 2.5.198.95 */\n\t\t\tcase 'PtgUplus': stack.push(\"+\" + stack.pop()); break;\n\t\t\t/* 2.5.198.81 */\n\t\t\tcase 'PtgPercent': stack.push(stack.pop() + \"%\"); break;\n\n\t\t/* 2.2.2.1 Binary Value Operator Token */\n\t\t\t/* 2.5.198.26 */\n\t\t\tcase 'PtgAdd':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"+\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.90 */\n\t\t\tcase 'PtgSub':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"-\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.75 */\n\t\t\tcase 'PtgMul':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"*\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.45 */\n\t\t\tcase 'PtgDiv':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"/\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.82 */\n\t\t\tcase 'PtgPower':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"^\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.43 */\n\t\t\tcase 'PtgConcat':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"&\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.69 */\n\t\t\tcase 'PtgLt':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"<\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.68 */\n\t\t\tcase 'PtgLe':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"<=\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.56 */\n\t\t\tcase 'PtgEq':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"=\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.64 */\n\t\t\tcase 'PtgGe':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\">=\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.65 */\n\t\t\tcase 'PtgGt':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\">\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.78 */\n\t\t\tcase 'PtgNe':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"<>\"+e1);\n\t\t\t\tbreak;\n\n\t\t/* 2.2.2.1 Binary Reference Operator Token */\n\t\t\t/* 2.5.198.67 */\n\t\t\tcase 'PtgIsect':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': break;\n\n\t\t/* 2.2.2.3 Control Tokens \"can be ignored\" */\n\t\t\t/* 2.5.198.34 */\n\t\t\tcase 'PtgAttrChoose': break;\n\t\t\t/* 2.5.198.35 */\n\t\t\tcase 'PtgAttrGoto': break;\n\t\t\t/* 2.5.198.36 */\n\t\t\tcase 'PtgAttrIf': break;\n\n\n\t\t\t/* 2.5.198.84 */\n\t\t\tcase 'PtgRef':\n\t\t\t\ttype = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), _range);\n\t\t\t\tstack.push(encode_cell(c));\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.88 */\n\t\t\tcase 'PtgRefN':\n\t\t\t\ttype = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), cell);\n\t\t\t\tstack.push(encode_cell(c));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': // TODO: lots of stuff\n\t\t\t\ttype = f[1][0]; ixti = f[1][1]; c = shift_cell_xls(f[1][2], _range);\n\t\t\t\tstack.push(supbooks[1][ixti+1]+\"!\"+encode_cell(c));\n\t\t\t\tbreak;\n\n\t\t/* Function Call */\n\t\t\t/* 2.5.198.62 */\n\t\t\tcase 'PtgFunc':\n\t\t\t/* 2.5.198.63 */\n\t\t\tcase 'PtgFuncVar':\n\t\t\t\t/* f[1] = [argc, func] */\n\t\t\t\tvar argc = f[1][0], func = f[1][1];\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\tvar args = stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.42 */\n\t\t\tcase 'PtgBool': stack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\t/* 2.5.198.66 */\n\t\t\tcase 'PtgInt': stack.push(f[1]); break;\n\t\t\t/* 2.5.198.79 TODO: precision? */\n\t\t\tcase 'PtgNum': stack.push(String(f[1])); break;\n\t\t\t/* 2.5.198.89 */\n\t\t\tcase 'PtgStr': stack.push('\"' + f[1] + '\"'); break;\n\t\t\t/* 2.5.198.57 */\n\t\t\tcase 'PtgErr': stack.push(f[1]); break;\n\t\t\t/* 2.5.198.27 TODO: fixed points */\n\t\t\tcase 'PtgArea':\n\t\t\t\ttype = f[1][0]; r = shift_range_xls(f[1][1], _range);\n\t\t\t\tstack.push(encode_range(r));\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.28 */\n\t\t\tcase 'PtgArea3d': // TODO: lots of stuff\n\t\t\t\ttype = f[1][0]; ixti = f[1][1]; r = f[1][2];\n\t\t\t\tstack.push(supbooks[1][ixti+1]+\"!\"+encode_range(r));\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.41 */\n\t\t\tcase 'PtgAttrSum':\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t/* Expression Prefixes */\n\t\t\t/* 2.5.198.37 */\n\t\t\tcase 'PtgAttrSemi': break;\n\n\t\t\t/* 2.5.97.60 TODO: do something different for revisions */\n\t\t\tcase 'PtgName':\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = f[1][2];\n\t\t\t\tvar lbl = supbooks[0][nameidx];\n\t\t\t\tvar name = lbl.Name;\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.97.61 TODO: do something different for revisions */\n\t\t\tcase 'PtgNameX':\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = f[1][1]; nameidx = f[1][2]; var externbook;\n\t\t\t\t/* TODO: Properly handle missing values */\n\t\t\t\tif(supbooks[bookidx+1]) externbook = supbooks[bookidx+1][nameidx];\n\t\t\t\telse if(supbooks[bookidx-1]) externbook = supbooks[bookidx-1][nameidx];\n\t\t\t\tif(!externbook) externbook = {body: \"??NAMEX??\"};\n\t\t\t\tstack.push(externbook.body);\n\t\t\t\tbreak;\n\n\t\t/* 2.2.2.4 Display Tokens */\n\t\t\t/* 2.5.198.80 */\n\t\t\tcase 'PtgParen': stack.push('(' + stack.pop() + ')'); break;\n\n\t\t\t/* 2.5.198.86 */\n\t\t\tcase 'PtgRefErr': stack.push('#REF!'); break;\n\n\t\t/* */\n\t\t\t/* 2.5.198.58 TODO */\n\t\t\tcase 'PtgExp':\n\t\t\t\tc = {c:f[1][1],r:f[1][0]};\n\t\t\t\tvar q = {c: cell.c, r:cell.r};\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.32 TODO */\n\t\t\tcase 'PtgArray':\n\t\t\t\tstack.push(\"{\" + f[1].map(mapper).join(\";\") + \"}\");\n\t\t\t\tbreak;\n\n\t\t/* 2.2.2.5 Mem Tokens */\n\t\t\t/* 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\tcase 'PtgMemArea':\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.38 TODO */\n\t\t\tcase 'PtgAttrSpace': break;\n\n\t\t\t/* 2.5.198.92 TODO */\n\t\t\tcase 'PtgTbl': break;\n\n\t\t\t/* 2.5.198.71 */\n\t\t\tcase 'PtgMemErr': break;\n\n\t\t\t/* 2.5.198.74 */\n\t\t\tcase 'PtgMissArg':\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.29 TODO */\n\t\t\tcase 'PtgAreaErr': break;\n\n\t\t\t/* 2.5.198.31 TODO */\n\t\t\tcase 'PtgAreaN': stack.push(\"\"); break;\n\n\t\t\t/* 2.5.198.87 TODO */\n\t\t\tcase 'PtgRefErr3d': break;\n\n\t\t\t/* 2.5.198.72 TODO */\n\t\t\tcase 'PtgMemFunc': break;\n\n\t\t\tdefault: throw 'Unrecognized Formula Token: ' + f;\n\t\t}\n\t\t//console.log(\"::\",f, stack)\n\t}\n\t//console.log(\"--\",stack);\n\treturn stack[0];\n}\n\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula TODO: use similar logic to js-xls */\nfunction parse_XLSBCellParsedFormula(data, length) {\n\tvar cce = data.read_shift(4);\n\treturn parsenoop(data, length-4);\n}\n/* [MS-XLS] 2.5.198.44 */\nvar PtgDataType = {\n\t0x1: \"REFERENCE\", // reference to range\n\t0x2: \"VALUE\", // single value\n\t0x3: \"ARRAY\" // array of values\n};\n\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n\t0x0000: 'BEEP',\n\t0x0001: 'OPEN',\n\t0x0002: 'OPEN.LINKS',\n\t0x0003: 'CLOSE.ALL',\n\t0x0004: 'SAVE',\n\t0x0005: 'SAVE.AS',\n\t0x0006: 'FILE.DELETE',\n\t0x0007: 'PAGE.SETUP',\n\t0x0008: 'PRINT',\n\t0x0009: 'PRINTER.SETUP',\n\t0x000A: 'QUIT',\n\t0x000B: 'NEW.WINDOW',\n\t0x000C: 'ARRANGE.ALL',\n\t0x000D: 'WINDOW.SIZE',\n\t0x000E: 'WINDOW.MOVE',\n\t0x000F: 'FULL',\n\t0x0010: 'CLOSE',\n\t0x0011: 'RUN',\n\t0x0016: 'SET.PRINT.AREA',\n\t0x0017: 'SET.PRINT.TITLES',\n\t0x0018: 'SET.PAGE.BREAK',\n\t0x0019: 'REMOVE.PAGE.BREAK',\n\t0x001A: 'FONT',\n\t0x001B: 'DISPLAY',\n\t0x001C: 'PROTECT.DOCUMENT',\n\t0x001D: 'PRECISION',\n\t0x001E: 'A1.R1C1',\n\t0x001F: 'CALCULATE.NOW',\n\t0x0020: 'CALCULATION',\n\t0x0022: 'DATA.FIND',\n\t0x0023: 'EXTRACT',\n\t0x0024: 'DATA.DELETE',\n\t0x0025: 'SET.DATABASE',\n\t0x0026: 'SET.CRITERIA',\n\t0x0027: 'SORT',\n\t0x0028: 'DATA.SERIES',\n\t0x0029: 'TABLE',\n\t0x002A: 'FORMAT.NUMBER',\n\t0x002B: 'ALIGNMENT',\n\t0x002C: 'STYLE',\n\t0x002D: 'BORDER',\n\t0x002E: 'CELL.PROTECTION',\n\t0x002F: 'COLUMN.WIDTH',\n\t0x0030: 'UNDO',\n\t0x0031: 'CUT',\n\t0x0032: 'COPY',\n\t0x0033: 'PASTE',\n\t0x0034: 'CLEAR',\n\t0x0035: 'PASTE.SPECIAL',\n\t0x0036: 'EDIT.DELETE',\n\t0x0037: 'INSERT',\n\t0x0038: 'FILL.RIGHT',\n\t0x0039: 'FILL.DOWN',\n\t0x003D: 'DEFINE.NAME',\n\t0x003E: 'CREATE.NAMES',\n\t0x003F: 'FORMULA.GOTO',\n\t0x0040: 'FORMULA.FIND',\n\t0x0041: 'SELECT.LAST.CELL',\n\t0x0042: 'SHOW.ACTIVE.CELL',\n\t0x0043: 'GALLERY.AREA',\n\t0x0044: 'GALLERY.BAR',\n\t0x0045: 'GALLERY.COLUMN',\n\t0x0046: 'GALLERY.LINE',\n\t0x0047: 'GALLERY.PIE',\n\t0x0048: 'GALLERY.SCATTER',\n\t0x0049: 'COMBINATION',\n\t0x004A: 'PREFERRED',\n\t0x004B: 'ADD.OVERLAY',\n\t0x004C: 'GRIDLINES',\n\t0x004D: 'SET.PREFERRED',\n\t0x004E: 'AXES',\n\t0x004F: 'LEGEND',\n\t0x0050: 'ATTACH.TEXT',\n\t0x0051: 'ADD.ARROW',\n\t0x0052: 'SELECT.CHART',\n\t0x0053: 'SELECT.PLOT.AREA',\n\t0x0054: 'PATTERNS',\n\t0x0055: 'MAIN.CHART',\n\t0x0056: 'OVERLAY',\n\t0x0057: 'SCALE',\n\t0x0058: 'FORMAT.LEGEND',\n\t0x0059: 'FORMAT.TEXT',\n\t0x005A: 'EDIT.REPEAT',\n\t0x005B: 'PARSE',\n\t0x005C: 'JUSTIFY',\n\t0x005D: 'HIDE',\n\t0x005E: 'UNHIDE',\n\t0x005F: 'WORKSPACE',\n\t0x0060: 'FORMULA',\n\t0x0061: 'FORMULA.FILL',\n\t0x0062: 'FORMULA.ARRAY',\n\t0x0063: 'DATA.FIND.NEXT',\n\t0x0064: 'DATA.FIND.PREV',\n\t0x0065: 'FORMULA.FIND.NEXT',\n\t0x0066: 'FORMULA.FIND.PREV',\n\t0x0067: 'ACTIVATE',\n\t0x0068: 'ACTIVATE.NEXT',\n\t0x0069: 'ACTIVATE.PREV',\n\t0x006A: 'UNLOCKED.NEXT',\n\t0x006B: 'UNLOCKED.PREV',\n\t0x006C: 'COPY.PICTURE',\n\t0x006D: 'SELECT',\n\t0x006E: 'DELETE.NAME',\n\t0x006F: 'DELETE.FORMAT',\n\t0x0070: 'VLINE',\n\t0x0071: 'HLINE',\n\t0x0072: 'VPAGE',\n\t0x0073: 'HPAGE',\n\t0x0074: 'VSCROLL',\n\t0x0075: 'HSCROLL',\n\t0x0076: 'ALERT',\n\t0x0077: 'NEW',\n\t0x0078: 'CANCEL.COPY',\n\t0x0079: 'SHOW.CLIPBOARD',\n\t0x007A: 'MESSAGE',\n\t0x007C: 'PASTE.LINK',\n\t0x007D: 'APP.ACTIVATE',\n\t0x007E: 'DELETE.ARROW',\n\t0x007F: 'ROW.HEIGHT',\n\t0x0080: 'FORMAT.MOVE',\n\t0x0081: 'FORMAT.SIZE',\n\t0x0082: 'FORMULA.REPLACE',\n\t0x0083: 'SEND.KEYS',\n\t0x0084: 'SELECT.SPECIAL',\n\t0x0085: 'APPLY.NAMES',\n\t0x0086: 'REPLACE.FONT',\n\t0x0087: 'FREEZE.PANES',\n\t0x0088: 'SHOW.INFO',\n\t0x0089: 'SPLIT',\n\t0x008A: 'ON.WINDOW',\n\t0x008B: 'ON.DATA',\n\t0x008C: 'DISABLE.INPUT',\n\t0x008E: 'OUTLINE',\n\t0x008F: 'LIST.NAMES',\n\t0x0090: 'FILE.CLOSE',\n\t0x0091: 'SAVE.WORKBOOK',\n\t0x0092: 'DATA.FORM',\n\t0x0093: 'COPY.CHART',\n\t0x0094: 'ON.TIME',\n\t0x0095: 'WAIT',\n\t0x0096: 'FORMAT.FONT',\n\t0x0097: 'FILL.UP',\n\t0x0098: 'FILL.LEFT',\n\t0x0099: 'DELETE.OVERLAY',\n\t0x009B: 'SHORT.MENUS',\n\t0x009F: 'SET.UPDATE.STATUS',\n\t0x00A1: 'COLOR.PALETTE',\n\t0x00A2: 'DELETE.STYLE',\n\t0x00A3: 'WINDOW.RESTORE',\n\t0x00A4: 'WINDOW.MAXIMIZE',\n\t0x00A6: 'CHANGE.LINK',\n\t0x00A7: 'CALCULATE.DOCUMENT',\n\t0x00A8: 'ON.KEY',\n\t0x00A9: 'APP.RESTORE',\n\t0x00AA: 'APP.MOVE',\n\t0x00AB: 'APP.SIZE',\n\t0x00AC: 'APP.MINIMIZE',\n\t0x00AD: 'APP.MAXIMIZE',\n\t0x00AE: 'BRING.TO.FRONT',\n\t0x00AF: 'SEND.TO.BACK',\n\t0x00B9: 'MAIN.CHART.TYPE',\n\t0x00BA: 'OVERLAY.CHART.TYPE',\n\t0x00BB: 'SELECT.END',\n\t0x00BC: 'OPEN.MAIL',\n\t0x00BD: 'SEND.MAIL',\n\t0x00BE: 'STANDARD.FONT',\n\t0x00BF: 'CONSOLIDATE',\n\t0x00C0: 'SORT.SPECIAL',\n\t0x00C1: 'GALLERY.3D.AREA',\n\t0x00C2: 'GALLERY.3D.COLUMN',\n\t0x00C3: 'GALLERY.3D.LINE',\n\t0x00C4: 'GALLERY.3D.PIE',\n\t0x00C5: 'VIEW.3D',\n\t0x00C6: 'GOAL.SEEK',\n\t0x00C7: 'WORKGROUP',\n\t0x00C8: 'FILL.GROUP',\n\t0x00C9: 'UPDATE.LINK',\n\t0x00CA: 'PROMOTE',\n\t0x00CB: 'DEMOTE',\n\t0x00CC: 'SHOW.DETAIL',\n\t0x00CE: 'UNGROUP',\n\t0x00CF: 'OBJECT.PROPERTIES',\n\t0x00D0: 'SAVE.NEW.OBJECT',\n\t0x00D1: 'SHARE',\n\t0x00D2: 'SHARE.NAME',\n\t0x00D3: 'DUPLICATE',\n\t0x00D4: 'APPLY.STYLE',\n\t0x00D5: 'ASSIGN.TO.OBJECT',\n\t0x00D6: 'OBJECT.PROTECTION',\n\t0x00D7: 'HIDE.OBJECT',\n\t0x00D8: 'SET.EXTRACT',\n\t0x00D9: 'CREATE.PUBLISHER',\n\t0x00DA: 'SUBSCRIBE.TO',\n\t0x00DB: 'ATTRIBUTES',\n\t0x00DC: 'SHOW.TOOLBAR',\n\t0x00DE: 'PRINT.PREVIEW',\n\t0x00DF: 'EDIT.COLOR',\n\t0x00E0: 'SHOW.LEVELS',\n\t0x00E1: 'FORMAT.MAIN',\n\t0x00E2: 'FORMAT.OVERLAY',\n\t0x00E3: 'ON.RECALC',\n\t0x00E4: 'EDIT.SERIES',\n\t0x00E5: 'DEFINE.STYLE',\n\t0x00F0: 'LINE.PRINT',\n\t0x00F3: 'ENTER.DATA',\n\t0x00F9: 'GALLERY.RADAR',\n\t0x00FA: 'MERGE.STYLES',\n\t0x00FB: 'EDITION.OPTIONS',\n\t0x00FC: 'PASTE.PICTURE',\n\t0x00FD: 'PASTE.PICTURE.LINK',\n\t0x00FE: 'SPELLING',\n\t0x0100: 'ZOOM',\n\t0x0103: 'INSERT.OBJECT',\n\t0x0104: 'WINDOW.MINIMIZE',\n\t0x0109: 'SOUND.NOTE',\n\t0x010A: 'SOUND.PLAY',\n\t0x010B: 'FORMAT.SHAPE',\n\t0x010C: 'EXTEND.POLYGON',\n\t0x010D: 'FORMAT.AUTO',\n\t0x0110: 'GALLERY.3D.BAR',\n\t0x0111: 'GALLERY.3D.SURFACE',\n\t0x0112: 'FILL.AUTO',\n\t0x0114: 'CUSTOMIZE.TOOLBAR',\n\t0x0115: 'ADD.TOOL',\n\t0x0116: 'EDIT.OBJECT',\n\t0x0117: 'ON.DOUBLECLICK',\n\t0x0118: 'ON.ENTRY',\n\t0x0119: 'WORKBOOK.ADD',\n\t0x011A: 'WORKBOOK.MOVE',\n\t0x011B: 'WORKBOOK.COPY',\n\t0x011C: 'WORKBOOK.OPTIONS',\n\t0x011D: 'SAVE.WORKSPACE',\n\t0x0120: 'CHART.WIZARD',\n\t0x0121: 'DELETE.TOOL',\n\t0x0122: 'MOVE.TOOL',\n\t0x0123: 'WORKBOOK.SELECT',\n\t0x0124: 'WORKBOOK.ACTIVATE',\n\t0x0125: 'ASSIGN.TO.TOOL',\n\t0x0127: 'COPY.TOOL',\n\t0x0128: 'RESET.TOOL',\n\t0x0129: 'CONSTRAIN.NUMERIC',\n\t0x012A: 'PASTE.TOOL',\n\t0x012E: 'WORKBOOK.NEW',\n\t0x0131: 'SCENARIO.CELLS',\n\t0x0132: 'SCENARIO.DELETE',\n\t0x0133: 'SCENARIO.ADD',\n\t0x0134: 'SCENARIO.EDIT',\n\t0x0135: 'SCENARIO.SHOW',\n\t0x0136: 'SCENARIO.SHOW.NEXT',\n\t0x0137: 'SCENARIO.SUMMARY',\n\t0x0138: 'PIVOT.TABLE.WIZARD',\n\t0x0139: 'PIVOT.FIELD.PROPERTIES',\n\t0x013A: 'PIVOT.FIELD',\n\t0x013B: 'PIVOT.ITEM',\n\t0x013C: 'PIVOT.ADD.FIELDS',\n\t0x013E: 'OPTIONS.CALCULATION',\n\t0x013F: 'OPTIONS.EDIT',\n\t0x0140: 'OPTIONS.VIEW',\n\t0x0141: 'ADDIN.MANAGER',\n\t0x0142: 'MENU.EDITOR',\n\t0x0143: 'ATTACH.TOOLBARS',\n\t0x0144: 'VBAActivate',\n\t0x0145: 'OPTIONS.CHART',\n\t0x0148: 'VBA.INSERT.FILE',\n\t0x014A: 'VBA.PROCEDURE.DEFINITION',\n\t0x0150: 'ROUTING.SLIP',\n\t0x0152: 'ROUTE.DOCUMENT',\n\t0x0153: 'MAIL.LOGON',\n\t0x0156: 'INSERT.PICTURE',\n\t0x0157: 'EDIT.TOOL',\n\t0x0158: 'GALLERY.DOUGHNUT',\n\t0x015E: 'CHART.TREND',\n\t0x0160: 'PIVOT.ITEM.PROPERTIES',\n\t0x0162: 'WORKBOOK.INSERT',\n\t0x0163: 'OPTIONS.TRANSITION',\n\t0x0164: 'OPTIONS.GENERAL',\n\t0x0172: 'FILTER.ADVANCED',\n\t0x0175: 'MAIL.ADD.MAILER',\n\t0x0176: 'MAIL.DELETE.MAILER',\n\t0x0177: 'MAIL.REPLY',\n\t0x0178: 'MAIL.REPLY.ALL',\n\t0x0179: 'MAIL.FORWARD',\n\t0x017A: 'MAIL.NEXT.LETTER',\n\t0x017B: 'DATA.LABEL',\n\t0x017C: 'INSERT.TITLE',\n\t0x017D: 'FONT.PROPERTIES',\n\t0x017E: 'MACRO.OPTIONS',\n\t0x017F: 'WORKBOOK.HIDE',\n\t0x0180: 'WORKBOOK.UNHIDE',\n\t0x0181: 'WORKBOOK.DELETE',\n\t0x0182: 'WORKBOOK.NAME',\n\t0x0184: 'GALLERY.CUSTOM',\n\t0x0186: 'ADD.CHART.AUTOFORMAT',\n\t0x0187: 'DELETE.CHART.AUTOFORMAT',\n\t0x0188: 'CHART.ADD.DATA',\n\t0x0189: 'AUTO.OUTLINE',\n\t0x018A: 'TAB.ORDER',\n\t0x018B: 'SHOW.DIALOG',\n\t0x018C: 'SELECT.ALL',\n\t0x018D: 'UNGROUP.SHEETS',\n\t0x018E: 'SUBTOTAL.CREATE',\n\t0x018F: 'SUBTOTAL.REMOVE',\n\t0x0190: 'RENAME.OBJECT',\n\t0x019C: 'WORKBOOK.SCROLL',\n\t0x019D: 'WORKBOOK.NEXT',\n\t0x019E: 'WORKBOOK.PREV',\n\t0x019F: 'WORKBOOK.TAB.SPLIT',\n\t0x01A0: 'FULL.SCREEN',\n\t0x01A1: 'WORKBOOK.PROTECT',\n\t0x01A4: 'SCROLLBAR.PROPERTIES',\n\t0x01A5: 'PIVOT.SHOW.PAGES',\n\t0x01A6: 'TEXT.TO.COLUMNS',\n\t0x01A7: 'FORMAT.CHARTTYPE',\n\t0x01A8: 'LINK.FORMAT',\n\t0x01A9: 'TRACER.DISPLAY',\n\t0x01AE: 'TRACER.NAVIGATE',\n\t0x01AF: 'TRACER.CLEAR',\n\t0x01B0: 'TRACER.ERROR',\n\t0x01B1: 'PIVOT.FIELD.GROUP',\n\t0x01B2: 'PIVOT.FIELD.UNGROUP',\n\t0x01B3: 'CHECKBOX.PROPERTIES',\n\t0x01B4: 'LABEL.PROPERTIES',\n\t0x01B5: 'LISTBOX.PROPERTIES',\n\t0x01B6: 'EDITBOX.PROPERTIES',\n\t0x01B7: 'PIVOT.REFRESH',\n\t0x01B8: 'LINK.COMBO',\n\t0x01B9: 'OPEN.TEXT',\n\t0x01BA: 'HIDE.DIALOG',\n\t0x01BB: 'SET.DIALOG.FOCUS',\n\t0x01BC: 'ENABLE.OBJECT',\n\t0x01BD: 'PUSHBUTTON.PROPERTIES',\n\t0x01BE: 'SET.DIALOG.DEFAULT',\n\t0x01BF: 'FILTER',\n\t0x01C0: 'FILTER.SHOW.ALL',\n\t0x01C1: 'CLEAR.OUTLINE',\n\t0x01C2: 'FUNCTION.WIZARD',\n\t0x01C3: 'ADD.LIST.ITEM',\n\t0x01C4: 'SET.LIST.ITEM',\n\t0x01C5: 'REMOVE.LIST.ITEM',\n\t0x01C6: 'SELECT.LIST.ITEM',\n\t0x01C7: 'SET.CONTROL.VALUE',\n\t0x01C8: 'SAVE.COPY.AS',\n\t0x01CA: 'OPTIONS.LISTS.ADD',\n\t0x01CB: 'OPTIONS.LISTS.DELETE',\n\t0x01CC: 'SERIES.AXES',\n\t0x01CD: 'SERIES.X',\n\t0x01CE: 'SERIES.Y',\n\t0x01CF: 'ERRORBAR.X',\n\t0x01D0: 'ERRORBAR.Y',\n\t0x01D1: 'FORMAT.CHART',\n\t0x01D2: 'SERIES.ORDER',\n\t0x01D3: 'MAIL.LOGOFF',\n\t0x01D4: 'CLEAR.ROUTING.SLIP',\n\t0x01D5: 'APP.ACTIVATE.MICROSOFT',\n\t0x01D6: 'MAIL.EDIT.MAILER',\n\t0x01D7: 'ON.SHEET',\n\t0x01D8: 'STANDARD.WIDTH',\n\t0x01D9: 'SCENARIO.MERGE',\n\t0x01DA: 'SUMMARY.INFO',\n\t0x01DB: 'FIND.FILE',\n\t0x01DC: 'ACTIVE.CELL.FONT',\n\t0x01DD: 'ENABLE.TIPWIZARD',\n\t0x01DE: 'VBA.MAKE.ADDIN',\n\t0x01E0: 'INSERTDATATABLE',\n\t0x01E1: 'WORKGROUP.OPTIONS',\n\t0x01E2: 'MAIL.SEND.MAILER',\n\t0x01E5: 'AUTOCORRECT',\n\t0x01E9: 'POST.DOCUMENT',\n\t0x01EB: 'PICKLIST',\n\t0x01ED: 'VIEW.SHOW',\n\t0x01EE: 'VIEW.DEFINE',\n\t0x01EF: 'VIEW.DELETE',\n\t0x01FD: 'SHEET.BACKGROUND',\n\t0x01FE: 'INSERT.MAP.OBJECT',\n\t0x01FF: 'OPTIONS.MENONO',\n\t0x0205: 'MSOCHECKS',\n\t0x0206: 'NORMAL',\n\t0x0207: 'LAYOUT',\n\t0x0208: 'RM.PRINT.AREA',\n\t0x0209: 'CLEAR.PRINT.AREA',\n\t0x020A: 'ADD.PRINT.AREA',\n\t0x020B: 'MOVE.BRK',\n\t0x0221: 'HIDECURR.NOTE',\n\t0x0222: 'HIDEALL.NOTES',\n\t0x0223: 'DELETE.NOTE',\n\t0x0224: 'TRAVERSE.NOTES',\n\t0x0225: 'ACTIVATE.NOTES',\n\t0x026C: 'PROTECT.REVISIONS',\n\t0x026D: 'UNPROTECT.REVISIONS',\n\t0x0287: 'OPTIONS.ME',\n\t0x028D: 'WEB.PUBLISH',\n\t0x029B: 'NEWWEBQUERY',\n\t0x02A1: 'PIVOT.TABLE.CHART',\n\t0x02F1: 'OPTIONS.SAVE',\n\t0x02F3: 'OPTIONS.SPELL',\n\t0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\nvar Ftab = {\n\t0x0000: 'COUNT',\n\t0x0001: 'IF',\n\t0x0002: 'ISNA',\n\t0x0003: 'ISERROR',\n\t0x0004: 'SUM',\n\t0x0005: 'AVERAGE',\n\t0x0006: 'MIN',\n\t0x0007: 'MAX',\n\t0x0008: 'ROW',\n\t0x0009: 'COLUMN',\n\t0x000A: 'NA',\n\t0x000B: 'NPV',\n\t0x000C: 'STDEV',\n\t0x000D: 'DOLLAR',\n\t0x000E: 'FIXED',\n\t0x000F: 'SIN',\n\t0x0010: 'COS',\n\t0x0011: 'TAN',\n\t0x0012: 'ATAN',\n\t0x0013: 'PI',\n\t0x0014: 'SQRT',\n\t0x0015: 'EXP',\n\t0x0016: 'LN',\n\t0x0017: 'LOG10',\n\t0x0018: 'ABS',\n\t0x0019: 'INT',\n\t0x001A: 'SIGN',\n\t0x001B: 'ROUND',\n\t0x001C: 'LOOKUP',\n\t0x001D: 'INDEX',\n\t0x001E: 'REPT',\n\t0x001F: 'MID',\n\t0x0020: 'LEN',\n\t0x0021: 'VALUE',\n\t0x0022: 'TRUE',\n\t0x0023: 'FALSE',\n\t0x0024: 'AND',\n\t0x0025: 'OR',\n\t0x0026: 'NOT',\n\t0x0027: 'MOD',\n\t0x0028: 'DCOUNT',\n\t0x0029: 'DSUM',\n\t0x002A: 'DAVERAGE',\n\t0x002B: 'DMIN',\n\t0x002C: 'DMAX',\n\t0x002D: 'DSTDEV',\n\t0x002E: 'VAR',\n\t0x002F: 'DVAR',\n\t0x0030: 'TEXT',\n\t0x0031: 'LINEST',\n\t0x0032: 'TREND',\n\t0x0033: 'LOGEST',\n\t0x0034: 'GROWTH',\n\t0x0035: 'GOTO',\n\t0x0036: 'HALT',\n\t0x0037: 'RETURN',\n\t0x0038: 'PV',\n\t0x0039: 'FV',\n\t0x003A: 'NPER',\n\t0x003B: 'PMT',\n\t0x003C: 'RATE',\n\t0x003D: 'MIRR',\n\t0x003E: 'IRR',\n\t0x003F: 'RAND',\n\t0x0040: 'MATCH',\n\t0x0041: 'DATE',\n\t0x0042: 'TIME',\n\t0x0043: 'DAY',\n\t0x0044: 'MONTH',\n\t0x0045: 'YEAR',\n\t0x0046: 'WEEKDAY',\n\t0x0047: 'HOUR',\n\t0x0048: 'MINUTE',\n\t0x0049: 'SECOND',\n\t0x004A: 'NOW',\n\t0x004B: 'AREAS',\n\t0x004C: 'ROWS',\n\t0x004D: 'COLUMNS',\n\t0x004E: 'OFFSET',\n\t0x004F: 'ABSREF',\n\t0x0050: 'RELREF',\n\t0x0051: 'ARGUMENT',\n\t0x0052: 'SEARCH',\n\t0x0053: 'TRANSPOSE',\n\t0x0054: 'ERROR',\n\t0x0055: 'STEP',\n\t0x0056: 'TYPE',\n\t0x0057: 'ECHO',\n\t0x0058: 'SET.NAME',\n\t0x0059: 'CALLER',\n\t0x005A: 'DEREF',\n\t0x005B: 'WINDOWS',\n\t0x005C: 'SERIES',\n\t0x005D: 'DOCUMENTS',\n\t0x005E: 'ACTIVE.CELL',\n\t0x005F: 'SELECTION',\n\t0x0060: 'RESULT',\n\t0x0061: 'ATAN2',\n\t0x0062: 'ASIN',\n\t0x0063: 'ACOS',\n\t0x0064: 'CHOOSE',\n\t0x0065: 'HLOOKUP',\n\t0x0066: 'VLOOKUP',\n\t0x0067: 'LINKS',\n\t0x0068: 'INPUT',\n\t0x0069: 'ISREF',\n\t0x006A: 'GET.FORMULA',\n\t0x006B: 'GET.NAME',\n\t0x006C: 'SET.VALUE',\n\t0x006D: 'LOG',\n\t0x006E: 'EXEC',\n\t0x006F: 'CHAR',\n\t0x0070: 'LOWER',\n\t0x0071: 'UPPER',\n\t0x0072: 'PROPER',\n\t0x0073: 'LEFT',\n\t0x0074: 'RIGHT',\n\t0x0075: 'EXACT',\n\t0x0076: 'TRIM',\n\t0x0077: 'REPLACE',\n\t0x0078: 'SUBSTITUTE',\n\t0x0079: 'CODE',\n\t0x007A: 'NAMES',\n\t0x007B: 'DIRECTORY',\n\t0x007C: 'FIND',\n\t0x007D: 'CELL',\n\t0x007E: 'ISERR',\n\t0x007F: 'ISTEXT',\n\t0x0080: 'ISNUMBER',\n\t0x0081: 'ISBLANK',\n\t0x0082: 'T',\n\t0x0083: 'N',\n\t0x0084: 'FOPEN',\n\t0x0085: 'FCLOSE',\n\t0x0086: 'FSIZE',\n\t0x0087: 'FREADLN',\n\t0x0088: 'FREAD',\n\t0x0089: 'FWRITELN',\n\t0x008A: 'FWRITE',\n\t0x008B: 'FPOS',\n\t0x008C: 'DATEVALUE',\n\t0x008D: 'TIMEVALUE',\n\t0x008E: 'SLN',\n\t0x008F: 'SYD',\n\t0x0090: 'DDB',\n\t0x0091: 'GET.DEF',\n\t0x0092: 'REFTEXT',\n\t0x0093: 'TEXTREF',\n\t0x0094: 'INDIRECT',\n\t0x0095: 'REGISTER',\n\t0x0096: 'CALL',\n\t0x0097: 'ADD.BAR',\n\t0x0098: 'ADD.MENU',\n\t0x0099: 'ADD.COMMAND',\n\t0x009A: 'ENABLE.COMMAND',\n\t0x009B: 'CHECK.COMMAND',\n\t0x009C: 'RENAME.COMMAND',\n\t0x009D: 'SHOW.BAR',\n\t0x009E: 'DELETE.MENU',\n\t0x009F: 'DELETE.COMMAND',\n\t0x00A0: 'GET.CHART.ITEM',\n\t0x00A1: 'DIALOG.BOX',\n\t0x00A2: 'CLEAN',\n\t0x00A3: 'MDETERM',\n\t0x00A4: 'MINVERSE',\n\t0x00A5: 'MMULT',\n\t0x00A6: 'FILES',\n\t0x00A7: 'IPMT',\n\t0x00A8: 'PPMT',\n\t0x00A9: 'COUNTA',\n\t0x00AA: 'CANCEL.KEY',\n\t0x00AB: 'FOR',\n\t0x00AC: 'WHILE',\n\t0x00AD: 'BREAK',\n\t0x00AE: 'NEXT',\n\t0x00AF: 'INITIATE',\n\t0x00B0: 'REQUEST',\n\t0x00B1: 'POKE',\n\t0x00B2: 'EXECUTE',\n\t0x00B3: 'TERMINATE',\n\t0x00B4: 'RESTART',\n\t0x00B5: 'HELP',\n\t0x00B6: 'GET.BAR',\n\t0x00B7: 'PRODUCT',\n\t0x00B8: 'FACT',\n\t0x00B9: 'GET.CELL',\n\t0x00BA: 'GET.WORKSPACE',\n\t0x00BB: 'GET.WINDOW',\n\t0x00BC: 'GET.DOCUMENT',\n\t0x00BD: 'DPRODUCT',\n\t0x00BE: 'ISNONTEXT',\n\t0x00BF: 'GET.NOTE',\n\t0x00C0: 'NOTE',\n\t0x00C1: 'STDEVP',\n\t0x00C2: 'VARP',\n\t0x00C3: 'DSTDEVP',\n\t0x00C4: 'DVARP',\n\t0x00C5: 'TRUNC',\n\t0x00C6: 'ISLOGICAL',\n\t0x00C7: 'DCOUNTA',\n\t0x00C8: 'DELETE.BAR',\n\t0x00C9: 'UNREGISTER',\n\t0x00CC: 'USDOLLAR',\n\t0x00CD: 'FINDB',\n\t0x00CE: 'SEARCHB',\n\t0x00CF: 'REPLACEB',\n\t0x00D0: 'LEFTB',\n\t0x00D1: 'RIGHTB',\n\t0x00D2: 'MIDB',\n\t0x00D3: 'LENB',\n\t0x00D4: 'ROUNDUP',\n\t0x00D5: 'ROUNDDOWN',\n\t0x00D6: 'ASC',\n\t0x00D7: 'DBCS',\n\t0x00D8: 'RANK',\n\t0x00DB: 'ADDRESS',\n\t0x00DC: 'DAYS360',\n\t0x00DD: 'TODAY',\n\t0x00DE: 'VDB',\n\t0x00DF: 'ELSE',\n\t0x00E0: 'ELSE.IF',\n\t0x00E1: 'END.IF',\n\t0x00E2: 'FOR.CELL',\n\t0x00E3: 'MEDIAN',\n\t0x00E4: 'SUMPRODUCT',\n\t0x00E5: 'SINH',\n\t0x00E6: 'COSH',\n\t0x00E7: 'TANH',\n\t0x00E8: 'ASINH',\n\t0x00E9: 'ACOSH',\n\t0x00EA: 'ATANH',\n\t0x00EB: 'DGET',\n\t0x00EC: 'CREATE.OBJECT',\n\t0x00ED: 'VOLATILE',\n\t0x00EE: 'LAST.ERROR',\n\t0x00EF: 'CUSTOM.UNDO',\n\t0x00F0: 'CUSTOM.REPEAT',\n\t0x00F1: 'FORMULA.CONVERT',\n\t0x00F2: 'GET.LINK.INFO',\n\t0x00F3: 'TEXT.BOX',\n\t0x00F4: 'INFO',\n\t0x00F5: 'GROUP',\n\t0x00F6: 'GET.OBJECT',\n\t0x00F7: 'DB',\n\t0x00F8: 'PAUSE',\n\t0x00FB: 'RESUME',\n\t0x00FC: 'FREQUENCY',\n\t0x00FD: 'ADD.TOOLBAR',\n\t0x00FE: 'DELETE.TOOLBAR',\n\t0x00FF: 'User',\n\t0x0100: 'RESET.TOOLBAR',\n\t0x0101: 'EVALUATE',\n\t0x0102: 'GET.TOOLBAR',\n\t0x0103: 'GET.TOOL',\n\t0x0104: 'SPELLING.CHECK',\n\t0x0105: 'ERROR.TYPE',\n\t0x0106: 'APP.TITLE',\n\t0x0107: 'WINDOW.TITLE',\n\t0x0108: 'SAVE.TOOLBAR',\n\t0x0109: 'ENABLE.TOOL',\n\t0x010A: 'PRESS.TOOL',\n\t0x010B: 'REGISTER.ID',\n\t0x010C: 'GET.WORKBOOK',\n\t0x010D: 'AVEDEV',\n\t0x010E: 'BETADIST',\n\t0x010F: 'GAMMALN',\n\t0x0110: 'BETAINV',\n\t0x0111: 'BINOMDIST',\n\t0x0112: 'CHIDIST',\n\t0x0113: 'CHIINV',\n\t0x0114: 'COMBIN',\n\t0x0115: 'CONFIDENCE',\n\t0x0116: 'CRITBINOM',\n\t0x0117: 'EVEN',\n\t0x0118: 'EXPONDIST',\n\t0x0119: 'FDIST',\n\t0x011A: 'FINV',\n\t0x011B: 'FISHER',\n\t0x011C: 'FISHERINV',\n\t0x011D: 'FLOOR',\n\t0x011E: 'GAMMADIST',\n\t0x011F: 'GAMMAINV',\n\t0x0120: 'CEILING',\n\t0x0121: 'HYPGEOMDIST',\n\t0x0122: 'LOGNORMDIST',\n\t0x0123: 'LOGINV',\n\t0x0124: 'NEGBINOMDIST',\n\t0x0125: 'NORMDIST',\n\t0x0126: 'NORMSDIST',\n\t0x0127: 'NORMINV',\n\t0x0128: 'NORMSINV',\n\t0x0129: 'STANDARDIZE',\n\t0x012A: 'ODD',\n\t0x012B: 'PERMUT',\n\t0x012C: 'POISSON',\n\t0x012D: 'TDIST',\n\t0x012E: 'WEIBULL',\n\t0x012F: 'SUMXMY2',\n\t0x0130: 'SUMX2MY2',\n\t0x0131: 'SUMX2PY2',\n\t0x0132: 'CHITEST',\n\t0x0133: 'CORREL',\n\t0x0134: 'COVAR',\n\t0x0135: 'FORECAST',\n\t0x0136: 'FTEST',\n\t0x0137: 'INTERCEPT',\n\t0x0138: 'PEARSON',\n\t0x0139: 'RSQ',\n\t0x013A: 'STEYX',\n\t0x013B: 'SLOPE',\n\t0x013C: 'TTEST',\n\t0x013D: 'PROB',\n\t0x013E: 'DEVSQ',\n\t0x013F: 'GEOMEAN',\n\t0x0140: 'HARMEAN',\n\t0x0141: 'SUMSQ',\n\t0x0142: 'KURT',\n\t0x0143: 'SKEW',\n\t0x0144: 'ZTEST',\n\t0x0145: 'LARGE',\n\t0x0146: 'SMALL',\n\t0x0147: 'QUARTILE',\n\t0x0148: 'PERCENTILE',\n\t0x0149: 'PERCENTRANK',\n\t0x014A: 'MODE',\n\t0x014B: 'TRIMMEAN',\n\t0x014C: 'TINV',\n\t0x014E: 'MOVIE.COMMAND',\n\t0x014F: 'GET.MOVIE',\n\t0x0150: 'CONCATENATE',\n\t0x0151: 'POWER',\n\t0x0152: 'PIVOT.ADD.DATA',\n\t0x0153: 'GET.PIVOT.TABLE',\n\t0x0154: 'GET.PIVOT.FIELD',\n\t0x0155: 'GET.PIVOT.ITEM',\n\t0x0156: 'RADIANS',\n\t0x0157: 'DEGREES',\n\t0x0158: 'SUBTOTAL',\n\t0x0159: 'SUMIF',\n\t0x015A: 'COUNTIF',\n\t0x015B: 'COUNTBLANK',\n\t0x015C: 'SCENARIO.GET',\n\t0x015D: 'OPTIONS.LISTS.GET',\n\t0x015E: 'ISPMT',\n\t0x015F: 'DATEDIF',\n\t0x0160: 'DATESTRING',\n\t0x0161: 'NUMBERSTRING',\n\t0x0162: 'ROMAN',\n\t0x0163: 'OPEN.DIALOG',\n\t0x0164: 'SAVE.DIALOG',\n\t0x0165: 'VIEW.GET',\n\t0x0166: 'GETPIVOTDATA',\n\t0x0167: 'HYPERLINK',\n\t0x0168: 'PHONETIC',\n\t0x0169: 'AVERAGEA',\n\t0x016A: 'MAXA',\n\t0x016B: 'MINA',\n\t0x016C: 'STDEVPA',\n\t0x016D: 'VARPA',\n\t0x016E: 'STDEVA',\n\t0x016F: 'VARA',\n\t0x0170: 'BAHTTEXT',\n\t0x0171: 'THAIDAYOFWEEK',\n\t0x0172: 'THAIDIGIT',\n\t0x0173: 'THAIMONTHOFYEAR',\n\t0x0174: 'THAINUMSOUND',\n\t0x0175: 'THAINUMSTRING',\n\t0x0176: 'THAISTRINGLENGTH',\n\t0x0177: 'ISTHAIDIGIT',\n\t0x0178: 'ROUNDBAHTDOWN',\n\t0x0179: 'ROUNDBAHTUP',\n\t0x017A: 'THAIYEAR',\n\t0x017B: 'RTD'\n};\nvar FtabArgc = {\n\t0x0002: 1, /* ISNA */\n\t0x0003: 1, /* ISERROR */\n\t0x000F: 1, /* SIN */\n\t0x0010: 1, /* COS */\n\t0x0011: 1, /* TAN */\n\t0x0012: 1, /* ATAN */\n\t0x0014: 1, /* SQRT */\n\t0x0015: 1, /* EXP */\n\t0x0016: 1, /* LN */\n\t0x0017: 1, /* LOG10 */\n\t0x0018: 1, /* ABS */\n\t0x0019: 1, /* INT */\n\t0x001A: 1, /* SIGN */\n\t0x001B: 2, /* ROUND */\n\t0x001E: 2, /* REPT */\n\t0x001F: 3, /* MID */\n\t0x0020: 1, /* LEN */\n\t0x0021: 1, /* VALUE */\n\t0x0026: 1, /* NOT */\n\t0x0027: 2, /* MOD */\n\t0x0028: 3, /* DCOUNT */\n\t0x0029: 3, /* DSUM */\n\t0x002A: 3, /* DAVERAGE */\n\t0x002B: 3, /* DMIN */\n\t0x002C: 3, /* DMAX */\n\t0x002D: 3, /* DSTDEV */\n\t0x002F: 3, /* DVAR */\n\t0x0030: 2, /* TEXT */\n\t0x0035: 1, /* GOTO */\n\t0x003D: 3, /* MIRR */\n\t0x0041: 3, /* DATE */\n\t0x0042: 3, /* TIME */\n\t0x0043: 1, /* DAY */\n\t0x0044: 1, /* MONTH */\n\t0x0045: 1, /* YEAR */\n\t0x0047: 1, /* HOUR */\n\t0x0048: 1, /* MINUTE */\n\t0x0049: 1, /* SECOND */\n\t0x004B: 1, /* AREAS */\n\t0x004C: 1, /* ROWS */\n\t0x004D: 1, /* COLUMNS */\n\t0x004F: 2, /* ABSREF */\n\t0x0050: 2, /* RELREF */\n\t0x0053: 1, /* TRANSPOSE */\n\t0x0056: 1, /* TYPE */\n\t0x005A: 1, /* DEREF */\n\t0x0061: 2, /* ATAN2 */\n\t0x0062: 1, /* ASIN */\n\t0x0063: 1, /* ACOS */\n\t0x0069: 1, /* ISREF */\n\t0x006F: 1, /* CHAR */\n\t0x0070: 1, /* LOWER */\n\t0x0071: 1, /* UPPER */\n\t0x0072: 1, /* PROPER */\n\t0x0075: 2, /* EXACT */\n\t0x0076: 1, /* TRIM */\n\t0x0077: 4, /* REPLACE */\n\t0x0079: 1, /* CODE */\n\t0x007E: 1, /* ISERR */\n\t0x007F: 1, /* ISTEXT */\n\t0x0080: 1, /* ISNUMBER */\n\t0x0081: 1, /* ISBLANK */\n\t0x0082: 1, /* T */\n\t0x0083: 1, /* N */\n\t0x0085: 1, /* FCLOSE */\n\t0x0086: 1, /* FSIZE */\n\t0x0087: 1, /* FREADLN */\n\t0x0088: 2, /* FREAD */\n\t0x0089: 2, /* FWRITELN */\n\t0x008A: 2, /* FWRITE */\n\t0x008C: 1, /* DATEVALUE */\n\t0x008D: 1, /* TIMEVALUE */\n\t0x008E: 3, /* SLN */\n\t0x008F: 4, /* SYD */\n\t0x00A2: 1, /* CLEAN */\n\t0x00A3: 1, /* MDETERM */\n\t0x00A4: 1, /* MINVERSE */\n\t0x00A5: 2, /* MMULT */\n\t0x00AC: 1, /* WHILE */\n\t0x00AF: 2, /* INITIATE */\n\t0x00B0: 2, /* REQUEST */\n\t0x00B1: 3, /* POKE */\n\t0x00B2: 2, /* EXECUTE */\n\t0x00B3: 1, /* TERMINATE */\n\t0x00B8: 1, /* FACT */\n\t0x00BD: 3, /* DPRODUCT */\n\t0x00BE: 1, /* ISNONTEXT */\n\t0x00C3: 3, /* DSTDEVP */\n\t0x00C4: 3, /* DVARP */\n\t0x00C6: 1, /* ISLOGICAL */\n\t0x00C7: 3, /* DCOUNTA */\n\t0x00C9: 1, /* UNREGISTER */\n\t0x00CF: 4, /* REPLACEB */\n\t0x00D2: 3, /* MIDB */\n\t0x00D3: 1, /* LENB */\n\t0x00D4: 2, /* ROUNDUP */\n\t0x00D5: 2, /* ROUNDDOWN */\n\t0x00D6: 1, /* ASC */\n\t0x00D7: 1, /* DBCS */\n\t0x00E5: 1, /* SINH */\n\t0x00E6: 1, /* COSH */\n\t0x00E7: 1, /* TANH */\n\t0x00E8: 1, /* ASINH */\n\t0x00E9: 1, /* ACOSH */\n\t0x00EA: 1, /* ATANH */\n\t0x00EB: 3, /* DGET */\n\t0x00F4: 1, /* INFO */\n\t0x00FC: 2, /* FREQUENCY */\n\t0x0101: 1, /* EVALUATE */\n\t0x0105: 1, /* ERROR.TYPE */\n\t0x010F: 1, /* GAMMALN */\n\t0x0111: 4, /* BINOMDIST */\n\t0x0112: 2, /* CHIDIST */\n\t0x0113: 2, /* CHIINV */\n\t0x0114: 2, /* COMBIN */\n\t0x0115: 3, /* CONFIDENCE */\n\t0x0116: 3, /* CRITBINOM */\n\t0x0117: 1, /* EVEN */\n\t0x0118: 3, /* EXPONDIST */\n\t0x0119: 3, /* FDIST */\n\t0x011A: 3, /* FINV */\n\t0x011B: 1, /* FISHER */\n\t0x011C: 1, /* FISHERINV */\n\t0x011D: 2, /* FLOOR */\n\t0x011E: 4, /* GAMMADIST */\n\t0x011F: 3, /* GAMMAINV */\n\t0x0120: 2, /* CEILING */\n\t0x0121: 4, /* HYPGEOMDIST */\n\t0x0122: 3, /* LOGNORMDIST */\n\t0x0123: 3, /* LOGINV */\n\t0x0124: 3, /* NEGBINOMDIST */\n\t0x0125: 4, /* NORMDIST */\n\t0x0126: 1, /* NORMSDIST */\n\t0x0127: 3, /* NORMINV */\n\t0x0128: 1, /* NORMSINV */\n\t0x0129: 3, /* STANDARDIZE */\n\t0x012A: 1, /* ODD */\n\t0x012B: 2, /* PERMUT */\n\t0x012C: 3, /* POISSON */\n\t0x012D: 3, /* TDIST */\n\t0x012E: 4, /* WEIBULL */\n\t0x012F: 2, /* SUMXMY2 */\n\t0x0130: 2, /* SUMX2MY2 */\n\t0x0131: 2, /* SUMX2PY2 */\n\t0x0132: 2, /* CHITEST */\n\t0x0133: 2, /* CORREL */\n\t0x0134: 2, /* COVAR */\n\t0x0135: 3, /* FORECAST */\n\t0x0136: 2, /* FTEST */\n\t0x0137: 2, /* INTERCEPT */\n\t0x0138: 2, /* PEARSON */\n\t0x0139: 2, /* RSQ */\n\t0x013A: 2, /* STEYX */\n\t0x013B: 2, /* SLOPE */\n\t0x013C: 4, /* TTEST */\n\t0x0145: 2, /* LARGE */\n\t0x0146: 2, /* SMALL */\n\t0x0147: 2, /* QUARTILE */\n\t0x0148: 2, /* PERCENTILE */\n\t0x014B: 2, /* TRIMMEAN */\n\t0x014C: 2, /* TINV */\n\t0x0151: 2, /* POWER */\n\t0x0156: 1, /* RADIANS */\n\t0x0157: 1, /* DEGREES */\n\t0x015A: 2, /* COUNTIF */\n\t0x015B: 1, /* COUNTBLANK */\n\t0x015E: 4, /* ISPMT */\n\t0x015F: 3, /* DATEDIF */\n\t0x0160: 1, /* DATESTRING */\n\t0x0161: 2, /* NUMBERSTRING */\n\t0x0168: 1, /* PHONETIC */\n\t0x0170: 1, /* BAHTTEXT */\n\t0x0171: 1, /* THAIDAYOFWEEK */\n\t0x0172: 1, /* THAIDIGIT */\n\t0x0173: 1, /* THAIMONTHOFYEAR */\n\t0x0174: 1, /* THAINUMSOUND */\n\t0x0175: 1, /* THAINUMSTRING */\n\t0x0176: 1, /* THAISTRINGLENGTH */\n\t0x0177: 1, /* ISTHAIDIGIT */\n\t0x0178: 1, /* ROUNDBAHTDOWN */\n\t0x0179: 1, /* ROUNDBAHTUP */\n\t0x017A: 1, /* THAIYEAR */\n\t0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\";\n\nfunction get_sst_id(sst, str) {\n\tfor(var i = 0, len = sst.length; i < len; ++i) if(sst[i].t === str) { sst.Count ++; return i; }\n\tsst[len] = {t:str}; sst.Count ++; sst.Unique ++; return len;\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tfor(var i = 0, len = styles.length; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts) {\n\ttry {\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v,_ssfopts);\n\t\t\t\telse p.w = SSF._general_num(p.v,_ssfopts);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd,_ssfopts);\n\t\t\t\telse p.w = SSF._general_num(dd,_ssfopts);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(fillid) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF) throw e; }\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<mergeCell ref=\"[A-Z0-9:]+\"\\s*\\/>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData>([^\\u2603]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<hyperlink[^>]*\\/>/g;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<col[^>]*\\/>/g;\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, rels) {\n\tif(!data) return data;\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = {};\n\n\t/* 18.3.1.35 dimension CT_SheetDimension ? */\n\tvar ridx = data.indexOf(\"<dimension\");\n\tif(ridx > 0) {\n\t\tvar ref = data.substr(ridx,50).match(dimregex);\n\t\tif(ref != null) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar mergecells = [];\n\tif(data.indexOf(\"</mergeCells>\")!==-1) {\n\t\tvar merges = data.match(mergecregex);\n\t\tfor(ridx = 0; ridx != merges.length; ++ridx)\n\t\t\tmergecells[ridx] = safe_decode_range(merges[ridx].substr(merges[ridx].indexOf(\"\\\"\")+1));\n\t}\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles && data.indexOf(\"</cols>\")!==-1) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data.match(colregex);\n\t\tparse_ws_xml_cols(columns, cols);\n\t}\n\n\tvar refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tvar mtch=data.match(sheetdataregex);\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess);\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tif(data.indexOf(\"</hyperlinks>\")!==-1) parse_ws_xml_hlinks(s, data.match(hlinkregex), rels);\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows < +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(mergecells.length > 0) s[\"!merges\"] = mergecells;\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length == 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(data[i], true);\n\t\tif(!val.ref) return;\n\t\tvar rel = rels ? rels['!id'][val.id] : null;\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t\tval.Rel = rel;\n\t\t} else {\n\t\t\tval.Target = val.location;\n\t\t\trel = {Target: val.location, TargetMode: 'Internal'};\n\t\t\tval.Rel = rel;\n\t\t}\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(!s[addr]) s[addr] = {t:\"stub\",v:undefined};\n\t\t\ts[addr].l = val;\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw(+coll.width, coll); }\n\t\tif(coll.width) {\n\t\t\tcoll.wpx = width2px(+coll.width);\n\t\t\tcoll.wch = px2char(coll.wpx);\n\t\t\tcoll.MDW = MDW;\n\t\t}\n\t\twhile(colm <= colM) columns[colm++] = coll;\n\t}\n}\n\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"<cols>\"], col, width;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\tvar p = {min:i+1,max:i+1};\n\t\t/* wch (chars), wpx (pixels) */\n\t\twidth = -1;\n\t\tif(col.wpx) width = px2char(col.wpx);\n\t\telse if(col.wch) width = col.wch;\n\t\tif(width > -1) { p.width = char2width(width); p.customWidth= 1; }\n\t\to[o.length] = (writextag('col', null, p));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {\n\tif(cell.v === undefined) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts.cellDates) vv = new Date(cell.v).toISOString();\n\t\t\telse {\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(cell.v));\n\t\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = {r:ref};\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tdefault:\n\t\t\tif(opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function parse_ws_xml_data_factory() {\n\tvar cellregex = /<(?:\\w+:)?c[ >]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<is>([\\S\\s]*?)<\\/is>/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx = 0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr;\n\tvar fmtid = 0, fillid = 0, do_format = Array.isArray(styles.CellXf), cf;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.substr(0,ri), true);\n\t\t/* SpreadSheetGear uses implicit r/c */\n\t\ttagr = typeof tag.r !== 'undefined' ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.substr(ri).split(cellregex);\n\t\tfor(ri = typeof tag.r === 'undefined' ? 0 : 1; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.substr(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref !== null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.substr(0,i), true);\n\t\t\tif(!tag.r) tag.r = utils.encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.substr(i);\n\t\t\tp = {t:\"\"};\n\n\t\t\tif((cref=d.match(match_v))!== null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula && (cref=d.match(match_f))!== null) p.f=unescapexml(cref[1]);\n\n\t\t\t/* SCHEMA IS ACTUALLY INCORRECT HERE. IF A CELL HAS NO T, EMIT \"\" */\n\t\t\tif(tag.t === undefined && p.v === undefined) {\n\t\t\t\tif(!opts.sheetStubs) continue;\n\t\t\t\tp.t = \"stub\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > idx) guess.s.c = idx;\n\t\t\tif(guess.e.c < idx) guess.e.c = idx;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n': p.v = parseFloat(p.v); break;\n\t\t\t\tcase 's':\n\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = p.v;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref !== null) { sstr = parse_si(cref[1]); p.v = sstr.t; } else p.v = \"\";\n\t\t\t\t\tbreak; // inline string\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(!opts.cellDates) { p.v = datenum(p.v); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .v, number in .v */\n\t\t\t\tcase 'e': p.w = p.v; p.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles && cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts);\n\t\t\ts[tag.r] = p;\n\t\t}\n\t}\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell, ref, rr = \"\", cols = [], R, C;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tif(ws[ref] === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(ws[ref], ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0) o[o.length] = (writextag('row', r.join(\"\"), {r:rr}));\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws === undefined) ws = {};\n\tvar ref = ws['!ref']; if(ref === undefined) ref = 'A1';\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\tif(ws['!cols'] !== undefined && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\to[sidx = o.length] = '<sheetData/>';\n\tif(ws['!ref'] !== undefined) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\tif(ws['!merges'] !== undefined && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\tif(o.length>2) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.718 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = [];\n\tz.r = data.read_shift(4);\n\tdata.l += length-4;\n\treturn z;\n}\n\n/* [MS-XLSB] 2.4.812 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.815 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\n\n/* [MS-XLSB] 2.4.303 BrtCellBlank */\nfunction parse_BrtCellBlank(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, val, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(val, o);\n}\n\n\n/* [MS-XLSB] 2.4.304 BrtCellBool */\nfunction parse_BrtCellBool(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\n\n/* [MS-XLSB] 2.4.305 BrtCellError */\nfunction parse_BrtCellError(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'e'];\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellIsst */\nfunction parse_BrtCellIsst(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\n\n/* [MS-XLSB] 2.4.310 BrtCellReal */\nfunction parse_BrtCellReal(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellRk */\nfunction parse_BrtCellRk(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellSt */\nfunction parse_BrtCellSt(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\n\n/* [MS-XLSB] 2.4.647 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, length-9);\n\t\to[3] = \"\"; /* TODO */\n\t}\n\telse data.l += length-9;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.648 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, length-9);\n\t\to[3] = \"\"; /* TODO */\n\t}\n\telse data.l += length-9;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.649 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, length - 16);\n\t\to[3] = \"\"; /* TODO */\n\t}\n\telse data.l += length-16;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar start = data.l;\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, start + length - data.l);\n\t}\n\telse data.l = start + length;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.676 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.656 BrtHLink */\nfunction parse_BrtHLink(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\treturn {rfx:rfx, relId:relId, loc:loc, tooltip:tooltip, display:display};\n}\n\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, opts, rels) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {};\n\n\tvar ref;\n\tvar refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr;\n\tvar mergecells = [];\n\trecordhopper(data, function ws_parse(val, R) {\n\t\tif(end) return;\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtWsDim': ref = val; break;\n\t\t\tcase 'BrtRowHdr':\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(row.r);\n\t\t\t\tbreak;\n\n\t\t\tcase 'BrtFmlaBool':\n\t\t\tcase 'BrtFmlaError':\n\t\t\tcase 'BrtFmlaNum':\n\t\t\tcase 'BrtFmlaString':\n\t\t\tcase 'BrtCellBool':\n\t\t\tcase 'BrtCellError':\n\t\t\tcase 'BrtCellIsst':\n\t\t\tcase 'BrtCellReal':\n\t\t\tcase 'BrtCellRk':\n\t\t\tcase 'BrtCellSt':\n\t\t\t\tp = {t:val[2]};\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = utf8read(val[1]); break;\n\t\t\t\t}\n\t\t\t\tif(opts.cellFormula && val.length > 3) p.f = val[3];\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.ifmt,null,opts);\n\t\t\t\ts[encode_col(C=val[0].c) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 'BrtCellBlank': if(!opts.sheetStubs) break;\n\t\t\t\tp = {t:'s',v:undefined};\n\t\t\t\ts[encode_col(C=val[0].c) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\t/* Merge Cells */\n\t\t\tcase 'BrtBeginMergeCells': break;\n\t\t\tcase 'BrtEndMergeCells': break;\n\t\t\tcase 'BrtMergeCell': mergecells.push(val); break;\n\n\t\t\tcase 'BrtHLink':\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\tif(!s[addr]) s[addr] = {t:'s',v:undefined};\n\t\t\t\t\ts[addr].l = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'BrtArrFmla': break; // TODO\n\t\t\tcase 'BrtShrFmla': break; // TODO\n\t\t\tcase 'BrtBeginSheet': break;\n\t\t\tcase 'BrtWsProp': break; // TODO\n\t\t\tcase 'BrtSheetCalcProp': break; // TODO\n\t\t\tcase 'BrtBeginWsViews': break; // TODO\n\t\t\tcase 'BrtBeginWsView': break; // TODO\n\t\t\tcase 'BrtPane': break; // TODO\n\t\t\tcase 'BrtSel': break; // TODO\n\t\t\tcase 'BrtEndWsView': break; // TODO\n\t\t\tcase 'BrtEndWsViews': break; // TODO\n\t\t\tcase 'BrtACBegin': break; // TODO\n\t\t\tcase 'BrtRwDescent': break; // TODO\n\t\t\tcase 'BrtACEnd': break; // TODO\n\t\t\tcase 'BrtWsFmtInfoEx14': break; // TODO\n\t\t\tcase 'BrtWsFmtInfo': break; // TODO\n\t\t\tcase 'BrtBeginColInfos': break; // TODO\n\t\t\tcase 'BrtColInfo': break; // TODO\n\t\t\tcase 'BrtEndColInfos': break; // TODO\n\t\t\tcase 'BrtBeginSheetData': break; // TODO\n\t\t\tcase 'BrtEndSheetData': break; // TODO\n\t\t\tcase 'BrtSheetProtection': break; // TODO\n\t\t\tcase 'BrtPrintOptions': break; // TODO\n\t\t\tcase 'BrtMargins': break; // TODO\n\t\t\tcase 'BrtPageSetup': break; // TODO\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tcase 'BrtEndSheet': break; // TODO\n\t\t\tcase 'BrtDrawing': break; // TODO\n\t\t\tcase 'BrtLegacyDrawing': break; // TODO\n\t\t\tcase 'BrtLegacyDrawingHF': break; // TODO\n\t\t\tcase 'BrtPhoneticInfo': break; // TODO\n\t\t\tcase 'BrtBeginHeaderFooter': break; // TODO\n\t\t\tcase 'BrtEndHeaderFooter': break; // TODO\n\t\t\tcase 'BrtBrk': break; // TODO\n\t\t\tcase 'BrtBeginRwBrk': break; // TODO\n\t\t\tcase 'BrtEndRwBrk': break; // TODO\n\t\t\tcase 'BrtBeginColBrk': break; // TODO\n\t\t\tcase 'BrtEndColBrk': break; // TODO\n\t\t\tcase 'BrtBeginUserShViews': break; // TODO\n\t\t\tcase 'BrtBeginUserShView': break; // TODO\n\t\t\tcase 'BrtEndUserShView': break; // TODO\n\t\t\tcase 'BrtEndUserShViews': break; // TODO\n\t\t\tcase 'BrtBkHim': break; // TODO\n\t\t\tcase 'BrtBeginOleObjects': break; // TODO\n\t\t\tcase 'BrtOleObject': break; // TODO\n\t\t\tcase 'BrtEndOleObjects': break; // TODO\n\t\t\tcase 'BrtBeginListParts': break; // TODO\n\t\t\tcase 'BrtListPart': break; // TODO\n\t\t\tcase 'BrtEndListParts': break; // TODO\n\t\t\tcase 'BrtBeginSortState': break; // TODO\n\t\t\tcase 'BrtBeginSortCond': break; // TODO\n\t\t\tcase 'BrtEndSortCond': break; // TODO\n\t\t\tcase 'BrtEndSortState': break; // TODO\n\t\t\tcase 'BrtBeginConditionalFormatting': break; // TODO\n\t\t\tcase 'BrtEndConditionalFormatting': break; // TODO\n\t\t\tcase 'BrtBeginCFRule': break; // TODO\n\t\t\tcase 'BrtEndCFRule': break; // TODO\n\t\t\tcase 'BrtBeginDVals': break; // TODO\n\t\t\tcase 'BrtDVal': break; // TODO\n\t\t\tcase 'BrtEndDVals': break; // TODO\n\t\t\tcase 'BrtRangeProtection': break; // TODO\n\t\t\tcase 'BrtBeginDCon': break; // TODO\n\t\t\tcase 'BrtEndDCon': break; // TODO\n\t\t\tcase 'BrtBeginDRefs': break;\n\t\t\tcase 'BrtDRef': break;\n\t\t\tcase 'BrtEndDRefs': break;\n\n\t\t\t/* ActiveX */\n\t\t\tcase 'BrtBeginActiveXControls': break;\n\t\t\tcase 'BrtActiveX': break;\n\t\t\tcase 'BrtEndActiveXControls': break;\n\n\t\t\t/* AutoFilter */\n\t\t\tcase 'BrtBeginAFilter': break;\n\t\t\tcase 'BrtEndAFilter': break;\n\t\t\tcase 'BrtBeginFilterColumn': break;\n\t\t\tcase 'BrtBeginFilters': break;\n\t\t\tcase 'BrtFilter': break;\n\t\t\tcase 'BrtEndFilters': break;\n\t\t\tcase 'BrtEndFilterColumn': break;\n\t\t\tcase 'BrtDynamicFilter': break;\n\t\t\tcase 'BrtTop10Filter': break;\n\t\t\tcase 'BrtBeginCustomFilters': break;\n\t\t\tcase 'BrtCustomFilter': break;\n\t\t\tcase 'BrtEndCustomFilters': break;\n\n\t\t\t/* Smart Tags */\n\t\t\tcase 'BrtBeginSmartTags': break;\n\t\t\tcase 'BrtBeginCellSmartTags': break;\n\t\t\tcase 'BrtBeginCellSmartTag': break;\n\t\t\tcase 'BrtCellSmartTagProperty': break;\n\t\t\tcase 'BrtEndCellSmartTag': break;\n\t\t\tcase 'BrtEndCellSmartTags': break;\n\t\t\tcase 'BrtEndSmartTags': break;\n\n\t\t\t/* Cell Watch */\n\t\t\tcase 'BrtBeginCellWatches': break;\n\t\t\tcase 'BrtCellWatch': break;\n\t\t\tcase 'BrtEndCellWatches': break;\n\n\t\t\t/* Table */\n\t\t\tcase 'BrtTable': break;\n\n\t\t\t/* Ignore Cell Errors */\n\t\t\tcase 'BrtBeginCellIgnoreECs': break;\n\t\t\tcase 'BrtCellIgnoreEC': break;\n\t\t\tcase 'BrtEndCellIgnoreECs': break;\n\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + R.n);\n\t\t}\n\t}, opts);\n\tif(!s[\"!ref\"] && (refguess.s.r < 1000000 || ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0)) s[\"!ref\"] = encode_range(ref);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows < +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(mergecells.length > 0) s[\"!merges\"] = mergecells;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts) {\n\tif(cell.v === undefined) return \"\";\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = {r:R, c:C};\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, cell.v);\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t\tcase 'n': break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts, wb) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tif(!ws[ref]) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, ws[ref], R, C, opts);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_ws_bin(idx, opts, wb) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtWsProp] */\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\t/* [WSVIEWS2] */\n\t/* [WSFMTINFO] */\n\t/* *COLINFOS */\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\t/* [[BrtSheetProtectionIso] BrtSheetProtection] */\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\t/* [AUTOFILTER] */\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\t/* [MERGECELLS] */\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\t/* *BrtHLink */\n\t/* [BrtPrintOptions] */\n\t/* [BrtMargins] */\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\t/* [IGNOREECS] */\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', '0'],\n\t['autoCompressPictures', '1'],\n\t['backupFile', '0'],\n\t['checkCompatibility', '0'],\n\t['codeName', ''],\n\t['date1904', '0'],\n\t['dateCompatibility', '1'],\n\t//['defaultThemeVersion', '0'],\n\t['filterPrivacy', '0'],\n\t['hidePivotFieldList', '0'],\n\t['promptedSolutions', '0'],\n\t['publishItems', '0'],\n\t['refreshAllConnections', false],\n\t['saveExternalLinkValues', '1'],\n\t['showBorderUnselectedTables', '1'],\n\t['showInkAnnotation', '1'],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', '0']\n\t//['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', '0'],\n\t['autoFilterDateGrouping', '1'],\n\t['firstSheet', '0'],\n\t['minimized', '0'],\n\t['showHorizontalScroll', '1'],\n\t['showSheetTabs', '1'],\n\t['showVerticalScroll', '1'],\n\t['tabRatio', '600'],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\nvar CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904, 'date1904');\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tdata.match(tagregex).forEach(function xml_wb(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing': case '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr': delete y[0]; wb.WBProps = y; break;\n\t\t\tcase '<workbookPr/>': delete y[0]; wb.WBProps = y; break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection': break;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': delete y[0]; wb.WBView.push(y); break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet': delete y[0]; y.name = utf8read(y.name); wb.Sheets.push(y); break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': case '<definedName/>': case '</definedName>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw 'unrecognized ' + y[0] + ' in workbook';\n\t\t}\n\t});\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nvar WB_XML_ROOT = writextag('workbook', null, {\n\t'xmlns': XMLNS.main[0],\n\t//'xmlns:mx': XMLNS.mx,\n\t//'xmlns:s': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\ttry { return parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\"; } catch(e) { return \"false\"; }\n}\n\nfunction write_wb_xml(wb, opts) {\n\tvar o = [XML_HEADER];\n\to[o.length] = WB_XML_ROOT;\n\to[o.length] = (writextag('workbookPr', null, {date1904:safe1904(wb)}));\n\to[o.length] = \"<sheets>\";\n\tfor(var i = 0; i != wb.SheetNames.length; ++i)\n\t\to[o.length] = (writextag('sheet',null,{name:wb.SheetNames[i].substr(0,31), sheetId:\"\"+(i+1), \"r:id\":\"rId\"+(i+1)}));\n\to[o.length] = \"</sheets>\";\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.301 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.hsState = data.read_shift(4); //ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.hsState);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.substr(0,31), o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.807 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tdata.read_shift(4);\n\tvar dwThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\treturn [dwThemeVersion, strName];\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar pass = false, z;\n\n\trecordhopper(data, function hopper_wb(val, R) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtBundleSh': wb.Sheets.push(val); break;\n\n\t\t\tcase 'BrtBeginBook': break;\n\t\t\tcase 'BrtFileVersion': break;\n\t\t\tcase 'BrtWbProp': break;\n\t\t\tcase 'BrtACBegin': break;\n\t\t\tcase 'BrtAbsPath15': break;\n\t\t\tcase 'BrtACEnd': break;\n\t\t\tcase 'BrtWbFactoid': break;\n\t\t\t/*case 'BrtBookProtectionIso': break;*/\n\t\t\tcase 'BrtBookProtection': break;\n\t\t\tcase 'BrtBeginBookViews': break;\n\t\t\tcase 'BrtBookView': break;\n\t\t\tcase 'BrtEndBookViews': break;\n\t\t\tcase 'BrtBeginBundleShs': break;\n\t\t\tcase 'BrtEndBundleShs': break;\n\t\t\tcase 'BrtBeginFnGroup': break;\n\t\t\tcase 'BrtEndFnGroup': break;\n\t\t\tcase 'BrtBeginExternals': break;\n\t\t\tcase 'BrtSupSelf': break;\n\t\t\tcase 'BrtSupBookSrc': break;\n\t\t\tcase 'BrtExternSheet': break;\n\t\t\tcase 'BrtEndExternals': break;\n\t\t\tcase 'BrtName': break;\n\t\t\tcase 'BrtCalcProp': break;\n\t\t\tcase 'BrtUserBookView': break;\n\t\t\tcase 'BrtBeginPivotCacheIDs': break;\n\t\t\tcase 'BrtBeginPivotCacheID': break;\n\t\t\tcase 'BrtEndPivotCacheID': break;\n\t\t\tcase 'BrtEndPivotCacheIDs': break;\n\t\t\tcase 'BrtWebOpt': break;\n\t\t\tcase 'BrtFileRecover': break;\n\t\t\tcase 'BrtFileSharing': break;\n\t\t\t/*case 'BrtBeginWebPubItems': break;\n\t\t\tcase 'BrtBeginWebPubItem': break;\n\t\t\tcase 'BrtEndWebPubItem': break;\n\t\t\tcase 'BrtEndWebPubItems': break;*/\n\n\t\t\t/* Smart Tags */\n\t\t\tcase 'BrtBeginSmartTagTypes': break;\n\t\t\tcase 'BrtSmartTagType': break;\n\t\t\tcase 'BrtEndSmartTagTypes': break;\n\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTArchID$': break;\n\t\t\tcase 'BrtWorkBookPr15': break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tcase 'BrtEndBook': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + R.n);\n\t\t}\n\t});\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction write_BUNDLESHS(ba, wb, opts) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar d = { hsState: 0, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.643 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction write_BOOKVIEWS(ba, wb, opts) {\n\twrite_record(ba, \"BrtBeginBookViews\");\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.302 BrtCalcProp */\nfunction write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); /* force recalc */\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}\n\nfunction write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp());\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\twrite_record(ba, \"BrtCalcProp\", write_BrtCalcProp());\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\twrite_record(ba, \"BrtFileRecover\", write_BrtFileRecover());\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_wb_bin : parse_wb_xml)(data, opts);\n}\n\nfunction parse_ws(data, name, opts, rels) {\n\treturn (name.substr(-4)===\".bin\" ? parse_ws_bin : parse_ws_xml)(data, opts, rels);\n}\n\nfunction parse_sty(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_sty_bin : parse_sty_xml)(data, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_sst_bin : parse_sst_xml)(data, opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_comments_bin : parse_comments_xml)(data, opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_cc_bin : parse_cc_xml)(data, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb) {\n\treturn (name.substr(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n/*\nfunction write_cmnt(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n\nfunction write_cc(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nvar _chr = function(c) { return String.fromCharCode(c); };\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = []; if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2);\n\t\telse {\n\t\t\tif(y[1].substr(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].substr(6);\n\t\t\telse w = y[1].substr(j+1);\n\t\t\tz[w] = y[2].substr(1,y[2].length-2);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2);\n\t\telse {\n\t\t\tif(y[1].substr(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].substr(6);\n\t\t\telse w = y[1].substr(j+1);\n\t\t\tz[w] = y[2].substr(1,y[2].length-2);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, Rn, cp, val) {\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": val = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": val = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": val = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": val = new Date(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw \"bad custprop:\" + cp[0];\n\t}\n\tCustprops[unescapexml(Rn[3])] = val;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\ttry {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t\tif(o.cellNF) cell.z = XLMLFormatMap[nf]||nf||\"General\";\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = xml.indexOf(\"<\") > -1 ? ss : cell.r;\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tcell.v = (Date.parse(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v >= 1 && cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; cell.w = xml; break;\n\t\tdefault: cell.t = 's'; cell.v = xlml_fixstr(ss); break;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula != null && cell.Formula) {\n\t\tcell.f = rc_to_a1(unescapexml(cell.Formula), base);\n\t\tcell.Formula = undefined;\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tcell.ixfe = cell.StyleID !== undefined ? cell.StyleID : 'Default';\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v;\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\tthrow \"badf\";\n}\n\n/* TODO: Everything */\nvar xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar state = [], tmp;\n\tvar sheets = {}, sheetnames = [], cursheet = {}, sheetname = \"\";\n\tvar table = {}, cell = {}, row = {}, dtag, didx;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar mergecells = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = {};\n\tvar comments = [], comment = {};\n\tvar cstys = [], csty;\n\txlmlregex.lastIndex = 0;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'Data':\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==\"Comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'Cell':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = {Target:cell.HRef, tooltip:cell.HRefScreenTip};\n\t\t\t\t\tcell.HRef = cell.HRefScreenTip = undefined;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tvar cc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\tvar rr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\t++c;\n\t\t\t\tif(cell.MergeAcross) c += +cell.MergeAcross;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].substr(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Row':\n\t\t\tif(Rn[1]==='/' || Rn[0].substr(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].substr(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Worksheet': /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) cursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\tif(mergecells.length) cursheet[\"!merges\"] = mergecells;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = tmp.Name;\n\t\t\t\tcursheet = {};\n\t\t\t\tmergecells = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Table':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = [];\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Style':\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'NumberFormat':\n\t\t\tstag.nf = xlml_parsexmltag(Rn[0]).Format || \"General\";\n\t\t\tbreak;\n\n\t\tcase 'Column':\n\t\t\tif(state[state.length-1][0] !== 'Table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = csty;\n\t\t\tbreak;\n\n\t\tcase 'NamedRange': break;\n\t\tcase 'NamedCell': break;\n\t\tcase 'B': break;\n\t\tcase 'I': break;\n\t\tcase 'U': break;\n\t\tcase 'S': break;\n\t\tcase 'Sub': break;\n\t\tcase 'Sup': break;\n\t\tcase 'Span': break;\n\t\tcase 'Border': break;\n\t\tcase 'Alignment': break;\n\t\tcase 'Borders': break;\n\t\tcase 'Font':\n\t\t\tif(Rn[0].substr(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Interior':\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'Protection': break;\n\n\t\tcase 'Author':\n\t\tcase 'Title':\n\t\tcase 'Description':\n\t\tcase 'Created':\n\t\tcase 'Keywords':\n\t\tcase 'Subject':\n\t\tcase 'Category':\n\t\tcase 'Company':\n\t\tcase 'LastAuthor':\n\t\tcase 'LastSaved':\n\t\tcase 'LastPrinted':\n\t\tcase 'Version':\n\t\tcase 'Revision':\n\t\tcase 'TotalTime':\n\t\tcase 'HyperlinkBase':\n\t\tcase 'Manager':\n\t\t\tif(Rn[0].substr(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Paragraphs': break;\n\n\t\tcase 'Styles':\n\t\tcase 'Workbook':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'Comment':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = {a:tmp.Author};\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Name': break;\n\n\t\tcase 'ComponentOptions':\n\t\tcase 'DocumentProperties':\n\t\tcase 'CustomDocumentProperties':\n\t\tcase 'OfficeDocumentSettings':\n\t\tcase 'PivotTable':\n\t\tcase 'PivotCache':\n\t\tcase 'Names':\n\t\tcase 'MapInfo':\n\t\tcase 'PageBreaks':\n\t\tcase 'QueryTable':\n\t\tcase 'DataValidation':\n\t\tcase 'AutoFilter':\n\t\tcase 'Sorting':\n\t\tcase 'Schema':\n\t\tcase 'data':\n\t\tcase 'ConditionalFormatting':\n\t\tcase 'SmartTagType':\n\t\tcase 'SmartTags':\n\t\tcase 'ExcelWorkbook':\n\t\tcase 'WorkbookOptions':\n\t\tcase 'WorksheetOptions':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'OfficeDocumentSettings': switch(Rn[3]) {\n\t\t\t\t\tcase 'AllowPNG': break;\n\t\t\t\t\tcase 'RemovePersonalInformation': break;\n\t\t\t\t\tcase 'DownloadComponents': break;\n\t\t\t\t\tcase 'LocationOfComponents': break;\n\t\t\t\t\tcase 'Colors': break;\n\t\t\t\t\tcase 'Color': break;\n\t\t\t\t\tcase 'Index': break;\n\t\t\t\t\tcase 'RGB': break;\n\t\t\t\t\tcase 'PixelsPerInch': break;\n\t\t\t\t\tcase 'TargetScreenSize': break;\n\t\t\t\t\tcase 'ReadOnlyRecommended': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'ComponentOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Toolbar': break;\n\t\t\t\t\tcase 'HideOfficeLogo': break;\n\t\t\t\t\tcase 'SpreadsheetAutoFit': break;\n\t\t\t\t\tcase 'Label': break;\n\t\t\t\t\tcase 'Caption': break;\n\t\t\t\t\tcase 'MaxHeight': break;\n\t\t\t\t\tcase 'MaxWidth': break;\n\t\t\t\t\tcase 'NextSheetNumber': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'ExcelWorkbook': switch(Rn[3]) {\n\t\t\t\t\tcase 'WindowHeight': break;\n\t\t\t\t\tcase 'WindowWidth': break;\n\t\t\t\t\tcase 'WindowTopX': break;\n\t\t\t\t\tcase 'WindowTopY': break;\n\t\t\t\t\tcase 'TabRatio': break;\n\t\t\t\t\tcase 'ProtectStructure': break;\n\t\t\t\t\tcase 'ProtectWindows': break;\n\t\t\t\t\tcase 'ActiveSheet': break;\n\t\t\t\t\tcase 'DisplayInkNotes': break;\n\t\t\t\t\tcase 'FirstVisibleSheet': break;\n\t\t\t\t\tcase 'SupBook': break;\n\t\t\t\t\tcase 'SheetName': break;\n\t\t\t\t\tcase 'SheetIndex': break;\n\t\t\t\t\tcase 'SheetIndexFirst': break;\n\t\t\t\t\tcase 'SheetIndexLast': break;\n\t\t\t\t\tcase 'Dll': break;\n\t\t\t\t\tcase 'AcceptLabelsInFormulas': break;\n\t\t\t\t\tcase 'DoNotSaveLinkValues': break;\n\t\t\t\t\tcase 'Date1904': break;\n\t\t\t\t\tcase 'Iteration': break;\n\t\t\t\t\tcase 'MaxIterations': break;\n\t\t\t\t\tcase 'MaxChange': break;\n\t\t\t\t\tcase 'Path': break;\n\t\t\t\t\tcase 'Xct': break;\n\t\t\t\t\tcase 'Count': break;\n\t\t\t\t\tcase 'SelectedSheets': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tcase 'Uncalced': break;\n\t\t\t\t\tcase 'StartupPrompt': break;\n\t\t\t\t\tcase 'Crn': break;\n\t\t\t\t\tcase 'ExternName': break;\n\t\t\t\t\tcase 'Formula': break;\n\t\t\t\t\tcase 'ColFirst': break;\n\t\t\t\t\tcase 'ColLast': break;\n\t\t\t\t\tcase 'WantAdvise': break;\n\t\t\t\t\tcase 'Boolean': break;\n\t\t\t\t\tcase 'Error': break;\n\t\t\t\t\tcase 'Text': break;\n\t\t\t\t\tcase 'OLE': break;\n\t\t\t\t\tcase 'NoAutoRecover': break;\n\t\t\t\t\tcase 'PublishObjects': break;\n\t\t\t\t\tcase 'DoNotCalculateBeforeSave': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'RefModeR1C1': break;\n\t\t\t\t\tcase 'EmbedSaveSmartTags': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'WorkbookOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'OWCVersion': break;\n\t\t\t\t\tcase 'Height': break;\n\t\t\t\t\tcase 'Width': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'WorksheetOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Unsynced': break;\n\t\t\t\t\tcase 'Visible': break;\n\t\t\t\t\tcase 'Print': break;\n\t\t\t\t\tcase 'Panes': break;\n\t\t\t\t\tcase 'Scale': break;\n\t\t\t\t\tcase 'Pane': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Layout': break;\n\t\t\t\t\tcase 'Header': break;\n\t\t\t\t\tcase 'Footer': break;\n\t\t\t\t\tcase 'PageSetup': break;\n\t\t\t\t\tcase 'PageMargins': break;\n\t\t\t\t\tcase 'Selected': break;\n\t\t\t\t\tcase 'ProtectObjects': break;\n\t\t\t\t\tcase 'EnableSelection': break;\n\t\t\t\t\tcase 'ProtectScenarios': break;\n\t\t\t\t\tcase 'ValidPrinterInfo': break;\n\t\t\t\t\tcase 'HorizontalResolution': break;\n\t\t\t\t\tcase 'VerticalResolution': break;\n\t\t\t\t\tcase 'NumberofCopies': break;\n\t\t\t\t\tcase 'ActiveRow': break;\n\t\t\t\t\tcase 'ActiveCol': break;\n\t\t\t\t\tcase 'ActivePane': break;\n\t\t\t\t\tcase 'TopRowVisible': break;\n\t\t\t\t\tcase 'TopRowBottomPane': break;\n\t\t\t\t\tcase 'LeftColumnVisible': break;\n\t\t\t\t\tcase 'LeftColumnRightPane': break;\n\t\t\t\t\tcase 'FitToPage': break;\n\t\t\t\t\tcase 'RangeSelection': break;\n\t\t\t\t\tcase 'PaperSizeIndex': break;\n\t\t\t\t\tcase 'PageLayoutZoom': break;\n\t\t\t\t\tcase 'PageBreakZoom': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'DoNotDisplayGridlines': break;\n\t\t\t\t\tcase 'SplitHorizontal': break;\n\t\t\t\t\tcase 'SplitVertical': break;\n\t\t\t\t\tcase 'FreezePanes': break;\n\t\t\t\t\tcase 'FrozenNoSplit': break;\n\t\t\t\t\tcase 'FitWidth': break;\n\t\t\t\t\tcase 'FitHeight': break;\n\t\t\t\t\tcase 'CommentsLayout': break;\n\t\t\t\t\tcase 'Zoom': break;\n\t\t\t\t\tcase 'LeftToRight': break;\n\t\t\t\t\tcase 'Gridlines': break;\n\t\t\t\t\tcase 'AllowSort': break;\n\t\t\t\t\tcase 'AllowFilter': break;\n\t\t\t\t\tcase 'AllowInsertRows': break;\n\t\t\t\t\tcase 'AllowDeleteRows': break;\n\t\t\t\t\tcase 'AllowInsertCols': break;\n\t\t\t\t\tcase 'AllowDeleteCols': break;\n\t\t\t\t\tcase 'AllowInsertHyperlinks': break;\n\t\t\t\t\tcase 'AllowFormatCells': break;\n\t\t\t\t\tcase 'AllowSizeCols': break;\n\t\t\t\t\tcase 'AllowSizeRows': break;\n\t\t\t\t\tcase 'NoSummaryRowsBelowDetail': break;\n\t\t\t\t\tcase 'TabColorIndex': break;\n\t\t\t\t\tcase 'DoNotDisplayHeadings': break;\n\t\t\t\t\tcase 'ShowPageLayoutZoom': break;\n\t\t\t\t\tcase 'NoSummaryColumnsRightDetail': break;\n\t\t\t\t\tcase 'BlackAndWhite': break;\n\t\t\t\t\tcase 'DoNotDisplayZeros': break;\n\t\t\t\t\tcase 'DisplayPageBreak': break;\n\t\t\t\t\tcase 'RowColHeadings': break;\n\t\t\t\t\tcase 'DoNotDisplayOutline': break;\n\t\t\t\t\tcase 'NoOrientation': break;\n\t\t\t\t\tcase 'AllowUsePivotTables': break;\n\t\t\t\t\tcase 'ZeroHeight': break;\n\t\t\t\t\tcase 'ViewableRange': break;\n\t\t\t\t\tcase 'Selection': break;\n\t\t\t\t\tcase 'ProtectContents': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'PivotTable': case 'PivotCache': switch(Rn[3]) {\n\t\t\t\t\tcase 'ImmediateItemsOnDrop': break;\n\t\t\t\t\tcase 'ShowPageMultipleItemLabel': break;\n\t\t\t\t\tcase 'CompactRowIndent': break;\n\t\t\t\t\tcase 'Location': break;\n\t\t\t\t\tcase 'PivotField': break;\n\t\t\t\t\tcase 'Orientation': break;\n\t\t\t\t\tcase 'LayoutForm': break;\n\t\t\t\t\tcase 'LayoutSubtotalLocation': break;\n\t\t\t\t\tcase 'LayoutCompactRow': break;\n\t\t\t\t\tcase 'Position': break;\n\t\t\t\t\tcase 'PivotItem': break;\n\t\t\t\t\tcase 'DataType': break;\n\t\t\t\t\tcase 'DataField': break;\n\t\t\t\t\tcase 'SourceName': break;\n\t\t\t\t\tcase 'ParentField': break;\n\t\t\t\t\tcase 'PTLineItems': break;\n\t\t\t\t\tcase 'PTLineItem': break;\n\t\t\t\t\tcase 'CountOfSameItems': break;\n\t\t\t\t\tcase 'Item': break;\n\t\t\t\t\tcase 'ItemType': break;\n\t\t\t\t\tcase 'PTSource': break;\n\t\t\t\t\tcase 'CacheIndex': break;\n\t\t\t\t\tcase 'ConsolidationReference': break;\n\t\t\t\t\tcase 'FileName': break;\n\t\t\t\t\tcase 'Reference': break;\n\t\t\t\t\tcase 'NoColumnGrand': break;\n\t\t\t\t\tcase 'NoRowGrand': break;\n\t\t\t\t\tcase 'BlankLineAfterItems': break;\n\t\t\t\t\tcase 'Hidden': break;\n\t\t\t\t\tcase 'Subtotal': break;\n\t\t\t\t\tcase 'BaseField': break;\n\t\t\t\t\tcase 'MapChildItems': break;\n\t\t\t\t\tcase 'Function': break;\n\t\t\t\t\tcase 'RefreshOnFileOpen': break;\n\t\t\t\t\tcase 'PrintSetTitles': break;\n\t\t\t\t\tcase 'MergeLabels': break;\n\t\t\t\t\tcase 'DefaultVersion': break;\n\t\t\t\t\tcase 'RefreshName': break;\n\t\t\t\t\tcase 'RefreshDate': break;\n\t\t\t\t\tcase 'RefreshDateCopy': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tcase 'VersionLastUpdate': break;\n\t\t\t\t\tcase 'VersionUpdateableMin': break;\n\t\t\t\t\tcase 'VersionRefreshableMin': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'PageBreaks': switch(Rn[3]) {\n\t\t\t\t\tcase 'ColBreaks': break;\n\t\t\t\t\tcase 'ColBreak': break;\n\t\t\t\t\tcase 'RowBreaks': break;\n\t\t\t\t\tcase 'RowBreak': break;\n\t\t\t\t\tcase 'ColStart': break;\n\t\t\t\t\tcase 'ColEnd': break;\n\t\t\t\t\tcase 'RowEnd': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'AutoFilter': switch(Rn[3]) {\n\t\t\t\t\tcase 'AutoFilterColumn': break;\n\t\t\t\t\tcase 'AutoFilterCondition': break;\n\t\t\t\t\tcase 'AutoFilterAnd': break;\n\t\t\t\t\tcase 'AutoFilterOr': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'QueryTable': switch(Rn[3]) {\n\t\t\t\t\tcase 'Id': break;\n\t\t\t\t\tcase 'AutoFormatFont': break;\n\t\t\t\t\tcase 'AutoFormatPattern': break;\n\t\t\t\t\tcase 'QuerySource': break;\n\t\t\t\t\tcase 'QueryType': break;\n\t\t\t\t\tcase 'EnableRedirections': break;\n\t\t\t\t\tcase 'RefreshedInXl9': break;\n\t\t\t\t\tcase 'URLString': break;\n\t\t\t\t\tcase 'HTMLTables': break;\n\t\t\t\t\tcase 'Connection': break;\n\t\t\t\t\tcase 'CommandText': break;\n\t\t\t\t\tcase 'RefreshInfo': break;\n\t\t\t\t\tcase 'NoTitles': break;\n\t\t\t\t\tcase 'NextId': break;\n\t\t\t\t\tcase 'ColumnInfo': break;\n\t\t\t\t\tcase 'OverwriteCells': break;\n\t\t\t\t\tcase 'DoNotPromptForFile': break;\n\t\t\t\t\tcase 'TextWizardSettings': break;\n\t\t\t\t\tcase 'Source': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Decimal': break;\n\t\t\t\t\tcase 'ThousandSeparator': break;\n\t\t\t\t\tcase 'TrailingMinusNumbers': break;\n\t\t\t\t\tcase 'FormatSettings': break;\n\t\t\t\t\tcase 'FieldType': break;\n\t\t\t\t\tcase 'Delimiters': break;\n\t\t\t\t\tcase 'Tab': break;\n\t\t\t\t\tcase 'Comma': break;\n\t\t\t\t\tcase 'AutoFormatName': break;\n\t\t\t\t\tcase 'VersionLastEdit': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* Sorting */\n\t\t\t\tcase 'Sorting':\n\t\t\t\t/* ConditionalFormatting */\n\t\t\t\tcase 'ConditionalFormatting':\n\t\t\t\t/* DataValidation */\n\t\t\t\tcase 'DataValidation': switch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase 'Format': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) {\n\t\t\t\t\tcase 'Map': break;\n\t\t\t\t\tcase 'Entry': break;\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'XPath': break;\n\t\t\t\t\tcase 'Field': break;\n\t\t\t\t\tcase 'XSDType': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'Aggregate': break;\n\t\t\t\t\tcase 'ElementType': break;\n\t\t\t\t\tcase 'AttributeType': break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema':\n\t\t\t\t\tcase 'element':\n\t\t\t\t\tcase 'complexType':\n\t\t\t\t\tcase 'datatype':\n\t\t\t\t\tcase 'all':\n\t\t\t\t\tcase 'attribute':\n\t\t\t\t\tcase 'extends': break;\n\n\t\t\t\t\tcase 'row': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'SmartTags': break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]==='CustomDocumentProperties') {\n\t\t\t\tif(Rn[0].substr(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, Rn, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = {};\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(data.map(_chr).join(\"\"), opts);\n\t}\n}\n\nfunction write_xlml(wb, opts) { }\n\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\tvar l = 28, m;\n\tm = __lpstr(o, l);\n\tl += 4 + __readUInt32LE(o,l);\n\tv.UserType = m;\n\n\t/* [MS-OLEDS] 2.3.1 ClipboardFormatOrAnsiString */\n\tm = __readUInt32LE(o,l); l+= 4;\n\tswitch(m) {\n\t\tcase 0x00000000: break;\n\t\tcase 0xffffffff: case 0xfffffffe: l+=4; break;\n\t\tdefault:\n\t\t\tif(m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\t\t\tl += m;\n\t}\n\n\tm = __lpstr(o, l); l += m.length === 0 ? 0 : 5 + m.length; v.Reserved1 = m;\n\n\tif((m = __readUInt32LE(o,l)) !== 0x71b2e9f4) return v;\n\tthrow \"Unsupported Unicode Extension\";\n}\n\n/* 2.4.58 Continue logic */\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu_decrypt) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu_decrypt(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\twhile(next != null && next.n === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tbufs.push(blob.slice(blob.l+4,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = bconcat(bufs);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(!p.XF) return;\n\ttry {\n\t\tvar fmtid = p.XF.ifmt||0;\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:date1904||false});\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn {v:val, ixfe:ixfe, t:t};\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = {opts:{}};\n\tvar Sheets = {};\n\tvar out = {};\n\tvar Directory = {};\n\tvar found_sheet = false;\n\tvar range = {};\n\tvar last_formula = null;\n\tvar sst = [];\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell, cc, cmnt, rng, rngC, rngR;\n\tvar shared_formulae = {};\n\tvar array_formulae = []; /* TODO: something more clever */\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType) return;\n\t\tline.s = {};\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line);\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(range.s) {\n\t\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\t}\n\t\tif(range.e) {\n\t\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\t}\n\t\tif(options.sheetRows && lastcell.r >= options.sheetRows) cell_valid = false;\n\t\telse out[last_cell] = line;\n\t};\n\tvar opts = {\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: shared_formulae, // shared formulae by address\n\t\tarrayf: array_formulae, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\twtf: false\n\t};\n\tif(options.password) opts.password = options.password;\n\tvar mergecells = [];\n\tvar objects = [];\n\tvar supbooks = [[]]; // 1-indexed, will hold extern names\n\tvar sbc = 0, sbci = 0, sbcli = 0;\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2)), y;\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType) throw \"rt mismatch\";\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val;\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\n\t\t\t/* BIFF5 overrides */\n\t\t\tif(opts.biff === 5 || opts.biff === 2) switch(Rn) {\n\t\t\t\tcase 'Lbl': Rn = 'Label'; break;\n\t\t\t}\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904': wb.opts.Date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(opts.WTF) console.error(val);\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.Type !== 0) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tif(val === 0x5212) val = 1200;\n\t\t\t\t\telse if(val === 0x8001) val = 1252;\n\t\t\t\t\topts.codepage = val;\n\t\t\t\t\tset_cp(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'RefreshAll': wb.opts.RefreshAll = val; break;\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': /* if(val) console.error(\"Unsupported ELFs\"); */ break;\n\t\t\t\tcase 'MTRSettings': {\n\t\t\t\t\tif(val[0] && val[1]) throw \"Unsupported threads: \" + val;\n\t\t\t\t} break; // TODO: actually support threads\n\t\t\t\tcase 'CalcCount': wb.opts.CalcCount = val; break;\n\t\t\t\tcase 'CalcDelta': wb.opts.CalcDelta = val; break;\n\t\t\t\tcase 'CalcIter': wb.opts.CalcIter = val; break;\n\t\t\t\tcase 'CalcMode': wb.opts.CalcMode = val; break;\n\t\t\t\tcase 'CalcPrecision': wb.opts.CalcPrecision = val; break;\n\t\t\t\tcase 'CalcSaveRecalc': wb.opts.CalcSaveRecalc = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool': break; // TODO\n\t\t\t\tcase 'XF': XFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook': supbooks[++sbc] = [val]; sbci = 0; break;\n\t\t\t\tcase 'ExternName': supbooks[sbc][++sbci] = val; break;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl': supbooks[0][++sbcli] = val; break;\n\t\t\t\tcase 'ExternSheet': supbooks[sbc] = supbooks[sbc].concat(val); sbci += val.length; break;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tout[\"!range\"] = range;\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(mergecells.length > 0) out[\"!merges\"] = mergecells;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = {};\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff !== 8);\n\t\t\t\t\telse if(val.BIFFVer === 0x0500) opts.biff = 5;\n\t\t\t\t\telse if(val.BIFFVer === 0x0002) opts.biff = 2;\n\t\t\t\t\telse if(val.BIFFVer === 0x0007) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = {};\n\t\t\t\t\tif(opts.biff === 2) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tmergecells = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t} break;\n\t\t\t\tcase 'Number': case 'BIFF2NUM': {\n\t\t\t\t\ttemp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:'n'};\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t};\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'};\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= {ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'};\n\t\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tswitch(val.val) {\n\t\t\t\t\t\tcase 'String': last_formula = val; break;\n\t\t\t\t\t\tcase 'Array Formula': throw \"Array Formula unsupported\";\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\ttemp_val = {v:val.val, ixfe:val.cell.ixfe, t:val.tt};\n\t\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\t\tif(options.cellFormula) temp_val.f = \"=\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\t\t\tlast_formula = val;\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) {\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = {v:last_formula.val, ixfe:last_formula.cell.ixfe, t:'s'};\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) temp_val.f = \"=\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarray_formulae.push(val);\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\t//if(options.cellFormula) out[last_cell].f = stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\tshared_formulae[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\t//temp_val={v:sst[val.isst].t, ixfe:val.ixfe, t:'s'};\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\t/* Some writers erroneously write Label */\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tSSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': mergecells = mergecells.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC)\n\t\t\t\t\t\t\tif(out[encode_cell({c:rngC,r:rngR})])\n\t\t\t\t\t\t\t\tout[encode_cell({c:rngC,r:rngR})].l = val[1];\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC)\n\t\t\t\t\t\t\tif(out[encode_cell({c:rngC,r:rngR})])\n\t\t\t\t\t\t\t\tout[encode_cell({c:rngC,r:rngR})].l.tooltip = val[1];\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) break;\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'NameCmt': break;\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'Setup': break; // TODO\n\t\t\t\tcase 'DefColWidth': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'ColInfo': break; // TODO\n\t\t\t\tcase 'Row': break; // TODO\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'MulBlank': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Blank': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DefaultRowHeight': case 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break; // TODO\n\t\t\t\tcase 'Theme': break; // TODO\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': case 'BuiltInFnGroupCount':\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'Window2': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd':\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\tcase 'ImData': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub':\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'RightMargin': case 'LeftMargin': case 'TopMargin': case 'BottomMargin':\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks':\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'ExternCount': break;\n\t\t\t\tcase 'RString': break;\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\tvar sheetnamesraw = opts.biff === 2 ? ['Sheet1'] : Object.keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tvar sheetnames = sheetnamesraw.slice();\n\twb.Directory=sheetnamesraw;\n\twb.SheetNames=sheetnamesraw;\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\treturn wb;\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nvar CompObj, Summary, Workbook;\nif(cfb.find) {\n\tCompObj = cfb.find('!CompObj');\n\tSummary = cfb.find('!SummaryInformation');\n\tWorkbook = cfb.find('/Workbook');\n} else {\n\tprep_blob(cfb, 0);\n\tWorkbook = {content: cfb};\n}\n\nif(!Workbook) Workbook = cfb.find('/Book');\nvar CompObjP, SummaryP, WorkbookP;\n\nif(CompObj) CompObjP = parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = {};\nelse {\n\tif(Workbook) WorkbookP = parse_workbook(Workbook.content, options, !!Workbook.find);\n\telse throw new Error(\"Cannot find Workbook stream\");\n}\n\nif(cfb.find) parse_props(cfb);\n\nvar props = {};\nfor(var y in cfb.Summary) props[y] = cfb.Summary[y];\nfor(y in cfb.DocSummary) props[y] = cfb.DocSummary[y];\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\nWorkbookP.CompObjP = CompObjP;\nreturn WorkbookP;\n}\n\n/* TODO: WTF */\nfunction parse_props(cfb) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = cfb.find('!DocumentSummaryInformation');\n\tif(DSI) try { cfb.DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI); } catch(e) {}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = cfb.find('!SummaryInformation');\n\tif(SI) try { cfb.Summary = parse_PropertySetStream(SI, SummaryPIDSI); } catch(e) {}\n}\n\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n\t0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n\t0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n\t0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n\t0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n\t0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n\t0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n\t0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n\t0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n\t0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n\t0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n\t0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n\t0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n\t0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n\t0x0014: { n:\"BrtPCDIMissing\", f:parsenoop },\n\t0x0015: { n:\"BrtPCDINumber\", f:parsenoop },\n\t0x0016: { n:\"BrtPCDIBoolean\", f:parsenoop },\n\t0x0017: { n:\"BrtPCDIError\", f:parsenoop },\n\t0x0018: { n:\"BrtPCDIString\", f:parsenoop },\n\t0x0019: { n:\"BrtPCDIDatetime\", f:parsenoop },\n\t0x001A: { n:\"BrtPCDIIndex\", f:parsenoop },\n\t0x001B: { n:\"BrtPCDIAMissing\", f:parsenoop },\n\t0x001C: { n:\"BrtPCDIANumber\", f:parsenoop },\n\t0x001D: { n:\"BrtPCDIABoolean\", f:parsenoop },\n\t0x001E: { n:\"BrtPCDIAError\", f:parsenoop },\n\t0x001F: { n:\"BrtPCDIAString\", f:parsenoop },\n\t0x0020: { n:\"BrtPCDIADatetime\", f:parsenoop },\n\t0x0021: { n:\"BrtPCRRecord\", f:parsenoop },\n\t0x0022: { n:\"BrtPCRRecordDt\", f:parsenoop },\n\t0x0023: { n:\"BrtFRTBegin\", f:parsenoop },\n\t0x0024: { n:\"BrtFRTEnd\", f:parsenoop },\n\t0x0025: { n:\"BrtACBegin\", f:parsenoop },\n\t0x0026: { n:\"BrtACEnd\", f:parsenoop },\n\t0x0027: { n:\"BrtName\", f:parsenoop },\n\t0x0028: { n:\"BrtIndexRowBlock\", f:parsenoop },\n\t0x002A: { n:\"BrtIndexBlock\", f:parsenoop },\n\t0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n\t0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n\t0x002D: { n:\"BrtFill\", f:parsenoop },\n\t0x002E: { n:\"BrtBorder\", f:parsenoop },\n\t0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n\t0x0030: { n:\"BrtStyle\", f:parsenoop },\n\t0x0031: { n:\"BrtCellMeta\", f:parsenoop },\n\t0x0032: { n:\"BrtValueMeta\", f:parsenoop },\n\t0x0033: { n:\"BrtMdb\", f:parsenoop },\n\t0x0034: { n:\"BrtBeginFmd\", f:parsenoop },\n\t0x0035: { n:\"BrtEndFmd\", f:parsenoop },\n\t0x0036: { n:\"BrtBeginMdx\", f:parsenoop },\n\t0x0037: { n:\"BrtEndMdx\", f:parsenoop },\n\t0x0038: { n:\"BrtBeginMdxTuple\", f:parsenoop },\n\t0x0039: { n:\"BrtEndMdxTuple\", f:parsenoop },\n\t0x003A: { n:\"BrtMdxMbrIstr\", f:parsenoop },\n\t0x003B: { n:\"BrtStr\", f:parsenoop },\n\t0x003C: { n:\"BrtColInfo\", f:parsenoop },\n\t0x003E: { n:\"BrtCellRString\", f:parsenoop },\n\t0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n\t0x0040: { n:\"BrtDVal\", f:parsenoop },\n\t0x0041: { n:\"BrtSxvcellNum\", f:parsenoop },\n\t0x0042: { n:\"BrtSxvcellStr\", f:parsenoop },\n\t0x0043: { n:\"BrtSxvcellBool\", f:parsenoop },\n\t0x0044: { n:\"BrtSxvcellErr\", f:parsenoop },\n\t0x0045: { n:\"BrtSxvcellDate\", f:parsenoop },\n\t0x0046: { n:\"BrtSxvcellNil\", f:parsenoop },\n\t0x0080: { n:\"BrtFileVersion\", f:parsenoop },\n\t0x0081: { n:\"BrtBeginSheet\", f:parsenoop },\n\t0x0082: { n:\"BrtEndSheet\", f:parsenoop },\n\t0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n\t0x0084: { n:\"BrtEndBook\", f:parsenoop },\n\t0x0085: { n:\"BrtBeginWsViews\", f:parsenoop },\n\t0x0086: { n:\"BrtEndWsViews\", f:parsenoop },\n\t0x0087: { n:\"BrtBeginBookViews\", f:parsenoop },\n\t0x0088: { n:\"BrtEndBookViews\", f:parsenoop },\n\t0x0089: { n:\"BrtBeginWsView\", f:parsenoop },\n\t0x008A: { n:\"BrtEndWsView\", f:parsenoop },\n\t0x008B: { n:\"BrtBeginCsViews\", f:parsenoop },\n\t0x008C: { n:\"BrtEndCsViews\", f:parsenoop },\n\t0x008D: { n:\"BrtBeginCsView\", f:parsenoop },\n\t0x008E: { n:\"BrtEndCsView\", f:parsenoop },\n\t0x008F: { n:\"BrtBeginBundleShs\", f:parsenoop },\n\t0x0090: { n:\"BrtEndBundleShs\", f:parsenoop },\n\t0x0091: { n:\"BrtBeginSheetData\", f:parsenoop },\n\t0x0092: { n:\"BrtEndSheetData\", f:parsenoop },\n\t0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n\t0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n\t0x0097: { n:\"BrtPane\", f:parsenoop },\n\t0x0098: { n:\"BrtSel\", f:parsenoop },\n\t0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n\t0x009A: { n:\"BrtWbFactoid\", f:parsenoop },\n\t0x009B: { n:\"BrtFileRecover\", f:parsenoop },\n\t0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n\t0x009D: { n:\"BrtCalcProp\", f:parsenoop },\n\t0x009E: { n:\"BrtBookView\", f:parsenoop },\n\t0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n\t0x00A0: { n:\"BrtEndSst\", f:parsenoop },\n\t0x00A1: { n:\"BrtBeginAFilter\", f:parsenoop },\n\t0x00A2: { n:\"BrtEndAFilter\", f:parsenoop },\n\t0x00A3: { n:\"BrtBeginFilterColumn\", f:parsenoop },\n\t0x00A4: { n:\"BrtEndFilterColumn\", f:parsenoop },\n\t0x00A5: { n:\"BrtBeginFilters\", f:parsenoop },\n\t0x00A6: { n:\"BrtEndFilters\", f:parsenoop },\n\t0x00A7: { n:\"BrtFilter\", f:parsenoop },\n\t0x00A8: { n:\"BrtColorFilter\", f:parsenoop },\n\t0x00A9: { n:\"BrtIconFilter\", f:parsenoop },\n\t0x00AA: { n:\"BrtTop10Filter\", f:parsenoop },\n\t0x00AB: { n:\"BrtDynamicFilter\", f:parsenoop },\n\t0x00AC: { n:\"BrtBeginCustomFilters\", f:parsenoop },\n\t0x00AD: { n:\"BrtEndCustomFilters\", f:parsenoop },\n\t0x00AE: { n:\"BrtCustomFilter\", f:parsenoop },\n\t0x00AF: { n:\"BrtAFilterDateGroupItem\", f:parsenoop },\n\t0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n\t0x00B1: { n:\"BrtBeginMergeCells\", f:parsenoop },\n\t0x00B2: { n:\"BrtEndMergeCells\", f:parsenoop },\n\t0x00B3: { n:\"BrtBeginPivotCacheDef\", f:parsenoop },\n\t0x00B4: { n:\"BrtEndPivotCacheDef\", f:parsenoop },\n\t0x00B5: { n:\"BrtBeginPCDFields\", f:parsenoop },\n\t0x00B6: { n:\"BrtEndPCDFields\", f:parsenoop },\n\t0x00B7: { n:\"BrtBeginPCDField\", f:parsenoop },\n\t0x00B8: { n:\"BrtEndPCDField\", f:parsenoop },\n\t0x00B9: { n:\"BrtBeginPCDSource\", f:parsenoop },\n\t0x00BA: { n:\"BrtEndPCDSource\", f:parsenoop },\n\t0x00BB: { n:\"BrtBeginPCDSRange\", f:parsenoop },\n\t0x00BC: { n:\"BrtEndPCDSRange\", f:parsenoop },\n\t0x00BD: { n:\"BrtBeginPCDFAtbl\", f:parsenoop },\n\t0x00BE: { n:\"BrtEndPCDFAtbl\", f:parsenoop },\n\t0x00BF: { n:\"BrtBeginPCDIRun\", f:parsenoop },\n\t0x00C0: { n:\"BrtEndPCDIRun\", f:parsenoop },\n\t0x00C1: { n:\"BrtBeginPivotCacheRecords\", f:parsenoop },\n\t0x00C2: { n:\"BrtEndPivotCacheRecords\", f:parsenoop },\n\t0x00C3: { n:\"BrtBeginPCDHierarchies\", f:parsenoop },\n\t0x00C4: { n:\"BrtEndPCDHierarchies\", f:parsenoop },\n\t0x00C5: { n:\"BrtBeginPCDHierarchy\", f:parsenoop },\n\t0x00C6: { n:\"BrtEndPCDHierarchy\", f:parsenoop },\n\t0x00C7: { n:\"BrtBeginPCDHFieldsUsage\", f:parsenoop },\n\t0x00C8: { n:\"BrtEndPCDHFieldsUsage\", f:parsenoop },\n\t0x00C9: { n:\"BrtBeginExtConnection\", f:parsenoop },\n\t0x00CA: { n:\"BrtEndExtConnection\", f:parsenoop },\n\t0x00CB: { n:\"BrtBeginECDbProps\", f:parsenoop },\n\t0x00CC: { n:\"BrtEndECDbProps\", f:parsenoop },\n\t0x00CD: { n:\"BrtBeginECOlapProps\", f:parsenoop },\n\t0x00CE: { n:\"BrtEndECOlapProps\", f:parsenoop },\n\t0x00CF: { n:\"BrtBeginPCDSConsol\", f:parsenoop },\n\t0x00D0: { n:\"BrtEndPCDSConsol\", f:parsenoop },\n\t0x00D1: { n:\"BrtBeginPCDSCPages\", f:parsenoop },\n\t0x00D2: { n:\"BrtEndPCDSCPages\", f:parsenoop },\n\t0x00D3: { n:\"BrtBeginPCDSCPage\", f:parsenoop },\n\t0x00D4: { n:\"BrtEndPCDSCPage\", f:parsenoop },\n\t0x00D5: { n:\"BrtBeginPCDSCPItem\", f:parsenoop },\n\t0x00D6: { n:\"BrtEndPCDSCPItem\", f:parsenoop },\n\t0x00D7: { n:\"BrtBeginPCDSCSets\", f:parsenoop },\n\t0x00D8: { n:\"BrtEndPCDSCSets\", f:parsenoop },\n\t0x00D9: { n:\"BrtBeginPCDSCSet\", f:parsenoop },\n\t0x00DA: { n:\"BrtEndPCDSCSet\", f:parsenoop },\n\t0x00DB: { n:\"BrtBeginPCDFGroup\", f:parsenoop },\n\t0x00DC: { n:\"BrtEndPCDFGroup\", f:parsenoop },\n\t0x00DD: { n:\"BrtBeginPCDFGItems\", f:parsenoop },\n\t0x00DE: { n:\"BrtEndPCDFGItems\", f:parsenoop },\n\t0x00DF: { n:\"BrtBeginPCDFGRange\", f:parsenoop },\n\t0x00E0: { n:\"BrtEndPCDFGRange\", f:parsenoop },\n\t0x00E1: { n:\"BrtBeginPCDFGDiscrete\", f:parsenoop },\n\t0x00E2: { n:\"BrtEndPCDFGDiscrete\", f:parsenoop },\n\t0x00E3: { n:\"BrtBeginPCDSDTupleCache\", f:parsenoop },\n\t0x00E4: { n:\"BrtEndPCDSDTupleCache\", f:parsenoop },\n\t0x00E5: { n:\"BrtBeginPCDSDTCEntries\", f:parsenoop },\n\t0x00E6: { n:\"BrtEndPCDSDTCEntries\", f:parsenoop },\n\t0x00E7: { n:\"BrtBeginPCDSDTCEMembers\", f:parsenoop },\n\t0x00E8: { n:\"BrtEndPCDSDTCEMembers\", f:parsenoop },\n\t0x00E9: { n:\"BrtBeginPCDSDTCEMember\", f:parsenoop },\n\t0x00EA: { n:\"BrtEndPCDSDTCEMember\", f:parsenoop },\n\t0x00EB: { n:\"BrtBeginPCDSDTCQueries\", f:parsenoop },\n\t0x00EC: { n:\"BrtEndPCDSDTCQueries\", f:parsenoop },\n\t0x00ED: { n:\"BrtBeginPCDSDTCQuery\", f:parsenoop },\n\t0x00EE: { n:\"BrtEndPCDSDTCQuery\", f:parsenoop },\n\t0x00EF: { n:\"BrtBeginPCDSDTCSets\", f:parsenoop },\n\t0x00F0: { n:\"BrtEndPCDSDTCSets\", f:parsenoop },\n\t0x00F1: { n:\"BrtBeginPCDSDTCSet\", f:parsenoop },\n\t0x00F2: { n:\"BrtEndPCDSDTCSet\", f:parsenoop },\n\t0x00F3: { n:\"BrtBeginPCDCalcItems\", f:parsenoop },\n\t0x00F4: { n:\"BrtEndPCDCalcItems\", f:parsenoop },\n\t0x00F5: { n:\"BrtBeginPCDCalcItem\", f:parsenoop },\n\t0x00F6: { n:\"BrtEndPCDCalcItem\", f:parsenoop },\n\t0x00F7: { n:\"BrtBeginPRule\", f:parsenoop },\n\t0x00F8: { n:\"BrtEndPRule\", f:parsenoop },\n\t0x00F9: { n:\"BrtBeginPRFilters\", f:parsenoop },\n\t0x00FA: { n:\"BrtEndPRFilters\", f:parsenoop },\n\t0x00FB: { n:\"BrtBeginPRFilter\", f:parsenoop },\n\t0x00FC: { n:\"BrtEndPRFilter\", f:parsenoop },\n\t0x00FD: { n:\"BrtBeginPNames\", f:parsenoop },\n\t0x00FE: { n:\"BrtEndPNames\", f:parsenoop },\n\t0x00FF: { n:\"BrtBeginPName\", f:parsenoop },\n\t0x0100: { n:\"BrtEndPName\", f:parsenoop },\n\t0x0101: { n:\"BrtBeginPNPairs\", f:parsenoop },\n\t0x0102: { n:\"BrtEndPNPairs\", f:parsenoop },\n\t0x0103: { n:\"BrtBeginPNPair\", f:parsenoop },\n\t0x0104: { n:\"BrtEndPNPair\", f:parsenoop },\n\t0x0105: { n:\"BrtBeginECWebProps\", f:parsenoop },\n\t0x0106: { n:\"BrtEndECWebProps\", f:parsenoop },\n\t0x0107: { n:\"BrtBeginEcWpTables\", f:parsenoop },\n\t0x0108: { n:\"BrtEndECWPTables\", f:parsenoop },\n\t0x0109: { n:\"BrtBeginECParams\", f:parsenoop },\n\t0x010A: { n:\"BrtEndECParams\", f:parsenoop },\n\t0x010B: { n:\"BrtBeginECParam\", f:parsenoop },\n\t0x010C: { n:\"BrtEndECParam\", f:parsenoop },\n\t0x010D: { n:\"BrtBeginPCDKPIs\", f:parsenoop },\n\t0x010E: { n:\"BrtEndPCDKPIs\", f:parsenoop },\n\t0x010F: { n:\"BrtBeginPCDKPI\", f:parsenoop },\n\t0x0110: { n:\"BrtEndPCDKPI\", f:parsenoop },\n\t0x0111: { n:\"BrtBeginDims\", f:parsenoop },\n\t0x0112: { n:\"BrtEndDims\", f:parsenoop },\n\t0x0113: { n:\"BrtBeginDim\", f:parsenoop },\n\t0x0114: { n:\"BrtEndDim\", f:parsenoop },\n\t0x0115: { n:\"BrtIndexPartEnd\", f:parsenoop },\n\t0x0116: { n:\"BrtBeginStyleSheet\", f:parsenoop },\n\t0x0117: { n:\"BrtEndStyleSheet\", f:parsenoop },\n\t0x0118: { n:\"BrtBeginSXView\", f:parsenoop },\n\t0x0119: { n:\"BrtEndSXVI\", f:parsenoop },\n\t0x011A: { n:\"BrtBeginSXVI\", f:parsenoop },\n\t0x011B: { n:\"BrtBeginSXVIs\", f:parsenoop },\n\t0x011C: { n:\"BrtEndSXVIs\", f:parsenoop },\n\t0x011D: { n:\"BrtBeginSXVD\", f:parsenoop },\n\t0x011E: { n:\"BrtEndSXVD\", f:parsenoop },\n\t0x011F: { n:\"BrtBeginSXVDs\", f:parsenoop },\n\t0x0120: { n:\"BrtEndSXVDs\", f:parsenoop },\n\t0x0121: { n:\"BrtBeginSXPI\", f:parsenoop },\n\t0x0122: { n:\"BrtEndSXPI\", f:parsenoop },\n\t0x0123: { n:\"BrtBeginSXPIs\", f:parsenoop },\n\t0x0124: { n:\"BrtEndSXPIs\", f:parsenoop },\n\t0x0125: { n:\"BrtBeginSXDI\", f:parsenoop },\n\t0x0126: { n:\"BrtEndSXDI\", f:parsenoop },\n\t0x0127: { n:\"BrtBeginSXDIs\", f:parsenoop },\n\t0x0128: { n:\"BrtEndSXDIs\", f:parsenoop },\n\t0x0129: { n:\"BrtBeginSXLI\", f:parsenoop },\n\t0x012A: { n:\"BrtEndSXLI\", f:parsenoop },\n\t0x012B: { n:\"BrtBeginSXLIRws\", f:parsenoop },\n\t0x012C: { n:\"BrtEndSXLIRws\", f:parsenoop },\n\t0x012D: { n:\"BrtBeginSXLICols\", f:parsenoop },\n\t0x012E: { n:\"BrtEndSXLICols\", f:parsenoop },\n\t0x012F: { n:\"BrtBeginSXFormat\", f:parsenoop },\n\t0x0130: { n:\"BrtEndSXFormat\", f:parsenoop },\n\t0x0131: { n:\"BrtBeginSXFormats\", f:parsenoop },\n\t0x0132: { n:\"BrtEndSxFormats\", f:parsenoop },\n\t0x0133: { n:\"BrtBeginSxSelect\", f:parsenoop },\n\t0x0134: { n:\"BrtEndSxSelect\", f:parsenoop },\n\t0x0135: { n:\"BrtBeginISXVDRws\", f:parsenoop },\n\t0x0136: { n:\"BrtEndISXVDRws\", f:parsenoop },\n\t0x0137: { n:\"BrtBeginISXVDCols\", f:parsenoop },\n\t0x0138: { n:\"BrtEndISXVDCols\", f:parsenoop },\n\t0x0139: { n:\"BrtEndSXLocation\", f:parsenoop },\n\t0x013A: { n:\"BrtBeginSXLocation\", f:parsenoop },\n\t0x013B: { n:\"BrtEndSXView\", f:parsenoop },\n\t0x013C: { n:\"BrtBeginSXTHs\", f:parsenoop },\n\t0x013D: { n:\"BrtEndSXTHs\", f:parsenoop },\n\t0x013E: { n:\"BrtBeginSXTH\", f:parsenoop },\n\t0x013F: { n:\"BrtEndSXTH\", f:parsenoop },\n\t0x0140: { n:\"BrtBeginISXTHRws\", f:parsenoop },\n\t0x0141: { n:\"BrtEndISXTHRws\", f:parsenoop },\n\t0x0142: { n:\"BrtBeginISXTHCols\", f:parsenoop },\n\t0x0143: { n:\"BrtEndISXTHCols\", f:parsenoop },\n\t0x0144: { n:\"BrtBeginSXTDMPS\", f:parsenoop },\n\t0x0145: { n:\"BrtEndSXTDMPs\", f:parsenoop },\n\t0x0146: { n:\"BrtBeginSXTDMP\", f:parsenoop },\n\t0x0147: { n:\"BrtEndSXTDMP\", f:parsenoop },\n\t0x0148: { n:\"BrtBeginSXTHItems\", f:parsenoop },\n\t0x0149: { n:\"BrtEndSXTHItems\", f:parsenoop },\n\t0x014A: { n:\"BrtBeginSXTHItem\", f:parsenoop },\n\t0x014B: { n:\"BrtEndSXTHItem\", f:parsenoop },\n\t0x014C: { n:\"BrtBeginMetadata\", f:parsenoop },\n\t0x014D: { n:\"BrtEndMetadata\", f:parsenoop },\n\t0x014E: { n:\"BrtBeginEsmdtinfo\", f:parsenoop },\n\t0x014F: { n:\"BrtMdtinfo\", f:parsenoop },\n\t0x0150: { n:\"BrtEndEsmdtinfo\", f:parsenoop },\n\t0x0151: { n:\"BrtBeginEsmdb\", f:parsenoop },\n\t0x0152: { n:\"BrtEndEsmdb\", f:parsenoop },\n\t0x0153: { n:\"BrtBeginEsfmd\", f:parsenoop },\n\t0x0154: { n:\"BrtEndEsfmd\", f:parsenoop },\n\t0x0155: { n:\"BrtBeginSingleCells\", f:parsenoop },\n\t0x0156: { n:\"BrtEndSingleCells\", f:parsenoop },\n\t0x0157: { n:\"BrtBeginList\", f:parsenoop },\n\t0x0158: { n:\"BrtEndList\", f:parsenoop },\n\t0x0159: { n:\"BrtBeginListCols\", f:parsenoop },\n\t0x015A: { n:\"BrtEndListCols\", f:parsenoop },\n\t0x015B: { n:\"BrtBeginListCol\", f:parsenoop },\n\t0x015C: { n:\"BrtEndListCol\", f:parsenoop },\n\t0x015D: { n:\"BrtBeginListXmlCPr\", f:parsenoop },\n\t0x015E: { n:\"BrtEndListXmlCPr\", f:parsenoop },\n\t0x015F: { n:\"BrtListCCFmla\", f:parsenoop },\n\t0x0160: { n:\"BrtListTrFmla\", f:parsenoop },\n\t0x0161: { n:\"BrtBeginExternals\", f:parsenoop },\n\t0x0162: { n:\"BrtEndExternals\", f:parsenoop },\n\t0x0163: { n:\"BrtSupBookSrc\", f:parsenoop },\n\t0x0165: { n:\"BrtSupSelf\", f:parsenoop },\n\t0x0166: { n:\"BrtSupSame\", f:parsenoop },\n\t0x0167: { n:\"BrtSupTabs\", f:parsenoop },\n\t0x0168: { n:\"BrtBeginSupBook\", f:parsenoop },\n\t0x0169: { n:\"BrtPlaceholderName\", f:parsenoop },\n\t0x016A: { n:\"BrtExternSheet\", f:parsenoop },\n\t0x016B: { n:\"BrtExternTableStart\", f:parsenoop },\n\t0x016C: { n:\"BrtExternTableEnd\", f:parsenoop },\n\t0x016E: { n:\"BrtExternRowHdr\", f:parsenoop },\n\t0x016F: { n:\"BrtExternCellBlank\", f:parsenoop },\n\t0x0170: { n:\"BrtExternCellReal\", f:parsenoop },\n\t0x0171: { n:\"BrtExternCellBool\", f:parsenoop },\n\t0x0172: { n:\"BrtExternCellError\", f:parsenoop },\n\t0x0173: { n:\"BrtExternCellString\", f:parsenoop },\n\t0x0174: { n:\"BrtBeginEsmdx\", f:parsenoop },\n\t0x0175: { n:\"BrtEndEsmdx\", f:parsenoop },\n\t0x0176: { n:\"BrtBeginMdxSet\", f:parsenoop },\n\t0x0177: { n:\"BrtEndMdxSet\", f:parsenoop },\n\t0x0178: { n:\"BrtBeginMdxMbrProp\", f:parsenoop },\n\t0x0179: { n:\"BrtEndMdxMbrProp\", f:parsenoop },\n\t0x017A: { n:\"BrtBeginMdxKPI\", f:parsenoop },\n\t0x017B: { n:\"BrtEndMdxKPI\", f:parsenoop },\n\t0x017C: { n:\"BrtBeginEsstr\", f:parsenoop },\n\t0x017D: { n:\"BrtEndEsstr\", f:parsenoop },\n\t0x017E: { n:\"BrtBeginPRFItem\", f:parsenoop },\n\t0x017F: { n:\"BrtEndPRFItem\", f:parsenoop },\n\t0x0180: { n:\"BrtBeginPivotCacheIDs\", f:parsenoop },\n\t0x0181: { n:\"BrtEndPivotCacheIDs\", f:parsenoop },\n\t0x0182: { n:\"BrtBeginPivotCacheID\", f:parsenoop },\n\t0x0183: { n:\"BrtEndPivotCacheID\", f:parsenoop },\n\t0x0184: { n:\"BrtBeginISXVIs\", f:parsenoop },\n\t0x0185: { n:\"BrtEndISXVIs\", f:parsenoop },\n\t0x0186: { n:\"BrtBeginColInfos\", f:parsenoop },\n\t0x0187: { n:\"BrtEndColInfos\", f:parsenoop },\n\t0x0188: { n:\"BrtBeginRwBrk\", f:parsenoop },\n\t0x0189: { n:\"BrtEndRwBrk\", f:parsenoop },\n\t0x018A: { n:\"BrtBeginColBrk\", f:parsenoop },\n\t0x018B: { n:\"BrtEndColBrk\", f:parsenoop },\n\t0x018C: { n:\"BrtBrk\", f:parsenoop },\n\t0x018D: { n:\"BrtUserBookView\", f:parsenoop },\n\t0x018E: { n:\"BrtInfo\", f:parsenoop },\n\t0x018F: { n:\"BrtCUsr\", f:parsenoop },\n\t0x0190: { n:\"BrtUsr\", f:parsenoop },\n\t0x0191: { n:\"BrtBeginUsers\", f:parsenoop },\n\t0x0193: { n:\"BrtEOF\", f:parsenoop },\n\t0x0194: { n:\"BrtUCR\", f:parsenoop },\n\t0x0195: { n:\"BrtRRInsDel\", f:parsenoop },\n\t0x0196: { n:\"BrtRREndInsDel\", f:parsenoop },\n\t0x0197: { n:\"BrtRRMove\", f:parsenoop },\n\t0x0198: { n:\"BrtRREndMove\", f:parsenoop },\n\t0x0199: { n:\"BrtRRChgCell\", f:parsenoop },\n\t0x019A: { n:\"BrtRREndChgCell\", f:parsenoop },\n\t0x019B: { n:\"BrtRRHeader\", f:parsenoop },\n\t0x019C: { n:\"BrtRRUserView\", f:parsenoop },\n\t0x019D: { n:\"BrtRRRenSheet\", f:parsenoop },\n\t0x019E: { n:\"BrtRRInsertSh\", f:parsenoop },\n\t0x019F: { n:\"BrtRRDefName\", f:parsenoop },\n\t0x01A0: { n:\"BrtRRNote\", f:parsenoop },\n\t0x01A1: { n:\"BrtRRConflict\", f:parsenoop },\n\t0x01A2: { n:\"BrtRRTQSIF\", f:parsenoop },\n\t0x01A3: { n:\"BrtRRFormat\", f:parsenoop },\n\t0x01A4: { n:\"BrtRREndFormat\", f:parsenoop },\n\t0x01A5: { n:\"BrtRRAutoFmt\", f:parsenoop },\n\t0x01A6: { n:\"BrtBeginUserShViews\", f:parsenoop },\n\t0x01A7: { n:\"BrtBeginUserShView\", f:parsenoop },\n\t0x01A8: { n:\"BrtEndUserShView\", f:parsenoop },\n\t0x01A9: { n:\"BrtEndUserShViews\", f:parsenoop },\n\t0x01AA: { n:\"BrtArrFmla\", f:parsenoop },\n\t0x01AB: { n:\"BrtShrFmla\", f:parsenoop },\n\t0x01AC: { n:\"BrtTable\", f:parsenoop },\n\t0x01AD: { n:\"BrtBeginExtConnections\", f:parsenoop },\n\t0x01AE: { n:\"BrtEndExtConnections\", f:parsenoop },\n\t0x01AF: { n:\"BrtBeginPCDCalcMems\", f:parsenoop },\n\t0x01B0: { n:\"BrtEndPCDCalcMems\", f:parsenoop },\n\t0x01B1: { n:\"BrtBeginPCDCalcMem\", f:parsenoop },\n\t0x01B2: { n:\"BrtEndPCDCalcMem\", f:parsenoop },\n\t0x01B3: { n:\"BrtBeginPCDHGLevels\", f:parsenoop },\n\t0x01B4: { n:\"BrtEndPCDHGLevels\", f:parsenoop },\n\t0x01B5: { n:\"BrtBeginPCDHGLevel\", f:parsenoop },\n\t0x01B6: { n:\"BrtEndPCDHGLevel\", f:parsenoop },\n\t0x01B7: { n:\"BrtBeginPCDHGLGroups\", f:parsenoop },\n\t0x01B8: { n:\"BrtEndPCDHGLGroups\", f:parsenoop },\n\t0x01B9: { n:\"BrtBeginPCDHGLGroup\", f:parsenoop },\n\t0x01BA: { n:\"BrtEndPCDHGLGroup\", f:parsenoop },\n\t0x01BB: { n:\"BrtBeginPCDHGLGMembers\", f:parsenoop },\n\t0x01BC: { n:\"BrtEndPCDHGLGMembers\", f:parsenoop },\n\t0x01BD: { n:\"BrtBeginPCDHGLGMember\", f:parsenoop },\n\t0x01BE: { n:\"BrtEndPCDHGLGMember\", f:parsenoop },\n\t0x01BF: { n:\"BrtBeginQSI\", f:parsenoop },\n\t0x01C0: { n:\"BrtEndQSI\", f:parsenoop },\n\t0x01C1: { n:\"BrtBeginQSIR\", f:parsenoop },\n\t0x01C2: { n:\"BrtEndQSIR\", f:parsenoop },\n\t0x01C3: { n:\"BrtBeginDeletedNames\", f:parsenoop },\n\t0x01C4: { n:\"BrtEndDeletedNames\", f:parsenoop },\n\t0x01C5: { n:\"BrtBeginDeletedName\", f:parsenoop },\n\t0x01C6: { n:\"BrtEndDeletedName\", f:parsenoop },\n\t0x01C7: { n:\"BrtBeginQSIFs\", f:parsenoop },\n\t0x01C8: { n:\"BrtEndQSIFs\", f:parsenoop },\n\t0x01C9: { n:\"BrtBeginQSIF\", f:parsenoop },\n\t0x01CA: { n:\"BrtEndQSIF\", f:parsenoop },\n\t0x01CB: { n:\"BrtBeginAutoSortScope\", f:parsenoop },\n\t0x01CC: { n:\"BrtEndAutoSortScope\", f:parsenoop },\n\t0x01CD: { n:\"BrtBeginConditionalFormatting\", f:parsenoop },\n\t0x01CE: { n:\"BrtEndConditionalFormatting\", f:parsenoop },\n\t0x01CF: { n:\"BrtBeginCFRule\", f:parsenoop },\n\t0x01D0: { n:\"BrtEndCFRule\", f:parsenoop },\n\t0x01D1: { n:\"BrtBeginIconSet\", f:parsenoop },\n\t0x01D2: { n:\"BrtEndIconSet\", f:parsenoop },\n\t0x01D3: { n:\"BrtBeginDatabar\", f:parsenoop },\n\t0x01D4: { n:\"BrtEndDatabar\", f:parsenoop },\n\t0x01D5: { n:\"BrtBeginColorScale\", f:parsenoop },\n\t0x01D6: { n:\"BrtEndColorScale\", f:parsenoop },\n\t0x01D7: { n:\"BrtCFVO\", f:parsenoop },\n\t0x01D8: { n:\"BrtExternValueMeta\", f:parsenoop },\n\t0x01D9: { n:\"BrtBeginColorPalette\", f:parsenoop },\n\t0x01DA: { n:\"BrtEndColorPalette\", f:parsenoop },\n\t0x01DB: { n:\"BrtIndexedColor\", f:parsenoop },\n\t0x01DC: { n:\"BrtMargins\", f:parsenoop },\n\t0x01DD: { n:\"BrtPrintOptions\", f:parsenoop },\n\t0x01DE: { n:\"BrtPageSetup\", f:parsenoop },\n\t0x01DF: { n:\"BrtBeginHeaderFooter\", f:parsenoop },\n\t0x01E0: { n:\"BrtEndHeaderFooter\", f:parsenoop },\n\t0x01E1: { n:\"BrtBeginSXCrtFormat\", f:parsenoop },\n\t0x01E2: { n:\"BrtEndSXCrtFormat\", f:parsenoop },\n\t0x01E3: { n:\"BrtBeginSXCrtFormats\", f:parsenoop },\n\t0x01E4: { n:\"BrtEndSXCrtFormats\", f:parsenoop },\n\t0x01E5: { n:\"BrtWsFmtInfo\", f:parsenoop },\n\t0x01E6: { n:\"BrtBeginMgs\", f:parsenoop },\n\t0x01E7: { n:\"BrtEndMGs\", f:parsenoop },\n\t0x01E8: { n:\"BrtBeginMGMaps\", f:parsenoop },\n\t0x01E9: { n:\"BrtEndMGMaps\", f:parsenoop },\n\t0x01EA: { n:\"BrtBeginMG\", f:parsenoop },\n\t0x01EB: { n:\"BrtEndMG\", f:parsenoop },\n\t0x01EC: { n:\"BrtBeginMap\", f:parsenoop },\n\t0x01ED: { n:\"BrtEndMap\", f:parsenoop },\n\t0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n\t0x01EF: { n:\"BrtBeginDCon\", f:parsenoop },\n\t0x01F0: { n:\"BrtEndDCon\", f:parsenoop },\n\t0x01F1: { n:\"BrtBeginDRefs\", f:parsenoop },\n\t0x01F2: { n:\"BrtEndDRefs\", f:parsenoop },\n\t0x01F3: { n:\"BrtDRef\", f:parsenoop },\n\t0x01F4: { n:\"BrtBeginScenMan\", f:parsenoop },\n\t0x01F5: { n:\"BrtEndScenMan\", f:parsenoop },\n\t0x01F6: { n:\"BrtBeginSct\", f:parsenoop },\n\t0x01F7: { n:\"BrtEndSct\", f:parsenoop },\n\t0x01F8: { n:\"BrtSlc\", f:parsenoop },\n\t0x01F9: { n:\"BrtBeginDXFs\", f:parsenoop },\n\t0x01FA: { n:\"BrtEndDXFs\", f:parsenoop },\n\t0x01FB: { n:\"BrtDXF\", f:parsenoop },\n\t0x01FC: { n:\"BrtBeginTableStyles\", f:parsenoop },\n\t0x01FD: { n:\"BrtEndTableStyles\", f:parsenoop },\n\t0x01FE: { n:\"BrtBeginTableStyle\", f:parsenoop },\n\t0x01FF: { n:\"BrtEndTableStyle\", f:parsenoop },\n\t0x0200: { n:\"BrtTableStyleElement\", f:parsenoop },\n\t0x0201: { n:\"BrtTableStyleClient\", f:parsenoop },\n\t0x0202: { n:\"BrtBeginVolDeps\", f:parsenoop },\n\t0x0203: { n:\"BrtEndVolDeps\", f:parsenoop },\n\t0x0204: { n:\"BrtBeginVolType\", f:parsenoop },\n\t0x0205: { n:\"BrtEndVolType\", f:parsenoop },\n\t0x0206: { n:\"BrtBeginVolMain\", f:parsenoop },\n\t0x0207: { n:\"BrtEndVolMain\", f:parsenoop },\n\t0x0208: { n:\"BrtBeginVolTopic\", f:parsenoop },\n\t0x0209: { n:\"BrtEndVolTopic\", f:parsenoop },\n\t0x020A: { n:\"BrtVolSubtopic\", f:parsenoop },\n\t0x020B: { n:\"BrtVolRef\", f:parsenoop },\n\t0x020C: { n:\"BrtVolNum\", f:parsenoop },\n\t0x020D: { n:\"BrtVolErr\", f:parsenoop },\n\t0x020E: { n:\"BrtVolStr\", f:parsenoop },\n\t0x020F: { n:\"BrtVolBool\", f:parsenoop },\n\t0x0210: { n:\"BrtBeginCalcChain$\", f:parsenoop },\n\t0x0211: { n:\"BrtEndCalcChain$\", f:parsenoop },\n\t0x0212: { n:\"BrtBeginSortState\", f:parsenoop },\n\t0x0213: { n:\"BrtEndSortState\", f:parsenoop },\n\t0x0214: { n:\"BrtBeginSortCond\", f:parsenoop },\n\t0x0215: { n:\"BrtEndSortCond\", f:parsenoop },\n\t0x0216: { n:\"BrtBookProtection\", f:parsenoop },\n\t0x0217: { n:\"BrtSheetProtection\", f:parsenoop },\n\t0x0218: { n:\"BrtRangeProtection\", f:parsenoop },\n\t0x0219: { n:\"BrtPhoneticInfo\", f:parsenoop },\n\t0x021A: { n:\"BrtBeginECTxtWiz\", f:parsenoop },\n\t0x021B: { n:\"BrtEndECTxtWiz\", f:parsenoop },\n\t0x021C: { n:\"BrtBeginECTWFldInfoLst\", f:parsenoop },\n\t0x021D: { n:\"BrtEndECTWFldInfoLst\", f:parsenoop },\n\t0x021E: { n:\"BrtBeginECTwFldInfo\", f:parsenoop },\n\t0x0224: { n:\"BrtFileSharing\", f:parsenoop },\n\t0x0225: { n:\"BrtOleSize\", f:parsenoop },\n\t0x0226: { n:\"BrtDrawing\", f:parsenoop },\n\t0x0227: { n:\"BrtLegacyDrawing\", f:parsenoop },\n\t0x0228: { n:\"BrtLegacyDrawingHF\", f:parsenoop },\n\t0x0229: { n:\"BrtWebOpt\", f:parsenoop },\n\t0x022A: { n:\"BrtBeginWebPubItems\", f:parsenoop },\n\t0x022B: { n:\"BrtEndWebPubItems\", f:parsenoop },\n\t0x022C: { n:\"BrtBeginWebPubItem\", f:parsenoop },\n\t0x022D: { n:\"BrtEndWebPubItem\", f:parsenoop },\n\t0x022E: { n:\"BrtBeginSXCondFmt\", f:parsenoop },\n\t0x022F: { n:\"BrtEndSXCondFmt\", f:parsenoop },\n\t0x0230: { n:\"BrtBeginSXCondFmts\", f:parsenoop },\n\t0x0231: { n:\"BrtEndSXCondFmts\", f:parsenoop },\n\t0x0232: { n:\"BrtBkHim\", f:parsenoop },\n\t0x0234: { n:\"BrtColor\", f:parsenoop },\n\t0x0235: { n:\"BrtBeginIndexedColors\", f:parsenoop },\n\t0x0236: { n:\"BrtEndIndexedColors\", f:parsenoop },\n\t0x0239: { n:\"BrtBeginMRUColors\", f:parsenoop },\n\t0x023A: { n:\"BrtEndMRUColors\", f:parsenoop },\n\t0x023C: { n:\"BrtMRUColor\", f:parsenoop },\n\t0x023D: { n:\"BrtBeginDVals\", f:parsenoop },\n\t0x023E: { n:\"BrtEndDVals\", f:parsenoop },\n\t0x0241: { n:\"BrtSupNameStart\", f:parsenoop },\n\t0x0242: { n:\"BrtSupNameValueStart\", f:parsenoop },\n\t0x0243: { n:\"BrtSupNameValueEnd\", f:parsenoop },\n\t0x0244: { n:\"BrtSupNameNum\", f:parsenoop },\n\t0x0245: { n:\"BrtSupNameErr\", f:parsenoop },\n\t0x0246: { n:\"BrtSupNameSt\", f:parsenoop },\n\t0x0247: { n:\"BrtSupNameNil\", f:parsenoop },\n\t0x0248: { n:\"BrtSupNameBool\", f:parsenoop },\n\t0x0249: { n:\"BrtSupNameFmla\", f:parsenoop },\n\t0x024A: { n:\"BrtSupNameBits\", f:parsenoop },\n\t0x024B: { n:\"BrtSupNameEnd\", f:parsenoop },\n\t0x024C: { n:\"BrtEndSupBook\", f:parsenoop },\n\t0x024D: { n:\"BrtCellSmartTagProperty\", f:parsenoop },\n\t0x024E: { n:\"BrtBeginCellSmartTag\", f:parsenoop },\n\t0x024F: { n:\"BrtEndCellSmartTag\", f:parsenoop },\n\t0x0250: { n:\"BrtBeginCellSmartTags\", f:parsenoop },\n\t0x0251: { n:\"BrtEndCellSmartTags\", f:parsenoop },\n\t0x0252: { n:\"BrtBeginSmartTags\", f:parsenoop },\n\t0x0253: { n:\"BrtEndSmartTags\", f:parsenoop },\n\t0x0254: { n:\"BrtSmartTagType\", f:parsenoop },\n\t0x0255: { n:\"BrtBeginSmartTagTypes\", f:parsenoop },\n\t0x0256: { n:\"BrtEndSmartTagTypes\", f:parsenoop },\n\t0x0257: { n:\"BrtBeginSXFilters\", f:parsenoop },\n\t0x0258: { n:\"BrtEndSXFilters\", f:parsenoop },\n\t0x0259: { n:\"BrtBeginSXFILTER\", f:parsenoop },\n\t0x025A: { n:\"BrtEndSXFilter\", f:parsenoop },\n\t0x025B: { n:\"BrtBeginFills\", f:parsenoop },\n\t0x025C: { n:\"BrtEndFills\", f:parsenoop },\n\t0x025D: { n:\"BrtBeginCellWatches\", f:parsenoop },\n\t0x025E: { n:\"BrtEndCellWatches\", f:parsenoop },\n\t0x025F: { n:\"BrtCellWatch\", f:parsenoop },\n\t0x0260: { n:\"BrtBeginCRErrs\", f:parsenoop },\n\t0x0261: { n:\"BrtEndCRErrs\", f:parsenoop },\n\t0x0262: { n:\"BrtCrashRecErr\", f:parsenoop },\n\t0x0263: { n:\"BrtBeginFonts\", f:parsenoop },\n\t0x0264: { n:\"BrtEndFonts\", f:parsenoop },\n\t0x0265: { n:\"BrtBeginBorders\", f:parsenoop },\n\t0x0266: { n:\"BrtEndBorders\", f:parsenoop },\n\t0x0267: { n:\"BrtBeginFmts\", f:parsenoop },\n\t0x0268: { n:\"BrtEndFmts\", f:parsenoop },\n\t0x0269: { n:\"BrtBeginCellXFs\", f:parsenoop },\n\t0x026A: { n:\"BrtEndCellXFs\", f:parsenoop },\n\t0x026B: { n:\"BrtBeginStyles\", f:parsenoop },\n\t0x026C: { n:\"BrtEndStyles\", f:parsenoop },\n\t0x0271: { n:\"BrtBigName\", f:parsenoop },\n\t0x0272: { n:\"BrtBeginCellStyleXFs\", f:parsenoop },\n\t0x0273: { n:\"BrtEndCellStyleXFs\", f:parsenoop },\n\t0x0274: { n:\"BrtBeginComments\", f:parsenoop },\n\t0x0275: { n:\"BrtEndComments\", f:parsenoop },\n\t0x0276: { n:\"BrtBeginCommentAuthors\", f:parsenoop },\n\t0x0277: { n:\"BrtEndCommentAuthors\", f:parsenoop },\n\t0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n\t0x0279: { n:\"BrtBeginCommentList\", f:parsenoop },\n\t0x027A: { n:\"BrtEndCommentList\", f:parsenoop },\n\t0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n\t0x027C: { n:\"BrtEndComment\", f:parsenoop },\n\t0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n\t0x027E: { n:\"BrtBeginOleObjects\", f:parsenoop },\n\t0x027F: { n:\"BrtOleObject\", f:parsenoop },\n\t0x0280: { n:\"BrtEndOleObjects\", f:parsenoop },\n\t0x0281: { n:\"BrtBeginSxrules\", f:parsenoop },\n\t0x0282: { n:\"BrtEndSxRules\", f:parsenoop },\n\t0x0283: { n:\"BrtBeginActiveXControls\", f:parsenoop },\n\t0x0284: { n:\"BrtActiveX\", f:parsenoop },\n\t0x0285: { n:\"BrtEndActiveXControls\", f:parsenoop },\n\t0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\", f:parsenoop },\n\t0x0288: { n:\"BrtBeginCellIgnoreECs\", f:parsenoop },\n\t0x0289: { n:\"BrtCellIgnoreEC\", f:parsenoop },\n\t0x028A: { n:\"BrtEndCellIgnoreECs\", f:parsenoop },\n\t0x028B: { n:\"BrtCsProp\", f:parsenoop },\n\t0x028C: { n:\"BrtCsPageSetup\", f:parsenoop },\n\t0x028D: { n:\"BrtBeginUserCsViews\", f:parsenoop },\n\t0x028E: { n:\"BrtEndUserCsViews\", f:parsenoop },\n\t0x028F: { n:\"BrtBeginUserCsView\", f:parsenoop },\n\t0x0290: { n:\"BrtEndUserCsView\", f:parsenoop },\n\t0x0291: { n:\"BrtBeginPcdSFCIEntries\", f:parsenoop },\n\t0x0292: { n:\"BrtEndPCDSFCIEntries\", f:parsenoop },\n\t0x0293: { n:\"BrtPCDSFCIEntry\", f:parsenoop },\n\t0x0294: { n:\"BrtBeginListParts\", f:parsenoop },\n\t0x0295: { n:\"BrtListPart\", f:parsenoop },\n\t0x0296: { n:\"BrtEndListParts\", f:parsenoop },\n\t0x0297: { n:\"BrtSheetCalcProp\", f:parsenoop },\n\t0x0298: { n:\"BrtBeginFnGroup\", f:parsenoop },\n\t0x0299: { n:\"BrtFnGroup\", f:parsenoop },\n\t0x029A: { n:\"BrtEndFnGroup\", f:parsenoop },\n\t0x029B: { n:\"BrtSupAddin\", f:parsenoop },\n\t0x029C: { n:\"BrtSXTDMPOrder\", f:parsenoop },\n\t0x029D: { n:\"BrtCsProtection\", f:parsenoop },\n\t0x029F: { n:\"BrtBeginWsSortMap\", f:parsenoop },\n\t0x02A0: { n:\"BrtEndWsSortMap\", f:parsenoop },\n\t0x02A1: { n:\"BrtBeginRRSort\", f:parsenoop },\n\t0x02A2: { n:\"BrtEndRRSort\", f:parsenoop },\n\t0x02A3: { n:\"BrtRRSortItem\", f:parsenoop },\n\t0x02A4: { n:\"BrtFileSharingIso\", f:parsenoop },\n\t0x02A5: { n:\"BrtBookProtectionIso\", f:parsenoop },\n\t0x02A6: { n:\"BrtSheetProtectionIso\", f:parsenoop },\n\t0x02A7: { n:\"BrtCsProtectionIso\", f:parsenoop },\n\t0x02A8: { n:\"BrtRangeProtectionIso\", f:parsenoop },\n\t0x0400: { n:\"BrtRwDescent\", f:parsenoop },\n\t0x0401: { n:\"BrtKnownFonts\", f:parsenoop },\n\t0x0402: { n:\"BrtBeginSXTupleSet\", f:parsenoop },\n\t0x0403: { n:\"BrtEndSXTupleSet\", f:parsenoop },\n\t0x0404: { n:\"BrtBeginSXTupleSetHeader\", f:parsenoop },\n\t0x0405: { n:\"BrtEndSXTupleSetHeader\", f:parsenoop },\n\t0x0406: { n:\"BrtSXTupleSetHeaderItem\", f:parsenoop },\n\t0x0407: { n:\"BrtBeginSXTupleSetData\", f:parsenoop },\n\t0x0408: { n:\"BrtEndSXTupleSetData\", f:parsenoop },\n\t0x0409: { n:\"BrtBeginSXTupleSetRow\", f:parsenoop },\n\t0x040A: { n:\"BrtEndSXTupleSetRow\", f:parsenoop },\n\t0x040B: { n:\"BrtSXTupleSetRowItem\", f:parsenoop },\n\t0x040C: { n:\"BrtNameExt\", f:parsenoop },\n\t0x040D: { n:\"BrtPCDH14\", f:parsenoop },\n\t0x040E: { n:\"BrtBeginPCDCalcMem14\", f:parsenoop },\n\t0x040F: { n:\"BrtEndPCDCalcMem14\", f:parsenoop },\n\t0x0410: { n:\"BrtSXTH14\", f:parsenoop },\n\t0x0411: { n:\"BrtBeginSparklineGroup\", f:parsenoop },\n\t0x0412: { n:\"BrtEndSparklineGroup\", f:parsenoop },\n\t0x0413: { n:\"BrtSparkline\", f:parsenoop },\n\t0x0414: { n:\"BrtSXDI14\", f:parsenoop },\n\t0x0415: { n:\"BrtWsFmtInfoEx14\", f:parsenoop },\n\t0x0416: { n:\"BrtBeginConditionalFormatting14\", f:parsenoop },\n\t0x0417: { n:\"BrtEndConditionalFormatting14\", f:parsenoop },\n\t0x0418: { n:\"BrtBeginCFRule14\", f:parsenoop },\n\t0x0419: { n:\"BrtEndCFRule14\", f:parsenoop },\n\t0x041A: { n:\"BrtCFVO14\", f:parsenoop },\n\t0x041B: { n:\"BrtBeginDatabar14\", f:parsenoop },\n\t0x041C: { n:\"BrtBeginIconSet14\", f:parsenoop },\n\t0x041D: { n:\"BrtDVal14\", f:parsenoop },\n\t0x041E: { n:\"BrtBeginDVals14\", f:parsenoop },\n\t0x041F: { n:\"BrtColor14\", f:parsenoop },\n\t0x0420: { n:\"BrtBeginSparklines\", f:parsenoop },\n\t0x0421: { n:\"BrtEndSparklines\", f:parsenoop },\n\t0x0422: { n:\"BrtBeginSparklineGroups\", f:parsenoop },\n\t0x0423: { n:\"BrtEndSparklineGroups\", f:parsenoop },\n\t0x0425: { n:\"BrtSXVD14\", f:parsenoop },\n\t0x0426: { n:\"BrtBeginSxview14\", f:parsenoop },\n\t0x0427: { n:\"BrtEndSxview14\", f:parsenoop },\n\t0x042A: { n:\"BrtBeginPCD14\", f:parsenoop },\n\t0x042B: { n:\"BrtEndPCD14\", f:parsenoop },\n\t0x042C: { n:\"BrtBeginExtConn14\", f:parsenoop },\n\t0x042D: { n:\"BrtEndExtConn14\", f:parsenoop },\n\t0x042E: { n:\"BrtBeginSlicerCacheIDs\", f:parsenoop },\n\t0x042F: { n:\"BrtEndSlicerCacheIDs\", f:parsenoop },\n\t0x0430: { n:\"BrtBeginSlicerCacheID\", f:parsenoop },\n\t0x0431: { n:\"BrtEndSlicerCacheID\", f:parsenoop },\n\t0x0433: { n:\"BrtBeginSlicerCache\", f:parsenoop },\n\t0x0434: { n:\"BrtEndSlicerCache\", f:parsenoop },\n\t0x0435: { n:\"BrtBeginSlicerCacheDef\", f:parsenoop },\n\t0x0436: { n:\"BrtEndSlicerCacheDef\", f:parsenoop },\n\t0x0437: { n:\"BrtBeginSlicersEx\", f:parsenoop },\n\t0x0438: { n:\"BrtEndSlicersEx\", f:parsenoop },\n\t0x0439: { n:\"BrtBeginSlicerEx\", f:parsenoop },\n\t0x043A: { n:\"BrtEndSlicerEx\", f:parsenoop },\n\t0x043B: { n:\"BrtBeginSlicer\", f:parsenoop },\n\t0x043C: { n:\"BrtEndSlicer\", f:parsenoop },\n\t0x043D: { n:\"BrtSlicerCachePivotTables\", f:parsenoop },\n\t0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\", f:parsenoop },\n\t0x043F: { n:\"BrtEndSlicerCacheOlapImpl\", f:parsenoop },\n\t0x0440: { n:\"BrtBeginSlicerCacheLevelsData\", f:parsenoop },\n\t0x0441: { n:\"BrtEndSlicerCacheLevelsData\", f:parsenoop },\n\t0x0442: { n:\"BrtBeginSlicerCacheLevelData\", f:parsenoop },\n\t0x0443: { n:\"BrtEndSlicerCacheLevelData\", f:parsenoop },\n\t0x0444: { n:\"BrtBeginSlicerCacheSiRanges\", f:parsenoop },\n\t0x0445: { n:\"BrtEndSlicerCacheSiRanges\", f:parsenoop },\n\t0x0446: { n:\"BrtBeginSlicerCacheSiRange\", f:parsenoop },\n\t0x0447: { n:\"BrtEndSlicerCacheSiRange\", f:parsenoop },\n\t0x0448: { n:\"BrtSlicerCacheOlapItem\", f:parsenoop },\n\t0x0449: { n:\"BrtBeginSlicerCacheSelections\", f:parsenoop },\n\t0x044A: { n:\"BrtSlicerCacheSelection\", f:parsenoop },\n\t0x044B: { n:\"BrtEndSlicerCacheSelections\", f:parsenoop },\n\t0x044C: { n:\"BrtBeginSlicerCacheNative\", f:parsenoop },\n\t0x044D: { n:\"BrtEndSlicerCacheNative\", f:parsenoop },\n\t0x044E: { n:\"BrtSlicerCacheNativeItem\", f:parsenoop },\n\t0x044F: { n:\"BrtRangeProtection14\", f:parsenoop },\n\t0x0450: { n:\"BrtRangeProtectionIso14\", f:parsenoop },\n\t0x0451: { n:\"BrtCellIgnoreEC14\", f:parsenoop },\n\t0x0457: { n:\"BrtList14\", f:parsenoop },\n\t0x0458: { n:\"BrtCFIcon\", f:parsenoop },\n\t0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\", f:parsenoop },\n\t0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\", f:parsenoop },\n\t0x045B: { n:\"BrtBeginSlicers\", f:parsenoop },\n\t0x045C: { n:\"BrtEndSlicers\", f:parsenoop },\n\t0x045D: { n:\"BrtWbProp14\", f:parsenoop },\n\t0x045E: { n:\"BrtBeginSXEdit\", f:parsenoop },\n\t0x045F: { n:\"BrtEndSXEdit\", f:parsenoop },\n\t0x0460: { n:\"BrtBeginSXEdits\", f:parsenoop },\n\t0x0461: { n:\"BrtEndSXEdits\", f:parsenoop },\n\t0x0462: { n:\"BrtBeginSXChange\", f:parsenoop },\n\t0x0463: { n:\"BrtEndSXChange\", f:parsenoop },\n\t0x0464: { n:\"BrtBeginSXChanges\", f:parsenoop },\n\t0x0465: { n:\"BrtEndSXChanges\", f:parsenoop },\n\t0x0466: { n:\"BrtSXTupleItems\", f:parsenoop },\n\t0x0468: { n:\"BrtBeginSlicerStyle\", f:parsenoop },\n\t0x0469: { n:\"BrtEndSlicerStyle\", f:parsenoop },\n\t0x046A: { n:\"BrtSlicerStyleElement\", f:parsenoop },\n\t0x046B: { n:\"BrtBeginStyleSheetExt14\", f:parsenoop },\n\t0x046C: { n:\"BrtEndStyleSheetExt14\", f:parsenoop },\n\t0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\", f:parsenoop },\n\t0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\", f:parsenoop },\n\t0x046F: { n:\"BrtBeginConditionalFormattings\", f:parsenoop },\n\t0x0470: { n:\"BrtEndConditionalFormattings\", f:parsenoop },\n\t0x0471: { n:\"BrtBeginPCDCalcMemExt\", f:parsenoop },\n\t0x0472: { n:\"BrtEndPCDCalcMemExt\", f:parsenoop },\n\t0x0473: { n:\"BrtBeginPCDCalcMemsExt\", f:parsenoop },\n\t0x0474: { n:\"BrtEndPCDCalcMemsExt\", f:parsenoop },\n\t0x0475: { n:\"BrtPCDField14\", f:parsenoop },\n\t0x0476: { n:\"BrtBeginSlicerStyles\", f:parsenoop },\n\t0x0477: { n:\"BrtEndSlicerStyles\", f:parsenoop },\n\t0x0478: { n:\"BrtBeginSlicerStyleElements\", f:parsenoop },\n\t0x0479: { n:\"BrtEndSlicerStyleElements\", f:parsenoop },\n\t0x047A: { n:\"BrtCFRuleExt\", f:parsenoop },\n\t0x047B: { n:\"BrtBeginSXCondFmt14\", f:parsenoop },\n\t0x047C: { n:\"BrtEndSXCondFmt14\", f:parsenoop },\n\t0x047D: { n:\"BrtBeginSXCondFmts14\", f:parsenoop },\n\t0x047E: { n:\"BrtEndSXCondFmts14\", f:parsenoop },\n\t0x0480: { n:\"BrtBeginSortCond14\", f:parsenoop },\n\t0x0481: { n:\"BrtEndSortCond14\", f:parsenoop },\n\t0x0482: { n:\"BrtEndDVals14\", f:parsenoop },\n\t0x0483: { n:\"BrtEndIconSet14\", f:parsenoop },\n\t0x0484: { n:\"BrtEndDatabar14\", f:parsenoop },\n\t0x0485: { n:\"BrtBeginColorScale14\", f:parsenoop },\n\t0x0486: { n:\"BrtEndColorScale14\", f:parsenoop },\n\t0x0487: { n:\"BrtBeginSxrules14\", f:parsenoop },\n\t0x0488: { n:\"BrtEndSxrules14\", f:parsenoop },\n\t0x0489: { n:\"BrtBeginPRule14\", f:parsenoop },\n\t0x048A: { n:\"BrtEndPRule14\", f:parsenoop },\n\t0x048B: { n:\"BrtBeginPRFilters14\", f:parsenoop },\n\t0x048C: { n:\"BrtEndPRFilters14\", f:parsenoop },\n\t0x048D: { n:\"BrtBeginPRFilter14\", f:parsenoop },\n\t0x048E: { n:\"BrtEndPRFilter14\", f:parsenoop },\n\t0x048F: { n:\"BrtBeginPRFItem14\", f:parsenoop },\n\t0x0490: { n:\"BrtEndPRFItem14\", f:parsenoop },\n\t0x0491: { n:\"BrtBeginCellIgnoreECs14\", f:parsenoop },\n\t0x0492: { n:\"BrtEndCellIgnoreECs14\", f:parsenoop },\n\t0x0493: { n:\"BrtDxf14\", f:parsenoop },\n\t0x0494: { n:\"BrtBeginDxF14s\", f:parsenoop },\n\t0x0495: { n:\"BrtEndDxf14s\", f:parsenoop },\n\t0x0499: { n:\"BrtFilter14\", f:parsenoop },\n\t0x049A: { n:\"BrtBeginCustomFilters14\", f:parsenoop },\n\t0x049C: { n:\"BrtCustomFilter14\", f:parsenoop },\n\t0x049D: { n:\"BrtIconFilter14\", f:parsenoop },\n\t0x049E: { n:\"BrtPivotCacheConnectionName\", f:parsenoop },\n\t0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\", f:parsenoop },\n\t0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\", f:parsenoop },\n\t0x0802: { n:\"BrtDecoupledPivotCacheID\", f:parsenoop },\n\t0x0803: { n:\"BrtBeginPivotTableRefs\", f:parsenoop },\n\t0x0804: { n:\"BrtEndPivotTableRefs\", f:parsenoop },\n\t0x0805: { n:\"BrtPivotTableRef\", f:parsenoop },\n\t0x0806: { n:\"BrtSlicerCacheBookPivotTables\", f:parsenoop },\n\t0x0807: { n:\"BrtBeginSxvcells\", f:parsenoop },\n\t0x0808: { n:\"BrtEndSxvcells\", f:parsenoop },\n\t0x0809: { n:\"BrtBeginSxRow\", f:parsenoop },\n\t0x080A: { n:\"BrtEndSxRow\", f:parsenoop },\n\t0x080C: { n:\"BrtPcdCalcMem15\", f:parsenoop },\n\t0x0813: { n:\"BrtQsi15\", f:parsenoop },\n\t0x0814: { n:\"BrtBeginWebExtensions\", f:parsenoop },\n\t0x0815: { n:\"BrtEndWebExtensions\", f:parsenoop },\n\t0x0816: { n:\"BrtWebExtension\", f:parsenoop },\n\t0x0817: { n:\"BrtAbsPath15\", f:parsenoop },\n\t0x0818: { n:\"BrtBeginPivotTableUISettings\", f:parsenoop },\n\t0x0819: { n:\"BrtEndPivotTableUISettings\", f:parsenoop },\n\t0x081B: { n:\"BrtTableSlicerCacheIDs\", f:parsenoop },\n\t0x081C: { n:\"BrtTableSlicerCacheID\", f:parsenoop },\n\t0x081D: { n:\"BrtBeginTableSlicerCache\", f:parsenoop },\n\t0x081E: { n:\"BrtEndTableSlicerCache\", f:parsenoop },\n\t0x081F: { n:\"BrtSxFilter15\", f:parsenoop },\n\t0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\", f:parsenoop },\n\t0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\", f:parsenoop },\n\t0x0822: { n:\"BrtTimelineCachePivotCacheID\", f:parsenoop },\n\t0x0823: { n:\"BrtBeginTimelineCacheIDs\", f:parsenoop },\n\t0x0824: { n:\"BrtEndTimelineCacheIDs\", f:parsenoop },\n\t0x0825: { n:\"BrtBeginTimelineCacheID\", f:parsenoop },\n\t0x0826: { n:\"BrtEndTimelineCacheID\", f:parsenoop },\n\t0x0827: { n:\"BrtBeginTimelinesEx\", f:parsenoop },\n\t0x0828: { n:\"BrtEndTimelinesEx\", f:parsenoop },\n\t0x0829: { n:\"BrtBeginTimelineEx\", f:parsenoop },\n\t0x082A: { n:\"BrtEndTimelineEx\", f:parsenoop },\n\t0x082B: { n:\"BrtWorkBookPr15\", f:parsenoop },\n\t0x082C: { n:\"BrtPCDH15\", f:parsenoop },\n\t0x082D: { n:\"BrtBeginTimelineStyle\", f:parsenoop },\n\t0x082E: { n:\"BrtEndTimelineStyle\", f:parsenoop },\n\t0x082F: { n:\"BrtTimelineStyleElement\", f:parsenoop },\n\t0x0830: { n:\"BrtBeginTimelineStylesheetExt15\", f:parsenoop },\n\t0x0831: { n:\"BrtEndTimelineStylesheetExt15\", f:parsenoop },\n\t0x0832: { n:\"BrtBeginTimelineStyles\", f:parsenoop },\n\t0x0833: { n:\"BrtEndTimelineStyles\", f:parsenoop },\n\t0x0834: { n:\"BrtBeginTimelineStyleElements\", f:parsenoop },\n\t0x0835: { n:\"BrtEndTimelineStyleElements\", f:parsenoop },\n\t0x0836: { n:\"BrtDxf15\", f:parsenoop },\n\t0x0837: { n:\"BrtBeginDxfs15\", f:parsenoop },\n\t0x0838: { n:\"brtEndDxfs15\", f:parsenoop },\n\t0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\", f:parsenoop },\n\t0x083A: { n:\"BrtBeginItemUniqueNames\", f:parsenoop },\n\t0x083B: { n:\"BrtEndItemUniqueNames\", f:parsenoop },\n\t0x083C: { n:\"BrtItemUniqueName\", f:parsenoop },\n\t0x083D: { n:\"BrtBeginExtConn15\", f:parsenoop },\n\t0x083E: { n:\"BrtEndExtConn15\", f:parsenoop },\n\t0x083F: { n:\"BrtBeginOledbPr15\", f:parsenoop },\n\t0x0840: { n:\"BrtEndOledbPr15\", f:parsenoop },\n\t0x0841: { n:\"BrtBeginDataFeedPr15\", f:parsenoop },\n\t0x0842: { n:\"BrtEndDataFeedPr15\", f:parsenoop },\n\t0x0843: { n:\"BrtTextPr15\", f:parsenoop },\n\t0x0844: { n:\"BrtRangePr15\", f:parsenoop },\n\t0x0845: { n:\"BrtDbCommand15\", f:parsenoop },\n\t0x0846: { n:\"BrtBeginDbTables15\", f:parsenoop },\n\t0x0847: { n:\"BrtEndDbTables15\", f:parsenoop },\n\t0x0848: { n:\"BrtDbTable15\", f:parsenoop },\n\t0x0849: { n:\"BrtBeginDataModel\", f:parsenoop },\n\t0x084A: { n:\"BrtEndDataModel\", f:parsenoop },\n\t0x084B: { n:\"BrtBeginModelTables\", f:parsenoop },\n\t0x084C: { n:\"BrtEndModelTables\", f:parsenoop },\n\t0x084D: { n:\"BrtModelTable\", f:parsenoop },\n\t0x084E: { n:\"BrtBeginModelRelationships\", f:parsenoop },\n\t0x084F: { n:\"BrtEndModelRelationships\", f:parsenoop },\n\t0x0850: { n:\"BrtModelRelationship\", f:parsenoop },\n\t0x0851: { n:\"BrtBeginECTxtWiz15\", f:parsenoop },\n\t0x0852: { n:\"BrtEndECTxtWiz15\", f:parsenoop },\n\t0x0853: { n:\"BrtBeginECTWFldInfoLst15\", f:parsenoop },\n\t0x0854: { n:\"BrtEndECTWFldInfoLst15\", f:parsenoop },\n\t0x0855: { n:\"BrtBeginECTWFldInfo15\", f:parsenoop },\n\t0x0856: { n:\"BrtFieldListActiveItem\", f:parsenoop },\n\t0x0857: { n:\"BrtPivotCacheIdVersion\", f:parsenoop },\n\t0x0858: { n:\"BrtSXDI15\", f:parsenoop },\n\t0xFFFF: { n:\"\", f:parsenoop }\n};\n\nvar evert_RE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n\t0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n\t0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n\t0x0006: { n:\"Formula\", f:parse_Formula },\n\t0x0009: { n:'BOF', f:parse_BOF },\n\t0x000a: { n:'EOF', f:parse_EOF },\n\t0x000c: { n:\"CalcCount\", f:parse_CalcCount },\n\t0x000d: { n:\"CalcMode\", f:parse_CalcMode },\n\t0x000e: { n:\"CalcPrecision\", f:parse_CalcPrecision },\n\t0x000f: { n:\"CalcRefMode\", f:parse_CalcRefMode },\n\t0x0010: { n:\"CalcDelta\", f:parse_CalcDelta },\n\t0x0011: { n:\"CalcIter\", f:parse_CalcIter },\n\t0x0012: { n:\"Protect\", f:parse_Protect },\n\t0x0013: { n:\"Password\", f:parse_Password },\n\t0x0014: { n:\"Header\", f:parse_Header },\n\t0x0015: { n:\"Footer\", f:parse_Footer },\n\t0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n\t0x0018: { n:\"Lbl\", f:parse_Lbl },\n\t0x0019: { n:\"WinProtect\", f:parse_WinProtect },\n\t0x001a: { n:\"VerticalPageBreaks\", f:parse_VerticalPageBreaks },\n\t0x001b: { n:\"HorizontalPageBreaks\", f:parse_HorizontalPageBreaks },\n\t0x001c: { n:\"Note\", f:parse_Note },\n\t0x001d: { n:\"Selection\", f:parse_Selection },\n\t0x0022: { n:\"Date1904\", f:parse_Date1904 },\n\t0x0023: { n:\"ExternName\", f:parse_ExternName },\n\t0x0026: { n:\"LeftMargin\", f:parse_LeftMargin },\n\t0x0027: { n:\"RightMargin\", f:parse_RightMargin },\n\t0x0028: { n:\"TopMargin\", f:parse_TopMargin },\n\t0x0029: { n:\"BottomMargin\", f:parse_BottomMargin },\n\t0x002a: { n:\"PrintRowCol\", f:parse_PrintRowCol },\n\t0x002b: { n:\"PrintGrid\", f:parse_PrintGrid },\n\t0x002f: { n:\"FilePass\", f:parse_FilePass },\n\t0x0031: { n:\"Font\", f:parse_Font },\n\t0x0033: { n:\"PrintSize\", f:parse_PrintSize },\n\t0x003c: { n:\"Continue\", f:parse_Continue },\n\t0x003d: { n:\"Window1\", f:parse_Window1 },\n\t0x0040: { n:\"Backup\", f:parse_Backup },\n\t0x0041: { n:\"Pane\", f:parse_Pane },\n\t0x0042: { n:'CodePage', f:parse_CodePage },\n\t0x004d: { n:\"Pls\", f:parse_Pls },\n\t0x0050: { n:\"DCon\", f:parse_DCon },\n\t0x0051: { n:\"DConRef\", f:parse_DConRef },\n\t0x0052: { n:\"DConName\", f:parse_DConName },\n\t0x0055: { n:\"DefColWidth\", f:parse_DefColWidth },\n\t0x0059: { n:\"XCT\", f:parse_XCT },\n\t0x005a: { n:\"CRN\", f:parse_CRN },\n\t0x005b: { n:\"FileSharing\", f:parse_FileSharing },\n\t0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n\t0x005d: { n:\"Obj\", f:parse_Obj },\n\t0x005e: { n:\"Uncalced\", f:parse_Uncalced },\n\t0x005f: { n:\"CalcSaveRecalc\", f:parse_CalcSaveRecalc },\n\t0x0060: { n:\"Template\", f:parse_Template },\n\t0x0061: { n:\"Intl\", f:parse_Intl },\n\t0x0063: { n:\"ObjProtect\", f:parse_ObjProtect },\n\t0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n\t0x0080: { n:\"Guts\", f:parse_Guts },\n\t0x0081: { n:\"WsBool\", f:parse_WsBool },\n\t0x0082: { n:\"GridSet\", f:parse_GridSet },\n\t0x0083: { n:\"HCenter\", f:parse_HCenter },\n\t0x0084: { n:\"VCenter\", f:parse_VCenter },\n\t0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n\t0x0086: { n:\"WriteProtect\", f:parse_WriteProtect },\n\t0x008c: { n:\"Country\", f:parse_Country },\n\t0x008d: { n:\"HideObj\", f:parse_HideObj },\n\t0x0090: { n:\"Sort\", f:parse_Sort },\n\t0x0092: { n:\"Palette\", f:parse_Palette },\n\t0x0097: { n:\"Sync\", f:parse_Sync },\n\t0x0098: { n:\"LPr\", f:parse_LPr },\n\t0x0099: { n:\"DxGCol\", f:parse_DxGCol },\n\t0x009a: { n:\"FnGroupName\", f:parse_FnGroupName },\n\t0x009b: { n:\"FilterMode\", f:parse_FilterMode },\n\t0x009c: { n:\"BuiltInFnGroupCount\", f:parse_BuiltInFnGroupCount },\n\t0x009d: { n:\"AutoFilterInfo\", f:parse_AutoFilterInfo },\n\t0x009e: { n:\"AutoFilter\", f:parse_AutoFilter },\n\t0x00a0: { n:\"Scl\", f:parse_Scl },\n\t0x00a1: { n:\"Setup\", f:parse_Setup },\n\t0x00ae: { n:\"ScenMan\", f:parse_ScenMan },\n\t0x00af: { n:\"SCENARIO\", f:parse_SCENARIO },\n\t0x00b0: { n:\"SxView\", f:parse_SxView },\n\t0x00b1: { n:\"Sxvd\", f:parse_Sxvd },\n\t0x00b2: { n:\"SXVI\", f:parse_SXVI },\n\t0x00b4: { n:\"SxIvd\", f:parse_SxIvd },\n\t0x00b5: { n:\"SXLI\", f:parse_SXLI },\n\t0x00b6: { n:\"SXPI\", f:parse_SXPI },\n\t0x00b8: { n:\"DocRoute\", f:parse_DocRoute },\n\t0x00b9: { n:\"RecipName\", f:parse_RecipName },\n\t0x00bd: { n:\"MulRk\", f:parse_MulRk },\n\t0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n\t0x00c1: { n:'Mms', f:parse_Mms },\n\t0x00c5: { n:\"SXDI\", f:parse_SXDI },\n\t0x00c6: { n:\"SXDB\", f:parse_SXDB },\n\t0x00c7: { n:\"SXFDB\", f:parse_SXFDB },\n\t0x00c8: { n:\"SXDBB\", f:parse_SXDBB },\n\t0x00c9: { n:\"SXNum\", f:parse_SXNum },\n\t0x00ca: { n:\"SxBool\", f:parse_SxBool },\n\t0x00cb: { n:\"SxErr\", f:parse_SxErr },\n\t0x00cc: { n:\"SXInt\", f:parse_SXInt },\n\t0x00cd: { n:\"SXString\", f:parse_SXString },\n\t0x00ce: { n:\"SXDtr\", f:parse_SXDtr },\n\t0x00cf: { n:\"SxNil\", f:parse_SxNil },\n\t0x00d0: { n:\"SXTbl\", f:parse_SXTbl },\n\t0x00d1: { n:\"SXTBRGIITM\", f:parse_SXTBRGIITM },\n\t0x00d2: { n:\"SxTbpg\", f:parse_SxTbpg },\n\t0x00d3: { n:\"ObProj\", f:parse_ObProj },\n\t0x00d5: { n:\"SXStreamID\", f:parse_SXStreamID },\n\t0x00d7: { n:\"DBCell\", f:parse_DBCell },\n\t0x00d8: { n:\"SXRng\", f:parse_SXRng },\n\t0x00d9: { n:\"SxIsxoper\", f:parse_SxIsxoper },\n\t0x00da: { n:\"BookBool\", f:parse_BookBool },\n\t0x00dc: { n:\"DbOrParamQry\", f:parse_DbOrParamQry },\n\t0x00dd: { n:\"ScenarioProtect\", f:parse_ScenarioProtect },\n\t0x00de: { n:\"OleObjectSize\", f:parse_OleObjectSize },\n\t0x00e0: { n:\"XF\", f:parse_XF },\n\t0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n\t0x00e2: { n:'InterfaceEnd', f:parse_InterfaceEnd },\n\t0x00e3: { n:\"SXVS\", f:parse_SXVS },\n\t0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n\t0x00e9: { n:\"BkHim\", f:parse_BkHim },\n\t0x00eb: { n:\"MsoDrawingGroup\", f:parse_MsoDrawingGroup },\n\t0x00ec: { n:\"MsoDrawing\", f:parse_MsoDrawing },\n\t0x00ed: { n:\"MsoDrawingSelection\", f:parse_MsoDrawingSelection },\n\t0x00ef: { n:\"PhoneticInfo\", f:parse_PhoneticInfo },\n\t0x00f0: { n:\"SxRule\", f:parse_SxRule },\n\t0x00f1: { n:\"SXEx\", f:parse_SXEx },\n\t0x00f2: { n:\"SxFilt\", f:parse_SxFilt },\n\t0x00f4: { n:\"SxDXF\", f:parse_SxDXF },\n\t0x00f5: { n:\"SxItm\", f:parse_SxItm },\n\t0x00f6: { n:\"SxName\", f:parse_SxName },\n\t0x00f7: { n:\"SxSelect\", f:parse_SxSelect },\n\t0x00f8: { n:\"SXPair\", f:parse_SXPair },\n\t0x00f9: { n:\"SxFmla\", f:parse_SxFmla },\n\t0x00fb: { n:\"SxFormat\", f:parse_SxFormat },\n\t0x00fc: { n:\"SST\", f:parse_SST },\n\t0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n\t0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n\t0x0100: { n:\"SXVDEx\", f:parse_SXVDEx },\n\t0x0103: { n:\"SXFormula\", f:parse_SXFormula },\n\t0x0122: { n:\"SXDBEx\", f:parse_SXDBEx },\n\t0x0137: { n:\"RRDInsDel\", f:parse_RRDInsDel },\n\t0x0138: { n:\"RRDHead\", f:parse_RRDHead },\n\t0x013b: { n:\"RRDChgCell\", f:parse_RRDChgCell },\n\t0x013d: { n:\"RRTabId\", f:parse_RRTabId },\n\t0x013e: { n:\"RRDRenSheet\", f:parse_RRDRenSheet },\n\t0x013f: { n:\"RRSort\", f:parse_RRSort },\n\t0x0140: { n:\"RRDMove\", f:parse_RRDMove },\n\t0x014a: { n:\"RRFormat\", f:parse_RRFormat },\n\t0x014b: { n:\"RRAutoFmt\", f:parse_RRAutoFmt },\n\t0x014d: { n:\"RRInsertSh\", f:parse_RRInsertSh },\n\t0x014e: { n:\"RRDMoveBegin\", f:parse_RRDMoveBegin },\n\t0x014f: { n:\"RRDMoveEnd\", f:parse_RRDMoveEnd },\n\t0x0150: { n:\"RRDInsDelBegin\", f:parse_RRDInsDelBegin },\n\t0x0151: { n:\"RRDInsDelEnd\", f:parse_RRDInsDelEnd },\n\t0x0152: { n:\"RRDConflict\", f:parse_RRDConflict },\n\t0x0153: { n:\"RRDDefName\", f:parse_RRDDefName },\n\t0x0154: { n:\"RRDRstEtxp\", f:parse_RRDRstEtxp },\n\t0x015f: { n:\"LRng\", f:parse_LRng },\n\t0x0160: { n:\"UsesELFs\", f:parse_UsesELFs },\n\t0x0161: { n:\"DSF\", f:parse_DSF },\n\t0x0191: { n:\"CUsr\", f:parse_CUsr },\n\t0x0192: { n:\"CbUsr\", f:parse_CbUsr },\n\t0x0193: { n:\"UsrInfo\", f:parse_UsrInfo },\n\t0x0194: { n:\"UsrExcl\", f:parse_UsrExcl },\n\t0x0195: { n:\"FileLock\", f:parse_FileLock },\n\t0x0196: { n:\"RRDInfo\", f:parse_RRDInfo },\n\t0x0197: { n:\"BCUsrs\", f:parse_BCUsrs },\n\t0x0198: { n:\"UsrChk\", f:parse_UsrChk },\n\t0x01a9: { n:\"UserBView\", f:parse_UserBView },\n\t0x01aa: { n:\"UserSViewBegin\", f:parse_UserSViewBegin },\n\t0x01ab: { n:\"UserSViewEnd\", f:parse_UserSViewEnd },\n\t0x01ac: { n:\"RRDUserView\", f:parse_RRDUserView },\n\t0x01ad: { n:\"Qsi\", f:parse_Qsi },\n\t0x01ae: { n:\"SupBook\", f:parse_SupBook },\n\t0x01af: { n:\"Prot4Rev\", f:parse_Prot4Rev },\n\t0x01b0: { n:\"CondFmt\", f:parse_CondFmt },\n\t0x01b1: { n:\"CF\", f:parse_CF },\n\t0x01b2: { n:\"DVal\", f:parse_DVal },\n\t0x01b5: { n:\"DConBin\", f:parse_DConBin },\n\t0x01b6: { n:\"TxO\", f:parse_TxO },\n\t0x01b7: { n:\"RefreshAll\", f:parse_RefreshAll },\n\t0x01b8: { n:\"HLink\", f:parse_HLink },\n\t0x01b9: { n:\"Lel\", f:parse_Lel },\n\t0x01ba: { n:\"CodeName\", f:parse_XLSCodeName },\n\t0x01bb: { n:\"SXFDBType\", f:parse_SXFDBType },\n\t0x01bc: { n:\"Prot4RevPass\", f:parse_Prot4RevPass },\n\t0x01bd: { n:\"ObNoMacros\", f:parse_ObNoMacros },\n\t0x01be: { n:\"Dv\", f:parse_Dv },\n\t0x01c0: { n:\"Excel9File\", f:parse_Excel9File },\n\t0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n\t0x01c2: { n:\"EntExU2\", f:parse_EntExU2 },\n\t0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n\t0x0201: { n:\"Blank\", f:parse_Blank },\n\t0x0203: { n:\"Number\", f:parse_Number },\n\t0x0204: { n:\"Label\", f:parse_Label },\n\t0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n\t0x0207: { n:\"String\", f:parse_String },\n\t0x0208: { n:'Row', f:parse_Row },\n\t0x020b: { n:\"Index\", f:parse_Index },\n\t0x0221: { n:\"Array\", f:parse_Array },\n\t0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n\t0x0236: { n:\"Table\", f:parse_Table },\n\t0x023e: { n:\"Window2\", f:parse_Window2 },\n\t0x027e: { n:\"RK\", f:parse_RK },\n\t0x0293: { n:\"Style\", f:parse_Style },\n\t0x0418: { n:\"BigName\", f:parse_BigName },\n\t0x041e: { n:\"Format\", f:parse_Format },\n\t0x043c: { n:\"ContinueBigName\", f:parse_ContinueBigName },\n\t0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n\t0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n\t0x0801: { n:\"WebPub\", f:parse_WebPub },\n\t0x0802: { n:\"QsiSXTag\", f:parse_QsiSXTag },\n\t0x0803: { n:\"DBQueryExt\", f:parse_DBQueryExt },\n\t0x0804: { n:\"ExtString\", f:parse_ExtString },\n\t0x0805: { n:\"TxtQry\", f:parse_TxtQry },\n\t0x0806: { n:\"Qsir\", f:parse_Qsir },\n\t0x0807: { n:\"Qsif\", f:parse_Qsif },\n\t0x0808: { n:\"RRDTQSIF\", f:parse_RRDTQSIF },\n\t0x0809: { n:'BOF', f:parse_BOF },\n\t0x080a: { n:\"OleDbConn\", f:parse_OleDbConn },\n\t0x080b: { n:\"WOpt\", f:parse_WOpt },\n\t0x080c: { n:\"SXViewEx\", f:parse_SXViewEx },\n\t0x080d: { n:\"SXTH\", f:parse_SXTH },\n\t0x080e: { n:\"SXPIEx\", f:parse_SXPIEx },\n\t0x080f: { n:\"SXVDTEx\", f:parse_SXVDTEx },\n\t0x0810: { n:\"SXViewEx9\", f:parse_SXViewEx9 },\n\t0x0812: { n:\"ContinueFrt\", f:parse_ContinueFrt },\n\t0x0813: { n:\"RealTimeData\", f:parse_RealTimeData },\n\t0x0850: { n:\"ChartFrtInfo\", f:parse_ChartFrtInfo },\n\t0x0851: { n:\"FrtWrapper\", f:parse_FrtWrapper },\n\t0x0852: { n:\"StartBlock\", f:parse_StartBlock },\n\t0x0853: { n:\"EndBlock\", f:parse_EndBlock },\n\t0x0854: { n:\"StartObject\", f:parse_StartObject },\n\t0x0855: { n:\"EndObject\", f:parse_EndObject },\n\t0x0856: { n:\"CatLab\", f:parse_CatLab },\n\t0x0857: { n:\"YMult\", f:parse_YMult },\n\t0x0858: { n:\"SXViewLink\", f:parse_SXViewLink },\n\t0x0859: { n:\"PivotChartBits\", f:parse_PivotChartBits },\n\t0x085a: { n:\"FrtFontList\", f:parse_FrtFontList },\n\t0x0862: { n:\"SheetExt\", f:parse_SheetExt },\n\t0x0863: { n:\"BookExt\", f:parse_BookExt, r:12},\n\t0x0864: { n:\"SXAddl\", f:parse_SXAddl },\n\t0x0865: { n:\"CrErr\", f:parse_CrErr },\n\t0x0866: { n:\"HFPicture\", f:parse_HFPicture },\n\t0x0867: { n:'FeatHdr', f:parse_FeatHdr },\n\t0x0868: { n:\"Feat\", f:parse_Feat },\n\t0x086a: { n:\"DataLabExt\", f:parse_DataLabExt },\n\t0x086b: { n:\"DataLabExtContents\", f:parse_DataLabExtContents },\n\t0x086c: { n:\"CellWatch\", f:parse_CellWatch },\n\t0x0871: { n:\"FeatHdr11\", f:parse_FeatHdr11 },\n\t0x0872: { n:\"Feature11\", f:parse_Feature11 },\n\t0x0874: { n:\"DropDownObjIds\", f:parse_DropDownObjIds },\n\t0x0875: { n:\"ContinueFrt11\", f:parse_ContinueFrt11 },\n\t0x0876: { n:\"DConn\", f:parse_DConn },\n\t0x0877: { n:\"List12\", f:parse_List12 },\n\t0x0878: { n:\"Feature12\", f:parse_Feature12 },\n\t0x0879: { n:\"CondFmt12\", f:parse_CondFmt12 },\n\t0x087a: { n:\"CF12\", f:parse_CF12 },\n\t0x087b: { n:\"CFEx\", f:parse_CFEx },\n\t0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n\t0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n\t0x087e: { n:\"AutoFilter12\", f:parse_AutoFilter12 },\n\t0x087f: { n:\"ContinueFrt12\", f:parse_ContinueFrt12 },\n\t0x0884: { n:\"MDTInfo\", f:parse_MDTInfo },\n\t0x0885: { n:\"MDXStr\", f:parse_MDXStr },\n\t0x0886: { n:\"MDXTuple\", f:parse_MDXTuple },\n\t0x0887: { n:\"MDXSet\", f:parse_MDXSet },\n\t0x0888: { n:\"MDXProp\", f:parse_MDXProp },\n\t0x0889: { n:\"MDXKPI\", f:parse_MDXKPI },\n\t0x088a: { n:\"MDB\", f:parse_MDB },\n\t0x088b: { n:\"PLV\", f:parse_PLV },\n\t0x088c: { n:\"Compat12\", f:parse_Compat12, r:12 },\n\t0x088d: { n:\"DXF\", f:parse_DXF },\n\t0x088e: { n:\"TableStyles\", f:parse_TableStyles, r:12 },\n\t0x088f: { n:\"TableStyle\", f:parse_TableStyle },\n\t0x0890: { n:\"TableStyleElement\", f:parse_TableStyleElement },\n\t0x0892: { n:\"StyleExt\", f:parse_StyleExt },\n\t0x0893: { n:\"NamePublish\", f:parse_NamePublish },\n\t0x0894: { n:\"NameCmt\", f:parse_NameCmt },\n\t0x0895: { n:\"SortData\", f:parse_SortData },\n\t0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n\t0x0897: { n:\"GUIDTypeLib\", f:parse_GUIDTypeLib },\n\t0x0898: { n:\"FnGrp12\", f:parse_FnGrp12 },\n\t0x0899: { n:\"NameFnGrp12\", f:parse_NameFnGrp12 },\n\t0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n\t0x089b: { n:\"CompressPictures\", f:parse_CompressPictures },\n\t0x089c: { n:\"HeaderFooter\", f:parse_HeaderFooter },\n\t0x089d: { n:\"CrtLayout12\", f:parse_CrtLayout12 },\n\t0x089e: { n:\"CrtMlFrt\", f:parse_CrtMlFrt },\n\t0x089f: { n:\"CrtMlFrtContinue\", f:parse_CrtMlFrtContinue },\n\t0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n\t0x08a4: { n:\"ShapePropsStream\", f:parse_ShapePropsStream },\n\t0x08a5: { n:\"TextPropsStream\", f:parse_TextPropsStream },\n\t0x08a6: { n:\"RichTextStream\", f:parse_RichTextStream },\n\t0x08a7: { n:\"CrtLayout12A\", f:parse_CrtLayout12A },\n\t0x1001: { n:\"Units\", f:parse_Units },\n\t0x1002: { n:\"Chart\", f:parse_Chart },\n\t0x1003: { n:\"Series\", f:parse_Series },\n\t0x1006: { n:\"DataFormat\", f:parse_DataFormat },\n\t0x1007: { n:\"LineFormat\", f:parse_LineFormat },\n\t0x1009: { n:\"MarkerFormat\", f:parse_MarkerFormat },\n\t0x100a: { n:\"AreaFormat\", f:parse_AreaFormat },\n\t0x100b: { n:\"PieFormat\", f:parse_PieFormat },\n\t0x100c: { n:\"AttachedLabel\", f:parse_AttachedLabel },\n\t0x100d: { n:\"SeriesText\", f:parse_SeriesText },\n\t0x1014: { n:\"ChartFormat\", f:parse_ChartFormat },\n\t0x1015: { n:\"Legend\", f:parse_Legend },\n\t0x1016: { n:\"SeriesList\", f:parse_SeriesList },\n\t0x1017: { n:\"Bar\", f:parse_Bar },\n\t0x1018: { n:\"Line\", f:parse_Line },\n\t0x1019: { n:\"Pie\", f:parse_Pie },\n\t0x101a: { n:\"Area\", f:parse_Area },\n\t0x101b: { n:\"Scatter\", f:parse_Scatter },\n\t0x101c: { n:\"CrtLine\", f:parse_CrtLine },\n\t0x101d: { n:\"Axis\", f:parse_Axis },\n\t0x101e: { n:\"Tick\", f:parse_Tick },\n\t0x101f: { n:\"ValueRange\", f:parse_ValueRange },\n\t0x1020: { n:\"CatSerRange\", f:parse_CatSerRange },\n\t0x1021: { n:\"AxisLine\", f:parse_AxisLine },\n\t0x1022: { n:\"CrtLink\", f:parse_CrtLink },\n\t0x1024: { n:\"DefaultText\", f:parse_DefaultText },\n\t0x1025: { n:\"Text\", f:parse_Text },\n\t0x1026: { n:\"FontX\", f:parse_FontX },\n\t0x1027: { n:\"ObjectLink\", f:parse_ObjectLink },\n\t0x1032: { n:\"Frame\", f:parse_Frame },\n\t0x1033: { n:\"Begin\", f:parse_Begin },\n\t0x1034: { n:\"End\", f:parse_End },\n\t0x1035: { n:\"PlotArea\", f:parse_PlotArea },\n\t0x103a: { n:\"Chart3d\", f:parse_Chart3d },\n\t0x103c: { n:\"PicF\", f:parse_PicF },\n\t0x103d: { n:\"DropBar\", f:parse_DropBar },\n\t0x103e: { n:\"Radar\", f:parse_Radar },\n\t0x103f: { n:\"Surf\", f:parse_Surf },\n\t0x1040: { n:\"RadarArea\", f:parse_RadarArea },\n\t0x1041: { n:\"AxisParent\", f:parse_AxisParent },\n\t0x1043: { n:\"LegendException\", f:parse_LegendException },\n\t0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n\t0x1045: { n:\"SerToCrt\", f:parse_SerToCrt },\n\t0x1046: { n:\"AxesUsed\", f:parse_AxesUsed },\n\t0x1048: { n:\"SBaseRef\", f:parse_SBaseRef },\n\t0x104a: { n:\"SerParent\", f:parse_SerParent },\n\t0x104b: { n:\"SerAuxTrend\", f:parse_SerAuxTrend },\n\t0x104e: { n:\"IFmtRecord\", f:parse_IFmtRecord },\n\t0x104f: { n:\"Pos\", f:parse_Pos },\n\t0x1050: { n:\"AlRuns\", f:parse_AlRuns },\n\t0x1051: { n:\"BRAI\", f:parse_BRAI },\n\t0x105b: { n:\"SerAuxErrBar\", f:parse_SerAuxErrBar },\n\t0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n\t0x105d: { n:\"SerFmt\", f:parse_SerFmt },\n\t0x105f: { n:\"Chart3DBarShape\", f:parse_Chart3DBarShape },\n\t0x1060: { n:\"Fbi\", f:parse_Fbi },\n\t0x1061: { n:\"BopPop\", f:parse_BopPop },\n\t0x1062: { n:\"AxcExt\", f:parse_AxcExt },\n\t0x1063: { n:\"Dat\", f:parse_Dat },\n\t0x1064: { n:\"PlotGrowth\", f:parse_PlotGrowth },\n\t0x1065: { n:\"SIIndex\", f:parse_SIIndex },\n\t0x1066: { n:\"GelFrame\", f:parse_GelFrame },\n\t0x1067: { n:\"BopPopCustom\", f:parse_BopPopCustom },\n\t0x1068: { n:\"Fbi2\", f:parse_Fbi2 },\n\n\t/* These are specified in an older version of the spec */\n\t0x0016: { n:\"ExternCount\", f:parsenoop },\n\t0x007e: { n:\"RK\", f:parsenoop }, /* Not necessarily same as 0x027e */\n\t0x007f: { n:\"ImData\", f:parsenoop },\n\t0x0087: { n:\"Addin\", f:parsenoop },\n\t0x0088: { n:\"Edg\", f:parsenoop },\n\t0x0089: { n:\"Pub\", f:parsenoop },\n\t0x0091: { n:\"Sub\", f:parsenoop },\n\t0x0094: { n:\"LHRecord\", f:parsenoop },\n\t0x0095: { n:\"LHNGraph\", f:parsenoop },\n\t0x0096: { n:\"Sound\", f:parsenoop },\n\t0x00a9: { n:\"CoordList\", f:parsenoop },\n\t0x00ab: { n:\"GCW\", f:parsenoop },\n\t0x00bc: { n:\"ShrFmla\", f:parsenoop }, /* Not necessarily same as 0x04bc */\n\t0x00c2: { n:\"AddMenu\", f:parsenoop },\n\t0x00c3: { n:\"DelMenu\", f:parsenoop },\n\t0x00d6: { n:\"RString\", f:parsenoop },\n\t0x00df: { n:\"UDDesc\", f:parsenoop },\n\t0x00ea: { n:\"TabIdConf\", f:parsenoop },\n\t0x0162: { n:\"XL5Modify\", f:parsenoop },\n\t0x01a5: { n:\"FileSharing2\", f:parsenoop },\n\t0x0218: { n:\"Name\", f:parsenoop },\n\t0x0223: { n:\"ExternName\", f:parse_ExternName },\n\t0x0231: { n:\"Font\", f:parsenoop },\n\t0x0406: { n:\"Formula\", f:parse_Formula },\n\t0x086d: { n:\"FeatInfo\", f:parsenoop },\n\t0x0873: { n:\"FeatInfo11\", f:parsenoop },\n\t0x0881: { n:\"SXAddl12\", f:parsenoop },\n\t0x08c0: { n:\"AutoWebPub\", f:parsenoop },\n\t0x08c1: { n:\"ListObj\", f:parsenoop },\n\t0x08c2: { n:\"ListField\", f:parsenoop },\n\t0x08c3: { n:\"ListDV\", f:parsenoop },\n\t0x08c4: { n:\"ListCondFmt\", f:parsenoop },\n\t0x08c5: { n:\"ListCF\", f:parsenoop },\n\t0x08c6: { n:\"FMQry\", f:parsenoop },\n\t0x08c7: { n:\"FMSQry\", f:parsenoop },\n\t0x08c8: { n:\"PLV\", f:parsenoop }, /* supposedly PLV for Excel 11 */\n\t0x08c9: { n:\"LnExt\", f:parsenoop },\n\t0x08ca: { n:\"MkrExt\", f:parsenoop },\n\t0x08cb: { n:\"CrtCoopt\", f:parsenoop },\n\n\t0x0000: {}\n};\n\n\n/* Helper function to call out to ODS parser */\nfunction parse_ods(zip, opts) {\n\tif(typeof module !== \"undefined\" && typeof require !== 'undefined' && typeof ODS === 'undefined') ODS = require('./od' + 's');\n\tif(typeof ODS === 'undefined' || !ODS.parse_ods) throw new Error(\"Unsupported ODS\");\n\treturn ODS.parse_ods(zip, opts);\n}\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = fix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\n\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { return [w.name, wbrels['!id'][w.id].Target]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_ws(zip, path, relsPath, sheet, sheetRels, sheets, opts) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipdata(zip, relsPath, true), path);\n\t\tsheets[sheet]=parse_ws(getzipdata(zip, path),path,opts,sheetRels[sheet]);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nvar nodirs = function nodirs(x){return x.substr(-1) != '/';};\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\treset_cp();\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\n\tvar entries = keys(zip.files).filter(nodirs).sort();\n\tvar dir = parse_ct(getzipdata(zip, '[Content_Types].xml'), opts);\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipfile(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].substr(-3) == \"bin\") xlsb = true;\n\tif(xlsb) set_cp(1200);\n\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) strs=parse_sst(getzipdata(zip, dir.sst.replace(/^\\//,'')), dir.sst, opts);\n\n\t\tstyles = {};\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, dir.style.replace(/^\\//,'')),dir.style, opts);\n\n\t\tthemes = {};\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipdata(zip, dir.themes[0].replace(/^\\//,''), true),dir.themes[0], opts);\n\t}\n\n\tvar wb = parse_wb(getzipdata(zip, dir.workbooks[0].replace(/^\\//,'')), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length !== 0) {\n\t\tpropdata = getzipdata(zip, dir.coreprops[0].replace(/^\\//,''), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, dir.extprops[0].replace(/^\\//,''), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, dir.custprops[0].replace(/^\\//,''), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = {};\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\telse if(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, dir.calcchain.replace(/^\\//,'')),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = {};\n\tvar path, relsPath;\n\tif(!props.Worksheets) {\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipdata(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\tfor(i = 0; i != props.Worksheets; ++i) {\n\t\tif(wbrels) path = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\telse {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tsafe_parse_ws(zip, path, relsPath, props.SheetNames[i], sheetRels, sheets, opts);\n\t}\n\n\tif(dir.comments) parse_comments(zip, dir.comments, sheets, sheetRels, opts);\n\n\tout = {\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t};\n\tif(opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,dir.vba[0],true);\n\t\telse if(dir.defaults.bin === 'application/vnd.ms-office.vbaProject') out.vbaraw = getzipdata(zip,'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\nfunction add_rels(rels, rId, f, type, relobj) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n}\n\nfunction write_zip(wb, opts) {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar ct = { workbooks: [], sheets: [], calcchains: [], themes: [], styles: [],\n\t\tcoreprops: [], extprops: [], custprops: [], strs:[], comments: [], vba: [],\n\t\tTODO:[], rels:[], xmlns: \"\" };\n\tfix_write_opts(opts = opts || {});\n\tvar zip = new jszip();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tf = \"docProps/core.xml\";\n\tzip.file(f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\tf = \"docProps/app.xml\";\n\tif(!wb.Props) wb.Props = {};\n\twb.Props.SheetNames = wb.SheetNames;\n\twb.Props.Worksheets = wb.SheetNames.length;\n\tzip.file(f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip.file(f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip.file(f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\tzip.file(f, write_ws(rId-1, f, opts, wb));\n\t\tct.sheets.push(f);\n\t\tadd_rels(opts.wbrels, rId, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS);\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip.file(f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, ++rId, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip.file(f, write_theme());\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, ++rId, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip.file(f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, ++rId, \"styles.\" + wbext, RELS.STY);\n\n\tzip.file(\"[Content_Types].xml\", write_ct(ct, opts));\n\tzip.file('_rels/.rels', write_rels(opts.rels));\n\tzip.file('xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return f[0];\n\t\tcase 'base64': return Base64.decode(f.substr(0,12)).charCodeAt(0);\n\t\tcase 'binary': return f.charCodeAt(0);\n\t\tcase 'array': return f[0];\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n}\n\nfunction read_zip(data, opts) {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tswitch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tcase \"file\": zip=new jszip(d=_fs.readFileSync(data)); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn parse_zip(zip, o);\n}\n\nfunction readSync(data, opts) {\n\tvar zip, d = data, isfile = false, n;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { isfile = true; o.type = \"buffer\"; d = _fs.readFileSync(data); }\n\tswitch((n = firstbyte(d, o))) {\n\t\tcase 0xD0:\n\t\t\tif(isfile) o.type = \"file\";\n\t\t\treturn parse_xlscfb(CFB.read(data, o), o);\n\t\tcase 0x09: return parse_xlscfb(s2a(o.type === 'base64' ? Base64.decode(data) : data), o);\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x50:\n\t\t\tif(isfile) o.type = \"file\";\n\t\t\treturn read_zip(data, opts);\n\t\tdefault: throw new Error(\"Unsupported file \" + n);\n\t}\n}\n\nfunction readFileSync(data, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(data, o);\n}\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tswitch(o.type) {\n\t\tcase \"base64\": return z.generate({type:\"base64\"});\n\t\tcase \"binary\": return z.generate({type:\"string\"});\n\t\tcase \"buffer\": return z.generate({type:\"nodebuffer\"});\n\t\tcase \"file\": return _fs.writeFileSync(o.file, z.generate({type:\"nodebuffer\"}));\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\tvar o = opts||{};\n\tswitch(o.bookType) {\n\t\tcase 'xml': return write_xlml(wb, o);\n\t\tdefault: return write_zip_type(wb, o);\n\t}\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tswitch(o.file.substr(-5).toLowerCase()) {\n\t\tcase '.xlsx': o.bookType = 'xlsx'; break;\n\t\tcase '.xlsm': o.bookType = 'xlsm'; break;\n\t\tcase '.xlsb': o.bookType = 'xlsb'; break;\n\tdefault: switch(o.file.substr(-4).toLowerCase()) {\n\t\tcase '.xls': o.bookType = 'xls'; break;\n\t\tcase '.xml': o.bookType = 'xml'; break;\n\t}}\n\treturn writeSync(wb, o);\n}\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction fix_cell(cstr) { return fix_col(fix_row(cstr)); }\nfunction unfix_cell(cstr) { return unfix_col(unfix_row(cstr)); }\nfunction decode_range(range) { var x =range.split(\":\").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }\nfunction encode_range(cs,ce) {\n\tif(ce === undefined || typeof ce === 'number') return encode_range(cs.s, cs.e);\n\tif(typeof cs !== 'string') cs = encode_cell(cs); if(typeof ce !== 'string') ce = encode_cell(ce);\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tif(cell.z !== undefined) try { return (cell.w = SSF.format(cell.z, v)); } catch(e) { }\n\tif(!cell.XF) return v;\n\ttry { return (cell.w = SSF.format(cell.XF.ifmt||0, v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v) {\n\tif(cell == null || cell.t == null) return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(v === undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_json(sheet, opts){\n\tvar val, row, range, header = 0, offset = 1, r, hdr = [], isempty, R, C, v;\n\tvar o = opts != null ? opts : {};\n\tvar raw = o.raw;\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\trange = o.range !== undefined ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = new Array(r.e.c-r.s.c+1);\n\tvar out = new Array(r.e.r-r.s.r-offset+1);\n\tvar outi = 0;\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val === undefined) continue;\n\t\t\t\thdr[C] = format_cell(val);\n\t\t}\n\t}\n\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tisempty = true;\n\t\tif(header === 1) row = [];\n\t\telse {\n\t\t\trow = {};\n\t\t\tif(Object.defineProperty) Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false});\n\t\t\telse row.__rowNum__ = R;\n\t\t}\n\t\tfor (C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tval = sheet[cols[C] + rr];\n\t\t\tif(val === undefined || val.t === undefined) continue;\n\t\t\tv = val.v;\n\t\t\tswitch(val.t){\n\t\t\t\tcase 'e': continue;\n\t\t\t\tcase 's': break;\n\t\t\t\tcase 'b': case 'n': break;\n\t\t\t\tdefault: throw 'unrecognized type ' + val.t;\n\t\t\t}\n\t\t\tif(v !== undefined) {\n\t\t\t\trow[hdr[C]] = raw ? v : format_cell(val,v);\n\t\t\t\tisempty = false;\n\t\t\t}\n\t\t}\n\t\tif(isempty === false || header === 1) out[outi++] = row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nfunction sheet_to_row_object_array(sheet, opts) { return sheet_to_json(sheet, opts != null ? opts : {}); }\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = \"\", txt = \"\", qreg = /\"/g;\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar row = \"\", rr = \"\", cols = [];\n\tvar i = 0, cc = 0, val;\n\tvar R = 0, C = 0;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = r.s.r; R <= r.e.r; ++R) {\n\t\trow = \"\";\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tval = sheet[cols[C] + rr];\n\t\t\ttxt = val !== undefined ? ''+format_cell(val) : \"\";\n\t\t\tfor(i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {\n\t\t\t\ttxt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\trow += (C === r.s.c ? \"\" : FS) + txt;\n\t\t}\n\t\tout += row + RS;\n\t}\n\treturn out;\n}\nvar make_csv = sheet_to_csv;\n\nfunction sheet_to_formulae(sheet) {\n\tvar cmds, y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tcmds = new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));\n\tvar i = 0;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[i++] = y + \"=\" + val;\n\t\t}\n\t}\n\tcmds.length = i;\n\treturn cmds;\n}\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_row_object_array\n};\nXLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.utils = utils;\nXLSX.CFB = CFB;\nXLSX.SSF = SSF;\n})(typeof exports !== 'undefined' ? exports : XLSX);\nvar XLS = XLSX;\n$tw.utils.extend(old_exports,exports);exports = old_exports;module.exports=exports;", "type": "application/javascript", "title": "$:/plugins/tiddlywiki/xlsx-utils/xlsx.js", "module-type": "library" }, "$:/plugins/tiddlywiki/xlsx-utils/dist/cpexcel.js": { "text": "if($tw.browser){Buffer = undefined;};/* cpexcel.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/*jshint -W100 */\nvar cptable = {version:\"1.3.7\"};\ncptable[874] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[932] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[135] = \"����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[224] = \"����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[237] = \"����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[250] = \"����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[936] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nD[254] = \"����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[254].length; ++j) if(D[254][j].charCodeAt(0) !== 0xFFFD) { e[D[254][j]] = 65024 + j; d[65024 + j] = D[254][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[949] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[950] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[201] = \"����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[1250] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1251] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1252] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1253] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1254] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1255] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת���\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1256] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1257] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1258] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10000] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10006] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10007] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10029] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10079] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10081] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\nif (typeof module !== 'undefined' && module.exports) module.exports = cptable;\n/* cputils.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/*jshint newcap: false */\n(function(root, factory){\n \"use strict\";\n if(typeof cptable === \"undefined\") {\n if(typeof require !== \"undefined\"){\n var cpt = require('./cpt' + 'able');\n if (typeof module !== 'undefined' && module.exports) module.exports = factory(cpt);\n else root.cptable = factory(cpt);\n } else throw new Error(\"cptable not found\");\n } else cptable = factory(cptable);\n}(this, function(cpt){\n \"use strict\";\n var magic = {\n \"1200\":\"utf16le\",\n \"1201\":\"utf16be\",\n \"12000\":\"utf32le\",\n \"12001\":\"utf32be\",\n \"16969\":\"utf64le\",\n \"20127\":\"ascii\",\n \"65000\":\"utf7\",\n \"65001\":\"utf8\"\n };\n\n var sbcs_cache = [874,1250,1251,1252,1253,1254,1255,1256,10000];\n var dbcs_cache = [932,936,949,950];\n var magic_cache = [65001];\n var magic_decode = {};\n var magic_encode = {};\n var cpecache = {};\n var cpdcache = {};\n\n var sfcc = function sfcc(x) { return String.fromCharCode(x); };\n var cca = function cca(x){ return x.charCodeAt(0); };\n\n var has_buf = (typeof Buffer !== 'undefined');\n if(has_buf) {\n var mdl = 1024, mdb = new Buffer(mdl);\n var make_EE = function make_EE(E){\n var EE = new Buffer(65536);\n for(var i = 0; i < 65536;++i) EE[i] = 0;\n var keys = Object.keys(E), len = keys.length;\n for(var ee = 0, e = keys[ee]; ee < len; ++ee) {\n if(!(e = keys[ee])) continue;\n EE[e.charCodeAt(0)] = E[e];\n }\n return EE;\n };\n var sbcs_encode = function make_sbcs_encode(cp) {\n var EE = make_EE(cpt[cp].enc);\n return function sbcs_e(data, ofmt) {\n var len = data.length;\n var out, i, j, D, w;\n if(typeof data === 'string') {\n out = Buffer(len);\n for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];\n } else if(Buffer.isBuffer(data)) {\n out = Buffer(2*len);\n j = 0;\n for(i = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) out[j++] = EE[D];\n else if(D < 224) { out[j++] = EE[((D&31)<<6)+(data[i+1]&63)]; ++i; }\n else if(D < 240) { out[j++] = EE[((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63)]; i+=2; }\n else {\n w = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3;\n if(w < 65536) out[j++] = EE[w];\n else { w -= 65536; out[j++] = EE[0xD800 + ((w>>10)&1023)]; out[j++] = EE[0xDC00 + (w&1023)]; }\n }\n }\n out.length = j;\n out = out.slice(0,j);\n } else {\n out = Buffer(len);\n for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];\n }\n if(ofmt === undefined || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var sbcs_decode = function make_sbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = new Buffer(131072), d=0, c;\n for(d=0;d<D.length;++d) {\n if(!(c=D[d])) continue;\n var w = c.charCodeAt(0);\n DD[2*d] = w&255; DD[2*d+1] = w>>8;\n }\n return function sbcs_d(data) {\n var len = data.length, i=0, j;\n if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n }\n mdb.length = 2 * len;\n return mdb.toString('ucs2');\n };\n };\n var dbcs_encode = function make_dbcs_encode(cp) {\n var E = cpt[cp].enc;\n var EE = new Buffer(131072);\n for(var i = 0; i < 131072; ++i) EE[i] = 0;\n var keys = Object.keys(E);\n for(var ee = 0, e = keys[ee]; ee < keys.length; ++ee) {\n if(!(e = keys[ee])) continue;\n var f = e.charCodeAt(0);\n EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;\n }\n return function dbcs_e(data, ofmt) {\n var len = data.length, out = new Buffer(2*len), i, j, jj, k, D;\n if(typeof data === 'string') {\n for(i = k = 0; i < len; ++i) {\n j = data.charCodeAt(i)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n out.length = k;\n out = out.slice(0,k);\n } else if(Buffer.isBuffer(data)) {\n for(i = k = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) j = D;\n else if(D < 224) { j = ((D&31)<<6)+(data[i+1]&63); ++i; }\n else if(D < 240) { j = ((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63); i+=2; }\n else { j = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3; }\n if(j<65536) { j*=2; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; }\n else { jj = j-65536;\n j=2*(0xD800 + ((jj>>10)&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n j=2*(0xDC00 + (jj&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n out.length = k;\n out = out.slice(0,k);\n } else {\n for(i = k = 0; i < len; i++) {\n j = data[i].charCodeAt(0)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n if(ofmt === undefined || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var dbcs_decode = function make_dbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = new Buffer(131072), d=0, c, w=0, j=0, i=0;\n for(i = 0; i < 65536; ++i) { DD[2*i] = 0xFF; DD[2*i+1] = 0xFD;}\n for(d = 0; d < D.length; ++d) {\n if(!(c=D[d])) continue;\n w = c.charCodeAt(0);\n j = 2*d;\n DD[j] = w&255; DD[j+1] = w>>8;\n }\n return function dbcs_d(data) {\n var len = data.length, out = new Buffer(2*len), i, j, k=0;\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data.charCodeAt(i)<<8)+data.charCodeAt(i+1)); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n }\n out.length = k;\n return out.toString('ucs2');\n };\n };\n magic_decode[65001] = function utf8_d(data) {\n var len = data.length, w = 0, ww = 0;\n if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }\n mdb.length = 0;\n var i = 0;\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(var j = 1, k = 0, D = 0; i < len; i+=j) {\n j = 1; D = data[i];\n if(D < 128) w = D;\n else if(D < 224) { w=(D&31)*64+(data[i+1]&63); j=2; }\n else if(D < 240) { w=((D&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(D&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { mdb[k++] = w&255; mdb[k++] = w>>8; }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n mdb[k++] = ww&255; mdb[k++] = ww>>>8; mdb[k++] = w&255; mdb[k++] = (w>>>8)&255;\n }\n }\n mdb.length = k;\n return mdb.toString('ucs2');\n };\n magic_encode[65001] = function utf8_e(data, ofmt) {\n var len = data.length, w = 0, ww = 0, j = 0;\n var direct = typeof data === \"string\";\n if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }\n for(var i = 0; i < len; ++i) {\n w = direct ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) mdb[j++] = w;\n else if(w <= 0x07FF) {\n mdb[j++] = 192 + (w >> 6);\n mdb[j++] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800; ++i;\n ww = (direct ? data.charCodeAt(i) : data[i].charCodeAt(0)) - 0xDC00 + (w << 10);\n mdb[j++] = 240 + ((ww>>>18) & 0x07);\n mdb[j++] = 144 + ((ww>>>12) & 0x3F);\n mdb[j++] = 128 + ((ww>>>6) & 0x3F);\n mdb[j++] = 128 + (ww & 0x3F);\n } else {\n mdb[j++] = 224 + (w >> 12);\n mdb[j++] = 128 + ((w >> 6)&63);\n mdb[j++] = 128 + (w&63);\n }\n }\n mdb.length = j;\n if(ofmt === undefined || ofmt === 'buf') return mdb;\n if(ofmt !== 'arr') return mdb.toString('binary');\n return [].slice.call(mdb);\n };\n }\n\n var encache = function encache() {\n if(has_buf) {\n if(cpdcache[sbcs_cache[0]]) return;\n var i, s;\n for(i = 0; i < sbcs_cache.length; ++i) {\n s = sbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = sbcs_decode(s);\n cpecache[s] = sbcs_encode(s);\n }\n }\n for(i = 0; i < dbcs_cache.length; ++i) {\n s = dbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = dbcs_decode(s);\n cpecache[s] = dbcs_encode(s);\n }\n }\n for(i = 0; i < magic_cache.length; ++i) {\n s = magic_cache[i];\n if(magic_decode[s]) cpdcache[s] = magic_decode[s];\n if(magic_encode[s]) cpecache[s] = magic_encode[s];\n }\n }\n };\n var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; };\n var decache = function decache() {\n if(has_buf) {\n if(!cpdcache[sbcs_cache[0]]) return;\n sbcs_cache.forEach(cp_decache);\n dbcs_cache.forEach(cp_decache);\n magic_cache.forEach(cp_decache);\n }\n last_enc = last_cp = undefined;\n };\n var cache = {\n encache: encache,\n decache: decache,\n sbcs: sbcs_cache,\n dbcs: dbcs_cache\n };\n\n encache();\n\n var BM = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var SetD = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?\";\n var last_enc, last_cp;\n var encode = function encode(cp, data, ofmt) {\n if(cp === last_cp) { return last_enc(data, ofmt); }\n if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }\n if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');\n var len = data.length;\n var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww;\n var C = cpt[cp], E, M;\n if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {\n w = E[data[i]];\n out[j] = w&255;\n if(w > 255) {\n out[j] = w>>8;\n out[++j] = w&255;\n }\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n if(has_buf && typeof data === \"string\") { out = new Buffer(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else if(w <= 0x07FF) {\n out[j] = 192 + (w >> 6);\n out[++j] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800;\n ww = data[++i].charCodeAt(0) - 0xDC00 + (w << 10);\n out[j] = 240 + ((ww>>>18) & 0x07);\n out[++j] = 144 + ((ww>>>12) & 0x3F);\n out[++j] = 128 + ((ww>>>6) & 0x3F);\n out[++j] = 128 + (ww & 0x3F);\n } else {\n out[j] = 224 + (w >> 12);\n out[++j] = 128 + ((w >> 6)&63);\n out[++j] = 128 + (w&63);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && typeof data === \"string\") { out = new Buffer(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else throw new Error(\"bad ascii \" + w);\n }\n break;\n case \"utf16le\":\n if(has_buf && typeof data === \"string\") { out = new Buffer(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n out[j++] = w&255;\n out[j++] = w>>8;\n }\n break;\n case \"utf16be\":\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n out[j++] = w>>8;\n out[j++] = w&255;\n }\n break;\n case \"utf32le\":\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255;\n }\n break;\n case \"utf32be\":\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j+3] = w&255; w >>= 8;\n out[j+2] = w&255; w >>= 8;\n out[j+1] = w&255; w >>= 8;\n out[j] = w&255; w >>= 8;\n j+=4;\n }\n break;\n case \"utf7\":\n for(i = 0; i < len; i++) {\n c = data[i];\n if(c === \"+\") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }\n if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }\n tt = encode(1201, c);\n out[j++] = 0x2b;\n out[j++] = BM.charCodeAt(tt[0]>>2);\n out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));\n out[j++] = BM.charCodeAt(((tt[1]&0x0F)<<2) + ((tt[2]||0)>>6));\n out[j++] = 0x2d;\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n out.length = j;\n out = out.slice(0,j);\n if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join(\"\") : out;\n if(ofmt === undefined || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n var decode = function decode(cp, data) {\n var F; if((F=cpdcache[cp])) return F(data);\n var len = data.length, out = new Array(len), w, i, j = 1, k = 0, ww;\n var C = cpt[cp], D, M;\n if(C && (D=C.dec)) {\n if(typeof data === \"string\") data = data.split(\"\").map(cca);\n for(i = 0; i < len; i+=j) {\n j = 2;\n w = D[(data[i]<<8)+ data[i+1]];\n if(!w) {\n j = 1;\n w = D[data[i]];\n }\n if(!w) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);\n out[k++] = w;\n }\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n i = 0;\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(; i < len; i+=j) {\n j = 1;\n if(data[i] < 128) w = data[i];\n else if(data[i] < 224) { w=(data[i]&31)*64+(data[i+1]&63); j=2; }\n else if(data[i] < 240) { w=((data[i]&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(data[i]&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { out[k++] = String.fromCharCode(w); }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n out[k++] = String.fromCharCode(ww); out[k++] = String.fromCharCode(w);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);\n k = len; break;\n case \"utf16le\":\n i = 0;\n if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n j = 2;\n for(; i < len; i+=j) {\n out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);\n }\n break;\n case \"utf16be\":\n i = 0;\n if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;\n j = 2;\n for(; i < len; i+=j) {\n out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);\n }\n break;\n case \"utf32le\":\n i = 0;\n if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] == 0 && data[3] == 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i+3]<<24) + (data[i+2]<<16) + (data[i+1]<<8) + (data[i]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf32be\":\n i = 0;\n if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] == 0 && data[0] == 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i]<<24) + (data[i+1]<<16) + (data[i+2]<<8) + (data[i+3]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf7\":\n i = 0;\n if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {\n if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;\n else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;\n }\n for(; i < len; i+=j) {\n if(data[i] !== 0x2b) { j=1; out[k++] = String.fromCharCode(data[i]); continue; }\n j=1;\n if(data[i+1] === 0x2d) { j = 2; out[k++] = \"+\"; continue; }\n while(String.fromCharCode(data[i+j]).match(/[A-Za-z0-9+\\/]/)) j++;\n var dash = 0;\n if(data[i+j] === 0x2d) { ++j; dash=1; }\n var tt = [];\n var o64;\n var c1, c2, c3;\n var e1, e2, e3, e4;\n for(var l = 1; l < j - dash;) {\n e1 = BM.indexOf(String.fromCharCode(data[i+l++]));\n e2 = BM.indexOf(String.fromCharCode(data[i+l++]));\n c1 = e1 << 2 | e2 >> 4;\n tt.push(c1);\n e3 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e3 === -1) break;\n c2 = (e2 & 15) << 4 | e3 >> 2;\n tt.push(c2);\n e4 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e4 === -1) break;\n c3 = (e3 & 3) << 6 | e4;\n if(e4 < 64) tt.push(c3);\n }\n if((tt.length & 1) === 1) tt.length--;\n o64 = decode(1201, tt);\n for(l = 0; l < o64.length; ++l) out[k++] = o64[l];\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n out.length = k;\n return out.join(\"\");\n };\n var hascp = function hascp(cp) { return cpt[cp] || magic[cp]; };\n cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };\n return cpt;\n}));\n", "type": "application/javascript", "title": "$:/plugins/tiddlywiki/xlsx-utils/dist/cpexcel.js", "module-type": "library" }, "$:/plugins/tiddlywiki/xlsx-utils/license": { "text": "Copyright (C) 2012-2015 SheetJS\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\nExcept where noted, this license applies to any and all software programs and associated documentation files created by the Original Author and distributed with the Software:\n\n'jszip.js' is a modified version of JSZip, Copyright (c) Stuart Knightley, David Duponchel, Franz Buchinger, Ant'onio Afonso. JSZip is dual licensed and is used according to the terms of the MIT License.\n", "type": "text/plain", "title": "$:/plugins/tiddlywiki/xlsx-utils/license" }, "$:/language/Help/xlsx-import": { "title": "$:/language/Help/xlsx-import", "description": "Import tiddlers from an XLSX spreadsheet file", "text": "Imports tiddlers from an XLSX spreadsheet file\n\n```\n--xlsx-import <filename> <importSpec>\n```\n\n* ''filename'': filename of the `.xlsx` file\n* ''title'': title of the import specification tiddler to be used for the import" }, "$:/plugins/tiddlywiki/xlsx-utils/importer.js": { "title": "$:/plugins/tiddlywiki/xlsx-utils/importer.js", "text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/importer.js\ntype: application/javascript\nmodule-type: library\n\nClass to import an Excel file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_IMPORT_SPEC_TITLE = \"$:/config/plugins/tiddlywiki/xlsx-utils/default-import-spec\";\n\nvar XLSX = require(\"$:/plugins/tiddlywiki/xlsx-utils/xlsx.js\"),\n\tJSZip = require(\"$:/plugins/tiddlywiki/jszip/jszip.js\");\n\nvar XLSXImporter = function(options) {\n\tthis.filename = options.filename;\n\tthis.text = options.text;\n\tthis.importSpec = options.importSpec || $tw.wiki.getTiddlerText(DEFAULT_IMPORT_SPEC_TITLE);\n\tthis.logger = new $tw.utils.Logger(\"xlsx-utils\");\n\tthis.results = [];\n\tif(JSZip) {\n\t\tthis.processWorkbook();\t\t\n\t}\n};\n\nXLSXImporter.prototype.getResults = function() {\n\treturn this.results;\n};\n\nXLSXImporter.prototype.processWorkbook = function() {\n\t// Read the workbook\n\tif(this.filename) {\n\t\tthis.workbook = XLSX.readFile(this.filename);\t\n\t} else if(this.text) {\n\t\tthis.workbook = XLSX.read(this.text,{type:\"base64\"});\n\t}\n\t// Read the root import specification\n\tthis.rootImportSpec = $tw.wiki.getTiddler(this.importSpec);\n\tif(this.rootImportSpec) {\n\t\t// Iterate through the sheets specified in the list field\n\t\t$tw.utils.each(this.rootImportSpec.fields.list || [],this.processSheet.bind(this));\n\t}\n};\n\nXLSXImporter.prototype.processSheet = function(sheetImportSpecTitle) {\n\t// Get the sheet import specifier\n\tthis.sheetImportSpec = $tw.wiki.getTiddler(sheetImportSpecTitle);\n\tif(this.sheetImportSpec) {\n\t\tthis.sheetName = this.sheetImportSpec.fields[\"import-sheet-name\"];\n\t\tthis.sheet = this.workbook.Sheets[this.sheetName];\n\t\tif(!this.sheet) {\n\t\t\tthis.logger.alert(\"Missing sheet '\" + this.sheetName + \"'\");\n\t\t} else {\n\t\t\t// Get the size of the sheet\n\t\t\tthis.sheetSize = this.measureSheet(this.sheet);\n\t\t\t// Read the column names from the first row\n\t\t\tthis.columnsByName = this.findColumns(this.sheet,this.sheetSize);\n\t\t\t// Iterate through the rows\n\t\t\tfor(this.row=this.sheetSize.startRow+1; this.row<=this.sheetSize.endRow; this.row++) {\n\t\t\t\t// Iterate through the row import specifiers\n\t\t\t\t$tw.utils.each(this.sheetImportSpec.fields.list || [],this.processRow.bind(this));\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t}\n};\n\nXLSXImporter.prototype.processRow = function(rowImportSpecTitle) {\n\tthis.rowImportSpec = $tw.wiki.getTiddler(rowImportSpecTitle);\n\tif(this.rowImportSpec) {\n\t\tthis.tiddlerFields = {};\n\t\tthis.skipTiddler = false;\n\t\t// Determine the type of row\n\t\tthis.rowType = this.rowImportSpec.fields[\"import-row-type\"] || \"by-field\";\n\t\tswitch(this.rowType) {\n\t\t\tcase \"by-column\":\n\t\t\t\tthis.processRowByColumn();\n\t\t\t\tbreak;\n\t\t\tcase \"by-field\":\n\t\t\t\tthis.processRowByField();\n\t\t\t\tbreak;\n\t\t}\n\t\t// Save the tiddler if not skipped\n\t\tif(!this.skipTiddler) {\n\t\t\tif(!this.tiddlerFields.title) {\n\t\t\t\tthis.logger.alert(\"Missing title field for \" + JSON.stringify(this.tiddlerFields));\n\t\t\t}\n\t\t\tthis.results.push(this.tiddlerFields);\t\t\t\t\t\t\t\t\n\t\t}\n\t}\n};\n\nXLSXImporter.prototype.processRowByColumn = function() {\n\tvar self = this;\n\t// Iterate through the columns for the row\n\t$tw.utils.each(this.columnsByName,function(index,name) {\n\t\tvar cell = self.sheet[XLSX.utils.encode_cell({c: self.columnsByName[name], r: self.row})];\n\t\tname = name.toLowerCase();\n\t\tif(cell && cell.w && $tw.utils.isValidFieldName(name)) {\n\t\t\tself.tiddlerFields[name] = cell.w;\t\t\n\t\t}\n\t});\n\t// Skip the tiddler entirely if it doesn't have a title\n\tif(!this.tiddlerFields.title) {\n\t\tthis.skipTiddler = true;\n\t}\n};\n\nXLSXImporter.prototype.processRowByField = function() {\n\t// Iterate through the fields for the row\n\t$tw.utils.each(this.rowImportSpec.fields.list || [],this.processField.bind(this));\n};\n\nXLSXImporter.prototype.processField = function(fieldImportSpecTitle) {\n\tvar fieldImportSpec = $tw.wiki.getTiddler(fieldImportSpecTitle);\n\tif(fieldImportSpec) {\n\t\tvar fieldName = fieldImportSpec.fields[\"import-field-name\"],\n\t\t\tvalue;\n\t\tswitch(fieldImportSpec.fields[\"import-field-source\"]) {\n\t\t\tcase \"column\":\n\t\t\t\tvar columnName = fieldImportSpec.fields[\"import-field-column\"],\n\t\t\t\t\tcell = this.sheet[XLSX.utils.encode_cell({c: this.columnsByName[columnName], r: this.row})];\n\t\t\t\tif(cell) {\n\t\t\t\t\tswitch(fieldImportSpec.fields[\"import-field-type\"] || \"string\") {\n\t\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\t\tif(cell.t === \"n\") {\n\t\t\t\t\t\t\t\tvalue = $tw.utils.stringifyDate(new Date((cell.v - (25567 + 2)) * 86400 * 1000));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"string\":\n\t\t\t\t\t\t\t// Intentional fall-through\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvalue = cell.w;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"constant\":\n\t\t\t\tvalue = fieldImportSpec.fields[\"import-field-value\"]\n\t\t\t\tbreak;\n\t\t}\n\t\tvalue = (value || \"\").trim();\n\t\tif(value === \"\") {\n\t\t\tif((fieldImportSpec.fields[\"import-field-skip-tiddler-if-blank\"] || \"\").trim().toLowerCase() === \"yes\") {\n\t\t\t\tthis.skipTiddler = true;\n\t\t\t}\n\t\t\tif(fieldImportSpec.fields[\"import-field-replace-blank\"]) {\n\t\t\t\tvalue = fieldImportSpec.fields[\"import-field-replace-blank\"];\n\t\t\t}\n\t\t}\n\t\tif(fieldImportSpec.fields[\"import-field-prefix\"]) {\n\t\t\tvalue = fieldImportSpec.fields[\"import-field-prefix\"] + value;\n\t\t}\n\t\tif(fieldImportSpec.fields[\"import-field-suffix\"]) {\n\t\t\tvalue = value + fieldImportSpec.fields[\"import-field-suffix\"];\n\t\t}\n\t\tswitch(fieldImportSpec.fields[\"import-field-list-op\"] || \"none\") {\n\t\t\tcase \"none\":\n\t\t\t\tthis.tiddlerFields[fieldName] = value;\n\t\t\t\tbreak;\n\t\t\tcase \"append\":\n\t\t\t\tvar list = $tw.utils.parseStringArray(this.tiddlerFields[fieldName] || \"\");\n\t\t\t\t$tw.utils.pushTop(list,value)\n\t\t\t\tthis.tiddlerFields[fieldName] = list;\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nXLSXImporter.prototype.measureSheet = function(sheet) {\n\tvar sheetRange = XLSX.utils.decode_range(sheet[\"!ref\"]);\n\treturn {\n\t\tstartRow: Math.min(sheetRange.s.r,sheetRange.e.r),\n\t\tendRow: Math.max(sheetRange.s.r,sheetRange.e.r),\n\t\tstartCol: Math.min(sheetRange.s.c,sheetRange.e.c),\n\t\tendCol: Math.max(sheetRange.s.c,sheetRange.e.c)\n\t}\n};\n\nXLSXImporter.prototype.findColumns = function(sheet,sheetSize) {\n\tvar columnsByName = {};\n\tfor(var col=sheetSize.startCol; col<=sheetSize.endCol; col++) {\n\t\tvar cell = sheet[XLSX.utils.encode_cell({c: col, r: sheetSize.startRow})],\n\t\t\tcolumnName;\n\t\tif(cell) {\n\t\t\tcolumnName = cell.w;\n\t\t\tif(columnName) {\n\t\t\t\tcolumnsByName[columnName] = col;\t\t\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t}\n\treturn columnsByName;\n};\n\nexports.XLSXImporter = XLSXImporter;\n\n})();\n", "type": "application/javascript", "module-type": "library" }, "$:/plugins/tiddlywiki/xlsx-utils/readme": { "title": "$:/plugins/tiddlywiki/xlsx-utils/readme", "text": "This plugin provides a flexible way to import tiddlers from Excel files. It is based on the library [[js-xlsx|https://github.com/SheetJS/js-xlsx]].\n\nThe plugin uses //import specifications// to determine how incoming spreadsheets are processed. You can view, create and edit import specifications in the control panel \"XLSX Utilities\" tab, or directly in the [[plugin controls|$:/plugins/tiddlywiki/xlsx-utils]]. This is also where you select which import specification is selected for use during the next import operation.\n\nEach sheet is expected to consist of a single header row followed by multiple content rows, each consisting of an independent record. The plugin automatically detects the extent of each sheet by looking for the bottom right cell that contains a value. This can lead to unexpected results if a cell is accidentally created with an invisible, blank value.\n\nImport specifications describe how tiddlers are created from a particular row of a sheet; multiple tiddlers can be generated from a single row. (Conversely, if different rows yield tiddlers with the same title then they will overwrite one another).\n\nEach field of each tiddler can be assigned a constant value, or a value taken from a named column of the sheet, optionally with a prefix and/or suffix added. There is special support for handling list fields (like the tags field), with the ability to append new items to the list.\n\nInternally, each import specifier is actually modelled as a hierarchy of connected tiddlers with the field ''import-spec-role'' indicating the following roles:\n\n* ''workbook'': describes the sheets to be imported from the workbook\n* ''sheet'': describes each sheet to be processed\n* ''row'': describes the tiddlers to be imported from each row of each sheet\n* ''field'': describes the fields to be assigned to each tiddler from each row of each sheet\n\nThe easiest way to understand the structure is to explore the example import specifications, and the corresponding spreadsheets they are designed to handle.\n\nNote that there are many possible different ways of importing a particular spreadsheet, depending on whether the structures are modelled with fields, tags, prefixes or other mechanisms. The plugin is designed to support a wide range of applications.\n\nThis plugin also requires the JSZip plugin ([[$:/plugins/tiddlywiki/jszip]]) to be installed.\n" }, "$:/plugins/tiddlywiki/xlsx-utils/startup.js": { "title": "$:/plugins/tiddlywiki/xlsx-utils/startup.js", "text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/startup.js\ntype: application/javascript\nmodule-type: startup\n\nInitialisation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"xlsx-startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Check JSZip is installed\n\tif(!$tw.utils.hop($tw.modules.titles,\"$:/plugins/tiddlywiki/jszip/jszip.js\")) {\n\t\t// Make a logger\n\t\tvar logger = new $tw.utils.Logger(\"xlsx-utils\");\n\t\tlogger.alert(\"The plugin 'xlsx-utils' requires the 'jszip' plugin to be installed\");\n\t}\n};\n\n})();\n", "type": "application/javascript", "module-type": "startup" }, "$:/plugins/tiddlywiki/xlsx-utils/styles": { "title": "$:/plugins/tiddlywiki/xlsx-utils/styles", "tags": "[[$:/tags/Stylesheet]]", "text": "\\define quick-colour-selector-background() #bac0f1\n\\define quick-colour-selector-border() #9196c1\n\n\\define quick-colour-editor-background() #bae3f1\n\\define quick-colour-editor-controls() #d2ffff\n\\define quick-colour-editor-border() #97b8c3\n\n\\define quick-colour-workbook-background() #baf1db\n\\define quick-colour-workbook-controls() #d3fff6\n\\define quick-colour-workbook-border() #98c3b2\n\n\\define quick-colour-sheet-background() #f1ebba\n\\define quick-colour-sheet-controls() #fffed3\n\\define quick-colour-sheet-border() #c4be98\n\n\\define quick-colour-row-background() #f1baba\n\\define quick-colour-row-controls() #fed1d2\n\\define quick-colour-row-border() #c39697\n\n\\define quick-colour-field-background() #e0d4fb\n\\define quick-colour-field-controls() #fcefff\n\\define quick-colour-field-border() #b6adcb\n\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-import-spec-selector {\n\tborder: 1px solid <<quick-colour-selector-border>>;\n\tbackground-color: <<quick-colour-selector-background>>;\n\tpadding: 0.25em;\n}\n\n.tc-import-spec-editor-wrapper {\n\tborder: 1px solid <<quick-colour-editor-border>>;\n\tbackground-color: <<quick-colour-editor-background>>;\n\tpadding: 0.25em;\n}\n\n.tc-import-spec-editor {\n\tborder: 1px solid <<quick-colour-editor-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-editor-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-editor-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-editor-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-editor-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-editor-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-editor-background>>;\n}\n\n.tc-import-spec-editor-list {\n}\n\n.tc-import-spec-workbook-wrapper {\n\tborder: 1px solid <<quick-colour-workbook-border>>;\n\tbackground-color: <<quick-colour-workbook-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n\n.tc-import-spec-workbook {\n\tborder: 1px solid <<quick-colour-workbook-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-workbook-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-workbook-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-workbook-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-workbook-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-workbook-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-workbook-background>>;\n}\n\n.tc-import-spec-workbook-list {\n}\n\n.tc-import-spec-sheet-wrapper {\n\tborder: 1px solid <<quick-colour-sheet-border>>;\n\tbackground-color: <<quick-colour-sheet-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n\n.tc-import-spec-sheet {\n\tborder: 1px solid <<quick-colour-sheet-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-sheet-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-sheet-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-sheet-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-sheet-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-sheet-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-sheet-background>>;\n}\n\n.tc-import-spec-sheet-list {\n}\n\n.tc-import-spec-row-wrapper {\n\tborder: 1px solid <<quick-colour-row-border>>;\n\tbackground-color: <<quick-colour-row-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n\n.tc-import-spec-row {\n\tborder: 1px solid <<quick-colour-row-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-row-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-row-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-row-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-row-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-row-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-row-background>>;\n}\n\n.tc-import-spec-row-list {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-import-spec-field-wrapper {\n\tfont-size: 0.9em;\n\tborder: 1px solid <<quick-colour-field-border>>;\n\tbackground-color: <<quick-colour-field-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n" }, "$:/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js": { "title": "$:/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js", "text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import an xlsx file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"xlsx-import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilename = this.params[0],\n\t\timportSpec = this.params[1],\n\t\tXLSXImporter = require(\"$:/plugins/tiddlywiki/xlsx-utils/importer.js\").XLSXImporter,\n\t\timporter = new XLSXImporter({\n\t\t\tfilename: filename,\n\t\t\timportSpec: importSpec\n\t\t});\n\t$tw.wiki.addTiddlers(importer.getResults());\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n", "type": "application/javascript", "module-type": "command" } } }
{ "tiddlers": { "$:/plugins/tobibeer/appear/widget.js": { "text": "/*\\\r\ntitle: $:/plugins/tobibeer/appear/widget.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nUse the appear widget for popups, sliders, accordion menus\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";var t=require(\"$:/core/modules/widgets/widget.js\").widget,e=function(t,e){this.initialise(t,e)},i={};e.prototype=new t;e.prototype.render=function(t,e){this.parentDomNode=t;this.nextSibling=e;this.computeAttributes();this.execute();var i,s,r,a,h,n,l=[];if(this.handle){this.getHandlerCache(this.handle,1);this.refreshHandler()}else{s={type:\"button\"};s.attributes=this.setAttributes(s,\"button\");i=s.attributes[\"class\"].value.trim();s.attributes[\"class\"].value=i+\" appear-show\"+(this.handler?\" tc-popup-absolute\":\"\");s.children=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.show,{parseAsInline:true}).tree;h={type:\"reveal\",children:this.parseTreeNode.children};h.attributes=this.setAttributes(h,\"reveal\");h.isBlock=!(this.mode&&this.mode===\"inline\");if(h.attributes.type&&h.attributes.type.value===\"popup\"){s.attributes.popup=h.attributes.state;l.push(s);if(!this.handler){l.push(h)}else{s.attributes.handler=this.handler}}else{h.attributes.type={type:\"string\",value:\"match\"};h.attributes.text={type:\"string\",value:this.currentTiddler};s.attributes.set=h.attributes.state;s.attributes.setTo={type:\"string\",value:this.currentTiddler};a={type:\"reveal\",isBlock:this.block,children:[s],attributes:{type:{type:\"string\",value:\"nomatch\"},state:h.attributes.state,text:{type:\"string\",value:this.currentTiddler}}};if(!this.once){r=$tw.utils.deepCopy(s);r.attributes[\"class\"].value=i+\" appear-hide \"+(this.attr.button.selectedClass?this.attr.button.selectedClass:\"\");r.attributes.setTo={type:\"string\",value:\"\"};r.children=this.wiki.parseText(\"text/vnd.tiddlywiki\",this.hide,{parseAsInline:true}).tree}n=$tw.utils.deepCopy(a);n.children=[];if(!this.once){n.children.push(r)}if(!this.handler){n.children.push(h)}n.attributes.type.value=\"match\";l.push(a,n)}this.makeChildWidgets(l);this.renderChildren(this.parentDomNode,e);if(this.handler){this.addToHandlerCache(h)}}};e.prototype.execute=function(){var t=this;this.attr={map:{reveal:{\"class\":1,position:1,retain:1,state:1,style:1,tag:1,type:1},button:{\"button-class\":1,\"button-style\":1,\"button-tag\":1,tooltip:1,selectedClass:1}},rename:{\"button-class\":\"class\",\"button-style\":\"style\",\"button-tag\":\"tag\"},button:{},reveal:{}};$tw.utils.each(this.attributes,function(e,i){var s;$tw.utils.each(t.attr.map,function(r,a){$tw.utils.each(Object.keys(r),function(r){if(r==i){t.attr[a][i]=e;s=false;return false}});return s})});this.currentTiddler=this.getVariable(\"currentTiddler\");this.show=this.getValue(this.attributes.show,\"show\");this.hide=this.getValue(this.attributes.hide,\"hide\");if(!this.hide){this.hide=this.show}this.once=this.attributes.once&&this.attributes.once!==\"false\";this.$state=this.attributes.$state;this.mode=this.getValue(this.attributes.mode,\"mode\");this.handle=this.attributes.handle;this.handler=this.attributes.handler;this.handlerVariables=(this.attributes.variables||\"\")+\" currentTiddler\";this.keep=[\"yes\",\"true\"].indexOf((this.getValue(this.attributes.keep,\"keep\")||\"\").toLocaleLowerCase())>-1;if(!this.attr.reveal.state){this.attr.reveal.state=this.getValue(undefined,\"default-state\")+this.currentTiddler+this.getStateQualifier()+\"/\"+(this.attr.reveal.type?this.attr.reveal.type+\"/\":\"\")+(this.mode?this.mode+\"/\":\"\")+(this.once?\"once/\":\"\")+(this.$state?\"/\"+this.$state:\"\")}};e.prototype.refresh=function(t){var e=this.computeAttributes();if(Object.keys(e).length){this.refreshSelf();return true}if(this.handle){this.refreshHandler()}return this.refreshChildren(t)};e.prototype.getValue=function(t,e){var i,s,r={show:\"»\",\"default-state\":\"$:/temp/appear/\"};if(t===undefined){i=this.wiki.getTiddler(\"$:/plugins/tobibeer/appear/defaults/\"+e);if(i){s=i.getFieldString(\"undefined\");if(!s||s===\"false\"){t=i.getFieldString(\"text\")}}}if(t===undefined){t=r[e]}return t};e.prototype.setAttributes=function(t,e){var i=this,s={};$tw.utils.each(Object.keys(this.attr.map[e]),function(r){var a,h=i.attr.rename[r];if(!h){h=r}a=i.getValue(i.attr[e][r],r);if(h===\"class\"){a=[\"appear\",\"appear-\"+e,e===\"reveal\"&&i.keep?\"tc-popup-keep\":\"\",i.mode?\"appear-\"+i.mode:\"\",i.once?\"appear-once\":\"\",a||\"\"].join(\" \")}if(a!==undefined){if(h===\"tag\"){t.tag=a}else{s[h]={type:\"string\",value:a}}}});return s};e.prototype.getHandlerCache=function(t,e){var s=i[t];if(!s||e){i[t]={handled:{},handle:{}};s=i[t]}return s};e.prototype.refreshHandler=function(){var t=this,e=this.getHandlerCache(this.handle),s=e.handle;if(Object.keys(s).length){$tw.utils.each(s,function(e,i){t.removeChildNode(i);t.children.push(t.makeChildWidget(e));t.children[t.children.length-1].render(t.parentDomNode,t.nextSibling)});i[this.handle].handle={}}};e.prototype.removeChildNode=function(t){var e=this;$tw.utils.each(this.children,function(i,s){if(i.children[0].state===t){i.removeChildDomNodes();e.children.splice(s);return false}})};e.prototype.addToHandlerCache=function(t){var e=this,i=t.attributes.state.value,s=this.getHandlerCache(this.handler),r=s.handled[i],a={type:\"vars\",children:[t],attributes:{}};$tw.utils.each((this.handlerVariables||\"\").split(\" \"),function(t){t=t.trim();if(t){a.attributes[t]={type:\"string\",value:(e.getVariable(t)||\"\").toString()}}});if(a!==r){s.handle[i]=a;this.wiki.setText(\"$:/temp/appear-handler/\"+this.handler,\"text\",undefined,i)}};exports.appear=e})();", "title": "$:/plugins/tobibeer/appear/widget.js", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/tobibeer/appear/defaults/show": { "title": "$:/plugins/tobibeer/appear/defaults/show", "text": "»" }, "$:/plugins/tobibeer/appear/defaults/mode": { "title": "$:/plugins/tobibeer/appear/defaults/mode", "text": "block" }, "$:/plugins/tobibeer/appear/defaults/keep": { "title": "$:/plugins/tobibeer/appear/defaults/keep", "text": "yes" }, "$:/plugins/tobibeer/appear/defaults/button-class": { "title": "$:/plugins/tobibeer/appear/defaults/button-class", "text": "tc-btn-invisible tc-tiddlylink" }, "$:/plugins/tobibeer/appear/defaults/default-state": { "title": "$:/plugins/tobibeer/appear/defaults/default-state", "text": "$:/temp/appear/" }, "$:/plugins/tobibeer/appear/popup.js": { "text": "/*\\\r\ntitle: $:/plugins/tobibeer/appear/popup.js\r\ntype: application/javascript\r\nmodule-type: utils\r\n\r\nAn enhanced version of the core Popup to support:\r\n* absolute popups\r\n* preview popups\r\n* popup z-index\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";var t=require(\"$:/core/modules/utils/dom/popup.js\").Popup,e=require(\"$:/core/modules/widgets/reveal.js\").reveal,s=e.prototype.refresh;t.prototype.show=function(t){var e,s=t.domNode,p=$tw.utils.hasClass(s,\"tc-popup-absolute\"),o=this.popupInfo(s),i=function(t){var e=t,s=0,p=0;do{s+=e.offsetLeft||0;p+=e.offsetTop||0;e=e.offsetParent}while(e);return{left:s,top:p}},l={left:s.offsetLeft,top:s.offsetTop};e=o.popupLevel;if(o.isHandle){e++}this.cancel(e);if(this.findPopup(t.title)===-1){this.popups.push({title:t.title,wiki:t.wiki,domNode:s})}l=p?i(s):l;t.wiki.setTextReference(t.title,\"(\"+l.left+\",\"+l.top+\",\"+s.offsetWidth+\",\"+s.offsetHeight+\")\");if(this.popups.length>0){this.rootElement.addEventListener(\"click\",this,true)}};t.prototype.popupInfo=function(t){var e,s=false,p=t;while(p&&e===undefined){if($tw.utils.hasClass(p,\"tc-popup-handle\")||$tw.utils.hasClass(p,\"tc-popup-keep\")){s=true}if($tw.utils.hasClass(p,\"tc-reveal\")&&($tw.utils.hasClass(p,\"tc-popup\")||$tw.utils.hasClass(p,\"tc-popup-handle\"))){e=parseInt(p.style.zIndex)-1e3}p=p.parentNode}var o={popupLevel:e||0,isHandle:s};return o};t.prototype.handleEvent=function(t){if(t.type===\"click\"){var e=this.popupInfo(t.target),s=e.popupLevel-1;if(e.isHandle){if(s<0){s=1}else{s++}}this.cancel(s)}};e.prototype.refresh=function(){var t,e,p=this.isOpen;e=s.apply(this,arguments);t=this.domNodes[0];if(this.isOpen&&(p!==this.isOpen||!t.style.zIndex)&&t&&(this.type===\"popup\"||$tw.utils.hasClass(t,\"tc-block-dropdown\")&&$tw.utils.hasClass(t,\"tc-reveal\"))){t.style.zIndex=1e3+$tw.popup.popups.length}return e}})();", "title": "$:/plugins/tobibeer/appear/popup.js", "type": "application/javascript", "module-type": "utils" }, "$:/plugins/tobibeer/appear/readme": { "title": "$:/plugins/tobibeer/appear/readme", "text": "This plugin provides the ''$appear'' widget that can render popups and sliders (inline or block) as well as accordion menus.\n\n!! Attributes\r\n; type\r\n: set to `popup` to have the content appear as a popup\r\n; show\r\n: the button label\r\n; hide\r\n: the hide button label\r\n; mode\r\n: either `block` or `inline`, with respect to the inner content\r\n: any other mode is interpreted as block mode, without the default styles applying, e.g. drop-shadows\r\n; once\r\n: allows to click the button once, then hides it (unless the state is deleted)\r\n; $state\r\n: the widget calculates a state for you, use this to append a simple id\r\n; state\r\n: alternatively, specify a fully qualified state\r\n; keep\r\n: make popups sticky when `yes` or `true`\r\n; handle / handler / variables\r\n: allows to take the popup contents out of the flow and render them elsewhere on the page\r\n: required to properly create popups in table cells and other constained elements\r\n: specify variables to take along\n\n<br>\n\n; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#appear\r\n" }, "$:/plugins/tobibeer/appear/styles": { "title": "$:/plugins/tobibeer/appear/styles", "tags": "$:/tags/Stylesheet", "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<pre>.tc-reveal.appear-block,\r\n.tc-popup.appear {\r\n\tborder-radius: 5px;\r\n\tpadding: 1px 1em;\r\n\t<<box-shadow \"2px 2px 4px rgba(0,0,0,0.3)\">>;\r\n}\r\n.tc-popup.appear {\r\n\tpadding: 0 1em;\r\n\tbackground: <<colour background>>;\r\n}\r\n.appear-reveal.appear-inline{\r\nmargin-left:5px;\r\n}\r\n.appear-reveal.appear-inline.appear-once{\r\nmargin-left:0;\r\n}</pre>" } } }
tc-btn-invisible tc-tiddlylink
$:/temp/appear/
yes
block
»
/*\ title: $:/plugins/tobibeer/appear/popup.js type: application/javascript module-type: utils An enhanced version of the core Popup to support: * absolute popups * preview popups * popup z-index @preserve \*/ (function(){"use strict";var t=require("$:/core/modules/utils/dom/popup.js").Popup,e=require("$:/core/modules/widgets/reveal.js").reveal,s=e.prototype.refresh;t.prototype.show=function(t){var e,s=t.domNode,p=$tw.utils.hasClass(s,"tc-popup-absolute"),o=this.popupInfo(s),i=function(t){var e=t,s=0,p=0;do{s+=e.offsetLeft||0;p+=e.offsetTop||0;e=e.offsetParent}while(e);return{left:s,top:p}},l={left:s.offsetLeft,top:s.offsetTop};e=o.popupLevel;if(o.isHandle){e++}this.cancel(e);if(this.findPopup(t.title)===-1){this.popups.push({title:t.title,wiki:t.wiki,domNode:s})}l=p?i(s):l;t.wiki.setTextReference(t.title,"("+l.left+","+l.top+","+s.offsetWidth+","+s.offsetHeight+")");if(this.popups.length>0){this.rootElement.addEventListener("click",this,true)}};t.prototype.popupInfo=function(t){var e,s=false,p=t;while(p&&e===undefined){if($tw.utils.hasClass(p,"tc-popup-handle")||$tw.utils.hasClass(p,"tc-popup-keep")){s=true}if($tw.utils.hasClass(p,"tc-reveal")&&($tw.utils.hasClass(p,"tc-popup")||$tw.utils.hasClass(p,"tc-popup-handle"))){e=parseInt(p.style.zIndex)-1e3}p=p.parentNode}var o={popupLevel:e||0,isHandle:s};return o};t.prototype.handleEvent=function(t){if(t.type==="click"){var e=this.popupInfo(t.target),s=e.popupLevel-1;if(e.isHandle){if(s<0){s=1}else{s++}}this.cancel(s)}};e.prototype.refresh=function(){var t,e,p=this.isOpen;e=s.apply(this,arguments);t=this.domNodes[0];if(this.isOpen&&(p!==this.isOpen||!t.style.zIndex)&&t&&(this.type==="popup"||$tw.utils.hasClass(t,"tc-block-dropdown")&&$tw.utils.hasClass(t,"tc-reveal"))){t.style.zIndex=1e3+$tw.popup.popups.length}return e}})();
This plugin provides the ''$appear'' widget that can render popups and sliders (inline or block) as well as accordion menus. !! Attributes ; type : set to `popup` to have the content appear as a popup ; show : the button label ; hide : the hide button label ; mode : either `block` or `inline`, with respect to the inner content : any other mode is interpreted as block mode, without the default styles applying, e.g. drop-shadows ; once : allows to click the button once, then hides it (unless the state is deleted) ; $state : the widget calculates a state for you, use this to append a simple id ; state : alternatively, specify a fully qualified state ; keep : make popups sticky when `yes` or `true` ; handle / handler / variables : allows to take the popup contents out of the flow and render them elsewhere on the page : required to properly create popups in table cells and other constained elements : specify variables to take along <br> ; documentation / examples / demos... : http://tobibeer.github.io/tw5-plugins#appear
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html <pre>.tc-reveal.appear-block, .tc-popup.appear { border-radius: 5px; padding: 1px 1em; <<box-shadow "2px 2px 4px rgba(0,0,0,0.3)">>; } .tc-popup.appear { padding: 0 1em; background: <<colour background>>; } .appear-reveal.appear-inline{ margin-left:5px; } .appear-reveal.appear-inline.appear-once{ margin-left:0; }</pre>
/*\ title: $:/plugins/tobibeer/appear/widget.js type: application/javascript module-type: widget Use the appear widget for popups, sliders, accordion menus @preserve \*/ (function(){"use strict";var t=require("$:/core/modules/widgets/widget.js").widget,e=function(t,e){this.initialise(t,e)},i={};e.prototype=new t;e.prototype.render=function(t,e){this.parentDomNode=t;this.nextSibling=e;this.computeAttributes();this.execute();var i,s,r,a,h,n,l=[];if(this.handle){this.getHandlerCache(this.handle,1);this.refreshHandler()}else{s={type:"button"};s.attributes=this.setAttributes(s,"button");i=s.attributes["class"].value.trim();s.attributes["class"].value=i+" appear-show"+(this.handler?" tc-popup-absolute":"");s.children=this.wiki.parseText("text/vnd.tiddlywiki",this.show,{parseAsInline:true}).tree;h={type:"reveal",children:this.parseTreeNode.children};h.attributes=this.setAttributes(h,"reveal");h.isBlock=!(this.mode&&this.mode==="inline");if(h.attributes.type&&h.attributes.type.value==="popup"){s.attributes.popup=h.attributes.state;l.push(s);if(!this.handler){l.push(h)}else{s.attributes.handler=this.handler}}else{h.attributes.type={type:"string",value:"match"};h.attributes.text={type:"string",value:this.currentTiddler};s.attributes.set=h.attributes.state;s.attributes.setTo={type:"string",value:this.currentTiddler};a={type:"reveal",isBlock:this.block,children:[s],attributes:{type:{type:"string",value:"nomatch"},state:h.attributes.state,text:{type:"string",value:this.currentTiddler}}};if(!this.once){r=$tw.utils.deepCopy(s);r.attributes["class"].value=i+" appear-hide "+(this.attr.button.selectedClass?this.attr.button.selectedClass:"");r.attributes.setTo={type:"string",value:""};r.children=this.wiki.parseText("text/vnd.tiddlywiki",this.hide,{parseAsInline:true}).tree}n=$tw.utils.deepCopy(a);n.children=[];if(!this.once){n.children.push(r)}if(!this.handler){n.children.push(h)}n.attributes.type.value="match";l.push(a,n)}this.makeChildWidgets(l);this.renderChildren(this.parentDomNode,e);if(this.handler){this.addToHandlerCache(h)}}};e.prototype.execute=function(){var t=this;this.attr={map:{reveal:{"class":1,position:1,retain:1,state:1,style:1,tag:1,type:1},button:{"button-class":1,"button-style":1,"button-tag":1,tooltip:1,selectedClass:1}},rename:{"button-class":"class","button-style":"style","button-tag":"tag"},button:{},reveal:{}};$tw.utils.each(this.attributes,function(e,i){var s;$tw.utils.each(t.attr.map,function(r,a){$tw.utils.each(Object.keys(r),function(r){if(r==i){t.attr[a][i]=e;s=false;return false}});return s})});this.currentTiddler=this.getVariable("currentTiddler");this.show=this.getValue(this.attributes.show,"show");this.hide=this.getValue(this.attributes.hide,"hide");if(!this.hide){this.hide=this.show}this.once=this.attributes.once&&this.attributes.once!=="false";this.$state=this.attributes.$state;this.mode=this.getValue(this.attributes.mode,"mode");this.handle=this.attributes.handle;this.handler=this.attributes.handler;this.handlerVariables=(this.attributes.variables||"")+" currentTiddler";this.keep=["yes","true"].indexOf((this.getValue(this.attributes.keep,"keep")||"").toLocaleLowerCase())>-1;if(!this.attr.reveal.state){this.attr.reveal.state=this.getValue(undefined,"default-state")+this.currentTiddler+this.getStateQualifier()+"/"+(this.attr.reveal.type?this.attr.reveal.type+"/":"")+(this.mode?this.mode+"/":"")+(this.once?"once/":"")+(this.$state?"/"+this.$state:"")}};e.prototype.refresh=function(t){var e=this.computeAttributes();if(Object.keys(e).length){this.refreshSelf();return true}if(this.handle){this.refreshHandler()}return this.refreshChildren(t)};e.prototype.getValue=function(t,e){var i,s,r={show:"»","default-state":"$:/temp/appear/"};if(t===undefined){i=this.wiki.getTiddler("$:/plugins/tobibeer/appear/defaults/"+e);if(i){s=i.getFieldString("undefined");if(!s||s==="false"){t=i.getFieldString("text")}}}if(t===undefined){t=r[e]}return t};e.prototype.setAttributes=function(t,e){var i=this,s={};$tw.utils.each(Object.keys(this.attr.map[e]),function(r){var a,h=i.attr.rename[r];if(!h){h=r}a=i.getValue(i.attr[e][r],r);if(h==="class"){a=["appear","appear-"+e,e==="reveal"&&i.keep?"tc-popup-keep":"",i.mode?"appear-"+i.mode:"",i.once?"appear-once":"",a||""].join(" ")}if(a!==undefined){if(h==="tag"){t.tag=a}else{s[h]={type:"string",value:a}}}});return s};e.prototype.getHandlerCache=function(t,e){var s=i[t];if(!s||e){i[t]={handled:{},handle:{}};s=i[t]}return s};e.prototype.refreshHandler=function(){var t=this,e=this.getHandlerCache(this.handle),s=e.handle;if(Object.keys(s).length){$tw.utils.each(s,function(e,i){t.removeChildNode(i);t.children.push(t.makeChildWidget(e));t.children[t.children.length-1].render(t.parentDomNode,t.nextSibling)});i[this.handle].handle={}}};e.prototype.removeChildNode=function(t){var e=this;$tw.utils.each(this.children,function(i,s){if(i.children[0].state===t){i.removeChildDomNodes();e.children.splice(s);return false}})};e.prototype.addToHandlerCache=function(t){var e=this,i=t.attributes.state.value,s=this.getHandlerCache(this.handler),r=s.handled[i],a={type:"vars",children:[t],attributes:{}};$tw.utils.each((this.handlerVariables||"").split(" "),function(t){t=t.trim();if(t){a.attributes[t]={type:"string",value:(e.getVariable(t)||"").toString()}}});if(a!==r){s.handle[i]=a;this.wiki.setText("$:/temp/appear-handler/"+this.handler,"text",undefined,i)}};exports.appear=e})();
{ "tiddlers": { "$:/plugins/tobibeer/dict/config": { "title": "$:/plugins/tobibeer/dict/config", "text": "Default template macro:\n\n<$edit-text tag=\"input\" tiddler=\"$:/plugins/tobibeer/dict/config/template\"/>\n\nSee: $:/plugins/tobibeer/dict/templates" }, "$:/plugins/tobibeer/dict/config/template": { "title": "$:/plugins/tobibeer/dict/config/template", "text": "?abbr" }, "$:/plugins/tobibeer/dict/dictionary": { "title": "$:/plugins/tobibeer/dict/dictionary", "text": "Default dicitonary:\n\n<$edit-text class=\"dict-terms\"\r\ntiddler=\"$:/plugins/tobibeer/dict/terms\"/>\r\n<style>.dict-terms {width:100%;min-height:100px;}</style>" }, "$:/plugins/tobibeer/dict/macro": { "title": "$:/plugins/tobibeer/dict/macro", "tags": "$:/tags/Macro", "text": "\\define ?via(dt,dd)\r\n<$set name=\"template\" filter=\"$(via)$ \" emptyValue={{$:/plugins/tobibeer/dict/config/template}}>\r\n<$macrocall $name=<<template>> dt=\"\"\"$dt$\"\"\" dd=\"\"\"$dd$\"\"\"/>\r\n</$set>\r\n\\end\r\n\\define ?fromdict()\r\n<$macrocall $name=\"?via\" dt=<<term>> dd={{$(currentTiddler)$##$(index)$}}/>\r\n\\end\r\n\\define ?(term, def, at, dict, as, via)\r\n<$set name=\"term\" filter=\"$as$ \" emptyValue=\"$term$\">\r\n<$set name=\"via\" value=\"$via$\">\r\n<$reveal type=\"nomatch\" text=\"\" default=\"$def$\">\r\n<$macrocall $name=\"?via\" dd=\"\"\"$def$\"\"\" dt=<<term>>/>\r\n</$reveal>\r\n<$reveal type=\"match\" text=\"\" default=\"$def$\">\r\n<$reveal type=\"nomatch\" text=\"\" default=\"$at$\">\r\n<$macrocall $name=\"?via\" dd={{$at$}} dt=<<term>>/>\r\n</$reveal>\r\n<$reveal type=\"match\" text=\"\" default=\"$at$\">\r\n<$set name=\"dict\" filter=\"$dict$ \" emptyValue=\"default\">\r\n<$list filter=\"[all[tiddlers+shadows]field:dict<dict>limit[1]]\">\r\n<$vars index=\"$term$\">\r\n<<?fromdict>>\r\n</$vars>\r\n</$list>\r\n</$set>\r\n</$reveal>\r\n</$reveal>\r\n</$set>\r\n</$set>\r\n\\end" }, "$:/plugins/tobibeer/dict/readme": { "title": "$:/plugins/tobibeer/dict/readme", "text": "; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#dict\n\nDefinitions for terms such as acronyms can be...\n\n; defined inline\r\n: `<<? term definition>>` => <<? term definition>>\r\n; fetched from text-references\r\n: `<<? term at:\"!!somefield\">>`\r\n; read from dictionary tiddlers\r\n: `<<? term>>` => <<? term>>\r\n: `<<? term dict:somedict>>`\r\n; displayed with alternative text\r\n: `<<? term as:Term>>`\r\n; displayed via custom template macros\r\n: `<<? term via:?dl>>`" }, "$:/plugins/tobibeer/dict/templates": { "title": "$:/plugins/tobibeer/dict/templates", "tags": "$:/tags/Macro", "text": "\\define ?abbr(dt,dd)\r\n<abbr title=\"\"\"$dd$\"\"\">$dt$</abbr>\r\n\\end\n\n\\define ?dl(dt,dd)\r\n<dl>\r\n<dt>$dt$</dt>\r\n<dd>$dd$</dd>\r\n</dl>\r\n\\end" }, "$:/plugins/tobibeer/dict/terms": { "title": "$:/plugins/tobibeer/dict/terms", "type": "application/x-tiddler-dictionary", "dict": "default", "text": "term: definition, read from $:/plugins/tobibeer/dict/terms" } } }
term: definition, read from $:/plugins/tobibeer/dict/terms Prolégomènes:C'est mon pseudonyme sur internet attribut:en programmation, les attributs sont des entités qui définissent les propriétés d'objets, d'éléments, ou de fichiers. Les attributs sont habituellement composés d'un identificateur (ou nom ou clé) et d'une valeur, noyau:core gabarit:template modèle:template modèles:templates bogue:bug vide:empty
{ "tiddlers": { "$:/plugins/tobibeer/eval/filter": { "title": "$:/plugins/tobibeer/eval/filter", "text": "```\r\neval:<suffix>[<expression>]\n\n{{{ 1 2 +[eval:$eq[\r\n{!!title} + value \\\r\ninit: 10 \\\r\nfinal: value / 100\r\n]] }}}\r\n```\n\n; `<expression>`\r\n: declare an expression, plus variables and options as `name:value`, split via `\\`\r\n; runtime variables\r\n: value, title\r\n; special variables\r\n: init, final\r\n; options\r\n: format, current, lib\r\n; custom variables\r\n: use simple word-titles\r\n; `<suffix>`\r\n: optional mode, prefixed $\r\n; $\r\n: any input titles with truthy value\r\n; $all\r\n: all input titles, if one has truthy value\r\n; $val\r\n: values\r\n; $expr\r\n: expressions\r\n; $eq\r\n: equations" }, "$:/plugins/tobibeer/eval/filters/eval.js": { "title": "$:/plugins/tobibeer/eval/filters/eval.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/eval/filters/eval.js\r\ntype: application/javascript\r\nmodule-type: filteroperator\r\n\r\na filter to compute and compare numbers, booleans and dates\r\n\r\n@preserve\r\n\\*/\r\n(function(){\"use strict\";var e=require(\"$:/plugins/tobibeer/eval/lib.js\"),i=e.getLibrary(\"$:/plugins/tobibeer/eval/libraries\");if(i&&i.jsWarning){console.log(\"Warning eval filter: no math.js found, running in javascript eval mode!\")}exports.eval=function(e,r,t){var n,l,a,f,s,u,o,d,p={},c={not:[]},v=t.widget,b=v?v.getVariable(\"currentTiddler\"):\"\",g=/^\\s*([\\w\\d\\/]*):(.*)(?:\\s*)$/,m=/^\\s*\\$([\\w]*)(?:\\s*)$/,x=t.wiki;try{s=m.exec(r.suffix||\"\");if(s&&!u){u=s[1]?s[1]:\"any\";c[u]=[]}$tw.utils.each((r.operand||\"\").split(\"\\\\\"),function(e){if(e){s=g.exec(e);if(s){p[s[1]]=s[2]}else if(l===undefined){l=e}}});if(p.lib){f=p.lib.trim().split(\" \");p.lib=x.getLibrary({type:f[0],id:f[1]?f[1]:undefined})}else{p.lib=i}if(!p.lib||!p.lib.eval){throw\"No suitable library configured.\"}l=l||\"\";$tw.utils.each(Object.keys(p),function(e){if([\"current\",\"if\",\"final\",\"format\",\"lib\"].indexOf(e)<0){n=x.parseExpressionReferences(p[e],{widget:v,tiddler:b});d=p.lib.eval(n);p[e]=d===undefined?0:d}});if(p.format){if(i.format){if(p.format.indexOf(\":\")>=0){a=(\"{\"+p.format+\"}\").replace(/[\\'\\\"]/g,'\"').replace(/(\\w+):/g,'\"$1\":');p.format=JSON.parse(a)}}else{p.format=undefined}}p.value=p.init===undefined?0:p.init;if(!p.count){p.count=0}if(l||p.value||p.final!==undefined){e(function(e,r){p.count++;p.title=r;var t=p.current?p.current.replace(/%title%/gm,p.title):\"\";n=x.parseExpression(l,{widget:v,tiddler:r,vars:p,title:r,references:true});d=p.lib.eval(n.trim());p.value=d;if(p.format&&(c.val||c.eq)){d=d?i.format(d,p.format):d}if(c.val){c.val.push(d+t)}if(d){if(c.any){c.any.push(r)}}else{c.not.push(r)}if(c.all){c.all.push(r)}if(c.expr){c.expr.push(n+t)}if(c.eq){c.eq.push(n+\" = \"+d+t)}});if(p.final!==undefined){n=x.parseExpression(p.final,{widget:v,tiddler:b,vars:p,title:\"\",references:true});p.value=d=p.lib.eval(n);if(c.expr){c.expr.push(n)}if(c.eq){c.eq.push(n+\" = \"+d)}}}else{p.value=\"false\"}if(u){o=c[u]}else{d=(p.format?i.format(p.value,p.format):p.value).toString();o=[d]}if(p.if!==undefined){n=x.parseExpression(p.if,{widget:v,tiddler:b,vars:p,references:true});d=p.lib.eval(n);if(p.value.toString()!==(d===undefined?\"\":d).toString()){return[]}}}catch(n){return[\"Error in eval filter:\\n\"+n]}return o}})();", "type": "application/javascript", "module-type": "filteroperator" }, "$:/plugins/tobibeer/eval/lib.js": { "title": "$:/plugins/tobibeer/eval/lib.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/eval/lib.js\r\ntype: application/javascript\r\nmodule-type: wikimethod\r\n\r\nProvides library handling to wiki object.\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";exports.getLibrary=function(e){if(typeof e===\"string\"){e={config:e}}else if(typeof e!==\"object\"){return}var i,r,l,t=$tw.wiki,a=e.config,o=e.type,s=e.id;if(!t.libraries){t.libraries=Object.create(null);t.libraryConfigs=Object.create(null)}if(a||o){if(a){i=t.libraryConfigs[a];if(i){$tw.utils.each(i,function(e){if(!o&&!s||o===e.type&&!s||o===e.type&&s===e.id){l=t.libraries[e.type].loaded[e.id];return false}})}else{r=$tw.wiki.getTiddler(e.config);t.libraryConfigs[a]=[];JSON.parse(r?r.getFieldString(\"text\"):\"[]\").map(function(e){var i,r=e.id,l=e.type;try{if(l===\"js\"){if(!r){e.id=r=\"js/eval\"}i={eval:eval,type:l,id:r}}else{if(!r){e.id=r=l}if(t.getTiddler(e.require)){i=require(e.require)}else{return}}if(!t.libraries[l]){t.libraries[l]={loaded:Object.create(null),primary:r}}if(i.id===\"js/eval\"){i.jsWarning=true}t.libraries[l].loaded[r]=i;t.libraryConfigs[a].push(e);if(!o){o=l}}catch(s){console.log(s)}})}}if(!l){if(o){if(o&&!t.libraries[o]){console.log(\"No '\"+o+\"' library loaded for use with tobibeer/eval!\")}else{l=t.libraries[o].loaded[s||t.libraries[o].primary]}}else{console.log(\"Could not load any library configured for tobibeer/eval!\\n\"+\"Install tobibeer/math.js or enable js eval.\")}}}return l}})();", "type": "application/javascript", "module-type": "wikimethod" }, "$:/plugins/tobibeer/eval/libraries": { "title": "$:/plugins/tobibeer/eval/libraries", "type": "application/json", "text": "[\r\n\t{\"type\":\"math.js\", \"require\": \"$:/lib/math.js\"},\r\n\t{\"type\":\"math.js\", \"id\":\"mklauber/math.js\", \"require\":\"$:/plugins/mklauber/math.js/math.js\"}\r\n]" }, "$:/plugins/tobibeer/eval/readme": { "title": "$:/plugins/tobibeer/eval/readme", "text": "This plugin allows you to compute and compare tiddler propeties using...\n\n; eval[<expression>]\r\n: a ''filter'' evaluating an expression in the operand\r\n; <$eval>{{!!count}} + 1</eval>\r\n: a ''widget'' evaluating it's content as an expression\n\n<br>\n\n; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#eval\r\n; configuration\r\n: $:/plugins/tobibeer/eval/libraries (see documentation)" }, "$:/plugins/tobibeer/eval/widget": { "title": "$:/plugins/tobibeer/eval/widget", "text": "Evaluates inner content as expression.\n\n```\r\n<$eval lib=\"js\">1 + {{!!count}}</$eval>\r\n```\n\n!! Attributes\n\n; lib\r\n: library to use for evaluation\r\n; undefined\r\n: output if result is undefined\r\n; quiet\r\n: if `true` => no verbose errors" }, "$:/plugins/tobibeer/eval/widgets/eval.js": { "title": "$:/plugins/tobibeer/eval/widgets/eval.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/eval/widgets/eval.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nRenders evaluated output\r\n\r\n@preserve\r\n\\*/\r\n(function(){\"use strict\";var e=require(\"$:/plugins/tobibeer/eval/lib.js\"),t=e.getLibrary({config:\"$:/plugins/tobibeer/eval/libraries\"});var i=require(\"$:/core/modules/widgets/widget.js\").widget;var r=function(e,t){this.initialise(e,t)};r.prototype=new i;r.prototype.render=function(i,r){this.parentDomNode=i;this.computeAttributes();this.execute();var n,s,d=t,u=this.document.createElement(\"div\");this.renderChildren(u);n=(u.textContent||u.innerText).trim();if(this.library){d=e.getLibrary({type:this.library})}try{s=d.eval(n)}catch(h){if(!this.quiet&&!this.undefined){s=\"Unable to evaluate '\"+n+\"' (\"+h+\").\"}}if(this.undefined!==undefined&&(s===undefined||s===\"undefined\")){s=this.undefined}var o=this.document.createTextNode(s);i.insertBefore(o,r);this.domNodes.push(o)};r.prototype.execute=function(){this.quiet=this.getAttribute(\"quiet\",false);this.undefined=this.getAttribute(\"undefined\");this.library=this.getAttribute(\"lib\");this.makeChildWidgets([{type:\"element\",tag:\"div\",children:this.parseTreeNode.children}])};r.prototype.refresh=function(e){if(this.refreshChildren(e)){this.refreshSelf();return true}return false};exports.eval=r})();", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/tobibeer/eval/wiki.js": { "title": "$:/plugins/tobibeer/eval/wiki.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/eval/wiki.js\r\ntype: application/javascript\r\nmodule-type: wikimethod\r\n\r\nProvides parsing for filter-like references.\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";exports.parseExpression=function(e,s){if(!s){s={}}s.vars=s.vars||{};var r=this;if(s.references){e=r.parseExpressionReferences(e,s)}$tw.utils.each(Object.keys(s.vars),function(r){var n=new RegExp(\"\\\\b\"+r+\"\\\\b\",\"mg\");e=e.replace(n,s.vars[r])});return e};exports.parseExpressionReferences=function(e,s,r){var n,i,t,a,f,c,u,d,l=\"\",p=1,g=0,o=this;r=r===undefined?0:r++;if(r===7){throw\"max stack level reached\"}else{r++;p=e}do{a=u=undefined;t=e.substring(g).search(/[\\{<]{2}[^\\s]+/);if(t<0){l+=e.substr(g);g=e.length}else{t+=g;n=e.charAt(t);l+=e.substring(g,t);g=t+2;switch(n){case\"{\":a=true;t=e.indexOf(\"}}\",g);break;case\"<\":u=true;t=e.indexOf(\">>\",g);break}if((a||u)&&t===-1){throw\"Missing closing bracket in expression\"}else{i=[];d=e.substring(g,t);g=t+2;d=d.split(\";\");if(d.length>2){i=d[2].split(\",\")}c=d[1]===undefined?0:d[1];d=d[0];f=a?o.getTextReference(d,\"\",s.tiddler):s.widget?s.widget.getVariable(d):\"\";if(i.length){f=i[2]?f.split(i[2])[0]:f.substr(i[0]===undefined?0:parseInt(i[0]),i[1]===undefined?i[1]:parseInt(i[1]))}if(f===\"\"||f===undefined){f=c}l+=f}}}while(g<e.length);if(l!=p){l=o.parseExpressionReferences(l,s,r)}return l}})();", "type": "application/javascript", "module-type": "wikimethod" } } }
{ "tiddlers": { "$:/plugins/tobibeer/filter/filters.js": { "title": "$:/plugins/tobibeer/filter/filters.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/filter/filters.js\r\ntype: application/javascript\r\nmodule-type: filteroperator\r\n\r\nFilters tiddlers based on a filter expression given in the operand.\r\n\r\n@preserve\r\n\\*/\r\n(function(){\"use strict\";exports.filter=function(t,e,i){try{var r,l,n,s,a,f=\"inputTitle\",u=0,c=0,p=i.widget,o=[],h=[],g=\"[all[tiddlers]tag<inputTitle>]\";t(function(t,e){o.push(e)});$tw.utils.each((e.suffix||\"\").split(\" \"),function(t){t=t.trim();if(t){if(t.charAt(0)===\"$\"){u=t.length===1?1:2}else if(t.toUpperCase()===\"INPUT\"){c=1}else if(t.toUpperCase().substr(0,4)===\"VAR:\"){a=t.substr(4).trim()}}});if(!a){a=f}l=p&&p.parentWidget?p.parentWidget:null;s=l?l.getVariable(a):null;n=e.operand||g;t(function(t,e){try{var i=n;if(l){l.setVariable(a,e)}if(p){i=p.substituteVariableReferences(i)}i=i.replace(/%([^(\\s\\%]+)%/gm,function(t,e){return p.getVariable(e,\"\")});r=$tw.wiki.filterTiddlers(i,p,c?o:[e]);if(r.length){if(u===1){h.push(e)}else{$tw.utils.each(r,function(t){if(h.indexOf(t)<0){h.push(t)}})}}}catch(s){throw\"can't evaluate subfilter `\"+i+\"`\"}});if(s!==null){l.setVariable(a,s)}if(u===2){if(h.length){h=o}else{h=[]}}return h}catch(b){return[\"filter error: \"+b]}}})();", "type": "application/javascript", "module-type": "filteroperator" }, "$:/plugins/tobibeer/filter/readme": { "title": "$:/plugins/tobibeer/filter/readme", "text": "The plugin $:/plugins/tobibeer/filter provides:\n\n; filter[]\r\n: a filter allowing to evaluate subfilters in a filter expression\n\n!!Syntax Variants\n\n; `[filter<subfilter>]`\r\n: evaluates ''subfilter'' against each input title\r\n: sets the variable ''inputTitle'' to each title in turn\r\n: uses __each__ input title as the source for the subfilter\r\n; `[filter{subfilter}]`\r\n: retrieves the subfilter from a text-reference\r\n; `[filter:input<subfilter>]`\r\n: uses __all__ input titles as the source for the subfilter\r\n; `[filter: var:item<subfilter>]`\r\n: sets variable ''item'' to each input title in turn\r\n; `[filter:$ var:item<subfilter>]`\r\n: returns input titles with matches, sets ''item''\r\n; `[filter:$all input{subfilter}]`\r\n: returns __all__ input titles if __any__ had matches\r\n: evaluates for each input title against __all__ input titles\n\n!! Placeholders\n\n; `%variable-name%`\r\n: replace context variables in the subfilter, incl. `%inputTitle%`\n\n<br/>\n\n; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#filter" } } }
{ "tiddlers": { "$:/plugins/tobibeer/plantuml/defaults/edit": { "title": "$:/plugins/tobibeer/plantuml/defaults/edit", "text": "true" }, "$:/plugins/tobibeer/plantuml/lingo/edit": { "title": "$:/plugins/tobibeer/plantuml/lingo/edit", "text": "globally enable edit links for all output (\"yes\" or \"true\")" }, "$:/plugins/tobibeer/plantuml/lingo/edit-link": { "title": "$:/plugins/tobibeer/plantuml/lingo/edit-link", "text": "» edit:" }, "$:/plugins/tobibeer/plantuml/readme": { "title": "$:/plugins/tobibeer/plantuml/readme", "text": "The plugin $:/plugins/tobibeer/plantuml provides:\n\n; `[[plantuml[<uml>]]]`\r\n: a widget to render [[PlantUML|http://plantuml.org]] diagrams online as either image or text\r\n: allows the same attributes as <<x \"Images in WikiText\">>\n\n<br>\n\n; documentation / examples / demos...\r\n: http://tobibeer.github.io/tw5-plugins#plantuml" }, "$:/plugins/tobibeer/plantuml/styles": { "title": "$:/plugins/tobibeer/plantuml/styles", "tags": "$:/tags/Stylesheet", "text": ".tc-plantuml-txt {\r\n\tborder:0;\r\n\twidth:100%;\r\n\theight:400px;\r\n}\r\n.tc-plantuml-edit.tc-tiddlylink-external{\r\n text-decoration:none;\r\n}" }, "$:/plugins/tobibeer/plantuml/utils.js": { "title": "$:/plugins/tobibeer/plantuml/utils.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/plantuml/utils.js\r\ntype: application/javascript\r\nmodule-type: utils\r\n\r\nUtility functions to handle plantuml...\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";var r={encodePlantUML:function(r,e){return e===\"src\"?r:(e===\"edit\"?\"http://www.planttext.com/planttext?text=\":\"http://www.plantuml.com/plantuml/\"+e+\"/\")+this.encode64(this.deflate()(unescape(encodeURIComponent(r))))},encode64:function(r){var e,n=\"\";for(e=0;e<r.length;e+=3){if(e+2==r.length){n+=this.append3bytes(r.charCodeAt(e),r.charCodeAt(e+1),0)}else if(e+1==r.length){n+=this.append3bytes(r.charCodeAt(e),0,0)}else{n+=this.append3bytes(r.charCodeAt(e),r.charCodeAt(e+1),r.charCodeAt(e+2))}}return n},append3bytes:function(r,e,n){var a=\"\",f=r>>2,i=(r&3)<<4|e>>4,t=(e&15)<<2|n>>6,l=n&63;a+=this.encode6bit(f&63);a+=this.encode6bit(i&63);a+=this.encode6bit(t&63);a+=this.encode6bit(l&63);return a},encode6bit:function(r){if(r<10){return String.fromCharCode(48+r)}r-=10;if(r<26){return String.fromCharCode(65+r)}r-=26;if(r<26){return String.fromCharCode(97+r)}r-=26;if(r===0){return\"-\"}if(r===1){return\"_\"}return\"?\"}};r.deflate=function(){var r=32768;var e=0;var n=1;var a=2;var f=6;var i=true;var t=32768;var l=64;var v=1024*8;var o=2*r;var u=3;var c=258;var s=16;var d=8192;var h=13;var w=d;var _=1<<h;var x=_-1;var y=r-1;var m=0;var A=4096;var p=c+u+1;var b=r-p;var g=1;var C=15;var I=7;var k=29;var S=256;var j=256;var z=S+1+k;var U=30;var L=19;var M=16;var P=17;var R=18;var q=2*z+1;var B=parseInt((h+u-1)/u);var D;var E,F;var G;var H=null;var J,K;var N;var O;var Q;var T;var V;var W;var X;var Y;var Z;var $;var rr;var er;var nr;var ar;var fr;var ir;var tr;var lr;var vr;var or;var ur;var cr;var sr;var dr;var hr;var wr;var _r;var xr;var yr;var mr;var Ar;var pr;var br;var gr;var Cr;var Ir;var kr;var Sr;var jr;var zr;var Ur;var Lr;var Mr;var Pr;var Rr;var qr;var Br;var Dr;var Er;var Fr;function Gr(){this.fc=0;this.dl=0}function Hr(){this.dyn_tree=null;this.static_tree=null;this.extra_bits=null;this.extra_base=0;this.elems=0;this.max_length=0;this.max_code=0}function Jr(r,e,n,a){this.good_length=r;this.max_lazy=e;this.nice_length=n;this.max_chain=a}function Kr(){this.next=null;this.len=0;this.ptr=new Array(v);this.off=0}var Nr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var Or=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var Qr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var Tr=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var Vr=[new Jr(0,0,0,0),new Jr(4,4,8,4),new Jr(4,5,16,8),new Jr(4,6,32,32),new Jr(4,4,16,16),new Jr(8,16,32,32),new Jr(8,16,128,128),new Jr(8,32,128,256),new Jr(32,128,258,1024),new Jr(32,258,258,4096)];function Wr(r){var e;if(!r)r=f;else if(r<1)r=1;else if(r>9)r=9;ur=r;G=false;tr=false;if(H!=null)return;D=E=F=null;H=new Array(v);O=new Array(o);Q=new Array(w);T=new Array(t+l);V=new Array(1<<s);dr=new Array(q);for(e=0;e<q;e++)dr[e]=new Gr;hr=new Array(2*U+1);for(e=0;e<2*U+1;e++)hr[e]=new Gr;wr=new Array(z+2);for(e=0;e<z+2;e++)wr[e]=new Gr;_r=new Array(U);for(e=0;e<U;e++)_r[e]=new Gr;xr=new Array(2*L+1);for(e=0;e<2*L+1;e++)xr[e]=new Gr;yr=new Hr;mr=new Hr;Ar=new Hr;pr=new Array(C+1);br=new Array(2*z+1);Ir=new Array(2*z+1);kr=new Array(c-u+1);Sr=new Array(512);jr=new Array(k);zr=new Array(U);Ur=new Array(parseInt(d/8))}function Xr(){D=E=F=null;H=null;O=null;Q=null;T=null;V=null;dr=null;hr=null;wr=null;_r=null;xr=null;yr=null;mr=null;Ar=null;pr=null;br=null;Ir=null;kr=null;Sr=null;jr=null;zr=null;Ur=null}function Yr(r){r.next=D;D=r}function Zr(){var r;if(D!=null){r=D;D=D.next}else r=new Kr;r.next=null;r.len=r.off=0;return r}function $r(e){return V[r+e]}function re(e,n){return V[r+e]=n}function ee(r){H[K+J++]=r;if(K+J==v)Pe()}function ne(r){r&=65535;if(K+J<v-2){H[K+J++]=r&255;H[K+J++]=r>>>8}else{ee(r&255);ee(r>>>8)}}function ae(){Z=(Z<<B^O[fr+u-1]&255)&x;$=$r(Z);V[fr&y]=$;re(Z,fr)}function fe(r,e){Ue(e[r].fc,e[r].dl)}function ie(r){return(r<256?Sr[r]:Sr[256+(r>>7)])&255}function te(r,e,n){return r[e].fc<r[n].fc||r[e].fc==r[n].fc&&Ir[e]<=Ir[n]}function le(r,e,n){var a;for(a=0;a<n&&Fr<Er.length;a++)r[e+a]=Er.charCodeAt(Fr++)&255;return a}function ve(){var e;for(e=0;e<_;e++)V[r+e]=0;or=Vr[ur].max_lazy;cr=Vr[ur].good_length;if(!i)sr=Vr[ur].nice_length;vr=Vr[ur].max_chain;fr=0;Y=0;lr=le(O,0,2*r);if(lr<=0){tr=true;lr=0;return}tr=false;while(lr<p&&!tr)ue();Z=0;for(e=0;e<u-1;e++){Z=(Z<<B^O[e]&255)&x}}function oe(r){var e=vr;var n=fr;var a;var f;var t=ar;var l=fr>b?fr-b:m;var v=fr+c;var o=O[n+t-1];var u=O[n+t];if(ar>=cr)e>>=2;do{a=r;if(O[a+t]!=u||O[a+t-1]!=o||O[a]!=O[n]||O[++a]!=O[n+1]){continue}n+=2;a++;do{}while(O[++n]==O[++a]&&O[++n]==O[++a]&&O[++n]==O[++a]&&O[++n]==O[++a]&&O[++n]==O[++a]&&O[++n]==O[++a]&&O[++n]==O[++a]&&O[++n]==O[++a]&&n<v);f=c-(v-n);n=v-c;if(f>t){ir=r;t=f;if(i){if(f>=c)break}else{if(f>=sr)break}o=O[n+t-1];u=O[n+t]}}while((r=V[r&y])>l&&--e!=0);return t}function ue(){var e,n;var a=o-lr-fr;if(a==-1){a--}else if(fr>=r+b){for(e=0;e<r;e++)O[e]=O[e+r];ir-=r;fr-=r;Y-=r;for(e=0;e<_;e++){n=$r(e);re(e,n>=r?n-r:m)}for(e=0;e<r;e++){n=V[e];V[e]=n>=r?n-r:m}a+=r}if(!tr){e=le(O,fr+lr,a);if(e<=0)tr=true;else lr+=e}}function ce(){while(lr!=0&&E==null){var r;ae();if($!=m&&fr-$<=b){nr=oe($);if(nr>lr)nr=lr}if(nr>=u){r=Se(fr-ir,nr-u);lr-=nr;if(nr<=or){nr--;do{fr++;ae()}while(--nr!=0);fr++}else{fr+=nr;nr=0;Z=O[fr]&255;Z=(Z<<B^O[fr+1]&255)&x}}else{r=Se(0,O[fr]&255);lr--;fr++}if(r){ke(0);Y=fr}while(lr<p&&!tr)ue()}}function se(){while(lr!=0&&E==null){ae();ar=nr;rr=ir;nr=u-1;if($!=m&&ar<or&&fr-$<=b){nr=oe($);if(nr>lr)nr=lr;if(nr==u&&fr-ir>A){nr--}}if(ar>=u&&nr<=ar){var r;r=Se(fr-1-rr,ar-u);lr-=ar-1;ar-=2;do{fr++;ae()}while(--ar!=0);er=0;nr=u-1;fr++;if(r){ke(0);Y=fr}}else if(er!=0){if(Se(0,O[fr-1]&255)){ke(0);Y=fr}fr++;lr--}else{er=1;fr++;lr--}while(lr<p&&!tr)ue()}}function de(){if(tr)return;W=0;X=0;_e();ve();E=null;J=0;K=0;if(ur<=3){ar=u-1;nr=0}else{nr=u-1;er=0}N=false}function he(r,e,n){var a;if(!G){de();G=true;if(lr==0){N=true;return 0}}if((a=we(r,e,n))==n)return n;if(N)return a;if(ur<=3)ce();else se();if(lr==0){if(er!=0)Se(0,O[fr-1]&255);ke(1);N=true}return a+we(r,a+e,n-a)}function we(r,e,n){var a,f,i;a=0;while(E!=null&&a<n){f=n-a;if(f>E.len)f=E.len;for(i=0;i<f;i++)r[e+a+i]=E.ptr[E.off+i];E.off+=f;E.len-=f;a+=f;if(E.len==0){var t;t=E;E=E.next;Yr(t)}}if(a==n)return a;if(K<J){f=n-a;if(f>J-K)f=J-K;for(i=0;i<f;i++)r[e+a+i]=H[K+i];K+=f;a+=f;if(J==K)J=K=0}return a}function _e(){var r;var e;var n;var a;var f;if(_r[0].dl!=0)return;yr.dyn_tree=dr;yr.static_tree=wr;yr.extra_bits=Nr;yr.extra_base=S+1;yr.elems=z;yr.max_length=C;yr.max_code=0;mr.dyn_tree=hr;mr.static_tree=_r;mr.extra_bits=Or;mr.extra_base=0;mr.elems=U;mr.max_length=C;mr.max_code=0;Ar.dyn_tree=xr;Ar.static_tree=null;Ar.extra_bits=Qr;Ar.extra_base=0;Ar.elems=L;Ar.max_length=I;Ar.max_code=0;n=0;for(a=0;a<k-1;a++){jr[a]=n;for(r=0;r<1<<Nr[a];r++)kr[n++]=a}kr[n-1]=a;f=0;for(a=0;a<16;a++){zr[a]=f;for(r=0;r<1<<Or[a];r++){Sr[f++]=a}}f>>=7;for(;a<U;a++){zr[a]=f<<7;for(r=0;r<1<<Or[a]-7;r++)Sr[256+f++]=a}for(e=0;e<=C;e++)pr[e]=0;r=0;while(r<=143){wr[r++].dl=8;pr[8]++}while(r<=255){wr[r++].dl=9;pr[9]++}while(r<=279){wr[r++].dl=7;pr[7]++}while(r<=287){wr[r++].dl=8;pr[8]++}Ae(wr,z+1);for(r=0;r<U;r++){_r[r].dl=5;_r[r].fc=Le(r,5)}xe()}function xe(){var r;for(r=0;r<z;r++)dr[r].fc=0;for(r=0;r<U;r++)hr[r].fc=0;for(r=0;r<L;r++)xr[r].fc=0;dr[j].fc=1;Br=Dr=0;Lr=Mr=Pr=0;Rr=0;qr=1}function ye(r,e){var n=br[e];var a=e<<1;while(a<=gr){if(a<gr&&te(r,br[a+1],br[a]))a++;if(te(r,n,br[a]))break;br[e]=br[a];e=a;a<<=1}br[e]=n}function me(r){var e=r.dyn_tree;var n=r.extra_bits;var a=r.extra_base;var f=r.max_code;var i=r.max_length;var t=r.static_tree;var l;var v,o;var u;var c;var s;var d=0;for(u=0;u<=C;u++)pr[u]=0;e[br[Cr]].dl=0;for(l=Cr+1;l<q;l++){v=br[l];u=e[e[v].dl].dl+1;if(u>i){u=i;d++}e[v].dl=u;if(v>f)continue;pr[u]++;c=0;if(v>=a)c=n[v-a];s=e[v].fc;Br+=s*(u+c);if(t!=null)Dr+=s*(t[v].dl+c)}if(d==0)return;do{u=i-1;while(pr[u]==0)u--;pr[u]--;pr[u+1]+=2;pr[i]--;d-=2}while(d>0);for(u=i;u!=0;u--){v=pr[u];while(v!=0){o=br[--l];if(o>f)continue;if(e[o].dl!=u){Br+=(u-e[o].dl)*e[o].fc;e[o].fc=u}v--}}}function Ae(r,e){var n=new Array(C+1);var a=0;var f;var i;for(f=1;f<=C;f++){a=a+pr[f-1]<<1;n[f]=a}for(i=0;i<=e;i++){var t=r[i].dl;if(t==0)continue;r[i].fc=Le(n[t]++,t)}}function pe(r){var e=r.dyn_tree;var n=r.static_tree;var a=r.elems;var f,i;var t=-1;var l=a;gr=0;Cr=q;for(f=0;f<a;f++){if(e[f].fc!=0){br[++gr]=t=f;Ir[f]=0}else e[f].dl=0}while(gr<2){var v=br[++gr]=t<2?++t:0;e[v].fc=1;Ir[v]=0;Br--;if(n!=null)Dr-=n[v].dl}r.max_code=t;for(f=gr>>1;f>=1;f--)ye(e,f);do{f=br[g];br[g]=br[gr--];ye(e,g);i=br[g];br[--Cr]=f;br[--Cr]=i;e[l].fc=e[f].fc+e[i].fc;if(Ir[f]>Ir[i]+1)Ir[l]=Ir[f];else Ir[l]=Ir[i]+1;e[f].dl=e[i].dl=l;br[g]=l++;ye(e,g)}while(gr>=2);br[--Cr]=br[g];me(r);Ae(e,t)}function be(r,e){var n;var a=-1;var f;var i=r[0].dl;var t=0;var l=7;var v=4;if(i==0){l=138;v=3}r[e+1].dl=65535;for(n=0;n<=e;n++){f=i;i=r[n+1].dl;if(++t<l&&f==i)continue;else if(t<v)xr[f].fc+=t;else if(f!=0){if(f!=a)xr[f].fc++;xr[M].fc++}else if(t<=10)xr[P].fc++;else xr[R].fc++;t=0;a=f;if(i==0){l=138;v=3}else if(f==i){l=6;v=3}else{l=7;v=4}}}function ge(r,e){var n;var a=-1;var f;var i=r[0].dl;var t=0;var l=7;var v=4;if(i==0){l=138;v=3}for(n=0;n<=e;n++){f=i;i=r[n+1].dl;if(++t<l&&f==i){continue}else if(t<v){do{fe(f,xr)}while(--t!=0)}else if(f!=0){if(f!=a){fe(f,xr);t--}fe(M,xr);Ue(t-3,2)}else if(t<=10){fe(P,xr);Ue(t-3,3)}else{fe(R,xr);Ue(t-11,7)}t=0;a=f;if(i==0){l=138;v=3}else if(f==i){l=6;v=3}else{l=7;v=4}}}function Ce(){var r;be(dr,yr.max_code);be(hr,mr.max_code);pe(Ar);for(r=L-1;r>=3;r--){if(xr[Tr[r]].dl!=0)break}Br+=3*(r+1)+5+5+4;return r}function Ie(r,e,n){var a;Ue(r-257,5);Ue(e-1,5);Ue(n-4,4);for(a=0;a<n;a++){Ue(xr[Tr[a]].dl,3)}ge(dr,r-1);ge(hr,e-1)}function ke(r){var f,i;var t;var l;l=fr-Y;Ur[Pr]=Rr;pe(yr);pe(mr);t=Ce();f=Br+3+7>>3;i=Dr+3+7>>3;if(i<=f)f=i;if(l+4<=f&&Y>=0){var v;Ue((e<<1)+r,3);Me();ne(l);ne(~l);for(v=0;v<l;v++)ee(O[Y+v])}else if(i==f){Ue((n<<1)+r,3);je(wr,_r)}else{Ue((a<<1)+r,3);Ie(yr.max_code+1,mr.max_code+1,t+1);je(dr,hr)}xe();if(r!=0)Me()}function Se(r,e){T[Lr++]=e;if(r==0){dr[e].fc++}else{r--;dr[kr[e]+S+1].fc++;hr[ie(r)].fc++;Q[Mr++]=r;Rr|=qr}qr<<=1;if((Lr&7)==0){Ur[Pr++]=Rr;Rr=0;qr=1}if(ur>2&&(Lr&4095)==0){var n=Lr*8;var a=fr-Y;var f;for(f=0;f<U;f++){n+=hr[f].fc*(5+Or[f])}n>>=3;if(Mr<parseInt(Lr/2)&&n<parseInt(a/2))return true}return Lr==d-1||Mr==w}function je(r,e){var n;var a;var f=0;var i=0;var t=0;var l=0;var v;var o;if(Lr!=0)do{if((f&7)==0)l=Ur[t++];a=T[f++]&255;if((l&1)==0){fe(a,r)}else{v=kr[a];fe(v+S+1,r);o=Nr[v];if(o!=0){a-=jr[v];Ue(a,o)}n=Q[i++];v=ie(n);fe(v,e);o=Or[v];if(o!=0){n-=zr[v];Ue(n,o)}}l>>=1}while(f<Lr);fe(j,r)}var ze=16;function Ue(r,e){if(X>ze-e){W|=r<<X;ne(W);W=r>>ze-X;X+=e-ze}else{W|=r<<X;X+=e}}function Le(r,e){var n=0;do{n|=r&1;r>>=1;n<<=1}while(--e>0);return n>>1}function Me(){if(X>8){ne(W)}else if(X>0){ee(W)}W=0;X=0}function Pe(){if(J!=0){var r,e;r=Zr();if(E==null)E=F=r;else F=F.next=r;r.len=J-K;for(e=0;e<r.len;e++)r.ptr[e]=H[K+e];J=K=0}}return function Re(r,e){var n,a;Er=r;Fr=0;if(typeof e==\"undefined\")e=f;Wr(e);var i=new Array(1024);var t=[];while((n=he(i,0,i.length))>0){var l=new Array(n);for(a=0;a<n;a++){l[a]=String.fromCharCode(i[a])}t[t.length]=l.join(\"\")}Er=null;return t.join(\"\")}};exports.plantuml=r})();", "type": "application/javascript", "module-type": "utils" }, "$:/plugins/tobibeer/plantuml/widget.js": { "title": "$:/plugins/tobibeer/plantuml/widget.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/plantuml/widget.js\r\ntype: application/javascript\r\nmodule-type: widget\r\n\r\nA widget to render plantuml\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";var t=require(\"$:/core/modules/widgets/widget.js\").widget;var e=function(t,e){this.initialise(t,e)};e.prototype=new t;e.prototype.render=function(t,e){this.parentDomNode=t;this.computeAttributes();this.execute();var i,s,u,r,a=this.node,l=[],n=function(t){var e=t;while(e){if(e.nodeName&&(e.nodeName===\"a\"||e.nodeName===\"button\")){return 1}e=e.parentNode}return 0};switch(this.output){case\"src\":a.type=\"element\";a.tag=\"pre\";a.children=[{type:\"text\",text:this.source}];l.push(a);break;case\"txt\":a.type=\"element\";a.tag=\"iframe\";a.attributes.src={type:\"string\",value:$tw.utils.plantuml.encodePlantUML(this.source,this.output)};i=a.attributes[\"class\"]?a.attributes[\"class\"].value+\" \":\"\";a.attributes[\"class\"]={type:\"string\",value:i+\"tc-plantuml-txt\"};s=a.attributes.height?\"height:\"+a.attributes.height.value+\";\":\"\";r=a.attributes.width?\"width:\"+a.attributes.width.value+\";\":\"\";if(s||r){a.attributes.style={type:\"string\",value:s+r}}if(a.attributes.tooltip&&!this.edit){l.push({type:\"element\",tag:\"div\",attributes:{\"class\":{type:\"string\",value:\"tc-plantuml-txt-title\"}},children:[{type:\"text\",text:a.attributes.tooltip.value}]})}l.push(a);break;default:a.attributes.source={type:\"string\",value:$tw.utils.plantuml.encodePlantUML(this.source,this.output)};l.push(a)}if(this.edit&&!n(this.parentDomNode)){u={type:\"element\",tag:\"a\",attributes:{\"class\":{type:\"string\",value:\"tc-plantuml-edit tc-tiddlylink-external\"},target:{type:\"string\",value:\"_blank\"},href:{type:\"string\",value:$tw.utils.plantuml.encodePlantUML(this.source,\"edit\")}}};if(this.output===\"txt\"){u.children=[{type:\"text\",text:this.wiki.getTextReference(\"$:/plugins/tobibeer/plantuml/lingo/edit-link\")+(a.attributes.tooltip?a.attributes.tooltip.value:\"\")}];l.unshift(u)}else{u.children=l;l=[u]}}this.makeChildWidgets(l);this.renderChildren(this.parentDomNode,e)};e.prototype.execute=function(){var t=this;this.source=this.getAttribute(\"source\",\"\");this.output=this.getAttribute(\"output\",\"svg\");this.edit=this.getAttribute(\"edit\");if(this.edit===undefined){this.edit=this.wiki.getTextReference(\"$:/plugins/tobibeer/plantuml/defaults/edit\")}this.edit=[\"yes\",\"true\"].indexOf((this.edit||\"\").toLowerCase())>=0;this.node={type:\"image\",attributes:{}};[\"width\",\"height\",\"class\",\"tooltip\",\"alt\"].map(function(e){var i=t.getAttribute(e);if(i!==undefined){t.node.attributes[e]={type:\"string\",value:i}}})};e.prototype.refresh=function(){var t=this.computeAttributes();if(t.source||t.width||t.height||t[\"class\"]||t.tooltip||t.output||t.edit){this.refreshSelf();return true}else{return false}};exports.plantuml=e})();", "type": "application/javascript", "module-type": "widget" }, "$:/plugins/tobibeer/plantuml/wikirule.js": { "title": "$:/plugins/tobibeer/plantuml/wikirule.js", "text": "/*\\\r\ntitle: $:/plugins/tobibeer/plantuml/wikirule.js\r\ntype: application/javascript\r\nmodule-type: wikirule\r\n\r\nWiki text inline rule for embedding plantuml from http://plantuml.org\r\n\r\n[[plantuml[<uml>]]]\r\n[[plantuml width=23 height=24 [<uml>]]]\r\n[[plantuml width={{!!width}} height={{!!height}} tooltip=\"nice stuff\"[<uml>]]]\r\n```\r\n\r\nThis widget is entirely modeled after the core ImageWidget\r\n\r\n@preserve\r\n\\*/\n(function(){\"use strict\";exports.name=\"plantuml\";exports.types={inline:true,block:true};exports.init=function(t){this.parser=t};exports.findNextMatch=function(t){this.nextPlantUML=this.findnextPlantUML(this.parser.source,t);return this.nextPlantUML?this.nextPlantUML.start:undefined};exports.parse=function(){this.parser.pos=this.nextPlantUML.end;return[this.nextPlantUML]};exports.findnextPlantUML=function(t,e){var n=/(\\[\\[plantuml)/g;n.lastIndex=e;var i=n.exec(t);while(i){var r=this.parsePlantUml(t,i.index);if(r){return r}n.lastIndex=i.index+1;i=n.exec(t)}return null};exports.parsePlantUml=function(t,e){var n,i={type:\"plantuml\",start:e,attributes:{}};e=$tw.utils.skipWhiteSpace(t,e);n=$tw.utils.parseTokenString(t,e,\"[[plantuml\");if(!n){return null}e=n.end;e=$tw.utils.skipWhiteSpace(t,e);if(t.charAt(e)!==\"[\"){var r=$tw.utils.parseAttribute(t,e);while(r){i.attributes[r.name]=r;e=r.end;e=$tw.utils.skipWhiteSpace(t,e);if(t.charAt(e)!==\"[\"){r=$tw.utils.parseAttribute(t,e)}else{r=null}}}e=$tw.utils.skipWhiteSpace(t,e);n=$tw.utils.parseTokenString(t,e,\"[\");if(!n){return null}e=n.end;e=$tw.utils.skipWhiteSpace(t,e);n=$tw.utils.parseTokenRegExp(t,e,/([^]+?)\\]\\]\\]/gm);if(!n){return null}e=n.end;i.attributes.source={type:\"string\",value:(n.match[1]||\"\").trim()};i.end=e;return i}})();", "type": "application/javascript", "module-type": "wikirule" } } }
<$fieldmangler tiddler="$:/plugins/tongerner/toolbar/toggle-fields-handling"> <$list filter="[[$:/plugins/tongerner/toolbar/toggle-fields-handling]tag[$:/tags/ViewTemplate]]"> <$button message="tm-remove-tag" tooltip="Hide field handling in view mode" param="$:/tags/ViewTemplate" class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> <span class="tgc-active-indicator"> {{$:/plugins/tongerner/toolbar/images/fields}} </span> </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <$text text="tagging"/> </$list> </$button> </$list> <$list filter="[[$:/plugins/tongerner/toolbar/toggle-fields-handling]!tag[$:/tags/ViewTemplate]]"> <$button message="tm-add-tag" tooltip="Field handling in view mode" param="$:/tags/ViewTemplate" class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/plugins/tongerner/toolbar/images/fields}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <$text text="tagging"/> </$list> </$button> </$list> </$fieldmangler>
<$fieldmangler tiddler="$:/plugins/tongerner/toolbar/tagging"> <$list filter="[[$:/plugins/tongerner/toolbar/tagging]tag[$:/tags/ViewTemplate]]"> <$button message="tm-remove-tag" tooltip="Hide tagging in view mode" param="$:/tags/ViewTemplate" class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> <span class="tgc-active-indicator"> {{$:/plugins/tongerner/toolbar/images/tagging}} </span> </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <$text text="tagging"/> </$list> </$button> </$list> <$list filter="[[$:/plugins/tongerner/toolbar/tagging]!tag[$:/tags/ViewTemplate]]"> <$button message="tm-add-tag" tooltip="Tagging in view mode" param="$:/tags/ViewTemplate" class=<<tv-config-toolbar-class>>> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/plugins/tongerner/toolbar/images/tagging}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <$text text="tagging"/> </$list> </$button> </$list> </$fieldmangler>
<svg class="tgc-fields-button tc-image-button" width="22" height="22" viewBox="0 0 128 128"> <path d="m125.7 29.3c-1.1-1.3-2.6-2-4.1-2l-115.5 0c-3.2 0-5.8 3-5.8 6.8l0 63.2c0 3.7 2.6 6.8 5.8 6.8l115.5 0c3.2 0 5.8-3 5.8-6.8l0-63.2c0-1.8-0.6-3.5-1.7-4.8zm-9.9 61.3l-103.9 0 0-49.7 103.9 0 0 49.7z"/> <rect height="27.1" width="11.5" y="52.2" x="23.5"/></g></svg>
<svg class="tgc-tagging-button tc-image-button" height="22pt" width="22pt" viewBox="0 0 22 22"> <path id="svg_1" d="m7.4224,21.44207l13.97943,-13.96076c0.08521,-0.08543 0.15867,-0.1777 0.22215,-0.27477c0.17689,-0.22723 0.28806,-0.5095 0.28877,-0.82012l-0.00162,-4.94194c0.00091,-0.74124 -0.59945,-1.34073 -1.34167,-1.3403l-4.9476,-0.00043c-0.31232,0 -0.59452,0.11003 -0.82238,0.28763c-0.09682,0.06387 -0.18954,0.13724 -0.27474,0.22229l-13.97857,13.96114c-0.66794,0.66711 -0.6687,1.74766 0,2.41468l4.45844,4.45256c0.66695,0.66621 1.74972,0.66707 2.41779,0zm9.42597,-18.24285c0.54183,-0.54193 1.42166,-0.54193 1.9644,0c0.54268,0.54203 0.54268,1.42046 0,1.96245c-0.54269,0.54151 -1.42257,0.54151 -1.9644,0c-0.54263,-0.54203 -0.54263,-1.42046 0,-1.96245z"/> </svg>
\define lingo-base() $:/language/EditTemplate/ \define tag-styles() background-color:$(backgroundColor)$; fill:$(foregroundColor)$; color:$(foregroundColor)$; \end \define tag-body-inner(colour,fallbackTarget,colourA,colourB) <$vars foregroundColor=<<contrastcolour target:"""$colour$""" fallbackTarget:"""$fallbackTarget$""" colourA:"""$colourA$""" colourB:"""$colourB$""">> backgroundColor="""$colour$"""> <span style=<<tag-styles>> class="tc-tag-label"> <$view field="title" format="text" /> <$button message="tm-remove-tag" param={{!!title}} class="tc-btn-invisible tc-remove-tag-button">×</$button> </span> </$vars> \end \define tag-body(colour,palette) <$macrocall $name="tag-body-inner" colour="""$colour$""" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}}/> \end \define tag-picker-actions() <$action-listops $tiddler=<<currentTiddler>> $field="tags" $subfilter="[<tag>] [all[current]tags[]]" /> \end <div class="tc-edit-tags"> <$fieldmangler> <$list filter="[all[current]tags[]sort[title]]" storyview="pop"> <$macrocall $name="tag-body" colour={{!!color}} palette={{$:/palette}}/> </$list> </$fieldmangler> <$macrocall $name="tag-picker" actions=<<tag-picker-actions>>/> </div>
\define lingo-base() $:/language/EditTemplate/ \define config-title() $:/config/EditTemplateFields/Visibility/$(currentField)$ \end \define config-filter() [[hide]] -[title{$(config-title)$}] \end \define new-field() <$vars name={{$:/temp/newfieldname}}> <$reveal type="nomatch" text="" default=<<name>>> <$button> <$action-sendmessage $message="tm-add-field" $name=<<name>> $value={{$:/temp/newfieldvalue}}/> <$action-deletetiddler $tiddler="$:/temp/newfieldname"/> <$action-deletetiddler $tiddler="$:/temp/newfieldvalue"/> <<lingo Fields/Add/Button>> </$button> </$reveal> <$reveal type="match" text="" default=<<name>>> <$button> <<lingo Fields/Add/Button>> </$button> </$reveal> </$vars> \end <div class="tc-edit-fields"> <table class="tc-edit-fields"> <tbody> <$list filter="[all[current]fields[]] +[sort[title]]" variable="currentField"> <$list filter=<<config-filter>> variable="temp"> <tr class="tc-edit-field"> <td class="tc-edit-field-name"> <$text text=<<currentField>>/>:</td> <td class="tc-edit-field-value"> <$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}}/> </td> <td class="tc-edit-field-remove"> <$button class="tc-btn-invisible" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}> <$action-deletefield $field=<<currentField>>/> {{$:/core/images/delete-button}} </$button> </td> </tr> </$list> </$list> </tbody> </table> </div> <$fieldmangler> <div class="tc-edit-field-add"> <em class="tc-edit"> <<lingo Fields/Add/Prompt>> </em> <span class="tc-edit-field-add-name"> <$edit-text tiddler="$:/temp/newfieldname" tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify "$:/state/popup/field-dropdown">> class="tc-edit-texteditor tc-popup-handle"/> </span> <$button popup=<<qualify "$:/state/popup/field-dropdown">> class="tc-btn-invisible tc-btn-dropdown" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$reveal state=<<qualify "$:/state/popup/field-dropdown">> type="nomatch" text="" default=""> <div class="tc-block-dropdown tc-edit-type-dropdown"> <$linkcatcher to="$:/temp/newfieldname"> <div class="tc-dropdown-item"> <<lingo Fields/Add/Dropdown/User>> </div> <$list filter="[!is[shadow]!is[system]fields[]search:title{$:/temp/newfieldname}sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type" variable="currentField"> <$link to=<<currentField>>> <<currentField>> </$link> </$list> <div class="tc-dropdown-item"> <<lingo Fields/Add/Dropdown/System>> </div> <$list filter="[fields[]search:title{$:/temp/newfieldname}sort[]] -[!is[shadow]!is[system]fields[]]" variable="currentField"> <$link to=<<currentField>>> <<currentField>> </$link> </$list> </$linkcatcher> </div> </$reveal> <span class="tc-edit-field-add-value"> <$edit-text tiddler="$:/temp/newfieldvalue" tag="input" default="" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class="tc-edit-texteditor"/> </span> <span class="tc-edit-field-add-button"> <$macrocall $name="new-field"/> </span> </div> </$fieldmangler>
{{$:/LeftBarContent}}
{ "tiddlers": { "$:/plugins/TWaddle/ListTree/readme": { "created": "20170124212349630", "creator": "twMat", "text": "<table style=\"border:0; margin-left:1em;\">\n<tr>\n<td style=\"border:0;\" >color</td>\n<td style=\"border:0; padding-right:1em;\"><$edit-text tiddler=\"$:/plugins/TWaddle/ListTree/Stylesheet\" field=\"list-tree-color\" /></td>\n</tr>\n<tr>\n<td style=\"border:0;\">thickness</td>\n<td style=\"border:0; padding-right:1em;\"><$edit-text tiddler=\"$:/plugins/TWaddle/ListTree/Stylesheet\" field=\"list-tree-thickness\" />\n</td>\n</tr>\n</table>\n\n!!!Use\nApply the style `list-tree` by use of the standard WikiText [[@@ technique|http://tiddlywiki.com/#Styles%20and%20Classes%20in%20WikiText]].\n\n```\n<preceding empty line, like always for bullet lists>\n@@.list-tree\n*your\n*bullet\n*list\n@@\n```\n\n", "title": "$:/plugins/TWaddle/ListTree/readme", "tags": "", "modifier": "twMat", "modified": "20170126133536331" }, "$:/plugins/TWaddle/ListTree/Stylesheet": { "created": "20170124192839287", "creator": "twMat", "text": "<pre>\n.list-tree, .list-tree ul, .list-tree li { position: relative; }\n\n.list-tree li { list-style: none; }\n\n.list-tree ul { padding: 0 0 0 2em; }\n\n.list-tree li::before, .list-tree li::after {\n content: \"\";\n position: absolute;\n left: -1em;\n}\n\n/* horizontal line */\n.list-tree li::before {\n border-bottom: {{!!list-tree-thickness}} solid {{!!list-tree-color}};\n top: .6em; \n width: 7px;\n}\n\n/* vertical line */\n.list-tree ul li::after {\n border-left: {{!!list-tree-thickness}} solid {{!!list-tree-color}};\n height: 100%;\n top: .1em;\n}\n\n.list-tree ul > li:last-child::after { height: .5em; }\n\n/* top-level: Lines if multiple top elements. No lines if single top element. */\n\n.list-tree > li:last-of-type:before { display:none; }\n\n.list-tree > li:first-of-type:before { border-top: {{!!list-tree-thickness}} solid {{!!list-tree-color}}; }\n\n.list-tree > li:before {\n border-left: {{!!list-tree-thickness}} solid {{!!list-tree-color}};\n height: 100%;\n}\n</pre>", "type": "text/vnd.tiddlywiki", "title": "$:/plugins/TWaddle/ListTree/Stylesheet", "tags": "$:/tags/Stylesheet", "modifier": "twMat", "modified": "20170126133633830", "list-tree-thickness": "1px", "list-tree-color": "silver" } } }
<pre> .list-tree, .list-tree ul, .list-tree li { position: relative; } .list-tree li { list-style: none; } .list-tree ul { padding: 0 0 0 2em; } .list-tree li::before, .list-tree li::after { content: ""; position: absolute; left: -1em; } /* horizontal line */ .list-tree li::before { border-bottom: {{!!list-tree-thickness}} solid {{!!list-tree-color}}; top: .6em; width: 7px; } /* vertical line */ .list-tree ul li::after { border-left: {{!!list-tree-thickness}} solid {{!!list-tree-color}}; height: 100%; top: .1em; } .list-tree ul > li:last-child::after { height: .5em; } /* top-level: Lines if multiple top elements. No lines if single top element. */ .list-tree > li:last-of-type:before { display:none; } .list-tree > li:first-of-type:before { border-top: {{!!list-tree-thickness}} solid {{!!list-tree-color}}; } .list-tree > li:before { border-left: {{!!list-tree-thickness}} solid {{!!list-tree-color}}; height: 100%; } </pre>
<pre> .tc-tab-buttons { margin-bottom:0px; padding-left:.5vw; } .tc-tab-divider { margin-top:-1px; } .tc-tab-buttons button { opacity:.9; } .tc-tab-buttons button.tc-tab-selected { border-bottom:1px solid <<colour background>>; opacity:1; } .tc-tab-buttons.tc-vertical button { background-image:none; border: 1px solid transparent; opacity:.9; } .tc-tab-buttons.tc-vertical button.tc-tab-selected { background:inherit; border:1px solid <<colour tab-border-selected>>; border-right: 1px solid <<colour background>>; opacity:1; } .tc-sidebar-lists .tc-tab-buttons button { border:0; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { border-bottom: 1px solid <<colour page-background>>; } .tc-tab-content.tc-vertical { border-left:1px solid <<colour tab-divider>>; } .tc-more-sidebar .tc-tab-buttons button.tc-tab-selected { border: 1px solid <<colour sidebar-tab-border-selected>>; border-right: 1px solid <<colour page-background>>; } </pre>
{ "tiddlers": { "$:/plugins/TWaddle/SideEditor/Stylesheet": { "created": "20160514162106379", "creator": "Mat", "text": "<pre>\n#outerLimit {\n position:fixed; z-index:2001;\n top:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh + 30px); \n right:0px; bottom:0; overflow:hidden;\n width:{{$:/plugins/TWaddle/SideEditor/Metrics!!left}}vw;\n padding-left:20px; /* prevent mistakenly hovering sidebar */\n -webkit-transition: background-color .5s linear;\n -moz-transition: background-color .5s linear;\n -o-transition: background-color .5s linear;\n transition: background-color .5s linear;\n background-color: transparent;\n}\n/* gray area to indicate where SE blocks clicking */ \n#outerLimit:hover { background: rgba(244,244,244,.5);\n}\n/* area to right of sidebarlists belonging to SE */\n#outerLimit:before {\n opacity:0;\n display:block; content: ' ';\n position:fixed; top:0; right:0; \n left:calc({{$:/themes/tiddlywiki/vanilla/metrics/storyright}} + <<tc-sidebar-lists-width>> - 10px);\n height:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh + 30px);\n}\n/* Flip zone along sidebarlists right side to flip focus back to SE */\n#flipVertical { \n position:fixed; z-index:3001;\n top:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh + 30px); \n left:calc({{$:/themes/tiddlywiki/vanilla/metrics/storyright}} + <<tc-sidebar-lists-width>>);\n bottom: 0;\n width: 20px;\n transition: background-color 0.5s ease; /* used for hover to indicate it blocks typing*/\n -webkit-transition: background-color 500ms ease .5s;\n -moz-transition: background-color 500ms ease .5s;\n -o-transition: background-color 500ms ease .5s;\n transition: background-color 500ms ease .5s;\n background-color: transparent; opacity:1;\n}\n#flipVertical:hover {border:1px solid lightgray; background:lightgray; opacity:.5;}\n#flipVertical:hover ~ #outerLimit {background: rgba(244,244,244,.5); }\n\n/* Zone along top edge of SE to flip focus back to SE */\n#flipHorizontal {\n position:fixed; z-index:3001;\n bottom:calc(100vh - {{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh - 30px); \n left:calc({{$:/themes/tiddlywiki/vanilla/metrics/storyright}} + <<tc-sidebar-lists-width>> - 10px);\n right:0;\n height:20px;\n}\n#flipHorizontal:hover ~ #outerLimit {background: rgba(244,244,244,.5); }\n\n#btnAndTitle svg {\n width:2em; height:1.2em; margin-top:-4px; \n fill:lightgray; background:white; padding:2px 5px;\n}\n#btnAndTitle a {\n height:1.1em; background:white;\n padding: 2px 15px; margin-left:-8px;\n}\n.sideeditor {\n resize:horizontal; overflow-y:auto;\n width:calc(100vw - 42px -\n {{$:/themes/tiddlywiki/vanilla/metrics/storyright}}); \n max-width:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!left}}vw - 40px);\n min-width:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!left}}vw - 40px); /* Edge needs this for smaller screens */\n max-height:calc(-70px + 100vh - \n {{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vmin); \n border:1px solid gray; padding-left:5px; \n}\n#se-slider-top {\n position:fixed; z-index:4000; top:53vmin; \n transform:rotate(90deg); width:100vmin; right:-49vmin;\n}\n#se-slider-left {\n position:fixed; z-index:4000; bottom:0vmin;\n transform:rotate(180deg); width:100%; /* MS can't handle vmax here */\n}\n\n/************************ Range Slider styling ***********************/\n/*** CRED: https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ ***/\n\n/** Applying base styles *******************/\n\n.se-sliders input[type=range] { -webkit-appearance: none; width: 100%; /* for Firefox. */ }\n.se-sliders input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; }\n.se-sliders input[type=range]:focus { outline: none; }\n\n/** Styling the Thumb ***********************/\n\n/* Special styling for WebKit/Blink */\n.se-sliders input[type=range]::-webkit-slider-thumb {\n -webkit-appearance: none;\n box-shadow: inset 4px 0px 0px silver, 0px 0px 0px #000000;\n border: 0px; border-radius: 0px;\n height: 20px; width: 6px;\n background: transparent;\n cursor: pointer;\n margin-top: 14px; /* \"moves\" thumb from track */\n}\n\n/* All the same stuff for Firefox */\n.se-sliders input[type=range]::-moz-range-thumb {\n box-shadow: inset 4px 0px 0px gray, 0px 0px 0px #000000;\n border: 0px; border-radius: 0px;\n height: 20px; width: 16px;\n background: transparent;\n cursor: pointer;\n}\n\n/* All the same stuff for IE */\n.se-sliders input[type=range]::-ms-thumb {\n box-shadow: inset 4px 0px 0px gray, 0px 0px 0px #000000;\n border: 0px solid blue; border-radius: 0px;\n /* height: 20px; width: 16px; */ \n background: transparent;\n cursor: pointer;\n}\n\n/** Styling the Track *************************/\n\n.se-sliders input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1px; margin-top:-10px; background-color:transparent;}\n.se-sliders input[type=range]::-moz-range-track { height: 0px; }\n.se-sliders input[type=range]::-ms-track{ height: 1px; margin-top:-10px; }\n\n</pre>", "type": "text/vnd.tiddlywiki", "top": "17", "title": "$:/plugins/TWaddle/SideEditor/Stylesheet", "tags": "$:/tags/Stylesheet", "peek": "1px", "modifier": "Mat", "modified": "20161228204100092", "left": "46" }, "$:/plugins/TWaddle/SideEditor/Metrics": { "created": "20160514163926446", "creator": "Mat", "text": "", "top": "10", "title": "$:/plugins/TWaddle/SideEditor/Metrics", "tags": "", "peek": "0", "modifier": "Mat", "modified": "20161228202759548", "left": "44" }, "$:/plugins/TWaddle/SideEditor/Main": { "created": "20160421132415018", "creator": "Mat", "text": "\\define tc-sidebar-header-padding() 14px\n\n\\define tc-sidebar-header-margin-top() {{$:/themes/tiddlywiki/vanilla/metrics/storytop}}\n\n\\define est-dist-above-sidebar-lists() 4.7cm\n\n\\define tc-sidebar-scrollable-padding-top() 71px\n\n\\define tc-sidebar-lists-width() 400px\n\n\\define se-slider(field)\n<div id=\"se-slider-$field$\">\n <$edit-text tag=\"input\" type=\"range\" field=\"$field$\"\n tiddler=\"$:/plugins/TWaddle/SideEditor/Metrics\" />\n</div>\n\\end\n\n\\define sideeditor(tid)\n<div class=\"se-sliders\"><<se-slider \"left\">><<se-slider \"top\">></div>\n<div id=\"flipVertical\"></div><div id=\"flipHorizontal\"></div>\n<div id=\"outerLimit\">\n <div id=\"btnAndTitle\">\n {{$:/plugins/TWaddle/SideEditor/Button}}<$link to=\"\"\"$tid$\"\"\">\n <$view tiddler=\"\"\"$tid$\"\"\" field=\"title\" format=\"text\"/></$link>\n </div>\n <$edit-text tiddler=\"\"\"$tid$\"\"\" field=\"text\" \n tag=\"textarea\" class=\"sideeditor\" />\n <$list filter=\"[{$:/state/sideeditor}!prefix[no]]\">\n <style>\n {{$:/plugins/TWaddle/SideEditor/StylesheetActive}}\n </style>\n </$list>\n</div>\n\\end\n", "title": "$:/plugins/TWaddle/SideEditor/Main", "tags": "$:/tags/Macro", "summary": "", "modifier": "Mat", "modified": "20161228204210457" }, "$:/plugins/TWaddle/SideEditor/Button": { "created": "20150601114223435", "creator": "Mat", "text": "<$reveal state=\"$:/state/sideeditor\" type=\"nomatch\" text=\"no\" default=\"no\">\n<$button set=\"$:/state/sideeditor\" setTo=\"no\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sideeditor\" type=\"match\" text=\"no\" default=\"no\">\n<$button set=\"$:/state/sideeditor\" setTo=<<currentTiddler>> class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>", "title": "$:/plugins/TWaddle/SideEditor/Button", "tags": "$:/tags/ViewToolbar", "modifier": "Mat", "modified": "20161228204204521", "description": "toggle ~SideEditor - an editor floating next to the story river.", "caption": "{{$:/core/images/chevron-right}} ~SideEditor" }, "$:/plugins/TWaddle/SideEditor/Revealer": { "created": "20150601115921432", "creator": "Mat", "text": "<div>\n\n<$reveal state=\"$:/state/sideeditor\" type=\"nomatch\" text=\"no\" default=\"no\">\n\n<$macrocall $name=\"sideeditor\" tid={{$:/state/sideeditor}}/>\n\n</$reveal>\n\n</div>", "title": "$:/plugins/TWaddle/SideEditor/Revealer", "tags": "$:/tags/PageTemplate", "modifier": "Mat", "modified": "20161228204221610" }, "$:/plugins/TWaddle/SideEditor/StylesheetActive": { "created": "20160514142353426", "creator": "Mat", "text": " /*\n * In-macro styles, i.e called from within the SideEditor macro, when that is active\n * Do NOT tag it $:/tags/Stylesheet as that would make it permanently active\n * Do NOT enclose in pre\n */\n\n/* General info: Default nesting order for elements in TW sidebar is:\n * scrollable > header > lists \n */\n\n/* Access SE immediately left of sidebar */\n.xtc-sidebar-scrollable {\n margin-left:0; padding-left:0px;\n}\n.tc-sidebar-scrollable:hover {\n z-index:3000;\n}\n/* sidebar area grayed out above and below to indicate it's blocking SE */\n.tc-sidebar-scrollable:hover:after,\n .tc-sidebar-scrollable:hover:before {\n position: absolute;\n z-index: -600; /* behind tc-sidebar-lists */\n content: ' ';\n background: <<colour page-background>>;\n width: <<tc-sidebar-lists-width>>;\n margin-left:-.7em;\n}\n.tc-sidebar-scrollable:hover:after {\n border-right:1px solid lightgray;\n opacity:.5;\n bottom: 3vh;\n height: calc(100% - <<tc-sidebar-scrollable-padding-top>> - 20px);\n}\n.tc-sidebar-scrollable:hover:before {\n opacity:.7;\n top: 0;\n height: <<tc-sidebar-scrollable-padding-top>>;\n}\n\n.tc-sidebar-scrollable .tc-sidebar-header {\n position:absolute;\n max-height:calc(100vh - <<tc-sidebar-scrollable-padding--top>>);\n top:<<tc-sidebar-scrollable-padding-top>>;\n overflow:hidden;\n padding:0px 0px 0 10px;\n margin-left:-10px;\n}\n.tc-sidebar-scrollable:hover .tc-sidebar-header { \n z-index:-500;\n background:<<colour page-background>>;\n}\n.tc-sidebar-lists {\n width:<<tc-sidebar-lists-width>>;\n padding:10px; margin-left:-10px;\n padding-top:7px; margin-top:-10px;\n max-height:calc(100vh - <<tc-sidebar-header-margin-top>> - <<est-dist-above-sidebar-lists>>);\n overflow:hidden;\n}\n.tc-sidebar-scrollable:hover .tc-sidebar-lists {\n z-index:-500;\n height:100%;\n background:<<colour page-background>>;\n border-bottom:2px solid silver;\n padding-top:7px; margin-top:-10px;\n overflow-y:auto;\n border-right:10px solid <<colour page-background>>; /*prev. flip when scroll*/\n}\n\n/* Search popup slightly repositioned */\n.tc-block-dropdown.tc-search-drop-down {\n margin-left: 0px;\n}", "type": "text/vnd.tiddlywiki", "title": "$:/plugins/TWaddle/SideEditor/StylesheetActive", "peek": "1px", "modifier": "Mat", "modified": "20161228204234356" }, "$:/plugins/TWaddle/SideEditor/icon": { "created": "20160421222805854", "creator": "Mat", "text": "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuNWWFMmUAAABISURBVDhP1ZAxDgAgCMR4Oj9H1EnDXRjOwSZl0oZg7h7MxJgrgJAFkjlqu4EKXYC5373eACENQDsBZuuITM0GiI8CzPvDadgAbYISbVw2M04AAAAASUVORK5CYII=", "type": "image/png", "title": "$:/plugins/TWaddle/SideEditor/icon", "modifier": "Mat", "modified": "20161228204243025" }, "$:/plugins/TWaddle/SideEditor/readme": { "created": "20150807204704723", "creator": "Mat", "text": "''~SideEditor'' is a plugin that floats a tiddlers editor by the story river side.\n\nThe purpose is a ''\"live\" view of the effects from your editing'' and to be able to scroll and reference stuff from other tiddlers while you edit. It is intended for full size screens.\n\n''Usage''\n\n*''Toggle'' it via the tiddler tool button <span class=\"mybutton\">{{$:/core/images/chevron-right}}</span>\n*''Move'' the ~SideEditor via the two gray handles.\n*''Re-size'' width via the lower right corner. Height is automatic from typing.\n*''Flipping'' between //Sidebar// and //~SideEditor// uses CSS hovering.\n\n''For updates'', see http://sideeditor.tiddlyspot.com/\n\n<br>''Mat <:-) von'' [[TWaddle|http://twaddle.tiddlyspot.com/]]", "title": "$:/plugins/TWaddle/SideEditor/readme", "modifier": "Mat", "modified": "20161228204251696" } } }
<div> <$reveal state="$:/state/sideeditor" type="nomatch" text="no" default="no"> <$macrocall $name="sideeditor" tid={{$:/state/sideeditor}}/> </$reveal> </div>
<pre> #outerLimit { position:fixed; z-index:2001; top:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh + 30px); right:0px; bottom:0; overflow:hidden; width:{{$:/plugins/TWaddle/SideEditor/Metrics!!left}}vw; padding-left:20px; /* prevent mistakenly hovering sidebar */ -webkit-transition: background-color .5s linear; -moz-transition: background-color .5s linear; -o-transition: background-color .5s linear; transition: background-color .5s linear; background-color: transparent; } /* gray area to indicate where SE blocks clicking */ #outerLimit:hover { background: rgba(244,244,244,.5); } /* area to right of sidebarlists belonging to SE */ #outerLimit:before { opacity:0; display:block; content: ' '; position:fixed; top:0; right:0; left:calc({{$:/themes/tiddlywiki/vanilla/metrics/storyright}} + <<tc-sidebar-lists-width>> - 10px); height:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh + 30px); } /* Flip zone along sidebarlists right side to flip focus back to SE */ #flipVertical { position:fixed; z-index:3001; top:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh + 30px); left:calc({{$:/themes/tiddlywiki/vanilla/metrics/storyright}} + <<tc-sidebar-lists-width>>); bottom: 0; width: 20px; transition: background-color 0.5s ease; /* used for hover to indicate it blocks typing*/ -webkit-transition: background-color 500ms ease .5s; -moz-transition: background-color 500ms ease .5s; -o-transition: background-color 500ms ease .5s; transition: background-color 500ms ease .5s; background-color: transparent; opacity:1; } #flipVertical:hover {border:1px solid lightgray; background:lightgray; opacity:.5;} #flipVertical:hover ~ #outerLimit {background: rgba(244,244,244,.5); } /* Zone along top edge of SE to flip focus back to SE */ #flipHorizontal { position:fixed; z-index:3001; bottom:calc(100vh - {{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vh - 30px); left:calc({{$:/themes/tiddlywiki/vanilla/metrics/storyright}} + <<tc-sidebar-lists-width>> - 10px); right:0; height:20px; } #flipHorizontal:hover ~ #outerLimit {background: rgba(244,244,244,.5); } #btnAndTitle svg { width:2em; height:1.2em; margin-top:-4px; fill:lightgray; background:white; padding:2px 5px; } #btnAndTitle a { height:1.1em; background:white; padding: 2px 15px; margin-left:-8px; } .sideeditor { resize:horizontal; overflow-y:auto; width:calc(100vw - 42px - {{$:/themes/tiddlywiki/vanilla/metrics/storyright}}); max-width:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!left}}vw - 40px); min-width:calc({{$:/plugins/TWaddle/SideEditor/Metrics!!left}}vw - 40px); /* Edge needs this for smaller screens */ max-height:calc(-70px + 100vh - {{$:/plugins/TWaddle/SideEditor/Metrics!!top}}vmin); border:1px solid gray; padding-left:5px; } #se-slider-top { position:fixed; z-index:4000; top:53vmin; transform:rotate(90deg); width:100vmin; right:-49vmin; } #se-slider-left { position:fixed; z-index:4000; bottom:0vmin; transform:rotate(180deg); width:100%; /* MS can't handle vmax here */ } /************************ Range Slider styling ***********************/ /*** CRED: https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/ ***/ /** Applying base styles *******************/ .se-sliders input[type=range] { -webkit-appearance: none; width: 100%; /* for Firefox. */ } .se-sliders input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; } .se-sliders input[type=range]:focus { outline: none; } /** Styling the Thumb ***********************/ /* Special styling for WebKit/Blink */ .se-sliders input[type=range]::-webkit-slider-thumb { -webkit-appearance: none; box-shadow: inset 4px 0px 0px silver, 0px 0px 0px #000000; border: 0px; border-radius: 0px; height: 20px; width: 6px; background: transparent; cursor: pointer; margin-top: 14px; /* "moves" thumb from track */ } /* All the same stuff for Firefox */ .se-sliders input[type=range]::-moz-range-thumb { box-shadow: inset 4px 0px 0px gray, 0px 0px 0px #000000; border: 0px; border-radius: 0px; height: 20px; width: 16px; background: transparent; cursor: pointer; } /* All the same stuff for IE */ .se-sliders input[type=range]::-ms-thumb { box-shadow: inset 4px 0px 0px gray, 0px 0px 0px #000000; border: 0px solid blue; border-radius: 0px; /* height: 20px; width: 16px; */ background: transparent; cursor: pointer; } /** Styling the Track *************************/ .se-sliders input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1px; margin-top:-10px; background-color:transparent;} .se-sliders input[type=range]::-moz-range-track { height: 0px; } .se-sliders input[type=range]::-ms-track{ height: 1px; margin-top:-10px; } </pre>
{ "tiddlers": { "$:/plugins/TWaddle/Stamper/icon": { "created": "20170406110719169", "creator": "Mat von TWaddle", "text": "{{$:/core/images/stamp}}", "title": "$:/plugins/TWaddle/Stamper/icon", "tags": "", "modifier": "Mat von TWaddle", "modified": "20170406163436441" }, "$:/plugins/TWaddle/Stamper/readme": { "created": "20170406102346856", "creator": "Mat von TWaddle", "text": "This sets various values in the [[Stamper plugin stylesheet|$:/plugins/TWaddle/Stamper/Stylesheet]]\n<table class=\"stamper-table\">\n<tr>\n<td>stamp text</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"stamp\"/></td>\n<td>//`[[links]]` no worky//</td>\n</tr>\n<tr>\n<td>text colour</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"colour\"/></td>\n<td>//eg `#c00` or `grey`//</td>\n</tr>\n<tr>\n<td>before/after title</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"beforeafter\"/></td>\n</tr>\n<tr>\n<td>vertical offset</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"margin-top\"/></td>\n<td>''px''</td>\n</tr>\n<tr>\n<td>horizontal offset</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"margin-left\"/></td>\n<td>''px''</td>\n</tr>\n<tr>\n<td>rotate</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"rotate\"/></td>\n<td>''deg''</td>\n</tr>\n<tr>\n<td>font</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"font\"/></td>\n<td>//eg `'Vollkorn', serif`//</td>\n</tr>\n<tr>\n<td>font size</td>\n<td><$edit-text tiddler=\"$:/plugins/TWaddle/Stamper/Stylesheet\" field=\"font-size\"/></td>\n<td>''px''</td>\n</tr>\n</table>", "title": "$:/plugins/TWaddle/Stamper/readme", "tags": "", "modifier": "Mat von TWaddle", "modified": "20170406195206915", "caption": "Settings" }, "$:/plugins/TWaddle/Stamper/Stylesheet": { "created": "20170122103257891", "creator": "twMat", "text": "<pre>\n/* Rubber stamp showing custom text */\n/* Cred: https://codepen.io/chris22smith/pen/kDtiE */\n\n.tc-site-title:{{!!beforeafter}} {\n content:\"{{$:/plugins/TWaddle/Stamper/Stylesheet!!stamp}}\";\n position:absolute;\n margin-top:{{!!margin-top}}px;\n margin-left:{{!!margin-left}}px;\n z-index:1;\n font-family:Arial,sans-serif;\n -webkit-transform: rotate({{!!rotate}}deg); /* Safari */\n -moz-transform: rotate({{!!rotate}}deg); /* Firefox */\n -ms-transform: rotate({{!!rotate}}deg); /* IE */\n -o-transform: rotate({{!!rotate}}deg); /* Opera */\n transform: rotate({{!!rotate}}deg);\n font-size:{{!!font-size}}px;\n color:{{!!colour}};\n background:#fff;\n border:solid 4px {{!!colour}};\n padding:0 5px 7px;\n border-radius:10px;\n zoom:1;\n filter:alpha(opacity=20);\n opacity:0.6;\n -webkit-text-shadow: 0 0 2px {{!!colour}};\n text-shadow: 0 0 2px {{!!colour}};\n box-shadow: 0 0 2px {{!!colour}};\n font-family: {{!!font}};\n font-weight: bold;\n}\n.stamper-table {width:100%; }\n.stamper-table,.stamper-table tr, .stamper-table td {border:0px solid red;}\n.stamper-table input { border:5px solid red, color:red;}\n</pre>\n\n", "title": "$:/plugins/TWaddle/Stamper/Stylesheet", "tags": "$:/tags/Stylesheet", "summary": "Cred: https://codepen.io/chris22smith/pen/kDtiE", "stamp": "stamper", "rotate": "20", "modifier": "Mat von TWaddle", "modified": "20170406172703140", "margin-top": "-20", "margin-left": "-100", "font-size": "30", "font": "'Vollkorn', serif", "colour": "#c00", "beforeafter": "after", "list-after": "$:/plugins/TWaddle/ListTree/Stylesheet" } } }
<pre> /* Rubber stamp showing custom text */ /* Cred: https://codepen.io/chris22smith/pen/kDtiE */ .tc-site-title:{{!!beforeafter}} { content:"{{$:/plugins/TWaddle/Stamper/Stylesheet!!stamp}}"; position:absolute; margin-top:{{!!margin-top}}px; margin-left:{{!!margin-left}}px; z-index:1; font-family:Arial,sans-serif; -webkit-transform: rotate({{!!rotate}}deg); /* Safari */ -moz-transform: rotate({{!!rotate}}deg); /* Firefox */ -ms-transform: rotate({{!!rotate}}deg); /* IE */ -o-transform: rotate({{!!rotate}}deg); /* Opera */ transform: rotate({{!!rotate}}deg); font-size:{{!!font-size}}px; color:{{!!colour}}; background:#fff; border:solid 4px {{!!colour}}; padding:0 5px 7px; border-radius:10px; zoom:1; filter:alpha(opacity=20); opacity:0.6; -webkit-text-shadow: 0 0 2px {{!!colour}}; text-shadow: 0 0 2px {{!!colour}}; box-shadow: 0 0 2px {{!!colour}}; font-family: {{!!font}}; font-weight: bold; } .stamper-table {width:100%; } .stamper-table,.stamper-table tr, .stamper-table td {border:0px solid red;} .stamper-table input { border:5px solid red, color:red;} </pre>
{ "tiddlers": { "A-Z": { "title": "A-Z", "tags": "blog-framework", "created": "20150420093458978", "modified": "20150423172340063", "text": "<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]sort[title]!has[draft.of]]-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]-[[$:/plugins/welford/twstaticblog/helper/blogentrytags]]\">\r\n<div class=\"tc-menu-list-item\">\r\n\t<div class=\"tc-menu-list-subitem\">\r\n\t\t<$link class=\"long-links\" to={{!!title}}><$view field=\"title\"/></$link> <div class=\"tc-tags-wrapper\" style=\"display:inline;font-size:0.7em;\">\r\n<$list filter=\"[all[current]tags[]sort[title]]-[[$:/plugins/welford/twstaticblog/helper/hiddentags]tags[]]\"><$link to={{!!title}} taglink=\"true\"><$transclude tiddler=\"$:/core/ui/TagTemplate\"/></$link></$list></div>\r\n\t</div>\r\n</div>\r\n</$list>" }, "Archived Articles": { "title": "Archived Articles", "tags": "blog-framework", "created": "20150420093458978", "modified": "20150423172340063", "text": "<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]!has[draft.of]!sort[created]eachday[created]]-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]\">\r\n<div class=\"tc-menu-list-item\">\r\n<$view field=\"created\" format=\"date\" template=\"YYYY/MM/DD\"/>\r\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]sameday:created{!!created}!has[draft.of]]-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]\">\r\n<div class=\"tc-menu-list-subitem\">\r\n<$link class=\"long-links\" to={{!!title}}><$view field=\"title\"/></$link> \r\n <div class=\"tc-tags-wrapper\" style=\"display:inline;font-size:0.7em;\">\r\n<$list filter=\"[all[current]tags[]sort[title]]-[[$:/plugins/welford/twstaticblog/helper/hiddentags]tags[]]\"><$link to={{!!title}} taglink=\"true\"><$transclude tiddler=\"$:/core/ui/TagTemplate\"/></$link></$list></div>\r\n</div>\r\n</$list>\r\n</div>\r\n</$list>" }, "$:/plugins/welford/twstaticblog/helper/staticbanner": { "title": "$:/plugins/welford/twstaticblog/helper/staticbanner", "text": "<div> \r\n[[Sample Static Blog|index]], [[Tags|Tags]]. A barebones header, replace me!\r\n</div>\r\n" }, "$:/plugins/welford/twstaticblog/helper/subtitle": { "title": "$:/plugins/welford/twstaticblog/helper/subtitle", "text": "<div class=\"tc-subtitle\">\r\n<$link to={{!!modifier}}>\r\n<$view field=\"modifier\"/>\r\n</$link> <$view field=\"created\" format=\"date\" template=\"YYYY/MM/DD 0hh:0mm\"/>\r\n</div>\r\n" }, "Tags": { "title": "Tags", "tags": "blog-framework", "created": "20150420093458978", "modified": "20150423172340063", "text": "<div style=\"display:inline;font-size:1.6em;line-height:1.65em;\">\r\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]tags[]sort[title]]-[[$:/plugins/welford/twstaticblog/helper/hiddentags]tags[]]\">\r\n<$link to={{!!title}} class=\"taglink\" taglink=\"true\"><$transclude tiddler=\"$:/core/ui/TagTemplate\"/></$link>\r\n</$list>\r\n</div>\n\n!!All Posts\r\n!![[Ordered Alphabetically|A-Z]]\r\n!![[Ordered by Creation Date|Archived Articles]]\r\n!![[Ordered by Modified Date|Updated Articles]]\r\n" }, "$:/plugins/welford/twstaticblog/helper/title": { "title": "$:/plugins/welford/twstaticblog/helper/title", "text": "Sample Static Blog\r\n" }, "Updated Articles": { "title": "Updated Articles", "tags": "blog-framework", "created": "20150420093458978", "modified": "20150423172340063", "text": "<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]!has[draft.of]!sort[modified]eachday[modified]]-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]\">\r\n<div class=\"tc-menu-list-item\">\r\n<$view field=\"modified\" format=\"date\" template=\"YYYY/MM/DD\"/>\r\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]sameday{!!modified}!has[draft.of]]-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]\">\r\n<div class=\"tc-menu-list-subitem\">\r\n<$link class=\"long-links\" to={{!!title}}><$view field=\"title\"/></$link> \r\n <div class=\"tc-tags-wrapper\" style=\"display:inline;font-size:0.7em;\">\r\n<$list filter=\"[all[current]tags[]sort[title]]-[[$:/plugins/welford/twstaticblog/helper/hiddentags]tags[]]\"><$link to={{!!title}} taglink=\"true\"><$transclude tiddler=\"$:/core/ui/TagTemplate\"/></$link></$list></div>\r\n</div>\r\n</$list>\r\n</div>\r\n</$list>" }, "$:/plugins/welford/twstaticblog/helper/blogentrytags": { "title": "$:/plugins/welford/twstaticblog/helper/blogentrytags", "tags": "blog", "text": "!Add Tags to this tiddler and they be exported as blog posts\n\n!Filter\n\n``[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]]``\n\nThis filter should catch all blog posts\n\n!Example List \n\n10 tiddlers that will be exported as blog entries\n\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]]\">\n\n<$view field=\"title\"/><br/>\n\n</$list>" }, "$:/plugins/welford/twstaticblog/helper/blogframeworktags": { "title": "$:/plugins/welford/twstaticblog/helper/blogframeworktags", "tags": "blog-framework", "text": "!Add Tags to this tiddler and they be exported as blog framework pages\n\n!Filter\n\n``[[$:/plugins/welford/twstaticblog/helper/blogframeworktags]tags[]tagging[]]``\n\nThis filter should catch all blog framework pages\n\n!Example List \n\nTiddlers that will be exported as blog framework pages\n\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/blogframeworktags]tags[]tagging[]]\">\n\n<$view field=\"title\"/><br/>\n\n</$list>" }, "$:/plugins/welford/twstaticblog/helper/donotexport": { "title": "$:/plugins/welford/twstaticblog/helper/donotexport", "tags": "blog-draft blog-donotexport", "text": "!Add Tags to this tiddler and they will not be exported\n\n!Filter\n\n``-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]``\n\nAdd this to your custom filters to make sure stuff intended to be hidden is kept hidden\n\n!Example List \n\nThese are tagged such that they will not be exported.\n\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]\">\n\n<$view field=\"title\"/><br/>\n\n</$list>" }, "$:/plugins/welford/twstaticblog/helper/donotindex": { "title": "$:/plugins/welford/twstaticblog/helper/donotindex", "tags": "archive unindex", "text": "!Add Tags to this tiddler and they will not be included on the main page (index.html by default)\n\n!Filter\n\n``-[[$:/plugins/welford/twstaticblog/helper/donotindex]tags[]tagging[]]``\n\nAdd this to your custom filters to make sure stuff intended to be hidden is kept hidden\n\n!Example List \n\nThese are tagged such that they will not be exported.\n\n<$list filter=\"[[$:/plugins/welford/twstaticblog/helper/donotindex]tags[]tagging[]]\">\n\n<$view field=\"title\"/><br/>\n\n</$list>" }, "$:/plugins/welford/twstaticblog/helper/hiddentags": { "title": "$:/plugins/welford/twstaticblog/helper/hiddentags", "tags": "blog blog-framework unindex blog-draft blog-donotexport", "text": "!Add Tags to this tiddler and they will be hidden when statically exporting using the twstaticblog plugin." }, "$:/plugins/welford/twstaticblog/helper/linktopost": { "title": "$:/plugins/welford/twstaticblog/helper/linktopost", "text": "<!-- \r\nThis is the link to the isolated post which appears at the bottom of every article in the main index\r\n-->\r\n<$link to={{!!title}}>View As Single Post >></$link>\r\n<br/>\r\n<br/>\r\n" } } }
!Add Tags to this tiddler and they be exported as blog posts !Filter ``[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]]`` This filter should catch all blog posts !Example List 10 tiddlers that will be exported as blog entries <$list filter="[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]]"> <$view field="title"/><br/> </$list>
<!-- This is the link to the isolated post which appears at the bottom of every article in the main index --> <$link to={{!!title}}>View As Single Post >></$link> <br/> <br/>
{ "tiddlers": { "$:/core/macros/tabs": { "title": "$:/core/macros/tabs", "tags": "$:/tags/Macro", "text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$transclude tiddler={{!!icon}}/>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$set></$tiddler></$button><span class=\"wltc-link-to-tab\"><$link to=<<currentTiddler>> >{{$:/core/images/link}}</$link></span></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end" }, "$:/core/ui/ControlPanel/Settings/link-to-tabs": { "caption": "Link-to-Tabs plugin", "tags": "$:/tags/ControlPanel/Settings", "title": "$:/core/ui/ControlPanel/Settings/link-to-tabs", "text": "<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-all-links\" checked=\"inline\" unchecked=\"none\" default=\"none\"> Show internal tab link for ''all tabs''</$checkbox>\n\n<$checkbox tiddler=\"$:/plugins/wikilabs/link-to-tabs/config\" field=\"show-single-link\" checked=\"inline\" unchecked=\"none\" default=\"inline\"> Show internal tab link for ''selected tabs''</$checkbox>\n" }, "$:/plugins/wikilabs/link-to-tabs/config": { "title": "$:/plugins/wikilabs/link-to-tabs/config", "show-all-links": "none", "show-single-link": "inline", "text": "This tiddler is used to configure the \"Link-to-tabs\" plugin behaviour. \n\nThere are 2 fields, which are used by [[$:/plugins/wikilabs/link-to-tabs/styles]] enable and disable the internal links. \n\n* show-all-links: {{!!show-all-links}}\r\n* show-single-link: {{!!show-single-link}}\r\n" }, "$:/plugins/wikilabs/link-to-tabs/license": { "title": "$:/plugins/wikilabs/link-to-tabs/license", "text": "Link-to-Tabs-Macro (c) Mario Pietsch - 2016\n\nhttps://opensource.org/licenses/BSD-3-Clause" }, "$:/plugins/wikilabs/link-to-tabs/styles": { "tags": "$:/tags/Stylesheet", "title": "$:/plugins/wikilabs/link-to-tabs/styles", "text": "<pre>\n\n.wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-all-links}};\n position: relative;\n top: -1em;\n left: -1.3em;\n font-size: 0.7em;\n opacity: 0.7;\n margin-right: -1em;\n}\n\n.wltc-link-to-tab svg{\n width: 1.4em;\n height: 1.4em;\n}\n\n.wltc-link-to-tab:hover {\n opacity: 1;\n}\n\n.tc-tab-selected + .wltc-link-to-tab {\n display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-single-link}};\n}\n\n.tc-vertical > .wltc-link-to-tab {\n top: -1.9em;\n left: 0;\n height: 0;\n float: right;\n}\n\n</pre>" }, "$:/plugins/wikilabs/link-to-tabs/readme": { "title": "$:/plugins/wikilabs/link-to-tabs/readme", "text": "This plugin adds a little link icon to every tab. \n\n''Important:'' This plugin changes the core tabs macro.\n\n! Lint-to-Tabs Settings\n\n{{$:/core/ui/ControlPanel/Settings/link-to-tabs}}" } } }
<pre> .wltc-link-to-tab { display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-all-links}}; position: relative; top: -1em; left: -1.3em; font-size: 0.7em; opacity: 0.7; margin-right: -1em; } .wltc-link-to-tab svg{ width: 1.4em; height: 1.4em; background-color: yellow; } .wltc-link-to-tab:hover { opacity: 1; } .tc-tab-selected + .wltc-link-to-tab { display: {{$:/plugins/wikilabs/link-to-tabs/config!!show-single-link}}; } .tc-vertical > .wltc-link-to-tab { top: -1.9em; left: 0; height: 0; float: right; } </pre>
{ "tiddlers": { "$:/plugins/wikilabs/ui/remove-states": { "title": "$:/plugins/wikilabs/ui/remove-states", "text": "\\define theFilter()\n[prefix[$:/state/]]\n\\end\n\n<$button>\n<$action-deletetiddler $filter=<<theFilter>> />\nDelete all: <<theFilter>> tiddlers\n</$button>\n\n<$list filter=<<theFilter>> >\n<$button>\n<$action-deletetiddler $tiddler=<<currentTiddler>>/>\nx\n</$button> - <$link to=<<currentTiddler>> ><$text text=<<currentTiddler>> /></$link><br>\n</$list>" }, "$:/plugins/wikilabs/remove-states/license": { "title": "$:/plugins/wikilabs/remove-states/license", "text": "Remove-States-Plugin (c) Mario Pietsch - 2016-2018\n\nhttps://opensource.org/licenses/BSD-3-Clause" }, "$:/plugins/wikilabs/remove-states/readme": { "title": "$:/plugins/wikilabs/remove-states/readme", "text": "! Overview\n\nThis plugin creates a simple UI, to remove all state tiddlers.\n\n! Simple UI\n\n[[$:/plugins/wikilabs/ui/remove-states]]\n\n{{$:/plugins/wikilabs/ui/remove-states}}\n" } } }
\define theFilter() [prefix[$:/state/]] \end <$button> <$action-deletetiddler $filter=<<theFilter>> /> Delete all: <<theFilter>> tiddlers </$button> <$list filter=<<theFilter>> > <$button> <$action-deletetiddler $tiddler=<<currentTiddler>>/> x </$button> - <$link to=<<currentTiddler>> ><$text text=<<currentTiddler>> /></$link><br> </$list>
{{$:/Polices||caption}}
\define thisFontFamilyRadio(fontfamily text) <td><$radio tiddler='$:/state/Site Accessability Options' field=fontfamily value="""$fontfamily$"""> $fontfamily$</$radio></td><td> @@font-family:$fontfamily$; $text$@@</td> \end <div class="column col-sm-12"> <div class="toast toast-success"> Les polices de caractères standard ci-dessous (non embarquées) sont dites "sûres" c'est à dire normalement ''préinstallées'' sur votre ordinateur. Si toutefois le choix d'une police ne donnait aucun résultat, choisissez en une parmi le reste de la liste. </div> </div> <div class="column col-sm-12"> <div class="toast toast-warning"> <$checkbox tiddler="$:/cssTiddlerPolices" tag='$:/tags/Stylesheet'> Autoriser les paramètres</$checkbox> (''Vous devez cocher cette case pour que les paramètres ci-dessous soient pris en compte.'') </div> </div> <table class="table table-striped table-hover"> <thead> <tr> <th>Police</th> <th>Visualisation</th> </tr> </thead> <tbody> <tr><<thisFontFamilyRadio 'Helvetica, Arial, "Lucida Grande", sans-serif' "Default">></tr> <tr><<thisFontFamilyRadio 'Times New Roman' "Façon journaux. Pour des textes denses.">></tr> <tr><<thisFontFamilyRadio 'Comic Sans MS' "Scientifique, Revue de presse">></tr> <tr><<thisFontFamilyRadio Courier "Police Monospace">></tr> <tr><<thisFontFamilyRadio "Zapf Chancery" "Police non commentée">></tr> <tr><<thisFontFamilyRadio "Verdana" "Facilite la lecture">></tr> <tr><<thisFontFamilyRadio "Calibri" "Facilite la lecture">></tr> <tr><<thisFontFamilyRadio "Candara" "Proche de Calibri">></tr> <tr><<thisFontFamilyRadio "Roboto" "Police spéciale embarquée">></tr> <tr><<thisFontFamilyRadio "open_sansextrabold" "Extra-Gras (Embarquée)">></tr> <tr><<thisFontFamilyRadio "open_sanssemibold" "Semi-Gras (Embarquée)">></tr> <tr><<thisFontFamilyRadio "open_sansbold" "Gras (Embarquée)">></tr> <tr><<thisFontFamilyRadio "open_sanslight" "Légère (Embarquée)">></tr> <tr><<thisFontFamilyRadio "open_sansregular" "Régulière (Embarquée)">></tr> <tr><<thisFontFamilyRadio "titilliumthin" "Fine (Embarquée)">></tr> <tr><<thisFontFamilyRadio "titilliumregular" "Régulière (Embarquée)">></tr> <tr><<thisFontFamilyRadio "leckerlioneregular" "Manuscrite (Embarquée)">></tr> </tbody> </table>
<$set name="currentTiddler" value={{$:/fonts}}> {{$:/doc-user-097}} !![[Balises Hn...|$:/BalisesHn]] {{$:/BalisesHn}} !![[Polices de caractères|$:/Polices de caractères]] {{$:/Polices de caractères}} !![[Option des polices|$:/Options des polices]] {{$:/Options des polices}}
<tr> <td> <$link to="$:/Position SideBar">Position de la ~SideBar</$link> </td> <td> {{$:/SBGSBD}} </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar01" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar01" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar01" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar01" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-048}} </td> </$reveal>
<tr> <td> <$link to="$:/Profondeur maxi">Profondeur maxi</$link> </td> <td align="center"> <$edit-text tiddler='$:/Tiddler Breadcrumbs Template' field='length_limit'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/ari02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari02" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/ari02" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari02" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/ari02" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-132}} </td> </$reveal>
<!-- Supprimer le bouton "Accéder au menu" --> <$fieldmangler tiddler="$:/core/ui/Buttons/SideBarTabs"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/ViewToolbar'/> <$action-sendmessage $message='tm-add-tag' $param='none'/> </$fieldmangler> <!-- Supprimer le bouton "Sauvegarde du wiki" --> <$fieldmangler tiddler="$:/core/ui/Buttons/save-wiki"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/ViewToolbar'/> <$action-sendmessage $message='tm-add-tag' $param='none'/> </$fieldmangler> <!-- Supprimer le bouton "Créer un nouveau tiddler" --> <$fieldmangler tiddler="$:/core/ui/Buttons/new-tiddler"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/ViewToolbar'/> <$action-sendmessage $message='tm-add-tag' $param='none'/> </$fieldmangler> <!-- Supprimer le bouton ""Panneau de contrôle" --> <$fieldmangler tiddler="$:/core/ui/Buttons/control-panel"> <$action-sendmessage $message='tm-temove-tag' $param='$:/tags/ViewToolbar'/> <$action-sendmessage $message='tm-add-tag' $param='none'/> </$fieldmangler>
<!-- Remove the LeftBar as well as its chevron --> <$fieldmangler tiddler="$:/plugins/TWaddle/LeftBar/Toggle"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/PageTemplate'/> </$fieldmangler> <!-- Remove the NavBar --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Remove the Menu into the NavBar --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- Remove the SideBar covered by the SroryRiver --> <$action-setfield $tiddler='$:/state/sidebar' text="no" /> <!-- Remove chevron (sidebar) --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="" /> <!-- clear cache --> <$action-setfield $tiddler="$:/temp/verlauf" text="" /> <$action-setfield $tiddler="$:/HistoryList" text="" /> <$action-setfield $tiddler="$:/temp/search" text="" />
<table> <tr> <td> <$button> <!-- Cache le menu gauche --> <$action-setfield $tiddler="$:/plugins/TWaddle/LeftBar/Toggle" tags=""/> <!-- Désactive le bouton du menu gauche et le contenu du menu --> <$action-setfield $tiddler="$:/plugins/TWaddle/LeftBar/Stylesheet" display="none"/> <!-- Impose layout fluid/fixed --> <$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" text="fluid-fixed"/> <!-- SideBar à gauche --> <$action-setfield $tiddler="$:/tesseract/LeftSidebar" tags="$:/tags/Stylesheet"/> ~SideBar à gauche </$button> </td> <td align="right"> <$button> <!-- Affiche le menu gauche --> <$action-setfield $tiddler="$:/plugins/TWaddle/LeftBar/Toggle" tags="$:/tags/PageTemplate"/> <!-- Affiche le bouton du menu gauche --> <$action-setfield $tiddler="$:/plugins/TWaddle/LeftBar/Stylesheet" display="block"/> <$action-setfield $tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" text="fixed-fluid"/> <!-- SideBar à droite --> <$action-setfield $tiddler="$:/tesseract/LeftSidebar" tags=""/> ~SideBar à Droite </$button> </td> </tr> </table>
Dates template Extract HideField Boites editableTable Notifications CondSum Images Accordion SeeAlso
<$select tiddler='$:/Contacts/ContactTemp' field='group'> <$list filter='[tag[ContactGroupe]]'> <option><$view field='title'/></option> </$list> </$select>
\define getFullName() $(FirstName)$ $(LastName)$ ($(NickName)$) |!Groupe |<<newContactAddGroup2>> <<newContactAddGroup1>>| <$set name="grouptag" value={{$:/SelectBox/ContactTemp!!group}}> <$fieldmangler> <$button>Create Contact <$action-setfield $tiddler=<<getFullName>> group={{$:/SelectBox/ContactTemp!!group}} tags="Contact"/> </$button> <$button>Clear Form <$action-setfield $tiddler='$:/SelectBox/ContactTemp' firstname="" lastname="" nickname="" personalemailaddress="" workemailaddress="" otheremailaddress="" homephonenumber="" workphonenumber="" cellphonenumber="" streetaddress="" country="" stateprovence="" zipcode="" city="" blurb=""/> </$button> </$fieldmangler> </$set>
R0lGODlhHAIaAMIAAAAAAL6+vv///3CAkL+/vwAAAAAAAAAAACH5BAEAAAQALAAAAAAcAhoAAAP+SLrc/jDKSau9OOvNu/9gKI5kaZ5oqq5s674WIM9zNA8yDsB87//AoHBILGJkgYFgqVzuHIBAciloyozYrLaInAW84K44GiaPv+cy2sxeu9XwtLwdp8/f9zrezt/762wZUVJNVVQCVwo4hFSFVQMZf3mTfXqWlJKVmJeanZmfnKCbYw0AjadMqIaprKuuhbCqsa2zr7K3tLi2uby7vrXAusG9w7+HTWtdEAADUoy5N87DT6V7xsTC2djb193F39re4eDc5OLb1ASm5ePt7O/n8ebz7vL19K2+hmHqOVI0M1wh8qJDh6lCO3IExGcPHsOH9yI6lNiwIkREDJhRvGj+caPHiSA7huRYS6CVZOkWaGxE4wEOJjqm6BJJk+THmjdtjsx5KqWnUEBH/RQqaqjRokiDHgVqUtsagzJojQGIMIqjWEqTEs3KdavXpV+1gj26pazZsxPSOHQW9dsaKkisiPmCtq7du3jz6hVippyzt8T+rRtgkO7ew4gTK17M2AYNg1Jb0gigiqqTxpgza97M+QfAjGIgSZicSBHczqhTq17NehmhlCTWYWxNu7bt23aZNYM94iBh3MCDCx/e4rNKgLxBQ2VA+DLx59CjS09Lum1PyZBbATw9vbv377T76oPFNqrAV2gQGgTPvr17vOKvChMsXxaafVadoHzPv7+C/xeDHSMgE8jRENkNYqQS14BVJPffgxBGGIMq+CXjkoA3PJADXIPIJJCDEoYoooQrCfBGP8hBZRISXxj0koIoIlHZiDTWGGJLGjbzTH2TyQRMctXZKOSQNnZYEg7HeTiLaEQ26eSTG84IBYM6PGnllUNCxUxpUCCYA5ZghinmmGImAAA7
{{$:/SideBar||caption}}
{{$:/SideBarContrôle||caption}}
{{$:/SideBarDocUser||caption}}
;Barre latérale droite seule. Déplaçable à gauche. <$button class="bttn-fill bttn-sm bttn-primary" to={{!!select-option}} tooltip="Template Barre latérale droite seule et déplaçable à gauche"> <i class="fa fa-spinner"></i> ~SideBar Seule {{$:/RemoveTemplates}} <!-- La SideBar DOIT être en position fixed-fluid --> <$action-setfield $tiddler='$:/themes/tiddlywiki/vanilla/options/sidebarlayout' text="fixed-fluid" /> <!-- SideBar in normal position (right) --> <$action-setfield $tiddler='$:/state/sidebar' text="yes" /> <!-- Add chevron (sidebar) --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="$:/tags/TopRightBar" /> <!-- SPÉCIFIQUE --> {{$:/removeSpecificNoBars}} </$button> <$details summary="Assistant"> {{$:/doc-user-048}} </$details>
\define menuTitle() $(menu)$ \end !!!Créer un nouveau menu Nom du menu<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleLeftBar' field='menu-title' placeholder='e.g. Accueil'/> Icône: <span style="float:right"><a href="http://fontawesome.io/icons/" target="_blank" style="color:#000000"><i class="fa fa-font-awesome" aria-hidden="true" title="Icônes Font Awesome"></i></a></span> <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleLeftBar' field='menu-icon' placeholder='e.g. <i class="fa fa-home" aria-hidden="true"></i>'/> Tooltip: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleLeftBar' field='tooltip' placeholder='e.g. Accueil'/> Indice<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleLeftBar' field='indice' placeholder='Ordre dans le menu (e.g. 1,2...)'/> Liste des tiddlers: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleLeftBar' field='list-tiddlers' placeholder='e.g. TiddlerUn [[Tiddler Deux]]'/> <span style="color:#ff3300">*</span> <span style="font-size:0.8em;font-style:italic;font-weight:bold">Champs obligatoires</span> <$set name=menu value={{$:/TemplateSimpleLeftBar!!menu-title}}> <$reveal type='nomatch' state='$:/TemplateSimpleLeftBar!!indice' text=''> <$reveal type='nomatch' state='$:/TemplateSimpleLeftBar!!menu-title' text=''> <$button>Créer le menu <$action-setfield $tiddler="$:/TemplateSimpleLeftBar" title=<<menuTitle>>/> <$action-setfield $tiddler='$:/TemplateSimpleLeftBar' menu-title='' menu-icon='' tooltip='' indice='' list-tiddlers=''/> </$button> </$reveal> </$reveal> </$set>
\define menuTitle() $(menu)$ \end !!!Créer un nouveau menu Nom du menu<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleNavBar' field='menu-title' placeholder='e.g. Accueil'/> Icône: <span style="float:right"><a href="http://fontawesome.io/icons/" target="_blank" style="color:#000000"><i class="fa fa-font-awesome" aria-hidden="true" title="Icônes Font Awesome"></i></a></span> <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleNavBar' field='menu-icon' placeholder='e.g. <i class="fa fa-home" aria-hidden="true"></i>'/> Tooltip: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleNavBar' field='tooltip' placeholder='e.g. Accueil'/> Rang<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleNavBar' field='rank' placeholder='Ordre dans le menu (e.g. 1,2...)'/> Liste des tiddlers: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleNavBar' field='list-tiddlers' placeholder='e.g. TiddlerUn [[Tiddler Deux]]'/> <span style="color:#ff3300">*</span> <span style="font-size:0.8em;font-style:italic;font-weight:bold">Champs obligatoires</span> <$set name=menu value={{$:/TemplateSimpleNavBar!!menu-title}}> <$reveal type='nomatch' state='$:/TemplateSimpleNavBar!!rank' text=''> <$reveal type='nomatch' state='$:/TemplateSimpleNavBar!!menu-title' text=''> <$button>Créer le menu <$action-setfield $tiddler="$:/TemplateSimpleNavBar" title=<<menuTitle>>/> <$action-setfield $tiddler='$:/TemplateSimpleNavBar' menu-title='' menu-icon='' tooltip='' rank='' list-tiddlers=''/> </$button> </$reveal> </$reveal> </$set>
\define menuTitle() $(menu)$ \end !!!Créer un nouveau menu Nom du menu<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleSideBar' field='menu-title' placeholder='e.g. Home'/> Icône: <span style="float:right"><a href="http://fontawesome.io/icons/" target="_blank" style="color:#000000"><i class="fa fa-font-awesome" aria-hidden="true" title="Icônes Font Awesome"></i></a></span> <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleSideBar' field='menu-icon' placeholder='e.g. <i class="fa fa-home" aria-hidden="true"></i>'/> Tooltip: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleSideBar' field='tooltip' placeholder='e.g. Accueil'/> Statut<span style="color:#ff3300">*</span>: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleSideBar' field='statut' placeholder='Ordre dans le menu (e.g. 1,2...)'/> Liste des tiddlers: <$edit-text class='tc-edit-texteditor' tiddler='$:/TemplateSimpleSideBar' field='list-tiddlers' placeholder='e.g. TiddlerUn [[Tiddler Deux]]'/> <span style="color:#ff3300">*</span> <span style="font-size:0.8em;font-style:italic;font-weight:bold">Champs obligatoires</span> <$set name=menu value={{$:/TemplateSimpleSideBar!!menu-title}}> <$reveal type='nomatch' state='$:/TemplateSimpleSideBar!!statut' text=''> <$reveal type='nomatch' state='$:/TemplateSimpleSideBar!!menu-title' text=''> <$button>Créer le menu <$action-setfield $tiddler="$:/TemplateSimpleSideBar" title=<<menuTitle>>/> <$action-setfield $tiddler='$:/TemplateSimpleSideBar' menu-title='' menu-icon='' tooltip='' statut='' list-tiddlers=''/> </$button> </$reveal> </$reveal> </$set>
<div class="tc-topmenu">@@.tc-site-title {{$:/SiteTitle}}@@ @@.tc-site-subtitle {{$:/SiteSubtitle}}@@<br/> [[À Propos de Apprendre]] </div>
~TiddlyWiki et ses plugins
Apprendre
\define slider(label,tiddler) <$button popup="$:/state/$tiddler$" class="tc-btn-invisible"><$text text="$label$"/></$button> <$reveal type="nomatch" text="" default="" state="$:/state/$tiddler$" animate="yes"> {{$tiddler$}} </$reveal> \end !!1- La Macro ``` \define slider(label,tiddler) <$button popup="$:/state/$tiddler$" class="tc-btn-invisible"><$text text="$label$"/></$button> <$reveal type="nomatch" text="" default="" state="$:/state/$tiddler$" animate="yes"> {{$tiddler$}} </$reveal> \end ``` !!Son utilisation (Exemple): ``` <<slider "Tutoriel" "Tutoriel">> ``` ;Soit : <<slider "Tutoriel" "Tutoriel">>
\define renderfield(title) <tr class="tc-view-field"><td class="tc-view-field-name">''$title$'':</td><td class="tc-view-field-value">//{{$:/language/Docs/Fields/$title$}}//</td></tr> \end <table class="table table-striped table-hover"> <thead> <tr> <th>Field</th> <th>Description</th> </tr> </thead> <tbody> <$list filter="[fields[]sort[title]]" variable="listItem"><$macrocall $name="renderfield" title=<<listItem>>/> </$list> </tbody> </table>
\define lingo-base() $:/language/ControlPanel/Tools/Download/ <$button class="btn btn-success"> <$action-sendmessage $message="tm-download-file" $param="$:/core/save/all" filename="index.html"/> <<lingo Full/Caption>>{{$:/core/images/save-button}} </$button>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end <$set name="currentTiddler" value={{$:/palette}}> <<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name="currentTiddler" $output="text/plain"/></$link> <$list filter="[all[current]is[shadow]is[tiddler]]" variable="listItem"> <<lingo Prompt/Modified>> <$button message="tm-delete-tiddler" param={{$:/palette}}><<lingo Reset/Caption>></$button> </$list> <$list filter="[all[current]is[shadow]!is[tiddler]]" variable="listItem"> <<lingo Clone/Prompt>> </$list> <$button message="tm-new-tiddler" param={{$:/palette}}><<lingo Clone/Caption>></$button> <table> <tbody> <$list filter="[all[current]indexes[]]" variable="colourName"> <tr> <td> ''<$macrocall $name="describePaletteColour" colour=<<colourName>>/>''<br/> <$macrocall $name="colourName" $output="text/plain"/> </td> <td> <$edit-text index=<<colourName>> tag="input"/> <br> <$edit-text index=<<colourName>> type="color" tag="input"/> <$wikify name="bg" text="<$macrocall $name=colour name=<<colourName>> mode=inline/>"> <$wikify name="bg-class" text="te-<<colourName>>"> <$reveal type="nomatch" state=<<colourName>> text=<<bg>> class=<<bg-class>>> <<bg>> <span class="te-white"> <<bg>> </span></$reveal> <style> .<<bg-class>> {background:<<bg>>;} .<<bg-class>> .te-white {color:#fff;} </style> </$wikify> </$wikify> </td> </tr> </$list> </tbody> </table> </$set> <style> br + input[type=color] { margin-top: .25rem; vertical-align: bottom; } </style>
<$linkcatcher to="$:/palette"> <div class="tc-chooser"><$list filter="[all[shadows+tiddlers]tag[$:/tags/Palette]sort[description]]"><$set name="cls" filter="[all[current]prefix{$:/palette}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item"><div class=<<cls>>><$link to={{!!title}}>''<$view field="name" format="text"/>'' - <$view field="description" format="text"/>{{||$:/snippets/currpalettepreview}}</$link> </div></$set> </$list> </div> </$linkcatcher>
\define expandable-stylesheets-list() <ol> <$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]"> <$vars state=<<qualify "$:/config/peek-stylesheets/open/">>> <$set name="state" value={{{ [<state>addsuffix<currentTiddler>] }}}> <li> <$reveal type="match" state=<<state>> text="yes" tag="span"> <$button set=<<state>> setTo="no" class="tc-btn-invisible"> {{$:/core/images/down-arrow}} </$button> </$reveal> <$reveal type="nomatch" state=<<state>> text="yes" tag="span"> <$button set=<<state>> setTo="yes" class="tc-btn-invisible"> {{$:/core/images/right-arrow}} </$button> </$reveal> <$link> <$view field="title"/> </$link> <$reveal type="match" state=<<state>> text="yes" tag="div"> <$set name="source" tiddler=<<currentTiddler>>> <$wikify name="styles" text=<<source>>> <pre> <code> <$text text=<<styles>>/> </code> </pre> </$wikify> </$set> </$reveal> </li> </$set> </$vars> </$list> </ol> \end \define stylesheets-list() <ol> <$list filter="[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]"> <li> <$link> <$view field="title"/> </$link> <$set name="source" tiddler=<<currentTiddler>>> <$wikify name="styles" text=<<source>>> <pre> <code> <$text text=<<styles>>/> </code> </pre> </$wikify> </$set> </li> </$list> </ol> \end <$vars modeState=<<qualify "$:/config/peek-stylesheets/mode/">>> <$reveal type="nomatch" state=<<modeState>> text="expanded" tag="div"> <$button set=<<modeState>> setTo="expanded" class="tc-btn-invisible">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button> </$reveal> <$reveal type="match" state=<<modeState>> text="expanded" tag="div"> <$button set=<<modeState>> setTo="restored" class="tc-btn-invisible">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button> </$reveal> <$reveal type="nomatch" state=<<modeState>> text="expanded" tag="div"> <<expandable-stylesheets-list>> </$reveal> <$reveal type="match" state=<<modeState>> text="expanded" tag="div"> <<stylesheets-list>> </$reveal> </$vars>
/*! Spectre.css Experimentals v0.5.8 | MIT License | github.com/picturepan2/spectre */ .form-autocomplete { position: relative; } .form-autocomplete .form-autocomplete-input { align-content: flex-start; display: flex; display: -ms-flexbox; -ms-flex-line-pack: start; -ms-flex-wrap: wrap; flex-wrap: wrap; height: auto; min-height: 1.6rem; padding: .1rem; } .form-autocomplete .form-autocomplete-input.is-focused { border-color: #5755d9; box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } .form-autocomplete .form-autocomplete-input .form-input { border-color: transparent; box-shadow: none; display: inline-block; -ms-flex: 1 0 auto; flex: 1 0 auto; height: 1.2rem; line-height: .8rem; margin: .1rem; width: auto; } .form-autocomplete .menu { left: 0; position: absolute; top: 100%; width: 100%; } .form-autocomplete.autocomplete-oneline .form-autocomplete-input { -ms-flex-wrap: nowrap; flex-wrap: nowrap; overflow-x: auto; } .form-autocomplete.autocomplete-oneline .chip { -ms-flex: 1 0 auto; flex: 1 0 auto; } .calendar { border: .05rem solid #dadee4; border-radius: .1rem; display: block; min-width: 280px; } .calendar .calendar-nav { align-items: center; background: #f7f8f9; border-top-left-radius: .1rem; border-top-right-radius: .1rem; display: flex; display: -ms-flexbox; -ms-flex-align: center; font-size: .9rem; padding: .4rem; } .calendar .calendar-header, .calendar .calendar-body { display: flex; display: -ms-flexbox; -ms-flex-pack: center; -ms-flex-wrap: wrap; flex-wrap: wrap; justify-content: center; padding: .4rem 0; } .calendar .calendar-header .calendar-date, .calendar .calendar-body .calendar-date { -ms-flex: 0 0 14.28%; flex: 0 0 14.28%; max-width: 14.28%; } .calendar .calendar-header { background: #f7f8f9; border-bottom: .05rem solid #dadee4; color: #bcc3ce; font-size: .7rem; text-align: center; } .calendar .calendar-body { color: #66758c; } .calendar .calendar-date { border: 0; padding: .2rem; } .calendar .calendar-date .date-item { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: transparent; border: .05rem solid transparent; border-radius: 50%; color: #66758c; cursor: pointer; font-size: .7rem; height: 1.4rem; line-height: 1rem; outline: none; padding: .1rem; position: relative; text-align: center; text-decoration: none; transition: background .2s, border .2s, box-shadow .2s, color .2s; vertical-align: middle; white-space: nowrap; width: 1.4rem; } .calendar .calendar-date .date-item.date-today { border-color: #e5e5f9; color: #5755d9; } .calendar .calendar-date .date-item:focus { box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } .calendar .calendar-date .date-item:focus, .calendar .calendar-date .date-item:hover { background: #fefeff; border-color: #e5e5f9; color: #5755d9; text-decoration: none; } .calendar .calendar-date .date-item:active, .calendar .calendar-date .date-item.active { background: #4b48d6; border-color: #3634d2; color: #fff; } .calendar .calendar-date .date-item.badge::after { position: absolute; right: 3px; top: 3px; transform: translate(50%, -50%); } .calendar .calendar-date .date-item:disabled, .calendar .calendar-date .date-item.disabled, .calendar .calendar-date .calendar-event:disabled, .calendar .calendar-date .calendar-event.disabled { cursor: default; opacity: .25; pointer-events: none; } .calendar .calendar-date.prev-month .date-item, .calendar .calendar-date.prev-month .calendar-event, .calendar .calendar-date.next-month .date-item, .calendar .calendar-date.next-month .calendar-event { opacity: .25; } .calendar .calendar-range { position: relative; } .calendar .calendar-range::before { background: #f1f1fc; content: ""; height: 1.4rem; left: 0; position: absolute; right: 0; top: 50%; transform: translateY(-50%); } .calendar .calendar-range.range-start::before { left: 50%; } .calendar .calendar-range.range-end::before { right: 50%; } .calendar .calendar-range.range-start .date-item, .calendar .calendar-range.range-end .date-item { background: #4b48d6; border-color: #3634d2; color: #fff; } .calendar .calendar-range .date-item { color: #5755d9; } .calendar.calendar-lg .calendar-body { padding: 0; } .calendar.calendar-lg .calendar-body .calendar-date { border-bottom: .05rem solid #dadee4; border-right: .05rem solid #dadee4; display: flex; display: -ms-flexbox; -ms-flex-direction: column; flex-direction: column; height: 5.5rem; padding: 0; } .calendar.calendar-lg .calendar-body .calendar-date:nth-child(7n) { border-right: 0; } .calendar.calendar-lg .calendar-body .calendar-date:nth-last-child(-n+7) { border-bottom: 0; } .calendar.calendar-lg .date-item { align-self: flex-end; -ms-flex-item-align: end; height: 1.4rem; margin-right: .2rem; margin-top: .2rem; } .calendar.calendar-lg .calendar-range::before { top: 19px; } .calendar.calendar-lg .calendar-range.range-start::before { left: auto; width: 19px; } .calendar.calendar-lg .calendar-range.range-end::before { right: 19px; } .calendar.calendar-lg .calendar-events { flex-grow: 1; -ms-flex-positive: 1; line-height: 1; overflow-y: auto; padding: .2rem; } .calendar.calendar-lg .calendar-event { border-radius: .1rem; display: block; font-size: .7rem; margin: .1rem auto; overflow: hidden; padding: 3px 4px; text-overflow: ellipsis; white-space: nowrap; } .carousel .carousel-locator:nth-of-type(1):checked ~ .carousel-container .carousel-item:nth-of-type(1), .carousel .carousel-locator:nth-of-type(2):checked ~ .carousel-container .carousel-item:nth-of-type(2), .carousel .carousel-locator:nth-of-type(3):checked ~ .carousel-container .carousel-item:nth-of-type(3), .carousel .carousel-locator:nth-of-type(4):checked ~ .carousel-container .carousel-item:nth-of-type(4), .carousel .carousel-locator:nth-of-type(5):checked ~ .carousel-container .carousel-item:nth-of-type(5), .carousel .carousel-locator:nth-of-type(6):checked ~ .carousel-container .carousel-item:nth-of-type(6), .carousel .carousel-locator:nth-of-type(7):checked ~ .carousel-container .carousel-item:nth-of-type(7), .carousel .carousel-locator:nth-of-type(8):checked ~ .carousel-container .carousel-item:nth-of-type(8) { animation: carousel-slidein .75s ease-in-out 1; opacity: 1; z-index: 100; } .carousel .carousel-locator:nth-of-type(1):checked ~ .carousel-nav .nav-item:nth-of-type(1), .carousel .carousel-locator:nth-of-type(2):checked ~ .carousel-nav .nav-item:nth-of-type(2), .carousel .carousel-locator:nth-of-type(3):checked ~ .carousel-nav .nav-item:nth-of-type(3), .carousel .carousel-locator:nth-of-type(4):checked ~ .carousel-nav .nav-item:nth-of-type(4), .carousel .carousel-locator:nth-of-type(5):checked ~ .carousel-nav .nav-item:nth-of-type(5), .carousel .carousel-locator:nth-of-type(6):checked ~ .carousel-nav .nav-item:nth-of-type(6), .carousel .carousel-locator:nth-of-type(7):checked ~ .carousel-nav .nav-item:nth-of-type(7), .carousel .carousel-locator:nth-of-type(8):checked ~ .carousel-nav .nav-item:nth-of-type(8) { color: #f7f8f9; } .carousel { background: #f7f8f9; display: block; overflow: hidden; -webkit-overflow-scrolling: touch; position: relative; width: 100%; z-index: 1; } .carousel .carousel-container { height: 100%; left: 0; position: relative; } .carousel .carousel-container::before { content: ""; display: block; padding-bottom: 56.25%; } .carousel .carousel-container .carousel-item { animation: carousel-slideout 1s ease-in-out 1; height: 100%; left: 0; margin: 0; opacity: 0; position: absolute; top: 0; width: 100%; } .carousel .carousel-container .carousel-item:hover .item-prev, .carousel .carousel-container .carousel-item:hover .item-next { opacity: 1; } .carousel .carousel-container .item-prev, .carousel .carousel-container .item-next { background: rgba(247, 248, 249, .25); border-color: rgba(247, 248, 249, .5); color: #f7f8f9; opacity: 0; position: absolute; top: 50%; transform: translateY(-50%); transition: all .4s; z-index: 100; } .carousel .carousel-container .item-prev { left: 1rem; } .carousel .carousel-container .item-next { right: 1rem; } .carousel .carousel-nav { bottom: .4rem; display: flex; display: -ms-flexbox; -ms-flex-pack: center; justify-content: center; left: 50%; position: absolute; transform: translateX(-50%); width: 10rem; z-index: 100; } .carousel .carousel-nav .nav-item { color: rgba(247, 248, 249, .5); display: block; -ms-flex: 1 0 auto; flex: 1 0 auto; height: 1.6rem; margin: .2rem; max-width: 2.5rem; position: relative; } .carousel .carousel-nav .nav-item::before { background: currentColor; content: ""; display: block; height: .1rem; position: absolute; top: .5rem; width: 100%; } @keyframes carousel-slidein { 0% { transform: translateX(100%); } 100% { transform: translateX(0); } } @keyframes carousel-slideout { 0% { opacity: 1; transform: translateX(0); } 100% { opacity: 1; transform: translateX(-50%); } } .comparison-slider { height: 50vh; overflow: hidden; -webkit-overflow-scrolling: touch; position: relative; width: 100%; } .comparison-slider .comparison-before, .comparison-slider .comparison-after { height: 100%; left: 0; margin: 0; overflow: hidden; position: absolute; top: 0; } .comparison-slider .comparison-before img, .comparison-slider .comparison-after img { height: 100%; object-fit: cover; object-position: left center; position: absolute; width: 100%; } .comparison-slider .comparison-before { width: 100%; z-index: 1; } .comparison-slider .comparison-before .comparison-label { right: .8rem; } .comparison-slider .comparison-after { max-width: 100%; min-width: 0; z-index: 2; } .comparison-slider .comparison-after::before { background: transparent; content: ""; cursor: default; height: 100%; left: 0; position: absolute; right: .8rem; top: 0; z-index: 1; } .comparison-slider .comparison-after::after { background: currentColor; border-radius: 50%; box-shadow: 0 -5px, 0 5px; color: #fff; content: ""; height: 3px; position: absolute; right: .4rem; top: 50%; transform: translate(50%, -50%); width: 3px; } .comparison-slider .comparison-after .comparison-label { left: .8rem; } .comparison-slider .comparison-resizer { animation: first-run 1.5s 1 ease-in-out; cursor: ew-resize; height: .8rem; left: 0; max-width: 100%; min-width: .8rem; opacity: 0; outline: none; position: relative; resize: horizontal; top: 50%; transform: translateY(-50%) scaleY(30); width: 0; } .comparison-slider .comparison-label { background: rgba(48, 55, 66, .5); bottom: .8rem; color: #fff; padding: .2rem .4rem; position: absolute; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } @keyframes first-run { 0% { width: 0; } 25% { width: 2.4rem; } 50% { width: .8rem; } 75% { width: 1.2rem; } 100% { width: 0; } } .filter .filter-tag#tag-0:checked ~ .filter-nav .chip[for="tag-0"], .filter .filter-tag#tag-1:checked ~ .filter-nav .chip[for="tag-1"], .filter .filter-tag#tag-2:checked ~ .filter-nav .chip[for="tag-2"], .filter .filter-tag#tag-3:checked ~ .filter-nav .chip[for="tag-3"], .filter .filter-tag#tag-4:checked ~ .filter-nav .chip[for="tag-4"], .filter .filter-tag#tag-5:checked ~ .filter-nav .chip[for="tag-5"], .filter .filter-tag#tag-6:checked ~ .filter-nav .chip[for="tag-6"], .filter .filter-tag#tag-7:checked ~ .filter-nav .chip[for="tag-7"], .filter .filter-tag#tag-8:checked ~ .filter-nav .chip[for="tag-8"] { background: #5755d9; color: #fff; } .filter .filter-tag#tag-1:checked ~ .filter-body .filter-item:not([data-tag~="tag-1"]), .filter .filter-tag#tag-2:checked ~ .filter-body .filter-item:not([data-tag~="tag-2"]), .filter .filter-tag#tag-3:checked ~ .filter-body .filter-item:not([data-tag~="tag-3"]), .filter .filter-tag#tag-4:checked ~ .filter-body .filter-item:not([data-tag~="tag-4"]), .filter .filter-tag#tag-5:checked ~ .filter-body .filter-item:not([data-tag~="tag-5"]), .filter .filter-tag#tag-6:checked ~ .filter-body .filter-item:not([data-tag~="tag-6"]), .filter .filter-tag#tag-7:checked ~ .filter-body .filter-item:not([data-tag~="tag-7"]), .filter .filter-tag#tag-8:checked ~ .filter-body .filter-item:not([data-tag~="tag-8"]) { display: none; } .filter .filter-nav { margin: .4rem 0; } .filter .filter-body { display: flex; display: -ms-flexbox; -ms-flex-wrap: wrap; flex-wrap: wrap; } .meter { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: #f7f8f9; border: 0; border-radius: .1rem; display: block; height: .8rem; width: 100%; } .meter::-webkit-meter-inner-element { display: block; } .meter::-webkit-meter-bar, .meter::-webkit-meter-optimum-value, .meter::-webkit-meter-suboptimum-value, .meter::-webkit-meter-even-less-good-value { border-radius: .1rem; } .meter::-webkit-meter-bar { background: #f7f8f9; } .meter::-webkit-meter-optimum-value { background: #32b643; } .meter::-webkit-meter-suboptimum-value { background: #ffb700; } .meter::-webkit-meter-even-less-good-value { background: #e85600; } .meter::-moz-meter-bar, .meter:-moz-meter-optimum, .meter:-moz-meter-sub-optimum, .meter:-moz-meter-sub-sub-optimum { border-radius: .1rem; } .meter:-moz-meter-optimum::-moz-meter-bar { background: #32b643; } .meter:-moz-meter-sub-optimum::-moz-meter-bar { background: #ffb700; } .meter:-moz-meter-sub-sub-optimum::-moz-meter-bar { background: #e85600; } .off-canvas { display: flex; display: -ms-flexbox; -ms-flex-flow: nowrap; flex-flow: nowrap; height: 100%; position: relative; width: 100%; } .off-canvas .off-canvas-toggle { display: block; left: .4rem; position: absolute; top: .4rem; transition: none; z-index: 1; } .off-canvas .off-canvas-sidebar { background: #f7f8f9; bottom: 0; left: 0; min-width: 10rem; overflow-y: auto; position: fixed; top: 0; transform: translateX(-100%); transition: transform .25s; z-index: 200; } .off-canvas .off-canvas-content { -ms-flex: 1 1 auto; flex: 1 1 auto; height: 100%; padding: .4rem .4rem .4rem 4rem; } .off-canvas .off-canvas-overlay { background: rgba(48, 55, 66, .1); border-color: transparent; border-radius: 0; bottom: 0; display: none; height: 100%; left: 0; position: fixed; right: 0; top: 0; width: 100%; } .off-canvas .off-canvas-sidebar:target, .off-canvas .off-canvas-sidebar.active { transform: translateX(0); } .off-canvas .off-canvas-sidebar:target ~ .off-canvas-overlay, .off-canvas .off-canvas-sidebar.active ~ .off-canvas-overlay { display: block; z-index: 100; } @media (min-width: 960px) { .off-canvas.off-canvas-sidebar-show .off-canvas-toggle { display: none; } .off-canvas.off-canvas-sidebar-show .off-canvas-sidebar { -ms-flex: 0 0 auto; flex: 0 0 auto; position: relative; transform: none; } .off-canvas.off-canvas-sidebar-show .off-canvas-overlay { display: none !important; } } .parallax { display: block; height: auto; position: relative; width: auto; } .parallax .parallax-content { box-shadow: 0 1rem 2.1rem rgba(48, 55, 66, .3); height: auto; transform: perspective(1000px); transform-style: preserve-3d; transition: all .4s ease; width: 100%; } .parallax .parallax-content::before { content: ""; display: block; height: 100%; left: 0; position: absolute; top: 0; width: 100%; } .parallax .parallax-front { align-items: center; color: #fff; display: flex; display: -ms-flexbox; -ms-flex-align: center; -ms-flex-pack: center; height: 100%; justify-content: center; left: 0; position: absolute; text-align: center; text-shadow: 0 0 20px rgba(48, 55, 66, .75); top: 0; transform: translateZ(50px) scale(.95); transition: transform .4s; width: 100%; z-index: 1; } .parallax .parallax-top-left { height: 50%; left: 0; outline: none; position: absolute; top: 0; width: 50%; z-index: 100; } .parallax .parallax-top-left:focus ~ .parallax-content, .parallax .parallax-top-left:hover ~ .parallax-content { transform: perspective(1000px) rotateX(3deg) rotateY(-3deg); } .parallax .parallax-top-left:focus ~ .parallax-content::before, .parallax .parallax-top-left:hover ~ .parallax-content::before { background: linear-gradient(135deg, rgba(255, 255, 255, .35) 0%, transparent 50%); } .parallax .parallax-top-left:focus ~ .parallax-content .parallax-front, .parallax .parallax-top-left:hover ~ .parallax-content .parallax-front { transform: translate3d(4.5px, 4.5px, 50px) scale(.95); } .parallax .parallax-top-right { height: 50%; outline: none; position: absolute; right: 0; top: 0; width: 50%; z-index: 100; } .parallax .parallax-top-right:focus ~ .parallax-content, .parallax .parallax-top-right:hover ~ .parallax-content { transform: perspective(1000px) rotateX(3deg) rotateY(3deg); } .parallax .parallax-top-right:focus ~ .parallax-content::before, .parallax .parallax-top-right:hover ~ .parallax-content::before { background: linear-gradient(-135deg, rgba(255, 255, 255, .35) 0%, transparent 50%); } .parallax .parallax-top-right:focus ~ .parallax-content .parallax-front, .parallax .parallax-top-right:hover ~ .parallax-content .parallax-front { transform: translate3d(-4.5px, 4.5px, 50px) scale(.95); } .parallax .parallax-bottom-left { bottom: 0; height: 50%; left: 0; outline: none; position: absolute; width: 50%; z-index: 100; } .parallax .parallax-bottom-left:focus ~ .parallax-content, .parallax .parallax-bottom-left:hover ~ .parallax-content { transform: perspective(1000px) rotateX(-3deg) rotateY(-3deg); } .parallax .parallax-bottom-left:focus ~ .parallax-content::before, .parallax .parallax-bottom-left:hover ~ .parallax-content::before { background: linear-gradient(45deg, rgba(255, 255, 255, .35) 0%, transparent 50%); } .parallax .parallax-bottom-left:focus ~ .parallax-content .parallax-front, .parallax .parallax-bottom-left:hover ~ .parallax-content .parallax-front { transform: translate3d(4.5px, -4.5px, 50px) scale(.95); } .parallax .parallax-bottom-right { bottom: 0; height: 50%; outline: none; position: absolute; right: 0; width: 50%; z-index: 100; } .parallax .parallax-bottom-right:focus ~ .parallax-content, .parallax .parallax-bottom-right:hover ~ .parallax-content { transform: perspective(1000px) rotateX(-3deg) rotateY(3deg); } .parallax .parallax-bottom-right:focus ~ .parallax-content::before, .parallax .parallax-bottom-right:hover ~ .parallax-content::before { background: linear-gradient(-45deg, rgba(255, 255, 255, .35) 0%, transparent 50%); } .parallax .parallax-bottom-right:focus ~ .parallax-content .parallax-front, .parallax .parallax-bottom-right:hover ~ .parallax-content .parallax-front { transform: translate3d(-4.5px, -4.5px, 50px) scale(.95); } .progress { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: #eef0f3; border: 0; border-radius: .1rem; color: #5755d9; height: .2rem; position: relative; width: 100%; } .progress::-webkit-progress-bar { background: transparent; border-radius: .1rem; } .progress::-webkit-progress-value { background: #5755d9; border-radius: .1rem; } .progress::-moz-progress-bar { background: #5755d9; border-radius: .1rem; } .progress:indeterminate { animation: progress-indeterminate 1.5s linear infinite; background: #eef0f3 linear-gradient(to right, #5755d9 30%, #eef0f3 30%) top left/150% 150% no-repeat; } .progress:indeterminate::-moz-progress-bar { background: transparent; } @keyframes progress-indeterminate { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } } .slider { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: transparent; display: block; height: 1.2rem; width: 100%; } .slider:focus { box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); outline: none; } .slider.tooltip:not([data-tooltip])::after { content: attr(value); } .slider::-webkit-slider-thumb { -webkit-appearance: none; background: #5755d9; border: 0; border-radius: 50%; height: .6rem; margin-top: -.25rem; transition: transform .2s; width: .6rem; } .slider::-moz-range-thumb { background: #5755d9; border: 0; border-radius: 50%; height: .6rem; transition: transform .2s; width: .6rem; } .slider::-ms-thumb { background: #5755d9; border: 0; border-radius: 50%; height: .6rem; transition: transform .2s; width: .6rem; } .slider:active::-webkit-slider-thumb { transform: scale(1.25); } .slider:active::-moz-range-thumb { transform: scale(1.25); } .slider:active::-ms-thumb { transform: scale(1.25); } .slider:disabled::-webkit-slider-thumb, .slider.disabled::-webkit-slider-thumb { background: #f7f8f9; transform: scale(1); } .slider:disabled::-moz-range-thumb, .slider.disabled::-moz-range-thumb { background: #f7f8f9; transform: scale(1); } .slider:disabled::-ms-thumb, .slider.disabled::-ms-thumb { background: #f7f8f9; transform: scale(1); } .slider::-webkit-slider-runnable-track { background: #eef0f3; border-radius: .1rem; height: .1rem; width: 100%; } .slider::-moz-range-track { background: #eef0f3; border-radius: .1rem; height: .1rem; width: 100%; } .slider::-ms-track { background: #eef0f3; border-radius: .1rem; height: .1rem; width: 100%; } .slider::-ms-fill-lower { background: #5755d9; } .timeline .timeline-item { display: flex; display: -ms-flexbox; margin-bottom: 1.2rem; position: relative; } .timeline .timeline-item::before { background: #dadee4; content: ""; height: 100%; left: 11px; position: absolute; top: 1.2rem; width: 2px; } .timeline .timeline-item .timeline-left { -ms-flex: 0 0 auto; flex: 0 0 auto; } .timeline .timeline-item .timeline-content { -ms-flex: 1 1 auto; flex: 1 1 auto; padding: 2px 0 2px .8rem; } .timeline .timeline-item .timeline-icon { align-items: center; border-radius: 50%; color: #fff; display: -ms-flexbox; display: flex; -ms-flex-align: center; -ms-flex-pack: center; height: 1.2rem; justify-content: center; text-align: center; width: 1.2rem; } .timeline .timeline-item .timeline-icon::before { border: .1rem solid #5755d9; border-radius: 50%; content: ""; display: block; height: .4rem; left: .4rem; position: absolute; top: .4rem; width: .4rem; } .timeline .timeline-item .timeline-icon.icon-lg { background: #5755d9; line-height: 1.2rem; } .timeline .timeline-item .timeline-icon.icon-lg::before { content: none; } .viewer-360 { align-items: center; display: flex; display: -ms-flexbox; -ms-flex-align: center; -ms-flex-direction: column; flex-direction: column; } .viewer-360 .viewer-slider[max="36"][value="1"] + .viewer-image { background-position-y: 0; } .viewer-360 .viewer-slider[max="36"][value="2"] + .viewer-image { background-position-y: 2.8571428571%; } .viewer-360 .viewer-slider[max="36"][value="3"] + .viewer-image { background-position-y: 5.7142857143%; } .viewer-360 .viewer-slider[max="36"][value="4"] + .viewer-image { background-position-y: 8.5714285714%; } .viewer-360 .viewer-slider[max="36"][value="5"] + .viewer-image { background-position-y: 11.4285714286%; } .viewer-360 .viewer-slider[max="36"][value="6"] + .viewer-image { background-position-y: 14.2857142857%; } .viewer-360 .viewer-slider[max="36"][value="7"] + .viewer-image { background-position-y: 17.1428571429%; } .viewer-360 .viewer-slider[max="36"][value="8"] + .viewer-image { background-position-y: 20%; } .viewer-360 .viewer-slider[max="36"][value="9"] + .viewer-image { background-position-y: 22.8571428571%; } .viewer-360 .viewer-slider[max="36"][value="10"] + .viewer-image { background-position-y: 25.7142857143%; } .viewer-360 .viewer-slider[max="36"][value="11"] + .viewer-image { background-position-y: 28.5714285714%; } .viewer-360 .viewer-slider[max="36"][value="12"] + .viewer-image { background-position-y: 31.4285714286%; } .viewer-360 .viewer-slider[max="36"][value="13"] + .viewer-image { background-position-y: 34.2857142857%; } .viewer-360 .viewer-slider[max="36"][value="14"] + .viewer-image { background-position-y: 37.1428571429%; } .viewer-360 .viewer-slider[max="36"][value="15"] + .viewer-image { background-position-y: 40%; } .viewer-360 .viewer-slider[max="36"][value="16"] + .viewer-image { background-position-y: 42.8571428571%; } .viewer-360 .viewer-slider[max="36"][value="17"] + .viewer-image { background-position-y: 45.7142857143%; } .viewer-360 .viewer-slider[max="36"][value="18"] + .viewer-image { background-position-y: 48.5714285714%; } .viewer-360 .viewer-slider[max="36"][value="19"] + .viewer-image { background-position-y: 51.4285714286%; } .viewer-360 .viewer-slider[max="36"][value="20"] + .viewer-image { background-position-y: 54.2857142857%; } .viewer-360 .viewer-slider[max="36"][value="21"] + .viewer-image { background-position-y: 57.1428571429%; } .viewer-360 .viewer-slider[max="36"][value="22"] + .viewer-image { background-position-y: 60%; } .viewer-360 .viewer-slider[max="36"][value="23"] + .viewer-image { background-position-y: 62.8571428571%; } .viewer-360 .viewer-slider[max="36"][value="24"] + .viewer-image { background-position-y: 65.7142857143%; } .viewer-360 .viewer-slider[max="36"][value="25"] + .viewer-image { background-position-y: 68.5714285714%; } .viewer-360 .viewer-slider[max="36"][value="26"] + .viewer-image { background-position-y: 71.4285714286%; } .viewer-360 .viewer-slider[max="36"][value="27"] + .viewer-image { background-position-y: 74.2857142857%; } .viewer-360 .viewer-slider[max="36"][value="28"] + .viewer-image { background-position-y: 77.1428571429%; } .viewer-360 .viewer-slider[max="36"][value="29"] + .viewer-image { background-position-y: 80%; } .viewer-360 .viewer-slider[max="36"][value="30"] + .viewer-image { background-position-y: 82.8571428571%; } .viewer-360 .viewer-slider[max="36"][value="31"] + .viewer-image { background-position-y: 85.7142857143%; } .viewer-360 .viewer-slider[max="36"][value="32"] + .viewer-image { background-position-y: 88.5714285714%; } .viewer-360 .viewer-slider[max="36"][value="33"] + .viewer-image { background-position-y: 91.4285714286%; } .viewer-360 .viewer-slider[max="36"][value="34"] + .viewer-image { background-position-y: 94.2857142857%; } .viewer-360 .viewer-slider[max="36"][value="35"] + .viewer-image { background-position-y: 97.1428571429%; } .viewer-360 .viewer-slider[max="36"][value="36"] + .viewer-image { background-position-y: 100%; } .viewer-360 .viewer-slider { cursor: ew-resize; -ms-flex-order: 2; margin: 1rem; order: 2; width: 60%; } .viewer-360 .viewer-image { background-position-y: 0; background-repeat: no-repeat; background-size: 100%; -ms-flex-order: 1; max-width: 100%; order: 1; }
/*! Icons.css v0.1.0 | MIT License | github.com/picturepan2/icons.css */ .icon { box-sizing: border-box; display: inline-block; font-size: inherit; font-style: normal; height: 1em; position: relative; text-indent: -9999px; vertical-align: middle; width: 1em; } .icon::before, .icon::after { content: ""; display: block; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); } .icon.icon-2x { font-size: 32px; } .icon.icon-3x { font-size: 48px; } .icon.icon-4x { font-size: 64px; } .icon-apps::before { background: currentColor; box-shadow: -.35em -.35em, -.35em 0, -.35em .35em, 0 -.35em, 0 .35em, .35em -.35em, .35em 0, .35em .35em; height: .15em; width: .15em; } .icon-arrow-down::before, .icon-arrow-left::before, .icon-arrow-right::before, .icon-arrow-up::before, .icon-downward::before, .icon-back::before, .icon-forward::before, .icon-upward::before { border: .1rem solid currentColor; border-bottom: 0; border-right: 0; height: .65em; width: .65em; } .icon-arrow-down::before { transform: translate(-50%, -75%) rotate(225deg); } .icon-arrow-left::before { transform: translate(-25%, -50%) rotate(-45deg); } .icon-arrow-right::before { transform: translate(-75%, -50%) rotate(135deg); } .icon-arrow-up::before { transform: translate(-50%, -25%) rotate(45deg); } .icon-back::after, .icon-forward::after { background: currentColor; height: .1rem; width: .8em; } .icon-downward::after, .icon-upward::after { background: currentColor; height: .8em; width: .1rem; } .icon-back::after { left: 55%; } .icon-back::before { transform: translate(-50%, -50%) rotate(-45deg); } .icon-downward::after { top: 45%; } .icon-downward::before { transform: translate(-50%, -50%) rotate(-135deg); } .icon-forward::after { left: 45%; } .icon-forward::before { transform: translate(-50%, -50%) rotate(135deg); } .icon-upward::after { top: 55%; } .icon-upward::before { transform: translate(-50%, -50%) rotate(45deg); } .icon-caret::before { border-left: .3em solid transparent; border-right: .3em solid transparent; border-top: .3em solid currentColor; height: 0; transform: translate(-50%, -25%); width: 0; } .icon-menu::before { background: currentColor; box-shadow: 0 -.35em, 0 .35em; height: .1rem; width: 100%; } .icon-more-horiz::before, .icon-more-vert::before { background: currentColor; border-radius: 50%; box-shadow: -.4em 0, .4em 0; height: .2em; width: .2em; } .icon-more-vert::before { box-shadow: 0 -.4em, 0 .4em; } .icon-bookmark::before { border: .1rem solid currentColor; border-bottom: 0; border-top-left-radius: .1rem; border-top-right-radius: .1rem; height: .9em; width: .85em; } .icon-bookmark::after { border: .1rem solid currentColor; border-bottom: 0; border-left: 0; border-radius: .1rem; height: .5em; transform: translate(-50%, .2em) rotate(-45deg) skew(15deg, 15deg); width: .5em; } .icon-check::before { border: .1rem solid currentColor; border-right: 0; border-top: 0; height: .5em; transform: translate(-50%, -.375em) rotate(-45deg); width: .9em; } .icon-close::before { background: currentColor; height: .1rem; width: 100%; } .icon-close::after { background: currentColor; height: 100%; width: .1rem; } .icon-close::before, .icon-close::after { transform: translate(-50%, -50%) rotate(45deg); } .icon-copy::before { border: .1rem solid currentColor; border-bottom-color: transparent; border-radius: .1em; border-right-color: transparent; height: .8em; left: 40%; top: 40%; width: .7em; } .icon-copy::after { border: .1rem solid currentColor; border-radius: .1em; height: .8em; left: 60%; top: 60%; width: .7em; } .icon-delete::before { border: .1rem solid currentColor; border-bottom-left-radius: .1rem; border-bottom-right-radius: .1rem; border-top: 0; height: .6em; top: 70%; width: .75em; } .icon-delete::after { background: currentColor; box-shadow: -.2em .2em, .2em .2em; height: .1rem; top: .05rem; width: .5em; } .icon-download { border-bottom: .1rem solid currentColor; } .icon-download::before { border: .1rem solid currentColor; border-bottom: 0; border-right: 0; height: .5em; transform: translate(-50%, -.3em) rotate(-135deg); width: .5em; } .icon-download::after { background: currentColor; height: .6em; top: 40%; width: .1rem; } .icon-edit::before { border: .1rem solid currentColor; height: .4em; transform: translate(-.35em, -.25em) rotate(-45deg); width: .85em; } .icon-edit::after { border: .15em solid currentColor; border-right-color: transparent; border-top-color: transparent; height: 0; left: 5%; top: 95%; transform: translate(0, -100%); width: 0; } .icon-flag::before { background: currentColor; height: 1em; left: 10%; width: .1rem; } .icon-flag::after { border: .1rem solid currentColor; border-bottom-right-radius: .1em; border-left: 0; border-top-right-radius: .1em; height: .7em; left: 52%; top: 35%; width: .85em; } .icon-minus::before { background: currentColor; height: .1rem; width: 100%; } .icon-plus::before { background: currentColor; height: .1rem; width: 100%; } .icon-plus::after { background: currentColor; height: 100%; width: .1rem; } .icon-refresh::before { border: .1rem solid currentColor; border-radius: 50%; border-right-color: transparent; height: 1em; width: 1em; } .icon-refresh::after { border: .2em solid currentColor; border-left-color: transparent; border-top-color: transparent; height: 0; left: 80%; top: 20%; width: 0; } .icon-resize-horiz::before, .icon-resize-horiz::after, .icon-resize-vert::before, .icon-resize-vert::after { border: .1rem solid currentColor; border-bottom: 0; border-right: 0; height: .4em; width: .4em; } .icon-resize-horiz::before, .icon-resize-vert::before { transform: translate(-50%, -90%) rotate(45deg); } .icon-resize-horiz::after, .icon-resize-vert::after { transform: translate(-50%, -10%) rotate(225deg); } .icon-resize-horiz::before { transform: translate(-90%, -50%) rotate(-45deg); } .icon-resize-horiz::after { transform: translate(-10%, -50%) rotate(135deg); } .icon-search::before { border: .1rem solid currentColor; border-radius: 50%; height: .75em; left: 5%; top: 5%; transform: translate(0, 0) rotate(45deg); width: .75em; } .icon-search::after { background: currentColor; height: .1rem; left: 80%; top: 80%; transform: translate(-50%, -50%) rotate(45deg); width: .4em; } .icon-share { border: .1rem solid currentColor; border-radius: .1rem; border-right: 0; border-top: 0; } .icon-share::before { border: .1rem solid currentColor; border-left: 0; border-top: 0; height: .4em; left: 100%; top: .25em; transform: translate(-125%, -50%) rotate(-45deg); width: .4em; } .icon-share::after { border: .1rem solid currentColor; border-bottom: 0; border-radius: 75% 15%; border-right: 0; height: .6em; top: 55%; width: .6em; } .icon-shutdown { border: .1rem solid currentColor; border-radius: 50%; border-top-color: transparent; } .icon-shutdown::before { background: currentColor; content: ""; height: .5em; top: .1em; width: .1rem; } .icon-stop { border: .1rem solid currentColor; border-radius: 50%; } .icon-stop::before { background: currentColor; height: .1rem; transform: translate(-50%, -50%) rotate(45deg); width: 1em; } .icon-upload { border-bottom: .1rem solid currentColor; } .icon-upload::before { border: .1rem solid currentColor; border-bottom: 0; border-right: 0; height: .5em; transform: translate(-50%, -60%) rotate(45deg); width: .5em; } .icon-upload::after { background: currentColor; height: .6em; top: 50%; width: .1rem; } .icon-audio { border: .1rem solid currentColor; border-radius: .4em; height: .6em; margin: -.4em .3em 0 .3em; width: .4em; } .icon-audio::before { background: currentColor; height: .15em; transform: translate(-50%, .45em); width: .1rem; } .icon-audio::after { border: .1rem solid currentColor; border-bottom-color: transparent; border-radius: 50%; border-right-color: transparent; height: .7em; transform: translate(-50%, -35%) rotate(-135deg); width: .7em; } .icon-emoji { border: .1rem solid currentColor; border-radius: 50%; } .icon-emoji::before { border-radius: 50%; box-shadow: -.17em -.15em, .17em -.15em; height: .15rem; width: .15rem; } .icon-emoji::after { border: .1rem solid currentColor; border-bottom-color: transparent; border-radius: 50%; border-right-color: transparent; height: .5em; transform: translate(-50%, -.2em) rotate(-135deg); width: .5em; } .icon-link::before, .icon-link::after { border: .1rem solid currentColor; border-radius: 5em 0 0 5em; border-right: 0; height: .5em; width: .75em; } .icon-link::before { transform: translate(-70%, -45%) rotate(-45deg); } .icon-link::after { transform: translate(-30%, -55%) rotate(135deg); } .icon-location::before { border: .1rem solid currentColor; border-radius: 50% 50% 50% 0; height: .8em; transform: translate(-50%, -60%) rotate(-45deg); width: .8em; } .icon-location::after { border: .1rem solid currentColor; border-radius: 50%; height: .3em; transform: translate(-50%, -.25em); width: .3em; } .icon-mail::before { border: .1rem solid currentColor; border-radius: .1rem; height: .8em; width: 1em; } .icon-mail::after { border: .1rem solid currentColor; border-right: 0; border-top: 0; height: .5em; transform: translate(-50%, -.45em) rotate(-45deg) skew(10deg, 10deg); width: .5em; } .icon-message { border: .1rem solid currentColor; border-bottom: 0; border-radius: .1rem; border-right: 0; } .icon-message::before { border: .1rem solid currentColor; border-bottom-right-radius: .1rem; border-left: 0; border-top: 0; height: .8em; left: 65%; top: 35%; width: .75em; } .icon-message::after { background: currentColor; border-radius: .1rem; height: .35em; left: 7%; top: 100%; transform: translate(0, -.32em) rotate(45deg); width: .1rem; } .icon-person::before { border: .1rem solid currentColor; border-radius: 50%; height: .45em; top: 25%; width: .45em; } .icon-person::after { border: .1rem solid currentColor; border-radius: 50% 50% 0 0; height: .4em; top: 75%; width: .9em; } .icon-photo { border: .1rem solid currentColor; border-radius: .1rem; } .icon-photo::before { border: .1rem solid currentColor; border-radius: 50%; height: .3em; left: 35%; top: 35%; width: .3em; } .icon-photo::after { border: .1rem solid currentColor; border-bottom: 0; border-left: 0; height: .5em; left: 60%; transform: translate(-45%, 25%) rotate(-45deg); width: .5em; } .icon-time { border: .1rem solid currentColor; border-radius: 50%; } .icon-time::before { background: currentColor; height: .4em; transform: translate(-50%, -75%); width: .1rem; } .icon-time::after { background: currentColor; height: .25em; transform: translate(-50%, -75%) rotate(125deg); transform-origin: 50% 100%; width: .1rem; }
/*! Spectre.css v0.5.8 | MIT License | github.com/picturepan2/spectre */ /* Manually forked from Normalize.css */ /* normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */ /** 1. Change the default font family in all browsers (opinionated). 2. Correct the line height in all browsers. 3. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS. */ /* Document ========================================================================== */ html { font-family: sans-serif; /* 1 */ -webkit-text-size-adjust: 100%; /* 3 */ -ms-text-size-adjust: 100%; /* 3 */ } /* Sections ========================================================================== */ /** Remove the margin in all browsers (opinionated). */ body { margin: 0; } /** Add the correct display in IE 9-. */ article, aside, footer, header, nav, section { display: block; } /** Correct the font size and margin on `h1` elements within `section` and `article` contexts in Chrome, Firefox, and Safari. */ h1 { font-size: 2em; margin: .67em 0; } /* Grouping content ========================================================================== */ /** Add the correct display in IE 9-. 1. Add the correct display in IE. */ figcaption, figure, main { /* 1 */ display: block; } /** Add the correct margin in IE 8 (removed). */ /** 1. Add the correct box sizing in Firefox. 2. Show the overflow in Edge and IE. */ hr { box-sizing: content-box; /* 1 */ height: 0; /* 1 */ overflow: visible; /* 2 */ } /** 1. Correct the inheritance and scaling of font size in all browsers. (removed) 2. Correct the odd `em` font sizing in all browsers. */ /* Text-level semantics ========================================================================== */ /** 1. Remove the gray background on active links in IE 10. 2. Remove gaps in links underline in iOS 8+ and Safari 8+. */ a { background-color: transparent; /* 1 */ -webkit-text-decoration-skip: objects; /* 2 */ } /** Remove the outline on focused links when they are also active or hovered in all browsers (opinionated). */ a:active, a:hover { outline-width: 0; } /** Modify default styling of address. */ address { font-style: normal; } /** 1. Remove the bottom border in Firefox 39-. 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. (removed) */ /** Prevent the duplicate application of `bolder` by the next rule in Safari 6. */ b, strong { font-weight: inherit; } /** Add the correct font weight in Chrome, Edge, and Safari. */ b, strong { font-weight: bolder; } /** 1. Correct the inheritance and scaling of font size in all browsers. 2. Correct the odd `em` font sizing in all browsers. */ code, kbd, pre, samp { font-family: "SF Mono", "Segoe UI Mono", "Roboto Mono", Menlo, Courier, monospace; /* 1 (changed) */ font-size: 1em; /* 2 */ } /** Add the correct font style in Android 4.3-. */ dfn { font-style: italic; } /** Add the correct background and color in IE 9-. (Removed) */ /** Add the correct font size in all browsers. */ small { font-size: 80%; font-weight: 400; /* (added) */ } /** Prevent `sub` and `sup` elements from affecting the line height in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -.25em; } sup { top: -.5em; } /* Embedded content ========================================================================== */ /** Add the correct display in IE 9-. */ audio, video { display: inline-block; } /** Add the correct display in iOS 4-7. */ audio:not([controls]) { display: none; height: 0; } /** Remove the border on images inside links in IE 10-. */ img { border-style: none; } /** Hide the overflow in IE. */ svg:not(:root) { overflow: hidden; } /* Forms ========================================================================== */ /** 1. Change the font styles in all browsers (opinionated). 2. Remove the margin in Firefox and Safari. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 (changed) */ font-size: inherit; /* 1 (changed) */ line-height: inherit; /* 1 (changed) */ margin: 0; /* 2 */ } /** Show the overflow in IE. 1. Show the overflow in Edge. */ button, input { /* 1 */ overflow: visible; } /** Remove the inheritance of text transform in Edge, Firefox, and IE. 1. Remove the inheritance of text transform in Firefox. */ button, select { /* 1 */ text-transform: none; } /** 1. Prevent a WebKit bug where (2) destroys native `audio` and `video` controls in Android 4. 2. Correct the inability to style clickable types in iOS and Safari. */ button, html [type="button"], [type="reset"], [type="submit"] { -webkit-appearance: button; /* 2 */ } /** Remove the inner border and padding in Firefox. */ button::-moz-focus-inner, [type="button"]::-moz-focus-inner, [type="reset"]::-moz-focus-inner, [type="submit"]::-moz-focus-inner { border-style: none; padding: 0; } /** Restore the focus styles unset by the previous rule (removed). */ /** Change the border, margin, and padding in all browsers (opinionated) (changed). */ fieldset { border: 0; margin: 0; padding: 0; } /** 1. Correct the text wrapping in Edge and IE. 2. Correct the color inheritance from `fieldset` elements in IE. 3. Remove the padding so developers are not caught out when they zero out `fieldset` elements in all browsers. */ legend { box-sizing: border-box; /* 1 */ color: inherit; /* 2 */ display: table; /* 1 */ max-width: 100%; /* 1 */ padding: 0; /* 3 */ white-space: normal; /* 1 */ } /** 1. Add the correct display in IE 9-. 2. Add the correct vertical alignment in Chrome, Firefox, and Opera. */ progress { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } /** Remove the default vertical scrollbar in IE. */ textarea { overflow: auto; } /** 1. Add the correct box sizing in IE 10-. 2. Remove the padding in IE 10-. */ [type="checkbox"], [type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /** Correct the cursor style of increment and decrement buttons in Chrome. */ [type="number"]::-webkit-inner-spin-button, [type="number"]::-webkit-outer-spin-button { height: auto; } /** 1. Correct the odd appearance in Chrome and Safari. 2. Correct the outline style in Safari. */ [type="search"] { -webkit-appearance: textfield; /* 1 */ outline-offset: -2px; /* 2 */ } /** Remove the inner padding and cancel buttons in Chrome and Safari on macOS. */ [type="search"]::-webkit-search-cancel-button, [type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /** 1. Correct the inability to style clickable types in iOS and Safari. 2. Change font properties to `inherit` in Safari. */ ::-webkit-file-upload-button { -webkit-appearance: button; /* 1 */ font: inherit; /* 2 */ } /* Interactive ========================================================================== */ /* Add the correct display in IE 9-. 1. Add the correct display in Edge, IE, and Firefox. */ details, menu { display: block; } /* Add the correct display in all browsers. */ summary { display: list-item; outline: none; } /* Scripting ========================================================================== */ /** Add the correct display in IE 9-. */ canvas { display: inline-block; } /** Add the correct display in IE. */ template { display: none; } /* Hidden ========================================================================== */ /** Add the correct display in IE 10-. */ [hidden] { display: none; } *, *::before, *::after { box-sizing: inherit; } html { box-sizing: border-box; font-size: 20px; line-height: 1.5; -webkit-tap-highlight-color: transparent; } body { background: #fff; color: #3b4351; font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", sans-serif; font-size: .8rem; overflow-x: hidden; text-rendering: optimizeLegibility; } a { color: #5755d9; /*Source : #5755d9 */ outline: none; text-decoration: none; } a:focus { box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } a:focus, a:hover, a:active, a.active { color: #302ecd; text-decoration: underline; } a:visited { color: #807fe2; } h1, h2, h3, h4, h5, h6 { color: inherit; font-weight: 500; line-height: 1.2; margin-bottom: .5em; margin-top: 0; } .h1, .h2, .h3, .h4, .h5, .h6 { font-weight: 500; } h1, .h1 { font-size: 2rem; } h2, .h2 { font-size: 1.6rem; } h3, .h3 { font-size: 1.4rem; } h4, .h4 { font-size: 1.2rem; } h5, .h5 { font-size: 1rem; } h6, .h6 { font-size: .8rem; } p { margin: 0 0 1.2rem; } a, ins, u { -webkit-text-decoration-skip: ink edges; text-decoration-skip: ink edges; } abbr[title] { border-bottom: .05rem dotted; cursor: help; text-decoration: none; } kbd { background: #303742; border-radius: .1rem; color: #fff; font-size: .7rem; line-height: 1.25; padding: .1rem .2rem; } mark { background: #ffe9b3; border-bottom: .05rem solid #ffd367; border-radius: .1rem; color: #3b4351; padding: .05rem .1rem 0; } blockquote { border-left: .1rem solid #dadee4; margin-left: 0; padding: .4rem .8rem; } blockquote p:last-child { margin-bottom: 0; } ul, ol { margin: .8rem 0 .8rem .8rem; padding: 0; } ul ul, ul ol, ol ul, ol ol { margin: .8rem 0 .8rem .8rem; } ul li, ol li { margin-top: .4rem; } ul { list-style: disc inside; } ul ul { list-style-type: circle; } ol { list-style: decimal inside; } ol ol { list-style-type: decimal inside;/*lower-alpha;*/ } dl dt { font-weight: bold; } dl dd { margin: .4rem 0 .8rem 0; } html:lang(zh), html:lang(zh-Hans), .lang-zh, .lang-zh-hans { font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", sans-serif; } html:lang(zh-Hant), .lang-zh-hant { font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang TC", "Hiragino Sans CNS", "Microsoft JhengHei", "Helvetica Neue", sans-serif; } html:lang(ja), .lang-ja { font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Hiragino Sans", "Hiragino Kaku Gothic Pro", "Yu Gothic", YuGothic, Meiryo, "Helvetica Neue", sans-serif; } html:lang(ko), .lang-ko { font-family: -apple-system, system-ui, BlinkMacSystemFont, "Segoe UI", Roboto, "Malgun Gothic", "Helvetica Neue", sans-serif; } :lang(zh) ins, :lang(zh) u, :lang(ja) ins, :lang(ja) u, .lang-cjk ins, .lang-cjk u { border-bottom: .05rem solid; text-decoration: none; } :lang(zh) del + del, :lang(zh) del + s, :lang(zh) ins + ins, :lang(zh) ins + u, :lang(zh) s + del, :lang(zh) s + s, :lang(zh) u + ins, :lang(zh) u + u, :lang(ja) del + del, :lang(ja) del + s, :lang(ja) ins + ins, :lang(ja) ins + u, :lang(ja) s + del, :lang(ja) s + s, :lang(ja) u + ins, :lang(ja) u + u, .lang-cjk del + del, .lang-cjk del + s, .lang-cjk ins + ins, .lang-cjk ins + u, .lang-cjk s + del, .lang-cjk s + s, .lang-cjk u + ins, .lang-cjk u + u { margin-left: .125em; } .table { border-collapse: collapse; border-spacing: 0; text-align: left; width: 100%; } .table.table-striped tbody tr:nth-of-type(odd) { background: #f7f8f9; } .table tbody tr.active, .table.table-striped tbody tr.active { background: #eef0f3; } .table.table-hover tbody tr:hover { background: #eef0f3; } .table.table-scroll { display: block; overflow-x: auto; padding-bottom: .75rem; white-space: nowrap; } .table td, .table th { border-bottom: .05rem solid #dadee4; padding: .6rem .4rem; } .table th { border-bottom-width: .1rem; } .btn { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: #fff; border: .05rem solid #5755d9; border-radius: .1rem; color: #5755d9; cursor: pointer; display: inline-block; font-size: .8rem; height: 1.8rem; line-height: 1.2rem; outline: none; padding: .25rem .4rem; text-align: center; text-decoration: none; transition: background .2s, border .2s, box-shadow .2s, color .2s; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; vertical-align: middle; white-space: nowrap; } .btn:focus { box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } .btn:focus, .btn:hover { background: #f1f1fc; border-color: #4b48d6; text-decoration: none; } .btn:active, .btn.active { background: #4b48d6; border-color: #3634d2; color: #fff; text-decoration: none; } .btn:active.loading::after, .btn.active.loading::after { border-bottom-color: #fff; border-left-color: #fff; } .btn[disabled], .btn:disabled, .btn.disabled { cursor: default; opacity: .5; pointer-events: none; } .btn.btn-primary { background: #5755d9; border-color: #4b48d6; color: #fff; } .btn.btn-primary:focus, .btn.btn-primary:hover { background: #4240d4; border-color: #3634d2; color: #fff; } .btn.btn-primary:active, .btn.btn-primary.active { background: #3a38d2; border-color: #302ecd; color: #fff; } .btn.btn-primary.loading::after { border-bottom-color: #fff; border-left-color: #fff; } .btn.btn-success { background: #32b643; border-color: #2faa3f; color: #fff; } .btn.btn-success:focus { box-shadow: 0 0 0 .1rem rgba(50, 182, 67, .2); } .btn.btn-success:focus, .btn.btn-success:hover { background: #30ae40; border-color: #2da23c; color: #fff; } .btn.btn-success:active, .btn.btn-success.active { background: #2a9a39; border-color: #278e34; color: #fff; } .btn.btn-success.loading::after { border-bottom-color: #fff; border-left-color: #fff; } .btn.btn-error { background: #e85600; border-color: #d95000; color: #fff; } .btn.btn-error:focus { box-shadow: 0 0 0 .1rem rgba(232, 86, 0, .2); } .btn.btn-error:focus, .btn.btn-error:hover { background: #de5200; border-color: #cf4d00; color: #fff; } .btn.btn-error:active, .btn.btn-error.active { background: #c44900; border-color: #b54300; color: #fff; } .btn.btn-error.loading::after { border-bottom-color: #fff; border-left-color: #fff; } .btn.btn-link { background: transparent; border-color: transparent; color: #5755d9; } .btn.btn-link:focus, .btn.btn-link:hover, .btn.btn-link:active, .btn.btn-link.active { color: #302ecd; } .btn.btn-sm { font-size: .7rem; height: 1.4rem; padding: .05rem .3rem; } .btn.btn-lg { font-size: .9rem; height: 2rem; padding: .35rem .6rem; } .btn.btn-block { display: block; width: 100%; } .btn.btn-action { padding-left: 0; padding-right: 0; width: 1.8rem; } .btn.btn-action.btn-sm { width: 1.4rem; } .btn.btn-action.btn-lg { width: 2rem; } .btn.btn-clear { background: transparent; border: 0; color: currentColor; height: 1rem; line-height: .8rem; margin-left: .2rem; margin-right: -2px; opacity: 1; padding: .1rem; text-decoration: none; width: 1rem; } .btn.btn-clear:focus, .btn.btn-clear:hover { background: rgba(247, 248, 249, .5); opacity: .95; } .btn.btn-clear::before { content: "\2715"; } .btn-group { display: inline-flex; display: -ms-inline-flexbox; -ms-flex-wrap: wrap; flex-wrap: wrap; } .btn-group .btn { -ms-flex: 1 0 auto; flex: 1 0 auto; } .btn-group .btn:first-child:not(:last-child) { border-bottom-right-radius: 0; border-top-right-radius: 0; } .btn-group .btn:not(:first-child):not(:last-child) { border-radius: 0; margin-left: -.05rem; } .btn-group .btn:last-child:not(:first-child) { border-bottom-left-radius: 0; border-top-left-radius: 0; margin-left: -.05rem; } .btn-group .btn:focus, .btn-group .btn:hover, .btn-group .btn:active, .btn-group .btn.active { z-index: 1; } .btn-group.btn-group-block { display: flex; display: -ms-flexbox; } .btn-group.btn-group-block .btn { -ms-flex: 1 0 0; flex: 1 0 0; } .form-group:not(:last-child) { margin-bottom: .4rem; } fieldset { margin-bottom: .8rem; } legend { font-size: .9rem; font-weight: 500; margin-bottom: .8rem; } .form-label { display: block; line-height: 1.2rem; padding: .3rem 0; } .form-label.label-sm { font-size: .7rem; padding: .1rem 0; } .form-label.label-lg { font-size: .9rem; padding: .4rem 0; } .form-input { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: #fff; background-image: none; border: .05rem solid #bcc3ce; border-radius: .1rem; color: #3b4351; display: block; font-size: .8rem; height: 1.8rem; line-height: 1.2rem; max-width: 100%; outline: none; padding: .25rem .4rem; position: relative; transition: background .2s, border .2s, box-shadow .2s, color .2s; width: 100%; } .form-input:focus { border-color: #5755d9; box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } .form-input::-webkit-input-placeholder { color: #bcc3ce; } .form-input:-ms-input-placeholder { color: #bcc3ce; } .form-input::-ms-input-placeholder { color: #bcc3ce; } .form-input::placeholder { color: #bcc3ce; } .form-input.input-sm { font-size: .7rem; height: 1.4rem; padding: .05rem .3rem; } .form-input.input-lg { font-size: .9rem; height: 2rem; padding: .35rem .6rem; } .form-input.input-inline { display: inline-block; vertical-align: middle; width: auto; } .form-input[type="file"] { height: auto; } textarea.form-input, textarea.form-input.input-lg, textarea.form-input.input-sm { height: auto; } .form-input-hint { color: #bcc3ce; font-size: .7rem; margin-top: .2rem; } .has-success .form-input-hint, .is-success + .form-input-hint { color: #32b643; } .has-error .form-input-hint, .is-error + .form-input-hint { color: #e85600; } .form-select { -webkit-appearance: none; -moz-appearance: none; appearance: none; background: #fff; border: .05rem solid #bcc3ce; border-radius: .1rem; color: inherit; font-size: .8rem; height: 1.8rem; line-height: 1.2rem; outline: none; padding: .25rem .4rem; vertical-align: middle; width: 100%; } .form-select:focus { border-color: #5755d9; box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } .form-select::-ms-expand { display: none; } .form-select.select-sm { font-size: .7rem; height: 1.4rem; padding: .05rem 1.1rem .05rem .3rem; } .form-select.select-lg { font-size: .9rem; height: 2rem; padding: .35rem 1.4rem .35rem .6rem; } .form-select[size], .form-select[multiple] { height: auto; padding: .25rem .4rem; } .form-select[size] option, .form-select[multiple] option { padding: .1rem .2rem; } .form-select:not([multiple]):not([size]) { background: #fff url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%204%205'%3E%3Cpath%20fill='%23667189'%20d='M2%200L0%202h4zm0%205L0%203h4z'/%3E%3C/svg%3E") no-repeat right .35rem center/.4rem .5rem; padding-right: 1.2rem; } .has-icon-left, .has-icon-right { position: relative; } .has-icon-left .form-icon, .has-icon-right .form-icon { height: .8rem; margin: 0 .25rem; position: absolute; top: 50%; transform: translateY(-50%); width: .8rem; z-index: 2; } .has-icon-left .form-icon { left: .05rem; } .has-icon-left .form-input { padding-left: 1.3rem; } .has-icon-right .form-icon { right: .05rem; } .has-icon-right .form-input { padding-right: 1.3rem; } .form-checkbox, .form-radio, .form-switch { display: block; line-height: 1.2rem; margin: .2rem 0; min-height: 1.4rem; padding: .1rem .4rem .1rem 1.2rem; position: relative; } .form-checkbox input, .form-radio input, .form-switch input { clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; position: absolute; width: 1px; } .form-checkbox input:focus + .form-icon, .form-radio input:focus + .form-icon, .form-switch input:focus + .form-icon { border-color: #5755d9; box-shadow: 0 0 0 .1rem rgba(87, 85, 217, .2); } .form-checkbox input:checked + .form-icon, .form-radio input:checked + .form-icon, .form-switch input:checked + .form-icon { background: #5755d9; border-color: #5755d9; } .form-checkbox .form-icon, .form-radio .form-icon, .form-switch .form-icon { border: .05rem solid #bcc3ce; cursor: pointer; display: inline-block; position: absolute; transition: background .2s, border .2s, box-shadow .2s, color .2s; } .form-checkbox.input-sm, .form-radio.input-sm, .form-switch.input-sm { font-size: .7rem; margin: 0; } .form-checkbox.input-lg, .form-radio.input-lg, .form-switch.input-lg { font-size: .9rem; margin: .3rem 0; } .form-checkbox .form-icon, .form-radio .form-icon { background: #fff; height: .8rem; left: 0; top: .3rem; width: .8rem; } .form-checkbox input:active + .form-icon, .form-radio input:active + .form-icon { background: #eef0f3; } .form-checkbox .form-icon { border-radius: .1rem; } .form-checkbox input:checked + .form-icon::before { background-clip: padding-box; border: .1rem solid #fff; border-left-width: 0; border-top-width: 0; content: ""; height: 9px; left: 50%; margin-left: -3px; margin-top: -6px; position: absolute; top: 50%; transform: rotate(45deg); width: 6px; } .form-checkbox input:indeterminate + .form-icon { background: #5755d9; border-color: #5755d9; } .form-checkbox input:indeterminate + .form-icon::before { background: #fff; content: ""; height: 2px; left: 50%; margin-left: -5px; margin-top: -1px; position: absolute; top: 50%; width: 10px; } .form-radio .form-icon { border-radius: 50%; } .form-radio input:checked + .form-icon::before { background: #fff; border-radius: 50%; content: ""; height: 6px; left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); width: 6px; } .form-switch { padding-left: 2rem; } .form-switch .form-icon { background: #bcc3ce; background-clip: padding-box; border-radius: .45rem; height: .9rem; left: 0; top: .25rem; width: 1.6rem; } .form-switch .form-icon::before { background: #fff; border-radius: 50%; content: ""; display: block; height: .8rem; left: 0; position: absolute; top: 0; transition: background .2s, border .2s, box-shadow .2s, color .2s, left .2s; width: .8rem; } .form-switch input:checked + .form-icon::before { left: 14px; } .form-switch input:active + .form-icon::before { background: #f7f8f9; } .input-group { display: flex; display: -ms-flexbox; } .input-group .input-group-addon { background: #f7f8f9; border: .05rem solid #bcc3ce; border-radius: .1rem; line-height: 1.2rem; padding: .25rem .4rem; white-space: nowrap; } .input-group .input-group-addon.addon-sm { font-size: .7rem; padding: .05rem .3rem; } .input-group .input-group-addon.addon-lg { font-size: .9rem; padding: .35rem .6rem; } .input-group .form-input, .input-group .form-select { -ms-flex: 1 1 auto; flex: 1 1 auto; width: 1%; } .input-group .input-group-btn { z-index: 1; } .input-group .form-input:first-child:not(:last-child), .input-group .form-select:first-child:not(:last-child), .input-group .input-group-addon:first-child:not(:last-child), .input-group .input-group-btn:first-child:not(:last-child) { border-bottom-right-radius: 0; border-top-right-radius: 0; } .input-group .form-input:not(:first-child):not(:last-child), .input-group .form-select:not(:first-child):not(:last-child), .input-group .input-group-addon:not(:first-child):not(:last-child), .input-group .input-group-btn:not(:first-child):not(:last-child) { border-radius: 0; margin-left: -.05rem; } .input-group .form-input:last-child:not(:first-child), .input-group .form-select:last-child:not(:first-child), .input-group .input-group-addon:last-child:not(:first-child), .input-group .input-group-btn:last-child:not(:first-child) { border-bottom-left-radius: 0; border-top-left-radius: 0; margin-left: -.05rem; } .input-group .form-input:focus, .input-group .form-select:focus, .input-group .input-group-addon:focus, .input-group .input-group-btn:focus { z-index: 2; } .input-group .form-select { width: auto; } .input-group.input-inline { display: inline-flex; display: -ms-inline-flexbox; } .has-success .form-input, .form-input.is-success, .has-success .form-select, .form-select.is-success { background: #f9fdfa; border-color: #32b643; } .has-success .form-input:focus, .form-input.is-success:focus, .has-success .form-select:focus, .form-select.is-success:focus { box-shadow: 0 0 0 .1rem rgba(50, 182, 67, .2); } .has-error .form-input, .form-input.is-error, .has-error .form-select, .form-select.is-error { background: #fffaf7; border-color: #e85600; } .has-error .form-input:focus, .form-input.is-error:focus, .has-error .form-select:focus, .form-select.is-error:focus { box-shadow: 0 0 0 .1rem rgba(232, 86, 0, .2); } .has-error .form-checkbox .form-icon, .form-checkbox.is-error .form-icon, .has-error .form-radio .form-icon, .form-radio.is-error .form-icon, .has-error .form-switch .form-icon, .form-switch.is-error .form-icon { border-color: #e85600; } .has-error .form-checkbox input:checked + .form-icon, .form-checkbox.is-error input:checked + .form-icon, .has-error .form-radio input:checked + .form-icon, .form-radio.is-error input:checked + .form-icon, .has-error .form-switch input:checked + .form-icon, .form-switch.is-error input:checked + .form-icon { background: #e85600; border-color: #e85600; } .has-error .form-checkbox input:focus + .form-icon, .form-checkbox.is-error input:focus + .form-icon, .has-error .form-radio input:focus + .form-icon, .form-radio.is-error input:focus + .form-icon, .has-error .form-switch input:focus + .form-icon, .form-switch.is-error input:focus + .form-icon { border-color: #e85600; box-shadow: 0 0 0 .1rem rgba(232, 86, 0, .2); } .has-error .form-checkbox input:indeterminate + .form-icon, .form-checkbox.is-error input:indeterminate + .form-icon { background: #e85600; border-color: #e85600; } .form-input:not(:placeholder-shown):invalid { border-color: #e85600; } .form-input:not(:placeholder-shown):invalid:focus { background: #fffaf7; box-shadow: 0 0 0 .1rem rgba(232, 86, 0, .2); } .form-input:not(:placeholder-shown):invalid + .form-input-hint { color: #e85600; } .form-input:disabled, .form-input.disabled, .form-select:disabled, .form-select.disabled { background-color: #eef0f3; cursor: not-allowed; opacity: .5; } .form-input[readonly] { background-color: #f7f8f9; } input:disabled + .form-icon, input.disabled + .form-icon { background: #eef0f3; cursor: not-allowed; opacity: .5; } .form-switch input:disabled + .form-icon::before, .form-switch input.disabled + .form-icon::before { background: #fff; } .form-horizontal { padding: .4rem 0; } .form-horizontal .form-group { display: flex; display: -ms-flexbox; -ms-flex-wrap: wrap; flex-wrap: wrap; } .form-inline { display: inline-block; } .label { background: #eef0f3; border-radius: .1rem; color: #455060; display: inline-block; line-height: 1.25; padding: .1rem .2rem; } .label.label-rounded { border-radius: 5rem; padding-left: .4rem; padding-right: .4rem; } .label.label-primary { background: #5755d9; color: #fff; } .label.label-secondary { background: #f1f1fc; color: #5755d9; } .label.label-success { background: #32b643; color: #fff; } .label.label-warning { background: #ffb700; color: #fff; } .label.label-error { background: #e85600; color: #fff; } code { background: #fcf2f2; border-radius: .1rem; color: #d73e48; font-size: 85%; line-height: 1.25; padding: .1rem .2rem; } .code { border-radius: .1rem; color: #3b4351; position: relative; } .code::before { color: #bcc3ce; content: attr(data-lang); font-size: .7rem; position: absolute; right: .4rem; top: .1rem; } .code code { background: #f7f8f9; color: inherit; display: block; line-height: 1.5; overflow-x: auto; padding: 1rem; width: 100%; } .img-responsive { display: block; height: auto; max-width: 100%; } .img-fit-cover { object-fit: cover; } .img-fit-contain { object-fit: contain; } .video-responsive { display: block; overflow: hidden; padding: 0; position: relative; width: 100%; } .video-responsive::before { content: ""; display: block; padding-bottom: 56.25%; } .video-responsive iframe, .video-responsive object, .video-responsive embed { border: 0; bottom: 0; height: 100%; left: 0; position: absolute; right: 0; top: 0; width: 100%; } video.video-responsive { height: auto; max-width: 100%; } video.video-responsive::before { content: none; } .video-responsive-4-3::before { padding-bottom: 75%; } .video-responsive-1-1::before { padding-bottom: 100%; } .figure { margin: 0 0 .4rem 0; } .figure .figure-caption { color: #66758c; margin-top: .4rem; } .container { margin-left: auto; margin-right: auto; padding-left: .4rem; padding-right: .4rem; width: 100%; } .container.grid-xl { max-width: 1296px; } .container.grid-lg { max-width: 976px; } .container.grid-md { max-width: 856px; } .container.grid-sm { max-width: 616px; } .container.grid-xs { max-width: 496px; } .show-xs, .show-sm, .show-md, .show-lg, .show-xl { display: none !important; } .columns { display: flex; display: -ms-flexbox; -ms-flex-wrap: wrap; flex-wrap: wrap; margin-left: -.4rem; margin-right: -.4rem; } .columns.col-gapless { margin-left: 0; margin-right: 0; } .columns.col-gapless > .column { padding-left: 0; padding-right: 0; } .columns.col-oneline { -ms-flex-wrap: nowrap; flex-wrap: nowrap; overflow-x: auto; } .column { -ms-flex: 1; flex: 1; max-width: 100%; padding-left: .4rem; padding-right: .4rem; } .column.col-12, .column.col-11, .column.col-10, .column.col-9, .column.col-8, .column.col-7, .column.col-6, .column.col-5, .column.col-4, .column.col-3, .column.col-2, .column.col-1, .column.col-auto { -ms-flex: none; flex: none; } .col-12 { width: 100%; } .col-11 { width: 91.66666667%; } .col-10 { width: 83.33333333%; } .col-9 { width: 75%; } .col-8 { width: 66.66666667%; } .col-7 { width: 58.33333333%; } .col-6 { width: 50%; } .col-5 { width: 41.66666667%; } .col-4 { width: 33.33333333%; } .col-3 { width: 25%; } .col-2 { width: 16.66666667%; } .col-1 { width: 8.33333333%; } .col-auto { -ms-flex: 0 0 auto; flex: 0 0 auto; max-width: none; width: auto; } .col-mx-auto { margin-left: auto; margin-right: auto; } .col-ml-auto { margin-left: auto; } .col-mr-auto { margin-right: auto; } @media (max-width: 1280px) { .col-xl-12, .col-xl-11, .col-xl-10, .col-xl-9, .col-xl-8, .col-xl-7, .col-xl-6, .col-xl-5, .col-xl-4, .col-xl-3, .col-xl-2, .col-xl-1, .col-xl-auto { -ms-flex: none; flex: none; } .col-xl-12 { width: 100%; } .col-xl-11 { width: 91.66666667%; } .col-xl-10 { width: 83.33333333%; } .col-xl-9 { width: 75%; } .col-xl-8 { width: 66.66666667%; } .col-xl-7 { width: 58.33333333%; } .col-xl-6 { width: 50%; } .col-xl-5 { width: 41.66666667%; } .col-xl-4 { width: 33.33333333%; } .col-xl-3 { width: 25%; } .col-xl-2 { width: 16.66666667%; } .col-xl-1 { width: 8.33333333%; } .col-xl-auto { width: auto; } .hide-xl { display: none !important; } .show-xl { display: block !important; } } @media (max-width: 960px) { .col-lg-12, .col-lg-11, .col-lg-10, .col-lg-9, .col-lg-8, .col-lg-7, .col-lg-6, .col-lg-5, .col-lg-4, .col-lg-3, .col-lg-2, .col-lg-1, .col-lg-auto { -ms-flex: none; flex: none; } .col-lg-12 { width: 100%; } .col-lg-11 { width: 91.66666667%; } .col-lg-10 { width: 83.33333333%; } .col-lg-9 { width: 75%; } .col-lg-8 { width: 66.66666667%; } .col-lg-7 { width: 58.33333333%; } .col-lg-6 { width: 50%; } .col-lg-5 { width: 41.66666667%; } .col-lg-4 { width: 33.33333333%; } .col-lg-3 { width: 25%; } .col-lg-2 { width: 16.66666667%; } .col-lg-1 { width: 8.33333333%; } .col-lg-auto { width: auto; } .hide-lg { display: none !important; } .show-lg { display: block !important; } } @media (max-width: 840px) { .col-md-12, .col-md-11, .col-md-10, .col-md-9, .col-md-8, .col-md-7, .col-md-6, .col-md-5, .col-md-4, .col-md-3, .col-md-2, .col-md-1, .col-md-auto { -ms-flex: none; flex: none; } .col-md-12 { width: 100%; } .col-md-11 { width: 91.66666667%; } .col-md-10 { width: 83.33333333%; } .col-md-9 { width: 75%; } .col-md-8 { width: 66.66666667%; } .col-md-7 { width: 58.33333333%; } .col-md-6 { width: 50%; } .col-md-5 { width: 41.66666667%; } .col-md-4 { width: 33.33333333%; } .col-md-3 { width: 25%; } .col-md-2 { width: 16.66666667%; } .col-md-1 { width: 8.33333333%; } .col-md-auto { width: auto; } .hide-md { display: none !important; } .show-md { display: block !important; } } @media (max-width: 600px) { .col-sm-12, .col-sm-11, .col-sm-10, .col-sm-9, .col-sm-8, .col-sm-7, .col-sm-6, .col-sm-5, .col-sm-4, .col-sm-3, .col-sm-2, .col-sm-1, .col-sm-auto { -ms-flex: none; flex: none; } .col-sm-12 { width: 100%; } .col-sm-11 { width: 91.66666667%; } .col-sm-10 { width: 83.33333333%; } .col-sm-9 { width: 75%; } .col-sm-8 { width: 66.66666667%; } .col-sm-7 { width: 58.33333333%; } .col-sm-6 { width: 50%; } .col-sm-5 { width: 41.66666667%; } .col-sm-4 { width: 33.33333333%; } .col-sm-3 { width: 25%; } .col-sm-2 { width: 16.66666667%; } .col-sm-1 { width: 8.33333333%; } .col-sm-auto { width: auto; } .hide-sm { display: none !important; } .show-sm { display: block !important; } } @media (max-width: 480px) { .col-xs-12, .col-xs-11, .col-xs-10, .col-xs-9, .col-xs-8, .col-xs-7, .col-xs-6, .col-xs-5, .col-xs-4, .col-xs-3, .col-xs-2, .col-xs-1, .col-xs-auto { -ms-flex: none; flex: none; } .col-xs-12 { width: 100%; } .col-xs-11 { width: 91.66666667%; } .col-xs-10 { width: 83.33333333%; } .col-xs-9 { width: 75%; } .col-xs-8 { width: 66.66666667%; } .col-xs-7 { width: 58.33333333%; } .col-xs-6 { width: 50%; } .col-xs-5 { width: 41.66666667%; } .col-xs-4 { width: 33.33333333%; } .col-xs-3 { width: 25%; } .col-xs-2 { width: 16.66666667%; } .col-xs-1 { width: 8.33333333%; } .col-xs-auto { width: auto; } .hide-xs { display: none !important; } .show-xs { display: block !important; } } .hero { display: flex; display: -ms-flexbox; -ms-flex-direction: column; flex-direction: column; -ms-flex-pack: justify; justify-content: space-between; padding-bottom: 4rem; padding-top: 4rem; } .hero.hero-sm { padding-bottom: 2rem; padding-top: 2rem; } .hero.hero-lg { padding-bottom: 8rem; padding-top: 8rem; } .hero .hero-body { padding: .4rem; } .navbar { align-items: stretch; display: flex; display: -ms-flexbox; -ms-flex-align: stretch; -ms-flex-pack: justify; -ms-flex-wrap: wrap; flex-wrap: wrap; justify-content: space-between; } .navbar .navbar-section { align-items: center; display: flex; display: -ms-flexbox; -ms-flex: 1 0 0; flex: 1 0 0; -ms-flex-align: center; } .navbar .navbar-section:not(:first-child):last-child { -ms-flex-pack: end; justify-content: flex-end; } .navbar .navbar-center { align-items: center; display: flex; display: -ms-flexbox; -ms-flex: 0 0 auto; flex: 0 0 auto; -ms-flex-align: center; } .navbar .navbar-brand { font-size: .9rem; text-decoration: none; } .accordion input:checked ~ .accordion-header .icon, .accordion[open] .accordion-header .icon { transform: rotate(90deg); } .accordion input:checked ~ .accordion-body, .accordion[open] .accordion-body { max-height: 50rem; } .accordion .accordion-header { display: block; padding: .2rem .4rem; } .accordion .accordion-header .icon { transition: transform .25s; } .accordion .accordion-body { margin-bottom: .4rem; max-height: 0; overflow: hidden; transition: max-height .25s; } summary.accordion-header::-webkit-details-marker { display: none; } .avatar { background: #5755d9; border-radius: 50%; color: rgba(255, 255, 255, .85); display: inline-block; font-size: .8rem; font-weight: 300; height: 1.6rem; line-height: 1.25; margin: 0; position: relative; vertical-align: middle; width: 1.6rem; } .avatar.avatar-xs { font-size: .4rem; height: .8rem; width: .8rem; } .avatar.avatar-sm { font-size: .6rem; height: 1.2rem; width: 1.2rem; } .avatar.avatar-lg { font-size: 1.2rem; height: 2.4rem; width: 2.4rem; } .avatar.avatar-xl { font-size: 1.6rem; height: 3.2rem; width: 3.2rem; } .avatar img { border-radius: 50%; height: 100%; position: relative; width: 100%; z-index: 1; } .avatar .avatar-icon, .avatar .avatar-presence { background: #fff; bottom: 14.64%; height: 50%; padding: .1rem; position: absolute; right: 14.64%; transform: translate(50%, 50%); width: 50%; z-index: 2; } .avatar .avatar-presence { background: #bcc3ce; border-radius: 50%; box-shadow: 0 0 0 .1rem #fff; height: .5em; width: .5em; } .avatar .avatar-presence.online { background: #32b643; } .avatar .avatar-presence.busy { background: #e85600; } .avatar .avatar-presence.away { background: #ffb700; } .avatar[data-initial]::before { color: currentColor; content: attr(data-initial); left: 50%; position: absolute; top: 50%; transform: translate(-50%, -50%); z-index: 1; } .badge { position: relative; white-space: nowrap; } .badge[data-badge]::after, .badge:not([data-badge])::after { background: #5755d9; background-clip: padding-box; border-radius: .5rem; box-shadow: 0 0 0 .1rem #fff; color: #fff; content: attr(data-badge); display: inline-block; transform: translate(-.05rem, -.5rem); } .badge[data-badge]::after { font-size: .7rem; height: .9rem; line-height: 1; min-width: .9rem; padding: .1rem .2rem; text-align: center; white-space: nowrap; } .badge:not([data-badge])::after, .badge[data-badge=""]::after { height: 6px; min-width: 6px; padding: 0; width: 6px; } .badge.btn::after { position: absolute; right: 0; top: 0; transform: translate(50%, -50%); } .badge.avatar::after { position: absolute; right: 14.64%; top: 14.64%; transform: translate(50%, -50%); z-index: 100; } .breadcrumb { list-style: none; margin: .2rem 0; padding: .2rem 0; } .breadcrumb .breadcrumb-item { color: #66758c; display: inline-block; margin: 0; padding: .2rem 0; } .breadcrumb .breadcrumb-item:not(:last-child) { margin-right: .2rem; } .breadcrumb .breadcrumb-item:not(:last-child) a { color: #66758c; } .breadcrumb .breadcrumb-item:not(:first-child)::before { color: #66758c; content: "/"; padding-right: .4rem; } .bar { background: #eef0f3; border-radius: .1rem; display: flex; display: -ms-flexbox; -ms-flex-wrap: nowrap; flex-wrap: nowrap; height: .8rem; width: 100%; } .bar.bar-sm { height: .2rem; } .bar .bar-item { background: #5755d9; color: #fff; display: block; -ms-flex-negative: 0; flex-shrink: 0; font-size: .7rem; height: 100%; line-height: .8rem; position: relative; text-align: center; width: 0; } .bar .bar-item:first-child { border-bottom-left-radius: .1rem; border-top-left-radius: .1rem; } .bar .bar-item:last-child { border-bottom-right-radius: .1rem; border-top-right-radius: .1rem; -ms-flex-negative: 1; flex-shrink: 1; } .bar-slider { height: .1rem; margin: .4rem 0; position: relative; } .bar-slider .bar-item { left: 0; padding: 0; position: absolute; } .bar-slider .bar-item:not(:last-child):first-child { background: #eef0f3; z-index: 1; } .bar-slider .bar-slider-btn { background: #5755d9; border: 0; border-radius: 50%; height: .6rem; padding: 0; position: absolute; right: 0; top: 50%; transform: translate(50%, -50%); width: .6rem; } .bar-slider .bar-slider-btn:active { box-shadow: 0 0 0 .1rem #5755d9; } .card { background: #fff; border: .05rem solid #dadee4; border-radius: .1rem; display: flex; display: -ms-flexbox; -ms-flex-direction: column; flex-direction: column; } .card .card-header, .card .card-body, .card .card-footer { padding: .8rem; padding-bottom: 0; } .card .card-header:last-child, .card .card-body:last-child, .card .card-footer:last-child { padding-bottom: .8rem; } .card .card-body { -ms-flex: 1 1 auto; flex: 1 1 auto; } .card .card-image { padding-top: .8rem; } .card .card-image:first-child { padding-top: 0; } .card .card-image:first-child img { border-top-left-radius: .1rem; border-top-right-radius: .1rem; } .card .card-image:last-child img { border-bottom-left-radius: .1rem; border-bottom-right-radius: .1rem; } .chip { align-items: center; background: #eef0f3; border-radius: 5rem; display: inline-flex; display: -ms-inline-flexbox; -ms-flex-align: center; font-size: 90%; height: 1.2rem; line-height: .8rem; margin: .1rem; max-width: 320px; overflow: hidden; padding: .2rem .4rem; text-decoration: none; text-overflow: ellipsis; vertical-align: middle; white-space: nowrap; } .chip.active { background: #5755d9; color: #fff; } .chip .avatar { margin-left: -.4rem; margin-right: .2rem; } .chip .btn-clear { border-radius: 50%; transform: scale(.75); } .dropdown { display: inline-block; position: relative; } .dropdown .menu { animation: slide-down .15s ease 1; display: none; left: 0; max-height: 50vh; overflow-y: auto; position: absolute; top: 100%; } .dropdown.dropdown-right .menu { left: auto; right: 0; } .dropdown.active .menu, .dropdown .dropdown-toggle:focus + .menu, .dropdown .menu:hover { display: block; } .dropdown .btn-group .dropdown-toggle:nth-last-child(2) { border-bottom-right-radius: .1rem; border-top-right-radius: .1rem; } .empty { background: #f7f8f9; border-radius: .1rem; color: #66758c; padding: 3.2rem 1.6rem; text-align: center; } .empty .empty-icon { margin-bottom: .8rem; } .empty .empty-title, .empty .empty-subtitle { margin: .4rem auto; } .empty .empty-action { margin-top: .8rem; } .menu { background: #fff; border-radius: .1rem; box-shadow: 0 .05rem .2rem rgba(48, 55, 66, .3); list-style: none; margin: 0; min-width: 180px; padding: .4rem; transform: translateY(.2rem); z-index: 300; } .menu.menu-nav { background: transparent; box-shadow: none; } .menu .menu-item { margin-top: 0; padding: 0 .4rem; position: relative; text-decoration: none; } .menu .menu-item > a { border-radius: .1rem; color: inherit; display: block; margin: 0 -.4rem; padding: .2rem .4rem; text-decoration: none; } .menu .menu-item > a:focus, .menu .menu-item > a:hover { background: #f1f1fc; color: #5755d9; } .menu .menu-item > a:active, .menu .menu-item > a.active { background: #f1f1fc; color: #5755d9; } .menu .menu-item .form-checkbox, .menu .menu-item .form-radio, .menu .menu-item .form-switch { margin: .1rem 0; } .menu .menu-item + .menu-item { margin-top: .2rem; } .menu .menu-badge { align-items: center; display: flex; display: -ms-flexbox; -ms-flex-align: center; height: 100%; position: absolute; right: 0; top: 0; } .menu .menu-badge .label { margin-right: .4rem; } .modal { align-items: center; bottom: 0; display: none; -ms-flex-align: center; -ms-flex-pack: center; justify-content: center; left: 0; opacity: 0; overflow: hidden; padding: .4rem; position: fixed; right: 0; top: 0; } .modal:target, .modal.active { display: flex; display: -ms-flexbox; opacity: 1; z-index: 400; } .modal:target .modal-overlay, .modal.active .modal-overlay { background: rgba(247, 248, 249, .75); bottom: 0; cursor: default; display: block; left: 0; position: absolute; right: 0; top: 0; } .modal:target .modal-container, .modal.active .modal-container { animation: slide-down .2s ease 1; z-index: 1; } .modal.modal-sm .modal-container { max-width: 320px; padding: 0 .4rem; } .modal.modal-lg .modal-overlay { background: #fff; } .modal.modal-lg .modal-container { box-shadow: none; max-width: 960px; } .modal-container { background: #fff; border-radius: .1rem; box-shadow: 0 .2rem .5rem rgba(48, 55, 66, .3); display: flex; display: -ms-flexbox; -ms-flex-direction: column; flex-direction: column; max-height: 75vh; max-width: 640px; padding: 0 .8rem; width: 100%; } .modal-container.modal-fullheight { max-height: 100vh; } .modal-container .modal-header { color: #303742; padding: .8rem; } .modal-container .modal-body { overflow-y: auto; padding: .8rem; position: relative; } .modal-container .modal-footer { padding: .8rem; text-align: right; } .nav { display: flex; display: -ms-flexbox; -ms-flex-direction: column; flex-direction: column; list-style: none; margin: .2rem 0; } .nav .nav-item a { color: #66758c; padding: .2rem .4rem; text-decoration: none; } .nav .nav-item a:focus, .nav .nav-item a:hover { color: #5755d9; } .nav .nav-item.active > a { color: #505c6e; font-weight: bold; } .nav .nav-item.active > a:focus, .nav .nav-item.active > a:hover { color: #5755d9; } .nav .nav { margin-bottom: .4rem; margin-left: .8rem; } .pagination { display: flex; display: -ms-flexbox; list-style: none; margin: .2rem 0; padding: .2rem 0; } .pagination .page-item { margin: .2rem .05rem; } .pagination .page-item span { display: inline-block; padding: .2rem .2rem; } .pagination .page-item a { border-radius: .1rem; display: inline-block; padding: .2rem .4rem; text-decoration: none; } .pagination .page-item a:focus, .pagination .page-item a:hover { color: #5755d9; } .pagination .page-item.disabled a { cursor: default; opacity: .5; pointer-events: none; } .pagination .page-item.active a { background: #5755d9; color: #fff; } .pagination .page-item.page-prev, .pagination .page-item.page-next { -ms-flex: 1 0 50%; flex: 1 0 50%; } .pagination .page-item.page-next { text-align: right; } .pagination .page-item .page-item-title { margin: 0; } .pagination .page-item .page-item-subtitle { margin: 0; opacity: .5; } .panel { border: .05rem solid #dadee4; border-radius: .1rem; display: flex; display: -ms-flexbox; -ms-flex-direction: column; flex-direction: column; } .panel .panel-header, .panel .panel-footer { -ms-flex: 0 0 auto; flex: 0 0 auto; padding: .8rem; } .panel .panel-nav { -ms-flex: 0 0 auto; flex: 0 0 auto; } .panel .panel-body { -ms-flex: 1 1 auto; flex: 1 1 auto; overflow-y: auto; padding: 0 .8rem; } .popover { display: inline-block; position: relative; } .popover .popover-container { left: 50%; opacity: 0; padding: .4rem; position: absolute; top: 0; transform: translate(-50%, -50%) scale(0); transition: transform .2s; width: 320px; z-index: 300; } .popover *:focus + .popover-container, .popover:hover .popover-container { display: block; opacity: 1; transform: translate(-50%, -100%) scale(1); } .popover.popover-right .popover-container { left: 100%; top: 50%; } .popover.popover-right *:focus + .popover-container, .popover.popover-right:hover .popover-container { transform: translate(0, -50%) scale(1); } .popover.popover-bottom .popover-container { left: 50%; top: 100%; } .popover.popover-bottom *:focus + .popover-container, .popover.popover-bottom:hover .popover-container { transform: translate(-50%, 0) scale(1); } .popover.popover-left .popover-container { left: 0; top: 50%; } .popover.popover-left *:focus + .popover-container, .popover.popover-left:hover .popover-container { transform: translate(-100%, -50%) scale(1); } .popover .card { border: 0; box-shadow: 0 .2rem .5rem rgba(48, 55, 66, .3); } .step { display: flex; display: -ms-flexbox; -ms-flex-wrap: nowrap; flex-wrap: nowrap; list-style: none; margin: .2rem 0; width: 100%; } .step .step-item { -ms-flex: 1 1 0; flex: 1 1 0; margin-top: 0; min-height: 1rem; position: relative; text-align: center; } .step .step-item:not(:first-child)::before { background: #5755d9; content: ""; height: 2px; left: -50%; position: absolute; top: 9px; width: 100%; } .step .step-item a { color: #5755d9; display: inline-block; padding: 20px 10px 0; text-decoration: none; } .step .step-item a::before { background: #5755d9; border: .1rem solid #fff; border-radius: 50%; content: ""; display: block; height: .6rem; left: 50%; position: absolute; top: .2rem; transform: translateX(-50%); width: .6rem; z-index: 1; } .step .step-item.active a::before { background: #fff; border: .1rem solid #5755d9; } .step .step-item.active ~ .step-item::before { background: #dadee4; } .step .step-item.active ~ .step-item a { color: #bcc3ce; } .step .step-item.active ~ .step-item a::before { background: #dadee4; } .tab { align-items: center; border-bottom: .05rem solid #dadee4; display: flex; display: -ms-flexbox; -ms-flex-align: center; -ms-flex-wrap: wrap; flex-wrap: wrap; list-style: none; margin: .2rem 0 .15rem 0; } .tab .tab-item { margin-top: 0; } .tab .tab-item a { border-bottom: .1rem solid transparent; color: inherit; display: block; margin: 0 .4rem 0 0; padding: .4rem .2rem .3rem .2rem; text-decoration: none; } .tab .tab-item a:focus, .tab .tab-item a:hover { color: #5755d9; } .tab .tab-item.active a, .tab .tab-item a.active { border-bottom-color: #5755d9; color: #5755d9; } .tab .tab-item.tab-action { -ms-flex: 1 0 auto; flex: 1 0 auto; text-align: right; } .tab .tab-item .btn-clear { margin-top: -.2rem; } .tab.tab-block .tab-item { -ms-flex: 1 0 0; flex: 1 0 0; text-align: center; } .tab.tab-block .tab-item a { margin: 0; } .tab.tab-block .tab-item .badge[data-badge]::after { position: absolute; right: .1rem; top: .1rem; transform: translate(0, 0); } .tab:not(.tab-block) .badge { padding-right: 0; } .tile { align-content: space-between; align-items: flex-start; display: flex; display: -ms-flexbox; -ms-flex-align: start; -ms-flex-line-pack: justify; } .tile .tile-icon, .tile .tile-action { -ms-flex: 0 0 auto; flex: 0 0 auto; } .tile .tile-content { -ms-flex: 1 1 auto; flex: 1 1 auto; } .tile .tile-content:not(:first-child) { padding-left: .4rem; } .tile .tile-content:not(:last-child) { padding-right: .4rem; } .tile .tile-title, .tile .tile-subtitle { line-height: 1.2rem; } .tile.tile-centered { align-items: center; -ms-flex-align: center; } .tile.tile-centered .tile-content { overflow: hidden; } .tile.tile-centered .tile-title, .tile.tile-centered .tile-subtitle { margin-bottom: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .toast { background: rgba(48, 55, 66, .95); border: .05rem solid #303742; border-color: #303742; border-radius: .1rem; color: #fff; display: block; padding: .4rem; width: 100%; } .toast.toast-primary { background: rgba(87, 85, 217, .95); border-color: #5755d9; } .toast.toast-success { background: rgba(50, 182, 67, .95); border-color: #32b643; } .toast.toast-warning { background: rgba(255, 183, 0, .95); border-color: #ffb700; } .toast.toast-error { background: rgba(232, 86, 0, .95); border-color: #e85600; } .toast a { color: #fff; text-decoration: underline; } .toast a:focus, .toast a:hover, .toast a:active, .toast a.active { opacity: .75; } .toast .btn-clear { margin: .1rem; } .toast p:last-child { margin-bottom: 0; } .tooltip { position: relative; } .tooltip::after { background: rgba(48, 55, 66, .95); border-radius: .1rem; bottom: 100%; color: #fff; content: attr(data-tooltip); display: block; font-size: .7rem; left: 50%; max-width: 320px; opacity: 0; overflow: hidden; padding: .2rem .4rem; pointer-events: none; position: absolute; text-overflow: ellipsis; transform: translate(-50%, .4rem); transition: opacity .2s, transform .2s; white-space: pre; z-index: 300; } .tooltip:focus::after, .tooltip:hover::after { opacity: 1; transform: translate(-50%, -.2rem); } .tooltip[disabled], .tooltip.disabled { pointer-events: auto; } .tooltip.tooltip-right::after { bottom: 50%; left: 100%; transform: translate(-.2rem, 50%); } .tooltip.tooltip-right:focus::after, .tooltip.tooltip-right:hover::after { transform: translate(.2rem, 50%); } .tooltip.tooltip-bottom::after { bottom: auto; top: 100%; transform: translate(-50%, -.4rem); } .tooltip.tooltip-bottom:focus::after, .tooltip.tooltip-bottom:hover::after { transform: translate(-50%, .2rem); } .tooltip.tooltip-left::after { bottom: 50%; left: auto; right: 100%; transform: translate(.4rem, 50%); } .tooltip.tooltip-left:focus::after, .tooltip.tooltip-left:hover::after { transform: translate(-.2rem, 50%); } @keyframes loading { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes slide-down { 0% { opacity: 0; transform: translateY(-1.6rem); } 100% { opacity: 1; transform: translateY(0); } } .text-primary { color: #5755d9 !important; } a.text-primary:focus, a.text-primary:hover { color: #4240d4; } a.text-primary:visited { color: #6c6ade; } .text-secondary { color: #e5e5f9 !important; } a.text-secondary:focus, a.text-secondary:hover { color: #d1d0f4; } a.text-secondary:visited { color: #fafafe; } .text-gray { color: #bcc3ce !important; } a.text-gray:focus, a.text-gray:hover { color: #adb6c4; } a.text-gray:visited { color: #cbd0d9; } .text-light { color: #fff !important; } a.text-light:focus, a.text-light:hover { color: #f2f2f2; } a.text-light:visited { color: white; } .text-dark { color: #3b4351 !important; } a.text-dark:focus, a.text-dark:hover { color: #303742; } a.text-dark:visited { color: #455060; } .text-success { color: #32b643 !important; } a.text-success:focus, a.text-success:hover { color: #2da23c; } a.text-success:visited { color: #39c94b; } .text-warning { color: #ffb700 !important; } a.text-warning:focus, a.text-warning:hover { color: #e6a500; } a.text-warning:visited { color: #ffbe1a; } .text-error { color: #e85600 !important; } a.text-error:focus, a.text-error:hover { color: #cf4d00; } a.text-error:visited { color: #ff6003; } .bg-primary { background: #5755d9 !important; color: #fff; } .bg-secondary { background: #f1f1fc !important; } .bg-dark { background: #303742 !important; color: #fff; } .bg-gray { background: #f7f8f9 !important; } .bg-success { background: #32b643 !important; color: #fff; } .bg-warning { background: #ffb700 !important; color: #fff; } .bg-error { background: #e85600 !important; color: #fff; } .c-hand { cursor: pointer; } .c-move { cursor: move; } .c-zoom-in { cursor: zoom-in; } .c-zoom-out { cursor: zoom-out; } .c-not-allowed { cursor: not-allowed; } .c-auto { cursor: auto; } .d-block { display: block; } .d-inline { display: inline; } .d-inline-block { display: inline-block; } .d-flex { display: flex; display: -ms-flexbox; } .d-inline-flex { display: inline-flex; display: -ms-inline-flexbox; } .d-none, .d-hide { display: none !important; } .d-visible { visibility: visible; } .d-invisible { visibility: hidden; } .text-hide { background: transparent; border: 0; color: transparent; font-size: 0; line-height: 0; text-shadow: none; } .text-assistive { border: 0; clip: rect(0, 0, 0, 0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; } .divider, .divider-vert { display: block; position: relative; } .divider[data-content]::after, .divider-vert[data-content]::after { background: #fff; color: #bcc3ce; content: attr(data-content); display: inline-block; font-size: .7rem; padding: 0 .4rem; transform: translateY(-.65rem); } .divider { border-top: .05rem solid #f1f3f5; height: .05rem; margin: .4rem 0; } .divider[data-content] { margin: .8rem 0; } .divider-vert { display: block; padding: .8rem; } .divider-vert::before { border-left: .05rem solid #dadee4; bottom: .4rem; content: ""; display: block; left: 50%; position: absolute; top: .4rem; transform: translateX(-50%); } .divider-vert[data-content]::after { left: 50%; padding: .2rem 0; position: absolute; top: 50%; transform: translate(-50%, -50%); } .loading { color: transparent !important; min-height: .8rem; pointer-events: none; position: relative; } .loading::after { animation: loading 500ms infinite linear; border: .1rem solid #5755d9; border-radius: 50%; border-right-color: transparent; border-top-color: transparent; content: ""; display: block; height: .8rem; left: 50%; margin-left: -.4rem; margin-top: -.4rem; position: absolute; top: 50%; width: .8rem; z-index: 1; } .loading.loading-lg { min-height: 2rem; } .loading.loading-lg::after { height: 1.6rem; margin-left: -.8rem; margin-top: -.8rem; width: 1.6rem; } .clearfix::after { clear: both; content: ""; display: table; } .float-left { float: left !important; } .float-right { float: right !important; } .p-relative { position: relative !important; } .p-absolute { position: absolute !important; } .p-fixed { position: fixed !important; } .p-sticky { position: sticky !important; position: -webkit-sticky !important; } .p-centered { display: block; float: none; margin-left: auto; margin-right: auto; } .flex-centered { align-items: center; display: flex; display: -ms-flexbox; -ms-flex-align: center; -ms-flex-pack: center; justify-content: center; } .m-0 { margin: 0 !important; } .mb-0 { margin-bottom: 0 !important; } .ml-0 { margin-left: 0 !important; } .mr-0 { margin-right: 0 !important; } .mt-0 { margin-top: 0 !important; } .mx-0 { margin-left: 0 !important; margin-right: 0 !important; } .my-0 { margin-bottom: 0 !important; margin-top: 0 !important; } .m-1 { margin: .2rem !important; } .mb-1 { margin-bottom: .2rem !important; } .ml-1 { margin-left: .2rem !important; } .mr-1 { margin-right: .2rem !important; } .mt-1 { margin-top: .2rem !important; } .mx-1 { margin-left: .2rem !important; margin-right: .2rem !important; } .my-1 { margin-bottom: .2rem !important; margin-top: .2rem !important; } .m-2 { margin: .4rem !important; } .mb-2 { margin-bottom: .4rem !important; } .ml-2 { margin-left: .4rem !important; } .mr-2 { margin-right: .4rem !important; } .mt-2 { margin-top: .4rem !important; } .mx-2 { margin-left: .4rem !important; margin-right: .4rem !important; } .my-2 { margin-bottom: .4rem !important; margin-top: .4rem !important; } .p-0 { padding: 0 !important; } .pb-0 { padding-bottom: 0 !important; } .pl-0 { padding-left: 0 !important; } .pr-0 { padding-right: 0 !important; } .pt-0 { padding-top: 0 !important; } .px-0 { padding-left: 0 !important; padding-right: 0 !important; } .py-0 { padding-bottom: 0 !important; padding-top: 0 !important; } .p-1 { padding: .2rem !important; } .pb-1 { padding-bottom: .2rem !important; } .pl-1 { padding-left: .2rem !important; } .pr-1 { padding-right: .2rem !important; } .pt-1 { padding-top: .2rem !important; } .px-1 { padding-left: .2rem !important; padding-right: .2rem !important; } .py-1 { padding-bottom: .2rem !important; padding-top: .2rem !important; } .p-2 { padding: .4rem !important; } .pb-2 { padding-bottom: .4rem !important; } .pl-2 { padding-left: .4rem !important; } .pr-2 { padding-right: .4rem !important; } .pt-2 { padding-top: .4rem !important; } .px-2 { padding-left: .4rem !important; padding-right: .4rem !important; } .py-2 { padding-bottom: .4rem !important; padding-top: .4rem !important; } .s-rounded { border-radius: .1rem; } .s-circle { border-radius: 50%; } .text-left { text-align: left; } .text-right { text-align: right; } .text-center { text-align: center; } .text-justify { text-align: justify; } .text-lowercase { text-transform: lowercase; } .text-uppercase { text-transform: uppercase; } .text-capitalize { text-transform: capitalize; } .text-normal { font-weight: normal; } .text-bold { font-weight: bold; } .text-italic { font-style: italic; } .text-large { font-size: 1.2em; } .text-ellipsis { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .text-clip { overflow: hidden; text-overflow: clip; white-space: nowrap; } .text-break { -webkit-hyphens: auto; -ms-hyphens: auto; hyphens: auto; word-break: break-word; word-wrap: break-word; }
<div class="docs-demo columns"> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-resize-horiz"></i></button> <p>icon-resize-horiz</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-resize-vert"></i></button> <p>icon-resize-vert</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-plus"></i></button> <p>icon-plus</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-minus"></i></button> <p>icon-minus</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-cross"></i></button> <p>icon-cross</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-check"></i></button> <p>icon-check</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-stop"></i></button> <p>icon-stop</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-shutdown"></i></button> <p>icon-shutdown</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-refresh"></i></button> <p>icon-refresh</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-search"></i></button> <p>icon-search</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-flag"></i></button> <p>icon-flag</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-bookmark"></i></button> <p>icon-bookmark</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-edit"></i></button> <p>icon-edit</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-delete"></i></button> <p>icon-delete</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-share"></i></button> <p>icon-share</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-download"></i></button> <p>icon-download</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-upload"></i></button> <p>icon-upload</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-copy"></i></button> <p>icon-copy</p> </div> </div>
Use <code>icon-2x</code>, <code>icon-3x</code> and <code>icon-4x</code> classes to increase icon sizes. You can set <code>font-size</code> to have different icon sizes. <div class="docs-demo columns"> <div class="column col-3 col-md-6"> <p><i class="icon icon-2x icon-mail"></i></p> <p>icon-2x (32px)</p> </div> <div class="column col-3 col-md-6"> <p><i class="icon icon-3x icon-mail"></i></p> <p>icon-3x (48px)</p> </div> <div class="column col-3 col-md-6"> <p><i class="icon icon-4x icon-mail"></i></p> <p>icon-4x (64px)</p> </div> </div> ;Exemple: ``` <i class="icon icon-2x icon-mail"></i> ```
<div class="docs-demo columns"> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-arrow-up"></i></button> <p>icon-arrow-up</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-arrow-right"></i></button> <p>icon-arrow-right</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-arrow-down"></i></button> <p>icon-arrow-down</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-arrow-left"></i></button> <p>icon-arrow-left</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-upward"></i></button> <p>icon-upward</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-forward"></i></button> <p>icon-forward</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-downward"></i></button> <p>icon-downward</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-back"></i></button> <p>icon-back</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-caret"></i></button> <p>icon-caret</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-menu"></i></button> <p>icon-menu</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-apps"></i></button> <p>icon-apps</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-more-horiz"></i></button> <p>icon-more-horiz</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-more-vert"></i></button> <p>icon-more-vert</p> </div> </div> ;Exemple: ``` <i class="icon icon-menu"></i> ```
<div class="docs-demo columns"> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-mail"></i></button> <p>icon-mail</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-people"></i></button> <p>icon-people</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-message"></i></button> <p>icon-message</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-photo"></i></button> <p>icon-photo</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-time"></i></button> <p>icon-time</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-location"></i></button> <p>icon-location</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-link"></i></button> <p>icon-link</p> </div> <div class="column col-3 col-md-6"> <button class="btn btn-primary btn-action btn-lg"><i class="icon icon-emoji"></i></button> <p>icon-emoji</p> </div> </div>
\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]] \rules only filteredtranscludeinline transcludeinline macrocallinline <div class="tc-remove-when-wiki-loaded"> <style scoped> .tc-splash-text { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-size: 16px; text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; margin: 20px auto 0; width: 200px; text-align: center; color: <<colour foreground>>; fill: <<colour foreground>>; } html body.tc-body { background: <<colour page-background>>; } /* Spinner from https://github.com/tobiasahlin/SpinKit/ by Tobias Ahlin The MIT License (MIT) Copyright (c) 2015 Tobias Ahlin Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ .tc-splash-spinner { margin: 20px auto 0; width: 70px; text-align: center; } .tc-splash-spinner > div { width: 18px; height: 18px; border-radius: 100%; display: inline-block; -webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both; animation: sk-bouncedelay 1.4s infinite ease-in-out both; background-color: #f88; } .tc-splash-spinner .tc-splash-bounce-1 { -webkit-animation-delay: -0.32s; animation-delay: -0.32s; background-color: #8f8; } .tc-splash-spinner .tc-splash-bounce-2 { -webkit-animation-delay: -0.16s; animation-delay: -0.16s; background-color: #88f; } @-webkit-keyframes sk-bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0) } 40% { -webkit-transform: scale(1.0) } } @keyframes sk-bouncedelay { 0%, 80%, 100% { -webkit-transform: scale(0); transform: scale(0); } 40% { -webkit-transform: scale(1.0); transform: scale(1.0); } } </style> <div class="tc-splash-text"> Please wait while {{$:/SiteTitle}} is loading </div> <div class="tc-splash-spinner"> <div class="tc-splash-bounce-1"></div> <div class="tc-splash-bounce-2"></div> <div class="tc-splash-bounce-3"></div> </div> <!-- Demonstrating how to embed a wikitext SVG graphic --> <div class="tc-splash-text"> {{$:/core/images/home-button||$:/core/templates/plain-text-tiddler}} </div> <!-- Demonstrating how to embed a bitmap graphic --> <div class="tc-splash-text"> <img src="data:image/jpeg;base64,{{Motovun Jack.jpg||$:/core/templates/plain-text-tiddler}}" width="100"/> </div> </div>
/*\ title: $:/startup/hide-sidebar.js type: application/javascript module-type: startup created: 20151010151732122 creator: Tobias Beer modified: 20151010151750739 Hides the sidebar on startup when the config tiddler [[$:/config/hide-sidebar-on-startup]] contains "yes" \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; // Export name and synchronous status exports.name = "hide-sidebar-on-startup"; exports.platforms = ["browser"]; exports.after = ["startup"]; exports.synchronous = true; exports.startup = function() { var conf = $tw.wiki.getTiddler("$:/config/HideSidebarOnStartup"), value = (conf ? conf.getFieldString("text") : "").toLowerCase(), state = value == "yes" ? "no" : "yes"; $tw.wiki.setText("$:/state/sidebar", "text", undefined, state); }; })();
true
no
contents
contents
contents
no
docs
yes
no
inactive
$:/core/ui/AdvancedSearch/Standard
$:/core/ui/ControlPanel/Plugins/Add/Plugins
$:/core/ui/ControlPanel/Plugins
Contexte
$:/core/ui/MoreSideBar/All
$:/core/ui/MoreSideBar/Recent
$:/core/ui/SideBar/More
close
close
close
close
close
close
open
close
close
close
no
prolegomenes
.container_notes { width: 200px; margin: auto; } .heading_note, .close_note { background-color: yellow; font-size: 0.8em; font-weight: bold; border-top: solid 2px black; border-bottom: solid 1px black; padding: 1px; text-align: center; float: left; } .heading_note { width: 170px; border-left: solid 1px black; border-right: solid 2px black; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; } .close_note { width: 20px; border-left: solid 2px black; border-right: solid 1px black; } .notes { background-color: yellow; font-size: 0.8em; width: 190px; border-top: solid 1px black; border-bottom: solid 2px black; border-left: solid 2px black; border-right: solid 2px black; padding: 4px; line-height: 1em; }
<tr> <td> <$link to="$:/Story top position">Story top position</$link> </td> <td align="center"> <$edit-text tiddler="$:/themes/tiddlywiki/vanilla/metrics/storytop" default="" tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav05" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav05" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav05" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav05" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav05" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-143}} </td> </$reveal>
{ "2018": "2018|Calendrier2018|NBJCal tabcal", "2019": "2019|Calendrier 2019|NBJCal tabcal19", "2020": "2020|Calendrier 2020|NBJCal tabcal20", "2021": "2021|Calendrier 2021|NBJCal tabcal21", "2022": "2022|Calendrier 2022|NBJCal tabcal22", "2023": "2023|Calendrier2023|NBJCal tabcal23", "2024": "2024|Calendrier2024|NBJCal tabcal24", "2025": "2025|Calendrier 2025|NBJCal tabcal25", "-$:/plugins/ebalster/formula": "-$:/plugins/ebalster/formula||", "...Et affectez y du code CSS": "...Et affectez y du code CSS|...Et affectez y du code CSS|Lists", ".mr/macro/dbadge": ".mr/macro/dbadge|La Macro MicroBadges|MicroBadges $:/tags/Macro", ".tc-sidebar-header": ".tc-sidebar-header||CSSD", ".tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button": ".tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button||CSSD", ".tc-sidebar-lists a.tc-tiddlylink": ".tc-sidebar-lists a.tc-tiddlylink||CSSD", ".tc-site-subtitle Class Override": ".tc-site-subtitle Class Override||", ".tc-tabbed-table-of-contents": ".tc-tabbed-table-of-contents||CSSD", ".tc-tabbed-table-of-contents-content": ".tc-tabbed-table-of-contents-content||CSSD", ".tc-tiddler-frame": ".tc-tiddler-frame||CSSD", ".tc-title Class Override": ".tc-title Class Override||", "(by_Mars_2002).jpg": "(by_Mars_2002).jpg||tabcal fav", "(T)->$:/cssNavBar": "(T)->$:/cssNavBar||Done Task", "$/cssPageBackgroundImage": "$/cssPageBackgroundImage||$:/tags/Stylesheet", "001": "001|BD Adhérent 1|Adhérents ListeDiffusion VELCS", "002": "002||VELCS", "140 couleurs": "140 couleurs|140 couleurs|Couleurs", "2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg": "2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg||tabcal20", "223 plugins rescensés": "223 plugins rescensés||Sources", "2click2edit": "2click2edit||Sources", "30 seconds of code": "30 seconds of code||Sources", "3D Extrude Text Effect HTML": "3D Extrude Text Effect HTML|Effets de texte 3D|HTML", "45 Useful JavaScript Tips, Tricks and Best Practices": "45 Useful JavaScript Tips, Tricks and Best Practices||Sources", "A": "A|Le tiddler A|Transcl$AInA SansSel Repas Viande", "A book series on JavaScript": "A book series on JavaScript||Sources", "À creuser": "À creuser|À creuser|Divers", "à faire": "à faire|Tiddler à faire|tags", "A macro that returns a list of indices that are non-blank": "A macro that returns a list of indices that are non-blank|Une macro retournant la liste des indices non vides|Macros", "À mettre en contexte": "À mettre en contexte|À mettre en contexte|[[à faire]] Tags Divers", "À Propos de Apprendre": "À Propos de Apprendre|Introduction|", "À propos des thèmes TW5": "À propos des thèmes TW5|À propos des thèmes TW5|Divers", "A regarder plus tard": "A regarder plus tard|A regarder plus tard|Divers", "A voir": "A voir|A voir|Divers", "A-Z": "A-Z||blog-framework", "ABC": "ABC|Démo ABC|ONP", "About me": "About me|Bouton About me|Prolegomenes", "Accéder au tutoriel": "Accéder au tutoriel|Accéder au tutoriel|", "Accordions": "Accordions|Accordions|Spectre", "Accueil": "Accueil|Tiddler de présentation|Kanban1", "ActionCreateTiddlerWidget": "ActionCreateTiddlerWidget|action-createtiddler|ActionWidgets", "ActionDeleteFieldWidget": "ActionDeleteFieldWidget|action-deletefield|ActionWidgets", "ActionDeleteTiddlerWidget": "ActionDeleteTiddlerWidget|action-deletetiddler|ActionWidgets", "ActionListopsWidget": "ActionListopsWidget|action-listops|ActionWidgets", "ActionNavigateWidget": "ActionNavigateWidget|action-navigate|ActionWidgets", "Actions retour page accueil et en plein écran": "Actions retour page accueil et en plein écran|Un exemple de widget action|ActionWidgets", "ActionSendMessageWidget": "ActionSendMessageWidget|action-sendmessage|ActionWidgets", "ActionSetField": "ActionSetField|Action-setfield|ActionWidgets", "ActionSetFieldWidget": "ActionSetFieldWidget|action-setfield Widget Introduction|ActionSetField", "ActionWidgets": "ActionWidgets|ActionWidgets|Widgets", "ActionWidgetsDoc": "ActionWidgetsDoc|Documentation|ActionWidgets", "activity": "activity|Le template activity|LWT", "Adapter JS à TW5 c'est quoi ?": "Adapter JS à TW5 c'est quoi ?|Adapter JS à TW5 c'est quoi ?|JavaScript", "Adapter le code source à ses besoins": "Adapter le code source à ses besoins|Adapter le code source à ses besoins|MacroClone", "Adapting SideBar for Mobile Screens": "Adapting SideBar for Mobile Screens||Sources", "Add tiddler breadcrumbs": "Add tiddler breadcrumbs|Ajouter un tiddler BreadCrumbs|Ariane", "Adhérents": "Adhérents|Un formulaire d'ahadhésion|Applications", "admin": "admin|Connexion|", "Affecter un style à un champ": "Affecter un style à un champ|Affecter un style à un champ|CSS", "Affecter une couleur à un Hn ou à un texte": "Affecter une couleur à un Hn ou à un texte|Affecter une couleur à un Hn ou à un texte|Couleurs", "Affecter une couleur de fond aux tiddlers tagués TableOfContents": "Affecter une couleur de fond aux tiddlers tagués TableOfContents|Affecter une couleur de fond aux tiddlers tagués TableOfContents|Couleurs", "Affecter une couleur palette à un css": "Affecter une couleur palette à un css|Affecter une couleur palette à un css|Couleurs", "Affichage sur de petits écrans": "Affichage sur de petits écrans|Affichage sur de petits écrans|Templates", "Afficher de 1 à N": "Afficher de 1 à N|Afficher de 1 à N|Macros+Js", "Afficher du contenu dans des onglets": "Afficher du contenu dans des onglets|Afficher du contenu dans des onglets|Transclusion", "Afficher la date de dernière modification": "Afficher la date de dernière modification|Afficher la date de dernière modification|Dates", "Afficher la date de modification d'un Tiddler": "Afficher la date de modification d'un Tiddler|Afficher la date de modification d'un Tiddler|Dates", "Afficher le titre de chaque tiddler sous son contenu (Liste par tag)": "Afficher le titre de chaque tiddler sous son contenu (Liste par tag)|Afficher le titre de chaque tiddler sous son contenu (Liste par tag)|Lists", "Afficher/Cacher les lignes d'un tableau (Toogle/Collapsible)": "Afficher/Cacher les lignes d'un tableau (Toogle/Collapsible)|Afficher/Cacher les lignes d'un tableau (Toogle/Collapsible)|Tableurs", "Afficher/Cacher toutes les lignes d'un tableau": "Afficher/Cacher toutes les lignes d'un tableau|Afficher/Cacher toutes les lignes d'un tableau|Tableurs", "Agrandir l'espace alloué aux Tiddlers": "Agrandir l'espace alloué aux Tiddlers|Agrandir l'espace alloué aux Tiddlers|Divers", "ajh (Andrew) plugins": "ajh (Andrew) plugins||Sources", "Ajouter de la couleur aux icônes du source": "Ajouter de la couleur aux icônes du source|Ajouter de la couleur aux icônes du source|Couleurs", "Ajouter des éléments sur le DOM": "Ajouter des éléments sur le DOM|Ajouter des éléments sur le DOM|Macros+Js", "Ajouter des liens sur les tables": "Ajouter des liens sur les tables|Ajouter des liens sur les tables|Plugins", "Ajouter des pictogrammes au Sous-Titre d'un Tiddler": "Ajouter des pictogrammes au Sous-Titre d'un Tiddler|Ajouter des pictogrammes au Sous-Titre d'un Tiddler|Templates", "Ajouter des tiddlers dans l'interface utilisateur": "Ajouter des tiddlers dans l'interface utilisateur|Ajouter des tiddlers dans l'interface utilisateur|Tags", "Ajouter l'onglet System Tags à la SideBar": "Ajouter l'onglet System Tags à la SideBar|Comment ajouter l'onglet System Tags à la SideBar|Q&R", "Ajouter un bouton de contrôle": "Ajouter un bouton de contrôle|Ajouter un bouton de contrôle|Tags", "Ajouter une icône devant le titre des tiddlers": "Ajouter une icône devant le titre des tiddlers|Ajouter une icône devant le titre des tiddlers|CSS", "Aliases": "Aliases||Sources", "Alice in Wonderland": "Alice in Wonderland|Alice in Wonderland|ExtextSupport", "Aligner plusieurs DIV horizontalement": "Aligner plusieurs DIV horizontalement||Sources", "All Tobias Beer Plugins": "All Tobias Beer Plugins||Sources", "AlwaysData - Hébergement TiddlyWiki Node.Js": "AlwaysData - Hébergement TiddlyWiki Node.Js||Sources", "Amande-Blanchie": "Amande-Blanchie|Amande Blanchie|BackColor blanchedalmond", "Animations etc (tesseRact)": "Animations etc (tesseRact)||Sources", "Animez vos Tiddlers": "Animez vos Tiddlers|Animez vos Tiddlers|CSS", "Appender": "Appender|Appender|Divers", "AppendTiddlersList": "AppendTiddlersList|Joindre des tiddlers à une liste|FiltresIntro", "AppendTiddlersListDoc": "AppendTiddlersListDoc|Documentation Joindre des tiddlers à une liste|AppendTiddlersList", "AppendTiddlersListMacro": "AppendTiddlersListMacro|Macro et démo de l'utilisation de la liste|AppendTiddlersList", "apple": "apple||FilterBDExo1 ingredient fruit", "Applications": "Applications|Applications|TableOfContents", "ApplicationsDoc": "ApplicationsDoc|Documentation Applications|Applications", "Apprendre à transclure": "Apprendre à transclure|Apprendre à transclure|[[à faire]]", "Apprendre TiddlyWiki": "Apprendre TiddlyWiki||Sources", "apr19": "apr19|April|tabcal19", "apr20": "apr20|April|tabcal20", "apr21": "apr21|April|tabcal21", "apr22": "apr22|April|tabcal22", "apr23": "apr23|April|tabcal23", "apr24": "apr24|April|tabcal24", "apr25": "apr25|April|tabcal25", "April": "April||tabcal", "AProposDe": "AProposDe||", "Archives TiddlyWiki": "Archives TiddlyWiki||Sources", "Argent": "Argent|Argent|BackColor silver", "Ariane": "Ariane|Fil d'Ariane|Templates", "Asciidoctor (AsciiDoc)": "Asciidoctor (AsciiDoc)||Sources", "Assign a field value as a tag name": "Assign a field value as a tag name|Assign a field value as a tag name|Divers", "Associer une image au caption d'un Tiddler": "Associer une image au caption d'un Tiddler|<i class=\"fa fa-wrench\"></i> Associer une image caption|Images", "attente": "attente||Statut", "Attention en Modifiant un Shadows tiddler!": "Attention en Modifiant un Shadows tiddler!|Attention en Modifiant un Shadows tiddler!|TiddlyWiki", "Attribuer ou supprimer le tag d'un Tiddler": "Attribuer ou supprimer le tag d'un Tiddler|Attribuer ou supprimer le tag d'un Tiddler|Tags", "Attribuer une couleur de texte via un champ": "Attribuer une couleur de texte via un champ|Attribuer une couleur de texte via un champ|Champs", "Au clic sur un bouton un tiddler s'ouvre en PopUp": "Au clic sur un bouton un tiddler s'ouvre en PopUp|Autre exemple Popup|PopUpButton", "aug19": "aug19|August|tabcal19", "aug20": "aug20|August|tabcal20", "aug21": "aug21|August|tabcal21", "aug22": "aug22|August|tabcal22", "aug23": "aug23|August|tabcal23", "aug24": "aug24|August|tabcal24", "aug25": "aug25|August|tabcal25", "August": "August||tabcal", "Autres propriétés CSS remarquables": "Autres propriétés CSS remarquables|Autres propriétés CSS remarquables|Builtin", "Available Operations": "Available Operations|Opérateurs disponibles|Mathcell", "avatar": "avatar|avatar|", "Avatars": "Avatars|Avatars|Spectre", "Avertissement": "Avertissement|Démo \"Avertissement\"|StartupAction", "Awesome icons remis en ordre": "Awesome icons remis en ordre|Awsome icons remis en ordre|Divers", "Awesome JavaScript Learning": "Awesome JavaScript Learning||Sources", "B": "B|Tiddler B|ParamToList SansSel Repas Viande ExtendedBrain", "Back-Link conditionnel": "Back-Link conditionnel|Back-Link conditionnel|two Lists one", "BackColor": "BackColor|Palette Exemple|Couleurs", "BacklinksFooter": "BacklinksFooter|Un template en bas de page sur tous les tiddlers|Templates", "Balises HTML de listes": "Balises HTML de listes|Balises HTML de listes|HTML", "banner-65.png": "banner-65.png||", "Bar Chart": "Bar Chart|Exemple Diagramme en bâtons|Mathcell", "Bar Charts": "Bar Charts||Sources", "Barbe-de-Mais": "Barbe-de-Mais|Barbe de Mais|BackColor cornsilk", "Barre de menu supplémentaire à gauche": "Barre de menu supplémentaire à gauche||Sources", "Barres de menu supplémentaires Top et Left": "Barres de menu supplémentaires Top et Left||Sources", "Barres de menu Top 3 positions, Right et left": "Barres de menu Top 3 positions, Right et left||Sources", "Basculer la visibilitéd'un élément par sa classe": "Basculer la visibilitéd'un élément par sa classe|Basculer la visibilité d'un élément par sa classe|Macros+Js", "Basic Javascript Macro": "Basic Javascript Macro|Macro JavaScript de base|JavaScript", "Batch Add or Remove Tags": "Batch Add or Remove Tags|Automatiser l'ajout ou la suppression de tags|Filtres", "Batch Edit Tiddler Title": "Batch Edit Tiddler Title|Batch Edit Tiddler Title|Filtres", "Batch Manipulator": "Batch Manipulator||Sources", "bbox": "bbox|bbox|Macros+Js", "BD-John": "BD-John|Le dictionnaire BD-John|BDDataDictionary", "BDDataDictionary": "BDDataDictionary|La Base de données|DataDictionary", "BDPensionnaires": "BDPensionnaires|Image BD pensionnaires|FiltresImg", "Beginners Documentation": "Beginners Documentation||Sources", "Beige": "Beige|Beige|BackColor beige", "Big Quote": "Big Quote|Big Quotes|Helpers", "Bimlas": "Bimlas||Sources", "Bisque": "Bisque|Bisque|BackColor bisque", "Blanc": "Blanc|Blanc|BackColor white", "Blanc-Antique": "Blanc-Antique|Blanc Antique|BackColor antiquewhite", "Bleu": "Bleu|Bleu|BackColor blue", "Bleu-Alice": "Bleu-Alice|Bleu Alice|BackColor aliceblue", "Bleu-Ardoise-Foncé": "Bleu-Ardoise-Foncé|Bleu Ardoise Foncé|BackColor darkslateblue", "Bleu-Barbeau": "Bleu-Barbeau|Bleu Barbeau|BackColor cornflowerblue", "Bleu-Cadet": "Bleu-Cadet|Bleu Cadet|BackColor cadetblue", "Bleu-Ciel": "Bleu-Ciel|Bleu Ciel|BackColor azure", "Bleu-Foncé": "Bleu-Foncé|Bleu Foncé|BackColor darkblue", "Bleu-Marine": "Bleu-Marine|Bleu Marine|BackColor navy", "Bleu-Vert": "Bleu-Vert|Bleu Vert|BackColor aquamarine", "Bleu-Violet": "Bleu-Violet|Bleu Violet|BackColor blueviolet", "Bloc conditionnel": "Bloc conditionnel|Bloc conditionnel|Filtres", "Blue book infos": "Blue book infos|Blue book infos|Helpers", "Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg": "Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg||tabcal19", "BOB": "BOB|BOB|Divers", "Bob": "Bob|Bob|DemoFt FieldsTable", "Bois-Brut": "Bois-Brut|Bois Brut|BackColor burlywood", "Boite att": "Boite att|Boite att|Helpers", "Boite épingler": "Boite épingler|Boite épingler|Helpers", "Bordeaux": "Bordeaux|Bordeaux|BackColor maroon", "Bottom Tabs": "Bottom Tabs||Sources", "BottomOfTiddlerMacro": "BottomOfTiddlerMacro|La Macro Bottom of Tiddler (Code)|TemplateButtonMacro $:/tags/Macro", "BottomOfTiddlerMacroDoc": "BottomOfTiddlerMacroDoc|La Macro Bottom of Tiddler (Explications)|TemplateButtonMacro", "Bouton": "Bouton|Bouton Kbd|Helpers", "Bouton cache de la sidebar": "Bouton cache de la sidebar||", "Bouton d'accès à un Tiddler": "Bouton d'accès à un Tiddler|Accéder à un tiddler via un bouton|Helpers", "Bouton de création d'un nouveau Tiddler": "Bouton de création d'un nouveau Tiddler|Bouton de création d'un nouveau Tiddler|Divers", "Bouton de suppression destiddlers tagué x": "Bouton de suppression destiddlers tagué x|Bouton de suppression destiddlers tagué x|tmDelete", "Bouton Marqueur": "Bouton Marqueur|Bouton Marqueur|Éditeur", "Boutons de suppression": "Boutons de suppression|À creuser2|Divers", "BreadCrumbs (TonGerner)": "BreadCrumbs (TonGerner)|BreadCrumbs (TonGerner)|Sources", "briefcase.png": "briefcase.png||", "brouillon": "brouillon||Statut", "BrowseWidget": "BrowseWidget|Widget Browse|Widgets", "Brun": "Brun|Brun|BackColor brown", "Builtin": "Builtin|Classes CSS TW5|CSS", "Builtin CSS Classes (Table of Contents)": "Builtin CSS Classes (Table of Contents)|Table of Contents|Builtin", "Builtin CSS Classes doc-* (?)": "Builtin CSS Classes doc-* (?)|Doc? (Unknown)|Builtin", "Builtin CSS Classes tc-btn-* (Buttons)": "Builtin CSS Classes tc-btn-* (Buttons)|Buttons|Builtin", "Builtin CSS Classes tc-edit* (Editors)": "Builtin CSS Classes tc-edit* (Editors)|Editors|Builtin", "Builtin CSS Classes tc-image-* (Images)": "Builtin CSS Classes tc-image-* (Images)|Images|Builtin", "Builtin CSS Classes tc-plugin-info-* (Plugin List)": "Builtin CSS Classes tc-plugin-info-* (Plugin List)|Plugin List|Builtin", "Builtin CSS Classes tc-tab-* (Tabs)": "Builtin CSS Classes tc-tab-* (Tabs)|Tabs|Builtin", "Builtin CSS Classes tc-tag* (Tags)": "Builtin CSS Classes tc-tag* (Tags)|Tags|Builtin", "Builtin CSS Classes tc-thumbnail-* (Thumbnails)": "Builtin CSS Classes tc-thumbnail-* (Thumbnails)|Thumbnails|Builtin", "Builtin CSS Classes tc-tiddler-* (Tiddlers)": "Builtin CSS Classes tc-tiddler-* (Tiddlers)|Tiddlers|Builtin", "Builtin CSS Classes tc-view-field-* (View Field)": "Builtin CSS Classes tc-view-field-* (View Field)|View Field|Builtin", "BuiltinDoc": "BuiltinDoc|Documentation|Builtin", "Bulitin CSS Classes tc-modal* (Modals)": "Bulitin CSS Classes tc-modal* (Modals)|Modals|Builtin", "BulletList": "BulletList|Changer la présentation des listes simples|CSS", "BulletListDoc": "BulletListDoc|Documentation BulletList|BulletList", "Bulma": "Bulma||Sources", "button.tc-tiddlylink, a.tc-tiddlylink": "button.tc-tiddlylink, a.tc-tiddlylink||CSSD", "Buttons": "Buttons|Boutons|Spectre", "ButtonWidget": "ButtonWidget|Widget Button|Widgets", "ButtonWidgetDoc": "ButtonWidgetDoc|Documentation Widget Button|ButtonWidget", "ButtonWidgetExemple1": "ButtonWidgetExemple1|Exemple ButtonWidget|ButtonWidget", "C": "C||SansSel Repas Viande", "Cacher la Sidebar au démarrage": "Cacher la Sidebar au démarrage|Cacher la SideBar au démarrage (Complément)|Plugins", "Cacher les données des lignes d'un tableau": "Cacher les données des lignes d'un tableau|Cacher les données des lignes d'un tableau|Tableurs", "Cacher un code secret": "Cacher un code secret|Cacher un code secret|Macros+Js", "CalendarExt": "CalendarExt|Extendable Calendar|Calendriers", "CalendarExtDoc": "CalendarExtDoc|BJ Tools Documentation|CalendarExt", "Calendars": "Calendars|Calendars|Spectre", "CalendarThing": "CalendarThing|Calendrier (inmysocks)|Calendriers", "CalendarThingExample": "CalendarThingExample|Calendrier (Exemple)|CalendarThing", "Calendrier en icône de la SideBar": "Calendrier en icône de la SideBar|Calendrier en icône de la SideBar|Calendriers", "Calendriers": "Calendriers|Calendriers|TableOfContents", "call-the-macro": "call-the-macro|Appel de la macro Passer un paramètre à une liste|ParamToList", "CamelCase": "CamelCase|CamelCase|WikiText", "Candy-Bar": "Candy-Bar||FormulaExpenses Expenses", "caption": "caption|caption|", "Cardo": "Cardo||Sources", "Catégories": "Catégories|La liste des catégories|FiltresCategories", "Catégories fondamentales": "Catégories fondamentales|Catégories fondamentales|Filtres", "Ce Tiddler existe déjà!": "Ce Tiddler existe déjà!|Ce Tiddler existe déjà!|Templates $:/tags/EditTemplate", "Champ created visible en mode édition": "Champ created visible en mode édition|Champ created visible en mode édition|Champs", "Champ de recherche avancée": "Champ de recherche avancée|Champ de recherche avancée|Divers", "Champs": "Champs|Champs|TableOfContents", "Champs vs dictionnaire": "Champs vs dictionnaire|Champs vs dictionnaire|Divers", "Changer la taille des icônes dans la barre d'outils des Tiddler": "Changer la taille des icônes dans la barre d'outils des Tiddler|Changer la taille des icônes dans la barre d'outils des Tiddler|CSS", "Chartreuse": "Chartreuse|Chartreuse|BackColor chartreuse", "CheckBox": "CheckBox|La Macro CheckBox Final|Ariane $:/tags/Macro", "Checkbox widget to set a field value": "Checkbox widget to set a field value|Un Widget Checkbox pour définir la valeur d'un champ|CheckboxWidget", "CheckBox-source": "CheckBox-source|La Macro CheckBox 1er jet|Ariane $:/tags/Macro", "CheckBoxAriane": "CheckBoxAriane|Le bouton de choix des couleurs|Ariane transparent", "CheckboxWidget": "CheckboxWidget|Documentation Widget Checkbox|Widgets", "CheckboxWidgetDoc": "CheckboxWidgetDoc|Documentation Widget Checkbox|CheckboxWidget", "ChimieDoc": "ChimieDoc|Un CSS original (Chimie)|CSS", "Chocolat": "Chocolat|Chocolat|chocolate BackColor", "Choisir les Tiddlers montrés au démarrage": "Choisir les Tiddlers montrés au démarrage|Choisir les Tiddlers montrés au démarrage|Divers", "Choo": "Choo|Choo|Applications", "choo.png": "choo.png||", "ChooBird.gif": "ChooBird.gif||", "ChooCrocodile.gif": "ChooCrocodile.gif||", "ChooKoala.gif": "ChooKoala.gif||", "ChooLion.gif": "ChooLion.gif||", "ChooTiger.gif": "ChooTiger.gif||", "ChooWalrus.gif": "ChooWalrus.gif||", "Circular": "Circular|Macro Circular Progress Bar|Macros", "CircularDoc": "CircularDoc|Documentation Circular Progress Bar|Circular", "Classer les tiddlers dans un ordre défini": "Classer les tiddlers dans un ordre défini|Classer les tiddlers dans un ordre défini|Lists", "Classification des codes couleurs": "Classification des codes couleurs||Sources", "code": "code|Le Template Code|TranscludeAll SampleMacro", "Coding": "Coding||FilterBDExo2 Skills", "Collection complète de polices de caractères préinstallées": "Collection complète de polices de caractères préinstallées|Collection complète de polices de caractères préinstallées|Divers", "Colonne1": "Colonne1|Colonne 1 de la table exemple du tiddler \"Documentation\"|cols dtable", "Colonne2": "Colonne2|Colonne 2 de la table exemple du tiddler \"Documentation\"|cols dtable", "Colonne3": "Colonne3|Colonne 3 de la table exemple du tiddler \"Documentation\"|cols dtable", "Colonne4": "Colonne4|Colonne 4 de la table exemple du tiddler \"Documentation\"|cols dtable", "Colonne5": "Colonne5|Colonne 5 de la table exemple du tiddler \"Documentation\"|cols dtable", "Colonnes et classes associées": "Colonnes et classes associées|Colonnes et classes associées|GridLexHelpers", "Color Values": "Color Values|Color Values|Couleurs", "ColorDictionary": "ColorDictionary|Sélectionner une couleur via un dictionnaire|Couleurs", "Columns": "Columns|Documentation Columns|Sources", "Combiner les filtres - Introduction": "Combiner les filtres - Introduction|Introduction|FiltresComb", "Commander Plugin": "Commander Plugin|Commander Plugin|Plugins", "Comment by 'Prolégomènes' on 'CSSD'": "Comment by 'Prolégomènes' on 'CSSD'||", "Comment by 'Prolégomènes' on 'CssDiv'": "Comment by 'Prolégomènes' on 'CssDiv'||", "Comment by 'Prolégomènes' on 'encrypt'": "Comment by 'Prolégomènes' on 'encrypt'||", "Comment by 'Prolégomènes' on 'FieldsTable'": "Comment by 'Prolégomènes' on 'FieldsTable'||", "Comment by 'Prolégomènes' on 'floating-images'": "Comment by 'Prolégomènes' on 'floating-images'||", "Comment by 'Prolégomènes' on 'FootNotesExt'": "Comment by 'Prolégomènes' on 'FootNotesExt'||", "Comment by 'Prolégomènes' on 'Formspree'": "Comment by 'Prolégomènes' on 'Formspree'||", "Comment by 'Prolégomènes' on 'GridLex'": "Comment by 'Prolégomènes' on 'GridLex'||", "Comment by 'Prolégomènes' on 'JumpToTop'": "Comment by 'Prolégomènes' on 'JumpToTop'||", "Comment by 'Prolégomènes' on 'Mark'": "Comment by 'Prolégomènes' on 'Mark'||", "Comment by 'Prolégomènes' on 'MicroBadges'": "Comment by 'Prolégomènes' on 'MicroBadges'||", "Comment by 'Prolégomènes' on 'NeatLink'": "Comment by 'Prolégomènes' on 'NeatLink'||", "Comment by 'Prolégomènes' on 'PlantUml'": "Comment by 'Prolégomènes' on 'PlantUml'||", "Comment by 'Prolégomènes' on 'ScrollableTableOfContents'": "Comment by 'Prolégomènes' on 'ScrollableTableOfContents'||", "Comment by 'Prolégomènes' on 'SideBarPlus'": "Comment by 'Prolégomènes' on 'SideBarPlus'||", "Comment by 'Prolégomènes' on 'SmartCssGrid'": "Comment by 'Prolégomènes' on 'SmartCssGrid'||", "Comment by 'Prolégomènes' on 'SocialMacros'": "Comment by 'Prolégomènes' on 'SocialMacros'||", "Comment by 'Prolégomènes' on 'SpectreTypography'": "Comment by 'Prolégomènes' on 'SpectreTypography'||", "Comment by 'Prolégomènes' on 'StickyNotes'": "Comment by 'Prolégomènes' on 'StickyNotes'||", "Comment by 'Prolégomènes' on 'TableOfContents'": "Comment by 'Prolégomènes' on 'TableOfContents'||", "Comment by 'Prolégomènes' on 'Tooltips'": "Comment by 'Prolégomènes' on 'Tooltips'||", "Comment by 'Prolégomènes' on 'Vis'": "Comment by 'Prolégomènes' on 'Vis'||", "Comment ça marche": "Comment ça marche|Comment ça marche|Divers", "Comment cacher la Sidebar au démarrage ?": "Comment cacher la Sidebar au démarrage ?|Comment cacher la SideBar au démarrage ?|Q&R", "Comment est réalisé l'habillage du titre des tiddlers": "Comment est réalisé l'habillage du titre des tiddlers|Comment est réalisé l'habillage du titre des tiddlers|FAQ", "Comment Fixer la taille de la barre de recherche": "Comment Fixer la taille de la barre de recherche|Comment Fixer la taille de la barre de recherche|Q&R", "Comment gérer une interface sans aucune barre de menus": "Comment gérer une interface sans aucune barre de menus|Comment gérer une interface sans aucune barre de menus|Divers", "Comment Modifier la couleur standard des tags": "Comment Modifier la couleur standard des tags|Comment Modifier la couleur standard des tags|Q&R", "Comment numéroter la liste de la TableOfContents ?": "Comment numéroter la liste de la TableOfContents ?|Comment numéroter la liste de la Table des Matières ?|Q&R", "Complete TOC recursive pair of macros": "Complete TOC recursive pair of macros|Complete TOC recursive pair of macros|TOCs", "Compter les classes d’éléments d’un tiddler": "Compter les classes d’éléments d’un tiddler|Compter les classes d’éléments d’un tiddler|Macros+Js", "Concepts": "Concepts|Concepts|Divers", "CondSum": "CondSum|Champs rendus visibles sous condition|Templates", "CondSumDoc": "CondSumDoc|Documentation|CondSum", "Console Node.Js sous Windows": "Console Node.Js sous Windows|Console Node.Js sous Windows|NodeJs", "Contact Management": "Contact Management|Contact Management|FilterExo2", "ContactFormspree": "ContactFormspree|Contact|Formspree", "Contacts (Ooktech)": "Contacts (Ooktech)||Sources", "ContactsDoc": "ContactsDoc|Documentation|ContactsList", "ContactsList": "ContactsList|Fiches Contacts (Fork)|Applications", "Contenu - Sommaire": "Contenu - Sommaire|Contenu et sommaire|$:/TiddlyLearn", "Contenu de la SideBar": "Contenu de la SideBar|Contenu de la SideBar|Divers", "Contexte": "Contexte|Contexte|Divers $:/tags/TiddlerInfo", "Contribuer": "Contribuer|Contribuer|$:/TiddlyLearn", "Contributeurs TiddlyWiki": "Contributeurs TiddlyWiki|Contributeurs TiddlyWiki|Divers", "Contrôles": "Contrôles||", "Conversion de texte vers HTML": "Conversion de texte vers HTML|Conversion de texte vers HTML|Sources", "Convertisseur Hexadécimal (HEX) / Décimal (RGB)": "Convertisseur Hexadécimal (HEX) / Décimal (RGB)|Un Convertisseur Hexadécimal (HEX) / Décimal (RGB)|Couleurs", "Corail": "Corail|Corail|BackColor coral", "Core Variables": "Core Variables|Variables du noyau|Variables", "Couleur du texte et couleur du fond": "Couleur du texte et couleur du fond|Couleur du texte et couleur du fond|Couleurs", "Couleurs": "Couleurs|Couleurs|TableOfContents", "couleurs": "couleurs||", "Couleurs nommées (en liste)": "Couleurs nommées (en liste)|Couleurs nommées en liste|Couleurs", "Couleurs nommées (liste courte)": "Couleurs nommées (liste courte)|Couleurs nommées (liste courte)|Couleurs", "Couleurs nommées, Hexa-Décimales et Décimales": "Couleurs nommées, Hexa-Décimales et Décimales|Liste des Couleurs nommées, Hexa-Décimales et Décimales|Couleurs", "Couleurs principales": "Couleurs principales|Étude sur le fonctionnement des palettes|PaletteEmpty", "CouleursDoc": "CouleursDoc|Documentation Couleurs|Couleurs", "Cramoisi": "Cramoisi|Cramoisi|BackColor crimson", "Create New Tiddler and TextReference in Tags": "Create New Tiddler and TextReference in Tags|Create New Tiddler and TextReference in Tags|Divers", "Creating a splash screen": "Creating a splash screen|Creating a splash screen|Divers", "Creating a template tiddler": "Creating a template tiddler||Templates", "Création automatique de listes ordonnées": "Création automatique de listes ordonnées|Création automatique de listes ordonnées|Lists", "Créer de l'eau en poudre": "Créer de l'eau en poudre||fait", "Créer un nouveau tiddler": "Créer un nouveau tiddler|Créer un nouveau tiddler|Tutoriel", "Créer un serveur web local sous Windows": "Créer un serveur web local sous Windows|créer un serveur web local sous Windows|Sources", "Créer un texte dans un Div": "Créer un texte dans un Div|Créer un texte dans un Div|Macros+Js", "Créer un Tiddler modèle": "Créer un Tiddler modèle|Créer un Tiddler modèle|TranscludeAll", "Créer une classe CSS": "Créer une classe CSS|Créer une classe CSS|CSS", "Créer une table des matières": "Créer une table des matières|Créer une table des matières|Tutoriel", "Crypter TiddlyWiki": "Crypter TiddlyWiki|Crypter TiddlyWiki|Encryption", "CSS": "CSS|CSS|TableOfContents", "CSS Construction Set for TiddlyWiki 5": "CSS Construction Set for TiddlyWiki 5||Sources", "CSS Grid Layout": "CSS Grid Layout|CSS Grid Layout|Sources", "CSS ombre portée sur les bords de tiddler": "CSS ombre portée sur les bords de tiddler|CSS ombre portée sur les bords de tiddler|CSS", "CSS Properties": "CSS Properties|Propriétés CSS (dictionnaire)|Builtin", "CSS supplémentaires via le control panel": "CSS supplémentaires via le control panel||Sources", "CSS Thème Vanilla Décortiqué": "CSS Thème Vanilla Décortiqué|CSS Thème Vanilla Décortiqué|Task CSS", "CSS3 Breadcrumb Navigation": "CSS3 Breadcrumb Navigation|Source CSS3 Breadcrumb Navigation|Ariane", "CSSD": "CSSD|Classes CSS inbuilt détaillées|CSS", "CssDiv": "CssDiv|Autres CSS|CSS", "CssGridDemo1": "CssGridDemo1|Smart CSS Grid Démo 1|SmartCssGrid", "CssGridDemo2": "CssGridDemo2|Smart CSS Grid Démo 2|SmartCssGrid", "CssGridDemo3": "CssGridDemo3|Smart CSS Grid Démo 3|SmartCssGrid", "CssGridDemo4": "CssGridDemo4|Smart CSS Grid Démo 4|SmartCssGrid", "cssScrollBar": "cssScrollBar|CSS Scroll bar|CssDiv", "cssScrollBarTest": "cssScrollBarTest|Test ScrollBar|WikiText", "Cupcake Ipsum": "Cupcake Ipsum||Sources", "Current Tiddler": "Current Tiddler|Tiddler courant|TiddlyWiki", "Customising TiddlyWiki Tables": "Customising TiddlyWiki Tables|Personnaliser les tableaux TiddlyWiki|Tableurs", "CustomTags": "CustomTags|Custom Tags|Tags baz bar foo", "Cyan": "Cyan|Cyan|BackColor cyan", "Cyan-Foncé": "Cyan-Foncé|Cyan Foncé|BackColor darkcyan", "D": "D||SansSel Repas Végétarien", "d3trees (preview)": "d3trees (preview)|d3trees (preview)|Générateurs", "DataBase": "DataBase||", "DataDictionary": "DataDictionary|Utliser un tiddler Data dictionary comme base de donnée|Dictionnaire", "DataDictionaryDoc": "DataDictionaryDoc|Documentation BD avecData Dictionary|DataDictionary", "datatable.js": "datatable.js||$:/tags/RawMarkup", "DataTiddlers": "DataTiddlers|Tiddlers Data|Divers", "date Macro": "date Macro|Mcro date évoluée|Dates $:/tags/Macro", "Date Macro Demo (inmysocks)": "Date Macro Demo (inmysocks)|Démonstration|DateMacro", "Date Macro Demo (kixam)": "Date Macro Demo (kixam)|Démonstration|DatePicker", "DateFormat": "DateFormat|Format des dates|Dates", "DateMacro": "DateMacro|La Macro Date|Dates", "DatePicker": "DatePicker|Plugin Date Picker|Dates", "Dates": "Dates|Dates|TableOfContents", "DatesDoc": "DatesDoc|Documentation|Dates", "dec19": "dec19|December|tabcal19", "dec20": "dec20|December|tabcal20", "dec21": "dec21|December|tabcal21", "dec22": "dec22|December|tabcal22", "dec23": "dec23|December|tabcal23", "dec24": "dec24|December|tabcal24", "dec25": "dec25|December|tabcal25", "Décalage des données à gauche ou à droite": "Décalage des données à gauche ou à droite|Décalage des données à gauche ou à droite|GridLexHelpers", "December": "December||tabcal", "Définir le mois de l'année en français": "Définir le mois de l'année en français|Définir le mois de l'année en français|Macros+Js", "Définir une macro en wikitext": "Définir une macro en wikitext|Définir une macro en wikitext|Macros", "Définir une variable dans TW5": "Définir une variable dans TW5|Définir une variable dans TW5|Variables", "Démo Graph LR": "Démo Graph LR|Démo Graph LR|Mermaid", "Démo Graph TD": "Démo Graph TD|Démo Graph TD|Mermaid", "Demo Macro": "Demo Macro|Macro de démonstration|StartupAction $:/tags/Macro", "Dénombrer Tags et System Tags dans l'onglet More": "Dénombrer Tags et System Tags dans l'onglet More|Comment dénombrer Tags et System Tags dans l'onglet More|Q&R", "Désactiver un plugin": "Désactiver un plugin|Désactiver un plugin|Applications", "dessert": "dessert||FilterBDExo1 receipe orange apple tested", "Détecter le navigateur du périphérique": "Détecter le navigateur du périphérique|Détecter le navigateur du périphérique|Macros+Js", "Deux manières d'ecrire dans un champ": "Deux manières d'ecrire dans un champ||Champs", "Developper.Mozilla.org": "Developper.Mozilla.org||Sources", "Devenir un pro de la programmation": "Devenir un pro de la programmation||[[en cours]]", "dico": "dico|Afficher une information d'un tiddler data|Dictionnaire", "Dictionnaire": "Dictionnaire|Dictionnaire|TableOfContents", "DictionnaireDoc": "DictionnaireDoc|Documentation Dictionnaire|Dictionnaire", "Différences entre Plugin et Macro": "Différences entre Plugin et Macro|Diférences entre Plugin et Macro|Macros", "Différences entre Widgets et Macros": "Différences entre Widgets et Macros|Différences entre Widgets et Macros|Widgets Macros", "Divers": "Divers|Divers|TableOfContents", "Documentation Développeur": "Documentation Développeur||Sources", "Documentation Macros": "Documentation Macros|Documentation sur les macros TiddlyWiki|Macros", "Dossier Filtres": "Dossier Filtres|👉 Lire tout ce dossier|Filtres", "Draft of 'Test/more-page-actions' by Prolégomènes": "Draft of 'Test/more-page-actions' by Prolégomènes||", "DraggableWidget": "DraggableWidget|Widget Draggable|Widgets", "drink": "drink||FilterBDExo1 receipe orange untested", "Dropdown Menu": "Dropdown Menu|Dropdown Menu|Spectre", "DropzoneWidget": "DropzoneWidget|Widget Dropzone|Widgets", "dtable": "dtable|Tableaux Dynamiques|Tableurs", "dtableDoc": "dtableDoc|Documentation|dtable", "Du langage machine au langage de programmation": "Du langage machine au langage de programmation|Du langage machine au langage de programmation|EloquentJs", "dumpvariables Macro": "dumpvariables Macro|Macro dumpvariables|Variables", "Dynamic Style": "Dynamic Style||Sources", "Dynamisez vos sites web avec JavaScript": "Dynamisez vos sites web avec JavaScript||Sources", "E": "E||SansSel Repas Végétarien", "each Operator": "each Operator|Opérateur each|FilterOperators [[Group Operators]]", "ECharts": "ECharts|ECharts|Applications", "Echarts Démo 27": "Echarts Démo 27|Echarts Démo 27|ECharts", "echarts.js": "echarts.js|echarts.js|ECharts $:/tags/RawMarkup", "EChartsDoc": "EChartsDoc|ECharts Documentation|ECharts", "ECMAScript-releases.png": "ECMAScript-releases.png||", "Écrire dans un tiddler dictionnaire": "Écrire dans un tiddler dictionnaire|Écrire dans un tiddler dictionnaire|Dictionnaire", "Écrire un commentaire dans un Tiddler": "Écrire un commentaire dans un Tiddler|Écrire un commentaire dans un Tiddler|Divers", "Editable-Table": "Editable-Table|Un exemple de table éditable en mode visu|TabsV", "Éditer les champs du tiddler courant": "Éditer les champs du tiddler courant|Éditer les champs du tiddler courant|Champs", "Éditeur": "Éditeur|Éditeur(s)|TableOfContents", "Éditeur de texte Notepad Plus": "Éditeur de texte Notepad Plus||Sources", "Éditeur de texte Sublime Text": "Éditeur de texte Sublime Text||Sources", "EloquentJs": "EloquentJs|Eloquent JavaScript|JavaScript", "Embedding a Tiddler from another TiddlyWiki": "Embedding a Tiddler from another TiddlyWiki|Embedding a Tiddler from another TiddlyWiki|Divers", "Embedding PDF inside Tiddler": "Embedding PDF inside Tiddler|Embedding PDF inside Tiddler|Divers", "en cours": "en cours|Tiddler en cours|tags", "En cours. À étudier": "En cours. À étudier|En cours. À étudier|Divers", "En cours. À étudier (2)": "En cours. À étudier (2)|En cours. À étudier (2)|Divers", "Encadré rouge": "Encadré rouge|Encadré rouge|Helpers", "Encodeur et décodeur Base64": "Encodeur et décodeur Base64||Sources", "Encours": "Encours||Done Task", "Encours2": "Encours2|<i class=\"icon icon-flag\" alt=\"À faire\" title=\"À faire\"></i>|$:/tags/SideBar TaskCatLists", "encrypt": "encrypt|Encrypter un tiddler|Encryption", "Encrypt-Tiddler": "Encrypt-Tiddler|Encrypt-Tiddler|Plugins", "Encryption": "Encryption|Encryption|TableOfContents", "Engineering Example": "Engineering Example|Exemple Résultat Data Engineering|Mathcell", "Enhanced store.php": "Enhanced store.php||Sources", "Enregistrer les données": "Enregistrer les données|Enregistrer les données|Tutoriel", "EnTêteDemosMacrosJs": "EnTêteDemosMacrosJs||", "Envoyer un mail depuis TiddlyWiki": "Envoyer un mail depuis TiddlyWiki|Envoyer un mail depuis TiddlyWiki|CSS", "error": "error|Erreur|JsEnLigne", "Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg": "Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg||tabcal25", "eval-Configure": "eval-Configure||", "Eval-Tester/Expression": "Eval-Tester/Expression||", "eval.js": "eval.js|Module eval.js|Macros+Js", "Évitez les plantages JavaScript": "Évitez les plantages JavaScript|Évitez les plantages JavaScript|Macros+Js", "evolution.jpg": "evolution.jpg||", "Example New Tiddler Button View Template": "Example New Tiddler Button View Template|Action SetField - Le bouton|ActionSetField", "Example notes 1": "Example notes 1|Premier exemple de Note|StickyNotes", "Example notes 2": "Example notes 2|Second exemple de Note|StickyNotes", "Excel Like Table": "Excel Like Table|Exemple façon tableur|Mathcell", "Exclure la date et les tags à l'impression d'un tiddler": "Exclure la date et les tags à l'impression d'un tiddler|Exclure la date et les tags à l'impression d'un tiddler|CSS", "Executing a Program": "Executing a Program|Exécuter un programme|Up&Going", "Exemple": "Exemple|Exemple TiddlerFooter|TFooter Info", "Exemple 1": "Exemple 1|Fermeture de la SideBar sur clic d'une ligne de Menu|SideBarPlusExamples", "Exemple 2": "Exemple 2|Le Titre du wiki est remplacé par le titre du tiddler |SideBarPlusExamples", "Exemple 3": "Exemple 3|Seul le tiddler cliqué demeure dans la StoryList|SideBarPlusExamples", "Exemple 4": "Exemple 4|Assigner différentes actions aux liens|SideBarPlusExamples", "Exemple de Transclusion Globale": "Exemple de Transclusion Globale|Exemple de Transclusion Globale|TranscludeAll", "Exemple TOC avec barre de défilement": "Exemple TOC avec barre de défilement|Exemple TOC avec barre de défilement|ScrollableTableOfContents", "Exemple2": "Exemple2|champ text affiché sous conditions|RevealWidget", "Exemples d'utilisation de la macro Eval": "Exemples d'utilisation de la macro Eval|Exemples d'utilisation de la macro Eval|Macros+Js", "Explorer TW5": "Explorer TW5||Sources", "Exporting A Static Blog": "Exporting A Static Blog||", "Expressions": "Expressions|Expressions|Up&Going", "Extended Control Panel Demo": "Extended Control Panel Demo||Sources", "ExtextSupport": "ExtextSupport|external text Support|Transclusion", "Extract": "Extract|Extraction de données|Macros", "ExtractDoc": "ExtractDoc|Documentation|Extract", "ExtractExampleResult": "ExtractExampleResult|Résultat Exemple Macro Extract|Extract", "ExtractExampleTest": "ExtractExampleTest|Test Exemple Macro Extract|Extract", "F": "F||SansSel Repas Végétarien", "Fabriquer un questionnaire Quizz": "Fabriquer un questionnaire Quizz||Sources", "Faire un lien avec un bouton": "Faire un lien avec un bouton|Faire un lien avec un bouton|Helpers", "fait": "fait|Tiddler fait|tags", "FAQDoc": "FAQDoc|Documentation Questions & Réponses|Q&R", "Fast view of tiddlers in the story": "Fast view of tiddlers in the story|Vue rapide des tiddlers dans la StoryRiver|Divers", "feb19": "feb19|February|tabcal19", "feb20": "feb20|February|tabcal20", "feb21": "feb21|February|tabcal21", "feb22": "feb22|February|tabcal22", "feb23": "feb23|February|tabcal23", "feb24": "feb24|February|tabcal24", "feb25": "feb25|February|tabcal25", "February": "February||tabcal", "Fenêtre modale": "Fenêtre modale|Exemple Message Modal|MessageModal", "Feuilles de style": "Feuilles de style||Sources", "Feuilles de style des tableaux HTML": "Feuilles de style des tableaux HTML|Feuilles de style des tableaux HTML|CSS", "Fiche contact (Exemple)": "Fiche contact (Exemple)|Fiche Contact exemple|ContactsList Contacts", "FicheA": "FicheA|Fiche Formateur A|VariableDataDictionary", "FicheJoueur-John": "FicheJoueur-John|la fiche Joueur John|BDDataDictionary", "FieldHide": "FieldHide|Cacher un champ dans un template d'édition|Champs", "FieldHideDoc": "FieldHideDoc|Documentation cacher un champ|FieldHide", "FieldManglerWidget": "FieldManglerWidget|Widget FieldMangler|Widgets", "FieldOptions": "FieldOptions|Macro getFieldOptions|$:/tags/Macro FieldOptionsMacro", "FieldOptionsMacro": "FieldOptionsMacro|Macro Obtenir la liste de Tiddlers possédants un tag nommé|Macros", "FieldOptionsResult": "FieldOptionsResult|Affichage Macro getFieldOptions|FieldOptionsMacro", "Fields as tags": "Fields as tags||Sources", "FieldsTable": "FieldsTable|create a table, one tiddler per row, and to edit the content.|Tableurs", "FieldsTableDoc": "FieldsTableDoc|Documentation Fields Table|FieldsTable", "FieldValue": "FieldValue|Macro getFieldValue|FieldValueMacro $:/tags/Macro", "FieldValueMacro": "FieldValueMacro|Macro Obtenir la (les) valeur(s) d'un champ|Macros", "FieldValueResult": "FieldValueResult|Affichage Macro getFieldvalue|FieldValueMacro", "Fil d'Ariane": "Fil d'Ariane|Documentation|Ariane", "FilterBDExo1": "FilterBDExo1|La Base de Données|FilterExo1", "FilterBDExo2": "FilterBDExo2|La Base de Données|FilterExo2", "FilterExo": "FilterExo|Filtres complexes|Filtres", "FilterExo1": "FilterExo1|Filtres complexes Premier exemple|FilterExo", "FilterExo2": "FilterExo2|Filtres complexes Deuxième exemple|FilterExo", "Filtering": "Filtering|Opérations logiques utilisant les filtres ($list)|Filtres", "Filtering using field content": "Filtering using field content|Filtering using field content|Filtres", "FilteringDoc": "FilteringDoc|Documentation|Filtering", "FilteringNotations": "FilteringNotations|Notations|Filtering", "FilterOperators": "FilterOperators|Les Opérateurs de filtre|Filtres", "FilterOperatorsDoc": "FilterOperatorsDoc|Introduction|FilterOperators", "Filtre par Exclusion": "Filtre par Exclusion|Filtre par Exclusion|FiltresSimples", "Filtre sur un Champ": "Filtre sur un Champ|Filtre sur un Champ|FiltresSimples", "Filtre sur un champ sans préfixe": "Filtre sur un champ sans préfixe|Filtre sur un champ sans préfixe|FiltresSimples", "Filtre sur un Tag": "Filtre sur un Tag|Filtre sur un Tag|FiltresSimples", "Filtre sur un Titre": "Filtre sur un Titre|Filtre sur un Titre|FiltresSimples", "Filtres": "Filtres|Filtres|TableOfContents", "Filtres Simples - Introduction": "Filtres Simples - Introduction|Filtres Simples - Introduction|FiltresSimples", "FiltresCategories": "FiltresCategories|Liste avec rupture sur des catégories|FilterExo", "FiltresCategoriesCode": "FiltresCategoriesCode|Code Filtres/Rupture sur catégories|FiltresCategories", "FiltresCategoriesDoc": "FiltresCategoriesDoc|Documentation Filtres/Rupture sur catégories|FiltresCategories", "FiltresComb": "FiltresComb|Combiner les filtres|FiltresIntro", "FiltresDoc": "FiltresDoc|Qu'est-ce qu'un filtre ?|Filtres", "FiltresImg": "FiltresImg|Les images utilisées dans la rubrique Filtres|Filtres", "FiltresIntro": "FiltresIntro|Différents filtres pour différents besoins|Filtres", "FiltresSimples": "FiltresSimples|Filtres simples|Filtres", "floating-images": "floating-images|Positionner vos images|Images", "floating-imagesDoc": "floating-imagesDoc|Documentation|floating-images", "Fonctions auto-appelées": "Fonctions auto-appelées|Fonctions auto-appelées|JavaScript", "Font Awesome": "Font Awesome||Sources", "Font Awesome icons": "Font Awesome icons|liste des icônes FontAwsome|Divers", "Font Space": "Font Space|Font Space|Sources", "FootNotes": "FootNotes|Prise de Notes en bas de page (Internes)|Notes", "FootNotesDoc": "FootNotesDoc|Documentation Prise de Notes en bas de page (Internes)|FootNotes", "FootNotesExt": "FootNotesExt|Prise de Notes en bas de page (Externes)|Notes", "FootNotesExtDoc": "FootNotesExtDoc|Documentation Prise de Notes en bas de page (Externes)|FootNotesExt", "Format Date dans TW5": "Format Date dans TW5|Format Date dans TW5|Calendriers", "Formater une liste de résultats en table avec CSS": "Formater une liste de résultats en table avec CSS|Formater une liste de résultats en table avec CSS|Lists", "Formateur": "Formateur|Tiddler intermédiaire Formateur|VariableDataDictionary", "Formatting List Results as Tables (no CSS)": "Formatting List Results as Tables (no CSS)|Liste de résultat en table (sans CSS).|Lists", "Formatting List Results as Tables with CSS - Specified Columns Methods": "Formatting List Results as Tables with CSS - Specified Columns Methods|Liste de résultat en table (avec CSS). Méthode des colonnes spécifiées|Lists", "Formatting List Results as Tables with CSS - Variable Column Method": "Formatting List Results as Tables with CSS - Variable Column Method|Liste de résultat en table (avec CSS). Méthode des colonnes variables.|Lists", "Forme et couleurs des onglets du panneau de contrôle": "Forme et couleurs des onglets du panneau de contrôle|Comment choisir forme et couleurs des onglets du panneau de contrôle|Q&R", "Forms": "Forms|Forms|Spectre", "Formspree": "Formspree|Formspree pour la gestion des contacts par mail|Notes", "FormspreeDoc": "FormspreeDoc|Documentation Formspree|Formspree", "Formula": "Formula|Plugin Formula|Tableurs", "FormulaExpenses": "FormulaExpenses||Formula", "FormulaExpression": "FormulaExpression||Formula Syntax", "FormulaOperand": "FormulaOperand||Formula", "FormulaOperandDoc": "FormulaOperandDoc||FormulaOperand Syntax", "FormulaOperators": "FormulaOperators||Formula Reference", "FormulaPluginDoc": "FormulaPluginDoc|Introduction Formula Plugin|Formula", "FormulaResult Button": "FormulaResult Button|Le bouton pour passer du mode résultat au mode entrée des formules.|Mathcell", "Formulas in WikiText": "Formulas in WikiText||Formula", "FormulaSpreadSheet": "FormulaSpreadSheet||Formula", "FormulaSyntax": "FormulaSyntax||Formula Syntax", "FormulaTabulator": "FormulaTabulator|Démo Formula Tabulator|Formula", "FormulaTabulatorBadger": "FormulaTabulatorBadger||FormulaTabulator Expense Data", "FormulaTabulatorHairCut": "FormulaTabulatorHairCut||FormulaTabulator Expense Data", "FormulaTabulatorRecap": "FormulaTabulatorRecap||FormulaTabulator Demo", "FormulaTabulatorSquirrel": "FormulaTabulatorSquirrel||FormulaTabulator Expense Data", "Forum TiddlyWiki en Français": "Forum TiddlyWiki en Français||Sources", "FrameWork": "FrameWork|FrameWork|JavaScript", "Framework": "Framework|Framework|TableOfContents", "Framework Spectre": "Framework Spectre|Spectre|Sources", "Fruits": "Fruits|Démo Fruits|ONP", "ftlist plugin": "ftlist plugin|`F`ragments of `T`ext plugin|Notes", "Fuchsia-Magenta": "Fuchsia-Magenta|Fuchia ou Magenta|BackColor fuchsia", "full": "full|Template Full|TranscludeAll", "Full Search Text Plugin": "Full Search Text Plugin||Sources", "full-enhanced": "full-enhanced|Template Full Enhanced|TranscludeAll", "Function Call": "Function Call||FormulaOperand Syntax", "G": "G||Repas Viande Complet", "G r a p h e m i c a": "G r a p h e m i c a||Sources", "G-Comments": "G-Comments||Sources", "Générateur de Favicon": "Générateur de Favicon||Sources", "Générateurs": "Générateurs|Générateurs|TableOfContents", "Gérer la table des matières": "Gérer la table des matières|Gérer la table des matières|TOCs", "Gérer le contenu des Tiddlers à impression": "Gérer le contenu des Tiddlers à impression|Gérer le contenu des Tiddlers à impression|CSS", "Gérer les sauts de page à l'impression d'un Tiddler": "Gérer les sauts de page à l'impression d'un Tiddler|Gérer les sauts de page à l'impression d'un Tiddler|CSS", "Gérer rapidement les liens externes d'images": "Gérer rapidement les liens externes d'images||Sources", "Gérer une BD Group Classes Students": "Gérer une BD Group Classes Students||Sources", "Gestion de la taille des polices": "Gestion de la taille des polices|Gestion de la taille des polices|Plugins", "Gestion des dates de création et de modification des tiddlers": "Gestion des dates de création et de modification des tiddlers|Gestion des dates de création et de modification des tiddlers|Modified", "Gestion du wikitext dans des balises HTML": "Gestion du wikitext dans des balises HTML|Gestion du wikitext dans des balises HTML|GridLex", "Gestionnaires de diagrammes": "Gestionnaires de diagrammes||Sources", "get real tiddler title in edit/draft mode": "get real tiddler title in edit/draft mode|Conserver le nom réel d'un tiddler en mode brouillon|GetOperator", "GetOperator": "GetOperator|Opérateur Get|FilterOperators", "GitHub Octicons": "GitHub Octicons||Sources", "Google sucks but it is everywhere": "Google sucks but it is everywhere|Google sucks but it is everywhere|Divers", "Graph": "Graph|Exemple de graph|Mathcell", "Graph2": "Graph2|Un second exemple de graph|Mathcell", "Grid": "Grid|Exemple de grille|Mathcell", "GridLex": "GridLex|GridLex|Framework", "GridLex et Media queries": "GridLex et Media queries|GridLex et Media queries|GridLexHelpers", "gridlex.png": "gridlex.png||", "GridLex1": "GridLex1|GridLex Démo 1|GridLex", "GridLex2": "GridLex2|GridLex Démo 2|$:/tags/Tekanboard GridLex", "GridLex3": "GridLex3|GridLex Démo 3|GridLex", "GridLexAuto": "GridLexAuto|GridLex Colonnes automatiques|GridLex", "GridLexDoc": "GridLexDoc|Documentation GridLex|GridLex", "GridLexen PopUp (test)": "GridLexen PopUp (test)|GridLexen PopUp (test)|GridLex", "GridLexHeader": "GridLexHeader|GridLex Header|GridLex", "GridLexHelpers": "GridLexHelpers|Documentation GridLex Helpers|GridLex", "GridLexPrecise": "GridLexPrecise|GridLex Colonnes Précises|GridLex", "GridLexSimple": "GridLexSimple|GridLex Colonnes Simples|GridLex", "Grille 1 colonne": "Grille 1 colonne||GridLexSimple", "Grille 1 colonne 10, une colonne 2": "Grille 1 colonne 10, une colonne 2||GridLexPrecise", "Grille 1 colonne 11 une colonne 1": "Grille 1 colonne 11 une colonne 1|Grille 1 colonne 11 une colonne 1|GridLexPrecise", "Grille 1 colonne 9, une colonne 3": "Grille 1 colonne 9, une colonne 3||GridLexPrecise", "Grille 1 colonne auto": "Grille 1 colonne auto||GridLexAuto", "Grille 2 colonnes": "Grille 2 colonnes||GridLexSimple", "Grille 3 colonnes": "Grille 3 colonnes||GridLexSimple", "Grille 4 colonnes": "Grille 4 colonnes||GridLexSimple", "Grille 4 colonnes auto": "Grille 4 colonnes auto||GridLexAuto", "Grille 5 colonnes": "Grille 5 colonnes||GridLexSimple", "Grille 6 colonnes": "Grille 6 colonnes||GridLexSimple", "Grille Une colonne 12": "Grille Une colonne 12|Grille Une colonne 12|GridLexPrecise", "Grilles et classes associées": "Grilles et classes associées|Grilles et classes associées|GridLexHelpers", "Gris": "Gris|Gris|BackColor gray", "Gris-Ardoise-Foncé": "Gris-Ardoise-Foncé|Gris Ardoise Foncé|BackColor darkslategray", "Gris-Foncé": "Gris-Foncé|Gris Foncé|BackColor darkgray", "Groupe 1": "Groupe 1|Groupe 1|ContactsList ContactGroup", "Groupe 2": "Groupe 2|Groupe 2|ContactsList ContactGroup", "Groupe 3": "Groupe 3||ContactGroup", "Groupe1": "Groupe1|Groupe1|SelectBox ContactGroupe", "Groupe2": "Groupe2|Groupe2|SelectBox ContactGroupe Contact", "GSD5": "GSD5||Sources", "GSD5Doc": "GSD5Doc|Documentation Getting Stuff Done pour TW5|", "GTD pour TiddlyWiki": "GTD pour TiddlyWiki||Sources", "Guide d'introduction à TiddlyWiki": "Guide d'introduction à TiddlyWiki||Sources", "H": "H||Repas Viande Complet", "Habiller les liens externes": "Habiller les liens externes|Habiller les liens externes|Applications", "Hard Linebreaks in WikiText": "Hard Linebreaks in WikiText|Fins de Ligne|WikiText", "has Operator": "has Operator|Opérateur has|HasOperator", "has1": "has1|Rendu opérateur has Exemple 1|HasOperator TagHas", "has2": "has2|Rendu opérateur has Exemple 2|HasOperator TagHas", "has3": "has3|Rendu opérateur has Exemple 1|HasOperator TagHas", "HasOperator": "HasOperator|Opérateur Has|FilterOperators", "Hello World": "Hello World|Exemple HelloWorld|Macros+Js", "Hello World2": "Hello World2||", "HelloThere": "HelloThere||", "HelloThumbnail - Gentle Guide": "HelloThumbnail - Gentle Guide|Le tiddler intermédiaire|Vignettes HelloThumbnail", "HelloWorld.js": "HelloWorld.js|Module HelloWorld|Macros+Js", "Helpers": "Helpers|Helpers|CSS", "HelpersDoc": "HelpersDoc|Documentation|Helpers", "Hero": "Hero|Hero|Spectre", "Hide/Show Admin control (Exemple)": "Hide/Show Admin control (Exemple)||", "hiding tags from the tags list": "hiding tags from the tags list|Cacher les boutons Tags|Tags Hide [[hide this]] Solutions $:/tags/Tagging", "History of TiddlyWiki": "History of TiddlyWiki|History of TiddlyWiki|TiddlyWiki", "HistoryMechanism": "HistoryMechanism|Mécanisme d'historique|TiddlyWiki", "Home Page Adrian Morosanu (morosanuae)": "Home Page Adrian Morosanu (morosanuae)||Sources", "Home Page Elmiger Thomas": "Home Page Elmiger Thomas||Sources", "Home Page inmysocks Jed carty": "Home Page inmysocks Jed carty||Sources", "Home Page Mario Pietsch": "Home Page Mario Pietsch||Sources", "Home Page Mat von Twaddle": "Home Page Mat von Twaddle||Sources", "Horizontal forms": "Horizontal forms|Horizontal forms|Spectre", "Hosting Advice": "Hosting Advice||Sources", "How can one adapt arbitrary JavaScript libraries to work with TiddlyWiki?": "How can one adapt arbitrary JavaScript libraries to work with TiddlyWiki?|Librairies JavaScript tierces|JavaScript", "How to apply custom styles by tag": "How to apply custom styles by tag|Des styles personnalisés selon les tags|Tags", "How to change the sort order of sub-branches in a TOC macro": "How to change the sort order of sub-branches in a TOC macro|Comment modifier l'ordre de tri des sous-branches dans une macro TOC|Macros", "How to make a button like the 'New Here' button": "How to make a button like the 'New Here' button|Créer un bouton \"Nouveau Tiddler\"|ActionSetField", "How to make TW5 readonly and many more tips": "How to make TW5 readonly and many more tips||Sources", "How to qualify current tiddler": "How to qualify current tiddler|How to qualify current tiddler|Macros", "HTML": "HTML|HTML|TableOfContents", "html": "html||CSSD", "html button": "html button||CSSD", "HTML Espace insécable": "HTML Espace insécable|HTML Espace insécable|HTML", "HTML in WikiText": "HTML in WikiText|HTML dans le WikiTexte|WikiText", "HTML-CSS TableStyler": "HTML-CSS TableStyler||Sources", "HTML5 : structure globale du document": "HTML5 : structure globale du document|HTML5 : structure globale du document|Divers", "HTML5, Javascript et CSS3 expériments": "HTML5, Javascript et CSS3 expériments||Sources", "I": "I||Repas Viande Complet", "IBox": "IBox||Sources", "Iceberg": "Iceberg|IceBerg|Circular", "Icecream": "Icecream||FilterBDExo1", "Icon image retaillée": "Icon image retaillée|Icon image retaillée|Images", "icon8-business-contact": "icon8-business-contact||", "Icones excel, word, ppt, pdf, zip, dossier": "Icones excel, word, ppt, pdf, zip, dossier|Icones excel, word, ppt, pdf, zip, dossier|Helpers", "Image as a Card": "Image as a Card||", "Images": "Images|Images|TableOfContents", "ImageWidget": "ImageWidget|Widget Image|Widgets", "img_avatar1.png": "img_avatar1.png||avatar", "img_avatar2.png": "img_avatar2.png||avatar", "img_avatar3.png": "img_avatar3.png||avatar", "img_avatar4.png": "img_avatar4.png||avatar", "img_avatar5.png": "img_avatar5.png||avatar", "img_avatar6.png": "img_avatar6.png||avatar", "ImgBird": "ImgBird||", "Importer ce wiki": "Importer ce wiki|Importer ce wiki|$:/TiddlyLearn", "InfoPanel": "InfoPanel|Panneau d'information|TiddlyWiki", "Inline Examples": "Inline Examples|Exemple Résultat Champs data|Mathcell", "innoQ": "innoQ||Sources", "input.tc-titlebar.tc-edit-texteditor Class Override": "input.tc-titlebar.tc-edit-texteditor Class Override||", "Insérer la date de dernière modification dans une bannière": "Insérer la date de dernière modification dans une bannière|Insérer la date de dernière modification dans une bannière|Filtres", "Inside TiddlyWiki : The missing manual": "Inside TiddlyWiki : The missing manual||Sources", "Instruction Tiddlers": "Instruction Tiddlers|Tiddlers d'apprentissage|TiddlyWiki", "Intense": "Intense|IntenseDebate Comment system|Notes", "IntenseDoc": "IntenseDoc|Documentation IntenseDebate|Intense", "Introduction à TiddlyWiki": "Introduction à TiddlyWiki||Sources", "Introduction au JavaScript": "Introduction au JavaScript|Introduction au JavaScript|TutoJs", "Invoke": "Invoke|Plugin Invoke Action|Plugins", "InvokeDoc": "InvokeDoc|Documentation|Invoke", "J": "J||Repas Végétarien Complet", "jan19": "jan19|January|tabcal19", "jan20": "jan20|January|tabcal20", "jan21": "jan21|January|tabcal21", "jan22": "jan22|January|tabcal22", "jan23": "jan23|January|tabcal23", "jan24": "jan24|January|tabcal24", "jan25": "jan25|January|tabcal25", "January": "January||tabcal", "Jaune": "Jaune|Jaune|BackColor yellow", "JavaScript": "JavaScript|JavaScript|TableOfContents", "JavaScript et le DOM": "JavaScript et le DOM||Sources", "JavaScript Macro": "JavaScript Macro|Macros JvaScript|JavaScript", "JavaScript Macros": "JavaScript Macros|Les macros en JavaScript|Macros", "JavaScript Pour TiddlyWiki": "JavaScript Pour TiddlyWiki||", "JavaScript.info": "JavaScript.info||Sources", "JavaScriptDoc": "JavaScriptDoc|Introduction au mot clé JavaScript|JavaScript", "JavaScriptRessources": "JavaScriptRessources|Ressources JavaScript|JavaScript", "JD's Things": "JD's Things||Sources", "js-code-001": "js-code-001||", "js-code-002a": "js-code-002a||", "js-code-002b": "js-code-002b||", "js-code-003": "js-code-003||", "js-exports": "js-exports|js-exports|JavaScript", "JsEnLigne": "JsEnLigne|JavaScript en ligne...|JavaScript", "JsEnLigneDoc": "JsEnLigneDoc|Documentation JavaScript en Ligne|JsEnLigne", "Json Editor for TiddlyWiki5": "Json Editor for TiddlyWiki5||Sources", "jul19": "jul19|July|tabcal19", "jul20": "jul20|July|tabcal20", "jul21": "jul21|July|tabcal21", "jul22": "jul22|July|tabcal22", "jul23": "jul23|July|tabcal23", "jul24": "jul24|July|tabcal24", "jul25": "jul25|July|tabcal25", "July": "July||tabcal", "JumpToTop": "JumpToTop|Jump To Top|Templates", "jun19": "jun19|June|tabcal19", "jun20": "jun20|June|tabcal20", "jun21": "jun21|June|tabcal21", "jun22": "jun22|June|tabcal22", "jun23": "jun23|June|tabcal23", "jun24": "jun24|June|tabcal24", "jun25": "jun25|June|tabcal25", "June": "June||tabcal", "Justifier les paragraphes": "Justifier les paragraphes|Justifier les paragraphes|CSS", "K": "K||Repas Végétarien Complet", "Kaki-Foncé": "Kaki-Foncé|Kaki Foncé|BackColor darkkhaki", "Kanban": "Kanban|Le tiddler kanban|Kanban1", "Kanban1": "Kanban1|Un Kanban simple porté par un beau CSS|Applications", "KanbanDoc": "KanbanDoc|Documentation Kanban|Kanban1", "KeepCalmAndLearnJavaScript.jpeg": "KeepCalmAndLearnJavaScript.jpeg||", "Knowledge mapping": "Knowledge mapping||Sources", "Kyle Simpson Up & Going": "Kyle Simpson Up & Going|Kyle Simpson Up & Going|Up&Going", "L": "L||Repas Végétarien Complet", "La Transclusion en WikiText": "La Transclusion en WikiText|La Transclusion en WikiText [EN]|Transclusion", "La transparence de couleur avec RGBa en CSS3": "La transparence de couleur avec RGBa en CSS3|La transparence de couleur avec RGBa en CSS3|Couleurs", "LastModified": "LastModified||$:/tags/ViewTemplate", "Le champ tc-extra": "Le champ tc-extra|Le champ tc-extra|Champs", "Le coin du prof": "Le coin du prof||Sources", "Le filtre random (Tobias Beer)": "Le filtre random (Tobias Beer)|Le filtre random|Filtres", "Le plugin NTSF de JD": "Le plugin NTSF de JD||Sources", "Le Q&R de Tobee Beer": "Le Q&R de Tobee Beer||Sources", "Le système de vérouillage individuel des Tiddlers": "Le système de vérouillage individuel des Tiddlers|Documentation|encrypt", "Le thème Ghostwriter": "Le thème Ghostwriter||Sources", "Le Widget Select": "Le Widget Select|Documentation Widget Select|SelectWidget", "leal-2018": "leal-2018||bibtex-entry", "Leftie": "Leftie||Sources", "Les 10 derniers articles (1/2)": "Les 10 derniers articles (1/2)|Les 10 derniers articles (1/2)|Filtres", "Les 10 derniers articles (2/2)": "Les 10 derniers articles (2/2)|Les 10 derniers articles (2/2)|Filtres", "Les 5 derniers articles": "Les 5 derniers articles|Derniers billets|$:/TiddlyLearn", "Les éléments d'un tableau HTML": "Les éléments d'un tableau HTML|Les éléments d'un tableau HTML|HTML", "Les jours de la semaine en tables": "Les jours de la semaine en tables|Les jours de la semaine en tables|Macros", "Les systèmes de gestion de contenus (CMS)": "Les systèmes de gestion de contenus (CMS)|Les systèmes de gestion de contenus (CMS)|TiddlyWiki", "Les Tags du panneau de contrôle": "Les Tags du panneau de contrôle|Les Tags du panneau de contrôle|systemtags", "Les tags système et leur signification": "Les tags système et leur signification|Les tags système et leur signification|systemtags", "Les Valeurs": "Les Valeurs|Les Valeurs|EloquentJs", "Liberté Égalité Fraternité": "Liberté Égalité Fraternité|Démo Liberté, Égalité, Fraternité|ONP", "LibreNote": "LibreNote||Sources", "Liens internes façon ZoomIn": "Liens internes façon ZoomIn|Liens internes façon ZoomIn|Macros", "LienTiddler": "LienTiddler||Templates $:/tags/ViewTemplate", "Line Graph": "Line Graph|Exemple graphique linéaire|Mathcell", "List Filter avec plusieurs Tags": "List Filter avec plusieurs Tags|List Filter avec plusieurs Tags|Lists", "List filter plus adaptable que list link": "List filter plus adaptable que list link|List filter plus adaptable que list link|Lists", "List of logical statements": "List of logical statements|List of logical statements|Filtering", "Liste Adhérents": "Liste Adhérents|Liste Adhérents|Adhérents", "Liste de champs possédant une valeur identique": "Liste de champs possédant une valeur identique|Liste de champs possédant une valeur identique|Champs", "Liste de tags trié alphabétiquement": "Liste de tags trié alphabétiquement|Tris alphabétique des tags|Kanban1", "Liste de tiddlers cliquables : tags formatés en liens": "Liste de tiddlers cliquables : tags formatés en liens|Liste de tiddlers cliquables : tags formatés en liens|Lists", "Liste des plugins attachés à ce wiki": "Liste des plugins attachés à ce wiki|Liste des plugins attachés à ce wiki|Applications", "Liste des tiddlers de documentation": "Liste des tiddlers de documentation|Liste des tiddlers de documentation|$:/Généralités", "Liste des tiddlers enfants": "Liste des tiddlers enfants|Liste des tiddlers enfants|Lists", "Liste des Tiddlers ouverts": "Liste des Tiddlers ouverts|Liste des Tiddlers ouverts|Divers", "listed Operator": "listed Operator|Opérateurs de Listes|Lists", "Lister la valeur de champs en tableau": "Lister la valeur de champs en tableau|Lister la valeur de champs en tableau|Lists", "Lister le contenu d'unTag (nommé)": "Lister le contenu d'unTag (nommé)|Lister le contenu d'unTag (nommé)|Lists", "Lister les champs d'un tiddler en tableau": "Lister les champs d'un tiddler en tableau|Lister les champs d'un tiddler en tableau|Lists $:/tags/Macro", "Lister les créateurs des tiddlers de ce wiki": "Lister les créateurs des tiddlers de ce wiki|Lister les créateurs des tiddlers de ce wiki|Lists", "Lister les tags d'un tiddler": "Lister les tags d'un tiddler||", "Lister les tiddlers de la TableOfContents": "Lister les tiddlers de la TableOfContents|Lister les tiddlers de la TableOfContents|Lists", "Lister les tiddlers dont le tag est x et en indiquer le nombre": "Lister les tiddlers dont le tag est x et en indiquer le nombre|Lister les tiddlers dont le tag est x et en indiquer le nombre|Lists", "Lister les tiddlers non tagués": "Lister les tiddlers non tagués|Lister les tiddlers non tagués|Lists", "Lister les tiddlers qui ne sont pas dans la table des matières": "Lister les tiddlers qui ne sont pas dans la table des matières|Lister les tiddlers qui ne sont pas dans la table des matières|TOCs", "Lister tous les champs d'un tiddler": "Lister tous les champs d'un tiddler|Lister tous les champs d'un tiddler|Lists", "Lister tous les champs de ce wiki": "Lister tous les champs de ce wiki|Lister tous les champs de ce wiki|Lists", "Lister tous les tiddlers dictionnaire": "Lister tous les tiddlers dictionnaire|Comment lister tous les tiddlers dictionnaire ?|Q&R", "Lister un tag via un bouton": "Lister un tag via un bouton|Lister un tag via un bouton|Lists", "Listes : Introduction": "Listes : Introduction|Listes : Introduction|Lists", "Listes sur 4 colonnes": "Listes sur 4 colonnes|Liste sur 4 colonnes (Doublon mais traduit)|Lists", "ListField": "ListField|Champ liste|Champs", "ListLinks": "ListLinks|Macro ListLinks|$:/tags/Macro ListLinksMacro", "ListLinksMacro": "ListLinksMacro|Display edits for tiddler attributes and relations|Macros", "ListLinksResult": "ListLinksResult|Affichage Macro ListLinks|ListLinksMacro", "Lists": "Lists|Listes|TableOfContents", "lists": "lists||", "ListWidget": "ListWidget|Widget list|Widgets", "LocalVariable": "LocalVariable||FormulaOperand Syntax", "Locator": "Locator||Sources", "Logic Operations Using $list": "Logic Operations Using $list||Sources", "Logo": "Logo|Logo Prolégomènes|$:/tags/Image", "Logo1": "Logo1||", "Logo2": "Logo2||$:/tags/Image", "Logo3": "Logo3||$:/tags/Image", "Logo4": "Logo4||$:/tags/Image", "Lorem": "Lorem|Lorem|TeaserStory Divers", "LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg": "LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg||tabcal21", "LWT": "LWT|List Widget Templating|Templates", "LWTDoc": "LWTDoc|LWT - Documentation|LWT", "LWTExample": "LWTExample|LWT - Tiddler exemple|LWT", "Macro \"Feuille style associée\"": "Macro \"Feuille style associée\"|Macro : \"Feuille de style associée\"|$:/tags/Macro Helpers", "Macro Couleurs Gradient (3 couleurs)": "Macro Couleurs Gradient (3 couleurs)|Macro Couleurs Gradient (3 couleurs)|Couleurs", "Macro Couleurs nommées Gradient": "Macro Couleurs nommées Gradient|Macro Couleurs nommées Gradient|Couleurs", "Macro Doc Users link": "Macro Doc Users link|Macro Doc Users link|Macros $:/tags/Macro", "Macro fonction": "Macro fonction|La macro Fonction de calcul|MacroCalc $:/tags/Macro", "Macro RedText": "Macro RedText|Mettre un texte en rouge (rojo)|Helpers", "Macro Tag": "Macro Tag|Macro Tag|Tags", "Macro tag-summary": "Macro tag-summary||", "Macro TiddlyWiki.js": "Macro TiddlyWiki.js|La macro TiddlyWiki|MacroClone", "macro/find": "macro/find|Macro find|RefNotes $:/tags/Macro", "macro/vspace": "macro/vspace|Macro V-Space|Macros", "MacroCalc": "MacroCalc|Macro de calcul|Macros", "MacroCalcDoc": "MacroCalcDoc|Documentation MacroCalc|MacroCalc", "MacroCalcResultat": "MacroCalcResultat|Affichage du résultat|MacroCalc", "Macrocall en wikitext Exemple": "Macrocall en wikitext Exemple|Un exemple de Macrocall en wikiText|Macros", "MacroCallWidget": "MacroCallWidget|Widget Macrocall|Widgets", "MacroClone": "MacroClone|Adapter l'existant à vos besoins|Macros", "Macros": "Macros|Macros|TableOfContents", "Macros in WikiText": "Macros in WikiText|Macros dans WikiText|Macros", "Macros Modèles": "Macros Modèles||", "Macros+Js": "Macros+Js|Créez vos propres macros!|JavaScript", "MacrosDoc": "MacrosDoc|Documentation|Macros", "MacroSlider (2)": "MacroSlider (2)|Macro Text Slider (2)|Macros $:/tags/Macro", "Magenta-Foncé": "Magenta-Foncé|Magenta Foncé|BackColor darkmagenta", "mail.svg": "mail.svg|Image Mail|$:/tags/Image SocialMacros", "Main": "Main|Tiddler de rendu principal|VariableDataDictionary", "Main-Palette-Colors": "Main-Palette-Colors|Image Main palette Colors|PaletteEmpty", "MangleTagsWidget": "MangleTagsWidget|Widget Mangle Tags|Widgets", "mar19": "mar19|March|tabcal19", "mar20": "mar20|March|tabcal20", "mar21": "mar21|March|tabcal21", "mar22": "mar22|March|tabcal22", "mar23": "mar23|March|tabcal23", "mar24": "mar24|March|tabcal24", "mar25": "mar25|March|tabcal25", "March": "March||tabcal", "Mario Pietsch wiki principal": "Mario Pietsch wiki principal||Sources", "Mark": "Mark|Bouton Marqueur pour la barre d'outil de l'éditeur|Templates", "MarkDoc": "MarkDoc|Documentation|Mark", "Markdown": "Markdown|Markdown|WikiText", "Markup Reference": "Markup Reference|Markup Reference|WikiText", "Matabele": "Matabele||Sources", "Material Theme": "Material Theme|Material Thème|Sources", "Mathcell": "Mathcell|Mathcell Moteur de Maths|Tableurs", "MathCell1": "MathCell1|Exemple de récupération du contenu d'une cellule|Mathcell $:/tags/TextEditor/Snippet", "MathcellDoc": "MathcellDoc|Documentation|Mathcell", "Mavo": "Mavo||Sources", "May": "May||tabcal", "may19": "may19|May|tabcal19", "may20": "may20|May|tabcal20", "may21": "may21|May|tabcal21", "may22": "may22|May|tabcal22", "may23": "may23|May|tabcal23", "may24": "may24|May|tabcal24", "may25": "may25|May|tabcal25", "MEAUX Eric (Prolégomènes)": "MEAUX Eric (Prolégomènes)|Fiche Contact Prolégomènes|ContactsList Contacts", "Mentat": "Mentat||Sources", "Mermaid": "Mermaid|Générateur de diagrammes Mermaid|Générateurs", "MermaidDoc": "MermaidDoc|Documentation Mermaid|Mermaid", "MessageModal": "MessageModal|Widget Message Modal|Widgets", "MessagesWidget": "MessagesWidget|MessagesWidget|Widgets", "MessagesWidgetsDoc": "MessagesWidgetsDoc|Documentation Widget Message|MessagesWidget", "Mettre à jour TiddlyWiki": "Mettre à jour TiddlyWiki|Mettre à jour TiddlyWiki|TiddlyWiki", "Mettre une image de fond sur un tiddler": "Mettre une image de fond sur un tiddler|Mettre une image de fond sur un tiddler|Images special", "MicroBadges": "MicroBadges|Macro Micro-Badges|Macros", "MicroBadgesDoc": "MicroBadgesDoc|Documentation Micro Badges|MicroBadges", "Missing tiddlers de ce wiki": "Missing tiddlers de ce wiki|Missing tiddlers de ce wiki|Variables", "Mode Read Only": "Mode Read Only||", "Modèle Documentation Assistée": "Modèle Documentation Assistée|Modèle Documentation Assistée|Helpers", "Modélisation des tiddlers Mots Clés": "Modélisation des tiddlers Mots Clés||", "Modern Block Quote Styles": "Modern Block Quote Styles||Sources", "Modification de l'onglet \"Open\"de la SideBar": "Modification de l'onglet \"Open\"de la SideBar|Modification de l'onglet \"Open\"de la SideBar|Modified", "Modified": "Modified|Tiddlers Source TiddlyWiki modiflés|Sources", "ModifiedDoc": "ModifiedDoc|Tiddlers Source TiddlyWiki modiflés : Introduction|Modified", "Modifier la police, taille et couleur des tiddlers": "Modifier la police, taille et couleur des tiddlers|Modifier la police, taille et couleur des tiddlers|CSS", "Modifier le contenu textuel d'un tiddler": "Modifier le contenu textuel d'un tiddler|Modifier le contenu textuel d'un tiddler|SetWidget", "Modules": "Modules|Modules|JavaScript", "ModuleType": "ModuleType|Types de modules|Champs", "morosanuae": "morosanuae|Adrian Morosanu|Applications", "morosanuaeDoc": "morosanuaeDoc|Documentation|morosanuae", "Motovun Jack.jpg": "Motovun Jack.jpg|Image Vignette|Vignettes $:/tags/Image", "My first steps with TiddlyWiki": "My first steps with TiddlyWiki||Sources", "My New Tiddler": "My New Tiddler||[[Example New Tiddler Button View Template]]", "My Playground (TonGerner)": "My Playground (TonGerner)||Sources", "myfield": "myfield|Le Tiddler au champ caché|FieldHide", "MyMenus": "MyMenus||Sources", "mysamplemacro.js": "mysamplemacro.js||", "mysimplesamplemacro": "mysimplesamplemacro|La Macro|SampleMacro", "Narkive Mail Archive": "Narkive Mail Archive||Sources", "NavBar": "NavBar|NavBar|TiddlyWiki", "NBJCal": "NBJCal|BJ's calendar 2018-2025|Calendriers", "Neat Link Example 2": "Neat Link Example 2|Exemple 2|NeatLink tag2", "Neat Link Example 3": "Neat Link Example 3|Exemple 3|NeatLink tag3", "NeatLink": "NeatLink|Des liens de couleur différente suivant le tag du lien de destination|Macros", "NeatLinkDoc": "NeatLinkDoc|Documentation|NeatLink", "NeatLinkExample1": "NeatLinkExample1|Exemple 1|NeatLink tag1", "NestedList": "NestedList|Liste imbriquée à partir de valeurs d’un champ|Lists", "NestedListDoc": "NestedListDoc|Documentation \"Listes imbriquées\"|NestedList", "Network edit": "Network edit|Network edit|Vis", "NewUser": "NewUser|Fiche Nouvel Adhérent|Adhérents", "Next": "Next|2019|tabcal", "NMP Installer": "NMP Installer||Sources", "Node.Js sur serveur distant": "Node.Js sur serveur distant|Node.Js sur serveur distant|NodeJs", "NodeJs": "NodeJs|Node.Js|TableOfContents", "NodeJs c'est aussi": "NodeJs c'est aussi|Node.Js c'est aussi|NodeJs", "NodeJsConsole": "NodeJsConsole|Console Winows d'installation|NodeJs", "NodeJsDéfinitions": "NodeJsDéfinitions|Définir Node.Js|NodeJs", "NodeJsInstallation": "NodeJsInstallation|Installer Node.Js|NodeJs", "Noir": "Noir|Noir|BackColor black", "Non TiddliWiki n'est pas destiné qu'aux prises de notes...": "Non TiddliWiki n'est pas destiné qu'aux prises de notes...|Non TiddliWiki n'est pas destiné qu'aux prises de notes...|TiddlyWiki", "Note, Astuce, Attention, Info": "Note, Astuce, Attention, Info|Note, Astuce, Attention, Info|Helpers", "Notes": "Notes|Notes|TableOfContents", "NotesDoc": "NotesDoc|\"Notes\" : Introduction|Notes", "Noteself Evernote-like experience": "Noteself Evernote-like experience||Sources", "NotificationDoc": "NotificationDoc|Documentation Notification|Notifications", "Notifications": "Notifications|Notifications|MessagesWidget", "nov19": "nov19|November|tabcal19", "nov20": "nov20|November|tabcal20", "nov21": "nov21|November|tabcal21", "nov22": "nov22|November|tabcal22", "nov23": "nov23|November|tabcal23", "nov24": "nov24|November|tabcal24", "nov25": "nov25|November|tabcal25", "November": "November||tabcal", "Nuage de Tags": "Nuage de Tags|Nuage de Tags|Tags", "Numérotation des listes de la TOC": "Numérotation des listes de la TOC|Numérotation des listes de la TOC|TiddlyWiki", "nxt19": "nxt19|2020|tabcal19", "nxt20": "nxt20|2021|tabcal20", "nxt21": "nxt21|2022|tabcal21", "nxt22": "nxt22|2023|tabcal22", "nxt23": "nxt23|2024|tabcal23", "nxt24": "nxt24|2025|tabcal24", "nxt25": "nxt25|2026|tabcal25", "Obadiah": "Obadiah||Sources", "oct19": "oct19|October|tabcal19", "oct20": "oct20|October|tabcal20", "oct21": "oct21|October|tabcal21", "oct22": "oct22|October|tabcal22", "oct23": "oct23|October|tabcal23", "oct24": "oct24|October|tabcal24", "oct25": "oct25|October|tabcal25", "October": "October||tabcal", "Old Menu": "Old Menu|Code ancien menu|Divers", "Olive": "Olive|Olive|BackColor olive", "ONP": "ONP|Macro Oui, Non, Peut-être|Macros", "ONPDémo": "ONPDémo|Démo ABC avec contrôle visu (Exemple)|ONP", "ONPDoc": "ONPDoc|Macro ONP, Documentation|ONP", "ONPradio.js": "ONPradio.js|Widget ONPradio.js|ONP", "ONPWidgetSourceModifié": "ONPWidgetSourceModifié|$:/core/modules/widgets/radio.js est modifié|ONP", "OpenAlltagged": "OpenAlltagged|Ouvrir tous les tiddlers contenant le tag choisi|Macros", "openalltagged/macro": "openalltagged/macro|Macro OpenAlltagged|OpenAlltagged $:/tags/Macro", "OpenAllTagsStylesheet": "OpenAllTagsStylesheet|Exemple Macro OpenAlltagged|OpenAlltagged", "OpenShift": "OpenShift|OpenShift|Sources", "Opérateur has (Exemples)": "Opérateur has (Exemples)|Opérateur has (Exemples)|HasOperator has", "Opérations Mathématiques via les Opérateurs de filtre": "Opérations Mathématiques via les Opérateurs de filtre|Opérations Mathématiques via les Opérateurs de filtre|FilterOperators", "Operators": "Operators|Les opérateurs|Up&Going", "Optional Styleheet 2": "Optional Styleheet 2||", "orange": "orange||FilterBDExo1 ingredient fruit", "Orange-Foncé": "Orange-Foncé|Orange Foncé|BackColor darkorange", "Ordonner une chaîne de caractères sans devoir utiliser les champs": "Ordonner une chaîne de caractères sans devoir utiliser les champs|Ordonner une chaîne de caractères sans devoir utiliser les champs|Lists", "Ordonnez vos listes...": "Ordonnez vos listes...|Ordonnez vos listes...|Lists", "Ordre d'apparition des tiddlers tagué dans une liste": "Ordre d'apparition des tiddlers tagué dans une liste|Ordre d'apparition des tiddlers tagué dans une liste|Champs", "organizing-my-ideas": "organizing-my-ideas|Image organizing-my-ideas|Images", "Oui Non Peut-être": "Oui Non Peut-être|La Macro ONP|ONP $:/tags/Macro", "Ouvrez votre TiddlyWiki": "Ouvrez votre TiddlyWiki|Ouvrez votre TiddlyWiki|Tutoriel", "Overlay": "Overlay||Sources", "Page and tiddler layout customisation": "Page and tiddler layout customisation|Personnalisation poussée de la page et des tiddlers|Tags", "Palette - Fonctionnement": "Palette - Fonctionnement|Palette - Fonctionnement|PaletteEmpty", "Palette et story-River": "Palette et story-River|Palette et story-River|PaletteEmpty", "PaletteEmpty": "PaletteEmpty|Étude partant d'une palette vierge|Couleurs", "PanFlex": "PanFlex|PanFlex|Framework", "PanFlexDoc": "PanFlexDoc|PanFlex Layout|PanFlex", "Panneau de contrôle étendu": "Panneau de contrôle étendu||Sources", "PanWidget": "PanWidget|Pan Widget Concept|PanFlex", "Par où commencer ?": "Par où commencer ?|Par où commencer|", "Paragraphs": "Paragraphs|Macro Paragraphs|Macros", "Paragraphs in WikiText": "Paragraphs in WikiText|Paragraphes|WikiText", "Paragraphs Macro Examples": "Paragraphs Macro Examples|Exemples d'utilisation|Paragraphs", "ParagraphsDoc": "ParagraphsDoc|Documentation|Paragraphs", "Paramètres": "Paramètres|<i class=\"icon icon-apps\" alt=\"Paramètres\" title=\"Paramètres\"></i>|$:/tags/SideBar", "Paramètres spéciaux": "Paramètres spéciaux|Paramètres spéciaux|FiltresComb", "ParamToList": "ParamToList|Passer un paramètre à une liste|Lists", "ParamToListDoc": "ParamToListDoc|Documentation Passer un paramètre à une liste|ParamToList", "ParentField": "ParentField|Use a Template Tiddler to show field of parent|Templates", "ParentFieldDoc": "ParentFieldDoc|Field of Parents Introduction|ParentField", "Parenthesized Expression": "Parenthesized Expression||FormulaOperand", "Passer un filtre": "Passer un filtre|Passer un filtre|Filtres", "Passing Parameters To A Transclusion": "Passing Parameters To A Transclusion|Passer des paramètres à une transclusion|Variables", "pattern.png": "pattern.png||", "Paul": "Paul||FilterBDExo2 Journal20140912 silverDim13 People Coding SystemControl SportScience", "Personnaliser les balises Hn": "Personnaliser les balises Hn|Personnaliser les balises Hn|CSS", "Personnaliser TW5 (Tongerner)": "Personnaliser TW5 (Tongerner)||Sources", "Pespot": "Pespot||Sources", "Philosophy of Tiddlers": "Philosophy of Tiddlers|Philosophie des tiddlers|TiddlyWiki", "Pico CMS": "Pico CMS||Sources", "Pie Chart": "Pie Chart|Exemple Diagramme Circulaire|Mathcell", "pineaple": "pineaple||FilterBDExo1", "PlaceHolder": "PlaceHolder|Zone Réservée|JavaScript", "Placer les tiddlers sur mesure dans l'interface utilisateur": "Placer les tiddlers sur mesure dans l'interface utilisateur|Les Tags Système placent les tiddlers dans l'interface utilisateur|systemtags", "Plain Tabs": "Plain Tabs|Plain Tabs|CSS", "Plugin d'aide de TiddlyWiki": "Plugin d'aide de TiddlyWiki|Plugin d'aide de TiddlyWiki|Plugins", "Plugin D3.js": "Plugin D3.js||Sources", "Plugin Teaser": "Plugin Teaser|Plugin teaser|Applications", "Plugin Toc Counting": "Plugin Toc Counting||Sources", "Plugin TW5 Français": "Plugin TW5 Français|Plugin TW5 en Français|Traductions", "PluginFrameDoc": "PluginFrameDoc|Documentation Plugin Frame|$:/PluginFrame", "Plugins": "Plugins|Plugins|TableOfContents", "Plugins et Macros (TesseRact)": "Plugins et Macros (TesseRact)||Sources", "pluginsDoc": "pluginsDoc|Documentation Plugins|Plugins", "Plus d'informations": "Plus d'informations|Plus d'informations|$:/TiddlyLearn", "Plus de boutons fantaisie": "Plus de boutons fantaisie|Plus de boutons fantaisie|Helpers", "pmwiki": "pmwiki||", "Pointeuse": "Pointeuse|Un formulaire pour ajouter un tiddler|Adhérents", "PopUp": "PopUp|Le tiddler PopUp appelé|PopUpButton", "PopUpButton": "PopUpButton|Bouton pour ouvrir une fenêtre PopUp|MessagesWidget", "PopUpButtonDoc": "PopUpButtonDoc|Documentation Bouton PopUp|PopUpButton", "PopUpSliders": "PopUpSliders|Créateur de PopUps et de Sliders|Notes", "PopUpSlidersDoc": "PopUpSlidersDoc|Documentation PopUps/Sliders|PopUpSliders", "PopUpSlidersExamples": "PopUpSlidersExamples|Exemples|PopUpSliders", "Pour Apprendre": "Pour Apprendre||Sources", "Pragma": "Pragma|Pragma|Macros", "Premiers pas": "Premiers pas|Premiers pas|$:/TiddlyLearn", "Previous": "Previous|2017|tabcal", "Principe": "Principe|Principe|Tabulator", "Principes d'écriture de Js dans TW5": "Principes d'écriture de Js dans TW5|Principes d'écriture de Js dans TW5|JavaScript", "Principes fondamentaux": "Principes fondamentaux|Principes fondamentaux|Macros+Js", "Programmer Documentation for the SocialCalc Engine": "Programmer Documentation for the SocialCalc Engine|Documentation Programmeur|SocialCalc", "ProjectABC": "ProjectABC|Tiddler d'exemple ABC|Task NestedList Done", "ProjectXYZ": "ProjectXYZ|Tiddler d'exemple XYZ|Task NestedList", "Projet DAT documentation": "Projet DAT documentation||Sources", "Prolegomenes": "Prolegomenes|Prolégomènes|Divers", "Prolégomènes": "Prolégomènes|Carte Prolégomènes|Prolegomenes", "Propriétés": "Propriétés||CSSD", "prv19": "prv19|2018|tabcal19", "prv20": "prv20|2019|tabcal20", "prv21": "prv21|2020|tabcal21", "prv22": "prv22|2021|tabcal22", "prv23": "prv23|2022|tabcal23", "prv24": "prv24|2023|tabcal24", "prv25": "prv25|2024|tabcal25", "Public Concerné": "Public Concerné|Public Concerné|Tutoriel", "Publier votre Bot email sécurisé (?)": "Publier votre Bot email sécurisé (?)|Publier votre Bot email sécurisé (?)|Divers", "Python": "Python||Sources", "Q&R": "Q&R|Q. & R.|TableOfContents", "Qu'est-ce que TiddlyLearn ?": "Qu'est-ce que TiddlyLearn ?|Qu'est-ce que Tiddly Learn ?|$:/TiddlyLearn", "Que sont les Macros": "Que sont les Macros|Que sont Les Macros|Macros", "Quels sont les opérateurs utilisant \"current\" ?": "Quels sont les opérateurs utilisant \"current\" ?||Divers", "Quick Tagging": "Quick Tagging|Un exemple pour taguer rapidement|Tags", "Rafaîchir un tiddler": "Rafaîchir un tiddler|Rafaîchir un tiddler|JavaScript", "Raffraîchir un tiddler": "Raffraîchir un tiddler|Raffraîchir un tiddler|Divers", "Railroad": "Railroad|Railroad|Générateurs", "Readme Tabbed Calendar": "Readme Tabbed Calendar|Documentation BJ's calendar|NBJCal tabcal25 tabcal24 tabcal23 tabcal22 tabcal21 tabcal20 tabcal19 tabcal", "Recette et ingrédients": "Recette et ingrédients|Recette et ingrédients|FilterExo1", "Rech.": "Rech.||", "Recherche avancée - Onglet Filter": "Recherche avancée - Onglet Filter|Recherche avancée - Onglet Filter|Filtres", "Rechercher": "Rechercher|Rechercher|TableOfContents", "Rechercher sur TiddlyWiki": "Rechercher sur TiddlyWiki|Les systèmes de recherche sur TiddlyWiki|Rechercher", "reddit.svg": "reddit.svg|Image Reddit|$:/tags/Image SocialMacros", "Reference Tiddlers": "Reference Tiddlers|Tiddlers de référence|TiddlyWiki", "RefNoteListAlone": "RefNoteListAlone|Notes en liste dans un tiddler séparé|RefNotes", "RefNoteListStyled": "RefNoteListStyled|Notes en liste stylisées dans un tiddler séparé|RefNotes", "RefNotes": "RefNotes|Plugin RefNotes|Notes", "RefNotesDoc": "RefNotesDoc|Documentation RefNotes|RefNotes", "RefNotesListe": "RefNotesListe|Notes en liste en bas de page|RefNotes", "Règles générales CSS": "Règles générales CSS|Les styles CSS de ce wiki expliqués|CSS", "Remember the Milk": "Remember the Milk|Remember the Milk|ToDo", "Remove State Tiddlers": "Remove State Tiddlers|Remove State Tiddlers|Plugins", "Remplacer le titre d'un lien par un pictogramme": "Remplacer le titre d'un lien par un pictogramme|Remplacer le titre d'un lien par un pictogramme|Divers", "Remplacer le titre du Tiddler A par celui du Tiddler B": "Remplacer le titre du Tiddler A par celui du Tiddler B|Remplacer le titre du Tiddler A par celui du Tiddler B|ButtonWidgetExemple1", "Repas": "Repas|La Base de Données|FiltresIntro", "Requêter un paramètre de style CSS": "Requêter un paramètre de style CSS|Requêter un paramètre de style CSS|Macros+Js", "Retour Page Accueil et fermeture des tiddlers ouverts": "Retour Page Accueil et fermeture des tiddlers ouverts|Retour Page Accueil et fermeture des tiddlers ouverts|Divers", "reveal widget vs detailsWidget plugin": "reveal widget vs detailsWidget plugin|reveal widget vs detailsWidget plugin|RevealWidget", "RevealWidget": "RevealWidget|Widget Reveal|Widgets", "RevealWidgetDoc": "RevealWidgetDoc|Documentation Widget Reveal|RevealWidget", "RoadMap": "RoadMap|Et ensuite ?|$:/TiddlyLearn", "RosaXanthina5_Fanghong_CC-BY-SA.jpg": "RosaXanthina5_Fanghong_CC-BY-SA.jpg||tabcal22", "Rouge": "Rouge|Rouge|BackColor red", "Saisissez votre nom": "Saisissez votre nom|Saisissez votre nom|Divers", "SampleMacro": "SampleMacro|Une Macro globale mais limitée|Macros", "samplemacroDoc": "samplemacroDoc|Documentation|SampleMacro", "SampleNotification": "SampleNotification|Tiddler de notification|Notifications", "SampleWizard": "SampleWizard|Tiddler d'exemple 1|MessageModal", "SampleWizard2": "SampleWizard2|Tiddler d'exemple 2|MessageModal", "Sans déclaration, les shadow tiddlers ne sont pa inclus dans les listes": "Sans déclaration, les shadow tiddlers ne sont pa inclus dans les listes|Sans déclaration, les shadow tiddlers ne sont pa inclus dans les listes|Lists", "Sarah": "Sarah|Sarah|DemoFt FieldsTable", "Sarcelle": "Sarcelle|Sarcelle|BackColor teal", "Saumon-Foncé": "Saumon-Foncé|Saumon Foncé|BackColor darksalmon", "Sauvegarder avec l'add-on Timimi": "Sauvegarder avec l'add-on Timimi|Sauvegarder avec l'add-on Timimi|TiddlyWiki", "Sauvegardez vos données": "Sauvegardez vos données|Sauvegardez vos données|Tutoriel", "SaveTrail Plugin": "SaveTrail Plugin||Sources", "Saving on iPad/iPhone": "Saving on iPad/iPhone|Saving on iPad/iPhone|Applications", "Scalability": "Scalability|Adaptabilité|TiddlyWiki", "ScrollableTableOfContents": "ScrollableTableOfContents|Table des matières avec barres de défilement|TOCs", "ScrollableTableOfContentsDoc": "ScrollableTableOfContentsDoc|Documentation TOC avec barre de défilement|ScrollableTableOfContents", "Se connecter": "Se connecter|Se connecter|$:/TiddlyLearn", "Search": "Search||", "Search in Official Tiddlywiki Site": "Search in Official Tiddlywiki Site|Documentation Search TW5.com|TW5Com", "Search in Tiddlywiki Toolmap": "Search in Tiddlywiki Toolmap|Documentation TwToolMp|TW5ToolMap", "Search Plus": "Search Plus||Sources", "Search Tiddlywiki Toolmap": "Search Tiddlywiki Toolmap|Macro Search TWToolMap|TW5ToolMap", "Search Tiddlywiki.com": "Search Tiddlywiki.com|Macro Search TW5.com|TW5Com", "SearchBar": "SearchBar|Macro SearchBar|Macros", "SearchBar Exemple": "SearchBar Exemple|Exemple SearchBar|SearchBar", "SearchBarDoc": "SearchBarDoc|Documentation|SearchBar", "SearchBtnVisu": "SearchBtnVisu||", "SearchWikiPedia dans la NavBar": "SearchWikiPedia dans la NavBar|Search WikiPedia dans la NavBar|WikiPedia", "Section Coder": "Section Coder||", "Section Références": "Section Références||", "Section Sources": "Section Sources||", "SeeAlso": "SeeAlso|Lier les Tiddlers similaires (See Also)|Templates", "SeeAlsoDoc": "SeeAlsoDoc|Documentation SeeAlso|SeeAlso", "select-demo-1022460811": "select-demo-1022460811||", "select-demo-1391036109": "select-demo-1391036109||", "SelectBox": "SelectBox|Créer une boite de sélection (Exemple)|Applications", "SelectBoxDoc": "SelectBoxDoc|Créer une boite de sélection (Documentation)|SelectBox", "Sélectionner une couleur et l'afficher dans un champ": "Sélectionner une couleur et l'afficher dans un champ|Sélectionner une couleur et l'afficher dans un champ|Couleurs", "Sélectionner une couleur via un dictionnaire": "Sélectionner une couleur via un dictionnaire|Code de sélection de couleur|ColorDictionary", "SelectWidget": "SelectWidget|Widget Select|Widgets", "Semantic Colors": "Semantic Colors||Sources", "separation.gif": "separation.gif||", "separation1.gif": "separation1.gif||", "separation3.gif": "separation3.gif||", "September": "September||tabcal", "Séquence": "Séquence|Exemple Séquence|Mermaid", "Setting a favicon": "Setting a favicon|Installer son favicon|Divers", "SetWidget": "SetWidget|Widget Set|Widgets", "SetWidgetDoc": "SetWidgetDoc|Widget set Documentation|SetWidget", "Shiraz": "Shiraz||Sources", "Show field value for the current tiddler derived from transcluded tiddler": "Show field value for the current tiddler derived from transcluded tiddler||Templates", "ShowFavicon": "ShowFavicon|Image Show Favicon Inexistante|TranscludeAll", "ShowFieldOrTiddlerResult": "ShowFieldOrTiddlerResult|Affichage Macro showFieldOrTitle|showFieldOrTitleMacro", "showFieldOrTitleMacro": "showFieldOrTitleMacro|Macro listant le champ ou le titre d'un Tiddler|Macros", "ShowFieldOrTittle": "ShowFieldOrTittle|Macro showFieldOrTitle|$:/tags/Macro showFieldOrTitleMacro", "ShowQuoteMacro": "ShowQuoteMacro|Macro ShowQuotes|ShowQuotes $:/tags/Macro", "ShowQuotes": "ShowQuotes|Macro ShowQuotes|Macros", "ShowQuotes Via Template": "ShowQuotes Via Template|ShowQuotes Via Template|ShowQuotes", "ShowQuotesResult": "ShowQuotesResult|Invocation Macro ShowQuotes|ShowQuotes", "ShowTag": "ShowTag|Afficher la couleur d'un tag via un template|Templates", "ShowTagDoc": "ShowTagDoc|Documentation ShowTag|ShowTag", "ShowTagMacro": "ShowTagMacro|Macro ShowTag|ShowTag", "SideBar": "SideBar|SideBar|TiddlyWiki", "Sidebar foreground shadow": "Sidebar foreground shadow|Sidebar foreground shadow|PaletteEmpty", "SideBar Layout isolée": "SideBar Layout isolée|SideBar Layout isolée|SelectWidget", "Sidebar Plus tesseract - because optics matters": "Sidebar Plus tesseract - because optics matters||Sources", "SideBarPlus": "SideBarPlus|Plugin SideBarPlus (Tessreact)|Plugins", "SideBarPlusDoc": "SideBarPlusDoc|Documentation|SideBarPlus", "SideBarPlusExamples": "SideBarPlusExamples|Exemples et Résultats|SideBarPlus", "SideEditor": "SideEditor|SideEditor|Plugins", "Simple CheckList": "Simple CheckList|SimpleCheckListe (Plugin)|ToDo", "Simple JavaScript Insertion in Tiddlers": "Simple JavaScript Insertion in Tiddlers|Insertion JavaScript dans un Tiddler|JavaScript", "Simple search": "Simple search||Sources", "Simple ways to write protect tiddlers": "Simple ways to write protect tiddlers|Des moyens simples pour protéger vos tiddlers|CSS", "Simpler Table Macros": "Simpler Table Macros|Une table simple|dtable", "Sites de ressources pour TiddlyWiki": "Sites de ressources pour TiddlyWiki||Sources", "Skeeve's playground": "Skeeve's playground||Sources", "Skeeve's TiddlyStuff": "Skeeve's TiddlyStuff||Sources", "Slide Show (précédent/suivant)": "Slide Show (précédent/suivant)||Sources", "SliderMacro": "SliderMacro|Macro Text Slider|Macros", "SliderMacro Macro": "SliderMacro Macro|La Macro Slider|$:/tags/Macro SliderMacro", "SliderMacro Utilisation": "SliderMacro Utilisation|SliderMacro Utilisation|SliderMacro", "Smaller BulletLlist example": "Smaller BulletLlist example|Listes simples : Exemple|BulletList", "SmartCssGrid": "SmartCssGrid|Smart CSS Grid|Framework", "SmartCssGridDoc": "SmartCssGridDoc|Smart CSS Grid Documentation|SmartCssGrid", "Social Calc": "Social Calc||Sources", "SocialCalc": "SocialCalc|Plugin ~SocialCalc|Tableurs", "SocialCalc/Demos/calligramme": "SocialCalc/Demos/calligramme||SocialCalc", "SocialCalc/Demos/calligramme--demo": "SocialCalc/Demos/calligramme--demo||SocialCalc", "SocialCalc/Demos/field": "SocialCalc/Demos/field||SocialCalc", "SocialCalc/Demos/field--demo": "SocialCalc/Demos/field--demo||SocialCalc", "SocialCalc/Demos/links": "SocialCalc/Demos/links||SocialCalc", "SocialCalc/Demos/links--demo": "SocialCalc/Demos/links--demo||SocialCalc", "SocialCalc/Demos/one-plus-one": "SocialCalc/Demos/one-plus-one||SocialCalc", "SocialCalc/Demos/one-plus-one--demo": "SocialCalc/Demos/one-plus-one--demo||SocialCalc", "SocialCalcDoc": "SocialCalcDoc|Documentation Utilisateur|SocialCalc", "SocialMacros": "SocialMacros|SocialMacros|Macros", "SocialMacrosDoc": "SocialMacrosDoc|Documentation|SocialMacros", "Soda-Pop": "Soda-Pop||FormulaExpenses Expenses", "Solar Flair": "Solar Flair||Sources", "SomeTemplate": "SomeTemplate|Le Template|ParentField", "Sources": "Sources|Sources|TableOfContents", "Spécifier le type d'attribut dans une liste": "Spécifier le type d'attribut dans une liste|Spécifier le type d'attribut dans une liste|Lists", "Spectre": "Spectre|Spectre|Framework", "Spectre Flexbox Grid": "Spectre Flexbox Grid|Spectre Flexbox Grid|Spectre", "Spectre Striped Table": "Spectre Striped Table||", "SpectreBadges": "SpectreBadges|Badges|Spectre", "SpectreBlockquote": "SpectreBlockquote|Citation|SpectreTypography", "SpectreBreadcrumbs": "SpectreBreadcrumbs|Breadcrumbs|Spectre", "SpectreDoc": "SpectreDoc|Documentation Spectre|Spectre", "SpectreFonts": "SpectreFonts|Polices|SpectreTypography", "SpectreHeadings": "SpectreHeadings|En-Têtes (Hn)|SpectreTypography", "SpectreIcons": "SpectreIcons|Icons|Spectre", "SpectreImages": "SpectreImages|Images|Spectre", "SpectreImagesFigure": "SpectreImagesFigure|Spectre, Titrer vos images|SpectreImages", "SpectreImagesFitContainCover": "SpectreImagesFitContainCover|Spectre Images Fit Contain, Fit Cover|SpectreImages", "SpectreImagesResponsive": "SpectreImagesResponsive|Spectre Images Responsives|SpectreImages", "SpectreLists": "SpectreLists|Listes|SpectreTypography", "SpectreMenu": "SpectreMenu|Menu|Spectre", "SpectreParagraphs": "SpectreParagraphs|Paragraphes|SpectreTypography", "SpectreSemantic": "SpectreSemantic|Sémantique|SpectreTypography", "SpectreTypography": "SpectreTypography|Typographie Spectre|Spectre", "SportScience": "SportScience||FilterBDExo2 Skills", "Spreadsheet Prototype": "Spreadsheet Prototype||FormulaSpreadSheet", "Spreadsheet/Data": "Spreadsheet/Data||FormulaSpreadSheet", "spt19": "spt19|September|tabcal19", "spt20": "spt20|September|tabcal20", "spt21": "spt21|September|tabcal21", "spt22": "spt22|September|tabcal22", "spt23": "spt23|September|tabcal23", "spt24": "spt24|September|tabcal24", "spt25": "spt25|September|tabcal25", "Startup Actions Script": "Startup Actions Script|Le Script|StartupAction $:/tags/StartupAction", "StartupAction": "StartupAction|Startup Action (Plugin)|Applications", "StartupActionDoc": "StartupActionDoc|Documentation|StartupAction", "StatCounter": "StatCounter|StatCounter|Divers $:/tags/RawMarkup", "Statements": "Statements|Déclarations|Up&Going", "StaticWebsiteGeneration": "StaticWebsiteGeneration|StaticWebsiteGeneration|blog Générateurs", "Statistiques TiddlyWiki": "Statistiques TiddlyWiki|Statistiques TiddlyWiki|TiddlyWiki", "Statut des billets": "Statut des billets||Statut", "StefCT's Resources": "StefCT's Resources||Sources", "Stephan Hradek": "Stephan Hradek||Sources", "Steps": "Steps|Steps|Spectre", "Sticky notesDoc": "Sticky notesDoc|Documentation Sticky|StickyNotes", "StickyNotes": "StickyNotes|StickyNotes|Notes", "Storage going with checkbox": "Storage going with checkbox|Storage going with checkbox|CheckboxWidget", "Story TopTabs": "Story TopTabs||Sources", "stripe.svg": "stripe.svg||", "stripe1.svg": "stripe1.svg||", "Structure fonctionnelle d'un CMS": "Structure fonctionnelle d'un CMS|Structure fonctionnelle d'un CMS|TiddlyWiki", "Structuring TiddlyWiki": "Structuring TiddlyWiki|Structurer TiddlyWiki|TiddlyWiki", "Styler les liste": "Styler les liste|Styler les liste|Lists", "Styler les tiddlers (exemple1)": "Styler les tiddlers (exemple1)|Styler par Tag (Exemple 1)|TagStyle [[Notebook Style]]", "Styler les tiddlers (exemple2)": "Styler les tiddlers (exemple2)|Styler parTag (Exemple 2)|TagStyle BluePrintGrid", "StyleSheet": "StyleSheet|Bac à Sable StyleSheets|CssDiv", "SubStories": "SubStories|Comment Transclure un Tiddler dans un autre Tiddler via SubStory|Transclusion", "SummaryResults": "SummaryResults|Summary Result|Extract", "SummaryTest": "SummaryTest|test caption|Extract", "Supprimer des tiddlers via bouton": "Supprimer des tiddlers via bouton|Supprimer des tiddlers via bouton|tmDelete", "Supprimer les * des listes non ordonnées à multiples niveau": "Supprimer les * des listes non ordonnées à multiples niveau|Supprimer les * des listes non ordonnées à multiples niveau|WikiText", "Supprimer les state tiddlers (Plugin)": "Supprimer les state tiddlers (Plugin)|Supprimer les state tiddlers (Plugin)|Applications", "Supprimer Titre et sous-titre du wiki": "Supprimer Titre et sous-titre du wiki|Comment Supprimer Titre et sous-titre du wiki dans la SideBar|Q&R", "Supprimer un plugin": "Supprimer un plugin|Supprimer un plugin|TiddlyWiki", "Supprimer un Tiddler en fonction de son champ": "Supprimer un Tiddler en fonction de son champ|Supprimer un Tiddler en fonction de son champ|tmDelete", "Sur la programmation": "Sur la programmation|Sur la programmation|EloquentJs", "SVG Space": "SVG Space|SVG Space|$:/tags/Image Images", "SVG Stripe Generator": "SVG Stripe Generator||Sources", "SVG with imported elements": "SVG with imported elements|Exemple de données SVG importées|Mathcell", "SVGExample": "SVGExample|Sous-ensemble données SVG 1|Mathcell", "SVGExample1": "SVGExample1|Sous-ensemble données SVG 2|Mathcell", "SVGExample2": "SVGExample2|Sous-ensemble donnés SVG 3|Mathcell", "SystemControl": "SystemControl||FilterBDExo2 Skills", "SystemTags": "SystemTags||Sources", "systemtags": "systemtags|Les Tags système|Tags", "t5a": "t5a||Sources", "Table": "Table|Table|Spectre", "Table des devises": "Table des devises||Sources", "Table Macros": "Table Macros|La lMacro \"Table\"|dtable $:/tags/Macro", "Table Wizard": "Table Wizard|Un générateur pour tableaux dynamiques|dtable", "Table-of-Contents Macros": "Table-of-Contents Macros|Macros Tables des Matières|Macros", "table-template": "table-template|Template Passer un paramètre à une liste|ParamToList", "Tableaux dynamiques - Instructions": "Tableaux dynamiques - Instructions|Tableaux dynamiques - Instructions|dtable Menu1", "TableOfContents": "TableOfContents|<i class=\"icon icon-menu\" alt=\"Sommaire\" title=\"Sommaire\"></i>|$:/tags/SideBar", "Tables dynamiques (ooktech)": "Tables dynamiques (ooktech)||Sources", "Tableurs": "Tableurs|Tableurs|TableOfContents", "TableursDoc": "TableursDoc|Documentation|Tableurs", "TabLink": "TabLink||Sources", "TabsV": "TabsV|Tables éditables en mode visu|Tableurs", "TabsVDoc": "TabsVDoc|Documentation|TabsV", "Tabulator": "Tabulator|Tabulator|Tableurs", "tabulator.css": "tabulator.css||$:/tags/Stylesheet", "tabulator.info": "tabulator.info||Sources", "TabulatorDoc": "TabulatorDoc|Documentation Tabulator|Tabulator", "Tag value as a variable": "Tag value as a variable|Valeur d'un tag en variable, puis liste|Filtres", "Tagging": "Tagging|Étiqueter par tag|Tags", "TagImg": "TagImg|Ajouter une image en fonction de son tag|Images", "TagImgDoc": "TagImgDoc|Ajouter une image en fonction de son tag: Documentation|Pied TagImg", "TagPillList": "TagPillList|Compter le nombre de tiddlers dont le titre est identique au tag|Lists TagPillList", "tags": "tags|Tiddler tags|Kanban1", "Tags": "Tags|Tags|TableOfContents", "Tags système contenus dans ce wiki": "Tags système contenus dans ce wiki|Tags système contenus dans ce wiki|systemtags", "TagStyle": "TagStyle|Styler les Tiddlers tagués|CSS", "TagStyleDoc": "TagStyleDoc|Documentation styler par tag|TagStyle", "Taille des icones de la SideBar": "Taille des icones de la SideBar||Task", "task": "task||", "Task": "Task||", "TaskCatLists": "TaskCatLists|ToDo Catégorisé|Applications", "TaskCatListsDoc": "TaskCatListsDoc|Documentation ToDo catégorisé|TaskCatLists", "TaskManagementDraggableTemplate": "TaskManagementDraggableTemplate||", "tb/ViewTemplate/tiddler-link": "tb/ViewTemplate/tiddler-link||Templates", "tb5": "tb5||Sources", "tc-vertical-1391036109": "tc-vertical-1391036109||", "TechDico": "TechDico||Sources", "Télécharger TiddlyWiki": "Télécharger TiddlyWiki|Télécharger TiddlyWiki|Tutoriel", "Template pour les tags": "Template pour les tags|Template pour les tags|Tags", "template/example-variables": "template/example-variables|Template \"Passer des paramètres...\"|Variables", "TemplateButtonMacro": "TemplateButtonMacro|Utiliser un template via Bouton et Macro|Templates", "TemplateButtonMacroDoc": "TemplateButtonMacroDoc|Création du tiddler et appel de la macro|TemplateButtonMacro", "Templates": "Templates|Templates|TableOfContents", "TemplatesDoc": "TemplatesDoc|Documentation Templates|Templates", "TemplateTiddlers": "TemplateTiddlers|Tiddlers gabarits|Templates", "TemplateTiddlers(2)": "TemplateTiddlers(2)|Différents Templates|Templates", "Templating Language Overview": "Templating Language Overview|Revue du langage de Templating|Transclusion", "Ten reasons to switch to TiddlyWiki": "Ten reasons to switch to TiddlyWiki|Dix raisons de passer à TiddlyWiki|TiddlyWiki", "Ten-Sodas": "Ten-Sodas||FormulaExpenses Expenses", "Test BD Adhérents": "Test BD Adhérents|Test BD Adhérents|Adhérents", "Test Config": "Test Config|Le générateur - Test de configuration|dtable", "test-macro": "test-macro|Macro Passer un paramètre à une liste|ParamToList $:/tags/Macro", "Testez le temps de chargement de votre wiki": "Testez le temps de chargement de votre wiki||Sources", "testing params and variables": "testing params and variables|Tester paramètres et variables|Variables", "Tests Intense Debate système de commentaires": "Tests Intense Debate système de commentaires|Intense Debate Tiddler de tests|Intense", "Text slider vs Detail widget": "Text slider vs Detail widget|Text slider vs Detail widget|TextSlider", "Text Utilities": "Text Utilities|Donnez des couleurs à vos titres|SpectreTypography", "Text-Slicer Edition": "Text-Slicer Edition||Sources", "Texte animé": "Texte animé|Texte animé|HTML", "texte encadré gris": "texte encadré gris|texte encadré gris|Helpers", "Textes en couleur": "Textes en couleur|Textes en couleur|Helpers", "TextReference": "TextReference|Référence texte|WikiText", "TextSlider": "TextSlider|Macro Text Slider (F.A.Q.)|Macros", "TextSliderDoc": "TextSliderDoc|Documentation TextSlider|TextSlider", "TextSliderExample": "TextSliderExample|Exemple|TextSlider", "TFooter": "TFooter|Créer un Tiddler Footer|Templates", "TFooterDoc": "TFooterDoc|Documentation|TFooter", "The Extended Listops Filters": "The Extended Listops Filters|Les opérateurs de filtres étendus 'Listsops\"|Lists", "The Mail Archive": "The Mail Archive||Sources", "The new \"tree\" global macro": "The new \"tree\" global macro|The new \"tree\" global macro|morosanuae", "The tiddlyCounter plugin": "The tiddlyCounter plugin||Sources", "Thème WhiteSpace": "Thème WhiteSpace||Sources", "Thèmes TiddlyWiki": "Thèmes TiddlyWiki||", "Tiddler": "Tiddler|Tiddler|TiddlyWiki", "Tiddler Commander": "Tiddler Commander||Sources", "Tiddler Complet - Végétarien - Four": "Tiddler Complet - Végétarien - Four|Tiddler Complet - Végétarien - Four|FiltresComb", "Tiddler Structure": "Tiddler Structure|Structure d'un tiddler|TiddlyWiki", "Tiddler Vapeur - Four - BM": "Tiddler Vapeur - Four - BM|Tiddler Vapeur - Four - BM|FiltresComb", "Tiddler Vapeur - Four - BM + Viande": "Tiddler Vapeur - Four - BM + Viande|Tiddler Vapeur - Four - BM + Viande|FiltresComb", "Tiddler Vapeur - Four - sauf Viande - BM": "Tiddler Vapeur - Four - sauf Viande - BM|Tiddler Vapeur - Four - sauf Viande - BM|FiltresComb", "Tiddler Végétarien - moins - E - moins - L": "Tiddler Végétarien - moins - E - moins - L|Tiddler Végétarien - moins - E - moins - L|FiltresComb", "TiddlerA": "TiddlerA|Titre du Tiddler A|ButtonWidgetExemple1", "TiddlerB": "TiddlerB|Titre du Tiddler B|ButtonWidgetExemple1", "TiddlerField": "TiddlerField|Macro getTiddlerField|$:/tags/Macro TiddlerFieldMacro", "TiddlerFieldMacro": "TiddlerFieldMacro|Macro Obtenir les champs d'un Tiddler|Macros", "TiddlerFields": "TiddlerFields|Champs de tiddler|Champs", "TiddlerFooter": "TiddlerFooter|Template TiddlerFooter|TFooter $:/tags/ViewTemplate", "TiddlerFooterReferences": "TiddlerFooterReferences|Macro Tiddler Footer|TFooter TiddlerFooter", "TiddlerLinks": "TiddlerLinks|Liens dans un Tiddler|TiddlyWiki", "Tiddlers As Link": "Tiddlers As Link|Tiddlers As Link|Templates", "Tiddlers documentation": "Tiddlers documentation|Tiddlers documentation|$:/Généralités", "Tiddlers modifiés depuis une certaine date": "Tiddlers modifiés depuis une certaine date|Tiddlers modifiés depuis une certaine date|Filtres", "Tiddlers orphelins": "Tiddlers orphelins|Tiddlers orphelins|Lists", "Tiddlers ouverts dans la story river": "Tiddlers ouverts dans la story river|Tiddlers ouverts dans la story river|Lists", "Tiddlers Shadow modifiés": "Tiddlers Shadow modifiés|Comment lister tous les tiddlers shadow qui ont été modifiés|Q&R", "TiddlerTopicTemplate": "TiddlerTopicTemplate|Le Tiddler Template|TemplateButtonMacro", "TiddlerValueResult": "TiddlerValueResult|Affichage Macro getTiddlerFields|TiddlerFieldMacro", "TiddlerWidget": "TiddlerWidget|Widget Tiddler|Widgets", "Tiddly Viewer": "Tiddly Viewer||Sources", "TiddlyNote": "TiddlyNote||Sources", "TiddlyOueb": "TiddlyOueb||Sources", "TiddlyWiki": "TiddlyWiki|TiddlyWiki|TableOfContents", "TiddlyWiki Community Search": "TiddlyWiki Community Search||Sources", "TiddlyWiki en Français": "TiddlyWiki en Français||Sources", "TiddlyWiki for scholars": "TiddlyWiki for scholars|TiddlyWiki pour les Enseignants|Applications", "TiddlyWiki for scholars (Source)": "TiddlyWiki for scholars (Source)||Sources", "TiddlyWiki Listing": "TiddlyWiki Listing||Task Sources", "TiddlyWiki Main Kernel": "TiddlyWiki Main Kernel|TiddlyWiki Main Kernel|JavaScript", "TiddlyWiki on Node.js": "TiddlyWiki on Node.js|TiddlyWiki sur Node.js|NodeJs", "TiddlyWiki Source": "TiddlyWiki Source||Sources", "TiddlyWiki sur GitHub": "TiddlyWiki sur GitHub|TiddlyWiki sur GitHub|TiddlyWiki", "TiddlyWiki TalkyTalky": "TiddlyWiki TalkyTalky||Sources", "TiddlyWiki Toolmap": "TiddlyWiki Toolmap||Sources", "TiddlyWiki version 5.1.17 [EN]": "TiddlyWiki version 5.1.17 [EN]||Sources", "TiddlyWiki Version 5.1.18": "TiddlyWiki Version 5.1.18|TiddlyWiki Version 5.1.18|TiddlyWiki", "TiddlyWiki version Pre-Release": "TiddlyWiki version Pre-Release||Sources", "TiddlyWiki-M.png": "TiddlyWiki-M.png|Image|floating-images", "TiddlyWiki5": "TiddlyWiki5|TiddlyWiki5|TiddlyWiki", "TiddlyWiki5 Coding": "TiddlyWiki5 Coding||Sources", "TiddlyWikiAccess": "TiddlyWikiAccess|Page Accueil TiddlyWiki en Iframe|TiddlyWiki", "TiddlyWikiDoc": "TiddlyWikiDoc|Documentation TiddlyWiki|TiddlyWiki", "TiddlyWili Vierge": "TiddlyWili Vierge||Sources", "Timelines": "Timelines|Timelines|Spectre", "Timelines Exemple complet": "Timelines Exemple complet|Timelines Exemple complet|", "title": "title|title|", "Title Selection": "Title Selection|Sélection de titres|Lists", "Titles with numbers": "Titles with numbers|Numérotez vos titres (Hn)|CSS", "Titre": "Titre|Macro Titre|Macros $:/tags/Macro", "Titre des Tiddlers": "Titre des Tiddlers|Comment le titre des tiddlers est-il paramétré ?|Q&R", "Titre et Sous-Titre du wiki": "Titre et Sous-Titre du wiki|Titre et Sous-Titre du wiki|Tutoriel", "Titres liés et couleur du lien": "Titres liés et couleur du lien||", "tm-add-tag": "tm-add-tag|tm-add-tag|MessagesWidget", "tm-delete-tiddler": "tm-delete-tiddler|tm-delete-tiddler|tmDelete", "tm-navigate": "tm-navigate|tm-navigate|MessagesWidget", "tm-new-tiddler": "tm-new-tiddler|tm-new-tiddler|MessagesWidget", "tm-remove-tag": "tm-remove-tag|tm-remove-tag|MessagesWidget", "tmDelete": "tmDelete|tm-delete-tiddler|MessagesWidget", "To generate a tiddler link": "To generate a tiddler link||$:/tags/Macro", "Toasts": "Toasts|Toasts|Spectre", "TocFilter": "TocFilter|Un filtre pour extraire des titres dans une table des matières|Filtres", "TocFilterDoc": "TocFilterDoc|Documentation Filtre TOC|TocFilter", "TocFilterExemples": "TocFilterExemples|Exemples Filtres TOC|TocFilter", "TOCP": "TOCP||Sources", "TOCs": "TOCs|TOCs|TableOfContents", "ToDo": "ToDo|Des ToDo Listes|Notes", "ToDo List via CheckBox": "ToDo List via CheckBox|Un ToDo List par CheckBox|ToDo", "ToDoDoc": "ToDoDoc|Documentation ToDo|ToDo", "ToggleAdmin": "ToggleAdmin||Sources", "TonyM Wiki": "TonyM Wiki||Sources", "Toogle.Js": "Toogle.Js|Module Toogle.Js|Macros+Js", "TooltipBottom": "TooltipBottom|Tooltip Bottom|Tooltips", "TooltipLeft": "TooltipLeft|Tooltip Left|Tooltips", "TooltipRight": "TooltipRight|Tooltip Right|Tooltips", "Tooltips": "Tooltips|Tooltips|CSS", "Tooltips Autres Exemples": "Tooltips Autres Exemples|Tooltips Autres Exemples|Tooltips", "Tooltips sur Paragraphe": "Tooltips sur Paragraphe|Tooltips sur Paragraphe|Tooltips", "TooltipsDoc": "TooltipsDoc|Documentation Tooltips|Tooltips", "TooltipTop": "TooltipTop|Tooltip Top|Tooltips", "top-3-middle-1-bottom-3.svg": "top-3-middle-1-bottom-3.svg||", "TopStoryView (Plugin)": "TopStoryView (Plugin)|TopStoryView (Plugin)|Applications", "toto.csv": "toto.csv||", "Tous les calculs possibles sont envisageables": "Tous les calculs possibles sont envisageables|Tous les calculs possibles sont envisageables|Macros+Js", "Tous les tiddlers tagués TableOf Contents en table": "Tous les tiddlers tagués TableOf Contents en table|Tous les tiddlers tagués TableOf Contents en table|TOCs", "Toutes les variables de ce wiki": "Toutes les variables de ce wiki|Toutes les variables de ce wiki|Variables", "TradReplace": "TradReplace|Traduction par remplacement des termes|Traductions", "TradReplaceDoc": "TradReplaceDoc|Documentation|TradReplace", "TradSurvol": "TradSurvol|Terme traduit au survol de la souris|Traductions", "TradSurvolDoc": "TradSurvolDoc|Documentation|TradSurvol", "TradTitle": "TradTitle|Titres Natifs remplacés par Titres traduits|Traductions", "TradTitleDoc": "TradTitleDoc|Documentation|TradTitle", "Traductions": "Traductions|Traductions|TableOfContents", "Traductions - Introduction": "Traductions - Introduction|Traduction ; Introduction|Traductions", "Traits fond": "Traits fond|Traits fond|Helpers", "Transcl$:/AInAMacro": "Transcl$:/AInAMacro|Macro de transclusion|Transcl$AInA $:/tags/Macro", "Transcl$AInA": "Transcl$AInA|Transclure tiddler $A dans Tiddler A|Macros", "Transclude contents of an external text file into a tiddler": "Transclude contents of an external text file into a tiddler|Transclude contents of an external text file into a tiddler|Transclusion", "Transclude external tiddler in TW5": "Transclude external tiddler in TW5|Transclude external tiddler in TW5|ExtextSupport", "TranscludeAll": "TranscludeAll|Transclure un Tiddler en entier|Transclusion", "TranscludeWidget": "TranscludeWidget|Widget Transclude|Transclusion", "Transclure le contenu d'un DataTiddler": "Transclure le contenu d'un DataTiddler|Transclure le contenu d'un DataTiddler|Dictionnaire", "Transclure le contenu de tous les tiddlers possédants un tag commun": "Transclure le contenu de tous les tiddlers possédants un tag commun|Transclure le contenu de tous les tiddlers possédants un tag commun|Transclusion", "Transclure les images d'un autre wiki dans mon wiki": "Transclure les images d'un autre wiki dans mon wiki|Transclure les images d'un autre wiki dans mon wiki|Images", "Transclure un Tiddler en entier": "Transclure un Tiddler en entier|Documentation|TranscludeAll", "Transclure un Tiddler inexistant": "Transclure un Tiddler inexistant|Transclure un Tiddler inexistant|TranscludeAll", "Transclusion": "Transclusion|Transclusion|TableOfContents", "Transclusion améliorée": "Transclusion améliorée|Transclusion améliorée|TranscludeAll", "Transclusion et wikification": "Transclusion et wikification|Transclusion et wikification|TiddlyWiki", "Transclusion in a formula": "Transclusion in a formula||FormulaOperand Syntax", "Transclusion in WikiText": "Transclusion in WikiText|Transclusion en WikiText [FR]|Transclusion", "Transclusion with Templates": "Transclusion with Templates|Transclusion par gabarits|Transclusion", "Translating Between Filters and Logic Statements": "Translating Between Filters and Logic Statements|Translating Between Filters and Logic Statements (Source)|Filtering", "Travaux sur les tiddlers": "Travaux sur les tiddlers|Exemple d'encours|Task TaskCatLists", "tree Macro": "tree Macro|tree Macro|Macros", "Trianglify Generator": "Trianglify Generator||Sources", "Try Me": "Try Me||Formula", "Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg": "Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg||tabcal23", "TutoJs": "TutoJs|Tutoriel JavaScript|JavaScript", "TutoJsVariables": "TutoJsVariables|Les variables en JavaScript|TutoJs", "Tutoriel": "Tutoriel|Tutoriel|TableOfContents", "Tutoriels pour débuter en JavScript": "Tutoriels pour débuter en JavScript||Sources", "TW Admin A remote admin panel": "TW Admin A remote admin panel||Sources", "TW on Node.js: usage basics": "TW on Node.js: usage basics|TW5 sur Node.Js Usage de base|NodeJs", "tw, tc, tm": "tw, tc, tm|tw, tc, tm|TiddlyWiki", "TW5 - GitHub Issues": "TW5 - GitHub Issues||Sources", "TW5 Classic": "TW5 Classic||Sources", "TW5 en Français": "TW5 en Français|TW5 en Français|Tutoriel", "TW5 JsonMangler": "TW5 JsonMangler|TW5 JsonMangler|Plugins", "TW5 Tribal Knowledge": "TW5 Tribal Knowledge|https://techlifeweb.com/tw5tribalknowledge.html|Sources", "TW5 vs. TWc": "TW5 vs. TWc||Sources", "TW5-Bob": "TW5-Bob||Sources", "TW5-TeXZilla": "TW5-TeXZilla||Sources", "TW5Com": "TW5Com|TW5.com|Rechercher", "TW5ToolMap": "TW5ToolMap|ToolMap|Rechercher", "TWAddle": "TWAddle||Sources", "twitter.svg": "twitter.svg|Image Twitter|$:/tags/Image SocialMacros", "TWJAM5 diffview beta": "TWJAM5 diffview beta||Sources", "UK": "UK|Le Tiddler|ParentField", "Un exemple s'appuyant sur une Base de Données": "Un exemple s'appuyant sur une Base de Données|Un exemple s'appuyant sur une Base de Données|FiltresIntro", "Un filtre utilisant la table des matières": "Un filtre utilisant la table des matières|Un filtre utilisant la table des matières|TOCs", "Un label sur les listes de sélection": "Un label sur les listes de sélection|Un label sur les listes de sélection|SelectWidget", "Un Markup déroulant": "Un Markup déroulant|Un Markup déroulant|WikiText", "Un onglet au pied de chaque Tiddler": "Un onglet au pied de chaque Tiddler||Sources", "Un peu d'histoire": "Un peu d'histoire|Un peu d'histoire|TiddlyWiki", "Un PopUp discret": "Un PopUp discret|Un PopUp discret|Divers", "Un système de commentaires (Sukima - Devin Weaver - TriTarget)": "Un système de commentaires (Sukima - Devin Weaver - TriTarget)||Sources", "Un TiddlyWiki original": "Un TiddlyWiki original||Sources", "Une couleur au hasard": "Une couleur au hasard|Une couleur au hazard|Macros+Js", "Up&Going": "Up&Going|\"Up&Going\" Cours JavaScript|JavaScript", "Upgrader TiddlyWiki": "Upgrader TiddlyWiki||Sources", "Usage de currentTiddler et storyTiddler": "Usage de currentTiddler et storyTiddler|Usage de currentTiddler et storyTiddler|Lists", "Usage de la barre de navigation": "Usage de la barre de navigation|Usage de la barre de navigation|Q&R", "User Implementation Static HTML generation using TiddlyWiki": "User Implementation Static HTML generation using TiddlyWiki|User Implementation Static HTML generation using TiddlyWiki|TiddlyWiki", "Using links to navigate between tiddlers": "Using links to navigate between tiddlers|Utiliser des liens pour naviguer entre les tiddlers|TiddlyWiki", "Using Mathcell with Wikify": "Using Mathcell with Wikify|Exemple Mathcell avec wikify|Mathcell", "Using the read-only single tiddler view": "Using the read-only single tiddler view|Using the read-only single tiddler view|Divers", "UTF-8 Dingbats": "UTF-8 Dingbats||Divers", "Utilisation de la macro": "Utilisation de la macro|Utilisation de la macro|MacroClone", "Utilisation de la variable currentTiddler": "Utilisation de la variable currentTiddler|Utilisation de la variable currentTiddler|Lists", "Utilisation des parenthèses": "Utilisation des parenthèses|Utilisation des parenthèses|WikiText", "Utiliser le Tiddler Modèle": "Utiliser le Tiddler Modèle|Utiliser le Tiddler Modèle|TranscludeAll", "Utiliser les polices de Google dans TW5": "Utiliser les polices de Google dans TW5|Utiliser les polices de Google dans TW5|Divers", "ValChamp": "ValChamp|Éditer la valeur d'un champ|Champs", "ValChamp1": "ValChamp1|Éditer la valeur d'un champ (1)|ValChamp", "ValChamp2": "ValChamp2|Éditer la valeur d'un champ (2)|ValChamp", "Valeurs - Types - Structure": "Valeurs - Types - Structure|Valeurs - Types - Structure|TutoJs", "validé": "validé||Statut", "Values, Types, and Operators": "Values, Types, and Operators|Valeurs, Types, et opérateurs|EloquentJs", "Variable Reference inside Macro": "Variable Reference inside Macro||solution", "VariableDataDictionary": "VariableDataDictionary|Afficher un champ de dictionnaire avec un tiddler en variable|Dictionnaire", "VariableDataDictionaryDoc": "VariableDataDictionaryDoc|Documentation Variable Data Dictionary|VariableDataDictionary", "Variables": "Variables|Variables|TableOfContents", "Variables In Nested Lists": "Variables In Nested Lists|Variable dans les listes imbriquées|Variables", "Variables in WikiText": "Variables in WikiText|Variables en wikitext|Variables", "VariablesDoc": "VariablesDoc|Introduction aux Variables|Variables", "Verge-Or-Foncé": "Verge-Or-Foncé|Verge Or Foncé|BackColor darkgoldenrod", "Vérifiez la version de votre wiki": "Vérifiez la version de votre wiki|Vérifiez la version de votre wiki|Tutoriel", "Vert": "Vert|Vert|BackColor green", "Vert-Citron": "Vert-Citron|Vert Citron|BackColor lime", "Vert-Foncé": "Vert-Foncé|Vert Foncé|BackColor darkgreen", "Vert-Marin-Foncé": "Vert-Marin-Foncé|Vert Marin Foncé|BackColor darkseagreen", "Vert-Olive-Foncé": "Vert-Olive-Foncé|Vert Olive Foncé|BackColor darkolivegreen", "ViewFieldMode": "ViewFieldMode|Gérer les champs en mode visu|Macros", "ViewFieldModeDoc": "ViewFieldModeDoc|Documentation ViewFieldMode|ViewFieldMode", "ViewTagMode": "ViewTagMode|Gérer les tags en mode visu|Macros", "ViewTagModeDoc": "ViewTagModeDoc|Documentation ViewTagMode|ViewTagMode", "ViewWidget": "ViewWidget|Widget View|Widgets", "Vignettes": "Vignettes|Images Vignettes|Images", "VignettesDoc": "VignettesDoc|Documentation|Vignettes", "Violet": "Violet|Violet|BackColor purple", "Vis": "Vis|Vis|Applications", "vis.css": "vis.css|vis.css|$:/tags/Stylesheet", "vis.js": "vis.js|vis.js|Vis $:/tags/RawMarkup", "VisDoc": "VisDoc|Vis Documentation|Vis", "Visualiser les images embarquées de votre wiki": "Visualiser les images embarquées de votre wiki|Visualiser les images embarquées de votre wiki|Images", "W": "W|Tiddler W|Circular dynamic", "W3.CSS Framework intégré à TiddlyWiki": "W3.CSS Framework intégré à TiddlyWiki||Sources", "Web Safe Colors Chart": "Web Safe Colors Chart||Sources", "Weiße_Immensee_(Kordes_1982)_PD.jpg": "Weiße_Immensee_(Kordes_1982)_PD.jpg||tabcal24", "What is this?": "What is this?|What is this? (Source)|Filtering", "When And How To Use CSS Multi-Column Layout": "When And How To Use CSS Multi-Column Layout||Sources", "Why Macro called list field breaks but once wikified it works ?": "Why Macro called list field breaks but once wikified it works ?|Why Macro called list field breaks but once wikified it works ?|Divers", "Widget Messaging in the Stack": "Widget Messaging in the Stack|Widget Messaging in the Stack|MessagesWidget", "WidgetMessage: tm-browser-refresh": "WidgetMessage: tm-browser-refresh|tm-browser-refresh|MessagesWidget", "WidgetMessage: tm-modal": "WidgetMessage: tm-modal|Documentation Widget Message tm-modal|MessageModal", "Widgets": "Widgets|Widgets|TableOfContents", "Widgets Invoking Actions": "Widgets Invoking Actions||", "WidgetsDoc": "WidgetsDoc|Documentation Widgets|Widgets", "WidgetsDoc-1": "WidgetsDoc-1||", "WikiPedia": "WikiPedia|WikiPedia|Rechercher", "WikiText": "WikiText|WikiText|TableOfContents", "Wikitext Markup Reference": "Wikitext Markup Reference|Références Markup WikiText|WikiText", "WikiTextDoc": "WikiTextDoc|Documentation WikiText|WikiText", "Wills gWiZ": "Wills gWiZ||Sources", "World Cities Database et LeafLeft": "World Cities Database et LeafLeft||Task Sources", "WP2": "WP2|Search WikiPedia|WikiPedia", "X": "X|Tiddler X|Circular dynamic", "xlsx": "xlsx|Tableur XLSX|Tableurs", "xlsxDoc": "xlsxDoc|Documentation|xlsx", "XSS Vulnerability and other security concerns": "XSS Vulnerability and other security concerns|Vulnérabilité XSS et autres sujets de sécurité|TiddlyWiki", "Y": "Y|Tiddler Y|Circular dynamic", "Z": "Z|Tiddler Z|Circular dynamic", "Zone CSS": "Zone CSS||Sources", "Comment by 'Prolégomènes' on 'Index and Export'": "Comment by 'Prolégomènes' on 'Index and Export'||" }
{{$:/Styles||caption}}
<tr> <td> <$link to="$:/Supprimer l'espace entre les tiddlers">Supprimer l'espace entre les tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssTiddlerFrame' tag='$:/tags/Stylesheet' checked='$:/tags/Stylesheet ' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal24" text="show"><$button set="$:/state/SampleRowReveal24" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal24" text="show"><$button set="$:/state/SampleRowReveal24" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal24" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-057}} </td> </$reveal>
<tr> <td> <$link to="$:/Supprimer l'espace entre les tiddlers et les bords">Supprimer l'espace entre les tiddlers et les bords</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssStoryRiver' field='padding' checked='0' unchecked=''/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal23" text="show"><$button set="$:/state/SampleRowReveal23" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal23" text="show"><$button set="$:/state/SampleRowReveal23" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal23" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-056}} </td> </$reveal>
<tr> <td> <$link to="$:/Supprimer les bordures de tiddlers"> Supprimer les bordures de tiddlers</$link> </td> <td align="center"> <$checkbox tiddler='$:/cssTiddlersBordersOnly' tag='$:/tags/Stylesheet' checked='$:/tags/Stylesheet ' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal25" text="show"><$button set="$:/state/SampleRowReveal25" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal25" text="show"><$button set="$:/state/SampleRowReveal25" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal25" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-126}} </td> </$reveal>
<tr> <td> <$link to="$:/Supprimer les State Tiddlers">Supprimer les "State Tiddlers" (plugin)</$link> </td> <td align="center"> [[Cliquer ici, puis faites votre choix|$:/plugins/wikilabs/ui/remove-states]] </td> <td align="center"> <$reveal type="nomatch" state="$:/state/int08" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int08" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/int08" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/int08" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/int08" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-131}} </td> </$reveal>
{{$:/Surface||caption}}
{{$:/SurfaceContrôle||caption}}
{{$:/SurfaceDocUser||caption}}
<tr> <td> <$link to="$:/Tag Apex">Tag Apex</$link> </td> <td align="center"> <$edit-text tiddler='$:/Tiddler Breadcrumbs Template' field='apex_tag' size=20/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/ari04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari04" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/ari04" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari04" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/ari04" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-134}} </td> </$reveal>
!!Liste des macros contenues dans ce wiki <<list-links "[tag[Macros]]">>
{{$:/tags/Stylesheet||title}}
<tr> <td> <$link to="$:/Taille de la bordure">Épaisseur de la bordure</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssNavBar' field='navbar-borderheight' tag="input"/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/nav08" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav08" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/nav08" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/nav08" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/nav08" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-145}} </td> </$reveal>
<tr> <td> <$link to="$:/Taille police">Taille de la police de caractères</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssEditeur' field='font-size'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal32" text="show"><$button set="$:/state/SampleRowReveal32" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal32" text="show"><$button set="$:/state/SampleRowReveal32" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal32" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-137}} </td> </$reveal>
<$list filter="[all[current]tag[Notes]]"> <$set name="tid" value="Notes-for $(currentTiddler)$"> <$edit-text tiddler=<<tid>> placeholder="Your text goes here" default="Votre note sera automatiquement sauvegardée." rows="3" minHeight="3em" autoHeight="yes" class="te-vt-note-field"/> <div class="te-vt-note-source"><$link to=<<tid>>><<tid>></$link></div> </$set> <style> .te-vt-note-field { width: 100%; } .te-vt-note-source { font-size: 0.6em; text-align: right; line-height: 1.2em; } </style> </$list> <!-- Template to show a field for notes on tiddlers with the tag <<tag ShowNotes>> see [[Field for Notes on Tiddlers with a Defined Tag]] -->
{{||CSS Options Template}}
index
$:/temp/appear/PopUpSlidersExamples1684804425/popup/block//popups-handler
👉 ~TiddlyLearn, @@color:#FF0000;[{{$:/SiteTitle}} {{$:/SiteSubtitle}}]@@ s'appuie notamment sur le framework [[Spectre]] pour la partie CSS.
.i18n-edit{float:right;display:none;opacity:0.5} .i18n-edit svg {width:16px} div:hover > p > .i18n-edit, div:hover > .i18n-edit, h1:hover > .i18n-edit, h2:hover > .i18n-edit, h3:hover > .i18n-edit{display:block} .i18n-edit.alert{color:red;margin:0 4px}
first-name last-name age profession
[]
[]
[]
[]
[]
initialized
{ "tiddlers": { "$:/info/browser": { "title": "$:/info/browser", "text": "yes" }, "$:/info/node": { "title": "$:/info/node", "text": "no" }, "$:/info/url/full": { "title": "$:/info/url/full", "text": "https://learn.tiddlyhost.com/" }, "$:/info/url/host": { "title": "$:/info/url/host", "text": "learn.tiddlyhost.com" }, "$:/info/url/hostname": { "title": "$:/info/url/hostname", "text": "learn.tiddlyhost.com" }, "$:/info/url/protocol": { "title": "$:/info/url/protocol", "text": "https:" }, "$:/info/url/port": { "title": "$:/info/url/port", "text": "" }, "$:/info/url/pathname": { "title": "$:/info/url/pathname", "text": "/" }, "$:/info/url/search": { "title": "$:/info/url/search", "text": "" }, "$:/info/url/origin": { "title": "$:/info/url/origin", "text": "https://learn.tiddlyhost.com" }, "$:/info/browser/screen/width": { "title": "$:/info/browser/screen/width", "text": "1366" }, "$:/info/browser/screen/height": { "title": "$:/info/browser/screen/height", "text": "768" } } }
{ "tiddlers": { "$:/temp/mod-plugin/status": { "text": "Running Mod Loader...\n\nno patches found.\n\nPatches must define field modloader-target and set type to `text/x-patch`.\n\n''NOTE'': it's too late for the modloader to patch these modules:\n\n* `startup` [[$:/.tb/modules/startup/hide-sidebar.js]]\n* `startup` [[$:/plugins/ajh/tiddlytime/time.js]]\n* `startup` [[$:/plugins/inmysocks/StartupActions/startup-actions.js]]\n* `startup` [[$:/core/modules/browser-messaging.js]]\n* `startup` [[$:/core/modules/startup/commands.js]]\n* `startup` [[$:/core/modules/startup/favicon.js]]\n* `startup` [[$:/core/modules/startup/info.js]]\n* `startup` [[$:/core/modules/startup/load-modules.js]]\n* `startup` [[$:/core/modules/startup/password.js]]\n* `startup` [[$:/core/modules/startup/render.js]]\n* `startup` [[$:/core/modules/startup/rootwidget.js]]\n* `startup` [[$:/core/modules/startup.js]]\n* `startup` [[$:/core/modules/startup/story.js]]\n* `startup` [[$:/core/modules/startup/windows.js]]\n* `library` [[$:/plugins/ebalster/modloader/diff_patch_match.js]]\n* `startup` [[$:/plugins/ebalster/modloader/loader.js]]\n* `library` [[$:/plugins/ebalster/modloader/utils.js]]\n* `startup` [[$:/plugins/tiddlywiki/xlsx-utils/startup.js]]\n\n" } } }
$:/_ExcelImporter/ImportSpecifiers/Field
{ "wikiUrl": "./Learn.html", "wikiTitle": "Apprendre" }
loaded
C2
$:/Généralités
10:22:06
13:41:04
{{$:/doc-user-023}} <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Informations générales"></li> <li class="menu-item">[[Gestion Login, MDP et Utilisateur|$:/doc-user-076]]</li> <li class="menu-item">[[Fonctionnement|$:/doc-user-077]]</li> <li class="menu-item">[[Techniquement|$:/doc-user-078]]</li> <li class="menu-item">[[Tiddlers requis|$:/doc-user-079]]</li> <li class="menu-item">[[Bouton et icône de déconnexion|$:/doc-user-080]]</li> </ul> </div> <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> <!-- Début Ligne 1 --> <tr> <td> [[Connexion|$:/admin]] </td> <td align="center"> Dans le [[menu de la NavBar|$:/Administration]], cliquez sur Connexion pour accéder à vos données. </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal1" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-081}} </td> </$reveal> <!-- Fin Ligne 1--> <!-- Début Ligne 2 --> <tr> <td> [[Déconnexion|$:/Déconnexion]] </td> <td align="center"> La mise en ligne de votre wiki suite à une déconnexion interdira tout droits aux visiteurs de votre site. </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal2" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-082}} </td> </$reveal> <!-- Fin Ligne 2--> <!-- Début Ligne 3 --> <tr> <td> [[Utilisateur|$:/admin/module/profile]] </td> <td align="center"> Pour changer votre login et modifier votre mot de passe administrateur. </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal3" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-022}} </td> </$reveal> <!-- Fin Ligne 3--> <!-- Début Ligne 4 --> <tr> <td> [[Menu Admin|$:/Administrateur]] </td> <td align="center"> {{$:/Administrateur}} </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal4" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-084}} </td> </$reveal> <!-- Fin Ligne 4--> </tbody> </table>
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button>
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button>
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button>
\define lingo-base() $:/language/ControlPanel/Basics/ {{$:/HeadingInterface}} <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Afficher le titre du wiki}} {{$:/Afficher le sous-titre du wiki}} {{$:/Afficher le pied de page}} {{$:/Afficher le slogan}} {{$:/Couleur du bouton bas de page}} {{$:/Empêcher la story River de recouvrir les barres latérales}} {{$:/Choisissez votre palette de couleurs}} {{$:/Supprimer les State Tiddlers}} {{$:/Couleur de fond de la page}} {{$:/Image de fond de page}} </tbody> </table> <$checkbox tiddler="Bouton cache de la sidebar" tag="$:/tags/Stylesheet"> Arrondir le bouton de la barre latérale</$checkbox> ;Fil d'Ariane <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Afficher le fil sur chaque Tiddler}} {{$:/Profondeur maxi}} {{$:/Utiliser un tag Apex}} {{$:/Tag Apex}} </tbody> </table> !![[Couleur des liens|$:/cssLinksColor]] !![[Couleurs importantes|$:/plugins/telmiger/bricks/paletteeditor]] : {{$:/plugins/telmiger/bricks/paletteeditor}}
{{$:/doc-user-095}} <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Informations générales"></li> <li class="menu-item">[[Fonctionnement|$:/doc-user-038]]</li> <li class="menu-item">[[Caractéristiques|$:/doc-user-112]]</li> </ul> </div> <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Aff./Cach. Bouton ET menu gauche}} {{$:/Afficher/cacher le chevron}} {{$:/Déroulant/Fixe}} {{$:/Dans/Hors Control Panel}} </tbody> </table> ;Barre latérale affichée : <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Barre ouverte : Couleur de fond}} {{$:/Couleur de la bordure Droite}} {{$:/Épaisseur de la bordure Droite}} {{$:/Largeur de la barre latérale Gauche}} </tbody> </table>
{{$:/HeadingMenu}} <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Couleur colonnes de la NavBar}} </tbody> </table>
\define lingo-base() $:/language/ThemeTweaks/ {{$:/HeadingNavBar}} <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Afficher/Cacher la barre de navigation}} {{$:/Afficher/Supprimer le menu de la barre de navigation}} {{$:/Couleur de la barre}} {{$:/Hauteur de la barre}} {{$:/Story top position}} {{$:/Afficher la bordure}} {{$:/Couleur de la bordure}} {{$:/Taille de la bordure}} </tbody> </table>
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle Gabarits|$:/TemplatePreSet]]<<f-i layers 'x5'>> </div> </div> </div> @@ Gabarits pré-paramétrés. Choisissez celui qui vous convient le mieux. <<tabs "[tag[$:/Preset]sort[sub.num]]" "tables" "$:/state/tab2" "tc-vertical">> <$details summary="Documentation"> {{$:/doc-user-042}} </$details>
\define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end {{$:/HeadingSideBar}} <div class="tw-admin-content"> <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Position SideBar}} {{$:/Largeur de la barre latérale}} {{$:/Cacher la SideBar au démarrage}} {{$:/Agencement de la barre latérale}} {{$:/Afficher l'onglet Sommaire}} {{$:/Afficher l'onglet More}} {{$:/Afficher l'onglet Open}} {{$:/Afficher l'onglet Recent}} {{$:/Afficher l'onglet Tools}} {{$:/Voir/Cacher le Chevron SideBar}} {{$:/Cacher la SideBar (Espace Comblé)}} {{$:/Ôter la SideBar (Espace non comblé)}} {{$:/Afficher le bouton Nouveau Tiddler}} {{$:/Couleur du bouton Nouveau Tiddler}} {{$:/Afficher le bouton Sauver}} {{$:/Couleur du bouton Sauver}} {{$:/Afficher le bouton de contrôle}} {{$:/Couleur du bouton Control Panel}} {{$:/Afficher le bouton SideBarTabs}} {{$:/Voir/Cacher vos paramètres dans la sidebar}} {{$:/Voir/Cacher vos paramètres dans ControlPanel}} {{$:/Afficher la SideBar si déconnecté}} {{$:/Afficher la barre de recherche}} {{$:/Largeur de la barre de recherche}} {{$:/Couleur tous boutons SideBar}} {{$:/Couleur hover tous boutons}} {{$:/Couleur de fond SideBar}} {{$:/Opacité fond SideBar}} {{$:/Afficher l'onglet Commentaires}} {{$:/Afficher le titre du wiki dans la SideBar}} {{$:/Afficher le sous-titre du wiki dans la SideBar}} </tbody> </table> </div> <style> .tw-admin-content { /*margin:0 auto;*/ width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: 1em; margin: auto .4em -.3em .5em; fill:crimson; } img {vertical-align: middle;} </style>
<$button class="tc-btn-invisible icon-menu" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> {{!!menu-icon}} {{!!menu-title}} </$button>
<$button class="tc-btn-invisible icon-menu" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> {{!!menu-icon}} {{!!menu-title}} </$button>
<$button class="tc-btn-invisible icon-menu" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> {{!!menu-icon}} {{!!menu-title}} </$button>
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ {{$:/HeadingTiddlers}} !!Tiddlers en mode visualisation <div class="tw-admin-content"> <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Afficher/Supprimer titres des tiddlers}} {{$:/Gestion du titre des tiddlers}} {{$:/Afficher/Supprimer les boutons de contrôle des tiddlers}} {{$:/Afficher/Supprimer le sous-titre des tiddlers}} {{$:/Afficher une ligne de séparation sous le titre du tiddler}} {{$:/Afficher les tags du tiddler}} {{$:/Afficher les boutons au survol souris}} {{$:/Afficher le bouton d'édition}} {{$:/Couleur Bouton édition}} {{$:/Afficher le bouton Info}} {{$:/Couleur Bouton Info}} {{$:/Afficher le bouton Close}} {{$:/Couleur Bouton Close}} {{$:/Afficher/Supprimer le bouton de gestion des tags en mode visu}} {{$:/Afficher/Supprimer le bouton de gestion des champs en mode visu}} {{$:/Afficher le bouton d'encryption de la barre d'outils}} {{$:/Ajouter Créer un nouveau Tiddler aux boutons de contrôle}} {{$:/Afficher le bouton Sauvegarder le wiki aux boutons de contrôle}} {{$:/Afficher le bouton Panneau de contrôle aux boutons de contrôle}} {{$:/Afficher en PopUp/Cacher le bouton d'accès au contenu de la SideBar}} {{$:/Afficher la barre de recherche aux boutons de contrôle}} {{$:/Afficher/Retirer le bouton Stycky Notes}} {{$:/Supprimer l'espace entre les tiddlers et les bords}} {{$:/Supprimer l'espace entre les tiddlers}} {{$:/Supprimer les bordures de tiddlers}} {{$:/Enjoliver les bordures des tiddlers}} {{$:/Ajouter Ombre portée aux bordures}} {{$:/Justifier les textes des tiddlers}} {{$:/Couleur de fond du bloc tiddler}} {{$:/Transparence du bloc tiddlers}} {{$:/Couleur tous boutons Tiddlers}} {{$:/Couleur hover tous boutons Tiddlers}} </tbody> </table> !!Tiddlers en mode édition <table class="table table-striped table-hover"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Taille police}} {{$:/Nom de la police}} {{$:/Couleur de la police}} {{$:/Couleur de fond éditeur}} {{$:/Espacement des lignes}} {{$:/Couleur de fond search/champs}} {{$:/Afficher le bouton Delete}} {{$:/Couleur Bouton Delete}} {{$:/Afficher le bouton Cancel}} {{$:/Couleur Bouton Cancel}} {{$:/Afficher le bouton Done}} {{$:/Couleur Bouton Done}} </tbody> </table> </div> <style> .tw-admin-content { /*margin:0 auto;*/ width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: 1em; margin: auto .4em -.3em .5em; fill:crimson; } </style>
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !![[Contrôle Versions|$:/TemplateVersioning]]<<f-i watch 'x5'>> </div> </div> </div> @@ *Version : {{$:/TemplateVersioning!!vernum}} *Date of realease: {{$:/TemplateVersioning!!date-release}} ;Including: *10 Tiddlers $:/VersioningOff *120 Tiddlers $:/VersioningMain *101 Tiddlers $:/VersioningAide *10 polices de caractères $:/VersioningFonts [[Liste de contrôle via champs tf1, tf2 et tf3|$:/VersioningContrôle]] <$details summary="Documentation"> <<< {{$:/doc-user-100}} <<< <<< {{$:/doc-user-101}} <<< </$details> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
<div align="right"><$button class="btn btn-success" tooltip="Voir ce Tiddler"><$action-navigate to=[tag{!!title}]/><i class="icon icon-more-horiz"></i></$button></div> <!-- Un possible template à taguer $:/tags/ViewTemplate incorporant un bouton en bas de page donnant un lien sur letitre du tiddler. -->
{{$:/doc-user-060}} <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Informations générales"></li> <li class="menu-item">[[Surface occupée : Définition|$:/doc-user-146]]</li> <li class="menu-item">[[Surface occupée : Exemple illustré|$:/doc-user-059]]</li> <li class="menu-item">[[Surface occupée : Priorités|$:/doc-user-061]]</li> </ul> </div> <table class="table table-striped table-hover"> <thead> <th align="center">Paramètres</th> <th align="center">Description</th> <th align="center">Aide</th> </thead> <tbody> {{$:/Pleine Largeur}} {{$:/1500px}} {{$:/1200px}} {{$:/1000px}} {{$:/900px}} {{$:/770px}} {{$:/600px}} </tbody> </table>
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve" class="tc-image-bold tc-image-button" width="16pt" height="13pt" > <g> <g> <rect x="163.641" y="169.453" transform="matrix(0.7071 -0.7071 0.7071 0.7071 -128.5961 261.109)" width="174.495" height="232.66"/> </g> </g> <g> <g> <rect x="384.631" y="99.711" transform="matrix(0.7071 -0.7071 0.7071 0.7071 40.0328 330.9679)" width="69.798" height="34.899"/> </g> </g> <g> <g> <path d="M501.779,150.062l-20.565-20.565l-74.033,74.033l-74.032-74.033l74.032-74.033l-20.565-20.564 c-13.629-13.629-35.727-13.629-49.355-0.001l-82.259,82.259L419.52,281.675l82.259-82.259 C515.407,185.788,515.406,163.69,501.779,150.062z"/> </g> </g> <g> <g> <path d="M82.258,289.9l-32.903,32.904c31.803,31.8,31.802,83.362,0.001,115.161L0,487.323h98.711 c31.802-31.803,83.362-31.803,115.162,0l32.903-32.904L82.258,289.9z"/> </g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> <g> </g> </svg>
.tc-titlebar:before { content: url(<<datauri "$:/tesseract/Moments/TitleIcon">>); background-position: left; background-repeat: no-repeat; display: inline-table; width: 57px; height: 28px; position: relative; margin-left: 0px; margin-right: 10px; z-index: 5; } <$list filter="[prefix[$:/state/img/]]"> .tc-titlebar:before {display:none;} </$list> .tc-titlebar h2:hover { color: #43CACC; transition: all 0.4s ease-out; outline: 0; }
iVBORw0KGgoAAAANSUhEUgAAADkAAAAcCAYAAADbeRcAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMS8wNi8xM9F5020AAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAADa0lEQVRYheWZ0UtbVxzHP7kYGx+6+WQ7OqhIHsrosrZbHRl52Fw2TctahdFEHFxX11XYy/6CtM1fsJdBX9ZZuu1xKm5iW6tigxemA7GPcsfWhxYDwqQxShL47SE3pTf33DS6mBu2D5yX3zn+fufLOd7zPSc+EaEaxcJuO9BvtfeBVyuGbAELwAQw0eIP/F01oQf43ERa4r4B9D3mvA183UxilSKLhd1+YAznqtXKFjDc4g9M7H9q9UOrDBQLu9eBcfYvEOtvx61cnmMTaU3qWh3zX2sGoc+3q7VFx1WDNjc3SacXWTKWePz4L/L5PAB+v59jx14n+uFHRCIRDh9+xa3OgJdb1yci5Y/Mn1Rs0WKxyMLCPD/+dIfTp98hHH6PcDhiS2AYaQxjiUePVvnyyihnz3ar6mwBnZ59jESEQn5nrJDfkcr2w51bcunSRTHNdXkZprku8Xi/TE9POvJYbUxE8KJRyO+0qyZ1/960DA19Ktls9qUCy2SzWdH1hDxcnHMT2u6VyGHVhOLxgZpWsBLTXBddH3QTOdxogX19H4hGycnYmJwcp7v7Xbq6gra4YaTR9UFisR5isR50fRDDSNvGdHUFCYXeYnb2vuq/w1GrEWiUrJqNmbszRKO9tphhpEmlkmQyG89jmcwGqVTSITQa7eXX6SlVPUetRqChOPQzmQ1CoVO22M2b37omqewLhU7x9MlT1dB/YzD2TYsqWD4HX+TFFaylbzu3zScXzqmGV78RHABKkfVA0zQmJ35xFvQHfAdVU0Us1iMO7wrQ2trqiHV0HHFNpOpT5fAKjZIbsXH06Gusra3aYqOjX7kmqexbW1vl+PFO1VBHrUagUbrw2jh/7jyzs3dtsXA4QjKZsq1aR8cRksmUw+o9eHCPixeUp4WjVkNQmYGd3DNJJPZvBq5eHW4aMyDVbN3DxTm5/PnQnm3dyMhnsvzbUnPZOhF3gz419bPE4/01G/REYkBmZqaazqBXvWoBrKwsc+v77zhx4o2qVy3TXOeLkSucPPkmPp/jlPD0qlXTpTmXy7Hy+zLz83P8YZpkt7MAHDoUIBgM0vtxH2fOvE1bW5tbHe8vzWUO4PkD4EaLP3C9zjn3hM0MWJO5Ucf8nguE/+uTJIA1uU5KD8V75Talj0xTCIQqL+hl/gs/E/wDV6J3EoZ4g5QAAAAASUVORK5CYII=
mark.roundedmark { background: yellow; padding: 0 8px; border-radius: 1em; }
\define contentendcoded() <$view format="urlencoded"> \end \define titleencoded() <$view tiddler="$:/state/title" format="urlencoded"> \end \define titleandbody(firstprefix secondprefix icon) <$set name=bar filter="[<heading>addprefix[$firstprefix$]addsuffix[$secondprefix$]]"> <$set name=presto filter="[<foo>addprefix<bar>]"> <a target="_blank" href=<<presto>>> {{$icon$}}</a> </$set></$set> \end <$button popup=<<qualify $:/state/social>> class="tc-btn-invisible tc-btn-socialRaw">{{$:/core/images/globe}}<$action-setfield $tiddler="$:/state/title" text={{!!title}}/></$button> <$reveal state=<<qualify $:/state/social>> type="popup" class="thinwidthdropdown animated fadeIn"> <$tiddler tiddler={{$:/state/title}}> <$wikify name=heading text=<<titleencoded>>> <$wikify name=foo text=<<contentendcoded>>> <<titleandbody "https://www.reddit.com/r/TiddlyWiki5/submit?title=" "&text=" "reddit.svg">><br/> <$set name=bar filter="[<foo>addprefix[https://twitter.com/intent/tweet?text=]]"> <a target="_blank" href=<<bar>>> {{twitter.svg}}</a> </$set><br/> <<titleandbody "mailto:?Subject=" "&body=" "mail.svg">><br/> </$wikify> </$wikify> </$tiddler> </$reveal>
.thinwidthdropdown svg { height: 35px; width: 35px; }
<$action-sendmessage $message="tm-edit-text-operation" $param="wrap-selection" prefix="""<mark class="roundedmark">""" suffix="</mark>" />
$:/themes/tiddlywiki/vanilla
--- /* System */ .tc-control-panel table .autowidthinput input {width:auto;} .tc-sidebar-lists .tc-tab-set > .tc-tab-content .tc-image-button img { margin: 0 !important; display:inline-block } --- /*Base*/ --- html, body { height: 100%; } body { background: #fefefe; color: #424242; font-family: "Open Sans", arial, sans-serif !important; font-size: 15px; } h1, h2, h3, h4, h5, h6 { margin-bottom: 33px; text-transform: none; } h1 { font-size: 26px; } h2 { font-size: 24px; } h3 { font-size: 20px; margin-bottom: 20px; } h4 { font-size: 18px; margin-bottom: 18px; } h5 { font-size: 16px; margin-bottom: 15px; } h6 { font-size: 14px; margin-bottom: 12px; } p { line-height: 1.8; margin: 0 0 30px; } a { text-decoration: none; !important} ul, ol { list-style-position: inside ; line-height: 1.8 ; margin: 0 0 40px; padding: 0 } ul ul, ul ol, ol ul, ol ol { margin: 10px 0 0 20px } ul li, ol li { margin: 0 0 10px } ul li:last-of-type, ol li:last-of-type { margin-bottom: 0 } blockquote { border-left: 1px dotted #303030; margin: 40px 0; padding: 5px 30px; } blockquote p { color: #AEADAD; display: block; font-style: italic; margin: 0; width: 100%; } img { display: block; margin: 40px 0; width: auto ; max-width: 100%} pre { background: #F1F0EA !important; border: 1px solid #DDDBCC !important; border-radius: 3px !important; margin: 0 0 40px !important; padding: 15px 20px !important; } hr { border: none !important; border-bottom: 1px dotted #303030 !important; margin: 45px 0 !important; } table { margin-bottom: 40px !important; width: 100% !important; } table tbody > tr:nth-child(odd) > td, table tbody > tr:nth-child(odd) > th { background-color: #f7f7f3 !important; } table th { padding: 0 10px 10px !important; text-align: left !important; } table td { padding: 10px !important; } table tr { border-bottom: 1px dotted #AEADAD !important; } ::selection { background: #FFF5B8 !important; color: #000 !important; display: block !important; } ::-moz-selection { background: #FFF5B8 !important; color: #000 !important; display: block !important; } .hidden { text-indent: -9999px !important; visibility: hidden !important; display: none !important; } .clearfix:after { content: "" !important; display: table !important; clear: both !important; } code { background:transparent !important; border:none !important; } --- /*Title*/ --- .tc-titlebar h2.tc-title { font-size: 52px; display: block; font-weight: 700; margin: 15px 0; text-align: center; text-transform: uppercase; color: #424242; fill: #424242 !important; word-wrap: break-word; font-family: "Open Sans", arial, sans-serif; margin-block-start: 1em; margin-block-end: 1em; line-height: 1.2; margin-bottom: 10px; } .titleclass { font-size: 52px; display: block; font-weight: 700; margin: 15px 0; text-align: center; text-transform: uppercase; color: #424242; fill: #424242 !important; word-wrap: break-word; font-family: "Open Sans", arial, sans-serif; margin-block-start: 1em; margin-block-end: 1em; line-height: 1.2; margin-bottom: 10px; } .tc-tiddler-title::after { border-bottom: 1px dotted #303030; content: ""; display: block; margin: 30px auto 0; width: 100px; } div.tc-tagged-interface h2.tc-title, div.tc-tagged-interface div.tc-subtitle, div.tc-tagged-interface div.tc-tags-wrapper {display:none;} @media only screen and (max-width: 768px) { .tc-titlebar h2.tc-title {font-size: 28px;font-size:{{$:/themes/ghostwriter/user/mobile!!titlesize}}; margin-top: 40px !important;} .tc-site-title, .tc-titlebar{font-size:2em !important;} .titleclass {font-size: 28px !important; margin-top: 40px !important;} } tc-tagged-Interface .tc-title {display:none;} /* Subtitle */ div.tc-tiddler-frame .tc-subtitle { color: #AEADAD; font-size: 14px; font-weight: 600; line-height: 1; margin: 25px auto 0; text-align: center; text-transform: uppercase; display: block; margin-block-start: 1em; margin-block-end: 1em; padding-bottom: 25px; } .tc-subtitle>a{ display:none !important; } <$reveal type=nomatch state="$:/status/UserName" text=""> .tc-subtitle:after{ content: "BY: {{$:/status/UserName}}"; font-weight:700; } </$reveal> /* Body */ div.tc-tiddler-frame > .tc-tiddler-body { margin: 0 auto; position: relative; width: 100%; max-width: 810px; border-top: 6px solid #303030; padding-top: 50px; } @media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { div.tc-tiddler-frame > .tc-tiddler-body { font-size: {{$:/themes/ghostwriter/user/mobile!!fontsize}}; } } /* Tags */ button.tc-tag-label, span.tc-tag-label { font-size:14px !important; line-height: normal !important; background: transparent !important; text-decoration: none !important; color:#666 !important; } /* The tags in the viewTemplate has inbuilt style. Hence the use to 'important' to overcome that*/ div.tc-tiddler-frame > div.tc-reveal >div.tc-tags-wrapper >span.tc-tag-list-item> button { color: {{!!theme_color}} !important; } .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-missing:hover, .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-resolves:hover, .tc-edit-tags .tc-tiddlylink.tc-tiddlylink-shadow:hover { border-bottom: none !important; padding: 4px 14px 4px 14px !important; } /* Links */ .tc-body a:hover { border-bottom: 1px dotted {{!!theme_color}}; } .tc-body a.tc-tiddlylink-missing { font-style: normal !important; color: #237095 !important; } a.tc-tiddlylink-missing:hover, button.tc-tiddlylink:hover, a.tc-tiddlylink:hover { text-decoration: none !important; border-bottom: 1px dotted {{!!theme_color}} !important; } a.tc-tiddlylink-external { text-decoration: none !important; color: #3C2BB1 !important; background-color: inherit !important; } a.tc-tiddlylink-external:hover { border-bottom: 1px dotted {{!!theme_color}} !important; } .tc-tag-list-item > span > div.tc-menu-list-item > a:hover { border-bottom: none !important; padding: 0 14px 0 14px !important; } tc-block-dropdown tc-search-drop-down tc-popup-handle { border-bottom: none !important; padding:initial !important; } div.tc-menu-list-item > a:hover { border-bottom:none !important; } /* Tag Drop Down */ .tc-edit-tags .tc-block-dropdown{ position: absolute !important; min-width: 220px !important; background-color: #FEFEFE !important; white-space: nowrap !important; z-index: 1000 !important; text-shadow: none !important; color: #606060 !important; font-family: gotham, helvetica, arial, sans-serif !important; font-size: 13px ; font-weight: 500 !important; right: 70% !important; padding: 15px 7px !important; border: 3px solid rgba(217, 217, 217, .4) !important; border-top: 1px solid rgba(217, 217, 217, .4) !important; border-left: 1px solid rgba(217, 217, 217, .4) !important; margin: 1rem !important; margin-top: 4px !important; text-overflow: ellipsis !important; box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important; } --- /* Site Header */ --- .site-header { padding: 60px 0 0 !important; overflow: auto !important; text-align: center !important; text-transform: uppercase !important; } .site-title-wrapper { display: table !important; margin: 0 auto !important; } .site-title { float: left !important; font-size: 14px !important; font-weight: 600 !important; margin: 0 !important; text-transform: uppercase !important; } .site-title a { float: left !important; background: #f03838 !important; color: #FEFEFE !important; padding: 8px 10px 8px !important; font-weight: normal; -webkit-user-select: inherit; } .site-title a:hover { background: #303030 !important; border-bottom: none !important; } .site-logo { display: block !important; } .site-logo img { margin: 0 !important; } .site-nav { list-style: none !important; margin: 28px 0 10px !important; } .site-nav-item { display: inline-block !important; font-size: 14px !important; font-weight: 700 !important; margin: 0 10px !important; text-transform: uppercase !important; color: {{!!theme_color}} !important; text-decoration: none !important; padding-right: 15px !important; font-family: "Open Sans", arial, sans-serif !important; line-height: 1.8 !important; text-align: center !important; } .site-nav-item:hover { color: #424242 !important; } --- /* Site Subtitle */ --- .subtitleclass { font-family:{{!!sitesubtitlefont}}; color:#f03838; text-transform: none; font-size:{{!!sitesubtitlefontsize}}; } --- /* Table of Contents */ --- .post-stub-title { display: inline-block; margin: 0 !important; text-transform: none !important; font-size: 16px !important; } .post-index{ margin: 0 auto !important; position: relative !important; width: 100% !important; max-width: 889px !important; } .post-index ol { list-style: none !important; display: block !important; margin-block-start: 1em !important; margin-block-end: 1em !important; } .post-index li li a { font-weight: 900 !important; padding-inline-start: 5px !important; margin: 0 0 0 !important; padding: 0 0 0 25px !important; transition: all 0.2s ease-in-out !important; } .post-index li li a:hover{ padding: 20px 12px !important; } @media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .post-index li li a {padding: 0 !important;} .post-index li li a:hover {padding: 0 !important;} } .post-stub { color: #424242 !important; font-family: "Open Sans", arial, sans-serif !important; font-size: 18px !important; line-height: 1.8 !important; display: list-item !important; text-align: match-parent !important; border-bottom: 1px dotted #303030 !important; margin: 0 !important; position: relative !important; padding: 20px 5px !important; } @media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .post-stub {font-size: 15px !important;line-height: 1.5 !important;} .post-stub .tc-btn-invisible {padding: 0 25px 0 0;} .post-stub-date {display:none;} .post-stub-title {display: inline;} .post-stub button svg.tc-image-right-arrow { height: 1.5em; width: 1.5em; background: #fea; border-radius: 50%; padding: 3px;} } .post-stub a { color: #424242 !important; padding-inline-start: 10px !important; margin: 80px 40px 0 !important; padding: 35px 0 0 !important; } @media only screen and (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .post-stub a {margin: 0 !important;} } .post-stub a:hover{ color:{{!!theme_color}} !important; outline: 0 !important; border-bottom:none !important; } --- /*Theme Sake */ --- .tc-tiddler-frame { padding: 0 42px 42px 42px !important; } @media only screen and (max-width: 768px) { .tc-tiddler-frame { padding: 0 10px 10px 10px !important; } .tc-story-river { padding: 20px !important; width: 100% !important; } } @media (max-width: 960px) { .tc-story-river {position:fixed} } --- /*GENERIC*/ --- .tc-control-panel textarea, .tc-control-panel input[type="text"], .tc-control-panel input[type="search"], .tc-control-panel input[type=""], .tc-control-panel input:not([type]), .tc-edit-field-value input[type="text"], .tc-type-selector input[type="text"] { border: 1px solid #c4c4c4 !important; } .tc-block-dropdown { border-radius: 4px !important; } .tc-block-dropdown a:hover { background-color: #f0e68c !important; } .tc-drop-down { color: #606060 !important; font-family: gotham, helvetica, arial, sans-serif !important; font-size: 13px; font-weight: 500 !important; position: relative; right: 70% !important; padding: 15px 7px !important; border-radius: 2px !important; border: 3px solid rgba(217, 217, 217, .4) !important; border-top: 1px solid rgba(217, 217, 217, .4) !important; border-left: 1px solid rgba(217, 217, 217, .4) !important; margin: 1rem !important; margin-top: 4px !important; min-width: calc(100% + 100px) !important; width: -moz-fit-content !important; overflow: visible !important; text-overflow: ellipsis !important; box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important; } .tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button { color: #444 !important; background-color: #f0e68c !important; text-decoration: none !important; } .tc-titlebar .tc-drop-down { min-width: calc(100% + 30px) !important; } .tc-password-wrapper { text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5) !important; background-color: #fbfcFe !important; border: 1px solid rgb(225, 225, 225) !important; box-shadow: 0 6px 20px rgba(0, 0, 0, .04), -6px 8px 15px rgba(0, 0, 0, .04), 6px 8px 15px rgba(0, 0, 0, .04) !important; height: 300px !important; width: 300px !important; } .tc-password-wrapper input { width: 100% !important; color: #000 !important; border: 1px solid rgb(225, 225, 225) !important; padding: 5px !important; margin-bottom: 5px !important; } .tc-password-wrapper button { width: 100% !important; border-radius: 5px !important; text-decoration: none !important; color: #fff !important; background-color: #26a69a !important; text-align: center !important; letter-spacing: .5px !important; transition: .2s ease-out !important; cursor: pointer !important; border: none !important; padding: 5px !important; margin-bottom: 5px !important; } .tc-password-wrapper h1 { color: #666 !important; font-size: 13px; text-transform: uppercase !important; text-align: center !important; } hr { color: #ececec; } .tg td { font-size: 13.5px !important; overflow: hidden !important; padding: .3em !important; word-break: normal !important; border-width: 0 !important; } tr:nth-child(even) { width: 100% !important; background-color: #f6f3f6 !important; } --- /* TIDDLER TOOLBAR */ --- <$reveal type="nomatch" state="$:/themes/ghostwriter/transparencystate" text="none"> @media only screen and (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-tiddler-view-frame .tc-tiddler-controls svg { fill: transparent; } </$reveal> <$reveal type="match" state="$:/themes/ghostwriter/transparencystate" text="close"> .tc-tiddler-view-frame .tc-tiddler-controls svg.tc-image-close-button {fill: #cccccc;} </$reveal> .tc-tiddler-view-frame .tc-tiddler-controls:hover svg, .tc-tiddler-view-frame .tc-tiddler-controls .tc-popup svg { fill: #cccccc; } } --- /* BUTTON ANIMATION */ --- .tc-page-controls svg, .tc-tiddler-controls svg, .tc-topbar button svg, .tc-sidebar-scrollable { -webkit-transition: fill 200ms ease-in-out; -moz-transition: fill 200ms ease-in-out; transition: fill 200ms ease-in-out; } --- /** * Notification */ --- .tc-notification { position: fixed !important; top: 35px !important; right: 50px !important; z-index: 1300 !important; width: 300px !important; height: 50px !important; background-color: #FABF67 !important; border: none !important; color: black !important; text-align: center !important; line-height: normal !important; padding-top: 10px !important; } --- /** Search **/ --- input[type='search'] { -webkit-transition: border .1s; transition: border .1s; position: relative; background-color: transparent; border: 1px solid; border-radius: 2px; border-color: #e1e1e1; padding: 10px 40px 9px 8px; margin: 0; outline: none; box-sizing: border-box; width: 100%; } input[type='search']:focus, input[type='search'].focus { border-color: #c1c1c1; } --- /*Sidebar*/ --- .tc-sidebar-lists button { color: {{!!theme_color}}; fill: {{!!theme_color}}; } .tc-sidebar-lists .tc-tab-buttons button { display: inline-block !important; font-size: 14px !important; font-weight: 700 !important; margin: 0 10px !important; text-transform: uppercase; color: {{!!theme_color}} !important ; text-decoration: none !important; padding-right: 15px !important; font-family: "Open Sans", arial, sans-serif !important; line-height: 1.8 !important; text-align: center !important; padding: 0 !important; background: none !important; border: none !important; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { background-color: transparent !important; border-left: none !important; border-top: none !important; border-right: none !important; color: #666 !important; } .tc-sidebar-lists .tc-search .tc-popup-handle { width: 60%; } .tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal button { border: none; outline: none; background: transparent; color: #666; fill: #666; } .tc-sidebar-lists .tc-tab-set .tc-tab-content .tc-reveal .tc-more-sidebar .tc-tab-set .tc-tab-buttons button.tc-tab-selected { color: blue; fill: blue; } .tc-sidebar-lists .tc-tab-content i.tc-muted { display: none; } /* Search drop down of Sidebar */ .tc-sidebar-lists .tc-search-drop-down a.tc-tiddlylink:hover{ padding: 0px 10px 0px 10px; } --- /* Media Queries */ --- @media only screen and (max-width: 600px) { h1, h2 { margin-bottom: 20px; } p { margin-bottom: 20px; } ul, ol { margin-bottom: 20px; } img { margin: 30px 0; } blockquote { margin: 30px 0; } pre { margin: 30px 0; } hr { margin: 35px 0; } .site-header { padding-top: 60px; } .site-nav-item { display: block; margin: 15px 0; } }
{ "fab": "$:/core/ui/Buttons/new-tiddler", "fab1": "$:/core/ui/Buttons/new-journal", "fab2": "$:/core/ui/Buttons/advanced-search", "fab3": "$:/core/ui/Buttons/control-panel", "fab4": "", "fab6": "$:/core/ui/Buttons/manager" }
{ "tiddlers": { "$:/themes/tiddlywiki/snowwhite/base": { "title": "$:/themes/tiddlywiki/snowwhite/base", "tags": "[[$:/tags/Stylesheet]]", "text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n" } } }
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline .tc-sidebar-header { text-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>; } .tc-tiddler-info { <<box-shadow "inset 1px 2px 3px rgba(0,0,0,0.1)">> } @media screen { .tc-tiddler-frame { <<box-shadow "1px 1px 5px rgba(0, 0, 0, 0.3)">> } } @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-tiddler-frame { <<box-shadow none>> } } .tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg { <<transition "fill 150ms ease-in-out">> } .tc-tiddler-controls button.tc-selected, .tc-page-controls button.tc-selected { <<filter "drop-shadow(0px -1px 2px rgba(0,0,0,0.25))">> } .tc-tiddler-frame input.tc-edit-texteditor { <<box-shadow "inset 0 1px 8px rgba(0, 0, 0, 0.15)">> } .tc-edit-tags { <<box-shadow "inset 0 1px 8px rgba(0, 0, 0, 0.15)">> } .tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor { <<box-shadow "none">> border: none; outline: none; } textarea.tc-edit-texteditor { font-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}}; } canvas.tc-edit-bitmapeditor { <<box-shadow "2px 2px 5px rgba(0, 0, 0, 0.5)">> } .tc-drop-down { border-radius: 4px; <<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">> } .tc-block-dropdown { border-radius: 4px; <<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">> } .tc-modal { border-radius: 6px; <<box-shadow "0 3px 7px rgba(0,0,0,0.3)">> } .tc-modal-footer { border-radius: 0 0 6px 6px; <<box-shadow "inset 0 1px 0 #fff">>; } .tc-alert { border-radius: 6px; <<box-shadow "0 3px 7px rgba(0,0,0,0.6)">> } .tc-notification { border-radius: 6px; <<box-shadow "0 3px 7px rgba(0,0,0,0.3)">> text-shadow: 0 1px 0 rgba(255,255,255, 0.8); } .tc-sidebar-lists .tc-tab-set .tc-tab-divider { border-top: none; height: 1px; <<background-linear-gradient "left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%">> } .tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button { <<background-linear-gradient "left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%">> } .tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected { <<background-linear-gradient "left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%">> } .tc-message-box img { <<box-shadow "1px 1px 3px rgba(0,0,0,0.5)">> } .tc-plugin-info { <<box-shadow "1px 1px 3px rgba(0,0,0,0.5)">> }
{ "tiddlers": { "$:/themes/tiddlywiki/vanilla/themetweaks": { "title": "$:/themes/tiddlywiki/vanilla/themetweaks", "tags": "$:/tags/ControlPanel/Appearance", "caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}", "text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n" }, "$:/themes/tiddlywiki/vanilla/base": { "title": "$:/themes/tiddlywiki/vanilla/base", "tags": "[[$:/tags/Stylesheet]]", "text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n cursor: pointer;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tvertical-align: text-bottom;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n word-break: break-word;\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tmax-width: 500px;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 28px;\n\tpadding: 14px 14px 14px 14px;\n\tborder: 2px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 14px;\n\tright: 14px;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: block;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground-colour: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-plugin-info-chunk h1 {\n\tfont-size: 1em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk h2 {\n\tfont-size: 0.8em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk div {\n\tfont-size: 0.7em;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\twidth: 2em;\n\theight: 2em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 1em 1em;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n" }, "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": { "title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize", "text": "15px" }, "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": { "title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight", "text": "22px" }, "$:/themes/tiddlywiki/vanilla/metrics/fontsize": { "title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize", "text": "14px" }, "$:/themes/tiddlywiki/vanilla/metrics/lineheight": { "title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight", "text": "20px" }, "$:/themes/tiddlywiki/vanilla/metrics/storyleft": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft", "text": "0px" }, "$:/themes/tiddlywiki/vanilla/metrics/storytop": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storytop", "text": "0px" }, "$:/themes/tiddlywiki/vanilla/metrics/storyright": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storyright", "text": "770px" }, "$:/themes/tiddlywiki/vanilla/metrics/storywidth": { "title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth", "text": "770px" }, "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": { "title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth", "text": "686px" }, "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": { "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint", "text": "960px" }, "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": { "title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth", "text": "350px" }, "$:/themes/tiddlywiki/vanilla/options/stickytitles": { "title": "$:/themes/tiddlywiki/vanilla/options/stickytitles", "text": "no" }, "$:/themes/tiddlywiki/vanilla/options/sidebarlayout": { "title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout", "text": "fixed-fluid" }, "$:/themes/tiddlywiki/vanilla/options/codewrapping": { "title": "$:/themes/tiddlywiki/vanilla/options/codewrapping", "text": "pre-wrap" }, "$:/themes/tiddlywiki/vanilla/reset": { "title": "$:/themes/tiddlywiki/vanilla/reset", "type": "text/plain", "text": "/*! normalize.css v3.0.0 | MIT License | git.io/normalize */\n\n/**\n * 1. Set default font family to sans-serif.\n * 2. Prevent iOS text size adjust after orientation change, without disabling\n * user zoom.\n */\n\nhtml {\n font-family: sans-serif; /* 1 */\n -ms-text-size-adjust: 100%; /* 2 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/**\n * Remove default margin.\n */\n\nbody {\n margin: 0;\n}\n\n/* HTML5 display definitions\n ========================================================================== */\n\n/**\n * Correct `block` display not defined in IE 8/9.\n */\n\narticle,\naside,\ndetails,\nfigcaption,\nfigure,\nfooter,\nheader,\nhgroup,\nmain,\nnav,\nsection,\nsummary {\n display: block;\n}\n\n/**\n * 1. Correct `inline-block` display not defined in IE 8/9.\n * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.\n */\n\naudio,\ncanvas,\nprogress,\nvideo {\n display: inline-block; /* 1 */\n vertical-align: baseline; /* 2 */\n}\n\n/**\n * Prevent modern browsers from displaying `audio` without controls.\n * Remove excess height in iOS 5 devices.\n */\n\naudio:not([controls]) {\n display: none;\n height: 0;\n}\n\n/**\n * Address `[hidden]` styling not present in IE 8/9.\n * Hide the `template` element in IE, Safari, and Firefox < 22.\n */\n\n[hidden],\ntemplate {\n display: none;\n}\n\n/* Links\n ========================================================================== */\n\n/**\n * Remove the gray background color from active links in IE 10.\n */\n\na {\n background: transparent;\n}\n\n/**\n * Improve readability when focused and also mouse hovered in all browsers.\n */\n\na:active,\na:hover {\n outline: 0;\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Address styling not present in IE 8/9, Safari 5, and Chrome.\n */\n\nabbr[title] {\n border-bottom: 1px dotted;\n}\n\n/**\n * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.\n */\n\nb,\nstrong {\n font-weight: bold;\n}\n\n/**\n * Address styling not present in Safari 5 and Chrome.\n */\n\ndfn {\n font-style: italic;\n}\n\n/**\n * Address variable `h1` font-size and margin within `section` and `article`\n * contexts in Firefox 4+, Safari 5, and Chrome.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/**\n * Address styling not present in IE 8/9.\n */\n\nmark {\n background: #ff0;\n color: #000;\n}\n\n/**\n * Address inconsistent and variable font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` affecting `line-height` in all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsup {\n top: -0.5em;\n}\n\nsub {\n bottom: -0.25em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove border when inside `a` element in IE 8/9.\n */\n\nimg {\n border: 0;\n}\n\n/**\n * Correct overflow displayed oddly in IE 9.\n */\n\nsvg:not(:root) {\n overflow: hidden;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * Address margin not present in IE 8/9 and Safari 5.\n */\n\nfigure {\n margin: 1em 40px;\n}\n\n/**\n * Address differences between Firefox and other browsers.\n */\n\nhr {\n -moz-box-sizing: content-box;\n box-sizing: content-box;\n height: 0;\n}\n\n/**\n * Contain overflow in all browsers.\n */\n\npre {\n overflow: auto;\n}\n\n/**\n * Address odd `em`-unit font size rendering in all browsers.\n */\n\ncode,\nkbd,\npre,\nsamp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * Known limitation: by default, Chrome and Safari on OS X allow very limited\n * styling of `select`, unless a `border` property is set.\n */\n\n/**\n * 1. Correct color not being inherited.\n * Known issue: affects color of disabled elements.\n * 2. Correct font properties not being inherited.\n * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n color: inherit; /* 1 */\n font: inherit; /* 2 */\n margin: 0; /* 3 */\n}\n\n/**\n * Address `overflow` set to `hidden` in IE 8/9/10.\n */\n\nbutton {\n overflow: visible;\n}\n\n/**\n * Address inconsistent `text-transform` inheritance for `button` and `select`.\n * All other form control elements do not inherit `text-transform` values.\n * Correct `button` style inheritance in Firefox, IE 8+, and Opera\n * Correct `select` style inheritance in Firefox.\n */\n\nbutton,\nselect {\n text-transform: none;\n}\n\n/**\n * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`\n * and `video` controls.\n * 2. Correct inability to style clickable `input` types in iOS.\n * 3. Improve usability and consistency of cursor style between image-type\n * `input` and others.\n */\n\nbutton,\nhtml input[type=\"button\"], /* 1 */\ninput[type=\"reset\"],\ninput[type=\"submit\"] {\n -webkit-appearance: button; /* 2 */\n cursor: pointer; /* 3 */\n}\n\n/**\n * Re-set default cursor for disabled elements.\n */\n\nbutton[disabled],\nhtml input[disabled] {\n cursor: default;\n}\n\n/**\n * Remove inner padding and border in Firefox 4+.\n */\n\nbutton::-moz-focus-inner,\ninput::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n/**\n * Address Firefox 4+ setting `line-height` on `input` using `!important` in\n * the UA stylesheet.\n */\n\ninput {\n line-height: normal;\n}\n\n/**\n * It's recommended that you don't attempt to style these elements.\n * Firefox's implementation doesn't respect box-sizing, padding, or width.\n *\n * 1. Address box sizing set to `content-box` in IE 8/9/10.\n * 2. Remove excess padding in IE 8/9/10.\n */\n\ninput[type=\"checkbox\"],\ninput[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Fix the cursor style for Chrome's increment/decrement buttons. For certain\n * `font-size` values of the `input`, it causes the cursor style of the\n * decrement button to change from `default` to `text`.\n */\n\ninput[type=\"number\"]::-webkit-inner-spin-button,\ninput[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.\n * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome\n * (include `-moz` to future-proof).\n */\n\ninput[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n -moz-box-sizing: content-box;\n -webkit-box-sizing: content-box; /* 2 */\n box-sizing: content-box;\n}\n\n/**\n * Remove inner padding and search cancel button in Safari and Chrome on OS X.\n * Safari (but not Chrome) clips the cancel button when the search input has\n * padding (and `textfield` appearance).\n */\n\ninput[type=\"search\"]::-webkit-search-cancel-button,\ninput[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * Define consistent border, margin, and padding.\n */\n\nfieldset {\n border: 1px solid #c0c0c0;\n margin: 0 2px;\n padding: 0.35em 0.625em 0.75em;\n}\n\n/**\n * 1. Correct `color` not being inherited in IE 8/9.\n * 2. Remove padding so people aren't caught out if they zero out fieldsets.\n */\n\nlegend {\n border: 0; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Remove default vertical scrollbar in IE 8/9.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * Don't inherit the `font-weight` (applied by a rule above).\n * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.\n */\n\noptgroup {\n font-weight: bold;\n}\n\n/* Tables\n ========================================================================== */\n\n/**\n * Remove most spacing between table cells.\n */\n\ntable {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\ntd,\nth {\n padding: 0;\n}\n" }, "$:/themes/tiddlywiki/vanilla/settings/fontfamily": { "title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily", "text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"" }, "$:/themes/tiddlywiki/vanilla/settings/codefontfamily": { "title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily", "text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace" }, "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": { "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment", "text": "fixed" }, "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": { "title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize", "text": "auto" }, "$:/themes/tiddlywiki/vanilla/sticky": { "title": "$:/themes/tiddlywiki/vanilla/sticky", "text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n``\n</$reveal>\n" } } }
\define custom-background-datauri() <$set name="background" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}> <$list filter="[<background>is[image]]"> `background: url(` <$list filter="[<background>!has[_canonical_uri]]"> `"`<$macrocall $name="datauri" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`"` </$list> <$list filter="[<background>has[_canonical_uri]]"> `"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field="_canonical_uri"/>`"` </$list> `) center center;` `background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`; -webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`; -moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`; -o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`; background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;` </$list> </$set> \end \define if-fluid-fixed(text,hiddenSidebarText) <$reveal state="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" type="match" text="fluid-fixed"> $text$ <$reveal state="$:/state/sidebar" type="nomatch" text="yes" default="yes"> $hiddenSidebarText$ </$reveal> </$reveal> \end \define if-editor-height-fixed(then,else) <$reveal state="$:/config/TextEditor/EditorHeight/Mode" type="match" text="fixed"> $then$ </$reveal> <$reveal state="$:/config/TextEditor/EditorHeight/Mode" type="match" text="auto"> $else$ </$reveal> \end \rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock /* ** Start with the normalize CSS reset, and then belay some of its effects */ {{$:/themes/tiddlywiki/vanilla/reset}} *, input[type="search"] { box-sizing: border-box; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; } html button { line-height: 1.2; color: <<colour button-foreground>>; background: <<colour button-background>>; border-color: <<colour button-border>>; } /* ** Basic element styles */ html { font-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}}; text-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */ -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } html:-webkit-full-screen { background-color: <<colour page-background>>; } body.tc-body { font-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}}; line-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}}; word-wrap: break-word; <<custom-background-datauri>> color: <<colour foreground>>; background-color: <<colour page-background>>; fill: <<colour foreground>>; } <<if-background-attachment """ body.tc-body { background-color: transparent; } """>> h1, h2, h3, h4, h5, h6 { line-height: 1.2; font-weight: 300; } pre { display: block; padding: 14px; margin-top: 1em; margin-bottom: 1em; word-break: normal; word-wrap: break-word; white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}}; background-color: <<colour pre-background>>; border: 1px solid <<colour pre-border>>; padding: 0 3px 2px; border-radius: 3px; font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}}; } code { color: <<colour code-foreground>>; background-color: <<colour code-background>>; border: 1px solid <<colour code-border>>; white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}}; padding: 0 3px 2px; border-radius: 3px; font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}}; } blockquote { border-left: 5px solid <<colour blockquote-bar>>; margin-left: 25px; padding-left: 10px; quotes: "\201C""\201D""\2018""\2019"; } blockquote.tc-big-quote { font-family: Georgia, serif; position: relative; background: <<colour pre-background>>; border-left: none; margin-left: 50px; margin-right: 50px; padding: 10px; border-radius: 8px; } blockquote.tc-big-quote cite:before { content: "\2014 \2009"; } blockquote.tc-big-quote:before { font-family: Georgia, serif; color: <<colour blockquote-bar>>; content: open-quote; font-size: 8em; line-height: 0.1em; margin-right: 0.25em; vertical-align: -0.4em; position: absolute; left: -50px; top: 42px; } blockquote.tc-big-quote:after { font-family: Georgia, serif; color: <<colour blockquote-bar>>; content: close-quote; font-size: 8em; line-height: 0.1em; margin-right: 0.25em; vertical-align: -0.4em; position: absolute; right: -80px; bottom: -20px; } dl dt { font-weight: bold; margin-top: 6px; } textarea, input[type=text], input[type=search], input[type=""], input:not([type]) { color: <<colour foreground>>; background: <<colour background>>; } input[type="checkbox"] { vertical-align: middle; } .tc-muted { color: <<colour muted-foreground>>; } svg.tc-image-button { padding: 0px 1px 1px 0px; } .tc-icon-wrapper > svg { width: 1em; height: 1em; } kbd { display: inline-block; padding: 3px 5px; font-size: 0.8em; line-height: 1.2; color: <<colour foreground>>; vertical-align: middle; background-color: <<colour background>>; border: solid 1px <<colour muted-foreground>>; border-bottom-color: <<colour muted-foreground>>; border-radius: 3px; box-shadow: inset 0 -1px 0 <<colour muted-foreground>>; } /* Markdown likes putting code elements inside pre elements */ pre > code { padding: 0; border: none; background-color: inherit; color: inherit; } table { border: 1px solid <<colour table-border>>; width: auto; max-width: 100%; caption-side: bottom; margin-top: 1em; margin-bottom: 1em; } table th, table td { padding: 0 7px 0 7px; border-top: 1px solid <<colour table-border>>; border-left: 1px solid <<colour table-border>>; } table thead tr td, table th { background-color: <<colour table-header-background>>; font-weight: bold; } table tfoot tr td { background-color: <<colour table-footer-background>>; } .tc-csv-table { white-space: nowrap; } .tc-tiddler-frame img, .tc-tiddler-frame svg, .tc-tiddler-frame canvas, .tc-tiddler-frame embed, .tc-tiddler-frame iframe { max-width: 100%; } .tc-tiddler-body > embed, .tc-tiddler-body > iframe { width: 100%; height: 600px; } /* ** Links */ button.tc-tiddlylink, a.tc-tiddlylink { text-decoration: none; font-weight: 500; color: <<colour tiddler-link-foreground>>; -webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */ } .tc-sidebar-lists a.tc-tiddlylink { color: <<colour sidebar-tiddler-link-foreground>>; } .tc-sidebar-lists a.tc-tiddlylink:hover { color: <<colour sidebar-tiddler-link-foreground-hover>>; } button.tc-tiddlylink:hover, a.tc-tiddlylink:hover { text-decoration: underline; } a.tc-tiddlylink-resolves { } a.tc-tiddlylink-shadow { font-weight: bold; } a.tc-tiddlylink-shadow.tc-tiddlylink-resolves { font-weight: normal; } a.tc-tiddlylink-missing { font-style: italic; } a.tc-tiddlylink-external { text-decoration: underline; color: <<colour external-link-foreground>>; background-color: <<colour external-link-background>>; } a.tc-tiddlylink-external:visited { color: <<colour external-link-foreground-visited>>; background-color: <<colour external-link-background-visited>>; } a.tc-tiddlylink-external:hover { color: <<colour external-link-foreground-hover>>; background-color: <<colour external-link-background-hover>>; } /* ** Drag and drop styles */ .tc-tiddler-dragger { position: relative; z-index: -10000; } .tc-tiddler-dragger-inner { position: absolute; top: -1000px; left: -1000px; display: inline-block; padding: 8px 20px; font-size: 16.9px; font-weight: bold; line-height: 20px; color: <<colour dragger-foreground>>; text-shadow: 0 1px 0 rgba(0, 0, 0, 1); white-space: nowrap; vertical-align: baseline; background-color: <<colour dragger-background>>; border-radius: 20px; } .tc-tiddler-dragger-cover { position: absolute; background-color: <<colour page-background>>; } .tc-dropzone { position: relative; } .tc-dropzone.tc-dragover:before { z-index: 10000; display: block; position: fixed; top: 0; left: 0; right: 0; background: <<colour dropzone-background>>; text-align: center; content: "<<lingo DropMessage>>"; } .tc-droppable > .tc-droppable-placeholder { display: none; } .tc-droppable.tc-dragover > .tc-droppable-placeholder { display: block; border: 2px dashed <<colour dropzone-background>>; } .tc-draggable { cursor: move; } /* ** Plugin reload warning */ .tc-plugin-reload-warning { z-index: 1000; display: block; position: fixed; top: 0; left: 0; right: 0; background: <<colour alert-background>>; text-align: center; } /* ** Buttons */ button svg, button img, label svg, label img { vertical-align: middle; } .tc-btn-invisible { padding: 0; margin: 0; background: none; border: none; cursor: pointer; } .tc-btn-boxed { font-size: 0.6em; padding: 0.2em; margin: 1px; background: none; border: 1px solid <<colour tiddler-controls-foreground>>; border-radius: 0.25em; } html body.tc-body .tc-btn-boxed svg { font-size: 1.6666em; } .tc-btn-boxed:hover { background: <<colour muted-foreground>>; color: <<colour background>>; } html body.tc-body .tc-btn-boxed:hover svg { fill: <<colour background>>; } .tc-btn-rounded { font-size: 0.5em; line-height: 2; padding: 0em 0.3em 0.2em 0.4em; margin: 1px; border: 1px solid <<colour muted-foreground>>; background: <<colour muted-foreground>>; color: <<colour background>>; border-radius: 2em; } html body.tc-body .tc-btn-rounded svg { font-size: 1.6666em; fill: <<colour background>>; } .tc-btn-rounded:hover { border: 1px solid <<colour muted-foreground>>; background: <<colour background>>; color: <<colour muted-foreground>>; } html body.tc-body .tc-btn-rounded:hover svg { fill: <<colour muted-foreground>>; } .tc-btn-icon svg { height: 1em; width: 1em; fill: <<colour muted-foreground>>; } .tc-btn-text { padding: 0; margin: 0; } /* used for documentation "fake" buttons */ .tc-btn-standard { line-height: 1.8; color: #667; background-color: #e0e0e0; border: 1px solid #888; padding: 2px 1px 2px 1px; margin: 1px 4px 1px 4px; } .tc-btn-big-green { display: inline-block; padding: 8px; margin: 4px 8px 4px 8px; background: <<colour download-background>>; color: <<colour download-foreground>>; fill: <<colour download-foreground>>; border: none; font-size: 1.2em; line-height: 1.4em; text-decoration: none; } .tc-btn-big-green svg, .tc-btn-big-green img { height: 2em; width: 2em; vertical-align: middle; fill: <<colour download-foreground>>; } .tc-sidebar-lists input { color: <<colour foreground>>; } .tc-sidebar-lists button { color: <<colour sidebar-button-foreground>>; fill: <<colour sidebar-button-foreground>>; } .tc-sidebar-lists button.tc-btn-mini { color: <<colour sidebar-muted-foreground>>; } .tc-sidebar-lists button.tc-btn-mini:hover { color: <<colour sidebar-muted-foreground-hover>>; } button svg.tc-image-button, button .tc-image-button img { height: 1em; width: 1em; } .tc-unfold-banner { position: absolute; padding: 0; margin: 0; background: none; border: none; width: 100%; width: calc(100% + 2px); margin-left: -43px; text-align: center; border-top: 2px solid <<colour tiddler-info-background>>; margin-top: 4px; } .tc-unfold-banner:hover { background: <<colour tiddler-info-background>>; border-top: 2px solid <<colour tiddler-info-border>>; } .tc-unfold-banner svg, .tc-fold-banner svg { height: 0.75em; fill: <<colour tiddler-controls-foreground>>; } .tc-unfold-banner:hover svg, .tc-fold-banner:hover svg { fill: <<colour tiddler-controls-foreground-hover>>; } .tc-fold-banner { position: absolute; padding: 0; margin: 0; background: none; border: none; width: 23px; text-align: center; margin-left: -35px; top: 6px; bottom: 6px; } .tc-fold-banner:hover { background: <<colour tiddler-info-background>>; } @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-unfold-banner { position: static; width: calc(100% + 59px); } .tc-fold-banner { width: 16px; margin-left: -16px; font-size: 0.75em; } } /* ** Tags and missing tiddlers */ .tc-tag-list-item { position: relative; display: inline-block; margin-right: 7px; } .tc-tags-wrapper { margin: 4px 0 14px 0; } .tc-missing-tiddler-label { font-style: italic; font-weight: normal; display: inline-block; font-size: 11.844px; line-height: 14px; white-space: nowrap; vertical-align: baseline; } button.tc-tag-label, span.tc-tag-label { display: inline-block; padding: 0.16em 0.7em; font-size: 0.9em; font-weight: 400; line-height: 1.2em; color: <<colour tag-foreground>>; white-space: nowrap; vertical-align: baseline; background-color: <<colour tag-background>>; border-radius: 1em; } .tc-untagged-separator { width: 10em; left: 0; margin-left: 0; border: 0; height: 1px; background: <<colour tab-divider>>; } button.tc-untagged-label { background-color: <<colour untagged-background>>; } .tc-tag-label svg, .tc-tag-label img { height: 1em; width: 1em; vertical-align: text-bottom; } .tc-tag-manager-table .tc-tag-label { white-space: normal; } .tc-tag-manager-tag { width: 100%; } button.tc-btn-invisible.tc-remove-tag-button { outline: none; } /* ** Page layout */ .tc-topbar { position: fixed; z-index: 1200; } .tc-topbar-left { left: 29px; top: 5px; } .tc-topbar-right { top: 5px; right: 29px; } .tc-topbar button { padding: 8px; } .tc-topbar svg { fill: <<colour muted-foreground>>; } .tc-topbar button:hover svg { fill: <<colour foreground>>; } .tc-sidebar-header { color: <<colour sidebar-foreground>>; fill: <<colour sidebar-foreground>>; } .tc-sidebar-header .tc-title a.tc-tiddlylink-resolves { font-weight: 300; } .tc-sidebar-header .tc-sidebar-lists p { margin-top: 3px; margin-bottom: 3px; } .tc-sidebar-header .tc-missing-tiddler-label { color: <<colour sidebar-foreground>>; } .tc-advanced-search input { width: 60%; } .tc-search a svg { width: 1.2em; height: 1.2em; vertical-align: middle; } .tc-page-controls { margin-top: 14px; font-size: 1.5em; } .tc-page-controls .tc-drop-down { font-size: 1rem; } .tc-page-controls button { margin-right: 0.5em; } .tc-page-controls a.tc-tiddlylink:hover { text-decoration: none; } .tc-page-controls img { width: 1em; } .tc-page-controls svg { fill: <<colour sidebar-controls-foreground>>; } .tc-page-controls button:hover svg, .tc-page-controls a:hover svg { fill: <<colour sidebar-controls-foreground-hover>>; } .tc-menu-list-item { white-space: nowrap; } .tc-menu-list-count { font-weight: bold; } .tc-menu-list-subitem { padding-left: 7px; } .tc-story-river { position: relative; } @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-sidebar-header { padding: 14px; min-height: 32px; margin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}}; } .tc-story-river { position: relative; padding: 0; } } @media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-message-box { margin: 21px -21px 21px -21px; } .tc-sidebar-scrollable { position: fixed; top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}}; left: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}}; bottom: 0; right: 0; overflow-y: auto; overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 0 0 -42px; padding: 71px 0 28px 42px; } html[dir="rtl"] .tc-sidebar-scrollable { left: auto; right: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}}; } .tc-story-river { position: relative; left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}}; top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}}; width: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}}; padding: 42px 42px 42px 42px; } <<if-no-sidebar " .tc-story-river { width: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}}); } ">> } @media print { body.tc-body { background-color: transparent; } .tc-sidebar-header, .tc-topbar { display: none; } .tc-story-river { margin: 0; padding: 0; } .tc-story-river .tc-tiddler-frame { margin: 0; border: none; padding: 0; } } /* ** Tiddler styles */ .tc-tiddler-frame { position: relative; margin-bottom: 28px; background-color: <<colour tiddler-background>>; border: 1px solid <<colour tiddler-border>>; } {{$:/themes/tiddlywiki/vanilla/sticky}} .tc-tiddler-info { padding: 14px 42px 14px 42px; background-color: <<colour tiddler-info-background>>; border-top: 1px solid <<colour tiddler-info-border>>; border-bottom: 1px solid <<colour tiddler-info-border>>; } .tc-tiddler-info p { margin-top: 3px; margin-bottom: 3px; } .tc-tiddler-info .tc-tab-buttons button.tc-tab-selected { background-color: <<colour tiddler-info-tab-background>>; border-bottom: 1px solid <<colour tiddler-info-tab-background>>; } .tc-view-field-table { width: 100%; } .tc-view-field-name { width: 1%; /* Makes this column be as narrow as possible */ text-align: right; font-style: italic; font-weight: 200; } .tc-view-field-value { } @media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-tiddler-frame { padding: 14px 14px 14px 14px; } .tc-tiddler-info { margin: 0 -14px 0 -14px; } } @media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-tiddler-frame { padding: 28px 42px 42px 42px; width: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}}; border-radius: 2px; } <<if-no-sidebar " .tc-tiddler-frame { width: 100%; } ">> .tc-tiddler-info { margin: 0 -42px 0 -42px; } } .tc-site-title, .tc-titlebar { font-weight: 300; font-size: 2.35em; line-height: 1.2em; color: <<colour tiddler-title-foreground>>; margin: 0; } .tc-site-title { color: <<colour site-title-foreground>>; } .tc-tiddler-title-icon { vertical-align: middle; } .tc-system-title-prefix { color: <<colour muted-foreground>>; } .tc-titlebar h2 { font-size: 1em; display: inline; } .tc-titlebar img { height: 1em; } .tc-subtitle { font-size: 0.9em; color: <<colour tiddler-subtitle-foreground>>; font-weight: 300; } .tc-tiddler-missing .tc-title { font-style: italic; font-weight: normal; } .tc-tiddler-frame .tc-tiddler-controls { float: right; } .tc-tiddler-controls .tc-drop-down { font-size: 0.6em; } .tc-tiddler-controls .tc-drop-down .tc-drop-down { font-size: 1em; } .tc-tiddler-controls > span > button, .tc-tiddler-controls > span > span > button, .tc-tiddler-controls > span > span > span > button { vertical-align: baseline; margin-left:5px; } .tc-tiddler-controls button svg, .tc-tiddler-controls button img, .tc-search button svg, .tc-search a svg { fill: <<colour tiddler-controls-foreground>>; } .tc-tiddler-controls button svg, .tc-tiddler-controls button img { height: 0.75em; } .tc-search button svg, .tc-search a svg { height: 1.2em; width: 1.2em; margin: 0 0.25em; } .tc-tiddler-controls button.tc-selected svg, .tc-page-controls button.tc-selected svg { fill: <<colour tiddler-controls-foreground-selected>>; } .tc-tiddler-controls button.tc-btn-invisible:hover svg, .tc-search button:hover svg, .tc-search a:hover svg { fill: <<colour tiddler-controls-foreground-hover>>; } @media print { .tc-tiddler-controls { display: none; } } .tc-tiddler-help { /* Help prompts within tiddler template */ color: <<colour muted-foreground>>; margin-top: 14px; } .tc-tiddler-help a.tc-tiddlylink { color: <<colour very-muted-foreground>>; } .tc-tiddler-frame .tc-edit-texteditor { width: 100%; margin: 4px 0 4px 0; } .tc-tiddler-frame input.tc-edit-texteditor, .tc-tiddler-frame textarea.tc-edit-texteditor, .tc-tiddler-frame iframe.tc-edit-texteditor { padding: 3px 3px 3px 3px; border: 1px solid <<colour tiddler-editor-border>>; background-color: <<colour tiddler-editor-background>>; line-height: 1.3em; -webkit-appearance: none; font-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}}; } .tc-tiddler-frame .tc-binary-warning { width: 100%; height: 5em; text-align: center; padding: 3em 3em 6em 3em; background: <<colour alert-background>>; border: 1px solid <<colour alert-border>>; } canvas.tc-edit-bitmapeditor { border: 6px solid <<colour tiddler-editor-border-image>>; cursor: crosshair; -moz-user-select: none; -webkit-user-select: none; -ms-user-select: none; margin-top: 6px; margin-bottom: 6px; } .tc-edit-bitmapeditor-width { display: block; } .tc-edit-bitmapeditor-height { display: block; } .tc-tiddler-body { clear: both; } .tc-tiddler-frame .tc-tiddler-body { font-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}}; line-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}}; } .tc-titlebar, .tc-tiddler-edit-title { overflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */ } html body.tc-body.tc-single-tiddler-window { margin: 1em; background: <<colour tiddler-background>>; } .tc-single-tiddler-window img, .tc-single-tiddler-window svg, .tc-single-tiddler-window canvas, .tc-single-tiddler-window embed, .tc-single-tiddler-window iframe { max-width: 100%; } /* ** Editor */ .tc-editor-toolbar { margin-top: 8px; } .tc-editor-toolbar button { vertical-align: middle; background-color: <<colour tiddler-controls-foreground>>; fill: <<colour tiddler-controls-foreground-selected>>; border-radius: 4px; padding: 3px; margin: 2px 0 2px 4px; } .tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct { margin-left: 1px; width: 1em; border-radius: 8px; } .tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group { margin-left: 11px; } .tc-editor-toolbar button.tc-selected { background-color: <<colour primary>>; } .tc-editor-toolbar button svg { width: 1.6em; height: 1.2em; } .tc-editor-toolbar button:hover { background-color: <<colour tiddler-controls-foreground-selected>>; fill: <<colour background>>; color: <<colour background>>; } .tc-editor-toolbar .tc-text-editor-toolbar-more { white-space: normal; } .tc-editor-toolbar .tc-text-editor-toolbar-more button { display: inline-block; padding: 3px; width: auto; } .tc-editor-toolbar .tc-search-results { padding: 0; } /* ** Adjustments for fluid-fixed mode */ @media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { <<if-fluid-fixed text:""" .tc-story-river { padding-right: 0; position: relative; width: auto; left: 0; margin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}}; margin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}}; } .tc-tiddler-frame { width: 100%; } .tc-sidebar-scrollable { left: auto; bottom: 0; right: 0; width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}}; } body.tc-body .tc-storyview-zoomin-tiddler { width: 100%; width: calc(100% - 42px); } """ hiddenSidebarText:""" .tc-story-river { padding-right: 3em; margin-right: 0; } body.tc-body .tc-storyview-zoomin-tiddler { width: 100%; width: calc(100% - 84px); } """>> } /* ** Toolbar buttons */ .tc-page-controls svg.tc-image-new-button { fill: <<colour toolbar-new-button>>; } .tc-page-controls svg.tc-image-options-button { fill: <<colour toolbar-options-button>>; } .tc-page-controls svg.tc-image-save-button { fill: <<colour toolbar-save-button>>; } .tc-tiddler-controls button svg.tc-image-info-button { fill: <<colour toolbar-info-button>>; } .tc-tiddler-controls button svg.tc-image-edit-button { fill: <<colour toolbar-edit-button>>; } .tc-tiddler-controls button svg.tc-image-close-button { fill: <<colour toolbar-close-button>>; } .tc-tiddler-controls button svg.tc-image-delete-button { fill: <<colour toolbar-delete-button>>; } .tc-tiddler-controls button svg.tc-image-cancel-button { fill: <<colour toolbar-cancel-button>>; } .tc-tiddler-controls button svg.tc-image-done-button { fill: <<colour toolbar-done-button>>; } /* ** Tiddler edit mode */ .tc-tiddler-edit-frame em.tc-edit { color: <<colour muted-foreground>>; font-style: normal; } .tc-edit-type-dropdown a.tc-tiddlylink-missing { font-style: normal; } .tc-edit-tags { border: 1px solid <<colour tiddler-editor-border>>; padding: 4px 8px 4px 8px; } .tc-edit-add-tag { display: inline-block; } .tc-edit-add-tag .tc-add-tag-name input { width: 50%; } .tc-edit-add-tag .tc-keyboard { display:inline; } .tc-edit-tags .tc-tag-label { display: inline-block; } .tc-edit-tags-list { margin: 14px 0 14px 0; } .tc-remove-tag-button { padding-left: 4px; } .tc-tiddler-preview { overflow: auto; } .tc-tiddler-preview-preview { float: right; width: 49%; border: 1px solid <<colour tiddler-editor-border>>; margin: 4px 0 3px 3px; padding: 3px 3px 3px 3px; } <<if-editor-height-fixed then:""" .tc-tiddler-preview-preview { overflow-y: scroll; height: {{$:/config/TextEditor/EditorHeight/Height}}; } """>> .tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor { width: 49%; } .tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor { max-width: 49%; } .tc-edit-fields { width: 100%; } .tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td { border: none; padding: 4px; } .tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) { background-color: <<colour tiddler-editor-fields-odd>>; } .tc-edit-fields > tbody > .tc-edit-field:nth-child(even) { background-color: <<colour tiddler-editor-fields-even>>; } .tc-edit-field-name { text-align: right; } .tc-edit-field-value input { width: 100%; } .tc-edit-field-remove { } .tc-edit-field-remove svg { height: 1em; width: 1em; fill: <<colour muted-foreground>>; vertical-align: middle; } .tc-edit-field-add-name { display: inline-block; width: 15%; } .tc-edit-field-add-value { display: inline-block; width: 40%; } .tc-edit-field-add-button { display: inline-block; width: 10%; } /* ** Storyview Classes */ .tc-storyview-zoomin-tiddler { position: absolute; display: block; width: 100%; } @media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-storyview-zoomin-tiddler { width: calc(100% - 84px); } } /* ** Dropdowns */ .tc-btn-dropdown { text-align: left; } .tc-btn-dropdown svg, .tc-btn-dropdown img { height: 1em; width: 1em; fill: <<colour muted-foreground>>; } .tc-drop-down-wrapper { position: relative; } .tc-drop-down { min-width: 380px; border: 1px solid <<colour dropdown-border>>; background-color: <<colour dropdown-background>>; padding: 7px 0 7px 0; margin: 4px 0 0 0; white-space: nowrap; text-shadow: none; line-height: 1.4; } .tc-drop-down .tc-drop-down { margin-left: 14px; } .tc-drop-down button svg, .tc-drop-down a svg { fill: <<colour foreground>>; } .tc-drop-down button.tc-btn-invisible:hover svg { fill: <<colour foreground>>; } .tc-drop-down p { padding: 0 14px 0 14px; } .tc-drop-down svg { width: 1em; height: 1em; } .tc-drop-down img { width: 1em; } .tc-drop-down a, .tc-drop-down button { display: block; padding: 0 14px 0 14px; width: 100%; text-align: left; color: <<colour foreground>>; line-height: 1.4; } .tc-drop-down .tc-tab-set .tc-tab-buttons button { display: inline-block; width: auto; margin-bottom: 0px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .tc-drop-down .tc-prompt { padding: 0 14px; } .tc-drop-down .tc-chooser { border: none; } .tc-drop-down .tc-chooser .tc-swatches-horiz { font-size: 0.4em; padding-left: 1.2em; } .tc-drop-down .tc-file-input-wrapper { width: 100%; } .tc-drop-down .tc-file-input-wrapper button { color: <<colour foreground>>; } .tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button { color: <<colour tiddler-link-background>>; background-color: <<colour tiddler-link-foreground>>; text-decoration: none; } .tc-drop-down .tc-tab-buttons button { background-color: <<colour dropdown-tab-background>>; } .tc-drop-down .tc-tab-buttons button.tc-tab-selected { background-color: <<colour dropdown-tab-background-selected>>; border-bottom: 1px solid <<colour dropdown-tab-background-selected>>; } .tc-drop-down-bullet { display: inline-block; width: 0.5em; } .tc-drop-down .tc-tab-contents a { padding: 0 0.5em 0 0.5em; } .tc-block-dropdown-wrapper { position: relative; } .tc-block-dropdown { position: absolute; min-width: 220px; border: 1px solid <<colour dropdown-border>>; background-color: <<colour dropdown-background>>; padding: 7px 0; margin: 4px 0 0 0; white-space: nowrap; z-index: 1000; text-shadow: none; } .tc-block-dropdown.tc-search-drop-down { margin-left: -12px; } .tc-block-dropdown a { display: block; padding: 4px 14px 4px 14px; } .tc-block-dropdown.tc-search-drop-down a { display: block; padding: 0px 10px 0px 10px; } .tc-drop-down .tc-dropdown-item-plain, .tc-block-dropdown .tc-dropdown-item-plain { padding: 4px 14px 4px 7px; } .tc-drop-down .tc-dropdown-item, .tc-block-dropdown .tc-dropdown-item { padding: 4px 14px 4px 7px; color: <<colour muted-foreground>>; } .tc-block-dropdown a:hover { color: <<colour tiddler-link-background>>; background-color: <<colour tiddler-link-foreground>>; text-decoration: none; } .tc-search-results { padding: 0 7px 0 7px; } .tc-image-chooser, .tc-colour-chooser { white-space: normal; } .tc-image-chooser a, .tc-colour-chooser a { display: inline-block; vertical-align: top; text-align: center; position: relative; } .tc-image-chooser a { border: 1px solid <<colour muted-foreground>>; padding: 2px; margin: 2px; width: 4em; height: 4em; } .tc-colour-chooser a { padding: 3px; width: 2em; height: 2em; vertical-align: middle; } .tc-image-chooser a:hover, .tc-colour-chooser a:hover { background: <<colour primary>>; padding: 0px; border: 3px solid <<colour primary>>; } .tc-image-chooser a svg, .tc-image-chooser a img { display: inline-block; width: auto; height: auto; max-width: 3.5em; max-height: 3.5em; position: absolute; top: 0; bottom: 0; left: 0; right: 0; margin: auto; } /* ** Modals */ .tc-modal-wrapper { position: fixed; overflow: auto; overflow-y: scroll; top: 0; right: 0; bottom: 0; left: 0; z-index: 900; } .tc-modal-backdrop { position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: 1000; background-color: <<colour modal-backdrop>>; } .tc-modal { z-index: 1100; background-color: <<colour modal-background>>; border: 1px solid <<colour modal-border>>; } @media (max-width: 55em) { .tc-modal { position: fixed; top: 1em; left: 1em; right: 1em; } .tc-modal-body { overflow-y: auto; max-height: 400px; max-height: 60vh; } } @media (min-width: 55em) { .tc-modal { position: fixed; top: 2em; left: 25%; width: 50%; } .tc-modal-body { overflow-y: auto; max-height: 400px; max-height: 60vh; } } .tc-modal-header { padding: 9px 15px; border-bottom: 1px solid <<colour modal-header-border>>; } .tc-modal-header h3 { margin: 0; line-height: 30px; } .tc-modal-header img, .tc-modal-header svg { width: 1em; height: 1em; } .tc-modal-body { padding: 15px; } .tc-modal-footer { padding: 14px 15px 15px; margin-bottom: 0; text-align: right; background-color: <<colour modal-footer-background>>; border-top: 1px solid <<colour modal-footer-border>>; } /* ** Notifications */ .tc-notification { position: fixed; top: 14px; right: 42px; z-index: 1300; max-width: 280px; padding: 0 14px 0 14px; background-color: <<colour notification-background>>; border: 1px solid <<colour notification-border>>; } /* ** Tabs */ .tc-tab-set.tc-vertical { display: -webkit-flex; display: flex; } .tc-tab-buttons { font-size: 0.85em; padding-top: 1em; margin-bottom: -2px; } .tc-tab-buttons.tc-vertical { z-index: 100; display: block; padding-top: 14px; vertical-align: top; text-align: right; margin-bottom: inherit; margin-right: -1px; max-width: 33%; -webkit-flex: 0 0 auto; flex: 0 0 auto; } .tc-tab-buttons button.tc-tab-selected { color: <<colour tab-foreground-selected>>; background-color: <<colour tab-background-selected>>; border-left: 1px solid <<colour tab-border-selected>>; border-top: 1px solid <<colour tab-border-selected>>; border-right: 1px solid <<colour tab-border-selected>>; } .tc-tab-buttons button { color: <<colour tab-foreground>>; padding: 3px 5px 3px 5px; margin-right: 0.3em; font-weight: 300; border: none; background: inherit; background-color: <<colour tab-background>>; border-left: 1px solid <<colour tab-border>>; border-top: 1px solid <<colour tab-border>>; border-right: 1px solid <<colour tab-border>>; border-top-left-radius: 2px; border-top-right-radius: 2px; border-bottom-left-radius: 0; border-bottom-right-radius: 0; } .tc-tab-buttons.tc-vertical button { display: block; width: 100%; margin-top: 3px; margin-right: 0; text-align: right; background-color: <<colour tab-background>>; border-left: 1px solid <<colour tab-border>>; border-bottom: 1px solid <<colour tab-border>>; border-right: none; border-top-left-radius: 2px; border-bottom-left-radius: 2px; border-top-right-radius: 0; border-bottom-right-radius: 0; } .tc-tab-buttons.tc-vertical button.tc-tab-selected { background-color: <<colour tab-background-selected>>; border-right: 1px solid <<colour tab-background-selected>>; } .tc-tab-divider { border-top: 1px solid <<colour tab-divider>>; } .tc-tab-divider.tc-vertical { display: none; } .tc-tab-content { margin-top: 14px; } .tc-tab-content.tc-vertical { word-break: break-word; display: inline-block; vertical-align: top; padding-top: 0; padding-left: 14px; border-left: 1px solid <<colour tab-border>>; -webkit-flex: 1 0 70%; flex: 1 0 70%; } .tc-sidebar-lists .tc-tab-buttons { margin-bottom: -1px; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { background-color: <<colour sidebar-tab-background-selected>>; color: <<colour sidebar-tab-foreground-selected>>; border-left: 1px solid <<colour sidebar-tab-border-selected>>; border-top: 1px solid <<colour sidebar-tab-border-selected>>; border-right: 1px solid <<colour sidebar-tab-border-selected>>; } .tc-sidebar-lists .tc-tab-buttons button { background-color: <<colour sidebar-tab-background>>; color: <<colour sidebar-tab-foreground>>; border-left: 1px solid <<colour sidebar-tab-border>>; border-top: 1px solid <<colour sidebar-tab-border>>; border-right: 1px solid <<colour sidebar-tab-border>>; } .tc-sidebar-lists .tc-tab-divider { border-top: 1px solid <<colour sidebar-tab-divider>>; } .tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button { display: block; width: 100%; background-color: <<colour sidebar-tab-background>>; border-top: none; border-left: none; border-bottom: none; border-right: 1px solid #ccc; margin-bottom: inherit; } .tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected { background-color: <<colour sidebar-tab-background-selected>>; border: none; } /* ** Manager */ .tc-manager-wrapper { } .tc-manager-controls { } .tc-manager-control { margin: 0.5em 0; } .tc-manager-list { width: 100%; border-top: 1px solid <<colour muted-foreground>>; border-left: 1px solid <<colour muted-foreground>>; border-right: 1px solid <<colour muted-foreground>>; } .tc-manager-list-item { } .tc-manager-list-item-heading { display: block; width: 100%; text-align: left; border-bottom: 1px solid <<colour muted-foreground>>; padding: 3px; } .tc-manager-list-item-heading-selected { font-weight: bold; color: <<colour background>>; fill: <<colour background>>; background-color: <<colour foreground>>; } .tc-manager-list-item-heading:hover { background: <<colour primary>>; color: <<colour background>>; } .tc-manager-list-item-content { display: flex; } .tc-manager-list-item-content-sidebar { flex: 1 0; background: <<colour tiddler-editor-background>>; border-right: 0.5em solid <<colour muted-foreground>>; border-bottom: 0.5em solid <<colour muted-foreground>>; white-space: nowrap; } .tc-manager-list-item-content-item-heading { display: block; width: 100%; text-align: left; background: <<colour muted-foreground>>; text-transform: uppercase; font-size: 0.6em; font-weight: bold; padding: 0.5em 0 0.5em 0; } .tc-manager-list-item-content-item-body { padding: 0 0.5em 0 0.5em; } .tc-manager-list-item-content-item-body > pre { margin: 0.5em 0 0.5em 0; border: none; background: inherit; } .tc-manager-list-item-content-tiddler { flex: 3 1; border-left: 0.5em solid <<colour muted-foreground>>; border-right: 0.5em solid <<colour muted-foreground>>; border-bottom: 0.5em solid <<colour muted-foreground>>; } .tc-manager-list-item-content-item-body > table { border: none; padding: 0; margin: 0; } .tc-manager-list-item-content-item-body > table td { border: none; } .tc-manager-icon-editor > button { width: 100%; } .tc-manager-icon-editor > button > svg, .tc-manager-icon-editor > button > button { width: 100%; height: auto; } /* ** Alerts */ .tc-alerts { position: fixed; top: 0; left: 0; max-width: 500px; z-index: 20000; } .tc-alert { position: relative; margin: 28px; padding: 14px 14px 14px 14px; border: 2px solid <<colour alert-border>>; background-color: <<colour alert-background>>; } .tc-alert-toolbar { position: absolute; top: 14px; right: 14px; } .tc-alert-toolbar svg { fill: <<colour alert-muted-foreground>>; } .tc-alert-subtitle { color: <<colour alert-muted-foreground>>; font-weight: bold; } .tc-alert-highlight { color: <<colour alert-highlight>>; } @media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) { .tc-static-alert { position: relative; } .tc-static-alert-inner { position: absolute; z-index: 100; } } .tc-static-alert-inner { padding: 0 2px 2px 42px; color: <<colour static-alert-foreground>>; } /* ** Floating drafts list */ .tc-drafts-list { z-index: 2000; position: fixed; font-size: 0.8em; left: 0; bottom: 0; } .tc-drafts-list a { margin: 0 0.5em; padding: 4px 4px; border-top-left-radius: 4px; border-top-right-radius: 4px; border: 1px solid <<colour background>>; border-bottom-none; background: <<colour dirty-indicator>>; color: <<colour background>>; fill: <<colour background>>; } .tc-drafts-list a:hover { text-decoration: none; background: <<colour foreground>>; color: <<colour background>>; fill: <<colour background>>; } .tc-drafts-list a svg { width: 1em; height: 1em; vertical-align: text-bottom; } /* ** Control panel */ .tc-control-panel td { padding: 4px; } .tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea { width: 100%; } .tc-plugin-info { display: block; border: 1px solid <<colour muted-foreground>>; background-colour: <<colour background>>; margin: 0.5em 0 0.5em 0; padding: 4px; } .tc-plugin-info-disabled { background: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px); background: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px); } .tc-plugin-info-disabled:hover { background: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px); background: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px); } a.tc-tiddlylink.tc-plugin-info:hover { text-decoration: none; background-color: <<colour primary>>; color: <<colour background>>; fill: <<colour foreground>>; } a.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg { fill: <<colour foreground>>; } .tc-plugin-info-chunk { display: inline-block; vertical-align: middle; } .tc-plugin-info-chunk h1 { font-size: 1em; margin: 2px 0 2px 0; } .tc-plugin-info-chunk h2 { font-size: 0.8em; margin: 2px 0 2px 0; } .tc-plugin-info-chunk div { font-size: 0.7em; margin: 2px 0 2px 0; } .tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg { width: 2em; height: 2em; fill: <<colour foreground>>; } .tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg { width: 2em; height: 2em; fill: <<colour muted-foreground>>; } .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg { width: 1em; height: 1em; } .tc-plugin-info-dropdown { border: 1px solid <<colour muted-foreground>>; margin-top: -8px; } .tc-plugin-info-dropdown-message { background: <<colour message-background>>; padding: 0.5em 1em 0.5em 1em; font-weight: bold; font-size: 0.8em; } .tc-plugin-info-dropdown-body { padding: 1em 1em 1em 1em; } .tc-check-list { line-height: 2em; } .tc-check-list .tc-image-button { height: 1.5em; } /* ** Message boxes */ .tc-message-box { border: 1px solid <<colour message-border>>; background: <<colour message-background>>; padding: 0px 21px 0px 21px; font-size: 12px; line-height: 18px; color: <<colour message-foreground>>; } .tc-message-box svg { width: 1em; height: 1em; vertical-align: text-bottom; } /* ** Pictures */ .tc-bordered-image { border: 1px solid <<colour muted-foreground>>; padding: 5px; margin: 5px; } /* ** Floats */ .tc-float-right { float: right; } /* ** Chooser */ .tc-chooser { border-right: 1px solid <<colour table-header-background>>; border-left: 1px solid <<colour table-header-background>>; } .tc-chooser-item { border-bottom: 1px solid <<colour table-header-background>>; border-top: 1px solid <<colour table-header-background>>; padding: 2px 4px 2px 14px; } .tc-drop-down .tc-chooser-item { padding: 2px; } .tc-chosen, .tc-chooser-item:hover { background-color: <<colour table-header-background>>; border-color: <<colour table-footer-background>>; } .tc-chosen .tc-tiddlylink { cursor:default; } .tc-chooser-item .tc-tiddlylink { display: block; text-decoration: none; background-color: transparent; } .tc-chooser-item:hover .tc-tiddlylink:hover { text-decoration: none; } .tc-drop-down .tc-chosen .tc-tiddlylink, .tc-drop-down .tc-chooser-item .tc-tiddlylink:hover { color: <<colour foreground>>; } .tc-chosen > .tc-tiddlylink:before { margin-left: -10px; position: relative; content: "» "; } .tc-chooser-item svg, .tc-chooser-item img{ width: 1em; height: 1em; vertical-align: middle; } .tc-language-chooser .tc-image-button img { width: 2em; vertical-align: -0.15em; } /* ** Palette swatches */ .tc-swatches-horiz { } .tc-swatches-horiz .tc-swatch { display: inline-block; } .tc-swatch { width: 2em; height: 2em; margin: 0.4em; border: 1px solid #888; } /* ** Table of contents */ .tc-sidebar-lists .tc-table-of-contents { white-space: nowrap; } .tc-table-of-contents button { color: <<colour sidebar-foreground>>; } .tc-table-of-contents svg { width: 0.7em; height: 0.7em; vertical-align: middle; fill: <<colour sidebar-foreground>>; } .tc-table-of-contents ol { list-style-type: none; padding-left: 0; } .tc-table-of-contents ol ol { padding-left: 1em; } .tc-table-of-contents li { font-size: 1.0em; font-weight: bold; } .tc-table-of-contents li a { font-weight: bold; } .tc-table-of-contents li li { font-size: 0.95em; font-weight: normal; line-height: 1.4; } .tc-table-of-contents li li a { font-weight: normal; } .tc-table-of-contents li li li { font-size: 0.95em; font-weight: 200; line-height: 1.5; } .tc-table-of-contents li li li li { font-size: 0.95em; font-weight: 200; } .tc-tabbed-table-of-contents { display: -webkit-flex; display: flex; } .tc-tabbed-table-of-contents .tc-table-of-contents { z-index: 100; display: inline-block; padding-left: 1em; max-width: 50%; -webkit-flex: 0 0 auto; flex: 0 0 auto; background: <<colour tab-background>>; border-left: 1px solid <<colour tab-border>>; border-top: 1px solid <<colour tab-border>>; border-bottom: 1px solid <<colour tab-border>>; } .tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a, .tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a { display: block; padding: 0.12em 1em 0.12em 0.25em; } .tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a { border-top: 1px solid <<colour tab-background>>; border-left: 1px solid <<colour tab-background>>; border-bottom: 1px solid <<colour tab-background>>; } .tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover { text-decoration: none; border-top: 1px solid <<colour tab-border>>; border-left: 1px solid <<colour tab-border>>; border-bottom: 1px solid <<colour tab-border>>; background: <<colour tab-border>>; } .tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a { border-top: 1px solid <<colour tab-border>>; border-left: 1px solid <<colour tab-border>>; border-bottom: 1px solid <<colour tab-border>>; background: <<colour background>>; margin-right: -1px; } .tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover { text-decoration: none; } .tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content { display: inline-block; vertical-align: top; padding-left: 1.5em; padding-right: 1.5em; border: 1px solid <<colour tab-border>>; -webkit-flex: 1 0 50%; flex: 1 0 50%; } /* ** Dirty indicator */ body.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg { fill: <<colour dirty-indicator>>; color: <<colour dirty-indicator>>; } /* ** File inputs */ .tc-file-input-wrapper { position: relative; overflow: hidden; display: inline-block; vertical-align: middle; } .tc-file-input-wrapper input[type=file] { position: absolute; top: 0; left: 0; right: 0; bottom: 0; font-size: 999px; max-width: 100%; max-height: 100%; filter: alpha(opacity=0); opacity: 0; outline: none; background: white; cursor: pointer; display: inline-block; } /* ** Thumbnail macros */ .tc-thumbnail-wrapper { position: relative; display: inline-block; margin: 6px; vertical-align: top; } .tc-thumbnail-right-wrapper { float:right; margin: 0.5em 0 0.5em 0.5em; } .tc-thumbnail-image { text-align: center; overflow: hidden; border-radius: 3px; } .tc-thumbnail-image svg, .tc-thumbnail-image img { filter: alpha(opacity=1); opacity: 1; min-width: 100%; min-height: 100%; max-width: 100%; } .tc-thumbnail-wrapper:hover .tc-thumbnail-image svg, .tc-thumbnail-wrapper:hover .tc-thumbnail-image img { filter: alpha(opacity=0.8); opacity: 0.8; } .tc-thumbnail-background { position: absolute; border-radius: 3px; } .tc-thumbnail-icon svg, .tc-thumbnail-icon img { width: 3em; height: 3em; <<filter "drop-shadow(2px 2px 4px rgba(0,0,0,0.3))">> } .tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg, .tc-thumbnail-wrapper:hover .tc-thumbnail-icon img { fill: #fff; <<filter "drop-shadow(3px 3px 4px rgba(0,0,0,0.6))">> } .tc-thumbnail-icon { position: absolute; top: 0; left: 0; right: 0; bottom: 0; display: -webkit-flex; -webkit-align-items: center; -webkit-justify-content: center; display: flex; align-items: center; justify-content: center; } .tc-thumbnail-caption { position: absolute; background-color: #777; color: #fff; text-align: center; bottom: 0; width: 100%; filter: alpha(opacity=0.9); opacity: 0.9; line-height: 1.4; border-bottom-left-radius: 3px; border-bottom-right-radius: 3px; } .tc-thumbnail-wrapper:hover .tc-thumbnail-caption { filter: alpha(opacity=1); opacity: 1; } /* ** Diffs */ .tc-diff-equal { background-color: <<colour diff-equal-background>>; color: <<colour diff-equal-foreground>>; } .tc-diff-insert { background-color: <<colour diff-insert-background>>; color: <<colour diff-insert-foreground>>; } .tc-diff-delete { background-color: <<colour diff-delete-background>>; color: <<colour diff-delete-foreground>>; } .tc-diff-invisible { background-color: <<colour diff-invisible-background>>; color: <<colour diff-invisible-foreground>>; } .tc-diff-tiddlers th { text-align: right; background: <<colour background>>; font-weight: normal; font-style: italic; } .tc-diff-tiddlers pre { margin: 0; padding: 0; border: none; background: none; } /* ** Errors */ .tc-error { background: #f00; color: #fff; } /* ** Tree macro */ .tc-tree div { padding-left: 14px; } .tc-tree ol { list-style-type: none; padding-left: 0; margin-top: 0; } .tc-tree ol ol { padding-left: 1em; } .tc-tree button { color: #acacac; } .tc-tree svg { fill: #acacac; } .tc-tree span svg { width: 1em; height: 1em; vertical-align: baseline; } .tc-tree li span { color: lightgray; } select { color: <<colour select-tag-foreground>>; background: <<colour select-tag-background>>; }
17px
1.2
0px
770px
90px
686px
fixed-fluid
cover
style: flat INDEX: NON $Data$: $Off$
\define yetAgain() <$reveal type='match' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$reveal type='match' state='!!title' text={{$:/Tiddler Breadcrumbs Template!!apex_tag}}> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> <$list filter=<<Extra>> emptyMessage=''> </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> </$list> <br> </$reveal> </$reveal> <$reveal type='nomatch' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> <$list filter=<<Extra>> emptyMessage=''> </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> ici </$list> <br> </$reveal> \end \define again() <$list filter=<<First>>> <<yetAgain>> </$list> \end \define finalFilter() <$set name=First filter="""$(TheFilter)$ +[last[]]"""> <$set name=End filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[first{$:/Tiddler Breadcrumbs Template!!length_limit}] +[reverse[]]"""> <$set name=Extra filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[butfirst{$:/Tiddler Breadcrumbs Template!!length_limit}] +[limit[1]]""" emptyValue='[is[system]!is[system]]'> <<again>> </$set> </$set> </$set> \end \define breadcrumbsEmptyMessage() <$set name=TheFilter filter="""$(TheFilter)$ [<CurrentTag>]"""><<breadcrumbs>></$set> \end \define styledbreadcrumbs(flat) <div class="crumbbody"> <div class="breadcrumb $flat$"> <$list filter='[<CurrentTag>tags[]] -[[$:/tags/SideBar]]' variable=CurrentTag emptyMessage=<<finalFilter>>> <$list filter="""$(TheFilter)$ +[field:title<CurrentTag>]""" emptyMessage=<<breadcrumbsEmptyMessage>>> </$list> </$list> </div> </div> \end \define breadcrumbs() <$set name=flat value={{$:/Tiddler Breadcrumbs Flat##style}}> <<styledbreadcrumbs $(flat)$ >> </$set> <style> <!-- Étonnant, la numérotation reste bloquée sur 1 si cette ligne est absente ! --> @import url(https://fonts.googleapis.com/css?family=Merriweather+Sans); .crumbbody {} .crumbbody * {margin: 0; padding: 0;} .breadcrumb { display: inline-block; counter-reset: flag; } .breadcrumb a { text-decoration: none; outline: none; display: block; float: left; padding: 0 10px 0 10px;/*Réglage fin des espaces entre les items */ position: relative; } .breadcrumb a:first-child { padding-left: 5px;/*Espace entre le bord gauche et le 1er item*/ } .breadcrumb a:first-child:before {left: 14px;} .breadcrumb a:last-child { padding-right: 20px; } /*hover/active styles*/ .breadcrumb a.active, .breadcrumb a:hover{} .breadcrumb a.active:after, .breadcrumb a:hover:after {} /*Ajout des flèches for the breadcrumbs using rotated pseudo elements*/ .breadcrumb a:after { content: ""; position: absolute; top: 5px; /*right: -18px;*/ width: 10px; height: 10px; transform: scale(0.707) rotate(45deg); z-index: 1; box-shadow: 2px -2px 0 2px rgba(0, 0, 0, 0.4), 3px -3px 0 2px rgba(255, 255, 255, 0.1); /*border-radius: 0 5px 0 50px;*/ } /*we dont need an arrow after the last link*/ .breadcrumb a:last-child:after { content: none; } /*we will use the :before element to show numbers*/ .breadcrumb a:before { content: counter(flag); counter-increment: flag; /*some styles now*/ .flat a, .flat a:after { background: white; color: black; transition: all 0.5s; } .flat a:before { background: white; box-shadow: 0 0 0 1px #ccc; } .flat a:hover, .flat a.active, .flat a:hover:after, .flat a.active:after{ background: #9EEB62; } </style> \end <!-- Fin des modifs --> <div style='width:100%'> <$reveal type='nomatch' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='true'> <i class="fa fa-plus-circle"></i> Fil d'Ariane: </$button> </$reveal> <$reveal type='match' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='false'> <i class="fa fa-minus-circle"></i> Fil d'Ariane: </$button><!--<br>pour saut de ligne--> <$set name=CurrentTag value={{!!title}}> <$set name=TheFilter filter='[is[current]]'> <<breadcrumbs>> </$set> </$set> </$reveal> </div>
\define yetAgain() <$reveal type='match' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$reveal type='match' state='!!title' text={{$:/Tiddler Breadcrumbs Template!!apex_tag}}> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> <$list filter=<<Extra>> emptyMessage=''> </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> </$list> <br> </$reveal> </$reveal> <$reveal type='nomatch' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> <$list filter=<<Extra>> emptyMessage=''> </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> ici </$list> <br> </$reveal> \end \define again() <$list filter=<<First>>> <<yetAgain>> </$list> \end \define finalFilter() <$set name=First filter="""$(TheFilter)$ +[last[]]"""> <$set name=End filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[first{$:/Tiddler Breadcrumbs Template!!length_limit}] +[reverse[]]"""> <$set name=Extra filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[butfirst{$:/Tiddler Breadcrumbs Template!!length_limit}] +[limit[1]]""" emptyValue='[is[system]!is[system]]'> <<again>> </$set> </$set> </$set> \end \define breadcrumbsEmptyMessage() <$set name=TheFilter filter="""$(TheFilter)$ [<CurrentTag>]"""><<breadcrumbs>></$set> \end \define styledbreadcrumbs(flat) <div class="crumbbody"> <div class="breadcrumb $flat$"> <$list filter='[<CurrentTag>tags[]] -[[$:/tags/SideBar]]' variable=CurrentTag emptyMessage=<<finalFilter>>> <$list filter="""$(TheFilter)$ +[field:title<CurrentTag>]""" emptyMessage=<<breadcrumbsEmptyMessage>>> </$list> </$list> </div> </div> \end \define breadcrumbs() <$set name=flat value={{$:/Tiddler Breadcrumbs Flat##style}}> <<styledbreadcrumbs $(flat)$ >> </$set> <style> <!-- Étonnant, la numérotation reste bloquée sur 1 si cette ligne est absente ! --> @import url(https://fonts.googleapis.com/css?family=Merriweather+Sans); .crumbbody {} .crumbbody * {margin: 0; padding: 0;} .breadcrumb { display: inline-block; counter-reset: flag; } .breadcrumb a { text-decoration: none; outline: none; display: block; float: left; padding: 0 10px 0 10px;/*Réglage fin des espaces entre les items */ position: relative; } .breadcrumb a:first-child { padding-left: 5px;/*Espace entre le bord gauche et le 1er item*/ } .breadcrumb a:first-child:before {left: 14px;} .breadcrumb a:last-child { padding-right: 20px; } /*hover/active styles*/ .breadcrumb a.active, .breadcrumb a:hover{} .breadcrumb a.active:after, .breadcrumb a:hover:after {} /*Ajout des flèches for the breadcrumbs using rotated pseudo elements*/ .breadcrumb a:after { content: ""; position: absolute; top: 5px; /*right: -18px;*/ width: 10px; height: 10px; transform: scale(0.707) rotate(45deg); z-index: 1; box-shadow: 2px -2px 0 2px rgba(0, 0, 0, 0.4), 3px -3px 0 2px rgba(255, 255, 255, 0.1); /*border-radius: 0 5px 0 50px;*/ } /*we dont need an arrow after the last link*/ .breadcrumb a:last-child:after { content: none; } /*we will use the :before element to show numbers*/ .breadcrumb a:before { content: counter(flag); counter-increment: flag; /*some styles now*/ .flat a, .flat a:after { background: white; color: black; transition: all 0.5s; } .flat a:before { background: white; box-shadow: 0 0 0 1px #ccc; } .flat a:hover, .flat a.active, .flat a:hover:after, .flat a.active:after{ background: #9EEB62; } </style> \end <!-- Fin des modifs --> <div style='width:100%'> <$reveal type='nomatch' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='true'> <i class="fa fa-plus-circle"></i> Fil d'Ariane: </$button> </$reveal> <$reveal type='match' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='false'> <i class="fa fa-minus-circle"></i> Fil d'Ariane: </$button><!--<br>pour saut de ligne--> <$set name=CurrentTag value={{!!title}}> <$set name=TheFilter filter='[is[current]]'> <<breadcrumbs>> </$set> </$set> </$reveal> </div>
\define yetAgain() <$reveal type='match' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$reveal type='match' state='!!title' text={{$:/Tiddler Breadcrumbs Template!!apex_tag}}> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> > <$list filter=<<Extra>> emptyMessage=''> ... > </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> > </$list> <br> </$reveal> </$reveal> <$reveal type='nomatch' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> > <$list filter=<<Extra>> emptyMessage=''> .. > </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> > </$list> <br> </$reveal> \end \define again() <$list filter=<<First>>> <<yetAgain>> </$list> \end \define finalFilter() <$set name=First filter="""$(TheFilter)$ +[last[]]"""> <$set name=End filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[first{$:/Tiddler Breadcrumbs Template!!length_limit}] +[reverse[]]"""> <$set name=Extra filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[butfirst{$:/Tiddler Breadcrumbs Template!!length_limit}] +[limit[1]]""" emptyValue='[is[system]!is[system]]'> <<again>> </$set> </$set> </$set> \end \define breadcrumbsEmptyMessage() <$set name=TheFilter filter="""$(TheFilter)$ [<CurrentTag>]"""><<breadcrumbs>></$set> \end \define breadcrumbs() <$list filter='[<CurrentTag>tags[]] -[[$:/tags/SideBar]]' variable=CurrentTag emptyMessage=<<finalFilter>>> <$list filter="""$(TheFilter)$ +[field:title<CurrentTag>]""" emptyMessage=<<breadcrumbsEmptyMessage>>> </$list> </$list> \end <div style='width:100%'> <$reveal type='nomatch' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='true'> {{$:/core/images/right-arrow}} Breadcrumbs: </$button> </$reveal> <$reveal type='match' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='false'> {{$:/core/images/down-arrow}} Breadcrumbs: </$button><br> <$set name=CurrentTag value={{!!title}}> <$set name=TheFilter filter='[is[current]]'> <<breadcrumbs>> </$set> </$set> </$reveal> </div>
\define yetAgain() <$reveal type='match' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$reveal type='match' state='!!title' text={{$:/Tiddler Breadcrumbs Template!!apex_tag}}> <$link to=<<currentTiddler>>> <$view field='caption'/> </$link> > <$list filter=<<Extra>> emptyMessage=''> </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='caption'/> </$link> </$list> <br> </$reveal> </$reveal> <$reveal type='nomatch' state='$:/Tiddler Breadcrumbs Template!!use_apex_tag' text='true'> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> <$list filter=<<Extra>> emptyMessage=''> </$list> <$list filter="""$(End)$"""> <$link to=<<currentTiddler>>> <$view field='title'/> </$link> > </$list> <br> </$reveal> \end \define again() <$list filter=<<First>>> <<yetAgain>> </$list> \end \define finalFilter() <$set name=First filter="""$(TheFilter)$ +[last[]]"""> <$set name=End filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[first{$:/Tiddler Breadcrumbs Template!!length_limit}] +[reverse[]]"""> <$set name=Extra filter="""$(TheFilter)$ +[butlast[]] +[butfirst[]] +[butfirst{$:/Tiddler Breadcrumbs Template!!length_limit}] +[limit[1]]""" emptyValue='[is[system]!is[system]]'> <<again>> </$set> </$set> </$set> \end \define breadcrumbsEmptyMessage() <$set name=TheFilter filter="""$(TheFilter)$ [<CurrentTag>]""" ><<breadcrumbs>></$set> \end \define styledbreadcrumbs(flat) <div class="crumbbody"> <div class="breadcrumb $flat$"> <$list filter='[<CurrentTag>tags[]] -[[$:/tags/SideBar]]' variable=CurrentTag emptyMessage=<<finalFilter>>> <$list filter="""$(TheFilter)$ +[field:title<CurrentTag>]""" emptyMessage=<<breadcrumbsEmptyMessage>>> </$list> </$list> </div> </div> \end \define breadcrumbs() <$set name=flat value={{$:/Tiddler Breadcrumbs Flat##style}}> <<styledbreadcrumbs $(flat)$ >> </$set> <style> @import url(https://fonts.googleapis.com/css?family=Merriweather+Sans); .crumbbody { text-align: center; /*center;*/ font-family: 'Merriweather Sans', arial, verdana; } .crumbbody * {margin: 0; padding: 0;} .breadcrumb { /*centering overflow: hidden; box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.35); */ display: inline-block; border-radius: 5px; /*Lets add the numbers for each link using CSS counters. flag is the name of the counter. to be defined using counter-reset in the parent element of the links*/ counter-reset: flag; } .breadcrumb a { text-decoration: none; outline: none; display: block; float: left; font-size: 12px; line-height: 36px; color: white; /*need more margin on the left of links to accomodate the numbers*/ padding: 0 10px 0 60px; background: #666; background: linear-gradient(#666, #333); position: relative; } /*since the first link does not have a triangle before it we can reduce the left padding to make it look consistent with other links*/ .breadcrumb a:first-child { padding-left: 46px; border-radius: 5px 0 0 5px; /*to match with the parent's radius*/ } .breadcrumb a:first-child:before { left: 14px; } .breadcrumb a:last-child { border-radius: 0 5px 5px 0; /*this was to prevent glitches on hover*/ padding-right: 20px; } /*hover/active styles*/ .breadcrumb a.active, .breadcrumb a:hover{ background: #333; background: linear-gradient(#333, #000); } .breadcrumb a.active:after, .breadcrumb a:hover:after { background: #333; background: linear-gradient(135deg, #333, #000); } /*adding the arrows for the breadcrumbs using rotated pseudo elements*/ .breadcrumb a:after { content: ""; position: absolute; top: 0; right: -18px; /*half of square's length*/ /*same dimension as the line-height of .breadcrumb a */ width: 36px; height: 36px; /*as you see the rotated square takes a larger height. which makes it tough to position it properly. So we are going to scale it down so that the diagonals become equal to the line-height of the link. We scale it to 70.7% because if square's: length = 1; diagonal = (1^2 + 1^2)^0.5 = 1.414 (pythagoras theorem) if diagonal required = 1; length = 1/1.414 = 0.707*/ transform: scale(0.707) rotate(45deg); /*we need to prevent the arrows from getting buried under the next link*/ z-index: 1; /*background same as links but the gradient will be rotated to compensate with the transform applied*/ background: #666; background: linear-gradient(135deg, #666, #333); /*stylish arrow design using box shadow*/ box-shadow: 2px -2px 0 2px rgba(0, 0, 0, 0.4), 3px -3px 0 2px rgba(255, 255, 255, 0.1); /* 5px - for rounded arrows and 50px - to prevent hover glitches on the border created using shadows*/ border-radius: 0 5px 0 50px; } /*we dont need an arrow after the last link*/ .breadcrumb a:last-child:after { content: none; } /*we will use the :before element to show numbers*/ .breadcrumb a:before { content: counter(flag); counter-increment: flag; /*some styles now*/ border-radius: 100%; width: 20px; height: 20px; line-height: 20px; margin: 8px 0; position: absolute; top: 0; left: 30px; background: #444; background: linear-gradient(#444, #222); font-weight: bold; } .flat a, .flat a:after { background: white; color: black; transition: all 0.5s; } .flat a:before { background: white; box-shadow: 0 0 0 1px #ccc; } .flat a:hover, .flat a.active, .flat a:hover:after, .flat a.active:after{ background: #9EEB62; } </style> \end <div style='width:100%'> <$reveal type='nomatch' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='true'> <!--{{$:/core/images/right-arrow}}--> <i class="fa fa-plus-circle"></i> Vous êtes ici: </$button> </$reveal> <$reveal type='match' state='$:/state/Global/ShowBreadcrumbs' text=true> <$button class='tc-btn-invisible' set='$:/state/Global/ShowBreadcrumbs' setTo='false'> <!--{{$:/core/images/down-arrow}}--> <i class="fa fa-minus-circle"></i> Vous êtes ici: </$button><br> <$set name=CurrentTag value={{!!title}}> <$set name=TheFilter filter='[is[current]]'> <<breadcrumbs>> </$set> </$set> </$reveal> </div>
{{$:/TiddlerDocUser||caption}}
{{$:/Tiddlers||caption}}
{{$:/TiddlersContrôle||caption}}
;AKA ~TiddlyOueb V.3 <!-- BASÉ SUR LE GABARIT NAVBAR = SIDEBAR --> <$button class="bttn-fill bttn-sm bttn-primary" to={{!!select-option}} tooltip="Barre de Navigation et SideBar"> <i class="fa fa-spinner"></i> ~TiddlyOueb <!-- Désactivation de toutes les barres --> {{$:/RemoveTemplates}} <!-- La SideBar DOIT être en position fixed-fluid --> <$action-setfield $tiddler='$:/themes/tiddlywiki/vanilla/options/sidebarlayout' text="fixed-fluid" /> <!-- SideBar in normal position (right) --> <$action-setfield $tiddler='$:/state/sidebar' text="yes" /> <!-- Add chevron (sidebar) --> <$action-setfield $tiddler="$:/core/ui/TopBar/menu" tags="$:/tags/TopRightBar" /> <!-- Add the NavBar --> <$fieldmangler tiddler="$:/navbar/css"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- Add the Menu into the NavBar --> <$fieldmangler tiddler="$:/NavBarContent"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> <!-- PARAMÉTRAGES SPÉCIFIQUES TIDDLYOUEB --> <!--Déroulé Extensible, barre latérale Fixe (fluid-fixed)--> <$action-setfield $tiddler='$:/themes/tiddlywiki/vanilla/options/sidebarlayout' text="fluid-fixed" /> <!--Supprimer l'espace entre les tiddlers et les bords--> <$action-setfield $tiddler="$:/cssStoryRiver" padding="0" /> <!--Supprimer l'espace entre les tiddlers--> <$fieldmangler tiddler="$:/cssTiddlerFrame"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!--Suppression des titres des tiddlers--> <$action-setfield $tiddler="$:/ViewTemplateWithoutTitle" title="$:/core/ui/ViewTemplate/title"/> <$fieldmangler tiddler="$:/core/ui/ViewTemplate/title"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/ViewTemplate'/> </$fieldmangler> <!-- Couleur de fond, Couleur des tiddlers--> <$fieldmangler tiddler="$:/cssTiddlyOueb"> <$action-sendmessage $message='tm-add-tag' $param='$:/tags/Stylesheet'/> </$fieldmangler> <!-- SPÉCIFIQUE --> {{$:/removeSpecificNoBars}} </$button> <$details summary="Plus de détails"> {{$:/doc-user-087}} </$details>
<span title=<<dt 'MM/DD (today-78)' '-112320'>>> <$button class='tc-btn-invisible tc-time'><$action-navigate $to='$:/info/timestamp'/><$transclude tiddler='$:/temp/time' mode='block'/></$button></span>
<dt><$link><$view field="title"/></$link></dt><dd><$transclude field="description"/></dd>
<tr> <td> <$link to="$:/Transparence du bloc tiddlers">Transparence (si RGBA)</$link> </td> <td align="center"> <$edit-text class='tc-edit-texteditor' tiddler='$:/cssH1H5' field='transparence'/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal30" text="show"><$button set="$:/state/SampleRowReveal30" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal30" text="show"><$button set="$:/state/SampleRowReveal30" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal30" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-129}} </td> </$reveal>
<$button class=<<tv-config-toolbar-class>> tooltip={{$:/tw-admin/button!!caption}} aria-label={{$:/tw-admin/button!!description}} class=<<tv-config-toolbar-class>>> <$action-sendmessage $message="tm-open-window" $param="$:/tw-admin/content" height="600px" width="500px"/> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{$:/tw-admin/icon}} </$list> </$button>
<<doc>> <$button>Save wiki <$action-sendmessage $message="tm-save-wiki" /> </$button> <i class="icon icon-forward"></i> @@color: crimson; Utilisez ce [[tiddler|$:/tw-admin/content]] pour ajouter vos propres paramétrages@@ <i class="icon icon-forward"></i> ''Ce tiddler DEVRAIT ÊTRE protégé par un mot de passe''. Voir par exemple le plugin [[Encryption individuelle de tiddlers|$:/plugins/danielo/encryptTiddler]] <i class="icon icon-forward"></i> Explications sur [[TW Admin A remote admin panel]] {{Paramètres}}
<svg class="tc-image-options-button tc-image-button" width="22pt" height="22pt" viewBox="0 0 128 128"> <g fill-rule="evenodd"> <path d="M110.48779,76.0002544 C109.354214,80.4045063 107.611262,84.5641217 105.354171,88.3838625 L105.354171,88.3838625 L112.07833,95.1080219 C115.20107,98.2307613 115.210098,103.299824 112.089164,106.420759 L106.420504,112.089418 C103.301049,115.208874 98.2346851,115.205502 95.1077675,112.078585 L88.3836082,105.354425 C84.5638673,107.611516 80.4042519,109.354468 76,110.488045 L76,110.488045 L76,119.993281 C76,124.409501 72.4220153,128.000254 68.0083475,128.000254 L59.9916525,128.000254 C55.5800761,128.000254 52,124.41541 52,119.993281 L52,110.488045 C47.5957481,109.354468 43.4361327,107.611516 39.6163918,105.354425 L32.8922325,112.078585 C29.7694931,115.201324 24.7004301,115.210353 21.5794957,112.089418 L15.9108363,106.420759 C12.7913807,103.301303 12.7947522,98.2349395 15.9216697,95.1080219 L22.6458291,88.3838625 C20.3887383,84.5641217 18.6457859,80.4045063 17.5122098,76.0002544 L8.00697327,76.0002544 C3.59075293,76.0002544 2.19088375e-16,72.4222697 4.89347582e-16,68.0086019 L9.80228577e-16,59.9919069 C1.25035972e-15,55.5803305 3.58484404,52.0002544 8.00697327,52.0002544 L17.5122098,52.0002544 C18.6457859,47.5960025 20.3887383,43.4363871 22.6458291,39.6166462 L15.9216697,32.8924868 C12.7989304,29.7697475 12.7899019,24.7006845 15.9108363,21.5797501 L21.5794957,15.9110907 C24.6989513,12.7916351 29.7653149,12.7950065 32.8922325,15.9219241 L39.6163918,22.6460835 C43.4361327,20.3889927 47.5957481,18.6460403 52,17.5124642 L52,8.00722764 C52,3.5910073 55.5779847,0.000254375069 59.9916525,0.000254375069 L68.0083475,0.000254375069 C72.4199239,0.000254375069 76,3.58509841 76,8.00722764 L76,17.5124642 C80.4042519,18.6460403 84.5638673,20.3889927 88.3836082,22.6460835 L95.1077675,15.9219241 C98.2305069,12.7991848 103.29957,12.7901562 106.420504,15.9110907 L112.089164,21.5797501 C115.208619,24.6992057 115.205248,29.7655693 112.07833,32.8924868 L105.354171,39.6166462 L105.354171,39.6166462 C107.611262,43.4363871 109.354214,47.5960025 110.48779,52.0002544 L119.993027,52.0002544 C124.409247,52.0002544 128,55.5782391 128,59.9919069 L128,68.0086019 C128,72.4201783 124.415156,76.0002544 119.993027,76.0002544 L110.48779,76.0002544 L110.48779,76.0002544 Z M64,96.0002544 C81.673112,96.0002544 96,81.6733664 96,64.0002544 C96,46.3271424 81.673112,32.0002544 64,32.0002544 C46.326888,32.0002544 32,46.3271424 32,64.0002544 C32,81.6733664 46.326888,96.0002544 64,96.0002544 Z"></path> <path d="M56,72 L8.00697327,72 C3.59075293,72 0,68.418278 0,64 C0,59.5907123 3.58484404,56 8.00697327,56 L56,56 L56,8.00697327 C56,3.59075293 59.581722,0 64,0 C68.4092877,0 72,3.58484404 72,8.00697327 L72,56 L119.993027,56 C124.409247,56 128,59.581722 128,64 C128,68.4092877 124.415156,72 119.993027,72 L72,72 L72,119.993027 C72,124.409247 68.418278,128 64,128 C59.5907123,128 56,124.415156 56,119.993027 L56,72 L56,72 Z"></path> </g> </svg>
yes
iVBORw0KGgoAAAANSUhEUgAAAFAAAAAPCAIAAAD8q9/YAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAA4ElEQVRIie1X2w3DIAw0VSbICJmBmfBM3okZOgIz9MOJRY0TgZqA1OTEBz4e9gEG4UIIcCdMAEBEo8PoBESc1qrH3s4jAfjOLgHg1dfleDyCI61FTJPfY9RUe00W5vnNxTRzMjfLujlQUAjmZDZT2iN4/Aq9ZFR/bopUeUektKS0KDNXohjYdCp5ap4ck8meBtZcfSNy3BKrMqEQxq28EOUqmJovFtwIFaKSIR1M8pgRtAjm85lvVw3zG2QDm0Yd7LALIRA1nLrTMOIdRsTnWfp3bDlc8U5egNjfpbvbb+kD4e19JTu9vvIAAAAASUVORK5CYII=
<tr> <td> <$link to="$:/Utiliser un tag Apex">Utiliser un tag Apex</$link> </td> <td align="center"> <$checkbox tiddler='$:/Tiddler Breadcrumbs Template' field='use_apex_tag' checked=true unchecked=false></$checkbox> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/ari03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari03" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/ari03" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/ari03" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/ari03" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-133}} </td> </$reveal>
10
{{$:/Versioning||caption}}
""" $:/doc-user-001 $:/doc-user-002 $:/doc-user-003 $:/doc-user-004 $:/doc-user-005 $:/doc-user-006 $:/doc-user-007 $:/doc-user-008 $:/doc-user-009 $:/doc-user-010 $:/doc-user-011 $:/doc-user-012 $:/doc-user-013 $:/doc-user-014 $:/doc-user-015 $:/doc-user-016 $:/doc-user-017 $:/doc-user-018 $:/doc-user-019 $:/doc-user-020 $:/doc-user-021 $:/doc-user-022 $:/doc-user-023 $:/doc-user-024 $:/doc-user-025 $:/doc-user-026 $:/doc-user-027 $:/doc-user-028 $:/doc-user-029 $:/doc-user-030 $:/doc-user-031 $:/doc-user-032 $:/doc-user-033 $:/doc-user-034 $:/doc-user-035 $:/doc-user-036 $:/doc-user-037 $:/doc-user-038 $:/doc-user-039 $:/doc-user-040 $:/doc-user-041 $:/doc-user-042 $:/doc-user-043 $:/doc-user-044 $:/doc-user-045 $:/doc-user-046 $:/doc-user-047 $:/doc-user-048 $:/doc-user-049 $:/doc-user-050 $:/doc-user-051 $:/doc-user-052 $:/doc-user-053 $:/doc-user-054 $:/doc-user-055 $:/doc-user-056 $:/doc-user-057 $:/doc-user-058 $:/doc-user-059 $:/doc-user-060 $:/doc-user-061 $:/doc-user-062 $:/doc-user-063 $:/doc-user-064 $:/doc-user-065 $:/doc-user-066 $:/doc-user-067 $:/doc-user-068 $:/doc-user-069 $:/doc-user-070 $:/doc-user-071 $:/doc-user-072 $:/doc-user-073 $:/doc-user-074 $:/doc-user-075 $:/doc-user-076 $:/doc-user-077 $:/doc-user-078 $:/doc-user-079 $:/doc-user-080 $:/doc-user-081 $:/doc-user-082 $:/doc-user-083 $:/doc-user-084 $:/doc-user-085 $:/doc-user-086 $:/doc-user-087 $:/doc-user-088 $:/doc-user-089 $:/doc-user-090 $:/doc-user-091 $:/doc-user-092 $:/doc-user-093 $:/doc-user-094 $:/doc-user-095 $:/doc-user-096 $:/doc-user-097 $:/doc-user-098 $:/doc-user-099 $:/doc-user-100 $:/doc-user-101 """
Pour les exports de tiddlers de mise-à-jour, copier les codes suivants dans le module de recherche, onglet Filter """ [has:field[tf0]] [has:field[tf1]] [has:field[tf2]] [has:field[tf3]] """ Les ajouts de Tiddlers doivent être portés dans leurs emplacements respectifs: *$:/VersioningOff (Tiddlers embarqués mais exclus de mise-à-jour) *$:/VersioningMain (Tiddlers principaux. Doivent être mis-à-jour) *$:/VersioningAide (Tiddlers d'aide) *$:/VersioningFonts (Tiddlers Fonts) Et sont à contrôler avec la liste des champs attribués ci-dessous. !!<$count filter="[has:field[tf0]]"/> Tiddlers Embarqués mais exclus de la mise à jour <$list filter="[has:field[tf0]]"> </$list> !!<$count filter="[has:field[tf1]]"/> Tiddlers Main (tf1) <$list filter="[has:field[tf1]]"> </$list> --- !!<$count filter="[has:field[tf2]]"/> Tiddlers d'aide (tf2) <$list filter="[has:field[tf2]]"> </$list> --- !!<$count filter="[has:field[tf3]]"/> Tiddlers Fonts (tf3) <$list filter="[has:field[tf3]]"> </$list> <div align="right"><$button class="tc-btn-invisible tc-tiddlylink" tooltip="Modifier ce Tiddler"><$action-navigate to="{{!!title}}"/>◉◉◉</$button></div>
""" $:/fonts/FontAwesome $:/fonts/leckerlioneregular $:/fonts/open_sansbold $:/fonts/open_sansextrabold $:/fonts/open_sanslight $:/fonts/open_sansregular $:/fonts/open_sanssemibold $:/fonts/Roboto $:/fonts/titilliumregular $:/fonts/titilliumthin """
#$:/.tb/modules/startup/hide-sidebar.js #[[$:/À Propos de TiddlyFrame]] #$:/AddRemoveTiddlersTitle #$:/admin #$:/admin/admin.css #$:/admin/Buttons/mode-web #$:/admin/connect #$:/admin/connect/Buttons/mode-admin #$:/admin/identity #$:/admin/identity/Buttons/change #$:/admin/module/profile #$:/admin/switch #$:/Administrateur #$:/Administration #$:/ButtonNewMenu #$:/centralisation/css #$:/centraliser #$:/ChoixMenu #$:/ColorPalette #$:/config/HideSidebarOnStartup #[[$:/config/Plugins/Disabled/$:/plugins/wikilabs/link-to-tabs]] Utile ? #$:/config/RelinkOnRename Oui mais a quoi sert-il ? #$:/config/Whitespace/Spacious #$:/core/ui/Buttons/SideBarTabs #$:/core/ui/Sidebar/Paramètres #$:/core/ui/SideBar/TableOfContents #$:/core/ui/ViewTemplate/blackline #$:/core/ui/ViewTemplate/note #$:/css/LeftBar #$:/css/NoteAstuceAttentionInfo Repris mais en a-t-on vraiment besoin ? #$:/cssAtt Repris mais en a-t-on vraiment besoin ? #$:/cssBorduresTiddlers #$:/cssButtonsOnHover #$:/cssEditeur #$:/cssFooter #$:/cssH1H5 #$:/cssNavBarMenu #$:/cssStoryRiver #$:/cssTableaux #$:/cssTiddlerPolices #$:/cssTiddlerFrame #$:/cssTiddlerTitle #$:/cssTiddlyOueb #$:/Déconnexion #$:/DéroulantLeftBar #$:/DéroulantNavBar #$:/DéroulantSideBar #$:/detail/css #$:/FontOptions #$:/favicon.ico #$:/Gabarits #$:/Généralités #$:/Interface #$:/jd/macros/paragraphs #$:/LeftBar #$:/LeftBarContent #$:/LeftBarOnly #$:/LeftBarSideBar #$:/macros/danielo/rojo.js #$:/macros/svink/pageLink #$:/Menus #$:/NavBar #$:/navbar/button #$:/navbar/css #$:/navbar/css/user #$:/navbar/menu #$:/NavBarContent #$:/NavBarLeftBar #$:/NavBarLeftBarSideBar #$:/NavBarOnly #$:/NavBarSideBar #[[$:/Page Blanche]] #$:/PageFooter #$:/Polices #$:/Polices-Alignements #$:/RemoveTemplates #$:/settings/apperance/TiddlerWidthSettings #$:/SideBar #$:/SideBarOnly #$:/SimpleLeftBar #$:/SimpleNavBar #$:/SimpleSideBar #$:/SiteQuote #$:/SiteSubtitle #$:/SiteTitle #$:/snippets/paletteeditor #$:/Surface #$:/Template #$:/template/StoreMenu #$:/TemplateAdmin #$:/TemplateDéroulantLeftBar #$:/TemplateDéroulantNavBar #$:/TemplateDéroulantSideBar #$:/TemplateInterface #$:/TemplateLeftBar #$:/TemplateMenu #$:/TemplateNavBar #$:/TemplatePreSet #$:/TemplateSideBar #$:/TemplateSimpleLeftBar #$:/TemplateSimpleNavBar #$:/TemplateSimpleSideBar #$:/TemplateTiddler #$:/TemplateVersioning #$:/TemplateWidth #[[$:/Tiddler Breadcrumbs Template]] #$:/TiddlerFontOptions #$:/Tiddlers #$:/TiddlyFrame #$:/TiddlyOueb #$:/user/config #$:/user/config/Logo #$:/user/config/PageFooter #$:/user/profile #$:/Versioning #$:/VersioningAide #$:/VersioningContrôle #$:/VersioningFonts #$:/VersioningMain #$:/VersioningOff #$:/ViewTemplateTitleFr #$:/ViewTemplateWithoutTitle #$:/width/css #$:/width/css/user #[[admin]]
#$:/core/ui/SideBar/TableOfContents #$:/LeftBarContent #$:/NavBarContent #$:/PageFooter #$:/SiteQuote #$:/PiedAssemblé #$:/PiedPowered #$:/PiedEntrées #$:/PiedMailTo #$:/PiedModifié
top
<!-- <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Voir Aussi :"></li> <li class="menu-item"> --> <$list filter='[list[$:/SeeAlsoList!!text]]' variable=CurrentTag> <$list filter='[all[current]tag<CurrentTag>limit[1]]'> <$list filter='[tag<CurrentTag>] -[all[current]]'> </$list> </$list> </$list> <!-- </li> </ul> </div> -->
<tr> <td> <$link to="$:/Voir/Cacher le Chevron SideBar"> {{$:/core/images/chevron-right}} Voir/Cacher le chevron ~SideBar</$link> </td> <td align="center"> <$checkbox tiddler='$:/core/ui/TopBar/menu' tag='$:/tags/TopRightBar' checked='$:/tags/TopRightBar' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar10" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar10" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar10" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar10" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar10" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-017}} </td> </$reveal>
<tr> <td> <$link to="$:/Voir/Cacher vos paramètres dans ControlPanel">{{$:/tw-admin/icon}} Voir/Cacher vos paramètres dans ~ControlPannel</$link> </td> <td align="center"> <$checkbox tiddler='$:/tw-admin/content' tag='$:/tags/ControlPanel/Settings' checked='$:/tags/ControlPanel/Settings' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar21" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar21" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar21" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar21" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar21" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-157}} </td> </$reveal>
<tr> <td> <$link to="$:/Voir/Cacher vos paramètres dans la sidebar">{{$:/tw-admin/icon}} Voir/Cacher vos paramètres dans la sidebar</$link> </td> <td align="center"> <$checkbox tiddler='$:/tw-admin/button' tag='$:/tags/PageControls' checked='$:/tags/PageControls' unchecked=""/> </td> <td align="center"> <$reveal type="nomatch" state="$:/state/bar20" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar20" setTo="show"><i class="icon icon-plus"></i></$button></$reveal><$reveal type="match" state="$:/state/bar20" text="show"><$button class="btn btn-primary btn-action btn-sm" set="$:/state/bar20" setTo="hide"><i class="icon icon-minus"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/bar20" text="show" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-025}} </td> </$reveal>
.tc-btn-invisible { outline:none; }
/*Pour explications voir StyleSheet. Doit être tagué $:/tags/Stylesheet */ ---- body.tc-body .tc-tiddler-frame .tc-tiddler-body { text-align: left; max-width: {{$:/width/css/user!!width_option}}; margin-left: auto; margin-right: auto; margin-top: 50px; } <!-- Règles désactivées incompatibles avec le composant Spectre "Step" Code effacé. -->
.tc-body { /* background by SVGBackgrounds.com */ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 900'%3E%3Cpolygon fill='%23cc0000' points='957 450 539 900 1396 900'/%3E%3Cpolygon fill='%23aa0000' points='957 450 872.9 900 1396 900'/%3E%3Cpolygon fill='%23d6002b' points='-60 900 398 662 816 900'/%3E%3Cpolygon fill='%23b10022' points='337 900 398 662 816 900'/%3E%3Cpolygon fill='%23d9004b' points='1203 546 1552 900 876 900'/%3E%3Cpolygon fill='%23b2003d' points='1203 546 1552 900 1162 900'/%3E%3Cpolygon fill='%23d3006c' points='641 695 886 900 367 900'/%3E%3Cpolygon fill='%23ac0057' points='587 900 641 695 886 900'/%3E%3Cpolygon fill='%23c4008c' points='1710 900 1401 632 1096 900'/%3E%3Cpolygon fill='%239e0071' points='1710 900 1401 632 1365 900'/%3E%3Cpolygon fill='%23aa00aa' points='1210 900 971 687 725 900'/%3E%3Cpolygon fill='%23880088' points='943 900 1210 900 971 687'/%3E%3C/svg%3E"); background-attachment: fixed; background-size: cover; }
001
002
[[w3schools|https://www.w3schools.com/tags/ref_colornames.asp]] Tous les nvigteurs modernes (et TW5!) supportent les 140 couleurs nommées ci-après (insensibles à la casse!): Voir la macro $:/colorbar-macro associée. <<< ''Exemple:'' ``` @@color:white;background-color:red;Texte blanc sur fond rouge@@ ``` ;Soit : @@color:white;background-color:red;Texte blanc sur fond rouge@@ <<< |Color Name |HEX |Color |h |~AliceBlue |#F0F8FF |<<colorbar #F0F8FF>> | |~AntiqueWhite |#FAEBD7 |<<colorbar #FAEBD7>> | |Aqua = Cyan |#00FFFF |<<colorbar #00FFFF>> | |Aquamarine |#7FFFD4 |<<colorbar #7FFFD4>> | |Azure |#F0FFFF |<<colorbar #F0FFFF>> | |Beige |#F5F5DC |<<colorbar #F5F5DC>> | |Bisque |#FFE4C4 |<<colorbar #FFE4C4>> | |Black |#000000 |<<colorbar #000000>> | |~BlanchedAlmond |#FFEBCD |<<colorbar #FFEBCD>> | |Blue |#0000FF |<<colorbar #0000FF>> | |~BlueViolet |#8A2BE2 |<<colorbar #8A2BE2>> | |Brown |#A52A2A |<<colorbar #A52A2A>> | |~BurlyWood |#DEB887 |<<colorbar #DEB887>> | |~CadetBlue |#5F9EA0 |<<colorbar #5F9EA0>> | |Chartreuse |#7FFF00 |<<colorbar #7FFF00>> | |Chocolate |#D2691E |<<colorbar #D2691E>> | |Coral |#FF7F50 |<<colorbar #FF7F50>> | |~CornflowerBlue |#6495ED |<<colorbar #6495ED>> | |Cornsilk |#FFF8DC |<<colorbar #FFF8DC>> | |Crimson |#DC143C |<<colorbar #DC143C>> | |Cyan = Aqua |#00FFFF |<<colorbar #00FFFF>> | |~DarkBlue |#00008B |<<colorbar #00008B>> | |~DarkCyan |#008B8B |<<colorbar #008B8B>> | |~DarkGoldenRod |#B8860B |<<colorbar #B8860B>> | |~DarkGray / ~DarkGrey |#A9A9A9 |<<colorbar #A9A9A9>> | |~DarkGreen |#006400 |<<colorbar #006400>> | |~DarkKhaki |#BDB76B |<<colorbar #BDB76B>> | |~DarkMagenta |#8B008B |<<colorbar #8B008B>> | |~DarkOliveGreen |#556B2F |<<colorbar #556B2F>> | |~DarkOrange |#FF8C00 |<<colorbar #FF8C00>> | |~DarkOrchid |#9932CC |<<colorbar #9932CC>> | |~DarkRed |#8B0000 |<<colorbar #8B0000>> | |~DarkSalmon |#E9967A |<<colorbar #E9967A>> | |~DarkSeaGreen |#8FBC8F |<<colorbar #8FBC8F>> | |~DarkSlateBlue |#483D8B |<<colorbar #483D8B>> | |~DarkSlateGray / ~DarkSlateGrey |#2F4F4F |<<colorbar #2F4F4F>> | |~DarkTurquoise |#00CED1 |<<colorbar #00CED1>> | |~DarkViolet |#9400D3 |<<colorbar #9400D3>> | |~DeepPink |#FF1493 |<<colorbar #FF1493>> | |~DeepSkyBlue |#00BFFF |<<colorbar #>> | |~DimGray / ~DimGrey |#696969 |<<colorbar #696969>> | |~DodgerBlue |#1E90FF |<<colorbar #1E90FF>> | |~FireBrick |#B22222 |<<colorbar #B22222>> | |~FloralWhite |#FFFAF0 |<<colorbar #FFFAF0>> | |~ForestGreen |#228B22 |<<colorbar #228B22>> | |Fuchsia / Magenta |#FF00FF |<<colorbar #FF00FF>> | |Gainsboro |#DCDCDC |<<colorbar #DCDCDC>> | |~GhostWhite |#F8F8FF |<<colorbar #F8F8FF>> | |Gold |#FFD700 |<<colorbar #FFD700>> | |~GoldenRod |#DAA520 |<<colorbar #DAA520>> | |Gray / Grey |#808080 |<<colorbar #808080>> | |Green |#008000 |<<colorbar #008000>> | |~GreenYellow |#ADFF2F |<<colorbar #ADFF2F>> | |~HoneyDew |#F0FFF0 |<<colorbar #F0FFF0>> | |~HotPink |#FF69B4 |<<colorbar #FF69B4>> | |~IndianRed |#CD5C5C |<<colorbar #CD5C5C>> | |Indigo |#4B0082 |<<colorbar #4B0082>> | |Ivory |#FFFFF0 |<<colorbar #FFFFF0>> | |Khaki |#F0E68C |<<colorbar #F0E68C>> | |Lavender |#E6E6FA |<<colorbar #E6E6FA>> | |~LavenderBlush |#FFF0F5 |<<colorbar #FFF0F5>> | |~LawnGreen |#7CFC00 |<<colorbar #7CFC00>> | |~LemonChiffon |#FFFACD |<<colorbar #FFFACD>> | |~LightBlue |#ADD8E6 |<<colorbar #ADD8E6>> | |~LightCoral |#F08080 |<<colorbar #F08080>> | |~LightCyan |#E0FFFF |<<colorbar #E0FFFF>> | |~LightGoldenRodYellow |#FAFAD2 |<<colorbar #FAFAD2>> | |~LightGray / ~LightGrey |#D3D3D3 |<<colorbar #D3D3D3>> | |~LightGreen |#90EE90 |<<colorbar #90EE90>> | |~LightPink |#FFB6C1 |<<colorbar #FFB6C1>> | |~LightSalmon |#FFA07A |<<colorbar #FFA07A>> | |~LightSeaGreen |#20B2AA |<<colorbar #20B2AA>> | |~LightSkyBlue |#87CEFA |<<colorbar #87CEFA>> | |~LightSlateGray / ~LightSlateGrey |#778899 |<<colorbar #778899>> | |~LightSteelBlue |#B0C4DE |<<colorbar #B0C4DE>> | |~LightYellow |#FFFFE0 |<<colorbar #FFFFE0>> | |Lime |#00FF00 |<<colorbar #00FF00>> | |~LimeGreen |#32CD32 |<<colorbar #32CD32>> | |Linen |#FAF0E6 |<<colorbar #FAF0E6>> | |Magenta / Fuchsia |#FF00FF |<<colorbar #FF00FF>> | |Maroon |#800000 |<<colorbar #800000>> | |~MediumAquaMarine |#66CDAA |<<colorbar #66CDAA>> | |~MediumBlue |#0000CD |<<colorbar #0000CD>> | |~MediumOrchid |#BA55D3 |<<colorbar #BA55D3>> | |~MediumPurple |#9370DB |<<colorbar #9370DB>> | |~MediumSeaGreen |#3CB371 |<<colorbar #3CB371>> | |~MediumSlateBlue |#7B68EE |<<colorbar #7B68EE>> | |~MediumSpringGreen |#00FA9A |<<colorbar #00FA9A>> | |~MediumTurquoise |#48D1CC |<<colorbar #48D1CC>> | |~MediumVioletRed |#C71585 |<<colorbar #C71585>> | |~MidnightBlue |#191970 |<<colorbar #191970>> | |~MintCream |#F5FFFA |<<colorbar #F5FFFA>> | |~MistyRose |#FFE4E1 |<<colorbar #FFE4E1>> | |Moccasin |#FFE4B5 |<<colorbar #FFE4B5>> | |~NavajoWhite |#FFDEAD |<<colorbar #FFDEAD>> | |Navy |#000080 |<<colorbar #000080>> | |~OldLace |#FDF5E6 |<<colorbar #FDF5E6>> | |Olive |#808000 |<<colorbar #808000>> | |~OliveDrab |#6B8E23 |<<colorbar #6B8E23>> | |Orange |#FFA500 |<<colorbar #FFA500>> | |~OrangeRed |#FF4500 |<<colorbar #FF4500>> | |Orchid |#DA70D6 |<<colorbar #DA70D6>> | |~PaleGoldenRod |#EEE8AA |<<colorbar #EEE8AA>> | |~PaleGreen |#98FB98 |<<colorbar #98FB98>> | |~PaleTurquoise |#AFEEEE |<<colorbar #AFEEEE>> | |~PaleVioletRed |#DB7093 |<<colorbar #DB7093>> | |~PapayaWhip |#FFEFD5 |<<colorbar #FFEFD5>> | |~PeachPuff |#FFDAB9 |<<colorbar #FFDAB9>> | |Peru |#CD853F |<<colorbar #CD853F>> | |Pink |#FFC0CB |<<colorbar #FFC0CB>> | |Plum |#DDA0DD |<<colorbar #DDA0DD>> | |~PowderBlue |#B0E0E6 |<<colorbar #B0E0E6>> | |Purple |#800080 |<<colorbar #800080>> | |~RebeccaPurple |#663399 |<<colorbar #663399>> | |Red |#FF0000 |<<colorbar #FF0000>> | |~RosyBrown |#BC8F8F |<<colorbar #BC8F8F>> | |~RoyalBlue |#4169E1 |<<colorbar #4169E1>> | |~SaddleBrown |#8B4513 |<<colorbar #8B4513>> | |Salmon |#FA8072 |<<colorbar #FA8072>> | |~SandyBrown |#F4A460 |<<colorbar #F4A460>> | |~SeaGreen |#2E8B57 |<<colorbar #2E8B57>> | |~SeaShell |#FFF5EE |<<colorbar #FFF5EE>> | |Sienna |#A0522D |<<colorbar #A0522D>> | |Silver |#C0C0C0 |<<colorbar #C0C0C0>> | |~SkyBlue |#87CEEB |<<colorbar #87CEEB>> | |~SlateBlue |#6A5ACD |<<colorbar #6A5ACD>> | |~SlateGray / ~SlateGrey |#708090 |<<colorbar #708090>> | |Snow |#FFFAFA |<<colorbar #FFFAFA>> | |~SpringGreen |#00FF7F |<<colorbar #00FF7F>> | |~SteelBlue |#4682B4 |<<colorbar #4682B4>> | |Tan |#D2B48C |<<colorbar #D2B48C>> | |Teal |#008080 |<<colorbar #008080>> | |Thistle |#D8BFD8 |<<colorbar #D8BFD8>> | |Tomato |#FF6347 |<<colorbar #FF6347>> | |Turquoise |#40E0D0 |<<colorbar #40E0D0>> | |Violet |#EE82EE |<<colorbar #EE82EE>> | |Wheat |#F5DEB3 |<<colorbar #F5DEB3>> | |White |#FFFFFF |<<colorbar #FFFFFF>> | |~WhiteSmoke |#F5F5F5 |<<colorbar #F5F5F5>> | |Yellow |#FFFF00 |<<colorbar #FFFF00>> | |~YellowGreen |#9ACD32 |<<colorbar #9ACD32>> |
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
<<tabs "Previous January February March April May June July August September October November December Next" "January" "$:/state/tabcal" "tc-vertical">>
<<tabs "prv19 jan19 feb19 mar19 apr19 may19 jun19 jul19 aug19 spt19 oct19 nov19 dec19 nxt19" "jan19" "$:/state/tabcal19" "tc-vertical">>
<<tabs "prv20 jan20 feb20 mar20 apr20 may20 jun20 jul20 aug20 spt20 oct20 nov20 dec20 nxt20" "jan20" "$:/state/tabcal20" "tc-vertical">>
<<tabs "prv21 jan21 feb21 mar21 apr21 may21 jun21 jul21 aug21 spt21 oct21 nov21 dec21 nxt21" "jan21" "$:/state/tabcal21" "tc-vertical">>
<<tabs "prv22 jan22 feb22 mar22 apr22 may22 jun22 jul22 aug22 spt22 oct22 nov22 dec22 nxt22" "jan22" "$:/state/tabcal22" "tc-vertical">>
<<tabs "prv23 jan23 feb23 mar23 apr23 may23 jun23 jul23 aug23 spt23 oct23 nov23 dec23 nxt23" "jan23" "$:/state/tabcal23" "tc-vertical">>
<<tabs "prv24 jan24 feb24 mar24 apr24 may24 jun24 jul24 aug24 spt24 oct24 nov24 dec24 nxt24" "jan24" "$:/state/tabcal24" "tc-vertical">>
<<tabs "prv25 jan25 feb25 mar25 apr25 may25 jun25 jul25 aug25 spt25 oct25 nov25 dec25 nxt25" "jan25" "$:/state/tabcal25" "tc-vertical">>
223 plugins disponibles pour TW5 !! Par Felix Küppers (Felixhayashi) https://www.reddit.com/r/TiddlyWiki5/wiki/pluginsandresources
Ouvrez vos tiddlers en mode édition juste en double-cliquant sur le tiddler. Danielo Rodriguez En fonction sur ce wiki.
Curated collection of useful JavaScript snippets that you can understand in 30 seconds or less. *<i class="fa fa-arrow-right"></i>{{$:/core/images/github}} https://github.com/30-seconds/30-seconds-of-code#tocurrency *<i class="fa fa-arrow-right"></i> https://30secondsofcode.org/
[img[organizing-my-ideas]] <div class="plate-container"> <div class="plate"> <p class="script"><span>Prolégomènes</span></p> <p class="shadow text1">~TiddlyWiki</p> <p class="shadow text2">pour</p> <p class="shadow text3">les nuls</p> <p class="script"><span><<pageLink class:'tc-btn-invisible tc-tiddlylink' text:'Pour Commencer' tiddlers:'[[À Propos de TiddlyLearn]]'>></span></p> </div> </div>
https://modernweb.com/45-useful-javascript-tips-tricks-and-best-practices/ [img[KeepCalmAndLearnJavaScript.jpeg]]
<$macrocall $name="TranscludeFromSystemTiddler" title=<<currentTiddler>> />
;You Don't Know JS (book series) These books are being released here as drafts, free to read, but are also being edited, produced, and published through O'Reilly. [img[icons8-github-16.png]] https://github.com/getify/You-Dont-Know-JS
Note that this doesn't make use of tags at all, it simply finds all the tiddlers that contain a field called subtopic, and then lists those tiddlers (alphabetically) by subtopic. You could of course sort the lists differently, and you could filter for a particular tag by adding, e.g., [tag[Movie], to the second list filter. I would have liked to be able to search for tiddlers tagged with the current tiddler's title, or even tag, but I don't know how to do that in any generic way, so I opted instead to use a unique field name in the tiddlers I wanted in my list. (Also, obviously, you could take out the styles; I was just seeing what I could do with the options that already existed). ``` <$list filter="[!is[system]has[subtopic]each[subtopic]sort[subtopic]]"><div class="tw-menu-list-item"><$link to={{!!subtopic}}><$view tiddler={{!!subtopic}} field="title"/></$link> </div> <$list filter="[subtopic{!!subtopic}sort[title]]"> <div class="tw-menu-list-subitem"> <$link to={{!!title}}><$view field="title"/> </$link> </div></$list></$list> ```
<$transclude tiddler="Liste de tags trié alphabétiquement"/>
\define nonblank() <$list filter="[[testdata]indexes[]]" variable="thisindex"> <$list filter="[[testdata]getindex<thisindex>]" variable="thisvalue"> <<thisindex>> </$list> </$list> \end here's a macro that returns a list of indices that are non-blank ``` \define nonblank() <$list filter="[[testdata]indexes[]]" variable="thisindex"> <$list filter="[[testdata]getindex<thisindex>]" variable="thisvalue"> <<thisindex>> </$list> </$list> \end ```
Contexte : J'ai deux tiddlers concernant JavaScript. {{!!title}}, {{!!tags}} `<<tag-pill {{!!tags}}>>` ne fonctionne pas car les deux syntaxes <<...>> et {{...}} sont des formes raccourcies de macrocalls, qui donc ne peuvent être imbriquées. Utiliser linkwidget pour en obtenir une liste cliquable. `<$macrocall $name="tag-pill" tag=<<__tags__>> />` Bien sûr, le champ tag*s* contient souvent des tags multiples. En conséquence, si vous voulez utiliser la macro (ou bien la macro tag) vous devez entourer la macrocall avec un listwidget de tellesorte que la macrocall ne traite qu'un tag à la fois. ;Exemple : ``` <div class="tc-menu-list-item"><$link to={{!!title}}><$view field="title"/> <$list filter={{!!tags}}> <$macrocall $name=tag-pill tag={{!!title}} /> </$list></$link></div> ``` <div class="tc-menu-list-item"><$link to={{!!title}}><$view field="title"/> <$list filter={{!!tags}}> <$macrocall $name=tag-pill tag={{!!title}} /> </$list></$link></div>
\define lingo-base() $:/language/TiddlerInfo/ <div align="center">[img[AProposDe]]</div> Bonjour et bienvenue sur le wiki ''~TiddlyLearn''. Voici quelques informations préalables concernant son utilisation : <$details summary="Se connecter (Optionnel)"> {{Se connecter}} </$details> <$details summary="Importer ce wiki"> {{Importer ce wiki}} </$details> <$details summary="Qu'est-ce que TiddlyLearn"> {{Qu'est-ce que TiddlyLearn ?}} </$details> <$details summary="Contenu et Sommaire"> {{Contenu - Sommaire}} </$details> <$details summary="Par où commencer (Tutoriel)"> {{Public Concerné}} {{Premiers pas}} {{Accéder au tutoriel}} </$details> <$details summary="Plus d'Informations ?"> {{Plus d'informations}} </$details> <$details summary="RoadMap"> {{RoadMap}} </$details> <$details summary="Contribuer"> {{Contribuer}} </$details> <$details summary="Les 5 derniers articles"> {{Les 5 derniers articles}} </$details>
Ahh! Combien ce sujet m'intéresse ! Je profite de ton post pour donner mon ressenti sur la question des thèmes en général. Dans mon esprit il ne peut y avoir d'exemple parfait. Le thème parfait n'existe pas tout simplement parce-que la notion de perfection est intime à chaque être humain. La beauté d'un thème est fonction de ce que chacun s'en fait. Mais sur le web comme ailleurs il existe des règles. Pour moi, un beau thème se doit d'être épuré, frais, avec de l'espace pour respirer, pour lire de façon reposée, et il doit s'adapter à mes envies du moment. Je travaille sur ces concepts depuis déjà un certain temps, car du temps il en faut assurément pour accoucher d'un tel objet. C'est comme un tableau de maître que je ne suis pas... Images de fond vs couleur de fond.
<$select tiddler="$:/temp/tag1"> <$list filter="[prefix[$:/tags]sort[]]"> <option value=<<currentTiddler>>><<currentTiddler>></option> </$list> </$select> <$select tiddler="$:/temp/tag3"> <$list filter="[tag[$:/tags/ViewTemplate]sort[]]"> <option value=<<currentTiddler>>><<currentTiddler>></option> </$list> </$select> --- Numéroteur téléphonique automatique Si vous utilisez l'application Microsoft Lync. si un numéro de téléphone se trouve dans un document, un symbole téléphonique se trouve juste après le numéro. En cliquant surce symbole, le numéro de téléphone est automatiquement composé. On peut le transposer sur ~TiddlyWiki de la manière suivante: ``` <html><a href="tel:phonenumber"> phonenumber :☎</a></html> ``` En continuant d'utiliser l'application Microsoft Lync., bien sûr.
Ce bouton crée un nouveau tiddler vide <$button>Yo <$reveal type="match" state="targetOfSelect!!myField" text="foo"> <$action-sendmessage $message="tm-new-tiddler" title={{!!firsttitle}}/> </$reveal> <$reveal type="nomatch" state="targetOfSelect!!myField" text="foo"> <$action-sendmessage $message="tm-new-tiddler" title={{!!secondtitle}}/> </$reveal> </$button>
<$list filter="[[$:/plugins/welford/twstaticblog/helper/blogentrytags]tags[]tagging[]sort[title]!has[draft.of]]-[[$:/plugins/welford/twstaticblog/helper/donotexport]tags[]tagging[]]-[[$:/plugins/welford/twstaticblog/helper/blogentrytags]]"> <div class="tc-menu-list-item"> <div class="tc-menu-list-subitem"> <$link class="long-links" to={{!!title}}><$view field="title"/></$link> <div class="tc-tags-wrapper" style="display:inline;font-size:0.7em;"> <$list filter="[all[current]tags[]sort[title]]-[[$:/plugins/welford/twstaticblog/helper/hiddentags]tags[]]"><$link to={{!!title}} taglink="true"><$transclude tiddler="$:/core/ui/TagTemplate"/></$link></$list></div> </div> </div> </$list>
<<ONP A B C>>
<$button tooltip="Lire les informations concernant l'auteur de ce wiki" class="btn btn-lg btn-error" popup="$:/state/about">👉 À Propos de l'auteur</$button><$reveal type="popup" state="$:/state/about"><div class="tc-dropdown"> {{Prolégomènes}}</div></$reveal>
<<doc>> Sont présentées Ici les fonctions de base de ~TiddlyWiki avec, en fin de billet, un lien "''Pour aller plus loin''" renvoyant aux détails plus techniques concernant le sujet abordé extraits des <$count filter="[tag[TableOfContents]]"/> mots clés de ce wiki. <div align="center"> <$button class="btn btn-lg btn-success" to="Tutoriel" tooltip="TiddlyWiki from the ground up"> 👉 Accéder au Tutoriel <!-- Fermeture du tiddler après action --> <$action-sendmessage $message='tm-close-tiddler' param=''/> </$button> </div>
Accordions are used to toggle sections of content. ``` <!-- standard Accordions example --> <div class="accordion"> <input type="checkbox" id="accordion-1" name="accordion-checkbox" hidden> <label class="accordion-header" for="accordion-1"> <i class="icon icon-arrow-right mr-1"></i> Titre </label> <div class="accordion-body"> <!-- Accordions content --> Contenu </div> </div> ``` <!-- standard Accordions example --> <div class="accordion"> <input type="checkbox" id="accordion-1" name="accordion-checkbox" hidden> <label class="accordion-header" for="accordion-1"> <i class="icon icon-arrow-right mr-1"></i> Titre </label> <div class="accordion-body"> <!-- Accordions content --> Contenu </div> </div> !!!Avec le code Spectre Alternatively, you can use details and summary instead of input radio or checkbox trick. Add the open attribute to details to expand it. Microsoft Edge support is under consideration. <!-- details and summary Accordions example --> <details class="accordion" open> <summary class="accordion-header"> <i class="icon icon-arrow-right mr-1"></i> Titre </summary> <div class="accordion-body"> <!-- Accordions content --> Contenu. </div> </details> !!!Avec le plugin details <$details summary="Titre" open="yes">Contenu.</$details> !!!C'est joli, mais cela devient compliqué! ``` <div class="accordion"> <input id="accordion-2" type="radio" name="accordion-radio" hidden=""> <label class="accordion-header c-hand" for="accordion-2"><i class="icon icon-arrow-right mr-1"></i>Sources</label> <div class="accordion-body"> <ul class="menu menu-nav"> <li class="menu-item">[[Framework Spectre]]</li> <li class="menu-item">[[Material Thème]]</li> </ul> </div> </div> <div class="accordion"> <input id="accordion-3" type="radio" name="accordion-radio" hidden=""> <label class="accordion-header c-hand" for="accordion-3"><i class="icon icon-arrow-right mr-1"></i>Material Thème</label> <div class="accordion-body"> <ul class="menu menu-nav"> <li class="menu-item">[[Gestion des palettes|$:/Palettes]]</li> <li class="menu-item">[[Material Icons]]</li> <li class="menu-item">[[Reste à faire|To Do]]</li> </ul> </div> </div> <div class="accordion"> <input id="accordion-4" type="radio" name="accordion-radio" hidden=""> <label class="accordion-header c-hand" for="accordion-4"><i class="icon icon-arrow-right mr1"></i>paramètres</label> <div class="accordion-body"> <ul class="menu menu-nav"> <li class="menu-item">$:/TemplateSideBar</li> <li class="menu-item">$:/TemplateTiddler</li> <li class="menu-item">$:/Polices-Alignements</li> </ul> </div> </div> ``` <div class="accordion"> <input id="accordion-2" type="radio" name="accordion-radio" hidden=""> <label class="accordion-header c-hand" for="accordion-2"><i class="icon icon-arrow-right mr-1"></i>Sources</label> <div class="accordion-body"> <ul class="menu menu-nav"> <li class="menu-item">[[Framework Spectre]]</li> <li class="menu-item">[[Material Thème]]</li> </ul> </div> </div> <div class="accordion"> <input id="accordion-3" type="radio" name="accordion-radio" hidden=""> <label class="accordion-header c-hand" for="accordion-3"><i class="icon icon-arrow-right mr-1"></i>Material Thème</label> <div class="accordion-body"> <ul class="menu menu-nav"> <li class="menu-item">[[Gestion des palettes|$:/palette]]</li> <li class="menu-item">[[Material Icons]]</li> <li class="menu-item">[[Reste à faire|To Do]]</li> </ul> </div> </div> <div class="accordion"> <input id="accordion-4" type="radio" name="accordion-radio" hidden=""> <label class="accordion-header c-hand" for="accordion-4"><i class="icon icon-arrow-right mr1"></i>paramètres</label> <div class="accordion-body"> <ul class="menu menu-nav"> <li class="menu-item">$:/TemplateSideBar</li> <li class="menu-item">$:/TemplateTiddler</li> <li class="menu-item">$:/Polices-Alignements</li> </ul> </div> </div>
<style>.separationaccueil {padding-left:5px;border-left:solid Gainsboro 6px;font-weight: bold;background-color:whitesmoke;}.alignerTags {padding-left:20px; /* environ 15px*/}</style> <p class="separationaccueil">Tags</p> <div class="alignerTags"> {{tags}} </div> <p class="separationaccueil">Kanban</p> {{Kanban}}
! Introduction Le widget "action-createtiddler" est un [[widget d'action|ActionWidgets]] qui crée de nouveaux tiddlers. Les widgets actions sont utilisés dans les widgets de déclenchement tels que le [[Widget Bouton|ButtonWidget]]. Il possède plusieurs différences avec le widget message [[tm-new-tiddler message|tm-new-tiddler]]: * Le nouveau tiddler n'est pas automatiquement affiché dans la ~StoryRiver * Le titre du nouveau tiddler demeure disponible pour des opérations ultérieures. ! Comtenu et Attributs Le widget ''action-createtiddler'' est invisible. Tout son contenu est ignoré. |!Attributs |!Description | |$basetitle |Le titre initial qui sera donné. Si un tiddler existes déjà avec ce titre, un compteur numérique est ajouté au titre, incrémenté jusqu'à ce qu'il soit unique.| |$savetitle |Un texte référence identifiant un champ ou un index dans lequel le titre du nouveau tiddler ainsi créé sera stocké| |$timestamp |Spécifie si le timestamp(s) du tiddler cible sera mis-à-jour (''modified'' et ''modifier'', et aussi ''created'' and ''creator'' pour les tiddlers nouvellement créés). Peut être "yes" (par défaut) ou "no" | |//{Tout attribut ne commençant pas par le signe $}// |Chaque nom d'attribut spécifie un champ à créer dans le nouveau tiddler| ! Exemples ``` <$button> <$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}/> Crée un bouton de contrôle de page non fonctionnel </$button> ``` ;Soit: <$button> <$action-createtiddler $basetitle="Homemade Button" tags="$:/tags/PageControls" text={{$:/state/new-button-caption}}/> Crée un bouton de contrôle de page non fonctionnel </$button> Dans un contexte de développement métier, permet à l'utilisateur qui constitue une base de données de créer ses propres tiddlers. Par exemple, dans un logiciel de comptabilité l'utilisateur peut être amené à créer un nouveau compte dans le plan comptable. en saisissant un nouveau compte inexistant, cette procédure lui permet de le créer. Ce nouveau compte (tiddler) n'apparaîtra pas dans la story river mais pourra être utilisé quand il en aura besoin dans un journal comptable par exemple.
! Introduction Le widget "action-deletefield" est un widget d'action qui supprime les champs ''spécifiés'' d'un tiddler. Les widgets d'actions sont généralement couplés avec des widgets de déclenchement tels que le "ButtonWidget". ! Conteu et attributs Le widget ''action-deletefield'' est invisible. Tout contenu à l'intérieur est ignoré. |!Attribute |!Description | |$tiddler |Le titre du tiddler dont les champs doivent être modifiés (si non spécifié c'est le [[tiddler courant|Current Tiddler]] qui sera la cible| |$field |Optional name of a field to delete | |//{Tous attributs ne commençant pas par le signe $}// |Chaque nom d'attribut spécifie un champ à supprimer. La valeur de l'attribut est ignorée et n'a pas besoin d'être spécifiée| ! Exemples Voici l'exemple d'un bouton déclencheur qui supprime les champs caption et tags du tiddler courant: ``` <$button> <$action-deletefield caption tags/> Supprimer "caption" et "tags" </$button> ``` ;Soit: <$button> <$action-deletefield caption tags/> Supprimer "caption" et "tags" </$button> Voici un autre exemple de bouton déclencheur qui supprime les champs "date de modification et les tags du tiddler [[HelloThere|HelloThere]]: ``` <$button> <$action-deletefield $tiddler="HelloThere" modified tags/> Supprimer "modified" et "tags" du tiddler ~HelloThere </$button> ``` ;Soit: <$button> <$action-deletefield $tiddler="HelloThere" modified tags/> Supprimer "modified" et "tags" du tiddler ~HelloThere </$button> Enfin, voici un exemple de bouton déclencheur qui se sert de l'attribut optionnel $field pour supprimer le champ texte du tiddler [[HelloThere|HelloThere]]: ``` <$button> <$action-deletefield $tiddler="HelloThere" $field="text"/> Supprimer le texte du tiddler ~HelloThere </$button> ``` ;Soit: <$button> <$action-deletefield $tiddler="HelloThere" $field="text"/> Supprimer le texte du tiddler ~HelloThere </$button>
! Introduction The ''action-deletetiddler'' widget is an [[action widget|ActionWidgets]] that deletes tiddlers. ActionWidgets are used within triggering widgets such as the ButtonWidget. Il y a plusieurs différences entre le widget ''action-deletetiddler'' et le widget Message [[tm-delete-tiddler]]: * The user is not prompted to confirm the deletion * No automatic updating of the story list * No special handling of draft tiddlers ! Content and Attributes The ''action-deletetiddler'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$tiddler |Optional title of the tiddler to be deleted | |$filter |Optional filter identifying tiddlers to be deleted | ! Examples Here is an example of a button that deletes the tiddler HelloThere: ``` <$button> <$action-deletetiddler $tiddler="HelloThere"/> Supprimer "~HelloThere" </$button> ``` ;Soit: <$button> <$action-deletetiddler $tiddler="HelloThere"/> Supprimer "~HelloThere" </$button> Et voici un autre exemple de bouton qui supprime tous les tiddlers tagués [[TableOfContents]]: ``` <$button> <$action-deletetiddler $filter="[tag[TableOfContents]]"/> Supprimer les tiddlers tagués "~TableOfContents" </$button> ``` ;Soit: <$button> <$action-deletetiddler $filter="[tag[TableOfContents]]"/> Supprimer les tiddlers tagués "~TableOfContents" </$button>
\define .operator-rows(filter) <$list filter="$filter$"><tr> <td><$link to={{!!title}}>{{!!caption}}</$link></td> <td>{{!!op-purpose}} <$list filter="[all[current]tag[Common Operators]]">{{$:/core/images/done-button}}</$list></td> <td align="center"><$list filter="[all[current]tag[Negatable Operators]]">`!`</$list></td> </tr></$list> \end \define .group-heading(_) <tr class="doc-table-subheading"><th colspan="3" align="center">$_$</th></tr> \end ! Introduction The ''action-listops'' widget is an [[action widget|ActionWidgets]] that manipulates user lists in any field or data index. ActionWidgets are used within triggering widgets such as the ButtonWidget. ! Content and Attributes The ''action-listops'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$tiddler |The title of the tiddler whose lists are to be modified (if not provided defaults to the [[current tiddler|Current Tiddler]] | |$field |The name of a field to be manipulated as a list (defaults to 'list') | |$index |Optional index of a property in a [[data tiddler|DataTiddlers]] index to be manipulated as a list | |$filter |An optional filter expression, the output of which will be saved to the field/index being manipulated | |$subfilter |An optional subfilter expression, which takes the list being manipulated as input, and saves the modified list back to the field/index being manipulated | |$tags |An optional subfilter expression, which takes the 'tags' field of the target tiddler as input, and saves the modified list of tags back to the 'tags' field | ! Extended Filter Operators A number of [[extended filter operators|The Extended Listops Filters]] are necessary for the manipulation of lists. These operators have been designed primarily for use in subfilter expressions whereby the modified current list is returned in place of the current list. <table> <<.group-heading "Listops Operators">> <tr> <th align="left">Operator</th> <th align="left">Purpose</th> <th></th> </tr> <<.operator-rows "[tag[Filter Operators]tag[Listops Operators]tag[Order Operators]!tag[String Operators]!tag[Tag Operators]!tag[Special Operators]sort[]]">> </table> ! Examples In this example we shall populate and then clear a list in an ordinary field (myfield) of this tiddler (the default.) """<$button> <$action-listops $field="myfield" $subfilter="efg hlm pqr"/> Populate 'myfield' </$button> <$button> <$action-listops $field="myfield" $subfilter="abc xyz"/> Append More Items </$button> <$button> <$action-listops $field="myfield" $subfilter="-abc -hlm"/> Remove Items </$button> <$button> <$action-listops $field="myfield" $filter="[[]]"/> Clear 'myfield' </$button> <$list filter="[list[!!myfield]]"> </$list>""" --- In this example we shall append and remove items from a list in an ordinary field (myfield) of this tiddler (the default) and sort the resultant list. We shall then remove some of the appended items and sort the resulting list in reverse order. """<$button> <$action-listops $field="myfield" $subfilter="-efg ijk xyz [[this is a title]] +[sort[]]"/> Mangle List </$button> <$button> <$action-listops $field="myfield" $subfilter="-xyz -[[this is a title]] +[!sort[]]"/> Unmangle List </$button> <$list filter="[list[!!myfield]]"> </$list>""" --- In this example we shall append a few tags to the 'tags' field of this tiddler (the default.) We shall then remove some of the appended tags. """<$button> <$action-listops $tags="+[append{Days of the Week!!short}] $:/tag1 $:/tag2 $:/tag3"/> Populate 'tags' </$button> <$button> <$action-listops $tags="+[!remove:2{!!tags}]"/> Remove Last Two Tags </$button> <$button> <$action-listops $tags="+[!prefix[$:/]]"/> Remove System Tags </$button> <$button> <$action-listops $tags="-Mon -Tue"/> Remove Mon and Tue </$button> <$button> <$action-listops $tags="+[prefix[$:/]] ActionWidgets Widgets"/> Remove User Tags </$button> <$button> <$action-listops $tags="+[[]] ActionWidgets Widgets"/> Clear Tags </$button> <$list filter="[list[!!tags]]"> </$list>"""
! Introduction The ''action-navigate'' widget is an [[action widget|ActionWidgets]] that sends a [[tm-navigate]] message back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget. ! Content and Attributes The ''action-navigate'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$to |The title of the target tiddler for the navigation (if not provided defaults to the [[current tiddler|Current Tiddler]] | |$scroll |Optional parameter determining whether the navigation will also cause a scroll to the target tiddler (see below) | !! Scroll handling The optional `$scroll` attribute can be set to "yes" to force scrolling to occur to bring the target tiddler into view. If set to "no" then scrolling does not occur. If the `$scroll` attribute is omitted then scrolling occurs unless either: * the control key is pressed * the action was initiated with the middle mouse button (if available) Note that if navigating to multiple tiddlers at once you should use the same `$scroll` setting for all of them. ! Examples Here is an example of button that navigates to two different tiddlers at once: ``` <$button> <$action-navigate $to="ButtonWidget"/> <$action-navigate $to="ActionWidgets"/> Click me! </$button> ``` ;Soit: <$button> <$action-navigate $to="ButtonWidget"/> <$action-navigate $to="ActionWidgets"/> Click me! </$button>
\define my-actions() <$action-sendmessage $message="tm-home"/> <$action-sendmessage $message="tm-full-screen"/> \end ; Le code ``` \define my-actions() <$action-sendmessage $message="tm-home"/> <$action-sendmessage $message="tm-full-screen"/> \end <$button actions=<<my-actions>>> Cliquez moi! </$button> ``` <$button actions=<<my-actions>>> Cliquez moi! </$button> Ici deux actions sont conjuguées simultanément: #La fermeture de tous les Tiddlers ouverts et le retour à la page accueil #la mise en plein écran. ;Noter: ``` \define my-actions() \end ``` Doit se placer en premier lieu dans le tiddler (ne rien écrire au dessus) Voir aussi [[ActionWidgets]]
! Introduction The ''action-sendmessage'' widget is an [[action widget|ActionWidgets]] that sends a [[message|MessagesWidget]] back up the widget tree. ActionWidgets are used within triggering widgets such as the ButtonWidget. ! Content and Attributes The ''action-sendmessage'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$message |The message to send (eg, ~WidgetMessage: [[tm-new-tiddler]]) | |$param |Optional parameter string whose meaning is dependent on the message being sent | |$name |Optional name of additional parameter | |$value |Value for optional parameter whose name is specified in `$name` | |//{any attributes not starting with $}// |Multiple additional, optional named parameters that are attached to the message | ! Examples Here is an example of button that displays both a notification and a wizard, and creates a new tiddler with tags and text: ``` <$button> <$action-sendmessage $message="tm-modal" $param="SampleWizard"/> <$action-sendmessage $message="tm-notify" $param="SampleNotification"/> <$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/> Click me! </$button> ``` ;Soit: <$button> <$action-sendmessage $message="tm-modal" $param="SampleWizard"/> <$action-sendmessage $message="tm-notify" $param="SampleNotification"/> <$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/> Click me! </$button>
{{ActionSetField||caption}}
! Introduction The ''action-setfield'' widget is an [[action widget|ActionWidgets]] that assigns values to the fields of a tiddler. ActionWidgets are used within triggering widgets such as the ButtonWidget. ! Content and Attributes The ''action-setfield'' widget is invisible. Any content within it is ignored. |!Attribute |!Description | |$tiddler |The title of the tiddler whose fields are to be modified (if not provided defaults to the [[current tiddler|Current Tiddler]]) | |$field |Optional name of a field to be assigned the $value attribute | |$index |Optional index of a property in a [[data tiddler|DataTiddlers]] to be assigned the $value attribute| |$value |The value to be assigned to the field or index identified by the $field or $index attribute. If neither is specified then the value is assigned to the text field. If no value is specified, $field or $index will be deleted.| |$timestamp |Specifies whether the timestamp(s) of the target tiddler will be updated (''modified'' and ''modifier'', plus ''created'' and ''creator'' for newly created tiddlers). Can be "yes" (the default) or "no" | |//{any attributes not starting with $}// |Each attribute name specifies a field to be modified with the attribute value providing the value to assign to the field | ! Examples Here is an example of a pair of buttons that open the control panel directly to specified tabs. They work by using ''action-setfield'' to set the state tiddler for the control panel tabs. ``` <$button> <$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Appearance"/> <$action-navigate $to="$:/ControlPanel"/> Go to Control Panel "Appearance" tab </$button> <$button> <$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Settings"/> <$action-navigate $to="$:/ControlPanel"/> Go to Control Panel "Settings" tab </$button> ``` ; Soit: <$button> <$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Appearance"/> <$action-navigate $to="$:/ControlPanel"/> Go to Control Panel "Appearance" tab </$button> <$button> <$action-setfield $tiddler="$:/state/tab-1749438307" text="$:/core/ui/ControlPanel/Settings"/> <$action-navigate $to="$:/ControlPanel"/> Go to Control Panel "Settings" tab </$button> Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then navigates to it and opens the tiddler info panel on the "Fields" tab: ``` <$button> <$action-setfield $tiddler="HelloThere" tags="NewTag [[Another New Tag]]" color="red"/> <$action-setfield $tiddler="$:/state/popup/tiddler-info--1779055697" text="(568,1443,33,39)"/> <$action-setfield $tiddler="$:/state/tab--1890574033" text="$:/core/ui/TiddlerInfo/Fields"/> <$action-navigate $to="HelloThere"/> Modify ~HelloThere </$button> ``` ; Soit: <$button> <$action-setfield $tiddler="HelloThere" tags="NewTag [[Another New Tag]]" color="red"/> <$action-setfield $tiddler="$:/state/popup/tiddler-info--1779055697" text="(568,1443,33,39)"/> <$action-setfield $tiddler="$:/state/tab--1890574033" text="$:/core/ui/TiddlerInfo/Fields"/> <$action-navigate $to="HelloThere"/> Modify ~HelloThere </$button> Here is an example of a button that assigns tags and fields to the tiddler HelloThere, and then initiates editing it: ``` <$button> <$action-setfield $tiddler="HelloThere" tags="MoreTag [[Further More Tags]]" color="green"/> <$action-sendmessage $message="tm-edit-tiddler" $param="HelloThere"/> Edit ~HelloThere </$button> ``` ; Soit: <$button> <$action-setfield $tiddler="HelloThere" tags="MoreTag [[Further More Tags]]" color="green"/> <$action-sendmessage $message="tm-edit-tiddler" $param="HelloThere"/> Edit ~HelloThere </$button> Here is an example of a button that opens the control panel directly to the "Appearance" tabs: ``` <$button> <$action-setfield $tiddler="$:/state/tab-1749438307" $field="text" $value="$:/core/ui/ControlPanel/Appearance"/> <$action-navigate $to="$:/ControlPanel"/> Go to Control Panel "Appearance" tab </$button> ``` ; Soit: <$button> <$action-setfield $tiddler="$:/state/tab-1749438307" $field="text" $value="$:/core/ui/ControlPanel/Appearance"/> <$action-navigate $to="$:/ControlPanel"/> Go to Control Panel "Appearance" tab </$button>
{{ActionWidgets||caption}}
Les widgets "Action" sont un type de widget particulier ''qui n'ont pas d'apparence visuelle'' mais qui ''exécutent une action'' lorsqu'ils sont déclenchés (par exemple, l'envoi d'un message, la navigation vers un Tiddler ou la modification de la valeur d'un Tiddler). Les widgets d'action sont utilisés en association avec d'autres widgets qui déclenchent ces actions (par exemple, ButtonWidget). On dispose des sept widgets action suivants tagués <$button popup="$:/ActionWidgetPopupState">ActionWidgets</$button> <$reveal type="popup" state="$:/ActionWidgetPopupState"> <div class="tc-drop-down"> {{{ [tag[ActionWidgets]] }}} </div> </$reveal> <<list-links "[tag[ActionWidgets]]">> Il y a deux manières d'utiliser les widgets action: * Utiliser l'<<? attribut>> `actions` du widget de déclenchement (c'est la façon préférée) * Encapsuler les actions dans le widget de déclenchement (une technique plus ancienne qui est maintenant obsolète) !! Assigner les widgets action avec l'attribut `actions` Les widgets d'action sont passés sous forme de chaîne à l'attribut actions du widget déclenchant. Habituellement, il est plus commode d'utiliser une macro pour assigner les widgets d'action à une variable. Par exemple, voici un bouton qui déclenche deux actions d'envoi de différents messages: ``` \define my-actions() <$action-sendmessage $message="tm-home"/> <$action-sendmessage $message="tm-full-screen"/> \end <$button actions=<<my-actions>>> Click me! </$button> ``` Voir l'effet de cette action dans le Tiddler d'exemple [[Actions retour page accueil et en plein écran]] !! Assigner les widgets action par encapsulation Les widgets Action n'ont pas besoin d'être les enfants immédiats de leur widget déclencheur, mais ils doivent être descendants de celui-ci. Les actions sont exécutées en séquence. Voici l'exemple ci-dessus réécrit pour utiliser l'encapsulation: ``` <$button> <$action-sendmessage $message="tm-home"/> <$action-sendmessage $message="tm-full-screen"/> Click me! </$button> ```
<div> ; Activity <$select field="activity-id"> <$list filter="[crm-type[activity]]"> <option value={{!!title}}>{{!!name}}</option> </$list> </$select> ; Date <$edit-text field="date" type="date" /> ; Description <$edit-text class="tc-edit-texteditor" field="description" size="40" /> </div>
En début de cours les concepts et exemples sont simples et validés via a console du navigateur et l'on démarre par des expressions et déclarations simples. Adapter un cours JS à TiddlyWiki revient à traiter les choses comme suit : Soit la déclaration: ``` a = 21; b = a * 2; ``` En JavaScript la résolution de cette déclaration peut s'exécuter soit sur la console directement, soit via une boite de dialogue, par exemple comme ceci: Sur la console ``` a = 21; b = a * 2; console.log( b ); ``` Ou via une boite de dialogue: ``` a = 21; b = a * 2; prompt( b ); ``` En cliquant sur le bouton "OK" de a boite de dialogue, la valeur 42 est affectée à la variable b Adapter cet exemple à TiddlyWiki consiste à utiliser un tiddler comme console (output) avec une boite de dialogue en entrée (input) Il faut donc: :1- À créer la macro `a = 21; b = a * 2;` :2- À créer le tiddler d'input (entrée) via une boite de dialogue dans laquelle l'utilisateur saisira la valeur du paramètre b, puis en dessous doit apparaître le le résultat de la macro. L'ensemble du cours devra ainsi être traité. C'est encore un peu brumeux, mais le principe général est posé.
Utiliser le code source en support de vos propres macros À partir de la macro $:/core/modules/macros/qualify.js, nous créons une nouvelle macro dont l'objet sera la simple restitution d'un texte pré-établi par la macro et d'un paramètre que l'utilisateur renseignera directement. ;1- L macro embarquée `$:/core/modules/macros/qualify.js` {{$:/core/modules/macros/qualify.js||code}} ;2- La nouvelle macro issue de la macro embarquée: {{Macro TiddlyWiki.js||code}} [[Voir le résultat|Utilisation de la macro]] commenté.
{{Adhérents||caption}}
<div style="text-align:center"> <$button class="tc-btn-big-green admin" message="tm-modal" param="$:/admin/connect"> <$action-sendmessage $message='tm-close-tiddler' $param="admin"/> <i class="fa fa-lock" aria-hidden="true"></i> Connexion </$button> </div>
Dans cet exemple, il suffit de créer un champ `indent_amount` et de le renseigner par la valeur `50` par exemple. Le lien se verra bien attribué la valeur de 50 px en marge gauche. ``` <style> .indent_field { margin-left:{{!!indent_amount}}px; } </style> @@.indent_field <$link><$view field=title /></$link> @@ ``` <style> .indent_field { margin-left:{{!!indent_amount}}px; } </style> Résultat : @@.indent_field <$link><$view field=title /></$link> @@
Rapide et efficace: !@@color:green;Lien "green" sur balise H1@@ !!@@color:crimson;Lien "crimson" sur balise H2@@ !!!@@color:orangered;Lien "orangered" sur balise H3@@ @@color:darkblue;Lien "darkblue" sur texte standard@@
Vous souhaitez que tous les tiddlers de premier niveau de la liste des tiddlers contenus par exemple dans l'onglet sommaire de la SideBar soient affectés d'une couleur de fond. Autrement dit vous souhaitez que tous les tiddlers tagués TableOfContent possèdent un couleur de fond. *Aller dans $:/cssCouleurTags *Ajoutez une ligne `div.tc-tagged-TableOfContents {background-color: bisque;}` par exemple. On peut effectuer le même type de paramètre sur les tiddlers possédant un tag quelconque. Par exemple pour affecter une couleur à tous les tiddlers dont le tag est Level2 *Aller dans $:/cssCouleurTags *ajouter une ligne `div.tc-tagged-Level2 {background-color: thistle ;}` par exemple.
Pour affecter une couleur à une règle CSS, il faut indiquer le nom de la palette choisie et son index couleur. Par exemple pour affecter une couleur à la bordure des listes déroulantes des boutons de menu de la barre haute on écrira `{{{[[$:/palettes/Learn]getindex[dropdown-border]]}}}` l'index `dropdown-border` correspondant à la couleur des Bordure des menus déroulants ;Soit: {{{[[$:/palettes/Learn]getindex[dropdown-border]]}}} ce code sera placé comme suit dans un tiddler CSS (tagué $:/tags/Stylesheet): ``` .tgc-menu-drop-down { border: 1px solid {{{[[$:/palettes/Prolegomenes1]getindex[dropdown-border]]}}}; } ``` ;qui sera rendu comme suit : ``` .tgc-menu-drop-down { border: 1px solid #FFFB00; } ```
En principe, la gestion des comportements suivant le résolutions passe par un tag @media {max-width: ... } et @media {min-width: ... } dont l'objet est d'indiquer les limites d'un comportement à l'affichage. Par exemple, dans le thème Vanilla du site officiel ~TiddlyWiki il est indiqué qu'en dessous de 960 px, la ~SideBar doit se loger au dessus de la ~StoryRiver. ``` @media (min-width: 960px) { .tc-sidebar-scrollable { position: fixed; top: 0px; ...; } ``` Dans ton cas, la barre de menu est déjà positionnée en haut, quelque soit la résolution. Simplement, comme tu l'indiques, tes menus s'étalent sur 4 lignes, mais on les voit distinctement. `basculer de l’affichage oueb ordinateur à un affichage smartphone et/ou tablette` OK mais où ? *Sur l'un des bords d'écran ? Trop petit *En haut, avec les titres en liste : Pourquoi pas, mais pas très esthétique. Dans l'application [ext[TiddlyFrame|https://prolegomenes.github.io/learn/Frame.html]], je gère cette situation non pas via la gestion des médias mais par la modification du template de vue avec pour idée de ne disposer d'aucune barre de menu en visualisation (ce que je nomme la page blanche). Pour pouvoir accéder au menu j'ai ajouté plusieurs icônes aux boutons de contrôle qui permettent de déclencher le tiddler du panneau de contrôle par accès en Popup ( $:/ControlPanel ) donnant ainsi notamment accès au menu général et aussi de gérer les tâches essentielles (créer un nouveau tiddler, sauvegarder le wiki etc.) directement depuis un tiddler. En principe tu devrais donc obtenir deux tables sur ton smartphone : la première avec la page vierge de menu et une seconde avec les contenus du panneau de contrôle. Tu peux ainsi passer d'un menu à l'autre en passant par la page séparée de menu. Le contenu d'un nouveau lien de menu s'ouvrira dans la page principale. L'intérêt c'est que la totalité de ton écran est dédié au contenu textuel de tes tiddlers. Si ce post ne résout pas ton problème dans la situation actuelle, au moins aura-t-il le mérite te te donner une piste supplémentaire de recherche. J'ai mis l'exemple en ligne : https://prolegomenes.github.io/learn/FrameWhitePage.html. Pour terminer, il suffit donc de mettre en ligne ton wiki en cliquant sur le bouton Contrôles <i class="fa fa-arrow-right"></i> Contrôle Gabarits <i class="fa fa-arrow-right"></i> [[Aucune barre|$:/Page Blanche]] , puis en faisant une sauvegarde avant la mise en ligne. Le rôle des différents gabarits est précisément de pouvoir travailler dans différents environnements et de passer de l'un à l'autre sur un simple clic de souris. Et bien sur, tout est modifiable manuellement via les différents onglets du bouton "Contrôles" du panneau de contrôle.
\define compte(borne) <<eval " const times = (n, fn, context = undefined) => { let i = 1; while (fn.call(context, i) !== false && ++i < n+1) {} }; var output = ''; times($borne$, i => (output += i + ' ')); output; ">> \end {{EnTêteDemosMacrosJs}} !1- La macro //(pragma define) sur un tiddler standard sans tag `$:/tags/Macro`// ``` \define compte(borne) <<eval " const times = (n, fn, context = undefined) => { let i = 1; while (fn.call(context, i) !== false && ++i < n+1) {} }; var output = ''; times($borne$, i => (output += i + ' ')); output; ">> \end ``` !2- L'Appel ``` <<compte 5>> ``` <<compte 5>>
Source: https://sylvain.naud.in/public/TiddlyWiki/tiddlywiki-guide-fr-CCbysa.html Insérer le code suivant dans un Tiddler pour afficher sous forme d'onglet les tiddlers avec le tag {{ToDo||$:/core/ui/TagTemplate}}par exemple : !Horizontal `<<tabs "[tag[ToDo]]" "$:/state/tab1" >>` Soit: <<tabs "[tag[ToDo]]" "$:/state/tab1" >> !Vertical `<<tabs "[tag[ToDo]" "Divers" "$:/state/tab2" "tc-vertical">>` Soit: <<tabs "[tag[ToDo]]" "Divers" "$:/state/tab2" "tc-vertical">>
Code : ``` <$list filter="[!is[system]!has[draft.of]!sort[midified]limit[1]]"> <$link> <$view field="modified" format="date" template="DD MMM YYYY à 0hh:0mm"/> </$link> </$list> ``` Soit: <$list filter="[!is[system]!has[draft.of]!sort[modified]limit[1]]"> <$link> <$view field="modified" format="date" template="DD MMM YYYY à 0hh:0mm"/> </$link> </$list>
Code : ``` <$list filter="[!is[system]!has[draft.of]!sort[created]limit[1]]"> <$link> <$view field="created" format="date" template="DD MMM YYYY à 0hh:0mm"/> </$link> </$list> ``` Soit: <$list filter="[!is[system]!has[draft.of]!sort[created]limit[1]]"> <$link> <$view field="created" format="date" template="DD MMM YYYY à 0hh:0mm"/> </$link> </$list>
``` <$list filter="[tag[bisque]]"> <$transclude mode="block"/> <br/> <$view field="title"/> </$list> ``` ;Soit: <$list filter="[tag[bisque]]"> <$transclude mode="block"/> <br/> <$view field="title"/> </$list>
How to get a collapsible row within a table? Ceci est rendu possible avec le nouvel attribut "tag" du widget reveal ajouté dans la version 5.1.8 de TiddlyWiki. ([ext[Voir ici|https://github.com/Jermolene/TiddlyWiki5/commit/1808b1597e5a61379e4e5381d6d78bb73fa3a523]]) ;Exemple: ``` <table> <tr><td><$reveal type="nomatch" state="$:/state/SampleRowReveal" text="show"><$button set="$:/state/SampleRowReveal" setTo="show">Show me</$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal" text="show"><$button set="$:/state/SampleRowReveal" setTo="hide">Hide me</$button></$reveal> Row 1 cell 1</td><td>Row 1 cell 2</td></tr> <$reveal type="match" state="$:/state/SampleRowReveal" text="show" tag="tr"> <td>Row 2 cell 1</td><td>Row 2 cell 2</td> </$reveal> </table> ``` ;Soit: <table> <tr><td><$reveal type="nomatch" state="$:/state/SampleRowReveal" text="show"><$button set="$:/state/SampleRowReveal" setTo="show">Show me</$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal" text="show"><$button set="$:/state/SampleRowReveal" setTo="hide">Hide me</$button></$reveal> Row 1 cell 1</td><td>Row 1 cell 2</td></tr> <$reveal type="match" state="$:/state/SampleRowReveal" text="show" tag="tr"> <td>Row 2 cell 1</td><td>Row 2 cell 2</td> </$reveal> </table>
Une solution donnée par Tobias Beer permet d'afficher ou cacher toutes les lignes d'un tableau en utilisant une classe CSS sur le tableau. [ext[Voir Conditional Table Rows tb5|http://tobibeer.github.io/tb5/#Conditional%20Table%20Rows]] ;Exemple: ``` <style> .hide-rows tr{display:none} </style> <$reveal type="match" state="$:/state/example-rows" text="hide"> <$button set="$:/state/example-rows" setTo="show">Expand Rows</$button> </$reveal> <$reveal type="nomatch" state="$:/state/example-rows" text="hide"> <$button set="$:/state/example-rows" setTo="hide">Collapse Rows</$button> </$reveal> <table class={{$:/state/example-rows}}> <tr><th>foo</th><th>bar</th></tr> <$reveal type="match" state="$:/state/example-rows" text="show" tag="tr"> <td>baz</td><td>mumble</td> </$reveal> <$reveal type="match" state="$:/state/example-rows" text="show" tag="tr"> <td>frotz</td><td>gronk</td> </$reveal> </table> ``` ;Soit: <style> .hide-rows tr{display:none} </style> <$reveal type="match" state="$:/state/example-rows" text="hide"> <$button set="$:/state/example-rows" setTo="show">Expand Rows</$button> </$reveal> <$reveal type="nomatch" state="$:/state/example-rows" text="hide"> <$button set="$:/state/example-rows" setTo="hide">Collapse Rows</$button> </$reveal> <table class={{$:/state/example-rows}}> <tr><th>foo</th><th>bar</th></tr> <$reveal type="match" state="$:/state/example-rows" text="show" tag="tr"> <td>baz</td><td>mumble</td> </$reveal> <$reveal type="match" state="$:/state/example-rows" text="show" tag="tr"> <td>frotz</td><td>gronk</td> </$reveal> </table>
*Titre original: How to widen tiddlers (aka storyriver) *[[Source (TiddlyWiki)|https://tiddlywiki.com/#How%20to%20widen%20tiddlers%20(aka%20storyriver)]] Vous pouvez changer la largeur de la colonne centrale des Tiddlers (la ~StoryRiver) de la manière suivante: *<i class="fa fa-arrow-right"></i> Cliquer sur le bouton du panneau de contrôle *<i class="fa fa-arrow-right"></i> Dans le panneau de contrôle, sélectionner "Appearance" puis "Theme Tweaks". *<i class="fa fa-arrow-right"></i> Dans Theme tweaks, descendez en scrollant. Sous le titre Sizes repérez les lignes `story right`, `story width`, et `tiddler width`. En changeant ces nombres par quelque chose de plus grand, vous pouvez élargir la place allouée aux Tiddlers. En principe, `story right` et `story width` devraient indiquer la même taille, et le `tiddler width` une taille légèrement inférieure. Vous pouvez même utiliser des tailles de largeur en pourcentages. Vous souhaiterez également vouloir changer le point de rupture de la ~SideBar pour quelque chose de plus large que la taille de lastory river, sauf à ne pas voir d'inconvénient à ce que la ~SideBar se trouve déplacée en haut de votre page. Voyez également <mark class="roundedmark">comment la gestion de l'espace est gérée </mark>avec le wiki [[TiddlyFrame|$:/TemplateWidth]] et sa [[documentation associée|$:/Surface]] __''Rappel''__ : Vous pouvez librement télécharger le wiki ~TiddlyFrame [[ICI|https://prolegomenes.github.io/learn/Frame.html]]
Plugins utilitaires. Notamment Plugin Tools, une alternative pour packager vos tiddlers en plugin.
Les icônes du source de TiddlyWiki sont en noir et blanc. On peut leur ajouter de la couleur. Ce tiddler est un exemple.
\define add_html(quid) <<eval """ const list = document.querySelector("#list"); list.insertAdjacentHTML("beforeend", `<li>$quid$</li>`); """>> \end !1- La macro ``` \define add_html(quid) <<eval """ const list = document.querySelector("#list"); list.insertAdjacentHTML("beforeend", `<li>$quid$</li>`); """>> \end ``` !2- Le rendu ``` <div id="list"></div> <<add_html "Pomme">> <<add_html "Orange">> ``` <div id="list"></div> <<add_html "Pomme">> <<add_html "Orange">>
<div class="w3-tag w3-xxlarge w3-blue" style="line-height:1.5em;"> Indispensable </div> (c) Mario Pietsch Le plugin [[Internal links are added to tabs if selected|$:/plugins/wikilabs/link-to-tabs]] a pour fonction d'ajouter un lien d'accès direct au contenu des tables sélectionnées ou au contenu de toutes les tables. Indispensable à mon sens dans la mesure ou c'est une aide supplémentaire inestimable à tous ceux qui passent leur temps (comme je le fais) à chercher où peuvent bien se trouver les nombreux tiddlers systèmes ou cachés de votre wiki.
Le template source $:/core/ui/ViewTemplate/subtitle a été modifié par l'ajout de pictogrammes. Voici le code source du template en version <<version>>: ``` <$reveal type="nomatch" state=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes"> <div class="tc-subtitle"> <$link to={{!!modifier}}> <$view field="modifier"/> </$link> <$view field="modified" format="date" template={{$:/language/Tiddler/DateFormat}}/> </div> </$reveal> ``` Et voici le code modifié du template $:/core/ui/ViewTemplate/subtitle : {{$:/core/ui/ViewTemplate/subtitle||code}} Ce template est tagué {{$:/tags/ViewTemplate||$:/core/ui/TagTemplate}} Le template $:/core/ui/ViewTemplate/subtitle a comme particularité d'insérer les icones `<<fa floppy-o>>` <<fa floppy-o>> et `<<fa clock-o>>` <<fa clock-o>> ; Subsidiairement : <<< Ces icones font partie du tiddler $:/fonts/FontAwesome, mais le template doit être associé au tiddler $:/macro/fa associé pour fonctionner (voir le site http://tw5.xyz/tiddlywiki-n0d1-empty.html) Noter aussi que l'intégration du tiddler $:/macro/fa-file-extension-icon facilite l'ajout de pictogramme, par exemple `<<pdf>>` pour <<pdf>> <<<
Vous pouvez aussi créer tout tiddler de votre choix avec le [[TagSystème|SystemTag]] approprié, il apparaitra en son lieu et place. Par exemple, si vous créez un tiddler 'Rappel automatique', ajouter le texte 'C'est un aide-mémoire' et étiquetez le `$:/tags/EditTemplate`, la phrase 'C'est un aide-mémoire' apparaitra dans chaque tiddler lors de son édition. Quand vous afficherez de nouveaux tiddlers dans des tiddlers ou dans la mise en page générale, vous aurez probablement à les repositionner de sorte qu'ils apparaissent exactement où vous le souhaitez. Pour ce faire, modifiez le bon tiddler shadow muni du préfixe `$:/tags/`, et insérez-y le titre de votre tiddler dans le champ list, au bon endroit. Par exemple, si la phrase 'C'est un aide-mémoire', de l'exemple au-dessus, doit s'afficher au-dessus de l'éditeur de tags dans le mode édition, modifiez le tiddler $:/tags/EditTemplate, sélectionnez le champ 'list' field, et insérez `[[Rappel automatique]]` juste avant `$:/core/ui/EditTemplate/tags`.
Il vous suffit d'importer le tiddler [[$:/_systemtags]] dans votre wiki. Ce dernier sera automatiquement positionné dans l'onglet More sous l'onglet Tags pour deux raisons : #Ce tiddler est tagué `$:/tags/MoreSideBar`, ce qui le placera dans l'onglet `More` #Il possède un champ `list-after` renseigné par `$:/core/ui/MoreSideBar/Tags`, ce qui le placera sous l'onglet `Tags`
On le sait, les tags système permettent de placer des objets à des endroits spécifiques. Voir [[Ajouter des tiddlers dans l'interface utilisateur]] pour plus de précisions. Dans l'exemple qui suit nous voulons ajouter le bouton "New Tiddler" $:/core/ui/Buttons/new-tiddler aux boutons de contrôle de page. Ce bouton est Tagué $:/tags/PageControls Ajoutons y le tag $:/tags/ViewToolbar (C'est à dire le même tag que les boutons close et edit) Il ne reste plus qu'a écrire l'action de déclenchement (ici avec un bouton de case à cocher): ``` <$checkbox tiddler='$:/core/ui/Buttons/new-tiddler' tag='$:/tags/ViewToolbar' checked='$:/tags/ViewToolbar' unchecked=none/> [[Ajouter "Créer un nouveau Tiddler" aux boutons de contrôle|$:/core/ui/Buttons/new-tiddler]] ``` Remarque: Je voulais dans un premier temps remplacer le tag d'origine $:/tags/PageControls par celui de destination $:/tags/ViewToolbar Mais le widget n'accepte qu'une valeur. C'est un tag ou bien pas. Le nouveau [[Widget Checkbox|CheckboxWidget]] permet peut être de le faire; je n'ai pas testé. Pour le placer utiliser les champs list-before ou list-after par exemple. `list-before $:/core/ui/Buttons/edit`
!Intégrée au template (sur tous les tiddlers) Source: Le theme "Moments" Deux tiddlers à importer: *$:/tesseract/Moments/Sub-CSS (règle CSS) *$:/tesseract/Moments/TitleIcon (image) ;Avec : *`.tc-titlebar:before` <i class="fa fa-arrow-right"></i> Insertion de l'image icône *`.tc-titlebar h2:hover` <i class="fa fa-arrow-right"></i> Modifie également la couleur du titre d'un tiddler au passage de la souris <div class="note">Ce paramétrage n'est pas en fonction sur cette version du wiki. Pour le tester, veuillez taguer le tiddler $:/tesseract/Moments/Sub-CSS `$:/tags/Stylesheet`.</div> !Ajoutée individuellement Ajouter le champ "''icon''" sur un tiddler et le renseigner par le titre de l'image choisie.
This plugin allows you to setup tiddlers with aliases that can also be links to that tiddler.
//Included here as a demonstration of ExternalText text support. See the bottom for the license from Project Gutenberg// --- # ALICE'S ADVENTURES IN WONDERLAND ## Lewis Carroll THE MILLENNIUM FULCRUM EDITION 3.0 !!! CHAPTER I. Down the Rabbit-Hole Alice was beginning to get very tired of sitting by her sister on the bank, and of having nothing to do: once or twice she had peeped into the book her sister was reading, but it had no pictures or conversations in it, 'and what is the use of a book,' thought Alice 'without pictures or conversations?' So she was considering in her own mind (as well as she could, for the hot day made her feel very sleepy and stupid), whether the pleasure of making a daisy-chain would be worth the trouble of getting up and picking the daisies, when suddenly a White Rabbit with pink eyes ran close by her. There was nothing so VERY remarkable in that; nor did Alice think it so VERY much out of the way to hear the Rabbit say to itself, 'Oh dear! Oh dear! I shall be late!' (when she thought it over afterwards, it occurred to her that she ought to have wondered at this, but at the time it all seemed quite natural); but when the Rabbit actually TOOK A WATCH OUT OF ITS WAISTCOAT-POCKET, and looked at it, and then hurried on, Alice started to her feet, for it flashed across her mind that she had never before seen a rabbit with either a waistcoat-pocket, or a watch to take out of it, and burning with curiosity, she ran across the field after it, and fortunately was just in time to see it pop down a large rabbit-hole under the hedge. In another moment down went Alice after it, never once considering how in the world she was to get out again. The rabbit-hole went straight on like a tunnel for some way, and then dipped suddenly down, so suddenly that Alice had not a moment to think about stopping herself before she found herself falling down a very deep well. Either the well was very deep, or she fell very slowly, for she had plenty of time as she went down to look about her and to wonder what was going to happen next. First, she tried to look down and make out what she was coming to, but it was too dark to see anything; then she looked at the sides of the well, and noticed that they were filled with cupboards and book-shelves; here and there she saw maps and pictures hung upon pegs. She took down a jar from one of the shelves as she passed; it was labelled 'ORANGE MARMALADE', but to her great disappointment it was empty: she did not like to drop the jar for fear of killing somebody, so managed to put it into one of the cupboards as she fell past it. 'Well!' thought Alice to herself, 'after such a fall as this, I shall think nothing of tumbling down stairs! How brave they'll all think me at home! Why, I wouldn't say anything about it, even if I fell off the top of the house!' (Which was very likely true.) Down, down, down. Would the fall NEVER come to an end! 'I wonder how many miles I've fallen by this time?' she said aloud. 'I must be getting somewhere near the centre of the earth. Let me see: that would be four thousand miles down, I think--' (for, you see, Alice had learnt several things of this sort in her lessons in the schoolroom, and though this was not a VERY good opportunity for showing off her knowledge, as there was no one to listen to her, still it was good practice to say it over) '--yes, that's about the right distance--but then I wonder what Latitude or Longitude I've got to?' (Alice had no idea what Latitude was, or Longitude either, but thought they were nice grand words to say.) Presently she began again. 'I wonder if I shall fall right THROUGH the earth! How funny it'll seem to come out among the people that walk with their heads downward! The Antipathies, I think--' (she was rather glad there WAS no one listening, this time, as it didn't sound at all the right word) '--but I shall have to ask them what the name of the country is, you know. Please, Ma'am, is this New Zealand or Australia?' (and she tried to curtsey as she spoke--fancy CURTSEYING as you're falling through the air! Do you think you could manage it?) 'And what an ignorant little girl she'll think me for asking! No, it'll never do to ask: perhaps I shall see it written up somewhere.' Down, down, down. There was nothing else to do, so Alice soon began talking again. 'Dinah'll miss me very much to-night, I should think!' (Dinah was the cat.) 'I hope they'll remember her saucer of milk at tea-time. Dinah my dear! I wish you were down here with me! There are no mice in the air, I'm afraid, but you might catch a bat, and that's very like a mouse, you know. But do cats eat bats, I wonder?' And here Alice began to get rather sleepy, and went on saying to herself, in a dreamy sort of way, 'Do cats eat bats? Do cats eat bats?' and sometimes, 'Do bats eat cats?' for, you see, as she couldn't answer either question, it didn't much matter which way she put it. She felt that she was dozing off, and had just begun to dream that she was walking hand in hand with Dinah, and saying to her very earnestly, 'Now, Dinah, tell me the truth: did you ever eat a bat?' when suddenly, thump! thump! down she came upon a heap of sticks and dry leaves, and the fall was over. Alice was not a bit hurt, and she jumped up on to her feet in a moment: she looked up, but it was all dark overhead; before her was another long passage, and the White Rabbit was still in sight, hurrying down it. There was not a moment to be lost: away went Alice like the wind, and was just in time to hear it say, as it turned a corner, 'Oh my ears and whiskers, how late it's getting!' She was close behind it when she turned the corner, but the Rabbit was no longer to be seen: she found herself in a long, low hall, which was lit up by a row of lamps hanging from the roof. There were doors all round the hall, but they were all locked; and when Alice had been all the way down one side and up the other, trying every door, she walked sadly down the middle, wondering how she was ever to get out again. Suddenly she came upon a little three-legged table, all made of solid glass; there was nothing on it except a tiny golden key, and Alice's first thought was that it might belong to one of the doors of the hall; but, alas! either the locks were too large, or the key was too small, but at any rate it would not open any of them. However, on the second time round, she came upon a low curtain she had not noticed before, and behind it was a little door about fifteen inches high: she tried the little golden key in the lock, and to her great delight it fitted! Alice opened the door and found that it led into a small passage, not much larger than a rat-hole: she knelt down and looked along the passage into the loveliest garden you ever saw. How she longed to get out of that dark hall, and wander about among those beds of bright flowers and those cool fountains, but she could not even get her head through the doorway; 'and even if my head would go through,' thought poor Alice, 'it would be of very little use without my shoulders. Oh, how I wish I could shut up like a telescope! I think I could, if I only knew how to begin.' For, you see, so many out-of-the-way things had happened lately, that Alice had begun to think that very few things indeed were really impossible. There seemed to be no use in waiting by the little door, so she went back to the table, half hoping she might find another key on it, or at any rate a book of rules for shutting people up like telescopes: this time she found a little bottle on it, ('which certainly was not here before,' said Alice,) and round the neck of the bottle was a paper label, with the words 'DRINK ME' beautifully printed on it in large letters. It was all very well to say 'Drink me,' but the wise little Alice was not going to do THAT in a hurry. 'No, I'll look first,' she said, 'and see whether it's marked "poison" or not'; for she had read several nice little histories about children who had got burnt, and eaten up by wild beasts and other unpleasant things, all because they WOULD not remember the simple rules their friends had taught them: such as, that a red-hot poker will burn you if you hold it too long; and that if you cut your finger VERY deeply with a knife, it usually bleeds; and she had never forgotten that, if you drink much from a bottle marked 'poison,' it is almost certain to disagree with you, sooner or later. However, this bottle was NOT marked 'poison,' so Alice ventured to taste it, and finding it very nice, (it had, in fact, a sort of mixed flavour of cherry-tart, custard, pine-apple, roast turkey, toffee, and hot buttered toast,) she very soon finished it off. * * * * * * * * * * * * * * * * * * * * 'What a curious feeling!' said Alice; 'I must be shutting up like a telescope.' And so it was indeed: she was now only ten inches high, and her face brightened up at the thought that she was now the right size for going through the little door into that lovely garden. First, however, she waited for a few minutes to see if she was going to shrink any further: she felt a little nervous about this; 'for it might end, you know,' said Alice to herself, 'in my going out altogether, like a candle. I wonder what I should be like then?' And she tried to fancy what the flame of a candle is like after the candle is blown out, for she could not remember ever having seen such a thing. After a while, finding that nothing more happened, she decided on going into the garden at once; but, alas for poor Alice! when she got to the door, she found she had forgotten the little golden key, and when she went back to the table for it, she found she could not possibly reach it: she could see it quite plainly through the glass, and she tried her best to climb up one of the legs of the table, but it was too slippery; and when she had tired herself out with trying, the poor little thing sat down and cried. 'Come, there's no use in crying like that!' said Alice to herself, rather sharply; 'I advise you to leave off this minute!' She generally gave herself very good advice, (though she very seldom followed it), and sometimes she scolded herself so severely as to bring tears into her eyes; and once she remembered trying to box her own ears for having cheated herself in a game of croquet she was playing against herself, for this curious child was very fond of pretending to be two people. 'But it's no use now,' thought poor Alice, 'to pretend to be two people! Why, there's hardly enough of me left to make ONE respectable person!' Soon her eye fell on a little glass box that was lying under the table: she opened it, and found in it a very small cake, on which the words 'EAT ME' were beautifully marked in currants. 'Well, I'll eat it,' said Alice, 'and if it makes me grow larger, I can reach the key; and if it makes me grow smaller, I can creep under the door; so either way I'll get into the garden, and I don't care which happens!' She ate a little bit, and said anxiously to herself, 'Which way? Which way?', holding her hand on the top of her head to feel which way it was growing, and she was quite surprised to find that she remained the same size: to be sure, this generally happens when one eats cake, but Alice had got so much into the way of expecting nothing but out-of-the-way things to happen, that it seemed quite dull and stupid for life to go on in the common way. So she set to work, and very soon finished off the cake. * * * * * * * * * * * * * * * * * * * * !!! CHAPTER II. The Pool of Tears 'Curiouser and curiouser!' cried Alice (she was so much surprised, that for the moment she quite forgot how to speak good English); 'now I'm opening out like the largest telescope that ever was! Good-bye, feet!' (for when she looked down at her feet, they seemed to be almost out of sight, they were getting so far off). 'Oh, my poor little feet, I wonder who will put on your shoes and stockings for you now, dears? I'm sure _I_ shan't be able! I shall be a great deal too far off to trouble myself about you: you must manage the best way you can;--but I must be kind to them,' thought Alice, 'or perhaps they won't walk the way I want to go! Let me see: I'll give them a new pair of boots every Christmas.' And she went on planning to herself how she would manage it. 'They must go by the carrier,' she thought; 'and how funny it'll seem, sending presents to one's own feet! And how odd the directions will look! ALICE'S RIGHT FOOT, ESQ. HEARTHRUG, NEAR THE FENDER, (WITH ALICE'S LOVE). Oh dear, what nonsense I'm talking!' Just then her head struck against the roof of the hall: in fact she was now more than nine feet high, and she at once took up the little golden key and hurried off to the garden door. Poor Alice! It was as much as she could do, lying down on one side, to look through into the garden with one eye; but to get through was more hopeless than ever: she sat down and began to cry again. 'You ought to be ashamed of yourself,' said Alice, 'a great girl like you,' (she might well say this), 'to go on crying in this way! Stop this moment, I tell you!' But she went on all the same, shedding gallons of tears, until there was a large pool all round her, about four inches deep and reaching half down the hall. After a time she heard a little pattering of feet in the distance, and she hastily dried her eyes to see what was coming. It was the White Rabbit returning, splendidly dressed, with a pair of white kid gloves in one hand and a large fan in the other: he came trotting along in a great hurry, muttering to himself as he came, 'Oh! the Duchess, the Duchess! Oh! won't she be savage if I've kept her waiting!' Alice felt so desperate that she was ready to ask help of any one; so, when the Rabbit came near her, she began, in a low, timid voice, 'If you please, sir--' The Rabbit started violently, dropped the white kid gloves and the fan, and skurried away into the darkness as hard as he could go. Alice took up the fan and gloves, and, as the hall was very hot, she kept fanning herself all the time she went on talking: 'Dear, dear! How queer everything is to-day! And yesterday things went on just as usual. I wonder if I've been changed in the night? Let me think: was I the same when I got up this morning? I almost think I can remember feeling a little different. But if I'm not the same, the next question is, Who in the world am I? Ah, THAT'S the great puzzle!' And she began thinking over all the children she knew that were of the same age as herself, to see if she could have been changed for any of them. 'I'm sure I'm not Ada,' she said, 'for her hair goes in such long ringlets, and mine doesn't go in ringlets at all; and I'm sure I can't be Mabel, for I know all sorts of things, and she, oh! she knows such a very little! Besides, SHE'S she, and I'm I, and--oh dear, how puzzling it all is! I'll try if I know all the things I used to know. Let me see: four times five is twelve, and four times six is thirteen, and four times seven is--oh dear! I shall never get to twenty at that rate! However, the Multiplication Table doesn't signify: let's try Geography. London is the capital of Paris, and Paris is the capital of Rome, and Rome--no, THAT'S all wrong, I'm certain! I must have been changed for Mabel! I'll try and say "How doth the little--"' and she crossed her hands on her lap as if she were saying lessons, and began to repeat it, but her voice sounded hoarse and strange, and the words did not come the same as they used to do:-- 'How doth the little crocodile Improve his shining tail, And pour the waters of the Nile On every golden scale! 'How cheerfully he seems to grin, How neatly spread his claws, And welcome little fishes in With gently smiling jaws!' 'I'm sure those are not the right words,' said poor Alice, and her eyes filled with tears again as she went on, 'I must be Mabel after all, and I shall have to go and live in that poky little house, and have next to no toys to play with, and oh! ever so many lessons to learn! No, I've made up my mind about it; if I'm Mabel, I'll stay down here! It'll be no use their putting their heads down and saying "Come up again, dear!" I shall only look up and say "Who am I then? Tell me that first, and then, if I like being that person, I'll come up: if not, I'll stay down here till I'm somebody else"--but, oh dear!' cried Alice, with a sudden burst of tears, 'I do wish they WOULD put their heads down! I am so VERY tired of being all alone here!' As she said this she looked down at her hands, and was surprised to see that she had put on one of the Rabbit's little white kid gloves while she was talking. 'How CAN I have done that?' she thought. 'I must be growing small again.' She got up and went to the table to measure herself by it, and found that, as nearly as she could guess, she was now about two feet high, and was going on shrinking rapidly: she soon found out that the cause of this was the fan she was holding, and she dropped it hastily, just in time to avoid shrinking away altogether. 'That WAS a narrow escape!' said Alice, a good deal frightened at the sudden change, but very glad to find herself still in existence; 'and now for the garden!' and she ran with all speed back to the little door: but, alas! the little door was shut again, and the little golden key was lying on the glass table as before, 'and things are worse than ever,' thought the poor child, 'for I never was so small as this before, never! And I declare it's too bad, that it is!' As she said these words her foot slipped, and in another moment, splash! she was up to her chin in salt water. Her first idea was that she had somehow fallen into the sea, 'and in that case I can go back by railway,' she said to herself. (Alice had been to the seaside once in her life, and had come to the general conclusion, that wherever you go to on the English coast you find a number of bathing machines in the sea, some children digging in the sand with wooden spades, then a row of lodging houses, and behind them a railway station.) However, she soon made out that she was in the pool of tears which she had wept when she was nine feet high. 'I wish I hadn't cried so much!' said Alice, as she swam about, trying to find her way out. 'I shall be punished for it now, I suppose, by being drowned in my own tears! That WILL be a queer thing, to be sure! However, everything is queer to-day.' Just then she heard something splashing about in the pool a little way off, and she swam nearer to make out what it was: at first she thought it must be a walrus or hippopotamus, but then she remembered how small she was now, and she soon made out that it was only a mouse that had slipped in like herself. 'Would it be of any use, now,' thought Alice, 'to speak to this mouse? Everything is so out-of-the-way down here, that I should think very likely it can talk: at any rate, there's no harm in trying.' So she began: 'O Mouse, do you know the way out of this pool? I am very tired of swimming about here, O Mouse!' (Alice thought this must be the right way of speaking to a mouse: she had never done such a thing before, but she remembered having seen in her brother's Latin Grammar, 'A mouse--of a mouse--to a mouse--a mouse--O mouse!') The Mouse looked at her rather inquisitively, and seemed to her to wink with one of its little eyes, but it said nothing. 'Perhaps it doesn't understand English,' thought Alice; 'I daresay it's a French mouse, come over with William the Conqueror.' (For, with all her knowledge of history, Alice had no very clear notion how long ago anything had happened.) So she began again: 'Ou est ma chatte?' which was the first sentence in her French lesson-book. The Mouse gave a sudden leap out of the water, and seemed to quiver all over with fright. 'Oh, I beg your pardon!' cried Alice hastily, afraid that she had hurt the poor animal's feelings. 'I quite forgot you didn't like cats.' 'Not like cats!' cried the Mouse, in a shrill, passionate voice. 'Would YOU like cats if you were me?' 'Well, perhaps not,' said Alice in a soothing tone: 'don't be angry about it. And yet I wish I could show you our cat Dinah: I think you'd take a fancy to cats if you could only see her. She is such a dear quiet thing,' Alice went on, half to herself, as she swam lazily about in the pool, 'and she sits purring so nicely by the fire, licking her paws and washing her face--and she is such a nice soft thing to nurse--and she's such a capital one for catching mice--oh, I beg your pardon!' cried Alice again, for this time the Mouse was bristling all over, and she felt certain it must be really offended. 'We won't talk about her any more if you'd rather not.' 'We indeed!' cried the Mouse, who was trembling down to the end of his tail. 'As if I would talk on such a subject! Our family always HATED cats: nasty, low, vulgar things! Don't let me hear the name again!' 'I won't indeed!' said Alice, in a great hurry to change the subject of conversation. 'Are you--are you fond--of--of dogs?' The Mouse did not answer, so Alice went on eagerly: 'There is such a nice little dog near our house I should like to show you! A little bright-eyed terrier, you know, with oh, such long curly brown hair! And it'll fetch things when you throw them, and it'll sit up and beg for its dinner, and all sorts of things--I can't remember half of them--and it belongs to a farmer, you know, and he says it's so useful, it's worth a hundred pounds! He says it kills all the rats and--oh dear!' cried Alice in a sorrowful tone, 'I'm afraid I've offended it again!' For the Mouse was swimming away from her as hard as it could go, and making quite a commotion in the pool as it went. So she called softly after it, 'Mouse dear! Do come back again, and we won't talk about cats or dogs either, if you don't like them!' When the Mouse heard this, it turned round and swam slowly back to her: its face was quite pale (with passion, Alice thought), and it said in a low trembling voice, 'Let us get to the shore, and then I'll tell you my history, and you'll understand why it is I hate cats and dogs.' It was high time to go, for the pool was getting quite crowded with the birds and animals that had fallen into it: there were a Duck and a Dodo, a Lory and an Eaglet, and several other curious creatures. Alice led the way, and the whole party swam to the shore. !!! CHAPTER III. A Caucus-Race and a Long Tale They were indeed a queer-looking party that assembled on the bank--the birds with draggled feathers, the animals with their fur clinging close to them, and all dripping wet, cross, and uncomfortable. The first question of course was, how to get dry again: they had a consultation about this, and after a few minutes it seemed quite natural to Alice to find herself talking familiarly with them, as if she had known them all her life. Indeed, she had quite a long argument with the Lory, who at last turned sulky, and would only say, 'I am older than you, and must know better'; and this Alice would not allow without knowing how old it was, and, as the Lory positively refused to tell its age, there was no more to be said. At last the Mouse, who seemed to be a person of authority among them, called out, 'Sit down, all of you, and listen to me! I'LL soon make you dry enough!' They all sat down at once, in a large ring, with the Mouse in the middle. Alice kept her eyes anxiously fixed on it, for she felt sure she would catch a bad cold if she did not get dry very soon. 'Ahem!' said the Mouse with an important air, 'are you all ready? This is the driest thing I know. Silence all round, if you please! "William the Conqueror, whose cause was favoured by the pope, was soon submitted to by the English, who wanted leaders, and had been of late much accustomed to usurpation and conquest. Edwin and Morcar, the earls of Mercia and Northumbria--"' 'Ugh!' said the Lory, with a shiver. 'I beg your pardon!' said the Mouse, frowning, but very politely: 'Did you speak?' 'Not I!' said the Lory hastily. 'I thought you did,' said the Mouse. '--I proceed. "Edwin and Morcar, the earls of Mercia and Northumbria, declared for him: and even Stigand, the patriotic archbishop of Canterbury, found it advisable--"' 'Found WHAT?' said the Duck. 'Found IT,' the Mouse replied rather crossly: 'of course you know what "it" means.' 'I know what "it" means well enough, when I find a thing,' said the Duck: 'it's generally a frog or a worm. The question is, what did the archbishop find?' The Mouse did not notice this question, but hurriedly went on, '"--found it advisable to go with Edgar Atheling to meet William and offer him the crown. William's conduct at first was moderate. But the insolence of his Normans--" How are you getting on now, my dear?' it continued, turning to Alice as it spoke. 'As wet as ever,' said Alice in a melancholy tone: 'it doesn't seem to dry me at all.' 'In that case,' said the Dodo solemnly, rising to its feet, 'I move that the meeting adjourn, for the immediate adoption of more energetic remedies--' 'Speak English!' said the Eaglet. 'I don't know the meaning of half those long words, and, what's more, I don't believe you do either!' And the Eaglet bent down its head to hide a smile: some of the other birds tittered audibly. 'What I was going to say,' said the Dodo in an offended tone, 'was, that the best thing to get us dry would be a Caucus-race.' 'What IS a Caucus-race?' said Alice; not that she wanted much to know, but the Dodo had paused as if it thought that SOMEBODY ought to speak, and no one else seemed inclined to say anything. 'Why,' said the Dodo, 'the best way to explain it is to do it.' (And, as you might like to try the thing yourself, some winter day, I will tell you how the Dodo managed it.) First it marked out a race-course, in a sort of circle, ('the exact shape doesn't matter,' it said,) and then all the party were placed along the course, here and there. There was no 'One, two, three, and away,' but they began running when they liked, and left off when they liked, so that it was not easy to know when the race was over. However, when they had been running half an hour or so, and were quite dry again, the Dodo suddenly called out 'The race is over!' and they all crowded round it, panting, and asking, 'But who has won?' This question the Dodo could not answer without a great deal of thought, and it sat for a long time with one finger pressed upon its forehead (the position in which you usually see Shakespeare, in the pictures of him), while the rest waited in silence. At last the Dodo said, 'EVERYBODY has won, and all must have prizes.' 'But who is to give the prizes?' quite a chorus of voices asked. 'Why, SHE, of course,' said the Dodo, pointing to Alice with one finger; and the whole party at once crowded round her, calling out in a confused way, 'Prizes! Prizes!' Alice had no idea what to do, and in despair she put her hand in her pocket, and pulled out a box of comfits, (luckily the salt water had not got into it), and handed them round as prizes. There was exactly one a-piece all round. 'But she must have a prize herself, you know,' said the Mouse. 'Of course,' the Dodo replied very gravely. 'What else have you got in your pocket?' he went on, turning to Alice. 'Only a thimble,' said Alice sadly. 'Hand it over here,' said the Dodo. Then they all crowded round her once more, while the Dodo solemnly presented the thimble, saying 'We beg your acceptance of this elegant thimble'; and, when it had finished this short speech, they all cheered. Alice thought the whole thing very absurd, but they all looked so grave that she did not dare to laugh; and, as she could not think of anything to say, she simply bowed, and took the thimble, looking as solemn as she could. The next thing was to eat the comfits: this caused some noise and confusion, as the large birds complained that they could not taste theirs, and the small ones choked and had to be patted on the back. However, it was over at last, and they sat down again in a ring, and begged the Mouse to tell them something more. 'You promised to tell me your history, you know,' said Alice, 'and why it is you hate--C and D,' she added in a whisper, half afraid that it would be offended again. 'Mine is a long and a sad tale!' said the Mouse, turning to Alice, and sighing. 'It IS a long tail, certainly,' said Alice, looking down with wonder at the Mouse's tail; 'but why do you call it sad?' And she kept on puzzling about it while the Mouse was speaking, so that her idea of the tale was something like this:-- 'Fury said to a mouse, That he met in the house, "Let us both go to law: I will prosecute YOU.--Come, I'll take no denial; We must have a trial: For really this morning I've nothing to do." Said the mouse to the cur, "Such a trial, dear Sir, With no jury or judge, would be wasting our breath." "I'll be judge, I'll be jury," Said cunning old Fury: "I'll try the whole cause, and condemn you to death."' 'You are not attending!' said the Mouse to Alice severely. 'What are you thinking of?' 'I beg your pardon,' said Alice very humbly: 'you had got to the fifth bend, I think?' 'I had NOT!' cried the Mouse, sharply and very angrily. 'A knot!' said Alice, always ready to make herself useful, and looking anxiously about her. 'Oh, do let me help to undo it!' 'I shall do nothing of the sort,' said the Mouse, getting up and walking away. 'You insult me by talking such nonsense!' 'I didn't mean it!' pleaded poor Alice. 'But you're so easily offended, you know!' The Mouse only growled in reply. 'Please come back and finish your story!' Alice called after it; and the others all joined in chorus, 'Yes, please do!' but the Mouse only shook its head impatiently, and walked a little quicker. 'What a pity it wouldn't stay!' sighed the Lory, as soon as it was quite out of sight; and an old Crab took the opportunity of saying to her daughter 'Ah, my dear! Let this be a lesson to you never to lose YOUR temper!' 'Hold your tongue, Ma!' said the young Crab, a little snappishly. 'You're enough to try the patience of an oyster!' 'I wish I had our Dinah here, I know I do!' said Alice aloud, addressing nobody in particular. 'She'd soon fetch it back!' 'And who is Dinah, if I might venture to ask the question?' said the Lory. Alice replied eagerly, for she was always ready to talk about her pet: 'Dinah's our cat. And she's such a capital one for catching mice you can't think! And oh, I wish you could see her after the birds! Why, she'll eat a little bird as soon as look at it!' This speech caused a remarkable sensation among the party. Some of the birds hurried off at once: one old Magpie began wrapping itself up very carefully, remarking, 'I really must be getting home; the night-air doesn't suit my throat!' and a Canary called out in a trembling voice to its children, 'Come away, my dears! It's high time you were all in bed!' On various pretexts they all moved off, and Alice was soon left alone. 'I wish I hadn't mentioned Dinah!' she said to herself in a melancholy tone. 'Nobody seems to like her, down here, and I'm sure she's the best cat in the world! Oh, my dear Dinah! I wonder if I shall ever see you any more!' And here poor Alice began to cry again, for she felt very lonely and low-spirited. In a little while, however, she again heard a little pattering of footsteps in the distance, and she looked up eagerly, half hoping that the Mouse had changed his mind, and was coming back to finish his story. !!! CHAPTER IV. The Rabbit Sends in a Little Bill It was the White Rabbit, trotting slowly back again, and looking anxiously about as it went, as if it had lost something; and she heard it muttering to itself 'The Duchess! The Duchess! Oh my dear paws! Oh my fur and whiskers! She'll get me executed, as sure as ferrets are ferrets! Where CAN I have dropped them, I wonder?' Alice guessed in a moment that it was looking for the fan and the pair of white kid gloves, and she very good-naturedly began hunting about for them, but they were nowhere to be seen--everything seemed to have changed since her swim in the pool, and the great hall, with the glass table and the little door, had vanished completely. Very soon the Rabbit noticed Alice, as she went hunting about, and called out to her in an angry tone, 'Why, Mary Ann, what ARE you doing out here? Run home this moment, and fetch me a pair of gloves and a fan! Quick, now!' And Alice was so much frightened that she ran off at once in the direction it pointed to, without trying to explain the mistake it had made. 'He took me for his housemaid,' she said to herself as she ran. 'How surprised he'll be when he finds out who I am! But I'd better take him his fan and gloves--that is, if I can find them.' As she said this, she came upon a neat little house, on the door of which was a bright brass plate with the name 'W. RABBIT' engraved upon it. She went in without knocking, and hurried upstairs, in great fear lest she should meet the real Mary Ann, and be turned out of the house before she had found the fan and gloves. 'How queer it seems,' Alice said to herself, 'to be going messages for a rabbit! I suppose Dinah'll be sending me on messages next!' And she began fancying the sort of thing that would happen: '"Miss Alice! Come here directly, and get ready for your walk!" "Coming in a minute, nurse! But I've got to see that the mouse doesn't get out." Only I don't think,' Alice went on, 'that they'd let Dinah stop in the house if it began ordering people about like that!' By this time she had found her way into a tidy little room with a table in the window, and on it (as she had hoped) a fan and two or three pairs of tiny white kid gloves: she took up the fan and a pair of the gloves, and was just going to leave the room, when her eye fell upon a little bottle that stood near the looking-glass. There was no label this time with the words 'DRINK ME,' but nevertheless she uncorked it and put it to her lips. 'I know SOMETHING interesting is sure to happen,' she said to herself, 'whenever I eat or drink anything; so I'll just see what this bottle does. I do hope it'll make me grow large again, for really I'm quite tired of being such a tiny little thing!' It did so indeed, and much sooner than she had expected: before she had drunk half the bottle, she found her head pressing against the ceiling, and had to stoop to save her neck from being broken. She hastily put down the bottle, saying to herself 'That's quite enough--I hope I shan't grow any more--As it is, I can't get out at the door--I do wish I hadn't drunk quite so much!' Alas! it was too late to wish that! She went on growing, and growing, and very soon had to kneel down on the floor: in another minute there was not even room for this, and she tried the effect of lying down with one elbow against the door, and the other arm curled round her head. Still she went on growing, and, as a last resource, she put one arm out of the window, and one foot up the chimney, and said to herself 'Now I can do no more, whatever happens. What WILL become of me?' Luckily for Alice, the little magic bottle had now had its full effect, and she grew no larger: still it was very uncomfortable, and, as there seemed to be no sort of chance of her ever getting out of the room again, no wonder she felt unhappy. 'It was much pleasanter at home,' thought poor Alice, 'when one wasn't always growing larger and smaller, and being ordered about by mice and rabbits. I almost wish I hadn't gone down that rabbit-hole--and yet--and yet--it's rather curious, you know, this sort of life! I do wonder what CAN have happened to me! When I used to read fairy-tales, I fancied that kind of thing never happened, and now here I am in the middle of one! There ought to be a book written about me, that there ought! And when I grow up, I'll write one--but I'm grown up now,' she added in a sorrowful tone; 'at least there's no room to grow up any more HERE.' 'But then,' thought Alice, 'shall I NEVER get any older than I am now? That'll be a comfort, one way--never to be an old woman--but then--always to have lessons to learn! Oh, I shouldn't like THAT!' 'Oh, you foolish Alice!' she answered herself. 'How can you learn lessons in here? Why, there's hardly room for YOU, and no room at all for any lesson-books!' And so she went on, taking first one side and then the other, and making quite a conversation of it altogether; but after a few minutes she heard a voice outside, and stopped to listen. 'Mary Ann! Mary Ann!' said the voice. 'Fetch me my gloves this moment!' Then came a little pattering of feet on the stairs. Alice knew it was the Rabbit coming to look for her, and she trembled till she shook the house, quite forgetting that she was now about a thousand times as large as the Rabbit, and had no reason to be afraid of it. Presently the Rabbit came up to the door, and tried to open it; but, as the door opened inwards, and Alice's elbow was pressed hard against it, that attempt proved a failure. Alice heard it say to itself 'Then I'll go round and get in at the window.' 'THAT you won't' thought Alice, and, after waiting till she fancied she heard the Rabbit just under the window, she suddenly spread out her hand, and made a snatch in the air. She did not get hold of anything, but she heard a little shriek and a fall, and a crash of broken glass, from which she concluded that it was just possible it had fallen into a cucumber-frame, or something of the sort. Next came an angry voice--the Rabbit's--'Pat! Pat! Where are you?' And then a voice she had never heard before, 'Sure then I'm here! Digging for apples, yer honour!' 'Digging for apples, indeed!' said the Rabbit angrily. 'Here! Come and help me out of THIS!' (Sounds of more broken glass.) 'Now tell me, Pat, what's that in the window?' 'Sure, it's an arm, yer honour!' (He pronounced it 'arrum.') 'An arm, you goose! Who ever saw one that size? Why, it fills the whole window!' 'Sure, it does, yer honour: but it's an arm for all that.' 'Well, it's got no business there, at any rate: go and take it away!' There was a long silence after this, and Alice could only hear whispers now and then; such as, 'Sure, I don't like it, yer honour, at all, at all!' 'Do as I tell you, you coward!' and at last she spread out her hand again, and made another snatch in the air. This time there were TWO little shrieks, and more sounds of broken glass. 'What a number of cucumber-frames there must be!' thought Alice. 'I wonder what they'll do next! As for pulling me out of the window, I only wish they COULD! I'm sure I don't want to stay in here any longer!' She waited for some time without hearing anything more: at last came a rumbling of little cartwheels, and the sound of a good many voices all talking together: she made out the words: 'Where's the other ladder?--Why, I hadn't to bring but one; Bill's got the other--Bill! fetch it here, lad!--Here, put 'em up at this corner--No, tie 'em together first--they don't reach half high enough yet--Oh! they'll do well enough; don't be particular--Here, Bill! catch hold of this rope--Will the roof bear?--Mind that loose slate--Oh, it's coming down! Heads below!' (a loud crash)--'Now, who did that?--It was Bill, I fancy--Who's to go down the chimney?--Nay, I shan't! YOU do it!--That I won't, then!--Bill's to go down--Here, Bill! the master says you're to go down the chimney!' 'Oh! So Bill's got to come down the chimney, has he?' said Alice to herself. 'Shy, they seem to put everything upon Bill! I wouldn't be in Bill's place for a good deal: this fireplace is narrow, to be sure; but I THINK I can kick a little!' She drew her foot as far down the chimney as she could, and waited till she heard a little animal (she couldn't guess of what sort it was) scratching and scrambling about in the chimney close above her: then, saying to herself 'This is Bill,' she gave one sharp kick, and waited to see what would happen next. The first thing she heard was a general chorus of 'There goes Bill!' then the Rabbit's voice along--'Catch him, you by the hedge!' then silence, and then another confusion of voices--'Hold up his head--Brandy now--Don't choke him--How was it, old fellow? What happened to you? Tell us all about it!' Last came a little feeble, squeaking voice, ('That's Bill,' thought Alice,) 'Well, I hardly know--No more, thank ye; I'm better now--but I'm a deal too flustered to tell you--all I know is, something comes at me like a Jack-in-the-box, and up I goes like a sky-rocket!' 'So you did, old fellow!' said the others. 'We must burn the house down!' said the Rabbit's voice; and Alice called out as loud as she could, 'If you do. I'll set Dinah at you!' There was a dead silence instantly, and Alice thought to herself, 'I wonder what they WILL do next! If they had any sense, they'd take the roof off.' After a minute or two, they began moving about again, and Alice heard the Rabbit say, 'A barrowful will do, to begin with.' 'A barrowful of WHAT?' thought Alice; but she had not long to doubt, for the next moment a shower of little pebbles came rattling in at the window, and some of them hit her in the face. 'I'll put a stop to this,' she said to herself, and shouted out, 'You'd better not do that again!' which produced another dead silence. Alice noticed with some surprise that the pebbles were all turning into little cakes as they lay on the floor, and a bright idea came into her head. 'If I eat one of these cakes,' she thought, 'it's sure to make SOME change in my size; and as it can't possibly make me larger, it must make me smaller, I suppose.' So she swallowed one of the cakes, and was delighted to find that she began shrinking directly. As soon as she was small enough to get through the door, she ran out of the house, and found quite a crowd of little animals and birds waiting outside. The poor little Lizard, Bill, was in the middle, being held up by two guinea-pigs, who were giving it something out of a bottle. They all made a rush at Alice the moment she appeared; but she ran off as hard as she could, and soon found herself safe in a thick wood. 'The first thing I've got to do,' said Alice to herself, as she wandered about in the wood, 'is to grow to my right size again; and the second thing is to find my way into that lovely garden. I think that will be the best plan.' It sounded an excellent plan, no doubt, and very neatly and simply arranged; the only difficulty was, that she had not the smallest idea how to set about it; and while she was peering about anxiously among the trees, a little sharp bark just over her head made her look up in a great hurry. An enormous puppy was looking down at her with large round eyes, and feebly stretching out one paw, trying to touch her. 'Poor little thing!' said Alice, in a coaxing tone, and she tried hard to whistle to it; but she was terribly frightened all the time at the thought that it might be hungry, in which case it would be very likely to eat her up in spite of all her coaxing. Hardly knowing what she did, she picked up a little bit of stick, and held it out to the puppy; whereupon the puppy jumped into the air off all its feet at once, with a yelp of delight, and rushed at the stick, and made believe to worry it; then Alice dodged behind a great thistle, to keep herself from being run over; and the moment she appeared on the other side, the puppy made another rush at the stick, and tumbled head over heels in its hurry to get hold of it; then Alice, thinking it was very like having a game of play with a cart-horse, and expecting every moment to be trampled under its feet, ran round the thistle again; then the puppy began a series of short charges at the stick, running a very little way forwards each time and a long way back, and barking hoarsely all the while, till at last it sat down a good way off, panting, with its tongue hanging out of its mouth, and its great eyes half shut. This seemed to Alice a good opportunity for making her escape; so she set off at once, and ran till she was quite tired and out of breath, and till the puppy's bark sounded quite faint in the distance. 'And yet what a dear little puppy it was!' said Alice, as she leant against a buttercup to rest herself, and fanned herself with one of the leaves: 'I should have liked teaching it tricks very much, if--if I'd only been the right size to do it! Oh dear! I'd nearly forgotten that I've got to grow up again! Let me see--how IS it to be managed? I suppose I ought to eat or drink something or other; but the great question is, what?' The great question certainly was, what? Alice looked all round her at the flowers and the blades of grass, but she did not see anything that looked like the right thing to eat or drink under the circumstances. There was a large mushroom growing near her, about the same height as herself; and when she had looked under it, and on both sides of it, and behind it, it occurred to her that she might as well look and see what was on the top of it. She stretched herself up on tiptoe, and peeped over the edge of the mushroom, and her eyes immediately met those of a large caterpillar, that was sitting on the top with its arms folded, quietly smoking a long hookah, and taking not the smallest notice of her or of anything else. !!! CHAPTER V. Advice from a Caterpillar The Caterpillar and Alice looked at each other for some time in silence: at last the Caterpillar took the hookah out of its mouth, and addressed her in a languid, sleepy voice. 'Who are YOU?' said the Caterpillar. This was not an encouraging opening for a conversation. Alice replied, rather shyly, 'I--I hardly know, sir, just at present--at least I know who I WAS when I got up this morning, but I think I must have been changed several times since then.' 'What do you mean by that?' said the Caterpillar sternly. 'Explain yourself!' 'I can't explain MYSELF, I'm afraid, sir' said Alice, 'because I'm not myself, you see.' 'I don't see,' said the Caterpillar. 'I'm afraid I can't put it more clearly,' Alice replied very politely, 'for I can't understand it myself to begin with; and being so many different sizes in a day is very confusing.' 'It isn't,' said the Caterpillar. 'Well, perhaps you haven't found it so yet,' said Alice; 'but when you have to turn into a chrysalis--you will some day, you know--and then after that into a butterfly, I should think you'll feel it a little queer, won't you?' 'Not a bit,' said the Caterpillar. 'Well, perhaps your feelings may be different,' said Alice; 'all I know is, it would feel very queer to ME.' 'You!' said the Caterpillar contemptuously. 'Who are YOU?' Which brought them back again to the beginning of the conversation. Alice felt a little irritated at the Caterpillar's making such VERY short remarks, and she drew herself up and said, very gravely, 'I think, you ought to tell me who YOU are, first.' 'Why?' said the Caterpillar. Here was another puzzling question; and as Alice could not think of any good reason, and as the Caterpillar seemed to be in a VERY unpleasant state of mind, she turned away. 'Come back!' the Caterpillar called after her. 'I've something important to say!' This sounded promising, certainly: Alice turned and came back again. 'Keep your temper,' said the Caterpillar. 'Is that all?' said Alice, swallowing down her anger as well as she could. 'No,' said the Caterpillar. Alice thought she might as well wait, as she had nothing else to do, and perhaps after all it might tell her something worth hearing. For some minutes it puffed away without speaking, but at last it unfolded its arms, took the hookah out of its mouth again, and said, 'So you think you're changed, do you?' 'I'm afraid I am, sir,' said Alice; 'I can't remember things as I used--and I don't keep the same size for ten minutes together!' 'Can't remember WHAT things?' said the Caterpillar. 'Well, I've tried to say "HOW DOTH THE LITTLE BUSY BEE," but it all came different!' Alice replied in a very melancholy voice. 'Repeat, "YOU ARE OLD, FATHER WILLIAM,"' said the Caterpillar. Alice folded her hands, and began:-- 'You are old, Father William,' the young man said, 'And your hair has become very white; And yet you incessantly stand on your head-- Do you think, at your age, it is right?' 'In my youth,' Father William replied to his son, 'I feared it might injure the brain; But, now that I'm perfectly sure I have none, Why, I do it again and again.' 'You are old,' said the youth, 'as I mentioned before, And have grown most uncommonly fat; Yet you turned a back-somersault in at the door-- Pray, what is the reason of that?' 'In my youth,' said the sage, as he shook his grey locks, 'I kept all my limbs very supple By the use of this ointment--one shilling the box-- Allow me to sell you a couple?' 'You are old,' said the youth, 'and your jaws are too weak For anything tougher than suet; Yet you finished the goose, with the bones and the beak-- Pray how did you manage to do it?' 'In my youth,' said his father, 'I took to the law, And argued each case with my wife; And the muscular strength, which it gave to my jaw, Has lasted the rest of my life.' 'You are old,' said the youth, 'one would hardly suppose That your eye was as steady as ever; Yet you balanced an eel on the end of your nose-- What made you so awfully clever?' 'I have answered three questions, and that is enough,' Said his father; 'don't give yourself airs! Do you think I can listen all day to such stuff? Be off, or I'll kick you down stairs!' 'That is not said right,' said the Caterpillar. 'Not QUITE right, I'm afraid,' said Alice, timidly; 'some of the words have got altered.' 'It is wrong from beginning to end,' said the Caterpillar decidedly, and there was silence for some minutes. The Caterpillar was the first to speak. 'What size do you want to be?' it asked. 'Oh, I'm not particular as to size,' Alice hastily replied; 'only one doesn't like changing so often, you know.' 'I DON'T know,' said the Caterpillar. Alice said nothing: she had never been so much contradicted in her life before, and she felt that she was losing her temper. 'Are you content now?' said the Caterpillar. 'Well, I should like to be a LITTLE larger, sir, if you wouldn't mind,' said Alice: 'three inches is such a wretched height to be.' 'It is a very good height indeed!' said the Caterpillar angrily, rearing itself upright as it spoke (it was exactly three inches high). 'But I'm not used to it!' pleaded poor Alice in a piteous tone. And she thought of herself, 'I wish the creatures wouldn't be so easily offended!' 'You'll get used to it in time,' said the Caterpillar; and it put the hookah into its mouth and began smoking again. This time Alice waited patiently until it chose to speak again. In a minute or two the Caterpillar took the hookah out of its mouth and yawned once or twice, and shook itself. Then it got down off the mushroom, and crawled away in the grass, merely remarking as it went, 'One side will make you grow taller, and the other side will make you grow shorter.' 'One side of WHAT? The other side of WHAT?' thought Alice to herself. 'Of the mushroom,' said the Caterpillar, just as if she had asked it aloud; and in another moment it was out of sight. Alice remained looking thoughtfully at the mushroom for a minute, trying to make out which were the two sides of it; and as it was perfectly round, she found this a very difficult question. However, at last she stretched her arms round it as far as they would go, and broke off a bit of the edge with each hand. 'And now which is which?' she said to herself, and nibbled a little of the right-hand bit to try the effect: the next moment she felt a violent blow underneath her chin: it had struck her foot! She was a good deal frightened by this very sudden change, but she felt that there was no time to be lost, as she was shrinking rapidly; so she set to work at once to eat some of the other bit. Her chin was pressed so closely against her foot, that there was hardly room to open her mouth; but she did it at last, and managed to swallow a morsel of the lefthand bit. * * * * * * * * * * * * * * * * * * * * 'Come, my head's free at last!' said Alice in a tone of delight, which changed into alarm in another moment, when she found that her shoulders were nowhere to be found: all she could see, when she looked down, was an immense length of neck, which seemed to rise like a stalk out of a sea of green leaves that lay far below her. 'What CAN all that green stuff be?' said Alice. 'And where HAVE my shoulders got to? And oh, my poor hands, how is it I can't see you?' She was moving them about as she spoke, but no result seemed to follow, except a little shaking among the distant green leaves. As there seemed to be no chance of getting her hands up to her head, she tried to get her head down to them, and was delighted to find that her neck would bend about easily in any direction, like a serpent. She had just succeeded in curving it down into a graceful zigzag, and was going to dive in among the leaves, which she found to be nothing but the tops of the trees under which she had been wandering, when a sharp hiss made her draw back in a hurry: a large pigeon had flown into her face, and was beating her violently with its wings. 'Serpent!' screamed the Pigeon. 'I'm NOT a serpent!' said Alice indignantly. 'Let me alone!' 'Serpent, I say again!' repeated the Pigeon, but in a more subdued tone, and added with a kind of sob, 'I've tried every way, and nothing seems to suit them!' 'I haven't the least idea what you're talking about,' said Alice. 'I've tried the roots of trees, and I've tried banks, and I've tried hedges,' the Pigeon went on, without attending to her; 'but those serpents! There's no pleasing them!' Alice was more and more puzzled, but she thought there was no use in saying anything more till the Pigeon had finished. 'As if it wasn't trouble enough hatching the eggs,' said the Pigeon; 'but I must be on the look-out for serpents night and day! Why, I haven't had a wink of sleep these three weeks!' 'I'm very sorry you've been annoyed,' said Alice, who was beginning to see its meaning. 'And just as I'd taken the highest tree in the wood,' continued the Pigeon, raising its voice to a shriek, 'and just as I was thinking I should be free of them at last, they must needs come wriggling down from the sky! Ugh, Serpent!' 'But I'm NOT a serpent, I tell you!' said Alice. 'I'm a--I'm a--' 'Well! WHAT are you?' said the Pigeon. 'I can see you're trying to invent something!' 'I--I'm a little girl,' said Alice, rather doubtfully, as she remembered the number of changes she had gone through that day. 'A likely story indeed!' said the Pigeon in a tone of the deepest contempt. 'I've seen a good many little girls in my time, but never ONE with such a neck as that! No, no! You're a serpent; and there's no use denying it. I suppose you'll be telling me next that you never tasted an egg!' 'I HAVE tasted eggs, certainly,' said Alice, who was a very truthful child; 'but little girls eat eggs quite as much as serpents do, you know.' 'I don't believe it,' said the Pigeon; 'but if they do, why then they're a kind of serpent, that's all I can say.' This was such a new idea to Alice, that she was quite silent for a minute or two, which gave the Pigeon the opportunity of adding, 'You're looking for eggs, I know THAT well enough; and what does it matter to me whether you're a little girl or a serpent?' 'It matters a good deal to ME,' said Alice hastily; 'but I'm not looking for eggs, as it happens; and if I was, I shouldn't want YOURS: I don't like them raw.' 'Well, be off, then!' said the Pigeon in a sulky tone, as it settled down again into its nest. Alice crouched down among the trees as well as she could, for her neck kept getting entangled among the branches, and every now and then she had to stop and untwist it. After a while she remembered that she still held the pieces of mushroom in her hands, and she set to work very carefully, nibbling first at one and then at the other, and growing sometimes taller and sometimes shorter, until she had succeeded in bringing herself down to her usual height. It was so long since she had been anything near the right size, that it felt quite strange at first; but she got used to it in a few minutes, and began talking to herself, as usual. 'Come, there's half my plan done now! How puzzling all these changes are! I'm never sure what I'm going to be, from one minute to another! However, I've got back to my right size: the next thing is, to get into that beautiful garden--how IS that to be done, I wonder?' As she said this, she came suddenly upon an open place, with a little house in it about four feet high. 'Whoever lives there,' thought Alice, 'it'll never do to come upon them THIS size: why, I should frighten them out of their wits!' So she began nibbling at the righthand bit again, and did not venture to go near the house till she had brought herself down to nine inches high. !!! CHAPTER VI. Pig and Pepper For a minute or two she stood looking at the house, and wondering what to do next, when suddenly a footman in livery came running out of the wood--(she considered him to be a footman because he was in livery: otherwise, judging by his face only, she would have called him a fish)--and rapped loudly at the door with his knuckles. It was opened by another footman in livery, with a round face, and large eyes like a frog; and both footmen, Alice noticed, had powdered hair that curled all over their heads. She felt very curious to know what it was all about, and crept a little way out of the wood to listen. The Fish-Footman began by producing from under his arm a great letter, nearly as large as himself, and this he handed over to the other, saying, in a solemn tone, 'For the Duchess. An invitation from the Queen to play croquet.' The Frog-Footman repeated, in the same solemn tone, only changing the order of the words a little, 'From the Queen. An invitation for the Duchess to play croquet.' Then they both bowed low, and their curls got entangled together. Alice laughed so much at this, that she had to run back into the wood for fear of their hearing her; and when she next peeped out the Fish-Footman was gone, and the other was sitting on the ground near the door, staring stupidly up into the sky. Alice went timidly up to the door, and knocked. 'There's no sort of use in knocking,' said the Footman, 'and that for two reasons. First, because I'm on the same side of the door as you are; secondly, because they're making such a noise inside, no one could possibly hear you.' And certainly there was a most extraordinary noise going on within--a constant howling and sneezing, and every now and then a great crash, as if a dish or kettle had been broken to pieces. 'Please, then,' said Alice, 'how am I to get in?' 'There might be some sense in your knocking,' the Footman went on without attending to her, 'if we had the door between us. For instance, if you were INSIDE, you might knock, and I could let you out, you know.' He was looking up into the sky all the time he was speaking, and this Alice thought decidedly uncivil. 'But perhaps he can't help it,' she said to herself; 'his eyes are so VERY nearly at the top of his head. But at any rate he might answer questions.--How am I to get in?' she repeated, aloud. 'I shall sit here,' the Footman remarked, 'till tomorrow--' At this moment the door of the house opened, and a large plate came skimming out, straight at the Footman's head: it just grazed his nose, and broke to pieces against one of the trees behind him. '--or next day, maybe,' the Footman continued in the same tone, exactly as if nothing had happened. 'How am I to get in?' asked Alice again, in a louder tone. 'ARE you to get in at all?' said the Footman. 'That's the first question, you know.' It was, no doubt: only Alice did not like to be told so. 'It's really dreadful,' she muttered to herself, 'the way all the creatures argue. It's enough to drive one crazy!' The Footman seemed to think this a good opportunity for repeating his remark, with variations. 'I shall sit here,' he said, 'on and off, for days and days.' 'But what am I to do?' said Alice. 'Anything you like,' said the Footman, and began whistling. 'Oh, there's no use in talking to him,' said Alice desperately: 'he's perfectly idiotic!' And she opened the door and went in. The door led right into a large kitchen, which was full of smoke from one end to the other: the Duchess was sitting on a three-legged stool in the middle, nursing a baby; the cook was leaning over the fire, stirring a large cauldron which seemed to be full of soup. 'There's certainly too much pepper in that soup!' Alice said to herself, as well as she could for sneezing. There was certainly too much of it in the air. Even the Duchess sneezed occasionally; and as for the baby, it was sneezing and howling alternately without a moment's pause. The only things in the kitchen that did not sneeze, were the cook, and a large cat which was sitting on the hearth and grinning from ear to ear. 'Please would you tell me,' said Alice, a little timidly, for she was not quite sure whether it was good manners for her to speak first, 'why your cat grins like that?' 'It's a Cheshire cat,' said the Duchess, 'and that's why. Pig!' She said the last word with such sudden violence that Alice quite jumped; but she saw in another moment that it was addressed to the baby, and not to her, so she took courage, and went on again:-- 'I didn't know that Cheshire cats always grinned; in fact, I didn't know that cats COULD grin.' 'They all can,' said the Duchess; 'and most of 'em do.' 'I don't know of any that do,' Alice said very politely, feeling quite pleased to have got into a conversation. 'You don't know much,' said the Duchess; 'and that's a fact.' Alice did not at all like the tone of this remark, and thought it would be as well to introduce some other subject of conversation. While she was trying to fix on one, the cook took the cauldron of soup off the fire, and at once set to work throwing everything within her reach at the Duchess and the baby--the fire-irons came first; then followed a shower of saucepans, plates, and dishes. The Duchess took no notice of them even when they hit her; and the baby was howling so much already, that it was quite impossible to say whether the blows hurt it or not. 'Oh, PLEASE mind what you're doing!' cried Alice, jumping up and down in an agony of terror. 'Oh, there goes his PRECIOUS nose'; as an unusually large saucepan flew close by it, and very nearly carried it off. 'If everybody minded their own business,' the Duchess said in a hoarse growl, 'the world would go round a deal faster than it does.' 'Which would NOT be an advantage,' said Alice, who felt very glad to get an opportunity of showing off a little of her knowledge. 'Just think of what work it would make with the day and night! You see the earth takes twenty-four hours to turn round on its axis--' 'Talking of axes,' said the Duchess, 'chop off her head!' Alice glanced rather anxiously at the cook, to see if she meant to take the hint; but the cook was busily stirring the soup, and seemed not to be listening, so she went on again: 'Twenty-four hours, I THINK; or is it twelve? I--' 'Oh, don't bother ME,' said the Duchess; 'I never could abide figures!' And with that she began nursing her child again, singing a sort of lullaby to it as she did so, and giving it a violent shake at the end of every line: 'Speak roughly to your little boy, And beat him when he sneezes: He only does it to annoy, Because he knows it teases.' CHORUS. (In which the cook and the baby joined):-- 'Wow! wow! wow!' While the Duchess sang the second verse of the song, she kept tossing the baby violently up and down, and the poor little thing howled so, that Alice could hardly hear the words:-- 'I speak severely to my boy, I beat him when he sneezes; For he can thoroughly enjoy The pepper when he pleases!' CHORUS. 'Wow! wow! wow!' 'Here! you may nurse it a bit, if you like!' the Duchess said to Alice, flinging the baby at her as she spoke. 'I must go and get ready to play croquet with the Queen,' and she hurried out of the room. The cook threw a frying-pan after her as she went out, but it just missed her. Alice caught the baby with some difficulty, as it was a queer-shaped little creature, and held out its arms and legs in all directions, 'just like a star-fish,' thought Alice. The poor little thing was snorting like a steam-engine when she caught it, and kept doubling itself up and straightening itself out again, so that altogether, for the first minute or two, it was as much as she could do to hold it. As soon as she had made out the proper way of nursing it, (which was to twist it up into a sort of knot, and then keep tight hold of its right ear and left foot, so as to prevent its undoing itself,) she carried it out into the open air. 'IF I don't take this child away with me,' thought Alice, 'they're sure to kill it in a day or two: wouldn't it be murder to leave it behind?' She said the last words out loud, and the little thing grunted in reply (it had left off sneezing by this time). 'Don't grunt,' said Alice; 'that's not at all a proper way of expressing yourself.' The baby grunted again, and Alice looked very anxiously into its face to see what was the matter with it. There could be no doubt that it had a VERY turn-up nose, much more like a snout than a real nose; also its eyes were getting extremely small for a baby: altogether Alice did not like the look of the thing at all. 'But perhaps it was only sobbing,' she thought, and looked into its eyes again, to see if there were any tears. No, there were no tears. 'If you're going to turn into a pig, my dear,' said Alice, seriously, 'I'll have nothing more to do with you. Mind now!' The poor little thing sobbed again (or grunted, it was impossible to say which), and they went on for some while in silence. Alice was just beginning to think to herself, 'Now, what am I to do with this creature when I get it home?' when it grunted again, so violently, that she looked down into its face in some alarm. This time there could be NO mistake about it: it was neither more nor less than a pig, and she felt that it would be quite absurd for her to carry it further. So she set the little creature down, and felt quite relieved to see it trot away quietly into the wood. 'If it had grown up,' she said to herself, 'it would have made a dreadfully ugly child: but it makes rather a handsome pig, I think.' And she began thinking over other children she knew, who might do very well as pigs, and was just saying to herself, 'if one only knew the right way to change them--' when she was a little startled by seeing the Cheshire Cat sitting on a bough of a tree a few yards off. The Cat only grinned when it saw Alice. It looked good-natured, she thought: still it had VERY long claws and a great many teeth, so she felt that it ought to be treated with respect. 'Cheshire Puss,' she began, rather timidly, as she did not at all know whether it would like the name: however, it only grinned a little wider. 'Come, it's pleased so far,' thought Alice, and she went on. 'Would you tell me, please, which way I ought to go from here?' 'That depends a good deal on where you want to get to,' said the Cat. 'I don't much care where--' said Alice. 'Then it doesn't matter which way you go,' said the Cat. '--so long as I get SOMEWHERE,' Alice added as an explanation. 'Oh, you're sure to do that,' said the Cat, 'if you only walk long enough.' Alice felt that this could not be denied, so she tried another question. 'What sort of people live about here?' 'In THAT direction,' the Cat said, waving its right paw round, 'lives a Hatter: and in THAT direction,' waving the other paw, 'lives a March Hare. Visit either you like: they're both mad.' 'But I don't want to go among mad people,' Alice remarked. 'Oh, you can't help that,' said the Cat: 'we're all mad here. I'm mad. You're mad.' 'How do you know I'm mad?' said Alice. 'You must be,' said the Cat, 'or you wouldn't have come here.' Alice didn't think that proved it at all; however, she went on 'And how do you know that you're mad?' 'To begin with,' said the Cat, 'a dog's not mad. You grant that?' 'I suppose so,' said Alice. 'Well, then,' the Cat went on, 'you see, a dog growls when it's angry, and wags its tail when it's pleased. Now I growl when I'm pleased, and wag my tail when I'm angry. Therefore I'm mad.' 'I call it purring, not growling,' said Alice. 'Call it what you like,' said the Cat. 'Do you play croquet with the Queen to-day?' 'I should like it very much,' said Alice, 'but I haven't been invited yet.' 'You'll see me there,' said the Cat, and vanished. Alice was not much surprised at this, she was getting so used to queer things happening. While she was looking at the place where it had been, it suddenly appeared again. 'By-the-bye, what became of the baby?' said the Cat. 'I'd nearly forgotten to ask.' 'It turned into a pig,' Alice quietly said, just as if it had come back in a natural way. 'I thought it would,' said the Cat, and vanished again. Alice waited a little, half expecting to see it again, but it did not appear, and after a minute or two she walked on in the direction in which the March Hare was said to live. 'I've seen hatters before,' she said to herself; 'the March Hare will be much the most interesting, and perhaps as this is May it won't be raving mad--at least not so mad as it was in March.' As she said this, she looked up, and there was the Cat again, sitting on a branch of a tree. 'Did you say pig, or fig?' said the Cat. 'I said pig,' replied Alice; 'and I wish you wouldn't keep appearing and vanishing so suddenly: you make one quite giddy.' 'All right,' said the Cat; and this time it vanished quite slowly, beginning with the end of the tail, and ending with the grin, which remained some time after the rest of it had gone. 'Well! I've often seen a cat without a grin,' thought Alice; 'but a grin without a cat! It's the most curious thing I ever saw in my life!' She had not gone much farther before she came in sight of the house of the March Hare: she thought it must be the right house, because the chimneys were shaped like ears and the roof was thatched with fur. It was so large a house, that she did not like to go nearer till she had nibbled some more of the lefthand bit of mushroom, and raised herself to about two feet high: even then she walked up towards it rather timidly, saying to herself 'Suppose it should be raving mad after all! I almost wish I'd gone to see the Hatter instead!' !!! CHAPTER VII. A Mad Tea-Party There was a table set out under a tree in front of the house, and the March Hare and the Hatter were having tea at it: a Dormouse was sitting between them, fast asleep, and the other two were using it as a cushion, resting their elbows on it, and talking over its head. 'Very uncomfortable for the Dormouse,' thought Alice; 'only, as it's asleep, I suppose it doesn't mind.' The table was a large one, but the three were all crowded together at one corner of it: 'No room! No room!' they cried out when they saw Alice coming. 'There's PLENTY of room!' said Alice indignantly, and she sat down in a large arm-chair at one end of the table. 'Have some wine,' the March Hare said in an encouraging tone. Alice looked all round the table, but there was nothing on it but tea. 'I don't see any wine,' she remarked. 'There isn't any,' said the March Hare. 'Then it wasn't very civil of you to offer it,' said Alice angrily. 'It wasn't very civil of you to sit down without being invited,' said the March Hare. 'I didn't know it was YOUR table,' said Alice; 'it's laid for a great many more than three.' 'Your hair wants cutting,' said the Hatter. He had been looking at Alice for some time with great curiosity, and this was his first speech. 'You should learn not to make personal remarks,' Alice said with some severity; 'it's very rude.' The Hatter opened his eyes very wide on hearing this; but all he SAID was, 'Why is a raven like a writing-desk?' 'Come, we shall have some fun now!' thought Alice. 'I'm glad they've begun asking riddles.--I believe I can guess that,' she added aloud. 'Do you mean that you think you can find out the answer to it?' said the March Hare. 'Exactly so,' said Alice. 'Then you should say what you mean,' the March Hare went on. 'I do,' Alice hastily replied; 'at least--at least I mean what I say--that's the same thing, you know.' 'Not the same thing a bit!' said the Hatter. 'You might just as well say that "I see what I eat" is the same thing as "I eat what I see"!' 'You might just as well say,' added the March Hare, 'that "I like what I get" is the same thing as "I get what I like"!' 'You might just as well say,' added the Dormouse, who seemed to be talking in his sleep, 'that "I breathe when I sleep" is the same thing as "I sleep when I breathe"!' 'It IS the same thing with you,' said the Hatter, and here the conversation dropped, and the party sat silent for a minute, while Alice thought over all she could remember about ravens and writing-desks, which wasn't much. The Hatter was the first to break the silence. 'What day of the month is it?' he said, turning to Alice: he had taken his watch out of his pocket, and was looking at it uneasily, shaking it every now and then, and holding it to his ear. Alice considered a little, and then said 'The fourth.' 'Two days wrong!' sighed the Hatter. 'I told you butter wouldn't suit the works!' he added looking angrily at the March Hare. 'It was the BEST butter,' the March Hare meekly replied. 'Yes, but some crumbs must have got in as well,' the Hatter grumbled: 'you shouldn't have put it in with the bread-knife.' The March Hare took the watch and looked at it gloomily: then he dipped it into his cup of tea, and looked at it again: but he could think of nothing better to say than his first remark, 'It was the BEST butter, you know.' Alice had been looking over his shoulder with some curiosity. 'What a funny watch!' she remarked. 'It tells the day of the month, and doesn't tell what o'clock it is!' 'Why should it?' muttered the Hatter. 'Does YOUR watch tell you what year it is?' 'Of course not,' Alice replied very readily: 'but that's because it stays the same year for such a long time together.' 'Which is just the case with MINE,' said the Hatter. Alice felt dreadfully puzzled. The Hatter's remark seemed to have no sort of meaning in it, and yet it was certainly English. 'I don't quite understand you,' she said, as politely as she could. 'The Dormouse is asleep again,' said the Hatter, and he poured a little hot tea upon its nose. The Dormouse shook its head impatiently, and said, without opening its eyes, 'Of course, of course; just what I was going to remark myself.' 'Have you guessed the riddle yet?' the Hatter said, turning to Alice again. 'No, I give it up,' Alice replied: 'what's the answer?' 'I haven't the slightest idea,' said the Hatter. 'Nor I,' said the March Hare. Alice sighed wearily. 'I think you might do something better with the time,' she said, 'than waste it in asking riddles that have no answers.' 'If you knew Time as well as I do,' said the Hatter, 'you wouldn't talk about wasting IT. It's HIM.' 'I don't know what you mean,' said Alice. 'Of course you don't!' the Hatter said, tossing his head contemptuously. 'I dare say you never even spoke to Time!' 'Perhaps not,' Alice cautiously replied: 'but I know I have to beat time when I learn music.' 'Ah! that accounts for it,' said the Hatter. 'He won't stand beating. Now, if you only kept on good terms with him, he'd do almost anything you liked with the clock. For instance, suppose it were nine o'clock in the morning, just time to begin lessons: you'd only have to whisper a hint to Time, and round goes the clock in a twinkling! Half-past one, time for dinner!' ('I only wish it was,' the March Hare said to itself in a whisper.) 'That would be grand, certainly,' said Alice thoughtfully: 'but then--I shouldn't be hungry for it, you know.' 'Not at first, perhaps,' said the Hatter: 'but you could keep it to half-past one as long as you liked.' 'Is that the way YOU manage?' Alice asked. The Hatter shook his head mournfully. 'Not I!' he replied. 'We quarrelled last March--just before HE went mad, you know--' (pointing with his tea spoon at the March Hare,) '--it was at the great concert given by the Queen of Hearts, and I had to sing "Twinkle, twinkle, little bat! How I wonder what you're at!" You know the song, perhaps?' 'I've heard something like it,' said Alice. 'It goes on, you know,' the Hatter continued, 'in this way:-- "Up above the world you fly, Like a tea-tray in the sky. Twinkle, twinkle--"' Here the Dormouse shook itself, and began singing in its sleep 'Twinkle, twinkle, twinkle, twinkle--' and went on so long that they had to pinch it to make it stop. 'Well, I'd hardly finished the first verse,' said the Hatter, 'when the Queen jumped up and bawled out, "He's murdering the time! Off with his head!"' 'How dreadfully savage!' exclaimed Alice. 'And ever since that,' the Hatter went on in a mournful tone, 'he won't do a thing I ask! It's always six o'clock now.' A bright idea came into Alice's head. 'Is that the reason so many tea-things are put out here?' she asked. 'Yes, that's it,' said the Hatter with a sigh: 'it's always tea-time, and we've no time to wash the things between whiles.' 'Then you keep moving round, I suppose?' said Alice. 'Exactly so,' said the Hatter: 'as the things get used up.' 'But what happens when you come to the beginning again?' Alice ventured to ask. 'Suppose we change the subject,' the March Hare interrupted, yawning. 'I'm getting tired of this. I vote the young lady tells us a story.' 'I'm afraid I don't know one,' said Alice, rather alarmed at the proposal. 'Then the Dormouse shall!' they both cried. 'Wake up, Dormouse!' And they pinched it on both sides at once. The Dormouse slowly opened his eyes. 'I wasn't asleep,' he said in a hoarse, feeble voice: 'I heard every word you fellows were saying.' 'Tell us a story!' said the March Hare. 'Yes, please do!' pleaded Alice. 'And be quick about it,' added the Hatter, 'or you'll be asleep again before it's done.' 'Once upon a time there were three little sisters,' the Dormouse began in a great hurry; 'and their names were Elsie, Lacie, and Tillie; and they lived at the bottom of a well--' 'What did they live on?' said Alice, who always took a great interest in questions of eating and drinking. 'They lived on treacle,' said the Dormouse, after thinking a minute or two. 'They couldn't have done that, you know,' Alice gently remarked; 'they'd have been ill.' 'So they were,' said the Dormouse; 'VERY ill.' Alice tried to fancy to herself what such an extraordinary ways of living would be like, but it puzzled her too much, so she went on: 'But why did they live at the bottom of a well?' 'Take some more tea,' the March Hare said to Alice, very earnestly. 'I've had nothing yet,' Alice replied in an offended tone, 'so I can't take more.' 'You mean you can't take LESS,' said the Hatter: 'it's very easy to take MORE than nothing.' 'Nobody asked YOUR opinion,' said Alice. 'Who's making personal remarks now?' the Hatter asked triumphantly. Alice did not quite know what to say to this: so she helped herself to some tea and bread-and-butter, and then turned to the Dormouse, and repeated her question. 'Why did they live at the bottom of a well?' The Dormouse again took a minute or two to think about it, and then said, 'It was a treacle-well.' 'There's no such thing!' Alice was beginning very angrily, but the Hatter and the March Hare went 'Sh! sh!' and the Dormouse sulkily remarked, 'If you can't be civil, you'd better finish the story for yourself.' 'No, please go on!' Alice said very humbly; 'I won't interrupt again. I dare say there may be ONE.' 'One, indeed!' said the Dormouse indignantly. However, he consented to go on. 'And so these three little sisters--they were learning to draw, you know--' 'What did they draw?' said Alice, quite forgetting her promise. 'Treacle,' said the Dormouse, without considering at all this time. 'I want a clean cup,' interrupted the Hatter: 'let's all move one place on.' He moved on as he spoke, and the Dormouse followed him: the March Hare moved into the Dormouse's place, and Alice rather unwillingly took the place of the March Hare. The Hatter was the only one who got any advantage from the change: and Alice was a good deal worse off than before, as the March Hare had just upset the milk-jug into his plate. Alice did not wish to offend the Dormouse again, so she began very cautiously: 'But I don't understand. Where did they draw the treacle from?' 'You can draw water out of a water-well,' said the Hatter; 'so I should think you could draw treacle out of a treacle-well--eh, stupid?' 'But they were IN the well,' Alice said to the Dormouse, not choosing to notice this last remark. 'Of course they were', said the Dormouse; '--well in.' This answer so confused poor Alice, that she let the Dormouse go on for some time without interrupting it. 'They were learning to draw,' the Dormouse went on, yawning and rubbing its eyes, for it was getting very sleepy; 'and they drew all manner of things--everything that begins with an M--' 'Why with an M?' said Alice. 'Why not?' said the March Hare. Alice was silent. The Dormouse had closed its eyes by this time, and was going off into a doze; but, on being pinched by the Hatter, it woke up again with a little shriek, and went on: '--that begins with an M, such as mouse-traps, and the moon, and memory, and muchness--you know you say things are "much of a muchness"--did you ever see such a thing as a drawing of a muchness?' 'Really, now you ask me,' said Alice, very much confused, 'I don't think--' 'Then you shouldn't talk,' said the Hatter. This piece of rudeness was more than Alice could bear: she got up in great disgust, and walked off; the Dormouse fell asleep instantly, and neither of the others took the least notice of her going, though she looked back once or twice, half hoping that they would call after her: the last time she saw them, they were trying to put the Dormouse into the teapot. 'At any rate I'll never go THERE again!' said Alice as she picked her way through the wood. 'It's the stupidest tea-party I ever was at in all my life!' Just as she said this, she noticed that one of the trees had a door leading right into it. 'That's very curious!' she thought. 'But everything's curious today. I think I may as well go in at once.' And in she went. Once more she found herself in the long hall, and close to the little glass table. 'Now, I'll manage better this time,' she said to herself, and began by taking the little golden key, and unlocking the door that led into the garden. Then she went to work nibbling at the mushroom (she had kept a piece of it in her pocket) till she was about a foot high: then she walked down the little passage: and THEN--she found herself at last in the beautiful garden, among the bright flower-beds and the cool fountains. !!! CHAPTER VIII. The Queen's Croquet-Ground A large rose-tree stood near the entrance of the garden: the roses growing on it were white, but there were three gardeners at it, busily painting them red. Alice thought this a very curious thing, and she went nearer to watch them, and just as she came up to them she heard one of them say, 'Look out now, Five! Don't go splashing paint over me like that!' 'I couldn't help it,' said Five, in a sulky tone; 'Seven jogged my elbow.' On which Seven looked up and said, 'That's right, Five! Always lay the blame on others!' 'YOU'D better not talk!' said Five. 'I heard the Queen say only yesterday you deserved to be beheaded!' 'What for?' said the one who had spoken first. 'That's none of YOUR business, Two!' said Seven. 'Yes, it IS his business!' said Five, 'and I'll tell him--it was for bringing the cook tulip-roots instead of onions.' Seven flung down his brush, and had just begun 'Well, of all the unjust things--' when his eye chanced to fall upon Alice, as she stood watching them, and he checked himself suddenly: the others looked round also, and all of them bowed low. 'Would you tell me,' said Alice, a little timidly, 'why you are painting those roses?' Five and Seven said nothing, but looked at Two. Two began in a low voice, 'Why the fact is, you see, Miss, this here ought to have been a RED rose-tree, and we put a white one in by mistake; and if the Queen was to find it out, we should all have our heads cut off, you know. So you see, Miss, we're doing our best, afore she comes, to--' At this moment Five, who had been anxiously looking across the garden, called out 'The Queen! The Queen!' and the three gardeners instantly threw themselves flat upon their faces. There was a sound of many footsteps, and Alice looked round, eager to see the Queen. First came ten soldiers carrying clubs; these were all shaped like the three gardeners, oblong and flat, with their hands and feet at the corners: next the ten courtiers; these were ornamented all over with diamonds, and walked two and two, as the soldiers did. After these came the royal children; there were ten of them, and the little dears came jumping merrily along hand in hand, in couples: they were all ornamented with hearts. Next came the guests, mostly Kings and Queens, and among them Alice recognised the White Rabbit: it was talking in a hurried nervous manner, smiling at everything that was said, and went by without noticing her. Then followed the Knave of Hearts, carrying the King's crown on a crimson velvet cushion; and, last of all this grand procession, came THE KING AND QUEEN OF HEARTS. Alice was rather doubtful whether she ought not to lie down on her face like the three gardeners, but she could not remember ever having heard of such a rule at processions; 'and besides, what would be the use of a procession,' thought she, 'if people had all to lie down upon their faces, so that they couldn't see it?' So she stood still where she was, and waited. When the procession came opposite to Alice, they all stopped and looked at her, and the Queen said severely 'Who is this?' She said it to the Knave of Hearts, who only bowed and smiled in reply. 'Idiot!' said the Queen, tossing her head impatiently; and, turning to Alice, she went on, 'What's your name, child?' 'My name is Alice, so please your Majesty,' said Alice very politely; but she added, to herself, 'Why, they're only a pack of cards, after all. I needn't be afraid of them!' 'And who are THESE?' said the Queen, pointing to the three gardeners who were lying round the rosetree; for, you see, as they were lying on their faces, and the pattern on their backs was the same as the rest of the pack, she could not tell whether they were gardeners, or soldiers, or courtiers, or three of her own children. 'How should I know?' said Alice, surprised at her own courage. 'It's no business of MINE.' The Queen turned crimson with fury, and, after glaring at her for a moment like a wild beast, screamed 'Off with her head! Off--' 'Nonsense!' said Alice, very loudly and decidedly, and the Queen was silent. The King laid his hand upon her arm, and timidly said 'Consider, my dear: she is only a child!' The Queen turned angrily away from him, and said to the Knave 'Turn them over!' The Knave did so, very carefully, with one foot. 'Get up!' said the Queen, in a shrill, loud voice, and the three gardeners instantly jumped up, and began bowing to the King, the Queen, the royal children, and everybody else. 'Leave off that!' screamed the Queen. 'You make me giddy.' And then, turning to the rose-tree, she went on, 'What HAVE you been doing here?' 'May it please your Majesty,' said Two, in a very humble tone, going down on one knee as he spoke, 'we were trying--' 'I see!' said the Queen, who had meanwhile been examining the roses. 'Off with their heads!' and the procession moved on, three of the soldiers remaining behind to execute the unfortunate gardeners, who ran to Alice for protection. 'You shan't be beheaded!' said Alice, and she put them into a large flower-pot that stood near. The three soldiers wandered about for a minute or two, looking for them, and then quietly marched off after the others. 'Are their heads off?' shouted the Queen. 'Their heads are gone, if it please your Majesty!' the soldiers shouted in reply. 'That's right!' shouted the Queen. 'Can you play croquet?' The soldiers were silent, and looked at Alice, as the question was evidently meant for her. 'Yes!' shouted Alice. 'Come on, then!' roared the Queen, and Alice joined the procession, wondering very much what would happen next. 'It's--it's a very fine day!' said a timid voice at her side. She was walking by the White Rabbit, who was peeping anxiously into her face. 'Very,' said Alice: '--where's the Duchess?' 'Hush! Hush!' said the Rabbit in a low, hurried tone. He looked anxiously over his shoulder as he spoke, and then raised himself upon tiptoe, put his mouth close to her ear, and whispered 'She's under sentence of execution.' 'What for?' said Alice. 'Did you say "What a pity!"?' the Rabbit asked. 'No, I didn't,' said Alice: 'I don't think it's at all a pity. I said "What for?"' 'She boxed the Queen's ears--' the Rabbit began. Alice gave a little scream of laughter. 'Oh, hush!' the Rabbit whispered in a frightened tone. 'The Queen will hear you! You see, she came rather late, and the Queen said--' 'Get to your places!' shouted the Queen in a voice of thunder, and people began running about in all directions, tumbling up against each other; however, they got settled down in a minute or two, and the game began. Alice thought she had never seen such a curious croquet-ground in her life; it was all ridges and furrows; the balls were live hedgehogs, the mallets live flamingoes, and the soldiers had to double themselves up and to stand on their hands and feet, to make the arches. The chief difficulty Alice found at first was in managing her flamingo: she succeeded in getting its body tucked away, comfortably enough, under her arm, with its legs hanging down, but generally, just as she had got its neck nicely straightened out, and was going to give the hedgehog a blow with its head, it WOULD twist itself round and look up in her face, with such a puzzled expression that she could not help bursting out laughing: and when she had got its head down, and was going to begin again, it was very provoking to find that the hedgehog had unrolled itself, and was in the act of crawling away: besides all this, there was generally a ridge or furrow in the way wherever she wanted to send the hedgehog to, and, as the doubled-up soldiers were always getting up and walking off to other parts of the ground, Alice soon came to the conclusion that it was a very difficult game indeed. The players all played at once without waiting for turns, quarrelling all the while, and fighting for the hedgehogs; and in a very short time the Queen was in a furious passion, and went stamping about, and shouting 'Off with his head!' or 'Off with her head!' about once in a minute. Alice began to feel very uneasy: to be sure, she had not as yet had any dispute with the Queen, but she knew that it might happen any minute, 'and then,' thought she, 'what would become of me? They're dreadfully fond of beheading people here; the great wonder is, that there's any one left alive!' She was looking about for some way of escape, and wondering whether she could get away without being seen, when she noticed a curious appearance in the air: it puzzled her very much at first, but, after watching it a minute or two, she made it out to be a grin, and she said to herself 'It's the Cheshire Cat: now I shall have somebody to talk to.' 'How are you getting on?' said the Cat, as soon as there was mouth enough for it to speak with. Alice waited till the eyes appeared, and then nodded. 'It's no use speaking to it,' she thought, 'till its ears have come, or at least one of them.' In another minute the whole head appeared, and then Alice put down her flamingo, and began an account of the game, feeling very glad she had someone to listen to her. The Cat seemed to think that there was enough of it now in sight, and no more of it appeared. 'I don't think they play at all fairly,' Alice began, in rather a complaining tone, 'and they all quarrel so dreadfully one can't hear oneself speak--and they don't seem to have any rules in particular; at least, if there are, nobody attends to them--and you've no idea how confusing it is all the things being alive; for instance, there's the arch I've got to go through next walking about at the other end of the ground--and I should have croqueted the Queen's hedgehog just now, only it ran away when it saw mine coming!' 'How do you like the Queen?' said the Cat in a low voice. 'Not at all,' said Alice: 'she's so extremely--' Just then she noticed that the Queen was close behind her, listening: so she went on, '--likely to win, that it's hardly worth while finishing the game.' The Queen smiled and passed on. 'Who ARE you talking to?' said the King, going up to Alice, and looking at the Cat's head with great curiosity. 'It's a friend of mine--a Cheshire Cat,' said Alice: 'allow me to introduce it.' 'I don't like the look of it at all,' said the King: 'however, it may kiss my hand if it likes.' 'I'd rather not,' the Cat remarked. 'Don't be impertinent,' said the King, 'and don't look at me like that!' He got behind Alice as he spoke. 'A cat may look at a king,' said Alice. 'I've read that in some book, but I don't remember where.' 'Well, it must be removed,' said the King very decidedly, and he called the Queen, who was passing at the moment, 'My dear! I wish you would have this cat removed!' The Queen had only one way of settling all difficulties, great or small. 'Off with his head!' she said, without even looking round. 'I'll fetch the executioner myself,' said the King eagerly, and he hurried off. Alice thought she might as well go back, and see how the game was going on, as she heard the Queen's voice in the distance, screaming with passion. She had already heard her sentence three of the players to be executed for having missed their turns, and she did not like the look of things at all, as the game was in such confusion that she never knew whether it was her turn or not. So she went in search of her hedgehog. The hedgehog was engaged in a fight with another hedgehog, which seemed to Alice an excellent opportunity for croqueting one of them with the other: the only difficulty was, that her flamingo was gone across to the other side of the garden, where Alice could see it trying in a helpless sort of way to fly up into a tree. By the time she had caught the flamingo and brought it back, the fight was over, and both the hedgehogs were out of sight: 'but it doesn't matter much,' thought Alice, 'as all the arches are gone from this side of the ground.' So she tucked it away under her arm, that it might not escape again, and went back for a little more conversation with her friend. When she got back to the Cheshire Cat, she was surprised to find quite a large crowd collected round it: there was a dispute going on between the executioner, the King, and the Queen, who were all talking at once, while all the rest were quite silent, and looked very uncomfortable. The moment Alice appeared, she was appealed to by all three to settle the question, and they repeated their arguments to her, though, as they all spoke at once, she found it very hard indeed to make out exactly what they said. The executioner's argument was, that you couldn't cut off a head unless there was a body to cut it off from: that he had never had to do such a thing before, and he wasn't going to begin at HIS time of life. The King's argument was, that anything that had a head could be beheaded, and that you weren't to talk nonsense. The Queen's argument was, that if something wasn't done about it in less than no time she'd have everybody executed, all round. (It was this last remark that had made the whole party look so grave and anxious.) Alice could think of nothing else to say but 'It belongs to the Duchess: you'd better ask HER about it.' 'She's in prison,' the Queen said to the executioner: 'fetch her here.' And the executioner went off like an arrow. The Cat's head began fading away the moment he was gone, and, by the time he had come back with the Duchess, it had entirely disappeared; so the King and the executioner ran wildly up and down looking for it, while the rest of the party went back to the game. !!! CHAPTER IX. The Mock Turtle's Story 'You can't think how glad I am to see you again, you dear old thing!' said the Duchess, as she tucked her arm affectionately into Alice's, and they walked off together. Alice was very glad to find her in such a pleasant temper, and thought to herself that perhaps it was only the pepper that had made her so savage when they met in the kitchen. 'When I'M a Duchess,' she said to herself, (not in a very hopeful tone though), 'I won't have any pepper in my kitchen AT ALL. Soup does very well without--Maybe it's always pepper that makes people hot-tempered,' she went on, very much pleased at having found out a new kind of rule, 'and vinegar that makes them sour--and camomile that makes them bitter--and--and barley-sugar and such things that make children sweet-tempered. I only wish people knew that: then they wouldn't be so stingy about it, you know--' She had quite forgotten the Duchess by this time, and was a little startled when she heard her voice close to her ear. 'You're thinking about something, my dear, and that makes you forget to talk. I can't tell you just now what the moral of that is, but I shall remember it in a bit.' 'Perhaps it hasn't one,' Alice ventured to remark. 'Tut, tut, child!' said the Duchess. 'Everything's got a moral, if only you can find it.' And she squeezed herself up closer to Alice's side as she spoke. Alice did not much like keeping so close to her: first, because the Duchess was VERY ugly; and secondly, because she was exactly the right height to rest her chin upon Alice's shoulder, and it was an uncomfortably sharp chin. However, she did not like to be rude, so she bore it as well as she could. 'The game's going on rather better now,' she said, by way of keeping up the conversation a little. ''Tis so,' said the Duchess: 'and the moral of that is--"Oh, 'tis love, 'tis love, that makes the world go round!"' 'Somebody said,' Alice whispered, 'that it's done by everybody minding their own business!' 'Ah, well! It means much the same thing,' said the Duchess, digging her sharp little chin into Alice's shoulder as she added, 'and the moral of THAT is--"Take care of the sense, and the sounds will take care of themselves."' 'How fond she is of finding morals in things!' Alice thought to herself. 'I dare say you're wondering why I don't put my arm round your waist,' the Duchess said after a pause: 'the reason is, that I'm doubtful about the temper of your flamingo. Shall I try the experiment?' 'HE might bite,' Alice cautiously replied, not feeling at all anxious to have the experiment tried. 'Very true,' said the Duchess: 'flamingoes and mustard both bite. And the moral of that is--"Birds of a feather flock together."' 'Only mustard isn't a bird,' Alice remarked. 'Right, as usual,' said the Duchess: 'what a clear way you have of putting things!' 'It's a mineral, I THINK,' said Alice. 'Of course it is,' said the Duchess, who seemed ready to agree to everything that Alice said; 'there's a large mustard-mine near here. And the moral of that is--"The more there is of mine, the less there is of yours."' 'Oh, I know!' exclaimed Alice, who had not attended to this last remark, 'it's a vegetable. It doesn't look like one, but it is.' 'I quite agree with you,' said the Duchess; 'and the moral of that is--"Be what you would seem to be"--or if you'd like it put more simply--"Never imagine yourself not to be otherwise than what it might appear to others that what you were or might have been was not otherwise than what you had been would have appeared to them to be otherwise."' 'I think I should understand that better,' Alice said very politely, 'if I had it written down: but I can't quite follow it as you say it.' 'That's nothing to what I could say if I chose,' the Duchess replied, in a pleased tone. 'Pray don't trouble yourself to say it any longer than that,' said Alice. 'Oh, don't talk about trouble!' said the Duchess. 'I make you a present of everything I've said as yet.' 'A cheap sort of present!' thought Alice. 'I'm glad they don't give birthday presents like that!' But she did not venture to say it out loud. 'Thinking again?' the Duchess asked, with another dig of her sharp little chin. 'I've a right to think,' said Alice sharply, for she was beginning to feel a little worried. 'Just about as much right,' said the Duchess, 'as pigs have to fly; and the m--' But here, to Alice's great surprise, the Duchess's voice died away, even in the middle of her favourite word 'moral,' and the arm that was linked into hers began to tremble. Alice looked up, and there stood the Queen in front of them, with her arms folded, frowning like a thunderstorm. 'A fine day, your Majesty!' the Duchess began in a low, weak voice. 'Now, I give you fair warning,' shouted the Queen, stamping on the ground as she spoke; 'either you or your head must be off, and that in about half no time! Take your choice!' The Duchess took her choice, and was gone in a moment. 'Let's go on with the game,' the Queen said to Alice; and Alice was too much frightened to say a word, but slowly followed her back to the croquet-ground. The other guests had taken advantage of the Queen's absence, and were resting in the shade: however, the moment they saw her, they hurried back to the game, the Queen merely remarking that a moment's delay would cost them their lives. All the time they were playing the Queen never left off quarrelling with the other players, and shouting 'Off with his head!' or 'Off with her head!' Those whom she sentenced were taken into custody by the soldiers, who of course had to leave off being arches to do this, so that by the end of half an hour or so there were no arches left, and all the players, except the King, the Queen, and Alice, were in custody and under sentence of execution. Then the Queen left off, quite out of breath, and said to Alice, 'Have you seen the Mock Turtle yet?' 'No,' said Alice. 'I don't even know what a Mock Turtle is.' 'It's the thing Mock Turtle Soup is made from,' said the Queen. 'I never saw one, or heard of one,' said Alice. 'Come on, then,' said the Queen, 'and he shall tell you his history,' As they walked off together, Alice heard the King say in a low voice, to the company generally, 'You are all pardoned.' 'Come, THAT'S a good thing!' she said to herself, for she had felt quite unhappy at the number of executions the Queen had ordered. They very soon came upon a Gryphon, lying fast asleep in the sun. (IF you don't know what a Gryphon is, look at the picture.) 'Up, lazy thing!' said the Queen, 'and take this young lady to see the Mock Turtle, and to hear his history. I must go back and see after some executions I have ordered'; and she walked off, leaving Alice alone with the Gryphon. Alice did not quite like the look of the creature, but on the whole she thought it would be quite as safe to stay with it as to go after that savage Queen: so she waited. The Gryphon sat up and rubbed its eyes: then it watched the Queen till she was out of sight: then it chuckled. 'What fun!' said the Gryphon, half to itself, half to Alice. 'What IS the fun?' said Alice. 'Why, SHE,' said the Gryphon. 'It's all her fancy, that: they never executes nobody, you know. Come on!' 'Everybody says "come on!" here,' thought Alice, as she went slowly after it: 'I never was so ordered about in all my life, never!' They had not gone far before they saw the Mock Turtle in the distance, sitting sad and lonely on a little ledge of rock, and, as they came nearer, Alice could hear him sighing as if his heart would break. She pitied him deeply. 'What is his sorrow?' she asked the Gryphon, and the Gryphon answered, very nearly in the same words as before, 'It's all his fancy, that: he hasn't got no sorrow, you know. Come on!' So they went up to the Mock Turtle, who looked at them with large eyes full of tears, but said nothing. 'This here young lady,' said the Gryphon, 'she wants for to know your history, she do.' 'I'll tell it her,' said the Mock Turtle in a deep, hollow tone: 'sit down, both of you, and don't speak a word till I've finished.' So they sat down, and nobody spoke for some minutes. Alice thought to herself, 'I don't see how he can EVEN finish, if he doesn't begin.' But she waited patiently. 'Once,' said the Mock Turtle at last, with a deep sigh, 'I was a real Turtle.' These words were followed by a very long silence, broken only by an occasional exclamation of 'Hjckrrh!' from the Gryphon, and the constant heavy sobbing of the Mock Turtle. Alice was very nearly getting up and saying, 'Thank you, sir, for your interesting story,' but she could not help thinking there MUST be more to come, so she sat still and said nothing. 'When we were little,' the Mock Turtle went on at last, more calmly, though still sobbing a little now and then, 'we went to school in the sea. The master was an old Turtle--we used to call him Tortoise--' 'Why did you call him Tortoise, if he wasn't one?' Alice asked. 'We called him Tortoise because he taught us,' said the Mock Turtle angrily: 'really you are very dull!' 'You ought to be ashamed of yourself for asking such a simple question,' added the Gryphon; and then they both sat silent and looked at poor Alice, who felt ready to sink into the earth. At last the Gryphon said to the Mock Turtle, 'Drive on, old fellow! Don't be all day about it!' and he went on in these words: 'Yes, we went to school in the sea, though you mayn't believe it--' 'I never said I didn't!' interrupted Alice. 'You did,' said the Mock Turtle. 'Hold your tongue!' added the Gryphon, before Alice could speak again. The Mock Turtle went on. 'We had the best of educations--in fact, we went to school every day--' 'I'VE been to a day-school, too,' said Alice; 'you needn't be so proud as all that.' 'With extras?' asked the Mock Turtle a little anxiously. 'Yes,' said Alice, 'we learned French and music.' 'And washing?' said the Mock Turtle. 'Certainly not!' said Alice indignantly. 'Ah! then yours wasn't a really good school,' said the Mock Turtle in a tone of great relief. 'Now at OURS they had at the end of the bill, "French, music, AND WASHING--extra."' 'You couldn't have wanted it much,' said Alice; 'living at the bottom of the sea.' 'I couldn't afford to learn it.' said the Mock Turtle with a sigh. 'I only took the regular course.' 'What was that?' inquired Alice. 'Reeling and Writhing, of course, to begin with,' the Mock Turtle replied; 'and then the different branches of Arithmetic--Ambition, Distraction, Uglification, and Derision.' 'I never heard of "Uglification,"' Alice ventured to say. 'What is it?' The Gryphon lifted up both its paws in surprise. 'What! Never heard of uglifying!' it exclaimed. 'You know what to beautify is, I suppose?' 'Yes,' said Alice doubtfully: 'it means--to--make--anything--prettier.' 'Well, then,' the Gryphon went on, 'if you don't know what to uglify is, you ARE a simpleton.' Alice did not feel encouraged to ask any more questions about it, so she turned to the Mock Turtle, and said 'What else had you to learn?' 'Well, there was Mystery,' the Mock Turtle replied, counting off the subjects on his flappers, '--Mystery, ancient and modern, with Seaography: then Drawling--the Drawling-master was an old conger-eel, that used to come once a week: HE taught us Drawling, Stretching, and Fainting in Coils.' 'What was THAT like?' said Alice. 'Well, I can't show it you myself,' the Mock Turtle said: 'I'm too stiff. And the Gryphon never learnt it.' 'Hadn't time,' said the Gryphon: 'I went to the Classics master, though. He was an old crab, HE was.' 'I never went to him,' the Mock Turtle said with a sigh: 'he taught Laughing and Grief, they used to say.' 'So he did, so he did,' said the Gryphon, sighing in his turn; and both creatures hid their faces in their paws. 'And how many hours a day did you do lessons?' said Alice, in a hurry to change the subject. 'Ten hours the first day,' said the Mock Turtle: 'nine the next, and so on.' 'What a curious plan!' exclaimed Alice. 'That's the reason they're called lessons,' the Gryphon remarked: 'because they lessen from day to day.' This was quite a new idea to Alice, and she thought it over a little before she made her next remark. 'Then the eleventh day must have been a holiday?' 'Of course it was,' said the Mock Turtle. 'And how did you manage on the twelfth?' Alice went on eagerly. 'That's enough about lessons,' the Gryphon interrupted in a very decided tone: 'tell her something about the games now.' !!! CHAPTER X. The Lobster Quadrille The Mock Turtle sighed deeply, and drew the back of one flapper across his eyes. He looked at Alice, and tried to speak, but for a minute or two sobs choked his voice. 'Same as if he had a bone in his throat,' said the Gryphon: and it set to work shaking him and punching him in the back. At last the Mock Turtle recovered his voice, and, with tears running down his cheeks, he went on again:-- 'You may not have lived much under the sea--' ('I haven't,' said Alice)--'and perhaps you were never even introduced to a lobster--' (Alice began to say 'I once tasted--' but checked herself hastily, and said 'No, never') '--so you can have no idea what a delightful thing a Lobster Quadrille is!' 'No, indeed,' said Alice. 'What sort of a dance is it?' 'Why,' said the Gryphon, 'you first form into a line along the sea-shore--' 'Two lines!' cried the Mock Turtle. 'Seals, turtles, salmon, and so on; then, when you've cleared all the jelly-fish out of the way--' 'THAT generally takes some time,' interrupted the Gryphon. '--you advance twice--' 'Each with a lobster as a partner!' cried the Gryphon. 'Of course,' the Mock Turtle said: 'advance twice, set to partners--' '--change lobsters, and retire in same order,' continued the Gryphon. 'Then, you know,' the Mock Turtle went on, 'you throw the--' 'The lobsters!' shouted the Gryphon, with a bound into the air. '--as far out to sea as you can--' 'Swim after them!' screamed the Gryphon. 'Turn a somersault in the sea!' cried the Mock Turtle, capering wildly about. 'Change lobsters again!' yelled the Gryphon at the top of its voice. 'Back to land again, and that's all the first figure,' said the Mock Turtle, suddenly dropping his voice; and the two creatures, who had been jumping about like mad things all this time, sat down again very sadly and quietly, and looked at Alice. 'It must be a very pretty dance,' said Alice timidly. 'Would you like to see a little of it?' said the Mock Turtle. 'Very much indeed,' said Alice. 'Come, let's try the first figure!' said the Mock Turtle to the Gryphon. 'We can do without lobsters, you know. Which shall sing?' 'Oh, YOU sing,' said the Gryphon. 'I've forgotten the words.' So they began solemnly dancing round and round Alice, every now and then treading on her toes when they passed too close, and waving their forepaws to mark the time, while the Mock Turtle sang this, very slowly and sadly:-- '"Will you walk a little faster?" said a whiting to a snail. "There's a porpoise close behind us, and he's treading on my tail. See how eagerly the lobsters and the turtles all advance! They are waiting on the shingle--will you come and join the dance? Will you, won't you, will you, won't you, will you join the dance? Will you, won't you, will you, won't you, won't you join the dance? "You can really have no notion how delightful it will be When they take us up and throw us, with the lobsters, out to sea!" But the snail replied "Too far, too far!" and gave a look askance-- Said he thanked the whiting kindly, but he would not join the dance. Would not, could not, would not, could not, would not join the dance. Would not, could not, would not, could not, could not join the dance. '"What matters it how far we go?" his scaly friend replied. "There is another shore, you know, upon the other side. The further off from England the nearer is to France-- Then turn not pale, beloved snail, but come and join the dance. Will you, won't you, will you, won't you, will you join the dance? Will you, won't you, will you, won't you, won't you join the dance?"' 'Thank you, it's a very interesting dance to watch,' said Alice, feeling very glad that it was over at last: 'and I do so like that curious song about the whiting!' 'Oh, as to the whiting,' said the Mock Turtle, 'they--you've seen them, of course?' 'Yes,' said Alice, 'I've often seen them at dinn--' she checked herself hastily. 'I don't know where Dinn may be,' said the Mock Turtle, 'but if you've seen them so often, of course you know what they're like.' 'I believe so,' Alice replied thoughtfully. 'They have their tails in their mouths--and they're all over crumbs.' 'You're wrong about the crumbs,' said the Mock Turtle: 'crumbs would all wash off in the sea. But they HAVE their tails in their mouths; and the reason is--' here the Mock Turtle yawned and shut his eyes.--'Tell her about the reason and all that,' he said to the Gryphon. 'The reason is,' said the Gryphon, 'that they WOULD go with the lobsters to the dance. So they got thrown out to sea. So they had to fall a long way. So they got their tails fast in their mouths. So they couldn't get them out again. That's all.' 'Thank you,' said Alice, 'it's very interesting. I never knew so much about a whiting before.' 'I can tell you more than that, if you like,' said the Gryphon. 'Do you know why it's called a whiting?' 'I never thought about it,' said Alice. 'Why?' 'IT DOES THE BOOTS AND SHOES.' the Gryphon replied very solemnly. Alice was thoroughly puzzled. 'Does the boots and shoes!' she repeated in a wondering tone. 'Why, what are YOUR shoes done with?' said the Gryphon. 'I mean, what makes them so shiny?' Alice looked down at them, and considered a little before she gave her answer. 'They're done with blacking, I believe.' 'Boots and shoes under the sea,' the Gryphon went on in a deep voice, 'are done with a whiting. Now you know.' 'And what are they made of?' Alice asked in a tone of great curiosity. 'Soles and eels, of course,' the Gryphon replied rather impatiently: 'any shrimp could have told you that.' 'If I'd been the whiting,' said Alice, whose thoughts were still running on the song, 'I'd have said to the porpoise, "Keep back, please: we don't want YOU with us!"' 'They were obliged to have him with them,' the Mock Turtle said: 'no wise fish would go anywhere without a porpoise.' 'Wouldn't it really?' said Alice in a tone of great surprise. 'Of course not,' said the Mock Turtle: 'why, if a fish came to ME, and told me he was going a journey, I should say "With what porpoise?"' 'Don't you mean "purpose"?' said Alice. 'I mean what I say,' the Mock Turtle replied in an offended tone. And the Gryphon added 'Come, let's hear some of YOUR adventures.' 'I could tell you my adventures--beginning from this morning,' said Alice a little timidly: 'but it's no use going back to yesterday, because I was a different person then.' 'Explain all that,' said the Mock Turtle. 'No, no! The adventures first,' said the Gryphon in an impatient tone: 'explanations take such a dreadful time.' So Alice began telling them her adventures from the time when she first saw the White Rabbit. She was a little nervous about it just at first, the two creatures got so close to her, one on each side, and opened their eyes and mouths so VERY wide, but she gained courage as she went on. Her listeners were perfectly quiet till she got to the part about her repeating 'YOU ARE OLD, FATHER WILLIAM,' to the Caterpillar, and the words all coming different, and then the Mock Turtle drew a long breath, and said 'That's very curious.' 'It's all about as curious as it can be,' said the Gryphon. 'It all came different!' the Mock Turtle repeated thoughtfully. 'I should like to hear her try and repeat something now. Tell her to begin.' He looked at the Gryphon as if he thought it had some kind of authority over Alice. 'Stand up and repeat "'TIS THE VOICE OF THE SLUGGARD,"' said the Gryphon. 'How the creatures order one about, and make one repeat lessons!' thought Alice; 'I might as well be at school at once.' However, she got up, and began to repeat it, but her head was so full of the Lobster Quadrille, that she hardly knew what she was saying, and the words came very queer indeed:-- ''Tis the voice of the Lobster; I heard him declare, "You have baked me too brown, I must sugar my hair." As a duck with its eyelids, so he with his nose Trims his belt and his buttons, and turns out his toes.' [later editions continued as follows When the sands are all dry, he is gay as a lark, And will talk in contemptuous tones of the Shark, But, when the tide rises and sharks are around, His voice has a timid and tremulous sound.] 'That's different from what I used to say when I was a child,' said the Gryphon. 'Well, I never heard it before,' said the Mock Turtle; 'but it sounds uncommon nonsense.' Alice said nothing; she had sat down with her face in her hands, wondering if anything would EVER happen in a natural way again. 'I should like to have it explained,' said the Mock Turtle. 'She can't explain it,' said the Gryphon hastily. 'Go on with the next verse.' 'But about his toes?' the Mock Turtle persisted. 'How COULD he turn them out with his nose, you know?' 'It's the first position in dancing.' Alice said; but was dreadfully puzzled by the whole thing, and longed to change the subject. 'Go on with the next verse,' the Gryphon repeated impatiently: 'it begins "I passed by his garden."' Alice did not dare to disobey, though she felt sure it would all come wrong, and she went on in a trembling voice:-- 'I passed by his garden, and marked, with one eye, How the Owl and the Panther were sharing a pie--' [later editions continued as follows The Panther took pie-crust, and gravy, and meat, While the Owl had the dish as its share of the treat. When the pie was all finished, the Owl, as a boon, Was kindly permitted to pocket the spoon: While the Panther received knife and fork with a growl, And concluded the banquet--] 'What IS the use of repeating all that stuff,' the Mock Turtle interrupted, 'if you don't explain it as you go on? It's by far the most confusing thing I ever heard!' 'Yes, I think you'd better leave off,' said the Gryphon: and Alice was only too glad to do so. 'Shall we try another figure of the Lobster Quadrille?' the Gryphon went on. 'Or would you like the Mock Turtle to sing you a song?' 'Oh, a song, please, if the Mock Turtle would be so kind,' Alice replied, so eagerly that the Gryphon said, in a rather offended tone, 'Hm! No accounting for tastes! Sing her "Turtle Soup," will you, old fellow?' The Mock Turtle sighed deeply, and began, in a voice sometimes choked with sobs, to sing this:-- 'Beautiful Soup, so rich and green, Waiting in a hot tureen! Who for such dainties would not stoop? Soup of the evening, beautiful Soup! Soup of the evening, beautiful Soup! Beau--ootiful Soo--oop! Beau--ootiful Soo--oop! Soo--oop of the e--e--evening, Beautiful, beautiful Soup! 'Beautiful Soup! Who cares for fish, Game, or any other dish? Who would not give all else for two Pennyworth only of beautiful Soup? Pennyworth only of beautiful Soup? Beau--ootiful Soo--oop! Beau--ootiful Soo--oop! Soo--oop of the e--e--evening, Beautiful, beauti--FUL SOUP!' 'Chorus again!' cried the Gryphon, and the Mock Turtle had just begun to repeat it, when a cry of 'The trial's beginning!' was heard in the distance. 'Come on!' cried the Gryphon, and, taking Alice by the hand, it hurried off, without waiting for the end of the song. 'What trial is it?' Alice panted as she ran; but the Gryphon only answered 'Come on!' and ran the faster, while more and more faintly came, carried on the breeze that followed them, the melancholy words:-- 'Soo--oop of the e--e--evening, Beautiful, beautiful Soup!' !!! CHAPTER XI. Who Stole the Tarts? The King and Queen of Hearts were seated on their throne when they arrived, with a great crowd assembled about them--all sorts of little birds and beasts, as well as the whole pack of cards: the Knave was standing before them, in chains, with a soldier on each side to guard him; and near the King was the White Rabbit, with a trumpet in one hand, and a scroll of parchment in the other. In the very middle of the court was a table, with a large dish of tarts upon it: they looked so good, that it made Alice quite hungry to look at them--'I wish they'd get the trial done,' she thought, 'and hand round the refreshments!' But there seemed to be no chance of this, so she began looking at everything about her, to pass away the time. Alice had never been in a court of justice before, but she had read about them in books, and she was quite pleased to find that she knew the name of nearly everything there. 'That's the judge,' she said to herself, 'because of his great wig.' The judge, by the way, was the King; and as he wore his crown over the wig, (look at the frontispiece if you want to see how he did it,) he did not look at all comfortable, and it was certainly not becoming. 'And that's the jury-box,' thought Alice, 'and those twelve creatures,' (she was obliged to say 'creatures,' you see, because some of them were animals, and some were birds,) 'I suppose they are the jurors.' She said this last word two or three times over to herself, being rather proud of it: for she thought, and rightly too, that very few little girls of her age knew the meaning of it at all. However, 'jury-men' would have done just as well. The twelve jurors were all writing very busily on slates. 'What are they doing?' Alice whispered to the Gryphon. 'They can't have anything to put down yet, before the trial's begun.' 'They're putting down their names,' the Gryphon whispered in reply, 'for fear they should forget them before the end of the trial.' 'Stupid things!' Alice began in a loud, indignant voice, but she stopped hastily, for the White Rabbit cried out, 'Silence in the court!' and the King put on his spectacles and looked anxiously round, to make out who was talking. Alice could see, as well as if she were looking over their shoulders, that all the jurors were writing down 'stupid things!' on their slates, and she could even make out that one of them didn't know how to spell 'stupid,' and that he had to ask his neighbour to tell him. 'A nice muddle their slates'll be in before the trial's over!' thought Alice. One of the jurors had a pencil that squeaked. This of course, Alice could not stand, and she went round the court and got behind him, and very soon found an opportunity of taking it away. She did it so quickly that the poor little juror (it was Bill, the Lizard) could not make out at all what had become of it; so, after hunting all about for it, he was obliged to write with one finger for the rest of the day; and this was of very little use, as it left no mark on the slate. 'Herald, read the accusation!' said the King. On this the White Rabbit blew three blasts on the trumpet, and then unrolled the parchment scroll, and read as follows:-- 'The Queen of Hearts, she made some tarts, All on a summer day: The Knave of Hearts, he stole those tarts, And took them quite away!' 'Consider your verdict,' the King said to the jury. 'Not yet, not yet!' the Rabbit hastily interrupted. 'There's a great deal to come before that!' 'Call the first witness,' said the King; and the White Rabbit blew three blasts on the trumpet, and called out, 'First witness!' The first witness was the Hatter. He came in with a teacup in one hand and a piece of bread-and-butter in the other. 'I beg pardon, your Majesty,' he began, 'for bringing these in: but I hadn't quite finished my tea when I was sent for.' 'You ought to have finished,' said the King. 'When did you begin?' The Hatter looked at the March Hare, who had followed him into the court, arm-in-arm with the Dormouse. 'Fourteenth of March, I think it was,' he said. 'Fifteenth,' said the March Hare. 'Sixteenth,' added the Dormouse. 'Write that down,' the King said to the jury, and the jury eagerly wrote down all three dates on their slates, and then added them up, and reduced the answer to shillings and pence. 'Take off your hat,' the King said to the Hatter. 'It isn't mine,' said the Hatter. 'Stolen!' the King exclaimed, turning to the jury, who instantly made a memorandum of the fact. 'I keep them to sell,' the Hatter added as an explanation; 'I've none of my own. I'm a hatter.' Here the Queen put on her spectacles, and began staring at the Hatter, who turned pale and fidgeted. 'Give your evidence,' said the King; 'and don't be nervous, or I'll have you executed on the spot.' This did not seem to encourage the witness at all: he kept shifting from one foot to the other, looking uneasily at the Queen, and in his confusion he bit a large piece out of his teacup instead of the bread-and-butter. Just at this moment Alice felt a very curious sensation, which puzzled her a good deal until she made out what it was: she was beginning to grow larger again, and she thought at first she would get up and leave the court; but on second thoughts she decided to remain where she was as long as there was room for her. 'I wish you wouldn't squeeze so.' said the Dormouse, who was sitting next to her. 'I can hardly breathe.' 'I can't help it,' said Alice very meekly: 'I'm growing.' 'You've no right to grow here,' said the Dormouse. 'Don't talk nonsense,' said Alice more boldly: 'you know you're growing too.' 'Yes, but I grow at a reasonable pace,' said the Dormouse: 'not in that ridiculous fashion.' And he got up very sulkily and crossed over to the other side of the court. All this time the Queen had never left off staring at the Hatter, and, just as the Dormouse crossed the court, she said to one of the officers of the court, 'Bring me the list of the singers in the last concert!' on which the wretched Hatter trembled so, that he shook both his shoes off. 'Give your evidence,' the King repeated angrily, 'or I'll have you executed, whether you're nervous or not.' 'I'm a poor man, your Majesty,' the Hatter began, in a trembling voice, '--and I hadn't begun my tea--not above a week or so--and what with the bread-and-butter getting so thin--and the twinkling of the tea--' 'The twinkling of the what?' said the King. 'It began with the tea,' the Hatter replied. 'Of course twinkling begins with a T!' said the King sharply. 'Do you take me for a dunce? Go on!' 'I'm a poor man,' the Hatter went on, 'and most things twinkled after that--only the March Hare said--' 'I didn't!' the March Hare interrupted in a great hurry. 'You did!' said the Hatter. 'I deny it!' said the March Hare. 'He denies it,' said the King: 'leave out that part.' 'Well, at any rate, the Dormouse said--' the Hatter went on, looking anxiously round to see if he would deny it too: but the Dormouse denied nothing, being fast asleep. 'After that,' continued the Hatter, 'I cut some more bread-and-butter--' 'But what did the Dormouse say?' one of the jury asked. 'That I can't remember,' said the Hatter. 'You MUST remember,' remarked the King, 'or I'll have you executed.' The miserable Hatter dropped his teacup and bread-and-butter, and went down on one knee. 'I'm a poor man, your Majesty,' he began. 'You're a very poor speaker,' said the King. Here one of the guinea-pigs cheered, and was immediately suppressed by the officers of the court. (As that is rather a hard word, I will just explain to you how it was done. They had a large canvas bag, which tied up at the mouth with strings: into this they slipped the guinea-pig, head first, and then sat upon it.) 'I'm glad I've seen that done,' thought Alice. 'I've so often read in the newspapers, at the end of trials, "There was some attempts at applause, which was immediately suppressed by the officers of the court," and I never understood what it meant till now.' 'If that's all you know about it, you may stand down,' continued the King. 'I can't go no lower,' said the Hatter: 'I'm on the floor, as it is.' 'Then you may SIT down,' the King replied. Here the other guinea-pig cheered, and was suppressed. 'Come, that finished the guinea-pigs!' thought Alice. 'Now we shall get on better.' 'I'd rather finish my tea,' said the Hatter, with an anxious look at the Queen, who was reading the list of singers. 'You may go,' said the King, and the Hatter hurriedly left the court, without even waiting to put his shoes on. '--and just take his head off outside,' the Queen added to one of the officers: but the Hatter was out of sight before the officer could get to the door. 'Call the next witness!' said the King. The next witness was the Duchess's cook. She carried the pepper-box in her hand, and Alice guessed who it was, even before she got into the court, by the way the people near the door began sneezing all at once. 'Give your evidence,' said the King. 'Shan't,' said the cook. The King looked anxiously at the White Rabbit, who said in a low voice, 'Your Majesty must cross-examine THIS witness.' 'Well, if I must, I must,' the King said, with a melancholy air, and, after folding his arms and frowning at the cook till his eyes were nearly out of sight, he said in a deep voice, 'What are tarts made of?' 'Pepper, mostly,' said the cook. 'Treacle,' said a sleepy voice behind her. 'Collar that Dormouse,' the Queen shrieked out. 'Behead that Dormouse! Turn that Dormouse out of court! Suppress him! Pinch him! Off with his whiskers!' For some minutes the whole court was in confusion, getting the Dormouse turned out, and, by the time they had settled down again, the cook had disappeared. 'Never mind!' said the King, with an air of great relief. 'Call the next witness.' And he added in an undertone to the Queen, 'Really, my dear, YOU must cross-examine the next witness. It quite makes my forehead ache!' Alice watched the White Rabbit as he fumbled over the list, feeling very curious to see what the next witness would be like, '--for they haven't got much evidence YET,' she said to herself. Imagine her surprise, when the White Rabbit read out, at the top of his shrill little voice, the name 'Alice!' !!! CHAPTER XII. Alice's Evidence 'Here!' cried Alice, quite forgetting in the flurry of the moment how large she had grown in the last few minutes, and she jumped up in such a hurry that she tipped over the jury-box with the edge of her skirt, upsetting all the jurymen on to the heads of the crowd below, and there they lay sprawling about, reminding her very much of a globe of goldfish she had accidentally upset the week before. 'Oh, I BEG your pardon!' she exclaimed in a tone of great dismay, and began picking them up again as quickly as she could, for the accident of the goldfish kept running in her head, and she had a vague sort of idea that they must be collected at once and put back into the jury-box, or they would die. 'The trial cannot proceed,' said the King in a very grave voice, 'until all the jurymen are back in their proper places--ALL,' he repeated with great emphasis, looking hard at Alice as he said do. Alice looked at the jury-box, and saw that, in her haste, she had put the Lizard in head downwards, and the poor little thing was waving its tail about in a melancholy way, being quite unable to move. She soon got it out again, and put it right; 'not that it signifies much,' she said to herself; 'I should think it would be QUITE as much use in the trial one way up as the other.' As soon as the jury had a little recovered from the shock of being upset, and their slates and pencils had been found and handed back to them, they set to work very diligently to write out a history of the accident, all except the Lizard, who seemed too much overcome to do anything but sit with its mouth open, gazing up into the roof of the court. 'What do you know about this business?' the King said to Alice. 'Nothing,' said Alice. 'Nothing WHATEVER?' persisted the King. 'Nothing whatever,' said Alice. 'That's very important,' the King said, turning to the jury. They were just beginning to write this down on their slates, when the White Rabbit interrupted: 'UNimportant, your Majesty means, of course,' he said in a very respectful tone, but frowning and making faces at him as he spoke. 'UNimportant, of course, I meant,' the King hastily said, and went on to himself in an undertone, 'important--unimportant--unimportant--important--' as if he were trying which word sounded best. Some of the jury wrote it down 'important,' and some 'unimportant.' Alice could see this, as she was near enough to look over their slates; 'but it doesn't matter a bit,' she thought to herself. At this moment the King, who had been for some time busily writing in his note-book, cackled out 'Silence!' and read out from his book, 'Rule Forty-two. ALL PERSONS MORE THAN A MILE HIGH TO LEAVE THE COURT.' Everybody looked at Alice. 'I'M not a mile high,' said Alice. 'You are,' said the King. 'Nearly two miles high,' added the Queen. 'Well, I shan't go, at any rate,' said Alice: 'besides, that's not a regular rule: you invented it just now.' 'It's the oldest rule in the book,' said the King. 'Then it ought to be Number One,' said Alice. The King turned pale, and shut his note-book hastily. 'Consider your verdict,' he said to the jury, in a low, trembling voice. 'There's more evidence to come yet, please your Majesty,' said the White Rabbit, jumping up in a great hurry; 'this paper has just been picked up.' 'What's in it?' said the Queen. 'I haven't opened it yet,' said the White Rabbit, 'but it seems to be a letter, written by the prisoner to--to somebody.' 'It must have been that,' said the King, 'unless it was written to nobody, which isn't usual, you know.' 'Who is it directed to?' said one of the jurymen. 'It isn't directed at all,' said the White Rabbit; 'in fact, there's nothing written on the OUTSIDE.' He unfolded the paper as he spoke, and added 'It isn't a letter, after all: it's a set of verses.' 'Are they in the prisoner's handwriting?' asked another of the jurymen. 'No, they're not,' said the White Rabbit, 'and that's the queerest thing about it.' (The jury all looked puzzled.) 'He must have imitated somebody else's hand,' said the King. (The jury all brightened up again.) 'Please your Majesty,' said the Knave, 'I didn't write it, and they can't prove I did: there's no name signed at the end.' 'If you didn't sign it,' said the King, 'that only makes the matter worse. You MUST have meant some mischief, or else you'd have signed your name like an honest man.' There was a general clapping of hands at this: it was the first really clever thing the King had said that day. 'That PROVES his guilt,' said the Queen. 'It proves nothing of the sort!' said Alice. 'Why, you don't even know what they're about!' 'Read them,' said the King. The White Rabbit put on his spectacles. 'Where shall I begin, please your Majesty?' he asked. 'Begin at the beginning,' the King said gravely, 'and go on till you come to the end: then stop.' These were the verses the White Rabbit read:-- 'They told me you had been to her, And mentioned me to him: She gave me a good character, But said I could not swim. He sent them word I had not gone (We know it to be true): If she should push the matter on, What would become of you? I gave her one, they gave him two, You gave us three or more; They all returned from him to you, Though they were mine before. If I or she should chance to be Involved in this affair, He trusts to you to set them free, Exactly as we were. My notion was that you had been (Before she had this fit) An obstacle that came between Him, and ourselves, and it. Don't let him know she liked them best, For this must ever be A secret, kept from all the rest, Between yourself and me.' 'That's the most important piece of evidence we've heard yet,' said the King, rubbing his hands; 'so now let the jury--' 'If any one of them can explain it,' said Alice, (she had grown so large in the last few minutes that she wasn't a bit afraid of interrupting him,) 'I'll give him sixpence. _I_ don't believe there's an atom of meaning in it.' The jury all wrote down on their slates, 'SHE doesn't believe there's an atom of meaning in it,' but none of them attempted to explain the paper. 'If there's no meaning in it,' said the King, 'that saves a world of trouble, you know, as we needn't try to find any. And yet I don't know,' he went on, spreading out the verses on his knee, and looking at them with one eye; 'I seem to see some meaning in them, after all. "--SAID I COULD NOT SWIM--" you can't swim, can you?' he added, turning to the Knave. The Knave shook his head sadly. 'Do I look like it?' he said. (Which he certainly did NOT, being made entirely of cardboard.) 'All right, so far,' said the King, and he went on muttering over the verses to himself: '"WE KNOW IT TO BE TRUE--" that's the jury, of course--"I GAVE HER ONE, THEY GAVE HIM TWO--" why, that must be what he did with the tarts, you know--' 'But, it goes on "THEY ALL RETURNED FROM HIM TO YOU,"' said Alice. 'Why, there they are!' said the King triumphantly, pointing to the tarts on the table. 'Nothing can be clearer than THAT. Then again--"BEFORE SHE HAD THIS FIT--" you never had fits, my dear, I think?' he said to the Queen. 'Never!' said the Queen furiously, throwing an inkstand at the Lizard as she spoke. (The unfortunate little Bill had left off writing on his slate with one finger, as he found it made no mark; but he now hastily began again, using the ink, that was trickling down his face, as long as it lasted.) 'Then the words don't FIT you,' said the King, looking round the court with a smile. There was a dead silence. 'It's a pun!' the King added in an offended tone, and everybody laughed, 'Let the jury consider their verdict,' the King said, for about the twentieth time that day. 'No, no!' said the Queen. 'Sentence first--verdict afterwards.' 'Stuff and nonsense!' said Alice loudly. 'The idea of having the sentence first!' 'Hold your tongue!' said the Queen, turning purple. 'I won't!' said Alice. 'Off with her head!' the Queen shouted at the top of her voice. Nobody moved. 'Who cares for you?' said Alice, (she had grown to her full size by this time.) 'You're nothing but a pack of cards!' At this the whole pack rose up into the air, and came flying down upon her: she gave a little scream, half of fright and half of anger, and tried to beat them off, and found herself lying on the bank, with her head in the lap of her sister, who was gently brushing away some dead leaves that had fluttered down from the trees upon her face. 'Wake up, Alice dear!' said her sister; 'Why, what a long sleep you've had!' 'Oh, I've had such a curious dream!' said Alice, and she told her sister, as well as she could remember them, all these strange Adventures of hers that you have just been reading about; and when she had finished, her sister kissed her, and said, 'It WAS a curious dream, dear, certainly: but now run in to your tea; it's getting late.' So Alice got up and ran off, thinking while she ran, as well she might, what a wonderful dream it had been. But her sister sat still just as she left her, leaning her head on her hand, watching the setting sun, and thinking of little Alice and all her wonderful Adventures, till she too began dreaming after a fashion, and this was her dream:-- First, she dreamed of little Alice herself, and once again the tiny hands were clasped upon her knee, and the bright eager eyes were looking up into hers--she could hear the very tones of her voice, and see that queer little toss of her head to keep back the wandering hair that WOULD always get into her eyes--and still as she listened, or seemed to listen, the whole place around her became alive with the strange creatures of her little sister's dream. The long grass rustled at her feet as the White Rabbit hurried by--the frightened Mouse splashed his way through the neighbouring pool--she could hear the rattle of the teacups as the March Hare and his friends shared their never-ending meal, and the shrill voice of the Queen ordering off her unfortunate guests to execution--once more the pig-baby was sneezing on the Duchess's knee, while plates and dishes crashed around it--once more the shriek of the Gryphon, the squeaking of the Lizard's slate-pencil, and the choking of the suppressed guinea-pigs, filled the air, mixed up with the distant sobs of the miserable Mock Turtle. So she sat on, with closed eyes, and half believed herself in Wonderland, though she knew she had but to open them again, and all would change to dull reality--the grass would be only rustling in the wind, and the pool rippling to the waving of the reeds--the rattling teacups would change to tinkling sheep-bells, and the Queen's shrill cries to the voice of the shepherd boy--and the sneeze of the baby, the shriek of the Gryphon, and all the other queer noises, would change (she knew) to the confused clamour of the busy farm-yard--while the lowing of the cattle in the distance would take the place of the Mock Turtle's heavy sobs. Lastly, she pictured to herself how this same little sister of hers would, in the after-time, be herself a grown woman; and how she would keep, through all her riper years, the simple and loving heart of her childhood: and how she would gather about her other little children, and make THEIR eyes bright and eager with many a strange tale, perhaps even with the dream of Wonderland of long ago: and how she would feel with all their simple sorrows, and find a pleasure in all their simple joys, remembering her own child-life, and the happy summer days. THE END End of Project Gutenberg's Alice's Adventures in Wonderland, by Lewis Carroll *** END OF THIS PROJECT GUTENBERG EBOOK ALICE'S ADVENTURES IN WONDERLAND *** ***** This file should be named 11.txt or 11.zip ***** This and all associated files of various formats will be found in: http://www.gutenberg.org/1/11/ Updated editions will replace the previous one--the old editions will be renamed. Creating the works from public domain print editions means that no one owns a United States copyright in these works, so the Foundation (and you!) can copy and distribute it in the United States without permission and without paying copyright royalties. Special rules, set forth in the General Terms of Use part of this license, apply to copying and distributing Project Gutenberg-tm electronic works to protect the PROJECT GUTENBERG-tm concept and trademark. Project Gutenberg is a registered trademark, and may not be used if you charge for the eBooks, unless you receive specific permission. If you do not charge anything for copies of this eBook, complying with the rules is very easy. You may use this eBook for nearly any purpose such as creation of derivative works, reports, performances and research. They may be modified and printed and given away--you may do practically ANYTHING with public domain eBooks. Redistribution is subject to the trademark license, especially commercial redistribution. *** START: FULL LICENSE *** THE FULL PROJECT GUTENBERG LICENSE PLEASE READ THIS BEFORE YOU DISTRIBUTE OR USE THIS WORK To protect the Project Gutenberg-tm mission of promoting the free distribution of electronic works, by using or distributing this work (or any other work associated in any way with the phrase "Project Gutenberg"), you agree to comply with all the terms of the Full Project Gutenberg-tm License (available with this file or online at http://gutenberg.org/license). Section 1. General Terms of Use and Redistributing Project Gutenberg-tm electronic works 1.A. By reading or using any part of this Project Gutenberg-tm electronic work, you indicate that you have read, understand, agree to and accept all the terms of this license and intellectual property (trademark/copyright) agreement. If you do not agree to abide by all the terms of this agreement, you must cease using and return or destroy all copies of Project Gutenberg-tm electronic works in your possession. If you paid a fee for obtaining a copy of or access to a Project Gutenberg-tm electronic work and you do not agree to be bound by the terms of this agreement, you may obtain a refund from the person or entity to whom you paid the fee as set forth in paragraph 1.E.8. 1.B. "Project Gutenberg" is a registered trademark. It may only be used on or associated in any way with an electronic work by people who agree to be bound by the terms of this agreement. There are a few things that you can do with most Project Gutenberg-tm electronic works even without complying with the full terms of this agreement. See paragraph 1.C below. There are a lot of things you can do with Project Gutenberg-tm electronic works if you follow the terms of this agreement and help preserve free future access to Project Gutenberg-tm electronic works. See paragraph 1.E below. 1.C. The Project Gutenberg Literary Archive Foundation ("the Foundation" or PGLAF), owns a compilation copyright in the collection of Project Gutenberg-tm electronic works. Nearly all the individual works in the collection are in the public domain in the United States. If an individual work is in the public domain in the United States and you are located in the United States, we do not claim a right to prevent you from copying, distributing, performing, displaying or creating derivative works based on the work as long as all references to Project Gutenberg are removed. Of course, we hope that you will support the Project Gutenberg-tm mission of promoting free access to electronic works by freely sharing Project Gutenberg-tm works in compliance with the terms of this agreement for keeping the Project Gutenberg-tm name associated with the work. You can easily comply with the terms of this agreement by keeping this work in the same format with its attached full Project Gutenberg-tm License when you share it without charge with others. 1.D. The copyright laws of the place where you are located also govern what you can do with this work. Copyright laws in most countries are in a constant state of change. If you are outside the United States, check the laws of your country in addition to the terms of this agreement before downloading, copying, displaying, performing, distributing or creating derivative works based on this work or any other Project Gutenberg-tm work. The Foundation makes no representations concerning the copyright status of any work in any country outside the United States. 1.E. Unless you have removed all references to Project Gutenberg: 1.E.1. The following sentence, with active links to, or other immediate access to, the full Project Gutenberg-tm License must appear prominently whenever any copy of a Project Gutenberg-tm work (any work on which the phrase "Project Gutenberg" appears, or with which the phrase "Project Gutenberg" is associated) is accessed, displayed, performed, viewed, copied or distributed: This eBook is for the use of anyone anywhere at no cost and with almost no restrictions whatsoever. You may copy it, give it away or re-use it under the terms of the Project Gutenberg License included with this eBook or online at www.gutenberg.org 1.E.2. If an individual Project Gutenberg-tm electronic work is derived from the public domain (does not contain a notice indicating that it is posted with permission of the copyright holder), the work can be copied and distributed to anyone in the United States without paying any fees or charges. If you are redistributing or providing access to a work with the phrase "Project Gutenberg" associated with or appearing on the work, you must comply either with the requirements of paragraphs 1.E.1 through 1.E.7 or obtain permission for the use of the work and the Project Gutenberg-tm trademark as set forth in paragraphs 1.E.8 or 1.E.9. 1.E.3. If an individual Project Gutenberg-tm electronic work is posted with the permission of the copyright holder, your use and distribution must comply with both paragraphs 1.E.1 through 1.E.7 and any additional terms imposed by the copyright holder. Additional terms will be linked to the Project Gutenberg-tm License for all works posted with the permission of the copyright holder found at the beginning of this work. 1.E.4. Do not unlink or detach or remove the full Project Gutenberg-tm License terms from this work, or any files containing a part of this work or any other work associated with Project Gutenberg-tm. 1.E.5. Do not copy, display, perform, distribute or redistribute this electronic work, or any part of this electronic work, without prominently displaying the sentence set forth in paragraph 1.E.1 with active links or immediate access to the full terms of the Project Gutenberg-tm License. 1.E.6. You may convert to and distribute this work in any binary, compressed, marked up, nonproprietary or proprietary form, including any word processing or hypertext form. However, if you provide access to or distribute copies of a Project Gutenberg-tm work in a format other than "Plain Vanilla ASCII" or other format used in the official version posted on the official Project Gutenberg-tm web site (www.gutenberg.org), you must, at no additional cost, fee or expense to the user, provide a copy, a means of exporting a copy, or a means of obtaining a copy upon request, of the work in its original "Plain Vanilla ASCII" or other form. Any alternate format must include the full Project Gutenberg-tm License as specified in paragraph 1.E.1. 1.E.7. Do not charge a fee for access to, viewing, displaying, performing, copying or distributing any Project Gutenberg-tm works unless you comply with paragraph 1.E.8 or 1.E.9. 1.E.8. You may charge a reasonable fee for copies of or providing access to or distributing Project Gutenberg-tm electronic works provided that - You pay a royalty fee of 20% of the gross profits you derive from the use of Project Gutenberg-tm works calculated using the method you already use to calculate your applicable taxes. The fee is owed to the owner of the Project Gutenberg-tm trademark, but he has agreed to donate royalties under this paragraph to the Project Gutenberg Literary Archive Foundation. Royalty payments must be paid within 60 days following each date on which you prepare (or are legally required to prepare) your periodic tax returns. Royalty payments should be clearly marked as such and sent to the Project Gutenberg Literary Archive Foundation at the address specified in Section 4, "Information about donations to the Project Gutenberg Literary Archive Foundation." - You provide a full refund of any money paid by a user who notifies you in writing (or by e-mail) within 30 days of receipt that s/he does not agree to the terms of the full Project Gutenberg-tm License. You must require such a user to return or destroy all copies of the works possessed in a physical medium and discontinue all use of and all access to other copies of Project Gutenberg-tm works. - You provide, in accordance with paragraph 1.F.3, a full refund of any money paid for a work or a replacement copy, if a defect in the electronic work is discovered and reported to you within 90 days of receipt of the work. - You comply with all other terms of this agreement for free distribution of Project Gutenberg-tm works. 1.E.9. If you wish to charge a fee or distribute a Project Gutenberg-tm electronic work or group of works on different terms than are set forth in this agreement, you must obtain permission in writing from both the Project Gutenberg Literary Archive Foundation and Michael Hart, the owner of the Project Gutenberg-tm trademark. Contact the Foundation as set forth in Section 3 below. 1.F. 1.F.1. Project Gutenberg volunteers and employees expend considerable effort to identify, do copyright research on, transcribe and proofread public domain works in creating the Project Gutenberg-tm collection. Despite these efforts, Project Gutenberg-tm electronic works, and the medium on which they may be stored, may contain "Defects," such as, but not limited to, incomplete, inaccurate or corrupt data, transcription errors, a copyright or other intellectual property infringement, a defective or damaged disk or other medium, a computer virus, or computer codes that damage or cannot be read by your equipment. 1.F.2. LIMITED WARRANTY, DISCLAIMER OF DAMAGES - Except for the "Right of Replacement or Refund" described in paragraph 1.F.3, the Project Gutenberg Literary Archive Foundation, the owner of the Project Gutenberg-tm trademark, and any other party distributing a Project Gutenberg-tm electronic work under this agreement, disclaim all liability to you for damages, costs and expenses, including legal fees. YOU AGREE THAT YOU HAVE NO REMEDIES FOR NEGLIGENCE, STRICT LIABILITY, BREACH OF WARRANTY OR BREACH OF CONTRACT EXCEPT THOSE PROVIDED IN PARAGRAPH F3. YOU AGREE THAT THE FOUNDATION, THE TRADEMARK OWNER, AND ANY DISTRIBUTOR UNDER THIS AGREEMENT WILL NOT BE LIABLE TO YOU FOR ACTUAL, DIRECT, INDIRECT, CONSEQUENTIAL, PUNITIVE OR INCIDENTAL DAMAGES EVEN IF YOU GIVE NOTICE OF THE POSSIBILITY OF SUCH DAMAGE. 1.F.3. LIMITED RIGHT OF REPLACEMENT OR REFUND - If you discover a defect in this electronic work within 90 days of receiving it, you can receive a refund of the money (if any) you paid for it by sending a written explanation to the person you received the work from. If you received the work on a physical medium, you must return the medium with your written explanation. The person or entity that provided you with the defective work may elect to provide a replacement copy in lieu of a refund. If you received the work electronically, the person or entity providing it to you may choose to give you a second opportunity to receive the work electronically in lieu of a refund. If the second copy is also defective, you may demand a refund in writing without further opportunities to fix the problem. 1.F.4. Except for the limited right of replacement or refund set forth in paragraph 1.F.3, this work is provided to you 'AS-IS' WITH NO OTHER WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO WARRANTIES OF MERCHANTIBILITY OR FITNESS FOR ANY PURPOSE. 1.F.5. Some states do not allow disclaimers of certain implied warranties or the exclusion or limitation of certain types of damages. If any disclaimer or limitation set forth in this agreement violates the law of the state applicable to this agreement, the agreement shall be interpreted to make the maximum disclaimer or limitation permitted by the applicable state law. The invalidity or unenforceability of any provision of this agreement shall not void the remaining provisions. 1.F.6. INDEMNITY - You agree to indemnify and hold the Foundation, the trademark owner, any agent or employee of the Foundation, anyone providing copies of Project Gutenberg-tm electronic works in accordance with this agreement, and any volunteers associated with the production, promotion and distribution of Project Gutenberg-tm electronic works, harmless from all liability, costs and expenses, including legal fees, that arise directly or indirectly from any of the following which you do or cause to occur: (a) distribution of this or any Project Gutenberg-tm work, (b) alteration, modification, or additions or deletions to any Project Gutenberg-tm work, and (c) any Defect you cause. Section 2. Information about the Mission of Project Gutenberg-tm Project Gutenberg-tm is synonymous with the free distribution of electronic works in formats readable by the widest variety of computers including obsolete, old, middle-aged and new computers. It exists because of the efforts of hundreds of volunteers and donations from people in all walks of life. Volunteers and financial support to provide volunteers with the assistance they need, is critical to reaching Project Gutenberg-tm's goals and ensuring that the Project Gutenberg-tm collection will remain freely available for generations to come. In 2001, the Project Gutenberg Literary Archive Foundation was created to provide a secure and permanent future for Project Gutenberg-tm and future generations. To learn more about the Project Gutenberg Literary Archive Foundation and how your efforts and donations can help, see Sections 3 and 4 and the Foundation web page at http://www.pglaf.org. Section 3. Information about the Project Gutenberg Literary Archive Foundation The Project Gutenberg Literary Archive Foundation is a non profit 501(c)(3) educational corporation organized under the laws of the state of Mississippi and granted tax exempt status by the Internal Revenue Service. The Foundation's EIN or federal tax identification number is 64-6221541. Its 501(c)(3) letter is posted at http://pglaf.org/fundraising. Contributions to the Project Gutenberg Literary Archive Foundation are tax deductible to the full extent permitted by U.S. federal laws and your state's laws. The Foundation's principal office is located at 4557 Melan Dr. S. Fairbanks, AK, 99712., but its volunteers and employees are scattered throughout numerous locations. Its business office is located at 809 North 1500 West, Salt Lake City, UT 84116, (801) 596-1887, email business@pglaf.org. Email contact links and up to date contact information can be found at the Foundation's web site and official page at http://pglaf.org For additional contact information: Dr. Gregory B. Newby Chief Executive and Director gbnewby@pglaf.org Section 4. Information about Donations to the Project Gutenberg Literary Archive Foundation Project Gutenberg-tm depends upon and cannot survive without wide spread public support and donations to carry out its mission of increasing the number of public domain and licensed works that can be freely distributed in machine readable form accessible by the widest array of equipment including outdated equipment. Many small donations ($1 to $5,000) are particularly important to maintaining tax exempt status with the IRS. The Foundation is committed to complying with the laws regulating charities and charitable donations in all 50 states of the United States. Compliance requirements are not uniform and it takes a considerable effort, much paperwork and many fees to meet and keep up with these requirements. We do not solicit donations in locations where we have not received written confirmation of compliance. To SEND DONATIONS or determine the status of compliance for any particular state visit http://pglaf.org While we cannot and do not solicit contributions from states where we have not met the solicitation requirements, we know of no prohibition against accepting unsolicited donations from donors in such states who approach us with offers to donate. International donations are gratefully accepted, but we cannot make any statements concerning tax treatment of donations received from outside the United States. U.S. laws alone swamp our small staff. Please check the Project Gutenberg Web pages for current donation methods and addresses. Donations are accepted in a number of other ways including checks, online payments and credit card donations. To donate, please visit: http://pglaf.org/donate Section 5. General Information About Project Gutenberg-tm electronic works. Professor Michael S. Hart is the originator of the Project Gutenberg-tm concept of a library of electronic works that could be freely shared with anyone. For thirty years, he produced and distributed Project Gutenberg-tm eBooks with only a loose network of volunteer support. Project Gutenberg-tm eBooks are often created from several printed editions, all of which are confirmed as Public Domain in the U.S. unless a copyright notice is included. Thus, we do not necessarily keep eBooks in compliance with any particular paper edition. Most people start at our Web site which has the main PG search facility: http://www.gutenberg.org This Web site includes information about Project Gutenberg-tm, including how to make donations to the Project Gutenberg Literary Archive Foundation, how to help produce our new eBooks, and how to subscribe to our email newsletter to hear about new eBooks.
*Aligner plusieurs div horizontalement *Pour les menus de la barre de navigation
A pocket full of tips by Tobias Beer. [ext[Evaluate JavaScript In A Filter|http://tobibeer.github.io/tw5-plugins/#Evaluate%20JavaScript%20In%20A%20Filter]] Voir [[eval-Configure]] Voir [[$:/plugins/tobibeer/eval/libraries]]
;Le site web https://prolegomenes.alwaysdata.net/ ;L'administration https://admin.alwaysdata.com/site/ ;Les explications: https://forum.tiddlywiki.fr/t/tiddlywiki-version-node-js-chez-alwaysdata-en-1-click/590
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}} *Animation: {{!!tc-extra}}
Calender SVG: Always shows today's date Voir comment le placer en petite icone.
N'avez vous jamais pensé pouvoir changer la manière ennuyeuse dont les Tiddlers apparaissent à l'écran ? Et bien faisons le alors avec la classe "field" et le fameux site web [ext[Animate.css|https://github.com/daneden/animate.css]] de Daniel Eden Copiez/Collez les Tiddlers suivants dans votre TW5 (Modification du tiddler shadow). * [[$:/core/ui/ViewTemplate]] * [[$:/Animate.CSS]] ; Ensuite # Créer un nouveau Tiddler, # Ajouter un champ "tc-extra" et le renseigner en y inscrivant "animated" # Ensuite, dans ce même champ ajouter le nom d'une des classes d'animation listée ici : <a href="https://daneden.github.io/animate.css/" target="_blank">Animate.CSS Demo</a>. <br>Le contenu du champ ressemblera parexemple à ceci `animated bounceIn`. # C'est fait!! Maintenant, à chaque fois que le tiddler sera chargé (appelé) ou se trouvera dans la ~StoryRiver, il se présentera avec un petit "look" en plus. Exemples: *[[BounceIn|Bleu]] *[[BounceInLeft|Blanc-Antique]] *[[Tada|Blanc]] *[[Wobble|Bisque]] *[[fadeInRight|Beige]] *[[fadeInLeftBig|Amande-Blanchie]] *[[flip|Argent]] *[[rotateInDownRight|Barbe-de-Mais]] <div class="attention">Attention! Certaines classes sont incompatibles avec TiddlyWiki et peuvent casser votre wiki. Testez sur une copie avant de mettre une animation en service!. </div>
\define appendButton(now, add) <$button set="Target" setTo="$now$$add$">Écrire</$button> \end <$edit-text tiddler="$:/temp/Append"/> <$macrocall $name="appendButton" now={{Target}} add={{$:/temp/Append}}/> --- {{Target}} That appends a tiddler called Target.
{{AppendTiddlersList||caption}}
Reprenons l'exemple de la base de donnée des pensionnaires de notre maison de retraite: [[Un exemple s'appuyant sur une Base de Données]] [[Voyez ici la base de données|Repas]] Les pensionnaires A à K (tous les membres donc) ont droit à un repas. Ils sont tous tagués "Repas" Il s'agit dans cette démonstration de récupérer depuis la liste déroulante de tous les membres de la maison de retraite (basée sur le tag "Repas") ceux que l'on aura choisi d'ajouter à une liste des pensionnaires, dans l'ordre que l'on aura décidé. Comme ceci: Liste des pensionnaires: {{$:/temp/newproject!!members}} + <$select tiddler="$:/temp/newproject" field="newmember" actions=<<addmember>>><$list filter="[tag[Repas]]"><option>{{!!title}}</option></$list></$select>
\define addmember() <$tiddler tiddler="$:/temp/newproject"><$action-listops $field="members" $subfilter="[{!!newmember}]"/></$tiddler> \end :Titre original : Appending Tiddlers to a List :Source:https://groups.google.com/d/msg/tiddlywiki/FXW8Zjv6atU/jAcdFnucBgAJ Basé sur un critère de filtre (ici le tag "Repas") ``` \define addmember() <$tiddler tiddler="$:/temp/newproject"><$action-listops $field="members" $subfilter="[{!!newmember}]"/></$tiddler> \end ``` ;et: ``` Liste des pensionnaires: {{$:/temp/newproject!!members}} + <$select tiddler="$:/temp/newproject" field="newmember" actions=<<addmember>>><$list filter="[tag[Repas]]"><option>{{!!title}}</option></$list></$select> ``` ;Soit: Liste des pensionnaires: {{$:/temp/newproject!!members}} + <$select tiddler="$:/temp/newproject" field="newmember" actions=<<addmember>>><$list filter="[tag[Repas]]"><option>{{!!title}}</option></$list></$select>
{{Applications||caption}}
Les Applications, (Plugins, Macros, widgets, styles) sont classées suivant leurs spécificités ''sous les différents mots clés'' de ce wiki (Macros, Dates. Tableurs etc.) Sont donc localisées ici les ''applications d'ordre général'', ou bien qui n'ont pas encore été classées.
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "4" "">> """ 2 - Kim Min Young 5 - Qing Ming Jie ^^China^^ 14 - Vietnamese Kings' Commemoration Day ^^Vietnam^^ 20 - Pesach I (First day of Passover) 21 - Easter Sunday 21 - Tiradentes Day ^^Brazil^^ 22 - Easter Monday 25 - ANZAC Day ^^Australia,^^ ^^New Zealand^^ 25 - Liberation Day ^^Italy^^ 26 - Pesach VII (Last day of Passover) 27 - King's Birthday ^^Netherlands^^ 30 - Liberation Day / Reunification Day ^^Vietnam^^ """ [img height="70" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "4" "">> """ 2 - Vietnamese Kings' Commemoration Day ^^Vietman^^ 4 - Qing Ming Jie ^^China^^ 9 - Pesach I (First day of Passover) 12 - Easter Day 13 - Easter Monday 15 - Pesach VII (Last day of Passover) 21 - Tiradentes Day ^^Brazil^^ 24 - Ramadan (begins) 25 - ANZAC Day ^^Australia,^^ ^^New Zealand^^ 25 - Liberation Day ^^Italy^^ 27 - King's Birthday ^^Netherlands^^ 28 - Memorial Day ^^Israel^^ 29 - Independence Day ^^Israel^^ 30 - Liberation Day/Reunification Day ^^Vietnam^^ """ [img height="10" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "4" "">> """ A little learning is a dangerous thing; Drink deep, or taste not the Pierian spring: There shallow drafts intoxicate the brain, And drinking largely sobers us again. by Alexander Pope """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "4" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "4" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "4" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#apr25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "4" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#April">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "4" "">> """ 1 - Easter Sunday 2 - Easter Monday 5 - Qing Ming Jie ^^China^^ 6 - Passover (last day) 11 - Holocaust Memorial Day ^^Israel^^ 18 - Memorial Day ^^Israel^^ 19 - Independence Day ^^Israel^^ 21 - Tiradentes Day ^^Brazil^^ 25 - ANZAC Day ^^Australia,^^ ^^New Zealand^^ 25 - Liberation Day ^^Italy^^ 27 - King's Birthday ^^Netherlands^^ """ [img height="90" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
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
Le fil de discussion Google Group archivé
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}} *Animation: {{!!tc-extra}}
{{Ariane||caption}}
Asciidoctor est un traitement de texte et une chaîne de publication pour convertir un contenu ''~AsciiDoc'' en HTML5. ;Bimlas en a fait un plugin : ''Asciidoctor'' est un langage de balises, similaire à Markdown mais vraiment beaucoup plus puissant. C'est addictif ! Une fois familiarisé avec, vous ne pourrez plus revenir à Markdown. "Use ''~AsciiDoc'' for document markup. Really. It's actually readable by humans, easier to parse and way more flexible than XML." -- Linus Torvalds * Demo + install: https://bimlas.gitlab.io/tw5-asciidoctor/ * Source code: https://gitlab.com/bimlas/tw5-asciidoctor * Asciidoctor website: https://asciidoctor.org/ * Asciidoctor vs Markdown: https://asciidoctor.org/docs/user-manual/#compared-to-markdown. <div class="note"> J'ai installé le plugin sur un wiki standard. Il fonctionne bien. Je n'ai cependant pas effectué tous les tests nécessaires, mangeurs de temps... </div>
#Créer un nouveau tiddler. #Y ajouter le champ "tagfield" dans le présent exemple. #Assigner une valeur au champ (Fonctionne même avec des espaces). #Copier ce code dans le tiddler créé : ``` <$button>Field To Tag <$set name="tagfieldvalue" value={{!!tagfield}}> <$action-listops $field="tags" $subfilter="[<tagfieldvalue>]"/> </$set> </$button> ``` <$button>Field To Tag <$set name="tagfieldvalue" value={{!!tagfield}}> <$action-listops $field="tags" $subfilter="[<tagfieldvalue>]"/> </$set> </$button>
Ouvrez ce tiddler et voyez les champs caption et icon <button class="btn btn-primary">1</button> On peut associer une image via le champ ''caption'': ``` exemple: caption: <i class="fa fa-wrench"></i> ``` <button class="btn btn-primary">2</button> On peut aussi associer une image au titre du tiddler via le champ ''icon''. ``` Exemple: icon: $:/feather ``` Important: pour que l'image associée soit prise en compte il faut qu'elle soit taguée `$:/tags/Image` Si ce n'est pas le cas l'image ne pourra apparaître à coté du titre du tiddler. ;Voyez le titre de ce tiddler en mode visu et son titre dans la liste
<div class="text-center"> <div class="statutError">[[Statut : Attente|Statut des billets]]</div> </div>
Il est déconseillé de modifier directement ces tiddlers pour la raison principale suivante: Lors des mises à jour de TiddlyWiki, les shadow tiddlers (`$:/...`) de la nouvelle version ne viendront pas remplacer ceux de l'ancienne. Ce qui peut passer pour une bonne nouvelle n'en est donc pas vraiment une. En effet, au fil des versions des shadows tiddlers peuvent avoir fait l'objet d'améliorations ou intégrer de nouvelles fonctionnalités. Or ces nouveautés ne seront pas intégrées à votre wiki puisqu'elles sont bloquées lors de la mise à jour. On peut lister tous les shadow tiddlers via le module de recherche, dans l'onglet "filter" en cliquant sur l'option "Les tiddlers shadow modifiés". Si la liste peut paraître longue, certains tiddlers modifiés sont sans importance tandis que d'autres peuvent poser problème lors des mise-à-jour. Noter également que les shadow tiddlers modifiés appairassent en caractères normaux dans l'onglet "shadows" du tiddler `$:/core/ui/SideBar/More` (plus), tandis que les shadow tiddlers non modifiés apparaissent en caractères gras dans cette liste (si toutefois vous n'avez pas modifié la feuiile de styles originale). On peut distinguer quatre types de shadow tiddlers : !!1- Les shadow tiddlers injectés par des plugins externes Ceux qui ont été ajouté aux tiddlers source provenant de l'installation de vos différents plugins. Ceux-ci sont facile a repérer puisque - en principe - le nom ou les initiales de leur auteur sont identifiés dans le titre du shadow tiddler. Par exemple: `$:/macros/bj/Calendar/journalfmt.js` Une autre façon de les repérer consiste à ouvrir ces tiddlers et de noter le message d'avertissement en haut du tiddler : <div class="note"> Ce tiddler est une version modifiée d'un tiddler « shadow ». Pour revenir à la version par défaut du ''plugin "xyz"'' , il vous suffit de supprimer ce tiddler. </div> On vous indique qu'il s'agit d'un shadow tiddler provenant d'un plugin dont le nom est spécifié. Par exemple : `$:/core/macros/toc` aura pour message: ``` Ce tiddler est une version modifiée d'un tiddler « shadow ». Pour revenir à la version par défaut du plugin $:/plugins/tesseract/sidebarPlus , il vous suffit de supprimer ce tiddler. ``` En principe toujours, ces tiddlers n'ont pas pour objectif de modifier les shadow tiddlers sources mais éventuellement d'en compléter la portée. Dans le cas ou un plugin modifie un shadow tiddler du source, l'auteur en avertit son public (je pense que ceci doit d'ailleurs faire partie du cahier des charges lorsque l'on crée un nouveau plugin) !!2- Les shadow tiddlers contenant une information utilisateur. Ce sont Les shadow tiddlers du source dont la modification est sans incidence sur le comportement général de TiddlyWiki En général leur utilité réside dans la possibilité de fournir une information dans le champ "text". Ils sont nombreux. Par exemple : *$:/SiteSubtitle *$:/SiteTitle ... Ils sont renseignés via des champs de saisie !!3- Les shadow tiddlers ayant une influence sur le comportement de ~TiddlyWiki Ce sont tous les shadow tiddlers dont le titre commence par `$:/core/ui/...` et qui sont tagué `$:/tags/...` (tags système), en citant peut être particulièrement les tiddlers tagués $:/tags/viewTemplate qui vont modifier l'aspect visuel de votre wiki. <div class="astuce"> Vous pouvez ajouter la liste des tags systèmes et leur contenu en [[important ce tiddler|$:/_systemtags]] dans votre wiki. Un onglet supplémentaire sera ajouté à la liste "more" (plus) de la SideBar </div> Si vous souhaitez les modifier, Il est préférable de les dupliquer d'abord, de faire vos modifications dans ces nouveaux tiddlers ainsi créé puis de retirer le tag des tiddlers originaux (sources). C'est alors votre tiddler !!4- Les shadow tiddlers à ne jamais modifier Ce sont les shadow tiddlers dont le message lorsque vous les ouvrez en mode écriture indique : <div class="attention"> Vous êtes sur le point d'éditer un `ShadowTiddler`. Toute modification supplantera la version par défaut du système, ''rendant les prochaines mises à jour non-triviales''. Êtes-vous sûr(e) de vouloir éditer "`$:/core/modules/language.js`"? </div> et notamment, mais sans limitation, les tiddlers ".js" !!En Conclusion *Modifier directement un shadow tiddler n'engendre donc pas forcément de conséquences vis à vis des mises-à-jour. *Il convient cependant de bien les identifier pour ne pas risquer en effet de rater l'amélioration d'un tiddler système lors de la mise à jour. *Si, toutefois vous deviez modifier directement le source d'un shadow tiddler, identifiez le, et notez le quelque part pour savoir quelle suite à lui donner lors de la mise à jour. Pour un exemple concret voir [[Modifications du template Titre d'un tiddler|$:/core/ui/ViewTemplate/title modifié]]
<$details summary="Contexte" open="yes"> @@padding:0 5px;border:1px solid crimson; *22 Septembre 2018: Bloc Contexte modifié @@ """ ''Voir aussi:'' 👉 [[Attribuer ou supprimer le tag d'un Tiddler]] 👉 [[tm-add-tag]] 👉 [[tm-remove-tag]] 👉 Pour un exemple: [[FieldManglerWidget]] 👉 [ext[Permaview|https://tiddlywiki.com/#WidgetMessage%3A%20tm-add-tag:%5B%5BWidgetMessage%3A%20tm-add-tag%5D%5D%20%5B%5BWidgetMessage%3A%20tm-remove-tag%5D%5D%20FieldManglerWidget%20%5B%5BFieldMangler%20Widget%20(Examples)%5D%5D]] sur le site ~https://tiddlywiki.com: """ </$details> On le sait les ''tags systèmes'' permettent de faire apparaître des Tiddlers à des lieux et places appropriés. Voyez à ce sujet [[Ajouter des tiddlers dans l'interface utilisateur]] De ce fait il est intéressant - par programmation - de pouvoir attribuer ou supprimer le tag d'un Tiddler. Par exemple, tout Tiddler contenant une feuille de style doit être tagué `$:/tags/Stylesheet`; si vous souhaitez désactiver une feuille de style, il suffit donc de lui retirer ce tag. Des Macros ou Widget ou Snipets intégrés à ce wiki aident à programmer ce type d'action aisément. Dans l'exemple qui suit nous souhaitons pouvoir ajouter ou retirer le Tiddler `$:/ButtonNewMenu` de la ~SideBar. Pour la structure, Voyez [[Les Tags du panneau de contrôle]]. Il s'agit ici d'ajouter ou de retirer le tag `$:/tags/SideBar` Nous disposons des deux éléments nécessaires: *Le Tiddler `$:/ButtonNewMenu` *Le Tag `$:/tags/SideBar` Et nous utilisons le Widget Checkbox : ; Le code: ``` [[Afficher l'onglet menu|$:/ButtonNewMenu]] <$checkbox tiddler='$:/ButtonNewMenu' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=none/> ``` ; Le résultat: [[Afficher l'onglet menu|$:/ButtonNewMenu]] <$checkbox tiddler='$:/ButtonNewMenu' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=none/>
On ne peut pas utiliser un widget comme entrée d'un attribut. Les widgets sont comme des balises HTML. Tout comme on ne peut pas avoir une balise HTML à l'intérieur (utilisé comme un attribut) d'une autre balise HTML, on ne peut pas utiliser un widget à l'intérieur d'une balise HTML. !!via une transclusion Cependant, on peut utiliser une, grâce au miracle du rendu . Donc, ceci fonctionnera: ``` <font color={{!!colorcode}}>The quick fox...</font><br/> ``` ;Soit: <<< <font color={{!!colorcode}}>The quick fox...</font><br/> <<< !!Ou via le widget `<$wikify>` : ``` <$wikify name="colorcode" text="<$view field='colorcode'/><br/>"> <font color=<<colorcode>>>The quick fox...</font><br/> </$wikify> ``` ;Soit: <<< <$wikify name="colorcode" text="<$view field='colorcode'/><br/>"> <font color=<<colorcode>>>The quick fox...</font><br/> </$wikify> <<< Mais: ``` <span style=color:{{!!colorcode}}>abc</span><br/> ``` N'est pas possible.
``` <$button message="tm-open-window" param="$:/doc-user-045" tooltip="Assistance" aria-label="Help">8</$button> ``` ;Soit: <$button message="tm-open-window" param="$:/doc-user-045" tooltip="Assistance" aria-label="Help">8</$button>
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "8" "">> """ 12 - Eid al-Adha 12 - Father's Day ^^Brazil^^ 15 - Independence Day ^^India^^ 15 - Liberation Day ^^South Korea^^ 28 - Lee Jin Hee """ [img height="220" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "8" "">> """ 15 - Liberation Day ^^South Korea^^ 20 - Muharram (Muslim New Year) """ [img height="270" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "8" "">> """ Experience keeps a dear school, but fools will learn in no other, and scarcely in that; for it is true, we may give advice, but we cannot give conduct. Remember this; they that will not be counseled cannot be helped. If you do not hear reason she will rap you over your knuckles. by Benjamin Franklin """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "8" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "8" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "8" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#aug25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "8" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#August">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "8" "">> """ 12 - Father's Day ^^Brazil^^ 15 - Independence Day ^^India^^ 15 - Liberation Day ^^South Korea^^ 17 - Independence Day ^^Indonesia^^ 21 - Eid al-Adha """ [img height="220" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
Here are some CSS properties that will probably be helpful: """ CSS Properties - Color CSS Properties - Borders CSS Properties - Dimensions CSS Properties - Positioning CSS Properties - Text and Fonts """ <$list filter='[tag[list of some relevant CSS properties]]'> <h1><$view field='caption'/></h1> <hr> <$transclude mode=block/> </$list>
The following operations are available. |Operator |Description|h |+|Addition| |-|Subtraction| |*|Multiplication| |/|Division| |&|Concatenation of two strings| ''Functions'' These may be used with either the prefix "math." or "@". Both `math.round(16.2)` and `@round(16.2)` will return the value 16. |Function|Description|h |abs(x) |Returns the absolute value of x| |acos(x)|Returns the arccosine of x, in radians| |asin(x) |Returns the arcsine of x, in radians| |atan(x) |Returns the arctangent of x as a numeric value between -PI/2 and PI/2 radians| |atan2(y,x) |Returns the arctangent of the quotient of its arguments| |ceil(x) |Returns x, rounded upwards to the nearest integer| |cos(x) |Returns the cosine of x (x is in radians)| |exp(x) |Returns the value of Ex| |floor(x) |Returns x, rounded downwards to the nearest integer| |log(x) |Returns the natural logarithm (base E) of x| |max(x,y,z,...,n) |Returns the number with the highest value| |min(x,y,z,...,n) |Returns the number with the lowest value| |pow(x,y) |Returns the value of x to the power of y| |random() |Returns a random number between 0 and 1| |round(x) |Rounds x to the nearest integer| |sin(x) |Returns the sine of x (x is in radians)| |sqrt(x) |Returns the square root of x| |tan(x) |Returns the tangent of an angle| |PI|3.14159...| For the most part, these are the standard javascript math functions. Others will probably work as well.
{{avatar||ModèleMotCléTitle}}
Add the avatar class to `<img>` element. There are 4 additional sizes available, including `avatar-xl`(64px), `avatar-lg`(48px), `avatar-sm`(24px), and `avatar-xs`(16px). By default, the avatar size is 32px. <!-- Basic avatar examples --> <figure class="avatar avatar-xl"> <img src="img/avatar-1.png" alt="..."> </figure> <figure class="avatar avatar-xl" data-initial="YZ" style="background-color: #5755d9;"></figure> For users who don't have profile pictures, you may use their initials for avatars. Add the avatar class and avatar size class to `<div>` element. The data-initial attribute is the name appear inside the avatar. <!-- Show initals when avatar image is unavailable or not fully loaded --> <figure class="avatar avatar-xl" data-initial="YZ" style="background-color: #5755d9;"> <img src="img/avatar-1.png" alt="..."> </figure>
<div class="column col-sm-12"> <div class="toast toast-success"> Cette fenêtre modale est déclenchée par le plugin StartupActions que vous pouvez consulter dans la liste des plugins. </div> </div> <$navigator> <$button> Ne plus montrer ce message<$action-setfield $tiddler='$:/state/Startup Actions Script/modal' text='inactive'/></$button></$navigator>
fa-picture-o fa-university fa-plus fa-plus-circle fa-plus-square fa-plus-square-o fa-minus fa-minus-circle fa-minus-square fa-minus-square-o fa-question fa-question-circle fa-question-circle-o fa-file fa-file-o fa-glass fa-music fa-search fa-envelope-o fa-heart fa-star fa-star-o fa-user fa-film fa-th-large fa-th fa-th-list fa-check fa-remove fa-close fa-times fa-search-plus fa-search-minus fa-power-off fa-signal fa-gear fa-cog fa-trash-o fa-home fa-file-o fa-clock-o fa-road fa-download fa-arrow-circle-o-down fa-arrow-circle-o-up fa-inbox fa-play-circle-o fa-rotate-right fa-repeat fa-refresh fa-list-alt fa-lock fa-flag fa-headphones fa-volume-off fa-volume-down fa-volume-up fa fa-qrcode fa fa-barcode fa-tag fa-tags fa-book fa-bookmark fa-print fa-camera fa-font fa-bold fa-italic fa-text-height fa-text-width fa-align-left fa-align-center fa-align-right fa-align-justify fa-list fa-dedent fa-outdent fa-indent fa-video-camera fa-photo fa-image fa-picture-o fa-pencil fa-map-marker fa-adjust fa-tint fa-edit fa-pencil-square-o fa-share-square-o fa-check-square-o fa-arrows fa-step-backward fa-fast-backward fa-backward fa-play fa-pause fa-stop fa-forward fa-fast-forward fa-step-forward fa-eject fa-chevron-left fa-chevron-right fa-plus-circle fa-minus-circle fa-times-circle fa-check-circle fa-question-circle fa-info-circle fa-crosshairs fa-times-circle-o fa-check-circle-o fa-ban fa-arrow-left fa-arrow-right fa-arrow-up fa-arrow-down fa-mail-forward fa-expand fa-compress fa-plus fa-minus fa-asterisk fa-exclamation-circle fa-gift fa-leaf fa-fire fa-eye fa-eye-slash fa-warning fa-exclamation-triangle fa-plane fa-calendar fa-random fa-comment fa-magnet fa-chevron-up fa-chevron-down fa-retweet fa-shopping-cart fa-folder fa-folder-open fa-arrows-v fa-arrows-h fa-bar-chart-o fa-bar-chart fa-twitter-square fa-facebook-square fa-camera-retro fa-key fa-gears fa-cogs fa-comments fa-thumbs-o-up fa-thumbs-o-down fa-star-half fa-heart-o fa-sign-out fa-linkedin-square fa-thumb-tack fa-external-link fa-sign-in fa-trophy fa-github-square fa-upload fa-lemon-o fa-phone fa-square-o fa-bookmark-o fa-phone-square fa-twitter fa-facebook-f fa-facebook fa-github fa-unlock fa-credit-card fa-feed fa-rss fa-hdd-o fa-bullhorn fa-bell fa-certificate fa-hand-o-right fa-hand-o-left fa-hand-o-up fa-hand-o-down fa-arrow-circle-left fa-arrow-circle-right fa-arrow-circle-up fa-arrow-circle-down fa-globe fa-wrench fa-tasks fa-filter fa-briefcase fa-arrows-alt fa-group fa-users fa-chain fa-link fa-cloud fa-flask fa-cut fa-scissors fa-copy fa-files-o fa-paperclip fa-save fa-floppy-o fa-square fa-navicon fa-reorder fa-bars fa-list-ul fa-list-ol fa-strikethrough fa-underline fa-table fa-magic fa-truck fa-pinterest fa-pinterest-square fa-google-plus-square fa-google-plus fa-money fa-caret-down fa-caret-up fa-caret-left fa-caret-right fa-columns fa-unsorted fa-sort fa-sort-down fa-sort-desc fa-sort-up fa-sort-asc fa-envelope fa-linkedin fa-rotate-left fa-undo fa-legal fa-gavel fa-dashboard fa-tachometer fa-comment-o fa-comments-o fa-flash fa-bolt fa-sitemap fa-umbrella fa-paste fa-clipboard fa-lightbulb-o fa-exchange fa-cloud-download fa-cloud-upload fa-user-md fa-stethoscope fa-suitcase fa-bell-o fa-coffee fa-cutlery fa-file-text-o fa-building-o fa-hospital-o fa-ambulance fa-medkit fa-fighter-jet fa-beer fa-h-square fa-plus-square fa-angle-double-left fa-angle-double-right fa-angle-double-up fa-angle-double-down fa-angle-left fa-angle-right fa-angle-up fa-angle-down fa-desktop fa-laptop fa-tablet fa-mobile-phone fa-mobile fa-circle-o fa-quote-left fa-quote-right fa-spinner fa-circle fa-mail-reply fa-reply fa-github-alt fa-folder-o fa-folder-open-o fa-smile-o fa-frown-o fa-meh-o fa-gamepad fa-keyboard-o fa-flag-o fa-flag-checkered fa-terminal fa-code fa-mail-reply-all fa-reply-all .fa-star-half-empty fa-star-half-full fa-star-half-o fa-location-arrow fa-crop fa-code-fork fa-unlink fa-chain-broken fa-question fa-info fa-exclamation fa-superscript fa-subscript fa-eraser fa-puzzle-piece fa-microphone fa-microphone-slash fa-shield fa-calendar-o fa-fire-extinguisher fa-rocket fa-maxcdn fa-chevron-circle-left fa-chevron-circle-right fa-chevron-circle-up fa-chevron-circle-down fa-html5 fa-css3
An awesome list limited to the best JavaScript learning resources. This list is mainly about JavaScript - the language. Not about APIs, tooling, frameworks or other aspects of todays JavaScript ecosystem.
Le lien de retour au tiddler Lists n'est visible que si les deux tags "one" et "two" sont présents sur ce tiddler.Ilest en effet possible d'inclure plus d'un filtre dans une expression. ``` <$list filter="[is[current]tag[one]] [is[current]tag[two]]"> [[Back to Lists|Lists]] </$list> ``` ;Rendra : <$list filter="[is[current]tag[one]] [is[current]tag[two]]"> [[Back to Lists|Lists]] </$list>
{{BackColor||caption}}
<$list filter="[is[current]!title[Tutoriel]]"> <hr> <$button to=Tutoriel >{{$:/core/images/home-button}} Tutoriel</$button> </$list>
dt et dd sont des balises de liste. Pour mémoire, voici la liste des balises HTML permettant de créer des listes (listes à puces, listes numérotées, listes de définitions…) |`<ul`>|Liste à puces, non numérotée| |`<ol>`|Liste numérotée| |`<li>`|Élément de la liste à puces| |`<dl`>|Liste de définitions| |`<dt>`|Terme à définir| |`<dd>`|Définition du terme| Élément de liste :balises `<DD>` , Balise `<DL>` et Balise `<DT>` *DL : Definition List *DD : Definition Description *DT : Definition Term L'élément DL encadre la liste des définitions. il inclu les deux autres balises, DT et DD qui décrivent respectivement le terme à définir (DT) et sa définition (DD). ;Et voici un exemple : ``` <dl> <dt>html</dt> <dd>langage utilisé pour afficher du contenu sur le web</dd> <dt>balise</dt> <dd>élément présentant certaines fonctionnalités</dd> <dt>attribut</dt> <dd>élément spécifique à une balise pouvant prendre certaines valeurs</dd> </dl> ``` ;Soit: <dl> <dt>html</dt> <dd>langage utilisé pour affiché du contenu sur le web</dd> <dt>balise</dt> <dd>élément présentant certaines fonctionnalités</dd> <dt>attribut</dt> <dd>élément spécifique à une balise pouvant pndre certaines valeurs</dd> </dl>
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
<style> .bar { fill: #aaa; height: 21px; transition: fill .3s ease; cursor: pointer; font-family: Helvetica, sans-serif; text { fill: #555; } } .chart:hover, .chart:focus { .bar { fill: #aaa; } } .bar:hover, .bar:focus { fill: red !important; text { fill: red; } } figcaption { font-weight: bold; color: #000; margin-bottom: 20px; } body { font-family: 'Open Sans', sans-serif; } </style> <figure> <figcaption>Un graph qui montre le nombre de fruits collectés</figcaption> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="chart" width="420" height="150" aria-labelledby="title" role="img"> <title id="title">Un graph en barre montrant des informations</title> <g class="bar"> <rect width="40" height="19"></rect> <text x="45" y="9.5" dy=".35em">4 pommes</text> </g> <g class="bar"> <rect width="80" height="19" y="20"></rect> <text x="85" y="28" dy=".35em">8 bananes</text> </g> <g class="bar"> <rect width="150" height="19" y="40"></rect> <text x="150" y="48" dy=".35em">15 kiwis</text> </g> <g class="bar"> <rect width="160" height="19" y="60"></rect> <text x="161" y="68" dy=".35em">16 oranges</text> </g> <g class="bar"> <rect width="230" height="19" y="80"></rect> <text x="235" y="88" dy=".35em">23 citrons</text> </g> </svg> </figure>
This plugin is for making either a progress bar (like a n% finished bar) or a stacked bar chart.
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}} *Animation : {{!!tc-extra}}
*http://tw5topleft.tiddlyspot.com/
``` <div class="un">UN</div> <div class="deux">DEUX</div> <div class="trois">TROIS</div> <<ToggleVisible "un" "1">> <<ToggleVisible "deux" "0">> <<ToggleVisible "trois" "1">> ``` <<< <div class="un">UN</div> <div class="deux">DEUX</div> <div class="trois">TROIS</div> <<ToggleVisible "un" "1">> <<ToggleVisible "deux" "0">> <<ToggleVisible "trois" "1">> <<< On bascule la visibilité d’un élément par sa classe. ''On peut noter au passage la façon d’utiliser plusieurs paramètres''. ``` exports.params = [{name: "classe"},{name: "valeur"}]; ```
Pour créer une macro JavaScript de base, voyez l'exemple ci-dessous. Il faut veiller à spécifier le champ "type"du tiddler comme étant `application/javascript`. Tiddler lié : [[$:/.tb/demo/example.js]] {{$:/.tb/demo/example.js||code}}
Entrez un filtre et tous les tiddlers rendus parce filtre seront listés. Entrez un tag et les cases à cocher indiqueront si chaque tiddler de la liste possède ou non ce tag. Cocher une case ajoute le tag, décocher une case supprime le tag. The buttons do exactly what they say. Filter: <$edit-text tiddler='$:/temp/BatchAddTags' field='filter' class='tc-edit-texteditor'/> Tag: <$edit-text tiddler='$:/temp/BatchAddTags' field='add_tag' class='tc-edit-texteditor'/> <$button>Ajoute le tag à la liste de tous les tiddlers <$list filter={{$:/temp/BatchAddTags!!filter}}> <$fieldmangler tiddler=<<currentTiddler>>> <$action-sendmessage $message='tm-add-tag' $param={{$:/temp/BatchAddTags!!add_tag}}/> </$fieldmangler> </$list> </$button> <$button>Supprime le tag de tous les tiddlers de la liste <$list filter={{$:/temp/BatchAddTags!!filter}}> <$fieldmangler tiddler=<<currentTiddler>>> <$action-sendmessage $message='tm-remove-tag' $param={{$:/temp/BatchAddTags!!add_tag}}/> </$fieldmangler> </$list> </$button> <table> <tr><th>Tiddler Name</th><th>Has Tag?</th></tr> <$list filter={{$:/temp/BatchAddTags!!filter}}> <$fieldmangler tiddler=<<currentTiddler>>> <tr><td><$link to=<<currentTiddler>>><$view field='title'/></$link></td><td><$checkbox tiddler=<<currentTiddler>> tag={{$:/temp/BatchAddTags!!add_tag}}/></td></tr> </$fieldmangler> </$list> </table>
Auteur : Eric Shulman Vendredi 04 Janvier 2019 <div class="info"> Voici, en effet, ce que l'on souhaiterai voir plus souvent dans la documentation utilisateur: un véritable tiddler de formation expliquant, pas à pas la logique de réponse à une question et son code associé... Il faut dire qu'en la personne de M. Shulman nous avons un Maître à penser qui maîtrise à la perfection les arcanes de TiddlyWiki TWC et TW5. </div> First, a bit of history: the code you quoted in your post is for TiddlyWiki Classic ("TWC"). The current version of TiddlyWiki ("TW" or "TW5") was completely re-written from the ground up several years ago to take advantage of modern browser tech such as HTML5. Additionally, in TWC, writing programmatic manipulations of tiddlers required either javascript programming or use of extra "plugins" to provide the needed syntax while in TW5, much of the programmatic syntax is provided natively within the TWCore. Now... on to your specific question. You wrote: <<< I would first filter the tiddlers by tag and then execute the batch edit on this group. What I want to do is to put something at the begining of each tiddler's tiddler (like adding prefix) without changing the rest of the tittle. So in the end each tiddler will have the same prefix but different rest of the title. <<< To "filter tiddlers by tag", use the `<$list>` widget, like this: ``` <$list filter="[tag[sometag]]"> </$list> ``` The `<$list>` widget uses the filter to find all the matching tiddlers and then loops through all the matches and sets the value of the `<<currentTiddler>>` variable to each title, in turn. By default, the `<$list>` widget will simply output the value of the `<<currentTiddler>>` resulting in the display of titles of all the matching tiddlers. To make the widget do something else, you need to add more syntax ''within'' the enclosing `<$list>...</$list>` that references the `<<currentTiddler>>` variable to act on each tiddler (e.g., setting a specified field value in the `<<currentTiddler>>`) For example, if you wanted to add/update a field named "matched" to "true", you would use the `<$action-setfield>` widget, like this: ``` <$list filter="[tag[sometag]]"> <$action-setfield $tiddler=<<currentTiddler>> matched="true"/> </$list> ``` However, the above code is NOT enough to get the job done. Because the `<$action-setfield>` widget changes stored tiddler values, it requires a user-initiated "trigger" event to start the process. To achieve this, you can enclose the above `<$list>...</$list>` loop within a `<$button>` widget, like this: ``` <$button> BUTTON TEXT <$list filter="[tag[sometag]]"> <$action-setfield $tiddler=<<currentTiddler>> matched="true"/> </$list> </$button> ``` So... for your use-case, you might think that the code would be something like: ``` <$button> BUTTON TEXT <$list filter="[tag[sometag]]"> <$action-setfield $tiddler=<<currentTiddler>> title="...NEW TITLE HERE..." /> </$list> </$button> ``` However... there are a few tricky details to consider: First, tiddler ''titles'' are not just display text, but are used to uniquely identify each tiddler. Thus, changing a title actually ''copies'' the existing tiddler content (all fields) to another tiddler with the specified new title and "renaming" a tiddler actually takes TWO actions: first change the title (creating a new tiddler), and then delete the tiddler with the old title, like this: ``` <$button> BUTTON TEXT <$list filter="[tag[sometag]]"> <$action-setfield $tiddler=<<currentTiddler>> title="..." /> <!-- CREATES NEW TIDDLER --> <$action-deletetiddler $tiddler=<<currentTiddler>> /> <!-- REMOVES OLD TIDDLER --> </$list> </$button> ``` The next problem is that TW5 syntax does not do direct text manipulation "in line", so assembling the desired new title (i.e., prepending some text to the beginning of the existing title) requires use of a little "helper" macro, like this: ``` \define newTitle(prefix) $prefix$$(currentTiddler)$ ``` This macro takes one parameter, "prefix". The value of the parameter is rendered into the output using the `$...$` syntax (i.e., "`$prefix$`"). The value of the current tiddler title is already available as a variable defined in the calling scope, and is referenced using the `$(...)$`. Putting it together, we get: ``` \define newTitle(prefix) $prefix$$(currentTiddler)$ <$button> BUTTON TEXT <$list filter="[tag[SOMETAG]]"> <$action-setfield $tiddler=<<currentTiddler>> title=<<newTitle "SOMEPREFIX">> /> <$action-deletetiddler $tiddler=<<currentTiddler>> /> </$list> </$button> ```
Mat von Twaddle Simplifie l'ajout/suppression de tags, de champs et de valeurs de champs sur une liste de tiddlers
``` <div id='bbox'> TIDDLYWIKI IS AWESOME! </div> <<eval """ var ele = document.querySelector('#bbox'); ele.style.color = '#FFFFFFAA'; ele.style.backgroundColor = '#3377CC99'; ele.style.padding='30px'; ele=''; """>> ``` <div id='bbox'> TIDDLYWIKI IS AWESOME! </div> <<eval """ var ele = document.querySelector('#bbox'); ele.style.color = '#FFFFFFAA'; ele.style.backgroundColor = '#3377CC99'; ele.style.padding='30px'; ele=''; """>> !À ne surtout pas faire!: ``` <<eval """ var ele = document.querySelector('#bbox'); ele.style.color = '#FFFFFFAA'; ele.style.backgroundColor = '#3377CC99'; ele.style.padding='30px'; ele=''; """>> <div id='bbox'> TIDDLYWIKI IS AWESOME! </div> ``` JavaScript est séquentiel. En plaçant le div sous la macro, cette dernière - ne trouvant pas le sélecteur - retourne le message `TypeError: ele is null` entraînant un plantage sérieux de TiddlyWiki. Pour plus d'informations, voyez [[Évitez les plantages JavaScript]].
NomJoueur: John Niveau: 28
{{BDDataDictionary||caption}}
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
Beginners Help for First Time and New Users À lire attentivement, son contenu pouvant être bénéfique à la rédaction du tutoriel de ce wiki.
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
`<<<.tc-big-quote Texte <<<` Soit: <<<.tc-big-quote Texte <<< C'est tout.
Filter by multiple tags easily László Bimba (known as "bimlas" on the net)
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!tc-extra}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
TiddlyWiki ne dispose pas de bloc conditionnel (`if ... then ...`) mais on peut utiliser un filtre (filter) avec limite (limit) pour obtenir le même comportement qu'en utilisant `SELECT` en SQL: TiddlyWiki est fondamentalement une [[base de données similaire à SQL|https://tiddlywiki.com/#Filters]]. Par exemple, n'afficher une phrase que si le présent tiddler possède un (ou plusieurs) tag(s): ``` <$list filter=[all[current]tags[]limit[1]]> Ce tiddler est tagué avec : </$list> <<list-links filter:"[all[current]tags[]]">> ``` <$list filter=[all[current]tags[]]> Ce tiddler est tagué avec : </$list> <<list-links filter:"[all[current]tags[]]">> <div class="column col-sm-12"> <div class="toast toast-warning"> À quoi sert `limit[1]` ? Si j'ajoute un second tag, les deux tags sont inclus dans la liste. Le résultat est le même si j'écris : ``` <$list filter=[all[current]tags[]]> Ce tiddler est tagué avec : </$list> <<list-links filter:"[all[current]tags[]]">> ``` La phrase n'est pas affichée uniquement dans le cas ou ce tiddler ne dispose d'aucun tag. </div> </div> [ ] Problème à résoudre
``` @@background-color:#ECF0F1; @@color:#2C3E50; @@margin:10px; @@padding:10px; @@border-radius: 5px; <i class="fa fa-book fa-3x pull-left" style="color:#2C3E50"></i>On peut y placer une note assez longue...'' @@ ``` ; Soit: @@background-color:#ECF0F1; @@color:#2C3E50; @@margin:10px; @@padding:10px; @@border-radius: 5px; <i class="fa fa-book fa-3x pull-left" style="color:#2C3E50"></i>On peut y placer une note assez longue...'' @@
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
I am trying to install "Bob", (software) I had avoided because the name does not connote anything to me: *👉 Multi-User support for using/editing the same wiki(s) simultaneously ? *👉 Multi-Wiki support - run it once and serve multiple wikis (I have so many wikis that I spend too much time searching amongst them - hoping this solves it) *👉 Two-way real-time syncing between the browser and file system (sounds good) To do use this go here (https://github.com/OokTech/TW5-BobEXE) and download the file for your system (~BobLinux for linux, ~BobWin.exe for windows and ~BobOSX for mac). Then run the file. [[Les exécutables sont ici|https://github.com/OokTech/TW5-BobEXE/releases]] I believe Bob does not serve single file Wikis. ~TiddlyServer will, but the install is a little more complex and configuring the settings.json file to point to your tiddlywiki folder a little fragile. You could import your single file wikis into bob folder based wikis if you want, but I am not sure what your expect bob to do for you. For me one value of bob is not so much multi-user but multi-access, ie I can keep tiddlywikis closed because if I open them more than once the change will be reflected in both tabs/windows and I will not overwrite my own work. I would suggest if you are happy to use ~FireFox or Chrome and only use single file wikis you obtain the Timimi plugin and install that and your Tiddlywiki files will all be savable when accessed on the file system from either of these browsers. Use ~TiddlyServer, Bob or [[Node.Js]] if you want to serve wikis over your LAN Dernière version cpmpatible V5.1.18 https://github.com/OokTech/TW5-BobEXE/releases Installation windows - Une fois l'exécutable lancé, aller à l'adresse locale http://127.0.0.1:8080/ Le serveur du wiki (Adresse IP et port): 192.168.20.103:8080
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
``` <div class="att"> <i class="fa fa-exclamation-triangle fa-lg" aria-hidden="true" style="color:#2C3E50"></i> [[Un lien|Tutoriel]] </div> ``` ;Soit: <div class="att"> <i class="fa fa-exclamation-triangle fa-lg" aria-hidden="true" style="color:#2C3E50"></i> [[Un lien|Tutoriel]] </div> <br/> ``` <div class="att"> <i class="fa fa-user-secret fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Un `texte` </div> ``` ;Soit: <div class="att"> <i class="fa fa-user-secret fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Un `texte` </div>
!<i class="fa fa-code"></i> Le code à copier: !!Texte seul ``` <div class="pretty"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Votre texte </div> ``` Soit: <div class="pretty"> <i class="fa fa-thumb-tack" style="color: #E74C3C "></i> Votre texte </div> !!Texte avec lien ``` <div style="font-size:0.7em; text-align:left; margin-left:5em;"> <a href="http://www.tiddlywiki.com/" class="tc-btn-big-green" style="text-decoration:none; background-color:#5A99D7;" target="_blank"> <i class="fa fa-thumb-tack"></i> Le texte peut aussi être un lien</a> </div> ``` Soit: <div style="font-size:0.7em; text-align:left; margin-left:5em;"> <a href="http://www.tiddlywiki.com/" class="tc-btn-big-green" style="text-decoration:none; background-color:#5A99D7;" target="_blank"> <i class="fa fa-thumb-tack"></i> Le texte peut aussi être un lien</a> </div>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
Un jeu de divers compléments en bas de chaque Tiddler (Infos, Commentaires, Biographie, journal, notes, idées etc...) cliquables sous la forme de petites icones non intrusives
\define getState() $:/state/bottom/$(properTag)$ \end \define getProperTag() [[$(properTag)$]] \define bottomOfTiddler() --- <$tiddler tiddler=<<currentTiddler>>> <$set name="properTag" value={{!!title}}> <$button>Nouveau Sujet <$action-sendmessage $message="tm-new-tiddler" title="Nouveau" text="<<bottomOfTiddler>>" description=" " tags=<<getProperTag>>/> </$button> <$list filter="[all[current]tagging[]!has[draft.of]]"> <$link to={{!!title}}><$view field="title"/></$link> - <$view field="description"/> </$list> </$set> </$tiddler> \end
Cette macro effectue les actions suivantes au clic sur le bouton "Nouveau Tiddler" *<i class="fa fa-arrow-right"></i> Création d'un nouveau tiddler dont le titre est "Nouveau". *<i class="fa fa-arrow-right"></i> Affecte ce tiddler du tag correspondant au nom du tiddler duquel le bouton a été déclenché. *<i class="fa fa-arrow-right"></i> Crée le champ "description" dans le tiddler *<i class="fa fa-arrow-right"></i> Crée le bouton "Nouveau sujet" dans le corps du tiddler (text)
``` <kbd>Bouton</kbd> ``` <kbd>Bouton</kbd>
.tc-topbar button { background-color: #ee4056; font-size: 25px; position: relative; display: inline-block; width: 35px; height: 35px; cursor: pointer; border: none; border-radius: 100px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .26); } .tc-topbar button svg { font-size: 15px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; width: 40%; height: 40%; margin: auto; opacity: 0.8; fill: #fff; } .tc-topbar button:hover svg { font-size: 15px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; margin: auto; opacity: 1; fill: #fff !important; }
<div align="center"> <$button to="Tutoriel" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Cliquez ici pour accéder à l'article </$button> </div>
\define content() This is a sample content \end ``` \define content() This is a sample content \end <$button > <$action-sendmessage $message="tm-new-tiddler" title="Title" text=<<content>> tags="MetaTag [[Another Tag]]" /> New Tiddler </$button> ``` <$button > <$action-sendmessage $message="tm-new-tiddler" title="Title" text=<<content>> tags="MetaTag [[Another Tag]]" /> New Tiddler </$button>
Ce bouton supprime tous les tiddlers tagués "MyStory" À rapprocher de [[$:/doc-user-068]] et de [[Supprimer des tiddlers via bouton]] ``` \define MyFilter() [tag[$(MyTag)$]sort[title]] \end \define delbytag() <$button>Delete Tagged <$action-deletetiddler $filter=<<MyFilter>>/> </$button> \end <$set name="MyTag" value=MyStory> <$macrocall $name="delbytag"></$macrocall> ```
Ceci ajoute un simple bouton marqueur à la barre de l'éditeur. Pour marquer un <mark class="roundedmark">extrait de texte comme ceci</mark>, vous pouvez sélectionner le texte et utiliser ce bouton. Éditez ce tiddler par exemple et voyez comment ce bouton fonctionne. Pour ajouter ce bouton, <mark class="roundedmark">téléchargez le fichier JSON suivant</mark> puis un déplacer/poser dans votre wiki. <a href="marker_button.json" download="marker_button.json">Download Marker Button</a> Ou téléchargez directement les tiddlers suivants : *$:/tesseract/images/marker *$:/tesseract/stylesheets/marker *$:/tesseract/ui/EditorToolbar/marker
<$list filter="[has[dummy]]"></$list> <$button> <$action-deletetiddler $filter="[tag[dummy]]"/> Delete Tiddlers tagged </$button> <$list filter="[has[dummy]]"></$list> <$button> <$list filter="[has[dummy]]"> <$action-deletefield $field="dummy"/> </$list> Delete Field in tiddler </$button> <$button> <$action-deletetiddler $filter="[has[dummy]]"/> Delete Tiddlers with field </$button>
__''Tiddlersbar (breadcrumbs) You are here''__ Le Fil d'Ariane installé sur ce site n'est pas celui-ci. Il s'agit de l'application http://inmysocks.tiddlyspot.com/#Other%20Tweaks
iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAYAAAAGAB4TKWmAAAAZklEQVRIx2NgGCmgnoGB4T8arqel4VS1BGYYseIogIla3iTGAi8GBobHWIIB3cWExB9BzcIA2AwnFz+GGcqI5hJqAkb0IKIJGLVg1IJRC+hswRMqmovVLC8GSElIaUGHszQdBVgBAJY1RxsVvp5tAAAAAElFTkSuQmCC
<div class="text-center"> <div class="statutWarning">[[Statut : Brouillon|Statut des billets]]</div> </div>
Sujet pas encore traité
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
{{Builtin||caption}}
These all have something to do with the table of contents |!Name |!Description | |tc-tabbed-table-of-contents |? | |tc-tabbed-table-of-contents-content |? | |tc-table-of-contents |? | |toc-item |? | |toc-item-selective |? |
I have no idea what these are used for |!Name |!Description | |doc-attr |? | |doc-block-icon |? | |doc-button |? | |doc-click |? | |doc-def |? | |doc-em |? | |doc-example |? | |doc-field |? | |doc-foreign |? | |doc-icon-block |? | |doc-key |? | |doc-note |? | |doc-operator |? | |doc-place |? | |doc-preamble |? | |doc-strong |? | |doc-tab |? | |doc-table |? | |doc-table-subheading |? | |doc-tag |? | |doc-tiddler |? | |doc-value |? | |doc-var |? | |doc-widget |? |
These are used for buttons |!Name |!Description |!Example | |tc-btn-big-green |A big green button, used for the 'Download Empty' Button on tiddlywiki.com. White text. |<$button class='tc-btn-big-green'>Test <<fa fa-envelope>></$button> | |tc-btn-dropdown |? |<$button class='tc-btn-dropdown'>Test <<fa fa-envelope>></$button> | |tc-btn-icon |? |<$button class='tc-btn-icon'>Test <<fa fa-envelope>></$button> | |tc-btn-invisible |No visible button, it only shows the contents |<$button class='tc-btn-invisible'>Test <<fa fa-envelope>></$button> | |tc-btn-mini |? |<$button class='tc-btn-mini'>Test <<fa fa-envelope>></$button> | |tc-btn-text |? |<$button class='tc-btn-text'>Test <<fa fa-envelope>></$button> |
These apply to the various editors |!Name |!Description | |tc-edit |? | |tc-edit-add-tag |? | |tc-edit-add-tag-name |? | |tc-edit-bitmapeditor |The bitmap editor | |tc-edit-bitmapeditor-height |Height of the bitmap editor | |tc-edit-bitmapeditor-width |Width of the bitmap editor | |tc-edit-field-add-button |The `add` button for adding fields to tiddlers in edit mode | |tc-edit-field-add-name |The `field name` text input box for adding fields to tiddlers in edit mode | |tc-edit-field-add-value |The `field value` text input box for adding fields to tiddlers in edit mode | |tc-edit-field-name |The field names of existing fields in a tiddler in edit mode | |tc-edit-field-remove |The remove field button for tiddlers in edit mode | |tc-edit-field-value |The field value display for tiddlers in edit mode | |tc-edit-fields |? | |tc-edit-tags |? | |tc-edit-tags-list |? | |tc-edit-texteditor |Applied to text editing areas | |tc-edit-type-dropdown |The dropdown for setting the `type` field of a tiddler in edit mode |
I these are for the page/tiddler control icons |!Name |!Description | |tc-image-button |For all buttons | |tc-image-cancel-button |The cancel button | |tc-image-close-button |The close button | |tc-image-delete-button |The delete button | |tc-image-done-button |The done button | |tc-image-edit-button |The edit button | |tc-image-info-button |The info button | |tc-image-new-button |The new button | |tc-image-options-button |The options button | |tc-image-save-button |The same button | |tc-image-tip |? | |tc-image-warning |? |
These are used to define how the list of plugins in the plugin tab of the $:/ControlPanel are displayed. |!Name |!Description | |tc-plugin-info |Applied to all? | |tc-plugin-info-chunk |The card displaying the plugin name and version? | |tc-plugin-info-disabled |The changes for showing a plugin is disabled? | |tc-plugin-info-dropdown |For when the plugin info is open | |tc-plugin-info-dropdown-body |The body of the plugin info? | |tc-plugin-info-dropdown-message |The rest of the plugin info? |
I think these apply to the tabs macro |!Name |!Description | |tc-tab-buttons |Applied to the tab buttons | |tc-tab-content |? | |tc-tab-contents |? | |tc-tab-divider |Applied to the divider between tabs | |tc-tab-selected |Applied to the selected tab | |tc-tab-set |? |
Some stuff to do with tags |!Name |!Description | |tc-tag-label |? | |tc-tag-list-item |? | |tc-tag-manager-table |The table for the tag manager in the sidebar? | |tc-tag-manager-tag |Tags in the table for the tag manager in the sidebar? | |tc-tags-wrapper |? | |tc-remove-tag-button |Possibly the little x on the tag names when editing a tiddler? |
These have something to do with thumbnails. What this something is I have no idea. |!Name |!Description | |tc-thumbnail-background |? | |tc-thumbnail-caption |? | |tc-thumbnail-icon |? | |tc-thumbnail-image |? | |tc-thumbnail-right-wrapper |? | |tc-thumbnail-wrapper |? |
These are css classes for how tiddlers are displayed |!Name |!Description | |tc-tiddler-body |The body of a tiddler in viewing mode | |tc-tiddler-controls |The tiddler control icons area | |tc-tiddler-dragger |? | |tc-tiddler-dragger-cover |? | |tc-tiddler-dragger-inner |? | |tc-tiddler-edit-frame |A tiddler in edit mode | |tc-tiddler-frame |? | |tc-tiddler-help |? | |tc-tiddler-info |? | |tc-tiddler-missing |? | |tc-tiddler-preview |? | |tc-tiddler-preview-edit |? | |tc-tiddler-preview-preview |? | |tc-tiddler-title-icon |Things for the icons in tiddler titles when you put something into the `icon` field of a tiddler. |
View field stuff? I don't know what that is. |!Name |!Description | |tc-view-field-name |? | |tc-view-field-table |? | |tc-view-field-value |? |
Liste des classes CSS natives classées par catégories: <$list filter="[tag[Builtin]] [tag[]] +[sort[sub.num]]"> </$list>
|!Name |!Description | |tc-modal |Applied to the entire modal | |tc-modal-backdrop |? | |tc-modal-body |Applied to the modal body | |tc-modal-displayed |? | |tc-modal-footer |Applied to the modal footer | |tc-modal-header |Applied to the modal header | |tc-modal-wrapper |? |
{{BulletList||caption}}
Il est possible de changer la présentation des listes simples via un CSS. Dans l'exemple qui suit, pensez à ''ajouter le tag'' `$:/tags/Stylesheet` au tiddler feuille de style $:/cssSmallerBulletList La feuille de style affecte l'ensemble des listes à puce de votre wiki. Dans cet exemple, chaque sous-niveau de liste aura une police de caractères plus petite que celle du niveau précédent.
Un concurrent de Spectre. Bulma is a free, open source CSS framework based on Flexbox and used by more than 150,000 developers.
<style> button.tc-tiddlylink, a.tc-tiddlylink { text-decoration: none; font-weight: 500; color: <<colour tiddler-link-foreground>>; -webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */ } </style> ``` button.tc-tiddlylink, a.tc-tiddlylink { text-decoration: none; font-weight: 500; color: <<colour tiddler-link-foreground>>; -webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */ } ``` Couleur des liens internes standard de TW (Hors SideBar) `<<colour tiddler-link-foreground>>`: Couleur de la palette en usage, ligne "Tiddler link foreground" (tiddler-link-foreground)
!Buttons Buttons include simple button styles for actions in different types and sizes. Add the btn class to `<a>`, `<input>` or `<button>` elements for a default button. There are classes `btn-primary` and `btn-link` for predefined primary and link buttons. ``` <button class="btn">default button</button> <button class="btn btn-primary">primary button</button> <button class="btn btn-link">link button</button> ``` <button class="btn">default button</button> <button class="btn btn-primary">primary button</button> <button class="btn btn-link">link button</button> !Button colors Add the `btn-success` or `btn-error` class for success (green) or error (red) button color. If you need more button colors, please use button mixins to create your own button color variants. ``` <button class="btn btn-success">success button</button> <button class="btn btn-error">error button</button> ``` <button class="btn btn-success">success button</button> <button class="btn btn-error">error button</button> !Button sizes Add the `btn-sm` or `btn-lg` class for small or large button size. Also, you can add the `btn-block` class for a full-width button. ``` <button class="btn btn-lg">large button</button> <button class="btn btn-sm">small button</button> <button class="btn btn-block">block button</button> <button class="btn btn-primary btn-lg"><i class="icon icon-arrow-left"></i> large</button> <button class="btn btn-primary"><i class="icon icon-arrow-left"></i> normal</button> <button class="btn btn-primary btn-sm"><i class="icon icon-arrow-left"></i> small</button> ``` <button class="btn btn-lg">large button</button> <button class="btn btn-sm">small button</button> <button class="btn btn-block">block button</button> <button class="btn btn-primary btn-lg"><i class="icon icon-arrow-left"></i> large</button> <button class="btn btn-primary"><i class="icon icon-arrow-left"></i> normal</button> <button class="btn btn-primary btn-sm"><i class="icon icon-arrow-left"></i> small</button> <button class="btn btn-action"><i class="icon icon-arrow-left"></i></button> <button class="btn btn-action s-circle"><i class="icon icon-arrow-left"></i></button> <!-- buttons with loading state --> <button class="btn loading">button</button> <button class="btn btn-primary loading">primary button</button> <div class="btn-group btn-group-block"> <button class="btn">first button</button> <button class="btn">second button</button> <button class="btn">third button</button> </div> !Avec icons <button class="btn btn-primary btn-sm"><i class="icon icon-forward"></i></button> <button class="btn btn-success btn-sm"><i class="icon icon-forward"></i></button> <button class="btn btn-error btn-sm"><i class="icon icon-forward"></i></button>
{{ButtonWidget||caption}}
! Introduction Le widget bouton affiche un élément HTML `<button>`qui peut effectuer une combinaison d'actions optionnelles lorsqu'il est cliqué : * Executing any ActionWidgets passed in the `actions` attribute * Executing any ActionWidgets that are immediate children of the button widget * Execute any integrated actions: ** Navigate to a specified tiddler ** Dispatch a user defined [[widget message|MessagesWidget]] ** Trigger a user defined [[popup|PopUpButton]] ** Assign new text to a specified tiddler The integrated actions are provided as a shortcut for invoking common actions. The same functionality is available via ActionWidgets, with the exception of the support for highlighting selected popups. ! Content and Attributes The content of the `<$button>` widget is displayed within the button. |!Attribute |!Description | |actions |A string containing ActionWidgets to be triggered when the key combination is detected | |to |The title of the tiddler to navigate to | |message |The name of the [[widget message|MessagesWidget]] to send when the button is clicked | |param |The optional parameter to the message | |set |A TextReference to which a new value will be assigned | |setTo |The new value to assign to the TextReference identified in the `set` attribute | |selectedClass |An optional additional CSS class to be assigned if the popup is triggered or the tiddler specified in `set` already has the value specified in `setTo` | |default |Default value if `set` tiddler is missing for testing against `setTo` to determine `selectedClass` | |popup |Title of a state tiddler for a popup that is toggled when the button is clicked | |aria-label |Optional Accessibility label | |tooltip |Optional tooltip | |class |An optional CSS class name to be assigned to the HTML element| |style |An optional CSS style attribute to be assigned to the HTML element | |tag |An optional html tag to use instead of the default "button" | |dragTiddler |An optional tiddler title making the button draggable and identifying the payload tiddler. See DraggableWidget for details | |dragFilter |An optional filter making the button draggable and identifying the list of payload tiddlers. See DraggableWidget for details | ''Note:'' In almost all other cases where a TextReference is used as a widget attribute, it will be placed between curly brackets, to [[transclude|Transclusion in WikiText]] the value currently stored there. However, when we use a TextReference as the value of a button widget's `set` attribute, we are referencing //the storage location itself//, rather than the value stored there, so we do ''not'' use curly brackets there. //Example:// we could code a button widget that sets the `caption` field of TiddlerA to be the same as that of TiddlerB as: ``` <$button set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} > Press me! </$button> ``` ''Astuce:'' Set ''class'' to `tc-btn-invisible tc-tiddlylink` to have a button look like an internal link : ``` <$button class="tc-btn-invisible tc-tiddlylink"message="tm-open-window" param="PopUp" tooltip="Mon bouton PopUp" aria-label="Help">Ma ~PopUp</$button> ``` Voir le résultat de cet action dans le tiddler d'exemple [[Remplacer le titre du Tiddler A par celui du Tiddler B]]. Et les Tiddlers TiddlerA et TiddlerB
{{ButtonWidgetExemple1||caption}}
Voir aussi : $:/doc-user-014 Sur ce wiki, indépendament des options de paramétrages choisies,'' il est possible de cacher la ~SideBar à l'ouverture du wiki.'' Voir [ext[ICI|https://groups.google.com/d/msg/tiddlywiki/dQbt-JFdRR8/P0zR0njIAQAJ]] comment cacher la SideBar au démarrage et [ext[LÀ|https://groups.google.com/d/msg/tiddlywiki/l8fhn6EJB88/2KwbNbSrDAAJ]]. pour le paramétrage de champs spécifiques au démarrage. !!Installation <Extrait> Pour cacher la SideBar au démarrage, copiez simplement ces deux tiddler dans votre wiki : *[[$:/.tb/modules/startup/hide-sidebar.js]] : un module de démarrage définissant l'état de la barre latérale en fonction du tiddler de configuration ci-dessous. *[[$:/config/HideSidebarOnStartup]] : Pour effectivement avoir la SideBar cachée (couverte) au démarrage, le contenu de ce tiddler doit contenir `yes` </Extrait> !! Source {{$:/.tb/modules/startup/hide-sidebar.js}} Il faut rapprocher $:/config/HideSidebarOnStartup du tiddler $:/state/sidebar parcequ'il s'agit de la même logique. Dans le premier cas (TiddlyOueb) le choix se fait en cochant une case (mais tout le système n'est pas en place ici. Dans le second cas il faut indiquer à la main oui ou non.
le style `style="display:none;` inséré dans la balise HTML `<th>` ou `<td>` aura pour effet de cacher les données qui y sont contenues. Par exemple : ``` <th style="display:none;" width="60%">Valeur</th> <td style="display:none;"><$edit-text tiddler="$:/EcritureTemp" field="millesime" placeholder="Ex : 2019" size="40"/></td> ```
\define masque(code,disp) <<eval " const mask = (cc, num = $disp$, mask = '⛔') => `${cc}`.slice(-num).padStart(`${cc}`.length, mask); mask($code$); ">> \end {{EnTêteDemosMacrosJs}} !1- La macro //(pragma define) sur un tiddler standard non tagué `$:/tags/Macro`// ``` \define masque(code,disp) <<eval " const mask = (cc, num = $disp$, mask = '⛔') => `${cc}`.slice(-num).padStart(`${cc}`.length, mask); mask($code$); ">> \end ``` !2- L'Appel ``` <<masque "6815983777281892" 2>> ``` <<masque "6815983777281892" 2>>
{{CalendarExt||caption}}
Charger le plugin $:/plugins/bj/Calendar The Calendar macro is configurable via the file [[$:/config/bj/Calendar.json]], and is extendable by plug-in formatter modules, which enable it to be used in different applications. A side bar tab is created via the tiddler [[$:/plugins/bj/calendar/sidbar]] containing a calendar configured for journal tiddlers. The calander macro is extended by the diary macro and used the same options and configuration tiddler, but allows for journals to be create in the future. 13 Fichiers inclus: *$:/config/bj/Calendar.json *$:/core/modules/widgets/macrorefresh.js *$:/macros/bj/Calendar/diary.js *$:/macros/bj/Calendar/journalfmt.js *$:/macros/bj/Calendar/journalslinked.js *$:/macros/buggyj/Calendar/base.js *$:/macros/buggyj/Calendar/entry.js *$:/macros/buggyj/Calendar/entry2.js *$:/macros/buggyj/Calendar/ifnew.js *$:/macros/buggyj/Calendar/refresh.js *$:/plugins/bj/Calendar/license *$:/plugins/bj/Calendar/readme *$:/plugins/bj/calendar/sidbar Example usage: ` !!Plain Calendar Format <<calendar "2018" "4" plain>> !!Default Calendar Format (for Journal tiddlers) <<calendar "" "" >> !!A years diary <<diary 2018 "" >> ` Renders as: !!Plain Calendar Format <<calendar "2018" "4" plain>> !!Default Calendar Format (for Journal tiddlers) <<calendar "" "" >> !!A years diary <<diary 2018 "" >> En utilisant le ''calendrier annuel'', et si le langage de votre wiki est le ''français'', la date du nouveau journal que vous créerez sera en français, par exemple `22 juillet 2018`
Calendars are designed for date or date range picker and events display. It is made with flex layout. <div class="column col-4 col-md-12"> <div class="calendar"> <div class="calendar-nav navbar"> <button class="btn btn-action btn-link btn-lg"><i class="icon icon-arrow-left"></i></button> <div class="navbar-primary">March 2017</div> <button class="btn btn-action btn-link btn-lg"><i class="icon icon-arrow-right"></i></button> </div> <div class="calendar-container"> <div class="calendar-header"> <div class="calendar-date">Sun</div> <div class="calendar-date">Mon</div> <div class="calendar-date">Tue</div> <div class="calendar-date">Wed</div> <div class="calendar-date">Thu</div> <div class="calendar-date">Fri</div> <div class="calendar-date">Sat</div> </div> <div class="calendar-body"> <div class="calendar-date prev-month"> <button class="date-item">26</button> </div> <div class="calendar-date prev-month"> <button class="date-item">27</button> </div> <div class="calendar-date prev-month"> <button class="date-item">28</button> </div> <div class="calendar-date"> <button class="date-item">1</button> </div> <div class="calendar-date"> <button class="date-item">2</button> </div> <div class="calendar-date"> <button class="date-item">3</button> </div> <div class="calendar-date tooltip" data-tooltip="Today"> <button class="date-item date-today">4</button> </div> <div class="calendar-date tooltip" data-tooltip="Not available"> <button class="date-item" disabled="">5</button> </div> <div class="calendar-date"> <button class="date-item">6</button> </div> <div class="calendar-date"> <button class="date-item">7</button> </div> <div class="calendar-date tooltip" data-tooltip="You have appointments"> <button class="date-item badge">8</button> </div> <div class="calendar-date"> <button class="date-item">9</button> </div> <div class="calendar-date"> <button class="date-item">10</button> </div> <div class="calendar-date"> <button class="date-item">11</button> </div> <div class="calendar-date"> <button class="date-item">12</button> </div> <div class="calendar-date"> <button class="date-item">13</button> </div> <div class="calendar-date"> <button class="date-item">14</button> </div> <div class="calendar-date"> <button class="date-item">15</button> </div> <div class="calendar-date calendar-range range-start"> <button class="date-item">16</button> </div> <div class="calendar-date calendar-range"> <button class="date-item">17</button> </div> <div class="calendar-date calendar-range"> <button class="date-item">18</button> </div> <div class="calendar-date calendar-range"> <button class="date-item">19</button> </div> <div class="calendar-date calendar-range range-end"> <button class="date-item">20</button> </div> <div class="calendar-date"> <button class="date-item">21</button> </div> <div class="calendar-date"> <button class="date-item">22</button> </div> <div class="calendar-date"> <button class="date-item">23</button> </div> <div class="calendar-date"> <button class="date-item">24</button> </div> <div class="calendar-date"> <button class="date-item">25</button> </div> <div class="calendar-date"> <button class="date-item">26</button> </div> <div class="calendar-date"> <button class="date-item">27</button> </div> <div class="calendar-date"> <button class="date-item">28</button> </div> <div class="calendar-date"> <button class="date-item">29</button> </div> <div class="calendar-date"> <button class="date-item">30</button> </div> <div class="calendar-date"> <button class="date-item">31</button> </div> <div class="calendar-date next-month"> <button class="date-item">1</button> </div> </div> </div> </div> </div> !!Calendars sizes <div class="column col-12"> <div class="calendar calendar-lg"> <div class="calendar-nav navbar"> <button class="btn btn-action btn-link btn-lg"><i class="icon icon-arrow-left"></i></button> <div class="navbar-primary">March 2017</div> <button class="btn btn-action btn-link btn-lg"><i class="icon icon-arrow-right"></i></button> </div> <div class="calendar-container"> <div class="calendar-header"> <div class="calendar-date">Sun</div> <div class="calendar-date">Mon</div> <div class="calendar-date">Tue</div> <div class="calendar-date">Wed</div> <div class="calendar-date">Thu</div> <div class="calendar-date">Fri</div> <div class="calendar-date">Sat</div> </div> <div class="calendar-body"> <div class="calendar-date prev-month"> <button class="date-item">26</button> </div> <div class="calendar-date prev-month"> <button class="date-item">27</button> <div class="calendar-events"><a class="calendar-event bg-error text-light" href="#calendars">Zhonghe Festival</a></div> </div> <div class="calendar-date prev-month"> <button class="date-item">28</button> </div> <div class="calendar-date"> <button class="date-item">1</button> </div> <div class="calendar-date"> <button class="date-item">2</button> </div> <div class="calendar-date"> <button class="date-item">3</button> </div> <div class="calendar-date tooltip" data-tooltip="Today"> <button class="date-item date-today">4</button> </div> <div class="calendar-date"> <button class="date-item" disabled="">5</button> </div> <div class="calendar-date"> <button class="date-item">6</button> </div> <div class="calendar-date"> <button class="date-item">7</button> </div> <div class="calendar-date tooltip" data-tooltip="You have appointments"> <button class="date-item badge">8</button> <div class="calendar-events"><a class="calendar-event bg-primary text-light" href="#calendars">Product launch event</a><a class="calendar-event bg-error text-light" href="#calendars">International Women's Day</a></div> </div> <div class="calendar-date"> <button class="date-item">9</button> </div> <div class="calendar-date"> <button class="date-item">10</button> </div> <div class="calendar-date"> <button class="date-item">11</button> </div> <div class="calendar-date"> <button class="date-item">12</button> <div class="calendar-events"><a class="calendar-event bg-error text-light" href="#calendars">Arbor Day</a></div> </div> <div class="calendar-date"> <button class="date-item">13</button> </div> <div class="calendar-date"> <button class="date-item">14</button> </div> <div class="calendar-date"> <button class="date-item">15</button> </div> <div class="calendar-date calendar-range range-start"> <button class="date-item">16</button> </div> <div class="calendar-date calendar-range"> <button class="date-item">17</button> </div> <div class="calendar-date calendar-range"> <button class="date-item">18</button> </div> <div class="calendar-date calendar-range"> <button class="date-item">19</button> </div> <div class="calendar-date calendar-range range-end"> <button class="date-item">20</button> <div class="calendar-events"><a class="calendar-event bg-success text-light" href="#calendars">Spring Equinox</a></div> </div> <div class="calendar-date"> <button class="date-item">21</button> </div> <div class="calendar-date"> <button class="date-item">22</button> </div> <div class="calendar-date"> <button class="date-item">23</button> </div> <div class="calendar-date"> <button class="date-item">24</button> </div> <div class="calendar-date"> <button class="date-item">25</button> </div> <div class="calendar-date"> <button class="date-item">26</button> </div> <div class="calendar-date"> <button class="date-item">27</button> </div> <div class="calendar-date"> <button class="date-item">28</button> </div> <div class="calendar-date"> <button class="date-item">29</button> </div> <div class="calendar-date"> <button class="date-item">30</button> </div> <div class="calendar-date"> <button class="date-item">31</button> </div> <div class="calendar-date next-month disabled"> <button class="date-item">1</button> <div class="calendar-events"><a class="calendar-event bg-error text-light" href="#calendars">April Fools' Day</a></div> </div> </div> </div> </div> </div>
{{CalendarThing||caption}}
Select year: <$select field='year'><$list filter='2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020'><option><<currentTiddler>></option></$list></$select> Select month: <$select field='month'><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'><option><<currentTiddler>></option></$list></$select> <$calendar-month year={{!!year}} month={{!!month}}/>
*[[$:/CalendarSVG]] Implémenté sur la ~SideBar. Si vous souhaitez réduire la taille d'origine de cette image, vous devez remplacer l'extrait de code: ``` <svg xmlns="http://www.w3.org/2000/svg" aria-label="Calendar" role="img" viewBox="0 0 512 512"> ``` ; par ``` <svg xmlns="http://www.w3.org/2000/svg" aria-label="Calendar" role="img" width="64" height="64" viewBox="0 0 512 512"> ``` 64px dans cet exemple. Vous remplacez cette valeur par celle qui vous convient. Pour des implémentations différentes, voyez: *http://tongerner.tiddlyspot.com/ *https://ibnishak.github.io/Tesseract/css_snippets/animations.html <div class="note">Ce calendrier icone n'est pas en place sur ce wiki</div> ;Pour installer le calendrier dans la ~SideBar, vous devez procéder comme suit : *Ouvrez le tiddler $:/core/ui/PageTemplate/sidebar *Copiez le code suivant : `{{$:/CalendarSVG}}` *Entre la ligne : `<$reveal state="$:/state/sidebar" type="match" text="yes" default="yes" retain="yes" animate="yes">` *Et la ligne : `<h1 class="tc-site-title">`
{{Calendriers||caption}}
``` <<test-macro B>> ``` <<test-macro B>>
La convention de casse Camel est formée à partir d'une phrase, dont on met en capital la première lettre de chaque mot et dont on supprime les espaces entre eux, formant ainsi un seul et unique mot. De nombreux wiki utilisent CamelCase pour marquer les phrases qui génèrent un lien de façon automatique.
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}} <<f-i check-square>> Il y a <$count filter=[tag{!!title}] /> Tiddlers tagués {{!!title}} </div> </div> </div> @@ <table class="table table-striped table-hover"> <thead> <tr> <th align="center">Tiddler</th> <th align="center">Date de création</th> <th align="center">Numéro d'ordre</th> </tr> </thead> <$list filter="[tag{!!title}] [tag[]] +[sort[sub.num]]"> <tbody> <tr> <td><$link to={{!!title}}><$text text={{!!caption}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="form-input"/></td> </tr> </tbody> </$list> </table>
A Task and Project Management Wiki for Getting Stuff Done
Viande Végétarien SansSel Complet
|!Category |!Members |!Sorted | |^`current` |just the [[current tiddler|Current Tiddler]] |^-- | |^`missing` |all non-existent tiddlers to which there is at least one [[hard link|Hard and Soft Links]] |^no | |^`orphans` |all tiddlers to which there are <<.em no>> hard links |^by title | |^`shadows` |all the [[shadow tiddlers|ShadowTiddlers]] that exist, including any that have been overridden with non-shadow tiddlers |^no | |^`tags` |all the tags in use on non-shadow tiddlers |no | |^`tiddlers` |all the non-shadow tiddlers that exist |no |
<$list filter="[{!!draft.title}!is[missing]]" variable="listItem"> <$button> Open Existing Tiddler <$action-navigate $to={{!!draft.title}}/> <$action-sendmessage $message='tm-close-tiddler'/> </$button> </$list>
Pour ce faire, éditer le tiddler système $:/config/EditTemplateFields/Visibility/created et rempacer le hide par show. Ainsi le champ "created des tiddlers sera toujours visible en mode édition
!!$:/AdvancedSearch * tag: Aucun * Code: incorpore les onglets de recherche ''standard'', ''system'', ''shadows'' et ''filter'' Code: {{$:/AdvancedSearch||code}} Soit: {{$:/AdvancedSearch}} * Champ color (couleur à choisir dans la table des couleurs) * Champ icon: $:/core/images/advanced-search-button . Ce champ place l'icone "search-Button" devant le titre du Tiddler. * Pour accéder au contenu de l'onglet de recherche standard : $:/core/ui/AdvancedSearch/Standard * Pour accéder au contenu de l'onglet de recherche system : $:/core/ui/AdvancedSearch/System * Pour accéder au contenu de l'onglet de recherche shadows : $:/core/ui/AdvancedSearch/Shadows * Pour accéder au contenu de l'onglet de recherche filter : $:/core/ui/AdvancedSearch/Filter
{{Champs||caption}}
En réponse à la question posée sur le forum français tiddlyWiki : https://forum.tiddlywiki.fr/t/x-tiddler-dictionary/529 <<< ``` Bonjour, J’ai défini un champ Cou:#FF00FF dans un tiddler Data marqué en application/x-tiddler-dictionary que je voudrais exploiter dans un autre tiddler ainsi : @@color:{{Data##Cou}}; {{Data##Prix}} € @@ Merci pour votre aide ``` <<< Il convient d'abord de définir le contexte des règles suivantes: `@@color xxx@@` Il s'agit de la wikification d'une règle CSS Par exemple ``` .color-mycolor { color:#FF00FF; } ``` <style> .color-mycolor{color:red;} </style> que vous pouvez ensuite écrire: ``` @@.color-mycolor suivi de votre texte @@ ``` ;Soit: @@.color-mycolor suivi de votre texte @@ Cette partie de votre code n'entre donc pas à priori dans le domaine de votre question. <<< Pour un exemple similaire, voyez [ext[le lien suivant|https://prolegomenes.github.io/learn/Learn2215117.html#Cr%C3%A9er%20un%20classe%20CSS]] <<< Quand vous écrivez "J'ai défini un champ ..." je suppose que vous vouliez dire "j'ai défini un "terme" dans une liste puisqu'il s'agit d'un data tiddler, dont l'objectif n'est que de définir une liste de type `nom: valeur associée`. Dans votre exemple, votre dictionnaire se nomme `Data`, et contient la paire `cou:#FF00FF` Cette partie isolée de votre code est correcte: *<i class="fa fa-arrow-right"></i> `{{Data##Cou}}` *<i class="fa fa-arrow-right"></i> `{{Data##Prix}} €` Si votre idée de départ était de pouvoir visualiser la couleur correspondante, il conviendrait d'ajouter une information couleur supplémentaire. Si cette info doit se faire via le dictionnaire, vous avez besoin d'une macro spécifique telle qu'on la trouve par exemple dans la gestion des palettes de couleurs dans tiddlywiki. Il me semble cependant plus logique de passer par la gestion des champs de TiddlyWiki. Si je comprend bien, il s'agit pour vous de gérer un catalogue du genre Couleurs/Prix. La gestion par les champs vous offre plus de possibilités, surtout si les références catalogue sont nombreuses (Voir à ce sujet la critique constructive [[DataTiddlers]] (en fin d'article). Le tiddler "Article x" aura donc 3 champs: *<i class="fa fa-arrow-right"></i> color *<i class="fa fa-arrow-right"></i> color-name *<i class="fa fa-arrow-right"></i> prix Qui seront par exemple restitués comme suit: ``` *<$edit-text class='tc-edit-texteditor' field='color' type="color" tag="input"/> *{{!!color-name}} *{{!!price}} € ``` ;Soit: *<$edit-text class='tc-edit-texteditor' field='color' type="color" tag="input"/> *{{!!color-name}} *{{!!price}} € À chaque référence son tiddler. Ensuite vous avez plein de possibilités pour constituer un catalogue facilement gérable. Peut-on afficher le prix dans la couleur color ? Oui, comme ceci : ``` @@.color-mycolor {{!!price}} €@@ ``` ; soit: @@.color-mycolor {{!!price}} €@@ Avec la feuille de style: ``` <style> .color-mycolor{color:{{!!color-name}};} </style> ``` <style> .color-mycolor{color:{{!!color-name}};} </style> Le champ "color-name" peut inclure une couleur hexa décimale (ex: #FF00FF) ou une couleur nommée (ex: red)
On peut changer la taille de la police (font-size) des icônes de la barre d'outils des tiddlers via un tiddler stylesheet : Voir pour exemple le tiddler $:/cssTiddlersControls ``` .tc-tiddler-frame .tc-tiddler-controls { font-size: 1.75em; } ``` Ceci fonctionne mais entraîne également la modification de la taille des boutons de contrôle des tiddlers en mode écriture qui deviennent trop petits pour être correctement utilisés. Il y a alors deux solutions pour ajuster de manière séparée la taille des icones : 1- En stylant également les icones de l'éditeur: ``` .tc-tiddler-edit-frame .tc-tiddler-controls { font-size: 1.75em; } ``` Ou mieux encore en choisissant une l'unité de taille rem, au lieu de em. Une seule ligne est ainsi suffisante pour fixer la taille des boutons de contrôle d'un tiddler en mode visu et en mode écriture : ``` .tc-tiddler-frame .tc-tiddler-controls { font-size: 1.5rem; } ```
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
\define CheckBox2(On:"Oui", Off:"Non", Con:"#034B78", Coff:"#9c3c3c", Data:"style", tooltip:"Clic" ) <style> .$On$-$Off$tooltip { position: relative; display: inline-block; } .$On$-$Off$tooltip .$On$-$Off$tooltiptext{ visibility: hidden; width: 140px; color: #fff; text-align: center; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 150%; left: 50%; margin-left: -60px; } .$On$-$Off$tooltiptext{ background-color:$Con$; } .$On$-$Off$tooltip .$On$-$Off$tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: $Coff$ transparent transparent transparent; } .$On$-$Off$tooltip:hover .$On$-$Off$tooltiptext { visibility: visible; } .body { background-color:#88888844; margin:0 0; padding:130px 0px; text-align:center; } .body span { vertical-align: middle; } .$On$-$Off$checkbox { display:inline-block; position:relative; text-align:left; width:60px; height:30px; background-color:#22222222; overflow:hidden; -webkit-border-radius:6px; -moz-border-radius:6px; border-radius:6px; } .$On$-$Off$checkbox input { display:block; position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; margin:0 0; cursor:pointer; opacity:0; filter:alpha(opacity=0); z-index:2; } .$On$-$Off$checkbox label { background-color:$Coff$; background-image:-webkit-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:-moz-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:-ms-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:-o-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); -webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.7); -moz-box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.7); box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.7); -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; display:inline-block; width:40px; text-align:center; font:bold 11px/28px Arial,Sans-Serif; color:#CCCCCC; text-shadow:0 -1px 0 rgba(0,0,0,0.7); -webkit-transition:margin-left 0.2s ease-in-out; -moz-transition:margin-left 0.2s ease-in-out; -ms-transition:margin-left 0.2s ease-in-out; -o-transition:margin-left 0.2s ease-in-out; transition:margin-left 0.2s ease-in-out; margin:1px; } .$On$-$Off$checkbox + label { margin-left:19px; background-color:$Coff$; color:#FFFFFF99; } .$On$-$Off$checkbox label:before { content:attr(data-off); } .$On$-$Off$checkbox input:checked + label { margin-left:19px; background-color:$Con$; color:#FFFFFF99; } .$On$-$Off$checkbox input:checked + label:before { content:attr(data-on); } </style> <div class="$On$-$Off$tooltip"> <$checkboxex class="$On$-$Off$checkbox" tiddler="$:/Tiddler Breadcrumbs Flat" index=$Data$ checked="$On$" unchecked="$Off$"> </$checkboxex> <span class="$On$-$Off$tooltiptext">$tooltip$</span> </div> \end <div class="body"> <<CheckBox2 Play Stop "#A93B00" "" "PLAY" "Play">> <<CheckBox2 "Flat" "Black" "#006200" "#2F4858" "style" "Changer la couleur du fil d’Ariane, black ou flat">> <<CheckBox2 "Oui" "Non" "#659B91" "#006B5F" "INDEX" "Oui ou Non il faut choisir">> <<CheckBox2 "YES" "NO" "#034B78" "#222222" "YESNO" "Yes or No?">> </div>
The following content lists all tiddlers tagged //ticket// with a checkbox before each, and checking/unchecking the box changes the value of the field "status" in the corresponding tiddler. ``` <$list filter="[tag[ticket]]"> <$checkbox field="status" checked="open" unchecked="closed" default="closed"> <$link to={{!!title}}><$view field="title"/></$link></$checkbox> </$list> ``` Source: http://tiddlywiki.com/#CheckboxWidget
\define CheckBox2(On:"OUI", Off:"NON", Con:"#034B78", Coff:"#3c3c3c", Data:"style", tooltip:"$tooltip$") <style> .body { /* background-color:#88888844; */ margin:0 0; /* padding:12px 0px; */ text-align:center; } .body span { vertical-align: middle; } .$On$-$Off$checkbox { display:inline-block; position:relative; text-align:left; width:60px; height:30px; background-color:#22222222; /*#22222222*/ overflow:hidden; -webkit-border-radius:6px; -moz-border-radius:6px; border-radius:6px; } .$On$-$Off$checkbox input { display:block; position:absolute; top:0; right:0; bottom:0; left:0; width:100%; height:100%; margin:0 0; cursor:pointer; opacity:0; filter:alpha(opacity=0); z-index:2; } .$On$-$Off$checkbox label { background-color:$Coff$; background-image:-webkit-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:-moz-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:-ms-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:-o-linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); background-image:linear-gradient(-40deg,rgba(0,0,0,0),rgba(255,255,255,0.1),rgba(0,0,0,0.2)); -webkit-box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.7); -moz-box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.7); box-shadow:0 0 0 1px rgba(0,0,0,0.1),0 1px 2px rgba(0,0,0,0.7); -webkit-border-radius:5px; -moz-border-radius:5px; border-radius:5px; display:inline-block; width:40px; text-align:center; font:bold 11px/28px Arial,Sans-Serif; color:#CCCCCC; text-shadow:0 -1px 0 rgba(0,0,0,0.7); -webkit-transition:margin-left 0.2s ease-in-out; -moz-transition:margin-left 0.2s ease-in-out; -ms-transition:margin-left 0.2s ease-in-out; -o-transition:margin-left 0.2s ease-in-out; transition:margin-left 0.2s ease-in-out; margin:1px; } .$On$-$Off$checkbox label:before { content:attr(data-off); } .$On$-$Off$checkbox input:checked + label { margin-left:19px; background-color:$Con$; color:#FFFFFF99; } .$On$-$Off$checkbox input:checked + label:before { content:attr(data-on); } .tooltip { position: relative; font-size: .6em; display: inline-block; vertical-align:middle; border-bottom: 1px dotted black; } .tooltip .tooltiptext { visibility: hidden; width: 120px; background-color: black; color: #fff; text-align: center; border-radius: 6px; padding: 5px 0; position: absolute; z-index: 1; bottom: 150%; left: 50%; margin-left: -60px; } .tooltip .tooltiptext::after { content: ""; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: black transparent transparent transparent; } .tooltip:hover .tooltiptext { visibility: visible; } </style> <div class="tooltip"> <$checkboxex class="$On$-$Off$checkbox" tiddler="$:/Tiddler Breadcrumbs Flat" index=$Data$ checked="$On$" unchecked="$Off$"> </$checkboxex> <span class="tooltiptext">Modifier la couleur du Fil d'Ariane</span> </div> \end <div class="body"> <<CheckBox2 Play Stop "#A93B00">> <<CheckBox2 "Flat" "Black" "#006200" "#2F4858">> <<CheckBox2 "" "" "#006B5F" "#659B91">> <<CheckBox2 "YES" "NO" "#034B78" "#111111">> </div>
<style> .tc-tagged-transparent { background-color:#00000000; .JB { color:#FF0; } } </style> <div class="body"> <span>''Changer la couleur du fil d'Ariane :''</span> <<CheckBox2 "flat" "black" "#006200" "#2F4858" "style" "Changer la couleur du fil d'Ariane">> <br><br><br><p>J'ai créé une nouvelle macro :</p> <<CheckBox2 "OUI" "NON" "#00006299" "#2F485866" "INDEX" "Vraiment ?">> <br><br> `<$checkboxex class="OUI-NONcheckbox" tiddler="$:/Tiddler Breadcrumbs Flat" index="INDEX" checked="OUI" unchecked="NON"> </$checkboxex> ` <br> Style : [[CheckBox]] <br> Code : [[$:/core/modules/widgets/checkboxex.js]] </div>
{{CheckboxWidget||caption}}
! Introduction Le widget checkbox affiche un élément HTML `<input type="checkbox">` qui est dynamiquement lié: *<i class="fa fa-arrow-right"></i> soit à la présence ou à l'absence d'un tag définis sur un tiddler définis *<i class="fa fa-arrow-right"></i> soit à la valeur d'un champ définis sur un tiddler définis. ! Contenu et attributs Le contenu du widget `<$checkbox>` est affiché dans un élément HTML `<label>` immédiatement après la checkbox elle-même. Ce qui veut dire que cliquer sur le contenu inversera la case à cocher. |!Attribut |!Description | |tiddler |titre du tiddler à manipuler (tiddler par défaut: [[current tiddler|Current Tiddler]]) | |tag |Le nom du tag auquel la case à cocher est liée | |invertTag |When set to ''yes'', flips the tag binding logic so that the absence of the tag causes the checkbox to be checked | |field |The name of the field to which the checkbox is bound | |index|<<.from-version "5.1.14">> The index of the //tiddler//, a [[DataTiddler|DataTiddlers]], to which the checkbox is bound<<.tip "be sure to set the //tiddler// correctly">>| |checked |The value of the field corresponding to the checkbox being checked | |unchecked |The value of the field corresponding to the checkbox being unchecked | |default |The default value to use if the field is not defined | |class |The class that will be assigned to the label element | |actions |<<.from-version "5.1.14">> A string containing ActionWidgets to be triggered when the checkbox is checked | |uncheckactions |<<.from-version "5.1.16">> A string containing ActionWidgets to be triggered when the checkbox is unchecked | !! Tag Mode Using the checkbox widget in tag mode requires the ''tag'' attribute to specify the name of the tag. The ''tiddler'' attribute specifies the tiddler to target, defaulting to the current tiddler if not present. This example creates a checkbox that flips the ''done'' tag on the current tiddler: ; wikitext-example-without-html ``` <$checkbox tag="done"> Is it done?</$checkbox> ``` ; Soit: <$checkbox tag="done"> Is it done?</$checkbox> Le tag "done" est ajouté (ou ôté) à la liste des tags de ce tiddler !! Field Mode Using the checkbox widget in field mode requires the ''field'' attribute to specify the name of the field. The ''checked'' and ''unchecked'' attributes specify the values to be assigned to the field to correspond to its checked and unchecked states respectively. The ''default'' attribute is used as a fallback value if the field is not defined. This example creates a checkbox that is checked if the field ''status'' is equal to ''open'' and unchecked if the field is equal to ''closed''. If the field is undefined then it defaults to ''closed'', meaning that the checkbox will be unchecked if the ''status'' field is missing. ; wikitext-example-without-html ``` <$checkbox field="status" checked="open" unchecked="closed" default="closed"> Is it open?</$checkbox><br>''status:'' {{!!status}}>> ``` ; Soit: <$checkbox field="status" checked="open" unchecked="closed" default="closed"> Is it open?</$checkbox><br>''status:'' {{!!status}}>> Le champ "status" de ce tiddler est renseigné soit par la valeur "open", soit par la valeur "closed" suivant que la case à cocher est cochée ou non. !! Index Mode To use the checkbox widget in index mode set the ''index'' attribute to the index of a [[DataTiddler|DataTiddlers]]. The ''checked'' and ''unchecked'' attributes specify the values to be assigned to the index and correspond to its checked and unchecked states respectively. The ''default'' attribute is used as a fallback value if the index is undefined. The example below creates a checkbox that is checked if the index by the name of this tiddler in the tiddler ExampleData is equal to ''selected'' and unchecked if the index is an empty string. If the index is undefined then it defaults to an empty string, meaning the checkbox will be unchecked if the index is missing. ; wikitext-example-without-html <$checkbox tiddler="ExampleData" index=<<currentTiddler>> checked="selected" unchecked="" default=""> Selected?</$checkbox> !! `actions` Attribute This example of using the `actions` attribute shows both the [[Action Set Field Widget|ActionSetFieldWidget]] and [[Action Send Message Widget|ActionSendMessageWidget]] to demonstrate two actions. The [[Set Widget|SetWidget]] uses a filter value to set the value of variable `tag`. The [[Action Send Message Widget|ActionSendMessageWidget]] joins all the tags into one large tag. The [[Action Set Field Widget|ActionSetFieldWidget]] appends the tags as individual tags. In this example, the [[Field Mangler Widget|FieldManglerWidget]] is required for the [[Action Send Message Widget|ActionSendMessageWidget]] but not for [[Action Set Field Widget|ActionSetFieldWidget]]. Faites attention au fait que ''l'action est déclenchée que la case à cocher soit cochée ou décochée''. Iln'y a pas de retour à la situation d'origine possible en décochant la case. It is often necessary to use triple quotes with the `actions` attribute. Alternatively, the attribute can be assigned directly from a variable with `actions=<<my-actions>>`. //Exemple extrait du site officiel à modifier en fonction des données du présent wiki// ``` <$fieldmangler> <$set filter="[[Éditeur]] [[Encryption]] +[tags[]]" name="tag"> <$checkbox actions="""<$action-setfield $field="tags" $value=<<tag>> /><$action-sendmessage $message="tm-add-tag" $param=<<tag>> />""" field="checked" checked="YES" unchecked="NO" > Add tags from tiddlers [[Éditeur]] and [[Encryption]] </$checkbox> </$set> </$fieldmangler> ``` ; Soit: <$fieldmangler> <$set filter="[[Éditeur]] [[Encryption]] +[tags[]]" name="tag"> <$checkbox actions="""<$action-setfield $field="tags" $value=<<tag>> /><$action-sendmessage $message="tm-add-tag" $param=<<tag>> />""" field="checked" checked="YES" unchecked="NO" > Add tags from tiddlers [[Éditeur]] and [[Encryption]] </$checkbox> </$set> </$fieldmangler> Le Tiddler Éditeur est tagué "xxx". Le Tiddler Encryption est tagué "xxx" Cliquer sur la case à cocher aura pour effet d'ajouter à ce tiddler: #Le Tag Tutoriel #Le tag Menu #Le tag Études Menu #De supprimer le tag d'origine "Apprendre" de ce tiddler [ ] Assurer la traduction [ ] Revoir les exemples qui datent (tiddlers et/ou tags n'existant plus!
Source: https://icons8.com/cssload/en/miscellaneous <div class="cssload-jar"> <div class="cssload-mouth"></div> <div class="cssload-neck"></div> <div class="cssload-base"> <div class="cssload-liquid"> </div> <div class="cssload-wave"></div> <div class="cssload-wave"></div> <div class="cssload-bubble"></div> <div class="cssload-bubble"></div> </div> <div class="cssload-bubble"></div> <div class="cssload-bubble"></div> </div> Un CSS rigolot Ne pas oublier la feuille de style associée : [[$:/css-chimie]]
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
Il y a plusieurs manières d'indiquer quels sont les Tiddlers devant être affichés au démarrage *`[list[$:/StoryList]]` *`[tag[TagName]!sort[created]limit[10]]` (1) *`[has[rank]field:rank[1]each:list-item[liste-tiddlers]]` *`[tag[MyTag]]` (1) (1) Le texte inscrit dans la boite "Tiddler par défaut" du panneau de contrôle est évalué comme l'est un filtre. Donc si vous souhaitez voir en page accueil les tiddlers tagués `MyTag` utilisez cette formule tout simplement. Tous les tiddlers comportant ce tag y seront affichés.
*https://github.com/choojs/choo *https://github.com/choojs/choo-handbook/tree/master/content/your-first-choo-app *https://choo.io/ *https://choo.io/docs *https://glitch.com/ *https://glitch.com/edit/#!/choo-animals-starter?path=README.md:1:0 choo is a small framework that helps you build web apps with JavaScript. Package NPM Dans la console windows : npm i choo [img[choo.png]] [img[ChooBird.gif]] [img[ChooCrocodile.gif]] [img[ChooKoala.gif]] [img[ChooLion.gif]] [img[ChooTiger.gif]] [img[ChooWalrus.gif]]
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
{{Circular||caption}}
DOCUMENTATION EN PRÉPARATION.
Sur le principe c'est assez simple: Le code pour la liste des tiddlers (table des matières localisée): `<<list-links filter:"[tag[mon-tag]sort[sub.num]]" "">>` Dans lequel "mon-tag" est le tag appliqué à la liste des tiddlers concernée et ou "sub.num" est champ dans lequel est inscrit le numéro d'ordre (1, 2, 3 etc.) appliqué aux tiddlers de la liste. On peut aussi lister en table: `<<tabs "[tag[mon-tag]sort[sub.num]]" "" "$:/state/tab3" "tc-vertical">>`
Un très bon site de présentation multiformes des couleurs du web. Déniché par @oxydum sur le [ext[forum français TiddlyWiki|https://forum.tiddlywiki.fr/t/tw-scripts-un-wiki-prolifique/577/7?u=prolegomenes]]
<pre><$view field="text"/></pre>
<div class="main"> <div class="twelve left"> Ces polices de caractères ont l'avantage d'être pré-installées sur de nombreux systèmes d'exploitation. Bien que tous les systèmes ne disposent pas des mêmes polices installées, vous pouvez utiliser une série de polices Web similaires que l'on retrouvera sur les différents systèmes que vous souhaitez prendre en charge. Si vous souhaitez utiliser des polices autres que celles pré-installées, à partir de CSS3, vous pouvez aller sur le site [ext[Web Fonts|https://www.cssfontstack.com/Web-Fonts]].</div> <div class="styling three"> !!Sans-serif *Arial *Arial Black *Arial Narrow *Arial Rounded MT Bold *Avant Garde *Calibri *Candara *Century Gothic *Franklin Gothic Medium *Futura *Geneva *Gill Sans *Helvetica *Impact *Lucida Grande *Optima *Segoe UI *Tahoma *Trebuchet MS *Verdana </div> <div class="styling three"> !!Sherif *Big Caslon *Bodoni MT *Book Antiqua *Calisto MT *Cambria *Didot *Garamond *Georgia *Goudy Old Style *Hoefler Text *Lucida Bright *Palatino *Perpetua *Rockwell *Rockwell Extra Bold *Baskerville *Times New Roman </div> <div class="styling three"> !!Monospaced *Monospaced *Consolas *Courier New *Lucida Console *Lucida Sans Typewriter *Monaco *Andale Mono </div> <div class="styling three"> !!Fantasy *Copperplate *Papyrus *Script *Brush Script MT </div> </div>
``` .col -* (1 to 12) _xs-* (1 to 12) _sm-* (1 to 12) _md-* (1 to 12) _lg-* (1 to 12) e.g. `<div class="col-12_lg-8_md-6_sm-3_xs-1">...</div>` ``` ``` .col-first (or with key-suffixes _md-first...) .col-last (or with key-suffixes _md-last...) ```
<center> <h2>Color Values</h2> <table border=""> <tbody><tr><th colspan="5" align="center">Blancs</th></tr> <tr> <th>Couleur</th> <th>Rouge</th> <th>Vert</th> <th>Bleu</th> <th>Échantillon</th> </tr> <tr><td>antique_white</td> <td>250</td> <td>235</td> <td>215</td> <td style="background:#FAEBD7; color:#000; ">#FAEBD7</td></tr> <tr><td>azure</td> <td>240</td> <td>255</td> <td>255</td> <td style="background:#F0FFFF; color:#000; ">#F0FFFF</td></tr> <tr><td>bisque</td> <td>255</td> <td>228</td> <td>196</td> <td style="background:#FFE4C4; color:#000; ">#FFE4C4</td></tr> <tr><td>blanched_almond</td> <td>255</td> <td>235</td> <td>205</td> <td style="background:#FFEBCD; color:#000; ">#FFEBCD</td></tr> <tr><td>cornsilk</td> <td>255</td> <td>248</td> <td>220</td> <td style="background:#FFF8DC; color:#000; ">#FFF8DC</td></tr> <tr><td>eggshell</td> <td>252</td> <td>230</td> <td>201</td> <td style="background:#FCE6C9; color:#000; ">#FCE6C9</td></tr> <tr><td>floral_white</td> <td>255</td> <td>250</td> <td>240</td> *<td style="background:#FFFAF0; color:#000; ">#FFFAF0</td></tr> <tr><td>gainsboro</td> <td>220</td> <td>220</td> <td>220</td> <td bgcolor="DCDCDC"><font color="DCDCDC">Sample</font></td></tr> <tr><td>ghost_white</td> <td>248</td> <td>248</td> <td>255</td> <td bgcolor="F8F8FF"><font color="F8F8FF">Sample</font></td></tr> <tr><td>honeydew</td> <td>240</td> <td>255</td> <td>240</td> <td bgcolor="F0FFF0"><font color="F0FFF0">Sample</font></td></tr> <tr><td>ivory</td> <td>255</td> <td>255</td> <td>240</td> <td bgcolor="FFFFF0"><font color="FFFFF0">Sample</font></td></tr> <tr><td>lavender</td> <td>230</td> <td>230</td> <td>250</td> <td bgcolor="E6E6FA"><font color="E6E6FA">Sample</font></td></tr> <tr><td>lavender_blush</td> <td>255</td> <td>240</td> <td>245</td> <td bgcolor="FFF0F5"><font color="FFF0F5">Sample</font></td></tr> <tr><td>lemon_chiffon</td> <td>255</td> <td>250</td> <td>205</td> <td bgcolor="FFFACD"><font color="FFFACD">Sample</font></td></tr> <tr><td>linen</td> <td>250</td> <td>240</td> <td>230</td> <td bgcolor="FAF0E6"><font color="FAF0E6">Sample</font></td></tr> <tr><td>mint_cream</td> <td>245</td> <td>255</td> <td>250</td> <td bgcolor="F5FFFA"><font color="F5FFFA">Sample</font></td></tr> <tr><td>misty_rose</td> <td>255</td> <td>228</td> <td>225</td> <td bgcolor="FFE4E1"><font color="FFE4E1">Sample</font></td></tr> <tr><td>moccasin</td> <td>255</td> <td>228</td> <td>181</td> <td bgcolor="FFE4B5"><font color="FFE4B5">Sample</font></td></tr> <tr><td>navajo_white</td> <td>255</td> <td>222</td> <td>173</td> <td bgcolor="FFDEAD"><font color="FFDEAD">Sample</font></td></tr> <tr><td>old_lace</td> <td>253</td> <td>245</td> <td>230</td> <td bgcolor="FDF5E6"><font color="FDF5E6">Sample</font></td></tr> <tr><td>papaya_whip</td> <td>255</td> <td>239</td> <td>213</td> <td bgcolor="FFEFD5"><font color="FFEFD5">Sample</font></td></tr> <tr><td>peach_puff</td> <td>255</td> <td>218</td> <td>185</td> <td bgcolor="FFDAB9"><font color="FFDAB9">Sample</font></td></tr> <tr><td>seashell</td> <td>255</td> <td>245</td> <td>238</td> <td bgcolor="FFF5EE"><font color="FFF5EE">Sample</font></td></tr> <tr><td>snow</td> <td>255</td> <td>250</td> <td>250</td> <td bgcolor="FFFAFA"><font color="FFFAFA">Sample</font></td></tr> <tr><td>thistle</td> <td>216</td> <td>191</td> <td>216</td> <td bgcolor="D8BFD8"><font color="D8BFD8">Sample</font></td></tr> <tr><td>titanium_white</td> <td>252</td> <td>255</td> <td>240</td> <td bgcolor="FCFFF0"><font color="FCFFF0">Sample</font></td></tr> <tr><td>wheat</td> <td>245</td> <td>222</td> <td>179</td> <td bgcolor="F5DEB3"><font color="F5DEB3">Sample</font></td></tr> <tr><td>white</td> <td>255</td> <td>255</td> <td>255</td> <td bgcolor="FFFFFF"><font color="FFFFFF">Sample</font></td></tr> <tr><td>white_smoke</td> <td>245</td> <td>245</td> <td>245</td> <td bgcolor="F5F5F5"><font color="F5F5F5">Sample</font></td></tr> <tr><td>zinc_white</td> <td>253</td> <td>248</td> <td>255</td> <td bgcolor="FDF8FF"><font color="FDF8FF">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Greys</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>cold_grey</td> <td>128</td> <td>138</td> <td>135</td> <td bgcolor="808A87"><font color="808A87">Sample</font></td></tr> <tr><td>dim_grey</td> <td>105</td> <td>105</td> <td>105</td> <td bgcolor="696969"><font color="696969">Sample</font></td></tr> <tr><td>grey</td> <td>192</td> <td>192</td> <td>192</td> <td bgcolor="C0C0C0"><font color="C0C0C0">Sample</font></td></tr> <tr><td>light_grey</td> <td>211</td> <td>211</td> <td>211</td> <td bgcolor="D3D3D3"><font color="D3D3D3">Sample</font></td></tr> <tr><td>slate_grey</td> <td>112</td> <td>128</td> <td>144</td> <td bgcolor="708090"><font color="708090">Sample</font></td></tr> <tr><td>slate_grey_dark</td> <td>47</td> <td>79</td> <td>79</td> <td bgcolor="2F4F4F"><font color="2F4F4F">Sample</font></td></tr> <tr><td>slate_grey_light</td> <td>119</td> <td>136</td> <td>153</td> <td bgcolor="778899"><font color="778899">Sample</font></td></tr> <tr><td>warm_grey</td> <td>128</td> <td>128</td> <td>105</td> <td bgcolor="808069"><font color="808069">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Blacks</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>black</td> <td>0</td> <td>0</td> <td>0</td> <td bgcolor="000000"><font color="000000">Sample</font></td></tr> <tr><td>ivory_black</td> <td>41</td> <td>36</td> <td>33</td> <td bgcolor="292421"><font color="292421">Sample</font></td></tr> <tr><td>lamp_black</td> <td>46</td> <td>71</td> <td>59</td> <td bgcolor="2E473B"><font color="2E473B">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Reds</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>alizarin_crimson</td> <td>227</td> <td>38</td> <td>54</td> <td bgcolor="E32636"><font color="E32636">Sample</font></td></tr> <tr><td>brick</td> <td>156</td> <td>102</td> <td>31</td> <td bgcolor="9C661F"><font color="9C661F">Sample</font></td></tr> <tr><td>cadmium_red_deep</td> <td>227</td> <td>23</td> <td>13</td> <td bgcolor="E3170D"><font color="E3170D">Sample</font></td></tr> <tr><td>coral</td> <td>255</td> <td>127</td> <td>80</td> <td bgcolor="FF7F50"><font color="FF7F50">Sample</font></td></tr> <tr><td>coral_light</td> <td>240</td> <td>128</td> <td>128</td> <td bgcolor="F08080"><font color="F08080">Sample</font></td></tr> <tr><td>deep_pink</td> <td>255</td> <td>20</td> <td>147</td> <td bgcolor="FF1493"><font color="FF1493">Sample</font></td></tr> <tr><td>english_red</td> <td>212</td> <td>61</td> <td>26</td> <td bgcolor="D43D1A"><font color="D43D1A">Sample</font></td></tr> <tr><td>firebrick</td> <td>178</td> <td>34</td> <td>34</td> <td bgcolor="B22222"><font color="B22222">Sample</font></td></tr> <tr><td>geranium_lake</td> <td>227</td> <td>18</td> <td>48</td> <td bgcolor="E31230"><font color="E31230">Sample</font></td></tr> <tr><td>hot_pink</td> <td>255</td> <td>105</td> <td>180</td> <td bgcolor="FF69B4"><font color="FF69B4">Sample</font></td></tr> <tr><td>indian_red</td> <td>176</td> <td>23</td> <td>31</td> <td bgcolor="B0171F"><font color="B0171F">Sample</font></td></tr> <tr><td>light_salmon</td> <td>255</td> <td>160</td> <td>122</td> <td bgcolor="FFA07A"><font color="FFA07A">Sample</font></td></tr> <tr><td>madder_lake_deep</td> <td>227</td> <td>46</td> <td>48</td> <td bgcolor="E32E30"><font color="E32E30">Sample</font></td></tr> <tr><td>maroon</td> <td>176</td> <td>48</td> <td>96</td> <td bgcolor="B03060"><font color="B03060">Sample</font></td></tr> <tr><td>pink</td> <td>255</td> <td>192</td> <td>203</td> <td bgcolor="FFC0CB"><font color="FFC0CB">Sample</font></td></tr> <tr><td>pink_light</td> <td>255</td> <td>182</td> <td>193</td> <td bgcolor="FFB6C1"><font color="FFB6C1">Sample</font></td></tr> <tr><td>raspberry</td> <td>135</td> <td>38</td> <td>87</td> <td bgcolor="872657"><font color="872657">Sample</font></td></tr> <tr><td>red</td> <td>255</td> <td>0</td> <td>0</td> <td bgcolor="FF0000"><font color="FF0000">Sample</font></td></tr> <tr><td>rose_madder</td> <td>227</td> <td>54</td> <td>56</td> <td bgcolor="E33638"><font color="E33638">Sample</font></td></tr> <tr><td>salmon</td> <td>250</td> <td>128</td> <td>114</td> <td bgcolor="FA8072"><font color="FA8072">Sample</font></td></tr> <tr><td>tomato</td> <td>255</td> <td>99</td> <td>71</td> <td bgcolor="FF6347"><font color="FF6347">Sample</font></td></tr> <tr><td>venetian_red</td> <td>212</td> <td>26</td> <td>31</td> <td bgcolor="D41A1F"><font color="D41A1F">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Browns</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>beige</td> <td>163</td> <td>148</td> <td>128</td> <td bgcolor="A39480"><font color="A39480">Sample</font></td></tr> <tr><td>brown</td> <td>128</td> <td>42</td> <td>42</td> <td bgcolor="802A2A"><font color="802A2A">Sample</font></td></tr> <tr><td>brown_madder</td> <td>219</td> <td>41</td> <td>41</td> <td bgcolor="DB2929"><font color="DB2929">Sample</font></td></tr> <tr><td>brown_ochre</td> <td>135</td> <td>66</td> <td>31</td> <td bgcolor="87421F"><font color="87421F">Sample</font></td></tr> <tr><td>burlywood</td> <td>222</td> <td>184</td> <td>135</td> <td bgcolor="DEB887"><font color="DEB887">Sample</font></td></tr> <tr><td>burnt_sienna</td> <td>138</td> <td>54</td> <td>15</td> <td bgcolor="8A360F"><font color="8A360F">Sample</font></td></tr> <tr><td>burnt_umber</td> <td>138</td> <td>51</td> <td>36</td> <td bgcolor="8A3324"><font color="8A3324">Sample</font></td></tr> <tr><td>chocolate</td> <td>210</td> <td>105</td> <td>30</td> <td bgcolor="D2691E"><font color="D2691E">Sample</font></td></tr> <tr><td>deep_ochre</td> <td>115</td> <td>61</td> <td>26</td> <td bgcolor="733D1A"><font color="733D1A">Sample</font></td></tr> <tr><td>flesh</td> <td>255</td> <td>125</td> <td>64</td> <td bgcolor="FF7D40"><font color="FF7D40">Sample</font></td></tr> <tr><td>flesh_ochre</td> <td>255</td> <td>87</td> <td>33</td> <td bgcolor="FF5721"><font color="FF5721">Sample</font></td></tr> <tr><td>gold_ochre</td> <td>199</td> <td>120</td> <td>38</td> <td bgcolor="C77826"><font color="C77826">Sample</font></td></tr> <tr><td>greenish_umber</td> <td>255</td> <td>61</td> <td>13</td> <td bgcolor="FF3D0D"><font color="FF3D0D">Sample</font></td></tr> <tr><td>khaki</td> <td>240</td> <td>230</td> <td>140</td> <td bgcolor="F0E68C"><font color="F0E68C">Sample</font></td></tr> <tr><td>khaki_dark</td> <td>189</td> <td>183</td> <td>107</td> <td bgcolor="BDB76B"><font color="BDB76B">Sample</font></td></tr> <tr><td>light_beige</td> <td>245</td> <td>245</td> <td>220</td> <td bgcolor="F5F5DC"><font color="F5F5DC">Sample</font></td></tr> <tr><td>peru</td> <td>205</td> <td>133</td> <td>63</td> <td bgcolor="CD853F"><font color="CD853F">Sample</font></td></tr> <tr><td>rosy_brown</td> <td>188</td> <td>143</td> <td>143</td> <td bgcolor="BC8F8F"><font color="BC8F8F">Sample</font></td></tr> <tr><td>raw_sienna</td> <td>199</td> <td>97</td> <td>20</td> <td bgcolor="C76114"><font color="C76114">Sample</font></td></tr> <tr><td>raw_umber</td> <td>115</td> <td>74</td> <td>18</td> <td bgcolor="734A12"><font color="734A12">Sample</font></td></tr> <tr><td>sepia</td> <td>94</td> <td>38</td> <td>18</td> <td bgcolor="5E2612"><font color="5E2612">Sample</font></td></tr> <tr><td>sienna</td> <td>160</td> <td>82</td> <td>45</td> <td bgcolor="A0522D"><font color="A0522D">Sample</font></td></tr> <tr><td>saddle_brown</td> <td>139</td> <td>69</td> <td>19</td> <td bgcolor="8B4513"><font color="8B4513">Sample</font></td></tr> <tr><td>sandy_brown</td> <td>244</td> <td>164</td> <td>96</td> <td bgcolor="F4A460"><font color="F4A460">Sample</font></td></tr> <tr><td>tan</td> <td>210</td> <td>180</td> <td>140</td> <td bgcolor="D2B48C"><font color="D2B48C">Sample</font></td></tr> <tr><td>van_dyke_brown</td> <td>94</td> <td>38</td> <td>5</td> <td bgcolor="5E2605"><font color="5E2605">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Oranges</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>cadmium_orange</td> <td>255</td> <td>97</td> <td>3</td> <td bgcolor="FF6103"><font color="FF6103">Sample</font></td></tr> <tr><td>cadmium_red_light</td> <td>255</td> <td>3</td> <td>13</td> <td bgcolor="FF030D"><font color="FF030D">Sample</font></td></tr> <tr><td>carrot</td> <td>237</td> <td>145</td> <td>33</td> <td bgcolor="ED9121"><font color="ED9121">Sample</font></td></tr> <tr><td>dark_orange</td> <td>255</td> <td>140</td> <td>0</td> <td bgcolor="FF8C00"><font color="FF8C00">Sample</font></td></tr> <tr><td>mars_orange</td> <td>150</td> <td>69</td> <td>20</td> <td bgcolor="964514"><font color="964514">Sample</font></td></tr> <tr><td>mars_yellow</td> <td>227</td> <td>112</td> <td>26</td> <td bgcolor="E3701A"><font color="E3701A">Sample</font></td></tr> <tr><td>orange</td> <td>255</td> <td>128</td> <td>0</td> <td bgcolor="FF8000"><font color="FF8000">Sample</font></td></tr> <tr><td>orange_red</td> <td>255</td> <td>69</td> <td>0</td> <td bgcolor="FF4500"><font color="FF4500">Sample</font></td></tr> <tr><td>yellow_ochre</td> <td>227</td> <td>130</td> <td>23</td> <td bgcolor="E38217"><font color="E38217">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Yellows</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>aureoline_yellow</td> <td>255</td> <td>168</td> <td>36</td> <td bgcolor="FFA824"><font color="FFA824">Sample</font></td></tr> <tr><td>banana</td> <td>227</td> <td>207</td> <td>87</td> <td bgcolor="E3CF57"><font color="E3CF57">Sample</font></td></tr> <tr><td>cadmium_lemon</td> <td>255</td> <td>227</td> <td>3</td> <td bgcolor="FFE303"><font color="FFE303">Sample</font></td></tr> <tr><td>cadmium_yellow</td> <td>255</td> <td>153</td> <td>18</td> <td bgcolor="FF9912"><font color="FF9912">Sample</font></td></tr> <tr><td>cadmium_yellow_light</td> <td>255</td> <td>176</td> <td>15</td> <td bgcolor="FFB00F"><font color="FFB00F">Sample</font></td></tr> <tr><td>gold</td> <td>255</td> <td>215</td> <td>0</td> <td bgcolor="FFD700"><font color="FFD700">Sample</font></td></tr> <tr><td>goldenrod</td> <td>218</td> <td>165</td> <td>32</td> <td bgcolor="DAA520"><font color="DAA520">Sample</font></td></tr> <tr><td>goldenrod_dark</td> <td>184</td> <td>134</td> <td>11</td> <td bgcolor="B8860B"><font color="B8860B">Sample</font></td></tr> <tr><td>goldenrod_light</td> <td>250</td> <td>250</td> <td>210</td> <td bgcolor="FAFAD2"><font color="FAFAD2">Sample</font></td></tr> <tr><td>goldenrod_pale</td> <td>238</td> <td>232</td> <td>170</td> <td bgcolor="EEE8AA"><font color="EEE8AA">Sample</font></td></tr> <tr><td>light_goldenrod</td> <td>238</td> <td>221</td> <td>130</td> <td bgcolor="EEDD82"><font color="EEDD82">Sample</font></td></tr> <tr><td>melon</td> <td>227</td> <td>168</td> <td>105</td> <td bgcolor="E3A869"><font color="E3A869">Sample</font></td></tr> <tr><td>naples_yellow_deep</td> <td>255</td> <td>168</td> <td>18</td> <td bgcolor="FFA812"><font color="FFA812">Sample</font></td></tr> <tr><td>yellow</td> <td>255</td> <td>255</td> <td>0</td> <td bgcolor="FFFF00"><font color="FFFF00">Sample</font></td></tr> <tr><td>yellow_light</td> <td>255</td> <td>255</td> <td>224</td> <td bgcolor="FFFFE0"><font color="FFFFE0">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Greens</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>chartreuse</td> <td>127</td> <td>255</td> <td>0</td> <td bgcolor="7FFF00"><font color="7FFF00">Sample</font></td></tr> <tr><td>chrome_oxide_green</td> <td>102</td> <td>128</td> <td>20</td> <td bgcolor="668014"><font color="668014">Sample</font></td></tr> <tr><td>cinnabar_green</td> <td>97</td> <td>179</td> <td>41</td> <td bgcolor="61B329"><font color="61B329">Sample</font></td></tr> <tr><td>cobalt_green</td> <td>61</td> <td>145</td> <td>64</td> <td bgcolor="3D9140"><font color="3D9140">Sample</font></td></tr> <tr><td>emerald_green</td> <td>0</td> <td>201</td> <td>87</td> <td bgcolor="00C957"><font color="00C957">Sample</font></td></tr> <tr><td>forest_green</td> <td>34</td> <td>139</td> <td>34</td> <td bgcolor="228B22"><font color="228B22">Sample</font></td></tr> <tr><td>green</td> <td>0</td> <td>255</td> <td>0</td> <td bgcolor="00FF00"><font color="00FF00">Sample</font></td></tr> <tr><td>green_dark</td> <td>0</td> <td>100</td> <td>0</td> <td bgcolor="006400"><font color="006400">Sample</font></td></tr> <tr><td>green_pale</td> <td>152</td> <td>251</td> <td>152</td> <td bgcolor="98FB98"><font color="98FB98">Sample</font></td></tr> <tr><td>green_yellow</td> <td>173</td> <td>255</td> <td>47</td> <td bgcolor="ADFF2F"><font color="ADFF2F">Sample</font></td></tr> <tr><td>lawn_green</td> <td>124</td> <td>252</td> <td>0</td> <td bgcolor="7CFC00"><font color="7CFC00">Sample</font></td></tr> <tr><td>lime_green</td> <td>50</td> <td>205</td> <td>50</td> <td bgcolor="32CD32"><font color="32CD32">Sample</font></td></tr> <tr><td>mint</td> <td>189</td> <td>252</td> <td>201</td> <td bgcolor="BDFCC9"><font color="BDFCC9">Sample</font></td></tr> <tr><td>olive</td> <td>59</td> <td>94</td> <td>43</td> <td bgcolor="3B5E2B"><font color="3B5E2B">Sample</font></td></tr> <tr><td>olive_drab</td> <td>107</td> <td>142</td> <td>35</td> <td bgcolor="6B8E23"><font color="6B8E23">Sample</font></td></tr> <tr><td>olive_green_dark</td> <td>85</td> <td>107</td> <td>47</td> <td bgcolor="556B2F"><font color="556B2F">Sample</font></td></tr> <tr><td>permanent_green</td> <td>10</td> <td>201</td> <td>43</td> <td bgcolor="0AC92B"><font color="0AC92B">Sample</font></td></tr> <tr><td>sap_green</td> <td>48</td> <td>128</td> <td>20</td> <td bgcolor="308014"><font color="308014">Sample</font></td></tr> <tr><td>sea_green</td> <td>46</td> <td>139</td> <td>87</td> <td bgcolor="2E8B57"><font color="2E8B57">Sample</font></td></tr> <tr><td>sea_green_dark</td> <td>143</td> <td>188</td> <td>143</td> <td bgcolor="8FBC8F"><font color="8FBC8F">Sample</font></td></tr> <tr><td>sea_green_medium</td> <td>60</td> <td>179</td> <td>113</td> <td bgcolor="3CB371"><font color="3CB371">Sample</font></td></tr> <tr><td>sea_green_light</td> <td>32</td> <td>178</td> <td>170</td> <td bgcolor="20B2AA"><font color="20B2AA">Sample</font></td></tr> <tr><td>spring_green</td> <td>0</td> <td>255</td> <td>127</td> <td bgcolor="00FF7F"><font color="00FF7F">Sample</font></td></tr> <tr><td>spring_green_medium</td> <td>0</td> <td>250</td> <td>154</td> <td bgcolor="00FA9A"><font color="00FA9A">Sample</font></td></tr> <tr><td>terre_verte</td> <td>56</td> <td>94</td> <td>15</td> <td bgcolor="385E0F"><font color="385E0F">Sample</font></td></tr> <tr><td>viridian_light</td> <td>110</td> <td>255</td> <td>112</td> <td bgcolor="6EFF70"><font color="6EFF70">Sample</font></td></tr> <tr><td>yellow_green</td> <td>154</td> <td>205</td> <td>50</td> <td bgcolor="9ACD32"><font color="9ACD32">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Cyans</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>aquamarine</td> <td>127</td> <td>255</td> <td>212</td> <td bgcolor="7FFFD4"><font color="7FFFD4">Sample</font></td></tr> <tr><td>aquamarine_medium</td> <td>102</td> <td>205</td> <td>170</td> <td bgcolor="66CDAA"><font color="66CDAA">Sample</font></td></tr> <tr><td>cyan</td> <td>0</td> <td>255</td> <td>255</td> <td bgcolor="00FFFF"><font color="00FFFF">Sample</font></td></tr> <tr><td>cyan_white</td> <td>224</td> <td>255</td> <td>255</td> <td bgcolor="E0FFFF"><font color="E0FFFF">Sample</font></td></tr> <tr><td>turquoise</td> <td>64</td> <td>224</td> <td>208</td> <td bgcolor="40E0D0"><font color="40E0D0">Sample</font></td></tr> <tr><td>turquoise_dark</td> <td>0</td> <td>206</td> <td>209</td> <td bgcolor="00CED1"><font color="00CED1">Sample</font></td></tr> <tr><td>turquoise_medium</td> <td>72</td> <td>209</td> <td>204</td> <td bgcolor="48D1CC"><font color="48D1CC">Sample</font></td></tr> <tr><td>turquoise_pale</td> <td>175</td> <td>238</td> <td>238</td> <td bgcolor="AFEEEE"><font color="AFEEEE">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Blues</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>alice_blue</td> <td>240</td> <td>248</td> <td>255</td> <td bgcolor="F0F8FF"><font color="F0F8FF">Sample</font></td></tr> <tr><td>blue</td> <td>0</td> <td>0</td> <td>255</td> <td bgcolor="0000FF"><font color="0000FF">Sample</font></td></tr> <tr><td>blue_light</td> <td>173</td> <td>216</td> <td>230</td> <td bgcolor="ADD8E6"><font color="ADD8E6">Sample</font></td></tr> <tr><td>blue_medium</td> <td>0</td> <td>0</td> <td>205</td> <td bgcolor="0000CD"><font color="0000CD">Sample</font></td></tr> <tr><td>cadet</td> <td>95</td> <td>158</td> <td>160</td> <td bgcolor="5F9EA0"><font color="5F9EA0">Sample</font></td></tr> <tr><td>cobalt</td> <td>61</td> <td>89</td> <td>171</td> <td bgcolor="3D59AB"><font color="3D59AB">Sample</font></td></tr> <tr><td>cornflower</td> <td>100</td> <td>149</td> <td>237</td> <td bgcolor="6495ED"><font color="6495ED">Sample</font></td></tr> <tr><td>cerulean</td> <td>5</td> <td>184</td> <td>204</td> <td bgcolor="05B8CC"><font color="05B8CC">Sample</font></td></tr> <tr><td>dodger_blue</td> <td>30</td> <td>144</td> <td>255</td> <td bgcolor="1E90FF"><font color="1E90FF">Sample</font></td></tr> <tr><td>indigo</td> <td>8</td> <td>46</td> <td>84</td> <td bgcolor="082E54"><font color="082E54">Sample</font></td></tr> <tr><td>manganese_blue</td> <td>3</td> <td>168</td> <td>158</td> <td bgcolor="03A89E"><font color="03A89E">Sample</font></td></tr> <tr><td>midnight_blue</td> <td>25</td> <td>25</td> <td>112</td> <td bgcolor="191970"><font color="191970">Sample</font></td></tr> <tr><td>navy</td> <td>0</td> <td>0</td> <td>128</td> <td bgcolor="000080"><font color="000080">Sample</font></td></tr> <tr><td>peacock</td> <td>51</td> <td>161</td> <td>201</td> <td bgcolor="33A1C9"><font color="33A1C9">Sample</font></td></tr> <tr><td>powder_blue</td> <td>176</td> <td>224</td> <td>230</td> <td bgcolor="B0E0E6"><font color="B0E0E6">Sample</font></td></tr> <tr><td>royal_blue</td> <td>65</td> <td>105</td> <td>225</td> <td bgcolor="4169E1"><font color="4169E1">Sample</font></td></tr> <tr><td>slate_blue</td> <td>106</td> <td>90</td> <td>205</td> <td bgcolor="6A5ACD"><font color="6A5ACD">Sample</font></td></tr> <tr><td>slate_blue_dark</td> <td>72</td> <td>61</td> <td>139</td> <td bgcolor="483D8B"><font color="483D8B">Sample</font></td></tr> <tr><td>slate_blue_light</td> <td>132</td> <td>112</td> <td>255</td> <td bgcolor="8470FF"><font color="8470FF">Sample</font></td></tr> <tr><td>slate_blue_medium</td> <td>123</td> <td>104</td> <td>238</td> <td bgcolor="7B68EE"><font color="7B68EE">Sample</font></td></tr> <tr><td>sky_blue</td> <td>135</td> <td>206</td> <td>235</td> <td bgcolor="87CEEB"><font color="87CEEB">Sample</font></td></tr> <tr><td>sky_blue_deep</td> <td>0</td> <td>191</td> <td>255</td> <td bgcolor="00BFFF"><font color="00BFFF">Sample</font></td></tr> <tr><td>sky_blue_light</td> <td>135</td> <td>206</td> <td>250</td> <td bgcolor="87CEFA"><font color="87CEFA">Sample</font></td></tr> <tr><td>steel_blue</td> <td>70</td> <td>130</td> <td>180</td> <td bgcolor="4682B4"><font color="4682B4">Sample</font></td></tr> <tr><td>steel_blue_light</td> <td>176</td> <td>196</td> <td>222</td> <td bgcolor="B0C4DE"><font color="B0C4DE">Sample</font></td></tr> <tr><td>turquoise_blue</td> <td>0</td> <td>199</td> <td>140</td> <td bgcolor="00C78C"><font color="00C78C">Sample</font></td></tr> <tr><td>ultramarine</td> <td>18</td> <td>10</td> <td>143</td> <td bgcolor="120A8F"><font color="120A8F">Sample</font></td></tr> </tbody></table> <br><br> <table border=""> <tbody><tr><th colspan="5" align="center">Magentas</th></tr> <tr> <th>Color</th> <th>Red</th> <th>Green</th> <th>Blue</th> <th>Sample</th> </tr> <tr><td>blue_violet</td> <td>138</td> <td>43</td> <td>226</td> <td bgcolor="8A2BE2"><font color="8A2BE2">Sample</font></td></tr> <tr><td>cobalt_violet_deep</td> <td>145</td> <td>33</td> <td>158</td> <td bgcolor="91219E"><font color="91219E">Sample</font></td></tr> <tr><td>magenta</td> <td>255</td> <td>0</td> <td>255</td> <td bgcolor="FF00FF"><font color="FF00FF">Sample</font></td></tr> <tr><td>orchid</td> <td>218</td> <td>112</td> <td>214</td> <td bgcolor="DA70D6"><font color="DA70D6">Sample</font></td></tr> <tr><td>orchid_dark</td> <td>153</td> <td>50</td> <td>204</td> <td bgcolor="9932CC"><font color="9932CC">Sample</font></td></tr> <tr><td>orchid_medium</td> <td>186</td> <td>85</td> <td>211</td> <td bgcolor="BA55D3"><font color="BA55D3">Sample</font></td></tr> <tr><td>permanent_red_violet</td> <td>219</td> <td>38</td> <td>69</td> <td bgcolor="DB2645"><font color="DB2645">Sample</font></td></tr> <tr><td>plum</td> <td>221</td> <td>160</td> <td>221</td> <td bgcolor="DDA0DD"><font color="DDA0DD">Sample</font></td></tr> <tr><td>purple</td> <td>160</td> <td>32</td> <td>240</td> <td bgcolor="A020F0"><font color="A020F0">Sample</font></td></tr> <tr><td>purple_medium</td> <td>147</td> <td>112</td> <td>219</td> <td bgcolor="9370DB"><font color="9370DB">Sample</font></td></tr> <tr><td>ultramarine_violet</td> <td>92</td> <td>36</td> <td>110</td> <td bgcolor="5C246E"><font color="5C246E">Sample</font></td></tr> <tr><td>violet</td> <td>143</td> <td>94</td> <td>153</td> <td bgcolor="8F5E99"><font color="8F5E99">Sample</font></td></tr> <tr><td>violet_dark</td> <td>148</td> <td>0</td> <td>211</td> <td bgcolor="9400D3"><font color="9400D3">Sample</font></td></tr> <tr><td>violet_red</td> <td>208</td> <td>32</td> <td>144</td> <td bgcolor="D02090"><font color="D02090">Sample</font></td></tr> <tr><td>violet_red_medium</td> <td>199</td> <td>21</td> <td>133</td> <td bgcolor="C71585"><font color="C71585">Sample</font></td></tr> <tr><td>violet_red_pale</td> <td>219</td> <td>112</td> <td>147</td> <td bgcolor="DB7093"><font color="DB7093">Sample</font></td></tr> </tbody></table> </center>
{{ColorDictionary||caption}}
<div class="column col-sm-12"> <div class="toast toast-error"> La feuille de style entre en conflit avec [[Spectre]] </div> </div> La feuille de style des colonnes vous permet de présenter du contenu à l’intérieur d’un tiddler divisé en colonnes. Le contenu s’écoule pour égaler les hauteurs des colonnes et la vue est sensible à la largeur du tiddler, par exemple affectée par la largeur de l’appareil. @@color:silver; /// Mat von TWaddle//@@
!!{{!!caption}} Les filtres que nous avons examinés jusqu'ici n'ont impliqué qu'une seule étape: On peut également grouper plusieurs étapes ensemble comme ci-après:
Commander plugin is a tool for batch operations on tiddlers including the following features: * Bulk tiddler creation/deletion * Tag operation: add, remove, replace * Field operation: add, remove, set field value * ''SNR'', search and replace in all fields including text, tags, title, and common fields * ''Inspect'', to review and inspect tiddlers in one place, scroll among them and edit all fields (including common fields), tags, text (title is an exception!) * log, create logs of all operations * Search, //save and load// any combination of filter search
Les Tiddlers de classes CSS ci-dessous commentés ne sont pas tagués `$:/tags/Stylesheet`, mais bordées `<style>...</style>` et sont fonctionnels, prenant souvent préséance sur les tiddlers CSS du core de TW5
Ces Feuilles de style ne sont plus actives... Mais peuvent le redevenir. Ilsuffit de les taguer [[$:/tags/Stylesheet]].
<<css "" "" "" "[[$:/plugins/danielo/encryptTiddler/styles]]">>
<<css "" "" "" "$:/_TWaddle/fields2table/Stylesheet">>
<<css "" "" "" "[[$:/floating-image-css]]">>
Ce plugin est déprécié. Utiliser plutôt le plugin [[Comments|$:/plugins/tiddlywiki/comments]]
<<css "" "" "" "[[$:/cssContact]]">>
<<css "" "" "" "[[$:/cssGridLex]] et [[$:/cssGridLexDemo]]">>
<<css "" "" "" "[[$:/bimlas/jump-to-top/stylesheet]]">>
<<css "" "" "" "[[$:/tesseract/stylesheets/marker]]">>
<<css "" "" "" "[[$:/cssDbadge]]">>
<<css "" "" "" "[[$:/NeatLinkCSS]]">>
Code : <<css "" "" "" "$:/plugins/tobibeer/plantuml/styles">>
<<css "" "" "" "[[$:/cssScrollableTableOfContents]]">>
<<css "" "" "" "[[$:/plugins/tesseract/sidebarPlus/Stylesheet]]">> Feuille retirée.
<<css "" "" "" "[[$:/cssSmartGrid]]">>
<<css "" "" "" "[[$:/tesseract/telmigerSocialMacros/Stylesheet]]">>
Typography sets default styles for headings, paragraphs, semantic text, blockquote and lists elements.
<<css "" "" "" "[[$:/StickyNotesstyle]]">>
*Les Mots clés de cette table sont classés par ordre alphabétique. *Pour la numérotation automatique des rubriques du sommaire, voir [[Gérer la table des matières]]. *Ajout du code compteur de tags : `(<$count filter="[all[current]tagging[]]"/>)`.
<<css "" "" "" "[[$:/cssSimpleTooltip]]">>
<<css "" "" "" "[[vis.css]]">>
<figure class="figure"> <img class="img-responsive ..." src="img/SingleFilePattern.png" alt="Single File Pattern"> <figcaption class="figure-caption text-center">Single File Pattern</figcaption> </figure> TiddlyWiki est un wiki en javascript qui s'exécute directement dans un navigateur web, ou via Node.js. Voir aussi la rubrique [[Node.Js]]
!!{{!!caption}} En standard la SideBar est visible à l'ouverture du wiki. On peut la forcer à rester fermée. Voir le post [[Cacher la Sidebar au démarrage]] pour une complète explication !!Installation <<extract "Cacher la Sidebar au démarrage" start:"<Extrait>" end:"</Extrait>">>
Voir [[.tc-sidebar-lists .tc-search]]
Cela paraît à priori difficile puisqu'il ne pourrait y avoir alors qu'une navigation textuelle, ou des bouts de menus inclus dans une page. Il y a tout de même différentes possibilités qui peuvent être mixées: !!Via l'utilisation des backlinks Ce Tiddler est par ailleurs cité: ``` Cité dans<$list filter="[all[current]backlinks[]]" emptyMessage="Aucun Tiddler n'est lié à celui-ci (backlink)"><li><i class="fa fa-arrow-right"></i> {{!!title}}</li></$list> ``` ;Soit: Cité dans<$list filter="[all[current]backlinks[]]" emptyMessage="Aucun Tiddler n'est lié à celui-ci (backlink)"><li><i class="fa fa-arrow-right"></i> {{!!title}}</li></$list> Ou la liste des tiddlers dont le tag est le même que celui de ce tiddler ``` <$list filter="[tag[Divers]backlinks[]]"> </$list> ``` ;Soit: <$list filter="[tag[Divers]backlinks[]]"> </$list> !!Via un système de popups On dispose d'un <$appear show="Tutoriel" $state100="pink-button" selectedClass="pink"> ! Tutoriel <$list filter="[tag[Tutoriel]] [tag[]] +[sort[sub.num]]"> </$list></$appear> gracieusement mis à votre disposition. [[Voir différentes variantes|PopUpSlidersExamples]] et notamment: before <$appear type="popup" $state="list-popup" class="tc-popup-keep"> {{{[prefix[Tuto]sort[title]]}}} </$appear> after !!Via le plugin "details": On dispose d'un Tutoriel <$details summary="Voir Tutoriel"> <$list filter="[tag[Tutoriel]] [tag[]] +[sort[sub.num]]"> </$list></$details> gracieusement mis à votre disposition. !!Via le plugin ftlist (Fragments ofText List) Ce plugin est actuellement dans mes "Authors list" et n'est pas encore intégré au présent wiki. !!Via une table des matières dont la hauteur est contrôlée par une barre de défilement <div class="tc-tabbed-table-of-contents-content"> <<toc-selective-expandable 'Tutoriel' "sort[sub.num]">> </div> !!Via Le "Voir aussi" en bas de page [[Lier les Tiddlers similaires (See Also)|SeeAlso]] !!Chaque page ne contient que ce qui lui est nécessaire
Les paramètres peuvent être modifiés à deux endroits: <$set name="currentTiddler" value={{$:/palette}}> <$link to={{$:/palette}}><$macrocall $name="currentTiddler" $output="text/plain"/></$link> accessible directement en modification via le tiddler [[$:/core/ui/ControlPanel/Palette]] Affecter une couleur aux lignes : *Fond pour les tags : tag-background (Noir) *Premier plan pour les tags : tag-foreground (Blanc) Et dans le tiddler CSS [[$:/cssTags]] [[Le gabarit|Gabarits]] attaché est $:/core/ui/TagTemplate ;Explications : *Les couleurs (fond et couleur du texte) des tiddlers sont paramétrées dans la palette de couleurs en usage. *Le reste est éventuellement modifié par le tiddler [[$:/cssTags]], issu du code CSS du thème Vanilla (modifié sur ce wiki).
!!Liste décimale ordonnée de la TOC 1- Soit en ôtant la règle CSS du tiddler : ``` <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` pour ne garder que :<br/> ``` <<toc-selective-expandable 'TableOfContents'>> ``` 2- Soit en créant une règle CSS spécifique intégrant cette numérotation. Lire le billet [[Numérotation des listes de la TOC]] pour une explication détaillée sur les balises ul, ol.
Here is a complete TOC recursive pair of macros if you feel like building your own, This one will traverse the whole tree, but not display those that match the filter. ``` \define each-level(filter) <$list filter="$filter$" variable=nul> [[$(currentTiddler)$]]<br> </$list> <$list filter="[is[current]tagging[]]"> <<each-level $filter$>> </$list> \end \define list-toc(tiddlername filter) <h2>Top of TOC</h2> <$tiddler tiddler="$tiddlername$"> <$list filter="[is[current]tagging[]]"> <<each-level $filter$>> </$list> </$tiddler> \end <<list-toc TableOfContents "[is[current]!tag[hide]]">> ``` there is no indenting each level in this As stated before you cant have a tree of untagged tiddlers, if that tree is defined by tags, However you could have a tree defined by using another field such as the parent field, the advantage also being you can force only one parent. ``` \define each-child(filter) [[$(currentTiddler)$]]<br> <$list filter="[parent[$(currentTiddler)$]]"> <<each-child $filter$>> </$list> \end \define list-tocP(tiddlername) <$tiddler tiddler="$tiddlername$"> [[$tiddlername$]]<br> <$list filter="[parent[$tiddlername$]]"> <<each-child>> </$list> </$tiddler> \end <<list-tocP "New Home">> ``` This can be facilitated using marios TOCP plugin https://wikilabs.github.io/editions/tocP/ Back to the tag based TOC, I did asked myself why you may want untagged tiddlers in a tree, and realising the normal approach is that children are tagged with the parent I realised even the lowest "leaf" on a tag tree has a tag, you will not find even those at the bottom free of tags. However If the TOC finds a tiddler that no other tiddler uses as a tag, then it will be a leaf. I may use this to identify leaves.
\define nb_el(classe) <<eval """ const nb_elem = (cl) => document.querySelectorAll(cl).length; nb_elem('$classe$') ; """>> \end On utilise ici la fonction `document.querySelectorAll` pour compter le nombre d’éléments appartenant à une classe. !1- La Macro ``` \define nb_el(classe) <<eval """ const nb_elem = (cl) => document.querySelectorAll(cl).length; nb_elem('$classe$') ; """>> \end ``` #.titre Titre 1 ##.soustitre soustitre 1 ##.soustitre soustitre 2 #.titre Titre 2 ##.soustitre soustitre 1 ##.soustitre soustitre 2 ##.soustitre soustitre 3 #.titre Titre 3 ##.soustitre soustitre 1 #.titre Titre 4 ##.soustitre soustitre 1 !2- Le rendu ``` ''<<nb_el ".titre">> titre(s) et <<nb_el ".soustitre">> soustitre(s)'' ``` ''<<nb_el ".titre">> titre(s) et <<nb_el ".soustitre">> soustitre(s)''
Ce sont les concepts qui sous-tendent TiddlyWiki. Comprendre comment ces idées s'articulent est la clé pour tirer le parti maximum de ~TiddlyWiki. <<list-links "[tag[Concepts]sort[caption]]">>
{{CondSum||caption}}
<div class="attention">Attention: ne pas faire précéder les textes des champs d'une astérisque (liste) ce qui fait planter le code</div> Titre du source : Conditional ~ViewTemplate Section Dans [[cette conversation|https://groups.google.com/d/msg/tiddlywiki/YEgHhQ0ZcFo/bi3JWu2dUq0J]], j'ai demandé à Jeremy comment générer en en-tête de tous les tiddlers tagués `X`, une section sommaire (summary) ou toute autre information issue des champs, de manière à ce que l'on ait pas à cliquer deux fois, Le système fait une recherche sur tous les champs jusqu'à ce qu'il trouve le champ "summary". Ici, summary mais fonctionne avec d'autres champs: caption, description etc... !!Étape 1 Créer le tiddler $:/.tb/ui/ViewTemplate/summary-link tagué [[$:/tags/ViewTemplate]] et contenant le code suivant : ``` <$list filter="[all[current]tag[X]]"> <$transclude field="summary" mode="block"/> </$list> ``` Le contenu final de ce tiddler à été étendu comme suit : {{$:/.tb/ui/ViewTemplate/summary-link||code}} !!Étape 2 Créer un champ `list-after` field avec la valeur "[[$:/core/ui/ViewTemplate/tags]]" de sorte que le contenu du champ summary apparaisse immédiatement après les tags. En l'ocurence le tiddler $:/.tb/ui/ViewTemplate/summary-link !Exemple Le Tiddler [[$:/.tb/ui/ViewTemplate/summary-link]] sert de template pour tous les tiddlers de ce wiki possédant un champ "statut", ''summary'', ''description'' ou ''url''. Les Tiddlers ne possédant pas un ou des champs ci-dessus sont ignorés du template.
Accessible via la liste des programmes, lettre N, Node.js, Node.js command prompt
[Paul] peut être tagué ~SportScience , ~SystemControl ou Coding mais il est aussi tagué avec People, silverDim13, Journal20140912 ... [~SportScience] , [~SystemControl] and [Coding] sont des savoir-faire, ils sont tagués "Skills" Comment obtenir la liste des savoir-faire de Paul ? ``` <$list filter="[[Paul]tags[]] +[tag[Skills]]"> <$view field="title"/> </$list> ``` ;Soit: <<< <$list filter="[[Paul]tags[]] +[tag[Skills]]"> <$view field="title"/> </$list> <<<
<form action="https://formspree.io/eric.meaux@hotmail.com" method="POST" class="contact"> <input type="text" name="name" placeholder="Votre pseudo..."> <input type="email" name="_replyto" placeholder="Votre adresse mail..."/> <textarea name="body" placeholder="Votre message..."/> <input type="submit" value="Send email"> </form> ;Voir aussi : *[[Envoyer un mail depuis TiddlyWiki]] *[[FormspreeDoc]] *$:/cssContact
*👉 Une base de donnée Contacts pour ~TiddlyWiki *👉 Contact demo. Dépasse le cadre du simple formulaire *👉 [[Version francisée sur ce wiki|Fiches Contacts]]
<div style="font-size:0.7em; text-align:center; margin-left:5em;"> <a href="http://inmysocks.tiddlyspot.com/#%24%3A%2Fplugins%2Finmysocks%2FContacts:%24%3A%2Fplugins%2Finmysocks%2FContacts" class="tc-btn-big-green" style="text-decoration:none; background-color:#5A99D7;" target="_blank"> <i class="fa fa-thumb-tack"></i> Fork du plugin de Jed Carty</a> </div> <div align="center">[img[icon8-business-contact]]</div> !Tous les Tiddlers nécessaires: ; Liste des Tiddlers *[[$:/Contacts/ContactDisplayTemplate1 Settings]] *$:/Contacts/ContactDisplayTemplate1 *$:/Contacts/Contacts -> ''Lancer l'application ici.'' *$:/Contacts/SimpleContactListTemplate *$:/Contacts/GroupContactListGroupTemplate *[[$:/Contacts/Contact Group Selector]] *[[$:/Contacts/Contacts Settings]] *$:/Contacts/ContactsMacros *$:/Contacts/ContactTemp *$:/Contacts/GroupContactListTemplate *[[$:/Contacts/GroupContactListTemplate Settings]] *[[$:/Contacts/New Contact Form]] *$:/Contacts/SimpleContactDisplayTemplate *[[Groupe 1]] *[[Groupe 2]] * [[MEAUX Eric (Prolégomènes)]] *[[Fiche contact (Exemple)]] ; Codes <$details summary="Code : $:/Contacts/ContactDisplayTemplate1 Settings"> {{$:/Contacts/ContactDisplayTemplate1 Settings||code}} ; Avec les champs suivants: |caption|Contact Display Template 1 Settings| |no_edit|true| </$details> <$details summary="Code : $:/Contacts/ContactDisplayTemplate1"> {{$:/Contacts/ContactDisplayTemplate1||code}} ; Avec les champs suivants: |blurb|One of the templates for displaying contacts| |button_type|tc-btn-invisible| |caption|Contact Display Template 1| |display_name|Contact Display Template 1| |emailaddress|eddie@georges.com| |firstname|Billy| |lastname|Bob| |nickname|Joe| |no_edit|true| |phonenumber|555-555-5555| |settings_tiddler|$:/Contacts/ContactDisplayTemplate1 Settings| |text_style|_| </$details> <$details summary="Code : $:/Contacts/Contacts"> {{$:/Contacts/Contacts||code}} ; Avec les champs suivants: |caption|Contacts| |contact_display_template|$:/Contacts/ContactDisplayTemplate1| |contact_list_template|$:/Contacts/GroupContactListTemplate| |list_macro|textSliderNoButton| |no_edit|true| </$details> <$details summary="Code : $:/Contacts/SimpleContactListTemplate"> {{$:/Contacts/SimpleContactListTemplate||code}} ; Avec les champs suivants |caption|Contacts List| |display_name|Simple Contacts List| |no_edit|true| </$details> <$details summary="Code : $:/Contacts/GroupContactListGroupTemplate"> {{$:/Contacts/GroupContactListGroupTemplate||code}} ; Avec les champs suivants: |button_type|| |caption|Group Contact List Group Template| |group|test| |group_type|groupContactListTemplate| |no_edit|true| </$details>
{{ContactsList||caption}}
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i activity 'x5'>> </div> </div> </div> @@ <<doc>> Cette nouvelle version 2225119 de "''Apprendre ~TiddlyWiki et ses plugins''", diffère de la version précédente 2215117 en ce qu'elle est allégée en articles et améliorée en design. Son champ d'interventions est recentré sur les exemples et contenus propres du wiki. Ces contenus sont répartis dans une table des matières de <$count filter="[tag[TableOfContents]]"/> mots-clés. Cette classification, aussi logique soit-elle garde une part d'arbitraire dans la mesure où -par définition- elle suppose qu'un concept soit rangé dans une boite. Par exemple les contenus des mot-clef "Listes" et "Filtres" sont particulièrement sensibles à cette part d'arbitraire dans la mesure où ~TiddlyWiki repose largement sur les notions de Listes Filtrées. Il m'a cependant paru important d'en distinguer les sens. Chaque mot-clé contient les dossiers qui y sont rattachés comprenant ainsi en un même lieu des différents billets composant un même sujet, facilitant ainsi les recherches. Outre le [[sommaire|TableOfContents]] de la SideBar, chaque Mot-Clé et dossier dispose d'une table des matières dont l'ordonnancement est modifiable Voir par exemple le mot-clé [[Applications]]. <div align="center"> <$button class="btn btn-lg btn-success" to="TableOfContents" tooltip="Table des matières"> 👉 Accéder au Sommaire <!-- Fermeture de ce tiddler après action --> <$action-sendmessage $message='tm-close-tiddler' param=''/> </$button> </div>
Nous voyons ici comment les Tiddlers sont transclus les uns dans les autres $:/core/ui/PageTemplate/sidebar Le code de ce __''template''__ indique ce qui doit apparaître dans la barre de menu et dans quel ordre: 1- Transclusion du titre du wiki c'est à dire $:/SiteTitle 2- Transclusion du sous-titre du wiki c'est à dire $:/SiteSubtitle 3- Afficher le contenu du tiddler affichant les icons de contrôle, c'est à dire $:/core/ui/PageTemplate/pagecontrols: {{||$:/core/ui/PageTemplate/pagecontrols}} 4- Transclusion du Tiddler affichant la barre de recherche et les tables Open, Recent, Tools et more, c'est à dire $:/core/ui/SideBarLists <$transclude tiddler="$:/core/ui/SideBarLists" mode="inline"/> Suivant le principe des boites gigogne : * $:/core/ui/PageTemplate/sidebar contient: **Une image (Logo, publicité etc.) à transclure juste au dessus de la ligne `<h1 class="tc-site-title">` Comme ceci: ``` <$scrollable fallthrough="no" class="tc-sidebar-scrollable"> <div class="tc-sidebar-header"> <$reveal state="$:/state/sidebar" type="match" text="yes" default="yes" retain="yes" animate="yes"> {{Ici, votre image, Logo...}} <h1 class="tc-site-title"> <$transclude tiddler="$:/SiteTitle" mode="inline"/> </h1> ``` ** $:/SiteTitle ** $:/SiteSubtitle ** $:/core/ui/PageTemplate/pagecontrols Tag `Aucun` ** $:/core/ui/SideBarLists Tag `Aucun` ***$:/core/ui/SideBar/Open Tag `$:/tags/SideBar` Détagué, il disparaît des tables de la sidebar. Il est maintenant affecté à la barre de menu de gauche,sous la rubrique: "Vous avez déjà lu". ***$:/core/ui/SideBar/More Tag `$:/tags/SideBar` ***Paramètres Tag `$:/tags/SideBar` Détagué, il disparaît des tables de la sidebar. ****$:/core/ui/MoreSideBar/All Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Recent Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Tags Tag `$:/tags/MoreSideBar ` Retagué `$:/tags/SideBar` ****[[$:/systemtags Tag|$:/core/ui/MoreSideBar/System]] `$:/tags/MoreSideBar) ` ****$:/core/ui/MoreSideBar/Missing Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Drafts Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Orphans Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Types Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/System Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Shadows Tag `$:/tags/MoreSideBar ` ****$:/core/ui/MoreSideBar/Plugins Tag `$:/tags/MoreSideBar ` ****$:/core/ui/SideBar/Tools Tag `$:/tags/MoreSideBar ` Détagué, il est visible dans lepanneau de contrôle. ''Important:'' Si vous souhaitez voir le menu sur la ~SideBar (c'est à dire à droite) vous devez taguer le Tiddler [[TableOfContents]] `$:/tags/SideBar`
\define lingo-base() $:/language/TiddlerInfo/ |Date Modif|{{!!modified}}| |Date Création|{{!!created}}| |Cité dans|<$list filter="[all[current]backlinks[]]" emptyMessage="Aucun Tiddler n'est lié à celui-ci (backlink)"><li><i class="fa fa-arrow-right"></i> {{!!title}}</li></$list>| |tagués {{!!title}}|<$list filter="[all[current]tagging[]]" emptyMessage="Aucun Tiddler n'est tagué {{!!title}}"><li><i class="fa fa-arrow-right"></i> {{!!title}}</li></$list>| |Champ(s) Externes|<$list filter="[all[current]listed[]!is[system]]" emptyMessage="Aucun champ intitulé {{!!title}} n'a été créé"></$list>| |Tag(s)|<$list filter="[all[current]tags[]]" emptyMessage="Le tiddler {{!!title}} ne possède aucun tag"><li><i class="fa fa-arrow-right"></i> {{!!title}}</li></$list>| |Lien(s) interne(s)|<$list filter="[all[current]links[]]" emptyMessage="Le tiddler {{!!title}} ne possède aucun lien"></$list>| |Autre (s) Champ(s) Interne(s)|<$list filter="[all[current]fields[]sort[title]] -text -tags -created -modified" template="$:/core/ui/TiddlerFieldTemplate" variable="listItem"/> |
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i github 'x5'>> </div> </div> </div> @@ <<doc>> <a href="https://github.com/Prolegomenes/learn" class="tc-btn-big-green" style="background-color:#444;" target="_blank"> {{$:/core/images/github}} tw5-Learn sur ~GitHub </a>
The following individuals have generously given their time to [[contribute to the development of TiddlyWiki|https://github.com/Jermolene/TiddlyWiki5/graphs/contributors]]: * Jeremy Ruston ([[@Jermolene|https://github.com/Jermolene]]) * Dave Gifford ([[@giffmex|https://github.com/giffmex]]) * Bram Chen ([[@BramChen|https://github.com/BramChen]]) * Mario Pietsch ([[@pmario|https://github.com/pmario]]) * Xavier Cazin ([[@xcazin|https://github.com/xcazin]]) * Eric Shulman ([[@ericshulman|https://github.com/ericshulman]]) * Stephan Hradek ([[@Skeeve|https://github.com/Skeeve]]) * ~BuggyJef ([[@buggyj|https://github.com/buggyj]]) * Nathan Cain ([[@natecain|https://github.com/natecain]]) * Ton Gerner ([[@gernert|https://github.com/gernert]]) * Devin Weaver ([[@sukima|https://github.com/sukima]]) * João Bolila ([[@jbolila|https://github.com/jbolila]]) * David Johnston ([[@Brennall|https://github.com/Brennall]]) * David Jade ([[@davidjade|https://github.com/davidjade]]) * Bob Robison ([[@grayeul|https://github.com/grayeul]]) * [[@nameanyone|https://github.com/nameanyone]] * Maurizio Pollio ([[@mpollio|https://github.com/mpollio]]) * Ogoshi Masayuki ([[@ogoshima|https://github.com/ogoshima]]) * Chris Sugden ([[@csugden|https://github.com/csugden]]) * [[@asampal|https://github.com/asampal]] * Bow Yi Jang ([[@Eucaly|https://github.com/Eucaly]]) * Mal Gamble ([[@malgam|https://github.com/malgam]]) * Michael Fogleman ([[@mwfogleman|https://github.com/mwfogleman]]) * Daniel Barrett ([[@shendaras|https://github.com/shendaras]]) * Simon Baird ([[@simonbaird|https://github.com/simonbaird]]) * James Anderson ([[@welford|https://github.com/welford]]) * Jon Lister ([[@jayfresh|https://github.com/jayfresh]]) * [[@TheDiveO|https://github.com/TheDiveO]] * Danielo Rodríguez ([[@danielo515|https://github.com/danielo515]]) * [[@willover|https://github.com/willover]] * [[@slotik|https://github.com/slotik]] * Irene Knapp ([[@IreneKnapp|https://github.com/IreneKnapp]]) * Brian Shaver ([[@shakerlxxv|https://github.com/shakerlxxv]]) * Tobi Beer ([[@tobibeer|https://github.com/tobibeer]]) * Craig Cook ([[@BoyCook|https://github.com/BoyCook]])
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button>
La table de choix des couleurs donne ces dernières en notation RGB. Pas toujours simple lorsque notre choix se porte sur une couleur hexa. Voici un site très utile qui effectue la conversion dans un sens ou dans l'autre: http://www.proftnj.com/RGB3.htm Par exemple la couleur de fond de la barre de menu haute est: ``` 248-222-135 en décimal #F8DE87 en hexa décimal ```
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
Les [[variables|Variables]] suivantes sont intégrées dans le noyau de ~TiddlyWiki : ``` actionTiddler Variable currentTiddler modifier Variable namespace storyTiddler transclusion tv-history-list Variable tv-story-list Variable tv-tiddler-preview ``` Le noyau utilise aussi diverses configurations de variables et macros si vous les définissez : ``` tv-auto-open-on-import tv-config-toolbar-class tv-config-toolbar-icons tv-config-toolbar-text tv-filter-export-link tv-get-export-image-link tv-get-export-link tv-get-export-path tv-wikilink-template tv-wikilink-tooltip tv-wikilinks ```
\define tc(text:"", color:"red") <span style="color:$color$;">$text$</span> \define bc(text:"", color:"yellow") <span style="background-color:$color$;">$text$</span> \define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end Ces exemples sont fondés sur des macros. Je les classe cependant sous le mot clé "Couleurs" qui me paraît être leur place la plus appropriée. ![ext[Solution 1|https://kookma.github.io/Shiraz/#%24%3A%2Fplugins%2F.mr%2Fshiraz%2Fmacro%2Ftext-back-colors]] //@Mohammad, Wiki Shiraz. Couleur de texte'' OU'' couleur de fond// !!Couleur de texte !!!La Macro ``` \define tc(text:"", color:"red") <span style="color:$color$;">$text$</span> ``` !!!Exemples: ``` <<tc "le texte est de couleur crimson" "crimson">> ``` <<tc "le texte est de couleur crimson" "crimson">> ``` <<tc "Sans affectation de couleur c'est le paramètre couleur spécifié dans la macro qui est pris en charge (red)" "">> ``` <<tc "Sans affectation de couleur c'est le paramètre couleur spécifié dans la macro qui est pris en charge (red)" "">> !!Couleur de fond !!!La macro ``` \define bc(text:"", color:"yellow") <span style="background-color:$color$;">$text$</span> ``` !!!Exemples ``` <<bc "Le fond est de couleur grise" "#CCCCCC">> ``` <<bc "Le fond est de couleur grise" "#CCCCCC">> ``` <<bc "Sans affectation de couleur, c'est le paramètre couleur spécifié dans la macro qui est pris en charge (yellow)" "">> ``` <<bc "Sans affectation de couleur, c'est le paramètre couleur spécifié dans la macro qui est pris en charge (yellow)" "">> ![ext[Solution 2|https://forum.tiddlywiki.fr/t/tw-scripts-un-wiki-prolifique/577]] @Oxydum sur le Forum français. Couleur de texte ''ET'' couleur de fond !!Couleur du texte et couleur du fond !!!La Macro ``` \define text(text:"Hello world",color:"#FFFFFF", bgcolor:"#6688AA77") <span style="color:$color$;background-color:$bgcolor$;padding:4px;">$text$</span> \end ``` !!!Exemples ``` <<text "La couleur du texte est crimson et la couleur du fond est grise" "crimson" "#CCCCCC">> ``` <<text "La couleur du texte est crimson et la couleur du fond est grise" "crimson" "#CCCCCC">> ``` <<text "La couleur du texte est grise et la couleur du fond est crimson" "#CCCCCC" "crimson">> ``` <<text "La couleur du texte est grise et la couleur du fond est crimson" "#CCCCCC" "crimson">> Si aucun paramètre n'est spécifiée, ce sont ceux de la macro qui sont pris en compte. ``` <<text "" "" "">> ``` <<text "" "" "">> [[Est-ce-que ceci pourrait être adapté à TiddlyWiki ?|https://github.com/eisbehr-/js.colorGradient]]
{{Couleurs||caption}}
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
\define MakeColorThing() @@color:$(ThisColor)$; Ceci est la couleur $(ThisColor)$ @@ \end Voici la liste des couleurs nommées à intégrer à vos CSS. Il y en a quelques unes de plus mais cette liste rescence les principaux. La couleur noir ne pouvant être visualisée sur un fond noir, le voici donc séparé de la liste. @@color:black; Ceci est la couleur noir @@ <div style='background-color:black'> <$list filter='[[aliceblue]] [[antiquewhite]] [[aquamarine]] [[azure]] [[beige]] [[bisque]] [[black]] [[blanchedalmond]] [[blue]] [[blueviolet]] [[brown]] [[burlywood]] [[cadetblue]] [[chartreuse]] [[chocolate]] [[coral]] [[cornflowerblue]] [[cornsilk]] [[crimson]] [[cyan]] [[darkblue]] [[darkcyan]] [[darkgoldenrod]] [[darkgray]] [[darkgreen]] [[darkgrey]] [[darkkhaki]] [[darkmagenta]] [[darkolivegreen]] [[darkorange]] [[darkorchid]] [[darkred]] [[darksalmon]] [[darkseagreen]] [[darkslateblue]] [[darkslategray]] [[darkslategrey]] [[darkturquoise]] [[darkviolet]] [[deeppink]] [[deepskyblue]] [[dimgray]] [[dimgrey]] [[dodgerblue]] [[firebrick]] [[floralwhite]] [[forestgreen]] [[gainsboro]] [[ghostwhite]] [[gold]] [[goldenrod]] [[gray]] [[green]] [[greenyellow]] [[grey]] [[honeydew]] [[hotpink]] [[indianred]] [[indigo]] [[ivory]] [[khaki]] [[lavender]] [[lavenderblush]] [[lawngreen]] [[lemonchiffon]] [[lightblue]] [[lightcoral]] [[lightcyan]] [[lightgoldenrod]] [[lightgoldenrodyellow]] [[lightgray]] [[lightgreen]] [[lightgrey]] [[lightpink]] [[lightsalmon]] [[lightseagreen]] [[lightskyblue]] [[lightslateblue]] [[lightslategray]] [[lightslategrey]] [[lightsteelblue]] [[lightyellow]] [[limegreen]] [[linen]] [[magenta]] [[maroon]] [[mediumaquamarine]] [[mediumblue]] [[mediumorchid]] [[mediumpurple]] [[mediumseagreen]] [[mediumslateblue]] [[mediumspringgreen]] [[mediumturquoise]] [[mediumvioletred]] [[midnightblue]] [[mintcream]] [[mistyrose]] [[moccasin]] [[navajowhite]] [[navy]] [[navyblue]] [[oldlace]] [[olivedrab]] [[orange]] [[orangered]] [[orchid]] [[palegoldenrod]] [[palegreen]] [[paleturquoise]] [[palevioletred]] [[papayawhip]] [[peachpuff]] [[peru]] [[pink]] [[plum]] [[powderblue]] [[purple]] [[red]] [[rosybrown]] [[royalblue]] [[saddlebrown]] [[salmon]] [[sandybrown]] [[seagreen]] [[seashell]] [[sienna]] [[skyblue]] [[slateblue]] [[slategray]] [[slategrey]] [[snow]] [[springgreen]] [[steelblue]] [[tan]] [[thistle]] [[tomato]] [[turquoise]] [[violet]] [[violetred]] [[wheat]] [[white]] [[whitesmoke]] [[yellow]] [[yellowgreen]]'> <$set name=ThisColor value=<<currentTiddler>>> <<MakeColorThing>> </$set> </$list> </div> Voir $:/core/modules/utils/dom/csscolorparser.js
<table> <tr> <th scope="col">Valeur</th> <th scope="col">Couleur</th> <th scope="col">Valeur</th> <th scope="col">Couleur</th> <th scope="col">Valeur</th> <th scope="col">Couleur</th> <th scope="col">Valeur</th> <th scope="col">Couleur</th> </tr> <tr> <td style="background:#0FF; color:#000; font-family:monospace;">#00FFFF</td> <td>aqua / cyan<br /> (<a href="/wiki/Vert_d%27eau" title="Vert d'eau">bleu-vert eau</a>)</td> <td style="background:#008000; color:#FFF; font-family:monospace;">#008000</td> <td>green<br /> (<a href="/wiki/Vert" title="Vert">vert</a>)</td> <td style="background:#000080; color:#FFF; font-family:monospace;">#000080</td> <td>navy<br /> (<a href="/wiki/Bleu_marine" title="Bleu marine">bleu marine</a>)</td> <td style="background:#C0C0C0; color:#000; font-family:monospace;">#C0C0C0</td> <td>silver<br /> (<a href="/wiki/Argent_(couleur)" class="mw-redirect" title="Argent (couleur)">argent</a>)</td> </tr> <tr> <td style="background:#000; color:#FFF; font-family:monospace;">#000000</td> <td>black<br /> (<a href="/wiki/Noir" title="Noir">noir</a>)</td> <td style="background:#808080; color:#FFF; font-family:monospace;">#808080</td> <td>gray<br /> (<a href="/wiki/Gris" title="Gris">gris</a>)</td> <td style="background:#808000; color:#FFF; font-family:monospace;">#808000</td> <td>olive<br /> (<a href="/wiki/Olive_(couleur)" title="Olive (couleur)">jaune olive</a>)</td> <td style="background:#008080; color:#fff; font-family:monospace;">#008080</td> <td>teal<br /> (<a href="/wiki/Sarcelle_(couleur)" class="mw-redirect" title="Sarcelle (couleur)">sarcelle</a>)</td> </tr> <tr> <td style="background:#00F; color:#FFF; font-family:monospace;">#0000FF</td> <td>blue<br /> (<a href="/wiki/Bleu" title="Bleu">bleu</a>)</td> <td style="background:#0F0; color:#000; font-family:monospace;">#00FF00</td> <td>lime<br /> (<a href="/wiki/Vert_citron" class="mw-redirect" title="Vert citron">vert citron</a>)</td> <td style="background:#660099; color:#FFF; font-family:monospace;">#800080</td> <td>purple<br /> (<a href="/wiki/Violet" title="Violet">violet</a>)</td> <td style="background:#FFF; color:#000; font-family:monospace;">#FFFFFF</td> <td>white<br /> (<a href="/wiki/Blanc" title="Blanc">blanc</a>)</td> </tr> <tr> <td style="background:#F0F; color:#000; font-family:monospace;">#FF00FF</td> <td>fuchsia / magenta<br /> (<a href="/wiki/Fuchsia_(couleur)" class="mw-redirect" title="Fuchsia (couleur)">fuchsia</a>)</td> <td style="background:#800000; color:#FFF; font-family:monospace;">#800000</td> <td>maroon<br /> (<a href="/wiki/Bordeaux_(couleur)" title="Bordeaux (couleur)">bordeaux</a>)</td> <td style="background:#F00; color:#FFF; font-family:monospace;">#FF0000</td> <td>red<br /> (<a href="/wiki/Rouge" title="Rouge">rouge</a>)</td> <td style="background:#FF0; color:#000; font-family:monospace;">#FFFF00</td> <td>yellow<br /> (<a href="/wiki/Jaune" title="Jaune">jaune</a>)</td> </tr> </table>
\define MakeColorThing() @@color:$(ThisColor)$; $(ThisColor)$ @@ \end ;Cette liste reste encore incomplète et demande à être finalisée. | Couleurs | Nom [HTML] | Nom [FR] |Valeur Hexa | Valeur Dec. |h |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Alice' field='color' type="color" tag="input"/>| <$list filter='[[aliceblue]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Alice]] | {{Bleu-Alice!!hexa}} | {{Bleu-Alice!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Blanc-Antique' field='color' type="color" tag="input"/>| <$list filter='[[antiquewhite]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Blanc-Antique]] | {{Blanc-Antique!!hexa}} | {{Blanc-Antique!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Cyan' field='color' type="color" tag="input"/>| <$list filter='[[cyan]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Cyan]] | {{Cyan!!hexa}} | {{Cyan!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Vert' field='color' type="color" tag="input"/>| <$list filter='[[aquamarine]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Vert]] | {{Bleu-Vert!!hexa}} | {{Bleu-Vert!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Ciel' field='color' type="color" tag="input"/>| <$list filter='[[azure]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Ciel]] | {{Bleu-Ciel!!hexa}} | {{Bleu-Ciel!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Beige' field='color' type="color" tag="input"/>| <$list filter='[[beige]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Beige]] | {{Beige!!hexa}} | {{Beige!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bisque' field='color' type="color" tag="input"/>| <$list filter='[[bisque]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bisque]] | {{Bisque!!hexa}} | {{Bisque!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Amande-Blanchie' field='color' type="color" tag="input"/>| <$list filter='[[blanchedalmond]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Amande-Blanchie]] | {{Amande-Blanchie!!hexa}} | {{Amande-Blanchie!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Violet' field='color' type="color" tag="input"/>| <$list filter='[[blueviolet]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Violet]] | {{Bleu-Violet!!hexa}} | {{Bleu-Violet!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bois-Brut' field='color' type="color" tag="input"/>| <$list filter='[[burlywood]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bois-Brut]] | {{Bois-Brut!!hexa}} | {{Bois-Brut!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Cadet' field='color' type="color" tag="input"/>| <$list filter='[[cadetblue]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Cadet]] | {{Bleu-Cadet!!hexa}} | {{Bleu-Cadet!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Chartreuse' field='color' type="color" tag="input"/>| <$list filter='[[chartreuse]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Chartreuse]] | {{Chartreuse!!hexa}} | {{Chartreuse!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Chocolat' field='color' type="color" tag="input"/>| <$list filter='[[chocolate]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Chocolat]] | {{Chocolat!!hexa}} | {{Chocolat!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Corail' field='color' type="color" tag="input"/>| <$list filter='[[coral]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Corail]] | {{Corail!!hexa}} | {{Corail!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Barbeau' field='color' type="color" tag="input"/>| <$list filter='[[cornflowerblue]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Barbeau]] | {{Bleu-Barbeau!!hexa}} | {{Bleu-Barbeau!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Barbe-de-Mais' field='color' type="color" tag="input"/>| <$list filter='[[cornsilk]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Barbe-de-Mais]] | {{Barbe-de-Mais!!hexa}} | {{Barbe-de-Mais!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Cramoisi' field='color' type="color" tag="input"/>| <$list filter='[[crimson]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Cramoisi]] | {{Cramoisi!!hexa}} | {{Cramoisi!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkblue]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Foncé]] | {{Bleu-Foncé!!hexa}} | {{Bleu-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Cyan-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkcyan]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Cyan-Foncé]] | {{Cyan-Foncé!!hexa}} | {{Cyan-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Verge-Or-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkgoldenrod]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Verge-Or-Foncé]] | {{Verge-Or-Foncé!!hexa}} | {{Verge-Or-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Gris-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkgray]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Gris-Foncé]] | {{Gris-Foncé!!hexa}} | {{Gris-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Vert-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkgreen]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Vert-Foncé]] | {{Vert-Foncé!!hexa}} | {{Vert-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Kaki-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkkhaki]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Kaki-Foncé]] | {{Kaki-Foncé!!hexa}} | {{Kaki-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Magenta-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkmagenta]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Magenta-Foncé]] | {{Magenta-Foncé!!hexa}} | {{Magenta-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Vert-Olive-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkolivegreen]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Vert-Olive-Foncé]] | {{Vert-Olive-Foncé!!hexa}} | {{Vert-Olive-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Orange-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkorange]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Orange-Foncé]] | {{Orange-Foncé!!hexa}} | {{Orange-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Orchidée-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkorchid]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Orchidée-Foncé]] | {{Orchidée-Foncé!!hexa}} | {{Orchidée-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Rouge-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkred]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Rouge-Foncé]] | {{Rouge-Foncé!!hexa}} | {{Rouge-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Saumon-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darksalmon]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Saumon-Foncé]] | {{Saumon-Foncé!!hexa}} | {{Saumon-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Vert-Marin-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkseagreen]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Vert-Marin-Foncé]] | {{Vert-Marin-Foncé!!hexa}} | {{Vert-Marin-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Ardoise-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkslateblue]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Ardoise-Foncé]] | {{Bleu-Ardoise-Foncé!!hexa}} | {{Bleu-Ardoise-Foncé!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Gris-Ardoise-Foncé' field='color' type="color" tag="input"/>| <$list filter='[[darkslategray]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Gris-Ardoise-Foncé]] | {{Gris-Ardoise-Foncé!!hexa}} | {{Gris-Ardoise-Foncé!!decimal}} | | Couleurs | Nom [HTML] | Nom [FR] |Valeur Hexa | Valeur Dec. |h |<$edit-text class='tc-edit-texteditor' tiddler='Vert' field='color' type="color" tag="input"/>| <$list filter='[[green]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Vert]] | {{Vert!!hexa}} | {{Vert!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu-Marine' field='color' type="color" tag="input"/>| <$list filter='[[navy]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu-Marine]] | {{Bleu-Marine!!hexa}} | {{Bleu-Marine!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Argent' field='color' type="color" tag="input"/>| <$list filter='[[silver]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Argent]] | {{Argent!!hexa}} | {{Argent!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Noir' field='color' type="color" tag="input"/>| <$list filter='[[black]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Noir]] | {{Noir!!hexa}} | {{Noir!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Gris' field='color' type="color" tag="input"/>| <$list filter='[[gray]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Gris]] | {{Gris!!hexa}} | {{Gris!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Olive' field='color' type="color" tag="input"/>| <$list filter='[[olive]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Olive]] | {{Olive!!hexa}} | {{Olive!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Sarcelle' field='color' type="color" tag="input"/>| <$list filter='[[teal]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Sarcelle]] | {{Sarcelle!!hexa}} | {{Sarcelle!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bleu' field='color' type="color" tag="input"/>| <$list filter='[[blue]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bleu]] | {{Bleu!!hexa}} | {{Bleu!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Vert-Citron' field='color' type="color" tag="input"/>| <$list filter='[[lime]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Vert-Citron]] | {{Vert-Citron!!hexa}} | {{Vert-Citron!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Violet' field='color' type="color" tag="input"/>| <$list filter='[[purple]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Violet]] | {{Violet!!hexa}} | {{Violet!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Blanc' field='color' type="color" tag="input"/>| <$list filter='[[white]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Blanc]] | {{Blanc!!hexa}} | {{Blanc!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Fuchsia-Magenta' field='color' type="color" tag="input"/>| <$list filter='[[fuchsia]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Fuchsia-Magenta]] | {{Fuchsia-Magenta!!hexa}} | {{Fuchsia-Magenta!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Bordeaux' field='color' type="color" tag="input"/>| <$list filter='[[maroon]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Bordeaux]] | {{Bordeaux!!hexa}} | {{Bordeaux!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Rouge' field='color' type="color" tag="input"/>| <$list filter='[[red]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Rouge]] | {{Rouge!!hexa}} | {{Rouge!!decimal}} | |<$edit-text class='tc-edit-texteditor' tiddler='Jaune' field='color' type="color" tag="input"/>| <$list filter='[[yellow]]'><$set name=ThisColor value=<<currentTiddler>>><<MakeColorThing>></$set></$list> | [[Jaune]] | {{Jaune!!hexa}} | {{Jaune!!decimal}} | [ ] Cette liste reste à compléter.
<div align="center">[img[couleurs]]</div> Les 7 couleurs visibles en carrés dans Panneau de contrôle <i class="fa fa-arrow-right"></i> Apparance <i class="fa fa-arrow-right"></i> Palette: [img[Main-Palette-Colors]] `<<colour background>>` Pour la prise en compte d'une couleur existante. """ Fond pour les alertes alert-background Bordure pour les alertes alert-border Surlignage pour les alertes alert-highlight Fond atténué pour les alertes alert-muted-foreground Couleur de fond générale ''background'' <i class="fa fa-arrow-right"></i> <$button>2</$button> <mark class="roundedmark">...</mark> Barre de citation blockquote-bar Fond du bouton par défaut button-background Bordure du bouton par défaut button-border Premier plan du bouton par défaut button-foreground Fond pour le code code-background Bordure pour le code code-border Premier plan pour le code code-foreground diff-delete-background diff-delete-background diff-delete-foreground diff-delete-foreground diff-equal-background diff-equal-background diff-equal-foreground diff-equal-foreground diff-insert-background diff-insert-background diff-insert-foreground diff-insert-foreground diff-invisible-background diff-invisible-background diff-invisible-foreground diff-invisible-foreground Indicateur de modifications non sauvegardées dirty-indicator Fond pour le bouton de téléchargement download-background Premier plan pour le bouton de téléchargement download-foreground Fond pour le glissé-déposé dragger-background Premier plan pour le glissé-déposé dragger-foreground Fond des menus déroulants ''dropdown-background'' <i class="fa fa-arrow-right"></i> <mark class="roundedmark">Concerne tous les déroulants standard. Sans fixer de couleur, ils sont transparents, ce qui rend leur utilisation difficile. C'est la première adaptation à faire.</mark> Bordure des menus déroulants dropdown-border <i class="fa fa-arrow-right"></i> <mark class="roundedmark">La bordure des déroulants. Choisir une couleur opposée ?</mark> Fond pour les onglets à menu déroulant dropdown-tab-background Fond pour les onglets à menu déroulant sélectionnés dropdown-tab-background-selected Fond de la zone « déposé » dropzone-background Fond pour un lien externe external-link-background Fond lors du passage de la souris sur un lien externe external-link-background-hover Fond pour un lien externe déjà visité external-link-background-visited Premier plan pour un lien externe external-link-foreground Premier plan lors du passage de la souris sur un lien externe external-link-foreground-hover Premier plan pour un lien externe déjà visité external-link-foreground-visited Premier plan ''foreground'' <i class="fa fa-arrow-right"></i> <$button>1</$button> <mark class="roundedmark">Cette couleur générale va s’immiscer à de nombreux endroits, sauf a être couverte par d'autres paramètres moins généraux: textes des tags, textes des boutons, couleur de bordure des tiddlers, couleur de fond des textes inclus dans la macro Details, tous les boutons de l'éditeur de texte, du trait de séparation à la droite des onglets more,</mark> Fond pour les messages, fond de tous les boutons message-background Bordure pour les messages message-border Premier plan pour les messages message-foreground Arrière-plan pour les fenêtres modales modal-backdrop Fond pour les fenêtres modales modal-background Bordure pour les fenêtres modales modal-border Fond pour les pieds de page des fenêtres modales modal-footer-background Bordure pour les pieds de page des fenêtres modales modal-footer-border Bordure pour les en-tête des fenêtres modales modal-header-border Premier plan atténué ''muted-foreground'' <i class="fa fa-arrow-right"></i> <$button>3</$button> <mark class="roundedmark">...</mark> Fond pour les notifications notification-background Bordure pour les notifications notification-border Fond de page ''page-background'' <i class="fa fa-arrow-right"></i> <$button>5</$button> <mark class="roundedmark">...</mark> Fond pour le code préformaté pre-background Bordure pour le code préformaté pre-border Couleur principale ''primary'' <i class="fa fa-arrow-right"></i> <$button>4</$button> <mark class="roundedmark">...</mark> Premier plan des boutons de la barre latérale sidebar-button-foreground Premier plan sur les boutons de commande de la barre latérale sidebar-controls-foreground Premier plan au passage de la souris sur les boutons de commande de la barre latérale sidebar-controls-foreground-hover Premier plan de la barre latérale ''sidebar-foreground'' <i class="fa fa-arrow-right"></i> <mark class="roundedmark">C'est à dire les `>` précédent les listes racines de la table contenus de SideBar.</mark> Ombre du premier plan de la barre latérale ''sidebar-foreground-shadow'' <i class="fa fa-arrow-right"></i> <mark class="roundedmark">Les listes de la SideBar sont trop ombrées et difficiles à lire. Pour supprimer cet effet on peut par exemple affecter ici la même couleur que celle du fond de page `<<colour page-background>>` ce qui a pour effet non pas de supprimer l'ombre mais de la rendre de même couleur, ce qui annule son effet.</mark> Premier plan atténué de la barre latérale sidebar-muted-foreground Premier plan atténué au passage de la souris sur la barre latérale sidebar-muted-foreground-hover Fond pour les onglets de la barre latérale sidebar-tab-background Fond pour les onglets sélectionnés de la barre latérale sidebar-tab-background-selected Bordure pour les onglets de la barre latérale sidebar-tab-border Bordure pour les onglets sélectionnés de la barre latérale sidebar-tab-border-selected Séparateur d'onglets pour la barre latérale sidebar-tab-divider Premier plan pour les onglets de la barre latérale ''sidebar-tab-foreground'' <i class="fa fa-arrow-right"></i> <mark class="roundedmark">Couleur du texte des tables de la SideBar</mark> Premier plan pour les onglets sélectionnés de la barre latérale sidebar-tab-foreground-selected Premier plan du lien d'un tiddler de la barre latérale sidebar-tiddler-link-foreground Premier plan au passage de la souris sur le lien d'un tiddler de la barre latérale sidebar-tiddler-link-foreground-hover Premier plan pour le titre du wiki (SiteTitle) site-title-foreground Premier plan pour les alertes statiques static-alert-foreground Fond pour les onglets ''tab-background'' <$button>6</$button> <i class="fa fa-arrow-right"></i> . <mark class="roundedmark"> Couleur de fond pour les onglets de la SideBar</mark> Fond pour les onglets sélectionnés tab-background-selected Bordure pour les onglets tab-border Bordure pour les onglets sélectionnés tab-border-selected Séparateur d'onglets tab-divider Premier plan pour les onglets tab-foreground Premier plan pour les onglets sélectionnés tab-foreground-selected Bordure des tableaux ''table-border'' <i class="fa fa-arrow-right"></i> <mark class="roundedmark">Entoure tous les tableaux de TiddlyWiki. Par exemple Plugins -> plugins, thèmes, langues. Dans Appearence -> Palette, vu sur le déroué etc. Pour supprimer ces bordures lui affecter la couleur du fond de page : `<<colour page-background>>`</mark> Fond pour les bas de tableau table-footer-background Fond pour les en-têtes de tableau table-header-background Fond pour les tags ''tag-background'' <i class="fa fa-arrow-right"></i> <mark class="roundedmark">Couleur de fond entourant les Tags</mark> Premier plan pour les tags tag-foreground Fond pour les tiddlers tiddler-background Bordure pour les tiddlers tiddler-border Premier plan pour les boutons de commande d'un tiddler tiddler-controls-foreground Premier plan au passage de la souris sur les boutons de commande d'un tiddler tiddler-controls-foreground-hover Premier plan pour le bouton de commande sélectionné d'un tiddler tiddler-controls-foreground-selected Fond pour l'éditeur de tiddlers tiddler-editor-background Bordure de l'éditeur de tiddlers tiddler-editor-border Image de bordure pour l'éditeur de tiddlers tiddler-editor-border-image Fond de l'éditeur de tiddlers pour les champs pairs tiddler-editor-fields-even Fond de l'éditeur de tiddlers pour les champs impairs tiddler-editor-fields-odd Fond du panneau d'information d'un tiddler ''tiddler-info-background'' <i class="fa fa-arrow-right"></i> <$button>7</$button> <mark class="roundedmark">...</mark> Bordure du panneau d'information d'un tiddler tiddler-info-border Fond pour les onglets du panneau d'information d'un tiddler tiddler-info-tab-background Fond pour les liens vers un tiddler tiddler-link-background Premier plan pour les liens vers un tiddler tiddler-link-foreground Premier plan du sous-titre du wiki tiddler-subtitle-foreground Premier plan du titre du wiki tiddler-title-foreground Premier plan pour le bouton 'Annuler' de la barre latérale toolbar-cancel-button Premier plan pour le bouton 'Fermer' de la barre latérale toolbar-close-button Premier plan pour le bouton 'Supprimer' de la barre latérale toolbar-delete-button Premier plan pour le bouton 'Terminé' de la barre latérale toolbar-done-button Premier plan pour le bouton 'Éditer' de la barre latérale toolbar-edit-button Premier plan pour le bouton 'Info' de la barre latérale toolbar-info-button Premier plan pour le bouton 'Nouveau tiddler' de la barre latérale toolbar-new-button Premier plan pour le bouton 'Options' de la barre latérale toolbar-options-button Premier plan pour le bouton 'Enregistrer' de la barre latérale toolbar-save-button Fond pour la pastille « sans-étiquette » untagged-background Premier plan très atténué very-muted-foreground """
Pour choisir la couleur de fond d'un tiddler ''particulier'', il suffit d'indiquer son code couleur HTML dans le champ "''tc-extra''". Et pour appliquer une couleur de fond à un ensemble de tiddlers vous devez en fixer la règle CSS. Par exemple pour affecter la même couleur de fond à tous les tiddlers tagués "Sources" Vous devez ajouter la règle CSS : `.tc-tagged-Sources {background-color: lavender;}` dans un tiddler tagué `$:/tags/Stylesheet` Ci-dessous, la liste des codes couleurs nommées (Nom HTML), chacune de ces couleurs étant visible dans un tiddler spécifique ainsi que dans une [[liste récapitulative complète|Couleurs nommées, Hexadécimales et Décimales]]. Le tag correspondant est `Couleurs` ``` <dl>{{{ [tag[Couleurs]] || $:/tocEntry }}}</dl> ``` ;Soit : <dl>{{{ [tag[Couleurs]] || $:/tocEntry }}}</dl> !!Incompatibilité : <div class="attention"> Affecter une [[couleur RGBA et un indice de transparence à la couleur de fond de la story river|$:/TemplateTiddler]] entraîne la perte de visualisation des couleurs de fond de tous les tiddlers possédant un champ [[tc-extra|Le champ tc-extra]] (donc notamment des couleurs de fond de tous les tiddlers tagués `Couleurs`. Je n'ai pas de solution actuellement. </div> Références : *https://fr.wikipedia.org/wiki/Noms_de_couleur_X11 *https://www.dcode.fr/couleurs-html (pour la traduction des couleurs en français) *https://css-tricks.com/snippets/css/named-colors-and-hex-equivalents/
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
\define mybutton(param) <$button> New Tiddler <$action-sendmessage $message="tm-new-tiddler" title="Title" text="some text..." tags="slide [[$param$]]" /> </$button> \end How to use tm-new-tiddler and have more than one tag, some are text reference? : Whenever you need to concatenate strings (as you do with the tags) you almost always need to use a macro. ``` \define mybutton(param) <$button> New Tiddler <$action-sendmessage $message="tm-new-tiddler" title="Title" text="some text..." tags="slide [[$param$]]" /> </$button> \end ``` <$macrocall $name="mybutton" param={{!!title}}/>
By default, TiddlyWiki displays a blank screen while it is loading. You can add a special "splash screen" that is displayed while the wiki loads. Larger TiddlyWiki files and those loaded over a slow network connection may take a little time to load. Once fully loaded, performance improves, because everything is now running entirely within the browser. Using a splash screen ensures people know the loading process is taking place, reducing the chance they will leave the page. In order for the splash screen to be displayed before TiddlyWiki is initialised it is embedded as static HTML/CSS within the TiddlyWiki HTML file. This is done with the [[SystemTag: $:/tags/RawMarkupWikified/TopBody]]. In order to remove the splash screen when the wiki has finished loading, the HTML should be wrapped in a container with the special class `tc-remove-when-wiki-loaded`. Any DOM elements with this class are automatically deleted by the core once the wiki has loaded. Here's an example of a simple splash screen that just displays the text //Loading//. To use it, copy the text into a new tiddler, give it the type "text/plain" and the tag "$:/tags/RawMarkupWikified/TopBody": ``` <div class="tc-remove-when-wiki-loaded"> Loading... </div> ``` If the tiddler is given the WikiText type `text/vnd.tiddlywiki` then the contents are wikified as the file is saved, allowing transclusion etc. For example, here's an example that quotes the site title in the loading message. To use it, copy the text into a new tiddler, give it the type "text/vnd.tiddlywiki" and the tag "$:/tags/RawMarkupWikified/TopBody": ``` \rules only filteredtranscludeinline transcludeinline <div class="tc-remove-when-wiki-loaded"> Please wait while {{$:/SiteTitle}} is loading </div> ``` The `\rules` directive is used to limit the wikitext syntax that is recognised to the two forms of inline transclusion. This avoids accidental wikification of tiddler content. There is a more complex example splash screen using CSS animations and images configured in this wiki: see $:/SplashScreen Ou bien [ext[l'exemple donné sur le site de Telmiger|https://tid.li/tw5/plugins.html#%24%3A%2Fplugins%2Ftelmiger%2Ftools%2Fsplash]] [[Adapté sur ce site avec ajout d'image|$:/plugins/telmiger/tools/splash]]
A template tiddler is not in fact a type of tiddler, it's a role in which a tiddler can be used. When text is wikified there is the concept of the current tiddler. Certain widgets (like `<$view>`) can use the current tiddler implicitly. For example: ``` <$view tiddler="HelloThere" field="myfield"/> ``` displays the field "myfield" of the tiddler HelloThere ``` <$view field="myfield"/> ``` displays the field "myfield" of the current tiddler When the `<$transclude>` widget pulls in the content from another tiddler, by default it doesn't change the current tiddler, so the transcluded content behaves as if it were in the context of the transcluding tiddler. So, if we have a tiddler "A" that contains: ``` <$view field="myfield"/> ``` And then transclude it from a tiddler "B" like so: My field value is: ``` <$transclude tiddler="A"/> ``` The result will be that the field from the tiddler "B" is displayed; in other words, tiddler "A" is acting as a template for displaying information from tiddler "B". The `<$tiddler>` widget is used to change the current tiddler. Consider a tiddler "C" containing: ``` <$tiddler tiddler="A"><$transclude tiddler="A"/></$tiddler> ``` It is still transcluding tiddler "A", but now it is also setting the current tiddler to "A". The result is therefore that the field "myfield" for tiddler "A" is displayed. The shorthand syntax for transcluding actually generates both a `<$tiddler>` widget and a `<$transclude>` widget. Finally, Stephan mentioned: And then there are the tiddlers whch can be used with the `<$button>` widget to fill a new tiddler with content. This can be any tiddler. I've been referring to these as "skeleton tiddlers" to distinguish them from the templates discussed above. I'll update the docs with this material. Jeremy.
La syntaxe est la suivante : ``` * My List **{{{ [tag[Q&R]sort[title]] }}} * Second heading ```
Votre wiki est ouvert. Nous avons déjà brièvement parlé des boutons qui se trouvent sous le titre du wiki en haut sur la partie droite. Le bouton {{$:/core/images/new-button}} permet de créer un nouveau tiddler, c'est à dire un nouveau bloc dans lequel vous mettrez du texte, des images pour produire une note, un courrier, un rapport, un tableau, enfin tout ce que vous voudrez. créer un nouveau tiddler c'est comme créer un nouveau document .doc sur un traitement de texte, pour ceux qui utilisent Microsoft Word par exemple. On verra plus tard que vous pouvez même l'utiliser comme un tableur Excel, grâce à des plugins externes appropriés. Nous verrons également comment écrire dans un tiddler. ''Important:'' Dans sa version ~StandAlone, tous vos tiddlers sont enregistrés et stockés dans le fichier unique `empty.html` (ou du nom que vous lui aurez donné), ce qui vous permettra d'obtenir des informations les concernant très rapidement.
Pour développer votre site web et toutes vos applications PHP
\define create(str) <<eval " const createElement = str => { const el = document.createElement('div'); el.innerHTML = str; return el.firstElementChild; }; ">> $str$ \end {{EnTêteDemosMacrosJs}} !1- La Macro ``` \define create(str) <<eval " const createElement = str => { const el = document.createElement('div'); el.innerHTML = str; return el.firstElementChild; }; ">> $str$ \end ``` !2- L'appel ``` <<create "<div class='container'> <b>Hello!</b> </div>" >> ``` <<create "<div class='container'> <b>Hello!</b> </div>" >>
Créez un Tiddler modèle intitulé `full`, avec le contenu suivant: {{full||code}}
Il faut définir une règle CSS spécifique, par exemple "floatleft" qui contiendra les règles que vous aurez fixé concernant des images ... de cette manière: `.floatleft img { float:left; }` (le tiddler doit être tagué `$:/tags/stylesheet`) Ensuite, pour appliquer la classe floatleft à un tiddler contenant une image, vous pouvez écrire : `@@.floatleft [img[...]] @@`
Void
Lorsqu'il est utilisé en tant que fichier HTML unique, ~TiddlyWiki5 permet au contenu d'être crypté avec la librairie [[Stanford JavaScript Crypto|Stanford JavaScript Crypto Library]] #Aller dans Control Panel <i class="fa fa-arrow-right"></i> Appearance <i class="fa fa-arrow-right"></i> Toolbars <i class="fa fa-arrow-right"></i> [[Page Toolbar|$:/core/ui/ControlPanel/Toolbars/PageControls]] et recherchez l'icône représentant un cadenas. Cliquez sur sa case à cocher. Le cadenas vient s'ajouter à la liste des outils de contrôle. #Si l'icône ouverte est intitulée {{$:/core/images/unlocked-padlock}} ''set password'' c'est que votre wiki n'est pas crypté. Cliquer sur l'icône fera apparaître une petite fenêtre réclamant un mot de passe (confirmé une seconde fois) qui sera utilisé pour crypter votre fichier lors de sa sauvegarde. #Si l'icône fermée est intitulée {{$:/core/images/locked-padlock}} ''clear password'' c'est que votre wiki est déjà crypté. Cliquer sur l'icône annulera le mot de passe rendant votre fichier sauvegardé non crypté. #Si vous souhaitez vérifier que votre fichier sauvegardé est bien crypté, vous pouvez visualiser la page source du wiki sur votre navigateur (view page source sous windows) #À l'ouverture (chargement) du wiki sur votre navigateur il vous sera demandé de saisir votre mot de passe sans lequel aucun contenu ne sera affiché. Notez également que ~TiddlyWiki a deux autres possibilités de cryptage qui ne sont pas en relation directe avec le mode epliqué ci-dessus, suivant que vous utilisez ~TiddlySpot ou ~TiddlyWiki5 sous Node.js que je ne développe pas ici.
{{CSS||caption}}
""" https://tid.li/tw5/test/bricks.html https://tid.li/tw5/plugins.html """ Toute la doc utile. Par Thomas Elmiger
CSS Grid Layout, guide complet
Voici un paramètre que j'ai longtemps cherché. Le code ci-dessous a pour effet d'ajouter une ombre portée sur les bords des tiddlers. A retirer de certains CSS si vous ne souhaitez pas la voir ! Dans mon cas, cecode se trouvait dans le tiddler `$:/css/ui/stylesheet` (tiddler système) /* Tiddler */ `.tc-tiddler-frame:hover { box-shadow: 0 8px 17px 0 rgba(0, 0, 0, .2); }` Voir la feuille de style $:/cssTiddlersShadowBorderHover Le paramètre se trouve dans la [[page de contrôle des tiddlers|$:/TemplateTiddler]]
border: text border-bottom: text border-left: text border-right: text border-top: text border-width: number border-bottom-width: number border-left-width: number border-right-width: number border-top-width: number border-bottom-color: color border-left-color: color border-right-color: color border-top-color: color border-bottom-style: text border-left-style: text border-right-style: text border-top-style: text color: color background-color: color width: number min-width: number max-width: number line-height: number height: number min-height: number max-height: number position: text top: number right: number bottom: number left: number vertical-align: text overflow: text overflow-x: text overflow-y: text z-index: number word-spacing: number letter-spacing: number white-space: text word-wrap: text text-align: text text-align-last: text text-decoration: text text-transform: text text-shadow: text text-indent: text text-underline-position: font-size-adjust: font-stretch: text font: text font-style: text font-variant: text font-weight: text font-size: number font-family: text fill: text margin: text margin-top: number margin-bottom: number margin-left: number margin-right: number visibility: text cursor: text border-radius: number
Des centaines de CSS supplémentaires via le control panel.
<div class="column col-sm-12"> <div class="toast toast-error"> Ce billet est un brouillon (ébauche) </div> </div> #''Les tiddlers CSS'' livrés en standard dans TW5 ou contenus dans les plugins importés ''ne sont jamais modifiés directement''. Notamment le CSS Vanilla Base [[$:/themes/tiddlywiki/vanilla/base]] #Les règles CSS modifiées le sont au travers de trois tiddlers tagués `$:/tags/Stylesheet` principaux: ##Les règles propres à ce wiki (Frame) [[$:/cssParamètres]] ##CSS Règles Additionnelles, [[$:/cssAdd]] ##CSS Spectre [[spectre.css]] #Ce wiki ne gère qu'une seule image de fond de page. #Donner une issue au tiddler [[$:/cssEditeur]] #Proposer une option pour supprimer le tag AboveStory du titre du wiki et déplacer le "À propos de..." #Ajouter une option :Modifier la couleur des liens internes (via la palette : Premier plan pour les liens vers un tiddler [tiddler-link-foreground]) #Finaliser l'unification des liens de ce wiki *le CSS des règles additionnelles [[$:/cssAdd]] contient les règles. *Les attributs sont stockés dans le tiddler dictionnaire [[$:/DicCss]] *La présentation visuelle de [[$:/cssAdd]] facilite la localisation des règles dans [[$:/DicCss]] !Liens Tous les liens de même type sont de couleur et de comportement identique : *Dans les tiddlers *Dans TOUS les onglets de la SideBar TW5 dispose de règles de style différentes pour les tiddlers et pour les contenus de laSideBar. La feuille de style Vanilla les regroupe sous les mêmes règles ce qui fait que les règles appliquées aux tiddlers le sont également pour la SideBar. *[[Test lien externe|https://tiddlywiki.com/]] !Table des matières Les règles sont enregistrées dans tout ce qui commence par `.tc-table-of-contents` Pour la numérotation des listes de la TOC, voir [[Numérotation des listes de la TOC]] Pour la gestion, voir [[Gérer la table des matières]] Les règles CSS ul, ol ont été modifiées sur Vanilla pour intégrer la numérotation des listes de la [[TableOfContents]] !Balises de formatage Balises `<pre>` et `<code>` ``` Test balises pre ``` !Panneau de contrôle Balises `.tc-tab-buttons...`. Concerne la gestion des onglets du panneau de contrôle. !~SideBar CSS des tables OUVERTS, PARAMS, T.O.C. et PLUS CSS des sous-tables de PLUS CSS de l'onglet PLUS ($:/core/ui/SideBar/More) en visualisation dans la StoryRiver. <<ref "Note2">> Les liens internes sont affectés d'une couleur spécifique. Les titres Hn également. Lorqu'un titre possède un lien, il prend la couleur du lien qui viens donc supplanter sa propre couleur. Y a t-il un moyen pour qu'un titre lien conserve sa couleur ? --- <<footnotes "Note2" "Il y a quand même une anomalie : Vanilla source y affecte les bons codes couleurs de la palette : `colour tab-background` pour le fond non sélectionné et `colour tab-background-selected` pour le fond sélectionné. Mais ces couleurs ne sont pas prises en compte. Il faut coder en dur `#DC143C` et `#006400` pour une prise en compte effective.">>
``` /*custom font*/ @import url(https://fonts.googleapis.com/css?family=Merriweather+Sans); * {margin: 0; padding: 0;} html, body {min-height: 100%;} body { text-align: center; padding-top: 100px; background: #689976; background: linear-gradient(#689976, #ACDACC); font-family: 'Merriweather Sans', arial, verdana; } .breadcrumb { /*centering*/ display: inline-block; box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.35); overflow: hidden; border-radius: 5px; /*Lets add the numbers for each link using CSS counters. flag is the name of the counter. to be defined using counter-reset in the parent element of the links*/ counter-reset: flag; } .breadcrumb a { text-decoration: none; outline: none; display: block; float: left; font-size: 12px; line-height: 36px; color: white; /*need more margin on the left of links to accomodate the numbers*/ padding: 0 10px 0 60px; background: #666; background: linear-gradient(#666, #333); position: relative; } /*since the first link does not have a triangle before it we can reduce the left padding to make it look consistent with other links*/ .breadcrumb a:first-child { padding-left: 46px; border-radius: 5px 0 0 5px; /*to match with the parent's radius*/ } .breadcrumb a:first-child:before { left: 14px; } .breadcrumb a:last-child { border-radius: 0 5px 5px 0; /*this was to prevent glitches on hover*/ padding-right: 20px; } /*hover/active styles*/ .breadcrumb a.active, .breadcrumb a:hover{ background: #333; background: linear-gradient(#333, #000); } .breadcrumb a.active:after, .breadcrumb a:hover:after { background: #333; background: linear-gradient(135deg, #333, #000); } /*adding the arrows for the breadcrumbs using rotated pseudo elements*/ .breadcrumb a:after { content: ''; position: absolute; top: 0; right: -18px; /*half of square's length*/ /*same dimension as the line-height of .breadcrumb a */ width: 36px; height: 36px; /*as you see the rotated square takes a larger height. which makes it tough to position it properly. So we are going to scale it down so that the diagonals become equal to the line-height of the link. We scale it to 70.7% because if square's: length = 1; diagonal = (1^2 + 1^2)^0.5 = 1.414 (pythagoras theorem) if diagonal required = 1; length = 1/1.414 = 0.707*/ transform: scale(0.707) rotate(45deg); /*we need to prevent the arrows from getting buried under the next link*/ z-index: 1; /*background same as links but the gradient will be rotated to compensate with the transform applied*/ background: #666; background: linear-gradient(135deg, #666, #333); /*stylish arrow design using box shadow*/ box-shadow: 2px -2px 0 2px rgba(0, 0, 0, 0.4), 3px -3px 0 2px rgba(255, 255, 255, 0.1); /* 5px - for rounded arrows and 50px - to prevent hover glitches on the border created using shadows*/ border-radius: 0 5px 0 50px; } /*we dont need an arrow after the last link*/ .breadcrumb a:last-child:after { content: none; } /*we will use the :before element to show numbers*/ .breadcrumb a:before { content: counter(flag); counter-increment: flag; /*some styles now*/ border-radius: 100%; width: 20px; height: 20px; line-height: 20px; margin: 8px 0; position: absolute; top: 0; left: 30px; background: #444; background: linear-gradient(#444, #222); font-weight: bold; } .flat a, .flat a:after { background: white; color: black; transition: all 0.5s; } .flat a:before { background: white; box-shadow: 0 0 0 1px #ccc; } .flat a:hover, .flat a.active, .flat a:hover:after, .flat a.active:after{ background: #9EEB62; } ```
{{CSSD||title}}
{{CssDiv||caption}}
<style> .body { font-family: 'Montserrat', sans-serif; font-size-adjust:none; font-style:normal; font-variant:normal; font-weight:normal; /*text-align: center;*/ } .stylingZZ { background-color:crimson; /*rgba(94,98,231,0.5);*/ color: #ffffff; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .stylingZZ:hover { opacity:0.7; } .center{ text-align: center; } .left{ text-align: left; } #test{ grid-row: 20; grid-column: 4 / 7; background-color: #A01226 ; } #test1{ grid-row: 21; grid-column: 3 / 5; background-color: #A01226 ; } @media only screen and (max-width: 480px) { .main{ width: 100% } .one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.eleven{ grid-column: auto / span 12 } .one{ grid-column: auto / span 6 } #test,#test1{ grid-column: auto / span 12; background-color: #A01226; grid-row: auto; } } </style> <div class="body"> <div class="main"> <div class="stylingZZ twelve center"><h1> SMART CSS GRID </h1>Minimal Responsive Grid System</div> <div class="twelve left"> !!Colonnes encapsulées (Nested) Vous n'aurez probablement jamais besoin de colonnes encapsulées avec CSS Grid mais si vous en avez besoin, utilisez la classe `.nested` et vous obtenez jusqu'à 12 colonnes dans n'importe quelle autre colonne. </div> <div class="twelve"> <!-- Si on ne veut pas que les colonnes débordent du cadre du tiddler si celui-ci ne remplit ps 100% de la tille de l'écran (pr exemple si la SideBar est ouverte) il faut encapsuler ce qui suit dans un <div class="twelve"> --> <div class="stylingZZ three nested"> <div class="stylingZZ four">Four</div> <div class="stylingZZ four">Four</div> <div class="stylingZZ four">Four</div> </div> <div class="stylingZZ nine nested"> <div class="stylingZZ four">Four</div> <div class="stylingZZ four">Four</div> <div class="stylingZZ four">Four</div> </div> <div class="stylingZZ twelve nested"> <div class="stylingZZ five">Five</div> <div class="stylingZZ five">Five</div> <div class="stylingZZ two">Two</div> </div> <div class="stylingZZ six nested"> <div class="stylingZZ six">Six</div> <div class="stylingZZ six">Six</div> </div> <div class="stylingZZ six nested"> <div class="stylingZZ four">Four</div> <div class="stylingZZ four">Four</div> <div class="stylingZZ four">Four</div> </div> <!-- Fin du premier div six (50% de la taille écran totale) --> <div class="stylingZZ six nested"> <div class="stylingZZ three">Three</div> <div class="stylingZZ three">Three</div> <div class="stylingZZ three">Three</div> <div class="stylingZZ three">Three</div> </div> <!-- Fin du second div six (50% de la taille écran totale) --> <div class="stylingZZ six nested"> <div class="stylingZZ two">Two</div> <div class="stylingZZ two">Two</div> <div class="stylingZZ two">Two</div> <div class="stylingZZ two">Two</div> <div class="stylingZZ two">Two</div> <div class="stylingZZ two">Two</div> </div> </div> <div class="twelve left"> !!Simple naming system </div> <div class="stylingZZ one">one</div> <div class="stylingZZ one">one</div> <div class="stylingZZ one">one</div> <div class="stylingZZ one">one</div> <div class="stylingZZ two">two</div> <div class="stylingZZ two">two</div> <div class="stylingZZ four">four</div> <div class="stylingZZ three">three</div> <div class="stylingZZ three">three</div> <div class="stylingZZ three">three</div> <div class="stylingZZ three">three</div> <div class="stylingZZ five">five</div> <div class="stylingZZ seven">seven</div> <div class="stylingZZ nine">nine</div> <div class="stylingZZ three">three</div> <div class="stylingZZ four">four</div> <div class="stylingZZ two">two</div> <div class="stylingZZ two">two</div> <div class="stylingZZ four">four</div> <div class="stylingZZ four merge-three-rows">You can also merge rows </div> <div class="stylingZZ four">four</div> <div class="stylingZZ four">four</div> <div class="stylingZZ four">four</div> <div class="stylingZZ four">four</div> <div class="stylingZZ four">four</div> <div class="stylingZZ four">four</div> <div class="twelve"><h2>Flexible & Fluid </h2> <p>Choisissez une un type de largeur pour la classe main et la grille s'y daptera automatiquement. Ce peut être par exemple: 90%, 960xp, 10em ou ce que vous choisirez. </p> </div> <div class="twelve"><h2>Swapping Places</h2> <p>Super useful when you working with media queries. You can reorder anything. In this example we used: "grid-row: 20; grid-column: 4 / 7;" to bring 4 column to 2 place. </p> </div> <div class="stylingZZ three">1</div> <div class="stylingZZ three">2</div> <div class="stylingZZ three">3</div> <div id="test" class="styling three">4</div> <div class="stylingZZ two">1</div> <div class="stylingZZ two">2</div> <div class="stylingZZ two">3</div> <div class="stylingZZ two">4</div> <div class="stylingZZ two">5</div> <div id="test1" class="styling two">6</div> <div class="twelve"><h2>Summary</h2> <p>Smart Grid is CSS fluid responsive layout system with 12 columns and it is only 0.5 KB. Clear syntax. No unnecessary div nesting, meaning you will write less HTML. It works in any browser that support <a href="https://caniuse.com/#feat=css-grid"> the CSS Grid</a>.</p> </div> </div> </div>
<style> .body { /*font-family: 'Montserrat', sans-serif;*/ font-size-adjust:none; font-style:normal; font-variant:normal; font-weight:normal; background-color:#88888844; /*Attention le fond est affecté à tous les tiddlers dont la classe.body serait attribuée, par exemple le tiddler CheckBox-source */ /*text-align: center;*/ } .styling { background-color: pink; /*rgba(224,18,101,0.5);*/ color: #000; border: 1px #E01266 solid; border-radius: 4px; padding: 12px; } .center{ text-align: center; } #test{ grid-row: 20; grid-column: 4 / 7; background-color: red; } #test1{ grid-row: 21; grid-column: 3 / 5; background-color: red; } @media only screen and (max-width: 480px) { .main{ width: 100% } .one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.eleven{ grid-column: auto / span 12 } .one{ grid-column: auto / span 6 } #test,#test1{ grid-column: auto / span 12; background-color: red; grid-row: auto; } } </style> <div class="body"> <div class="main"> <div class="styling twelve center"> !SMART CSS GRID Minimal Responsive Grid System </div> <div class="styling one">1</div> <div class="styling one">2</div> <div class="styling one">3</div> <div class="styling one">4</div> <div class="styling one">5</div> <div class="styling one">6</div> <div class="styling one">7</div> <div class="styling one">8</div> <div class="styling one">9</div> <div class="styling one">10</div> <div class="styling one">11</div> <div class="styling one">12</div> <div class="styling two">1</div> <div class="styling two">2</div> <div class="styling two">3</div> <div class="styling two">4</div> <div class="styling two">5</div> <div class="styling two">6</div> <div class="styling three">1</div> <div class="styling three">2</div> <div class="styling three">3</div> <div class="styling three">4</div> <div class="styling four">1</div> <div class="styling four">2</div> <div class="styling four">3</div> <div class="styling six">1</div> <div class="styling six">2</div> <div class="styling twelve">1</div> <div class="styling four">Lightweight, only 0,5 Kb gzipped</div> <div class="styling four">No unnecessary div nesting</div> <div class="styling four">Based on CSS Grid</div> <div class="styling four">Responsive</div> <div class="styling four">12 column system</div> <div class="styling four">Simple syntax </div> <div class="twelve"> !!Simple naming system </div> <div class="styling five">five</div> <div class="styling seven">seven</div> <div class="styling nine">nine</div> <div class="styling three">three</div> <div class="styling four">four</div> <div class="styling two">two</div> <div class="styling two">two</div> <div class="styling four">four</div> <div class="styling four merge-three-rows"> You can also merge rows</div> <div class="styling four">four</div> <div class="styling four">four</div> <div class="styling four">four</div> <div class="styling four">four</div> <div class="styling four">four</div> <div class="styling four">four</div> <div class="twelve"> !!Flexible & Fluid Choose any main width and the grid will auto adapt. Example: 90%, 960xp, 10em or whatever you want. </div> <div class="twelve"><h2>Swapping Places</h2> <p>Super useful when you working with media queries. You can reorder anything. In this example we used: "grid-row: 20; grid-column: 4 / 7;" to bring 4 column to 2 place. </p> </div> <div class="styling three">1</div> <div class="styling three">2</div> <div class="styling three">3</div> <div id="test" class="styling three">4</div> <div class="styling two">1</div> <div class="styling two">2</div> <div class="styling two">3</div> <div class="styling two">4</div> <div class="styling two">5</div> <div id="test1" class="styling two">6</div> <div class="twelve"><h2>Nested</h2> <p>You probably never gonna need nested columns with the CSS Grid, but if you do use the class .nested and you have 12 columns inside any other column.</p> </div> <div class="styling six nested"> <div class="styling six">Six</div> <div class="styling six">Six</div> </div> <div class="styling six nested"> <div class="styling four">Four</div> <div class="styling four">Four</div> <div class="styling four">Four</div> </div> <div class="twelve"><h2>Summary</h2> Smart Grid is CSS fluid responsive layout system with 12 columns and it is only 0.5 KB. Clear syntax. No unnecessary div nesting, meaning you will write less HTML. It works in any browser that support <a href="https://caniuse.com/#feat=css-grid"> the CSS Grid</a>. </div> <div class="twelve"><h2>Download</h2> [ext[Télécharger ce projet sur GitHub|https://github.com/vladocar/SMART-CSS-GRID]] </div> </div> </div>
<style> .center{ text-align: center; } .styling { background-color: pink; color: #000; border: 1px #E01266 solid; border-radius: 4px; padding: 12px; } .styling1 { background-color:crimson; color: #ffffff; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .styling1:hover { opacity:0.7; } .styling2 { background-color:#FEFEFE; color: #000; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .styling1:hover { opacity:0.7; } @media only screen and (max-width: 480px) { .main{ width: 100% } .one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.eleven{ grid-column: auto / span 12 } } </style> <div class="main"> <div class="twelve">Il semble qu'il faille toujours commencer par un `<div class="twelve">`, même si celui-ci peut rester invisible pour que les autres div soient correctement pris en compte. Supprimez ce premier div et c'est le bazard sur le reste du code.</div> <div class="styling six"> [ext[L'exemple source|https://vladocar.github.io/SMART-CSS-GRID/Smart-Grid-Demo.html]] prête à confusion: La partie droite laisse à penser que si la colonne de gauche est plus longue que les deux colonnes de droite, les `div` suivant viennent automatiquement remonter pour se loger sous les deux colonnes les plus courtes, comme le permet un certain nombre de grilles CSS (car il y en a beaucoup!). En réalité, ce n'est pas le cas. Mais voyez plus bas le système adopté pour ''fusionner des colonnes'' qui permet d'arriver à un résultat identique. Cette grille CSS est en réalité simple dans son utilisation comme son auteur l'indique. Il n'y a pas de code dédié aux balises ''column'' et ''row'' (colonnes et lignes) comme dans d'autres applications, ce qui ''allège'' considérablement ''le code HTML que vous avez à saisir''. Ici tout est bloc que l'on dépose l'un derrière l'autre. On en place jusqu'à 12 sur une ligne, les blocs suivants passant sous les premiers. Une grande place vous est laissée pour affiner le rendu par ajout de CSS supplémentaire destiné à la présentation visuelle de vos textes </div> <div class="styling1 three"> Les blises HTML de paragraphe ``` <p>...</p> ``` ne sont pas obligatoires et vous pouvez écrire du wiki texte encapsulé dans du code HTML à condition de sauter une ligne immédiatement après la saisie d'un code HTML </div> <div class="styling1 three"> <p>Praesent et ipsum fermentum metus convallis consequat. Suspendisse in quam.</p> <p>Praesent et ipsum fermentum metus convallis consequat. Suspendisse in quam. Morbi nunc. Cras in metus. Vestibulum mattis. Praesent interdum. In hac habitasse platea dictumst.</p> </div> <div class="styling2 three"> <p>Praesent et ipsum fermentum metus convallis consequat. Suspendisse in quam. Integer viverra consequat nisi. Donec rutrum turpis non eros. Pellentesque mauris. Sed facilisis augue quis enim. Quisque posuere, velit sit amet iaculis venenatis, dui lectus molestie magna, vel fringilla ante nunc eget urna. Nam eget lorem sit amet enim egestas pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae</p> </div> <div class="styling2 three"> <p>Praesent et ipsum fermentum metus convallis consequat. Suspendisse in quam. Integer viverra consequat nisi. Donec rutrum turpis non eros. Pellentesque mauris. Sed facilisis augue quis enim. Quisque posuere, velit sit amet iaculis venenatis, dui lectus molestie magna, vel fringilla ante nunc eget urna. Nam eget lorem sit amet enim egestas pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae</p> </div> <div class="styling2 three"> <p>Praesent et ipsum fermentum metus convallis consequat. Suspendisse in quam. Integer viverra consequat nisi. Donec rutrum turpis non eros. Pellentesque mauris. Sed facilisis augue quis enim. Quisque posuere, velit sit amet iaculis venenatis, dui lectus molestie magna, vel fringilla ante nunc eget urna. Nam eget lorem sit amet enim egestas pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae</p> </div> <div class="styling2 three"> <p>Praesent et ipsum fermentum metus convallis consequat. Suspendisse in quam. Integer viverra consequat nisi. Donec rutrum turpis non eros. Pellentesque mauris. Sed facilisis augue quis enim. Quisque posuere, velit sit amet iaculis venenatis, dui lectus molestie magna, vel fringilla ante nunc eget urna. Nam eget lorem sit amet enim egestas pharetra. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae</p> </div> <div class="styling four merge-three-rows"> Dans le présent bloc (4/12èmes) on indique `<div class="four merge-three-rows">`. Dans cet exemple, ce bloc sera fusionné avec deux autres blocs (2 x 4/12) sur 3 rangées (ici blocs de même nature). Donc comprenant 6 blocs de 4/12ème. Toutes les combinaisons de taille sont bien sur possibles</div> <div class="styling four">`<div class="styling four">`four (1)</div> <div class="styling four">`<div class="styling four">`four (2)</div> <div class="styling four">`<div class="styling four">`four (3)</div> <div class="styling four">`<div class="styling four">`four (4)</div> <div class="styling four">`<div class="styling four">`four (5)</div> <div class="styling four">`<div class="styling four">`four (6)</div> <div class="styling four">four</div> <div class="styling four">four</div> <div class="twelve"> !!Summary Smart Grid est le système de grille CSS responsive fluide comprenant 12 colonnes possibles et ne pesant que 0,5 Ko. Sa Syntaxe est claire et ne comprend pas d'imbrications div inutiles, ce qui signifie que vous écrirez moins de HTML Comparez [[Smart Css Grid|SmartCssGrid]] avec [[GridLex]] par exemple et constatez comme ce premier est beaucoup moins lourd à gérer que le second ! </div> <div class="styling six nested"> <div class="styling six">Six</div> <div class="styling six">Six</div> </div> <div class="styling six nested"> <div class="styling four">Four</div> <div class="styling four">Four</div> <div class="styling four">Four</div> </div> </div> <!-- Fin du DIV class main -->
<style> .center{ text-align: center; } .styling { background-color: pink; color: #000; border: 1px #E01266 solid; border-radius: 4px; padding: 12px; } .styling1 { background-color:crimson; color: #ffffff; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .styling1:hover { opacity:0.7; } .styling2 { background-color:#FEFEFE; color: #000; border: 1px #6012C6 solid; border-radius: 4px; padding: 12px; } .styling1:hover { opacity:0.7; } @media only screen and (max-width: 480px) { .main{ width: 100% } .one,.two,.three,.four,.five,.six,.seven,.eight,.nine,.ten,.eleven{ grid-column: auto / span 12 } } </style> <div class="main"> <div class="twelve"> Mauris sit amet ipsum eu enim dictum volutpat eget eu metus. Mauris congue mauris nec interdum tempus. Mauris sagittis, elit id semper viverra, </div> <div class="styling six"> </div> <div class="styling1 three"> </div> <div class="styling1 three"> </div> <div class="styling2 three"> </div> <div class="styling2 three"> </div> <div class="styling2 three"> </div> <div class="styling2 three"> </div> <div class="styling four merge-three-rows"> </div> <div class="styling four"></div> <div class="styling four"></div> <div class="styling four"></div> <div class="styling four"></div> <div class="styling four"></div> <div class="styling four"></div> <div class="styling four"></div> <div class="styling four"></div> <div class="twelve"> </div> <div class="styling six nested"> <div class="styling six">Six</div> <div class="styling six">Six</div> </div> <div class="styling six nested"> <div class="styling four">Four</div> <div class="styling four">Four</div> <div class="styling four">Four</div> </div> </div> <!-- Fin du DIV class main -->
<!-- FireFox 64 starts to support CSS style settings for Scrollbars! see: https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Scrollbars So if you create a stylesheet eg: scrollbarStyles with this content. It will create thin scroll-bars. If you hover the sidebar, it will increase the width, to indicate, which one is active. You can disable, this behaviour if you don't like it. ... Just don't set the :hover state :) This also works for FF63 if you enter: about:settings and set the variable: layout.css.scrollbar-width.enabled to true This setting doesn't really matter for Safari and for many unix versions, since scrollbars are handled by the OS already. ... But it's definitely worth a try for all windows users. --> .tc-sidebar-scrollable:hover { scrollbar-width: unset; } html, .tc-sidebar-scrollable { scrollbar-color: crimson; scrollbar-width: thin; } .scroller { width: 300px; height: 100px; overflow-y: scroll; scrollbar-color: crimson; scrollbar-width: thin; }
[[Voir le CSS|cssScrollBar]] <div class="scroller"> Veggies es bonus vobis, proinde vos postulo essum magis kohlrabi welsh onion daikon amaranth tatsoi tomatillo melon azuki bean garlic. Gumbo beet greens corn soko endive gumbo gourd. Parsley shallot courgette tatsoi pea sprouts fava bean collard greens dandelion okra wakame tomato. Dandelion cucumber earthnut pea peanut soko zucchini. </div>
Habillage, gestion d'un index (~TiddlyPrez)
Le tiddler courant fournit le contexte dans lequel plusieurs aspects de Wikitext sont interprétés. Par exemple, `{{!!title}}` se réfère à la valeur du champ `field title` du tiddler devenu courant, quel qu'il soit. Cette technique peut être utilisée pour créer des [[tiddlers gabarit|TemplateTiddlers]] d'usage général. Le titre du tiddler courant peut toujours être trouvé dans la variable `currentTiddler`. Les deux façons les plus communes de modifier le tiddler courant sont: * le widget `$tiddler` [[TiddlerWidget]] * le widget `$list` ListWidget (quand son attribut `variable` n'a pas été modifié) Le tiddler courant n'est cependant pas souvent le même que le tiddler en cours d'affichage ou d'édition. Le tiddler [[Utilisation de la variable currentTiddler]] donne plus de détails sur ce que contient la variable `<<currentTiddler>>`
On crée la feuille de style [[ICI|$:/cssTwTables]], puis on teste ci-dessous: !!La feuille de style exemple: {{$:/cssTwTables||code}} !!Le tableau exemple: |customTable|k |one|two|three|four|five|six|seven|eight|nine|ten|h |1|2|3|4|5|6|7|8|9|10| |1|2|3|4|5|6|7|8|9|10| |1|2|3|4|5|6|7|8|9|10| |1|2|3|4|5|6|7|8|9|10| |1|2|3|4|5|6|7|8|9|10| |1|2|3|4|5|6|7|8|9|10| |1|2|3|4|5|6|7|8|9|10|f Je crée des tables qui ont tendance à être trop larges. Ce qui rendrait le mieux pour moi est de pouvoir définir la largeur et la taille de la police pour certaines colonnes. Vous pouvez cibler des lignes et des colonnes spécifiques avec le sélecteur: nth-Child qui a comme paramètres quelque chose comme xn + y. L'utilisation de base est la suivante: la définition de style sera appliquée à chaque enfant x-ième, en commençant par le y-e enfant. Donc. `customTable TR TD: nth-Child (5N + 2)` ciblera chaque 5e TD (cellule de tableau) de chaque TR (rangée de tableau), en commençant par le 2ème TD de ce TR. Gardez à l'esprit que les feuilles de style en cascade "CASCADENT". Ainsi, certaines définitions peuvent se heurter entre elles et dans ce cas, la dernière a priorité. Par exemple, si vous étudiez la [[feuille de style associée à ce tiddler|$:/cssTwTables]], vous constaterez que la seconde définition de largeur (700px) annulera la première (100%), et votre table serait 700px de large au lieu de remplir le conteneur parent (100% Width). ''Puis ensuite'', nous avons la ligne`. customTable TR TD` qui remplacera la largeur de chaque cellule de table par une largeur de 20px, annulant ainsi les deux définitions de largeur de table précédentes (700px ou 100%). ''De plus'', la définition `. custom Table TR TD: nth-Child (2)` aura pour effet d'annuler la définition de la largeur précédente en rendant toutes les cellules de la deuxième table de chaque ligne (fondamentalement la deuxième colonne) 60px de large. Si cet ordre de définitions a été inversé, la table peut sembler très différente.
\define tags-from-field(field) {{{ [all[current]list[!!$field$]] }}} \end ; my-tags : {{!!my-tags}} `{{{ [all[current]tags[]] }}}` <<< {{{ [all[current]tags[]] }}} <<< `{{{ [all[current]list[!!tags]] }}}` <<< {{{ [all[current]tags[]] }}} <<< `{{{ [all[current]list[!!my-tags]] }}}` <<< {{{ [all[current]list[!!my-tags]] }}} <<< `<<tags-from-field my-tags>>` <<< <<tags-from-field my-tags>> <<<
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Aqua, Bleu Vert d'eau, Vert d'eau, Cyan *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
Végétarien
Quatre exemples de diagrammes
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button> '''' <!-- [[Menus|$:/ButtonNewMenu]]<br/>[[Ouverts|$:/core/ui/SideBar/Open]]<br/>[[Récents|$:/core/ui/SideBar/Recent]]<br/>[[Table des Matières]]<br/>[[Plus|$:/core/ui/SideBar/More]]<br/>[[Encours]]<br/>[[Favoris|$:/plugins/ajh/favorites/SideBar]] -->
{{DataDictionary||caption}}
Voici une manière intéressante d'utiliser un tiddler data proposée par Telumire sur le Forum français de ~TiddlyWiki (Voir le lien ci-dessus) En deux tiddlers, petite démonstration sur la manière d'''utiliser les tiddlers de type Data dictionary et d'en présenter leur contenu'' : <div class="column col-12 col-sm-12"> <div class="toast"> <dl>{{{ [tag[DataDictionary]] || $:/tocEntry }}}</dl> </div> </div> On procède en deux étapes: !1- Création des tiddlers de votre base de données !!![[Tiddler BD-John|BD-John]] {{BD-John||code}} Le type de tiddler doit être ''Data dictionary (application/x-tiddler-dictionary)''. !2- Récupération automatisée des données Ce que l'on cherche à faire c'est d'éviter de devoir spécifier les champs de données à chaque nouvelle création de tiddler `FicheJoueur-[nom du joueur`] dans la base de données, en étant obligé de devoir saisir ce genre de code : ``` {{BD-John##NomJoueur}} {{BD-John##Niveau}} ``` et donc de remplacer automatiquement BD-John par le contenu de son tiddler lié (BD-John) Voici la solution : !!![[Tiddler FicheJoueur-John|FicheJoueur-John]] {{FicheJoueur-John||code}} À chaque nouvelle création d'un tiddler `FicheJoueur-[Nom du joueur]`, vous y insérez le code ci-dessus. Les données de son tiddler lié BD-[Nom du joueur] y seront automatiquement affichées.
<link href="https://cdnjs.cloudflare.com/ajax/libs/tabulator/4.2.7/css/bootstrap/tabulator_bootstrap.css" rel="stylesheet"> <script type="text/javascript" src="https://unpkg.com/tabulator-tables@4.1.4/dist/js/tabulator.min.js"></script>
Un tiddler data est une mini-base de donnée contenue dans un tiddler. Il existe deux formats standard<<:>> * [[Les tiddlers dictionnaire|DictionaryTiddlers]] * [[Les tiddlers JSON|JSONTiddlers]] D'autres formats de tiddler peuvent aussi être utilisés pour produire des blocs de données qui se comporteront comme des tiddlers data. Utilisez TextReference pour rechercher une valeur par son nom. Par exemple, si un [[Tddler Dictionaire|DictionaryTiddlers]] appelé `JoursMois` contient<<:>> ``` oct:31 nov:30 dec:31 ``` ... alors `{{JoursMois##nov}}` retournera la valeur `30`. C'est aussi vrai si `MonthDays` est un [[Tiddler JSON|JSONTiddlers]] avec le contenu suivant<<:>> ``` {"oct":31,"nov":30,"dec":31} ``` Note: //Il est actuellement possible de récupérer des données uniquement à partir des propriétés immédiates de l'objet racine d'un Tiddler JSON.// <<< using data tiddlers ends up being too limiting because there are so few filter operators relating to tiddlers. [ext[Mark S'|https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg86765.html]] <<< C'est ce que je pensais sans pouvoir l'écrire correctement Utiliser les tiddlers data trouve rapidement ses limites du fait que l'on dispose de peu d'opérateurs de filtres en liens avec les tiddlers. Voir à ce sujet [[Champs vs dictionnaire]]
\define date-settings-tiddler() $:/.ss/date Macro/settings \define reg-year() ^([12]\d{3})$ \define reg-month() ^([12]\d{3})(-|/|\.)(0[1-9]|1[012])$ \define reg-day() ^(((((1[26]|2[048])00)|[12]\d([2468][048]|[13579][26]|0[48]))(-|/|\.)((((0[13578]|1[02])(\7)(0[1-9]|[12]\d|3[01]))|((0[469]|11)(\7)(0[1-9]|[12]\d|30)))|(02-(0[1-9]|[12]\d))))|((([12]\d([02468][1235679]|[13579][01345789]))|((1[1345789]|2[1235679])00))(-|/|\.)((((0[13578]|1[02])(\26)(0[1-9]|[12]\d|3[01]))|((0[469]|11)(\26)(0[1-9]|[12]\d|30)))|(02-(0[1-9]|1\d|2[0-8])))))$ \define exp-year() [<indate>] +[regexp<reg-year>] \define exp-month() [<indate>] +[regexp<reg-month>] \define exp-day() [<indate>] +[regexp<reg-day>] \define template-year-default() [UTC] YYYY \define template-month-default() [UTC] MMM YYYY \define template-day-default() [UTC] DDD DDth MMM YYYY \define date-fields-common() text="created" template-year={{!!template-year}} template-month={{!!template-month}} template-day={{!!template-day}} \define date-fields-regex() text="created" regex-year={{!!regex-year}} regex-month={{!!regex-month}} regex-day={{!!regex-day}} \define date-button-settings-reset-all() Before you can make any changes, you must ''Create'' the ''Custom Settings'' tiddler:<br> <$button> <$action-setfield $tiddler={{!!settings-tiddler}} $(date-fields-common)$ $(date-fields-regex)$/> Create the Custom Settings tiddler </$button><br> All Default settings will also be shown. \end \define date-button-settings-reset-common() <$reveal type="match" state={{!!settings-tiddler}} text="created"> <$button> <$action-setfield $tiddler={{!!settings-tiddler}} $(date-fields-common)$/> Set All Above settings to Default </$button> </$reveal> \end \define date-button-settings-reset-regex() <$reveal type="match" state={{!!settings-tiddler}} text="created"> <$button> <$action-setfield $tiddler={{!!settings-tiddler}} $(date-fields-regex)$/> Set All REGEX to Default </$button> </$reveal> \end \define date-button-settings-delete-tiddler() <$button set="$:/temp/.ss/date Macro/AdvancedSettings" setTo="hide"> <$action-deletetiddler $tiddler={{!!settings-tiddler}}/>Delete the Custom Settings Tiddler </$button> \end \define date-check-invalid(field) Field: `$field$` <table><tr><th>Tiddler</th> <th>Invalid Date</th></tr> <$list filter="[all[tiddlers]has[$field$]]"> <$wikify name="cd" text=<<date field:$field$ template:"[UTC]" emptyMessage:""" '' {{!!$field$}} '' """>>> <$set name="chk" filter="[enlist<cd>]" value="""<tr> <td><$link to={{!!title}}><$view field="title"/></$link></td><td><<cd>></td></tr>""" emptyValue=""><<chk>></$set> </$wikify> </$list> </table> \end \define date-return-formatted() <$view tiddler=<<fulldate>> field="title" format="date" template=<<template>>/> \define date-return-raw() <<fulldate>> \define convertyear(indate:"date" template template-year raw) <$set name="fulldate" value="$indate$0101000000000"> <$set name="temp" tiddler="""$(date-settings-tiddler)$""" field="template-year" emptyValue=<<template-year-default>>> <$set name="temp-template" filter="[enlist[$template$]]" value="$template$" emptyValue=<<temp>>> <$set name="template" filter="[enlist[$template-year$]]" value="$template-year$" emptyValue=<<temp-template>>> <$list filter="""[[raw]] -[[$raw$]]""" emptyMessage=<<date-return-raw>>> <<date-return-formatted>> </$list> </$set> </$set> </$set> </$set> \end \define convertmonth(indate:"date" sep:"-" template template-month raw) <$set name="date" value="$indate$"> <$set name="temp" tiddler="""$(date-settings-tiddler)$""" field="template-month" emptyValue=<<template-month-default>>> <$set name="temp-template" filter="[enlist[$template$]]" value="$template$" emptyValue=<<temp>>> <$set name="template" filter="[enlist[$template-month$]]" value="$template-month$" emptyValue=<<temp-template>>> <$list filter="[<date>splitbefore[$sep$]removesuffix[$sep$]]" variable="year" > <$list filter="[<date>removeprefix<year>removeprefix[$sep$]addprefix<year>addsuffix[01000000000]]" variable="fulldate" > <$list filter="""[[raw]] -[[$raw$]]""" emptyMessage=<<date-return-raw>>> <<date-return-formatted>> </$list> </$list> </$list> </$set> </$set> </$set> </$set> \end \define convertday(indate:"date" sep:"-" template template-day raw) <$set name="date" value="$indate$"> <$set name="temp" tiddler="""$(date-settings-tiddler)$""" field="template-day" emptyValue=<<template-day-default>>> <$set name="temp-template" filter="[enlist[$template$]]" value="$template$" emptyValue=<<temp>>> <$set name="template" filter="[enlist[$template-day$]]" value="$template-day$" emptyValue=<<temp-template>>> <$list filter="[<date>splitbefore[$sep$]removesuffix[$sep$]]" variable="year" > <$list filter="[<date>removeprefix<year>removeprefix[$sep$]splitbefore[$sep$]removesuffix[$sep$]]" variable="month" > <$list filter="[<date>removeprefix<year>removeprefix[$sep$]removeprefix<month>removeprefix[$sep$]addprefix<month>addprefix<year>addsuffix[000000000]]" variable="fulldate" > <$list filter="""[[raw]] -[[$raw$]]""" emptyMessage=<<date-return-raw>>> <<date-return-formatted>> </$list> </$list> </$list> </$list> </$set> </$set> </$set> </$set> \end \define date-find-separator(indate template template-year template-month template-day raw nextmacro) \whitespace trim <$list filter="[<indate>]"> <$list filter="""[<currentTiddler>] +[regexp[(\.)]]"""><$set name="sep" value="."> <$macrocall $name="$nextmacro$" indate=<<indate>> sep=<<sep>> template=<<template>> template-year="""$template-year$""" template-month="""$template-month$""" template-day="""$template-day$""" raw="""$raw$"""/> </$set></$list> <$list filter="""[<currentTiddler>] +[regexp[(-)]]"""><$set name="sep" value="-"> <$macrocall $name="$nextmacro$" indate=<<indate>> sep=<<sep>> template=<<template>> template-year="""$template-year$""" template-month="""$template-month$""" template-day="""$template-day$""" raw="""$raw$"""/> </$set></$list> <$list filter="""[<currentTiddler>] +[regexp[(/)]]"""><$set name="sep" value="/"> <$macrocall $name="$nextmacro$" indate=<<indate>> sep=<<sep>> template=<<template>> template-year="""$template-year$""" template-month="""$template-month$""" template-day="""$template-day$""" raw="""$raw$"""/> </$set></$list> </$list> \end \define date-process(indate template template-year template-month template-day raw) \whitespace trim <$list filter="""[<indate>] +[regexp<reg-year>]"""> <$macrocall $name="convertyear" indate=<<indate>> template="""$template$""" template-year="""$template-year$""" raw="""$raw$"""/> </$list> <$list filter="""[<indate>] +[regexp<reg-month>]"""> <$macrocall $name="date-find-separator" nextmacro="convertmonth" indate=<<indate>> template="""$template$""" template-month="""$template-month$""" raw="""$raw$"""/> </$list> <$list filter="[<indate>] +[regexp<reg-day>]"> <$macrocall $name="date-find-separator" nextmacro="convertday" indate=<<indate>> template="""$template$""" template-day="""$template-day$""" raw="$raw$"/> </$list> \end \define date-set-variables(field:"" tiddler:"" date:"" template:"" template-year:"" template-month:"" template-day:"" emptyMessage:"" raw:"") \whitespace trim <$set name="indate" filter="""[[$field$]minlength[1]]""" value={{!!$field$}} emptyValue="""$date$"""> <$set name="template" value="""$template$""" emptyValue={{$(date-settings-tiddler)$!!template}}> <$set name="template-year" value="""$template-year$""" emptyValue={{$(date-settings-tiddler)$!!template-year}}> <$set name="template-month" value="""$template-month$""" emptyValue={{$(date-settings-tiddler)$!!template-month}}> <$set name="template-day" value="""$template-day$""" emptyValue={{$(date-settings-tiddler)$!!template-day}}> <$set name="reg-year" tiddler="""$(date-settings-tiddler)$""" field="regex-year" emptyValue=<<reg-year>>> <$set name="reg-month" tiddler="""$(date-settings-tiddler)$""" field="regex-month" emptyValue=<<reg-month>>> <$set name="reg-day" tiddler="""$(date-settings-tiddler)$""" field="regex-day" emptyValue=<<reg-day>> > <$list filter="""[subfilter<exp-year>] ~[subfilter<exp-month>] ~[subfilter<exp-day>]""" emptyMessage=<<empty-message>>> <$macrocall $name="date-process" indate=<<indate>> template=<<template>> template-year="""$template-year$""" template-month="""$template-month$""" template-day="""$template-day$""" raw="""$raw$"""/> </$list> </$set> </$set> </$set> </$set> </$set> </$set> </$set> </$set> \end \define date(field:"" tiddler:"" date:"" template:"" template-year:"" template-month:"" template-day:"" emptyMessage:"" raw:"") \whitespace trim <$set name="empty-message" value="""$emptyMessage$""" emptyValue={{$(date-settings-tiddler)$!!empty-message}}> <$list filter="""[[$tiddler$]minlength[1]]"""> <$list filter="""[[$field$]minlength[1]]""" emptyMessage=<<empty-message>>> <$set name="outdate" tiddler="""$tiddler$""" field="""$field$"""> <$macrocall $name="date-set-variables" date=<<outdate>> template="""$template$""" template-year="""$template-year$""" template-month="""$template-month$""" template-day="""$template-day$""" emptyMessage="""$emptyMessage$""" raw="""$raw$"""/> </$set> </$list> </$list> <$list filter="""[[$tiddler$]] -[[]]""" emptyMessage=<<date-set-variables field:"""$field$""" date:"""$date$""" template:"""$template$""" template-year:"""$template-year$""" template-month:"""$template-month$""" template-day:"""$template-day$""" emptyMessage:"""$emptyMessage$""" raw:"""$raw$""">>> <$text text=""/> </$list> </$set> \end !Purpose The ''date'' macro takes a string in a Common Date Format (as shown below) and returns it in a specified [ext[Date Format|https://tiddlywiki.com/#DateFormat]]. It can also be used for converting a Common Date Format into a TiddlyWiki date value by giving the ''raw'' parameter a value of `raw` ;Terminology of the Common Date Formats | Description |Range from|to|h |YYYY is a 4 digit year| 1000 |2999 | |MM is a 2 digit month| 01 | 12 | |DD is a 2 digit day| 01 | 31 | ;Common Date Formats | <br>Separator | Input<br>- | <br>. | <br>/ | Default Output<br>[ext[Date Format|https://tiddlywiki.com/#DateFormat]] |h || YYYY | YYYY | YYYY | `[UTC] YYYY` | || YYYY-MM | YYYY.MM | YYYY/MM | `[UTC] MMM YYYY` | || YYYY-MM-DD | YYYY.MM.DD | YYYY/MM/DD | `[UTC] DDD DDth MMM YYYY` | ; Separator : One of these three `-` `.` `/` one character separators can be used to separate the numerical year, month, and day. ; Day & Time : All output times are midnight : A year only input evaluates to the 1st day of the year : A year & month only input evaluates to the 1st day of the month ! Parameters ;field : The name of the field in the [ext[currentTiddler|https://tiddlywiki.com/#Current%20Tiddler]] that holds the date (takes precedence over the ''date'' parameter) ;tiddler : The title of the tiddler whose field holds the date. The ''field'' parameter must also be specified. ; date : A date string in any of the 3 Common Date Formats specified above ; template : A [ext[DateFormat|https://tiddlywiki.com/#DateFormat]] template for the $view widget defaulting to the Custom Settings if any, otherwise the 3 Default Output formats specified above ;; template-year<br>template-month<br> template-day :: Specific templates for each of the 3 Date Formats that will override the ''template'' parameter ; emptyMessage : Optional wikitext to display if there is no result ; raw : a value of `raw` results in a non formatted (TiddlyWiki) date value being returned <br> <hr> ! Custom Settings <$reveal type="nomatch" state={{!!settings-tiddler}} text="created"> <<date-button-settings-reset-all>> </$reveal> <$reveal type="match" state={{!!settings-tiddler}} text="created"> ''Custom Settings'' tiddler: <$link to={{!!settings-tiddler}}><$text text={{!!settings-tiddler}}/></$link> : Created </$reveal> <$reveal type="match" state={{!!settings-tiddler}} text="created"> Change the present date display ''templates'' below: <br> <$edit-text tiddler={{!!settings-tiddler}} field="template-year" default={{!!template-year}} placeholder="" size="35"/><small> YYYY ( Default is <code>{{!!template-year}}</code> )</small><br> <$edit-text tiddler={{!!settings-tiddler}} field="template-month" default={{!!template-month}} placeholder="" size="35"/><small> YYYY-MM ( Default is <code>{{!!template-month}}</code> )</small><br> <$edit-text tiddler={{!!settings-tiddler}} field="template-day" default={{!!template-day}} placeholder="" size="35"/><small> YYYY-MM-DD ( Default is <code>{{!!template-day}}</code> )</small><br> Change the ''emptyMessage'' below:<br> <$edit-text tiddler={{!!settings-tiddler}} field="empty-message" default={{!!empty-message}} placeholder="" size="35"/><small> emptyMessage ( Default is //blank// )</small><br> <<date-button-settings-reset-common>> <br><hr> <h2> Advanced </h2> <$reveal type="nomatch" state="$:/temp/.ss/date Macro/AdvancedSettings" text="show"> <$button set="$:/temp/.ss/date Macro/AdvancedSettings" setTo="show">Show Advanced Settings</$button> </$reveal> <$reveal type="match" state="$:/temp/.ss/date Macro/AdvancedSettings" text="show"> <$button set="$:/temp/.ss/date Macro/AdvancedSettings" setTo="hide">Close Advanced Settings</$button> <br> Regular Expression formula for validating dates:<br><br> <$edit-text tiddler={{!!settings-tiddler}} field="regex-year" default={{!!regex-year}} placeholder="" size="50"/> : YYYY<br><small><code>{{!!regex-year}}</code> is the default for YYYY</small><br> <$edit-text tiddler={{!!settings-tiddler}} field="regex-month" default={{!!regex-month}} placeholder="" size="50"/> : YYYY-MM<br><small><code>{{!!regex-month}}</code> is the default for YYYY-MM</small><br> <$edit-text tiddler={{!!settings-tiddler}} field="regex-day" default={{!!regex-day}} placeholder="" size="80"/> : YYYY-MM-DD<br><small><code>{{!!regex-day}}</code> is the default for YYYY-MM-DD</small><br> <<date-button-settings-reset-regex>> <br> <p /> <<date-button-settings-delete-tiddler>> <small> ( Settings tiddler: <$link to={{!!settings-tiddler}}><$text text={{!!settings-tiddler}}/></$link> )<br>Default values will be applicable after deleting this Custom Settings Tiddler and the option to recreate it will be available again.</small> <p /> There is a bonus macro included (it has a ''field'' parameter) to help find invalid dates in a TiddlyWiki. To find all invalid dates in a field named `date` - use this macro in a new tiddler: `<<date-check-invalid date>>` <p /> <$button set="$:/temp/.ss/date Macro/AdvancedSettings" setTo="hide">Close Advanced Settings</$button> </$reveal> </$reveal> <!-- Write your comments here --> <br><hr><br> ! Examples | Field | Value | Macro | macro rendered | Template |h |`{{!!date}}`|{{!!date}} | `<<date date>>`|<<date date>> |"[UTC] DDD DDth MMM YYYY"| |`{{!!date-year}}`|{{!!date-year}} | `<<date date-year>>`|<<date date-year>> | "[UTC] YYYY" | |`{{!!date-month}}`|{{!!date-month}} | `<<date date-month>>`|<<date field:"date-month">> |"[UTC] MMM YYYY"| |`{{!!date-day}}`|{{!!date-day}} | `<<date field:date-day sep:"/" template:"[UTC] MMM DD, YYYY">>`|<<date field:"date-day" sep:"/" template:"[UTC] MMM DD, YYYY">> |"[UTC] MMM DD, YYYY"| | - | 2019.05.30 | `<<date date:"2019.05.30">>`|<<date date:"2019.05.30">>|"[UTC] DDD DDth MMM YYYY"| | `{{!!date-invalid}}` | {{!!date-invalid}} | `<<date date-invalid emptyMessage:"""//'' {{!!date}} ''//""">>`| <<date date-invalid emptyMessage:"""//'' {{!!date-invalid}} ''//""">> | - | | - | 2019/05 | `<<date date:"2019/05" raw:"raw">>`|<<date date:"2019/05" raw:"raw">>| - |
Voir le tiddler d'introduction [[Dates]] There are currently 3 macros: *[[$:/inmysocks/macros/day-diff.js]] *[[$:/inmysocks/macros/year-diff.js]] *[[$:/inmysocks/macros/add-time.js]] `day-diff` and `year-diff` both take up to 6 inputs: |!Name |!Purpose | |year1 |The starting year (default: 1900) | |month1 |The starting month (default: 1 for January) | |day1 |The starting day (default: 1) | |year2 |The ending year (default: 1900) | |month2 |The ending month (default: 1 for January) | |day2 |The ending day (default 1) | `add-time` takes up to 6 inputs: |!Name |!Purpose | |years |The number of years to add (default 0) | |months |The number of months to add (default 0) | |days |The number of days to add (default 0) | |hours |The number of hours to add (default 0) | |minutes |The number of minutes to add (default 0) | |seconds |The number of seconds to add (default 0) | All are numeric values. Years should be 4 digits (YYYY), months should be values in the range 1-12, with 1 being January and 12 being December, days should be in the range 1-31 to correspond to the day of the month. If you give a day that is outside of a given month, like 31 for February, it will treat it as March 3rd. day-diff returns the number of days rounded to the closes full day, year-diff returns the number of years rounded to the closest full year. Inputs can be given in order or in name:value pairs, so `<<day-diff year1:1985 year2:2015>>` gives <<day-diff year1:1985 year2:2015>> and `<<day-diff 1985 1 1 2015 1 1>>` gives <<day-diff 1985 1 1 2015 1 1>>, which should be the same result. ``` There are <<day-diff 1985 10 9 2015 2 25>> days between Oct. 9th 1985 and Feb. 25th 2015 There are <<year-diff 1985 10 9 2015 2 25>> years between Oct. 9th 1985 and Feb. 25th 2015 It will be <<add-time 5 3 2>> 5 years 3 months and 2 days from now. Days and months roll over as expected: `<<add-time 0 36 200>>` gives <<add-time 0 36 200>> ``` Difference between two dates in days: (this may not be completely accurate, I think it is a few days off.) There are <<day-diff 1985 10 9 2015 2 25>> days between Oct. 9th 1985 and Feb. 25th 2015 Difference between two dates in years: There are <<year-diff 1985 10 9 2015 2 25>> years between Oct. 9th 1985 and Feb. 25th 2015 Date a set time from now: It will be <<add-time 5 3 2>> 5 years 3 months and 2 days from now. Giving add-time no arguments should be the same date as the now macro: `<<add-time>>` gives <<add-time>>, `<<now>>` gives <<now>> Days and months roll over as expected: `<<add-time 0 36 200>>` gives <<add-time 0 36 200>> Starting: Year: <$select field=year><$list filter='1980 1981 1982 1983 1984 1985 1986 1985 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020'> <option><<currentTiddler>></option> </$list> </$select> Month: <$select field=month><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'> <option><<currentTiddler>></option> </$list> </$select> Day: <$select field=day><$list filter='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31'> <option><<currentTiddler>></option> </$list> </$select> Ending: Year: <$select field=year2><$list filter='1980 1981 1982 1983 1984 1985 1986 1985 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020'> <option><<currentTiddler>></option> </$list> </$select> Month: <$select field=month2><$list filter='1 2 3 4 5 6 7 8 9 10 11 12'> <option><<currentTiddler>></option> </$list> </$select> Day: <$select field=day2><$list filter='1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31'> <option><<currentTiddler>></option> </$list> </$select> Difference in days: <$macrocall $name='day-diff' year1={{!!year}} month1={{!!month}} day1={{!!day}} year2={{!!year2}} month2={{!!month2}} day2={{!!day2}}/> Difference in years: <$macrocall $name='year-diff' year1={{!!year}} month1={{!!month}} day1={{!!day}} year2={{!!year2}} month2={{!!month2}} day2={{!!day2}}/>
Using `input` tag and showing time: <$edit-date showTime showSeconds use24hour/> Using an icon instead of an `input` field: <$edit-date icon="$:/plugins/kixam/datepicker/icon" tag=div /> !!Result: {{!!created}}
Le [[WidgetView|ViewWidget]] accepte un attribut `template` qui permet de spécifier le format d'affichage des dates. A la chaine formatée se substituent les valeurs suivantes : |!Format |!Valeur de Substitution | |`DDD` |Jour de la semaine en entier (ex, "Monday") | |`ddd` |Jour de la semaine abrégé (ex, "Mon") | |`DD` |N° du jour dans le mois | |`0DD` |Éventuel préfixe d'un zéro | |`DDth` |Ajout d'un suffixe | |`WW` |ISO-8601 n° de la semaine | |`0WW` |Éventuel préfixe d'un zéro | |`MMM` |Mois en entier (ex, "July") | |`mmm` |Mois abrégé (ex, "Jul") | |`MM` |N° du mois | |`0MM` |Éventuel préfixe d'un zéro | |`YYYY` |Année en entier | |`YY` |Année sur 2 chiffres | |`wYYYY` |Année complète avec numéro de la semaine | |`wYY` |Année abrégée avec numéro de la semaine | |`hh` |Heures | |`0hh` |Éventuel préfixe d'un zéro | |`hh12` |Heures au format 12 heures | |`0hh12` |Éventuel préfixe d'un zéro | |`mm` |Minutes | |`0mm` |Éventuel préfixe d'un zéro | |`ss` |Secondes | |`0ss` |Éventuel préfixe d'un zéro | |`am`/`pm` |Indicateur AM/PM en minuscule | |`AM`/`PM` |Indicateur AM/PM en majuscule | |`TZD` |Zone horaire | |`\x` |Utilisation du caractère d'échappement pour insérer des caractères sans interpréter le formatage | Notez que tout autre texte sera affiché sans générer de modification, ce qui permet d'utiliser des virgules, les deux points ou tout séparateur utile. ! Exemples |!Modèles |!Résultats formatés | |`DDth MMM wYYYY` |16 Février 2011 | |`DDth MMM \M\M\M YYYY` |16 Février MMM 2011 | |`DDth mmm hh:mm:ss` |16 Fév 2011 11:38:42 |
{{DateMacro||caption}}
{{DatePicker||caption}}
{{Dates||caption}}
Il y a notamment une macro et un plugin traitant des travaux sur les dates: <<<< http://inmysocks.tiddlyspot.com/#Date%20Macro%20Demos Date Macro Demos Il y a trois macros à charger: *$:/inmysocks/macros/day-diff.js *$:/inmysocks/macros/year-diff.js *$:/inmysocks/macros/add-time.js @@padding:0 5px;border:1px solid crimson; Voir le tiddler d'exemple [[Date Macro Demo (inmysocks)]] @@ <<<< <<<< http://kixam.github.io/TW5-datePicker/ Date Picker plugin Charger le plugin: *$:/plugins/kixam/datepicker @@padding:0 5px;border:1px solid crimson; Et voir le tiddler d'exemple [[Date Macro Demo (kixam)]] @@ Plugins [[moment.js|$:/plugins/kixam/moment]] et [[DatePicker|$:/plugins/kixam/datepicker]] Chargés. <<<< ;À voir en détail sous la présente rubrique.
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "12" "">> """ 5 - Saint Nicholas' Eve/Sinterklaas ^^Netherlands^^ 6 - Saint Nicholas' Day/Sinterklaas ^^Netherlands^^ 6 - Constitution Day ^^Spain^^ 23 - Hanukkah (Holiday of lights, begins) 24 - Christmas Eve 25 - Christmas Day 26 - Boxing Day ^^Australia,^^ ^^Germany,^^ ^^New Zealand,^^ ^^United Kingdom^^ 26 - Kwanzaa (until Jan 1) ^^United States^^ 30 - Hanukkah (last day) 31 - New Year's Eve """ [img height="90" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "12" "">> """ 5 - St Nicholas' Eve/Sinterklaas ^^Netherlands^^ 6 - Constitution Day ^^Spain^^ 11 - Hanukkah I (Holiday of lights, begins) 18 - Hanukkah VIII (last day) 24 - Christmas Eve 25 - Christmas Day 26 - Boxing Day ^^Australia,^^ ^^Canada,^^ ^^Germany,^^ ^^New Zealand^^ 28 - Boxing Day ^^United Kingdom^^ 31 - New Year's Eve """ [img height="140" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "12" "">> """ And steadfast as Keat's Eremite, Not even stooping from its sphere, It asks a little of us here. It asks of us a certain height, So when at times the mob is swayed To carry praise or blame too far, We may choose something like a star To stay our minds on and be staid. from //Choose Something Like A Star// by Robert Frost """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "12" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "12" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "12" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#dec25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "12" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
Le terme anglais "Offset" signifie "décalage": les données normalement placées de la gauche vers la droite seront repoussées de manière individuelle soit sur la gauche, soit sur la droite. ``` off-* (0 to 11) _xs-* (0 to 11) _sm-* (0 to 11) _md-* (0 to 11) _lg-* (0 to 11) ``` ``` -0: reboot the offset (can be usefull in responsive mode with key-suffixes) ```
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#December">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "12" "">> """ 3 - Hanukkah (starts) 5 - Saint Nicholas' Eve ^^Netherlands^^ 10 - Hanukkah (last day) 23 - Emperor's Birthday ^^Japan^^ 25 - Christmas Day 26 - Boxing Day ^^United Kingdom,^^ ^^Germany,^^ ^^Australia,^^ ^^New Zealand^^ 26 - Kwanzaa (starts) ^^USA^^ 31 - New Year's Eve """ [img height="140" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
\define mois() <<eval """ const date = Date.now(); const options = { month: "short" }; new Intl.DateTimeFormat("fr-FR", options).format(date); """>> \end !La Macro ``` \define mois() <<eval """ const date = Date.now(); const options = { month: "short" }; new Intl.DateTimeFormat("fr-FR", options).format(date); """>> \end ``` !2- Le rendu ``` <<mois>> ``` <<mois>>
Pour créer une macro, le premier code à saisir est: `\define` Ceci indiquant que ce qui suivra concernera le code de la macro `\define` est un composant sécial wikitext permettant le contrôle sur la manière dont la suite du code sera parsé. `\define` doit aparaûtre en premier dans le texte. Cette première ligne sert à définir le nom de la macro et n'importe quel paramètre associé. Par exemple: `\define visibility(tiddler)` Indique que l'on crée la macro nommée "''visibility''" avec pour paramètre "''tiddler''". Les lignes suivantes contiendront le texte de la macro et la macro sera fermée avec `\end`, sur une ligne seule séparée. Voir exemple sur le site officiel à l'adresse https://tiddlywiki.com/#Macro%20Definitions%20in%20WikiText
\define aMacro() just some text. \end Définir une variable dans TW5 peut se faire de différentes manières : #`set-widget`: https://tiddlywiki.com/#SetWidget #`vars-widget`: https://tiddlywiki.com/#VarsWidget #`\define aMacro()` : see Macros in wikitext [[https://tiddlywiki.com/#Macros%20in%20WikiText:%5B%5BMacros%20in%20WikiText%5D%5D%20%5B%5BMacro%20Definitions%20in%20WikiText%5D%5D%20%5B%5BMacro%20Calls%20in%20WikiText%5D%5D]] Les variables ont une portée (et des limites). Essayer ceci par exemple: ``` \define aMacro() just some text. \end <$set name="var1" value="VAR1"> <<var1>> - <<aMacro>><br> <$set name="var1" value="xxx"> <<var1>> - <<aMacro>> </$set> </$set> <$vars var-a="asdf" var-b="bbb"> <<var-a>> - <<var-b>> </$vars> ``` ;Rendra : <$set name="var1" value="VAR1"> <<var1>> - <<aMacro>><br> <$set name="var1" value="xxx"> <<var1>> - <<aMacro>> </$set> </$set> <$vars var-a="asdf" var-b="bbb"> <<var-a>> - <<var-b>> </$vars> Les deux manières principale d'utilisation sont les macros JavaScript et les widgets. La documentation disponible sur les widgets est assez pauvre et éparse, mais les macros JavaScript sont plus faciles. Voir https://tiddlywiki.com/dev/index.html#JavaScript%20Macros
graph LR A[Un nœud avec du texte]-->B(a node aux coins arrondis ) A--sans liens---C((un cercle)) B-->D{un losange} C==>|flèche et texte|D C-. retour vers.->A
graph TD A[Christmas] -->|Get money| B(Go shopping) B --> C{Let me think} C -->|One| D[Laptop] C -->|Two| E[iPhone] C -->|Three| F[fa:fa-car Car]
\define ModalParam() Avertissement \end
Comment afficher le nombre de tags associés à la liste des tags dans les tables `More/Tags` et `More/System tags` de la SideBar ? En codant ainsi les tiddlers suivants : <$button>1</$button> Onglet Tags, tiddler [[$:/core/ui/MoreSideBar/Tags]] ``` <$list filter={{$:/core/Filters/AllTags!!filter}}> <$transclude tiddler="$:/core/ui/TagTemplate"/> <small class="tc-menu-list-count"><$count filter="[all[current]tagging[]]"/></small> </$list> ``` <$button>2</$button> Onglet System tags, tiddler [[$:/_systemtags]] {{$:/_systemtags||code}}
Les plugins peuvent être désactivés en créant un tidler intitulé `$:/config/Plugins/Disabled/` concaténé avec le titre du plugin, et en renseignant son texte à `yes`. Par exemple pour désactiver le plugin `$:/plugins/TWaddle/LeftBar`, le titre sera : [[$:/config/Plugins/Disabled/$:/plugins/TWaddle/LeftBar]]
\define detect() <<eval """ const detectDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop'; detectDeviceType (); """>> \end !1- Le code ~JavaScript original ``` const detectDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop'; ``` ;Ce code est construit ainsi : const nomfonction = (ici pas de variables séparées par des virgules) => une expression régulière avec un test ? si vrai et : sinon. Avec const -> une constante et son appel original: ``` detectDeviceType(); ``` !2- Son intégration dans TW5 ``` \define detect() <<eval """ const detectDeviceType = () => /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ? 'Mobile' : 'Desktop'; detectDeviceType (); """>> \end ``` !3- Son appel dans TW5: ``` <<detect>> ``` <<< <<detect>> <<<
Deux possibilités pour écrire dans un champ, en fonction de la taille du contenu du champ ``` <$edit field="contenu" class="form-input"/> ``` ;Soit : <$edit field="contenu" class="form-input"/> <br/> Soit en utilisant le tag type textarea: ``` <$edit-text field="contenu" tag="textarea" class="tw-edit-texteditor"/> ``` ;Soit : <$edit-text field="contenu" tag="textarea" class="tw-edit-texteditor"/> ;about the tag type definition. That's because the default element for editing fields is the input tag not a text area. Try specifiying text-area as a tag type in the edit text widget. Did you used the edit or the edit-text widget?
https://developer.mozilla.org/fr/docs/Web/JavaScript/ Tutoriel JvScript en plusieurs langues (bon pour obtenir une bonne traduction des termes techniques). *https://developer.mozilla.org/fr/ *https://developer.mozilla.org/fr/docs/Web/ *https://developer.mozilla.org/fr/docs/Web/JavaScript/
Deux manières possibles de récupérer une information stockée dans le tiddler data [[FicheA]]: :en écrivant le code suivant dans ce tiddler (dico): ``` <$set name="dico" tiddler="FicheA" index="nom"> <<dico>> </$set> ``` ;Soit: <<< <$set name="dico" tiddler="FicheA" index="nom"> <<dico>> </$set> <<< :Ou en l'écrivant dans un champ du tiddler (ici le champ prenom), puis en transcluant le champ: ``` {{!!prenom}} ``` ;Soit: <<< {{!!prenom}} <<<
{{Dictionnaire||caption}}
À rédiger
La différence entre une macro et un plugin est qu'un plugin est exécuté au moment du chargement (lorsque le fichier ~TiddlyWiki est chargé dans le navigateur et rendu) tandis qu'une macro est appelée lorsque des Tiddlers individuels sont ouverts ou lorsque d'autres événements se produisent, tels que des boutons cliqués. Cependanti, un plugin exécuté au moment du chargement, peut également fournir du code pour être invoqué par une macro, ce qui rend la distinction entre les plugins et les macros un peu moins tranchée. Voir aussi : [[Différences entre Widgets et Macros]]
<$details summary="Définitions et traduction" open="yes"> Selon [[Tobias Beer|http://tobibeer.github.io/tb5/#Core]] : *[[Widgets]] : the basic functional elements on which tw5 runs *[[Macros]] : functional snippets using text, core macros, templates invoked via `<<shortcuts>>` Font partie des quatre éléments et des constructions du <<? noyau>> de Tiddlywiki5 : WikiText, Widgets, Filters et Macros. La traduction : *Widgets : Éléments fonctionnels de base sur lesquels TW5 fonctionne. *Macros : Bouts de codes (extraits) fonctionnels utilisant du texte, des macros du noyau, des <<? modèles>> qui sont invoqués par le biais de raccourcis. En effet, le noyau de TiddlyWiki contient lui même des macros (elles sont taguées "Core Macros"") <<extract "Widgets" start:"<widg1>" end:"</widg1>" limit:"no">> Sans les widgets, TiddlyWiki ne peut pas fonctionner. </$details> <$details summary="Comment interpréter les macros" open="yes"> Les macros sont plutôt à interpréter comme étant du code spécifique nécessaire pour implémenter de nouvelles fonctions ou des plugins visant à adapter TiddlyWiki à des besoins spécifiques (bien que l'on puisse aussi [[distinguer un plugin d'une macro|Différences entre Plugin et Macro]]) </$details>
{{Divers||caption}}
La documentation développeur de ~TiddlyWiki
Les macros suivantes sont utilisées dans toute la documentation de ~TiddlyWiki. Leurs noms commencent par un point pour éviter des nommages identiques qui seraient testés par un utilisateur. !General |!Macro |!Used for |!Example | |.def |the defining instance of a term |<<.def widget>> | |.em |minor emphasis within a sentence |<<.em not>> | |.place |a placeholder for the user to fill in |<<.place tagname>> | |.strong |major emphasis within a tiddler |<<.strong Important!>> | |.word |a mention of an ordinary word or phrase |<<.word "hello world">> | !Advice |!Macro |!Used for |!Example | |^.tip |^hints and tips |<<.tip "Turn your screen on, otherwise<br>you won't be able to see much.">> | |^.warning |^warning advice |<<.warning "Make a backup of your file<br>before you upgrade.">> | !Blocks |!Macro |!Used for | |.preamble |an introductory sentence that stands apart from the rest of the tiddler | !Tiddlers and fields |!Macro |!Used for |!Example | |.tid |a tiddler title |<<.tid Example>> | |.tag |a tag |<<.tag Example>> | |.field |a field name |<<.field example>> | |.value |a field value |<<.value "example value">> | |.op |a filter operator |<<.op backlinks>> | |.var |a variable or macro name |<<.var currentTiddler>> | |.wid |a widget name |<<.wid list>> | |.attr |an attribute name |<<.attr filter>> | |.param |a macro parameter name |<<.param text>> | !Links |!Macro |!Used for |!Example | |.link |a link containing WikiText |<<.link "^^an^^ ~~example~~" Example>> | |.clink |a code link |<<.clink `<$list>` ListWidget>> | |.dlink |a link on a defining instance of a term |<<.dlink widget Widgets>> | |.dlink-ex |an external link on a defining instance of a term |<<.dlink-ex Example "http://example.com/">> | |.flink |a link to a field |<<.flink ListField>> | |.mlink |a link to a macro |<<.mlink qualify>> | |.mlink2 |a link to a macro, with specified target |<<.mlink2 foo "Examples of Macros">> | |.olink |a link to an operator |<<.olink prefix>> | |.olink2 |a link to an operator, with specified target |<<.olink2 foo prefix>> | |.vlink |a link to a variable |<<.vlink currentTiddler>> | |.vlink2 |a link to a variable, with specified target |<<.vlink2 foo "Examples of Variables">> | |.wlink |a link to a widget |<<.wlink ButtonWidget>> | |.wlink2 |a link to a widget, with specified text |<<.wlink2 foo ButtonWidget>> | !User interface |!Macro |!Used for |!Example | |.key |a key on the keyboard |<<.key Escape>> | |.keycombo |a key combination |<<.keycombo Ctrl Enter>> | !Tabs |!Macro |!Used for |!Example | |.sidebar-tab |the name of a sidebar tab |<<.sidebar-tab More>> | |.more-tab |the name of a subtab of the More tab |<<.more-tab Shadows>> | |.info-tab |the name of a tiddler info tab |<<.info-tab Fields>> | |.controlpanel-tab |the name of a Control Panel tab |<<.controlpanel-tab Settings>> | |.advancedsearch-tab |the name of an Advanced Search tab |<<.advancedsearch-tab Filter>> | |.toc-tab |name of the tw5.com TOC tab |<<.toc-tab>> | |.example-tab |an example tab name |<<.example-tab "Notes">> | !!Parameters for .sidebar-tab |Open |<<.sidebar-tab Open>> | |Recent |<<.sidebar-tab Recent>> | |Tools |<<.sidebar-tab Tools>> | |More |<<.sidebar-tab More>> | !!Parameters for .more-tab |All |<<.more-tab All>> | |Recent |<<.more-tab Recent>> | |Tags |<<.more-tab Tags>> | |Missing |<<.more-tab Missing>> | |Drafts |<<.more-tab Drafts>> | |Orphans |<<.more-tab Orphans>> | |Types |<<.more-tab Types>> | |System |<<.more-tab System>> | |Shadows |<<.more-tab Shadows>> | !!Parameters for .info-tab |Tools |<<.info-tab Tools>> | |References |<<.info-tab References>> | |Tagging |<<.info-tab Tagging>> | |List |<<.info-tab List>> | |Listed |<<.info-tab Listed>> | |Fields |<<.info-tab Fields>> | |Advanced |<<.info-tab Advanced>> | !!Parameters for .controlpanel-tab |Info |<<.controlpanel-tab Info>> | |Appearance |<<.controlpanel-tab Appearance>> | |Settings |<<.controlpanel-tab Settings>> | |Saving |<<.controlpanel-tab Saving>> | |Plugins |<<.controlpanel-tab Plugins>> | !!Parameters for .advancedsearch-tab |Standard |<<.advancedsearch-tab Standard>> | |System |<<.advancedsearch-tab System>> | |Shadows |<<.advancedsearch-tab Shadows>> | |Filter |<<.advancedsearch-tab Filter>> | !Buttons |!Macro |!Used for |!Example | |.button |a standard button name and icon |<<.button "new-tiddler">> | !!Parameters for .button !!!Tiddler toolbar |clone |<<.button "clone">> | |close |<<.button "close">> | |close-others |<<.button "close-others">> | |edit |<<.button "edit">> | |export-tiddler |<<.button "export-tiddler">> | |info |<<.button "info">> | |more-tiddler-actions |<<.button "more-tiddler-actions">> | |new-here |<<.button "new-here">> | |new-journal-here |<<.button "new-journal-here">> | |permalink |<<.button "permalink">> | !!!Edit-mode toolbar |cancel |<<.button "cancel">> | |delete |<<.button "delete">> | |save |<<.button "save">> | !!!Page toolbar |advanced-search |<<.button "advanced-search">> | |close-all |<<.button "close-all">> | |control-panel |<<.button "control-panel">> | |encryption |<<.button "encryption">> | |export-page |<<.button "export-page">> | |full-screen |<<.button "full-screen">> | |home |<<.button "home">> | |import |<<.button "import">> | |language |<<.button "language">> | |more-page-actions |<<.button "more-page-actions">> | |new-journal |<<.button "new-journal">> | |new-tiddler |<<.button "new-tiddler">> | |permaview |<<.button "permaview">> | |refresh |<<.button "refresh">> | |save-wiki |<<.button "save-wiki">> | |storyview |<<.button "storyview">> | |tag-manager |<<.button "tag-manager">> | |theme |<<.button "theme">> |
<$details summary="Qu'est-ce qu'un filtre ?"> {{FiltresDoc}} </$details> !1- Différents filtres pour différents besoins <$details summary="Un exemple s'appuyant sur une Base de Données"> {{Un exemple s'appuyant sur une Base de Données}} </$details> !!1.1- Filtres Simples <$details summary="Introduction"> {{Filtres Simples - Introduction}} </$details> <$details summary="Filtres sur un titre"> {{Filtre sur un Titre}} </$details> <$details summary="Filtres sur un tag"> {{Filtre sur un Tag}} </$details> <$details summary="Filtres par exclusion"> {{Filtre par Exclusion}} </$details> <$details summary="Filtres sur un champ"> {{Filtre sur un Champ}} </$details> <$details summary="Filtres sur un champ sans préfixe"> {{Filtre sur un champ sans préfixe}} </$details> !!1.2- Combiner les filtres <$details summary="Introduction"> {{Combiner les filtres - Introduction}} </$details> <$details summary="Tiddler Complet - Végétarien - Four"> {{Tiddler Complet - Végétarien - Four}} </$details> <$details summary="Tiddler Vapeur - Four - BM"> {{Tiddler Vapeur - Four - BM}} </$details> <$details summary="Tiddler Vapeur - Four - sauf Viande - BM"> {{Tiddler Vapeur - Four - sauf Viande - BM}} </$details> <$details summary="Tiddler Vapeur - Four - BM + Viande"> {{Tiddler Vapeur - Four - BM + Viande}} </$details> <$details summary="Tiddler Végétarien - moins - E - moins - L"> {{Tiddler Végétarien - moins - E - moins - L}} </$details> <$details summary="Paramètres spéciaux"> {{Paramètres spéciaux}} </$details> !2- Les opérateurs de filtre <$details summary="Introduction"> {{FilterOperatorsDoc}} </$details> <$details summary="Opérateur has"> {{has Operator}} </$details> <$details summary="Opérateur has : (Exemples)"> {{Opérateur has (Exemples)}} </$details> !3- Filtres complexes <$details summary="Un exemple de filtres complexes"> {{Exemple recette filtres et tags}} </$details> --- <$details summary="Passer un filtre"> {{Passer un filtre}} </$details>
NOT YET DONE !
<!-- basic dropdown button --> <div class="dropdown"> <a href="#" class="btn btn-link dropdown-toggle" tabindex="0"> dropdown menu <i class="icon icon-caret"></i> </a> <!-- menu component --> <ul class="menu"> ... </ul> </div> <!-- dropdown button group --> <div class="dropdown"> <div class="btn-group"> <a href="#" class="btn"> dropdown button </a> <a href="#" class="btn dropdown-toggle" tabindex="0"> <i class="icon icon-caret"></i> </a> <!-- menu component --> <ul class="menu"> ... </ul> </div> </div>
Sujet pas encore traité
{{dtable||caption}}
Voir aussi [[Tables dynamiques (ooktech)]] Sujet tagué "<<tag dtable>>" comprenant {{{[tag[dtable]count[]]}}} articles (tiddlers) La création de tableaux dynamiques requiert plusieurs tiddlers: *La macro principale: [[Table Macros]] *Un assistant de création de tableaux dynamiques, pas obligatoire, mais qui peut aider: [[Table Wizard]] *[[Tableaux dynamiques - Instructions]] Vous donne principes et marche à suivre *Le tiddler [[Simpler Table Macros]] fait doublon avec le présent tiddler. Il faut y remettre de l'ordre. !Fonctionnement Pour donner corp à notre exemple, créer les 5 tiddlers suivants qui seront les titres de nos colonnes (les lignes étant des champs appartenants à ces tiddlers): [[Colonne1]] , [[Colonne2]] , [[Colonne3]] , [[Colonne4]] , [[Colonne5]] !!1- Chaque colonne est un Tiddler et chaque ligne un champ <div align="center">[img[$:/core/images/icons8-add-column]]</div> Les contenus des colonnes sont taguées "cols". Il s'agit du titre donné aux colonnes du tableau. Je rappelle que Chaque colonne est un tidler et nous avons 5 colonnes intitulées [[Colonne1]], [[Colonne2]], [[Colonne3]], [[Colonne4]] et [[Colonne5]] `<<ColumnTable '[tag[cols]]'>>` <<ColumnTable '[tag[cols]]'>> A ce stade le tableau comporte cinq colonnes dont les titres sont le titre des 5 tiddlers respectifs que nous venons de créer. Il n'y a pas de titre pour les lignes car chaque colonne est un Tiddler. Dans le second exemple plus bas où chaque colonne sera un champ le titre de xxxx apparaîtra. Ensuite, chaque ligne du tableau est un champ. Les champs à créer doivent être identiques dans chaque Tiddler colonne. Nous créons les 5 champs suivants: Ligne1, Ligne2, Ligne3, Ligne4 et Ligne5. Dans cet exemple, cinq lignes sont crées (autant de lignes que de colonnes) mais qui sont bien sûr sans rapport. Notre tableau est maintenant complet et l'on a pas besoin de renseigner la valeur de chaque champ (ligne) depuis chaque Tiddler. La valeur des lignes peut être renseignée directement depuis le tableau !!2- Chaque ligne est un Tiddler et chaque colonne est un champ <div align="center">[img[$:/core/images/icons8-add-row]]</div> `<<RowTable '[tag[cols]]'>>` <<RowTable '[tag[cols]]'>> !!3- Sélectionner colonnes et lignes devant apparaître dans le tableau Lorsque vous faites cela, la différence entre'ColumnTable'et'RowTable'est si les en-têtes de colonne sont des tiddlers avec les lignes stockées dans les champs des tiddlers ou si les en-têtes de ligne sont des tiddlers avec les colonnes stockées dans les champs. Cette notion est importante car ''le nomage des champs est plus restrictif que celui des titres de Tiddlers'' (pas de caractères spéciaux etc.) code: `<<ColumnTable '[tag[cols]]' 'ligne1 ligne3 ligne5'>>` <<ColumnTable '[tag[cols]]' 'ligne1 ligne3 ligne5'>> code: `<<RowTable '[tag[cols]]' 'ligne2 ligne3 ligne4'>>` <<RowTable '[tag[cols]]' 'ligne2 ligne3 ligne4'>> Noter que dans les deux cas les lignes et les colonnes n'ont pas besoin d'être présentes; on peut créer un tableau qui n'utilise pas de Tiddlers existants et lorsqu'on édite les valeurs de chaque cellule, le Tiddler sera automatiquement crée. code: `<<ColumnTable """[[This Tiddler]][[Does not Exist]]""" "[[these_ones]][[must_be]][[valid]][[field_names]]">>` <<ColumnTable """[[This Tiddler]][[Does not Exist]]""" "[[these_ones]][[must_be]][[valid]][[field_names]]">> !Le générateur de tableau (Table Wizard) Il permet de créer des tableaux plus complexes qui peuvent être utilisés comme des bases de données. La macro `<<MakeTableWizard>>` affichera l'outil de création de table. Il ne prend aucun argument. Vous définissez le nom d'un tiddler de configuration qui contient les informations d'une table. La macro `<<DisplayTable configurationtiddler>>`affiche une table faite à l'aide de l'outil de création où `ConfiguartionTiddler` est le nom du tiddler donné dans l'outil de création. Entrez un nom de tiddler de configuration, chaque tiddler de configuration sera associé à une table. Vous pouvez en faire autant que vous voulez. Indiquez l'existence de sous-colonnes ou pas. suivant vos besoins. Enter a tag that will be on the tiddler named with your dataset, you can create a new data set using the button. Note that if you try to make one with the same name as an existing tiddler it will overwrite the tag field of that tiddler. Same for columns, subcolumns and rows. Subcolumns per column should be set to be equal to the number of columns you are using. Row, column and subcolumn names can be any valid tiddler name. If you check 'Allow Inline Editing' you can click on a cell in the table to edit the contents of that cell. For the moment this is probably the best way to enter data. Data is stored it tiddlers using the naming convention: For tables without subcolumns: `$:/Data/`(Row Name)/(Column Name)/(Dataset Name) The value is stored in the field `column_data` For tables with subcolumns: `$:/Data/`(Row Name)/(Column Name)/(Subcolumn Name)/(Dataset Name) The value is stored in the field `subcolumn_data` Yes, this means that you have a tiddler for each cell in the table. To do this any other way I would have had to drop support for subcolumns and use data tiddlers. Voir [[Table Wizard]] avec l'exemple pré-configuré [[Test Config]] <div class="attention">Attention: Cette étude est à finaliser avec l'exemple commenté</div>
<<< "Nous pensons que nous créons le système à nos propres fins. Nous croyons que nous le faisons à notre image... Mais l'ordinateur n'est pas vraiment comme nous. C'est une projection d'une partie très mince de nous-mêmes: cette portion consacrée à la logique, l'ordre, la règle et la clarté." Ellen Ullman, Au plus près de la machine: La technophilie et ses mécontents <<< Comment instruire les ordinateurs. Les ordinateurs sont à peu près aussi commun que les tournevis aujourd'hui, mais ils sont un peu plus complexe, et leur faire faire ce que vous voulez qu'ils fassent n'est pas toujours facile. C'est l'objet de ce livre. Si la tâche que vous donnez à votre ordinateur est une chose commune, bien comprise, comme par exemple vous montrer les mails que vous avez reçu ou faire le travail d'une calculatrice, vous n'avez qu'à ouvrir l'application appropriée et vous mettre au travail. Mais pour des tâches uniques ou à composition non imitée, il n'y a probablement pas d'application existante. C'est là que la programmation peut entrer en jeu. La programmation est l'acte de construire un programme, un ensemble d'instructions précises indiquant à un ordinateur ce qu'il faut faire. Parce que les ordinateurs sont stupides, bêtes et pédants, la programmation est fondamentalement fastidieuse et frustrante. Heureusement, si vous dépassez cette constatation, et que vous puissiez même mettre à profit la rigueur du système de pensée à adopter pour comprendre comment une stupide machine traite l'information, alors la programmation peut devenir enrichissante. Elle vous permet de faire des choses en quelques secondes qui seraient sans fin faites à la main. C'est une façon de permettre à votre outil informatique de faire des choses qu'il ne pouvait pas faire Avant. De plus, la programmation fournit un exercice merveilleux pour entrer dans le domaine de la pensée abstraite. La plupart des programmes sont réalisés avec des langages de programmation. Une langue de programmation est un langage artificiellement construit utilisé pour instruire les ordinateurs. Il est intéressant de noter que la façon la plus efficace que nous ayons trouvé pour communiquer avec un l'ordinateur emprunte si fortement la façon dont nous communiquons les uns avec les autres. Comme les langages humains, les langages informatiques permettent aux mots et aux phrases d'être combinés de différentes façons, permettant ainsi d'exprimer de nouveaux concepts. Pendant une période, les interfaces basées sur la langue, telles que les invites BASIC et DOS des années 1980 et 1990, ont été la principale méthode d'interaction avec les ordinateurs. Elles ont été largement remplacés par des interfaces visuelles, qui sont plus faciles à apprendre mais offrent moins de liberté. Les langages informatiques sont toujours là, si vous savez où regarder. Un langage tel JavaScript, est intégré dans chaque navigateur Web moderne et est donc disponible sur presque tous les appareils. Ce livre va essayer de vous familiariser avec cette langue en en faisant des choses utiles et amusantes.
La [[macro|Macros]] <<.def dumpvariables>> renvoie un tableau affichant les valeurs de toutes les [[variables|Variables]] et [[macros|Macros]] présentes à une position donnée de l'[[arbre widget|Widgets]]. Utile pour déboguer et explorer le fonctionnement interne de ~TiddlyWiki. Les zones réservées sont remplacées par des valeurs de façon normale, mais en utilisant les valeurs par défaut pour tous les paramètres de macro. !! Paramètres (aucun) Exemple : Voir ici la liste de [[Toutes les variables de ce wiki]] <<.macro-examples "dumpvariables">>
*@ Mohammad *Conditionally and dynamically apply CSS to a tiddler
Cours Open Classrooms
|purpose|select one of each group of input titles by field| |input|a selection of titles| |suffix|optionally, `list-item` or `value`| |parameter|F = the name of a field, defaulting to title| |output|a selection containing the first input title encountered for each distinct value of field F| Each input title is processed in turn. The value of field <<.place F>> in the corresponding tiddler is examined. ;each :As long as the value of the field is unique (i.e. has not been encountered before), the title is appended to the output. ;each:list-item :The value is treated as a title list. Each title in the list considered in turn. If it has not been encountered before, it is appended to the output. ;each:value :As long as the title is unique it is appended to the output whether or not the corresponding tiddler exists. If a tiddler does not contain field <<.place F>>, it is treated as if the value of the field were empty. !Exemple: Cet exemple est tiré du tiddler [[NestedListDoc]] <<extract tiddler:"NestedListDoc" start:"<ext1>" end:"</ext1>" limit:"no">>
{{ECharts||caption}}
<div id="main27" style="width:800px; height:600px;"></div> <style> </style> <<eval """ // based on prepared DOM, initialize echarts instance var myChart = echarts.init(document.getElementById('main27')); var option = { title: { text: 'Texte 1', subtext: 'Sous-texte 1' }, tooltip: { trigger: 'item', formatter: "{a} <br/>{b} : {c}%" }, toolbox: { feature: { dataView: {readOnly: false}, restore: {}, saveAsImage: {} } }, legend: { data: ['Data5','10','30','50','80'] }, series: [ { name: 'Funnel', type: 'funnel', left: '10%', width: '80%', label: { normal: { formatter: '{b}PourCent' }, emphasis: { position:'inside', formatter: '{b}Soit: {c}%' } }, labelLine: { normal: { show: false } }, itemStyle: { normal: { opacity: 0.7 } }, data: [ {value: 60, name: 'Valeur 60'}, {value: 40, name: 'Valeur 40'}, {value: 20, name: 'Valeur 20'}, {value: 80, name: 'Valeur 80'}, {value: 100, name: 'Valeur 100'} ] }, { name: 'Titre', type: 'funnel', left: '10%', width: '80%', maxSize: '80%', label: { normal: { position: 'inside', formatter: '{c}%', textStyle: { color: '#fff' } }, emphasis: { position:'inside', formatter: '{b}Donc: {c}%' } }, itemStyle: { normal: { opacity: 0.5, borderColor: '#fff', borderWidth: 2 } }, data: [ {value: 30, name: 'Nom Valeur 30'}, {value: 10, name: 'Nom Valeur 10'}, {value: 5, name: 'NomValeur 5'}, {value: 50, name: 'Nom Valeur 50'}, {value: 80, name: 'Nom Valeur 80%'} ] } ] }; // use configuration item and data specified to show chart myChart.setOption(option); """>>
<script src="https://cdnjs.cloudflare.com/ajax/libs/echarts/4.2.1/echarts.js"></script>
Pour d'autres exemples plus complets, voyez https://oxydum.github.io/tiddlyecharts/
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QAABBBBAAAEvBbx75N/LzqiGAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIHDjCRB4vvHuOVeMAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIBFWAwHNQOekMAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQuPEECDzfePecK0YAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQSCKkDgOaicdIYAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjceAIEnm+8e84VI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAkEVIPAcVE46QwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBG48AQLPN94954oRQAABBBBAAAEEEEAAgZAKpJN0tudPl86+3LYxhQgggAACCCCAAAIIIIAAAgggEBIBAs8hYeekCCCAAAIIIIAAAggggMCNK1CkSGF5+KEuEhUV5YZQunQp6dixg1s+GQgggAACCCCAAAIIIIAAAgggEN4C6eIuxF4L7yEyOgQQQAABBBBAAAEEEEAAgetRICkpSU6fPi1xcfGSIUO05MiZU3KpHxICCCCAAAIIIIAAAggggAACCESeAIHnyLtnjBgBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAIKwGW2g6r28FgEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgcgTIPAcefeMESOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJhJUDgOaxuB4NBAAEEEEAAAQQQQAABBBBAAAEEEEAAH9ROowAAQABJREFUAQQQQAABBBBAAAEEIk+AwHPk3TNGjAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCISVAIHnsLodDAYBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCIPAECz5F3zxgxAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEFYCBJ7D6nYwGAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCDyBAg8R949Y8QIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII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a+eVVdA7f52izJIKZejirX1Nr5gzOY0zci0Iz2cEMy4CAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAiAAAq5FYDt7N688mcWe0IZw1f5eHnTfufEU5KMflFm8pfMrKsnH3Z0DexN1CfFvU8D2ZhVSAAvn8W1sXuqbBOFZJYEtCIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACICAQwnkcwjuP1Pzqaa2ls5tH0zhft4O7R+dtRwCEJ5bznuBkYAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIAACIBAqyRge/brVjlNDBoEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMBZBCA8O4ss+gUBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABFyEA4dlF3mhMEwRAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAAScRQDCs7PIol8QAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQcBECEJ5d5I3GNEEABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEDAWQQgPDuLLPoFARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARchAOHZRd5oTBMEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEnEUAwrOzyKJfEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEHARAhCeXeSNxjRBAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwFkEIDw7iyz6BQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEXIQDh2UXeaEwTBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABJxFAMKzs8iiXxAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARBwEQIQnl3kjcY0QQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMBZBCA8O4ss+gUBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABFyEA4dlF3mhMEwRAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAAScRQDCs7PIol8QAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQcBECEJ5d5I3GNEEABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEDAWQQgPDuLLPoFARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARchAOHZRd5oTBMEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEnEUAwrOzyKJfEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEHARAhCeXeSNxjRBAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwFkEIDw7iyz6BQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEXIQDh2UXeaEwTBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABJxFAMKzs8iiXxAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARBwEQIQnl3kjcY0QQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMBZBCA8O4ss+gUBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABFyEA4dlF3mhMEwRAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAAScRQDCs7PIol8QAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQcBECEJ5d5I3GNEEABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEDAWQQgPDuLLPoFARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARchAOHZRd5oTBMEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEnEUAwrOzyKJfEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEHARAhCeXeSNxjRBAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAwFkEIDw7iyz6BQEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEXIQDh2UXeaEwTBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABJxFAMKzs8iiXxAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARBwEQIQnl3kjcY0QQAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQMBZBCA8O4ss+gUBEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABFyEA4dlF3mhMEwRAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAAScRQDCs7PIol8QAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQAAEQcBECEJ5d5I3GNEEABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEAABEDAWQQgPDuLLPoFARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARAAARch8P/t2TENAAAAwjD/rlGxixogoZw4nk+GVpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKVgOO5kpVLgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEwHH88nQahIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAScDxXsnIJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBwIuB4PhlaTQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFQCjudKVi4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgROBBzPJ0OrSYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgUrA8VzJyiVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgMCJgOP5ZGg1CRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUAk4nitZuQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEDgRcDyfDK0mAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEKgHHcyUrlwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAicCjueTodUkQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAJeB4rmTlEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA4ETA8XwytJoECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoBBzPlaxcAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQInAg4nk+GVpMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKVgOO5kpVLgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBEwHH88nQahIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKAScDxXsnIJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBwIuB4PhlaTQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFQCA9bJyKqsEP1DAAAAAElFTkSuQmCC
``` <$edit-text class='tc-edit-texteditor' tiddler='$:/DicCss' index='001' tag="input"/> ``` ;Soit : <$edit-text class='tc-edit-texteditor' tiddler='$:/DicCss' index='001' tag="input"/>
Ce commentaire ne sera pas visible en mode lecture. Il est visible en mode écriture. `<!-- Ce commentaire ne sera pas visible en mode lecture. Il est visible en mode écriture. -->` <!-- Ce commentaire ne sera pas visible en mode lecture. Il est visible en mode écriture. -->
\define fieldsFilter() [title[$(fields-source)$]split:table-fields[,]] \define rowFilter() [!has[draft.of]tag[$(filter-tag)$]sort[$(sortField)$]] \define editbutton() <span title="edit details"><$button set="$:/temp/editPersona" setTo={{!!title}} class="tc-btn-invisible">{{$:/core/images/edit-button}}</$button></span> \end \define delbutton() <span title="delete entry" class="buttons"><$button message="tm-delete-tiddler" param={{!!title}} class="tc-btn-invisible">{{$:/core/images/delete-button}}</$button></span> \end \define editModeButtons() <$reveal state="$:/temp/editPersona" type="match" text={{!!title}} ><<delbutton>> <<okButton>></$reveal> \end \define viewModeButtons() <$reveal state="$:/temp/editPersona" type="nomatch" text={{!!title}} ><<editbutton>></$reveal> \end \define okButton() <span title="OK" class="buttons"><$button message="tm-save-tiddler" param={{!!title}} class="tc-btn-invisible" set="$:/temp/editPersona" setTo="" >{{$:/core/images/done-button}}</$button></span> \end \define editCell() <$reveal state="$:/temp/editPersona" type="match" text={{!!title}} > <$edit-text field=<<currentField>>/> </$reveal> \end \define viewCell() <$reveal state="$:/temp/editPersona" type="nomatch" text={{!!title}}><span><$view field=<<currentField>>/></span></$reveal> \end \define displayRows() <$list filter=<<rowFilter>> > <tr><td><span>{{!!title}}</span></td> <$list filter=<<fieldsFilter>> variable="currentField"><td><<viewCell>><<editCell>></td></$list><td><<editModeButtons>><<viewModeButtons>> </td></tr></$list> \end \define TableHeaders() <$list filter="[is[current]split:table-headers[,]]" variable="currentField"><th><$button class="tc-btn-invisible" set="sort-field" setTo=<<currentField>> ><<currentField>></$button></th></$list> \end \define add-entry-Row() <tr class="editable"><td><$edit-text tiddler="$:/temp/table" default="" placeholder="Name" tag="input" /></td><$list filter=<<fieldsFilter>> variable="currentField"><td><$edit-text tiddler="$:/temp/table" field=<<currentField>> placeholder=<<currentField>>/></td></$list><td><span> <$newtiddler title={{$:/temp/table}} clear="$:/temp/table" tags={{!!filter-tag}} skeleton="$:/temp/table" edit="no" class="tc-btn-invisible">{{$:/core/images/new-button}}</$newtiddler></span></td></tr> \end <$set name="fields-source" value={{!!title}}> <$set name="filter-tag" value={{!!filter-tag}}> <$set name="sortField" value={{!!sort-field}}> @@.reactive-table <table> <thead><tr> <<TableHeaders>><th>Edit</th> </tr> </thead> <tbody> <<add-entry-Row>> <<displayRows>> </tbody> </table> @@ </$set> </$set></$set>
Il y a ces temps-ci pas mal de discussions intéressantes à suive éditer en mode visualisation au lieu de passer en mode édition Commentaire de gernert A long time ago I added a toggle button to my top toolbar which toggles the possibility of tagging in view mode, see http://tw5custom.tiddlyspot.com/#Add%20tagging%20in%20view%20mode Today I added a toggle button for adding/editing fields in view mode, see http://tw5custom.tiddlyspot.com/#Add%20field%20handling%20in%20view%20mode
{{Éditeur||caption}}
{{EloquentJs||caption}}
``` <iframe src="http://atlas-disciplines.unige.ch/#Aristotle" width="100%" align="center" height="500" frameborder="0" style="border:none;"></iframe> ``` ;Soit: <iframe src="http://atlas-disciplines.unige.ch/#Aristotle" width="100%" align="center" height="500" frameborder="0" style="border:none;"></iframe>
Couple of topics opened this issue (*see below*) so I'll just post a solution here to rendering PDF files inside tiddler. In order to embed PDF inside tiddler there are two possibilities [ext[https://tiddlywiki.com/#How%20to%20embed%20PDF%20and%20other%20documents]] and I will focus on embedding with '_canonical_uri'. 1) First create a new tiddler that will link to the external file (like external images [ext[https://tiddlywiki.com/#ExternalImages]]). In that tiddler set a new field with name to: `_canonical_uri`. Put in the field value an address to the external file. Now, the address can be: * local disk relative path: `<root> my_folder\sub-folder\document.pdf` * local disk absolute path: `file://D:\my_project\my_folder\sub-folder\document.pdf` 2) Set the type field to application/pdf. 3) In this method the file is not actually incorporated into your TW5 file, but can be accessed with the {{Embedded PDF tiddler title}} transclusion syntax just like an embedded image. !!Previous discussions on this topic : * [TW5] How to Link PDF in Local Drives and External URL : [ext[https://groups.google.com/forum/#!topic/tiddlywiki/TKVmSUSvk_U]] * Embedded PDF problem : [ext[https://groups.google.com/forum/#!topic/tiddlywiki/WkLv-pTzl5s]] * Display PDF inside tiddler : [ext[https://groups.google.com/forum/#!topic/tiddlywiki/5BL5_g6OmZ4]] ;Comments : *I understood "embed" to mean the pdf's bytes is contained in the tiddlywiki file (Drag and drop the file on your wiki and import) *I would consider using the _canonical_uri. as an external reference (be it a relative or absolute reference) *I would consider {{PDF tiddler title}} as transcluding another tiddler into the current one, al be it in your case one with an external reference. As I see it, your solution relates to providing an internal or external reference to a PDF file in a tiddler, which can then in turn be transcluded into other tiddlers.
<$transclude tiddler="Liste de tags trié alphabétiquement"/>
\define test(_) This is a $_$ <<< <<test $(currentTiddler)$>> <<< Avec le code suivant: ``` \define test(_) This is a $_$ <<test $(currentTiddler)$>> ``` I think a key use of $(currentTiddler)$ in macros is to concatenate it with another string for a new tiddler name based on the current one. The confusing thing here is that the macro text substitution process is performed repeatedly until no more substitutions are found. Thus, in this example, the string "$(currentTiddler)$" is passed as a parameter to the macro. The first text substitution replaces the $_$ with that parameter value, yielding "This is a $(currentTiddler)$". The second text substitution replaces "$(currentTiddler)$" with the value of the variable "currentTiddler". Note that text substitution is rarely the best way to accomplish things. It was implemented early in TW5's life as a bit of a hack to allow certain complex operations to be performed in order to build the UI. There are quite a number of gotchas with its use. The wikitext language has been enhanced considerably since then, and now there are better primitives for most situations. Best wishes Jeremy. Voir [[En cours. À étudier (2)]] Voir aussi : http://tobibeer.github.io/tb5/#Variables%20vs.%20Parameters
\define test() <$text text="$(currentTiddler)$" /> \end <$text text=<<currentTiddler>> /><br> <$text text="$(currentTiddler)$" /> <$view tiddler=<<currentTiddler>> field="title"/> <$view tiddler="$(currentTiddler)$" field="title"/> <<test>>
``` @@padding:0 5px;border:1px solid crimson; Texte @@ ``` Soit: @@padding:0 5px;border:1px solid crimson; Joli, non ? @@
Encodeur et décodeur Base64
<div style="float:right;"><$button> <$action-sendmessage $message="tm-new-tiddler" title="(T)->" tags="Task" text=""/> <span style="color:crimson;">''+ Encours''</span> </$button></div> <$details summary="Fonctionnement"> {{$:/doc-user-102}} </$details> !!!À réviser //Glisser/déplacer pour ré-ordonner les tiddlers// <<list-tagged-draggable tag:"Task" subFilter:"!has[draft.of]!tag[Done]" itemTemplate:"TaskManagementDraggableTemplate" emptyMessage:"Vous n'avez aucun encours à finaliser">> !!! Finalisé //(Listed in reverse order of completion)// <$list filter="[!has[draft.of]tag[Task]tag[Done]sort[created]] -[[Encours]]"> <$checkbox tag="Done"> <span style="color:green">{{!!title}}<$link to={{!!title}}></$link></span> <div style="background-color:#ffffcc44"> <$transclude tiddler=<<currentTiddler>> filed="text" mode="block"/> </div> </$checkbox> </$list>
!!Travaux en cours <<CategoryList Tag:"Task" FinishedTag:"Done">>
{{encrypt||caption}}
<div align="center">[img[$:/core/images/icons8-information-48]]</div> Ce plugin ajoute la possibilité d'encrypter vos tiddlers individuellement, ce qui offre plusieurs avantages : *<i class="fa fa-arrow-right"></i> Vous pouvez spécifier un mot de passe différent pour chaque tiddler si vous voulez *<i class="fa fa-arrow-right"></i> Vous n'êtes pas obligé d'encrypter la totalité du wiki *<i class="fa fa-arrow-right"></i> Si vous oubliez un mot de passe vous ne perdez qu'un seul tiddler. *<i class="fa fa-arrow-right"></i> Il est possible d'éditer le contenu du tiddler, tags et champs sauf le champ encrypté après encryption. Décrypter votre tiddler le replacera dans sa configuration d'origine, avant son encryption. Ainsi pouvez vous cacher le tiddler encrypté comme étant quelque chose de traité différemment. *<i class="fa fa-arrow-right"></i> Vous pouvez même encrypter des images. *<i class="fa fa-arrow-right"></i> Vous pouvez traiter vos données sensibles au jour le jour. *<i class="fa fa-arrow-right"></i> Je n'ai pas testé, mais il est théoriquement possible d'opter pour une double encryption en encryptant également le wiki lui-même. <div align="center">[img[$:/core/images/icons8-information-48]]</div>
{{Encryption||caption}}
{{FormulaResult Button}} !!Objective *Calculate pressure drop and velocity of water though a pipe !!Formula dP/100 ft = W^^2^^/rho *(0.000336 * ff / id^^5^^) !!Assumptions # Pipe OD = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="pipeod" /> inches # Pipe Thickness = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="thickness"/> inches # Mass Flow = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="massflow"/> lbs/hr # rho (Density) = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="rho"/> lbs/cuft #Friction Factor (manning) = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="ff"/> # Length = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="length"/> ft !!Calculations Pipe ID = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="pipeid" format="3"/> inches Flow Area = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="a0" format="2" /> sq.inches = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="a1" format="3"/> sq.ft dp/100 ft =<$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="d2" format="3"/> psi/100 ft ''Pressure Drop = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="d3" format="3"/> psi'' ''Velocity = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="v0" format="3"/> ft/sec'' Test Line = <$macrocall $name="eval1" datatiddler="$:/sk/engrexample" cell="m0" format="1">
<<< C’est bon problem solved. Le soucis venait du max_file_upload de php. Un tw vide fait 1.93Mb et un wiki vide chiffré fait 2.36Mb. Chez moi la limite était fixée a 2Mb donc ça ne passait pas. Pour ce qui est de la sécurité j’ai trouvé ceci enhanced store.php1 . Le mec a modifier le script store.php ainsi que le tiddler “$:/core/modules/savers/upload.js” pour faire du https proprement. j’ai testé et ça fonctionne :smiley: J’espère que ce sujet pourra être utile a ceux qui veulent, comme moi, faire du https. Antoine. <<<
Une fois les informations désirées saisies dans votre tiddler, enregistrez ces modifications en cliquant sur le bouton {{$:/core/images/done-button}} "Confirme les changements apportés à ce tiddler" Ce bouton se trouve en haut à droite de chaque tiddler lorsque vous êtes en mode édition.
@@background-color:#ECF0F1; @@color:#2C3E50; @@margin:10px; @@padding:10px; @@border-radius: 5px; <i class="fa fa-book fa-3x pull-left" style="color:#2C3E50"></i> Dans la démonstration ci-après, on combine à la fois les macros de tiddlywiki (avec le pragma \define ) et le code javascript (combinaison Macros et JS) . Cela ouvre évidemment énormément de possibilités. @@
`<div style="font-size:0.7em; text-align:left; margin-left:5em;"> <a href="mailto:eric.meaux@hotmail.com" class="tc-btn-big-green" style="text-decoration:none; background-color:#FF8C19;" target="_blank"> <i class="fa fa-envelope"></i> Contact mail</a> </div>` Soit: <div style="font-size:0.7em; text-align:left; margin-left:5em;"> <a href="mailto:eric.meaux@hotmail.com" class="tc-btn-big-green" style="text-decoration:none; background-color:#FF8C19;" target="_blank"> <i class="fa fa-envelope"></i> Contact mail</a> </div> Voir aussi: [[Formspree pour la gestion des contacts par mail|Formspree]].
<script>help</script>
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
This plugin is designed for evaluating expressions using [[math.js]] by default. As different sources may provide it, you can configure libraries to be loaded via the <<x JSONTiddlers "JSON tiddler">> $:/plugins/tobibeer/eval/libraries: <$transclude tiddler="$:/plugins/tobibeer/eval" subtiddler="$:/plugins/tobibeer/eval/libraries"/> @@.note ''Note:'' Specified libraries are parsed in sequence. The first one actually found will be the one this plugin uses by default to evaluate expressions for a given //type//. @@ In fact, so long as a library implements an `eval` function, you can use ''tobibeer/eval'' with other 3rd party libraries similar to [[math.js]] in order to evaluate expressions. If you actually do so, let us know [[in the groups|https://groups.google.com/forum/?fromgroups=#!forum/tiddlywiki]]. !! Native ~JavaScript Eval While it is highly recommended that you install and use [[math.js]] to evaluate expressions, you are free to use this plugin with <<pop "native ~JavaScript eval" "eval-JS" "pretty pop-tiddler" btn-class:"tc-btn-invisible abbr">>, by adding it as a pseudo-library to the JSON configuration [[as is done in this demo wiki|$:/plugins/tobibeer/eval/libraries]]: <$transclude tiddler="$:/plugins/tobibeer/eval/libraries"/> @@.note ''Note:'' If you add `{"type":"js"}` to the end, it will serve as a fallback when no other library is found. If you put it first, native js eval will be the default "library". @@ In order to suppress the console notification indicating that you are using native js eval, specify some otherwise not important ''id'' other than `js/eval`.
"That'll be " & {{Soda-Pop!!value}} * 2 & ", please"
(function(){ "use strict"; exports.name = "eval"; exports.params = [{name: "fun"}]; exports.run = function(fun) { try { return JSON.stringify(eval(fun)); } catch (e) { if (e instanceof SyntaxError) { // alert(e.message); } } }; })();
L'instruction `try...catch` regroupe des instructions à exécuter et définit une réponse si l'une de ces instructions provoque une exception. consultable à l'adresse https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Instructions/try...catch Elle est ici adaptée à TW5. ``` \define erreur(f) <<eval """ try { VariablePasDeclaree; } catch(error) { console.error(error); } """>> \end <<erreur>> ``` Une erreur JavaScript vous évitera un plantage TW5. !!À manipuler avec discernement Dans l'exemple [[bbox]], le div ``` <div id='bbox'> TIDDLYWIKI IS AWESOME! </div> ``` doit être placé après la macro ``` <<eval """ var ele = document.querySelector('#bbox'); ele.style.color = '#FFFFFFAA'; ele.style.backgroundColor = '#3377CC99'; ele.style.padding='30px'; ele=''; """>> ``` Mais l'encapsulation de cette macro dans le pragma `\define erreur(f)...\end` impose qu'elle soit écrite en premier dans le tiddler, rendant impossible d'y passer le div et générant donc de facto une erreur. Dans cet exemple, on peut procéder en deux étapes: # Écrire le div dans un premier tiddler # Écrire la macro dans un second tiddler On peut d'ailleurs valider l'obligation de passer le div avant la macro en faisant le test suivant: Si le div est ouvert en premier et la macro en second dans la StoryRiver, les paramètres de style, "color", "background" et "padding" sont bien affectés à l'id "bbox". Si la macro est ouverte en premier, bbox ne prend aucune valeur.
/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADKAkIDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD10+E/Dik48PaQOcf8eMf/AMTSr4U8Oo6yJ4f0lXU8MLKMEfjt4rZI+Y/WlxgUMDDPhHw4Bx4e0j/wBi/wp3/CKeHc86BpPH/TlH/8TWyw4/GnAc84pAYo8J+Hsf8AIA0rB/6cYv8A4mk/4RDw4B/yL+kken2KLr/3zW4BS9KLgYbeE/DpOToGk5/68ov/AImm/wDCJ+HCedA0nnnmyi/+JradTnvjHFNVSSD370wMUeEvDmTt8P6QM9f9Bi/+Jpx8KeHT18P6Sec82MX/AMTWvtKnpijbSAyT4W0DaV/sLS8f9eUfP6Ug8L+H1PGg6UPYWUX/AMTWrhvTB60YIIPPBpgZP/CLeHwONC0sD2sov/iaT/hFvDx4Og6Vg+tlFz/47WwwzjGfypmGHODSuBljwxoAXA0LSwB0xZR//E0HwxoJYZ0LS+O32KL1/wB2tQK20ChQwJyp+tS2Myj4Z0HBzoWl/wDgHH/8TTW8MaASc6FpRz1zZR8/+O1rOMkdfrTWUkZwc896dwMz/hFvDxIxoWlcdP8AQov/AImgeGPD6EsdE0scc/6FH/8AE1o7W984/KnYPltyfap1AzG8M6A5wdC0ps9c2cZ/9lpp8L+H/wDoBaUT6/Yos/8AoNaewk459OT0pAp3d+KNR3M0+GNAzn+w9Lz6myi/+JpB4Z0EYP8AYemZ9fscX/xNabL8/HT6UgU5wM470rsDNbw1oDDnQtLbv/x5R9f++aB4b0McDQ9MJ/68o/8A4mtHadoxnP1pVAweDjHei7sCMxdC0FyJU0jSmDfxraRnj8qk/wCEf0PHOjabz/05x/4VFqmn3Hmi805gtxnLqABvOOvP6gnnr16yaZrEd8PIkU294vDwPwc47Z6/TqKxVZqXLLQ05dLoY3hrQiwYaLpmR/05R/4Ug8N6Hx/xJNLOP+nOL/4mtNmJwM4PegctnJwRWvMyLGb/AMI3oY5Gh6WPpZxD/wBlpB4a0INkaHpeR0xZRf8AxNahznqaF5bHPX0ouw0MweHdDGf+JLpnr/x5xf8AxNIPDehOAx0TSz6H7FEev/Aa2D0znDVH8x+bPft6UXaDQzR4c0IAA6Jpn/gHGP6Ug8O6KGDDRtMJ9fscef8A0GtTqcc9aTnOBkZodwMw+HdFGCNF00HrxZxf/E0n/CPaN20bTcjp/ocf+FamWwSOOvB70HJIHOCajUZmjw/ow5Gj6dzxkWcY/wDZad/YOkZB/sjTwf8Ar1j/AMK0GyOnp0zTecjnANK7DQojQNJIGdK07/wFj/8Aifeg6DpHT+ydPHGOLSP/AA96vZbGTTsEEcn1zVKTFYz/AOxNIYgHStPIznH2WPr+VOTQtJHA0rT1A7fZY/8ACrpJ47c+lPBOz37U7sLGf/YeknAOmWGB2+yx/wCFKdD0s4zplgD7Wsf+FXjkjjP+NHzAkYPpQmwKA0TSgD/xK7H/AMBo/wDCg6JpRGP7MsQPa1j/AMKvcgd8UvOzIByf1qrsDPOi6YoONMsRn/p2j/wp39kabnI02y/8Bk/wq5tz+GO1LyMcZ5ouBS/sbTCv/IOsRn/p2T/Cg6Lpec/2ZY9c/wDHtHx+lX0HUkmm/N7kn2pAUjo+mZz/AGZY59Ps0f8AhQdH008HTbEd/wDj2T/Crygtzz09KQqSepHNGoFIaRpo5/s6yPYf6Mn+FObSNOI406y6f8+yf4VdUfKcZ6+lNIbn2FPUCp/ZOnA4On2Xp/x7x/4Un9k6cc/6BZ5P/Tun+FW8nPc/jTc+/wCGKdxFb+ydOA4sLQdP+XdO34ULpdio/wCPG1x1I+zp/hU/J43EdOcdadlt3JOPpSArtpdi+SbK16Y/1CcfpQNKsB0sbQdP+WCf4VZ2tjqelPYDC8c+uKYFX+zbI5Bs7Un3t0/woOl2XH+g2uP+uCf4VZAIY8d6c+4HIOPSgCp/Zllk5s7U/wDbBP8ACl/sqyyP9Dtc/wDXBP8ACrPIB2nPrxRzgE7vypiIBp1mAB9jtcjpmBeD+VKdPswMfY7XAP8AzwX/AAqyvIyc0NgDA65pWGQ/YLPH/Hnbf9+V/wAKX7BZj/lytv8Avyv+FWB7U7FNAVv7Psxgiztv+/Kf4UGytB/y523HrCv+FWcevSkI9OtMRV+wWX/Pjbf9+E/woqcqCSdtFMRbx8xOKKXjJ6DmjBoYDWHy9BmnDjPFNf8Awp/FIA7UtGKPxxQAUxmAFO6ZOc0xwDjOaAG7/Y0hcdMGgIOcHmnbcdz1oAbu+UHGfpSFqcyDAAzRswvU0DGb8feyBSBj25wKcV4HWlCAdfSgQgPAOD+VIGLdOo9TQUXJJpwXAx296VkMYH56U5mwAfftSFBwMkelIyhQBkgdeKLAIZRjGM84ppkJPGOR+dLs9zQYx9fqKNAE8wA8g++aQyAHmnbBzywFJ5Yxj3oVgGrICc449qVnx60nlqe+BSlQe+DRYYm7JK0qkE8frQYx7kYoChec1LsA1gM8evFUNU0mDUo/mZ4bhceXcRnDKQcjPqPb8iOtaLDJGDz70pBHOfzqJRUlZlJ22Oci1u4025Sy1xBGzHEV4gzHJ9fQ+v8ALvW+rqeeD3zniormzhu4HtrhElikBDKw4P8AgR2I5Fc+bbUPDDGS3aW+0YcvF1ltx3K4+8P8nu1Ze9T31RWkttzpiRxgjms/V9d0/RbI3N/OsaAcKfvN9B1qSyvbTULVbm0uFlgbuO2fUdq+evH2v3Op+JLiOSR/LikMSRg9Bn+dTVq2so7s0pUuZu/Q9CufjHaBsWunySn+87Be/t14xWjpPxPtr+YR3Fi0BJGPnLDr6YyP/r141odmra1Hb3KFXP8AAyYz26fnXqmhW8X9pw28elXgZBh2lVFyWA9SCcDn8PauF15xqKMWdbw8eW7R6TDcLPCsiOGVsdBip8gj9Kgt4FjjCBhx2FTgAZyeteotrnnu1xpIxwMfhSbx0PYd6UqMAZ7UhTA5OOKGgELDIBzzwMikUgsoA79aXAHOR746UgA3AgZA4FTYCQsB1Pejd8wA78dKCoYnJ5ppXjscc9KqwhfMA659KcH5OcdazNa1W30PSZr64JKQrnaD1PYV4pqfxS12/vT9mn+y26HKpCBnGe5PWsp1lF2WprClKaue/bl9aUEEYzxXimmfFXVoiDO0V8p+9FJF5br9CDz3/LpXpXhvxbp/iSBjaLJHKigyRS4yufp1ohXjN26inRnDVnQ5XGM8Ui4zgfWgJkDntilC4PUk1uZA3H5+tN3c/wD1qcQSfbNGz/GmA0ngdOmaXIHbqfSl8sEn0I6+lKUz1PFADQSc4HPSgOM9QTTguD146+9NEYyTk56UwDcDj3o3AjP9KNmQOvvS7dp+oHU9KAGFs9u/NJkE43c9OO9LsBA9vpSEAEY9fypWQAMIQBgfhS5780uAcc0CMAHr29KEgAMP1pdyjrwfSk2jcfmHXpx1pSuTx+dMQrEAZJxSbxjmlKggDGaTZyDnvVAJvX/Cnb+T7U3YPXOPak2YGAcjP5U9AHpg9MYof7o+tCYVefzNDgMAfXtmkA4e9OBPNN6DoKUHHv8AWgB/BORQeeMUw/hQT1A70xC7l9R+dFN6888+/wD9aii4i13P1607tTc8nmnZqgI2zjv7U4E0jHjpS/iaTAXnFJnNGMfj70vU0gGOcIaiGWyOevrUzDdwRxTdoXk5oQDPmwOM4OaGJyev5U4uCDxRnOeCfcVQhnXBGevPNHOcHJPapFII44+opCwB6HikMjIJ557ZoAbHU4OeafvGAfrSFgDznFKwxP4CTn0/CmknHBOMU/eMcU3fz0/+tTENVm3d+fWkbLE8HrUjOBimGQf4UgGENjqaTJ298+3epA4+6aaZY/4WUkdcHpScktxpX2Ghj3JH0qTJAGRyaj84HkfN9DmjzQBwfTB/pT3ABuxnBPoKQls5ycU7zRnGD7cUnmLwBnp6UMBCxGP0pSxXkkKPfpWZr+tR6Ho81+wzs+6PUmvAda+IGs6rcFzezRxgny1hbywB9RjP/wBauWrX5ZcqVzalRc1fofSHmZZcEfhUg5Hr9a+bvD2t67eXoitdSu42PzHMhPI+te1eEL7VLzTidSkWSWNijMDnJ4OePbHFZ08TzT9m9zWpQcFzdDpDkDOcdxTRkNnB68cU/co74yPTIpCQWxzmuk5znNS0SeGeXVtEnWzvyhaWNh+5uO+GH8J9x/PmvnDxLJcDXLiWS3a2lEgJU8bG6+nevrB32qxyAMH73FfP3irRj4l8VST2OwxFtpmZwoc99uev8q4a0oU6ibOzDJyTRmza1NeQWGpXdgFdbgtJOrkq+QobC/w9AcZxn8a7Gz8RtetDa2V5ZRuHQC6u5HypzwAMHpnGT61UPh1LXRbjS5HRwFEisOgOBk/mKr+Gfhhqup2sN9LdLawSgOisTuZT0PtxiuGlatJ8vT8jtqtQj73U9xiJVRhicLj72f8AP1qUEn+Lgc5qO3jaGGON5C5VQuemcDGamyADn9a9tbHjvcQAnGT1GTxSkHB6A0ZXGMnGOKXeCQM9abERgn3P49KFyuD6D0p+RkgnNLuAA5PpU2Ajwc5xg46Clb7vTHtTiV4wTzUF5d29lB59zKIo1PO4/e9h3JpSkoq7Gk3ojy74yao0Vha2MbtukYuwyMHHA/z7V5NoekyatHcOkwV0KgKerE5wPbpye3HFdv4z0rV/FetS3kCL5TN+7Uv820cAY7duAeKy9P8ADmo6Dot3qDXTW9xJGY9g5LKDyDnocjOfWvKeJg4tqWrZ6tKg1ZNGr4V023stAXUb6J2N388Sxpvwg4GR/TvxXoHhfw1HZNHqEURhZzuVCMEIecEfTBx2PpXJeEtUkGmw6fp8K3NyyhVRp1iQHnHJ6nr0r1yyWWOyh88ASLGAwXkD2z39KvCU3OpKozLFT5YqJPH7ccDtUynOe4FNDAcAcmlUgAEjvXr+R5oEEMeuAaMdME9cZpxIGc9RninZGT6U7AI2QvB60zLZP4YIp+9T68elIXUZyf0ot1AaTyQSeO9J82Rnr9K5nxX41tfDKBAq3FyV3+WGxtHTJxXHWnxlZ5AJNLidQOfLcoR+efzrB4mCdmaqjOSuj1Ybhnk9PSgtnOCevBx/n0rJ0LxNp/iG286xl+YDLxOQGX346j3Fa+RkZ6/TFbRkpK6M2mtGN5OMnPWnHjjJ556UAqVyOR7dKM/OQeKduohFGAqjPTkelD8NwcDvUhPGSR0yabldp5/OmBGcnJx0anbjzj8OKcvzLntQcYoEMycnBPT06U9Sce9NzyTn60pPI96AGBjjrzigcc579cU/dgDJwepo3AfWmIRCcZJ6npTm4BHPJoDbhketNbOOnOaBjx9KOlIMjFISOKBDv1oPUE5pCwI703dxzQAEHPUUUhBJJzRTEXh3peMY5po55p3TFPoA1jkZ6UvpTW6E07ocUgDqelGOetJ6E8n27Uv40AFIQSBzRSDAFADdnJyc570CMY7ing0D2xRcBpXjj68mk2jJNOY+tR5PUZ9aAAqO/wDKgrz1pCx+tIW5A7ntTsAbfUnmkK85yevbvSk4THIph3DqTySOKAHMORyR/Won2xhmZiABknHSuY8R+ONM0BvIL/aLzPEEXO3j+LpXkniHxXruuyeTLcPDG/zrbxkgAevX/P41x1cXGGi1Z0U8PKer2Oi+IXxJmtJ2sNGu/LC8SSx4HPTGa8mk169luS73MhYk8sx54+tSXfhy7e3nnDuWij8whwfmGcHH51J4Zgs4ry4h1AQRSyR4gkugditkZ+hx0zx68Vzc0HFzbuzsjTs+W1jsvC3jvxDp8yo0sl5b4BeNgH2j64JH0r3Owuhe20cxikhcj5o5MZU9xxkd68U8LWzR2F5/ZktukweVg0sWd8a8jb2HuOvSvZdI89NJsxdyJLceUvmNHHsBOPTJx/n1qsJVlKUktkZYmmopM0dvTB5pBgLg0xNxP1PesTxL4ng8P2q/I09665igU4z1GWPZa7Z1FTjzSOSEHN2RxXxj1Y2unw2BcDzDuZcdRnr+deM6deR2+q21xMn2mOOQF49ucr369eox9K7uTSp/E9y+paqZZmlbAZZNg9gox0AqTSvDdjpGoSTDzHiA+USgBkYfeUjuehHrXiyxlP3m9Wz1qdBxSXYr6NNaQa7m1uEeKSIb5bZMbW5wQpHBx1HrmvTvCKLBq8yPqt1cSSJlI2cbCAAfmXrkZ4Oa8TmmeHxBPJYozI7kgoM457Yr2b4e2V1Pb/2pPA9uoQ28KNndIpwWY57ZA6d806NKft4zjsLESjyNM70AHIGB6kjrSsnbsTxn1pPu4HTPBzTcnHOPxr2bHlbnH/EPVpdP0eKzgcq95IVZs8hBgkfjkVgaPpti9o3nQq2V69/wqt48vf7R8ZJYgfu7SIJnr8xwx/mB+FWrRJrTTpZ5+UgjLBR/Gw+6PxOK+dxUnUrNrU9fDpQpruy0PLa2NvJ+8MY2qcDcB6Z607w02qaTaM+mlr61hkMd1YscOnOQ8RxyCpHHXgjnthW7XkCLcXMZjEnLFjzk/wAqdoHiNdP8YwxeYRDe4glHocjafqGb8mNRgajVa2xpioXhdanqOn6ja6rbfaLSbcv8SnAZD6EVcJ4x056+tcP4mutO0u5+32epxWWtMQNsbB1k5GTIoPAx1PGfeq2k/ENZtQe2uriOZd+NyW5jCjv3OBz6mva+sxi+SR5iw8pLmij0IjIAJwO+KCPmyCAeKYrA4Oc8nBxkU4k4+Y85weK6TnHEEZJHvmmANg/zp4LYGeB60zOeODjjGKL6BYq317Fp1hJc3DFVQfdHVj2A964C4v5tTka+vGzn/Vx/woo7CpPG3iAXF09jbyAw2n3yD1kxz+WQPzrm9P1Qzx2um7CssZIlz1AHT88187j68qrajsj28DQUIqUt2dPaQvc7BGVUkb/mHA7irQ8Kv4gjY3kxtrNmf5If9ZJyc8nhRnjvmq+lk2qsO4OPc11+iyebpluwPUsOnT5jVZfRhNpy3WoY2pKC905iy+FmlWOpQXlnf3qCKQSbGKnJHvgGu7SMAcZ9ee1IuC2B0FPPAyPfvXvwhGPwnjTnKW7HBPy6mk2AcZGabzk4JxgdBWR4gvXW3jsYTm4u8rgc4XPJ/HIH4n0p1JckeYmEbuxPpl7LqM9y6hfsgbbGcct759D1/EVpkZzx1qpaW62trHbxtkLxkDqe5/nTri9itIWluJURF6lv0HHU+1KF4QvNlOzdkWGGfTHrUNzLHBC80zhY4lLsT2A5zXN3fipnP+hQrHFjiWbkt9EB/nWTfzT6zava313ctbvwyxjYCOvRev45rkq4+Fmoas6oYOo9XojyTxDeXnivxlNHAf3lxIVRd3AABPX2A7VU0XTrufWhayweb5bAshH3R6n2ruB4S0qxvbmeC5uDLbbZYpchsEclcYwwI4/E1X8H38TyX2qTG3iWSUpIrAbdgGFQKO2Ow/lXD7ZOLUTuVLlNg+GLiw1GKbSN0MiL5hG4kZyMqOvqPwFepWLTS2sUk6bZSAzgcgHFcz4PtNPit5rqwgIDt/rtrANycgZ/DOOK67JB7EnNejg6bjC76nn4qacrDgvBJxznoKcEOOp59qbGTxjPI6elL0OOAOK7Ucg4pkY6Zpuwrxnqe/8AnijJ4JbI5pynLDHp6U7AIMAAA/pTSNwwefwpdx3dcD6UiYBwDnk8Y6UCuDICCCOtGw5HJ4oYnPGMUgOCcHgn0piEMeeCR+IoA9+M5xSsxAJyPek3E55IoAVcDI465pW6Gge9BAwaAEB+Xjn8aafQfnT+n09qaevAFAEfzc5JNOzuz1+tOK8dKYVIP/16AEKgknmikJIOOaKYjQDH0pwJx81IvTmnZyKoQ1/ukUuc9QKR+RSjjvSGA6jil7Y70YoOBzikAh/Wo/MznjH1FPbPrio9mfx4poBS/pnNLv8AlJ9OtNKd8dulKBlcZxzRYQbxx1B9KdnnGeabtz170BSOQePahoYFgP8A61IWHc04rg5OcH2pmznhvl70AIW4rgvH/jg6GjadYspvnTc8gP8AqQen/Aj29M11mtahDo+k3F/PgrCuVUn7zdAK+fLhrnxDfXFxLIZGaVXlPTJJ/oO1efjq6guRHXhaPO7sqXVvdDT5dXndpDvDSM7EtgkDknrg4rQ8Ok3kk13InMkmcEfwg4AHtjB/Om3tyupzLplq3+jRsDK/XzSDwo/2R/npWtDbDThgEbcY9Oa8OtVap8r3f5HqwRp3VrbzWDTOuCuSuTgFQc4J9DiuO8WJFqFuh0rTriUbtzOlu2B6c456Yrt9Hs317W7ezkULafM8iHgyBcZHsuTz64r1OOyhhiEUcaqg+6u3jHTpXTl+FlJKo2c+JxCg+VI+f/B+tfZ1isLtjE0ZBjjeM5c5+7jHP07+9e36F5yaVapcwmF1TGw9VGeAffbitFdPtUlEqwRiQfx7BkD2NQ395a6VYTXt2+2GFcnGMn0A9zXqUqEaMnUbOKpWdRKKQ+/1Sz0qwe8vZkgt0HLOep9B6n6V4pquuNrK6tqsrANJ8sYJ+4nQAfn+dU/GOu3viO6ae5cxxbgILcHKoCR29T1JrnpGl/tZ7JnxCzebg8Z9B+fNcOIqfWLW2X6HZh6Psld7npemTRmK1dV+WNflx2z3/SrV1bWGq67p9vdMywSTBJAGI3Lg4BPpnA/Gse0V4bRGALEcDmoZNQFvPcNPIrXUckYjAPAxtZQB9fzx7V5VGXvrqrnVO/K7dj2S1s7exhigtIIreJfuxxKEAGParg9STmq1vIz28LN94rzzVkevQV9YlpoeE731FPTB/SmjO4DrRvBbb+OaR8nhThjwDjoexpPRMZ4vJ/pfi7UJyQ+bqTDHnABI/pXQXcw8uGwikVZ5P3rBhnaoIxn6nn8K5bSy8GqtG7ZfJ8zJ6MCQfr0qzYJIfEd7JNI7MJT+8PzAqcEKfQc8V8rNu8j3YxVkdJMDJbGOZACRgjqDXE3ujWsGtQTyDbGVbIJONwwRgf4V3csamHd52Fx0PIFL4ZsIrnxELmVfNFrCXVnXI3sQAR2BwG/OihGcqyinuXVmoU3LsY+k/DhtX2XWou+nWxO5YowPtD57knIUfXJ+ldTZ/Drw9aRSAwXEsjjHnPNh1+m0AfmDnvxXWL6nkdc5pwAXoxH0r6KFCEIqNjxalac3e5zkdze+HAkGpeZeaauFS+Ay8XtIv9f/ANVdDFKk8KyROHRhlXU8EexFPZUKsrAFSMEY659vSsKfSrvSJGutECtETul09zhH90P8J9un8qbvDzRGkjezwSQawvFOtDRdElnVwLh/3cPP8RHX8Bz+VXdO1W31SNvIZkmXiSGQYeM+4/rXKfESzkaxs74SZigcxyKBnG7o35rj8qyxNSSouUC6ME6ijI8yS4Z7CRi2WZ2Jz35Hv7Vr6KRe6zNcY4AWMHrwoA6/XP5VjlQNNBDHG5j/AOPNWt4SZRC5BHzTlRnr7CvBklZs+gvZI6ycRx2NzOx2qEHfrkgV0Hgu6N3ojzZLRmdwh7H6fjmuda2GqRSWe0lN6wbcdWOOTzwADXoEFvHBEkcCKkScKqrgAdMV6eWUlzOovQ8zHVNFAm354HT2p6kH+LnvTQvB5HTFP24BwRXsnlEbyosZdyqqFLMzHgAdef8APSsXSv8AT9Qm1eX7rExW6nso/wD1/mTUmtSPMYdNgYeZOfnIHRM/yOCfoD61pwWqwQJFHjYi7VOO3+eawX7yp5L8zT4Y37i3FzFbwvLKwWKNSzsewFea6nq8utX8ZkZkVjtgjzxGnc/7xHU1veOL4xww2CSAeaRJL/uDoPxOfyrlLCNm1HfKpCFQ4Y9B7V5OYYhzqeyWyPSwNG0faPcX7VHHc3YnYB4t20E4GBwAP0rbsVN8ULLiEDL88n2rB1Z7PU9YtraOJX+ykb5B1LY4X8P8K2bdvsCSgr8i5OVH3R7+nevPguSR6Em2rlmLw3FqF/cRG8uILdVUskIXLMcg5Yg44A7VUX4Xw2Vw82j63c2pdSjCaJZOD1wRj0ro/C6tcafJdvjNxKduB0VflA/PdW+Iwec49a9/DYem6abW549etPnaTFXaADzjHHFO3rs5YdPWlWNVBGeccn/GkEZPBI6Y6V32scQoOeelOU8Zz16YpAueDjB5PNLtJJOfbpRYQpKg445pC+GwDk9CPSlCjB56+1LtAHXv0FMBDgd/0pCR6jjqfalKZIPHTB9aNvHYelMTGFhn+opcjkn9KUgcZPemkEDHQgY5oBi5HPpS/L17UEBhk9CKMHAyc59+KdhAvtwPShl4NKo69MdjTmHBzmp6gM2np1+lJ5fBzUoB4IpQBkgj8KYEOOBSEf7P0qVl4OOD9KYe/HegCMpz0P50U4AkZoqhFlcYFKemaYv3RT+B2pghrkgcCl7mkc8ZPajp1pDHE8f0peaTcehHNG7HFAgJ54qHLDPTvUpcD60hdR/OgCP5jnnjNHzHBJ/KneYuAeQDzjFL5gxkA4+lMQz5lb25pQSW5/8A10u8dT/KnAjt1pNjIm3KWPH0oHGck08uOf1rL1/WItG0S8v3YKIYyV3d2PAHvzUzkoxcmNJydkeafFPXWu7+LQ7eQER4M2D/ABHt+VcDrkseiWxFu2BPF84J6D/Bu341oxxyXwl1i7c7t5lctyTzkn864nX9QlvNQxyvmNnr0XsPpx/npXgwbxFZt7Lc9mMVSpnUeD4P3HmyA73yz8Y559vc/lXV3t5Fptqbx1MjID5MfHzN6/Qdc1zWlu1lZRNHGCjqW546Yxn2610OjWba5DaBjvurz5WwP9XED820duBj3JFcc6bq1+bzNbqMNTpfhlo+ol5da1PIM0e2BCOduclj6ZP9K9E+b1/XpSQhIIkiQfKowPoKl39TgZr6WjTVOCijxas3ObkMxhgA3c8Zrzz4pyXMUGmBZf8ARGkcOmP48DB+mN1ejl8cGuN+JVt9q8ITSpktaSpL0zx0OR6YbP4Vni4uVJpFYdpVE2eOy2D6sZyJRELW2N1s27i+11BXrxw27v0+tUpv+Q7buDwU6fStDQ5PturJal+ZrW5jKnuTC5H6rWPe3ogms7v+DaCcL06Y/wA+1eRGLskuzPZi97noizrDabnYAIMnnp9KTwz4YGteM3vr7dtgRZ3jxkbicIPwC1zw1S2ukiuA4a2mTZKgPIbp+I/wNdH4W1q60C5kliU3tlNt3hs+YoHcHv16H8658Ly0aqdTRCrpyh7p68BwoyOvb6U88jp+pqlp+qWuq2aXFnMJYyRn1U46Edj7VdXA9vWvpE4tXTPFaaepGJCeeOc0hZiQeDjmpSoPP4UjLnjgj3FN7C6niOpxNpvjTU4tmAJmcfRsMP50CW4XxI0kLLlo0yD37H69K6rx/oxOp2WqRJxKPs82B1IBKn6kZH4VzFnhNZh3hfmhA6ZxtYj+tfL4mHJVlE97DSUqaZ1ED/abVkdArHgjpXQeFiP9MXHKmMn8iv8A7KfzrHs5I5LgwMOdoIOMce1afhK1khvdZL8p56JGSe23cf1eujARaqJozxkk6bR0w4JA7tingkgAkZ5NKq45G0d+eadgf3RmveZ4zG7jkHjH0pHJ2ngn+lSYGelByTjgHv70k0FjH1XR0v3S5ike21CMZjuYxg/RgPvD9f5VmzS3GpQz+HtZt/LurmJhFPGC0cmOQ3tggccfhkCupPODzj1rP1m+XTdJubvdt2KdmTkFzwv61hWilFyexpBttJHgN6kllaJaSYEsYKuAf4txzzUvh+/it7d7O7hIE0pKzKMbWB7Hpn2qK48y9u5Siknnp14q3o8kVvIYbuBZrSUFZY3Hp/EPcevBrwm1yuL6nv2drnWaZqTJdxzxOpuoeQxGQ49x6fyNeh6Tq8Op26vGwWVQPNjLZK/4j3rzOy8K3N4txd6BcrNFBJsEEz4f7oPDdxz0OO/NW4Ly7066hS/hlsrsNtR5F2Z9gSMEfpXRhqtTDLa8WcWIp06zsnqj1JXbJyOBzk0lxcJbQSTy/wCrQZJHX/6/p+VYNl4jYoBcwgseS8fGfqDTry4bV7m2tIY5Etvvytjg7e3XtwfqVr1Hi4Sj7j1PPeHnF+9sS6PDJM0uqXOPNnJCgH7q8DA/ID/gOe9bTnAG3OfpSRoqqqhdqgAKAOgx2qvqd8NN0y4vWwRDGXwTwT2H4nFbLlpQfkZu8mebeJLr7f4lvFV8KHW3X6Lwf1zTLxGs9JluLhiscERI2tjf6Cq+kwfa7lnlDO2dzH1J5zVb4gXn2TTYbHd80uGfn+EV8zFe0k5vqz6CK5IqK6FDwqkggNzIcyOSxOMkk12jQSX0EelxOFkuMJIw/hTqTn8K57w95EcFrsO6GSMEFequOo9q6aweKGYxOfKu1+ZZAcFwf4h/I1dKS9o2+46q9yyO2tYIba0jggiWOGNQqIBwo9KeJMOuGGcYFZVprC58q9KLJ2lxhW+v90/pWpuVh0yT07V9JTqRnG8TwKkJRdpFOy1u2v5JY4yyGNyuHHJx1yO30rQ8xgDgc+wrk9emsodQSeCYpfoQJREMqR2Dns3p1PHNa2n65BN5cM7rHIxAjLAKHJ7AE8n6cfTpSoKsrqp95M+TTkNbecngdBxS8nGSp54ApobIBA7VKDxkjjGa6NjOw1TvABwRjt2pUIy2OCOKMgemP51n3OsWsEjqX3up5WMZI/HoD7ZqJVIwV2VGLk9C4xOTg4yeKp6rqcWk6XdX0zKEhUsAT1PYfnWZceJXicpHZqW/umXB/H5fxri/iBe63q2k7YbSOOzjHmTRJJukOO/QZAHpXJUxkHFqD1OiOFqXu0cldeMtR1m9llOrm2ddxAYgIBzgcc5ya1NH8R+KbO4kSC++1JGqsU3h0YYz0bkfgRXG+F9OOp3M8AOZdm6NWTcGIYAk+gAOT7fjXougadJpenteSWry6jgq8BZUCJkdM568dPTFcE5uL916nXGkna6PQdA8RLrVqzGJoriLHmR4/ln+Vbagt6HHfFZekadFBbwytGiXDRAOFbco78HAyMmtYbQcjA9a9ilz8q59zzKnKpPlBANuff0pxHynGBkc0cBePXpWO2oTtcTKrKYwxABXp2qpTUXqKMW9ja9cUADnpj2qhb6gryeXIVD4yAM8ir4bPXrVJpktNAc018dOafxwAaTp19KoREVGepoqXj0ooEIuMZGD70uTxTR90ZPGB9aXr0qxCMRil3jFNkzt7YzRk9O1Ax2fTNNLDNGc9P5VWlmWIO7yqqqMlicACpYakzcNuzn0rmfEfjnSfDkwtZWae7OMQx8bf941m+I/HcNraTw6OJLy9wVRok3JG3qWzjqe2a8bi1G2k1MjW4XRo0fIuUHL++77xIyR2Jrkr4iUfgOijQUn7x7EvxHEUS3VxYBbYn5jHKCyjscEDIrstO1C01O1jurK4jngcZDp1/H0Psa8A0u4EM+mzyzLCrMdshG9IHOCpwcgEZI74/CvVPCty0cvnXt7cXbXTOIbqST5VTPyrszgbsZB59Kyp4qXtFCfUuph/d5onb7RjrwaBlSefw9KaWPr+FGeTyTyOK9Dc4xCCB1GeOleJ/FLxM2oakdJtZGa2tOH2/xSd/yzivZriWSOCWReWVCygnHIBxXzPa3Hn6pJLcNvLsznJ7knr+Nefj6jikkduDgpSuzXnR28IKsbBfnG8DGcH/69cXqlgTavdBiTCVJB9CcZ/Ou8jg8izlgUr5EoJTJyAT2/z2rAliEljeRcjNu5X1JA3ev+zXj4Wraenc9acU4lzQnFygQ4CpHgD0J6nn/OK7HwCws9QtHkUOLhpIFbPAGdwPtyrD3yK4zwbIZILh9xHAXAPXgnH6V0+lSNHpOnTq+14pY5Q3XpJnP061UW4Yj5oxqe9A9nWMc5ycZ5PegpjkcZoRiyhs8EDp9KUAnA5xgcHpX0d7nigUJGGPB7VFcQRXEEkVxGskUilZEYZBUjBH5VOP8AVjOAPeo3YjdgknHrT3VmG2p8z+INI1Dwv4uls4pnR4nJilx1jYEbsjuVbH51oWGgx6jphWQjptBIJwfpXRfFOUS+KLeP+OG2Azjk5Yn+XFUNEuzDA0LEh8Bgc185jajjpDoe9hVzRuznE8KzxXUlpDdfZ5wN0ay8xSD0Bxwe/Tt7Vb05Nc062E82nXLWgYqZEiLplSQRuGQOQfSu5WKHUIAzj516MvUfQ/jXU+BE+w6CNN81mngkdnJGC25iQ345/PNVhpfWXyVCcRN0leKPOtO19VuFuLG7+z3HAYxnAI9GB4P612Nt411J4PLMVm0oH+tAP57e/wCddXeaNpd+4a706znbP35IFY9PUjNcZ4r0+y8PC2k06F8y5MlqHLDAOAyljkHJxj8umDdXC16EG6Mvkc0a9KrJKUTqNM16WeWKO5WNfMyFdQQM9cY/CugD5GeenpXnXhyKfW7y1u5bSeC1iBMqzRlAzK2NqkjDAsASM8bffFd8WfIAx19fau7BOq4fvDDFKnGdoGR4vP8AxTFy4UM4eIjPGDvUfh6fjXnH2NrwosREc6sWhLcBgTypP1A/GvVdStxqGl3VqQMzREL/AL38P6gV5G+vG1uzb3f2WzmhdlZWxuQidCe/J+907VwZjRk6qktjqwNRcjRp2N00rw3SqQ8f7uRe+P8A9ddlo975OooCf3V2AvXpIM4P4jj6gV5Z4b1YT3k6uBmWRnx0HJz07fSu1MrPaEI3zKAyHP3SOQfzxXHRm6FSx11oKcT0gP8An9MUoI6kiqVheC/soblSMSxB+Ox7/rkVZBIPYDivpV72qPBemhIWA5/OlBIHTn1qPceFJ45pc4XH0p2FcXGU7Y96434jmUaDbqjY33GGPv5b4/WuuMmPrnHWs7W9Mg1rSJ7KZigcBkkA5jcdG/P9M1z4iDnTcUa0pqE1J9Dw7S1KKtzEctGxEieoz1rdn01JYhdWoJjPO0/w/wCNYF9FeaHrU9lOES6iYb0H3WGPvL6j9a3vDuqL5yo52qTwD6V87VpyUtT6GE043R0Pw+1SG2vLnSpMKbhvNiJPVwOV/EAH8DXokkUcsJiliV42HzI6gg8dwevavNL3RzKyXthtS4QhwoH3mBzx713uj6iNU0uC6I2uykSJjGxxww/n+Fevgat4ezl0PIxlNRlzrqYOu6Umkg6hDII9PDDzoTz5RJHKA9j6fp6S6Faz6hMl6shitYziFo2B8wZ6A45TvzyMkVcvB/a2tC12hrWy+aT0aQ8EfgOPxatxTtzgAcjtWlLDQlUc0tDKVeSgovclGOe3sK4v4jXzQaTa2yk/6RMWYdMqgzj8yK7FW+bkZHXIrhPihbySaPZ3iY2QTGOU4zgOMA+wyAPxrbGRbotIjDNKpG5z3hiVoj57jMcx+/6H3rE8bJJNrsm/IUKNp/2etSeH7+SMtA0gxuIMbDFaurWqapYqBtE8K/IT1I9M18/GXK7Poe959zA0m2vNO0tNRSQtZmXY4xzA3G0n2Pr68eldbcKuraZBMsxgkjfJlVdxQdG4BGcdce1YXhPUUtbubTbwKYLkbCkg+XdjlW9j+n1roE0t9CnHlTK2m3bmOJpW+aGXsjeoI4DfTNb+z5vfRlKo0+R/IsXGj+IdKhZ3e2vrQcmSJ8Ej3Rv6E1I1xqUWkYF2Vgz+8tweVU9856ZPIH8s4gme4mt7XdcMtpCxDxsxxEi8lR9emew/CsLUdbRd6QcIzFc4zwc/KB1J7Z/KvawMKCvUjueXi5Vn7kizqd7LZxRGBmWV5NktvEuWOcEE+gODkH1z3qW0nntLyO4vIw7TbPszBh8p3Ehg2PlAIORjtWJB4E8VXVgtxMVsreNGlIuJsSSqBkAgZI/HBrvvD/hy0lsydU0iESxxx2y+YwbdtTmQD+FiW69feumpVlK6gtTljTjGzbOp0y5e6tIp5fLWYrhxGdwDZ9T9M/SrwGV2jrmuY0a01XTr+S2aNXskBzcs4/eDA2YXrnse36Vb8S6k+naFPIj7ZnKwxkdmbv8AgM1z06840eeqrNFyppz5YPcztW1xry+ksLOXy4EP7+VDyx6bVPoO56nFZ8jSJp8s8MexY1/doBz2+Y++O1ZtnIsUaZT+Dyz1+YgnNFzrF4sW2GyuD8uQSAowO/JFeFVxTm229z26WHUEkh1jcxJGAHGcck9fxrYi827tmkBUnr5bZw/HQntmvORqFx/bkUTwBBLuVtkgPbIz6c/zrtrK8NrbsJRxtPJPFZ0m4/G9Ga1YprQxpNM1C4jtLi20i9ne3IaM/Zwqke3TP1ra06yn1e5SFZHtZiN1x5sR3xKOwUkYPPU//r7LRzv0excNkNAhB/4DmrzSpHEWdwFX+Jv8a9qOApq0mzyZ4ycm4pBDAIkVELbUAA3MWP59TUmAFJ6+3pVFNXsnB23C4yTnaatJcRyttilRyRnCnn8utejCcHomcEoT3aJd/lqzEHC5Oa52FjsZjnOa2LptlhMwOfl2j8TiseM4jBJ75J/GsajvL0NKXwioA91I+7jO0Y7Y960YbiRFADggdNwrJgceXnPJOc/jVoSc8+9RGdi5RubVtOZt2ccdO1Wc4GazdNcHzO+MVf3dfpXTF6HNLcfj2NFRb2HrRVXJHIp8tcY+6P5U7H50kXMSEf3R/KnZHrWghr/d6d6TBpHzsxiuW8XeNbPw1abVKTXkgPlxBxhePvN7VNSagrsqEXJ2Rc8R+KLDw9bAz4luXH7u3DYLepJ7D/Iryy68QXevXbTXsqmIZ2IuSg9ePQZxnvWHeaxcancTz3kjtPcjOUxkeg9uMcHoKrTXiWEQSEuccuWYds8Zx79h6815s8RKUr9DrhSSXmb19qUVnbxMgCPK+yNcbeg5J9h/PFSl0v7dre7W3njX76yoG2k/3CeQenI6GvOdf1p7lLYxlYzA5ZQp+boMZI/3au+G/Ek015I077pGZn2kgL9fpWnM7XWxTVjqNQ0TU49PSz0kz39tMdpt5GBkjPX5WIG4cemfrVzwvqF7dTWuj3UKi8aVbeQv/rQM4bcp6bQD+VblgD5Vq8bjKsjBh0A3Kw/P0616hHp1rHdveLawrcyAb5/LAdh6E9azWHjWdwlWdNWRZhVYokiDMwRQoLnJwPU9zUnyjrj600rkDDfmKGVs9s59e1elZI4RHK47V84eONH/AOEX8WywKCLW4JlgcjjBPT8Dmvo4r14yDxg15f8AGrSPtXhi2vVX57aYrkDnDDI/LFcmLpqUU2dGHqOMrHFafqcMtsIZWAUjt2/w/wDr1VhaNNVhWTb5Jbax/wBhjg/ocVx+mak+PKkkIdRjGeoxWlJclI+HIXJwSeh//X/OvFeEdObt1PYjVUo3NbwpEbP+0bWQBXgn8shhkZUnj34FdTpsyy+F4+22IZA4AwelZGmzJfXt5dxcJctCxwDwyoFO38c/kauWfEs1jHbmNJ7dJVVFyFONp4A4ywJ/GsakrzcuuhOyse6xOPKQ842j+VO3gHHf2FUdLnF7o1lcIQQ8KNn8P8aueWeoIzxjivpou8dDxGrOw/K45ppKkkNjFAj7547DFMdSzcetUiWeXfFjSWDW+sxLmPZ9nnIHEZzlGPtyRXE2eoQ3caxyER3EZwGB/wA5r32/sYr2yntZlDxToY3GM5BGP8+9fKNzcvp9/JCzkxhyN/dOf5V5WLwinN2PVweIaR6ZpuoiGTyZWQ88YPr/AC/+vXS2t46SrPbnEiD5c9Dnsfb/AAryS31WYBAxBZT8p65H+ccV2OlayrJgnAGBgHpx1rx5050HdHe3GorM9g07UI9RtI54cgk4ZT1Vscg/jWHPbz6xr0jxDakZ8hXDlTEEYkycfe3EjA4+vWsfw5rItdYSIsBBeNszn7kuDtb8eAfwrttL0tLC2EZKvKwUSSAfeIGM172GrfWKakePVh7KbRZjjWKJUQYVQAAaeQuBgDPWl2jcnf6mmhPoMA967ErHNuBK8D19K+Y/Hw3+MNWlQqcXchz7g19N7ApXoAMc180+Jokl8SaoQAFNxJ0ORjcf15rlxEuWSOvCrVlXR7rypY5YmBC4I5xmvUrC7Se2SUMGVlrx20U283lkcFty47eor0TQ5ytqqDmJk3Id3T/ZzXjY2FnzRPTpy01PUPB1x5ujyxEhvKuZEHqASGH/AKFXRHA/hXP0xXG+BPlg1BHxuaVJwPYgr/7L+tdiqHb1GTxXt4SXNRj6Hj4hWqMcBjIIx7U0hR6DjjpShQCpC+5PemuuSf0rZsyEODkdMU0n0xk0EYJzTGHIwRnPSpYzxX4o27DxhM6YzsjZf++AP6ViWM2+NZU4flgegyByK7P4lWWfElq+AfMtFAz6gkVxb2ktoWZOUc5ZR1BHcV4VZpycXvc9nDP92mjvNA1lZYxHJxKvykE966WHURpxlaIfNcgCPAz+9x1I9Mcn/drye2umLLLGf36dRnAdf85rq9P1Oa4vNOlRQXLCUBx92JSCTj1YjA9hWVKpKnNLoXWgpRPS9IsBY2KI+PNb55Ceeff/AD1zV8bR0INQQSLcQRTRPuR1DKfXODUhB4PGPTNfSQSjFJHhSbb1FJA6kVBdwQXlvJb3MaSQTKUkRjncMVIEO7PHSlK/Kc9PX0ptJrUV7anz34q06Twx4iksWkLwKA9vMTzsPIBPt0/Cn2HiAqVWYgMCPn6bh+Nd38VtBF7pdtqYUM1sxilzz8jcgn6HP515homly3N7BFcLILMSFfP2EhnwSI93Y4BPXsa8mphI1J8nU9anieWnzM6XVbYXNq1/aLvmC5ZQcZHrntjrmsW6utX1iKPUGl86CzAbz5yUWQL/AAxL6f7R6+oyRXY3cMlppUyaattFIIywjdR86g4K8nAznGT34yK4GGz1DW7hbKS4lFtEfKjtAfuKOApP8QGK2eEpYSHvu5jHE1MRL3dEejabqdvNBZiKRbi4njUJblOWYrwrZxweQT9K7Lw/4W07SJBei3Y375bdKQxhz/CmOAB0z1OOtUPAMY07SBpUsMUc1t8yug5kjJ7nuVPH0xXXBemDz0rTBUoxjzRd7kYqtKb5WrWBo45o3SQKyOpRlz1BGCOKjhtYLSLy4h+75PzMWJJ56kkmpdvHbA5oA+6xxjOTiu3Tc40cx4v1OS2tltLS9FvOwaR9rYfaqlwMjkZCsePQDjNefy+Mn1fQYNO1Kfdd295jf3aPYcMfUg5GfpUnjm21GzUXV/LJETeSRwQyXBfzI/KceYASevA9s4wAa4jT4xNr7bx8m8jk+5rycW5Pmvomj1MLCPImepWUhDRFyN3X2z/9eo9Yu1itnI+UAk8dvXNW7KxbyEXaJE6gHt9KhvdLnmmiLWM8tsjqZEBUsUDDcBkg8jIrxfZylZdGz0XUjG7KFl4EcaKuvXt1PHeKvnra/LtVM8bjjOdpJ49R6Vu6fMnlKGCllJxnmpNR8eaOsc8FzYajGsisjAInAIx/ermtJ1Bp4I5YoZZYv9XIqcsh9wOQD616WJdOMounqtjjoSqNS51qdnp3ibSdNsHtLm7jV7aZoI4lIZ3UcrwPyyeOKq3WuPqBYiJgvRFKnan4dWb8hWNdak9pGNsCQEdI1Az+IHSk0WxuvEtztnujbWa/f2NiSUeif1Pb69EsVUr2pQF7CFG9SZcW0gNh9kkvpVOc8MgePvjjOPTnNT6bp39nXAk/tm8MXGFkQSGP34/mQPpW5feF9Pm0wW1nbQ2s0aH7PInylW7ZYcsD3znPXrUreHbKWOMNCIZEAwsTEqhA/hByAOvQCuxYOcXdeRzTxUZKzuXplN9ZKlvNHICQS5ON2PoKyb9JbG0yyCRm+UJESSfzGK1bHToNO3iIMS2CxYkk4rP1KbzLtlYkCM7QAOK6p3UU3ucsXeVo7GUJ7pk+WARjHVjn/wCtXSW1vZSKWjHm46hiePwrIVgDkSP+QqZHKnKysGHQ8VnTmkzSpFtHQIoUYjQAeijFSA+5NY66hNkfMpx1ytaEMpkiVyDyOgOa7ac1LRHJKLW5OduT8lFRkjPVqK0I0LEDfuk/3B/IU9iD681Hbn/RYcnqi/ypWPGcH/Gr6CRzHjXxfbeF9HeZ/nuXBESdBn1NfM+t+KbrV797q4kZ2dixZh+HFdr8YNRebxfPHKd0cG2NFY9MAHgH3Oa5zRfEbWssZWVVXkHOcEdOfTr9OK8+U+Z3ktDqhGysjBg1t1iYiQgtweeo/wA/yqtLqUkz4hG4kYHy5PvXoN/p2g+I4iJbaO1um4S6gQKSTyCyjg+4PPpio/CPw11C81421ysa2kLgyXEcgJZMcbQee2OR/KmlTesdSnJrc4uLw/q15+9cRwIR/rJpAoxUVrBHYassYu0m2gEtCxxuxnbnv6Zr6kbwR4aOlNZf2TaMjR7d7pufOPvbjznpXg/j3wZa+EfEUEVlIzw3CF0DjJjOcYznn61c1KKtImMk9jtNIvJRZQbFOOFV+7cj3IzXt6nI5GD1wR0r5vtL2S08Ozy7WCpGTlGOARwGI/HNet+CPGsWtWMVveukV9tAAJwJR2Iz1NZYaoldMK0W9UdplskZ6E0rPxkcHqaFKnk087SdvGfSvRbOaxCWYZPHXpWXr+mJrWiXenSbQJ4iqsRwrdVP4HFbLBFGSAPwpjbT3GMVnNKUWhxdnc+N9X0q503UJoZEaKWFzuU8Mhz71EbySUCJ0LO3BB5yfYV6t8U7KwbxWGs3BmZQbsD7ok7e2cYz1rlYtHN3IieWS52ohXhs9ABjvz19c/WvLeIinyy1Z6dOLceZM6rwzaiz0K0jkUO+E891O4rI5DYx6qoJP1+tW7xHRIJbQHzbR3kVWBG5MZK/gc4+lO1jQf8AhD20147t5BcoRc2/C7SSoJXbjg5xyM8danZTZ2bRpIpQIwjd+cZHfPXHrXkYi8Kjb6m9JqS0PQPCt15lpLakACGTK+6nnp9c1vkkNhT+dc14F0yaw0ZHud/n3AVtjjDKo4APfoe/NdSduBuwc+tfR4W6pR5jyq1ud2Iyz5zx/jTfn64AqXKA+9M3r1xjpxXQjIY7MCMdePx5r5n8ZaG2m+KL+0KkL5paPjqjHK8/Q/pX0jfahaafZyXd5PHDCnV2Pf0HqfavCvHWtx+I/EC3VtbmOGGERB34ZwCSCR26muHFTira6nXhVK77HBJb3EAXYMqOQDxgE/yrpNFjN05aNWFzGP31tIdrEHglc8021t/tUiwhAXlPlqo75IFeweONCsZ/Dj6h5SQ6jaKi29xEdrZJC4JH3hj1/CuSSdWk3tY7HU5JqPc4e2s5JHgCSsYWbKvnDJwevvXruhaj/aek29wxxKU2zAjGJBww/Pn8a8u0a7a5gQyqqSyEq5UcEj+IfXFegeDtzafdSMMB7k7cc/KEQCubLKklVcP60FjIpxUmdDvbjr370qEhcEE8c96MYzgKKMDjgEZ6GvevY8toilnW2SSV+EiQyMAewGT9K+brgm9v57gZBklZ8n3JNe0ePtTa00ZLGHd599lOD0jGM/nwPpmvK54IraMuU4UFtpz15ryMdXXtORHoYWFk5M2/AnhGz117+fUoVa38owpxyrt/EPdcD86qaTazaVq13ol2MmKRihA4JHBxXq3hXR00fQbS02/vygkn/wCuhHP5dPwrzi/uVvPHV66YKxSSD05zj/2UUsZTUKMUyqNSUqj7HU+HpZbfX4Qo/dyxmNxg9gWB/DGPxrug/G7Ixj/JrhdCVG8QWf8AsxyP6ZGMf+zD8jXdrtZRkDJxwetdOWt+x1McXbn0ELP9fammQjBxgDmpGwM8cZoIBzjB46V3vY5SElvm45yBxQScjvzj9akAU5OAeeaxPEXiGHRIUWNBNeyg+TEen+83t/Osas40480ioxlN8sTlPiayLc6RIGHmssqkfxYyCD9OtcmIlaEnb8qjJzxj/OKtajHcajdPe6hMZp2PJIGAPQD0rY8L6FHq10ZbhT9hgOHJPEh67fp3P4DvXz8pfWq/7tHsRj9Xpe8xuu+EdMg0TSLgAWs6on2kqcGRQgLtx/FnA993tVPQN90jX4yn2gYVCf8AU7chQPbH61peMdQeSP7Y4ZIxdpDBGcAyBRu/Inb75bn7tLpdutnpkUR+9HHlyfXqaMbJ8zVicPfl1Z2vh92bR4GGNmX28/whiP8AGtZW5Ofu/wAqztFiEWi2asF3GIOQBxzyf51ofLj8xX0NFctNI8mrrNsGkCtjt3qNpMKScYAyT6UpXrx75FUr6ylvBEsd2YIsnzV2A7h2Iz0I98j2rRsixS1W+iulfTY4DeNOhV4gM5X1OeFH+034AmvLvFeo61oviCCyntraKxt0823tLcnyZEKld27GSeTzjj6V6Pq+vaV4Ti+yxQGa7b5jCpyzH+9Ixyf5n8K8l1vUdS8Sast3fFV2jaiR8BBk9P8AGuCviIxfuv3kdlCi5brQg1XU7/XWs7CztGgSV1ieJmGJGLYUE/3Rnvgc5xWxoGmmO4khlt/sup2p2zWj8Fl9R6n0I4rS8J6FLqmo28iR4trSaOSaYnoVIYKvqxx+HftnV8ayQXnie2W3cpd2aBBKhwdzHdg+oC/+hVyYibq0vaVNGdNJKnU9nAu2c80UsM0LKDHlgT3GOQfrXbQziSFHUZDIGA9j0rhWczGGNRiadxGoB6sa7uJESNI1HygYHPYcVtlTlytPYzx6V01uTo2VPQ9uDUZYk5A69qeCF4x6UpUYyAuB7V7B5xw/jzw7eeJzp1pZywRyQ7pZGmYgbW47A+h44rg/EfhiDwzq1pb2ZklcWqzSytnMrFmycdBjAAHt+Nei+J9cl8P6jFcrZiaK4g8lGY7UjdWJIOOehHFec+JNf1LXbm2mlsbKN4FK74ZG+Zc5Gc+hz+deVi5QacV8TPSwdOrLWOqOm03Vrq3t1eNTNCRwyc4+orbg1bz1DEEZHOc15dZ6jeWRPlKgHp5gxWqviK5WPMtvJjGfkw2PyNeOvbU9I6o9SWH5tWjc8SLb3DK3yl8EMR3rkYJNQ0u6kewUsjj5kBx+tWIdcfV9Rh0+FRHPO2xHumMaAnpk4OPTvyRVnWNAvrLVINP1C7tm3IJJobfcVUE8AkgZzjPTiqhSqRTnNWRnKcbqHU0dIjS6k8+7230pYAqo/cRnvuY8N9P0rqzdMIC7tiQfMpA5AHp+lZenRRrbrwqxJ0UDAAxWnpmlXmr3S3Lk2+mkghifnmA/ujsue59OM1WGjUm7U0Z1pxgryZrtrrw2UMs0QBdckhWYE+2Og4zz61BJ4iZhwzL82PlgkPr7Gt02cDEHDKAu0bWxgVz0s1w8ZUM8ZP8AGg5H/fWR+le7P2kVueRFxb0Q7+2JpjgNdZJwCLeUDPr93FGoeYjtJIjkM/WGNpR/46CfzqJZ5bZS9xfylDwv2hkRc89MKKs5lZcgufcKTisLc2jNFpsUxOuT+6vMeospz/7JTluwOfIvuv8Az4T/APxFXcSEdJTg9g1Mk2NKtv8AaXjnOWEaSbZCPXHXFT7K3UftLkK3ZyP9GvTk/wDPrIP5rxWis91BHu+0QlVHyxC2ZmPou4NgfXFQxW8qHG66k5zmQs39K07e2RoVaSM7icndkHrXVSjJGFSS6llGyikjBI5AXNFGwd1Q/WiuvUwuizZ/8eNvn/nmv8hUrc96r2DZ062PHMKf+gip9xxWpCPJvjN4Wa+0hdYtIl822wJiDglCeDn2P86+eo7h7eXnPoR/n/Jr7L1q80+z0m4l1WWOOzKFJCx+8COgHc18j69Y2z6zdDTBI1q0jeSHGG2Z4ziuSXLGbXc6YttEunawquM/IwO4FTjH0/zxXqXhHxQ1rewzr88ZG2QdC6d8fQ8j6e9c34P+EreJ9Emun1BrO6R/3WU3Iw54YdQc9xngjis2C3uvDutT6XdyRtcW0hjZo84/A/l+VYTXI1OJonzqzPpuKRZYo5YyHSRdyOpyCMcYrxL4veHtbuNSXVQjy2YTYAmf3Sjt+uSa9G+H161xoU0JIKQT7FJ6kMoY/hkn9a6i5iWaNopFV0cYK4zkeh9q6pp1YqSOeLVOT0PmfQNZQ+UsqhV+66H5g+fX8fXI47Uya6PhnUcROWtHbMZHVW7r+HTr0rpvHvgdvDuoDVtMjP8AZ7nLKn/LJs9/bn+nNUtGvbVbm1ubmGGeKI5kSaJSCmcMuCMH5en0HSuCXuy5WjrTTV0dl4Z+I3kiOO4czwFtrB8lo8+jHr+P6V6fpup22qWy3VnKHiJ5zwVPoR2rzXxP8P7OO1XVPDtu9vJEfMe3jJZSnXKKc8j+6PwFUfBvig2N6trNMrybyPlXIdDjjIAII6jI/KtPrEqNTknsR7GNSPNHc9kJLZ9D0Ncz4215vD+iGSEA3M58uLPbjk/hW/5vIIORjOfavMfjDK4h0vb2Mjf+gitsVNqn7u5jRinUSZxSW8ku+WdmkeTJ+ZjkknPJ+tdj4B0V7rWZb+VM29qAseeQZSP6A/ma5HTVma2VgrFmI2r0LH+EDGOpr2jw/po0jR7a0+UyAb5T2ZzyxrycFSc6jk9kd+JqKMOVHl/iq9OreOLlNxaC1cRADkfLx+pLH6kVYLiZEQuCpYZH1Ycf0rD1xZdN8b6nDLnc05dN3dW5Byfw/Wt7S4WlnsYsHDzRjof7w/wNcddSeIjfqzeHKqWh69GGzndznqevT/PNSNuPA9KhRiIh0PY0GRh1x0719Qk1oeK9x+zkE/jyajlIgR5JGCxou5yT0AGTQZMc4/DtWB4x1L7H4duYQR9ou1NvEPXP3j+A/XFZ1qip03JsqEeaSR59qOqP4mv2u55AtuuFt4uoRc/zPesPV41Z47a3VpJ5XCpHHyzHI4FNjhlhdLW2kaed22rHGufmP/6vyr03wh4RTRYxfXuyfVZByxBIhGOVX+p714WHw88RW9o3oerUqwowstyv4L8DposSX+oRrLqjDIGcrb+y+px1P5cVT+JmpSW62GmRtzIxnZvzUfzY/hXoAyAc4xgYGK8v+K1rJ9u02/A/dvC0PT+IEn9Qf0r1cXG1HljscdCXNVTkV9NVI0jRR8qxqxxjjr/SvRvDFv8AZfD9opGGdfMb1y3P9a80tSZEManDyBIgCO5GB/OvX4UWGJY0+6igD6CvNymHvTmdWOaSUR21jxndz3ph3cjo2MDFSFwQSMDtmmuf3YP8h1r3eh5h5Z4iuW1Dxpffd2WwWFB6ADn9Saz7Gx/tPxXYWXlho9/myjn7iDd+RIA/GpPEiva+NtUAwA7q4Oeu5Qf6/pWx8PbbzdX1W+kXmONIU4yQTlm5+gX86+eo03Uxep6jkoULo9FUYBIGSOR7968J0hmN1dynG4liecnJNe6Kdr7+p46+leI6pZPoni3UbI7gu8tF15RvmXn9K7cxi3BWMcG1do7nw2wOv2yhiCYZeAevArvdnGeB+Ned+Ez5niK3YNkC2kbp15Qf1NehliBz+Zq8t/gIjF/GKEPYDnsaCMnj1znPahyFyduaaXxxgE59a9DocqsKFPA6H1BryfV737T4l1CaVvmWZo1Hoq8AfpXoes61Fo9kbhgxd8rGdhKhsHliOgHX14rzJYLi6uooFj8yWdv3ajGyQnuMcHufXueleXmMPaJRR24NqLcizp9jc67fLa24KxDmWQ9FX1/wFd/eJDp2n2+lWMah5/3cUbNyVHLMfUE9fbNV9I0ifRLQxW01tIXO6RpYmDE/UHlfQEfiangs/s+vJeXM3nXNxA0MchGFUg7iiD+H5eeuTg1rhcJGhC3UnEYh1ZX6HG+N40gv9IsFy6W8TSkseXZ2+8fckE/jTUkaSzkCHJdiF9znFS/EiB49Q0u/UMVZTC2PUHP9f0qroQa5v7KEk7Xul49gd2P0rycVCTxKT6s7sPZUeY9OiiEMKRoMBBj8AMVIqEDt1OaUHHO3C+mKBlmJGM4r6RI8VvUNpyfp61ma3qH9k6LeXwC7oYvk7gseB+taobPTk88da8w8c+IP7RuRpVo4FrCd0so6SOOw9h6/jXPiq6pQ82bUKXtJ2OSCyXUss9wWeSQlnduck85rW0Lw9Pr92yQL5NnG/wC+ueoH+ynq38qf4e8OXPiKbe5aDSo2HmSqcNKQeUX+p7fy9WtraGxtktrWFIoIxhEUcAVwYTBOb9pU2O/EYpQXJDcriG20LRmFtAkcFnEzhB32gnk9SSepryzRmae4lvLh980zF2Yjk55J6f54r1q8jF1ZXMDgBZIGU+2VNeO6NIRb5JxtAHHUf41Oatq1tERgVds7Tw5bm719HwNtpGZG5/ib5R+hb8q7ZVZducbhXO+DrZodIN3Iv7y7fzQD12AYX+p/4FXRB2KgY6V6GBpOlRSe5zYqfPUfYlU7RyBnPY9KUnpjkd6jBYEAYznGacr5544712o5mR3NrFdQPBcRRzROOY5UDKcdOK52+8KeG4bOad9L023AUkSzqTGjYwMgkA844710js2cA459cVm6ppFhrPkR6hC00cDl1i3lUc/7QH3h7VM43XmVGcovRnkWteEoLDTIrmd7a6huLyN4p7W3e3JVm3SKm0kuhQcZwFx8ucnHptn4U8L/AGKIWmj2j20qh0cq29lYZB3k7uhHeoPGcPnwaPFs+X+0UTgcDKkAY9K1NCk/4p3S2YDb9hhYn22D/CsoRSvfY1dWbSszNHgjQYriG6WGWMQt5hVrgmMYOcndzgdevauGlnbVvEN/qO7KzykRn0QcDH1AFa/iDxJd67ENPsk8m3lPz4OSy9yxH4fL+eai0LSGv9RFqgKW8YzKy9Qvp9T/APXrxsXU9vJUaKPQoRlCLq1WbXh7SDqI8+dc2keQqH/lsf8A4kcZ9TXaCMjA4zgfpUUSCKJY0RUVQFVQOAPSrSk7RzzivZw2Hjh4KKPNr1nVldjFQBmII5Pr7VFOG8iXB2naxz36VOQ2d2ePQc4qGVj5D8clGx+Vby2MVuchcIdRQR3v+kIG3qsp3BW7EA96tefdsMfarjnuZT/jUUILdu+TVxIwq5Nefq2duiQiC5bAa6n5/wCmh/xoWxh+1i72k3IXZ5xPz7fTd1x7VYAA6U5fyq0iGy9YqfKYFifm7nPb3q6OOwqrYcK+fWrmMKD611U9jmnuJu9zRS7T/s/lRWpmJp5H9lWhP/PCP/0EVFqepW2lafLeXcgjhjGT6sewA7k07TS39lWYHH7iPp/uisTxXpEmp2oYDzY445EaAjruH319SPT0/IxXnKNNuKu0XSipSSZ4r4w8R33iW+Z5X/dJxFEpO1R6D1PqetW/CPgi61395GnkwE/PO6/L/wABH8R/Ie9b1voGmS63ZPcW8f2XzFEyr908YGfYnFewIgRQihVROFXGAK8/Cr26cmdde9L3ShpOk2uh6VFY2oCwwjJZsZY92Puepr5k1K583xNdzs+5nlbJxgtk56dPwHtX1VIuUZQSpKnG3qOOor5R1APDqs6nIO88N1PJGDW2JSUkl2MqN9Wz3H4VNv0G7kbbk3WAfoig8/lXfrtbnjpXGfDS2aHwbasWQ+a7SHAx35H6V2SZXqRgAdK6aKSgjGesmQXtpa39nNbXMSSwSrsdG4DCvn7xl4am8IayqI3mWEqloGIB453Lz3Gce4Ar6HKtg4wfxrz74mQSX9va2otTNFD+/lK4yAzbOO4Ax/48PSsMZyqHMaYe/Nymx4D1Qat4YtZGk3XEH7mQgfMcfdP5YrJufBM8l1JIiW6lzlNspWONi7Hp1YAbR0HOOOKg+Hlqunardw2rPJY3MO+EkH5drYKn0I4/OvRgpYdec5x3FZxjDE005FycqM2kV7GA21jDFK6u0UYVn24BPrXnHxJhXUdbs7ZiSiIq7d3RmJJ/QCvTHIiRpHYpGo3M390DJJ9q8q1xL281eDU44lK7/MKtwAOQBn1C7frisMyqqFOMLl4SDlNsueENPiuPEYJXMVjGHB24+ckqufwDGvR2UbPm59TXlWmaxc6Bq0l2sXnW86hZo+mQOQQfUZNelabqllqtoJraYHJwY3O1lPuKWX1qXsuVPUeKpyU720OA+KOlxtfaZqKALKUaGQ4GTggj/wBCpuhxKdV0pflC5PBGRwjdq2fiJbGTT7P5CXV5SuOoOBWNBI1sdNvbUCQxbZlVf4wRgj8ia4sVKMcUm3omdFG7oaeZ6flMYwMf0pw247c1nWGo2moKGs542J6xk4dfYjrVwBs8dM889K96M4yV4s8yStuV76+tbFVafkyEiONBln45x7dOTge/Nee6t5uua5P57qkVvGC6BgAiEnaoPfuSfX8K7PW9HnvmintXVbmDIVZSQkinGQfQ5HB+v1HIyxkapLDfWghvQoOXAy6+qnvXj5jKrzWfwnoYWNO1/tGv4P0SC2txqbIFlnBEH+xHnt6FsZPtiupUJt4YE9OKy9AfOiwRLjfbr5Dj028fqMH8fatUhuSQOe/pXqUFGNNKOxx1G3N3HZUAtxxXF/EuJZPDNvjAK3iHHB/hbP06V2O1upAP/wCquQ+ISs2kW8K4LL5kxHYhAB/7NWWMlaizTDq9VI57w1D5/iLT0wCocyt+CEj9QK9UAIQYIP0FeZ6Ru06+sdQjUTAIreWOrIVwefUf5616LaX9rfw+ZbShwByP4l+o6j8a48tnBQ5ep0Y1Scr9CVlUDOP/ANVLkFQecEcY61XN1biQo88SOezOFP61YKlkGFJB4BHft2r1OZd9Tis+x5f4uh3+KLsheWkRB7ny1/rXQ+AII4tKvZABue9bP4IoH9axPEkdzdXz3lrAZ/KvHbYnVgGA/kDT/DviaDR7+6s76GaK3uJvOWUqcxsRggj0OB0zXi4apGOJcpPe56NSEpUEkj0UgYHGB9a8++JVkEfS9SjXBVmhduTx94f+zfnXbxajZTusUd1CXYgqm8Bj+BwfwrA8d2bXegRKBkrcbsD/AHH/AKgV6GLcZUW4s5KF41EYvhGQLrtoGYDdHIg6c8A/0r0fAI5Az0ryfTFljsrDULY7p1wy7m43L1B/ka9JsL+31S2E1u2W6tEThk9QR/n9a5suqLkcG9UbYuDvzdDSOMY7e9Nx6AZ/rTMFm5AxmqOqW9zc6VdQ2uPPdMKCcZyRkZ7ZGR+NelOXLG5xxV2ch4suG1K9tre3YeUW2QsT8uT95/xwcey571LovhtZ45phKUUygDAOSRyWHIG45ABOcdqraxFKI1a/0u7iWNF/eCMlU2nPJXI9e9aekaxBBH5qPvtWP73Zz5Z/vfTjBHt7V4dCvy4hyqXVz06lNexShqaMd1fWEixXcLXMbNtBXlw2CdoP8eFGScY6/NWhG9nqlo4VlmiYAsuSCuDweOQQRkEenBp6yWl5E0cc0Mu5WRhHIDgEYI4ORVG+0jfM91bOyXDZKup2kHCqoHooAJwOte4pRkrpnnddTn/HlvdHRraOZfPiiugwuMgNgqQQ44+bJHI4PtVfw7bKvia0UDAXfIN3H8B/xqx4um1C40d7KSJXKNJKJwNhdUPl8r7lsjGPpTbK8WbVLbUbEGWNEy4xgkFcFf6/UV42K5Y4qMr9j0MO5OhKKO+CjP3eKRhzjbg461Wt7yG7+VH/AHneNxhvfjv+FTqu4c9MYPtXsxkpK6Z5ri09TB1nWGEN1BaA7YcpLIPXHKr/AFP4e9cJp2kjUpba3MciS3ExV2YY2IATke5UHH1Fd7qPhxbqeS4tLhrW5kO5+N0bt/eI6g/jj2rl7Ga503XP7O1GNLe9jfzIX6Ryg9Sp9D0rxMTTqe3Up6q56NCUFTajud5bWsNraR21vGI4IlCoi9h/n86nIA7c9OlVIr61eMbp0jkxyrMBg9/rVsKWJ2jg56GvbhKMvhZ58k09Snqc62mk3lxjmKB3HPfacfrXk2n2fnJaWqllFzMsYI7BmAJ/mfwr0jxWQdINspA847m/3F5P6la5HS4iV0e6iQyG0ZDKnIIKnkD1PX/GvHx0lLEKL2VjvwiapykelQxRooSNQI1ACgeg4qXCY4qG1kilUtE4Ze/PTjv6VJtIOBgjPNe1HVKxwSTvqKAB1ApQQD296aIzxgDOPWobmJ5reeNZDEzRuBIOqZUjP4Hmqbsrk2uxmp3dvpenz6hcq/kQqGfYOeoA6kDv61hW/jTRrhA3+nKOoJtGf/0HNc9p8ltriXkL6gkUjKyw3MtxKd3UbxllwQRnB5qnZ+E76OMq+rw6vLgqAbeWZRnvvZtv58CsJVXunoaxprrubHifxHBLd6JBaxSs32xLktLA6HCnGAG27jyOM96u2niS20y1g07YJLuNUigQfISm0FTJ12sAPmAz0964S7+Gl1bXcL2SSxS3MckObm5QrvIBXBRRt6Zx1PGK2rDR7bxBfC8uQkurJAiXAhuxCfOjG13HykP25BwccjFYucuVqO7LUYX12LCYa5vfLthgsUV1wFLZO4kdsnoPQCtnw5e2Gkm7sry4ijujMsmASSwKDHA9OevrWTFYXdpeyR3carcnazFGBWRem8Y9wf19qreINMvftDajpkFzLeSRpH5dsWyNvU4B5+UAfdPTr0rzcI3Tq80lrsehXtOnaOx6TBNFPCksJDJIoZWHGQe/NThgOM8Vh+HnvJ9IhF1ZSWhjHlokuVYqOhIJJHpz1xnvWxsIyQF59+tfQxd4o8V6OxJuxnJC1BcnMTkKMFTk/hTthB6dyeDiobhTsHHOCOnU1MloOL1MK3QBFwO1WDkLx1qG3zsGe/OKscbe1ciWp0t6DhyeacoyRSfjx71IuM44q1Ylsu2R+9mrgAx0z7VVserg+3arvC8ZxXRDY55PUZzRTiRnqKK0IILFXGl2iqRu8hOo4+6KgmGpgkwmzYjp5iuMflV2wUf2fa5/54p/6CKmKA54/GiUFJDi7I89utA14Su5s4ZUkXB+zTA7PmYjaH25GDjBrfsL7W0EcV1pTzjgNJGwRvqQxwT64NdE0fyng08RZHTtXPDCKm24OxvLEOatJGJd6tc20Dsuj6i74O0pEr5bt0Yn9K8lPgxbphPPbakJnHzp9kfhief4eRXuwhHHPHoaURH+8amthHVavKwU66p9DyPSrbVtAVIrO5vY4ic+W8Thc9yQyEevTrXVaTrWv3Nwkc+mCRBjfMY3iAHqc8fgB1/Ouy8o8/MefemtEO+Tz1POKmlg3Td1NjqYhTXwoz2nvlBaO0gYehuMf+y1zniODxDqsMcMOnqkGT5sYu0IlHYHIB9ePeuyAUjGexFJsGMnpW9XDqpFwk9GYwqcr5kjhPDWg6xpd1C80HlRI5Yh5kfblcNgjJOTg+2O9dg8CTFdwOOmQxBP5VaCIScAHBpyqoGeKmnh4048sSqlaU3dmHe+H4r2F4ftuowBxtJium6H2ORisuPwe6hUOszmPp8kKq+Prkj9K7Dy1zk4yaPKUYxgc0p4SlP4ojjXqR2Zxl14DtblCRql+JOzSFJAMeo2g9vWqDeCdUt8LDf2Fwq/c8+3ZSOexycV35ABOf8A9dN8sZzk9fyrJ4Gg38JaxVVLc88utM16E20cumy3EMStl4ZxKCW29FwGUALwMHvUMem3MKDZot9CCd2Y7c4BJ5OBXpO1GI4BPFG1CMgdaynl1OTvcuOLmlY85+x3Urh20u9aROQRbSLn1wcZB/z71oQS+I4gFSG7ZSOEnhLkc4++SO2D1rtvl7Ebj+FJtU5IA70QwKh8MmKWIct0jDhs76e0Rri7uLO5Od6xuGUc8cNntjvWXrXhbV9SSLZ4hUmJxJE09modT3w6EYz34rsWCknOPwpvykZ4OPeup0YtcslcyVSSd0cla6Nr8RDNcWCyLgF4ZJELj1PyYraig1VYgDdWzSd90OR9MgjP1wK1F28Afzo4HJwDng1MMPCHwjlVlL4jGkbXI/8AV2umzj0854/5giuZ1Kz16/1WSW90OTyDCIUFvcJKF5ye4PU55Fd98vT9KTaOxUf1qa2GVWPK2xwquD5keYWXh/VtJkVYtOvRbE+iSFfphzx7VprbXiSLNHYXwlGAJBA0ZGTg8gZ4xXen7ygHv2pcDp175zXI8tp7pu50fXZvdHM2cur3UkcN9psRgI+driIZx3HXBOfbvVmTw/ZnLWzXVi5/is5mTn6cr+lbYRRnAB7ZzS7R/dJ9hzmu2FGMVZ6nPKo277HHL4Ouov3ceskxbusltmTk+oYD9PwqOb4e2dy2ZNV1NpACNzGM/psrtdqj15NHl8nk5+tQsJQX2SniKvc4yPwne2sQWPU3vIlH+ruMRnHpkA/yqXVZNVZLSFtBmaGJwzPBOsyldjKBjhu/pXW7FC9M54zS7B1I/Ek0nhoKLjHqP287pvoecWmiTWzs1rpeoFJCTiTaAPXALDFaCC5jZN+k3yvjgrbElce4/oa7MxgOMAc9QD7U8IBzj61zrARi7pmrxcnpY5eO81oOqLZyODjiSEqF9cuxFa8un20hbdEW6dGIx+taRTIBHPHGelHlgZJ6njPWuqFLlVm7mEqjlqtDGk0GylUqUuVVhg7LqVcjuPvVjR/D7SLRy9jPqNmG6hLgMpH/AAIGuy8tCwGTmkKL1xwKcqUJKzQKpOOzObt/C1taSCaG5uxKuCGZlPPr90VcksNSY/udYKkHA8y2R/8ACthkU59/5UmwZ79evNQsPTXwoHVnLc5HUNG8Rz3JeSfT7qFovKKfND8uSTkYPPuPQUy20DWIQGjh09WJySLqQn/0DFdidowC3XsKcq4BwCMdKzngaU5cz3NI4mcVZHKyabrExx9mhQDneJ1JB7Y+X1+lXrCw1GOVHu7vfGVJeLzWkBJ7cgDGcVvBF70hjz8x64xWkMJCD5kRKvKSsyi+nWRyZLOA5HOUFUrnwtol0Q0ukWzlfu4UjH0wRitooCScnJB70eWDycnsBmt+SPYy5n3MdNAsbdEFvE0ZVhwZXYfiC3NPktNUY5i1ONOgw1oG/rWsFXOAvTnrSgDpgjNL2MCvaPqcjc6R4iuL4TyX2n3EaoY9hiaLIJ5PcelV10HVoJPNggtIyeWUXRx+q12+0YpuxVz0/OsJ4GjOXMzWOJnFWRyn2HWlZTHbQowPLpMrce2dpq/ZQa2sqG6uI/KB+5w5x6bgBjt3Nb2wKD6UhCkjrmtaeFhB3Tf3kyruW5XUMcYH4E1FcWdtdLi5tkl4/iAPX3q7sweeo6Emm4HTB/Ot7J7mNzEtPCuhWE32i20mCOXkAnLBSeuAxIH4VrBcr1+nXipdq5yeef1pdoAHX2FLlS2HzPqZd/pdtqcHk3PnbGGT5cpTv7d+a57Tfh9p+j3q3VhqWpxMjNIitIjKrMNpONvPHrXZbU/AelG1Rzjmh0ovWwKclocvqHhrUr4xSLr7Bow23zbNCBkcjKlT6H8KVfD2oFlD6lt2gHKEg59fu+vvXUKqkcenFKEUe1YywlKTvY0jiKiXLcoWkE1rEFnuXuGOPmarRJOQR36VIVUkd80m0dcHB5FdEYpKyMZNt3ICmc5Zxzg4cikaMkkiacYzyrA/zBqdkUAnnjmk2rnJ4PvQ4xC7Mn+woi7ML7UUB/hWcBR9Bt4oOgoFx/aeq/8AgUP/AImtdQA3GfzoJ4J5rP2cexXPLuZQ0CHknUNWY/8AX6w/lilPh+3YD/TtWH/b/J/jWp15wfpRkY5HX9Kapx7C55dyG0sorOHy43mcf35pWkYn3LcnrVo9MZ/Wo8gdvxo3c4/rVpJaIlu4p3Z6CikyDz/SiqsIfp//ACDbXv8AuYx/46Ks7uM9Pwqpp/8AyDLb/rhH/wCgirOOaoS2HMflpd3WmMBzx2oXkGmBLvx2pQwqLA5+lKBwfwpASZBpsnzLgDvTB940q9aAGFOTwPqaTaR2P51Ie1Jk4o6hYRQQDSBT6Yx707PzChj/ADouAbc9R/8AWpWGT04/lQejGkJPP4UXARkJ5980xl+Ydh705SSTk08AbAcd6i4yFQR/s5AzTSvbGcD1qRep+tHZvx/maVwI9p54GeeaMEsOME9fpQSfKU5Oc9aTJ3tz6UXGG07SCOopj854yP5U9icnnvSOeD/vUxCbcj7oOOnNDjJGBwe4FSEDd071G3CsfTpUjQMp3dMD0pyrtPI+lNU5f8akXv8AX+go6DEYDI+X8h14ozhfSmn7y/Wn/wDLP86VhiZ+bH6Z6Ubj2P1z/jUOSU5J70pHA/3v8aVguS7sr7/WjkMO1Q55b/Pekk4AxxnP8qB3JScDAwcGnbvxwarn78f0qXH71frTELuz9KcSQR3GelNH3sex/pTSOFpDuS4O0A8GnZ461D/CR7UHqPpSYXHnGD/+qg8jPHsab/H+dSN1NSFyIxncRyc980LG3bsemalPQ00fdP1piGhcMCVpwUkDA5ApE7VIpOKpMQKpXoevQUhQk4xx6Zp/dvwphJx1qriEKn5e2Byc0gU9unbFOboKY3U/jSuMQpnAIyOeG5pdp445ApMnB+tPBPmPz2FNAOGSuCTnGKbhiCDknoM0wE4bk9TUqcov4/yp3GDAlSME8dKaDhskdsdaPT8ac33h+NFwQ1g5JGTmmbSDk+p5p38f+fal/wCWb/7v9aAE2nP90UmDu9uKEJJbmnD7q00DImTrhePrQepO3gj9al70n8YHsaYiLB+X2FKFYnBHcfjUh6UyTgnHpQFxACSCVHJ4yaQDAORjINSqBgcfw/40ndvrTER7eCAo9O1JtODgHjHAIqRx1po6L+FJgIuRkdBnNK5G05PbpTW4BI65pMkls+hqQHnk/hTS2ByRQ33TSEnnnvVJCFySetHllyBgihPvD6U5SfMUZNNIVxRDwOR+YoqkZH3H526+tFVYVz//2Q==
\define thisMakeTags() [[$(currentTiddler)$]] <$button>Make New Tiddler <$action-setfield $tiddler='My New Tiddler' tags=<<thisMakeTags>>/> <$action-sendmessage $message='tm-edit-tiddler' $param='New Tiddler Bob'/> </$button>
Il serait peut être intéressant de placer le bouton dans un template qui le positionnerait en bas de page, séparé du texte par un trait par exemple. ---- <div align="right">{{||$:/AddNewNotes}}</div>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam nibh. Nunc varius facilisis eros. Sed erat. In in velit quis arcu ornare laoreet. Curabitur adipiscing luctus massa. Integer ut purus ac augue commodo commodo. Nunc nec mi eu justo tempor consectetuer. Etiam vitae nisl. In dignissim lacus ut ante. Cras elit lectus, bibendum a, adipiscing vitae, commodo et, dui. Ut tincidunt tortor. {{||$:/AddNewNotes}}
<div id="tbl1"> |{{FormulaResult Button}}| A | B | C | D |h | 1 |<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a1"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b1"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="c1"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="d1"/>| | 2 |<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a2"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b2"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="c2"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="d2"/>| | 3 |<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a3"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b3"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="c3"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="d3"/>| | 4 |<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a4"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b4"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="c4"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="d4"/>| | 5 |<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a5"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b5"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="c5"/>|<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="d5"/>| |calc|<<ColCalc tbl1 count>>|<<ColCalc tbl1 avg>>|<<ColCalc tbl1 sum>> || </div>
Pour exclure la date de création ou de modification d'un tiddler ainsi que laliste des tags attachés à ce tiddler lors de son impression papier ou PDF, il faut le spécifier dans une feuille de style Par exemple $:/cssUnprint {{$:/cssUnprint||code}} Ce code s'applique et fonctionne sur une version standard de TiddlyWiki. Sur ce wiki, les choses sont différentes, notamment dues aux modifications apportées au template d'en-tête des tiddlers (voir [[$:/core/ui/ViewTemplate/title modifié]]).
!!Exécuter un programme Comment ces collections de déclarations que composent nos programmes indiquent-elles à l'ordinateur quoi faire? Le programme doit être exécuté, c'est à dire lancé (running) Des déclarations comme `a = b * 2` sont utiles pour les développeurs lors de la lecture et l'écriture du code, mais ne sont pas présentées sous une forme que l'ordinateur peut directement comprendre. Aussi, un utilitaire spécial sur l'ordinateur (soit un interpréteur ou un compilateur) est utilisé et qui traduit le code que vous écrivez en commandes qu'un ordinateur peut comprendre. Pour certains langages informatiques, cette traduction de commandes est généralement faite de haut en bas, ligne par ligne, chaque fois que le programme est exécuté, ce qui est généralement appelé interpréter le code. Pour les autres langues, la traduction se fait à l'avance. On dit que le code est compilé. Lorsque le programme s'exécute ultérieurement, ce sont en fait les instructions d'ordinateur déjà compilées qui sont exécutées. Il est généralement admis que JavaScript est un langage interprété, parce que le code source du script est traité chaque fois qu'il est exécuté, ce qui n'est pas Tout à fait exact: le moteur JavaScript compile en fait le programme à la volée, puis exécute immédiatement le code compilé. !!Tester le code sur la console du navigateur Pour saisir plusieurs lignes à la fois dans la console, Utilisez `<shift>` + `<enter>` pour passer à la nouvelle ligne suivante. Une fois vos lignes de code saisies, tapez `<enter>`. La console exécutera tout ce que vous venez de saisir. Familiarisez-vous avec le processus d'exécution du code dans la console. Tout d'abord, je vous suggère d'ouvrir un onglet vide dans votre navigateur, puis saisir `about: Blank` dans la barre d'adresse. Ensuite, assurez-vous que votre console de développeur est ouverte, comme nous venons de le mentionner. Saisissez ce code dans la console et voyez comment il s'exécute: ``` a = 21; b = a * 2; console.log( b ); ``` Dans la console de FireFox, le rendu ressemble à ceci: [img[js-code-001]] !!!Sortie (Output) Dans ce que nous venons de saisir, nous avons utilisé `console.log(..)`. Décrivons brièvement ce que cette ligne de code indique. C'est la manière d'imprimer un texte (Output coté utilisateur) dans la console développeur. Cette déclaration possède deux caractéristiques: #La partie `log( b )` se réfère à une fonction d'appel. Nous remettons la variable b à cette fonction qui demande de prendre la valeur de b et de l'imprimer sur la console. #La partie console est une ''référence objet'' ou la fonction `log(..)` est située Une autre manière de créer une sortie (output) visualisable consiste à exécuter une déclaration `alert(..)`. Par exemple : ``` alert( b ); ``` Si vous exécutez ceci vous remarquerez qu'au lieu d'imprimer la sortie dans la console, il apparaît une boite popup “OK” avec le contenu de la variable b. Cependant, c'est généralement l'emploi de `console.log(..)` qui est utilisé dans l'apprentissage du codage et de l'exécution de vos programmes, imprimer dans la console étant plus aisé que d'utiliser `alert(..)` parce que vous pouvez ainsi éditer plusieurs valeurs en une seule fois sans interrompre l'interface du navigateur. Dans ce cour nous utiliserons `console.log(..)`pour la sortie. !!!Entrée (Input) Et pendant que nous parlons des entrées, vous aimeriez également en savoir plus sur les entrées (input), c'est à dire de la manière d'entrer une information saisie par l'utilisateur.. La manière la plus commune pour ce faire est de créer une forme HTML comme par exemple une boite de dialogue dans la quelle l'utilisateur effectuera sa saisie puis ensuite d'utiliser JavScript pour y lire les valeurs dans les variables du programme. Mais il y a un moyen encore plus simple d'apprendre à coder et de restituer le résultat de ces codes, moyen que vous utiliserez tout au long de cet ouvrage : Utiliser la fonction `prompt(..)` ``` age = prompt( "Indiquez votre âge s'il vous plaît:" ); console.log( age ); ``` Comme vous l'avez sans doute deviné, le message que vous passez à l'invite dans cet exemple "Indiquez votre âge s'il vous plaît:" est imprimé dans la fenêtre surgissante. Ceci devrait ressembler à cela: [img[js-code-002a]] [img[js-code-002b]] Une fois le texte envoyé par appui du bouton "OK" vous remarquerez que la cette valeur est stockée dans la variable "age" que nous restituons en sortie avec `console.log(..)`: [img[js-code-003]] Pour faire les choses simplement durant l'apprentissage des concepts de base de la programmation, les exemples de ce livre ne requièrent pas d'entrées. Cependant, maintenant que vous avez vu comment utiliser l'invite `prompt(..)`, rien ne vous empêche, à titre personnel d'utiliser la méthode d'entrée des données dans la suite des exemples.
Un lien vers le tiddler [[Créer un Tiddler Footer]] pour illustrer. <$details summary="Références"> HowTo </$details>
\define toc-action() <$action-setfield $tiddler="$:/state/toc-selective-expandable" text=<<currentTiddler>>/> <$action-setfield $tiddler="$:/state/sidebar" text="no"/> \end Cet exemple liste les tiddlers de la Table des Matières, et y ajoute deux actions: *Stocke le nom du lien cliqué dans le state tiddler $:/state/toc-selective-expandable *Ferme la SideBar ``` \define toc-action() <$action-setfield $tiddler="$:/state/toc-selective-expandable" text=<<currentTiddler>>/> <$action-setfield $tiddler="$:/state/sidebar" text="no"/> \end <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` ;Soit: <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div>
\define toc-action() <$action-setfield $tiddler="$:/SiteTitle" text=<<currentTiddler>>/> \end Le Titre du wiki est remplacé par le titre du tiddler cliqué. ``` \define toc-action() <$action-setfield $tiddler="$:/SiteTitle" text=<<currentTiddler>>/> \end <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` ;Soit: <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div>
\define toc-action() <$action-listops $tiddler="$:/StoryList" $filter="[<currentTiddler>]"/> \end Le lien cliqué reste seul dans la ~StoryRiver. Tous les tiddlers précédemment ouverts sont refermés. cet exemple est intéressant puisqu'il équivaut à la vue en déroulé en mode zoomIn. ``` \define toc-action() <$action-listops $tiddler="$:/StoryList" $filter="[<currentTiddler>]"/> \end <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` ;Soit: <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div>
\define toc-action() {{!!myfield}} \end Allons un peu plus loin. Que faire si nous voulons que chaque lien effectue une action différente. *<i class="fa fa-arrow-right"></i> Que le lien [[Tutoriel]] remplace le titre du wiki par le titre de ce lien *<i class="fa fa-arrow-right"></i> Que le lien Applications ferme la SideBar *<i class="fa fa-arrow-right"></i> Que le lien [[ Calendriers|Calendars]] change la palette de couleurs. La méthode consiste à intégrer des commandes individuelles dans un champ créé dans les tiddlers eux-même. Soit, par exemple à créer le champ "myfield" dans chacun des trois tiddlers cités plus haut et par lesquels nous souhaitons que les actions soient réalisées: <mark class="roundedmark">Note: //Ces champs ont déjà été ajoutés; vous n'avez plus qu'à les tester.//</mark> Le champ "myfield" du tiddler [[Tutoriel]] contiendra le code suivant: ``` <$action-setfield $tiddler="$:/SiteTitle" text={{!!title}}/> ``` Le champ "myfield" du tiddler [[Applications]] contiendra le code suivant: ``` <$action-setfield $tiddler="$:/state/sidebar" text="no"/> ``` Et le champ "myfield du tiddler [[Calendriers|Calendars]] contiendra le code suivant: ``` <$action-setfield $tiddler="$:/palette" text="$:/palettes/SolarFlare"/> ``` La variable myfield est définie dans le présent tiddler: ``` \define toc-action() {{!!myfield}} \end <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` ;Soit: <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div>
Voyez ce que cela donne si vous procédez à la transclusion d'un Tiddler en utilisant le modèle `full`.
[img[$:/core/images/icons8-output-48]] <div class="tc-tabbed-table-of-contents-content"> <<toc-selective-expandable 'TableOfContents' "sort[sub.num]">> </div> [img[$:/core/images/icons8-spring-logo-48]]
!!{{!!caption}} @Jed Carty Rien ne sera affiché tant que ce tiddler ne contient pas un champ `bob` dont le contenu est `eddie` ``` <$reveal type='match' state='!!bob' text='eddie'> Hi! </$reveal> ``` ;Soit : <$reveal type='match' state='!!bob' text='eddie'> Hi! </$reveal>
Appels de la Macro Eval : ``` <<eval "2+2">> ``` <<< <<eval "2+2">> <<< ``` <<eval "new Date()">> ``` <<< <<eval "new Date()">> <<< ``` <<eval "alert('ok');">> ``` <<< Ouvre une fenêtre en popup <<< ``` <<eval "var sum = new Function('a', 'b', 'return a + b');sum(10, 32)">> ``` <<< <<eval "var sum = new Function('a', 'b', 'return a + b');sum(10, 32)">> <<< ``` <<eval "Math.E">> ``` <<< <<eval "Math.E">> <<< ``` <<eval "Math.pow(2,3)">> ``` <<< <<eval "Math.pow(2,3)">> <<< // Jeter un dé :// ``` <<eval "Math.floor(Math.random() * 7);">> ``` <<< <<eval "Math.floor(Math.random() * 7);">> <<< ``` <<eval " const n = 6710859; function isPrime(n) { return !(Array(n+1).join(1).match(/^1?$|^(11+?)\1+$/)); } isPrime(13); ">> ``` <<eval " const n = 6710859; function isPrime(n) { return !(Array(n+1).join(1).match(/^1?$|^(11+?)\1+$/)); } isPrime(13); ">> ``` <<eval " const reject = (pred, array) => array.filter((...args) => !pred(...args)); reject(word => word.length > 4, ['Mandarine', 'Pomme', 'Cerise', 'Poire', 'Kiwi', 'Banane']); // Kiwi ">> ``` <<< <<eval " const reject = (pred, array) => array.filter((...args) => !pred(...args)); reject(word => word.length > 4, ['Mandarine', 'Pomme', 'Cerise', 'Poire', 'Kiwi', 'Banane']); // Kiwi ">> <<< ``` <<eval " const sample = arr => arr[Math.floor(Math.random() * arr.length)]; sample([1,2,3,4,5,6,7,8,9,10]); ">> ``` <<< <<eval " const sample = arr => arr[Math.floor(Math.random() * arr.length)]; sample([1,2,3,4,5,6,7,8,9,10]); ">> <<< ``` <<eval " const similarity = (arr, values) => arr.filter(v => values.includes(v)); similarity(['pierre','feuille', 'ciseau'], ['feuille','chifoumi', 'pierre']); ">> ``` <<< <<eval " const similarity = (arr, values) => arr.filter(v => values.includes(v)); similarity(['pierre','feuille', 'ciseau'], ['feuille','chifoumi', 'pierre']); ">> <<< ``` <<eval " const take = (arr, m=1, n=m+1) => arr.slice(m-1, n); take(['A', 'B', 'C', 'D', 'E', 'F', 'G'], 3, 6); //CDEF ">> ``` <<< <<eval " const take = (arr, m=1, n=m+1) => arr.slice(m-1, n); take(['A', 'B', 'C', 'D', 'E', 'F', 'G'], 3, 6); //CDEF ">> <<< !!Pour créer automatiquement 1 nouveau tiddly toutes les minutes : ``` <<eval " var x = setInterval(function() {$tw.wiki.addTiddler(new $tw.Tiddler({ title: 'Tiddly'+Math.floor(Math.random() * 70000), gen: 'demo' }));}, 600000); ">> ```
Auteur: ~TonGerner
!Overview I keep notes on various things in Tiddlywiki and it is very useful to be able to export my blog from the same resource. Currently TiddlyWiki has a good but bare bones static export mechanism, I have made some small changes to the core and a couple of plugins to enable something more along the lines of what I want in a static blog. Put simply, if I tag any tiddler within my tiddlywiki with <$list filter="[[blog]]"><$transclude tiddler="$:/core/ui/TagTemplate"/></$list> it will be included as part of my blog when I run the export batch file. !Plugins ;https://github.com/welford/phasersonkill-static/helper locally available here : [[$:/plugins/welford/twstaticblog/helper]] :Exists within your TW and lets you customise the blog's output without having to worry about the format of your own TW changing. By editing the tiddlers in this plugin you can change the name of the blog, which tags define your blog, how posts are linked to, and several other things. ;https://github.com/welford/phasersonkill-static/export :Invoked when exporting the blog, this plugin swaps out some of the core view template tiddlers for those in the helper and as such should not be imported into your own TW. It also contains the templates used when constructing each type of page (The types, discussed below, are ''Blog Post'', ''Index'', ''Framework'', and ''Tag'') !Templates The tag names listed below are easily changed via the plugin. !!Blog Post Tag any article <$list filter="[[blog]]"><$transclude tiddler="$:/core/ui/TagTemplate"/></$list> and it will be exported as part of your blog. the output directory will be ``./YYYY/MM/DD/[tiddlername].html`` based on their creation date of the article. You can change the tags which define a blog post via ``$:/plugins/welford/twstaticblog/helper/blogentrytags`` e.g. [[This post you are reading|Creating A Static Webpage Using Tiddlywiki]] !!Index Any recently created article tagged with <$list filter="[[blog]]"><$transclude tiddler="$:/core/ui/TagTemplate"/></$list> will be included in ``index.html``. This can be prevented by also adding the tag <$list filter="[[unindex]]"><$transclude tiddler="$:/core/ui/TagTemplate"/></$list> e.g. [[phasersonkill.com|index]] !!Framework Tag any article <$list filter="[[blog-framework]]"><$transclude tiddler="$:/core/ui/TagTemplate"/></$list> and it will be exported as part of your blog as a "framework" post. The output location in the root directory. I define a framework article as being a post which helps you navigate the site or one that is accessabe everywhere. I have included a few example framework posts in the helper plugin. You can change the tags which define a framework post via ``$:/plugins/welford/twstaticblog/helper/blogframeworktags`` e.g. [[Tags]], [[About]] both linked to at the top of this page !!Tag As this is a static site generator there is no search functionaity. My plugin auto-generates tag posts based on any tag in Blog or Framework posts as a kind of simple site-map. You can exclude tags from being included in this by adding them to the tag list in ``$:/plugins/welford/twstaticblog/helper/hiddentags`` By default the following are excluded: <$list filter="[[$:/plugins/welford/twstaticblog/helper/hiddentags]tags[]]"><$transclude tiddler="$:/core/ui/TagTemplate"/></$list> e.g. <$list filter="[[tiddlywiki]][[personal]][[OpenGL]]"><$link to={{!!title}} taglink="true"><$transclude tiddler="$:/core/ui/TagTemplate"/></$link></$list> <- you can click on these and jump to specified tag page. !Default Tags All the tags listed above are fully customizable : | plugin tiddler | purpose |h | ``$:/plugins/welford/twstaticblog/helper/blogentrytags`` |Defines which tags constitutes a blog post| | ``$:/plugins/welford/twstaticblog/helper/blogframeworktags`` |Defines which tags constitutes a blog framework| | ``$:/plugins/welford/twstaticblog/helper/donotexport`` |Defines which tags should not be exported even if they are tagged as a blog posts or blog frameworks | | ``$:/plugins/welford/twstaticblog/helper/donotindex`` |Defines which tags will filtered from the index post | | ``$:/plugins/welford/twstaticblog/helper/hiddentags`` |Defines which tags will be excluded from tag posts and from the tag lists below the title of artiles. | !Static Bannner A banner can be added to the top of every page via ``$:/plugins/welford/twstaticblog/helper/staticbanner`` in my case I use it to link to some of the framework posts.
!!Expressions Les déclarations sont composées d'une ou de plusieurs expressions. Une expression se réfère à une variable ou une valeur ou un ensemble de variables et de valeurs combinées à des opérateurs. Dans notre exemple ci-dessus : ``` a = b * 2; ``` Cette déclaration contient 4 expressions: :<i class="fa fa-arrow-right"></i> 2 est une expression de valeur littérale. :<i class="fa fa-arrow-right"></i> b est une expression variable, sa valeur actuelle étant à récupérer. :<i class="fa fa-arrow-right"></i> b * 2 est une expression arithmétique effectuant une multiplication. :<i class="fa fa-arrow-right"></i> a = b * 2 est une expression déclarative attribuant le résultat de l'expression b * 2 expression à la variable "a". Une expression générale prise telle quelle isolément est également dénommée "Expression Déclarative", comme par exemple: ``` b * 2; ``` Cette forme d'expression déclarative n'est ni très commune ni même utile, car, généralement elle reste sans effet sur le fonctionnement du programme qui ne récupérerait que la valeur de b, la multiplierait par 2 mais n'en exploiterait pas le résultat. Une instruction d'expression déclarative plus courante est une instruction d'expression d'appel, car l'instruction entière est la fonction expression d'appel elle-même: ``` alert( a ); ```
Jed Carty
{{ExtextSupport||caption}}
{{Extract||caption}}
Source: https://tid.li/tw5/hacks.html#Extract%20Macro Sujet tagué "<<tag Extract>>" comprenant {{{[tag[Extract]count[]]}}} articles (tiddlers) La macro "Extract" doit me permettre de récupérer une partie de contenu choisi de n'importe quel Tiddler. Doit produire le même effet que de récupérer les informations contenues dans un champ de tiddler sauf que la les données sont contenues dans le texte même des Tiddlers. J'ai utilisé cette macro de manière intensive sur mon CV et cela fonctionne parfaitement. Voir le tiddler test SummaryTest et le tiddler résultat SummaryResults pour validation des exemples choisi. Voir aussi les tiddlers ExtractExampleTest et ExtractExampleResult. <header> La macro Extract extrait le contenu de tiddlers à l'aide de balises communes, de commentaires ou de vos propres balises. Les marqueurs de début et de fin peuvent être les mêmes, par exemple les styles wiki' `''` ou `//`'ou ils peuvent être différents comme `{{`et`}}`. Si l'extraction de données se trouve au début ou de la fin d'un tiddler, un seul marqueur est nécessaire, donc `~~~~` est suffisant. La macro peut être paramétrée pour collecter //un// ou //tous// les extraits correspondants d'un même tiddler. </header> --- {{!!internalsummary}}
On peut se servir de la macro Extract dans le contexte suivant: Ce tiddler contient le champ `{{!!extraction}}` qui récupère le contenu des lignes commentées du tiddler ExtractExampleTest <<< {{!!extraction}} <<< Et ce champ contient ceci : `<<extract tiddler:"ExtractExampleTest" start:"<!--" end:"-->" limit:"no">>`
<!-- Ici je suis en mode commentaires, c'est à dire que ce texte n'est pas visible en mode lecture. Ce commentaire est cependant récupéré et affiché en clair sur le tiddler ExtractExampleResult -->
!Lien externe <div style="font-size:0.7em; text-align:left; margin-left:5em;"> <a href="https://prolegomenes.github.io/learn/Frame.html" class="tc-btn-big-green" style="text-decoration:none; background-color:#5A99D7;" target="_blank"> <i class="fa fa-github"></i> Dépôt ~GitHub</a> </div>
<$transclude tiddler="Liste de tags trié alphabétiquement"/>
Voici un nouveau mot-clé comprenant un ensemble de billets présentés sous la forme de questions/réponses. Son but est de répondre aux questions concernant certains paramètres, effets visuels, codages ''utilisés sur CE wiki''.
<$select tiddler='$:/generated-list-demo-state'> <$list filter="[[Select]][list[$:/StoryList]]-[[Fast view of tiddlers in the story]]"> <option><$view field='title'/></option> </$list> </$select> <$tiddler tiddler={{$:/generated-list-demo-state}}> <$transclude mode='block'/> </$tiddler>
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "2" "">> """ 5 - Chinese New Year ^^China^^ 5 - Constitution Day ^^Mexico^^ 5 - Vietnamese New Year ^^Vietnam^^ 6 - Tet holiday (first day) ^^Vietnam^^ 6 - Waitangi Day ^^New Zealand^^ 9 - Tet holiday (last day) ^^Vietnam^^ 11 - National Foundation Day ^^Japan^^ 14 - Valentine's Day 23 - Defender of the Fatherland Day ^^Russia^^ """ [img height="150" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "2" "">> """ 5 - Constitution Day ^^Mexico^^ 6 - Waitangi Day ^^New Zealand^^ 11 - National Foundation Day ^^Japan^^ 14 - Valentine's Day 23 - Defender of the Fatherland Day ^^Russia^^ 23 - Emperor's Birthday ^^Japan^^ """ [img height="220" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "2" "">> """ I must go down to the seas again, to the vagrant gypsy life, To the gull's way and the whale's way, where the wind's like a whetted knife; And all I ask is a merry yarn from a laughing fellow-rover, And quiet sleep and a sweet dream when the long trick's over. from //Sea Fever// by John Masefield """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "2" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "2" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "2" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#feb25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "2" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#February">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "2" "">> """ 5 - Constitution Day ^^Mexico^^ 6 - Waitangi Day ^^New Zealand^^ 11 - National Foundation Day ^^Japan^^ 14 - Valentine's Day 16 - Chinese New Year 23 - Defender of the Fatherland Day ^^Russia^^ """ [img height="210" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
Modales (ou "wizards") sont des tiddlers venant s'afficher en popup dans une fenêtre additionnelle et séparée et qui doivent être refermés sur action de l'utilisateur. Les modales sont affichées avec le [[WidgetMessage: tm-modal]]. Par exemple: ``` <$button message="tm-modal" param="SampleWizard">Ouvrir Démo Modale</$button> ``` ; Soit: <$button message="tm-modal" param="SampleWizard">Ouvrir Démo Modale</$button> Voir les tiddlers d'exemple SampleWizard et SampleWizard2 Voir aussi [[Bouton pour ouvrir une fenêtre PopUp|PopUpButton]] mais sans mécanisme de fermeture.
Tobias Beer. Custom ~StyleSheets. Stylesheet Macros
Bordures des tableaux (traits de séparation des lignes et des colonnes) Couleur -> Palette -> table-border (Bordure des tableaux) Couleur de fond des titres de colonnes -> `$:/cssTableaux` (`table th { background-color:`) Couleurs de fond alternées des lignes de tableaux `$:/cssTableaux` ``` tr:nth-child(even) td {background-color:#f6f6f6;padding: 8px 5px} tr:nth-child(odd) td {background-color:#e9e9e9;padding: 8px 5px} ```
Notes sur ce contact
nom: Einstein prenom:Albert
<$tiddler tiddler={{{ [is[current]removeprefix[FicheJoueur]addprefix[BD]] }}} > The player is named {{##NomJoueur}} and is at the level {{##Niveau}} </$tiddler>
{{FieldHide||caption}}
Titre original: How to hide a field in Edit template Supposons que vous ne vouliez pas montrer le champ ''"myfield"'' à un utilisateur. Voici les étapes àsuivre pour ce faire. * Créer un tiddler intitulé @@color:#DC6431;~$:/config/EditTemplateFields/Visibility/myfield@@ * Y entrer le texte "hide" Cette astuce fonctionne sans ajout d'aucun autre tiddler. Voir en exemple le tiddler [[myfield]] Les 3 Tiddlers composant cette démonstration: *[[Comment cacher un champ dans un template d'édition]] *[[myfield]] *$:/config/EditTemplateFields/Visibility/myfield
<$details summary="Contexte" open="yes"> @@padding:0 5px;border:1px solid crimson; *14 Juin 2018: Article ré-écrit et développé *22 Septembre 2018: Bloc Contexte modifié @@ """ ''Voir aussi:'' 👉 [[Attribuer ou supprimer le tag d'un Tiddler]] 👉 [[tm-add-tag]] 👉 [[tm-remove-tag]] 👉 Pour un exemple: [[FieldManglerWidget]] 👉 [ext[Permaview|https://tiddlywiki.com/#WidgetMessage%3A%20tm-add-tag:%5B%5BWidgetMessage%3A%20tm-add-tag%5D%5D%20%5B%5BWidgetMessage%3A%20tm-remove-tag%5D%5D%20FieldManglerWidget%20%5B%5BFieldMangler%20Widget%20(Examples)%5D%5D]] sur le site ~https://tiddlywiki.com: """ </$details> <br/> Le widget `field mangler` que l'on peut traduire par `champ manquant` manipule les ''champs'' et les ''tags'' d'un ''tiddler''. Il agit en réponse aux messages suivants: | !Message | !Description | |''tm-remove-field'' |Retire le champ spécifié dans `event.param` | |''tm-add-field'' |Ajoute le champ spécifié dans `event.param` | |''tm-remove-tag'' |Retire le tag spécifié dans `event.param` | |''tm-add-tag'' |Ajoute le tag spécifié dans `event.param` | Il permet par exemple d'ajouter ou de retirer un tag du tiddler courant ou d'ajouter ou retirer un onglet de contenu. (voir les exemples ci-dessous. !Contenu et attributs Le widget field mangler affiche toute information qu'il contient et répond aux messages qui lui sont transmis. |!Attribut | !Description | |tiddler |Titre du tiddler à manipuler (par défaut le [[tiddler courant|Current Tiddler]]) | !Exemples !!1er exemple: Avec déclencheur !!!Ajouter ou retirer un tag du tiddler courant ;Code: ``` <$fieldmangler> Ajouter le tag ''exemple'' à ce tiddler (courant)<$button message="tm-add-tag" param="exemple">{{$:/core/images/new-button}}</$button> <br> Retirer le tag ''exemple'' de ce tiddler (courant)<$button message="tm-remove-tag" param="exemple">{{$:/core/images/delete-button}}</$button> </$fieldmangler> ``` Soit : <$fieldmangler> Ajouter le tag ''exemple'' à ce tiddler (courant)<$button message="tm-add-tag" param="exemple">{{$:/core/images/new-button}}</$button> <br> Retirer le tag ''exemple'' de ce tiddler (courant)<$button message="tm-remove-tag" param="exemple">{{$:/core/images/delete-button}}</$button> </$fieldmangler> !!2ème exemple: Sans déclencheur (muet) !!!Ajouter ou retirer une table de la ~SideBar ;Code : ``` <!-- Retirer la table More (Plus) de la SideBar --> <$fieldmangler tiddler="$:/core/ui/SideBar/More"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/SideBar'/> </$fieldmangler> ``` Ici, la table "More" de la ~SideBar ne concerne pas le tiddler courant. On va donc d'abord indiquer sur quel tiddler fieldmangler doit agir: `<$fieldmangler tiddler="$:/core/ui/SideBar/More">`. Ensuite, demander à ce que le tag `$:/tags/SideBar` - sans lequel la table ne peut apparaitre dans la ~SideBar - soit retiré. Et pour ce faire on lui envoie un message: `$action-sendmessage` instruisant de retirer le tag `$:/tags/SideBar`, soit `$message='tm-remove-tag' $param='$:/tags/SideBar'/` Cet exemple ne produit rien en lui-même puisqu'il n'est pas accompagné d'un déclencheur d'action (par exemple un bouton, une case à cocher etc.). Son effet sera produit s'il est intégré à une action plus générale. Par exemple dans le déclencheur "[[Déconnexion Admin|$:/admin]]" Le déclencheur, c'est le bouton {{$:/core/images/right-arrow}} Cliquer sur ce bouton déclenche toute une série d'actions de ce qui doit se produire lorsque l'on passe du statut "Admin" à celui de simple visiteur. Et notamment les deux actions suivantes : ``` <!-- Cacher le menu haut Boutons --> <$fieldmangler tiddler="$:/plugins/tongerner/topmenu/topmenu"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> ``` et ``` <!-- Cacher le menu haut Icônes --> <$fieldmangler tiddler="$:/plugins/prolegomenes/topmenu/topmenu"> <$action-sendmessage $message='tm-remove-tag' $param='$:/tags/TopLeftBar'/> </$fieldmangler> ``` On pourrait y ajouter le code de notre exemple, si l'on souhaite également retirer l'onglet "More" de la SideBar lors de la deconnexion Admin. !Avec le widget checkbox Le [[Widget Checkbox|CheckboxWidget]] permet ce genre d'action liée à une case à cocher ``` |Afficher l'onglet "More"|<$checkbox tiddler='$:/core/ui/SideBar/More' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=none/> | ``` Soit: |Afficher l'onglet "More"|<$checkbox tiddler='$:/core/ui/SideBar/More' tag='$:/tags/SideBar' checked='$:/tags/SideBar' unchecked=none/> |
\define getFieldOptions(tagName) <$list filter='[all[tiddlers]tag[$tagName$]]'> <option value=<<currentTiddler>>><$view field='title'/></option> </$list> \end
{{FieldOptionsMacro||caption}}
Forme générale: ``` <<getFieldOptions Nom-du-Tag>> ``` Exemple : ``` <<getFieldOptions Tutoriel>> ``` ;Soit: <<getFieldOptions Tutoriel>>
Une vraie base de données!
{{FieldsTable||caption}}
''fields2table'' makes it easy to create a table, one tiddler per row, and to edit the content. *''Columns'' are defined in the current tiddlers `list` field. *''Rows'' show the column/field values from filtered tiddlers. !!Demo `<<fields2table "[tag[DemoFt]]">>` produces:<br><br> <<fields2table "[tag[DemoFt]]">> <br>Click {{$:/core/images/edit-button}} to edit. The column names are the `list` field in this current tiddler you're reading. Column names ''must'' obey field name format [[conventions|https://tiddlywiki.com/#TiddlerFields]] because they specify what fields to get data from in the row tiddlers. (The capital initial is just [[styling|$:/_TWaddle/fields2table/Stylesheet]].) @@color:gray; //Mat von TWaddle// <:-)@@
\define getFieldValue(tiddlerName, fieldName) <$view tiddler="$tiddlerName$" field="$fieldName$" /> \end
{{FieldValueMacro||caption}}
Forme générale: ``` <<getFieldValue Nom-du-Tiddler Nom-du-Champ>> ``` Exemple : ``` <<getFieldValue ValChamp2 list>> ``` ;Soit: <<getFieldValue ValChamp2 list>>
Breadcrumb en anglais. Aide à la navigation Tient en deux tiddlers : *[[Add tiddler breadcrumbs]] Non requis *[[$:/Tiddler Breadcrumbs Template]] et un tiddler de stockage: *`$:/state/Global/ShowBreadcrumbs` Le contrôle de paramétrage s’effectue dans dans la table Contrôles -> Contrôle Interface) Le chemin de cette application est structuré autour de la ''hiérarchie des tags''. Encore que ceci suppose une organisation raisonnée de cette hiérarchisation, comme par exemple celle mise en place sur ce wiki. Un fild'Ariane (Aka: "Breadcrumb" (litéralement Miettes de pain) ou encore "Vous êtes ici") est l'un des éléments [[Contextuel|Contexte]] important parmi les moyens mis en œuvre pour (re)trouver rapidement l'information cherchée, l'une des premières missions dévolues à TiddlyWiki. Voir aussi : https://developer.mozilla.org/fr/docs/Web/CSS/counter-increment pour la numérotation automatique des composants du fil d'ariane. Le source original de Jed est ici amélioré par @oxydum, [ext[Cratère|https://github.com/oxydum/cratere]]. Vous pouvez retrouver l'ensemble de ses travaux sur [ext[GitHub|https://github.com/oxydum]], et ses posts sur le [ext[Forum français de TiddlyWiki|https://forum.tiddlywiki.fr/]] ;Tiddlers étudiés: @@.list-tree *<i class="fa fa-arrow-right"></i> [[Tiddler cible oxydum|$:/Tiddler Breadcrumbs Template]] *<i class="fa fa-arrow-right"></i> [[Tiddler source Jed|$:/Tiddler Breadcrumbs Template Original-Jed]] *<i class="fa fa-arrow-right"></i> [[Fichier source CSS Arkev|CSS3 Breadcrumb Navigation]] *[[$:/Tiddler Breadcrumbs Flat]] CSS additionnel (oxudum) @@ Vous pouvez télécharger [ext[ce fichier Excel|https://prolegomenes.github.io/learn/BreadCrumbs.xlsx]] dans lequel figurent les trois codes ci-dessus présentés côte à côte avec codes couleurs montrant la réalisation de ce script. Trois présentations différentes sont possibles en fonction du contenu du tiddler [[$:/Tiddler Breadcrumbs Template]] utilisé (Choisir une des 3 présentations et en copier le contenu dans [[$:/Tiddler Breadcrumbs Template]]) : *[[$:/Tiddler Breadcrumbs Template (Oxydum)]] *[[$:/Tiddler Breadcrumbs Template (Jed)]] *[[$:/Tiddler Breadcrumbs Template (actuel)]] *[[$:/Tiddler Breadcrumbs Template]] Le template choisi doit être tagué `$:/tags/ViewTemplate`, les deux autres ne devant pas l'être. Vous pouvez tester ces différentes solutions.
{{FilterBDExo1||title}}
{{FilterBDExo2||title}}
{{FilterExo||caption}}
{{FilterExo1||caption}}
{{FilterExo2||caption}}
{{Filtering||caption}}
@@color:#f44800;Exemple à contextualiser. Pas le temps actuellement...@@ a filter based on the value of a field without using tags I have 50 tiddlers all with a field called subsection, the value of the field can either be, technology, conduct, or services. I would like to create a list that would separate all of the tiddlers using each of the values. example - all of the tiddlers with the subsection value of technology will be displayed as a list and so on. Answer : ``` <$list filter="[field:section[Academic Support Services]]"> </$list> ```
Le filtrage est très puissant et il peut être utilisé pour des opérations logiques. Il s'agit de quelques notes sur les opérations logiques utilisant le filtrage dans TiddlyWiki. La plupart de ce qui suit n'est pas 'utilité immédiate, peut servir de base pour résoudre les problèmes de filtrage dans TiddlyWiki.
Les opérateurs de filtres étudiés ici sont `days`, `field`, `has`, `haschanged`, `is`, `regexp`, `sameday`, `search`, `prefix`, `suffix`, `tag` et `untagged` Nous utilisons la notation suivante: |!Opérateur |!Symbole | |`A` and `B` |`A.B` | |`A` or `B` |`A+B` | |not `A` |`¬A` | |`A` xor `B` |`A⊕B` | |`A` iff `B` |`A⇔B` | Les règles dont il faut se souvenir (Pour simplifier, on peut utiliser les notations suivantes) : ``` A+B ⇔ ¬(¬A.¬B) ¬(A+B) ⇔ ¬A.¬B A.B ⇔ ¬(¬A+¬B) ¬(A.B) ⇔ ¬A+¬B A ⇔ A.B+A.¬B A ⇔ A+A.B A ⇔¬(¬A) ```
{{FilterOperators||caption}}
Un opérateur de filtre est un ''mot clé prédéfini'' attaché à une étape du parcours du filtre. Il définit l'action particulière de cette étape. Important: chaque première étape d'une série de filtres ne recevant aucun opérateur d'entrée reçoit la sortie de `[All [tiddlers]]` comme son étant son entrée. Le tableau suivant répertorie tous les opérateurs du core de Tiddlywiki, les plus courants marqués ✓. La dernière colonne indique si un opérateur autorise la négation à l'aide du préfixe `!`. Un filtre est normalement constitué par une suite de type `[opérateur [paramètre(s)]]`, bien que tous les opérateurs n'exigent pas de paramètre. | Opérateur | Objet | ✓ | `!` |h | all |Trouve tous les tiddlers d'une [[catégorie fondamentale|Catégories fondamentales]]| ✓ | - |
À l'inverse, on peut exclure un tag de la recherche en faisant précéder l'opérateur d'un point d'exclamation `!` . on peut sélectionner tous les tiddlers ne possédant pas le tag "Végétarien"": Filtre: `[!tag[Végétarien]limit[10]]` Rendu : ``` <$list filter="[!tag[Végétarien]limit[10]]"> </$list> ``` ;Soit : <<< <$list filter="[!tag[Végétarien]limit[10]]"> </$list> <<< La liste étant forcément longue, on limite ici son nombre à 10 avec ``` limit[10] ```
Les tiddlers peuvent être filtrés par d'''autres champs'' que celui de leur ''titre'' ou de leurs ''tags'', par exemple avec le champ "''field''": !!!Filtre sur un champ *Le filtre: `[field:cuisson[Vapeur]]` *Rendu : ``` <$list filter="[field:cuisson[Vapeur]]"> </$list> ``` ; Soit: <<< <$list filter="[field:cuisson[Vapeur]]"> </$list> <<< Cet exemple sélectionnera tous les tiddlers qui possèdent la valeur Vapeur dans le champ "cuisson".
Et comme le champ "cuisson" n'est pas un opérateur de filtre standard (et ne le deviendra certainement jamais), on peut omettre en toute sécurité le préfixe "field": *Le filtre: `[cuisson[Vapeur]]` *Rendu: ``` <$list filter="[cuisson[Vapeur]]"> </$list> ``` ; Soit: <<< <$list filter="[cuisson[Vapeur]]"> </$list> <<<
Par exemple voici comment sélectionner tous les tiddlers qui ont été tagués "Végétarien": *Le filtre: `[tag[Végétarien]]` *Rendu : ``` <$list filter="[tag[Végétarien]]"> </$list> ``` où : ``` <$list filter="[all[tiddlers]tag[Végétarien]]"> </$list> ``` ; Soit: <<< <$list filter="[tag[Végétarien]]"> </$list> <<<
Les doubles équerres sont en fait un raccourcis pour cette notation: *Filtre: `[title[HeadLines]]` *Rendu: ``` <$list filter="[title[HeadLines]]"> </$list> ``` ; Soit: <<< <$list filter="[title[HeadLines]]"> </$list> <<< ... Ce qui nous donne un modèle général applicable à tout filtre: > `[operateur[paramètre]]`
{{Filtres||caption}}
Les filtres ne produisent rien si ils sont écrits seuls dans un tiddler. Ils ont besoin d'un contexte. Une manière simple d'expérimenter les filtres consiste à les écrire dans la <<.advancedsearch-tab Filter>> table "//Filter//" de la [[recherche avancée|$:/AdvancedSearch]] Le cas le plus simple, c'est quand vous connaissez déjà quels sont les tiddlers reccherchés. Écrivez chaque titre de tiddler entouré d'un double crochet en laissant un espace entre chaque tiddler nommé: *Filtre: `[[223 plugins rescensés]] [[HeadLines]] [[Cacher la SideBar au démarrage]]` *Rendu: [[223 plugins rescensés]] [[HeadLines]] [[Cacher la SideBar au démarrage]] Vous pouvez omettre les doubles équerres lorsque le titre du tiddler ne comporte aucun espace: *Filtre:`[[223 plugins rescensés]] HeadLines [[Cacher la SideBar au démarrage]]` *Rendu: [[223 plugins rescensés]] HeadLines [[Cacher la SideBar au démarrage]]
{{FiltresCategories||caption}}
``` <$list filter="[list[Catégories!!text]]" variable="item"> !! <<item>> <<< <$list filter="[tag[Repas]tag<item>]"> </$list> <<< </$list> ``` ;Soit: <$list filter="[list[Catégories!!text]]" variable="item"> !! <<item>> <<< <$list filter="[tag[Repas]tag<item>]"> </$list> <<< </$list>
Reprenons l'exemple de la base de donnée des pensionnaires de notre maison de retraite: [[Un exemple s'appuyant sur une Base de Données]] [[Voyez ici la base de données|Repas]] La liste des tags peut elle-même servir de rupture par catégories si les éléments de cette liste correspondent aux tags respectivement attribués aux pensionnaires de notre maison de retraite. Dans cet exemple, plusieurs tags leur sont attribués: :Viande :Végétarien mais aussi: :SansSel :Complet Chaque pensionnaire est distingué par deux tags: Soit il est soumis à un régime sans sel ou complet et soit son repas est typé avec viande ou végétarien. On peut très bien mettre ensemble ces tags dans notre liste de rupture et en dresser la liste.
{{FiltresComb||caption}}
Vous pouvez vous représenter TiddlyWiki comme une base de données où tous les enregistrements sont des tiddlers. Une base de données propose typiquement un moyen de découvrir quels enregistrements satisfont à des critères donnés, avec ~TiddlyWiki c'est effectué par les filtres. Un Filtre est une notation notation concise pour sélectionner un [[ensemble de tiddlers|Title Selection]] particuliers, envoyé dans une output Quand ~TiddlyWiki rencontre un filtre, il calcule l'output (la sortie). D'autres tâches peuvent être réalisées avec ces tiddlers, comme le [[dénombrement|CountWidget]] ou leur [[listage|ListWidget]]. L'exemple qui suit envoie la sortie d'un filtre à la macro list-links pour afficher la liste des tiddlers qui commencent par la lettre H : > `<<list-links "[prefix[H]]">>` La sortie d'un filtre peut changer selon que des tiddlers sont ajoutés ou supprimés du wiki. ~TiddlyWiki recalcule à la volée, actualisant automatiquement aussi bien les dénombrements basés sur des filtres que les listages. La [[Recherche Avancée|$:/AdvancedSearch]] a un onglet <<.advancedsearch-tab Filter>> qui facilite l'expérimentation et l'apprentissage des filtres.
{{FiltresImg||caption}}
{{FiltresIntro||caption}}
{{FiltresSimples||caption}}
{{floating-images||caption}}
Nécessite le chargement des fichiers suivants tagués `floating-images` *[[$:/floating-image-macros]] *[[$:/floating-image-css]] *[[Positionner vos images]] *[[TiddlyWiki-M.png]] Il y a une syntaxe standard d'usage pour les images : `[img[TiddlyWiki-M.png.jpg]]`. Mais rien est prévu en standard si vous souhaitez centrer cette image. Ou si vous souhaitez aligner cette image à gauche ou à droite ou également lui affecter un texte explicatif. Ceci est maintenant possible grâce aux trois macros: * `<<image-left "TiddlyWiki-M.png.jpg">>` * `<<image-center "TiddlyWiki-M.png">>` * `<<image-right "TiddlyWiki-M.png">>` <<image-left "TiddlyWiki-M.png" caption:"//floating left image//">> ``` <<image-left "TiddlyWiki-M.png">> ``` Activates a `float-left` CSS rule for the image container. If you want to add a caption to the image, just use: ``` <<image-left "TiddlyWiki-M.png" caption:"//floating left image//">> ``` @@.image-text Comme vous le voyez les règles de formatage wikitext sont applicables (ici le texte est en italiques). @@ The image below will be centred and slightly bigger. There is no text flow around the image. The macro is used like this: ``` <<image-center "TiddlyWiki-M.png" caption:"centered image" width:"50%">> ``` <<image-center "TiddlyWiki-M.png" caption:"centered image" width:"50%">> <<image-right "TiddlyWiki-M.png" caption:"''float right''" tooltip:"Motovun Jack - The TiddlyWiki Mascot">> This image uses: ``` <<image-right "TiddlyWiki-m.png" caption:"''float right''" tooltip:"Motovun Jack - The TiddlyWiki Mascot">> ``` @@.image-text Since "float-left" and "float-right" CSS rules have some effects on the text flow, we need a mechanism, that disables this effect. So we need to assign a special class to the last paragraph of this page: eg: `@@.image-text ... @@` @@
Tip Numéro 7 This is often called a Self-Invoked Anonymous Function or Immediately Invoked Function Expression (IIFE). It is a function that executes automatically when you create it, and has the following form: ``` (function(){ // some private code that will be executed automatically })(); (function(a,b){ var result = a+b; return result; })(10,20) ```
*Les 675 icônes de Font Awesome 4.7.0 **http://fontawesome.io/icons/ *iconify tiddlywiki Tobias beer Version: 4.3 **http://tobibeer.github.io/tw/fa/#
[[La liste des icônes|http://fontawesome.io/icons/]] <<rojo "J'aurais pu faire beaucoup plus simple! Sauf qu'ici, c'est en DUR. Une fois FontAwsome installé, vous faites un copier/coller de ce tiddler (ou bien vous l'importez) et ... vous en disposez.">> Toutes les icônes de la version Version 4.7.0 : @@.no-border |`<i class="fa fa-picture-o"></i>`|<i class="fa fa-picture-o"></i>| |`<i class="fa fa-university"></i>`|<i class="fa fa-university"></i>| |`<i class="fa fa-plus"></i>`|<i class="fa fa-plus" aria-hidden="true"></i>| |`<i class="fa fa-plus-circle"></i>`|<i class="fa fa-plus-circle" aria-hidden="true"></i>| |`<i class="fa fa-plus-square"></i>`|<i class="fa fa-plus-square" aria-hidden="true"></i>| |`<i class="fa fa-plus-square-o"></i>`|<i class="fa fa-plus-square-o" aria-hidden="true"></i>| |`<i class="fa fa-minus"></i>`|<i class="fa fa-minus" aria-hidden="true"></i>| |`<i class="fa fa-minus-circle"></i>`|<i class="fa fa-minus-circle" aria-hidden="true"></i>| |`<i class="fa fa-minus-square"></i>`|<i class="fa fa-minus-square" aria-hidden="true"></i>| |`<i class="fa fa-minus-square-o"></i>`|<i class="fa fa-minus-square-o" aria-hidden="true"></i>| |`<i class="fa fa-question"></i>`|<i class="fa fa-question" aria-hidden="true"></i>| |`<i class="fa fa-question-circle"></i>`|<i class="fa fa-question-circle" aria-hidden="true"></i>| |`<i class="fa fa-question-circle-o"></i>`|<i class="fa fa-question-circle-o" aria-hidden="true"></i>| |`<i class="fa fa-file"></i>`|<i class="fa fa-file" aria-hidden="true"></i>| |`<i class="fa fa-file-o"></i>`|<i class="fa fa-file-o" aria-hidden="true"></i>| |`<i class="fa fa-glass"></i>`|<i class="fa fa-glass" aria-hidden="true"></i>| |`<i class="fa fa-music"></i>`|<i class="fa fa-music" aria-hidden="true"></i>| |`<i class="fa fa-search"></i>`|<i class="fa fa-search" aria-hidden="true"></i>| |`<i class="fa fa-envelope-o"></i>`|<i class="fa fa-envelope-o" aria-hidden="true"></i>| |`<i class="fa fa-heart"></i>`|<i class="fa fa-heart" aria-hidden="true"></i>| |`<i class="fa fa-star"></i>`|<i class="fa fa-star" aria-hidden="true"></i>| |`<i class="fa fa-star-o"></i>`|<i class="fa fa-star-o" aria-hidden="true"></i>| |`<i class="fa fa-user"></i>`|<i class="fa fa-user" aria-hidden="true"></i>| |`<i class="fa fa-film"></i>`|<i class="fa fa-film" aria-hidden="true"></i>| |`<i class="fa fa-th-large"></i>`|<i class="fa fa-th-large" aria-hidden="true"></i>| |`<i class="fa fa-th"></i>`|<i class="fa fa-th" aria-hidden="true"></i>| |`<i class="fa fa-th-list"></i>`|<i class="fa fa-th-list" aria-hidden="true"></i>| |`<i class="fa fa-check"></i>`|<i class="fa fa-check" aria-hidden="true"></i>| |`<i class="fa fa-remove"></i>`|<i class="fa fa-remove" aria-hidden="true"></i>| |`<i class="fa fa-close"></i>`|<i class="fa fa-close" aria-hidden="true"></i>| |`<i class="fa fa-times"></i>`|<i class="fa fa-times" aria-hidden="true"></i>| |`<i class="fa fa-search-plus"></i>`|<i class="fa fa-search-plus" aria-hidden="true"></i>| |`<i class="fa fa-search-minus"></i>`|<i class="fa fa-search-minus" aria-hidden="true"></i>| |`<i class="fa fa-power-off"></i>`|<i class="fa fa-power-off" aria-hidden="true"></i>| |`<i class="fa fa-signal"></i>`|<i class="fa fa-signal" aria-hidden="true"></i>| |`<i class="fa fa-gear"></i>`|<i class="fa fa-gear" aria-hidden="true"></i>| |`<i class="fa fa-cog"></i>`|<i class="fa fa-cog" aria-hidden="true"></i>| |`<i class="fa fa-trash-o"></i>`|<i class="fa fa-trash-o" aria-hidden="true"></i>| |`<i class="fa fa-home"></i>`|<i class="fa fa-home" aria-hidden="true"></i>| |`<i class="fa fa-file-o"></i>`|<i class="fa fa-file-o" aria-hidden="true"></i>| |`<i class="fa fa-clock-o"></i>`|<i class="fa fa-clock-o" aria-hidden="true"></i>| |`<i class="fa fa-road"></i>`|<i class="fa fa-road" aria-hidden="true"></i>| |`<i class="fa fa-download"></i>`|<i class="fa fa-download" aria-hidden="true"></i>| |`<i class="fa fa-arrow-circle-o-down"></i>`|<i class="fa fa-arrow-circle-o-down" aria-hidden="true"></i>| |`<i class="fa fa-arrow-circle-o-up"></i>`|<i class="fa fa-arrow-circle-o-up" aria-hidden="true"></i>| |`<i class="fa fa-inbox"></i>`|<i class="fa fa-inbox" aria-hidden="true"></i>| |`<i class="fa fa-play-circle-o"></i>`|<i class="fa fa-play-circle-o" aria-hidden="true"></i>| |`<i class="fa fa-rotate-right"></i>`|<i class="fa fa-rotate-right" aria-hidden="true"></i>| |`<i class="fa fa-repeat"></i>`|<i class="fa fa-repeat" aria-hidden="true"></i>| |`<i class="fa fa-refresh"></i>`|<i class="fa fa-refresh" aria-hidden="true"></i>| |`<i class="fa fa-list-alt"></i>`|<i class="fa fa-list-alt" aria-hidden="true"></i>| |`<i class="fa fa-lock"></i>`|<i class="fa fa-lock" aria-hidden="true"></i>| |`<i class="fa fa-flag"></i>`|<i class="fa fa-flag" aria-hidden="true"></i>| |`<i class="fa fa-headphones"></i>`|<i class="fa fa-headphones" aria-hidden="true"></i>| |`<i class="fa fa-volume-off"></i>`|<i class="fa fa-volume-off" aria-hidden="true"></i>| |`<i class="fa fa-volume-down"></i>`|<i class="fa fa-volume-down" aria-hidden="true"></i>| |`<i class="fa fa-volume-up"></i>`|<i class="fa fa-volume-up" aria-hidden="true"></i>| |`<i class="fa fa-qrcode"></i>`|<i class="fa fa-qrcode" aria-hidden="true"></i>| |`<i class="fa fa-barcode"></i>`|<i class="fa fa-barcode" aria-hidden="true"></i>| |`<i class="fa fa-tag"></i>`|<i class="fa fa-tag" aria-hidden="true"></i>| |`<i class="fa fa-tags"></i>`|<i class="fa fa-tags" aria-hidden="true"></i>| |`<i class="fa fa-book"></i>`|<i class="fa fa-book" aria-hidden="true"></i>| |`<i class="fa fa-bookmark"></i>`|<i class="fa fa-bookmark" aria-hidden="true"></i>| |`<i class="fa fa-print"></i>`|<i class="fa fa-print" aria-hidden="true"></i>| |`<i class="fa fa-camera"></i>`|<i class="fa fa-camera" aria-hidden="true"></i>| |`<i class="fa fa-font"></i>`|<i class="fa fa-font" aria-hidden="true"></i>| |`<i class="fa fa-bold"></i>`|<i class="fa fa-bold" aria-hidden="true"></i>| |`<i class="fa fa-italic"></i>`|<i class="fa fa-italic" aria-hidden="true"></i>| |`<i class="fa fa-text-height"></i>`|<i class="fa fa-text-height" aria-hidden="true"></i>| |`<i class="fa fa-text-width"></i>`|<i class="fa fa-text-width" aria-hidden="true"></i>| |`<i class="fa fa-align-left"></i>`|<i class="fa fa-align-left" aria-hidden="true"></i>| |`<i class="fa fa-align-center"></i>`|<i class="fa fa-align-center" aria-hidden="true"></i>| |`<i class="fa fa-align-right"></i>`|<i class="fa fa-align-right" aria-hidden="true"></i>| |`<i class="fa fa-align-justify"></i>`|<i class="fa fa-align-justify" aria-hidden="true"></i>| |`<i class="fa fa-list"></i>`|<i class="fa fa-list" aria-hidden="true"></i>| |`<i class="fa fa-dedent"></i>`|<i class="fa fa-dedent" aria-hidden="true"></i>| |`<i class="fa fa-outdent"></i>`|<i class="fa fa-outdent" aria-hidden="true"></i>| |`<i class="fa fa-indent"></i>`|<i class="fa fa-indent" aria-hidden="true"></i>| |`<i class="fa fa-video-camera"></i>`|<i class="fa fa-video-camera" aria-hidden="true"></i>| |`<i class="fa fa-photo"></i>`|<i class="fa fa-photo" aria-hidden="true"></i>| |`<i class="fa fa-image"></i>`|<i class="fa fa-image" aria-hidden="true"></i>| |`<i class="fa fa-picture-o"></i>`|<i class="fa fa-picture-o" aria-hidden="true"></i>| |`<i class="fa fa-pencil"></i>`|<i class="fa fa-pencil" aria-hidden="true"></i>| |`<i class="fa fa-map-marker"></i>`|<i class="fa fa-map-marker" aria-hidden="true"></i>| |`<i class="fa fa-adjust"></i>`|<i class="fa fa-adjust" aria-hidden="true"></i>| |`<i class="fa fa-tint"></i>`|<i class="fa fa-tint" aria-hidden="true"></i>| |`<i class="fa fa-edit"></i>`|<i class="fa fa-edit" aria-hidden="true"></i>| |`<i class="fa fa-pencil-square-o"></i>`|<i class="fa fa-pencil-square-o" aria-hidden="true"></i>| |`<i class="fa fa-share-square-o"></i>`|<i class="fa fa-share-square-o" aria-hidden="true"></i>| |`<i class="fa fa-check-square-o"></i>`|<i class="fa fa-check-square-o" aria-hidden="true"></i>| |`<i class="fa fa-arrows"></i>`|<i class="fa fa-arrows" aria-hidden="true"></i>| |`<i class="fa fa-step-backward"></i>`|<i class="fa fa-step-backward" aria-hidden="true"></i>| |`<i class="fa fa-fast-backward"></i>`|<i class="fa fa-fast-backward" aria-hidden="true"></i>| |`<i class="fa fa-backward"></i>`|<i class="fa fa-backward" aria-hidden="true"></i>| |`<i class="fa fa-play"></i>`|<i class="fa fa-play" aria-hidden="true"></i>| |`<i class="fa fa-pause"></i>`|<i class="fa fa-pause" aria-hidden="true"></i>| |`<i class="fa fa-stop"></i>`|<i class="fa fa-stop" aria-hidden="true"></i>| |`<i class="fa fa-forward"></i>`|<i class="fa fa-forward" aria-hidden="true"></i>| |`<i class="fa fa-fast-forward"></i>`|<i class="fa fa-fast-forward" aria-hidden="true"></i>| |`<i class="fa fa-step-forward"></i>`|<i class="fa fa-step-forward" aria-hidden="true"></i>| |`<i class="fa fa-eject"></i>`|<i class="fa fa-eject" aria-hidden="true"></i>| |`<i class="fa fa-chevron-left"></i>`|<i class="fa fa-chevron-left" aria-hidden="true"></i>| |`<i class="fa fa-chevron-right"></i>`|<i class="fa fa-chevron-right" aria-hidden="true"></i>| |`<i class="fa fa-plus-circle"></i>`|<i class="fa fa-plus-circle" aria-hidden="true"></i>| |`<i class="fa fa-minus-circle"></i>`|<i class="fa fa-minus-circle" aria-hidden="true"></i>| |`<i class="fa fa-times-circle"></i>`|<i class="fa fa-times-circle" aria-hidden="true"></i>| |`<i class="fa fa-check-circle"></i>`|<i class="fa fa-check-circle" aria-hidden="true"></i>| |`<i class="fa fa-question-circle"></i>`|<i class="fa fa-question-circle" aria-hidden="true"></i>| |`<i class="fa fa-info-circle"></i>`|<i class="fa fa-info-circle" aria-hidden="true"></i>| |`<i class="fa fa-crosshairs"></i>`|<i class="fa fa-crosshairs" aria-hidden="true"></i>| |`<i class="fa fa-times-circle-o"></i>`|<i class="fa fa-times-circle-o" aria-hidden="true"></i>| |`<i class="fa fa-check-circle-o"></i>`|<i class="fa fa-check-circle-o" aria-hidden="true"></i>| |`<i class="fa fa-ban"></i>`|<i class="fa fa-ban" aria-hidden="true"></i>| |`<i class="fa fa-arrow-left"></i>`|<i class="fa fa-arrow-left" aria-hidden="true"></i>| |`<i class="fa fa-arrow-right"></i>`|<i class="fa fa-arrow-right" aria-hidden="true"></i>| |`<i class="fa fa-arrow-up"></i>`|<i class="fa fa-arrow-up" aria-hidden="true"></i>| |`<i class="fa fa-arrow-down"></i>`|<i class="fa fa-arrow-down" aria-hidden="true"></i>| |`<i class="fa fa-mail-forward"></i>`|<i class="fa fa-mail-forward" aria-hidden="true"></i>| |`<i class="fa fa-expand"></i>`|<i class="fa fa-expand" aria-hidden="true"></i>| |`<i class="fa fa-compress"></i>`|<i class="fa fa-compress" aria-hidden="true"></i>| |`<i class="fa fa-plus"></i>`|<i class="fa fa-plus" aria-hidden="true"></i>| |`<i class="fa fa-minus"></i>`|<i class="fa fa-minus" aria-hidden="true"></i>| |`<i class="fa fa-asterisk"></i>`|<i class="fa fa-asterisk" aria-hidden="true"></i>| |`<i class="fa fa-exclamation-circle"></i>`|<i class="fa fa-exclamation-circle" aria-hidden="true"></i>| |`<i class="fa fa-gift"></i>`|<i class="fa fa-gift" aria-hidden="true"></i>| |`<i class="fa fa-leaf"></i>`|<i class="fa fa-leaf" aria-hidden="true"></i>| |`<i class="fa fa-fire"></i>`|<i class="fa fa-fire" aria-hidden="true"></i>| |`<i class="fa fa-eye"></i>`|<i class="fa fa-eye" aria-hidden="true"></i>| |`<i class="fa fa-eye-slash"></i>`|<i class="fa fa-eye-slash" aria-hidden="true"></i>| |`<i class="fa fa-warning"></i>`|<i class="fa fa-warning" aria-hidden="true"></i>| |`<i class="fa fa-exclamation-triangle"></i>`|<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>| |`<i class="fa fa-plane"></i>`|<i class="fa fa-plane" aria-hidden="true"></i>| |`<i class="fa fa-calendar"></i>`|<i class="fa fa-calendar" aria-hidden="true"></i>| |`<i class="fa fa-random"></i>`|<i class="fa fa-random" aria-hidden="true"></i>| |`<i class="fa fa-comment"></i>`|<i class="fa fa-comment" aria-hidden="true"></i>| |`<i class="fa fa-magnet"></i>`|<i class="fa fa-magnet" aria-hidden="true"></i>| |`<i class="fa fa-chevron-up"></i>`|<i class="fa fa-chevron-up" aria-hidden="true"></i>| |`<i class="fa fa-chevron-down"></i>`|<i class="fa fa-chevron-down" aria-hidden="true"></i>| |`<i class="fa fa-retweet"></i>`|<i class="fa fa-retweet" aria-hidden="true"></i>| |`<i class="fa fa-shopping-cart"></i>`|<i class="fa fa-shopping-cart" aria-hidden="true"></i>| |`<i class="fa fa-folder"></i>`|<i class="fa fa-folder" aria-hidden="true"></i>| |`<i class="fa fa-folder-open"></i>`|<i class="fa fa-folder-open" aria-hidden="true"></i>| |`<i class="fa fa-arrows-v"></i>`|<i class="fa fa-arrows-v" aria-hidden="true"></i>| |`<i class="fa fa-arrows-h"></i>`|<i class="fa fa-arrows-h" aria-hidden="true"></i>| |`<i class="fa fa-bar-chart-o"></i>`|<i class="fa fa-bar-chart-o" aria-hidden="true"></i>| |`<i class="fa fa-bar-chart"></i>`|<i class="fa fa-bar-chart" aria-hidden="true"></i>| |`<i class="fa fa-twitter-square"></i>`|<i class="fa fa-twitter-square" aria-hidden="true"></i>| |`<i class="fa fa-facebook-square"></i>`|<i class="fa fa-facebook-square" aria-hidden="true"></i>| |`<i class="fa fa-camera-retro"></i>`|<i class="fa fa-camera-retro" aria-hidden="true"></i>| |`<i class="fa fa-key"></i>`|<i class="fa fa-key" aria-hidden="true"></i>| |`<i class="fa fa-gears"></i>`|<i class="fa fa-gears" aria-hidden="true"></i>| |`<i class="fa fa-cogs"></i>`|<i class="fa fa-cogs" aria-hidden="true"></i>| |`<i class="fa fa-comments"></i>`|<i class="fa fa-comments" aria-hidden="true"></i>| |`<i class="fa fa-thumbs-o-up"></i>`|<i class="fa fa-thumbs-o-up" aria-hidden="true"></i>| |`<i class="fa fa-thumbs-o-down"></i>`|<i class="fa fa-thumbs-o-down" aria-hidden="true"></i>| |`<i class="fa fa-star-half"></i>`|<i class="fa fa-star-half" aria-hidden="true"></i>| |`<i class="fa fa-heart-o"></i>`|<i class="fa fa-heart-o" aria-hidden="true"></i>| |`<i class="fa fa-sign-out"></i>`|<i class="fa fa-sign-out" aria-hidden="true"></i>| |`<i class="fa fa-linkedin-square"></i>`|<i class="fa fa-linkedin-square" aria-hidden="true"></i>| |`<i class="fa fa-thumb-tack"></i>`|<i class="fa fa-thumb-tack" aria-hidden="true"></i>| |`<i class="fa fa-external-link"></i>`|<i class="fa fa-external-link" aria-hidden="true"></i>| |`<i class="fa fa-sign-in"></i>`|<i class="fa fa-sign-in" aria-hidden="true"></i>| |`<i class="fa fa-trophy"></i>`|<i class="fa fa-trophy" aria-hidden="true"></i>| |`<i class="fa fa-github-square"></i>`|<i class="fa fa-github-square" aria-hidden="true"></i>| |`<i class="fa fa-upload"></i>`|<i class="fa fa-upload" aria-hidden="true"></i>| |`<i class="fa fa-lemon-o"></i>`|<i class="fa fa-lemon-o" aria-hidden="true"></i>| |`<i class="fa fa-phone"></i>`|<i class="fa fa-phone" aria-hidden="true"></i>| |`<i class="fa fa-square-o"></i>`|<i class="fa fa-square-o" aria-hidden="true"></i>| |`<i class="fa fa-bookmark-o"></i>`|<i class="fa fa-bookmark-o" aria-hidden="true"></i>| |`<i class="fa fa-phone-square"></i>`|<i class="fa fa-phone-square" aria-hidden="true"></i>| |`<i class="fa fa-twitter"></i>`|<i class="fa fa-twitter" aria-hidden="true"></i>| |`<i class="fa fa-facebook-f"></i>`|<i class="fa fa-facebook-f" aria-hidden="true"></i>| |`<i class="fa fa-facebook"></i>`|<i class="fa fa-facebook" aria-hidden="true"></i>| |`<i class="fa fa-github"></i>`|<i class="fa fa-github" aria-hidden="true"></i>| |`<i class="fa fa-unlock"></i>`|<i class="fa fa-unlock" aria-hidden="true"></i>| |`<i class="fa fa-credit-card"></i>`|<i class="fa fa-credit-card" aria-hidden="true"></i>| |`<i class="fa fa-feed"></i>`|<i class="fa fa-feed" aria-hidden="true"></i>| |`<i class="fa fa-rss"></i>`|<i class="fa fa-rss" aria-hidden="true"></i>| |`<i class="fa fa-hdd-o"></i>`|<i class="fa fa-hdd-o" aria-hidden="true"></i>| |`<i class="fa fa-bullhorn"></i>`|<i class="fa fa-bullhorn" aria-hidden="true"></i>| |`<i class="fa fa-bell"></i>`|<i class="fa fa-bell" aria-hidden="true"></i>| |`<i class="fa fa-certificate"></i>`|<i class="fa fa-certificate" aria-hidden="true"></i>| |`<i class="fa fa-hand-o-right"></i>`|<i class="fa fa-hand-o-right" aria-hidden="true"></i>| |`<i class="fa fa-hand-o-left"></i>`|<i class="fa fa-hand-o-left" aria-hidden="true"></i>| |`<i class="fa fa-hand-o-up"></i>`|<i class="fa fa-hand-o-up" aria-hidden="true"></i>| |`<i class="fa fa-hand-o-down"></i>`|<i class="fa fa-hand-o-down" aria-hidden="true"></i>| |`<i class="fa fa-arrow-circle-left"></i>`|<i class="fa fa-arrow-circle-left" aria-hidden="true"></i>| |`<i class="fa fa-arrow-circle-right"></i>`|<i class="fa fa-arrow-circle-right" aria-hidden="true"></i>| |`<i class="fa fa-arrow-circle-up"></i>`|<i class="fa fa-arrow-circle-up" aria-hidden="true"></i>| |`<i class="fa fa-arrow-circle-down"></i>`|<i class="fa fa-arrow-circle-down" aria-hidden="true"></i>| |`<i class="fa fa-globe"></i>`|<i class="fa fa-globe" aria-hidden="true"></i>| |`<i class="fa fa-wrench"></i>`|<i class="fa fa-wrench" aria-hidden="true"></i>| |`<i class="fa fa-tasks"></i>`|<i class="fa fa-tasks" aria-hidden="true"></i>| |`<i class="fa fa-filter"></i>`|<i class="fa fa-filter" aria-hidden="true"></i>| |`<i class="fa fa-briefcase"></i>`|<i class="fa fa-briefcase" aria-hidden="true"></i>| |`<i class="fa fa-arrows-alt"></i>`|<i class="fa fa-arrows-alt" aria-hidden="true"></i>| |`<i class="fa fa-group"></i>`|<i class="fa fa-group" aria-hidden="true"></i>| |`<i class="fa fa-users"></i>`|<i class="fa fa-users" aria-hidden="true"></i>| |`<i class="fa fa-chain"></i>`|<i class="fa fa-chain" aria-hidden="true"></i>| |`<i class="fa fa-link"></i>`|<i class="fa fa-link" aria-hidden="true"></i>| |`<i class="fa fa-cloud"></i>`|<i class="fa fa-cloud" aria-hidden="true"></i>| |`<i class="fa fa-flask"></i>`|<i class="fa fa-flask" aria-hidden="true"></i>| |`<i class="fa fa-cut"></i>`|<i class="fa fa-cut" aria-hidden="true"></i>| |`<i class="fa fa-scissors"></i>`|<i class="fa fa-scissors" aria-hidden="true"></i>| |`<i class="fa fa-copy"></i>`|<i class="fa fa-copy" aria-hidden="true"></i>| |`<i class="fa fa-files-o"></i>`|<i class="fa fa-files-o" aria-hidden="true"></i>| |`<i class="fa fa-paperclip"></i>`|<i class="fa fa-paperclip" aria-hidden="true"></i>| |`<i class="fa fa-save"></i>`|<i class="fa fa-save" aria-hidden="true"></i>| |`<i class="fa fa-floppy-o"></i>`|<i class="fa fa-floppy-o" aria-hidden="true"></i>| |`<i class="fa fa-square"></i>`|<i class="fa fa-square" aria-hidden="true"></i>| |`<i class="fa fa-navicon"></i>`|<i class="fa fa-navicon" aria-hidden="true"></i>| |`<i class="fa fa-reorder"></i>`|<i class="fa fa-reorder" aria-hidden="true"></i>| |`<i class="fa fa-bars"></i>`|<i class="fa fa-bars" aria-hidden="true"></i>| |`<i class="fa fa-list-ul"></i>`|<i class="fa fa-list-ul" aria-hidden="true"></i>| |`<i class="fa fa-list-ol"></i>`|<i class="fa fa-list-ol" aria-hidden="true"></i>| |`<i class="fa fa-strikethrough"></i>`|<i class="fa fa-strikethrough" aria-hidden="true"></i>| |`<i class="fa fa-underline"></i>`|<i class="fa fa-underline" aria-hidden="true"></i>| |`<i class="fa fa-table"></i>`|<i class="fa fa-table" aria-hidden="true"></i>| |`<i class="fa fa-magic"></i>`|<i class="fa fa-magic" aria-hidden="true"></i>| |`<i class="fa fa-truck"></i>`|<i class="fa fa-truck" aria-hidden="true"></i>| |`<i class="fa fa-pinterest"></i>`|<i class="fa fa-pinterest" aria-hidden="true"></i>| |`<i class="fa fa-pinterest-square"></i>`|<i class="fa fa-pinterest-square" aria-hidden="true"></i>| |`<i class="fa fa-google-plus-square"></i>`|<i class="fa fa-google-plus-square" aria-hidden="true"></i>| |`<i class="fa fa-google-plus"></i>`|<i class="fa fa-google-plus" aria-hidden="true"></i>| |`<i class="fa fa-money"></i>`|<i class="fa fa-money" aria-hidden="true"></i>| |`<i class="fa fa-caret-down"></i>`|<i class="fa fa-caret-down" aria-hidden="true"></i>| |`<i class="fa fa-caret-up"></i>`|<i class="fa fa-caret-up" aria-hidden="true"></i>| |`<i class="fa fa-caret-left"></i>`|<i class="fa fa-caret-left" aria-hidden="true"></i>| |`<i class="fa fa-caret-right"></i>`|<i class="fa fa-caret-right" aria-hidden="true"></i>| |`<i class="fa fa-columns"></i>`|<i class="fa fa-columns" aria-hidden="true"></i>| |`<i class="fa fa-unsorted"></i>`|<i class="fa fa-unsorted" aria-hidden="true"></i>| |`<i class="fa fa-sort"></i>`|<i class="fa fa-sort" aria-hidden="true"></i>| |`<i class="fa fa-sort-down"></i>`|<i class="fa fa-sort-down" aria-hidden="true"></i>| |`<i class="fa fa-sort-desc"></i>`|<i class="fa fa-sort-desc" aria-hidden="true"></i>| |`<i class="fa fa-sort-up"></i>`|<i class="fa fa-sort-up" aria-hidden="true"></i>| |`<i class="fa fa-sort-asc"></i>`|<i class="fa fa-sort-asc" aria-hidden="true"></i>| |`<i class="fa fa-envelope"></i>`|<i class="fa fa-envelope" aria-hidden="true"></i>| |`<i class="fa fa-linkedin"></i>`|<i class="fa fa-linkedin" aria-hidden="true"></i>| |`<i class="fa fa-rotate-left"></i>`|<i class="fa fa-rotate-left" aria-hidden="true"></i>| |`<i class="fa fa-undo"></i>`|<i class="fa fa-undo" aria-hidden="true"></i>| |`<i class="fa fa-legal"></i>`|<i class="fa fa-legal" aria-hidden="true"></i>| |`<i class="fa fa-gavel"></i>`|<i class="fa fa-gavel" aria-hidden="true"></i>| |`<i class="fa fa-dashboard"></i>`|<i class="fa fa-dashboard" aria-hidden="true"></i>| |`<i class="fa fa-tachometer"></i>`|<i class="fa fa-tachometer" aria-hidden="true"></i>| |`<i class="fa fa-comment-o"></i>`|<i class="fa fa-comment-o" aria-hidden="true"></i>| |`<i class="fa fa-comments-o"></i>`|<i class="fa fa-comments-o" aria-hidden="true"></i>| |`<i class="fa fa-flash"></i>`|<i class="fa fa-flash" aria-hidden="true"></i>| |`<i class="fa fa-bolt"></i>`|<i class="fa fa-bolt" aria-hidden="true"></i>| |`<i class="fa fa-sitemap"></i>`|<i class="fa fa-sitemap" aria-hidden="true"></i>| |`<i class="fa fa-umbrella"></i>`|<i class="fa fa-umbrella" aria-hidden="true"></i>| |`<i class="fa fa-paste"></i>`|<i class="fa fa-paste" aria-hidden="true"></i>| |`<i class="fa fa-clipboard"></i>`|<i class="fa fa-clipboard" aria-hidden="true"></i>| |`<i class="fa fa-lightbulb-o"></i>`|<i class="fa fa-lightbulb-o" aria-hidden="true"></i>| |`<i class="fa fa-exchange"></i>`|<i class="fa fa-exchange" aria-hidden="true"></i>| |`<i class="fa fa-cloud-download"></i>`|<i class="fa fa-cloud-download" aria-hidden="true"></i>| |`<i class="fa fa-cloud-upload"></i>`|<i class="fa fa-cloud-upload" aria-hidden="true"></i>| |`<i class="fa fa-user-md"></i>`|<i class="fa fa-user-md" aria-hidden="true"></i>| |`<i class="fa fa-stethoscope"></i>`|<i class="fa fa-stethoscope" aria-hidden="true"></i>| |`<i class="fa fa-suitcase"></i>`|<i class="fa fa-suitcase" aria-hidden="true"></i>| |`<i class="fa fa-bell-o"></i>`|<i class="fa fa-bell-o" aria-hidden="true"></i>| |`<i class="fa fa-coffee"></i>`|<i class="fa fa-coffee" aria-hidden="true"></i>| |`<i class="fa fa-cutlery"></i>`|<i class="fa fa-cutlery" aria-hidden="true"></i>| |`<i class="fa fa-file-text-o"></i>`|<i class="fa fa-file-text-o" aria-hidden="true"></i>| |`<i class="fa fa-building-o"></i>`|<i class="fa fa-building-o" aria-hidden="true"></i>| |`<i class="fa fa-hospital-o"></i>`|<i class="fa fa-hospital-o" aria-hidden="true"></i>| |`<i class="fa fa-ambulance"></i>`|<i class="fa fa-ambulance" aria-hidden="true"></i>| |`<i class="fa fa-medkit"></i>`|<i class="fa fa-medkit" aria-hidden="true"></i>| |`<i class="fa fa-fighter-jet"></i>`|<i class="fa fa-fighter-jet" aria-hidden="true"></i>| |`<i class="fa fa-beer"></i>`|<i class="fa fa-beer" aria-hidden="true"></i>| |`<i class="fa fa-h-square"></i>`|<i class="fa fa-h-square" aria-hidden="true"></i>| |`<i class="fa fa-plus-square"></i>`|<i class="fa fa-plus-square" aria-hidden="true"></i>| |`<i class="fa fa-angle-double-left"></i>`|<i class="fa fa-angle-double-left" aria-hidden="true"></i>| |`<i class="fa fa-angle-double-right"></i>`|<i class="fa fa-angle-double-right" aria-hidden="true"></i>| |`<i class="fa fa-angle-double-up"></i>`|<i class="fa fa-angle-double-up" aria-hidden="true"></i>| |`<i class="fa fa-angle-double-down"></i>`|<i class="fa fa-angle-double-down" aria-hidden="true"></i>| |`<i class="fa fa-angle-left"></i>`|<i class="fa fa-angle-left" aria-hidden="true"></i>| |`<i class="fa fa-angle-right"></i>`|<i class="fa fa-angle-right" aria-hidden="true"></i>| |`<i class="fa fa-angle-up"></i>`|<i class="fa fa-angle-up" aria-hidden="true"></i>| |`<i class="fa fa-angle-down"></i>`|<i class="fa fa-angle-down" aria-hidden="true"></i>| |`<i class="fa fa-desktop"></i>`|<i class="fa fa-desktop" aria-hidden="true"></i>| |`<i class="fa fa-laptop"></i>`|<i class="fa fa-laptop" aria-hidden="true"></i>| |`<i class="fa fa-tablet"></i>`|<i class="fa fa-tablet" aria-hidden="true"></i>| |`<i class="fa fa-mobile-phone"></i>`|<i class="fa fa-mobile-phone" aria-hidden="true"></i>| |`<i class="fa fa-mobile"></i>`|<i class="fa fa-mobile" aria-hidden="true"></i>| |`<i class="fa fa-circle-o"></i>`|<i class="fa fa-circle-o" aria-hidden="true"></i>| |`<i class="fa fa-quote-left"></i>`|<i class="fa fa-quote-left" aria-hidden="true"></i>| |`<i class="fa fa-quote-right"></i>`|<i class="fa fa-quote-right" aria-hidden="true"></i>| |`<i class="fa fa-spinner"></i>`|<i class="fa fa-spinner" aria-hidden="true"></i>| |`<i class="fa fa-circle"></i>`|<i class="fa fa-circle" aria-hidden="true"></i>| |`<i class="fa fa-mail-reply"></i>`|<i class="fa fa-mail-reply" aria-hidden="true"></i>| |`<i class="fa fa-reply"></i>`|<i class="fa fa-reply" aria-hidden="true"></i>| |`<i class="fa fa-github-alt"></i>`|<i class="fa fa-github-alt" aria-hidden="true"></i>| |`<i class="fa fa-folder-o"></i>`|<i class="fa fa-folder-o" aria-hidden="true"></i>| |`<i class="fa fa-folder-open-o"></i>`|<i class="fa fa-folder-open-o" aria-hidden="true"></i>| |`<i class="fa fa-smile-o"></i>`|<i class="fa fa-smile-o" aria-hidden="true"></i>| |`<i class="fa fa-frown-o"></i>`|<i class="fa fa-frown-o" aria-hidden="true"></i>| |`<i class="fa fa-meh-o"></i>`|<i class="fa fa-meh-o" aria-hidden="true"></i>| |`<i class="fa fa-gamepad"></i>`|<i class="fa fa-gamepad" aria-hidden="true"></i>| |`<i class="fa fa-keyboard-o"></i>`|<i class="fa fa-keyboard-o" aria-hidden="true"></i>| |`<i class="fa fa-flag-o"></i>`|<i class="fa fa-flag-o" aria-hidden="true"></i>| |`<i class="fa fa-flag-checkered"></i>`|<i class="fa fa-flag-checkered" aria-hidden="true"></i>| |`<i class="fa fa-terminal"></i>`|<i class="fa fa-terminal" aria-hidden="true"></i>| |`<i class="fa fa-code"></i>`|<i class="fa fa-code" aria-hidden="true"></i>| |`<i class="fa fa-mail-reply-all"></i>`|<i class="fa fa-mail-reply-all" aria-hidden="true"></i>| |`<i class="fa fa-reply-all"></i>`|<i class="fa fa-reply-all" aria-hidden="true"></i>| |`<i class="fa fa-star-half-empty"></i>`|<i class="fa fa-star-half-empty" aria-hidden="true"></i>| |`<i class="fa fa-star-half-full"></i>`|<i class="fa fa-star-half-full" aria-hidden="true"></i>| |`<i class="fa fa-star-half-o"></i>`|<i class="fa fa-star-half-o" aria-hidden="true"></i>| |`<i class="fa fa-location-arrow"></i>`|<i class="fa fa-location-arrow" aria-hidden="true"></i>| |`<i class="fa fa-crop"></i>`|<i class="fa fa-crop" aria-hidden="true"></i>| |`<i class="fa fa-code-fork"></i>`|<i class="fa fa-code-fork" aria-hidden="true"></i>| |`<i class="fa fa-unlink"></i>`|<i class="fa fa-unlink" aria-hidden="true"></i>| |`<i class="fa fa-chain-broken"></i>`|<i class="fa fa-chain-broken" aria-hidden="true"></i>| |`<i class="fa fa-question"></i>`|<i class="fa fa-question" aria-hidden="true"></i>| |`<i class="fa fa-info"></i>`|<i class="fa fa-info" aria-hidden="true"></i>| |`<i class="fa fa-exclamation"></i>`|<i class="fa fa-exclamation" aria-hidden="true"></i>| |`<i class="fa fa-superscript"></i>`|<i class="fa fa-superscript" aria-hidden="true"></i>| |`<i class="fa fa-subscript"></i>`|<i class="fa fa-subscript" aria-hidden="true"></i>| |`<i class="fa fa-eraser"></i>`|<i class="fa fa-eraser" aria-hidden="true"></i>| |`<i class="fa fa-puzzle-piece"></i>`|<i class="fa fa-puzzle-piece" aria-hidden="true"></i>| |`<i class="fa fa-microphone"></i>`|<i class="fa fa-microphone" aria-hidden="true"></i>| |`<i class="fa fa-microphone-slash"></i>`|<i class="fa fa-microphone-slash" aria-hidden="true"></i>| |`<i class="fa fa-shield"></i>`|<i class="fa fa-shield" aria-hidden="true"></i>| |`<i class="fa fa-calendar-o"></i>`|<i class="fa fa-calendar-o" aria-hidden="true"></i>| |`<i class="fa fa-fire-extinguisher"></i>`|<i class="fa fa-fire-extinguisher" aria-hidden="true"></i>| |`<i class="fa fa-rocket"></i>`|<i class="fa fa-rocket" aria-hidden="true"></i>| |`<i class="fa fa-maxcdn"></i>`|<i class="fa fa-maxcdn" aria-hidden="true"></i>| |`<i class="fa fa-chevron-circle-left"></i>`|<i class="fa fa-chevron-circle-left" aria-hidden="true"></i>| |`<i class="fa fa-chevron-circle-right"></i>`|<i class="fa fa-chevron-circle-right" aria-hidden="true"></i>| |`<i class="fa fa-chevron-circle-up"></i>`|<i class="fa fa-chevron-circle-up" aria-hidden="true"></i>| |`<i class="fa fa-chevron-circle-down"></i>`|<i class="fa fa-chevron-circle-down" aria-hidden="true"></i>| |`<i class="fa fa-html5"></i>`|<i class="fa fa-html5" aria-hidden="true"></i>| |`<i class="fa fa-css3"></i>`|<i class="fa fa-css3" aria-hidden="true"></i>| |`<i class="fa "></i>`|<i class="fa " aria-hidden="true"></i>| @@ fa-anchor fa-unlock-alt fa-bullseye fa-ellipsis-h fa-ellipsis-v fa-rss-square fa-play-circle fa-ticket fa-minus-square fa-minus-square-o fa-level-up fa-level-down fa-check-square fa-pencil-square fa-external-link-square fa-share-square fa-compass fa-toggle-down fa-caret-square-o-down fa-toggle-up fa-caret-square-o-up fa-toggle-right fa-caret-square-o-right fa-euro fa-eur fa-gbp fa-dollar fa-usd fa-rupee fa-inr fa-cny fa-rmb fa-yen fa-jpy fa-ruble fa-rouble fa-rub fa-won fa-krw fa-bitcoin fa-btc fa-file fa-file-text fa-sort-alpha-asc fa-sort-alpha-desc fa-sort-amount-asc fa-sort-amount-desc fa-sort-numeric-asc fa-sort-numeric-desc fa-thumbs-up fa-thumbs-down fa-youtube-square fa-youtube fa-xing fa-xing-square fa-youtube-play fa-dropbox fa-stack-overflow fa-instagram fa-flickr fa-adn fa-bitbucket fa-bitbucket-square fa-tumblr fa-tumblr-square fa-long-arrow-down fa-long-arrow-up fa-long-arrow-left fa-long-arrow-right fa-apple fa-windows fa-android fa-linux fa-dribbble:before { content: "\f17d"; } .fa-skype:before { content: "\f17e"; } .fa-foursquare:before { content: "\f180"; } .fa-trello:before { content: "\f181"; } .fa-female:before { content: "\f182"; } .fa-male:before { content: "\f183"; } .fa-gittip:before, .fa-gratipay:before { content: "\f184"; } .fa-sun-o:before { content: "\f185"; } .fa-moon-o:before { content: "\f186"; } .fa-archive:before { content: "\f187"; } .fa-bug:before { content: "\f188"; } .fa-vk:before { content: "\f189"; } .fa-weibo:before { content: "\f18a"; } .fa-renren:before { content: "\f18b"; } .fa-pagelines:before { content: "\f18c"; } .fa-stack-exchange:before { content: "\f18d"; } .fa-arrow-circle-o-right:before { content: "\f18e"; } .fa-arrow-circle-o-left:before { content: "\f190"; } .fa-toggle-left:before, .fa-caret-square-o-left:before { content: "\f191"; } .fa-dot-circle-o:before { content: "\f192"; } .fa-wheelchair:before { content: "\f193"; } .fa-vimeo-square:before { content: "\f194"; } .fa-turkish-lira:before, .fa-try:before { content: "\f195"; } .fa-plus-square-o:before { content: "\f196"; } .fa-space-shuttle:before { content: "\f197"; } .fa-slack:before { content: "\f198"; } .fa-envelope-square:before { content: "\f199"; } .fa-wordpress:before { content: "\f19a"; } .fa-openid:before { content: "\f19b"; } .fa-institution:before, .fa-bank:before, .fa-university:before { content: "\f19c"; } .fa-mortar-board:before, .fa-graduation-cap:before { content: "\f19d"; } .fa-yahoo:before { content: "\f19e"; } .fa-google:before { content: "\f1a0"; } .fa-reddit:before { content: "\f1a1"; } .fa-reddit-square:before { content: "\f1a2"; } .fa-stumbleupon-circle:before { content: "\f1a3"; } .fa-stumbleupon:before { content: "\f1a4"; } .fa-delicious:before { content: "\f1a5"; } .fa-digg:before { content: "\f1a6"; } .fa-pied-piper-pp:before { content: "\f1a7"; } .fa-pied-piper-alt:before { content: "\f1a8"; } .fa-drupal:before { content: "\f1a9"; } .fa-joomla:before { content: "\f1aa"; } .fa-language:before { content: "\f1ab"; } .fa-fax:before { content: "\f1ac"; } .fa-building:before { content: "\f1ad"; } .fa-child:before { content: "\f1ae"; } .fa-paw:before { content: "\f1b0"; } .fa-spoon:before { content: "\f1b1"; } .fa-cube:before { content: "\f1b2"; } .fa-cubes:before { content: "\f1b3"; } .fa-behance:before { content: "\f1b4"; } .fa-behance-square:before { content: "\f1b5"; } .fa-steam:before { content: "\f1b6"; } .fa-steam-square:before { content: "\f1b7"; } .fa-recycle:before { content: "\f1b8"; } .fa-automobile:before, .fa-car:before { content: "\f1b9"; } .fa-cab:before, .fa-taxi:before { content: "\f1ba"; } .fa-tree:before { content: "\f1bb"; } .fa-spotify:before { content: "\f1bc"; } .fa-deviantart:before { content: "\f1bd"; } .fa-soundcloud:before { content: "\f1be"; } .fa-database:before { content: "\f1c0"; } .fa-file-pdf-o:before { content: "\f1c1"; } .fa-file-word-o:before { content: "\f1c2"; } .fa-file-excel-o:before { content: "\f1c3"; } .fa-file-powerpoint-o:before { content: "\f1c4"; } .fa-file-photo-o:before, .fa-file-picture-o:before, .fa-file-image-o:before { content: "\f1c5"; } .fa-file-zip-o:before, .fa-file-archive-o:before { content: "\f1c6"; } .fa-file-sound-o:before, .fa-file-audio-o:before { content: "\f1c7"; } .fa-file-movie-o:before, .fa-file-video-o:before { content: "\f1c8"; } .fa-file-code-o:before { content: "\f1c9"; } .fa-vine:before { content: "\f1ca"; } .fa-codepen:before { content: "\f1cb"; } .fa-jsfiddle:before { content: "\f1cc"; } .fa-life-bouy:before, .fa-life-buoy:before, .fa-life-saver:before, .fa-support:before, .fa-life-ring:before { content: "\f1cd"; } .fa-circle-o-notch:before { content: "\f1ce"; } .fa-ra:before, .fa-resistance:before, .fa-rebel:before { content: "\f1d0"; } .fa-ge:before, .fa-empire:before { content: "\f1d1"; } .fa-git-square:before { content: "\f1d2"; } .fa-git:before { content: "\f1d3"; } .fa-y-combinator-square:before, .fa-yc-square:before, .fa-hacker-news:before { content: "\f1d4"; } .fa-tencent-weibo:before { content: "\f1d5"; } .fa-qq:before { content: "\f1d6"; } .fa-wechat:before, .fa-weixin:before { content: "\f1d7"; } .fa-send:before, .fa-paper-plane:before { content: "\f1d8"; } .fa-send-o:before, .fa-paper-plane-o:before { content: "\f1d9"; } .fa-history:before { content: "\f1da"; } .fa-circle-thin:before { content: "\f1db"; } .fa-header:before { content: "\f1dc"; } .fa-paragraph:before { content: "\f1dd"; } .fa-sliders:before { content: "\f1de"; } .fa-share-alt:before { content: "\f1e0"; } .fa-share-alt-square:before { content: "\f1e1"; } .fa-bomb:before { content: "\f1e2"; } .fa-soccer-ball-o:before, .fa-futbol-o:before { content: "\f1e3"; } .fa-tty:before { content: "\f1e4"; } .fa-binoculars:before { content: "\f1e5"; } .fa-plug:before { content: "\f1e6"; } .fa-slideshare:before { content: "\f1e7"; } .fa-twitch:before { content: "\f1e8"; } .fa-yelp:before { content: "\f1e9"; } .fa-newspaper-o:before { content: "\f1ea"; } .fa-wifi:before { content: "\f1eb"; } .fa-calculator:before { content: "\f1ec"; } .fa-paypal:before { content: "\f1ed"; } .fa-google-wallet:before { content: "\f1ee"; } .fa-cc-visa:before { content: "\f1f0"; } .fa-cc-mastercard:before { content: "\f1f1"; } .fa-cc-discover:before { content: "\f1f2"; } .fa-cc-amex:before { content: "\f1f3"; } .fa-cc-paypal:before { content: "\f1f4"; } .fa-cc-stripe:before { content: "\f1f5"; } .fa-bell-slash:before { content: "\f1f6"; } .fa-bell-slash-o:before { content: "\f1f7"; } .fa-trash:before { content: "\f1f8"; } .fa-copyright:before { content: "\f1f9"; } .fa-at:before { content: "\f1fa"; } .fa-eyedropper:before { content: "\f1fb"; } .fa-paint-brush:before { content: "\f1fc"; } .fa-birthday-cake:before { content: "\f1fd"; } .fa-area-chart:before { content: "\f1fe"; } .fa-pie-chart:before { content: "\f200"; } .fa-line-chart:before { content: "\f201"; } .fa-lastfm:before { content: "\f202"; } .fa-lastfm-square:before { content: "\f203"; } .fa-toggle-off:before { content: "\f204"; } .fa-toggle-on:before { content: "\f205"; } .fa-bicycle:before { content: "\f206"; } .fa-bus:before { content: "\f207"; } .fa-ioxhost:before { content: "\f208"; } .fa-angellist:before { content: "\f209"; } .fa-cc:before { content: "\f20a"; } .fa-shekel:before, .fa-sheqel:before, .fa-ils:before { content: "\f20b"; } .fa-meanpath:before { content: "\f20c"; } .fa-buysellads:before { content: "\f20d"; } .fa-connectdevelop:before { content: "\f20e"; } .fa-dashcube:before { content: "\f210"; } .fa-forumbee:before { content: "\f211"; } .fa-leanpub:before { content: "\f212"; } .fa-sellsy:before { content: "\f213"; } .fa-shirtsinbulk:before { content: "\f214"; } .fa-simplybuilt:before { content: "\f215"; } .fa-skyatlas:before { content: "\f216"; } .fa-cart-plus:before { content: "\f217"; } .fa-cart-arrow-down:before { content: "\f218"; } .fa-diamond:before { content: "\f219"; } .fa-ship:before { content: "\f21a"; } .fa-user-secret:before { content: "\f21b"; } .fa-motorcycle:before { content: "\f21c"; } .fa-street-view:before { content: "\f21d"; } .fa-heartbeat:before { content: "\f21e"; } .fa-venus:before { content: "\f221"; } .fa-mars:before { content: "\f222"; } .fa-mercury:before { content: "\f223"; } .fa-intersex:before, .fa-transgender:before { content: "\f224"; } .fa-transgender-alt:before { content: "\f225"; } .fa-venus-double:before { content: "\f226"; } .fa-mars-double:before { content: "\f227"; } .fa-venus-mars:before { content: "\f228"; } .fa-mars-stroke:before { content: "\f229"; } .fa-mars-stroke-v:before { content: "\f22a"; } .fa-mars-stroke-h:before { content: "\f22b"; } .fa-neuter:before { content: "\f22c"; } .fa-genderless:before { content: "\f22d"; } .fa-facebook-official:before { content: "\f230"; } .fa-pinterest-p:before { content: "\f231"; } .fa-whatsapp:before { content: "\f232"; } .fa-server:before { content: "\f233"; } .fa-user-plus:before { content: "\f234"; } .fa-user-times:before { content: "\f235"; } .fa-hotel:before, .fa-bed:before { content: "\f236"; } .fa-viacoin:before { content: "\f237"; } .fa-train:before { content: "\f238"; } .fa-subway:before { content: "\f239"; } .fa-medium:before { content: "\f23a"; } .fa-yc:before, .fa-y-combinator:before { content: "\f23b"; } .fa-optin-monster:before { content: "\f23c"; } .fa-opencart:before { content: "\f23d"; } .fa-expeditedssl:before { content: "\f23e"; } .fa-battery-4:before, .fa-battery:before, .fa-battery-full:before { content: "\f240"; } .fa-battery-3:before, .fa-battery-three-quarters:before { content: "\f241"; } .fa-battery-2:before, .fa-battery-half:before { content: "\f242"; } .fa-battery-1:before, .fa-battery-quarter:before { content: "\f243"; } .fa-battery-0:before, .fa-battery-empty:before { content: "\f244"; } .fa-mouse-pointer:before { content: "\f245"; } .fa-i-cursor:before { content: "\f246"; } .fa-object-group:before { content: "\f247"; } .fa-object-ungroup:before { content: "\f248"; } .fa-sticky-note:before { content: "\f249"; } .fa-sticky-note-o:before { content: "\f24a"; } .fa-cc-jcb:before { content: "\f24b"; } .fa-cc-diners-club:before { content: "\f24c"; } .fa-clone:before { content: "\f24d"; } .fa-balance-scale:before { content: "\f24e"; } .fa-hourglass-o:before { content: "\f250"; } .fa-hourglass-1:before, .fa-hourglass-start:before { content: "\f251"; } .fa-hourglass-2:before, .fa-hourglass-half:before { content: "\f252"; } .fa-hourglass-3:before, .fa-hourglass-end:before { content: "\f253"; } .fa-hourglass:before { content: "\f254"; } .fa-hand-grab-o:before, .fa-hand-rock-o:before { content: "\f255"; } .fa-hand-stop-o:before, .fa-hand-paper-o:before { content: "\f256"; } .fa-hand-scissors-o:before { content: "\f257"; } .fa-hand-lizard-o:before { content: "\f258"; } .fa-hand-spock-o:before { content: "\f259"; } .fa-hand-pointer-o:before { content: "\f25a"; } .fa-hand-peace-o:before { content: "\f25b"; } .fa-trademark:before { content: "\f25c"; } .fa-registered:before { content: "\f25d"; } .fa-creative-commons:before { content: "\f25e"; } .fa-gg:before { content: "\f260"; } .fa-gg-circle:before { content: "\f261"; } .fa-tripadvisor:before { content: "\f262"; } .fa-odnoklassniki:before { content: "\f263"; } .fa-odnoklassniki-square:before { content: "\f264"; } .fa-get-pocket:before { content: "\f265"; } .fa-wikipedia-w:before { content: "\f266"; } .fa-safari:before { content: "\f267"; } .fa-chrome:before { content: "\f268"; } .fa-firefox:before { content: "\f269"; } .fa-opera:before { content: "\f26a"; } .fa-internet-explorer:before { content: "\f26b"; } .fa-tv:before, .fa-television:before { content: "\f26c"; } .fa-contao:before { content: "\f26d"; } .fa-500px:before { content: "\f26e"; } .fa-amazon:before { content: "\f270"; } .fa-calendar-plus-o:before { content: "\f271"; } .fa-calendar-minus-o:before { content: "\f272"; } .fa-calendar-times-o:before { content: "\f273"; } .fa-calendar-check-o:before { content: "\f274"; } .fa-industry:before { content: "\f275"; } .fa-map-pin:before { content: "\f276"; } .fa-map-signs:before { content: "\f277"; } .fa-map-o:before { content: "\f278"; } .fa-map:before { content: "\f279"; } .fa-commenting:before { content: "\f27a"; } .fa-commenting-o:before { content: "\f27b"; } .fa-houzz:before { content: "\f27c"; } .fa-vimeo:before { content: "\f27d"; } .fa-black-tie:before { content: "\f27e"; } .fa-fonticons:before { content: "\f280"; } .fa-reddit-alien:before { content: "\f281"; } .fa-edge:before { content: "\f282"; } .fa-credit-card-alt:before { content: "\f283"; } .fa-codiepie:before { content: "\f284"; } .fa-modx:before { content: "\f285"; } .fa-fort-awesome:before { content: "\f286"; } .fa-usb:before { content: "\f287"; } .fa-product-hunt:before { content: "\f288"; } .fa-mixcloud:before { content: "\f289"; } .fa-scribd:before { content: "\f28a"; } .fa-pause-circle:before { content: "\f28b"; } .fa-pause-circle-o:before { content: "\f28c"; } .fa-stop-circle:before { content: "\f28d"; } .fa-stop-circle-o:before { content: "\f28e"; } .fa-shopping-bag:before { content: "\f290"; } .fa-shopping-basket:before { content: "\f291"; } .fa-hashtag:before { content: "\f292"; } .fa-bluetooth:before { content: "\f293"; } .fa-bluetooth-b:before { content: "\f294"; } .fa-percent:before { content: "\f295"; } .fa-gitlab:before { content: "\f296"; } .fa-wpbeginner:before { content: "\f297"; } .fa-wpforms:before { content: "\f298"; } .fa-envira:before { content: "\f299"; } .fa-universal-access:before { content: "\f29a"; } .fa-wheelchair-alt:before { content: "\f29b"; } .fa-question-circle-o:before { content: "\f29c"; } .fa-blind:before { content: "\f29d"; } .fa-audio-description:before { content: "\f29e"; } .fa-volume-control-phone:before { content: "\f2a0"; } .fa-braille:before { content: "\f2a1"; } .fa-assistive-listening-systems:before { content: "\f2a2"; } .fa-asl-interpreting:before, .fa-american-sign-language-interpreting:before { content: "\f2a3"; } .fa-deafness:before, .fa-hard-of-hearing:before, .fa-deaf:before { content: "\f2a4"; } .fa-glide:before { content: "\f2a5"; } .fa-glide-g:before { content: "\f2a6"; } .fa-signing:before, .fa-sign-language:before { content: "\f2a7"; } .fa-low-vision:before { content: "\f2a8"; } .fa-viadeo:before { content: "\f2a9"; } .fa-viadeo-square:before { content: "\f2aa"; } .fa-snapchat:before { content: "\f2ab"; } .fa-snapchat-ghost:before { content: "\f2ac"; } .fa-snapchat-square:before { content: "\f2ad"; } .fa-pied-piper:before { content: "\f2ae"; } .fa-first-order:before { content: "\f2b0"; } .fa-yoast:before { content: "\f2b1"; } .fa-themeisle:before { content: "\f2b2"; } .fa-google-plus-circle:before, .fa-google-plus-official:before { content: "\f2b3"; } .fa-fa:before, .fa-font-awesome:before { content: "\f2b4"; } .fa-handshake-o:before { content: "\f2b5"; } .fa-envelope-open:before { content: "\f2b6"; } .fa-envelope-open-o:before { content: "\f2b7"; } .fa-linode:before { content: "\f2b8"; } .fa-address-book:before { content: "\f2b9"; } .fa-address-book-o:before { content: "\f2ba"; } .fa-vcard:before, .fa-address-card:before { content: "\f2bb"; } .fa-vcard-o:before, .fa-address-card-o:before { content: "\f2bc"; } .fa-user-circle:before { content: "\f2bd"; } .fa-user-circle-o:before { content: "\f2be"; } .fa-user-o:before { content: "\f2c0"; } .fa-id-badge:before { content: "\f2c1"; } .fa-drivers-license:before, .fa-id-card:before { content: "\f2c2"; } .fa-drivers-license-o:before, .fa-id-card-o:before { content: "\f2c3"; } .fa-quora:before { content: "\f2c4"; } .fa-free-code-camp:before { content: "\f2c5"; } .fa-telegram:before { content: "\f2c6"; } .fa-thermometer-4:before, .fa-thermometer:before, .fa-thermometer-full:before { content: "\f2c7"; } .fa-thermometer-3:before, .fa-thermometer-three-quarters:before { content: "\f2c8"; } .fa-thermometer-2:before, .fa-thermometer-half:before { content: "\f2c9"; } .fa-thermometer-1:before, .fa-thermometer-quarter:before { content: "\f2ca"; } .fa-thermometer-0:before, .fa-thermometer-empty:before { content: "\f2cb"; } .fa-shower:before { content: "\f2cc"; } .fa-bathtub:before, .fa-s15:before, .fa-bath:before { content: "\f2cd"; } .fa-podcast:before { content: "\f2ce"; } .fa-window-maximize:before { content: "\f2d0"; } .fa-window-minimize:before { content: "\f2d1"; } .fa-window-restore:before { content: "\f2d2"; } .fa-times-rectangle:before, .fa-window-close:before { content: "\f2d3"; } .fa-times-rectangle-o:before, .fa-window-close-o:before { content: "\f2d4"; } .fa-bandcamp:before { content: "\f2d5"; } .fa-grav:before { content: "\f2d6"; } .fa-etsy:before { content: "\f2d7"; } .fa-imdb:before { content: "\f2d8"; } .fa-ravelry:before { content: "\f2d9"; } .fa-eercast:before { content: "\f2da"; } .fa-microchip:before { content: "\f2db"; } .fa-snowflake-o:before { content: "\f2dc"; } .fa-superpowers:before { content: "\f2dd"; } .fa-wpexplorer:before { content: "\f2de"; } .fa-meetup:before { content: "\f2e0"; } *Voir le tiddler des fonts: $:/fonts/FontAwesome *Voir [[Font Awsome]], le site source.
Free Fonts
{{FootNotes||caption}}
<div class="attention">Attention<br> À ne pas confondre avec [[Prise de Notes en bas de page (Externes)|FootNotesExt]] destiné à saisir de courtes notes et accessible à tous même si le wiki est protégé en écriture.</div> <div class="pretty"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Les notes du type `<<ref "Note2">>` ne fonctionnent pas correctement si elles sont insérées au sein d'un tableau </div> <br/> Source: http://braintest.tiddlyspot.com/#PopupFootnotes !!1- Importer les tiddlers suivants: *[[$:/cssFootNotes]] *[[$:/macros/danielo/footNote]] !!2- Rendu par label uniquement: `<<footnote "label" "text of the footnote">>` Soit: <<footnote "label" "text of the footnote">> !!3- Rendu par label ET par lecture de la note en bas de page Indiquez la référence comme ceci: `<<ref "Note2">>` Soit: <<ref "Note2">> Ici, la notation par label est formulée dans un second temps, après que la note de bas de page ait été créée !!4- Rendu textuel en bas de page seulement: Les notes doivent être saisies en bas de la page (Voir "Note3") `--- <<footnotes "Note2" "Vous pouvez voir cette note de bas de page à la fois en bas de page ET également dans un popup">>` Le trait de séparation peut être remplacé par quelque-chose de plus plaisant: ``` <div align="center">[img[$:/separation3]]</div> ``` <div align="center">[img[$:/separation3]]</div> <<footnotes "Note2" "Vous pouvez voir cette note de bas de page à la fois en bas de page ET également dans un popup">> <<footnotes "Note3" "Cette note-ci n'apparait qu'en bas de page (utile pour une document imprimé par exemple). Les notes de bas de page Cliquer sur le lien n'encre pas le texte">>
{{FootNotesExt||caption}}
@@padding:0 5px;border:1px solid crimson; LA TRADUCTION DE CE TIDDLER EST À FINALISER @@ <div class="attention">Attention<br> À ne pas confondre avec [[Prise de Notes en bas de page (Internes)|FootNotes]] réservé à l'auteur d'un texte et qui a donc accès au tiddlers en écriture.</div> *Titre original: "Field for Notes on Tiddlers with a Defined Tag" *[ext[Source|https://tid.li/tw5/hacks.html#Field%20for%20Notes%20on%20Tiddlers%20with%20a%20Defined%20Tag]] En exemple, vous pouvez consulter tous les tiddlers tagués <<tag Notes>> qui contiennent un champ texte en bas de page. A conditional view template as I have [[learned|http://tobibeer.github.io/tb5/#Conditional%20ViewTemplate%20Section]] once from Tobias Beer. This way we make something that shows up on any tiddler meeting predefined conditions. The condition I use is that a tiddler must be tagged with a tag <<tag Notes>> so that the notes are shown. Of course you can change this to something more meanigful for you. Ingredients for this receipe: a tag, some wikitext code, a list-after field. Le seul Tiddler requis pour fonctionner est $:/telmiger/ui/ViewTemplate/notes-field !! Limitations * If you rename a tiddler, the notes will not show any longer as the note-storage tiddler is connected via title. ** The notes are still there: Search and rename accordingly and they show up again. !! a) Your template tiddler must be tagged with <<tag $:/tags/ViewTemplate>> !! b) Put in the text field ``` <$list filter="[all[current]tag[Notes]]"> <$set name="tid" value="Notes-for $(currentTiddler)$"> <$edit-text tiddler=<<tid>> placeholder="Your text goes here" default="The tiddler for storage will be created automagically." rows="3" minHeight="3em" autoHeight="yes" class="te-vt-note-field"/> <div class="te-vt-note-source"><$link to=<<tid>>><<tid>></$link></div> </$set> <style> .te-vt-note-field { width: 100%; } .te-vt-note-source { font-size: 0.6em; text-align: right; line-height: 1.2em; } </style> </$list> ``` For actual code see $:/telmiger/ui/ViewTemplate/notes-field !! c) Create a //list-after// field for your tiddler dans le tiddler $:/telmiger/ui/ViewTemplate/notes-field nommer le champ "list-after" et entrer ce texte en valeur: $:/core/ui/ViewTemplate/tags Le bloc note apparaît alors en haut de page, juste sous la liste des tags associés au tiddler. Nous avons modifié ce champ, car nous voulons placer le module en bas de page. soit $:/core/ui/ViewTemplate/body After you have created this tiddler you can tag any tiddler you like with "Notes" and it will show a field for notes after saving. !!! How it works in short * the `<$list filter` part shows it’s content only if the condition with the tag is met. * the `<$set `statement creates a variable tid that contains the title for the storage tiddler. You can change the prefix Notes-for- if you like. * the `list-after` field defines, where our notes appear in the view template: right after the tags.
The TW format for eg: "modified" is YYYYMMDDhhmmssmil *YYYY ... year ... 2013 *MM ... month ... 12 *DD ... day ... 14 *hh ... hour ... 18 *mm ... minute ... 03 *ss ... second ... 10 *mil ... milisecond ... 023 Pro: *a very simple human readable format *a widget to display this info is relatively simple. Con: *no time zone is encoded, so it is lost *every user will want to apply his own display format that's why there are several (currently undocumented) functions to convert date formats. I think they are similar to TWc [2].
Utilise la méthode des colonnes variables. Il se peut que vous souhaitiez voir les résultats d'un widget `<$list>` être formaté sous la forme de plusieurs colonnes, au lieu d'une seule liste verticale. Cette méthode utilise un CSS pour configurer la liste en tant que colonnes. Il est réactif (responsive), c'est-à-dire qu'il se positionne de nouveau pour afficher moins de colonnes si la fenêtre est trop petite. Vous ne spécifiez pas directement un nombre fixe de colonnes, mais spécifiez plutôt la largeur maximale de la liste (qui pourrait être la transclusion d'un tiddler) et la largeur de chaque élément. Il répertorie de gauche à droite, puis s'enroule vers une nouvelle ligne. Example d'un listing contenant les 50 premiers tags de ce wiki: ``` <div class="dynamic-table"> <$list filter="[has[tags]tags[]sort[title]first[50]]"> <span class="item"> <$transclude tiddler="$:/core/ui/TagTemplate"/> </span> </$list> </div> ``` Voir le CSS correspondant [[$:/cssColonnesFlexibles]] ; Et le résultat: <div class="dynamic-table"> <$list filter="[has[tags]tags[]sort[title]first[50]]"> <span class="item"> <$transclude tiddler="$:/core/ui/TagTemplate"/> </span> </$list> </div> Et si l'on veut y ajouter le nombre de tiddlers possédant ce tag, il suffit d'ajouter `<$count filter="[all[current]tagging[]]"/>` comme suit: ``` <div class="dynamic-table"> <$list filter="[has[tags]tags[]sort[title]first[50]]"> <span class="item"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <$count filter="[all[current]tagging[]]"/> </span> </$list> </div> ``` Ce qui nous donne à présent : <div class="dynamic-table"> <$list filter="[has[tags]tags[]sort[title]first[50]]"> <span class="item"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <$count filter="[all[current]tagging[]]"/> </span> </$list> </div> Voir aussi: [[Nuage de Tags]]
|Nom|Prénom|h |<$view tiddler={{!!source}} index="nom">Le champ ''nom'' est vide dans le tiddler source : {{!!source}}</$view> |<$view tiddler={{!!source}} index="prenom"> Le champ ''prenom'' est vide dans le tiddler source : {{!!source}}</$view> |
Sometimes you want the results of a ``<$list>`` widget to be formatted in the form of multiple columns instead of just one straight listing. The following method creates an actual table structure and uses the [[nth operator|nth Operator]] to provide break points for the rows. It is not responsive, that is, it doesn't re-position to display fewer columns if the window is too small. In the first, outer list structure you must provide a count to indicate at item number rows should occur. So, in the following example, each row breaks after 4 items, so the sequence is 1,5,9, etc. Note that this requires you to know in advance the maximum number of items there will be. There is also an internal limit that is set to n-1 items, where n is the number of columns you want. Note also that you need to repeat the driving filter operator inside of the internal `<$list>` widget. Obviously this technique lends itself to a macro implementation. For other table-making techniques see also: * [[Formatting List Results as Tables with CSS - Variable Column Method]] * [[Formatting List Results as Tables with CSS - Specified Columns Methods]] !! Exemple de code pour une table de 4 colonnes ne dépassant pas 70 tiddlers limités ici à 50 ``` <table> <$list filter="1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65" variable ="rows"> <$list filter="[tag[Sources]limit[50]] +[nth<rows>]" variable="cell"> <tr> <td> <<cell>> </td> <$list filter="[tag[Sources]limit[50]] +[allafter<cell>limit[3]]" variable="this"> <td> <<this>> </td> </$list> </tr> </$list> </$list> </table> ``` !! Result <table> <$list filter="1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65" variable ="rows"> <$list filter="[tag[Sources]limit[50]] +[nth<rows>]" variable="cell"> <tr> <td> <<cell>> </td> <$list filter="[tag[Sources]limit[50]] +[allafter<cell>limit[3]]" variable="this"> <td> <<this>> </td> </$list> </tr> </$list> </$list> </table>
Sometimes you want the results of a ``<$list>`` widget to be formatted in the form of multiple columns, instead of just one straight listing. This method uses ~CSS to set up listing as columns and assumes that you know how many columns you want. The method here is to create a style that reflects the number of columns you want your table to be in, and then apply that style to the resulting list output. For other table-making techniques see also: * [[Formatting List Results as Tables with CSS - Variable Column Method]] * [[Formatting List Results as Tables (no CSS)]] !!! 1) Create a tiddler for the columns tagged with `$:/tags/Stylesheet`, containing: ``` /* FOUR COLUMN MODE */ .fourcolumns { display:block; -moz-column-count:4; -moz-column-gap:1em; -webkit-column-count: 4; -webkit-column-gap:1em; } ``` Note the various places you need to indicate the number of columns !!! 2) Then format your output like this: ``` @@.fourcolumns <$list filter="[tag[Filter Operators]]" variable="foo"><br> <<foo>> </$list> @@ ``` !! Example showing partial list of filter operators <style> .fourcolumns { display:block; -moz-column-count:4; -moz-column-gap:1em; -webkit-column-count: 4; -webkit-column-gap:1em; } </style> @@.fourcolumns <$list filter="[tag[Filter Operators]limit[24]]" variable="foo"><br> <<foo>> </$list> @@
Sometimes you want the results of a ``<$list>`` widget to be formatted in the form of multiple columns, instead of just one straight listing. This method uses CSS to set up listing as columns. It is responsive, that is, re-positioning to display fewer columns if the window is too small. You don't directly specify a fixed number of columns but instead specify the max-width for the list (which could be a transclusion of the tiddler width) and the width for each item. It lists from left to right, then wraps to a new row. For other table-making techniques see also: * [[Formatting List Results as Tables with CSS - Specified Columns Methods]] * [[Formatting List Results as Tables (no CSS)]] !! Example listing using 50 existing ~TiddlyWiki tags ``` <div class=""> <$list filter="[has[tags]tags[]sort[title]first[50]]"> <span class="item"> <$transclude tiddler="$:/core/ui/TagTemplate"/> </span> </$list> </div> ``` !! Example stylesheet to use with listing ``` <style> .dynamic-table { max-width:700px; /* could transclude tiddler width instead */ -ms-box-orient: vertical; /* might be unnecessary */ display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: inline-flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; flex-direction: row; } .item { max-width:160px; min-width:160px; flex: 0 0 2em; /* -grow, -shrink, -basis */ } </style> ``` !! Results <div class="dynamic-table"> <$list filter="[has[tags]tags[]sort[title]first[50]]"> <span class="item"> <$transclude tiddler="$:/core/ui/TagTemplate"/> </span> </$list> </div> <style> .dynamic-table { max-width:700px; /* could transclude tiddler width instead */ -ms-box-orient: vertical; display: -webkit-box; display: -moz-box; display: -ms-flexbox; display: -moz-flex; display: -webkit-flex; display: inline-flex; -webkit-flex-wrap: wrap; flex-wrap: wrap; flex-direction: row; } .item { max-width:160px; min-width:160px; flex: 0 0 2em; /* -grow, -shrink, -basis */ } </style>
!!Couleurs background et foreground Via la palette de couleurs, dans [[Apparence|$:/core/ui/ControlPanel/Appearance]] -> [[Palette|$:/core/ui/ControlPanel/Palette]] Couleurs de fond et de bordures: ;Onglets non sélectionnés : *Fond pour les onglets (tab-background) *Bordure pour les onglets (tab-border) ;Onglets sélectionnés : *Fond pour les onglets sélectionnés (tab-background-selected) *Bordure pour les onglets sélectionnés (tab-border-selected) Il est néanmoins toujours possible d'affecter ces couleurs via une règle CSS spécifique !!Forme des onglets Gérée par le CSS [[$:/cssOnglets]]
!Form input ``` <!-- form input control --> <div class="form-group"> <label class="form-label" for="input-example-1">Name</label> <input class="form-input" type="text" id="input-example-1" placeholder="Name"> </div> ``` <!-- form input control --> <div class="form-group"> <label class="form-label" for="input-example-1">Name</label> <input class="form-input" type="text" id="input-example-1" placeholder="Name"> </div> !Form textarea ``` <!-- form textarea control --> <div class="form-group"> <label class="form-label" for="input-example-3">Message</label> <textarea class="form-input" id="input-example-3" placeholder="Textarea" rows="3"></textarea> </div> ``` <!-- form textarea control --> <div class="form-group"> <label class="form-label" for="input-example-3">Message</label> <textarea class="form-input" id="input-example-3" placeholder="Textarea" rows="3"></textarea> </div> !Form select ``` <!-- form select control --> <div class="form-group"> <select class="form-select"> <option>Choose an option</option> <option>Slack</option> <option>Skype</option> <option>Hipchat</option> </select> </div> ``` <!-- form select control --> <div class="form-group"> <select class="form-select"> <option>Choose an option</option> <option>Slack</option> <option>Skype</option> <option>Hipchat</option> </select> </div> !Form radio ``` <!-- form radio control --> <div class="form-group"> <label class="form-label">Gender</label> <label class="form-radio"> <input type="radio" name="gender" checked> <i class="form-icon"></i> Male </label> <label class="form-radio"> <input type="radio" name="gender"> <i class="form-icon"></i> Female </label> </div> ``` <!-- form radio control --> <div class="form-group"> <label class="form-label">Gender</label> <label class="form-radio"> <input type="radio" name="gender" checked> <i class="form-icon"></i> Male </label> <label class="form-radio"> <input type="radio" name="gender"> <i class="form-icon"></i> Female </label> </div> !Form switch ``` <!-- form switch control --> <div class="form-group"> <label class="form-switch"> <input type="checkbox"> <i class="form-icon"></i> Send me emails with news and tips </label> </div> ``` <!-- form switch control --> <div class="form-group"> <label class="form-switch"> <input type="checkbox"> <i class="form-icon"></i> Send me emails with news and tips </label> </div> !Form checkbox ``` <!-- form checkbox control --> <div class="form-group"> <label class="form-checkbox"> <input type="checkbox"> <i class="form-icon"></i> Remember me </label> </div> ``` <!-- form checkbox control --> <div class="form-group"> <label class="form-checkbox"> <input type="checkbox"> <i class="form-icon"></i> Remember me </label> </div> !Inline forms You can add the `form-inline` class to the form components to make them inline in one row. ``` <div class="form-group"> <label class="form-checkbox form-inline"> <input type="checkbox"><i class="form-icon"></i> Checkbox 1 </label> <label class="form-checkbox form-inline"> <input type="checkbox" checked=""><i class="form-icon"></i> Checkbox 2 </label> </div> <div class="form-group"> <label class="form-radio form-inline"> <input type="radio" name="gender" checked=""><i class="form-icon"></i> Male </label> <label class="form-radio form-inline"> <input type="radio" name="gender"><i class="form-icon"></i> Female </label> </div> ``` <div class="form-group"> <label class="form-checkbox form-inline"> <input type="checkbox"><i class="form-icon"></i> Checkbox 1 </label> <label class="form-checkbox form-inline"> <input type="checkbox" checked=""><i class="form-icon"></i> Checkbox 2 </label> </div> <div class="form-group"> <label class="form-radio form-inline"> <input type="radio" name="gender" checked=""><i class="form-icon"></i> Male </label> <label class="form-radio form-inline"> <input type="radio" name="gender"><i class="form-icon"></i> Female </label> </div> !Horizontal forms If you want to have a horizontal form, add the `form-horizontal` class to the `<form>` container. And add the `col-<1-12>` and `col-xs/sm/lg/xl-<1-12>` class to the child elements for responsive form row layout. ``` <form class="form-horizontal"> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label" for="input-example-1">Name</label> </div> <div class="col-9 col-sm-12"> <input class="form-input" type="text" id="input-example-1" placeholder="Name"> </div> </div> <!-- form structure --> </form> ``` <form class="form-horizontal"> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label" for="input-example-1">Name</label> </div> <div class="col-9 col-sm-12"> <input class="form-input" type="text" id="input-example-1" placeholder="Name"> </div> </div> <!-- form structure --> </form> Voici un exemple complet: {{Horizontal forms}} !Form sizes
{{Formspree||caption}}
Confirmez votre adresse mail, par exemple: A l'adresse https://formspree.io/{{!!myname}}@{{!!domain}} Voir exemple pratique: http://tobibeer.github.io/tb5/#Contact Fournir l'adresse du serveur sur lequel le wiki est visible sur internet: https://prolegomenes.github.io/learn/ Tests non terminés à cause du Capcha <<< ; Tidlers requis: *$:/cssContact pour le CSS de la forme *[[ContactFormspree]] <<< ; Encore un souci lié à ma situation géographique...: All forms come with reCAPTCHA, which uses advanced machine learning techniques to distinguish between humans and bots, so for most forms this isn't necessary. Sauf que le serveur ~FormSpree le demande quand même. [ext[reCAPTCHA|https://www.google.com/recaptcha/intro/]] c'est Google. Sinon, ça a l'air de fonctionner correctement Voir aussi : [[Envoyer un mail depuis TiddlyWiki]]
{{Formula||title}}
{{FormulaExpenses||title}}
An ''Expression'' consists of one or more [[operands|FormulaOperand]] with [[operators|FormulaOperator]] acting on them. {{FormulaOperand}} {{FormulaOperators}}
{{FormulaOperand||title}}
An ''Operand'' may be: |Operand type|example|h |[[Parenthesized Expression]]|`(2+4)`| |[[Function Call]]|`add(2, 2)`| |[[Transclusion|Transclusion in a formula]]|`{{Apples!!count}}`| |[[Variable]]|`<<currentTiddler>>`| |[[Filter|Filtres]]|`[tag[Expenses]get[value]]`| |[[Number Literal]]|`123.456` or `4` or `.001`| |[[String Literal]]|`"kittens"` or `'kittens'`| |[[Array Literal]]|`{1, 2, 3}`| |[[Regular Expression Literal]]|`/kittens/g`| |[[Cell Reference]]|`B3`| |[[Let Expression|LetConstruct]]|`let(x=2):(x+x)`| |[[Function]]|`function(x):(x*x)`| |[[Local Variable|LocalVariable]]|`myvar`|
\define t_num() [[number|NumberValue]] \define t_str() [[string|StringValue]] \define t_arr() [[array|ArrayValue]] \define t_bool() [[boolean|BooleanValue]] !Introduction ''Operators'' let you write concise math functions with automatic prededence. For example, the formula: `2+2` Evaluates to 4. !Operators |Operator|Result|Function|h |`+a`|<<t_num>>|Returns the argument.| |`-a`|<<t_num>>|Negates the argument.| |`a+b`|<<t_num>>|Adds numbers `a` and `b`.| |`a-b`|<<t_num>>|Subtracts `b` from `a`.| |`a*b`|<<t_num>>|Multiplies numbers `a` and `b`.| |`a/b`|<<t_num>>|Divides `a` by `b`.| |`a^b`|<<t_num>>|Raises base `a` to exponent `b`.| |`a=b`|<<t_bool>>|Compare `a` with `b`.| |`a<>b`|~|~| |`a>b`|~|~| |`a<b`|~|~| |`a<=b`|~|~| |`a>=b`|~|~| |`a%` |<<t_num>>|Divides `a` by 100.| |`a&b`|<<t_str>>|Appends `a` and `b` as strings.|
\define example(what, code) <tr><th>$what$</th><td>`$code$`</td><td>$code$</td></tr> !Welcome! This wiki demonstrates the ''Formula'' plugin for TiddlyWiki (version {{$:/plugins/ebalster/formula!!version}}). The plugin is designed to give TiddlyWiki the ability to process numbers and other data just like popular spreadsheet software, with the additional flexibility of functional programming for those who need it. It's a work in progress so please report any issues you find, preferably [[here on GitHub|https://github.com/EvanBalster/TiddlyWikiFormula/issues]].<br/>(This wiki is running TiddlyWiki <<version>>.) !Get the Plugin <<< Drag-and-drop this to your wiki: {{$:/plugins/ebalster/formula||$:/core/ui/Components/plugin-info}} <<< !Features! <table> <tr><th></th><th>code</th><th>result</th></tr> <<example numbers "(= 2 =)">> <<example math "(= 2+3*4 =)">> <<example functions "(= pow(2, 3) =)">> <<example comparison "(= 2+3*4 > 12 =)">> <<example transclusion "(= {{Soda-Pop!!value}} =)">> <$macrocall $name=example what=variables code="(= <<now>> =)"/> <<example filters "(= [tag[Expenses]] =)">> <<example "complex<br/>formulas" "(= round(5*sum([tag[Expenses]get[value]]), 2) =)">> <<example strings """(= "hello" =)""">> <<example concatenation """(= '$' & 45.23*12 & " cost" =)""">> <<example locals """(= let(answer = 6*7) : ('answer: ' & answer) =)""">> <<example functions """(= let(square = function(x):(x*x)) : (square(2)) =)""">> </table> (Precision set to <<formulaFixed>> decimal places) !Try Me {{Try Me}} !Learn More * Usage ** [[Formulas in WikiText]] ** [[Formulas as Tag Attributes]] ** [[Syntax]] ** [[Functions]] ** [[Operators]] ** [[FormulaWidget]] ** [[FormulaVarsWidget]] ** [[FormulaMacro]] ** [[range Operator]] ** [[Condition Plugin]] (if, else and else-if) * Under the hood ** [[ChangeLog]] ** [[Extending Formulas]] ** [[Design|Formula Plugin/Design]] ** [[Source Code]] * Demos & Fun Stuff ** [ext[Demo: Conway's Game of Life|http://evanbalster.com/tiddlywiki/formulas.html#Demo%3A%20Conway's%20Game%20of%20Life]] (naturally) ** [ext[Auto-Map|http://evanbalster.com/tiddlywiki/formulas.html#Auto-Map]] ** [ext[Demo: Starburst|http://evanbalster.com/tiddlywiki/formulas.html#Demo%3A%20Starburst]] ** [ext[Harmonic Lattice|http://evanbalster.com/tiddlywiki/formulas.html#Harmonic%20Lattice]] ** [ext[Real Projective Line|http://evanbalster.com/tiddlywiki/formulas.html#Real%20Projective%20Line]] ** [[Demo: Tabulator|FormulaTabulator]] ** [[Spreadsheet Prototype|FormulaSpreadSheet]] !Contributions & Feedback * [[TiddlyWikiFormula GitHub|https://github.com/EvanBalster/TiddlyWikiFormula]] * [[TiddlyWiki Mailing List|https://groups.google.com/forum/#!topic/tiddlywiki/bfInUWhAtzo]] This plugin is written by [ext[Evan Balster|http://evanbalster.com/tiddlywiki/formulas.html#Evan%20Balster]].
<$reveal state="$:/state/formulas" type="match" text="yes"><$button type="set" set="$:/state/formulas" setTo="no">Results</$button> </$reveal> <$reveal state="$:/state/formulas" type="nomatch" text="yes"> <$button type="set" set="$:/state/formulas" setTo="yes">Formulas</$button></$reveal>
Formulas are created with a "mushroom bracket" syntax: ``` (= 2 =) (= add(2, 3) =) (= "That's all, folks!" =) ``` Values in tiddler fields can be replaced by formulas using the same notation, allowing formulas to be [[transcluded|Transclusion]] into other formulas. See [[Syntax]] for more about this notation. !!Formatting Numbers The `<$formula>` widget includes attributes to control how numbers are formatted back into text. The variables `<<formulaPrecision>>` and `<<formulaFixed>>` can be defined to control number formatting in WikiText formulas, as well as any `<$formula>` widgets where these are left unspecified. For example, an application calculating dollars and cents might define a fixed display precision of two decimal points: ``` \define formulaFixed() 2 (= sum([tag[Expenses]get[value]]) =) ``` This will produce a nice round result, like 3.52, as opposed to the raw floating-point value which could be something like 3.5199999999999996. !Examples ``` (= sum([tag[Expenses]get[value]]) =) ``` (= multiply(2, sum([tag[Expenses]get[value]])) =)
{{FormulaSpreadSheet||title}}
A Formula is written as an [[FormulaExpression]] inside "mushroom brackets" `(= =)`. Formulas may contain [[Comments]] in `// line` or `/* multiline */` form. {{FormulaExpression}}
{{FormulaTabulator||title}}
<!-- note: we want dates in this format, and numbers displayed with two digits after the decimal point. --> <$vars formulaDateFormat="DD/mmm/YYYY" formulaFixed="2"> <table> <!-- This first row is the table header. --> <tr> <th>Date</th> <th>Description</th> <th>Cost</th> </tr> <!-- This $list widget will show each of our expenses. --> <$list filter="[prefix[Formula]tag[Expense]]"> <tr> <td> <$link>(= {{!!date}} =)</$link> </td> <td> {{!!summary}} </td> <td> {{!!cost}} </td> </tr> </$list> <!-- This row calculates a total. --> <tr> <td colspan="3"> <hr/> </td> </tr> <!-- This row calculates a total using SUM. --> <tr> <th> </th> <th> TOTAL: </th> <th> (= sum([prefix[Formula]tag[Expense]get[cost]]) =) </th> </tr> <!-- This row shows our average per day. This is a bit more complex! --> <tr> <td> </td> <td> Average per day (December): </td> <td> (= sum([prefix[Formula]tag[Expense]get[cost]]) / 31 =) </td> </tr> </table> </$vars>
*Cette plateforme de discussion est propulsée par [[Discourse|https://www.discourse.org]]
Ensemble d'outils constituant les fondations d'un logiciel informatique ou d'applications web, et destiné autant à faciliter le travail qu'à augmenter la productivité du programmateur qui l'utilisera. Exemple : Un framework d'un logiciel de dessin contiendra des pinceaux, des palettes de couleurs, etc.,
{{Framework||caption}}
<<ONP Kiwi Cerise Clémentine "#86f151" "#C9232A" "#FF9671">>
Avec http://markforster.squarespace.com/french/ Avec https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg87241.html Originellement ce plugin avait pour objectif de gérer une ToDo list `F`ragments of `T`ext : capturer et organiser des notes rapides Principe: Les notes apparaissant dans la liste sont enregistrées comme titres de Tiddlers et peuvent être utilisées comme n'importe que autre tiddler. Les actions possibles sur les éléments de liste sont intentionnellement r'duites; *Ajouter une note en premier sur la liste *Transférer une note en premier sur la liste *Supprimer une note de la liste. Souvent, les éléments les plus récents sont ceux qui sont les plus intéressants. Tous les articles qui sont encore d'intérêt et plongent trop loin dans la liste peuvent être ré-envoyé en tête de la liste. Les articles qui ne sont pas d'intérêt continueront à descendre dans la liste et pourront faire l'objet d'un examen lors d'une révision générale des éléments de la liste. Une option supplémentaire fournis une barre réservée aux tags pourêtre en mesure de taguer facilement les notes de votre liste par Glisser/Déposer.
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
! <$view field="title"/> <$transclude/>
! <span title="Edit section"><$button message="tw-edit-tiddler" param={{!!title}} class="btn-invisible"><$view field="title"/></$button></span> <$transclude/>
A ''Function Call'' is written as a [[function name|Functions]] followed by a parenthesized list of parameters, each of which is an [[Expression]]: ``` multiply(2.5, {{Apples!!number}}) ``` Functions with zero arguments, like `pi`, may omit the parentheses.
For people who ♥ letters, numbers, punctuation, &c Also found here: *Temps : ◉◉◉◎◎ *Niveau : ★★★☆☆
Générateur de favicon
{{Générateurs||caption}}
Sur ce wiki, la table des matières est contenue dans le Tiddler [[TableOfContents]] : ``` <<toc-selective-expandable 'TableOfContents' sort[sub.num]">> ``` Différentes présentations sont cependant possible. Elles sont générées par les macros contenues dans le tiddler [[$:/core/macros/toc]] Voir [[Macros Tables des Matières|Table-of-Contents Macros]] et sur le [[site officiel|https://tiddlywiki.com/#Table-of-Contents%20Macros]] Voir également [[TocFilter]]. Il y a des [[exemples attachés|TocFilterExemples]]
Lorsque vous imprimez un Tiddler, peut être ne souhaitez vous pas y voir reproduit toutes les informations qui y sont contenues. Par exemple cacher son titre ou son sous-titre, ou encore les tags qui y sont associé. Ceci se gère via le code CSS de votre template via la commande `@media print` Par exemple, cacher le sous-titre des Tiddlers imprimés se fera en ajoutant le code suivant à votre CSS: ``` @media print { .tc-subtitle {display: none; } } ``` Pour cacher les Titre, Sous-Titre et liste de tags à l'impression d'un Tiddler, utiliser ce CSS: ``` @media print { body.tc-body .tc-tiddler-view-frame .tc-subtitle, body.tc-body .tc-tiddler-view-frame .tc-tags-wrapper {display: none;} } @media print { body.tc-body .tc-tiddler-view-frame .tc-title, body.tc-body .tc-tiddler-view-frame .tc-tags-wrapper {display: none;} } ``` <div class="attention"> Pas encore bien compris<br/> .tc-subtitle {display: none; } est bien pris en compte. Un test avec .tc-title ne fonctionne pas. Comment se fait il que .tc-subtitle fonctionne alors que la syntaxe correcte pour Titre et sous-titre est body.tc-body .tc-tiddler-view-frame .tc-subtitle ou body.tc-body .tc-tiddler-view-frame .tc-title ? </div> Sur le présent wiki, une icone {{$:/tesseract/Moments/TitleIcon}} ~~est~~ était positionnée devant le titre de chaque Tiddler. Pour cacher cette icône à l'impression, ajouter le code CSS suivant: ``` @media print { .tc-titlebar {display: none;} } ```
Cette technique ne fonctionne pas forcément dans tous les contextes: cela dépend notamment de l'OS du navigateur utilisée et de sa version. À titre personnel, sur windows 10 avec le navigateur Firefox en version xxx, je ne rencontre pas de problèmes. Ilsuffit d'insérer dans votre Tiddler et à l'endroit désiré le code suivant: `<div style="page-break-before:always;">Page 2</div>`
Gérer une base de données Cours, Classes et étudiants, sans faire appel à quelque plugin que ce soit. Les trois éléments les plus importants sont les suivants ; * __''GROUPS''__ Un groupe peut aussi être décrit comme un cours. Le tiddler est tagué "group" et son titre est affiché en rouge. * __''CLASSES''__ Une classe peut aussi être décrite comme une session. Le tiddler est tagué "class" et son titre est affiché en bleu. Un champ libellé group est utilisé pour déterminer à quel GROUPE/COURS la classe appartient. Les tags sont utilisés pour rattacher les étudiants qui participent à la classe. * __''STUDENTS''__ Les étudiants sont tagués "student" et les Groups/Courses auxquels ils ont participé sont stockés dans des tags.
Il y a deux solutions proposées pour gérer la taille des polices de caractères (font size): :$:/jd/Buttons/font-size :$:/TiddlerFontOptions ;1- `$:/jd/Buttons/font-size` Contrôles corrélés au thème Vanilla. Le tiddler est tagué `$:/tags/PageControls` et contôle le tiddler `$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize` ;2- `$:/TiddlerFontOptions` Le Tiddler `$:/TiddlerFontOptions` est lié à la macro `\define thisFontSize(size)` qui est indépendante du thème Vanilla. La valeur (taille) de la police est stockée dans le tiddler `$:/state/Site Accessability Options` Vous disposez donc de deux approches différentes pour gérer la taille des polices. !!Utilisation Dans la SideBar, les 3 boutons suivants sont disponibles: :''+'' et ''−'' pour la solution 1 :{{$:/core/ui/Buttons/typography}} pour la solution 2 Attention: Une valeur indiquée dans le tiddler `$:/TiddlerFontOptions` préséance la valeur portée dans le tiddler `$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize` On utilise donc l'une des deux solutions pas les deux en même temps.
;Modifications du source TiddlyWiki et ajout d'un Tiddler tagué $:/tags/ViewTemplate --- Le shadow Tiddler $:/core/ui/ViewTemplate/subtitle a été modifié comme suit : {{$:/core/ui/ViewTemplate/subtitle||code}} La date de création d'un tiddler apparaît sous les boutons de contrôle des tiddlers <div class="attention"> Attention : À la prochaine mise-à-jour, ce tiddler sera à modifier de nouveau </div> Le tiddler LastModified a été crée comme suit: {{LastModified||code}} La date de dernières modifications apparaît en fin de texte.
#[ext[Il faut comprendre cet article issu du site officiel|https://tiddlywiki.com/#HTML%20in%20WikiText]] #[ext[Voyez ici la traduction de l'article en français (issue d'une version précédente de TiddlyWiki ?)|https://tiddlywiki.com/languages/fr-FR/index.html#HTML%20in%20WikiText]] #[[Que vous pouvez aussi retrouver sur ce wiki|HTML in WikiText]] Dans le contexte de GridLex: #Vous devez sauter deux lignes après toute balise HTML ouvrante si son contenu contient du code wikitext en mode bloc (`!`, `*`, `#`, `|` (tabulations) ...) ou s'il contient un tiddler transclus `{{NomDuTiddler}}`, ou le contenu d'un champ par exemple `{{NomDuTiddler!!champ}}` ou si vous souhaitez effectuer des sauts de ligne sans devoir utiliser la balise `<br/>`. Voyez le tiddler de démonstration [[GridLex2]] !!Utilisation !!!Via Tiddler normal: Contenu transclus dans la grille ``` <div class="grid"> <div class="col-10"> {{TiddlerData1}} </div> <div class="col-2"> {{TiddlerData2}} </div> </div> ``` !!!Via Tiddler de type `$:/tags/ViewTemplate` Avec contenu piloté par une macro. Grille d'un coté, données de l'autre, via transclusion. présentation [ext[KANBAN|https://ibnishak.github.io/Tesseract/projects/tekan/Tekan.html]]
Adaptation pour TW5. Voir exemple: https://bramp.github.io/js-sequence-diagrams/
Dans le processus normal de TiddlyWiki, un tiddler en mode édition (brouillon ou draft) modifie son nom en le faisant précéder des mots "Draft of". Pour exemple, le titre de ce tiddler en mode draft est : `Draft of 'get real tiddler title in edit/draft mode'` On peut changer ce comportement et conserver le nom du tiddler courant, de sorte qu'il reste identique que l'on soit en mode visu ou en mode édition comme suit: ``` <$list filter=[all[current]get[draft.of]] emptyMessage={{!!title}}/> ``` ;Soit : <$list filter=[all[current]get[draft.of]] emptyMessage={{!!title}}/> En utilisant donc le [ext[filtre opérateur get|https://tiddlywiki.com/#FilterOperator%3A%20get]] À mon avis, ce type d'utilisation n'est pas souhaitable, dans la mesure où le draft d'un tiddler est un tiddler à part entière. Lorsqu'un tiddler est modifié, on a bien deux tiddlers différents, le tiddler draft déversant les modifications effectuées dans le tiddler source puis étant supprimé lors de sa validation. Tant que le draft n'est pas validé, le source n'est pas modifié. Avoir durant une transaction deux noms de tiddlers identiques pour deux tiddlers différents n'est pas souhaitable
{{GetOperator||caption}}
Les Icônes de Github pour GitHub
Everybody involved in TiddlyWiki should pay attention to this disillusioned topic. For many reasons people may not want to use google applications (and think sometimes it is just because they can not use them). Google sucks, but it is everywhere. To take a closer look, Google dominant position is incredible About me, i get rid of google, long time ago, for personal reasons. It is mandatory. But it is for those same reasons i was looking for new open tools and found TiddlyWiki. TiddlyWiki is respectful of everything, and anything i read about it shows a great involved community, respectful of everything as well. So why such a great people with a so magnificent tool choose to spread everything through Google. Why they did not choose alternate ways
<svg height="280" width="500"> <polyline points="0,40 40,40 40,80 80,80 80,120 120,120 120,150" style="fill:white;stroke:red;stroke-width:4" /> <line x1="0" y1="0" x2="500" y2="0" style="stroke:rgb(255,0,0);stroke-width:2" /> <line x1="0" y1="50" x2="500" y2="50" style="stroke:rgb(255,0,0);stroke-width:2" /> <line x1="0" y1="100" x2="500" y2="100" style="stroke:rgb(255,0,0);stroke-width:2" /> <line x1="0" y1="150" x2="500" y2="150" style="stroke:rgb(255,0,0);stroke-width:2" /> <line x1="0" y1="0" x2="0" y2="150" style="stroke:rgb(255,0,0);stroke-width:2" /> <text x="200" y="170" fill="blue">Titre du graph</text> <text x="250" y="90" fill="green" transform="rotate(0 250,90)">Horizontal</text> <text x="490" y="30" fill="blue" transform="rotate(90 490,30)">Texte vertical de haut en bas</text> <text x="15" y="120" fill="black" transform="rotate(270 15,120)">Texte vertical de bas en haut</text> <polygon points="220,30 270,30 270,150 220,150 " style="fill:lime;stroke:purple;stroke-width:1; fill-opacity:0.2" /> <polygon points="270,55 320,55 320,150 270,150 " style="fill:GOLD;stroke:purple;stroke-width:1; fill-opacity:0.2" /> <polygon points="320,25 370,25 370,150 320,150 " style="fill:purple;stroke:purple;stroke-width:1; fill-opacity:0.2" /> <polyline points="40,40 245,30 295,55 345,25" style="fill:none; stroke:black;stroke-width:3"/> <circle cx="40" cy="40" r="4" stroke="black" stroke-width="3" fill="red" /> <circle cx="245" cy="30" r="4" stroke="black" stroke-width="3" fill="red" /> <circle cx="295" cy="55" r="4" stroke="black" stroke-width="3" fill="red" /> <circle cx="345" cy="25" r="4" stroke="black" stroke-width="3" fill="red" /> <polyline points="245,30 295,55 345,25" style="fill:none; stroke:red; stroke-width:1"/> </svg>
<style> svg.graph { height: 500px; width: 800px; } svg.graph .grid { stroke: white; stroke-dasharray: 1 2; stroke-width: 1; } svg.graph .points { stroke: white; stroke-width: 3; } svg.graph .first_set { fill: #00554d; } svg.graph .surfaces { fill-opacity: 0.5; } svg.graph .grid.double { stroke-opacity: 0.4; } svg.graph .labels { font-family: Arial; font-size: 14px; kerning: 1; } svg.graph .labels.x-labels { text-anchor: middle; } svg.graph .labels.y-labels { text-anchor: end; } </style> <svg class="graph" > <g class="grid x-grid" id="xGrid"> <line x1="113" x2="113" y1="10" y2="380"></line> <line x1="259" x2="259" y1="10" y2="380"></line> <line x1="405" x2="405" y1="10" y2="380"></line> <line x1="551" x2="551" y1="10" y2="380"></line> <line x1="697" x2="697" y1="10" y2="380"></line> </g> <g class="grid y-grid" id="yGrid"> <line x1="86" x2="697" y1="10" y2="10"></line> <line x1="86" x2="697" y1="68" y2="68"></line> <line x1="86" x2="697" y1="126" y2="126"></line> <line x1="86" x2="697" y1="185" y2="185"></line> <line x1="86" x2="697" y1="243" y2="243"></line> <line x1="86" x2="697" y1="301" y2="301"></line> <line x1="86" x2="697" y1="360" y2="360"></line> </g> <g class="surfaces"> <path class="first_set" d="M113,360 L113,192 L259,171 L405,179 L551,200 L697,204 L697,360 Z"></path> </g> <use class="grid double" xlink:href="#xGrid" style=""></use> <use class="grid double" xlink:href="#yGrid" style=""></use> <g class="first_set points" data-setname="Our first data set"> <circle cx="113" cy="192" data-value="7.2" r="5"></circle> <circle cx="259" cy="171" data-value="8.1" r="5"></circle> <circle cx="405" cy="179" data-value="7.7" r="5"></circle> <circle cx="551" cy="200" data-value="6.8" r="5"></circle> <circle cx="697" cy="204" data-value="6.7" r="5"></circle> </g> <g class="labels x-labels"> <text x="113" y="400">2008</text> <text x="259" y="400">2009</text> <text x="405" y="400">2010</text> <text x="551" y="400">2011</text> <text x="697" y="400">2012</text> </g> <g class="labels y-labels"> <text x="80" y="15">15</text> <text x="80" y="131">10</text> <text x="80" y="248">5</text> <text x="80" y="365">0</text> <text x="50" y="15">Weeks</text> </g> </svg>
<line x1="0" y1="0" x2="0" y2="250" style=" stroke:rgb(255,0,0);stroke-width:2" /> <line x1="50" y1="0" x2="50" y2="260" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=50 y=270>50</text> <line x1="100" y1="0" x2="100" y2="260" stroke-dasharray="5, 5" style=" stroke:rgb(255,0,0);stroke-width:1" /><text x=100 y=270>100</text> <line x1="150" y1="0" x2="150" y2="260" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=150 y=270>150</text> <line x1="200" y1="0" x2="200" y2="260" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=200 y=270>200</text> <line x1="250" y1="0" x2="250" y2="250" style="stroke:rgb(255,0,0);stroke-width:2" /> <line x1="0" y1="0" x2="250" y2="0" style="stroke:rgb(255,0,0);stroke-width:2" /> <line x1="0" y1="50" x2="260" y2="50" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=260 y=50>50</text> <line x1="0" y1="100" x2="260" y2="100" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=260 y=100>100</text> <line x1="0" y1="150" x2="260" y2="150" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=260 y=150>150</text> <line x1="0" y1="200" x2="260" y2="200" stroke-dasharray="5, 5" style="stroke:rgb(255,0,0);stroke-width:1" /><text x=260 y=200>200</text> <line x1="0" y1="250" x2="250" y2="250" style="stroke:rgb(255,0,0);stroke-width:2" />
{{GridLex||caption}}
Moyens de communication. Entendez par ce terme quel doit être le comportement des grilles et des colonnes suivant les différents types d'écrans. Par exemple les contenus de 12 colonnes alignées horizontalement sur un écran large seront probablement illisibles sur un écran de smartphone. Comment donc y présenter les données. On décidera peut être de limiter le nombre de colonnes à trois par ligne et donc étaler ces contenus sur 4 lignes pour une meilleure visibilité de lecture. En termes d'application dite responsive on changera donc la taille des colonnes à l'aide des classes suivantes : | CSS Media Query | Applies | Usage |h |@media (max-width: 36em)|Max 576px|_xs-*| |@media (max-width: 48em)|Max 768px|_sm-*| |@media (max-width: 64em)|Max 1024px|_md-*| |@media (max-width: 80em)|Max 1280px|_lg-*| Noter également la possibilité de cacher des colonnes à partir d'une largeur atteinte choisie en utilisant `*-hidden` (par exemple, `col-4_md-6 sm-hidden`)
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgBAMAAACBVGfHAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAALVBMVEX3+vLg8M/2+/Hw9+j9/vv3/PP7/ff+/v2MyEvf78zJ5arf8M3w+Oi63pT///82kHybAAAACHRSTlPV7urr0+np6PHh5g4AAAABYktHRA5vvTBPAAAACXBIWXMAAAFlAAABZQENY3YsAAAAB3RJTUUH4QcRDyka+TGvwQAAADVJREFUKM9jYBREAQIMEh0ooHF4C2jORAGTGKxWgcHqUxB6MUxL7ww0M4angGsoGISVQugQAC38++XBjMlaAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTA3LTE3VDE1OjQxOjI2KzAyOjAwewZp5wAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0wNy0xN1QxNTo0MToyNiswMjowMApb0VsAAAAZdEVYdFNvZnR3YXJlAHd3dy5pbmtzY2FwZS5vcmeb7jwaAAAAV3pUWHRSYXcgcHJvZmlsZSB0eXBlIGlwdGMAAHic4/IMCHFWKCjKT8vMSeVSAAMjCy5jCxMjE0uTFAMTIESANMNkAyOzVCDL2NTIxMzEHMQHy4BIoEouAOoXEXTyQjWVAAAAAElFTkSuQmCC
!!Traitement dans le cas où l'on a plus de 3 colonnes dans une `grid-3` <div class="grid-3_xs-1"> <div class="col"> <div class="demo"> <p>col 1</p> </div> </div> <div class="col"> <div class="demo"> <p>col 2</p> </div> </div> <div class="col"> <div class="demo"> <p>col 3</p> </div> </div> <div class="col"> <div class="demo"> <p>col 4</p> </div> </div> <div class="col"> <div class="demo"> <p>col 5</p> </div> </div> <div class="col"> <div class="demo"> <p>col 6</p> </div> </div> <div class="col"> <div class="demo"> <p>col 7</p> </div> </div> <div class="col"> <div class="demo"> <p>col 8</p> </div> </div> <div class="col"> <div class="demo"> <p>col 9</p> </div> </div> <div class="col"> <div class="demo"> <p>col 10</p> </div> </div> </div>
!!Une grille complexe: <table> <tr> <td>Voir en plein écran</td> <td>Revenir en visualisation standard</td> </tr> <tr> <td> À coder </td> <td> À coder </td> </tr> </table> <!-- DÉBUT DE LA GRILLE 1 (1 À 6) --> <div class="grid-2_md-1-equalHeight"> <div class="col grid-column-equalHeight"> <div class="col grid-equalHeight"> <div class="col grid-column-equalHeight"> <div class="col"> <div class="demo demo-left"> <p><strong><$button>1</$button>Top box</strong><br> Lorem ipsum </p> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>2</$button>Middle box</strong><br> Lorem ipsum </p> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>3</$button>Bottom box</strong><br> Lorem ipsum </p> </div> </div> </div> <div class="col"> <div class="demo demo-left"> <p> <$button>4</$button>''Center box'' <br> La mise en caractères gras est prise en charge par TiddlyWiki. Les liens internes aussi. Mais pas l'équivalent Wiki des balises `<pre>` et `</pre>`. Il faut utiliser cette balise HTML. </p> </div> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>5</$button>Wide box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. </p></div> </div> </div> <div class="col_md-12_md-first"> <div class="demo demo-left"> <p> <strong><$button>6</$button>Tall box</strong> <br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit. Vestibulum volutpat tellus diam, consequat gravida libero rhoncus ut. Morbi maximus, leo sit amet vehicula eleifend, nunc dui porta orci, quis semper odio felis ut quam. <br> <br> Suspendisse varius ligula in molestie lacinia. Maecenas varius eget ligula a sagittis. Pellentesque interdum, nisl nec interdum maximus, augue diam porttitor lorem, et sollicitudin felis neque sit amet erat. Maecenas imperdiet felis nisi, fringilla luctus felis hendrerit sit amet. Aenean vitae gravida diam, finibus dignissim turpis. Sed eget varius ligula, at volutpat tortor. <br> <br> Integer sollicitudin, tortor a mattis commodo, velit urna rhoncus erat, vitae congue lectus dolor consequat libero. Donec leo ligula, maximus et pellentesque sed, gravida a metus. Cras ullamcorper a nunc ac porta. Aliquam ut aliquet lacus, quis faucibus libero. Quisque non semper leo. </p> </div> </div> </div> <!-- FIN DE LA GRILLE 1 (1 À 6) --> <!-- DÉBUT DE LA GRILLE 2 (7 ET 8) --> <div class="grid-equalHeight"> <div class="col-2"> <div class="demo demo-left"> <$button>7</$button>''Side box'' Lorem ipsum dolor sit amet, consectetur adipisicing elit! </div> </div> <div class="col"> <div class="demo demo-left"> !!<$button>8</$button>''Main box'' La transclusion de tiddlers fonctionne, mais les balises wiki `<ul>` `<li>` ne sont pas prises en compte. {{GridLexDoc}} </div> </div> </div> <!-- FIN DE LA GRILLE 2 (7 ET 8) --> <!-- DÉBUT DE LA GRILLE 3 (9 À 14 ) --> <div class="grid-equalHeight_md-1"> <div class="col-5_md-12_md-first"> <div class="demo demo-left"> <p><strong><$button>9</$button>Tall box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit. Vestibulum volutpat tellus diam, consequat gravida libero rhoncus ut. Morbi maximus, leo sit amet vehicula eleifend, nunc dui porta orci, quis semper odio felis ut quam.<br><br> Suspendisse varius ligula in molestie lacinia. Maecenas varius eget ligula a sagittis. Pellentesque interdum, nisl nec interdum maximus, augue diam porttitor lorem, et sollicitudin felis neque sit amet erat. Maecenas imperdiet felis nisi, fringilla luctus felis hendrerit sit amet. Aenean vitae gravida diam, finibus dignissim turpis. Sed eget varius ligula, at volutpat tortor. </p> </div> </div> <div class="col grid-column-equalHeight"> <div class="col grid-equalHeight"> <div class="col-9"> <div class="demo demo-left"> <p><strong><$button>10</$button>Wide box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. </p> </div> </div> <div class="col-3"> <div class="demo demo-left"> <p><strong><$button>11</$button>Small box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> </div> <div class="col grid-equalHeight"> <div class="col grid-column-equalHeight"> <div class="col"> <div class="demo demo-left"> <p><strong><$button>12</$button>Top box</strong><br> Lorem ipsum </p> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>13</$button>Bottom box</strong><br> Lorem ipsum </p> </div> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>14</$button>Center box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit.</p> </div> </div> </div> </div> </div> <!-- FIN DE LA GRILLE 3 (9 À 14) --> <!-- DÉBUT DE LA GRILLE 4 (15 ET 16) --> <div class="grid-equalHeight"> <div class="col"> <div class="demo demo-left"> <p> <strong><$button>15</$button>Main box</strong> <br/> Les balises `<p>`sont stylisées et incluent une ligne d'espacement horizontal. Les balises `<br/>` sont également requises, les sauts de ligne sans , ne produisants pas d'effet. </p> </div> </div> <div class="col-4"> <div class="demo demo-left"> <p><strong><$button>16</$button>Side box</strong><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores est hic omnis quis unde, voluptatem!</p> </div> </div> </div> <!-- FIN DE LA GRILLE 4 (15 ET 16) --> <!-- DÉBUT DE LA GRILLE 5 (17 À 19) --> <div class="grid-equalHeight"> <div class="col-2"> <div class="demo demo-left"> <p><strong><$button>17</$button>Left</strong><br>Lorem ipsum dolor sit amet.</p> </div> </div> <div class="col-7"> <div class="demo demo-left"> <p><strong><$button>18</$button>Center</strong><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus atque eum id illo inventore iusto minus nobis qui, totam voluptatibus?</p> </div> </div> <div class="col-3"> <div class="demo demo-left"> <p><strong><$button>19</$button>Left</strong><br>Lorem ipsum dolor sit amet.</p> </div> </div> </div> <!-- FIN DE LA GRILLE 5 (17 À 19) --> <!-- DÉBUT DE LA GRILLE 6 (20) --> <div class="grid-center"> <div class="col-7"> <div class="demo"> <p><strong><$button>20</$button>Center</strong><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit!</p> </div> </div> </div> <!-- FIN DE LA GRILLE 6 (20) -->
<h2>Grille sans goutières:</h2> <div class="grid-noGutter-equalHeight withBorder"> <div class="col-12"> <div class="demo"> <p>col-12</p> </div> </div> <div class="col-6"> <div class="demo"> <p>col-6</p> </div> </div> <div class="col-6"> <div class="demo"> <p>col-6</p> </div> </div> <div class="col-4"> <div class="demo"> <p>col-4</p> </div> </div> <div class="col-8"> <div class="demo"> <p>col-8</p> </div> </div> <div class="col-3"> <div class="demo"> <p>col-3</p> </div> </div> <div class="col-9"> <div class="demo"> <p>col-9</p> </div> </div> <div class="col-1_xs-2"> <div class="demo"> <p>col-1</p> </div> </div> <div class="col-11_xs-10"> <div class="demo"> <p>col-11</p> </div> </div> </div>
<<dbadge "~GridLex" "Automatic">> <div align="center"> <$button to="GridLexAuto" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Il y a <$count filter="[tag[GridLexAuto]]"/> Tiddlers tagués <<tag "GridLexAuto">> </$button> </div> <$details summary="Résumé" open="yes">Just add number of cells you want in the grid (`.grid > .col`):</$details> <table> <tr> <th align="center">Tiddler</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[GridLexAuto]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!title}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table>
Basé sur Flexbox (CSS Flexible Box Layout Module), Gridlex est un système CSS de grille permettant de créer Layouts et ~SubModules. !!Ce que l'on peut en attendre? <ul> <li><i class="fa fa-arrow-right"></i> En standard chaque colonne est de la même taille que les autres colonnes de la grille.</li> <li><i class="fa fa-arrow-right"></i> Mais il est possible d'ajouter des classes de taille de manière individuelle sur les colonnes.</li> <li><i class="fa fa-arrow-right"></i> Si votre design doit être "responsive", vous pouvez ajouter des classes basées sur les "media-queries".</li> <li><i class="fa fa-arrow-right"></i> Positionnement Haut, Bas ou Milieu pour la grille, et pour les colonnes.</li> <li><i class="fa fa-arrow-right"></i> Les grilles peuvent être encapsulées, toujours et directement dans une colonne.</li> </ul>
<style> .tc-drop-down-GridLex{ width: 100%; border-style: solid; border-width: 1px; padding: .5rem; border-radius: .125rem; margin-top: .25rem; line-height: 1.5; text-shadow: none; border-color: rgb(102, 102, 102); background-color: rgb(250, 250, 250); } </style> <$button popup="$:/SamplePopupState">Pop me up!</$button> <$reveal type="popup" state="$:/SamplePopupState"> <div class="tc-drop-down-GridLex"> !!Une grille complexe: <!-- DÉBUT DE LA GRILLE 1 (1 À 6) --> <div class="grid-2_md-1-equalHeight"> <div class="col grid-column-equalHeight"> <div class="col grid-equalHeight"> <div class="col grid-column-equalHeight"> <div class="col"> <div class="demo demo-left"> <p><strong><$button>1</$button>Top box</strong><br> Lorem ipsum </p> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>2</$button>Middle box</strong><br> Lorem ipsum </p> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>3</$button>Bottom box</strong><br> Lorem ipsum </p> </div> </div> </div> <div class="col"> <div class="demo demo-left"> <p> <$button>4</$button>''Center box'' <br> La mise en caractères gras est prise en charge par TiddlyWiki. Les liens internes aussi. Mais pas l'équivalent Wiki des balises `<pre>` et `</pre>`. Il faut utiliser cette balise HTML. </p> </div> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>5</$button>Wide box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. </p></div> </div> </div> <div class="col_md-12_md-first"> <div class="demo demo-left"> <p> <strong><$button>6</$button>Tall box</strong> <br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit. Vestibulum volutpat tellus diam, consequat gravida libero rhoncus ut. Morbi maximus, leo sit amet vehicula eleifend, nunc dui porta orci, quis semper odio felis ut quam. <br> <br> Suspendisse varius ligula in molestie lacinia. Maecenas varius eget ligula a sagittis. Pellentesque interdum, nisl nec interdum maximus, augue diam porttitor lorem, et sollicitudin felis neque sit amet erat. Maecenas imperdiet felis nisi, fringilla luctus felis hendrerit sit amet. Aenean vitae gravida diam, finibus dignissim turpis. Sed eget varius ligula, at volutpat tortor. <br> <br> Integer sollicitudin, tortor a mattis commodo, velit urna rhoncus erat, vitae congue lectus dolor consequat libero. Donec leo ligula, maximus et pellentesque sed, gravida a metus. Cras ullamcorper a nunc ac porta. Aliquam ut aliquet lacus, quis faucibus libero. Quisque non semper leo. </p> </div> </div> </div> <!-- FIN DE LA GRILLE 1 (1 À 6) --> <!-- DÉBUT DE LA GRILLE 2 (7 ET 8) --> <div class="grid-equalHeight"> <div class="col-2"> <div class="demo demo-left"> <$button>7</$button>''Side box'' Lorem ipsum dolor sit amet, consectetur adipisicing elit! </div> </div> <div class="col"> <div class="demo demo-left"> !!<$button>8</$button>''Main box'' La transclusion de tiddlers fonctionne, mais les balises wiki `<ul>` `<li>` ne sont pas prises en compte. {{GridLexDoc}} </div> </div> </div> <!-- FIN DE LA GRILLE 2 (7 ET 8) --> <!-- DÉBUT DE LA GRILLE 3 (9 À 14 ) --> <div class="grid-equalHeight_md-1"> <div class="col-5_md-12_md-first"> <div class="demo demo-left"> <p><strong><$button>9</$button>Tall box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit. Vestibulum volutpat tellus diam, consequat gravida libero rhoncus ut. Morbi maximus, leo sit amet vehicula eleifend, nunc dui porta orci, quis semper odio felis ut quam.<br><br> Suspendisse varius ligula in molestie lacinia. Maecenas varius eget ligula a sagittis. Pellentesque interdum, nisl nec interdum maximus, augue diam porttitor lorem, et sollicitudin felis neque sit amet erat. Maecenas imperdiet felis nisi, fringilla luctus felis hendrerit sit amet. Aenean vitae gravida diam, finibus dignissim turpis. Sed eget varius ligula, at volutpat tortor. </p> </div> </div> <div class="col grid-column-equalHeight"> <div class="col grid-equalHeight"> <div class="col-9"> <div class="demo demo-left"> <p><strong><$button>10</$button>Wide box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin ornare magna eros, eu pellentesque tortor vestibulum ut. Maecenas non massa sem. Etiam finibus odio quis feugiat facilisis. </p> </div> </div> <div class="col-3"> <div class="demo demo-left"> <p><strong><$button>11</$button>Small box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> </div> <div class="col grid-equalHeight"> <div class="col grid-column-equalHeight"> <div class="col"> <div class="demo demo-left"> <p><strong><$button>12</$button>Top box</strong><br> Lorem ipsum </p> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>13</$button>Bottom box</strong><br> Lorem ipsum </p> </div> </div> </div> <div class="col"> <div class="demo demo-left"> <p><strong><$button>14</$button>Center box</strong><br> Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam semper diam at erat pulvinar, at pulvinar felis blandit.</p> </div> </div> </div> </div> </div> <!-- FIN DE LA GRILLE 3 (9 À 14) --> <!-- DÉBUT DE LA GRILLE 4 (15 ET 16) --> <div class="grid-equalHeight"> <div class="col"> <div class="demo demo-left"> <p> <strong><$button>15</$button>Main box</strong> <br/> Les balises `<p>`sont stylisées et incluent une ligne d'espacement horizontal. Les balises `<br/>` sont également requises, les sauts de ligne sans , ne produisants pas d'effet. </p> </div> </div> <div class="col-4"> <div class="demo demo-left"> <p><strong><$button>16</$button>Side box</strong><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolores est hic omnis quis unde, voluptatem!</p> </div> </div> </div> <!-- FIN DE LA GRILLE 4 (15 ET 16) --> <!-- DÉBUT DE LA GRILLE 5 (17 À 19) --> <div class="grid-equalHeight"> <div class="col-2"> <div class="demo demo-left"> <p><strong><$button>17</$button>Left</strong><br>Lorem ipsum dolor sit amet.</p> </div> </div> <div class="col-7"> <div class="demo demo-left"> <p><strong><$button>18</$button>Center</strong><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus atque eum id illo inventore iusto minus nobis qui, totam voluptatibus?</p> </div> </div> <div class="col-3"> <div class="demo demo-left"> <p><strong><$button>19</$button>Left</strong><br>Lorem ipsum dolor sit amet.</p> </div> </div> </div> <!-- FIN DE LA GRILLE 5 (17 À 19) --> <!-- DÉBUT DE LA GRILLE 6 (20) --> <div class="grid-center"> <div class="col-7"> <div class="demo"> <p><strong><$button>20</$button>Center</strong><br>Lorem ipsum dolor sit amet, consectetur adipisicing elit!</p> </div> </div> </div> <!-- FIN DE LA GRILLE 6 (20) --> </div> </$reveal>
<style> .header { background: #8cc84b; position: relative; margin-bottom: 50px; color: white; padding: 4em 0 1em; text-align: center; } .header a { color: inherit; text-decoration: none; } .header:before { background: inherit; content: ''; display: block; height: 50%; left: 0; position: absolute; right: 0; z-index: -1; bottom: 0; transform: skewY(3deg); transform-origin: 0; } .header h1 { display: inline-flex; align-items: center; font-size: 3rem; border-bottom: 10px solid #fff; border-top: 10px solid #fff; border-radius: 18px; padding: .8rem 2.6rem; text-transform: uppercase; margin-bottom: .3em; } .header h1:before { content: ''; position: relative; display: inline-flex; vertical-align: middle; margin-right: 5px; height: 40px; width: 42px; border: 1px solid #8cc84b; background-color: white; background-image: linear-gradient(to top, #8cc84b 2px, transparent 2px), linear-gradient(to left, #8cc84b 2px, transparent 2px), linear-gradient(to left, #8cc84b 2px, transparent 2px); background-size: 100% 50%, 50% 50%, 100%, 100%; background-position: 0 0, 0 100%, 0 0; background-repeat: repeat-y, repeat-x; } .header p { color: #fff; margin: 0 auto; } </style> <header class="header"> <h1>Gridlex</h1> <p>Just a Flexbox Grid System <br>(v2.7.1)</p> </header>
{{GridLexHelpers||caption}}
<<dbadge "~GridLex" "Precise">> <div align="center"> <$button to="GridLexPrecise" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Il y a <$count filter="[tag[GridLexPrecise]]"/> Tiddlers tagués <<tag "GridLexPrecise">> </$button> </div> <$details summary="Résumé" open="yes">Compose cell by cell (`with class like .col-*`)</$details> <table> <tr> <th align="center">Tiddler</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[GridLexPrecise]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!title}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table>
<<dbadge "~GridLex" "Simple">> <div align="center"> <$button to="GridLexSimple" class="tc-summary-button"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Il y a <$count filter="[tag[GridLexSimple]]"/> Tiddlers tagués <<tag "GridLexSimple">> </$button> </div> <$details summary="Résumé"></$details> <table> <tr> <th align="center">Tiddler</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[GridLexSimple]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!title}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table>
``` <div class="grid-1"> <div class="col"> <div class="demo"><p>grid-1</p></div> </div> </div> ``` <div class="grid-1"> <div class="col"> <div class="demo"><p>grid-1</p></div> </div> </div>
<div class="grid"> <div class="col-10_xs-7"> <div class="demo"> <p>col-10</p> </div> </div> <div class="col-2_xs-5"> <div class="demo"> <p>col-2</p> </div> </div> </div>
;`col-11_md-10_xs-8` La première colonne occupera normalement 11/12èmes de la surface totale ; sur un écran dont la taille maximum est de 1024 pixels (dit `_md-*`, ou médium) la première colonne occupera alors 10/12èmes de la surface totale; et sur un écran dont la taille maximum est de 576 pixels (dit `_xs-*`, ou Extra-Small) la première colonne occupera alors 8/12èmes de la surface totale. On remarquera que les paramètres de la seconde colonne complètent ceux de la première de telle sorte que le total de surface soit toujours de 12/12èmes. ;`col-1_md-2_xs-4` Ainsi, la seconde colonne occupera normalement 1/12ème de la surface totale; sur un écran dont la taille maximum est de 1024 pixels, la seconde colonne occupera alors 2/12èmes de la surface totale; et sur un écran dont la taille maximum est de 576 pixels, la seconde colonne occupera 4/12èmes de la surface totale. ;La grille est "responsive" Ceci permet de conserver une taille de colonnes acceptable sur quelque type d'écran que l'on utilise; plus l'écran est petit, plus la surface des colonnes s'ajuste en plus ou en moins pour que les colonnes les plus petites restent tout de même de taille significative sur un petit écran. ``` <div class="grid"> <div class="col-11_md-10_xs-8"> <div class="demo"> <p>col-11</p> </div> </div> <div class="col-1_md-2_xs-4"> <div class="demo"> <p>col-1</p> </div> </div> </div> ``` ;Soit: <div class="grid"> <div class="col-11_md-10_xs-8"> <div class="demo"> <p>col-11</p> </div> </div> <div class="col-1_md-2_xs-4"> <div class="demo"> <p>col-1</p> </div> </div> </div>
<div class="grid"> <div class="col-9"> <div class="demo"> <p>col-9</p> </div> </div> <div class="col-3"> <div class="demo"> <p>col-3</p> </div> </div> </div>
Largeur des colonnes automatiques, sans spécification de taille des cellules. Avec Flex, le nombre détermine la taille (largeur) - (Taille = grille/cellules enfants). ``` <div class="grid"> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> </div> ``` ;Soit: <div class="grid"> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> </div>
``` <div class="grid-2"> <div class="col"> <div class="demo"><p>grid-2</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div> ``` ;Soit: <div class="grid-2"> <div class="col"> <div class="demo"><p>grid-2</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div>
``` <div class="grid-3_xs-1"> <div class="col"> <div class="demo"><p>grid-3</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div> ``` ;Soit: <div class="grid-3_xs-1"> <div class="col"> <div class="demo"><p>grid-3</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div>
``` <div class="grid-4_xs-2"> <div class="col"> <div class="demo"><p>grid-4</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div> ``` ;Soit: <div class="grid-4_xs-2"> <div class="col"> <div class="demo"><p>grid-4</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div>
``` <div class="grid"> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> </div> ``` ;Soit: <div class="grid"> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> <div class="col"> <div class="demo"> <p>auto</p> </div> </div> </div>
``` <div class="grid-5_xs-2"> <div class="col"> <div class="demo"><p>grid-5</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div> ``` ;Soit: <div class="grid-5_xs-2"> <div class="col"> <div class="demo"><p>grid-5</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div>
``` <div class="grid-6_sm-3"> <div class="col"> <div class="demo"><p>grid-6</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div> ``` ;Soit: <div class="grid-6_sm-3"> <div class="col"> <div class="demo"><p>grid-6</p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> <div class="col"> <div class="demo"><p> </p></div> </div> </div>
``` <div class="grid"> <div class="col-12"> <div class="demo"> <p>col-12</p> </div> </div> ``` ;Soit: <div class="grid"> <div class="col-12"> <div class="demo"> <p>col-12</p> </div> </div>
``` .grid -* (1 to 12) _xs-* (1 to 12) _sm-* (1 to 12) _md-* (1 to 12) _lg-* (1 to 12) </div> ``` ``` -center -right -middle -bottom -spaceBetween -spaceAround ``` ``` -reverse -column -column-reverse ``` ``` -noGutter -equalHeight -noBottom -noWrap ```
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
Getting Stuff Done GSD5, or Getting-Stuff-Done 5, is a plugin for TiddlyWiki5 that attempts to combine the workflow and philosophy of David Allen's Getting Things Done with the TiddlyWiki5 platform. GSD5 is heavily influenced by mGSD for TiddlyWiki classic. À implémenter sur ce site
Source installé : [[GSD5]] !Domaines : (realm) Les domaines sont utilisés pour isoler la plupart des autres tiddlers du plugin dans le tableau de bord (dasboard), n’interférant pas ou ne recouvrant pas pas les catégories. Concrètement cela veut dire que les tiddlers rattachés à un domaine ne peuvent normalement pas visualiser les tiddlers d'un autre domaine. On utilisera donc les domaines pour séparer les Actions et les projets en catégories invisibles qui n'ont en principe aucun point commun avec les autres. Par exemple : Personnel, Professionnel, Loisirs. Les domaines Ne disposent pas d'interface utilisateur pour les afficher. Si vous avez besoin de plus d'états tels que "Comportement", ou Travail à faire", "Liste des courses" etc. Utilisez le mécanisme "Contexte" qui est plus approprié pour ces besoins. !Contexte : Un contexte permet d'''étendre le rôle des Actions'' au delà des seuls projets en les ''regroupant par Categories''. Pour ce faire, les contextes utilisent le système des tags de TW5 en traçant toutes les actions qui leur on été associées, permettant ainsi à l'utilisateur de créer des listes personnalisées basees sur ces tags, et de suivre plus facilement ces Actions. !Projets Les projets regroupent les Actions qui ont un ''propos ou un but commun''. !Actions
:Getting Things Done pour TiddlyWiki :Avec la ''version 1.0.4 du 17 Mai 2005''
Un guide d'introduction à TiddlyWiki [EN] *Beginners Help *for First Time and New Users Travail en cours (Sachdev.Suman)
Extrait du site http://tiddlymap.org/ Voici un CSS qui ajoute une petite icone devant un lien s'il est externe. $:/cssExternalLinks A l'origine pour la belle mise en valeur des liens externes. A éplucher. La nouvelle couleur des Tags n'est peut être pas à conserver. ``` Taille et police concernant les contenus de la balise Mono-spaced block formating c'est OK ```
Le traitement habituel des [[paragraphes en WikiTexte|Paragraphs in WikiText]] implique que les retours à la ligne simples sont ignorés, tandis que deux retours à la ligne sont interprétés comme la fin d'un paragraphe. Ce comportement n'est pas pratique pour du texte qui intègre des retours à la ligne -- par exemple, pour de la poésie. ! Syntaxe en bloc Un bloc de contenu délimité par trois caractères "guillemets doubles" `"""` permet d'indiquer que les fins de ligne doivent y être forcées : ``` """ Ceci est une ligne et ceci est une nouvelle ligne tandis que cela est encore une autre ligne et ceci est la dernière excepté celle-ci """ ``` ;Soit : <<< """ Ceci est une ligne et ceci est une nouvelle ligne tandis que cela est encore une autre ligne et ceci est la dernière excepté celle-ci """ <<< ; Remarque * Contrairement à d'autres syntaxes en bloc, celle-ci ne requière pas que ses marqueurs soient seuls sur une ligne : ils pourraient être placés n'importe où, même au milieu du texte. ! Syntaxe HTML Les fins de lignes ne devraient pas être forcées dans un texte courant, car cela peut déformer l'affichage sur des terminaux mobiles. Cependant, dans des cas exceptionnels, la balise [ext[HTML|https://tiddlywiki.com/languages/fr-FR/index.html#HTML%20in%20WikiText]] `<br>` peut être utilisée pour revenir à la ligne sans créer de nouveau paragraphe : <<wikitexte-exemple "Ceci est une première ligne.<br> Ceci est une deuxième ligne.<br>Et cela est une troisième ligne.">> ; Remarque * Plusieurs `<br>` d'affilée permettent de créer artificiellement un espacement de plusieurs lignes.
|purpose|filter the input by field existence| |input|a selection of titles| |suffix|F = optionally, the name of a field. (New in: 5.1.14)| |parameter| F = the name of a field| |output| without suffix or with suffix value<br/>» those input tiddlers in which field F has a non-empty value<br/>suffix field<br/>» those input tiddlers in which field F exists| |`!` output|without suffix or with suffix value<br/>» those input tiddlers in which field F does not exist or has an empty value<br/>suffix field<br/>» those input tiddlers in which field F does not exist| Voir [[Opérateur has (Exemples)]]
{{HasOperator||caption}}
Voici une fonction (Un module TW5) contenue dans un tiddler de type `application/javascript` et contenant le champ `module-type`renseigné du type de [[module|Modules]] ''macro'' Soit la fonction: {{HelloWorld.js||code}} Cette fonction peut être appelée de deux manières: ``` <<HelloWorld Eric>> ``` ;Soit: <<< <<HelloWorld Eric>> <<< et ``` <$macrocall $name="HelloWorld" word="Eric"/> ``` ;Soit: <<< <$macrocall $name="HelloWorld" word="Eric"/> <<< //word correspond au "name" décrit dans params.// Différemment aussi : {{Hello World2}} Dans TW5 il existes 12 macros prédéfinies fonctionnant sur les mêmes principes: La macro [[now.js|$:/core/modules/macros/now.js]] {{$:/core/modules/macros/now.js||code}} Que l'on appelle soit par: ``` <<now>> ``` ;Soit: <<now>> Ou bien par: ``` <$macrocall $name="now" format="0hh:0mm, DDth MMM YYYY"/> ``` ;Soit: <$macrocall $name="now" format="0hh:0mm, DDth MMM YYYY"/> Sur ces bases, écrivons une nouvelle macro [[eval.js]]. Voir la suite dans [[Créez vos propres macros|Macros+Js]]
```cpp void main(void) { //basic example print("hello world") } ``` ``HELLO WORLD``
HelloThere est un tiddler de test en relation avec les tiddlers suivants (qui l'utilisent): <$list filter="[all[current]backlinks[]]" emptyMessage="Aucun Tiddler n'est lié à celui-ci (backlink)"> </$list> Pour obtenir cette liste on fait appel à l'[[opérateur|FilterOperators]] backlinks qui nous permet de connaître tous les tiddlers qui font référence à celui-ci (cité dans). Ces opérateurs de filtres sont très nombreux et ne sont pas tous définis dans ce wiki.
(function(){ exports.name = "HelloWorld"; exports.params = [{name: "word"}]; exports.run = function(word) { return "Hello World! "+word; }; })();
{{Helpers||caption}}
On trouvera ici différents utilitaires et bouts de code permettant l'insertion rapide de boites, couleurs etc...
``` @@text-align:center; <div class="column"> <div class="hero bg-gray"> <div class="hero-body"> !Hero title This is a hero example </div> </div> </div> @@ ``` @@text-align:center; <div class="column"> <div class="hero bg-gray"> <div class="hero-body"> !Hero title This is a hero example </div> </div> </div> @@ ``` @@text-align:right; <div class="column"> <div class="hero hero-sm bg-dark"> <div class="hero-body"> !!Hero title This is a hero example </div> </div> </div> @@ ``` @@text-align:right; <div class="column"> <div class="hero hero-sm bg-dark"> <div class="hero-body"> !!Hero title This is a hero example </div> </div> </div> @@ ``` <div class="column"> <div class="hero hero-lg bg-primary"> <div class="hero-body"> !!Hero title This is a hero example </div> </div> </div> ``` <div class="column"> <div class="hero hero-lg bg-primary"> <div class="hero-body"> !!Hero title This is a hero example </div> </div> </div>
<$button> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel" text="hide"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import" text="hide"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions" text="hide"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone" text="hide"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here" text="hide"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="hide"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/save-wiki" text="hide"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="hide"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="hide"/> <$action-setfield $tiddler="$:/core/ui/SideBar/More" tags="-$:/tags/SideBar"/> <$action-setfield $tiddler="$:/core/ui/ViewTemplate/tags" tags="-$:/tags/ViewTemplate"/> Hide Admin Controls </$button> <$button> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/control-panel" text="show"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import" text="show"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions" text="show"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone" text="show"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here" text="show"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-tiddler" text="show"/> <$action-setfield $tiddler="$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/save-wiki" text="show"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions" text="show"/> <$action-setfield $tiddler="$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/edit" text="show"/> <$action-setfield $tiddler="$:/core/ui/SideBar/More" tags="$:/tags/SideBar"/> <$action-setfield $tiddler="$:/core/ui/ViewTemplate/tags" tags="$:/tags/ViewTemplate"/> Show Admin Controls </$button>
<div class="attention">Cette fonction est dépréciée. Utiliser [[Custom styles by data-tags|https://tiddlywiki.com/#Custom%20styles%20by%20data-tags]]. Il faudra aussi restituer le tiddler original $:/core/ui/ViewTemplate/tags (pour ce faire il suffit de le supprimer). De plus, pour rendre l'exemple ci-dessous actif, vous devez créer le tiddler `$:/config/Hide/TagButtons` en y écrivant le contenu des tags que vous ne souhaitez pas voir apparaître en mode visu, comme sur l'exemple indiqué plus bas.</div> Vous ne voulez pas voir les tags système en mode visu? Vous voulez [[styler un tiddler particulier en utilisant des tags|http://tiddlywiki.com/#How%20to%20apply%20custom%20styles%20by%20tag]] mais ne voulez pas voir le tag qui déclenche le style? Avant de vous montrer cela, comparez les tags de ce tiddler avec ceux que vous pouvez voir ci-dessous: `<$list filter={{!!tags}} template="$:/core/ui/TagTemplate"/>` ; Soit: <$list filter={{!!tags}} template="$:/core/ui/TagTemplate"/> Pour cacher des tags, ce wiki utilise un sous-filtre définis dans le tiddler `$:/config/Hide/TagButtons` ``` +[!is[system]] -[[hide this]] -Main -ribbon -Welcome ``` Le sous-filtre ci-dessus est utilisable grâce à la modification du Tiddler source [[$:/core/ui/ViewTemplate/tags]] Tiddler source original: ``` <$reveal type="nomatch" state=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes"> <div class="tc-tags-wrapper"><$list filter="[all[current]tags[]sort[title]]" template="$:/core/ui/TagTemplate" storyview="pop"/></div> </$reveal> ``` Tiddler modifié: {{$:/core/ui/ViewTemplate/tags||code}} Ci-dessus, la variable ''subfilter''est Récupérée de `$:/config/Hide/TagButtons`. Ensuite, le filtre de la liste des Tags est construit à partir d'une macro''tagFilter'', elle-même déclarée comme une variable, ce qui donne l'expression de filtre de balise souhaitée, en remplaçant le ''sous-filtre'' précédemment défini. Pour résumer, vous devez importer deux Tiddlers: *Le Tiddler modifié : $:/core/ui/ViewTemplate/tags *Le Tiddler `$:/config/Hide/TagButtons` dans lequel vous devez indiquer, hormis les tags systèmes qui sont tous inclus, les tags que vous ne souhaitez pas voir apparaître sur vos Tiddlers en mode visu.
//Il s'agit de réflexions personnelles sur l'histoire et le développement de <<tw>>, par son créateur ~JeremyRuston//. !Origines de ~TiddlyWiki En 1997, un collègue me montra [[le wiki original de Ward Cunningham|http://c2.com/cgi/wiki]]. Que quelque chose d'aussi puissant puisse être écrit en seulement 700 lignes de Perl m'impressionna à l'époque, et j'étais aussi fasciné par la manière radicale dont la sécurité et le système de permissions avaient été repensés. Comme beaucoup d'autres développeurs, je me suis jeté sur tous les types de wiki qui me passaient sous la main, afin d'explorer leur utilisation en environnement de travail. Le principal attrait du wiki pour moi était le sentiment qu'il pouvait remettre en question le paradigme qui prévalait jusqu'alors, à savoir les documents conçus pour être imprimés, et les emails. Après avoir observé pendant quelques années la manière dont les gens utilisaient les wikis, j'ai remarqué que les utilisateurs avancés faisait grand usage de la possibilité d'ouvrir plusieurs pages de wiki à la fois dans les onglets de leur navigateur, pour se faciliter la comparaison et la révision des pages, la recopie de texte d'une page à l'autre, et pour se constituer une sorte de file de pages en attente d'être lues. J'ai eu le sentiment que cette capacité à manipuler plusieurs pages en même temps était centrale dans la capacité à réorganiser un wiki, et on considère généralement qu'un wiki réorganisé avec amour a tendance à être plus utile. Pourtant, les interfaces utilisateur des wiki ont toujours été exclusivement conçues pour la présentation et la manipulation d'une seule page à la fois. Toutes ces réflexions se sont synthétisées lorsque j'ai vu l'interface de Gmail en avril 2004, qui utilisait Ajax de manière ingénieuse pour assembler des mails individuels dans des fils de conversations. J'ai commencer à expérimenter avec HTML et JavaScript pour pousser l'idée. Je n'avais eu jusqu'à présent pratiquement aucune expérience de l'un ou de l'autre, à part composer quelques pages statiques et des sites ASP simples dans des vies précédentes. Se plonger dans ces techniques orientées client a été une expérience douloureuse ; comme tout le monde, j'étais horrifié de découvrir l'atrocité des incompatibilités et incohériences de la programmation web. !Lancement de ~TiddlyWki En septembre 2004, j'ai donc publié une [[version préliminaire de TiddlyWiki|https://classic.tiddlywiki.com/firstversion.html]]. Il s'agissait de la plus petite application possible démontrant le concept : un simple fichier HTML de 48KB qui s'auto-engendrait. L'inconvénient d'avoir écrit de cette manière la première version de TiddlyWiki, c'est que ça la rendait complètement impraticable pour l'édition — quand vous cliquiez sur "enregistrer les modifications", elle faisait apparaître une fenêtre montrant les données qui auraient été enregistrées s'il avait été possible d'écrire sur le système de fichiers depuis une page HTML. Un grande partie des premiers commentaires sur TiddlyWiki étaient que c'était un outil sympathique, mais qu'il aurait été plus utile si on avait pu enregistrer correctement les modifications. J'étais plutôt frustré, car je tenais pour certaine l'impossibilité pour un fichier HTML tournant dans un navigateur d'enregistrer des modifications sur le système de fichiers local. Quelques mois plus tard, j'ai repéré une extension Firefox expérimentale qui permettait à TiddlyWiki de sauvegarder les modifications depuis le navigateur. En examinant le code, je réalisai que l'API utilisée pour écrire sur le système de fichiers était en fait disponible pour les fichiers HTML ordinaires — pourvu qu'ils soient chargés depuis une URI de type `file://`. J'adaptai le code Firefox dans le noyau de TiddlyWiki et j'ajoutai bientôt une fonctionnalité similaire pour Internet Explorer (en utilisant un ancien contrôle ~ActiveX que Microsoft distribuait avec Internet Explorer). !Croissance de ~TiddlyWiki Une étape majeure dans la croissance de TiddlyWiki fut la création de //~GTDTiddlyWiki// par Nathan Bowers. Il partit du TiddlyWiki de base et l'adapta spécifiquement pour la gestion et le suivi de tâches à l'aide de la méthodologie bien connue //Getting Things Done//. //~GTDTiddlyWiki// fut un succès immédiat, salué avec enthousiasme par des sites comme ~LifeHacker. Dans les années qui suivirent, TiddlyWiki continua à croître en popularité, et s'enrichit de nouvelles fonctions et possibilités. En un an, je pus trouver une indépendance financière en proposant du développement sur mesure autour de TiddlyWiki, notamment en travaillant avec un pionnier du wiki, //~SocialText//, sur la possibilité de synchroniser des modifications avec un serveur en ligne. !Acquisition par //British Telecom// En mai 2007, British Telecom a acquis Osmosoft, ma société de consultant. Acquérir une société avec un seul employé et un minuscule filet de revenu relevait d'une décision inhabituelle, Osmosoft ne détenant même pas la propriété intellectuelle de TiddlyWiki, puisque je l'avais transférée à //~UnaMesa// pour assurer son avenir pour la communauté. La motivation de British Telecom était de mieux comprendre les écosystèmes basés sur les communautés. Je rejoignis la société en tant que "Head of Open Source Innovation", responsable de la gouvernance //open source//, et fournissant des conseils et de l'expertise sur la manière de participer à des communautés //open source//. !Osmosoft et ~TiddlySpace Je constituais une équipe chez BT sous le nom Osmosoft. Nous avions comme objectif d'évangéliser les bénéfices de l'//open source// et d'aider d'autres équipes à réaliser ces bénéfices en pratique. Nous nous sommes aussi rendu compte qu'il était nécessaire d'évangéliser l'usage du Web en général, et les standards web en particulier. Notre approche était de privilégier la démonstration sur le discours. Nous avons travaillé avec la communauté TiddlyWiki pour étendre l'écosystème, et nous avons construit de nombreux systèmes internes pour BT (certains basés sur TiddlyWiki, d'autres non). La principale contribution d'Osmosoft à la communauté TiddlyWiki fut la création de ~TiddlyWeb et ~TiddlySpace. ~TiddlyWeb était un serveur robuste, capable de servir des tiddlers sur l'Internet, mais aussi de composer des vues TiddlyWiki à partir de ces tiddlers. Quant à ~TiddlySpace, il s'agissait d'une tentative pour packager ~TiddlyWeb de façon plus directement utilisable. !Départ de //British Telecom// Fin 2011, j'ai progressivement senti que j'aurais plus de latitude hors de l'enceinte de British Telecom pour réaliser le potentiel de TiddlyWiki. D'un commun accord, je suis parti et j'ai commencé à travailler comme développeur indépendant, en me concentrant principalement sur une réincarnation de TiddlyWiki, qui pris la forme de ~TiddlyWiki5. !Développement de ~TiddlyWiki5 J'ai travaillé sur une nouvelle version de TiddlyWiki à partir de novembre 2011. En tant que programmeur, travailler à une "version 2.0" de quelque chose que j'avais déjà écrit était une projet très séduisant. Cela signifiait que les besoins étaient bien compris, et je pouvais dès lors me concentrer sur l'architecture et ses évolutions nécessaires à la mise en œuvre des fonctionnalités désirées. !L'avenir À présent que ~TiddlyWiki5 a enfin quitté son statut de "beta", j'ai bon espoir qu'il vivra longtemps. Comme il n'utilise que des fonctionnalités standard de HTML5 et Node.js, il n'y a aucune raison pour qu'il ne reste pas entièrement opérationnel dans les années qui viennent. Mon but est qu'il survive au moins 25 ans.
Le tiddler système [[$:/HistoryList]] garde la trace d'une liste de tiddlers composé de l'historique de navigation. Chaque fois que vous cliquez sur un lien vers un tiddler, le titre du tiddler cible est ajouté au sommet de la pile. La liste historique est mémorisée en JSON qui permettent des détails additionnels au sujet des coordonnées du nœud DOM initialisant la navigation. Ce champ peut être utilisé comme suit<<:>> ``` <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop"> <$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">×</$button> <$link to={{!!title}}><$view field="title"/> <$reveal type="match" state="$:/HistoryList!!current-tiddler" text=<<currentTiddler>>>✓</$reveal></$link> </$list> ``` ce qui affichera de façon semblable à l'onglet "Ouvert" du menu latéral, avec en sus, une coche contre le tiddler objet de la dernière navigation. <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop"> <$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">×</$button> <$link to={{!!title}}><$view field="title"/> <$reveal type="match" state="$:/HistoryList!!current-tiddler" text=<<currentTiddler>>>✓</$reveal></$link> </$list> <div class="att"> Voir le tiddler [[Modification de l'onglet "Open"de la SideBar]] dans lequel est expliqué la modification du shadow tiddler $:/core/ui/SideBar/Open par l'ajout de la coche qui met en exergue le tiddler objet de la dernière modification </div> !! Déroulé vide Pour afficher un contenu lorsque le déroulé est vide, créez un `$:/config/EmptyStoryMessage` et entrez le contenu souhaité. Le cas suivant montrerait le tiddler GettingStarted quand tous les autres sont fermés. ``` {{GettingStarted||$:/core/ui/ViewTemplate}} ```
Voir le [ext[Fork de TW5|https://github.com/morosanuae/TiddlyWiki5]]
Main Repos. On y trouve tous ses plugins
Main Website : https://ooktech.com/jed/externalbrain/#Dashboard Contact : inmysocks@fastmail.com <!-- https://github.com/inmysocks<br/> https://ooktech.com/jed/externalbrain/#Dashboard<br/> http://inmysocks.tiddlyspot.com/#What%20to%20do -->
<div class="docs-demo columns"> <div class="column col-9 col-sm-12"> <form class="form-horizontal" action="#forms"> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label" for="input-example-4">Name</label> </div> <div class="col-9 col-sm-12"> <input class="form-input" id="input-example-4" type="text" placeholder="Name"> </div> </div> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label" for="input-example-5">Email</label> </div> <div class="col-9 col-sm-12"> <input class="form-input" id="input-example-5" type="email" placeholder="Email"> </div> </div> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label">Gender</label> </div> <div class="col-9 col-sm-12"> <label class="form-radio"> <input type="radio" name="gender"><i class="form-icon"></i> Male </label> <label class="form-radio"> <input type="radio" name="gender" checked=""><i class="form-icon"></i> Female </label> </div> </div> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label">Source</label> </div> <div class="col-9 col-sm-12"> <select class="form-select" multiple=""> <option>Slack</option> <option>Skype</option> <option>Hipchat</option> </select> </div> </div> <div class="form-group"> <div class="col-9 col-sm-12 col-ml-auto"> <label class="form-switch"> <input type="checkbox"><i class="form-icon"></i> Send me emails with news and tips </label> </div> </div> <div class="form-group"> <div class="col-3 col-sm-12"> <label class="form-label" for="input-example-6">Message</label> </div> <div class="col-9 col-sm-12"> <textarea class="form-input" id="input-example-6" placeholder="Textarea" rows="3"></textarea> </div> </div> <div class="form-group"> <div class="col-9 col-sm-12 col-ml-auto"> <label class="form-checkbox"> <input type="checkbox"><i class="form-icon"></i> Remember me </label> </div> </div> </form> </div> </div>
Un bon tutoriel pour définir ses besoins exacts en matière d'hébergement d'applications [en]
Le problème de fond est que de nombreuses bibliothèques JavaScript utilisent une technique par laquelle l'état de l'interface utilisateur est stocké dans le DOM. Ceci ne fonctionne pas dans TiddlyWiki5 (tout comme dans d'autres frameworks JavaScript modernes) car code est conservé dans les objets JavaScript et reconstruit de nouveaux éléments à la volée, sans passer par la case de rechargement du DOM. (Autrement dit, JavaScript en ligne est désactivé) Il n'y a aucun moyen de convertir automatiquement le code JavaScript basé sur DOM pour travailler avec TiddlyWiki5. La réponse à cette question nécessite donc #D'apprendre JavaScript, #Et d'apprendre TiddlyWiki5. Jeremy Ruston (2015)
Vous pouvez appliquer des styles personnalisés aux tiddlers ayant un tag particulier en définissant une classe CSS nommée `tc-tagged-<Nom du tag>`. Par exemple, pour coloriser les tiddlers étiquetés "NightReader" d'une façon spéciale, [[Créer une feuille de style |Using Stylesheets]] définissant la classe `tc-tagged-NightReader` comme suit<<:>> ``` .tc-tagged-NightReader { background-color:black; color: orange; padding: 35px 35px; } .tc-tagged-NightReader .tc-tiddler-body { font-size: 1.5em; } ``` La classe `tc-tagged-NightReader` s'applique au tiddler tou entier et pas seulement au texte du tiddler. Si vous désirez l'appliquer à une portion plus réduite du tiddler vous pouvez ajuster le sélecteur CSS, comme ici avec `.tc-tagged-NightReader .tc-tiddler-body`. Notez que les tags contenant des espaces et des caractères non-alphanumériques seront convertis en utilisant le codage URI, rendant le nom de classe CSS généré difficile à prévoir. Par exemple<<:>> |!Tag |!Nom généré pour la classe | |`$:/mytag` |`tc-tagged-%24%3A%2Fmytag` | |`one two` |`tc-tagged-one%20two` | |`£35.23` |`tc-tagged-%C2%A335.23` |
Supposons que vous utilisiez une macro Table des Matières similaire à ceci : ``` <<toc-selective-expandable "TableOfContents" "sort[title]" >> ``` Le tri par titre convient dans la plupart des cas, mais vous souhaitez que tous vos articles tagués "Journal" soient triés par le champ créé (created). Comment pouvez-vous appliquer un ordre de tri distinct à ces sous-éléments tagués Journal ? L'astuce consiste à ajouter un champ au Tiddler de balisage parent (ic.à.d. Journal) qui pointe vers un critère de tri différent. Appelons le champ "tri"", et remplissez-le avec la valeur'' created'' (created est le nom du champ qui contient la date de création d'un Tiddler). Maintenant, changez votre table des matières pour ressembler à ceci: ``` <<toc-selective-expandable "TableOfContents" "sort{tri}" >> ``` À présent votre table des matières triera par titre partout, excepté pour les enfants du tiddler Journal, qui triera par la date créée. L'inconvénient de cette astuce est que vous ne pouvez pas appliquer un tri inverse basé sur un seul champ spécial. Si vous inversez l'ordre de tri, il sera inversé partout. <<toc-selective-expandable "TableOfContents" "sort{tri}" >>
To follow the example, use this tiddler: [[Example New Tiddler Button View Template]] It has the text: <pre><$view tiddler='Example New Tiddler Button View Template' field='text'/> </pre> !!What this is doing The `\define thisMakeTags() [[$(currentTiddler)$]]` line is needed in case the tiddler title has spaces, if you don't add the `[[` and `]]` than each word of the title will be added as a separate tag. The `<$button>` is the opening tag for the button widget, anything between `<$button>` and `</$button>` is part of the button created. `Make New Tiddler` is just the text that is visible on the button, you can change this to whatever you want. The line `<$action-setfield $tiddler='My New Tiddler' tags=<<thisMakeTags>>/>` does all the heavy lifting. It sets the tag field of the tiddler called `My New Tiddler` equal to the output of the macro `thisMakeTags`. The macro is defined above. It gives the title of the current tiddler in a form that can be used as a tag. Setting the tags field of a tiddler doesn't sound particularly useful, but if the tiddler `My New Tiddler` doesn't exist, than it is created and its tag field is set. This can be used in many situations to create new tiddlers that have preset fields without having to make a [[template|Templates]]. The `action-setfield` widget can set any number of fields in a tiddler that you create, just add more to it in the from `field_name="field_contents"`. So, if you wanted to change the button to include a field called `example_field` with the contents `nothing interesting here` to any new tiddler created you would change the line from `<$action-setfield $tiddler='My New Tiddler' tags=<<thisMakeTags>>/>` to `<$action-setfield $tiddler='My New Tiddler' tags=<<thisMakeTags>> example_field="nothing interesting here"/>`. The action-setfield widget will not open up the tiddler created like this, which is why there is the line `<$action-sendmessage $message='tm-edit-tiddler' $param='My New Tiddler'/>`. This uses the action-sendmessage widget to send the message `tm-edit-tiddler`, which opens up a tiddler in edit mode, and targets the tiddler `My New Tiddler`, which is the one the button creates. The effect of all of this is that a new tiddler called `My New Tiddler` is created, and then the tiddler is opened in edit mode. !!How to add this button to other tiddlers If you want to have this button displayed on every tiddler so you can click on it to create a new tiddler from anywhere than you add the tag `$:/tags/ViewTemplate` to the tiddler containing the button. This will display the button on every open tiddler. By default the button will be shown at the very bottom of each tiddler. It is probably more useful to have the button displayed right under where a tiddlers tags are shown. To do this open the tiddler that contains the button code (in this case it is [[Example New Tiddler Button View Template]], so you can open it and edit it here.) and add a field called `list-after` and put `$:/core/ui/ViewTemplate/tags` as the contents of the field. If everything works than you should see the button right below where the tags are displayed on every open tiddler. <<bottomOfTiddler>> Voir aussi [[tm-new-tiddler]] [ ] Article restant à traduire.
À étudier... ``` \define link(title) <$link to="$title$-appended">$title$-appended</$link> \end \define button(title) <$button set="$title$-appended" setTo="Success…">create…</$button> \end <$macrocall $name="link" title={{!!title}}/> <$macrocall $name="button" title={{!!title}}/> ``` --- In theory I thought this should work: ``` \define join2(a b) $a$$b$ \end <$link to=<<join2 {{!!title}} "-appended">>><<join2 {{!!title}} "-appended" >></$link> <$button set=<<join2 {{!!title}} "-appended">> setTo="Success…">create…</ $button> ``` And it works if called directly, but not when used as attribute values :(
{{HTML||caption}}
``` html { font-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}}; } ``` !!Agit sur quoi ? Principalement concerne le choix des polices à utiliser si le thème choisis est Vanilla. Les polices sont à renseigner dans l'onglet Appearance -> Settings -> Font family du panneau de contrôle. Elles sont stockées dans le tiddler $:/themes/tiddlywiki/vanilla/settings/fontfamily C'est la classe d'ordre le plus général; elle peut être supplantée par des classes plus précises, démarrant généralement par `body.tc-body`. Par exemple: ``` body.tc-body.tc-tiddler-frame et/ou: .tc-tiddler-body ul, et/ou: .tc-tiddler-body ol, et/ou: .tc-tiddler-body p { font-family: verdana; font-size: 16px; color: #000000; line-height: 1.5; } ``` Ou bien encore sur les balises hn: ``` body.tc-body h1 { } body.tc-body h2 { } ... body.tc-body h6 { } ``` Et aussi sur les titre et sous-titre du wiki: ``` body.tc-body et/ou: .tc-site-title{ } et/ou: .tc-site-subtitle{ } ```
``` html button { line-height: 1.2; color: <<colour button-foreground>>; background: <<colour button-background>> border-color: <<colour button-border>>; } ``` !!Agit sur quoi Sur tous les boutons standard de TW5, entourés par les balises WikiText `<$button>` et `</$button>` et qui ne possèdent pas de classe ajoutée. !!Exemples: ;Bouton simple sans classe ajoutée <$button> Un Bouton </$button> Ici, par exemple, la couleur de texte, la couleur de fond du et la couleur de sa bordure bouton seront les couleurs attribuée aux lignes Default button foreground (button-foreground), Default button background (button-background), et Default button border (button-border) de la palette de couleur utilisée dans votre wiki. ;Bouton avec classe ajoutée ``` <button class="bttn-simple bttn-md bttn-primary">Un bouton</button> ``` <button class="bttn-simple bttn-md bttn-primary">Un bouton</button>
;Parceque je ne me rappelle jamais de ces petits codes fort utiles... *` ` Espace simple *` ` Espace double *` ` Espace quadruple *` ` Pour afficher un caractère de tabulation
Les balises HTML (dont les commentaires `<!-- -->`) peuvent être utilisées directement en [[WikiTexte|WikiText]] : ``` <article class='hello'> Ceci est un simple bloc de texte. HelloThere <!-- Ce commentaire n'apparaîtra pas. --> </article> ``` ;Soit: <div class="note"> <article class='hello'> Ceci est un simple bloc de texte. HelloThere <!-- Ce commentaire n'apparaîtra pas. --> </article> </div> ; Remarque * Par conséquent, un mot écrit entre "chevrons" `< >` sera interprété comme une balise HTML, ce qui peut entraîner des effets de bord (notamment à cause de l'inexistence de la balise fermante).<br>À la place, mieux vaut utiliser le [[code HTML|Codes HTML]] des caractères "chevrons" : `<` et `>` ! Interprétation du contenu Par défaut, le contenu d'un élément HTML est interprété en mode texte ("inline mode" en anglais). Cela signifie que les [[formatages de texte|Formatting in WikiText]] (comme du gras ou un exposant) s'appliquent, mais que les formatages de type bloc (comme les tables, les listes ou les titres) ne sont pas reconnus. Pour que le contenu de l'élément HTML soit interprété en mode bloc ("block mode" en anglais), il faut faire suivre la balise ouvrante de deux retours à la ligne. <<wikitexte-exemple "<article class='hello'> Ceci est du contenu en ''mode texte''. * Les listes ne sont pas reconnues -- pas plus que les paragraphes ! </article> --- <article class='hello'> Ceci est du contenu en ''mode bloc''. * Les listes sont reconnues </article>">> ! Attributs Les attributs d'une balise HTML peuvent être spécifiés littéralement, à l'aide d'une [[transclusion|Transclusion in WikiText]] ou par l'invocation d'une [[macro|Macros in WikiText]] : Par exemple, ici la valeur de l'attribut `href` sera égale à la valeur du tiddler ~MonLienDestination : ``` <a href={{MonLienDestination}}>label du lien</a> ``` Et là, l'attribut est spécifié en invoquant une macro (qui génère elle-même un lien qui peut être paramétré) : ``` <a href=<<MaMacro "valeur du paramètre">>>label du lien</a> ``` Les valeurs d'attribut littérales peuvent contenir des retours à la ligne (ignoré par le HTML) : ``` <div data-address="Maison Souris, 3 rue des rongeurs, Ratville"/> ``` L'utilisation de trois caractères "guillemets doubles" `"""` permet de spécifier des valeurs d'attributs qui contiennent un seul caractère "guillemet double" : ``` <div data-address="""Maison "Souris", 3 rue des rongeurs, Ratville"""/>
Pour la création de tableaux. Par exemple : <style> table.blueTable { border: 1px solid #1C6EA4; background-color: #EEEEEE; width: 100%; text-align: left; border-collapse: collapse; } table.blueTable td, table.blueTable th { border: 1px solid #AAAAAA; padding: 3px 2px; } table.blueTable tbody td { font-size: 13px; } table.blueTable tr:nth-child(even) { background: #D0E4F5; } table.blueTable thead { background: #1C6EA4; background: -moz-linear-gradient(top, #5592bb 0%, #327cad 66%, #1C6EA4 100%); background: -webkit-linear-gradient(top, #5592bb 0%, #327cad 66%, #1C6EA4 100%); background: linear-gradient(to bottom, #5592bb 0%, #327cad 66%, #1C6EA4 100%); border-bottom: 2px solid #444444; } table.blueTable thead th { font-size: 15px; font-weight: bold; color: #FFFFFF; border-left: 2px solid #D0E4F5; } table.blueTable thead th:first-child { border-left: none; } table.blueTable tfoot { font-size: 14px; font-weight: bold; color: #FFFFFF; background: #D0E4F5; background: -moz-linear-gradient(top, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%); background: -webkit-linear-gradient(top, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%); background: linear-gradient(to bottom, #dcebf7 0%, #d4e6f6 66%, #D0E4F5 100%); border-top: 2px solid #444444; } table.blueTable tfoot td { font-size: 14px; } table.blueTable tfoot .links { text-align: right; } table.blueTable tfoot .links a{ display: inline-block; background: #1C6EA4; color: #FFFFFF; padding: 2px 8px; border-radius: 5px; } </style> <table class="blueTable"> <thead> <tr> <th>head1</th> <th>head2</th> <th>head3</th> <th>head4</th> </tr> </thead> <tfoot> <tr> <td colspan="4"> <div class="links"><a href="#">«</a> <a class="active" href="#">1</a> <a href="#">2</a> <a href="#">3</a> <a href="#">4</a> <a href="#">»</a></div> </td> </tr> </tfoot> <tbody> <tr> <td>cell1_1</td> <td>cell2_1</td> <td>cell3_1</td> <td>cell4_1</td> </tr> <tr> <td>cell1_2</td> <td>cell2_2</td> <td>cell3_2</td> <td>cell4_2</td> </tr> <tr> <td>cell1_3</td> <td>cell2_3</td> <td>cell3_3</td> <td>cell4_3</td> </tr> <tr> <td>cell1_4</td> <td>cell2_4</td> <td>cell3_4</td> <td>cell4_4</td> </tr> </tbody> </table>
Petit essai : Tout ce que l'on a plus à faire pour éditer une page HTML quand on utilise TiddlyWiki. La structure minimum : ``` <!doctype html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Titre de la page</title> <link rel="stylesheet" href="style.css"> <script src="script.js"></script> </head> <body> ... <!-- Le reste du contenu --> ... </body> </html> ``` À la marge : [ext[Je n'arrive pas à faire fonctionner ce fichier|https://openclassrooms.com/forum/sujet/charger-des-donnees-json-et-les-afficher-en-html]]
This website is a companion to the HTML5, CSS3 and JavaScript articles I've been writing since 2006 on my web-development blog. The concepts and the code showcased here represent my point of view and are free to use with the proper credits.
pretty-show images in tw5 - Tobias Beer shows how to display images in lightboxes using the macro `<<ibox>>`
<$button> <$action-setfield $tiddler="$:/temp/trigger" $value=<<now "0hh:0mm:0ss">>/> Refresh </$button> <$set name="trigger" value={{$:/temp/trigger}}><br> <$list filter="[tag[dynamic]]"> <$macrocall $name="puce" tagName={{!!title}}/><$macrocall $name="circular" p={{!!progress}} co={{!!color}}/> </$list> </$set>
!!1- Insertion d'image classique (taille réelle) ``` [img[Motovun Jack.jpg]] ``` [img[Motovun Jack.jpg]] !!2- Insertion retaillée : Cette solution est intéressante. ``` [img width=40em [Motovun Jack.jpg]] ``` [img width=40em [Motovun Jack.jpg]] !!3- Image dans le champ icon ''Remarque'' : //Normalement l'image précède le titre du tiddler, calée à gauche du titre mais sur la même ligne. Sur ce wiki elle apparaît en dessous du fait de mes paramétrages du titre.// ''L'observation'' : Ces icônes sont ''automatiquement taillées'', ce que je n'avais pas remarqué jusqu'à présent. !!3- Solution Pit w J'obtiens bien une liste mais sans possibilité de savoir de quel icône il s'agit. Le titre de l'icône choisi dans la liste viens bien alimenter le champ `icon` et donc se positionner à la gauche du titre du tiddler. ``` <$select field="icon"> <$list filter="[tag[$:/MyIcon]sort[title]]"> <option value=<<currentTiddler>>> <table> <tr> *<td style="width:3em;">* <$transclude/> </td> </tr> </table> </option> </$list> </$select> ```
iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAYAAABw4pVUAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAOASURBVHhe7Zw5qxRBFIWfigoibmCmKGouKIgLCv4Bl8zA1CUx0l/gCgaCIOoPcHmgYiKamRgJRmIg4oZbqqFGek7XK2za7qmZVzNd9zrng8Pc6qqZqukz3XW7+r2eEUIIIYQQQgghhBBCCCGEEEIIIcTYWQJdhr5CvwuK/V+COJ6phjuhbQeV0kVoqvkGcUfsrErl2A1xHDxSppr4y7SApbEUw6IhpVV0PouDsMAzqL5jSqvIfBY7F38pOp/JkHaK7RcZ0o4pQ15DcbtX8TtEmt+nra6+jcS2vVOsY+PIEGPIEGPIEGPIEGPIEGPIEGPIEGPIEGO4NGQvNAtxEe7X3OtdaA/kHVeGLIZuQG+h49A6iPcO+HoCeg9dgxZBXnFlyHXoMbS8Kv0Ltz+BaMqoNNedJqnm+lWd2KZ3Ru2Yp6l30LKq1M0K6CPk9fTlxhDOGcdCmOQkdCeE7nBjCCfu9SFMwnZfQugON4b8hJaGMAnbsb1H3BjCeWFLCJOw3YcQusONIbehUyFMwna3QugON4Ywa2KWtbIqdcN6Hh27qtLwjDPtrae1bZ/7X6S95Cr0FOoyZTXE+itVySeuDOEVOK/UmUExtd0IcQLfMFfm9pvQQsgrrgw5CnGnP4A4pzDmWtbnufJDiOnxEcgrLgxZAPE09Abazg0D2AFxrYv/e8L3ecOFIfwD5OfQqqqUhu1eQHyfN8wbchjiKu6aqjQ8ayFeuxysSn4wbQgXCjk/7KtKo7Mf+gR1rQ7XyUl7B6W5bXX1bU3i+3pnmI7PQPdCOG/uQ6dD6AKzhjB1Zca0tSrNn20QT11eUmGzhvDK/GUIs3kFjXrlXgqzhlyAzoUwG37W2RCax6whvFV7IITZHIIehdA8Zg3hQuKmEGazGeLFogfMGvIDGvZCMAUXHb+HsJNmupqjtlS3q75JbNM7qY7HNaETLqGM8/MmiVlDphUZYgwZYgwZYgwZYgwZYgwZYgwZYgyzhgx6JiO3WX1OYu64Y9veSXXMgcc2XbL4nMTcccc2vZPqeNAzGS0/JzF33KyneifVcW59KXLHnaqfGLkDS9WXInfcqfqJEQ9tHsZtmB14gpxx87Y164qcioeZ/Kgu2tpaUhdtbZs6D/UOUz9mG23pYRSfFtqFtSeJ1jXfcXNf8P6/xXReCCGEEEIIIYQQQgghhBBCCCGEcMzMzB9tz/2n2UAk9AAAAABJRU5ErkJggg==
Voir aussi : [[Font Awsome icons]] `<<excel>> <<word>> <<ppt>> <<pdf>> <<zip>> <<dossier>>` Soit: <<excel>> <<word>> <<ppt>> <<pdf>> <<zip>> <<dossier>> Noter aussi que l'intégration du tiddler $:/macro/fa-file-extension-icon facilite l'ajout de pictogramme, par exemple *`<<pdf>>` pour <<pdf>> *`<<fa file-o>>` pour <<fa file-o>> *`<<fa warning>>` pour <<fa warning>> *`<<fa file-archive-o>>` pour <<fa file-archive-o>> *`<<fa folder-open>>` pour <<fa folder-open>> *`<<fa file-pdf-o 1 #DA251C>>` pour <<fa file-pdf-o 1 #DA251C>> *`<<fa file-powerpoint-o 1 #DF5336>>` pour <<fa file-powerpoint-o 1 #DF5336>> *`<<fa file-word-o 1 #2A5699>>` pour <<fa file-word-o 1 #2A5699>> *`<<fa file-excel-o 1 #008641>>` pour <<fa file-excel-o 1 #008641>> Intégrer $:/macro/fa et $:/css/ui/stylesheet/flat-addon
<div class="w3-container"> <p>Wrap any of the w3-card classes around the image to display it as a card:</p> <div class="w3-card" style="width:50%"> [img alt="Person" width=100% [img_avatar1.png]] <div class="w3-container"> <h4><b>Simon</b></h4> <p>The boss of all bosses</p> </div> </div> <br> <p>More shadows:</p> <div class="w3-card-4" style="width:50%"> [img alt="Person" width=100% [img_avatar5.png]] <div class="w3-container"> <h4><b>Jane</b></h4> <p>The other boss</p> </div> </div> </div> Avatars disponibles: @@.list-tree :[[img_avatar1.png]] :[[img_avatar2.png]] :[[img_avatar3.png]] :[[img_avatar4.png]] :[[img_avatar5.png]] :[[img_avatar6.png]] @@
{{Images||caption}}
Sujet pas encore traité
iVBORw0KGgoAAAANSUhEUgAAAfMAAAHyCAMAAADIjdfcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRFg4B7vLq3SEVBl5OOYFxX8erbcGxns7Gu4oWPoJ2Yp6KajYqEycK5W1dSbGhjgXx26+bf6tzM22Rw6Ofn2djWenZxVFFN0c3Hrqmi3dbNwryz4t7Xk4+I8cTK+fXu+/n1d3Rup1JZm5eQtq+m9vHm7be6+PXw9dXZWkdFvbWrxsTC29TK6aGoTElF2NTNiU5S////yFZi2dXQ6cO6Z2Nd3nqB7Ojk0cm/ioaA9vPu9fHs9PDq9vPtyMS+8+/o9fHt49/b7+fV9PDr6+fh9fHr2Vln9O/o8u3l9fDr9PDp8+7m8u3m8ezj8uzk8ezk9vLt8evi7+vh7+vi7+rg8evj7ung7+rh7unf+Pby7uje8+/n7ejd7ujd8uzl9fX04uHg7Ovqqaejz87M/v388OjX9/TvZGBa+PXx8/Pz+vfx8+3g9/Tw3NzbUE1I9/Pq3NXL/fz5o6Kg7Kyz/PT1jIqI0dDP9/Purq2r5KCe99/i3tbG+urs5rGr1c6+5Zec7M3EdO9bTQAAKA5JREFUeNrs3ftjE8edAPCVHyvL8gOIZCu2g1UBpagx2ZAFufjsIoI5uPf1Xr3LnSQbSokLJJDQPJq2//rtrF77mNmd93xH2vkxLeDdj+c73/nO7Izz21/NX/sb6vbPQft1frvP2x4l2pNxe4htR7Tt6bA9jrSTSXN+W5DPGfk8ms87+Ryazz35/JkX5HNnXpDPnXlBPnfmBfncmRfkc2dekM+deUE+d+YF+dyZF+RzZ16Qz515QT535gX53JkX5HNnXpDPnXlBPnfmBfncmRfkc2dekM+deUE+d+YF+dyZF+RzZ16Qz515QT535gX53JkX5HNnXpDPnXlBPnfmBfncmRfkc2dekM+deUE+d+YF+dyZF+RzZ16Qz515QT535gX53JkX5HNnXpDPnXlBTtf+Z3bMC3JK8tkxL8hpyf9uVswLcmryWTEvyOnJZ8S8IGcgnw3zgpyFfCbMC3Im8lkwL8jZyGfAvCBnJLffvCBnJbfevCBnJrfdvCBnJ7fcvCDnILfbvCDnIbfavCDnIrfZvCDnI7fYvCDnJP97a80Lcl5ya80Lcm5yW80Lcn5yS80LcgFyO80LchFyK80LciFyG80LcjFyC80LckFy+8wLclFy68wLcmFy28wLcnFyy8wLcgnkdpkX5DLIrTIvyKWQ22RekMsh/1t7zAtySeT2mBfkssitMS/IpZHbYl6QyyO3xLwgl0huh3lBLpPcCvOCXCq5DebSyO9tHzcah4eHrh9rbvCfGo3y9p05IbfAXAb5ve1y69DPbe5hq7H9YNbJ4ZsLkz8otTZ9pna4Wrozw+TgzcXI7x23mhFMp3pWbtdqAy/WBrXaebm8WK3Hu3xje0bJoZuLkN8r7U0I64vlJDWm9WvlSjXa4ct3ZpAcuLkA+fEEvFqu9TyGNjgvT+Hd1vG9GSOHbc5N/mB1lJvXz849rtYvLU7S+73SvVkiB23OS77dGoP3PZEWuBPYrSaHbM5Jvj2clLkVMfBROz+rj4P89oyQAzbnIx+JO+2eJ6v1x+zN8r1ZIIdrzkX+YBjVqzVPbpuwt+7YTw7WnIu84SoRHwb5ymj+dmw7OVRzHvLtTXXiqPVKw87eLNlNDtSch3w1TNXPPZXtvDpRt5ccpjkH+Z2wk5d7nuI2GIb45ra95CDNOchLaCR3+p6GNlI/vGMrOURzDvIwrpc9TW2kvvq5neQAzdnJH6DSulvz9LVBWKBzS1aSwzNnJN9ujIowPU9rqzlhgN+1kBycORP5cWu8DlLxtLcwhZh2dXvI/w+YOQP5vUZzulrqGWi9MMDvfW4bOTBzevJRldV3K+2+Z6qdo67evGMZ+T+CMqcW/83qCPzcM9rCrh7Ed6vIQZlTk5fDYbxe6nnGWymctVlFDsmcVrwWZur1tgei9dHvX8smckDm1J18ODX2oLSeQ4sOhByOOe1IHm5tPOt5cFo4qLfsIQdjThvX0fysXvNgtQoNOhhyKOaU5Mdo8FzseR5A9LIt5EDMKcl3UFwveQAbWlc/toQchjkDuVuDSB4mcu6uHeQgzFnI+x7MNghGnU07yCGYM5A7PQ9qqwU/XsMKcgDms0HueahusG0DuXlz2klaEDvrkMk9zyFEd2jkxs1pSzEu4LF8XIXFR3dw5P9k2Jy24IpK7MDJw+iezt3hkRs2pyVvBORt6ORer54uxwEkN2tOS75tZvcT+x6KVBoHkdyoOfUOiSbwlD1ajjsET27SnHqLxKoNg/lkkr4NndygOTV5Tef3CjI7OlByc+b02x2DnN2xhDzs6HeAkxszpydHBbiaLeaoo7eAk5syZ9jH3rQjZ4909F3Y5IbMGciDbu4O7DH36sNiHGByM+YsHyg17Ungwtb2/SZsciPmLOSom/dsMu+5vn8MmtyEOdNniJu+f+ZZ1Sq+vwea3IA5Ezmqug7sMkfLa59DJv8H7eZs35e3rEraJ1ncDmRy7eZs5PesmptPl1Q3IZPrNmc8RaLk+3XbyL0BmqIDJtdsznpWzJ5lE7XJJqkSYHK95qzk9+zL4EbBfQ8wuVZz5hOhShatriQy90twyXWasx8CZmdoDzP3Y7jkGs05jvpzbdkrkS7LrMIl12fOc4ar77s2kqN9cU245NrMeU5qDnKhRSvNe6PZGkxyXeZcR/DvAf3wmGq2dg0suSZzvrtVmhYW4YbtzPerH0Il12POR45m53aSowHd7XwIlFyLOe+lWXbOzscD+hozuiZyHea8V+OVLVxTiwzojQ4jui5yDebcF2CuWlqRGc3QWx02dG3k6s35r7k99P1zW83bvr/ZYULXR67cXOBm401r0/aw5L7RYUHXSK7aXOT+8iAP6tlq7gU//A4Duk5yxeYi5L+2d6o2qsp0qNG1kv+7UnMh8ge2VtujSRwdul5ypeZC5Gh6XrXXPJhoVjuU6JrJVZqLkVtuXhsl7hTouskVmguSW26ONkJ2qNC1k6szFyWXY96vVA0tzYXVVwp0/eTKzIXJZZi3g+y5rukaVXLinolugPxfFJmLkwubD85cv14eoLvvKgbm+VXfX+3kopsgV2QugVzQvLYY/PFh6XawaOIIyfJ0skZGN0KuxlwGuYh5r1333bPpzviaq/+osVJkskZCN0OuxFwKOb95GNTbvfiSh/ZV2dhkDY9uiFyFuRxyXvN+ZRLUY2Wxtn7zeicT3RS5AnNJ5HzmtSB1qmA+d+o52tdlYxN0DLoxcvnmssh5zAPx6DAeQ6/rzuNw5hF0c+TSzaWRs5sj8TIxV+u7mtHrvn+LjG6QXLa5PHL0FUtdmrgB9Gq8KBNHN0ku2VwiOdv6+aCSI64fnWAeohsll2sulZzFvOxiM7fUJjWd6MH8odLBo5sll2oul5zevFb3q1SYNZ09PVWIm6KbJZdpLpmc1rx35ru0k2+d4Z1s3vnQKPlv5JnLJqc079dZLs0N0M/Nm8fRdZPLM5dOfp/KvOSzIQa/Ipoqcue+73Qo0LWTSzOXT36fZn97xXcYDxnqOdjDROtnsldhMAV3HLp+clnmCsjvH+aaB37saye9RdxgUKVPCqSYj9ENkEsyV0Gebx6Qc218OsMEB3SZdXWg0XyIboJcjrkS8nxzh3dobmOuUQ9vMC9pNEfoRsilmKshzzWv8J880nfTfxbdYC6zq+eadz40Qy7DXBF5nrnQPoigV6cG9b7rnPnypnL55gl0XeQSzFWR38/+/nwguN/pLL0ftu0vBlM5WRsmKcxj6NrIxc2Vkd9vZJpXRY8LbLupTP3ML/cqsvZG05hH0PWRC5urI882Pxc/g6LvpPp0NRhNML8L6swn6BrJRc0Vkmeb1+viITjdp3uu2wt/F7SZj9B1kv+rmLlK8kzztpwKaqpP19DJkz326h6/eYiulVzMXCn5/VLG0Z91Sdc39JP5+1m4V7KEmcBHavxUwZ/WPEDXSy5krpb8fsaGuLa0hZKgT9f7sb2S4aARTODbWZplieadD/WSi5grJs8yr0u8peU8Xp8ZJYeZpfw6zcl19OZkdCXkAuaqyTPMa1LP/h04frUXzd0H4wSvR5zbV/PRGcxJ6GrI+c2Vk2eYL0q+TrMcLb/1x5yleNSPZgF+u5Ib3lnM8eiKyLnN1ZPff0DaNNGT/vVZrR5ZVK+M7/05J87U3cUgHLQlmuPQVZHzmmsgv0/cKNOW/x1Sb3E6VR9MfqWCrL5MCDTBgJ+zta7NZJ5GV0bOaa6FnGi+qOKevdK0U0+Hjl4VX34v+X20JMO9H44CXR05n7kecpJ5T82HxdOpejRFxJdn+iiwt7NvbGY1j6MrJOcy10R+v4m/dqmt6BPT3tk4aas7sf0VmB8i5F7MXOZhNo+iqyTnMddFTlpAryg7EnQ8VS9Hb2/Elmeq1eFybsZftpg4UIYFXSk5h7k2cpJ5Xd2xcYNhfB/E5v8DTHmm4g6H9XbWYi/+ezUKdLXk7Ob6yO/jD3AfKD3Jfxjf605y/a2XDNy5q3s85kN0xeTM5hrJCRtl2mpPdT9HofwscYp4as2lPRzK2xm/f5PTvFnRVZOzmuskJyymnik+4RuF8vPk71UtsWmyNvo/OOSKIPacCQp05eT/yWaulRyZY2ZDVdWXMaGlttQvW2LT5Ni8Taz8T25qYEZXTc5mrpf8/jG24K7h2C/syv1ZtPxeG2dvxBU+ttIrEV0BOZO5ZnI0njuaU7hJKK/iRvpI+X38UxBX8kvc5lF0FeQs5rrJW8GI6C/WUv1Hx8U8vQF5Jhcz77nYmeOg5Pjs8/MUuhJyBnPd5MFo7tcrbnJIL/kDz1SbVuom5kHIT/88g4rvu+izmGti6GrI6c11k98JXlmlhxa8qj3MzNhQm2yqmZgP0nlm2/UrffSlu++uiaArIqc2102OCjLDQkg5PqhXzd6hOtpUU5tWi5x6qjY8XJbtu8wV9xi6KnJac+3kqJvXxtG8kqx0m2zhpppIVlFKrLRUJsuvZXQ7Mje6MvJ/ozPXTo5y9ur0LUZyY9f4vbloU02kaJMI7pXpb2jPDW/KlYEuk5zOXD85WkdtT+sh7iA1STLYghzDjXTuWHDvR4NSJXWGOye6VHIqcwPkD2IXZ9YiJRIQdyUHqVx800ykcjOI7psWCO4RdLnkNOYGyNE3LNVYwKxN+EHclTzoR6tEkfprbEWuF798iRddMjmFuQny5JLatPJRA3hXcmRBP77ynrx8iQ9dNnm+uRHy1NJ5eUwN0Tyy8ppI4hf5a3ETdOnkueZmyFNbZCb7HiGanxMn62WBGfoIXT55nrkh8vSW10V3vKYxAGfem8zWkkU5cXMcuiB5jrkp8rT5aGOK4dIroTlVQn0mSEX3OrLRRcmzzY2Rp83HfQmk+WTrTt2RtYhORhcmzzQ3R475nGEU3EGaj7fo9ZO7ZqSYx9HFybPMDZJjzEdfMoA0H8/QUuuqcsyj6BLI/4NsbpIcYz7K3EGajxcB3MXUeoz4eB5Dl0FONjdKjvtUrRLOgmGaDxd40/ukJOTtMXQp5ERzs+Q48+GXgzDNh0lc1fVUmQ/R5ZCTzA2TYz9PDLeYwjQPZ5KYHTPEu5e40CWRE8xNk2M/VSuh/wTTPFz5weyMqwrW22Possjx5sbJkXlqD3G40ALTPFzhxeyArUs073wliRxrbp4c/9kSWmgpAay9DhN33E53zu+XyOgyyHHmAMjvl3Ffkgz8Ksg1luEuPcwXLTWxPRNpdCnkGHMI5OicsDouPa4BNa+4NUxgasspyeDRucnT5iDICWfJBCM6UPOyX8V8oXombaqWRucnT5kDIUeTtRru1S7CNC9hP5t2RPa9ZqMLkP9XwhwKOfpYDbfZ0fFh7IfDjNyY3JLv2AEadBHyhDkYcpTE4T5e6Psg9r1izCue8hRuii5EHjeHQ/7oDuFwuDJMc6/Uw6WcItvbM9DFyGPmgMgfPWoSbtpq9z1bmiO6A5KELkYeNQdF/qjlZx+zCL8NBHe306DzkEfMYZE/OsbO0G1qwey83ukoRecin5oDI3/0yPX9vtXmi/IW1QjofOQTc3Dk1gf3gYqZWgydk3xsDo/c+uBeUhfah+i85CNzgORhcD+32LyuKGufoPOSD81Bkj9aJd+7ZEGr+f7GWkcfOj15aA6T/BH6Bn1grXlVTUGGhM5A/t+BOVDyR48Ofb9icwZ3q6MNnYU8MAdL/mjb4o5ekb10nonORM5irpv8yZNNazt635e5Ey4PnY2cwVw/+ZNgumZpXaaqpZuP0BnJ6c0NkD95cmhp6n6uqZuH6Kzk1OZGyJ+gEb1kH3kvmJs7HU3tK1ZyWnMz5E+e7Pm+a18ad6a07IpHpyenNDdF/uRz18LojiJ7q9PRis5ATmdujPzhQ5TGWbbUgs72rXc6WtFZyKnMDZI/fBhE97wbiIEN5o7vb9zq6EVnIacxN0r+8PNNu9B7Ihc0SEDPJ//ffHOz5A8f3nFtQg/JW52OKXQK8nxz0+QjdEvG9FowS1O+tpKBTkOea26efIRet6Cro3tYDJEP0anI88whkD98uIvG9OBlgu7s/Srq4/7GaqdjCp2OPMccBnnQGm6oDrn4Xg1/ws1bHWPtKzrybHMw5EH63mgCr8OiPl691jHZvqIizzQHRI5aGXRJ7lzJx2l86NnkWebAyI92Y/d1AKyxVzsw0HPIM8yhkR8dNSFvhK3L/9acEz2PnGwOj/wI8lcO6j5OY0XPJf+CZA6Q/AjyVw4lXRtjWNDx5CRziORHnwOeran8OI0XnUBOMAdJfnS0B3a21tOxtZkRnUSONwdKfhTM1hyY5m0IM7U4OpEcaw6VHPBsrSLpoHZ56GRynDlY8qOjTairqq62fa6U6BnkGHPA5EeruCNBYRThNjqg2i/J5GlzyORHd4AG9wqIIhwWPU2eMgdNDrYU58IowmHQMeRJc+DkKLhXitBOj44jT5hDJ0fB3S1COzU6ljxuDp4caHCHGNpDdCx5zNwCcpDBHWZoj6J/QTK3gRxk5r4IM7RP0b8gmVtBHgZ3YGUZULV2HPoXJHNLyAGWZWDV2tPoX5DMbSEHGNwdIx+u0KOTzK0hD2vuoBZUB1o/NpeBPjS3iBzcguoZmB0ytOihuU3k4YIqpN0ydQOfoYqhI3OryMPdMoCm6OfKz/iUjh6YW0Z+VAryZDhZHODJOQnd+a1t5EdHLqDLlwaQJ+cEdOf31pGjKTqYjl7WfXaMBHRkbhl5mMVBqcW58DO4FHpgbhv50dEhmI8b2jZkcEl05/f2kaMsDkhHr8Pa70qHTmMOjfzoaRNIR29Dr8Fh0SnM4ZE/bQDp6DrPdZWHnm8OkPwpOhK0DqObX+tYh55rDpH86dMWiI5et2WiFkfPM4dJ/hRN1+o9AN18tWMfeo45UPKnj1FHN1yM67mgN0uQ0bPNwZI/vu0bL8aVbezmCD3THC7548eHpg8EtbSbBy3LHDL5Y3Rth9GbuCo+7D1RXOagyR8/RueBGjwvDt2mZU3ZldYcODkK7nW/Zsy8am03J5tDJ3/cCMZz11hhBt254q7Nljl4cmRebpuar6HbtKxM2jPM4ZOH5l7V0E1caJ7mdmbK3ALyx8coheubSeNQAmdtN8eb20B+sh2m7WUjnyajBG6zM0vmVpCPzHt1A9U4tGfDsgW1HHM7yE8uBe89eP81/Z8sDlx0uVJnhswtIT85GZp7Z9qje9XvQznFWY65NeRjc+3RvRTMF5xZiu32kJ80R9+t1fTm7n3XCZO4mTG3iPzk0B+VXstaP0523H64wFKZEXObyKfmQaTV96HqWfgLVra22J40t4o8Yj5wte2TOh9OE8o27WvPMreL/KQ1PXDiXNeErT/67arNSE3GMvKTRmRH3JmexZZeOJjPjrlt5DHzIJHWsfW5Mv5XBmCPAWQxt448bj7pgWpX0yYHXNhciBub20ceNw9GWuWlmXakEGBzIW5kbiF5wjwYYh216LF/wOaizNDcRvKkedANlaIHgWTgzY65leQpc7XoAXk0YWhZXIhD5naSnxyn9jorRE+Qe6sWF+ICc0vJR5smEnOpRT3kyHzPXnNbyXHmAXpFC7l3y+KiDL+5aXKsuRr0NLm3No/mxsnx5irQMeTeL63e62wrOcFcPnrfxey+urC4EMdpDoD8pET4RlEyekCOKeXPnzkE8vT8XAl6ENhxH0JeNO0tynCZgyAnmwfo1Z7CsTw0PwR6p5oicxjkJ6vkE2UqsoozJHJv2eIJOoc5EHK0N6pNXgKTgl4jkXvdHfvOCeM3h0J+4voZRw4E6OLr6W2fuCjfvWzXsZ9C5mDId0ffNJC8XOFNFCXfIX7p3O0eWrvKwmoOhhxN1Rz2ORbD3rfMpKDbvWVtVYbRHA45Gs6z9z0OHJHDxII/nTXj64bB/docmAMiR6H9QU5PXcwIznn72HOiRLfbXbS15M5kDogc7W4/fJM/IrtcnzUFvy317GwgMP/Rt3SKzmIOiRx181tv8ufXjl9l7+pt1z/Lmep1hx3dyqOjGMwhkaPRvNl9Q+FX9nP9kpPyql/PPXcOmf/o2lmXoTcHRY5O91jrXlAlY4u+Wx6wiLv538TsI/PuNTvTOGpzUOS3gx5WDV76M1pGv0J1YmSv7QTiFGHhemje3fT9jZ2ZNQdFfqkZRPbLwTu/Sls2r/h+/SyHfdAOBuh6mWogeD40R9G9vjaj5rDI0fG+f0bvfJk+E2+jc3+q5XN8lK+1K8H/7lYoj6a52h21HRsPDaMzh0d+a/jOr7JMwNoVdGKn71TPyuXz2rCVyuXFavifq2XqA4OfPR+bd1d9K+7IZTeHNZZHyLvPv2aceNfKZ1XU4yPNrS6W20y1+evdaVu0D53GHBT5thsh79Kl7rhgPmo8dbr9bjeBvrk2Y+agyNFtehFytugup0Ui+wTdqkQu3xxU9Q3dwuLuxF75l7rNl7vdNPrGrRkyh0ReRnF988/xN/58Xy/59W6qoatZLFpMzzOHtJKGOrm/eDn5xvWiY8jDtXSLBvUcczjkl1b9dFzXj44l73b/3ETxvTEL5nDIw7DuVy9j37g+dAJ5t3u5Gnb1HevNwZCXUDfymzukN/5cT/b+7KJLbrfC38rWmt3mUMiH4u5qxgvXMmX7ejnrJxh19Y1Vm81hkF8aimNyt3i7/kw1+f7zbk5bG/1yWmsOgvxSwx2K/5j3vrvLigf1N12Kthr+uG5lzUpzCOS3Wz6tuOpBPXMojwb4ofpGdcc+c+Pku8erw6Durv7YpWwXyuL7l89pf4axul+9Zpm5UfJL24295mjRq3ntcpe+Pf/SaCcfq18b/bbuXbPI3Bz57VJrc7rMuV563mVrKrr6l6w/RLdbXho9wWarsWaFuSHy3VKrOfVeWt9aWHj/Jevblj6qf33BLN69KC28Xn8xfpL6Hix3nLkJ8u3ynhvlfr0QtpLH/sYvpCbwb9g7eff5sxb64SPsyH0HsLlu8t3jxmGke4+5w/Y2tVpN0+TN1feXuxxt32uOfv6DrfWl6YYcp3VtDaS5TnKUrbmxjUrrC7HmBKMpx0uXFOB5wjr6lfO86DME7tGdWObhU+a6yKPJeaQtxc2b6OgWnve+LK7+9XUu8e7yM+99/Cm2kk8ZwBsM9UlzHeRBMMdx48wXMHuR9Azrz97w/bMosnvf5ZiHbWNzb/UaAHPV5Ld3Goeun9US5h94fNFdUJ1fPPyIzok/xFLG89aDWL9j0lwl+Xa5dejnt4P46wo/Ar/o6lUXEB9+ZpH4xX2R99B6u3zMXBH57jY5lqfa6/jreuvxR3dO9a8FxIcb7hPD+QHlo9c1pXdRcwXkaB7m+ixtK53E8Ud3jmyON3OLruO3aIZzYpdXXrmLmEsn321s+sxtPZ3EiUT3sO+9oZ6v7wv9Q+NPLBKJ6DrzS6hXdrSYyyb/vOXztGTi/soTjO7DKTNNiH92dVnsX+k+D3+5PmAdznFtb029uWzykstF7r9IvLDvPOHoPgrxOZ19/3pXuA2X9b7jG86Tc/hbqs0lk3N2ckziPj4D7kIYJDPE74v//WEBDrUNgeE82lbVmksm393kJk8m7luEr8T41FWKowIcLrSvc7+KqkpzyeR3XH7yVBL3ypMU3cmb5t50pbTR3/028QAC76KqzhwSeSqJe+tJi+74nTTPLuSQj4PIkqTQrgwdmYMiT1VfNzyJ0R2zE/7Zshzy8Tkn76WFdlXogTkw8uSAvvDSkxndUx8vSyIfR3bvWxkzNaXozu9lZ+yi5MlK3ML09E45QTh+Hsl1SeTj8PFyQWJoV/ONs/NzyeSbos+YGtAdT3J0vyCeEyLh7/xOamj3VZw6mDQXLcW0fPG2QAruQtH9+fV9b3+4fHI1Edkvvnz29dULObFjSV7WPq7A76g1FyUvSyDPCO4C0f1iqPL1Z6jdfPfu3Uc3g/bXyMmCV59LyBHaskO7L//el7i5KPkdGeSpGXrTE4/uN2+++3hl5RTX7q68++gHiu9OqUaLptwMblR7V2guvKzSlGKeLLmHm2UEovvl7++e5raVGz9wz9SfT4q6rxI/+WspL0TykB41F148XZXzhKnZ2ltPKLp/fErX7n504yehaVp6orYu54XIPSY+Yi5Mvi2JPBXclzyh6L5ySt8+419awZTaD2S9kT015sLkkiI7Lri/90Si+10G8yt/5V1awXXzLVlvRGp0n5iLb4RalfaAqcz9W08gun9/ytKuXOaP7MluLieDG0Z3Bebi5HfkkaeCezSLY43uN07Z2l3OpRWl3dz3W9LNJWx3PJT4gKmyzFuPN7pfvsJofvoXrqUVtd1camVmaC6BvCSTPBXctzze6H73lLl9xlWAS8/Nt6S+kqpccwnk8hI4fBZX8vii+/fs5ExDeqSM+15lN5eZxiFzGZ8uNOQ+X2qKvuRxRfe/nvK0Fa7lGrXdXOIdIIG5DHLxFdS8LK7EFd3vcpmf3mAuwHleSXE3l9fRnZ9L+UBpVfbzJbe/Jjo6ZXT/no+cOrpHtl+8XFLczeWttTh/kEG+K/358jo6VXS/fMrbVhgLcOmdj/K7ubTNzxNzoc8QW/KfL5XFxTs6VXS/y21OlbtHCnDpeZr8bi6tMDM2FyJX0M3T07VER6eI7j/xk59eYSrApRM4Fd1cVkcfmYt9bNxS8Xx5Hf1L+dWYaPueKbKnErh1Fa9EUkcfmouRS0/aqTp6bnT/iwh5fhoXvcPx5ZaqBTUVqXtoLniKREPN86U6+tZLluh++VSsrTBEdicVkxSZb8oyFyRX1M0xHf0tS3S/K2iek8ZFP41IboKTtT1GUUcPzEXPiimrer50R/+A8naUoH0mSp69wHaRFdnVJHDSqu7OH4SPB2oqe8DUu3ToPzu6Imx++hPldxGOjnnauO0oM2cgP1b3fC8OsjbMZH6R8JM4edZ8LTOyHygkl7FLCm/OcgjYocIHXM+ZrxGj+2UJ3TxjvhaN7B9s6Urghuvoa2rMWch3VT5gquqeTONI0f17GeTE+Vp0aSVdjdlS+kYk1GVw5kxH/bWUPmBy4SK+S4oY3eV0c2JH38+qsx+oJZdQl8GYM5Erm6gR1tGjH7WQo/uKHPIrHy/nFeBSGyXURnYp07W0OdsZrjuKHzA1XxsfJJUV3S9LEV/56Bvvas7SSnqatqWaXHy6ljJnPLZ3U/UTrudN0vdVdPMrCJxwIkHm0sqBr76tSTZnJL+j/gkPmKP78kcfrwh5v/th8pdfzdrbnDzkU2k1Ztoqcs1ZD+duqX/CJeboHk6eb97ggL8y/kSVfPTIctZqmqLlNMlZXNyc+Tx2V8MjpobMyfFh+OgeUfnm5kfv/rJCm8Tf+AZzjthVcgHulYHBPGy3JJozk+9oecRUdN94mRXdcec4/0Dj/ifseYHLpL88tQNu4eCFHvOqPHP2izb2tDxiOrp/mxHdl7FyFIvpV/BnRF4lFeA29E/TxrU4aebs5LuanjEd3Uvk6I4/rv1P+eYfEw4GXcYX4L41M5hLqMVNzTmu0ynresZUdN96RYruywS5/ITuIy+3o0f2Nn+3YGgwR82RY85zg9KmrmdMR/fEkD6N7qRbGfI7+jdeXke/npWyH/ga25oMcx7yXX3PmKrMJJfS93O6ueflnTCyQvyTV9MFuFcLRmbmcqboI3Oue9IaGh/ydd4s/Xp2Nw/mbTmbpW6QD3dfThbg0rM0bfnbsNXFzfluQ2xqfMj09onhNVyJ6P484yKGb7LNb3o5Hf16xpK5xvxNfLtMaM5HflvrQ6aH9EQet58sjKYadz8Pd9hOR42XGybzN/Hgjsw57zxd1fuU6SF96WUyuj/PunPlJt9UbXyo/34G+Wvd5ELBPTDnvea2qfkxt3KS92cXF5lXqd3kzeHifzWG/OCFdnOR4O78gZf8tvbHPMirx2W3j7jKcMkGhFwkuDu/473MelX7Y6b3TzChv+Odn+eQa07ZxYM7tXnqyvpN/c+ZzuOSMzYR85s2kYsEd1rzFPmuiedM53HJyntGyyvK3OAjXzdDLhDcKc1T5Ppq7Tl5HD36yil/4g6PXCC405mnyU2EdkH0lVP+xB0euUBwpzLHkF8y9aTpImxy2wypXTkVS9xx5FvmyPkXVGnMMeQnJVNPiinCbtGh8y+sgSTnX1ClMMeRn+z51qHnmmcm7q+gkfMvqOabY8lPDD4qZsa21c4n/yF/D2QW+RY4cr+hyhxPfuzDQqdI5G5yb45CnygBJOfeCplnjic/WfWtQ883JyfupQWA5NxbIXPMCeQnTd869He8G18x356CIOfe555tTiLfNf20OPS3ouakxP1boOS8Z05kmpPIT8rGHxdThc1ZcKEwv0k7RzNZihEvxWWZE8kNztQy0Z2XAmU4QuL+agksOW8pLsOcTH4C4XlxFhsvhcwxiXt7CzA5ZymObJ5BfuxDRc+oztDcn0mVvcEh5yzFEc0zyA3P1LLRS9xluHTi/tLBkS+BIeecrZHMs8hPNn246MT0neZr5G/yh/IDQOScszWCeSb5JTCPvHRAncn9icY8lriXcEO5kb1v5NaSZ55Jbm5NjWrBJcjkXnGV4eKJ+0vcrHzhNSxyvtka1jyb/KTlA0fHDepU5h9nLqMBqcQIr63hzHPITRdeEw0XgRdaKXOqa1NXMuM6oIRdaG0NY55HvgvssbE8qfj+7pQ+ccfn6xDJucqvafM8ckjDObkkl4rvVObDxP09dj4AK2EfN1eGeS45hMIrzZwtkb/THRx2E3voG8TsTaD8mjTPJz9x4T04ds62sPWe2fwdIXkDmL3xl18T5hTktyE++YvXWKnWS0bzv2CLrTCH8mGrippTkANYR6XP5BaW3rOU4U4//cWCPUM594AeM6chBzicZ2Ry065OQ/7JglVDOe+AHjWnIoc4nGcN6gtLbYqDRVD7Gb6Twx3KeQf0iDkd+S7cpycM6gvOBxRluE8JnXxhCTY5x4A+Nacjhzc7zx/UF7be5pr/7MDGuM43oE/MKclBFdtpZ+pBZ23w5G7g4zrfgD42pyUHVmynju8Ln3zKHtbBx3W+AX1kTk2+C/4VbC0wqpPCugVxnW9AH5pTkwPZCseTvwfT7E8YsnXIdRjBAT00pyeHshUuO74Tu/ovfkY7kIOuwwgO6MicgRzMVjiu+kxSnTyQW5G8jVuD3ZyF/MSS10BM5SLqGeIWdXKffQ3d+R0T+bY1L4Lc1Yfqn35yQO7kL2wiZ94UNzanIz9p2PMmMrp6oJ4hblcnR43PnJIc7AILa1fPaJZ1ctSu8ZjTksNdYGHu6jPTyX3mXe6hOTX5rm1vY332O3nQNtnNqclhL7AwztVnpZP7zJ+tBeb05FZUZKjLclbPyePtFqM5A7klFZlko+vqr19YS864zOL8kYH8xNJXQpPLrfsWtyq3eS75trUvJS/Ab72wmZyxKhMxzyWHuuVVOMC/XvItb2t85vnkwPfI8GbwB+u+9e0alzkFOfQ9MrkB/vUMhnWOqszYnIb8kvWvZv1glrJ13qrMyJyG3OIUjlSYO1jyZ6NtsJtTkdu0qEY1rM/CQD5uO6zmdOR2Larlq2+9mB1ypr0yyJyS3PYULq4+U+Jse2UCc1rySzP0il7MljhbEuf8kZZ8JlK42W0s5r+iNm8ULxZwu6XEfK94sYDbqhLzZvFiZyOJoze/VLzXGUni6M2LFG5Wkjh68yKFm5Ukjt68SOFmJYmjN98sXuuMJHH05sVbnZUk7v8FGACLAaatqFARCwAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAAfMAAAHyCAMAAADIjdfcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRFcZ1F////dKBGjMFRa5VChLZOiLxPWH04f69LhrlORUVFeaZIeqhJh7pPgrNMsaCFgLFM8tDR59erzdGVjmwx7+fV3cmt8OjYbplDZoJI2VlnjYVz9ejJhplNnnhQhVMhk6Rqe6pJcnUzlIg5ZIw+66+zZ2NbrMZ04oaQ+PPrv66RWGdHeHNll1wldqNHh6NFp5R5u8mJomMo22Zy6KKc+O3or7eAilUi8+GzdJlM7eKroWssxVdWd5FT+vby/em9aJBAS1RD/fv46d/R24eIk7hk33qCVXA+dJZJqGYq/uq7jcJRjlcjTmI+m1QzfahMnr9mi8BQUl1GibZSir5QbY1JeJ9Mi79Qg7VNnXkyg7RNir9QfaxKgbJMfq1Kgq5Mib5QgrRNir5PhLVNd6RIib1PTU5JjF0u9/TxXFlTz7+i+unB8uzghbdO99/i5ZedhbFTqFU+kFMqjLpUjr1Vg7RO3tufdmAokLlZgrFN3dXCjLRbirdTlb9bfmcqgrNNol9wTwAAH0BJREFUeNrs3ftDG1d2B/Cr1va1ldqYhyACY1EDfgAqYBuQQ2zAZI2lksVlAwXXNk3SFeZlb3Y3TkqT9b9eCQTSaObO3Pc9Z7jnx7ZxdefD+d7HzEjk39NS/8xV/5FU/xmo/zqr/67Xd6H6oVZ/rtcVdl1n1bXIOoqqy/X68cet1np9Vt/X6nO9bjTq7VndbK+r9SKe/KKRp8bck3OTp8Xck/OTp8TckwuQp8Pck4uQp8LckwuRp8Hck4uRp8DckwuS4zf35KLk6M09uTD5O+LJLxo5cnNPLkGO29yTy5CjNvfkUuSYzT25HDlic08uSY7X3JPLkqM19+TS5FjNPbk8OVJzT65AjtPck6uQozT35ErkGM09uRo5QnNPrkiOz9yTq5KjM/fkyuTYzD25Ojkyc0+ugfwN8eQXjRyVuSfXQo7J3JPrIUdk7sk1keMx9+S6yNGYe3Jt5FjMPbk+ciTmnlwjOQ5zT66THIW5J9dKjsHck+slR2DuyTWTwzf35LrJwZt7cu3k/0o8+UUjB27uyQ2Qwzb35CbIQZt7ciPkkM09uRlywOae3BA5XHNPboocrLknN0YO1dyTmyMHau7JDZLDNPfkJslBmntyo+QQzT25WXKA5p7cMDk8c09umhycuSc3Tg7N3JObJwdm7sktkMMy9+Q2yP+FePKLRg7J3JPbIQdk7sktkcMx9+S2yMGYe3Jr5FDMPbk9ciDmntwiOQxzT26THIS5J7dKDsHck9slB2DuyS2Tuzf35LbJnZt7cuvkrs09uX1yx+ae3AH5F8STXzRyp+ae3Am5S3NP7obcobknd0TuztyTuyJ3Zu6Y/OfNRl1AclfmTsjXNjfy4+Pj1WxbVWv/w3x+c/Pni0HuyNw2+c6T/PhSNrlq9i+/SDu5G3Or5Gsb4c5OkM9vfJFicifm9sgvC3s38z7/JKXkLsxtke9srGfVajz/RQrJHZhbIt8Yz+qopZWXaSO3b26FfCdfzWqr6srG/6aJ3Lq5DfLNlazmqq68TA+5bXML5JvjWRNVza+lhNyyuXnyHTPip0u6jVSQ2zU3Tn55JWu0Gs2Om9yquXHyjWrWeK2sYSe3aW6a3GSsByL+CW5yi+amyW00eaPWNzGT2zM3TH55PGuzVtbwkv8PSQf52lLWcuV3sJLbMjdMbjHXm2v4DaTklszNkm9uZJ3U+hpKcjvmBsmf5Nezzqqax0huxdwY+ZOVatZtra/hI7dhboj8KL+UdV/Vl+jILZibIT/KV7MwagUbuXlzI+RwxOv5fhUXuXFzI+RPlrKQan0NFblpcxPkR+NZYFXdxERu2NwE+WY1mwWLjoHcrLkJ8nwWYjXQUZAbNTdADi/XWxdyOMj/jeAiX89CrXU05AbNDZCvVbNwawULuTnzi0aezW4gITdmfvHIs9U1HOSmzE3M5cDJa1M6DnJD5hdr+dZ8dgYFuRlzE/vycfjk2eo7DORGzC/OUUzoMWgM5CbMjRy4ZnHUEwTkBsyN3FapIjFfR0Cu39zIzdPxLJZ6CZ9cu7mZ++VoyOuNDp38nwgCcjTJftLo4Mk1m5t59i2PiDy7Dp5cr7kZ8rUsqnoJnVyruaGHmsdxma9AJ9dpboh8M4usvgBOrtHc1Nsq49jM88DJ9ZmbIkfX5tkl4OTazI29k7aCzjy7AZtcl7kx8h185Nlx2OSazM29bJxHaF59A5pcj7nB98uXEJqfhDtcci3mBsk3MZLXwx0wuQ5zk18csoLSPAuaXIO50e+KqeI034BMrm5ulBxntNfCHTK5srnZb4TKIzVfgkyuam74e9/WkZpnnwAmVzQ3/YWeWMmzecDkauamv7b3CVrzJQKXXMnc+Pex59GaZykBS65ibv6HNsbxmq800AGSK5hb+DmdKl7zb+kJOkRyeXML5Dt4ybNLtI4Oklza3MrvpCE2r9I6OkhyWXMrv4a4gdi8NqG3oYMhlzS385unefTmLeiAyAlc8u/GMZt/SwPokMgJXHLc5ku0FR0UOYFL/t1SFvsi7gwdFjmBS/5dFnXRJjowcgKXHLn5ShMdGDmBS47c/Ntzc/olLHICl/xyaszb0F2TE7DkWo7hqgNjrg7tlygD3Tk5AUuuwfzuWKlSKQ0AMG9Bd09OwJIrmw/sV05r/67bhXsAHQA5AUuuZr43Vao0a8K9eQMdAjkBS65iPjFWCVRpz+lmrYkOgpyAJZffq52HerN6q+7Na+gwyAlccjnz6kBXJaLG3G7WGugwyAlcchnzamAab60pAOYBdHfkBC75DxrFa2V9y7ZO49AdkhO45D/oFHeAvkRj0F2SE7jkP2gVt48ead5Ad0pO4JILmQ8kittHp0x0t+QELvmf+Z+TmeitcNUAAPMaumNyApec27zaUeGtAQDm9EvH5AQuOa/5RKlSAYlOudHtkhO45HzmAk1ue5++wotumZzAJecyv9tbEawxAOZBdNvkBC75lXHNuX52a7Xq3rwV3To5gUt+Jfk9loGKTPVG3U+vTlRtmjfR7ZMTuOTJ5nLklUop6n56dX/CpvkZugNyApc80VyWnLF8v1vqqFo0P0V3QU7gkieZ3y3Jm1eiHo28W+nS2urf0kR0J+QELnmCebWrolJRk/qA3q1ckjn90g05gUueYN5RUauoSX2s9rewZ8+8Dd0WOYFLfiX2gbiJinJ1hP/VXsYCz5B5AN0aOYFLHm/eq24e0dN7pei/BVPmLejWyL8kcMljzQcqOirc0wPRfwvGzM/R7ZFHmUMhjzXvquipUE/vMzfwZswb6BbJI8zBkMeZD1R0VXtP75WS77/t6TQ/QbdJHjaHQ37lZ/NtXgm/zzbF3sA3j+yqGs5kWtCtkofMAZFfuWJy0c4+n+lKfg1ijOsdCV5zeskqebs5KHK2+ZhW80rX3ah5o3Q3ZmrhQec2j0I3R95mDoucab5X0V0DURMH+y3m2gfY12keRjdIHjQHRn7F/Aou8qb6QNypzfmfxZhO83Z0k+QBc2jkzIcmevWbB7ZnXbG3Ys4mlwGd5kF0o+St5uDIWeZ7FSPVEZUjjOOZAZ4XnCmVRDdL3mIOj5xlPmDGvOlbTXq+4nTjsK/VvIlumLxpDpCcZb5vyLy5aBtLfDya58FpKodumvzcHCI562ZqxVw15u+BxCdlT6b8UlWr+Sm6cfIzc5DkDPMJg+aNRymqid9SsZ/83PQSlUE3T94wh0nOMJ8yad7I97adQfh4pvHExp5ec3rJAvmpOVDyKxt2p/OW9XtH0kOTU8kvSKxTRXRD5CfmUMkZN9ZKhs3rUT6RdCh/FjZ7yrfVmOimyOvmYMmvb1rcnQejfC/pocmJ5Deh5MzP0Y2R18zhkl//bH0Jdx7lSTddzz/Fnp5juBC6OfIvCWDy63+3v4TjfahmIvk9V1nzE3SD5JzmbshffVUZmzB9H1XyoZpz8y7GCxdTU0NUHt0kOZ+5I/JS5F2OfYfmzXyfiP0u2YmTIxsFdJPkXOaOgv2r6AORUsVpNf4GJ2JO6aqNKCptaEDXT85j7ob8+jTjFKziuE4fqmlZVbQH0d3zW7HdVBndADmHuSPyvzf7eT/4IqHzmgqaD7BfndxQRTdBnmzuiPz6PcZ3wEy4N6/s77WaB8O92jr3zFI1dCPkieauyK9/ar3Id2GZV0qBL4ivMl+d7KJK6GbIk8ydkV8PNhaI7TmrJthP3j9VQjdDnmDujvwe6xYHQPMx9nJjiJpAVyO/RGCSN1ft7ScfAM272M9tzVID6IrkseYOydvNm40O0Lx1udF2472b6kdXJY8zd0keXMK15uc+QPMB5k2/T1Q7ujJ5jLlT8pB5BbL5GPuRXKobXZ2cbe6WPGw+Adi8xH7bgmpG10DONHdMHjYfA2x+fhM9fEiobk4XNZOzzF2TXw/3UhWw+QTzu6yoVnQt5Axz5+TXv2ItlECaTzG/CoHqRNdDHm3unjyc7WfhDtJ8n3kuTDWiayKPNAdAHmHemDRBmpeYj/BQfei6yKPMIZBHmU/BNT/9e4x6IpdqQ9dGHmEOgjzKvATYfIJxRPiJakPXRh42h0EeOns9X8XBNJ9ifJlVN7WFzk8eMgdCHmneBde8g3Fnf5paQhcgbzeHQt5+L7WZoDDN9xmfbJbaQRchbzMHQ379d9aVnQJp3sV4UG+IWkEXIg+awyGPOIhrzOgwzSuMdy2eUhvoYuQBc0jk1z5FtlMVqnk1+tVJSi2gC5K3moMiv9bNWB8DNZ+I/NmIbmoBXZS8xRwW+bV7jEdSoJpHvl4zS82jC5M3zYGRX/s9+tr2TsA0j36jaogaRxcnPzeHRn7t2lciFxdo5alpdAnyM3N45IwJHVV9otQwugx5wxwgOWtCx1Sz1DC6FPmpOUTya9dK6M2fUrPocuQn5jDJ8Yd7F6VG0SXJ6+ZAyfGH+yw1ii5LXjOHSo4/3DeoSXRp8ksELjn2cO+m1BX6JTVzd+SsYxksNURdoV9SM3dIfi36PguWKlHqCP2SmrlTctyruFnqCP2Smrlbcub5K4o2z1M36JfUzF2TY250C21eqxEJ8kUCmfzo6JNvczF0DvI4cwDkR6/8ol0InYc8xhwCOdpG76LUBToXOdscBvnR33Aexg1SF+h85ExzIORHR/f8Ao4XnZOcZQ6G/OgI4QnsJ0odoPOSM8wBkR/9Dd0mvbRBHaBzk0ebQyI/Ovod25T+lFL76PzkkeawyGsbNlzoQ9RBjfCTR5lDI6+hI4r3khPyZPTFOHN45LU5Hc02/dNTSiGiL8aZQyQ/Orp8D0Wrl2apuxrhJA+ZAyWv1atp4M3eNTtEndYIH3m7OVzyyz/+CPx4Zpa6rhEu8jZz0ORbv/r1uhT6Ypw5bPKtLdhzOqUw0RfjzKGTb4E+hu2mMNEX48zBk2+98tEujL4YZw6ffGsL8oHcBoWIvhhnjoEccrh3UQoQfTHOHAX5FuDd2iwFiL4YZ46DfOs3fzNNBH0xzhwJ+dbWJx/t/OiLceZoyOGG+ywFh74YZ46H/PVvPtp50RfjzBGRv379yUc7J3qcOSry1/d8tCujE1zkr38r+WhXRSe4yF+/7vbRrog+QpCRwwz3IYoHfSRgjoH89fcQb6huUDToIwFzHOTfAwz3bkqxoI8EzJGQf/+rj3Z59JGAORby7z+D26KXKEWCPhIwx0P+GdwqbpYiQR8JmCMi//y55FdwUugjAXNU5J+7/QpOBn0kYI6L/MavfgUngT4SMEdGfuMGqFVcF6UY0EcC5ujIb9zzKzhR9JGAOT7yGzcgncXlKTZ0gpEcUqNPU4oNnWAkv/Gnkt+oyaMTjORv3077jZo8OkFJ/vZPUMwHKT50gpL87dtu3+bS6AQn+Vsg5zJDFCE6wUkOpNG7KEWITpCSw2j0IYoRnSAlv3mz27e5JDrBSn7zV9/mkugEKzmARsfY5nV0gpb85rRvc7kiaMmdm3dTtOZYyW+6vtEyiNYcLfnNV77NdZljIXdtvpEeczTkjs1naWrM8ZC73aCX8qkxR0R+86Zvcx3mqMi9uQ5zXOROzYdSYo6M/KbfnCubYyO/+pU3VzRHR371kzdXM8dH7s0VzRGSe3M1c4zk3lzJHCX51W5vLm+Ok/zqtDeXNkdK7s3lzbGSe3Npc7Tk3lzWHC+5N1cwR0ruzeXNsZJffeXNJc3RkntzWXO85O+8uYI5TnJvrmCOlNyby5tjJffm0uZoyb25rDlecm+u3xw6+bt33lyzOXxyb67ZHAG5N9drjoHcm2s1R0D+f9PTC+7Mp2efpswcPvlfunO53IE789r/996NNJkjID/OOTfPLT9NjzmCYD8hd22eW86nxRwBeXfOsfnC6Qc4Tok5AvJ7OdfmB41PMJ0Kc0TkuVvOzVGiE3zkf1gGZJ4bQm+OihyEOUJ0gpgchjk+dIKYPJdzZn4rhxidYCZ3tnBfCHyK3Cxac3zkzhr9VtvHmEZqjpHcUaMvtH8MXOgEEfmrEHkutwChzevoeXzmmI5iWusWDPJc7jiPzRwruQv0g+gPggedYCGfzjHqwPlk3ig0t1YJrjtp7tEX2B8ECzrB81QMCPSFuA+C5HSG4HkqBgJ6PDmS0xmCgPwPCeT20JPIc7l9BCs5goB8OfFKW0I/SP4gGJbvBDz5PQ5yO1s2HnIMKzkCnXw6x1e3FpwcxWBcyRHg5N057jKb7wu3+D/JLEZzKOR/Oc4J1C3nuX5WvXl05jDI117euS10pQ3m+y2xD5I7voPMHAL55vA/CoXC7UPBa30AoMlPzAuFX+4gMndOvjZ8Z7dwWs/7cs5bfeFWTsa8Vr/8gsTcMfnkSYOfVeaB8OW+5bzJc7kHY+cjANjuBBL55ODwbiFQx5lD8St+4LjJc4eZqdZB/PKPO6DNnZFPDm/Pl8vlYtC8NyOc7loDXkY81/c80xMYxVy5PN9zB6q5E/I3g8Pb5Ua1mY9lJNJdm7pMrNeTPXMYHMXq6dhq7nfgmdsnb7R3mWE+lcnIpLuWgD+4JUd+mMn0BkdRbBkgAHjijnxyuNne5/UweLVu18xl0l1dXVY811f7yB1s85PqcQpPXJDvRHJHmRdqF1Au3esBf2B36XZaz2qf+HZwEA8jh+oMnlgmn2wP8/ZqM1/OSKe7vPqBvHhupv552wYRM1wXUU/skdd2YvHcUeb7GYV0l0t4FfGTZM/sRy7hwMATG+QxWR6q1eD16siopPup+oI18dNkD+7OI6bzstusJ4bJd7iam71wv31iLp/uYju3BTXw+jatXrs807m7licmySeHhbijzAvvM6rpzj2xH6iK17dpmdBOrSB8DQyf3xBz5JPi4BEL9+OMerrzNPvCQU69nmcion1V5jL0mDY3Qb6zXZarQtSErpruSerKod6S7O3RXpS7DneMmpsgl2vyes1FTujK6R57z01Hj58leyjaH0peiB6D5ibIB8vSFT2h60h31tZNT5PXb61ERfuc9JXoMWZugny4rM98P6Mv3SPR9TR5Y5uWybzXE+0ni3hD5tDIQ4u4qYzOdA+j6yJvJHv7gYx0tJtDJ9DIQxP67pm5pnRvQ1/QRN539ilv64p2Y+gEHHko3I8zetM9+H0kOb3JHjprL6pdjB5L5s6Wb9HmHRnN6X5L9UEY9jYttIJTinZD6ET7Jk2VPDSh92S0pHtfvRMf9AXT/TTZH9RW3M8OtSR7+wpuTvly3LFg7mpfzpzQW8JdId1PG3Gms7d39PF59fb2Lp/vsZ4ppMjzsw84pjfajaATzQeu2+pjDIX7VEY53Zc7Rx/fv98fWY/ufxztrIfA80PlZG97+FE92k2s44he8mEN5KFwb67c5dK98/6j/sR68fiDdIwcnn+8ff1trn9KJ3pvq5S11BzrWEYu3e/389WjUTn0vvNkb9+o6Whz/elOdJLvzOsxbw/32xmldH/Rz4s+87FTKdmPC7pXcKdl0Fz1fvmwpiG2h3vhUCXdl/sF6lGnQrKH2ryo6YL0GDNXfkSirKvmmFt0iXT/pl8IfVl2m2auzTWnO9H4INS8tiEWY1Zxoun+uF+sXkgewBlsc81rd6KPfFjbCMPh3rqKE0v33n7Reiyb7O1trmkFp73RiTbySX1tHnr6tfUsTizdlx8Jm/f3yiV7aG9e1HhBygbM1Z9wHdY5wlCjH0um+zfi5EJTekuy7xtsc63LOKKLfLKsteZitmsC6T7aL1MfJbZpmfdG21xnuhNdry5s6x1hMbbRedNdJtlF0r11DzlmtM11NjrRRK65zcPhPpWRSPdv5Mi50/15y1/hrtk219joRNMLStu6R1iMO5fhTPfRftn6KJrsofvmuttcY6MTPeS62zyi0YMzOk+6yyZ7vToFkz20T9Pe5voaneh5DXFb/wgTZnSOdP8oT85zMtNyayW8T5vTf0G0NTrRQj5pYIRJjZ6Y7p39KvVYKNnHjCe7xkYnWl423jYxwoRGT0z3F0rmicu41mRfbv+oqyYuiK5GJzrIJ42MMKnRE9J9tF+tPvIfwIUO2s20ua5GJzq+RWLbzAiLsafuCemusoDjWcY9i0v2opkLoqnRiQbySUMjDDX67nv+dH+sSh6/jGudzJfbt+Zzhtpc06k70fBdMcOmRhhq9DHudFdv89jTOCfJrqvRiTr5jrERhhq97WAmJt3vq5P3P5JM9tWyuTJgLvONUMPmRlhMWMYx072zX0eNciV7wV6b61nFEfUvAZsvW2z0fb50f6HFnLVfa02b0O00Yws4bQ/MEGXyQZNDLCYt4x5oejhG5GAmcAA3ZTPZ9TQ6Uf6qv22jQ1yNv7/GSHc9bd7/aLQvKdn3rSa7nlUcUf52R7NDDKd7b3K6a2nzRx87o2PkMG6bZjbZ9aziiOp3uA4bHqJMuqu3+aPHnaf/el9ssocn81XT5Boanah+be+84SE+nBNO95nOUZWt2ouPnTMxf1HP4iZz08mupdGJIvmg8SGKp/tJI36owQufy7y4f/qGakv1iTwOZYNcfRVHFL+ce9v8GEPLuN34k5mZlv9VZ8w7yOED9kxEPWMfwPUWrE/mWsKdqJFPWhhjuNHjT2aeR8jN8MzhmcjqYyV7eP22WrZSWszlv4J/uOwEPe7cfSZSjqPX70ebP2M923zbSbJrCHei9kMb81YGGUr39scnHiS0eS3kOU5aM4mNfhh3Z8UWufJZHFEin7QzyPDanX1XdYYhl9zoHxj/5YPIv6cpN5O5jkYnSj+nM2xpkIlTejPdnzPkOiWn89ZGfxC3ZF+1Rq66iiNKv6A0b2uUoZOZ4CvpzWY8ZMolNfpH5n8Z8W+Hj1znHtozL2swlyUftDfKuaQ7bIfhE5O2tdgLiZ1aa6O3HMCFd2kFm+SK4U5Ufidt2N4ow+m+uxyR7uw2z2Q+yE3n543+IGaXZpdcMdyJyq8hzpedor8PwzyLMe+U7vNM8M8pgrxYtluK5vLkg1aHGZ7Sb79vT/e+jLz5aMx/OtP6TwMgVwt3ovCbp8N2xxnepbe9q3p4GNfmmVHZNVzwn444i1m1Ta4W7kThZ27n7Y4zvEsP3WLLKJjf5/tXIsjnHlo3Vwp3Ik8+aHuc4Sm9ffGuYt6PiVwp3In8j1kPl3GhJ23QZ+TICy7IlcKdyP9++bz9kYbXce030xXMOxGRK4U7kf/JehcjLSZt02PqRb/8wh0cuUq4E1lyB9EevXjnRu/vl1+4M8mLjshVwp3IkruI9ujFOy+65P3z5r68BxC5SrgTWfJJR0ONWMfxoT9LvJmaQL4Lilwh3IkkuaNoV0BPfmpiBhO5QrgTSXIbDz/qRe+Uewby7E4aNHKFp2WIJPmOw9HKoXdKPxwVeb/cNblCuBM5cvuHcAnb9N1j1WO4uIX7GEByJXMZ8qvbZWDoiSdyo/3SC/cpiOTy4U7kyK/Ol7GhczztzL8tB0Auv1sjcuSDrscbhT6mah65cF+GSi4d7kSK/OpwGSL6lKJ51ML9eBcqufRujUiRO57OmehtT84IHcNFL9yjVm/Oztg1hTuRIp+EMOJI9EMV8/tcqzcw5LLhTmTI3U/nTHT2Rp3nVeT2dx+jpvI5MORK5qLkAKZz1uEMc/nO9e1hHFM5IHLZ3RqRIXe9U4tHn5I3/5A4la8CIped0IkM+SSYQUeiR07qXOadCbtyIAt2xXAnEuRQop1xPz36IJbrq71H43MdGrnkbo1IkEPYqcWjRxzPcJnfj811cOSSEzqRIAcznbOX7+GdOtePs7yIWa8D2qMpTuhEgnwQ2MAj0Xd7hY/hzhbuvZG5PgeQXG5CJ+LkkKbzGPRCx3tx89rC/f1UdK5DJJeb0Ik4OajpPGb5Xrjdej7D911xnZnjHhxTuUK4E3HyqwCHHr2Sa13KcX6Rc0cBy1QuH+5EnHwQ4tgfFhNanYv8678W0EzlSuaC5PCm87hJ/azVP/CQ/1RANJXLT+hEmPzdNtDhR0/qhZ5jzmO4r+cKqKZy6QmdCJO/Azt8xqRemHrPYf71HwvYcl023Ikw+SDgC8DI9939xGO4nxh/L6vAyRXM+cnfDZfxoRdufyOzdoOe65ITOhElBzudx+d74SfxWAef65ITOhElfzcP/BqwWn3uJ8FYB71eVwl3Iko+Cf4iMNbvhcJfvxaJ9QIKcUlzIXLY03kDfZVbnS2+ioRcYkInguQYzNn5Xij88WueiRzD4k1+QieC5OCn84SlXIv61z8x/2/mHuIhFw93Ikg+ieVKsFv9VD1GHFOTq5hzkoM+keFu9dq8HiOOqsllJnQiRo5jOk9u9UJamrws8VAcESMHfiIj0OopaXKZRRwRI3+H7HIU097kMhM6ESMfxHY92Ht1zHtytQmdCJGjms6TjuXS0eRS5iLkuKbzM/RimptcYkInQuRITmQkAn4Or7jwhE6EyNewXpViSmNdi3ksOb4lHF/Arz5ETS46oRMRcoxLuOSAn0MuLnwqQ0TIUS7hko5oimX8pWCeRP5mHvm1KSJ9FkbvhE5EyCfRX5y2aX01FeIK5onkbwZTcHla1OdSIi66iCMC5G+GU3GBztSL5fSUnDkH+ZvtlFyh+hK++LB80c15yNEv4VrUUyUuOKETAfLJsq80TOiEnzwVSzhv3jDnI0/JEi6dJWrOSZ6aJVwa646YOS95ipZwF92cm9wv4VIyoRNucr+ES6d5HLlfwqVlEUe4yf0SLi0TOuEm90u4tJj/vwADAKq4CiE1ijYVAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAAfMAAAHyCAMAAADIjdfcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRFM22C0LKTQX6aSEhIRoSiSoyuMGp+0cjRRICdNXCFQH2ZP3uWs7OwJ11xhoeGR2VzSIalSousPnqVSoqrOHOKz6jORoalPHmT/ubPR4enR4WkRYSjPXqUoYt2VVVVQ4GeOnaPSYqs5NbjOXSNS4ytrGeqcXBvdIeENnGIRVZdRUVFSl9o/vDjOVll4sWlRXSKLlpp/dy8sKqXN1FaUVFR8cqjO3eQTExMPnuWk5uYbZKet5yCR4OgRElL0b2jW4mboKWiRm19TIOa/dKoT4efQk1STI2vUVtf////Rn6apFiiU1dZSIioQHePQoCcSYmpRYKgRYOhQX+bQHSLRIKgQ4GdRIOhSIinQHyXPHiROnWNPnmTSImqO3iRQn+cQoCdSImpSYqqOnWOQX6ZSYioQ4CdOXSMuoK56ebpjnxs8/Pz5r2eUFVXc2hdXl5f/dWuXFZRUE1L+fT58+rz/vz5Z19X/vjxQXCEXHp+OHSOak5pSH+bRnuUklWRgW6AU0pTDizfXgAAHjtJREFUeNrs3etjE8d2APAxohKxPRZ140DBXqe6tYikGBljX9coMiiKasVcqHmlUFJyb9Nb2WBjDAFze932X69k+aHHrnYeZ2bOked8SfIFVvvLOXNmZneW/TPC+JvI+MeT+NuI+Ie/C40//ennn3/+4x//pTP+0BX/+Yd/bcbf98Xldnx1FEf/eq03Ll4/jYtH8eg0fjqKp+3YPInmv892x7Oj+POlS5d++eVhZ7w6icftuNAVv452xvPuGOuJycnJ6WZMTjJPft7IMZp7crPk08yTnzdyfOae3DQ5OnNPbpwcm7knN0+OzNyTWyDHZe7JbZCjMvfkVsgxmXtyO+RXmCc/b+QvmSc/b+RozD25NXIs5p7cHjkSc09ukRyHuSe3SY6ib/fkVskxmHtyu+QIzD25ZXL35p7cNrlzc09undy1uSe3T+7Y3JM7IHdr7sldkDs19+ROyF2ae3I35A7NPbkj8hfMk583cmfmntwZuStzT+6O3JG5J3dI7sbck7skd2LuyZ2SuzD35G7JHZh7csfk9s09uWty6+ae3Dn5vzNPft7ILZt7cgTkds09OQZyq+aeHAW5TXNPjoP898yTnzdye+aeHAu5NXNPjobclrknx0NuydyTIyK3Y+7JMZFbMffkqMhtmHtyXOQWzD05MnLz5p4cG7lxc0+Ojty0uSfHR27Y3JMjJP+aefLzRm7U3JOjJDdp7slxkhs09+RIyc2Ze3Ks5MbMPTlaclPmnhwvuSFzT46Y3Iy5J8dMbsTck6MmN2HuyXGTGzD35MjJ/4OdH/LDYiWdzjWjlj+JWus/0+l0sXiOyMHNMZJvNrFz5XxM1Jr4xUvngBzaHB35YaUjrQWinEsfHA43+b+xISb/sRKf3VHwxeElhzXHRH6YruW1ouk+nOSg5njItcFP3Q+HjxzSHAv5dxUY8OPWLl0cMnJAcyTkP6bLeeCoFYrDRA5njoP8x0LeSNRaRX5IyMHMUZCbEm+P7QdDQg5ljoF806R4O9l/HQZyIHMM5JVy3nwUDumTw5gjID+s5e1Erkid/HdsOMjTeXvRVCdNDmHuntxakp+qUyb/LzYE5FZG8h71Q7rk+ubuyQt5F1E4pEqube6cfLOWdxPlClFyXXPX5MWKK/JWgX9AklzT3Cl5Me3Qux1piuR65g7Ji4VyHkGcpjohci1zZ+TfVWp5JFGukCPXMXdF/l26nEcUBWrkGuauyCuoxFv1/TktcnVzR+TFWh5d1B6QIlc2d0P+XTqPMcpPKJGrmrshP6zl83jRqZB/yQiRV/Joo4lOhlzN3An5d4U84iiPkSFXMndDXsujjtoYFXIVcyfkf0VO3pyyUSFXMHdCfljOo480EXJ5c08eGU9okEub+7F8wJBOg1zW3JMPrO4kyCXN3czLc3kq8YQCuZy5G/I0GfJ8jgK5lLlffYuN+TH85DLmbsj/WqZkXuZj6MklzB1tntbypOI2H8NOLm7uiDydJxacjyEnFzZ3RH5IjbyZ6PyfcJOLmrt6ECpHzryZ6Pz3qMkFzZ09+0aPvJXoJ+g4ycXMnT3hWiNoXuYn6EjJhcydPceezueJJnoLHSu5iLm7VxfKJM1r/AgdLbmAubsXlGimeT6/cIT+JVbyeHN35ETT/Li4c/4NUvJYc4evIVbyVIP3oqMijzN3+bJxjaz5Qg86LvIYc5fkRbLkx13cKToy8m8Y2iMFCnTNT4o75wwh+UBzp+SbZcLmt0/Rk/jIB5m7PSumQpj8rLg30dGRDzB3fDxQjrL5WXHvRUdAHm3u+kQo0uSnnXsvOgbySHPnh4DRNr/NO9GvoCKPMnd+1F+atnmZd8UVTOQR5u4P9Kzlh6e4n6AjIQ83d0++SZy8u7i30bGQh5ojOI9dZTjf30Vszq+gIQ8zx/ChDcnhfD9bGqlWqyW0A3ozXmAhDzFH8QUlqdn5dql6HCW0A3oz/oKEvN8cx3fSxBde92eWq2exjbe4t9BRkPeZ4yDfVBPHhB5izn+HgrzXHMkHMEVbuO0ecUToZR6GjoG8xxzLZ27FNljejVRDAsuYzgegOyXvNkfzMeu0YpJjQl8IRf/GPXmXOZ7vl4s8L1GqRsXIPtYBvRlfOCfvNMdDLjBV2x+pRsebj3jN+ReuyTvMEZHHmw8kr1aXEXRyNR6F7pj8zBwT+eWaHnlrUN/H2cQdo7skPzVHRX5Zm7w5qH/E2cS1y7tL8i8YRvI4cwFyBPU92pwnXZIfmyMjv6zasfek+juUTVwnugvytjk28sHm21XRcJvqg8yP0Z2QH5mjIx9ovluVCJejeo3Hobshb5njIx9kvv+mKhXuGvgyj0F3RN40R0j+FcBgflbgZ9BN1o7Rv3ZD/gXDSP4VUGU/WZbbRmnO+ddOyAeYOyT/CqyyO1VfEEO3TR5t7pI82nymqhgu1OPNW+jWySPNnZJHmr9brlbV1fcxTdZO0O2TR5m7Jf8KrIHr6ebeoTM/QrdLHmHumPxyxCOQ76q6UcpiM+d/sU0ebu6a/HLORJofl/gSyDLN/u7MzEzMaFETMudfWiYPNXdOHmH+rgoTI9uaNf5j6WSXp/RO37wT3QZ5mLl78gjzUhUsRtSz/d3MG8El/TKXRbdCHmKOgDzcfH+5ChnLJYV0f7c9IvFwNZdEt0Peb46B/FpObz9NYnDflsj33VLoxv22vnkb3RJ5nzkK8nDzkaqZGCltx7/Rurtdiiwz2/rmLXRb5L3mOMivhT3f/rFqMt6MlGayu2FJv5udKcU8cflRfSHu7CQ5a+Q95kjIQ81LVSvxZqQVzYlYqfVPseX9EQDzTnSz5N3mWMhDzd9U8cYMgPkZumHyLnM05GHmH6uY4x2A+Qm6afJOczzkYeYl1OYlCPM2unHyDnNE5GHmb6r0El3WvIVunvzMHBP5taKxdVerI7q0OU9aID81R0UeYr6N3PwNjHkT3Tj5iTku8hDzEnLz6kcYc540Tn5sjow8xHwZu3kJyPwU3Rh52xwbeb/5Lnby0OKuZH6Mbo78yBwd+bVDasN5eOeuZn6EbpC8ZY6P/No1csN56E6LonkT3SR50xwj+TVis/OIAV3VnPMvDZJ/wVCSXyQ2O4/YaFE370QHJ2coya+Ta+GaAWp+hg5PzlCSXy8Dvb7itonTMT9BN0DOUJJfz5Fr4arVXVjzNroJcoaSvNd8hIL5NrB5C90IOUNJ3mtOgTxkm0XTnH9phpyhJO8x/0jCvKTzDGTEoWJGyBlK8usFem17yGSNG0LXJGcoya+nqa28GjIPRdclZyjJe8xJTNX6J+hlbgRdm5yhJO8xH6FpXuMm0PXJGUryi0VvfvaQHDQ5Q0neY75Mw3xX6cwBOXQIcoaSvMe8er7NO9BByBlK8osXvXnXhjooOcNJfpHe9LzffIEDowORM5zkj2oEzbfNmR+hQ5EznOR3Os/+oGI+A78k04kORs5Qkq+2HiTdpbUM122eLS1XF2HRwcgZVvKOTYsZcua77ef3zKMrkTOE5HeXu3eqyJmfPuLx2TC6GjnDR/5ovGd7kpr52VM9N7lRdEVyho/8h95WmIp5qf9Brhsm0VXJGTryR/c67tnyOypPw51upnZdLeyI3o2uTM7QkT+62XsfRyiZ90wyuDF0dXKGjvxR30IHJfPex7g+m0LXIGfoyO9037Q3tMx7r3WVm0HXIWfYyLuG83aiEzLvazcXuRF0LXKGjbxjpnaS6FTMl0OOIR7hJtD1yBk28kdrfVsXVMyrYTMMbgJdj5xhI+83HyFjHvb6LDeCznTIGTby7qlau2ZSMS/ZMuecaZAzbOQ/VYcrPltHjyVn2Mi9uSZ6PDnDRu7N9dCZqrlD8mEzr3Cr6EzV3CX5TzeHy5xzm+hM1dwp+U9r3lwZnamauyV/6s2V0ZmquWPyp+NDRb7G7aEzVXPX5E/vDZX5CLeGLiqeZNjIn64OlfmiafPTxXdh8l5z9+RP7wyV+Sq3hC5O3mOOgPzpD35JRgFdgrzbHAP5082hmqBXuBV0GfIucxzkm8M0WVvmViIpQ95pjoR8c5ga9xGOCT3Za46FfPOOb+HMoCd7zdGQb276Fs4IerLXHBH5MA3onKNBT/aaYyIfogF9kaNBT/aaoyIfogH9BseCnuw1x0X+9OnQzNArHAl6stccG/nQbK2tcY4DPdlrjo58dliK+wTHgZ7sNcdHPjs7JMU9yVGgJ3vNMZLPDkfnvsg5BvRkvzlC8tnh2Fv7zDGgJ/vNMZLPzg5DF3eTcwToyVBzhOSzd/3kHAY9GWqOkXx2ds2nOQR6MtQcJ/kQTNcmuHv0ZIQ5SnL6ie4wzU/RkxHmSMnJj+g3uHP0pIg5IvLZZ4v+ARk99KSIOSryZz+QXoyrcOfoIua4yJ89o9zGrXKOF52hJX9GuLqvcY4YneEl//MlqtV9ucIxozPE5Jd+WKZp/plzzOgMMfmlX+6QRL/BOWp0hpn8l4cU0RGRh6Mz1OQPH96hNqYvoyIPRWe4yR8+/J5W9z5S4Rw7OkNO3oy742QK/OJnji9CzLGTPyRT4SscZ/SZUyB/+IpCgV/jnAY6I0H+isI67Congs5IkL/63q/EwKEzEuSvXuF/hGKZcyLojAb5K/wniC1yKuiMBvkr/I/N3OBU0BkN8lev0M/WkpwKOiNC/hj7bG2NcyrojAj5Y+yztQlOBp0RIX/8GHlxr3Ay6IwKOfLivsY5GXRGhRx5cZ/gnIw6o0L++MJNX9ph0BkZ8guLvrQDve1AhvzCXV/aYYKRIb+AubgnSZnTIb+Ad819kVMzJ0KOuLjfoGZOhfzCBawbqsucmDkdcrTFfZGYOSHyCxeQPgBboW6OmPwCziPE1jhxc8zkSLu4G8TNUZP/Oopxir6cpG2OnHx01Xdw0ObYyUdHl30HB2uOn3wU34nPI5yyOQHy0bu+g4M0p0A+OoptunaTEzanQT6K7XGZCcLmRMhHR9f8RA3InAw5sunaKidrTod89PlNP1GDMKdE/hxToi9yquakyJ9jSvQKVXNi5IgSnWSat8ypkT//ftmnuZ45OfLnz+/5NNcyJ0iOJtErpM1JkWMZ0Ymm+bE5MfLnd3ya65pTI8dhTjXNj8zJkeMwrxA2p0f+fMyvtGuZUyRHYE5xQ+3EnCQ5AvMJTtycGrl785ucuDk58jHnD058Jm5Oj9y9OadtTpDcm+uZUyT35vprr9TIvbm2OTnysXveXM+cHrk31zQnSO7N9cwpkntzLXOS5N4c1JwE+dgdbw5nToPcmwOaEyGf9OZg5lTIvTmYORlybw5lTod82pvDmBMin77rzSHMKZFPT3tzAHNa5JP+0Sh9c2Lkrs1HhsCcGrk31zYnRz7tzTXN6ZF7c01zguTeXM+cIvn0sjfXMCdJPr3mzdXNaZJ7cx1zmuTeHMScFLk3hzAnRf79HcdnQa7dTdI3p0R+J1WvX3VrfrVeT90lbk6I/OBtvY7BvL5VW6BsTog8nbjXMv/WvXl9onybrjkd8oNaIvEai3kmkSCZ6owUeTqRSGTrWMzrbxMJiqnOCJE/aSZ5ol3acZhPtK6nRtCcDHm63LrFiRQe8/GjCypTq++MCvnvc4l2bOExTx1f0m2K5vjJD2rH9zdRx2O+dXJNtFo5RoM8fXJ3E2/b5nW35p/aF3F6VeV5YuboyU/r+mnb7nhR5la9x5xUfWcEyA/KiX5zp8X92+OLyHZcGJ36zvCTpxOJEPP6LXfke/UQczqpzrCTP8klws0/uU/zHnMqU3WGnLxSTkSYuxvRb9UjzIlM1Rlq8geFRCLS/DdH1X3vt0hzGvWdYSY/m5SHmdc/7bmt7GHmFFo5hpg8XU4MNHfTu3eQtzZZ+gJ/fWdoyR/kEokYcxfoVzv//tArRF/fGVbySjkRb24fvYs8whx7qjOc5BFJfrbe7gi9m7weeZG3kZsjJA9r3sLN7aL3kGeirxJzK8cQkofM0DridS/6npP2rXMvlViqM4RZnht0K4+fmajbn7Lt9ZIPNseLzhC2b5LmlhZnbn3q+4vvDbzQGmpzZPPygXcyMV7vDwvLsLd+qw+TObY19sHm90LMjQ/qe1fD/tYsWXN0O2mDzSfC7r7h+h5S1+PNE3jNke+XxyzKdNT3PVtTtPjpOXJzZORP0utLMbcyAqD+6ZbVJK/XX8dcaJCbX0BsjmNeXincD4Igzvx1FLqRUX3vauRfl4q50KXmj9nJLSA1R0BeSa8H7diPuZWpSIT6b1etJfnpKw2DzY/YkaU7Q0D+4CBdCM5iJSE/WTtL9Vtml2E6Y1XMHJ07c0z+4Cy/Rc1X6wMDrsAPKOsibXtiv/t3oXFnDsmb6X0/6I848+xgiWaBh1G/+lvMXxTImaOBZ27IDyqF9SAiEnHtcD0uPl01O5CLte2JlahfmJt3Cs+skw/iFjI/fkvRqPqtb+P/jpSy+XHCu4JnFslfFtMx3GLmqXrdrLqIeNxqe5z5cca7KPXMDnmzVRPhDgSm5xEr7nDqYuLHJw5omjuBZ8bJi5XwVk3dfKJeN6d+9ZPon56NvVCJX33U3C3YNDdD/rJYEU1uKfO3deGQ7OH3xMVjV9slzS0O8swM+VgxrcAttAw3cPVVa5VmL3Z2JtXCKZjbqfXMAPlYpRCoh4B5qi4Vn4SSXXQYF1157V6IU8h4k+bA5GPpQCtWElBNXEeJj1uck0txsRZOy7zFvmDMHJi8uB4YN5+oy8cg9b1vFf7At6bNm0Xe3Ho7JLlmkouZB3WViKzw8jkusgoHYB7smDIHJB8raJMHAvdSZCVO+KGKvU9Kf5hACxe64I6gvjNQ8vXAjnmqrhZXxZ5nBVmFAzE3gs6wkQuZr9ah0K+q/klZgctcCVCiM2zkSyLm2ToQumqWx2+kQpkbQGfIyMXME8rm3cdN7SmTZxK2zOEbOQbWscOQC5qnlM0/DXrpEHRFBsocHJ3hmaQJL8OprMqEVvdb6n/KhNBlAt2TnDFzLfJKYNVceUD/kMm8OY7l6id187c2zYN5Q+Z6q29Qv05kSUZ+QN/KTE01GnMbfdFoTE1lPsiTbyWsmgcLRsz11tjv2zYXHtA/NLU34qIxlTEwnAOa75gw19tJKwS2zcdFdeLB2zE3tQU+nOsvvhoZ0hkE+QEceSB2M4W3Wd5viMf7D1uwwzmgOeSQziD2y+/bNxfdZslImDc25j6ADueQ5jvA5ppPxQBWdmHzRAa2tJ+wv4ccziHNAas70yeHrOyCSzLCA/rUhmQ0IIdzUHO43p1pkwOtucqaT0BX9uOYAhzOITbWDFR3pv24YzpwYi4yQ/8wJ2++sQU3nMOag7VxTJf8QeDIPAU+mB9P2t6DDefA5jug5hrPsRdgzfeFze/BD+ai1V10OIfaZAFu45gmeTFwZZ41UtlbETslCByZA7VxTPNtFeA0F12GE3mzoaFIHlvdMwlX5jkocx1y6DSXMU8ZqewC1X3cmTlMojO9d9LWHZqvmqns8dU9684cJNGZFnklcGieNVPZ41dmxC8xEWBMdKb15il4mgcS93PgU+6ZDa2Y0nyy3Zh5DsZcnRw+zaXMBy2/zumZD9psWXVpDpHoTOdIgYJb8wkjDVxsomedmgMkOtMgLwZuzQMzDVxMG7eVcGoOkOhM4+AQA2m+JHNDo/dTtdN8QBs37thcP9GZOrmJNJczv2emgWtHSnfhFXwz9ThgzeWOByo4N8+amKfFrcYFrs3nIc3lyB8Ezs0jll9B0jyqjcskXJvvAJpLHgKWNmG+L2c+bmKeNjjR7zk31050pnzu230E5qGztdTGhsFEz7o334EylyWvBAjMw2Zr7+egzDc+qB0pYtpcd7rGVA/0LGAwD5utTYGRz6U0Z2qmzHMg5tLkRSM/RmaLJWK2BpbmjdR73ZmaKfMAwlz+2N4CDvOsoTRvpD4AzNSMmc/rm8uTv7yPw7x/b21Ke3I+6IXFVAKF+Y62ucLh3GY6OAXzsNlaZqqhWODn4l5QXZW8vH1D92lB01zlPPYCFvPIvbVMKvyN8+iZWUrgdai3SMxzeuZKR/AHWMzj3lXcymQEq73I64lbCSTmWl0cU/rQRhqNucirDR+Eyjrku4nmzechzKW+rbJu6qdIkwsdDzil95CE8kzNoPkOgLkUeTHAYy7y0YaMxtapxiKcSXOdLo6pfEGpgMhc6EX0BsxwPo7IfF7XXPKjWfcxmYu8iL4F8975BCLzHU1zSfKDAJO50FFxUyDDufzlLQUIiztT+BpiAZW52GHucegiI0Qqgck8p2MuS/4ywGUudMpIBsBcbhFuZd8guFZxZ/LfPK0gMwc5ZUSkbX+LhVuzi2Pyn7ktIDMX+tzalP54nsHDrVfcmTS5ydKuZp4CMG8AzNRWlqx5axV3Jv0xa5OlPVjaXzFT3Kf0l16zMeCB7ZjXMZf6fnnB+G9ZasqvdNqvdP+nypmQsasyWvsrK4GLyGmYS5E/cPLzllZMHyGV0SrtTtB31M2lyM2WdiVxoX2WhvZ6+4TlIyXMFXcmSW6htMuKC+2zaO+rxe+vrFAp7kySfOw+OnGhfRbtBXeR/RXbfdwOhHk8ueXSLvj+Wmxxf6/9zITY/opl9QV983jysbTNn7QCts8isIMOtb+yj764MznysXVcRV10n0XAPAO2v2Iv2Xd0zUXIixjBBfZZUroPykhuna9gLu5MitzScC6/FpfV3T+Pa9xRbZ1rztaYFLmF0r60r7TmvqVt3gDeOrfCntMxFyN/gKykCxf3hubDzquq12V6bNcwFyM3XdqVxWP3WURea4B8f8VaHz+vbC5IbnoRbkn9zsZsoouYZyBO77Zd4HOq5qLkphfhdMwHF/c5vSfcVzUuDN9sjcmQG5+pJUwVd83jPt+iNVeZrTEJcvOLcCumirveAd46pd30TH1exVyc3PyemqnintF7S3EV7XCuVNyZBLmFxyUMFXexUwIplnaV2RoTJ7exCJcwU9zFzDMES7tKcWfi5Db21FbMFHexg4VSYK8m4l6KY+Lkkxb21JbMFHcx8ymAQ/rtm+/omMeRP7GxaaBT3HXNG0AHilgdzhVma0yYfNLKnppOcU9pfoRpDr6029hTnVc2jyWftPL0o5niLnhmHMXSrjCgM2HyaTuPyOjUUd2vMGUolnb5AZ0Jk1sZzvUG9JTOMlxU4469tMsP6EyUfNrSE6/7Joq7vQPbHTwrIz2gM1HyaUsvMywZKO5bguYNiqVdfkBnouTTtl5mMFDcRT/QMkeytEsvvzJRckvDud5sbULz21skS7v0gM4EySetvcBioLgLn+meoVjapQd0Jkg+ae/dRPjiLmyeIlnaZQd0Jkg+ae8FFvjiLmw+RbK0yw7oTJDc2nBuorgLf7qhQbK0yw7oTIx82ub7qODFXdh8jmRplx3QmRj5tM2jBsDX3MU/0UKztEsO6EyMfHo9IJLor9WX4fobdyKlXXJAZ2Lkdk8Ogn5aRvkD2ERKu+SAzoTIp+0eLwFc3D+Im0/BPfxo9cSJeRXzweTTVo+XgC7uEt/GboA9/Gi1tMsN6EyIfNryaVGwxV3CfA7sufZ9qzdsR948jnzaLjlwcZf5nOZ7Ms+1qw/oTIj8wPIvgC3uMuYZMs+1qw/oTITc9nAO/BKTjPkUkVeWdAZ0JkJ+xf7hj5DFvaFoTqi0Sw3oTIT85bp1c8g3VGXMGzRLu9SAzkTIn1j/BaDFXcZ8jsJBA5oDOhMgf+niLGeNG55VXobratzfUkpzmQGdCZC/TAe0En1LwzyjdzyYmw5Oxzyc/GUhoJXo45Ln+4Y2cROkSrvMNgsTIH/p4ifodHFZ1WW4TnON/+n2XdyvBSXzKPIDJ+ZgxV3OvAFQ2p3cr3kV8yjyKxUnvwGsuKekzOf0Szv2L/KwePIr6YBaor9VXYY7a9wDUh2c1KoMiye/sh6QS/SMunmGZmmXaOJYPPkVR79B53XFVXXzKd3SvuTodi1Img8iP3BlHsAU94aC+Wt6aS7exLFYclfDud50LaNs3tB8EG7f1d3KSZkPJL9SCAgm+qr0IRNdjfsEvTQXb+JYLLmzFk4r0QPFpdd24/6a2kRNakBnseRX3P0InelaStk8o1XaHd6teWHzOPIDh79Co7hPqC3DtZu4LMU0FzePI3fYwmkleqBhvkVvoibTxLE4cpctnFaip1TNGxql3WWaCzdxLI7csfmSdnGfkjWf0yjtS05vlmATx+LIXwQB0UR/rWi+kSLZwYkP6CyO/MCxufoC7Liq+f8STXMJ84HkLyoB1USfUFqGa8b/EU1z0SaOxZC/SAdkE31Lzfx/qKa5aBPHYshfrAdkE31cZel1Y+O/qaa5aBP3/wIMAI6prfGsFSkIAAAAAElFTkSuQmCC
iVBORw0KGgoAAAANSUhEUgAAAfMAAAHyCAMAAADIjdfcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRFcp1FVVVVgLFMX4Y7r6+wdKBGi8BQzc3OZY0/e3dzWGhJ0rGReqhJbphDYXNNk5SUeaZIfKpJaZJB++bRbJZCpI54cJpEdqNHapNC/Nm3VF9IS1NDdZtM+fb0+fHp++DEfaxKcpZM3+DgVnE9VGtAVng6e6pJZ49ASE1EdaJHd6RIVltRRkhEZ4BNTmI+Y19bWH04eaFNga9NeadIRUVFfahN/dKof61MjcJReqVN+fr7d59McJFLeKdHfKZNiLxPjMFRhbdOgLBMi79Qir5Qh7pPf69LhrlOg7VNeqdKjMFQg7RNgrNMir9QbYpNh7tPfq5Lfq1KgbJMhLZOW2JTgrNNib5QgrRNhrhOir5Pib1Ph7lOeKVIgrJMhLVNdaFHir1PUE1L8cmhvKCEinlqXFZR7u/w5sCbb2hilYJw/NStTVtBhbdP+uzehrdPf69KhbZPcI9Pg7ROfq5Kf7BLhLZPd6BLfKlLrMqNw9iuobaLUFBQlbxs5e7gf65KeaNM7DYFIwAAHpBJREFUeNrs3QljGsmVAOBqm6wMJJBZRZsMyAcCJkpkRNvpwWukHVaOr1l7sZ1RJnNkJtFpbI2z62wy3tt/PYAumqu7q95VpX4/QKb4XK9eva4u1D86E/88K/5lNP4uIn4djn89ic8HcX8ivuzHH7/qR2d2PDuJB+Px9ddfPwrHF/3YmhafDePbbx+PxJPT+F0/fjuIp6fxzTe/Gcal0bjXj4eDUCn5RSN3xzwlj0vujHlKHpvcFfOUPD65I+YpeQJyN8xT8iTkTpin5InIXTBPyZORO2Cekickt988JU9Kbr15Sp6Y/LlKyS8aueXmKbkGud3mKbkOudXmKbkWuc3mKbkeucXmKbkmub3mKbkuubXmKbk2+QuVkl80ckvNU3IDcjvNU3ITcivNU3IjchvNU3IzcgvNU3JDcvvMU3JTcuvMU3JjctvMU3Jz8hsqJb9o5HaZp+QQ5FaZp+Qg5DaZp+Qw5BaZp+RA5PaYp+RQ5NaYp+Rg5LaYp+Rw5JaYp+SA5HaYp+SQ5FaYp+Sg5DaYp+Sw5BaYp+TA5PLNU3JocvHmKTk4+QcqJb9o5MLNU3IE8o9USn7RyEWbp+Qo5JLNU3IccsHmKTkSuVzzlByLXKx5So5GLtU8JccjF2qekiOSy+zJpOSY5CLNU3JUconmKTkuuUDzlByZXF4Nl5Jjk4szT8nRyaWZp+T45MLMU3IC8h+qlPyikYsyT8lJyCWZp+Q05ILMU3IicjnmKTkVuRjzlJyMXIp5Sk5HLsQ8JSckl2GeklOSizBPyUnJJZin5LTkAsxTcmLyT1VKftHI2c1TcnJybvOUnJ78Vyolv2jkvOYpOQc5q3lKzkLOac5AfnvjPC4sOaM5KflGt1EqBWNRLhUalbsXjpzPnIz89mahHMyLUqHy54tEzmZORF6J8D6No0LlwpD/WDlMXimsBgkit/nnC0HOZE5AfrtRDhJHrnIByHnM8ck3CoFerBbuuE7OYo5OvlEKDCK37DY5hzk2+W0j8eEm7q3L5AzmyOR/LQQAMaruGjm9OTJ5ZTWAiTN158jJzXHJ/5oL4OJo2U3y3yuXyDdWA9Ao3XCRnNgcl7wRgEfjG/fIac1Ryb/LBQhRXnaOnNQcl/wowInCJcfIKc1RyT9eDbBiddktckJzW8lHprob5L9UKXmcbdt7h8jJzK0m7+f3rjvkVOao5LfRyYf53RVyInM7K/ax/P7OEXIac0zy727RkPfz+3s3yEnM0chvNUqrAWF0nSCnMEci/7hA6n28qLtATmCOQ755FHBEwQFyfHMU8s1ywBSl29aTo5tjkN8qBXxxdNt2cmxzBPI/NQLWOEO3lRzZHIH843IQiEC3lhzXHIG8G/DHEN1e8p8qq8j/VAgCGegWk2OaI5CXgkAIusXkiObw5LelkJ+gW0qOZw5P/vFqICeO7CVHM3ecPAgK1pJjmTtP3ke3lRzJHKF8KwfSomspOY65wxX7aGzaSY5ijtCKkUgerH5vJTmGOQJ5IRAZ5ec2kv9C2UC+GQiN0iULyeHNMR6rBGKjdsk+cnBzjIenZbnmQfWedeR/UOLJf50TTB7c9O/ZRg5sjkHeDUTH6uV7lpHDmmOQi+u/TXTe++hWkYOaoxx3LAXSo3b5L1aRQ5qjkDfEkwc36310i8gBzVHIPw4siLJ/+S8WkcOZ47y6ULLBPFj3Lz+0hxzMHIe8awV5P7v30a0hhzLHIf9u1Q7zfnb3L/+bLeRA5kivISZ4tLLTe7W0tMNXu5+hyyeHMUcivxX3Gz94lW8NIs+Z3Y/RLSAHMcd6vzxmAbd/DD6IPc7sPkC3gfwHSi55vCeo+y9bI8GHXh2i20AOYI5F/l2cx2m9fCsc+2x9d3+A/v8WkJubo10cEqMDt7PUmgg29PUh+n/IJzc2RyOPsU9r5lstOeiDMm6ILp3c1BzvRqjoad7bbU2NV1wP2PxjdOnkhuZ45NHTfL81K/YYy7g++gvh5GbmiPe+FfTJ2dDL/hi6THIjc0Ty2ybkrVaepyNXC6MLJTcxx7zdMWo1z7bmR77Jtl87Q5dKbmCOeqFnxGre3I0wb+1mGSf6EF0sub456rW9EdN8J9+KjiWOiV4/Q5dLrm2Oe1NzxDTfa8UJjkV93R9BF0qua876o1nZVrzY7TE1ZoboN8SSK4Hkn8/vtO/stuIG/RP1s4nuX/5AKrkSSL4JkdmP42WPbaKH0SWRK3nkn8+/srnZShTUU/18oo+iiyJX8sg35n+p+WTmrZe0u7ZVfwq6LHIljvzz+W3XXitx5A849ugj6MLIlTjy27DTnDzBj070Y3Rp5EoaecRGrdfSit1XPBN9gC6OXEkjv18GK9rDyzrZWYqyH0YXR66kkVfmn2pu6QeZejWM/pE0ciWM/P78WyWWWi356kf+JLokciWMPKKC222ZxctXFNVcfQJdFLmSRX6/AdJpn1fNLeHv3Nb9cXRR5EoWOVYFFz46laXcro2iyyBXssgjenAtoHiJPNlr09GFkCtR5PcL2Kn9vDm3v0O1XTtFl0KuRJHfXyVI7RQ5vj4FXQy5EkW+iVu1TxZ0e9kdkipugP5DKeRKEnnE5rzZwoi9/QOCKm4cnZNcSSL/9/lf5KsWUuSXwI9GV+ejs5IrQeT3AQ/IJK7kgRf3I38eOi+5EkQekdrhl3PELH/Tn4POTK4EkUek9mYLP+CyfG02Oje5kkMeldr3WyQBlOWnJvchOju5kkMeldqXWmQBkOWnJ/c++q/YyZUc8ojUrncqSj/Lv2piJPcBOjP5Pygx5FGpHb2Em9KVb8In9z76P/GSzzWnJY9K7TsthjBgn5XcT9D5yOeZE5Pfj/gOey2e0H4GV52Hzkg+x5yavBIwdeHiPIMDTe7DQo6PfLY5Nfn9qBtkllqMoXO6ZtWfi85GPtOcnPx+WVTZPmX/1oNL7n30H7ORzzKnJ4/8FQ5u836KT6i+7s9HZyKfYU5Pfj/yJxl2W/yR7Gqisj8fnYl8ujkD+f3Ii7tbIiLRm2/1+ei/5yGfas5BHtWE49meG95iUPPjodOSTzPnIP8yaqfGtj03uZDqyI+FTkw+xZyF/MuCPebxrxZd9eOgU5NPmvOQfxl5QX+2JRM9/3LvQHNBP0YnJ58wZyKf+ZpatiehJTMbfZB+dvc1F/QB+i/JycfNmci/3Jx9NmZvR575+R3xw67BblNzQR+iU5OPmXOR/3HWcv7y7D5HWeatg1CVkddd0M/R6cjD5mzkX63OOw41RBdmng83B7O6C/opOiF5yJyP/JP5/da8PPNWL1RY7mkv6MfolOSj5nzkX3UjbhJZktBun1LGnf+22472gj5A/ykl+Y+UBPKvclEnXZvizAfKI4/0szot93F0GvJzc07yr8pRj8zz8syzocuGZzXn/AToRORn5qzkd6Ifn/bEmS+FSoy8xjP0MXQq8lNzVvLOZvTj07w48/xBK4b5uh8bnYr8xJyXvFOI8fh0V5r5y/Ark4FJETdE/wUR+bE5M3nnSPQj83hh0JU5RychH5pzk/9Z+CNzE/PAT4JOQj4w5ybvbMh/fKpvXk2C/gcK8r45O3mn4bJ5zddCRyT/keIn75Rczu1Hvg46Jvlsczryzmrgbg0XtxMXRkcln2lOSH4ncNn8pp8cHZd8ljkheafignle/3zUBDoy+QxzSvJOQ/CrKwDmVT8p+g9wyaebk5J3Si6Y7wUghXsIHYl8qjkt+ewSTtw5Ca1D7+u+JjoW+TRzYvI77DdFwTxZBSrcz9DRyKeYE5N3Nqx4jyHmmUizjvsoOh75TxQ3each/r3EGLE7ZxC+JjoW+YQ5OXknJ/qdc+OyPflm7TiuoJGPm9OTd46k3icCU8JpbNYm0GHJx8wZyDu2vKQ2N5r6byRHowOTh805yDdseOncZDnX2ayF0KHJQ+Yc5J1NtivbSToyiZ+sTaCDk4+as5B3GlIvhUsS+/rXykShw5OPmPOQd+bfI3Ngh/kOkrl/BYH83JyJvFOWfkOYaWpP/DR1JjoQ+Zk5F3knEHFRP1bjVb8pM4kORX5qzkZ+N+q6qF355C+NrgyLiw5GfmLORt7ZiLpHxoK2TNRFUlUfAB2O/NicjzyibLeiitvdwTUfogOSD80ZyTuRd4TJ36JHXh1W843RIckH5pzkncgrP+VP9MhbvtdNzf3LkOR9c1byTuS9cOInevS1kObms9C1yH+ieMk70eTCS/fdHQrz6eh65GFzevK7McxlN2Bj/ABf2cdB1yQPmdOTP1uOdW9q3uICDsp8El2X/GeKlfxZN5b5wa7FmR3KfBxdm3zEnIP8WSOWudyzE7F+twHIPIyuT35uzkL+LBfzVmyhbfd4v8EFZT6KbkB+Zs5D/qwU2Iwe82fXVn1wdBPyU3Mm8mflIDa6uDV9N/ZvZvvQ6EbkJ+Zc5M8S/KDNgbDezF78X+PxgdHNyI/N2ciTmPfV98Vs2vL7SX5/yYdFNyQfmvORLwfJ4pVlKzmCuX/ZlHxgzkf+IKl504oDcLjmU9CTkffNGckfvE36E6QvhaT2gNF8Aj0h+c8UJ/mDRlJzIXXcEqv5GHpS8khzVPLk5kIacj1e8xB6YvIoc1zyB4Wk5jJeZtoNmM1H0JOTR5gjkz8oBVYm9z128zN0DfL55tjkGuYierBZfvMTdB3yv1ec5BrmB/bt1HDMh+ha5PPM8ckfBMkjb19qxzHvo+uRzzEnINcxF9CK25dh7l/WI59tTkGuY35gX2rHMp9Aj0c+05yEXMecv3JPnNrRzMfQY5LPMqchv6tjvm9b1Q54ZmIuelzyGeY05IkfsYhoy+wm/sRlnwI9Nvl0cyJyPXPu5L4nyvwMPT75VHMqck1z5p57U5b5CXoC8mnmZOSa5rwPVPOBMPMhehLyKeZ05LrmrNcQvEr+eY98bPRE5JPmhORfa5ofWLU5h3lHcT56IvIJc0pyXXPOKm4vEGg+iT6PfNyclFzbnLGK64k0H0efS/5zxUj+SNecr4rL63zaqk+MPp88bE5Mrm/O9qBlX6r5KHoEecicmlzfnOvqiV2tT1v3SdGjyEfNycn1zbm2a0taH9b3KdEjyUfM6ckNzA+s2ajRmR+jR5OfmzOQG5jzbNf2tD5q2SdEj0F+Zs5BbmLO8hbTgXBz/3Ic8lNzFnITc45zcXrTnGJ7PgN9OvmJOQ+5kTnD7+015ZuH0GeQH5szkT+6FNg00fOaH7Tq86DPIh+ac5E/ehTYNNF7Vpifoc8kH5jzkRuZU0903Wke+D4H+mzyvjkj+aOyRRNdd5qv+hzoc8h/rjjJH5Xsmeh7up+y7DOgzyMfN6cl/yIXWDPRD3Q/5brPgD6PfMycmPyLhpE5ZTNOe5qb/0qDKfo4+RXFSW5qfmDBNKcu2yfQJ8hD5uTkXyybmdM9XlvS/4y+z4o+ST5qTk++dc/QnOo5+u6O9kdc9VnRp5CPmDOQb22VDdGJDszs63/CI58TfRr5uTkL+VbB0JzmZFze4APWfEb0qeRn5jzkW11T857kdgxfCXeCPpX81JyJfOtjU3OK/dqewce76fti0K+EzLnIzRd0gt9qMSjgWLpws9CvhMz5yM0XdPwy7pXJp1v3paBfCZkzkm8tG5tjt93zRh+u6gtBvxIy5yTf2lo1Nsc9Grd7EFi7nI+gXwmZ85IDJHfcbpxRZudezs/Qr4TMmcm3bgWis7tZZmdfzk/Qr0w15yIHqNwxs7tZZqd6bSkSfao5H/lWA2Civ5KZ2fma7XPRFTf51u1AbnbfM/xYR75EdMVNDlLFIZVxL3cMP1bVl4iu2MlBqjgc86XAjdQ+hq7YyT/7rOSq+ZEvEl3xk3+27Kp53ReJrvjJISa6SPNV3xeJrgSQA0x0keY1Xya6EkD+7bclF81v1n2Z6EoC+ePvZZrn3angRtGVBPLHjwsOmtd9oehKBPnj56vOmUuc5sfoSgT548cNiea7zk3zIbqSQf748ZHEk5DuTfMBuhJCbljGIT1jOXBvmvdDCSE3zO5I5j0Hp/m4OSP54ycleeavHNqbzzBnJX9yx6B2R3qFSbspU/MtMeclf/Kkom8u7DRc2bfEnJv8yZOGNPNdBzP7qDk/+ZMnuvfLoB2CPHAvs4+YSyB/8jtNdLS3U7VePF/37TCXQf67O3qtGbTfzd1zbJs2ai6EXBcd7U2Wlw6Sn5iLIf/tb+/obNPxXkJPepfzzZpvh7kg8n7kxLRkkndlynXfDnNZ5E+fdleFbNWS7tDLVd+3w1wa+dOnGwkXdcy7AWPv1srrdogPzOWR96Ob6M3FIuNtgDfL5fX1arXu2xNKJPnTp990c7HZi23MOweyc619C0MJJf/mN4OoVCqNRiNXKs0r5tcOMc1bCyv/E87h1lqPmMsl/82l0bhXOf4v0Cj0/w+UzrPAQhvV/Ho7M0Bftd/63Nwa8n48DMfzTzc3N/+7jWv+Ybud8eq+Q6FsJh/G/yGbt66221mv5pK57eT/2Sdvv8Y0f9Nur3heqe6Uuc3kw2ne/hDTfLH/DxQ9z8s5ZG41+f+20c37C3r7sNlHX6u6Ym41+fP/Gpov4hbu7UEZN4iSG3W73eTdw6H5Nezc3j70PGfUlc3k7wrZdhs9ub8Z/gvFE3RvreauuXzy7pqXOTFfxN2rtYel+1nk6m6aiyevbPe//ZUT86u4JdwgsiPoXqlWd89cOnklN/jqe+02+kRfPPkXMl447GVXVpIfi3te8cz86mvc1H5exdnPruwjf9fdPv3SM230iX797F8oelNiLVd1w1wyeaWwdv6Nr5ybY5Xu187+gYw3I2yb7soq8o3GdujbHiFHyu4fnv8Dh96cKFk035U15O82C9tjX3R21Lz9BnM1n6jcp+Z5Oya8soO80shN+ZKLIXOMJX1x9O9nvBjRn/B128zFkb/bnOo9VsIN4zp4Zh+d5qG2zPwJLxteSSZ/V2lM5PPRWBgzv/ohWgE3jKaXJMTCK6Hkd5fnc0+UcBjoi2N/vugljlKuVpVtLoJ8+W1jdD82O5ptXPRwZo+7oE8t7kRNeSWJfKMSY3LPKtvB0V9fG//jK55ByFnklQzyT5YTaU8t26HR30z+8aZnGhL28Yqb/M5yt1HQ+/4ybUz0xSl/O+tBBPejWMVIfquiMbkjzdtXr8P22QEW9Al1Gea05MvdQsH4m1toz4jroD3XkVgAMvfW6gLMCclvNbZhvriVWebmbdiJkj1Gyz1Z1NnN6cjfboN9be3Zce01Bnm73YNDrzKbk5F/UoD70uaZm1VyM8mBirjjqLGak5G/XQP8znrtubGIQA5WxLHOdEVJ3oD8xqa2ZEKL+mtwcrgijnNNV4TkBY/UXDO/zyM368RJQVdk5He2Yb+v6W24sfz+Gpa83YYdAs+WTZHNcmjyWS0Zs/7M9fnkoEUcV3NGWZrYY5r3d20fGnffDB+niivelbXkMc3bVxeNHqtgFu5MS7oi2qR5bObxC/jJh6cE5gxLuiIhv4VAPrvdrtmVi6jeMDZrPEu6oiC/s8ZrHgv9eqy/dAg/jiqDOX6PveAxm8doyl2P+Zfgx7FGb45P3vXYzSPfbIpLDr1Z48juCp/8kzUB5m+AyDHMqWt3hf+8HCezz3t8Pm3HBkQOX7gPDsnxmsOTI2X2+Y9Sk52d+bDNa05cxils8jtrMswXDTdpeJs18jJOYZ99w8rsSc2vGbVikM1pyziFTL7sCTGffSfsm0R/5hBnMHUmc4wTrgUx5tcTnGOn3aBTT3SFS/7WE2O+aF6/Ab3Lwj3RFe459m055tMX9NdXk5pnrZ/oCpW84ckxn7qgJ6vfMM0JJ7rCJMfbp+mYXwchBz81QT/RFeY7aajTPLH5GxBynKYM6URXiOS40zyx+VUQcjzzHKk50punuNM8sflEcn+jQ47UlKGc6AqPHHmaJzd/Y7YxRzfP0Zmj/eapJ8z8qu6zNCJzqomu8K4U2JZmHjo4EXtjfphBfZWFYaIrNPK3Hp35SiZxK+5a/HmdoWi+Ej5eU2h3xWBPc+/wfCpms0lbcYtJcnmGyJzoDQeFRb6MTT5yNqroZRMm9wQt18z4kRzP9omusG6EKtCZZ2Iv7osa27TBX2+uEDRfyQ7MKCTyTzwy84X4h+Pe6B6G6h3SmOfozeHufWuQmQ9/1jLuIdjXCQu4s/569pDEnGS7ppCu+lsjMz8myCRpxSV6Zn5CXKQxzxGbA5K/9ajMi+MkMZL7NQ3z8/9VRc/yKk7h3OFaIDDPjHbFYhbuw+Se7GhM+N/DfMhCtV1TKOQEFdyxwcrpSaVegucsb/TMT4t3XPMSoTnoTc0NKvNs0k7staTTfKTVelLH4ZoTVHEK5XLuNSLzzLQOTVRbJtnztNFHKkUK8xyVOSx5hYK8L7AyvrrHacskPPWYmSghkM3XiMyBr+AvkJhnQ7umuOZXEz5DDQuv4Jvj9+IUAvkdj8Y8403kXfgI78wG/Ths8xKFOfQPbXRpzL1meNbjRHZ8QcE8NEFTxSmEn9PZ9jiCxrxfK6Kb19DNwcnvspAnu4JA//W0HuZBGZoqTsH/aFaDx3yBxrxfLHqWJ3cF/ztpPKk9/hWBhicem4foQ8mhmwOTb/CQIxVxUxbvTM/y5K7Afw2RKbXH7rgbv7XSbKKPBXeLrsB/AJMptSMV7kWWoeTozY1+85SLHKeIy/KMhdzc6JeNG2zmGYfMq8TmZj9mzZbacbqvTGPJ0ZqbkfOldpTCfYVrMKTmhj9Z3+Uz92i2avYndwVLzpjaUbqvGc/B5K5gye8ykmMU7mzmHpm5Kfmlt5zmGWfKdtzkrkDJLxU4zbMumedozM3JL3GSY3RfGUdDYg5AXmE1H3kj3fatGmpyV5DkvKkdoYhbYBxMDt8cgvzeNq95xp2yHTO5K0jyDV5y+O5rkXM0dWRzEPJ7DWbznjtlO2ZyV4Dk3Kkdvohrcg5mDdUciPwdNzl0EXfIO5o6ojkQ+b237OYZd8p2D++cu4Ijf1hgN886VLbjJXcFR/5wjd286VDZjpfcFRx5xeOPFXfKdrzkrsDIHzYEmGfcKds9tDdUFRj5w20B5kWHyna0VpwCI38vgBy2iFtgH04VyxyG/GFXgrnnUNmO1opTUOQCdmrQXZki+2hwdmsKivyhCHLQIi7LP5w6jjkQ+aYMc8giTsBwUJK7AiIXsVODfbS2IGA4a9jmJuQidmqwXZmMhOHUcc2NyN8LIQdc0IsShlNDNTciF7JTA13QsxKGU8I0NyMXslMD7crIGE8dz9yQ/KEnJqDOyqzIGE4NzdyUfFOO+YJLJRzKbk2BkEvZqUEu6EUh40EyNyYXs1MDXNCzQsZTRTE3J3/vCYpDl0o4jOSuIMjl7NTgFvQFKcNZQzAHIH9ekGSecamEw9itKQjy55LIgRb0opjx1NDMTcg3RZnDLOg9z9nkrgDInzdkmS+405FBSe4KgPz5tizzokslHEJyVwDk72WRgyzoRUHjKWGYm5E/7wozh1jQs5LGg2BuSC5rpwa0oIsaTxXc3JT8+Zo086JTyzl4K06Zk1ekkQMcisuIGg/wbk0Zk0vbqQ1ixanlHHq3pozJX2zLM884tZxDJ3dlTP6pPHLjBX1B2HjWgM0NyV90BZo3nVrOoZO7MiV/URBobrqgZ6WNpwZubkIucTk3XtDFjacEbW5EviyR3LD9uiBvQMDmRuQil3PT9mtG3niqoOZm5C9yMs0zTi3nsLs1ZUj+Qia50W7tUOKAMMw1yTeFmjfdWs5Bd2vKjPxFQ6i5yW6tKHE8OXBzXXKZOzXD5N6TOJ41aHNt8u+lkhvs1lZkDqgOa65NfqMr1lw/uWdkjqcGaq5PfqMg1zzj1HIO2YpTRuQ31uSaay/oTc/x5K6MyJc9wXHo0E4NtBWnTMhvNCSbZ5xK7YC7NWVCfiMn2bzo0E4NtBWnTMg/lUyu2YpbkTugOqi5HvmNTdHmesfcM3LHk4M01ySXvZxrJves3PGsAZrrkt/Y9pxL7oeSB1QHM9cm/97znEvuGcnjqUGZa5NLbrxqJ/ei5PEAteKUPrnkxutxaLzDJHtAdXjzZOSSG6+6z1kWZI+nBm6ekHxZPHny5F6UPZ4ctHlCcvnLuUZybwofELB5UnLZjVe95L4gfTxVUPPE5DcsIE+a3IvSx5ODNE9OXrHBvOlWaodpxSldcumNV522zIL88dTBzDXIP9j2nEvuRfnjqUGZ65C/t4I8UXI/tGA8JSBzHfIP3tphnuS0TMaG8dRBzLXIP2pYYl50KrWDJHelSf7RtiXm8Y9CHloxHIDdmtIk37CFPH5yz9gxHhhzDfKPutaYZx04IQPbilN65B8VrDGP239dsWQ4OQBzLXJ7lvPYVVzRkuGYt+KUHrk9y3nsh2s9W8ZTBzaPSW7Rch63/7pgzXBqsOZxyW1azmMm96I1wymBmscmt2k5j7dFP7RoOKbJ/W8CDACkQTUg3C54LgAAAABJRU5ErkJggg==
iVBORw0KGgoAAAANSUhEUgAAAfMAAAHyCAMAAADIjdfcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRF1lNHyUpA+9itvUQ6nCwo661D76er0FBEwkc8/ubS21ZK+dOOtj41uUE39sxu4qSexUg+99XYwEU7221F4Jw/5pZE6pGarTkw5HB7xEg900VMu0I4/OnivEM53aGb2J6ZyD1Gsjwz/fTyznNm31Fe9chY/vHlyHk32UZRsDsyozktsz00s1VN/vr2pjAvzEdF1ZSEy1RJ34pC1mJEz0hH3UZU/t/G88RE3ntF11tG0GBT////yEhB3lhMxUY/y0hCz1RC11RIykxBzE1C2lZJ3VdL2VRIy0xBzk5D3FdKx0o/01FGxkk/1VJHz09Dz05E2VVJ4JKAzUpF0lBF3lhL0lFF01FF1FJGx0k/3ldLzU1Dw0g90lBE2lVJxkk+y01Ct0A21VJG2FRIz05Dy01Bzk1DzpaU88VM4V1p/v3788DB53+JtDU4rzM0vmczvjk/sVIvuDc7rEgtt1swzYV3uD43y0tCy0hE0ldEy0lC1VhExkg/x0g/yUhCx0hA5srJgwgEkAAAHDZJREFUeNrs3e1/U8dyB3DbXZm4Tgy6ko2juhdHGJANmET2keyINiluC+WxgUIoULjc3AtGBgwhDSEPvf969awj6ejoPMzs/maz8y5v9Mn6y87Mznma+ie0+K9+/Hc3/m1c/Mdo/H03/jUg/qcZ/9mJfx+MP//5XwJiKihu9OLp06fftuOaL+6142477rTjUTOOjMTNbnx3qxPfXenHXx80Y28knjx58pfL/bg0HNNDcbUX949OOfLfGTmeuSPnJoczd+Ts5GjmjpyfHMzckWsgxzJ35DrIryOZO3It5EjmjlwPOZC5I9dEjmPuyHWRw5g7cm3kKOaOXB85iLkj10iOYe7IdZJDmDtyreQI5o5cLzmAuSPXTP7YuLkj101u3NyRayc3be7I9ZMbNnfkBsjNmjtyE+RGzR25EXKT5o7cDLlBc0duiNycuSM3RW7M3JEbIz9myNyRmyM3ZO7IDZKbMXfkJsmNmDtyo+QmzB25WXID5o7cMLl+c0dumly7uSM3Tq7b3JGbJ9ds7sgByD/Vau7IEci1mjtyCHKd5o4cg1yjuSMHIddn7shRyLWZO3IY8oeazB05Drkmc0cORK7H3JEjkWsxd+RQ5DrMHTkWuQZzRw5Gzm/uyNHI2c0dORw5t7kjxyP/iNfckQOS85o7ckRyVnNHDknOae7IMckZzR05KDmfuSNHJWczd+Sw5FzmjhyXnMnckQOT85g7cmRyFnNHDk3OYe7IsckZzB05ODm9uSNHJyc3d+Tw5NTmjhyfnNjckQsgpzV35BLISc0duQhySnNHLoOc0NyRCyGnM3fkUsjJzB25GHIqc0cuh5zI3JELIv8Dibkjl0ROYu7IRZFTmDtyWeQE5o5cGHl6c0cujTy1uSMXR57W3JHLI09pLog8l8vtlMvlxYw/FsvlnVzud0aezlwAeS5XLmcy1QmRyZdzW78X8lTm2OS7uXJ+Ivag/GJu93dAnsYcmXxnMR63z33nZ8vJU5jDku/u5KupIlPespk8uTkqeW6xShCZxS1ryRObY5Lv7mSqVJHZ+clO8qTmkOS75SptLOZsJE9ojkhOLt7e7PaRJzNHJCfM6kMN3U+WkScyByTfYhJvRfknq8iTmAOSl6uskdmxifwPf5yST76bqXJHJmcPeXxzPPJcVUfkd20hj22OR16uaoodS8jjmuORL1a1RWbLCvKY5nDkGkr54Fa3gPzvYpn/3skbW/1r+eSxzB15I3LiyeOYO/J2fpdOHsPckXevvAgnj24OR76VrxqKRlGXTB7ZHI18x5h469AmmTyqORb5bjlTNRtbgskjmkOR75ar5mNLLnk0cyRyCPEmuljySOZI5DuZahUTXQx5FHMg8i0Y8RF0OeQRzIHIy1Wo+Fom+WRzHPLdPBZ545wuknyiOQ55rgoXeZHkk8xxyHeqgFGWSD7BHId8sQoZrwWSh5s78onxkTzyUHNHHqGP+0QceZi5I48SZz6RRh5i7sijxZtPhJGPN8chL0OTVzMbn8giH2vuDmnRs7v6RBT5OHM3iokRGx10IeRjzIEGrhl887xqoUsh/8dAc6DLKvmqgHjXRBdDHmgORL4jgbyaUQ10MeRB5kDku1UZ8bqB/icp5AHmSHfF5IWYNzf6IDow+ag5EnmuWhW00f3oyOQj5lB3uGbEmLc2eh8dmnzYHIp8pyon3vnRscmHzLEeXcgIMs+rPjo4+aA5Frmkbd4cxnXR0ckHzMGeScuIMi+rDjo8ud8cjFzWNq9WO+bqf9HJfeZoT55mhJm/DkQHJO+bo5HnhJF3u7hBdETynjncKwUWpZl3uzg/OiR51xzvvW/iyPvJvYeOSf4PbXM88h155hk1hA5K3jYHfFNzXp65L7m30FHJW+aIr+AXSO5P7g10WPKmOeRXFySa5/3m6mNU8oY55Od0FiWaV1UQOhz5gDnQR7MyIs2/D0DHI/ebA5FviSSvnlEj6IDkPnOkryHuyDTPq2F0RPK+OdQHMGWW8+GC3kUHI++ZY33mNnU5PzX/HKCgt9HRyLvmYF82Tk1eqVQWTJ/QO+hw5B1zsO+Xp72mtlBphoGtXlZh6CDkbXO0T9aXKcgrlZkF402cHx2FvGWORp6yheuSm9jqajw6DPknDXM48nQt3HzFHwumm7guOg55wxyPfIqOvJHgT+k0f6fGoAOR+8xxyKcIyTUn+DNqDDoQed8ciDxHSq41wZfVBHQA8p45EHkK82ByjR18XoWjI5B3zZHIkx/VxpE3E7yesp5RoegQ5B1zKPLE5iHk2sq6CkPHIG+bY5EnPZ6HkzfVNd8TN4KOQd4yByNPeDxfqEwMDWX9jYqAbpa8aY5GfiPDRK5DPdS8g26YvGEOR57I/FQlYjCrv1MT0U2Th5gbI09iHpmcW/2MmoRunHy8uTnyG/H/0s9nKnGC8eA2yVx9bJx8rLlB8hsMLbs29YnmLXSj5OPMTZLfYOrftKhPNm+gmyUfY26U/AZnMece0uQnm6uzZsmDzc2S3+At5rzqUcy76IbIA80Nk9/gLuaco7lI5m10U+R/CjA3TX6Dv5jzHdyimTfRjZEHmBsnfxovs1dSBq16RHN11hz5qLl58qfaMjuDelRz9Zkx8hFzAPKn+jI7/cEtsvkYdA3kw+YI5N/G+RvPVGiCqoWPbh6IroN8yByC/NuM7m1OmOBjmAegayEfNMcgj2H+vEIYJHdFn1Ep0PWQD5iDkMcwn6+QBkGCj2U+hK6J3G+OQh7d/HmFOhb0mg+g6yL3mcOQf7toaJtTbPWY5j50beR9cxzyb8vGtnn6rR7XvIeuj7xnDkR+rWxum6fe6m9UMnSN5F1zJPJrOc1nc8qtHt+8ha6TvGMORR7VfKHCFsm3egLzBrpW8rY5Fvm1LcPbPM1ZXSWJz7SSt8zByK9d47w7hjm/K0J0JvKmORz5tYzh1J78doqMokPnIm+Y45FHM5+pcKMnKOp5RYbORh5obpo80mHtVIU9Zp7rMx9B5yMPMjdOHsl8oaIhTrGPZMahM5IHmJsnj3RYm6kgor9WNOic5KPmAOTXfjY1d02N/kaRoLOSj5gjkN+7l8FI7fHRNxQFOi/5xyemAMnv5U3N2tOiK0WAzkw+ZA5Cfq8MUs7joucVATo3+aA5Cvm9yU2cPvI4R7Yzac3VOj/5gDkM+b2fYcp5C11L295FZyf3m+OQ37ubQTKPPoZ9o7jQCcl95kjkdxdhWrhYF1yUYkKnJO+bQ5Hf3cFp4WL0cRnFhE5K3jPHIr+7hdPCxSjpZcWDTkveNQcjvzupoOs2j1bSXysWdGLyjjkc+YSCvqDdPFJ2/15xoFOTt83xyO/soJnP6GrhhtHJyVvmgOR3fkZq2yP27nlCc/UxG3nTHJH8zp0MmvmMhincKDoDecMck/xOGc188kZ/o8jROch95ljkd7aQjufRNrpS1Ogs5H1zMPI7jzJo5pM2el6Ro7OQ98zhyB8twpnPaDqdj0GnIu+a45E/ysGZT9jo3ytWdDLyjjkg+aNHSGO4CMO4jFKc6HTkbXNI8iOLcOaV5xqG7cHohOQtc0zyIzk887CN/k4xolOSN81ByY8cycCZz2g8qfnRSckb5rDkIcndlHlIF5dXfOi05MHmGORHdvHM53We1ILRU5MHmoOQhyR3Y+bju7gNpQc9PXmQOQz5kR088wX9qX0AnYA8wByH/MhPeOYzBlK7D52C/OyIORD5+C5uxhz6KQOpvYdOQj5iDkV+ZAvPfEHnQGYInYZ82ByLfGwXN4OW3N8pDehE5EPmaOTjujiD5oGde0bpiLM05IPmcORHjuCZL7DfFRUVPSH5gDkg+c0yzr1RIWOZDWUAPSm53xyR/OZPcOYV7YfzYPTE5D5zSPKbNxfhzE9pP5wHoScn75uDkt/cBXmmISy5K6UdPQV5zxyVPHijGzWfMdTB+dHTkHfNcclv5tDMK6Y6uD56KvKOOTD5ze8y5t4OF6mgl5XmOJuOvG0OTX4rB3WRZfSE/ka3ufosFXnLHJv81q0MmPm8oYNaOHpk8qY5OnnQRp/BaeJeKwj06OQNc3jyW7cWgc0zSiGgxyDvmGOT39rFGspUjG/zEfQ45G1zcPJb3y1imZ8yvs2H0GORf9Y0hye/sot1QF8wv80H0OORN83xya9cKYOam9vmPvSY5A1zCeRXvs5gHtBfK/Poccn75tDkV67sQB7QjW7zDnps8p45OPmVKxmgw9o8xjZvoccn75rDk1/ZAmrc5w2O4IbfIxefvGOOTz7cxkGYv1HA6GPJ2+YSyP862MYtAPRwANt8PPp48pa5CPIHD3Jo5hsKFz2EvGkuhPzBgzzKFfRTBm6PiYceRt4wF0P+4GuUw1r7nLahYNFDyUfMgcn39nJIjy+9UwoVPZx82ByafG8vD9G4z+M0cIHoE8iHzMHJ93y9+7zhFm5DoaJPIh80Ryf3Z/cFsy3cGaVA0SeSD5jjk+/tlTV+8z6knGeUAkWfTO43l0C+t5eBeHfU9woUPQK5z1wGeb+kzxgs52eUwkSPQt43F0K+t7dluImbgczsbfRI5D1zMeR7eztmzecxM3srjkch75oLIu/2caYa9+fmr5pHRv8sxFwU+ZMniwYn7vNg05gw9GDy9Za5MPInf1k017g/z2woIehjyFvm4sgvX1401bjP4xbzYfRx5E1zgeQtdCNN3PPXSslAH0veMBdJfvnyjpEmbqGslAz08eRNc5Hkly9/Y2Cfz2SUkoEeQt4wF0p++QsTmX1DyUAPIw82l0B++fJR/Zn9e6UEo6+HmMsgv/Sl9sx+RinB6Osh5kLIL13SvdHrSglGXw8xF0OufaOfVILR10PM5ZBfujSrN7VvKLno6yHmksgvndRq/oNSYtHXQ8xFkevd6NK2uR99PcRcGLnWin5SKano6yHm0sh1tu51paSir4eYyyPXuNFPKqno6yHmAskvXfqj2+YT0NdDzEWSX/pC01X0c8oe9J65TPJL099oIT+qlD3oXXOp5NPTM26bx0TvmMsln9YxmPlcKYvQ2+aCyaen624cEw+9ZS6afPpLd06Lh940l00+zd7G1ZWyCr1hLp18mvu8dk7ZhX5iSjw5dxv3uVJWoR8/YQH59DTn9bX6hrIK/XiwuTRy1ux+Timb0I8Hm4sjn7560mX2aOjHg80Fkl+9etRl9ijox4PNRZJf5cru55SyDv2EHeRXr/JMZn5Qyj70E5aQX73qLqdFRT9hC/lVl9mjop+whdyZR0Y/YQv5fWceNU7YQu7MI8czW8ideQJz4eT33VEttrl0cmce21w8uTOPay6f/Lq7wBLP3ALy624OF8vcBvIvnHkccxvIr/NcQbfV3ApyJvMNO83tIGcyP2e5uWhyJvOTdpvLJr/O82DD51abCydnMj9qs7l08utMt7hbbC6e/DrT06nnrDWXT36d6b7XH2w1t4D8sXupSCxzG8jZHkLfsNLcBvLHbA8vnbTR3Aryx2zvHThqp7kF5I/5nkbesNHcBvJvTruXycQwt4H8ZJHPvP63DUvNRZM/ztb4zCvF7FkrzWWTH61xmp+uZQub9pnLJv+iWKsV+cznarWl0kvbzGWTN7c5p3ml8ev73uqmVebCyZvbnNX8fK1W97zSW4vMhZM//qbGbN78N7XseV7hlS3m0skbTXszmM0bG70RdiT4AXOR5F+2yGtzvOa1fc8adb+5RPJfCkttc8bD2otab6M31V9ZZC6R/H3Ja6f22nnOs1qzYVjronuFl7aYCyS/WPK8tVonVrjMV9q/v+T1oyQ6xffM5ZFfLDT//Add8/Os5bxWy3oDUTjclG4ujrwt7nn1GvNGn+v+/r7n2cHeMZdG/lWh+4fP9sxfcI3ba6PJvZ/kX0o1l0X+63ap90fvlXO21v1F9+ezXnAUDl8JNJdE/n/bBf8ffNlnznJGP93/+TVvbIhyb5rLIb/o2+HtmPWbv5hj3ObByd3vvvpyU4q5EPKL24XS6B+67jdn6N1927w/lgmJ1cNXm/jmEsi/CvQebOFYSvqc/8eLXrQogcN3zWHJf7uwXSqN//vWaqzo5wd+fNmLHg141FTfMYck/xDOPdLC0Z/STw/+9pIXN1YP374CNUcjv/9+bDIfjIMaJ/rc0E/XvURRWMXq6lvmSOTvtydu7nFtOzX63IuhXy56yQOoyDfNQcg/bEfc3GPbdmL08yO/vO+lDIgd3zA3T/7hdiG2dmDbTop+evSHlzyCMH4B/tmUWfLbjb1dSv73CzYn6d4DyGuzHkkcYpjrJ/8x8eYOOarRoa8E/WyWxtwz+4xEx1w3+e303KHmqSdyK8E/S2TulTaNm2smv10i+tMtjzVPOXsfadkTTGXC0V8aNtdL/iOVeKh5qk5uHDlNE9eOl0bN9ZLfpiP3lsLMkz/nMJacqolrxSuD5nrJtwn/aoEjGX9RnyMmJ2vijNb0Z1N6yQueRvNk/XsIOV0TZxK9ay6SfLJ5gq2+Evp7+5T/+wWj5jLJx41k0mz1cHK6xr09kjNoLrGWRzWPt9VPT/ixWdoFvDVmLpU8mnmcrV6c9FN12gUYKelNc4GHtHjmUbf63PmJv5QlXkHBjLm8Uczk0WuiqdxKhB8qUi/h0IS5roErA3l08ygPuZyO9EPka9g0ZK6BfNszaj55KBeNnLhxN5LdW+aSLqskNZ/0kEtE8tqBJz67N811XDxlIY9lfpqEnPqwZqJ3b5jrIGfJ7PHMX6Rt31gOayYmM8+mdJD/yLPN12pEyT06OflhzcAVtgBzhhuheMjDL5/HSO6hV1WGr8ozrKNg2pyB/LaHYH4+xk3NOg9r2u+fGDHnuN2xBGFeSzxwHYg18Rt92JyDnKmBi20+l7JlZzqgaz+vDZmz3NRcAjE/HemhNP0H9OZ5zZw5y6MLbNs8rnkxbf/GdEDXvdEHzFnIf/RQzGsU5EzmJUPmPA8oFXDM5wjIOYYymje6z5yH/LaHY3463SmNbyijd6P3zZkeQywAmb8gIGcZyujd6D1zJvIPHpD5cHIv1pKEJ32jd825HjYuQJmfTnMwZzbXN4zrmHORfyhBmZ9PcjCvFzUMZXQO49rmbK8UYN3m3n4tTXKP2rLPLhe1mGu7vNYy53txCOs2H7h+ns3GTO7F6AfyZT3mqxrN+ci3PV3mxf16vOQ+F2fYusT0PLKZ2yEb5oyvByppMz+I8OzaQHKPfkxr7utZ9kGcxo3+bIqR/Lany3x20rPowy8iiNGzt3J5XYe5p9uc4SVgBV3m2bWoTXwxZgPXO5tluYev+uYyPXMG8g+eLvPl6DfHxT+ad+69W2Eevuo7rnXNOV71x77NvaK/qyrGSO4JboDrndgYzfUc1zrmLC/0LLGbZ/0I2ejJPc427xEvaTBf1WfOQr7t6TEvdt79UI+e3F8kMe8175wr2tRlzvPa3oIm84MhksnJfSXO6G52OK2wmh9qMuch5+/g2gj1mNP38zEvofrM94vs5iU95kwv59aQ2ptbu//t2qhXXObi3fXov+dxid1cRxf3bIrrfewlPeYHgdP30Jl7vMvmyyPFZNmT3cU9m2Ii15HaG+b1kS6eOgbeDtbK7qzmGrq4njn1VxcKWsyLfpE6i/lIZmE2f6vNnPzbKiUt5rPDHuQx/AKZFW7zgi5zcnIdHVyjbRv4rwMO8+EJzAG3OX9yb5vTf0FJS2pPe6tUotvZs4wX0PUc0VvmDB/NKhkw9zjMZ0f/Zc3yrqKkw5yBfNsEOUvjPrqp68zm7Ef0hjnHp/EKRsw5GvfR4r3GnNvZj+jPpli+hmgktbM07sv6l1FiN+cgv2CEnKWJM7GOl/rM6T5zaya1J7jf3djTaSaTu8+c8MvGZlJ71FtlAJ5CnRC6zAnJDaV2jsa97tmX3HvmlN8vL5gyn+U/nluQ3LvmpJ+sN5XaI97jbvyNQYaTe8eclPyDKXKGxn3Zsy+5t81Jyc2ldobpq6F1rLKb05KbS+30TVzR1EK4zYnJp82Rk09fs6YW8pLXnJj86rZB8yUr2nbm5P5siprcZDknb+KMmXus5tTk9z2TYUfbzntBtW1OSG5uCMfRxO17Fib3ljkl+f2CUfO6FUc13guqTXNS8vslo+ZLdrTtHuetkA1zWvKvjJITN3F1gys5ZDSnJb+/bdbcs6Rt57zPPcA8Fbnh1E7cxC17Nib3UfN05BcNk9NeTt03uZK32szTkRtP7bRNnNGVFHSZpyQ3fFIjbuKyZpeiyTwt+XXT5Zz0nri62ZW81GKemvy9cXLKJm7J7EpWdZinJr9eMG8+a0nbzjeK85unJwdI7ZQFfc3wUl6xmxOQXzRPHvMD2XDPM2hI7n1zAvLr2wDmdAW9bnolBWZzCnKEck5Y0GeNL2WT1ZyEHKGcE05lDowv5ZDTnIb8PQI53ZOK+56dyb1tTkOOkdpbr3YSfZ8zd3JvmRORY6R2sntlsgBLecllTkV+EYOcqqDPAixllcmcihzjpEY3lTlAWAuPORk5SjmnusyyhrCUV0zmROQo5ZyooK9ALGWVx5yK/D0KOU1Br0MspcRiTkX+GCa10xT0JYy1bHKYU5E/hkntNAV9GWMph7zm6ch/xSEnKeggSymwmqcjf7wNZL5kx0SGKbn3zVOSA5VzkoI+i7KWt3zmacmRyjlFQT9AWcoqm3lq8t+QyAkK+j7MWrjMU5NDlXOCgr6Cs5aXPObpybFSe/pr6HWctayymBOQ/+JhxYodExmWUVzTnID88Xsw87odExmW6ywNcwpyqJNaM1J+d6uItJZDcnMScrBynvou9zrSWgrs5onIf/PQImtLOacfxY2YJyI/tg1nPmtNOScfxQ2bJyM/VoAzX7amnJMn9yHzhOTHPLwo2lLOyUdxg+ZJyS8AmtetKefUo7gB86TkgKk93fh1H2wtq2zmicmPlQDN16wYtnOM4nzmyckveoiRtaacE4/i+ubJyQFPaulOawdwazlkMU9BDlnO05zW1uDWUuAwT0MOWc5TXFvLAq5lk948FflvmOSJT2uzgGt5S26eihy0nCe/trYMuJYCtXk6ctBy7iV9r3cRci2btOYpyY+hkidM7nXItbwkNU9J/ukFWPMlKwav5KO4Z1NpyT+FTe0JR3FrmIthNI9N/mkJ1jzRKC4LupZXbObxyX/FJU+U3JdA17LKZR6fHLicJ7vNfR90LQUm8wTkwOU8UXLPwq5lk8U8CTlyOU+S3Gdh13LIYZ6I/CIyeYLkvgy7lgKDeSLyh9vQ5rGT+wrwWjbJzZORPyxgmy9Zk9rpRnE984TkD7HJYyf3ZeC1rBKbJyX/Ddw8ZnJfgV4LrXlScvTUHje5z0Kv5RWleWLyhyXPquS+DL2WVULz5OSfep5NyR07tVOd1prmyckfXsA3X7ImtVOd1hrmKcjxy3m85L4MvpZDIvM05Pjl3Itzt8wK+lIK1OYJyH8RQB4juc/Cr2WT1jwBuYRy7nlrRemXUYlHcT3zJOQfFSSYR07uWfylrFKaJyL/qCTC/ED4HTLUo7iOeTLyf/ZkxIromx/JR3Ft82TkH10QYh7tCdW6hKUcUpknJBdSzqM+oXogYSkFIvOk5ELKecT5a1HGUjZJzBOTSynn0Y7oszKW8pbCPDG5mHIe7YGWfRlLIUjuz/5fgAEAL+jxksFjqCYAAAAASUVORK5CYII=
iVBORw0KGgoAAAANSUhEUgAAAfMAAAHyCAMAAADIjdfcAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAYBQTFRFwG4mvm0m76uxtmUl9c3RalA7o1Ii/eXN1oEn15ln1LCPx3QmsWIlwm8mjXxspY136cCYyHUm5HB6kGQ21o5NxHIm0kZLpUkp6o6X7beF/Nu702M5/vDi11dErl8ktHItvGolu2olVktDuGglt0g3xUdCn2oyZ19XzH0o+eLkzHIq0HMs/fTyf0gtkUkmTEVBm0oi3UZU0Wk0xHoq0YU+c2hdoE8i0YApz38q/dKouWglRUVF20xO3YcntGQlT0dC////fVw53YYn24Qn2YMn1H8nvncr1YAn3IYnyXUm24Un14In034n0Xwn24YnzHgn0Hsnz3snzXon0Hwn2IInynYmy3cm0X0nznonzXkn0n0n2oQnxnMmxHEmz3onzXkmuGclvGsmy3cnyncnzHgmumkl8smg31Fe53+Ju5+E/vz54V1pn0kl2EZQ/dWvrUkvXFZR/vn0fnFjqF00xHElx3Ml0HcpxXImznYpyHQlyXcm0G4wrW411mpHyXYm2busyi6ewwAAHBNJREFUeNrs3f1bW0d2B/CJgmzMegGLVGCDoKvyYmwBc3GcWCsaRBtMt7ZrG9v4pW2cTby8+DVO2qwbaPdfryTe9K5775xz5juXOT/lyQ/yM3yeOXPO0dwr9Y+Q8U+R4186xL/Vx782xT/3iH+vxrdd4/FJ3GmK/k6x0S7W28Xd+nhRjae1uFcXj47iwXE8PI7vvntWi83jeF6Ll8qTnzVyTHNPzkn+Snnys0Z+X3nys0YOaO7JmcnxzD05NzmcuSdnJ0cz9+T85GDmnlyAHMvck0uQQ5l7chFyJHNPLkMOZO7JhchxzD25FDmMuScXI99SnvyskYOYe3JBcgxzTy5JDmHuyUXJEcw9uSw5gLknFya3b+7Jpcmtm3tycXLb5p5cntyyuSe3QP6D8uRnjdyquSe3Qv6j8uRnjdyiuSe3RP5EefKzRm7N3JNbI7dl7sntkVsy9+QWye2Ye3Kb5FbMPblVchvmntwuuQVzT26ZXN7ck9smFzf35NbJpc09uX1yYXNPDkAua+7JEchFzT05BPmflCc/a+SXlCc/a+Ry5p4chVzM3JPDkEuZe3IcciFzTw5ELmPuyZHIRcw9ORS5hLknxyIXMPfkYOT85p4cjZzd3JPDkXObe3I8cmZzTw5I/jvlyc8aOau5J4ck5zT35JjkjOaeHJScz9yTo5KzmXtyWHIuc0+OS85k7smByXnMPTkyOYu5J4cm5zD35NjkDOaeHJyc3tyTo5OTm3tyeHJqc0+OT/4fypOfNXJac0/uAjmpuSd3gpzS3JO7QU5o7skdIacz9+SukJOZe3JnyKnMPbk75ETmntwhchpzT+4S+V+VJz9r5H+nPPlZIycwd4L89tTU7MjISLoapcOo/Xfl/01NnTFyc3No8lsV6bV0vtQr0msjUzfOCrmxOSz5rYOR9GopSqymR6aungFyU3NM8lsHa/lSvEivTSWd3NAckfzW7FrJLNKzV5NMbmYOSH5gCn7CnlhyI3M48luz+RJZpA8SSm5ijkZ+a2S1RBr5katJJDcwRyOnFq/F2o3kkcc3ByM/yJd4Ij2VNPLY5ljkN9IlvjhSTwz5f6okkM+ullgjfSNJ5DHNochvrZXYY+1qcsjjmUOR386XBGJ1NjHkscyhyGdLQpG+nRDyOOZQ5GsluRhJBnkMcyTyryXJG7e6u+TRzaHI0yXZOD3VHSaPbH6myasFvPvkUc3POnmplL/tOnlEc09eye9TjpNHM0civ2GJvBKzbpNHMgcin7Un3ojuIPnvlYPkX4+sluzGmsvkEcxRyO2Ln6I7SR7eHIQcQvwY3U3y0OYg5Af5EkisOUse1hyD/Gq6hBNrrpKHNMcgn10tIcWso+ThzCHIhb9PCYXuJHkocwjy23k08tLqlJPkYcwhyGdLgLH6m4vkIcwhyEdKkJF+6SB5b3MI8rUSaCy8dI+8p7kn7x6Lr5wj72XuyXvE0rlXrpH3MPfkve9QHKG7Q97d3FfsYY70GrpD5F3NIcgPwMlLS4sVdJfIu5ljjGJW0c1LaX3ulUvkXcwxBq7pEn4sHqM7Qq6wv1ZZc4C8lNeH6K6QK2jyqZITsVBDd4ZcIZN/nXfDvLLRK+jOkCvkWzFrpZIzG12f23KFXAGT33aFvLbRj9AdIFfAN1zTzpjXNnoN3QVyhUs+5Q754UavoDtBrnAfXcg7ZF7p0RvQockVLPmsS+SltK5HxyZXsM+kpZ0yX1qsQwcnV6jkUyW3YkGfoKOTK9QnT9ccM1/VJ+jo5AqU/EbJtVg8Rccm/0yBvlJgxDnz4+ReQf8RmrzeHOq9b3nnzE+Sew0dmLzOHOuFnqWSu8m9ig5MfmqO9abmNQfNT5N7Bf03XPITc7BX8OcdNK9L7sfokOTH5mDkLqb2huR+iI5JfmQO99sqTprXJ/cqOij5oTncj2alnTRP60b0/8Mkr5nj/U6ak+SlJd2KDkheNcf7NcQpN80bD/QaOiJ5xRzwBzBHHDVf0C3ogOSfKcSfuTU+zvMDe3n7B3oV/RIeeQxzgR+zNn1eaW67WBy+aeuGVCd0FPLo5gLkpt+p3ayQV2JIfqvrLugw5JHNJX6y3vBR1MHiUchv9cXO6DjkUc0lyA1LuBPySkif6gu6EzoQeURzEXKzL1j2ivWxPWi5iDtCRyKPZi5DblS2N5JXYuCm3SKuhv4/SOSRzIXIv6Ukl03wq7oHOgJ5FHMp8m9pySsJfshm4V6PDkEewVyMfIqYvFrBD1os3E/RMcjDm4uRxzfvSC53rC/oLugg5KHN5chj/9JxN/Kq+k9WzSvoIORhzQXJ47bnQ8VescevntZd0H+HQf5nBUce03ywGCLYx7HdzCvoEOThzEXJ441kQpFXS3he9bzuiv7fCOShzGXJY41k5raLRQT17ub16PbIw5gLk8cxz4cmZ1bvYX6KbpE8hLk0eQzz/EAxUvC166s6HLpN8t7m4uQxzPeKUYNNXYdCt0re01yePLr5YDFGMKnrMOh2yXuZWyCPbD63XSzCqOsw6HbJe5jbII9qHvUwr1f/2Ya5PvdXq+Tdza2QRzUfKhoE+RheR0S3QN7V3A55RPObRbMgVtfR0G2QdzO3RB7NPD9cNA3SMbyOhG6F/A8KjvxxWiyzM6jrKOh2yDubWyOPZD5XJAm60ZyOgG6JvKO5PfJI5gNFoqC6IKvDo/+XJfJO5hbJo5gPFumCppjTcdHlyDuY2yR/HOG71OEiZVAc6zomuiB5e3Or5I9HrGxzoguyOh66JHlbc7vk4c3z20XqMH3EbUnHQhclb2dumTy8+WCRIcyegMjrOOiy5G3MbZM/PrBzmp8k+J8FzWvowuR/UXDkj6dsbnPDrR7ZvIIuTd5ibp/8zm3p3rx1q8c+1dPaAF2I/I8KjvzOHdERXIdL0XLmJ+hS5E3mEOQhzfc4zeM+9RLH/AhdjLzRHIP8TtpSo0ZQyi3ouOhy5A3mIOR31qxWcEb5PZ55BV2QvN4chfzOiP3UHrd+X9Qx0X8vR15nDkN+J8yDqfmiQAzkWUevHdC5yU/NccjvTEGk9toodo74kYYQ6OzkJ+ZA5KEK9z0R8+L2HPNIpgWdn/zYHIr8ToiUul1ERE9rU3QB8iNzLPIQhftcsYiIvqAN0SXI/0EBkoco3AeLkOhm5hV0CfLvFSB5iCJurwiJvqgN0ZUAedUcjvzOVUtfo5q2bEtaU6EzklfM8cj7+/MI3XkdukDZ3ojOSf69QiTv71XE3ZQ1L+4JlO316KzkHc2tkvf3KuKGhM2LgxIl3Ak6L3knc7vk/beBSrjDOu4niRLuGJ2XvIO5ZfL+/lVbV2RMjvQlTRPnPmMlb29unbw/jTGFi/bNal7zoBOTtzW3T97f46u1ooX4SaSEa4NOTd7OHIC8/wbI5DVSdl8gM9dffcZH3sYcgbxHh37Thnmx52UprRnQ6ck/V5jk3Tv0n62YD0sd5/XoDOQt5iDk/QdQ7XmoJj2t6dE5yJvNUci7d2uWzIfFjvNjdBbyJnMc8q7J3ZJ5j42uNTk6C3mjORB5125tz5L5gNxxfoj+Zw7yBnMk8v6rUGO4o5gTTO2N6ITk9eZQ5F1HcdbM99iH7R3QKcnrzMHIuyV3a+bFPPuwvS06KfmpORp5/9VVQPNBqU6tAZ2W/MQcjrxb5W7PfFj0OD9CJyY/Ngck3zgANO9YxS1ptvjq72nJj8wRyTc28oDme8KpvTN6bPJDc0zyjTVA823p1F5D/wMlec0clHzjBqB5h2/XlrSWRTcgr5qjkm9spAHN98RTezt0E/KKOS75xiyg+bZ8am9FNyL/XAGTb2ysYs3bOyb3Jc0eX/2FirzRHI18YwTre7WOyT2tJdENyRvM4cg7VXFWzbelZu2d0E3J683xyDu1a1bN24xlVrWWQzcm/0ZBk29M2X76PNRN9wUth25OfmoOSd6hXbtp1bzl5sTSohZDJyA/MQclb9+u2TUv2qjgjtH/aE5+bI5K3n7obtn8po0KrgU9NvmROS55+41u13yQ/SJcCPT45IfmwOTr63k48z07FVwDugF5zRyafH0W47nUjkXcktby6CbkVXNs8rYbfQCoiFvQ8uhG5BVzdPJ2G92y+ZyVRq0NeizybxQ8ebuNPoRTuKe1toYej7zFHJC8zUYfwincF7U19JjkzeaI5G02+s92zYcsb/ND9LjkTeaY5OtTYEOZIdvbvIr+fVzyRnNQ8vX1tN33QHZu1mxt8yr65zHJG8xhyVs3Oor5ogZAj0heb45Lvr6+BtWsDQBs81P0qOR15sjk65uriOZLi9o+emTyi8oJ8vX1EaRmbQBimx+iRyc/MQcnX7+bx7spY3ub19Cjkx+bw5PfnQJq1oZsTdq7ooclPzLHJ797t6GM+wnAfElrJPTQ5IfmLpDf3czDNGs3Ybb5KXp48pq5E+R37x7AFO4/yV+P6YUegbxq7gh5Y3a3+fjStvVxTAt6FPKKuTPkDdl9yHarltYaCD0K+UXlDnlDdh+0XMItaaT46psI5D3NkcjvvliDaNbmcAq4juhdyHuZY5G/eJEHKNyHwTJ7O/Ru5D3M0chf3F618kuKzal9aVFDo3cl724OR/7i6az9Zm0OLrM3o3cn72oOSP706Zrtwn0AMLM3ovcg72YOSf70adpy4T6ImNnr0XuRdzEHJX/6W95q4T6MmdlP0XuSdzZHJb9376iOs7bN01oDo/cm72iOS37v3tSqvSJuWOpFIjHRL/Ym72SOTH6EbmfiPoh6mHdAvxjaHJv8EH3ITtG+oLVD6BdDm6OT19CtPMsyl9baIfSLoc3xye/d+y1t46rMUF5rh9AvhjZ3gfzRoy8tnOfD+UXtEPrF0OZukD96dNnCnSgnyI/RL4Y2d4X80Rfymd0R8kP0i6HNnSGX3+jbI1q7g945JpWz5I8uSO/zX3QS0CebzF0if/BA+O1RF7ROAPpkk7lb5A8u+G0eGX2yydwxcuGN7tY2r6JPtievN3eOXHaj/6LdR59sMneP/MGDy36bR0GfbDJ3kfyBXI++/Yt2Hn2yydxJ8ocPL/ttHhp9ssncUfKHUht9+5x2HX2yydxVcrGN/oXWjqNPNpm7S/7wS5F+bVhrx9Enm8wdJn/4UKRfO9COo082mTtN/vCWwEa/rLXb6JNN5m6Tf/fdF34cExFduU7+7Nll36dFQ1fOkz/7kruAO6eTha6cJ3/27IIv4CKhK/fJn22yPos+oHXC0FUCyDe/8BO4KOgqAeSbm5d9Zo+ArpJAvnlr2Gf28OgqCeSbm1/6zB4eXSWCfHPzgs/sodFVMsifPx/205iw6Coh5M85yrjLWicRXSWEnMX8gk4kukoIuTcPj64SQu7Nw6OrhJC/9OahQyWE/KWv4YzMXSR/5c1NzJ0kv+/NDczdJPfmBuaOkrOYF8+Guavk97e9eUxzZ8nv+wuvMc3dJecxP0i+ucPkPOYXEm/uMvktbx7H3GXy+zzXIC8n3NxpcibzYrLN3Sa/z3Q36pckmztOzmX+ZYLNXSfnGcMltIhTySDfYjIfTqy5++RbXA81/JJQ8wSQb/mXB0UyTwI52zPolxNpngTyLb4nUxOY3FUiyLf4nkC/kGRzl8kHJvjeLDKUXHOXyb8o85kXr/wtqeYuk29NsJqXU9OJNHeafLjMaf6+XN6deZs8c6fJbxXK5QLjG2Velws77z4kzdxp8uo2L5cZzSfK5VQQJGirK+fJtwrM5ucrH/8mCN5NJ8jccfKBKnn5PWcRVy73BZXIfkiKuePkW1dq5ld493l1oydGXblO/r81cs7CvWaeCoLEqCu3yfdXxg7NP7LWcJXYCY7VpxNm7hb5tVwQ9B2aMyb317XPHwuCU/XRBJm7RT6+UgEolJmT+2G9UJ4P6iM7/TYh5k6R18SDTLnMvNEnjj4/EzTGjLPsyk3ya4fiQZA6MS+wpvbTKq6BfdRxc3fIr+VWjv/sfSfm5fN8VXtrcj9J8jMfHDZ3hfxki9eicGr+mmUu8/Hk8zNBh8hOf3DT3A3yT+O5hj/36XHOlN3Pn358KugSlf3+1jVzF8j3G3Z4LcbqzRlq9/evTz99PugR2Rk3NrxyhHx/PLfS5s+cajCnP9In6j99JwgRWfzCTuGTf1puSuh10ddoTt2wXWn48N0gbGDveAVN/qnD9j6J+Sbz17TohYYPTwWRogr/FtUcknx/uQd3LcplTvSJxs+eD6JHFX4UzxyNvLq5c+H+opkW83LhPVNmD3ugt4l3WIe8giIPr30Yu+U26FcYavaoBzp0rlcg5OFSeY+ynTS9vy+0fHIqMI7szCiuuRj59f042l3MidAnWj+4L6AI69culE3y/eVoqbxnq0aIPtHugwOamIE0Zye/Hn9z9zYnGM6cb/uxGSL07Fs8c2by6zmiv125Y0xwkNdfljFEH0Uz5yX/lUq8m7lZz9aBnKKIO27fRrHMecmXyf5uwZsu5iaHeidyoiLONrqSJqfb5G1HMhSH+vnOHxkkAV3Jkv9KSd7LvDzxnpicrIizWsgpWfIVSvK2Y7jG/H6eltxwEteMDmLuEnmHkYzZVu9KTljEWezTlcPkYcyjnuoT3T+sj3YB0wDm7pRv4c3LH8MX8O97kMf6OhWujlMOk4c0D7/Vr3zs+VHEK8jaNnemL+85eo13qp9/3fuTMoH72V1JkV8PLJqHugY9EeaDqM2DUZvmzAPXFavmIebvociJC3c72V0Jfa2SC+ya93z5SDhyenML2V3JkC8Hts0nSMipmzUr2V2JkP/KQt5y0zn+Rg9LTt2sWcnuSuSKRI7HPAp514ZtIvzHMCzjgw1zbvL9AMB8Iu68tTHeuL/RlcRFqBUE84/h77GLNmvyZZwSIB8PEMw7HujvX0f5lDGGdbx7K2zOTv5rgGF+PtRDafLNmvhGV/yXmnMg5hPG9RubuWy/ptjJrwcg5h+N6zemBl36m3TF/uhCDsW87YEelZzJXHSjK27y/QDG/Lxhyc7WoAtvdMX9gFIOx7z1QL/yGsVccqMrZnLObR7VvCW5xyHnGMoIb3TF/BhiDsm8Kbm//xiDnGUoI7vRFS/59QDJfMKkMec2n7FkTv58eQ7K/LVJY87boEsO4xQrOe82j2ze8CqxsCX7/JiMudwwTrG+RSInZ16ImNxDT9n7ml42yWaetWBOT/5rIGbel4o4ipuIMIRJCQxlBDe64nxXzDiz+endqPmdsWjJ/Uqk8zslYp6VNud4PdCKmHmm5zOqTd3ax2g127yEudSFGcVIzr3NT80rLjuR7rmfj1in78yzD+Lk2jXF+N63nJR5X/gi/n3kaxKH/XimIGAuNJdRfOTXAyHzwpvwF5/PR/427WgGsythPi1nzvN2x5yU+W4Q3rwQ+TbU8Xw9xTxwl6viFBv5J3byI4ZUk0nv5B7pS/OWkyTj+kZXbO9wHRcyn99pTr49k/vrWObHdRyneVbGnOu1vTkh82OCcM1adSwTaZvXtWYZfnORKk5xkfNXcIfmqajT9yvRvk+rb8fH2G47i7Zriuvl3ALbvGowf/oe/ZBPr01Euw+VaikaU4HjyV1xvYJ/RcA805Bowz6lOhHf/E2B21xiFqeYyJcDEfNUSxVPHWNdThNHk7ti+qGNnIh5YafltKWOpoptnts8eCtvTkP+KRAxH2vK9AzRNIHZZf2SRaZFVzw/pzMuYr5jeG0mztXmPm7zrLQ51S8oiaT25phnIC80/yNvuM35W3TFQv7JBnmk18vEf1QpxW0+I2pO9jtp41bMUyLmO9zmWUlzul9DtJLaw07cTW82ZwLHk7viILeT2lkK9zEL65gRMyf8zVM7qZ2lcM9YWMY7KXPKn7nNWTKfZ2/PZeKDjDkluaXUzlLEWVnHjIg56Y9ZjyfHfN7KOt5JmNP+ZL2t1M5QxPXZWcgHfnNa8k1b5CHvuCM8hGo1uSt68mVr5vRF3FiQwOSuyMmf5+yZ9yWhVWNP7oqc/PmKPfNUIlo17uSuyMn37ZHTT19tLeSdmDkF+fNxi+ZvEtGqcSd3RU1uM7UHQSERrRpzclfU5J9sklMXcSlrC8mKmNOQW03t5EXcrr2VjAqYE5Hb7NToi7hMkMTkrojJX1olp57EWVxJlt2cjHzfrjntJG7e5kpGmc3JyF/mLJv3JaNsDzjvuSta8lcrls1TySjbWQ90RUt+zTI57depY1aX8pbRnJD8/rht8yAhZTtnclek5Pdz1s3nk1G2cyZ3RUp+3zo55YE+b3cl71jNyciX7ZuPJaSEY/yeRVGSA6R2yiLOtvkMnzkd+f0V++aEX61lLK8ky2ZOSL4PQE44ldmxvRSmUZwiJAfo1CiLuHnrS5nmNKchRzjOCQ/0PutLyTKaE5F/CiAiKSUc2yhO0ZEjdGqUU5ndIKHJXdGRY6R2ugP9jf2lzDCZk5FDdGoB2V2ZAsJaeMzpyPcxyKnuyvQhrOUDt7kZOUanRnegpxCWMsNsbkiOcpxTHegZhKVkec1Nya+hkBN9zbIDsZZRTnNT8q1lGPM3yZjCsSV3RUW+BZPaaQ70FMZSsnzm5uRbKzjmFAf6GMhaRrnMCchxjnOaAz0DspZpJnMC8q1xIHOKDh1lLTM85hTkSMc5xYHeB7OWtxzmJORbSOQEB3oKZi3TDOY05MtQ5ruJOc45kruiIcdK7QQH+g7MWt6xmRuSI3VqFAf6PNBaPjCZm5JfwyI3PtBTQGuZ4TE3JYfq1KpheiluF2gtWRZzY3Kw4zwwvuW+g7SWUQZzc/IfVtDM+xJznNN3a4qEfBmN3HD8moJaS5bcnID8h3E48zeJOc7pR3GKgvxHuNRu2K3tBElO7oqC/BoeuVG3Ng+2lhkecxPyH8cBzXcTc5yTj+IUAfmTHKB5kJzjnHoUpwjIn6wgmve5/905U3JXBOT7iOQG3Vof3Fqy5OaG5E/GIc3jd2tjeIsZJTY3Jcc8zg26tQzeWqZpzY3Jn2CSx+7WCoBrIU3uypx8GdQ8k5BOjTy5K2Ny1NQeO7mPIa5lmsE8Pjlmp2aQ3HcQ1zJDb25Afg2VPOYorg9zMeTmBuSgnVotColJ7aSjOGVKjnucxxzFZTDXMkNrbkSOe5zHG8XNg64lS2puRr6PSx7rmnsKdTGjhOZm5MjHeazknkFdC123pgzJkY/zOMm9ALuWLKG5GfkTZPIYyT2Fuxiy5K4MyZehzaMn913ctUzTmscmx07t0ZN7AXgtM6Tm8cn/tBIkKrmnkBfzltDcgPxaECQquY8hr+UDnbkB+aVxdPOxBHy/Qp3clRH5pRy6+U4Svl85Cqorz8qI/NJKkKjkPoa9llFi81jk8Md5tOReAF/LDK15LHL847yS3AsJqdrpRnHKhBz/OA8i3ZbZRV/LKKF5TPJL7xww301MaqcaxSkT8v3AhSgkJbVTHejKgNyF4zxKcs/gr+UtkXlscieO8/D33OcdWMsHGvP45E4c50Hoe+4pB5ZCktyVAfmyG+RhW/Q3DizlHZ15LHJHjvOwT6j2ObGWUSrzeOSOHOdh569jTixlmsg8JvklV8hDJffCjhNLydKYxyVfdsY8TIuecmQpoxTmccmdOc7DtegZR5ZCkNz/X4ABAOvxKndlnCEqAAAAAElFTkSuQmCC
AAABAAkAAAAAAAEAIAAUVQAAlgAAAICAAAABACAAKAgBAKpVAABgYAAAAQAgAKiUAADSXQEASEgAAAEAIACIVAAAevIBAEBAAAABACAAKEIAAAJHAgAwMAAAAQAgAKglAAAqiQIAICAAAAEAIACoEAAA0q4CABgYAAABACAAiAkAAHq/AgAQEAAAAQAgAGgEAAACyQIAiVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAACXBIWXMAAA7DAAAOwwHHb6hkAAAgAElEQVR4nOy9eXwkV3nu/32retG+z75pvIxk44WAwYANxmaJjQm7rVbYL3FYEgI3Fy5cCNngF5KQcMnNDiQQYjItCLmEOFy2YDaz2XjBxiONlxnPJo80i3apl6rz+6PV6u6qU9XVrW5NS1PP5zN261TVqaPWeZ73Pe97FggRIkSIECFChAgRIkSIECFChAgRIkSIECFChAgRIkSIECFChAgRIkSIECFChAgRIkSIECFCrCfIuW5AvTCcPBBBZLeCPSBbUGwWVDvQghAHLMBCsaBgFjgLMgFqXMETI4nBqXP7G4QIUX9sCAFIjIzFQT1d4DnAVcCVIBcC0eprVVMKxlByQIQHUdyj4J5kYmChRs0OEeKcY90KQCI5tgNRrwR5icDzgeY1eG1aKfUz4FvA11Dy4+TwgL0G7w0Roi5YVwKQSI62CJIA3gBci2Ce2xapCaXkS8Dnk4mBu85tW0KEqBzrQgASyQO7ReS3UPwaIp3nuj06KMUYwt+h+MdkYmDmXLcnRIggaGgBSCTHdgn8DsKbWdV4fg2hmAb1tyB/vj8xcOpcNydECD80pAAkRkZbBfkA8NtAU7X1mKZBNBYhGolgRgxM08AwDEQEUCgFtm1j2wora5G1bLKZLJlMFqVW/WvMKKU+BvLnycTA4qprCxGiDmg4AUiMjN4s8Lcguyp5zjAMWlrjtLQ00dQcIx6PEYkYVbVBKUUmY5FOpVlayrC0mGJhIYVlVR7vU3AY1LuSQ4NfqaoxIULUEQ0jAMMjo20o/hKRNxKwXZGISUdnK+3tLTS3xJctex6rN+ElUIp0Osvc3CJzs4vMzy9V9DTwBQXvSA4NnKltw0KEqB4NIQCJkbErBDUCMhjk/vb2Frp62mhtbXaQPo/akt/9BkU2azEzvcDZqTlSS5mgVR1TqNclhwa/W9MGhghRJc65AAyNjL3SUPwTQnu5e7u62+jt6yQW84sH1p/8zh8XFlOcPjXD7GygoX5WKfW+ZGLw4zVpYIgQq8A5FYBEcuxdInwc8B2st3e0sHlLdxniw5qT34GlpTQTJ6eYmwsyPFCfVoq3JxOD2SqbFyLEqnHOBCCRHPsDET7k14ZoNMK27b20tgWZ5Fc78usbFLz+ublFnhw/Szpdltt3KKVuTSYGwyxBiHOCcyIAieTo74rIH/jd09XVxpZtPRhGkEh+45A/f7tt20xMTHPmzKz/rUr9F/CyZGIwXGMQYs2x5gKQSI6+U0T+j9d1EWHb9l46u9oC1th45C/G3Nwix4+f9k0hKsU3QL0smRhMVfayECFWhzUVgERy7OUCX/Kawx+JmOzcvZnm5niA2gpME6DJzAUSMgrSVSzPqXS8X8ntmUyWI0cmSaV8swVfUIpEMjFQ4/xliBDeiKzVixLJ0UER9TkQLfmjsQi792wJEOiD9ggMdpj0twpbmww6omAUpQNTluJUSnFs0ebRWZvD8wo/Tagn+SEXy+jfu4VjR0/5zR+4FeEw8L7KXh4iRPVYEw8gkRxtBu4WkaforkejEfbs3Uo06q9Hu1uE5/SZXNgmJYQvh7ms4mdnLH5y2iLlUIJ6k7/kVqU4duyUX7pQ2cjrR4b2fb6yRoQIUR3WSgD+UkR+U3fNNA36L9jma/nbI3DjtggDHcaqGryQVXz7ZJb7pnIqsJbkzz+glOLo0VM+qUK1YCNXjwwNPFRp7SFCVIq6C8DQyNh1Btype5eIsGfvVt8x/8Xtwst3RGg2a9fUg7MW/34s6/AG6k/+PGxb8cQTEywupr3ufFjBVSND4SKiEPVFdatlAiIxMhozUH+Hh9Bs3dbjS/6regxu3VVb8gPsazd5094obSsjjrUjP4BhCLt29XkOeQQuFcWfVfqWECEqRV0FAOSdXvP7Ozpb6er2nv37tG6DG7dGKhrrV4JNTQav74/SXOmeQqskfx6RiMnuXb0eaxlAhLcnRsZeUOnbQoSoBHUTgERyrFvgA7prkYjJ1m29ns/ubRVu2mZSJ+6voDdu8Jpd0eDjoBqRH5ZTl00xtm/r9rxFlPrk8MjoWux1GOI8RR09APVuoEd3ZcvWHkxT/+omE16+o36W34k9rQbXbgqQDa0x+fPo6mqls7PF40a5QCk+VOmbQ4QIiroIQCI52g68U3etpbWJ9s5Wz2dfsNmkPbq2ExSv6TPpjnm8U1Eh+f0f0L1l29ZuIhGvsYj8dmJk9OJKWhAiRFDUxwMQ3igiWt9285ZuT5e7JwZP7a5zWEKDiCFcp/MCamj1wTvlYpqG51BAhDjIn1bakhAhgqA+bFPydl1xW1uzT9Rf8cxec81cfycu7TToKNaANSJ/Hu3tzXS064f7Ai9PjIxeW2mLQoQoh5oLwGuTD10twqW6a719Xjt6K0yByzsra87MzAwf/ehHeeYzn0lvby87d+7kla98JV/72tcqbTaGCJd3mfnmVIjVkT+PrVu7vLICEnoBIeqBmgtAk73wWl15PB6luUVn/XPk2d0iNFWQ77///vu57LLL+MAHPsDdd9/NmTNnOH78OF/+8pe56aabeN3rXkc6rZ9o44V97eY5Iz/kpkT39epTowLPHt5/8OYKqgsRoixqvhjIJvLKm878E0+b+zYd2TMcje/jP3vezMLW52qsW4E8u1uCa9H4+Di//Mu/zMTEhOc9n//852lpaeGTn/xk4Hq3NQtRya0oDIbKgn1B0Nvbzpmzc/rlw6J+F/jPKqsOEcKFmg647/vYda/pzT75xS6r9DwMC5OvP/XjHOy/pai0lDy37oow0BFsVs5tt93Gpz/96UD33n333Vx11VWB7gX4h8dSjC8GUYDakz+PM2dmGX9SfzixUrwkmRj4f6t8RYgQQA2HAGc/svm9F6YeSjrJD2BiceMD/4PemVG80mQdAVN/6XSaZDIZuF2333574HsBOgO1o37kh9zcAO+0IO+vwStChABqIABTH+42pj/c8wkT60/B+7BOQ2UZOPZlz3qCjv8PHTrE3Nxc4PY9+OCDge8FiBt+7ag8x18ZcvUbhrCpzyMWIDwvkRy7etWvChGCVQrA9Id7DEE+KyLvclXcbmJ2lYYY+mYeXs3rgNya+kpg25VtD+SdhaxdsC9I/TkvQP/nEXjvql8XIgSrFAAR/kJEXu8sj+5oouXqbiKbS6P+7YvjnnWlrGDE3rt3L83NwafHX3qpNiNZYTvWlvyQWzHY2+OxL6LwikRyrH/Vrw1x3qNqAZj+cM9t4N7kI3ZRC02XtCEC4hhPxzPTnvXNZIMJQDwe51WvelXgdv7qr/5q4HsBpl0pgLUnfx7d3W0Y+iGJqYR3rPrVIc57VCUAUx/ueYoIf+Esjw+0EN/VBLYNlu1iRyTrvb/FxFJw1/4jH/kIXV1dZe9LJBJcc801geu1VW4vwQLOHfkhN0W4u0u/bsKAtySSYx6riEKECIaKBWD6wz2mwOdASvzw+N4mYltjBfJbNtilHVx8tuY8uhBcAPr7+7njjjvo6+vzvOfmm2/mH/7hHwLXCXBySRXtKOwf7Ks3+fPo8RoGQA9CYtXNCHFeoxoP4DdE5GnFBZHeCLHtsSLiL5M/4Lge4PC8HTgOAHDNNdfw0EMP8Z73vIcLL7wwdzx4SwvPe97zuP322/nKV75CS0tlBvKR2Tz765vmq2S6YSwWob2tyevy22rSnBDnLSrqz9Mf7u0BHhVhZemaRIXWp7YgESmqMfc5M5Fh6dHC5pfzTZv51I33edb/0u0Rfqm70i16crBtO+ApQnoopfibR9Kc9TlUYK3Jn8fc3BJPHHHPrwCwFVeNJAZ+ttpWhTg/URFjBHl/MfkB4rujiKiC5bcKn5VjOqslMd/6f3LaqjjNl8dqyA9wcNZuSPIDtLbGffYPVL++mhaFOL8RmDXTH+7pU2KXRJ7NNoNol6ElP5btmlSfifi75JMpxUPTVRzrs0rYSvGdk96n9tRqgk+1EBF6uvXBQBFJJPaPeu+wEiKED4KbTeGdgpR0tPg205v8lkJlS8mcjpTvp986mWWxglhALfCTUxaTKf071yrYVw5dXS1ek5Q6EBmqyUtCnHcIJAAzH+mNAW8tLjPbBLNJeZB/eQjgyO2nI967AEOObPNZuON4lipHAhVjfNHmOxN6698o5IfcRqrtHhuGgPq1mr0oxHmFQAKg4DWCbCkui/XgQ/5cmVMAUtEObf3OtNrYrM2dE9mKfpFqMJ1WfOGJtDZZ0Ujkh1x7ejzmBIjIsxLJMe2xayFC+CGQAIhSbyp5KAZmi/Ilv04AlmLuyTteR3L/8FSW707UzxOYStvcfjjFrKONa5njD4p8e3LBQG2WRBBCLyBExSgrANMf6dmByA3FZdEOhZQhf24IUFrXYqz0LAAv8ufx/cks/3E8TcauLaGOzFt85vEUZ9Nu8q8etWurU4xExHNmoCheP5Q84DlhIEQIHYJ4AK+mZJmvItJqlyU/lkI5fOvFeOGYAP3BnG7y/Hza5tOPpTkyv/rsQMZWfPvJDP98KM28Q5wakfy6+ru7vM4QoFdyf6sQIQKj/JZgilcV90azSWFgUzKrV4SVzr8yEUihsqX6kvcAKj2V93Ra8bnDaQbaDZ7TF2FHBduHAaQtxQNTFndNZpnTLDpaL+QHiEZN2tuamNWdLixyGxAeLR4iMHz7/vRHurtEGZNIQSji3VlibVZRDUVVFM0CVMDcE6VHfv/bc/ZzdPPzHG+p/GDOzU3CYIdJf6vBliYh7thMRCnFVEZxbEHx2KzFwVkLrzk+jTre96t/ZnaRI0fPaBujlLokmRgcq2mjQmxYlPEA5IXF5AeIxLKFOf4uy7/8QUBl3V15Me48D7C6U3knlhQTS1m+t1zcYkKzKRgCGRvmsoqcoT+3q/kqRVDPqL2tiUjEIJt1qZoAv0a4YUiIgCjnS19fcnPExsAqWuzjjAWolc/ODADk1gIUULsjuRes3DBhMpWz/BuZ/OAfDAR5Y2L/Af851yFCLKOMAMh1xT+Z0aw7968hP5aN7ZhbY4tZlAWoHfmreWA9kz8Pr2CgCJsQuUV7MUQIBzwFYPoPezuAS4rLTDPrnft3/Oz0ABbifSAG55L8jZzjr7T+WCxCW6vXMWu4dmoKEUIHbw9A1NPEcd2UTPn0X34WoFXatXPu/7kl/+pRvxx/NfX39PjNDBx9ejXtCnF+wW8IcEXxDyI2hrLK5v4LS4FLK5uPb6EibHDyr75+RUeb58xAgP9eYYUhzkN4CoBAydxyQ7LYlpBNR0in4iwttrAw38r8XDtzs53MTncxO92Z+zfVSSZdGoeabw4oABWvnK33Xv35d9QGtSI/KARFb5fHAiGRWxP7x3ZVWHGI8ww+HoBcWPyTZceYX+xmMdVBKt1KJtuEZcWw7QhKGRSc2uJ/BczHN1MWDRnsqyf5q6l/mfwqLwBN2mXCAlGE36qmnSHOH/gIgNpbyxfNN5XxABqS/LXDasf7+WekiPyCTSQCvV36JQAi6m2J5Jhz8kWIECvwCQLK1lq+qHQOgAMh+QMgR3pUjvi5fzkx2NztlQ2QNkG9u4qXhThPoOXK9Id7WkXE8wC+jGWzmLJYytiksjbprE3WUtjLa3cNEWIRIR41aW+K0NZkMvL8OzjZ/UvuykLyB4CT/O6fHz8+z9Sse2MTpZgWURfuHxo8XcWLQ2xweE0FzueXUktpa2F6MdM9v2Qxn7KYT2XJ+GzZle/wxXcs9T+X0+2D7ps3cKQfakH+3P2yTPSVIcCy5adIDLb3xrQCIEIn8EHgtyttf4iND+0QQCmZtpW6fG4p2/bEqYWXHRyfV8fPLjG1kCkhf8SA1ij0NsP2dujvgot6wJmZOrv1arIRR7R6A5O/Fjn+AvltDfltiskvKFriQlerV0pQ3j48MrqnwgaEOA+g9QC6fvd0Cnho+ccf/Ofr+UuUO6LcFoNNLaULAm0FacccgMl2xwGdG5z8q6+/NNJfIL+9bPmLxAB7eSig2NkXZWre0lXYhOJPIDxJKEQpAi2stxX/Qym+4iyfWoInpmGxyPNc0mzldyRyce5DmOMPgFLyrxB/mfzOMorKWpugr8PjTypyayI5+oIKGxNigyOQAPzK7WSBW5Tii85raQuOzsCJWVjIuAVgKdbNVGQTqZT3vvt6hDn+nPUvRPsL3sCyGCi3GOzqNb2+GxGRvx0aGQt+tnqIDY/AW+u89POkgSEFHwH3KZ9zaTg2A6cWSsvPdl4KCDPTC85HfHD+RvqLSe0mf6knsCIGRfc0RWF7t+c3dDHwR1U0LsQGRUV7a73086iX3s6HlOJG4HiQZyaXU39TU/MBj/06f8mvy/GLrqxYDFYyAoX7dvUKMY/8jgG/lUiOvqiKRobYgKjqQL2Xfp5vorhEKf4c0GxOl4MlUR7f+XIAMpksc/Oety4jJL87x28XrL1TDErSgQUxMEVx4SbPFxqI/HMiObajisaG2GBYNafueB07gd8QeB2wM1+eNZv4yRV/yKFlAQBoaYmzp39LxcGyRgv2wdrm+EvJX5QFUM6fS4cGo+PC5Jznt/1TUM9PDg0uVtjwEBsIteEW8B+vRQQGl+I9+57YcfOzf77vne9Lxzpd9+3evYm2Nmccav2Qv3aRftwEXsnxF0f7FSiHGHiSv/TZbFZxzxGTtOXxLSr+DVG37h8a1OYOQ2x81EwAivGeT/xN/NjWFxwWwbWeIBaLcMGF2zBWJg+cj+SvPMdfkRgUxQWmF+D+ExHP1gOfBfWW/UODa38sc4hzjqpiAOXwZ+9+R0qwP6a7lk5nOTU5TZjjd+T0y+T4cz/bmuccZao0KNjdYnFBr+85i29S8E+JkdGo300hNibqIgAACvlbpXhCd+3UqRnm51Oez55fOX5NWk85RUIjBg7RKK27NCjY35lhS5u3CAjyOoH/TCQPdFf4S4VY56ibACQTg4ugPPenP3bsFJmMu1Nu5Eh/dTl+t3fgFpLSDIHrfaJ4yuYlupv8PAF5kYhxd2Ik3EvwfEJdYgDFSCRH/11EXqa7Fo9H6e/fjGkaNWpM45Jfn+ZzRPZLxKB0LK9/1i8u4PYqLBvuGW9hJuVzHowirUR9ENSfJ4cuqe0XGqLhUDcPoAhvRamTugupVIYnnpjEtuyQ/AFz/GXjAsopJAUPImLYPGPrHF1xH09AiAnyMZT8v+HkaF8Vv3SIdYS6ewAAieToi0Xkq5ScMlxAPB5lz+5NfjvclkGjkd87x+8SgxLy+6f5SjIGWk/Az6so1GPZivsn2plcLHeAkDoK3LJ/aPAnFX4BIdYJ1sIDIJkY/IZS6n1e11OpDIcOn2RxKV1F7etrHX+JhXeUlZvgo5sS7BYWN/md74oYNldtmWJvx3y5b2QXyHcTydHbKvwSQqwTrIkHkEciOfoXIuK5U62IsG1bt8+5d040YppPN8GnPjn+YmKXeBnL92SNOGmjlbTZRFaasIwo9vIWEIKFaac5M5vl2PEZbLvsNIC/Usp+dzJxSThpaANhTQVgKDkmAp8S4S1+93V2tLBtW/dKcFCPRiS/JjofiPwaMXBlBDSBPYcYKAyWIu0smp0smR3Yhj61n1+UpZRCKcikM5w8dpKlhbJrNb6KUkP7E5d47hcZYn1hTQUA8iKg/lpE3u53XyRism1rFx0dzkMwG228n3/GSX6fdfwO78Cd49cIiXJcXyE/LJntLER7WDQ7ls9f9GilyrW1+P9qWUBsW3F24ixTp6fK/KbqXhQvTSYGx6v4okI0GNZcAPIYHhn9HZA/oEwcor2tma1bu4jFIjQq+Z0BOLfF9hADTXDPP8dfuNeSKPORXhYi3Z6WvqSVSkf8fHnh88LsApPjkyjb+7tQqCeUkhePJAYOVvGFhWggnDMBABgeGX0Nis8i4jvoF4GennY29bWXGRYEx3rI8VMUA8j/bEmU2dgWFs0utEcCOVvocPdLBECBcngC+SHB5PEJspqJWoXfXJ1EcWMyMXh/FV9ciAbBORUAgKGRsUtF8QWR0rMIdTBNg97eNnp62jCN6oXg3OX4nWk9nRjohwYgzEY3MxftWz3xvcqVyrVQKWzL5vSTp0gtek/ZVoqzoF6aTAz+sIovMEQD4JwLAMDQyFizwB9L7lz7ssw2TYOdO3poa9MfieWHxsjx68byDuEoIn/GaOJsfBeW4XUCUFHrVgjOMqEDEL+43PHM1ORZFud8t3ObVYqbk4mB71f4RYZoADSEAOSRSI5eD/L3Ilxc7l7DEPZdvC3wkKCx1/F7ewMLkW6mY9vLWn2/AJ/O5S+29uWemZ2aZX561u/ts0rJS5KJgR9U+IWGOMdYk4lAQZFMDN6p4Aql+EPAd6ca21YsLHi7p8Wof47fSX7dFF1bQ/78ZCE9+WejW5iO7whAflXyz7aLPxeu28X3KIUquq/0c+kzrZ2ttHV3+H3D7SJ8dTg59pwKv9QQ5xgN5QEUIzEy1i+oj4IM4dHO/j2baG31d4vXZ45fMR3bxkLU/2DfagJ8QZ8pHgrkvYWl+UXmzs74tIcphBuSQwP3VfgFhzhHaFgByGM4OfosRH6Ipq0D+7YRiXivH6gf+eub45+LbmY25n2cenUBvjy5deIQ/Jn0YspXBECdxJbn7R8OU4TrAQ01BNBDnkTDZcMQzIrIr6iG/OIiaH3X8S+ZHcxG9UepF9z8Ure/1OX3+BzY/fd/JhKP0dLV7vOdyRYM9Y3hcNfhdYF1IABcoCuMx6Ke7ku9JvisEF+VEYOSsbx+AQ9FMYDiHP9UfKdrzF8gPFpyu/75CgK+gqAXh1LBicSiNHe0+Xx3skeJ+urQyEG/wEGIBsC6FYBoTG/963lQh0sMHBa8NJDnv47ftZcfiqn4TpSU/l4r+XktofWCENTCu6y9RgS8PpuxKPE25zTt4r+DXCHK/lJiZCzca7CB0fgCoOjXFcei7l1tapPjz1v5UlK7xKCE/O4cv36Cj26zz1zdC2Y3abNgVUtcfB8L72nty1p43ELh8R6vZ8xYlGiL91GDIvJCFJ+q8I8QYg3R+AIg7NIVF3sAjbWOX7Mnn9aLKJAfYCaW20E90NjeRW7Ki0MAl9/1OYDwmLEokSbvTIwIb0wkR/9nhX+MEGuE9SAA2mBSdDkA2Lg5fkecwBEDKBaM+WgvlkRc4/zy4/ng5HYReOUfFQuCnW9jkQgYUR9PX+SPEiOj2n0hQ5xbNL4AoLbrSqNRr2Owq3X7nWPyoDl+3XMaT8A5FFgRFpiNbiohvlewrrz7HzzAV7n77ycICjMeQ0zPuIwpcPvwyOgzKvzjhKgz1oEAoE2I6/P/tcrxu1N4OSvvJwalE3ycVr8QFCwVlkWznSwRfwtfh3Se+zMVu//OZ4x4DAzP3Ew78PXhkQO/VOEfKUQd0dACkBgZi4B06a5FStYANEKO38Yvx+81DJg3u8pYYaoQBE2Az8PaV+7++4uNRP02GpVulPGN4eSByyr8Y4WoExpaAAR60bTRNAUJcLagN4oj+0VRe6UZu7sseLE7HzzHX1pX/h0wb3T4kzuIhV9FOs9dH8EFwc5/pvAZUL7xAPpAvjm8f3RfFX+4EDVGQwuAUsp9vDBgrow11yLHr0vrBc/xu8lf8CCWpAVbSUAL7x2sq22Az19sdO9xCQJgm6b3X0dkqxK+OZwc3V3FHzBEDdHQAgBoBcAwhLXL8TvTepXl+Iu9Cqe3sCitZcfZ1Y3nvV1+7/G8UxDQk1vzuVhwVtqGYPvsTygiu4FvDSdHvRc9hKg7GlwARDuVtPLdgILn+L3d9+py/H579S9JcxXpPDzJXWmAL6i193rG+3NOCCwgu/yb6/+8crFCvj6cHNXGeULUHw0uAGinmRmekWYdvHL8Spvjdx+3XV2OH62wlGYMUsTLj+drZO0rdf8Lnz0mGQUUhKyCrI+zJsKVoL46nBz1nlccom5odAHQ7vkVYEu8Zfjl+HUTfHQkdrr0Oi/CneN3P1f0HmxQkFbR8uN5T0GoIFhX7KIHcv+DW3s/4cl7Ahlbkbb9VMB4NvDFRHLU59TSEPVAgwuA0gtAIA9gtTn+UhKj9Q40GQHl9DLcQwFRCotIYUZdPlhXxtr7ka5ewT5XELKMIGjnEChF2lKkLZ/Th0ReAnx6eP+Bht+jYiOh0RVXK1BCuT5SPAbPW11dNL74Z1VC0GKL7haS0oBgcd1uz8AhJMv12BioZXFQFNxsKIhC8TUUKPzKlz8vXyNv8at8xrt8+XNFz+TKl5bHAjGPfRxF5I3L+z+8v8wfOESN0OAeQFmma+Am/1rm+L2Ci84goU1RlH1VAb5aWfjKAnxesYZyXsFCxiKd9fMEeF8iOfbuajpLiMqxwQTAI/ruFAPHmNxtsZ0pQv343jvHrws4Fr8vd70ScvuRrnhF4FoG+JzktjVtK/2cE7j5dJaMjwiI8OdDIwdftYp+EyIgGlwARHs0zbKTWVJSlxy/g7SlYlDqVTi9hZJ6Vd7rKPZGrBoH+HwsfB0CfCrvCQQUhNKJTjYzS2ky3jEBw1DqnxMjY1fXqieF0KPBBYC0rlCV8L8xc/zlMgYRla1TgA89iX3fU3mAr7y193smt6379EKKrJcICC0C/55Iju6tVWcK4UajC4B243+1ogCNm+P3SgXm4wsx0gHI7THeXmNr7/887vcFFB7LtpmaX8KyPT2BLcB/JkbCiUL1QqMLwLyu0LZzRGrUHL/7/AD3UMHEIqLSq7T2fsE+SsqDCYLGrS8jPJW7/8XPQ9ayOTu7hK2U7k+NiFwCfCkxEs4RqAcaXQDmdIW2rUvNeef4UU4xqG+O3+UZeAwxmtSii9x6onkE+JzkDmLhNe/RWnU/cvsE+Dzdfw8RsG1FOpvl7OxikWdXCkFuAP6yLj3sPEeDC4Ca1pValu22uiUBOA8x0JR5r+N3E1uf4/fKGHjFGwrvaWV+DdJ55YN19bPwHu9wPQOLqQxTc0uePUGQtyVGxt5R8y52nqPBBYDTukLLsuc6pdAAACAASURBVIsIWrDWBfJrxMAxBi+f49cFBd3E1pNft1WYu03tMucmcQUBvkAWPqCH4BWsqzbAV1YcNMIzu7DEzLy3CACfSCTHnlfrTnY+o6EFQMEZ8pG+IlhWYQxfIJ6O1M4cf2mZk7S1yvE7PQFn6jH/TI9Mr2E6TxNQrCLiHzTAF9T9L70fzswssLCkTf4gEEX4QmJkTLtTdIjK0dACMJIYzKI8vICsVUWOv8gTKENa/5mDzjiB3qNYERnnUGD5nmZJ0cLSGgX49OQO5v5r1iqUs/A+GYxygjBxZpZ0RjsFBMllBv41MTLqt/dYiIBoaAEAQNQJXXEmmy215p5j7tXn+P2GAV5He+uGCrrA5SbjtN7CV0Duytz/MgE+H0Eo7/4Hs/blhMeyFeOnZrA85ggIPBPFJ+rT4c4vNLwAKEQvAGlLQ0i9S7/WOX59KrJUfPLBx23m6VIXvSL3v0yArwLSBXP/PaYO+wb7KPrsIQ7O99mKdCbL+KlplPJMD74tMTI6XJ9ed/6g4QUA1GFdaTpjFcjkTOu5lvdqPAGXxXYT25kRCJrjd3kCOq9iuZ5uY5ZWFiq38IHSeX7kJth4voJ0nqe196i73Gao84tpJs9qM8GQ2xbi7xPJ0Yvr0OnOG6wDAeCQrjCdseqe4/ea518iDp5DjILwuLwKxz17IieLLDylRAhEaH2Ar3IL70Fil4UPYNU1AT6nN+MrDsv/Pz01x8zcokfXkHaQkURyLIwHVImGFwBBHtWVL6XtEuI3Wo7fa9YgjvejbPqjJzHJ1jGd50e6ygN81R9NrnlH0TNe4nB8YopUOqPvH8IvAR+tT+/b+Gh4AVBKjenKl1LuFXblc/xFxPOz2DXI8bsyBpqhQr7emGTojz7ptuoVjOcrDfDVJp2HL7n1dfs/oxMEy7I5Mn5meQq4GyK8O5EcfVF9euDGRsMLAPAIKFdOKGMprKyO/HrSVmuxq83xu8nvH3y8JH4MA6tqa19KutJgXaUBvupm81Vm7YO4/8XPLC6lOTFx1quPGAL/MJwc1W4jH8IbDS8AycRgWinRegELKatGOX6NxVaaoYCT/EozFHC9S5MRUMXikLveLCn2xU5oSEcpKWrq/tcqnefOYNTjoJNTZ+eYmlnQdxSRXSB/UZ9euHHR8AKwjAd0hQtLtc3xl0sXVprjD5YuLNR7edMR4pLSkru8+6/7rAko+ln4Ihe9GkEo7/4H9xC8Ph85ccpzkhDCGxLJsZvq0QE3KtaJAKh7daVzS+7ZfqvJ8TuHCn4WO0iOv+Q9PkOF/L+YkeXpLYc8CO2xDiCoha8inadLNfo/g5vcZS08nu/RPZ/JWhw+NolS2niACPzNcHKstU4dccNhXQiACD/Vlc8ullrj+uf4NelCnVehrUfvrTjbeHHsSXZEzwS08B6W1Muq1z3ApxGKCi28Nq7hqHt6dpGJ0zMenYV+4Pdr3Qc3KtaFAAA/A1x5oIwFqbTbWq9djl/jVbju8ZiHgEcbRfHc9oNEyHi4/N6z8Vaf36/E2vuRG29xCPBMkKnQR0+cZimlTw0q4bcSydFL69cdNw7WhQDsHxpcAHWf7tr0gt6ir02Ov7J0obaNyt3GDmOJ69oP1iGdp7HqAYJ1vhZ+FdbeT3jKeQhZy+LQ0QmUZiQgEAP+LrE/3EWoHNaFAACg+J6ueHqhEXP85dOF2oxBURsvbj7Jpc0n9BY+YIDv3Kfz0D7jT27HrEZN3flnzk7Pc+qMfiggIs9F5CN16YsbCOtHAIQ7dcVnF6nAYuuJXe8cv3YegnK8R9PG6zsfYWt0qryFr9j9d6wD8LDCfs9UOpvP3/33t/ZO97+47kNHJ7xXDQrvTSTHfqU+HXJjYN0IgFJ8F+XeJThrCbNLaMf3jZLjdwqLK/jo0cYIFr/S8yBtxpIPuf1d9KAeQn3TeR7rADze4/WMThBSqQxPHJv06jaGiPpMIjkabiDigXUjAMnE4DzCXbprp+elyJ1vzBx/6ZDDITw+bWwzU7ym737iktZb+1Wl84Jt3xU4wBcgBVjW2pfJYOieOTp+mjNnZz16jvQi/Et48rAe60YAABT8h6781Jw0ZI7fTf4ywceiNhbXuyk6xy2b7idC1sfCVxPgq5WFd3/WW3gPq17G5fcWh8Lnhx85xlLKaysxuRbhQ/Xplesb600AvpL7XykWMgbzKfEgfznSVmGxXfWUCT7q5iE4xMnZRqf3sjM+RWJLQQRqG+DTB+v8LXw1Ab7ywuMtCAVPQCcO6XSWh0aPei8YQj6QSI5eW6++uV6xrgRgZGjgcQX3665NzBkOl1ofbXfn+PUxgEpz/J7BR695CARoY/EEJBT98TO8dsu9RMUtAqsL8FVu7csJj78geCxBDiA8fh7C1PQ8jx1+0qv7RBD+eTg51lH7nrl+sa4EAEDgi7ry8dkIKHeOXxu4q0OO38ujKDsPQenIrwk+Lt/T33yWN2+7h2Yj5Sbrqt1//SSjSgN8q7f2bnIXPmumDhf9O3z0JKc8ZgkK0g+EC4aKsO4EAJsk4Mr7pCyDMwtG1aRdyxy/Pv7gHipog4/Y7IpP8evb76bDXPIhA2ti7VeXzvPOYAQXhNLPtq14cPQJzw1EEN44PDL6ijr1znUHOdcNqAbDydHvIfJcZ/mW1jRP3TLvIL+tdd9LSVtKNneO32nBdRbbi7R5YjvqLqnHo41Fv4POWzmbaeLTR5/GyVQLkLfeAAVylXxWoJZ/RqlcLdpnCp6A1zPe5cv1VPkMeVEAz/KVupTyfGZTbwdPv/JCRLRd/CTKfsr+xCXaLefPJ6w/DwBAyWd1xRPzUVJZPCfvlBCrFjl+XTpQY7H1ab7SNurJ75/S7I0u8M7dP6a/6ayP+18+WOc35q5dOk9j4YtTiwEtvHdKs/S+k5NTHDl+yqsHbVHIX9WhZ647rE8BEEbQnBuoEI7OxFmzHL8vaQsxADf5HcFHVz2a4GPJPfkJRjatZop37P4pl7c9WYd0HqVk8yVx4Zmq03llntGvjSh9X3F9D48dYd7jqDERSSSSoy+vXyddH1iXArA/MTCPks/rrh2ZacK20VvsBszxlw45qksXxowsv7brXq7rOawld44Y1QT4fCy8jxVeseo1DvAFE4TC50zG4olDD6IJGeUg8tfDydGuOnTRdYN1KQAASvgrNH/ZjG1wbDa+rnL81aQLnb+Lic3Qtl8wtPUhRNmBye1lhbVWvaIAn584VGvt/YRHv2GKkRnn0s7/0vYhgR0If1yvProesG4FIDk0cADUN3TXHp9uRan8GFxDWlWJxV6bHH+5dKEX+YuHB6C4oe8w7+y/m7hkPNx/Alv7yt1/Hbmpwv13P1PO2nvV3RxNc2XPl2mPTHj0JLlteGT02bXun+sF61YAAFB8TFe8aJkcnWvWu9lBc/yeFrt+Of7SoYo+TuEiv9NjQXF5+wS/c9EP2Byb9yVd5e6/JiZQs/x+MOEpLwhFQU9b0d93CkMyPLPvc4DSdRcD5O8SI+fnWoF1LQD7E4PfRnG37trBqfaVWEA9jvYu9RZUzXL8+rrdZV7kz5fvbJ7l9/d9n6e0TfgH+Gpq7X0svOa04PKC4H1oid8wI3+fiM3zBh/DVtDXdJAL2r7v1ZWuAH675h10HWBdCwAASv2hrnjJMnl8ptVFWmdGwHdJsJfFLiGePhXoTBe6hhhFwuN5/LgX0T3KKBIqsGmLpHjfRT/hps2PBSd0oHQeZZ+pVTrP19p7ZDryAnfLM+9ne/c0tgJbwWVd/0bc8JglqOR3EyOje2rfQRsb614A9g8P3uHpBUx3krIMz8Cdd46/cotd6xy/H/kLolXs2TiEavleUyzeuOsh3nXBPcSNrIZ0lQf4VpfO897d2NvCl2YwbrrsABdumnS3cfmZ1liK257/I2555gPLQ4Kc8x8xFrisWzuTHIRWlHy89j20sbEuZwI6kUiOvkhEtAHB/rYZnt4zWSCtJ6kUxZ6APmNQuMfbMvul+fLBRz3Ji70OnGWadnnGBjzuPbbQxp8cvIpji23kLqvclWXvIUeUHFtUybVcufuZ/H2lz3jVtVJe5TMst2Fg6wSfSHyFx0918/OjWzl+toOlrEl7PMXeTad5av9xYpHssrjlUkV5L8BWwg8n38WplHbPUIXixv2JAW1f2ojYEAIAkEiOfkNENOfDKa7fcoze+KJvjt+LZJWQVucJlAwFnKQsqUef5quY/Lrfsah80TL568eu5LundniQu+izHyGrfMZdvvwsxeJQ/plPvvFL7OyZXiF1MclXiK8hv61gLruZ7538XWyimt7CmMAV+4cG9JsLbDCs+yFAHgLvUaA5Mka498xmULiJESDH70/+fI5fPx244FWsLsevj01UTn5B0WJm+J/77ua3LriXmGRr5P4XuehlnomZGcCuOJ3nrOunh3a6yK+KyY+G/OSGAs3mBP1teiMvMAC8u7a9s3GxYQRgf2Lw56LUp3TXpjNxRme6S4gbNMevJ+K5yfHrBSY4+Yt/1xu3HOYvr7yTPc3TDqJR13Tejs4p3nXdD1AqLwKUjQfoAnyPTfQUSO1r9XPkX3ZQVsr6W79Gk6FfC6RQH0yMjG6tbQ9tTGwYAchBPohCO+Pj4eleptMxzm2OX606x+8cfjg9hJIhg6u8eI6BTX/LNH/z1G/zyu2PgnP2oI8V9hYEjwBf0edDpzt52eUHeMdzf+xr4csJwvRCbIX8tg/51TL5bcd9ImkuatcHBAXpQPFHte2bjYkNJQD7EwNnFeq9ums2Bj8+swPlHAqUWGwvi1urHL/tS95qrXlJnMFB8kKaURODQBE3srzzwvv52OU/oC+6UEQ2gll4TTrPTwQyWYO7Ht/N66++j/e+6HsYYgXb3djxnpZ4ypf8apn8bm+AFeHoi99HV/RhbV8SkTcmRsaeXtMO2oDYUAIAkEwMfg6lvq67NpVp4v7prf4W24fYXoRzWWVVuF7bHH9xnTqi6wVFJ1pOz+MZPU/yT8/4Jr+8+bDD4pa36u75+viS+BsHLsBW8IorH+bPX/1VOpsWA+X3iz8PbpssJT6OOAAa8oNrKHBB2xcRLF13MQS14XcP2nACAGAjv64UruXCAGNzvRxbbF+nOX7vbIXnUEIjCl73dkRS/N6lP+XjV3yfLXHNNGLnv6ATdhzk/sGju1lIR7AVPH3PcT775i/xnAsOl4iHnyB0Ni9y3eChEqu/Qvw8+R1W30n8/H1N5jhbmrSHTgFyTWJkdKiWfbPRsCEFYCQxcATPSK7wwzN7mMvGvC220hBEaSy6i/ylxEdzT34dv9s9DxYbqIj8ut/Dw0soFqRr+sYZedbXeM3ORxH8g3VOQSgVB/0zixmDux7blSMtQk/rIh991bf441d/g31bJn2FpyWW5v0v+x5NsYxHALCU/GqZ/O5hgKxc39F8B6bMe/QW/ng4OdpU0w7aQDDPdQPqhYf+9a/uv+w177xMBNeMDxuD8VQ7F7acwvSw1k7S6jyBkqGA1hMoFhYPS1wpoZ1tq8TD8PE8nGVxsXhu3wmu6R3n4dkuJhebUMvP50iVY5ZSCgX68twFx+fctVjE4rn7jpSQcnv3DDdfeZCr+o/THEuTtQyWMiaGKLZ2znL9pYd5z813sbtvytOil8YAdBmBZZktEg7IIKSZyV6m6UnSpZDFh/71rzwXEqxnbJiJQDok9o91IdwnuTPjXdgZP8sLeg5iiIc7r5s5WEI2vzRf4XoQ9xyfskoJXSn5dW0tfs5W8H9P7uYvRi/n1HxLwSJDhYKgyF1SbOuc5Ytv+6IrgFdqzQuTd4pdeV1QL3+fctTnRX7n85ZtcGD2Q6Tsbe6OophVMJBMDIyvtk82GjbkECCP5PDAFKhbwX2mIMCxVDc/md7jsIJFrrkH+Rs9x6/zEPyHHX6BUIUpNrdsOcTXX/TvvPUZ99AUSQdw//3jAcfPtq3EAbxz+Q6Ljjf5S2MAHpF/J/kpEh5stjf9q74jCe2g/r/a9MrGwoYWAIBkYvBupXiX1/XRha08OLsdHKT2m+CD5p78UCHIOD4IoZ2CEIz8mvSfbg9EjXAFEaq2tOJ/bDvAN187wuuueoC4kfEM1vmtIsw/M70Yy72tjEX3duVBKQ2pHfep5fvc7ygdLrRGfkGb+Qt9RxF5Q2L/2NNW3yMbCxteAACSiYG/V4q/9bp+9+wexua36i26g0ROK0nJPd7krdaa69ribc3LE7pi8jvaRFbYdkr4vaf8jK+//fO85Vn30RbzO71YLw6CTWs87SYlwSx6OVKXeg36+9zvEDbH/xU0aUEBE0P979r0yMbBeSEAACLqXaD0m8Mh3DVzEY8tboJisgXK8WvShQHc8xKSa+vUWXOHmKzCmut+p7LkX2kvRE7H2TNu8J6r7+Fbv3U7H7rpe1yx48mAU3rhufueIB7NakgppaREQ3wcpHbcV+o1uMnvN9yIyJN0RvTxPkGel0iOvnL1vbFxsKGDgE4Mj4x2gnwfuFx3XVC8oPMXXNT8pNYlZ2UYUIWLvxIb8H62YkJ71bHKOEK5e/PfVZ6OSz1p5vrSWAYcOdPOt0b7+eFjO3jweB9zS7kVd3niN0UzvOCSQ/zmC++hOZYpIWWOkOJpzQtl4hIOfQBQXMTXewylAcSMauXI4h9g0+rqIwoeFLhy/9CAWm1/bAScVwIAkBgZ2yXwQ2Cn7rqguKHzIQaaxint/KUuvjtj4EHyKghdrXteStLqyF/8/nLkL5SDFbGZ3pJmvs0qiqzDiek2Ts60ksoatDel2NUzTcS0Syx6gZRByO++Tx8DEI93uO9zCgfAVOYGTmdu8epG1+wfGvhhdT2wsXDeDAHySA4NHLXhxSgmddcVwrenL+MXCztX3PJg237XLti2WvLr3HtXm0rK9cMOL1FxegqgiGSh93iUzUejRFI5UgFs7Zjn8p0TPG3Pk1y4+ewK+fP+gx/59QHAwn16V14XA9CTXxdnyKMz8l2i4rWTsLq52v7XaDjvBABgZGjggBJuVMp9uhDkuvd3Zy/hnrkLcj1ESyj3/Hs05FuNNa9dELF0arErtqBtKxryg5v8pR5B84Kw64kIm06aGFn3fHw9KfMt0RAf930KP3e+KI7geo9TOERLfgARi87It7X9R3kMIdcjzksBAEgODdwLciOaI8ZyEH4yv49vz1yBUsUnDVWW49dZ49W4597WvLocv6dQBbT8rv8rhSjonhYuOmyw+TQYlpc1LyK/h0Uuvs+T+CXPi0Y40AiHN/nziBpaJxGUJjiwTnHeCgBAMjHwY6XkxcBZr3seXtrFl6euZsmO4Brfr9I9r4z8TvfcuVBIZ/nLtFUjCrkyNCQv4xE43gsKUym2nIWnPKHYflphWkpL/vKuvGi8Bp0rr1/+6xaOUpHQQakIZzIv8+oWnqeOrjec1wIAkEwM/FQpXqjQbyQCcCyzif1nruNUtqMu1nxlSLHWOX6PDILWspfzCFaew1WfacP2acXTjthceMqmOV3GoqtiYvuv6S+x6I77fIcbypv8ALPWM0nZe7wu/6Bsx1onOO8FACCZGLhXKa5Fcdjrnhm7leTZ6/jF0m6tNV9NsI1GyvGDuxwCegTlxAQ2zyl+6YTNlSctNs3lWKh35Sl8O0EtuoP85YYbfsjYW7wvCi9KJEdj/jWsD5x3aUA/JJJj24H/EMF3yucl8Sd4cds9xCTjIKn3gprVuOeuMXYQD8OL6GXuBY0AKHATHC3Bcf3++bI8cUvuIisw0SSMN8PpmJAlb+H1a/rdnoB7+a/XCsCV6yrfIm/Y6as5lH2Tzx3q3xXckhwazJSpqqERCoADw/sPtCLyeUR8z47vNOa4uf3H7IqcpBJCB7bmviStjvzV5vj11l1X7vYK8siTX638LK6yrAiTcZiMCZNRmDODkbqY2H7Lf4uFxIm4bdBpRejOxOnLxolbMb4WGeKouc+7Eyi+rODWZGJg3YpAKAAaJJIHDBH5I5D/ic93JCie0XSA57U8QFQyrLU11xLaJTK1TfNV4hHkkRuLO2vTC0IuNpD7vGQIZyIwFVFMmzBtKuYNsDQW3Yv8yiESTbZBq23QYpu02RHashHa7AgR2yzcu/wtZVSUb0Vv5bh5oWdfUfAllEokE4OaLekbH6EA+GB4/9irMfgs0OZ3X5cxy02tP2Jv9ERd3XNvohfmIwQbdqyG/MFEIY9i8pcMElTxnflsQJFsrXwu/dkCFg1YEFgyICWQIfcvT14UiDIwbSGiDKK2ELNN4soAtRx5UflvrujzyjyD/GchS5T/it7CuHmBdwdQ/Cuo4f3rUARCASiD4f1jlyhRSRG5wv9OxaWxQ7yw5W46jLk6WHPbo9zHm/AUBVzDCQia5quE/EXW3oP8atk915F95bcOIAxO650nsMoTPu8xFF9z3UfpM8t1Z4hyZ+wWTpr9Pn9+9QXgtetNBEIBCIBEcqxJhL8AbqPMdxYlwzXND/DspgeJkqmA/Gu1UAhXnVBJjl9XXuzYL//XSfLl78eP/Lbr5wL5g1zzt+wFwXAKQ4Hw3gKSJsb3469mwtzj/cdXKgm8bn9iULvNcCMiFIAKkBgZ+xVRfBKh7Kkx7TLP85vv4amxMUyx9Ln8WljzNU3z4Vsf+f9WSP4V6Sv+WRXeage4d2VJr48HUF4kSj0E5/8zxLir6VWcMnd7/+GV+hcFb0iuExEIBaBCDI+M9Sml/kZEPJeKFaPbmOb5TfdwZXQMQ6zqyL/KrEBtyO94PmCab0UaXORftsg+5NdeKyJynqxB3P9gIkGJ++8lAj9qeiVnIrs8/+ZKqc8r1BtGEpfYQfrIuUQoAFUiMTL2UuBvBLx7QhG6ZIZrmu7lqtgviEpm3eT4V01+pXlrkbXNi0Fhzz4n+b2vBRm/l1r5ymIEpf83Vj6niXF38ys4G9nh+fdWSn0OeHMyMdjQIhAKwCqQGBlrR6nfEeTdCIFmhrXIIlfFHuTZsQfoNGYqtuae5ZXm+D3J7yMKjnbmkSf1iqtfRHRdWTGhS1YxaH/WXKtw/O70AFzCsPKZAtk9PABr+XOGGPe2vJypyHbPv7VS6p+A/9bIIhAKQA0wPDI2AHwcuImA36mBxUDkEFfHHmAg8viyfQlO6EK5XZccvwIOWhfzC/sSxtVWFmjGwKadOTbLJLvlCBcbj9AlU4HJX5zjd5K95FoRIZ3kDzp+r9z993b7Xf9fEYE497f+CjMRzVbiK1D/qOC25FBjikAoADXEcHLsBuBjlJlK7ESHzPJL0Yd5evTnbDMn9ZN51jDHP2rt4/ZsgnHl17Fzde6SY1xl3MM1xg/plrMl5C9+SzHBvVN5xcKgfy7o+F0hzNLBk7KTDDGiaomt9hFMMjUhf7EIPNj2UmYj3nFhhfoHBbeNDA0qz5vOEUIBqDESyTEBXgn8gQi6o2Z8scWY5MrIAa6IHGCbeXLFwrs8AS35l8m+ioj+d7PX8s/ZYVSF68QMLJ5j/JBXmP9OB9Ol0uJB/trm+IUz9HFc9nBCdnNc+pmSXoq7uKky7LQfY481yg77USIq7UnsSkQgTZyH229mPuK9gEgpPq3g10cSjbWXYCgAdcJQckwE9WqE9wtS1THT3TLFZZExBsxHudg8RJMslRC22rG7V45/zLqYj2X+e8XkL0YL87zJ/AxXGD+va44/rWKMs4MTsptj5Ei/IO2B22mqDDutR9hjPcwW6xAo5SK2pSO/lycgTYy1v4SFyCbPdzaiCIQCsAZIJEdfBPLbIryYKpdgm2TZax7lIvNxLjYO0W8cIS4plwV3iQIE9gh+P/UBjqhCjlspxZF5m/EFi0Ur11maI0JnVNjUZNATF0TcXUiweYP5Oa6WH/mm+Zzk97p3kSZOso1xdjDOTsbZwSnZsiqhKkZcLbA7+xB7Mg/SYk8F8AD0QcKMxHm04yYWI32e71KKT6PUryeHG2M4EArAGmJ4/9iAMtRvCvI6oGs1dRnYbDfG6TeOsts4xm7jGNtlPJdirJj8iuP2dj6U/r2V+pVS3DWR4fiCd+wqbsDuNpOLO0zao6VkNLD4bfPP2COHA+f4l1QTk2xmgi1MsJUJtYUJtnFWeliTrqoUfdZR9mTupy9zqGS4Uc4DKBaBQx03shTt9XmN+hSKtzaCCIQCcA6QSI42A7eKyH8DrqVGG7MINn1ymh3GOFtlgq1ykj45xSbjFF1MYcoymTWi8P3sc/hM9o0rdZ1ctPjOk8FWuQqwr8Pkip4IRpFHsJMjvNf845U3pVWUadXJWXo4Qy9nVA9n6OEMfZxiE7N00Chdstmeoj91L1vSo+7hgQf580OGrDRxpPNFpNaBCDTGt30eY3hkrB/Ua0GGqONusyYWnTJNt5ylkxk6ZYZ2maWNeVpljoesp/Aj+1kr949OZXngbGXrWna0GFyzOVoyLNjLYyzSzAydLNDCGnc5W8EBlHpMhOeDdFRaQdyeZffSPWxOj1HYVah8sDAjTZzoeiHpaI9n3Y0gAqEANBCGR0YHFLwG5KUCz+Qcbtn28FSWBysUAIBnbYqyp82sQ4sCIa3gPhTfR7gL1F3JocFJgOHkaBx4McKtwMuhgogh0JI9zZ7Fu2jLPFlGBIwiTyDOye4byJQRAQVvHUmcGxEIBaBBkUiObRXhRuCXQb0AxDu8XAMoSjvD2HSW+89ULgC7Wg2es3mttstTx0B+qpT6CciPgZ8mEwNL5Z4aSo62isgrULwe4YUCwRRLKfpSo+yY/wlguaYKW67hgEFW4pzueT7ZaLdPtefOEwgFYB1gODkqCE9RcD3I81DqWSKiPdqsVnhkJsu9pysXgJ0tBtdsqbkA2MBhpdQDCPejuBfhZ8mhwfHVVpxIju0Cfl3gLQjlZj4BEM9OsWf2v4hYs/pYQNF0YoucJzDd8zysWOOJQCgA6xSJkbFdKJ4BPE3gaQhXANup8m/q9ACqFYCn9kQY6IxU0wSALKgjSslB2/6zuQAAFK5JREFU4GFEPSzwMPCL/UODM9VWGgSJ5FgMUQngvwvy1HL3m/YSu6a/SSx7Nkf+IqtvIw5vwMCSOHO912LHvJM/SqlPAW9NruFwIBSADYREcqxbUE8BBhQyAOoCxLgAVL+At/mhNgIQEbh5V5wm06NbKSwlTAjqOIonEDmscluxHwb1KPB4MjGYruildUBi5MCviJLfQ/wncJn2IjvPfBXDWiyx+CsLh5RRMiSwJM5S33NQPiIA6lOg3rp/6JI1EYFQAM4T3PQ7f79j9uDdx8yWDszmNsymdsymFox4C2asmVjPNmLdhfns1QjAFd0RLukqWH+l1CklxhtFqZMI42Jzcv/wwLrYKCORPCCCvBbkTxA8l/w1p06weeo7LotfEIFCcNBGsCRGZtOzIdbp8/a1E4FQAM4TPPfW2y5JT0887HW987Lr6H1m4dDbg9NZ7qsgCLipyeD6raUpQKX4QDIx8NEqm9wQGE6OdirkEyK8yeuezae/RiQz5bL4tiMWsCIKEkdtfibSACIQngx0niAz8dglvjeswhQ0mfDsTaXkR/GYKPsT1dfaGNifGJxOJgberBRvRaH1XubjezTkN1YyA9ZKcNDI3WdlsU7eg53yC2vIbSB/PzxyoK5GOhSA8wTG0uwL/a7r5vQHgQDP2RyjOVJk+SGLqDftH75ksapKGxDJxMAnFepPddcWWi4kK9Eisi8TXxWyAlZRcNBCsCyL1MmfYQUQgURytG4iEArAeYBrn/YUMVOznkfd5mCUuJpB/c6n9kTY1OTsRuqD+4cGN8wBmkX4DLmUZAmUEWOx+cJl4hfmA1gr8YDc5CCrKDiYF4GFJ+8nm5r1eaXcBtRNBEIBOA9gLpx5NuC9gZ1hHIu2d/9zcVGQ3ra71eDijtKUn1L8W3JoUGsp1zuSicFHQP2n7tpi28VYYhYi/rohAIZrqJC1LGbGHyDjIwIichvIJ5f3mqgpQgE4D2Bk5n9VsintNcksqpZ47NXRjr57i8sjZXpGZ1R4Rl+UkpGDYhTUm1fb3gbHn+kKldlMqmWv1uLnfi7NDBTfl7Uszpx4iHRqzvOlIvwawqcSydGacjYUgA2OG/Y0x8TKDpkLZzFUqfcq6QWaTjz4H3d+eeSnRjR+vPiac3lvMaIGXLMlSsQoGffP2SKvTibqO2HnXGP/0OD3FHxfdy3dvg+LSEkGwCpaG+DyDFQhOJi1LCaP/4LUko8IwFuATw3XUARCAdjgUCKvRKSvJR7j4sgicWxQCnNukuaj99himL8LYBjGg8XP9caFZs0M+VzQL+oUCAXqLSND+zzTjBsJAh/RXjCbyLZdUOTuF1l8ZbiDg0VDAksJGctm/PgoS0vz3u/OLSH/1PBIbUQgFIANDhH5DYDu7k10GhZXROfY8uR9NJ14AGxr5M6Hjz0A8MW3Xz+GUgfzzxkiXNUXLYkFRA24dkuUrQ5lUIqPJ4cGv7AWv08jYP/QwDeU4ke6a6rjQiwjXhT9F00QsDBZqFCeE4d01uLo0TEWfUSAGopAKAAbGNfvbb0KuNYwTDo7c5tTzM1OMTd7BgULKPv9xfdLZuH/FP+8vcXkxTtiXNplcmVPhJfsjLO9xUF++DZQUs/5ABH1Qe0FI4pqv6CI1PohQPF8AWvFM8hdS1s2h448ysLigl8LaiICoQBsYAh8EJCeni0Yholt2zw5/kT+2h/deWjuSPH9TSd+9snI7Iknisu6YgaXd0cZ7Iy45vgr1M+B1yQTA+vqRNxaYP/Q4J2gvqG7ZnTsQUVatOnAkrkAyij9XDRcSFs2B488xnxZEZBPJ5JjVfM4FIANiuv3tl4NvFzEoLc3t131qVMnSGdSoHhYoT7mfKbl0Hfifd/4X1vM2QCrbBXfA25IDg2crXHT1xHkA2jmBYiYmF0XFy0I0rn7BrYjG5CfKZj/nLYUDz9xmNlF3/lUbwaqFoFQADYgrt/bYgj8b0D6+rYSiURJp1OcOjUOuS2E337noQXXqrv4kz9/SWThVNPe736QHWfvA+XeEFQpzijbfp9CvSA5NHi6/r9N42L/0MDPFHxRdy3augWJd5dY/FJ3vxAoLAQJ3TMJ01nFg4eOMLPgLQIivFmETw+PVC4CVS/cDtG4EOQ3gGdHIzH6+nJ7XExOHkcphVLqC3ceXvie9rns4hBAX4vJpmNfYPDkN5hs38exWUV2aR5lxj65tPWKd3/uN1+xYab4rhai1P9C5BVAvPSC0Nx7MYvH7sOGFYIXzwS0V8b9pYFA2xEktC3FfYeO8dS9u+hsafJqypsBGR4Ze8v+oYHAx5CFqwE3GG7Y2/oM4HtA0+7d+2hv7yKTSXPw4AOAsoBLvn1o/hHnc+956UW9AseB+GVPuYRoNArA0lKKA6NjAKmlzZft/ct//PKqd+HZaBhOjv4pIu/VXZuefIS56ZOl1l1D/hXC+wiBYUS46oLtdHmLAMBnUOrX9gc8kDQcAmwgvKC/9XIUdwBNvb1baW/PbTwxM3MGUCil7tCRH0DgDUC8o6NjhfwAJ09O5D/eHpJfDwUfQaknddfae/rBiK3k/PPuvuUY99tFWYCVe1amEufuSWUVP3rsJGcX9LM6l/Fm4FNB1w6EQ4A1xvX9LQJcBTwb2AdsBlqWL88hTIGMA4dFqTEFD995eMF3dt0Ne1vbQG6zlf2HItLW0dHNli27Vq4vLORml4nIl3XPv/elFxnAOwA29RV2sF1aWuLM2bMAGWBdr+uvJ5KJwZlEcvQDAv/ovGaYUTp6+5k4+bhmgpBR1jMomTWIQTqr+P6jE1x74RZ6Wj32XhT5byhlJZKjZbcXCwVgjXDD3lYDeDvwHqA/0EMiCNjX97ceEuFB4EGl1KMCZxRERGQPcA2KmxDVJiL09Gxm69Y9Jct7bXt5GbtSXhH7W4CL4vE47e2F3bLHx0/mP37mY3c8+lgFv+75B+GzKre56LOcl9o6NjE1c5r5hbmSiUElguAc9yuHUOQFQRlksvCdRye57qJN9HqIgIjcplAqkRx9m58IhDGANcANe1vjwP8FbgKIx5tobe0kHm8mEoliGLmRmGVZ2HaWTCZNOp0ilV4itbSI0kTjnWhr66Svbxutre6zLyYmjjE5eQKUuhuRm799aH4yf+03X9RvNsUjPxe4dPfunfT25DyAubl5Hnn0MRQsCAx87I5Hj9Xiu9jISIyMPk2Qn6LZZjyVWuSxww+TtaVs0K+cZ5A/3jVqiq8I5KD+zka9Y8RjZ6HQA1gLKPURRG6KRmNs376Xtja/raCcjyrS6SWWlhZJpRbIZNJYloWIEI3GaGpqoa2tk0gk6llHb+9WpqZOk8mknoFSYzfsbf3baMT8l68/MvMLU+StApfG43F6urtX3nn0WG5tkMDHQvIHQ3Jo8N7EyOjfLWdhShCPN9PTs43xUyfLuvt+Q4Vim52xFN99dJLnX7TJeziAvE0QG3C1CUIPoO64ob+lHZGTItJ84YWXE48XIrip1CLzczOk0otY2SwKMAyDaDROT89mX1JXikwmzfj4YWZnp1bKYlHj+GUXb+4UkbYLLuinsyPnPZw8OcGJ8ScB9ZjAZX96x2NlD9sIkUNiZLQT5GHBvZGobdscOHSQ+aV0oHG/0zPwomvUFJ5/8SZ6Wnw8AcX79ycG/sRZHApAnXF9f+tzRLirtbWD/v5BANLpFCfGDzM/Nw2AaZo0NbXS0txGS2s7LS1tGEZ9jtdaXJxnamqSublp9u5oo60lRndXF/39uWPBU6k0B0bHUEqpbNb+5f/9tce/WZeGbGAkRkZvFWREd21uYYGHDj3u3j7MVxC8yZ9HzDR4/sV9dHuJgFLzCrYkE4Mlq4zCIUD9EYHCnnvZTJrJyRM0N7XQ3dVHc3Mr0Wi86j35KkVzcyvNzS1EOY3JIvFYjF27CpsFHT9+AqUUqUz2K//n64dD8leB5NDgFxLJsTeIcLPzWltLC5t7+jh26oxv0K94F+Egdjpt2XznkVPeIiDSilLXAV8tLg4FoN4Q9TCINT8/Y46O3svmzTvYsWOv9lalFNlshkwmTTabJpPJYFkZLCuLZVlYloVSVn5GHyIGIoKIgWmaRCJRIpEo0WiMSCRGNBolEomtBBkBhAxRzmCQJhKJcMEFezHNnLcxNzfH9MwMlm0z9vjpm27c1/H/t3d+sW2dVQD/nevr/39jJ8vfNm3dKukmDWkCDYZA6oYEImEPMKnOA9IGiDGGYNKSjfGCBA/AEqZJjG0gBAIkkgDaw5rCyhgDTSA2HkandUtap1nXpl3aNYntxI59HR8enLZJ7fzr0ia09/fo77vXx/d+Pt/3nXO+c776wtH0z6/Jc7rOEPQBRd4UqLDKttbfxLl0lkzeWj76T42FQwZrnxguKIHP3FyP11l1BVlRr9xWAFeZl8ey7+/b6TuE8tn5+SJ+f7icETafZW4uR6EwRz6fo1DIY1l5VDc+DbxhOKgJB2ioC+JylneTbpeLXbt24PFcimCdOFt2DqRnBatYcgHP3rUzEHhpbOaJDRfqOqc/0X6ya2DkMYSfXt7mMAzaWhp5bfTUEh//4hVAeRSsf1UY8ph4ls/nVmHMtRXAteE7wK1Ay4kTw1jWitWvZhR91zSM0yJyWoQJ0zQmBaaAaWBWVfKKqEjJEHAj4gatQWkozmsT0FSwii1+n+vmcMDtiYa9uF0mUPYe1NbGaGyovzjzQ9kFmU5nUMAbbKa52cf4+HFRtPfOnf4jfxubPXT1Hs91iugzIAngE5c3RfxettdGSZ5NLfHxzy9y860Xr9PBx3bGqm4nVUmDVCQxsRXANeDlsezhfTt9bwnSYlkFFOZRRhHeFHjbEBkxncZRl+kYe/7I1MXY2/s+3mSaDqlFxLOwEywqWCAW5TRcDsAtQlgMo84Qcg7DcJsOo8U0je3ARZeD2+0mFosSi9ZgmpWv3bLKR/pLJcjMpgmHY1hWgbNnTxnAE8AtV/cpXX/072/XrsGR+xQOC/gvb9/TEOVMeo7pnFXh418vHrNsBPS5qhuPBX7RX6V0uu0FuEbcucP3FSCoIq+hHH75ndmK7I/379vmdpmOL5imcbdpGB9BaGWtteur4PF4CIWCRCJhfD4vssLrLpVKHHnrbYrFeabTc7yfmicUvolTp46jWsLnMRuG3k5NLHsDm2XpGhz5BvCTam2pXIGXRiawSnClf8eg2+STu2sJuJeZz5WzCnsHEm2TlzfZCmCL0N2x+/PAU7KoRn052MfEEAMEtKQoZWOhogiCYQiG4cA0HbicTlxuN16PB7/fV3WmX4l0OsPYOycolUqoKtOZPJOpHOlM/r3GWv+23742ccNl/tkIugaHRVVeEmFftfaRiQz/HU9d0b2bwh5ub43iWn7fX1Ll7oFEW9V6BrYC2AL0dO7+EvALQPx+H7FYlGAggNPpvGbuwQvk83lOn36P6dSlAamQ15L+C3hRhOf6Do6OXFOhrgMSg8OtghwGKsJAVZV/JN9nIrPiKb8lOES4tTnEnrrAimNElW8PVAkAuoCtADaZno54swpHBfG1NDdRVxdjK7yWfKHA1OQU06kUudySraMCB0Ee7h06dnSZy22qsBAb8OtqbbnCPIeGJ8gXVz/30RByc1tLDUHPyis8VXoHEm2PrNRn80faDU5PR7wbkd5IJMzOHa1V+5RKJWazWXLZHKqK2+3G7/ctObd/NbEsi0xmhnQ6w3QqtbAFIWcIDz1+IGnHCayDxODwHwS5p1rb6VSOV0aXz7IW87m4pSlEY2jFhCAAqqrfH0i0f3e1jrYXYPNpBwgGAxUNuVyOmZlZisUiXq+XmprImv70xWKRQsGiWCxSnC9etB0YhmA6TJxOJy6Xc4kbcCWcTifRaA3RaA2WZTF++gxTU9NeVX72yOf2xB8/cOzR9f3kGxn5msId1c4KNIW97KkLcOzcJfuw0yE0h73sqvVT63etuiVUJQ98fSDRXpGboKo065TeZoPp7og/LSIPNDU2EAqFyGaz5ObmqKmJ4PN6V9vfUSjkmZnNlq/L5ZibyzM/X7WMfQWmw4HL5cLtceNxu3F73Pi8Xlyu1Qfa+clJTp4cX4hI5HuPH0iuOtvYlEkMjtwFHJIqHh5V5dxMHmte8bschLxOjDXbgfQESqI/0f7vtcpiK4BNprszfq8gv1r82Y4d26mJRKr2LxaLpNMZ0pkMMzMzF/33i1FIg46J8p7CeWBOoKTgFahTYZsgrVzKRLQEh8PA5/URCPgJhoLLKqLpVIqxsRPlrxTu6T2QfG7dD+AGJTE4/ANBNqqgiqrqgKg+2N+1d11p2m0FsMl0d8QDiJySBetwKBQkvmvpWQGrWCQ1nWJqepqZmaUloxSdQOWfoK8CrwNv9B0cXZO/vqcjXo/ILoU2oA30FuA2QZaUEnc6ndREIsRi0SWhwwBnz51jfPwMKOcQ2nuHkhW+ZptKEoMjTpRXRLj9g91J36Gk3+rv2vv8lVxtK4AtQHdn/DbgR4J8avu2FmKxKKVSiVQqzfnJKTKZJbXjC8DfFf4MvNg3lDyy0fL0dO5uAL0DlbtU6BTYfqEtGAzQUF9PIFAObFNVRo+PkcnMAPywdyj52EbLc72yf3B4lwH/AYmu3vsyVKdU6BV4sn9/+xWnabcVwBahuzP+giCfbmluomAVOH9+avFevqDKi4IOqujzfUPHryxq5Arp6dz9UdAvK3QJ4gcIBPw0NTbi9/vIZrOMHE2i6Jm+odEK45bN8iQGRz4MPCewbdXOgMJJlKcRnhnY3/aBx4GtALYI3Z3xZwW5f/Fnqrwuwi8p6e96/zS66Uvrno54DfAgIg+xcLQ0EglzU10tx5LHL7gHg31DyeWL3NtUkBgYiQk8inAvUFfRQXlX4S+I/hGVvw4k2tZm5V0DtgLYInR3xL8oIr8BCgq/R3mq72Dy1c2WqxrdHfEgIg8LPAxc9F8qvNE3lPzQJor2f02if8RA2Au0IjjLWZzl2ECi7arVY7AVwBahuyO+Q+CbJXjyxwdH3139is2np3N3PegjIPtUOSFCT+9QMrnZctnY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj8DxbUpqpbHYFxAAAAAElFTkSuQmCCKAAAAIAAAAAAAQAAAQAgAAAAAAAACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASg/EIE4Ty/RB+6voMd97/CXDT/wZqyv8EZcP/A2O//wNjwP8EZsX/F3XO/+jOif/31IP/99OD//fTg//304P/99OD//fTg//304P/9tOD//bTg//204P/9tOD//bTg//204T/9tOE//bThP/204T/9tOE//bThP/204T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104X/9NOF//TThf/004X/9NOF//TThf/004X/89OF//PShf/w0ob/7tKI/+zRif/p0Yv/3bRn/9mpWf/ZqVn/2KlZpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASg/L0E4Ty/xOE8v8ThPL/E4Ty/xOE8v8ThPL/E4Ty/xOE8v8ThPL/zsWW//fUg//31IP/99OD//fTg//304P/99OD//fTg//304P/9tOD//bTg//204P/9tOD//bTg//204T/9tOE//bThP/204T/9tOE//bThP/204T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104X/9NOF//TThf/004X/9NOF//TThf/004X/9NOF//PThf/x0ob/7tKI/+jK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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKD8ToThPL/EoXy/wmc/v8Knf//Cp7//wqf//8Ln///D4/3/xOE8v91psL/+NSD//fUg//31IP/99SD//fUg//31IP/99SD//fTg//304P/99OD//fThf/31o3/99SI//bTg//204P/9tOD//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOF//TThf/004X/9NOF//PShP/dr1//2alZ/9mpWf/YqFhfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEYTxBBKD8e4ThPL/Dpn7/w2j//8Oo///DqT//w6l//8RlPj/E4Ty/2Gfy//41IL/+NSD//fUg//31IP/99SD//fUg//31IP/99eM//rov//99uj//v79///////+/v7//vnv//vszP/32pj/9tOD//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOF//TThf/004X/7ch5/9mpWf/ZqVn/2KlY79ioWAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoTxoROE8v8Skfb/Eaj//xGp//8Sqf//Eqr//xKa+f8ThPL/T5nU//jUgv/41IL/+NSD//fUg//31IP/99SD//nksf/+/Pf///////////////////////////////////////7+/f/768j/9tSF//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOF//TThf/it2j/2alZ/9mpWf/YqFiTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAThPFFE4Ty/xOF8v8Uqv7/Fa7//xWu//8Wr///FaH6/xOE8v89kt3/+NSC//jUgv/41IL/+NSD//fUg//76cD///7+///////////////////////////////////////////////////////88t3/9tSG//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/89CB/9mqWv/ZqVn/2alZ/tmoWC4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOE8gEShPHZE4Ty/xWb+P8Ys///GbT//xm0//8YqPv/E4Ty/y6N5P/41IL/+NSC//jUgv/41IL/+uKs///+/v/////////////////////////////////////////////////////////////////77cz/9tOD//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/owHH/2alZ/9mpWf/ZqFjJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOD8WQThPL/E4fy/xu0/f8cuf//Hbr//xuu/P8ThPL/I4np//jUgv/41IL/+NSC//jVh//++/P///////////////////////////////////////////////////////////////////////7+/v/43J3/9tOD//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//XThP/104T/9NKD/92wYP/ZqVn/2alZ/9ioWGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE4PxBBKD8dYThPL/F5f2/yC+//8gv///HrX8/xOE8v8ch+3/+NSC//jUgv/41IL/+uWz////////////////////////////+fn5/6Wlpf+CgoL/uLi4//7+/v////////////////////////////zv1P/204P/9tOD//bTg//204P/9tOE//bThP/204T/9tOE//bThP/204T/9tOE//bThP/104T/9dOE//XThP/104T/9dOE//XThP/uyHn/2alZ/9mpWf/ZqVjx2ahXDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoPxPxKE8vwThPL/G6b4/yTE//8huvz/E4Ty/xyH7f/41IL/+NSC//jUgv/88tn///////////////////////f39/86Ojr/AAAA/wAAAP8AAAD/ZmZm/////////////////////////////vz4//fThP/204P/9tOD//bTg//204P/9tOD//bThP/204T/9tOE//bThP/204T/9tOE//bThP/104T/9dOE//XThP/104T/9dOE/+K2Z//ZqVn/2alZ/9moWJYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoTxfROE8v8ThPL/HKX4/yO6/P8ThPL/JIrp//jUgv/41IL/+NSC//757///////////////////////l5eX/wAAAP8AAAD/AAAA/wAAAP8AAAD/y8vL////////////////////////////+NmU//fTg//204P/9tOD//bTg//204P/9tOD//bThP/204T/9tOE//bThP/204T/9tOE//bThP/104T/9dOE//XThP/xzX7/2alZ/9mpWf/ZqVn+2ahYKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEoPxjROE8v8ThPL/FYvz/xOE8v8/k9z/+NSC//jUgv/41IL//vz2//////////////////////9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP+goKD////////////////////////////425r/99OD//fTg//204P/9tOD//bTg//204P/9tOD//bThP/204T/9tOE//bThP/204T/9tOE//bThP/104T/9dOE/+S6av/ZqVn/2alZ/9moWbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJIbjcRiE7v8ThPL/E4Tx/6G1q//41IL/+NSC//jUgv/++e///////////////////////5qamv8AAAD/AAAA/wAAAP8AAAD/AAAA/87Ozv////////////////////////////jYk//304P/99OD//fTg//204P/9tOD//bTg//204P/9tOD//bThP/204T/9tOE//bThP/204T/9tOE//bThP/yzn//2apa/9mpWf/ZqVn/2ahYQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAuqNw3ISZmv+qoHz/7sZ1//nUgv/41IL/+NSC//zx2P//////////////////////+Pj4/0BAQP8AAAD/AAAA/wAAAP9ubm7////////////////////////////+/Pf/99OE//fTg//304P/99OD//fTg//204P/9tOD//bTg//204P/9tOD//bThP/204T/9tOE//bThP/204T/9tOE/+S5af/ZqVn/2alZ/9moWcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYqFmD2alZ/9mpWf/htGP/+dSC//nUgv/41IL/+uSy////////////////////////////+/v7/66urv+Li4v/wcHB//////////////////////////////////zv0//304P/99OD//fTg//304P/99OD//fTg//204P/9tOD//bTg//204P/9tOD//bThP/204T/9tOE//bThP/wynv/2alZ/9mpWf/ZqVn+2ahYQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANioWB7YqFj62alZ/9mpWf/xyXj/+dSC//nUgv/51Yb//vry///////////////////////////////////////////////////////////////////////+/v7/+Nyb//fUg//304P/99OD//fTg//304P/99OD//fTg//204P/9tOD//bTg//204P/9tOD//bThP/204T/9dKD/96xYf/ZqVn/2alZ/9mpWLMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANioWJ/ZqVn/2alZ/9+xYf/404H/+dSC//nUgv/64aj//v7+//////////////////////////////////////////////////////////////////vsyf/31IP/99SD//fUg//31IP/99OD//fTg//304P/99OD//fTg//304P/9tOD//bTg//204P/9tOD//bThP/nvW7/2alZ/9mpWf/YqFn22KlYIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2alYHtipWfXZqVn/2alZ/+i+bf/51IL/+dSC//nUgv/757r//v7+///////////////////////////////////////////////////////88dn/99SF//fUg//31IP/99SD//fUg//31IP/99OD//fTg//304P/99OD//fTg//304P/9tOD//bTg//204P/7cd3/9mpWf/ZqVn/2alZ/9mpWHUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2alYdNmpWf/ZqVn/2alZ/+/Gdf/51IL/+dSC//nUgv/74qz//vv1///////////////////////////////////////+/vz/++rD//jUhP/41IP/99SD//fUg//31IP/99SD//fUg//31IP/99OD//fTg//304P/99OD//fTg//304P/9tOD//DLe//aq1v/2alZ/9mpWf/ZqVi92alXAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYqFgC2KhYu9mpWf/ZqVn/2qpa//DIdv/51IL/+dSC//nUgv/51on/++e6//314//+/fr///////7+/f/9+Or/++vG//jak//41IL/+NSC//jUgv/41IP/99SD//fUg//31IP/99SD//fUg//31IP/99OD//fTg//304P/99OD//fTg//xynr/26xc/9mpWf/ZqVn/2alY4dmpVxYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYqFgT2KhY2dmpWf/ZqVn/2apa/+zDcv/51IL/+dSC//nUgv/51IL/+NSC//jUgv/41Yf/+NSD//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/41IP/99SD//fUg//31IP/99SD//fUg//31IP/99OD//fTg//304P/7cV1/9qqWv/ZqVn/2alZ/9moWO3ZqFgsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYqFgf2ahY39mpWf/ZqVn/2alZ/+S4aP/20X//+dSC//nUgv/51IL/+NSC//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/41IP/99SD//fUg//31IP/99SD//fUg//31IP/9NCA/+S5af/ZqVn/2alZ/9mpWf/ZqVns2KhYMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZqFgb2alY0NmpWf/ZqVn/2alZ/9usXP/rwXD/99KA//nUgv/51IL/+NSC//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/41IP/99SD//fUg//31IP/9dGA/+nAb//brFz/2alZ/9mpWf/ZqVn/2KhY2tipWSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADYqVgL2KlZoNmpWf7ZqVn/2alZ/9mpWf/brFz/57xr//LLef/404H/+NSC//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/41IL/+NSC//jUgv/20oH/7sd2/+S5aP/aq1r/2alZ/9mpWf/ZqVn/2alZ/tmpWafYqFgPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2KlYTtmpWd7ZqVn/2alZ/9mpWf/ZqVn/2alZ/9usXP/jtmb/6b5t/+zEc//vyHb/8Ml4//DJeP/vyHb/7cVz/+nAb//lumn/37Jh/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9moWNvZqFhOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2ahYB9ioWGzYqVne2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWNHYqFhh2ahYBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANioWALZqFlI2KhYodmpWOrZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn/2alZ/9mpWf/ZqVn92KhY0dioWInZqFg0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2alYAdipWCvYqVlf2KhZiNipWKXYqFi52KhZw9ipWcPYqFi62ahYqdioWI/YqFhu2alZRNmoWBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////////////////////////////////////////////////////////////+P//w//////8f/////////gf/wH/////8A/////////wAeAD/////+AH////////8AAAA//////AAf////////AAAAf/////wAD////////wAAAP/////4AAf///////mAAAP/////8AAD///////wAAAH//////AAA///////8AAAB//////gAAP///////AAAA//////wAAD///////wAAAH/////8AAA///////8AABB/////+AAAf///////wHA4P/////AAAP/////////8GB/////wAAH//////////ggP////4AAD//////////4IB////+AAB///////////AAP////AAA///////////wAB////wAAf//////////8AAf///4AAP///////////gAD///+AAH///////////4AAP//+AAD//////////+AAAAB/+AAB//////////4AAAAAA8AAA//////////wAAAAAAAAAAf/////////gAAAAAAAAAAP/////////gAAAAAAAAAAH/////////gAAAAAAAAAAD/////////gAAAAAAAAAAB/////////wAAAAAAAAAAA/////////wAAAAAAAAAAAf////////4AAAAAAAAAAAP////////8AAAAAAAAAAAH////////+AAAAAAAAAAAD/////////AAAAAAAAAAAB/////////gAAAAAAAAAAAf////////wAAAAAAAAAAAH////////4AAAAAAAAAAAB////////8AAAAAAAAAAAA////////+AAAAAAAAAAAAP////////gAAAAAAAAAAAH////////wAAAAAAAAAAAB////////4AAAAAAAAAAAA////////+AAAAAAAAAAAAP////////AAAAAAAAAAAAH////////wAAAAAAAAAAAD////////4AAAAAAAAAAAA////////+AAAAAAAAAAAAf////////AAAAAAAAAAAAH////////wAAAAAAAAAAAD////////8AAAAAAAAAAAB////////+AAAAAAAAAAAAf////////gAAAAAAAAAAAP////////4AAAAAAAAAAAH////////+AAAAAAAAAAAD/////////AAAAAAAAAAAA/////////wAAAAAAAAAAAf////////8AAAAAAAAAAAP/////////AAAAAAAAAAAD/////////wAAAAAAAAAAB/////////8AAAAAAAAAAA/////////+AAAAAAAAAAAP/////////gAAAAAAAAAAH/////////4AAAAAAAAAAD/////////+AAAAAAAAAAB//////////gAAAAAAAAAA//////////4AAAAAAAAAAf/////////+AAAAAAAAAAP//////////gAAAAAAAAAD//////////4AAAAAAAAAB//////////+AAAAAAAAAA///////////wAAAAAAAAAf//////////8AAAAAAAAAP///////////AAAAAAAAAH///////////wAAAAAAAAD///////////4AAAAAAAAB///////////4AAAAAAAAA///////////8AAAAAAAAAf//////////+AAAAAAAAAP///////////AAAAAAAAAH///////////gAAAAAAAAD///////////wAAAAAAAAB///////////4AAAAAAAAB///////////+AAAAAAAAA///////////+AAAAAAAAAf//////////+AAAAAAAAAP///////////AAAAAAAAAH///////////AAAAAAAAAB///////////AAAAAAAAAA///////////wAAAAAAAAAf//////////+AAAAAAAAAH///////////gAAAAAAAAD///////////4AAAAAAAAA///////////+AAAAAAAAAf///////////gAAAAAAAAH///////////4AAAAAAAAB////////////AAAAAAAAA////////////wAAAAAAAAP///////////8AAAAAAAAH////////////gAAAAAAAB////////////4AAAAAAAAf////////////AAAAAAAAP////////////4AAAAAAAD/////////////AAAAAAAB/////////////4AAAAAAAf/////////////AAAAAAAP/////////////wAAAAAAD/////////////8AAAAAAB//////////////gAAAAAAf/////////////4AAAAAAP//////////////AAAAAAD//////////////wAAAAAB//////////////+AAAAAA///////////////wAAAAAf//////////////+AAAAAP///////////////wAAAAH////////////////AAAAH////////////////4AAAD/////////////////gAAH//////////////////AAP//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////ygAAABgAAAAwAAAAAEAIAAAAAAAgJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////8f/4////+P//////8D/A////4D//////8AAA////4A//////8AAB////wAf/////8AAD////gAP/////gAAP////gAH/////gAAP////AAH/////gAAf///+AAH/////gAAP///+AAP/////wAEH///8AAf//////+GD///8AA////////CB///4AB////////AB///4AD////////gA///wAH////////gAf//wAP////////gAH//AAf///////wAAAH8AA///////8AAAAAAAB///////wAAAAAAAD///////AAAAAAAAH//////8AAAAAAAAP//////wAAAAAAAAf//////gAAAAAAAA///////AAAAAAAAB//////8AAAAAAAAD//////4AAAAAAAAD//////wAAAAAAAAD//////wAAAAAAAAH//////gAAAAAAAAH//////AAAAAAAAAP/////+AAAAAAAAAP/////+AAAAAAAAAf/////8AAAAAAAAAf/////8AAAAAAAAA//////4AAAAAAAAB//////4AAAAAAAAB//////wAAAAAAAAD//////wAAAAAAAAD//////wAAAAAAAAH//////gAAAAAAAAP//////gAAAAAAAAf//////gAAAAAAAAf//////gAAAAAAAA///////gAAAAAAAB///////gAAAAAAAB///////gAAAAAAAD///////AAAAAAAAH///////AAAAAAAAP///////AAAAAAAAf///////AAAAAAAAf///////AAAAAAAA////////AAAAAAAB////////AAAAAAAD////////gAAAAAAH////////gAAAAAAP////////gAAAAAAf///////+AAAAAAA////////8AAAAAAB////////4AAAAAAD////////wAAAAAAH////////gAAAAAAP////////AAAAAAAf////////AAAAAAB////////4AAAAAAD////////wAAAAAAD////////gAAAAAAH////////AAAAAAAP////////AAAAAAAP////////AAAAAAAf////////AAAAAAAf////////AAAAAAA/////////gAAAAAA/////////gAAAAAA/////////gAAAAAB/////////wAAAAAB/////////wAAAAAD/////////4AAAAAD/////////8AAAAAD/////////+AAAAAH/////////+AAAAAH//////////AAAAAP//////////AAAAAf//////////gAAAAf//////////gAAAA///////////wAAAB///////////4AAAD///////////8AAAH////////////AAAf////////////wAB/////////////+AP//////////////////////////////////////////////////////////////////////////8oAAAASAAAAJAAAAABACAAAAAAAGBUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////AAAA////5/8/////AAAA////4Pg///4PAAAA////4AA///wHAAAA////4AB///gDAAAA////gAH///ABAAAA////AAH///ABAAAA////AAH//+ABAAAA////gBD//+ADAAAA/////wB//8AHAAAA/////4A//4APAAAA/////4A//4AfAAAA/////8Af/wA/AAAA/////gAA/AB/AAAA////4AAAAAD/AAAA////gAAAAAH/AAAA///+AAAAAAP/AAAA///4AAAAAAf/AAAA///wAAAAAA//AAAA///gAAAAAB//AAAA//+AAAAAAD//AAAA//+AAAAAAD//AAAA//8AAAAAAD//AAAA//4AAAAAAD//AAAA//wAAAAAAH//AAAA//wAAAAAAP//AAAA//gAAAAAAP//AAAA//gAAAAAAf//AAAA//AAAAAAAf//AAAA//AAAAAAA///AAAA//AAAAAAB///AAAA/+AAAAAAB///AAAA/+AAAAAAD///AAAA/+AAAAAAH///AAAA/+AAAAAAH///AAAA/+AAAAAAP///AAAA/+AAAAAAf///AAAA/+AAAAAA////AAAA/+AAAAAB////AAAA/+AAAAAD////AAAA/+AAAAAD////AAAA/+AAAAAH////AAAA/+AAAAAP////AAAA/8AAAAAf////AAAA/4AAAAA/////AAAA/wAAAAB/////AAAA/gAAAAD/////AAAA/AAAAAP/////AAAA+AAAAAf/////AAAA4AAAAA//////AAAAwAAAAB//////AAAAgAAAAB//////AAAAgAAAAD//////AAAAgAAAAD//////AAAAwAAAAH//////AAAAwAAAAH//////AAAAwAAAAH//////AAAA4AAAAP//////AAAA4AAAAP//////AAAA8AAAAf//////AAAA+AAAAf//////AAAA+AAAA///////AAAA/AAAA///////AAAA/AAAB///////AAAA/gAAD///////AAAA/wAAH///////AAAA/4AAP///////AAAA/+AAf///////AAAA//gD////////AAAA////////////AAAA////////////AAAA////////////AAAAKAAAAEAAAACAAAAAAQAgAAAAAAAAQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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g//304P/99OD//bTg//204P/9tOD//bThP/204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//TThf/004X/9NOF//PThf/x0ob/37Vn/9moWOidekAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9uy0gPh/T/BJX//wWW//8KkPr/VJvS//fUg//31IP/99OD//fTg//304P/9tOD//bTg//204P/9tOD//bThP/204T/9dOE//XThP/104T/9dOE//XThP/104T/9NOE//TThf/004X/8M1//9mpWf/YqFh/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALVJoPEoTy+gyd/f8Mof//Dpr7/z+T3P/31IL/99SD//fUg//31IX/+eGr//vpw//66L7/99ua//bTg//204P/9tOE//bThP/104T/9dOE//XThP/104T/9dOE//XThP/004T/9NOF/+W8bf/YqVj7sopIGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABKE8bkSmvn/E6v//xSl/P8sjOX/+NSC//fUgv/42ZL//ffp//////////////////7+/v/77Mr/9tOE//bTg//204T/9tOE//XThP/104T/9dOE//XThP/104T/9dOE//TShP/brV3/2KhYsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASfeZQE4rz/xq1/v8asf3/Hofs//jUgv/41IP//fbn//////////////////////////////////rmuv/204P/9tOD//bThP/204T/9dOE//XThP/104T/9dOE//XThP/sxXb/2alZ/9ChVEsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkaBARKD8cQZoPj/Ibz9/xeF7//41IL/+d+k////////////ysrK/0lJSf+Hh4f////////////++vL/9tOD//bTg//204P/9tOE//bThP/204T/9dOE//XThP/104T/4LRk/9mpWOGKazcDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPcc8fEoPx4hqb9v8iier/+NSC//vnuv///////////0BAQP8AAAD/AAAA/9ra2v////////////fWjf/204P/9tOD//bTg//204T/9tOE//bThP/104T/8Mt8/9mpWf/ZqFh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADB1tBxakbr2k6ij//jUgv/65LP/////////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WIXYqVm52KhY19ipWeHYqFjY2KhYvtmoWJTRo1VWm3k/DQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////z/n//+f////Agf//gf///8AB//+A////AAP//wB///8AB//+AH///wAH//4Af///AAf//AB////+A//4AP////4B//gB/////wD/8AP/////AH/gB////+AAAYAP////AAAAAB////wAAAAAP///+AAAAAB////gAAAAAP///8AAAAAB////gAAAAAP///8AAAAAA////gAAAAAH///+AAAAAAf///wAAAAAD////AAAAAAP///4AAAAAB////gAAAAAH///8AAAAAA////wAAAAAH////AAAAAA////8AAAAAD////wAAAAAf////AAAAAD////4AAAAAP////gAAAAB////+AAAAAP////4AAAAB/////gAAAAP/////AAAAB/////4AAAAP/////AAAAB/////4AAAAP/////AAAAB/////4AAAAP////+AAAAB/////wAAAAP////+AAAAB/////4AAAAH/////gAAAA/////+AAAAD/////8AAAAf/////wAAAB//////AAAAH/////+AAAA//////8AAAD//////4AAAf//////gAAB///////AAAP//////8AAB///////4AAP///////4AB////////4Af//////////////////////////////////////ygAAAAwAAAAYAAAAAEAIAAAAAAAgCUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjSW9mI0dtbhQq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
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i download 'x5'>> </div> </div> </div> @@ <<doc>> 1- En copiant le code suivant dans la barre de recherche du wiki que vous voulez télécharger, le bouton de téléchargement devrait apparaître (à faire seulement si ce bouton de téléchargement n'est pas déjà proposé) ``` $:/snippets/download-wiki-button ``` 2- Cliquer sur le bouton "Télécharger le wiki complet". <<< {{$:/snippets/download-wiki-button}} Si le bouton ne fonctionne pas, sauvegardez avec ce lien: <a href="https://prolegomenes.github.io/learn/Learn2215117.html" download="Learn2215117.html" rel="noopener noreferrer">~http://prolegomenes.github.io/learn/Learn2215117.html</a> Votre navigateur peut vous demander d'accepter le téléchargement avant de l'exécuter. <<<
Chaque tiddler a un panneau d'informations additionnelles. Pour l'afficher, cliquez dans la barre d'outils du tiddler, sur l'icone{{$:/core/images/down-arrow}}, puis sur {{$:/core/images/info-button}} ''info'' dans la liste déroulante. Le panneau d'information comporte les onglets suivants : * ''Outils'' - propose des boutons pour diverses actions à effectuer sur un tiddler. Cocher la case en regard de chaque bouton l'ajoutera dans la barre d'outils du tiddler - Ceci affectera tous les tiddlers de votre wiki. * ''Références'', ''Étiqueté'', ''Liste'' et ''Listé'' - Listent différents types de tiddlers connexes. Voir [[Utiliser des liens pour naviguer entre les tiddlers|Using links to navigate between tiddlers]] * ''Champs'' - récapitule tous les [[champs|TiddlerFields]] du tiddler, hormis le champ ''text'' * ''Avancé'' - indique si le tiddler est [[shadow|ShadowTiddlers]]. S'il l'est, mentionne aussi quel plugin le génère et s'il a été remplacé par un tiddler ordinaire. Pour fermer le panneau d'information, cliquez n'importe où ailleurs.
I know a man named <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a3"/>, his first name is <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a1"/>, who has <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b2"/> wikis. Before long <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a1"/> had <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="b1"/> tiddlers. On average, Mr. <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a2"/> had <$macrocall $name="eval1" datatiddler="$:/sk/data" cell="c2"/> tiddlers per wiki. He made approximately £<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="d4"/> per hour for all his work. Here are some examples showing the eval version of the function. `<$macrocall $name="eval" datatiddler="$:/sk/data" cell="d4"/>` <$macrocall $name="eval" datatiddler="$:/sk/data" cell="d4"/> `<$macrocall $name="eval" datatiddler="$:/sk/data" cell="=!!d4*2"/>` <$macrocall $name="eval" datatiddler="$:/sk/data" cell="=!!d4*2"/> `<<eval =@ceil(12.7)>>` gives <<eval =@ceil(12.7)>> `<<eval =@ceil(12.6)*3.14 "" "" format:2>>` <<eval =@ceil(12.6)*3.14 "" "" format:2>>
!!Ace editor The popular [[JavaScript based editor Ace|https://github.com/ajaxorg/ace]] can be used as an editor for tiddlers. Please see `$:/plugins/innoq/ace` for details and implementation. http://www.innoq.com
<div class="attention"> Ce plugin n'est pas installé sur ce wiki </div> Voici la méthode à suivre pour afficher la date de dernière modification de votre wiki dans une bannière dans un coin de votre fenêtre (et un bel exemple de filtre): <div class="tw-admin-content"> # Installer le plugin Corner ribbon dans votre ~TiddlyWiki # Sauver ({{$:/core/images/save-button}}) et recharger ({{$:/core/images/refresh-button}}) votre wiki # Créer un nouveau tiddler nommé `$:/_MyRibbon` tagué [[$:/tags/PageControls]] et contenant le code suivant:<div> ``` <div class="github-fork-ribbon-wrapper right"> <div class="github-fork-ribbon" style="background-color:#DF4848;"> <$list filter="[!is[system]!has[draft.of]!sort[modified]limit[1]]"> <$link> <$view field="modified" format="date" template="DD mmm YYYY at 0hh:0mm"/> </$link> </$list> </div> </div> ``` </div> # Si désiré, changer la couleur de fond suivant votre préférence. # Vous pouvez aussi modifier la classe de positionnement de `right` vers `right-bottom` ## Si vous souhaitez voir la bannière apparaître en haut à gauche de l'écran il faut alors taguer le tiddler [[$:/tags/PageTemplate]] en remplacement du tag actuel [[$:/tags/PageControls]] et ensuite changer la classe de position à `left` <style> .tw-admin-content { margin:0 auto; width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: 1em; margin: auto .4em -.7em .5em; fill:crimson; } </style>
;A Guidebook for New Users @Eric Shulman *http://tiddlytools.github.io/InsideTW/ *https://github.com/ericshulman/InsideTiddlyWiki/blob/master/index.html
Les <<.def "Tiddlers d'apprentissage">> s'adressent directement aux lecteurs et les guident à travers un processus. Le lecteur est aussi bien un débutant qu'un utilisateur moyen. Ces tiddlers peuvent se subdiviser en<<:>> ;Bienvenue * Qu'est-ce que ~TiddlyWiki et pourquoi m'en soucier? * Démonstration des points clés et avantages * Questions fréquemment posées * Exemples de ~TiddlyWiki en action * Information sur le projet lui-même ;Tutoriel * Une présentation ordonnée de matériaux pour débutants * Chaque tiddler introduit une nouveauté ou un concept * Son contenu principal contient très peu de liens * Une section <<.word "En savoir plus">> accessible à la fin peut proposer des liens connexes ;Exercice * Accompagne un tiddler tutoriel * Solution obtenue sur demande ;Comment<<?>> * Une liste d'étapes numérotées pour effectuer une petite tâche spécifique * Concis, avec des liens vers les tiddlers référents si besoin * Toujours avec un préambule pour clarifier la nature de la tache ;Exemple * Accompagne un [[tiddler référence|Reference Tiddlers]] * Peut contenir explications et commentaires similaires * Reste indépendant pour préserver la sobriété du tiddler référence Les tiddlers d'apprentissage s'adressent directement au lecteur par l'emploie du mot vous. Ils peuvent être raisonnablement cordiaux. Mais ils évitent l'excès de langage académique, culturel, les références à l'actualité et les tentatives de l'humour,car ils peuvent dérouter ou même offenser le lectorat international. Ils évitent aussi de frustrer potentiellement le lecteur par des descriptions caractérisées de commodes ou faciles.
{{Intense||caption}}
!1- L'approche de Jed Carty Le ''système de commentaires'' [[IntenseDebate|https://www.intensedebate.com/]] est installé et paramétré mais il est désactivé. Il est actuellement mono thread. Pour le réactiver, il suffit de taguer le tiddler $:/IntenseDebate `$:/tags/RawMarkup` Explications et mode d'emploi sur le site [[OokTech|https://ooktech.com/jed/ExampleWikis/IntenseDebate%20Demo/]] !2- Leplugin de Bimlas Note importante du 14 Mrs 2019: Bimlas a créé un nouveau plugin d'intégration du système de commentaires [ext[Intense Debate|https://intensedebate.com/]]. On peut letélécharger ici : https://bimlas.gitlab.io/tw5-intensedebate/ Maintenant les commentaires apparaissent bien uniquement sous les tiddler où ils ont été écrits, ce qui signifie que chaque tiddler peut être commenté séparément. L'intégration n'est donc plus mono tread. [ext[Voir mon test sur le wiki de Bimlas|https://bimlas.gitlab.io/tw5-intensedebate/#Another%20tiddler]]
a step by step introduction to TiddlyWiki
JavaScript est un langage interprété par le navigateur. Le JavaScript est un langage « client », c'est-à-dire exécuté chez l'utilisateur lorsque la page Web est chargée. Il a pour but de dynamiser les sites Internet. Le JavaScript est un langage sensible à la casse (« case sensitive »). JavaScript est un langage objet : chaque objet possède des méthodes (ou fonctions), des propriétés et …. des objets. Dans une page Web, l'objet le plus élevé dans la hiérarchie est la fenêtre du navigateur : window. Cet objet window contient entre autres l'objet document qui lui même contient tous les objets contenus dans la page Web (paragraphes, formulaires, etc…). En plus de ces objets, il existe des objets créés par l'utilisateur. Les méthodes sont des fonctions qui permettent d'agir sur certaines propriétés de l'objet, les propriétés contiennent les paramètres d'un objet. Exemple d'un objet voiture : nous allons lui attribuer : des propriétés : la couleur, la marque, le numéro d'immatriculation ; : des méthodes : tourner(), avancer(), reculer(), changer la couleur() ; : des objets : les phares, les pneus. Pour résumer une méthode engendre une action, un verbe qualifie cette action, une propriété est généralement qualifiée par un nom. Dans l'exemple de la voiture une méthode permet de changer la couleur de la voiture, par contre aucune méthode ne nous autorise à changer la marque de cette voiture (ce qui entraînerait une modification des autres propriétés et éventuellement l'apparition ou la disparition de méthodes). Il en sera ainsi également avec nos objets JavaScript : nous pourrons accéder voire modifier les propriétés (couleur du texte, style de la fonte) des objets grâce aux méthodes. Tout irait pour le mieux si ces navigateurs utilisaient pour un même objet, les mêmes propriétés et les mêmes méthodes pour les définir. Ce qui est loin d'être le cas. Par ailleurs, Internet Explorer interprète également le JScript, un JavaScript créé par Microsoft (~ActiveX). Nous n'aborderons pas ce langage spécifique à IE. Le JavaScript est difficilement compatible entre les différents navigateurs. Il faut toujours se décider jusqu'à quel point ça doit être compatible. Tout le monde n'a pas JavaScript : Il faut toujours que la page contienne l'ensemble de l'information, accessible même sans JavaScript. JavaScript est là pour apporter un plus (ergonomie, dynamisme), mais on doit pouvoir s'en passer. JavaScript n'est pas sécurisé. Les programmes JS sont exécutés sur le client, on n'est jamais sûr de leurs résultats, il ne faut donc jamais faire confiance à une donnée provenant du client. Il est fortement recommandé de terminer l'ensemble des instructions JavaScript par un point virgule (même si, en effet, ce n'est pas toujours nécessaire). Les instructions ci-dessous ne se terminent pas par un point virgule : ;Les définitions de fonctions ``` function maFonction() { ............... } ``` ;Les conditions ``` if (var1==var2) { ............... } else { ............... } ``` ; Syntaxe des conditions : : égalité : == (cette syntaxe est également utilisée pour comparer deux chaînes de caractères) : différent de : != (même remarque que ci-dessus) : inférieur ou égal à : =< : supérieur ou égal à : >= : inférieur à : < : supérieur à : > : et logique : && : ou logique : || : identique à : === : non identique à : !== : et bit à bit : & : ou bit à bit : | ;Les boucles for ``` for (i=0; i<5; i++) { ............... } ``` ;Les boucles while ``` while (a<b) { ............... } do { ............... }while (a<b) ``` ;Commentaire JavaScript sur plusieurs lignes ``` /* un commentaire sur plusieurs lignes */ ``` ;Commentaire Javascript sur une ligne ``` // un commentaire une ligne ``` !!Objets internes Les objets internes JavaScript commencent par une majuscule : String, Math, Array, Boolean, Date, Number, Function (à ne pas confondre avec le mot-clef function), RegExp, etc… Les méthodes ainsi que les propriétés d'un objet commencent par une minuscule. Toutes les méthodes internes à JavaScript sont sensibles à la casse (« case sensitive »). : exemple de méthodes : toLowerCase() ; getElementById() ; charAt() ; fromCharCode() ; etc. : exemple de propriétés : id ; type ; innerHTML ; tagName ; style ; etc. L'accès à une méthode ou à une propriété d'un objet se fait en plaçant un point entre le nom de l'objet et la propriété ou la méthode. ``` var monObjet = document.getElementById("idObjet"); monObjet.style.display = "none"; ``` ou: ``` document.getElementById("idObjet").style.display = "none"; ``` Le langage JavaScript est un langage « case sensitive » : les variables, les méthodes, les attributs, les mots-clefs, etc. ont une syntaxe très précise. Le non-respect de cette règle peu conduire à une mauvaise exécution des scripts. !! Accolades Plusieurs écoles : les accolades ouvrantes sont placées sur la même ligne que la condition ou la boucle ; ou un retour à la ligne est effectué pour l'accolade ouvrante. ;Accolades ouvrantes en fin de ligne ``` function maFonction() { if (test1) { ................. ................. } else{ ................. ................. } for (i=0; i<n; i++){ ................. ................. } } ``` ;Accolades ouvrantes après un retour à la ligne ``` function maFonction() { if (test1) { ................. ................. } else { ................. ................. } for (i=0; i<n; i++) { ................. ................. } } ``` On préconisera la seconde syntaxe à la première dans la mesure où elle offre une meilleure lisibilité dans le code. !! Variables En JavaScript les variables ne sont pas typées. Il faut néanmoins les déclarer grâce au mot clef var. Une variable peut, au cours du programme, être tour à tour un entier, une chaîne de caractères, ou un booléen. Même si cette possibilité de programmation est offerte, il ne faut surtout pas s'y laisser tenter. Une variable doit garder le même type du début à la fin. Et donc ne pas hésiter à créer autant de variables que nécessaire. ;A ne pas faire ``` var i; //déclaration i = 2; //entier i = "bonjour"; //chaîne de caractères i = true; //booléen ``` ;Ce qu'il faut faire ``` var i, chaine, bool; //Déclaration de 3 variables i = 2; chaine = "bonjour"; bool = true; ``` Bannir des noms de variables : : du genre : truc, machin, toto, bidule… ; : « kilométriques » : ceciEstLeNomDeMaJolieVariable ; : avec des accents : maChaîneDeCaractères. Les variables ne doivent pas être des mots-clefs JavaScript : var, form, int, document, etc.. !!Utiliser les objets du navigateur !!!L'objet window Cet objet représente le navigateur contenant l'objet document. Il est créé lors de l'ouverture du navigateur et contient toutes les propriétés et les méthodes de gestion de la fenêtre. Ses propriétés et ses méthodes peuvent être appelées sans devoir préciser l'objet window. ;Une méthode de l'objet window ``` window.alert ("Coucou"); ou: alert("Coucou"); ``` ; L'objet window.navigator Cet objet contient les propriétés du navigateur (nom, version, langue, etc…). On utilise de moins en moins souvent cet objet pour identifier la navigateur de l'utilisateur car certaines propriétés peuvent être modifiées (cas d'Opera). On utilisera plutôt certaines propriétés de l'objet document pour réaliser ces tests. ;L'objet window.document L'objet document regroupe toutes les méthodes de gestion de la page Web. Ses fonctions permettent de cibler un objet (un paragraphe par exemple) pour modifier ses attributs. Pour modifier les attributs d'un élément (paragraphe, lien, etc…), celui-ci doit être au préalable identifié par un identifiant unique (attribut id). L'objet est ensuite ciblé grâce à la méthode getElementById() contenue dans l'objet document. Si l'élément possédant cet id n'existe pas la méthode renvoie null. ;Utilisation des objets contenu dans le document ``` //objet contient toutes les propriétés de idElement var monElement = document.getElementById("idElement") ; //pour modifier la taille de la police monElement.style.fontSize = "12px"; //pour modifier la police monElement.style.fontFamily = "Arial"; //pour modifier le contenu du paragraphe (balises div, span, p et body uniquement). monElement.innerHTML = "Salut tout le monde !!"; ``` Les attributs définis dans les feuilles de styles (CSS) peuvent être modifiés par l'objet style de l'élément. Cependant, cela ne modifie pas la valeur de la feuille de style qui reste la valeur par défaut. NEXT -> https://javascript.developpez.com/tutoriels/introduction/?page=page_5
{{Invoke||caption}}
*checkboxInvokeActions *linkInvokeActions *radioInvokeActions *selectInvokeActions Sont tous les quatre inclus dans le plugin [[$:/plugins/inmysocks/WidgetsInvokeActions]] Notes: *Pour le widget ~CheckBox-Invoke-actions, vous devez utiliser le [[widget Reveal|RevealWidget]] pour déclencher différentes actions "Check/Uncheck" sans quoi la même première action est déclenchée à chaque fois. !Checkbox widget: Code: ``` <$checkboxInvokeActions tag='woo'>Something <$reveal type='nomatch' state='!!test' text=yep> <$action-setfield test='yep'/> </$reveal> <$reveal type='match' state='!!test' text=yep> <$action-setfield test='nope'/> </$reveal> </$checkboxInvokeActions> {{!!test}} ``` Result: <$checkboxInvokeActions tag='woo'>Something <$reveal type='nomatch' state='!!test' text=yep> <$action-setfield test='yep'/> </$reveal> <$reveal type='match' state='!!test' text=yep> <$action-setfield test='nope'/> </$reveal> </$checkboxInvokeActions> {{!!test}} !Link Widget: Code: ``` <$linkInvokeActions to=HelloThere>Hello! <$action-sendmessage $message='tm-modal' $param=About/> </$linkInvokeActions> ``` Result: <$linkInvokeActions to=HelloThere>Hello! <$action-sendmessage $message='tm-modal' $param=About/> </$linkInvokeActions> !Radio La variable currentOption `<<currentOption>>` contient la valeur du bouton radio utilisé qui peut changer en fonction du bouton utilisé. Cette option est peut-être inutile. Code: ``` <$radioInvokeActions field='radio_test' value='First'>First <$action-navigate $to=<<currentOption>>/> </$radioInvokeActions> <$radioInvokeActions field='radio_test' value='Second'>Second <$action-navigate $to=<<currentOption>>/> </$radioInvokeActions> <$radioInvokeActions field='radio_test' value='Third'>Third <$action-sendmessage $message='tm-modal' $param=HelloThere/> </$radioInvokeActions> {{!!radio_test}} ``` Result: <$radioInvokeActions field='radio_test' value='A'><<setValue>>B <$action-navigate $to=Pour Commencer/> </$radioInvokeActions> <$radioInvokeActions field='radio_test' value='New Tiddler'>New Tiddler<$action-navigate $to=<<currentOption>>/> </$radioInvokeActions> <$radioInvokeActions field='radio_test' value='Third'>Third <$action-sendmessage $message='tm-modal' $param=HelloThere/> </$radioInvokeActions> {{!!radio_test}} !Select Code: ``` <$selectInvokeActions field='select_test'> <option><$action-setfield $tiddler='Widgets Invoking Actions' select_field=1/>First Option</option> <option>Second Option<$action-setfield $tiddler='Widgets Invoking Actions' select_field=2/></option> <option value=bob>Third Option<$action-setfield $tiddler='Widgets Invoking Actions' select_field=3/></option> <option>Fourth Option<$action-setfield $tiddler='Widgets Invoking Actions' select_field={{!!select_test}}/></option> </$selectInvokeActions> {{!!select_test}} {{!!select_field}} ``` Result: <$selectInvokeActions field='select_test'> <option><$action-setfield $tiddler='Widgets Invoking Actions' select_field=1/>First Option</option> <option>Second Option<$action-setfield $tiddler='Widgets Invoking Actions' select_field=2/></option> <option value=bob>Third Option<$action-setfield $tiddler='Widgets Invoking Actions' select_field=3/></option> <option>Fourth Option<$action-setfield $tiddler='Widgets Invoking Actions' select_field={{!!select_test}}/></option> </$selectInvokeActions> {{!!select_test}} {{!!select_field}}
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "1" "">> """ 1 - New Year's Day 14 - Coming of Age Day ^^Japan^^ 20 - Kim Min Ji 21 - Martin Luther King Jr. Day ^^USA^^ 26 - Australia Day ^^Australia^^ 26 - Republic Day ^^India^^ """ [img height="200" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "1" "">> """ 1 - New Year's Day 13 - Coming of Age Day ^^Japan^^ 16 - Australia Day ^^Australia^^ 20 - Martin Luther King Jr. Day ^^United States^^ 25 - Chinese New Year ^^China^^ 25 - Vietnamese New Year ^^Vietnam^^ 26 - Tet holiday begins ^^Vietnam^^ 29 - Tet holiday ends ^^Vietnam^^ """ [img height="160" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "1" "">> """ Words are things, and a small drop of ink, Falling like dew upon a thought, produces That which makes thousands, perhaps millions, think by Lord Byron """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "1" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "1" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "1" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jan25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "1" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#January">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "1" "">> """ 1 - New Year's Day 8 - Coming of Age Day ^^Japan^^ 15 - Martin Luther King Jr. Day ^^USA^^ 26 - Australia Day ^^Australia^^ 26 - Republic Day ^^India^^ """ [img height="220" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
{{JavaScript||caption}}
très court et concis façon 'antisèche'
//__Stephan Hradek Thu, 09 Jan 2014__// Il est bien sur possible de créer une macro JavaScript. J'ai converti la macro standard mysamplemacro de tiddlywiki.com en JavaScript. Vous pouvez l consulter dans http://tw5magick.tiddlyspot.com/ dans le tiddler "Javascript Macros in WikiText". ;Voir [[mysamplemacro.js]] ;Comparer avec [[Macro TiddlyWiki.js]] ;Et pour la macro wikitext de base, voir [ext[Macro Definitions in WikiText|https://tiddlywiki.com/#Macro%20Definitions%20in%20WikiText]] Contrairement aux macros standard en wikitext, les macros JavaScript peuvent être utilisées dans n'importe quel tiddler. À titre d'exemple j'ai implémenté la macro [[mysamplemacro en JavaScript|mysamplemacro.js]]. Je n'en donne pas trop d'explications car je pense que quiconque qui est capable d'écrire du code JavaScript peux lire la macro et l'utiliser comme modèle pour son propre usage. La macro s'utilise de la même manière que la macro wikitext: ``` <<mysamplemacro>> <<mysamplemacro "Donald Duck">> <<mysamplemacro "Mickey Mouse" "Mouse House">> ``` ;Soit: ``` Hi I'm Bugs Bunny and I live in Rabbit Hole Hill Hi I'm Donald Duck and I live in Rabbit Hole Hill Hi I'm Mickey Mouse and I live in Mouse House ```
Les macros peuvent être implémentées en tant que modules JavaScript mais également via la [[syntaxe Wikitext|https://tiddlywiki.com/#Macros%20in%20WikiText]] ! Aperçu Les macros JavaScript sont des modules avec le champ module-type renseigné "macro". Elles doivent exporter ces trois propriétés: * ''name'': Une chaîne de caractères attribuant le nom choisi pour invoquer la macro * ''params'': Un tableau d'objets avec les propriétés suivantes: ** //name//: nom du paramètre ** //default//: (optionnel) valeur par défaut du paramètre * ''run'': Fonction appelée lorsque la macro nécessite une évaluation. Les paramètres sont tirés de l'appel de macro et disposés selon le tableau' 'params' '. La fonction' 'Run' 'doit renvoyer la valeur de chaîne de la macro. Lorsqu'il est appelé, «this» pointe vers le nœud du widget qui invoque la macro. Notez que si le tableau "params" est manquant ou vide, tous les paramètres fournis sont passés à la méthode `Run ()`. ! Écrire des macros en ~JavaScript Il y a plusieurs macros JavaScript présentes dans le source de TiddlyWiki qui peuvent servir de point de départ à la création de vos propres macros. https://github.com/Jermolene/TiddlyWiki5/tree/master/core/modules/macros Il faut noter que les macros JavaScript fonctionnent à la fois chez le client et sur le serveur, et donc n'ont pas accès au DOM du navigateur. !! Comportement d'une macro Les macros sont simplement utilisées pour retourner un morceau de Wikitext pour un traitement ultérieur. Ils ne devraient pas apporter de modifications aux tiddlers existants. La raison en est que vous ne pouvez pas contrôler lorsque la macro est appelée; elle peut être appelée à plusieurs reprises dans le cadre d'un traitement d'actualisation. Il est donc important que les macros n'aient pas d'autres effets secondaires hormis celui de ''générer leur propre texte''.
Je travaille actuellement sur un cours de JavaScript standard mais adapté à TiddlyWiki : JavaScript pour TiddlyWiki. Mais pour cela j'ai besoin de votre aide.
https://javascript.info/try-catch Tutoriel JS
!!{{!!caption}} <div class="att"> Tout ce qui est inclus sous ce mot clé n'est qu'une ébauche d'un projet plus gobal, en cours de construction et décrit sur le forum français TiddlyWiki et consultable à l'adresse [ext[https://forum.tiddlywiki.fr/c/tiddlywiki/JS]] </div> Il y a deux approches différentes concernant l'étude du JavaScript: L'idée première du mot clé JavaScript de ce wiki est, dans la mesure du possible de présenter un tutoriel JavaScript standard et de le confronter à TiddlyWiki. Idéalement donc de rendre les exemples de code JavaScript, les input et les output non pas dans une console mais bien dans TiddlyWiki. Ce ne sera pas une tâche aisée dans le mesure où Jeremy Ruston le concepteur de TiddlyWiki indique clairement qu'il va falloir à la fois [[apprendre JavaScript et apprendre TiddlyWiki|How can one adapt arbitrary JavaScript libraries to work with TiddlyWiki?]]. L'un va sans l'autre et vice-versa. On notera cependant que TiddlyWiki est massivement conçu autour de JavaScript. [ext[http://eloquentjavascript.net/Eloquent_JavaScript.pdf]] L'autre démarche vise à se concentrer sur TiddlyWiki en en expliquant les grands principes (wikifier, transclusion, wikitext, filtres, champs, macros, widgets, dictionnaire, tags etc.), puis techniquement ce de quoi est composé TW: JavaScript, HTML et CSS. On fera l'étude de JavaScript à partir d'une application concrète: TW5. Maîtriser les concepts TW5, c'est déjà commencer à mieux appréhender ce logiciel. Ils sont assez nombreux et bien les comprendre permet de mieux aborder la suite de l'étude de TW5. Une source importante et intéressante se trouve dans le forum anglais où l'on trouve des explications claires concernant ces principes. Elles sont en général communiquées par un petit groupe d'experts TW5, notamment les explications de Jeremy Vous pouvez les retrouver via [[Mail Archive|https://www.mail-archive.com/tiddlywiki@googlegroups.com/]] qui vous permet propose un module de recherche bien pratique. En tapant les noms Ruston, PMario etc.. ou les concepts
Liste non travaillée. https://www.udemy.com/cours-javascript/ (Vidéos en français intéressantes) <div class="note"> FrameWork pour applications JavaScript --- *https://angularjs.org/ (version 1.x) *https://angular.io/ </div>
hese are some things I developed for TiddlyWiki. <span style="background: red;">New!</span> - http://j.d.tiddlyspot.com/ *Plainrevs (plugin) *NTFS (plugin) *(palettes) *Font Scroller (tiddler) *Material Theme (theme) *Whitespace Theme (theme) *Paragraphs Macro (macro) *Simple Mobile Layout (plugin) *Very Simple Mobile Layout (plugin)
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
*''exports'' est une propriété. *''export'' est une instruction utilisée lors de la création de modules JavaScript pour exporter des fonctions. ``` // Correct module.exports = function () { console.log("hello world") } // Incorrect exports = function () { console.log("hello world") } ``` module is a plain JavaScript object with an exports property. exports is a plain JavaScript variable that happens to be set to module.exports. At the end of your file, node.js will basically 'return' module.exports to the require function. A simplified way to view a JS file in Node could be this: ``` var module = { exports: {} }; var exports = module.exports; // your code return module.exports; ``` If you set a property on exports, like exports.a = 9;, that will set module.exports.a as well because objects are passed around as references in JavaScript, which means that if you set multiple variables to the same object, they are all the same object; so then exports and module.exports are the same object. But if you set exports to something new, it will no longer be set to module.exports, so exports and module.exports are no longer the same object. pour remarquer quelques constructions de scripts intéressantes en exports.command (en fait, on pourrait très bien choisir d’exposer le répertoire “editor” (TiddlyWiki5/core/modules/editor/) TiddlyWiki5/core/modules/commands/ Application JavaScript de type macro. Application JavaScript de type command
{{JsEnLigne||caption}}
@@color:red;''Caution:'' Parce-que vous utilisez le ''script'' macro, ci-dessous, il sera plus facile d'injecter un code malicieux contre votre ''~TiddlyWiki'' ou le serveur sur lequel il est hébergé. Il est également très facile de produire une [[erreur|error]].@@ However, from a browser console one can easily achieve the same by running this: ``` $tw.config.htmlUnsafeElements = []; ``` !! How to use ; enable script tags : `<<script>>` ; disable script tags : `<<script 0>>` / `<<script false>>` / `<<script no>>` / `<<script off>>` !! Example ``` <<script>> <script>confirm("Caution: Do not use lightly!");</script> <<script 0>> {{error}} => see [[error]] ``` <<< <<script>> <script>confirm("Caution: Do not use lightly!");</script> <<script 0>> {{error}} => see [[error]] <<< !! Always on To globally enable `<script>` tags, place the `<<script>>` macro in a tiddler tagged: {{$:/tags/PageTemplate||$:/core/ui/TagTemplate}} ''for example'' <<source $:/core/ui/PageTemplate/script>> !!Installation Import <<source [[$:/.tb/macros/script]]>> <<script>>
Version 0.0.5 livrée le 1er avril 2019, via [ext[Mail Archive|https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg93232.html]] TW-jsoneditor génère et affiche une forme HTML construite sur le shéma officiel [ext[JSON|http://json-schema.org/]] Repository: https://github.com/joshuafontany/TW5-jsoneditor
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "7" "">> """ 1 - Canada Day ^^Canada^^ 4 - Independence Day ^^USA^^ 12 - Heo Min Jin 12 - Heo Min Seon 14 - Bastille Day ^^France^^ 17 - Constitution Day ^^South Korea^^ """ [img height="200" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "7" "">> """ 1 - Canada Day ^^Canada^^ 4 - Independence Day ^^Unnited States^^ 6 - Heroes Day ^^Zambia^^ 7 - Unity Day ^^Zambia^^ 14 - Bastille Day ^^France^^ 17 - Constitution Day ^^South Korea^^ 31 - Eid al-Adha """ [img height="190" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "7" "">> """ God grants liberty only to those who love it, and are always ready to guard and defend it. by Daniel Webster """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "7" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "7" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "7" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jul25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "7" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#July">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "7" "">> """ 1 - Canada Day ^^Canada^^ 4 - Independence Day ^^USA^^ 14 - Bastille Day ^^France^^ 17 - Constitution Day ^^South Korea^^ """ [img height="250" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
{{JumpToTop||caption}}
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "6" "">> """ 3 - Queen's Birthday ^^New Zealand^^ 5 - Eid al-Fitr (Ramadan ends) 7 - Dragon Boat Festival ^^China^^ 8 - Queen's Birthday ^^United Kingdom^^ 12 - Valentine's Day ^^Brazil^^ 12 - Russia Day ^^Russia^^ 16 - Father's Day 18 - Baek Bo Ram 29 - Park So Ra """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "6" "">> """ 1 - Queen's Birthday ^^New Zealand^^ 2 - Republic Day ^^Italy^^ 12 - Russia Day ^^Russia^^ 13 - Queen's Birthday ^^United Kingdom^^ 21 - Father's Day 25 - Dragon Boat Festival ^^China^^ """ [img height="210" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "6" "">> """ Greatly begin! though thou have time But for a line, be that sublime, -- Not failure, but low aim is crime. by J. R. Lowell """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "6" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "6" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "6" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#jun25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "6" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#June">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "6" "">> """ 4 - Queen's Birthday ^^New Zealand^^ 9 - Queen's Birthday ^^United Kingdom^^ 12 - Russia Day ^^Russia^^ 12 - Valentine's Day ^^Brazil^^ 15 - Eid al-Fitr (Ramadan ends) 17 - Father's Day 18 - Dragon Boat Festival ^^China^^ """ [img height="180" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
Pour étendre la justification à l'ensemble des tiddlers: ``` body.tc-body .tc-tiddler-frame .tc-tiddler-body { text-align: justify; } ``` Voir la feuille de style $:/cssJustification Le paramètre se trouve dans la [[page de contrôle des tiddlers|$:/TemplateTiddler]]
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
<style> .afaire strong {border-bottom:solid rgb(255, 0, 0);} .encours strong {border-bottom:solid rgb(232, 170, 12);} .fait strong {border-bottom:solid rgb(37, 255, 6);} .contenant ul { list-style:none; margin:0; padding: 10px; } .afaire li::before {content: "x"; color: rgb(255, 0, 0);display: inline-block;width: 1em;margin-left: -1em} .encours li::before {content: "o"; color: rgb(232, 170, 12);display: inline-block;width: 1em;margin-left: -1em} .fait li::before {content: "✓"; color: rgb(37, 255, 6);display: inline-block;width: 1em;margin-left: -1em} .contenant { display:flex; flex-wrap: wrap; } .contenant p { padding-left:10px; flex-grow:1; margin:0; } </style> <div class="contenant"> <p class="afaire"> <strong>A faire</strong><br> {{à faire}} </p> <p class="encours"> <strong>En cours</strong><br> {{en cours}} </p> <p class="fait"> <strong>Fait</strong><br> {{fait}} </p> </div>
{{Kanban1||caption}}
!Task Management and Productivity Adaptations Application proposée par Telumire visible sur le Forum français de ~TiddlyWiki à l'adresse mentionnée ci-dessus. Pour utiliser ce kanban, il suffit lors de la création d’un tiddler d’y ajouter l’un des tag suivants : à faire, en cours ou fait. Le nom du tiddler sera automatiquement affiché dans la bonne colonne. Ce kanban est à peu près responsive (il utilise flexbox) et devrait à priori s’afficher correctement quelle que soit la résolution de l’écran. Fonctionnement Le tiddler “Accueil” contient 2 tiddlers (par transclusion) : Le tiddler “tags” et le tidler “Kanban”. “tags” est bien sûr optionnel, mais je trouve personnellement pratique d’avoir sur ma page d’accueil une liste spécifique de tags, ainsi que leur décompte. ;Tiddlers à créer et code à insérer : <$details summary="Accueil"> {{Accueil||code}} </$details> <$details summary="Kanban"> {{Kanban||code}} </$details> <$details summary="tags"> {{tags||code}} </$details> Et enfin les trois tiddlers suivants : *<i class="fa fa-arrow-right"></i> à faire, *<i class="fa fa-arrow-right"></i> en cours, *<i class="fa fa-arrow-right"></i> fait Ces trois tiddlers vont servir à faire la liste des tiddler tagués respectivement comme “à faire”, “en cours” et “fait”. Le tiddler Kanban se charge de les rassembler dans un seul tiddler, avec une mise en forme. Ces trois derniers tiddlers contiennent le même code : ``` <<list-links "[all[current]tagging[]sort[title]]">>. ``` Ce code permet de lister les tiddlers dont le tag est identique au titre du tiddler dans lequel ce code est écrit. Il est aussi possible de créer un tiddler, par exemple nommé “Liste de tags trié alphabétiquement”, d’y ajouter le code écrit précédemment puis de le transclure dans chaque tiddler désiré avec ce code : ``` <$transclude tiddler="Liste de tags trié alphabétiquement"/> ``` Pour Exporter cette application (et tout son contenu prêt à l'emploi) de ce wiki puis l'importer dans ''votre ~TiddlyWiki'', veuillez procéder comme suit: ;Exportation: #Ouvrez le tiddler de recherche avancée [[$:/AdvancedSearch]] #Cliquer sur l'onglet "Filtrer" #Y copier le code `[import[001]]` #La liste de l'ensemble des tiddlers comprenant l'application s'affiche (12 tiddlers) #Cliquer sur la flèche "exporte ces tiddlers" #Dans la liste des formats, cliquez sur "Fichier JSON" #Enregistrez le fichier "tiddlers.json" à l'endroit que vous choisirez (Vous pouvez renommer le titre du fichier, mais conservez son extension "json" ;Importation: #Ouvrez votre wiki #Déplacez par glisser le fichier "tiddlers.json" (ou du nom que vous lui avez donné) enregistré dans l'étape précédente puis déposez le dans votre tiddler en haut dans la barre verte qui apparaît et qui indique "Déposer Ici" . #La liste des tiddlers importés est affichée dans un tiddler "$:/Import" #Cliquez sur le bouton "Importer" en bas du tiddler. #Les tiddlers de l'application sont maintenant importés mais vous devez sauvegarder votre wiki puis le redémarrer pour les voir. et les utiliser.
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
Knowledge mapping (silverfox)
Premier ouvrage d'une série de 6 ouvrages sur JavaScript. :Principes de base de la programmation :Principes de codage en JS :JS est un langage interprété, pas compilé :L'importance du module Pattern Un programme est généralement nommé "code source" ou "code". Il est constitué d'un jeu d'instructions indiquant à l'ordinateur ce qu'il doit faire. [[Au Sommaire|Up&Going]]
Source: https://tiddlywiki.com/#Transclusion%20in%20WikiText ! Introduction You can incorporate the content of one tiddler within another using the Transclusion notation: * `{{MyTiddler}}` transcludes a single tiddler * `{{MyTiddler||TemplateTitle}}` displays the tiddler through a specified [[TemplateTiddler|TemplateTiddlers]] * `{{||TemplateTitle}}` displays the specified template tiddler without altering the [[current tiddler|Current Tiddler]] !! Transcluding Text References You can also use a TextReference instead of a tiddler title: * `{{MyTiddler!!field}}` transcludes a specified field of a tiddler * `{{!!field}}` transcludes a specified field of the current tiddler * `{{MyTiddler##index}}` transcludes a specified indexed property of a [[DataTiddler|DataTiddlers]] * `{{##index}}` transcludes a specified indexed property of the current [[DataTiddler|DataTiddlers]] !! Filtered Transclusion A similar syntax can be used to transclude a list of tiddlers matching a specified [[filter|Filters]]: ``` {{{ [tag[mechanism]] }}} {{{ [tag[mechanism]] ||TemplateTitle}}} ``` ! Generated Widgets The WikiText transclusion syntax generates a TiddlerWidget wrapped around a TranscludeWidget. For example, `{{MyTiddler||MyTemplate!!myField}}` generates the following pair of widgets: ``` <$tiddler tiddler="MyTiddler"> <$transclude tiddler="MyTemplate" field="myField"/> </$tiddler> ``` See also: * [[Transclusion Basic Usage]] * [[Transclusion with Templates]] * TemplateTiddlers * TranscludeWidget * [[Transclusion and Substitution]]
Voici un bon article vous permettant de comprendre l'introduction de la notion de transparence dans les valeurs associées à une couleur, l'écriture RGBa.
<div align="right"><small>Dernières modifications : le <$view field="modified" format="date" template="DD MMM YYYY"/></small></div>
Le source du tiddler `$:/core/ui/ViewTemplate` a été modifié par l'ajout d'une classe de champ tc-extra : ``` <$set name="classfield" value={{!!tc-extra}}> ``` Techniquement, ce n'est pas un plugin. Il s'agit d'une modification du ~ViewTemplate (<<? gabarit>> de vue ) source visant à ajouter ''un champ spécial appelé "tc-extra "''. Dans ce champ, vous pouvez déclarer autant de classes CSS affectant un tiddler particulier. Par exemple, vous pouvez créer un tiddler que vous nomerez "mon tiddler" dans lequel vous créez le champ "tc-extra" et y inscrire en valeur par exemple "''maClasse''". Il ne vous reste plus maintenant qu'à créer la feuille de style ''maClasse'' avec le code suivant: ``` .maClasse { background: bisque; } ``` En résultat vous obtiendrez votre tiddler avec la couleur de fond bisque. Il s'agit donc d'une nouvelle classe permettant d'ajouter des classes supplémentaires directement à vos tiddlers. Vous pouvez y indiquer plusieurs classes successives en les séparent par un espace: ``` tc-extra: animated fadeInLeft ``` Voyez notre dossier [[Couleurs]] pour de multiples exemples précis. Voici comment obtenir la liste de tous les tiddlers incluant un champ tc-extra <<ref "Note1">> : ``` <$list filter="[has:value[tc-extra]]"> ``` ;où en liste: ``` {{{[has:value[tc-extra]]}}} ``` Soit: {{{[has:value[tc-extra]]}}} <div align="center">[img[$:/separation3]]</div> <<footnotes "Note1" "[[Merci à @sycom|https://forum.tiddlywiki.fr/t/lister-les-tiddlers-possedant-un-champ-x/462/3]]. [[Et un lien dirigeant vers la doc. officielle|https://tiddlywiki.com/static/has%2520Operator%2520(Examples).html]]">>
Une application. Cours, élèves, ressources (en français) *Agenda *Élèves *Cours *Ressources (contenus)
<div class="attention">Attention<br/>Cet article n'est pas achevé. Il faut importer les tiddlers requis et analyser le source pour être sûr de récupérer l'intégralité des textes source</div> Source: http://tobibeer.github.io/tw5-plugins/#random <<plugin-docs random>> <<tabs "[tag[random]]" "$:/state/tab2" >>
''New Tiddler From Search'', soit la possibilité de créer un nouveau tiddler depuis la barre de recherche, simplement avec l’ajout d’un bouton +, ainsi que le raccourci clavier `Ctrl + Espace` (le curseur doit être dans le champ de recherche pour que cela fonctionne).
Indispensable !
<div class="column col-sm-12"> <div class="toast toast-warning"> <<f-i alert-octagon x2 block>> Pour encrypter un ou plusieurs Tiddlers. Réclame un mot de passe pour décrypter. Une fois crypté le contenu du tiddler est remplacé par "This is an encrypted Tiddler" </div> </div> Fonctionne avec l'implémentation du plugin $:/plugins/danielo/encryptTiddler Système efficace mais sans possibilité de déblocage en cas d'erreur d'encryptage d'un Tiddler. Il est alors impossible de récupérer le mot de passe. Il convient donc de saisir ce mot de passe avec une extrême attention. Ce plugin peut être utilisé avec des pages spéciales, par exemple $:/plugins/TWaddle/tw-admin/content visant à sécuriser certaines fonctions. On pourrait ainsi protéger l'accès aux paramètres les plus sensibles de manière plus efficace que le simple [[système de login|Le système de login]] Au titre d'exemple sur ce wiki, le tiddler [[TiddlyWiki sur GitHub]] est crypté. ; La documentation officielle: {{$:/plugins/danielo/encryptTiddler/Encrypt-Tiddler}} ;À faire: [ ] Lien mort
; Sources *https://tiddlywiki.com/#SelectWidget *http://tobibeer.github.io/tb5/#Create%20From%20Selected%20Template (Ce sujet n'est pas encore travaillé) @@padding:0 5px;border:1px solid crimson; Pour une présentation correcte de ce tiddler vous devez importer le tiddler $:/editions/tw5.com/wikitext-macros @@ ! Introduction Le widget Select affiche un menu contextuel basé sur l'élément HTML Select. Le popup (ou dropdown) contient une liste d'éléments définis par les éléments `<option>` et `<optgroup>`. Chaque fois que l'utilisateur sélectionne une nouvelle valeur dans le menu, la valeur sélectionnée est écrite dans un champ ou un index d'un tiddler désigné et tous les ActionWidgets de l'attribut "actions" sont déclenchés. Inversement, si la valeur du tiddler est modifiée de manière indépendante, le widget Select est mis à jour automatiquement pour refléter la nouvelle valeur attribuée. En mode sélection multiple, la liste des valeurs sélectionnées est liée au champ ou à l'index du tiddler spécifié. Les navigateurs utilisent généralement les touches <kbd>ctrl</kbd> ou <kbd>cmd</kbd> pour une sélection multiple Par exemple, ce widget select restitue la liste de tous les tags de ce wiki: <$macrocall $name="wikitext-example-without-html" src="<$select tiddler=<<qualify 'select-demo'>> default='HelloThere'> <$list filter='[all[shadows+tiddlers]tags[]sort[title]]'> <option value=<<currentTiddler>>><$view field='title'/></option> </$list> </$select>"/> The <$link to=<<qualify "select-demo">>>state tiddler</$link> currently contains: <$edit-text tiddler=<<qualify "select-demo">> tag="input" default=""/> Voyez le texte changer lorsque vous changez d'entrée dans le widget Select. Inversement, Essayez de changer la valeur du tiddler contenant la valeur (<$link to=<<qualify "select-demo">>>state tiddler</$link>) et voir le changement du widget Select. Notez comment le widget Select affiche uniquement une entrée s'il existe une correspondance précise avec le texte du tiddler. ! Content and Attributes The content of the `<$select>` widget should be one or more HTML `<option>` or `<optiongroup>` elements that provide the available values. |!Attribute |!Description | |tiddler |The title of the tiddler containing the value to be displayed/modified by the select widget (defaults to the current tiddler) | |field |The field name for the value in the current tiddler (defaults to "text") | |index |The index of a property in a [[DataTiddler|DataTiddlers]] (takes precedence over the field attribute) | |class |CSS classes to be assigned to the HTML select element | |default |Default value to be used if the tiddler, field or index specifies a missing value | |multiple |If present, switches to multiple selection mode | |size |The number of rows to display in multiple selection mode | |actions |A string containing ActionWidgets to be triggered when the key combination is detected | ! Examples !! Simple Lists This example sets the title of the current wiki [[$:/SiteTitle]] to one of a list of book titles: <$macrocall $name="wikitext-example-without-html" src="<$select tiddler='$:/SiteTitle'> <option>A Tale of Two Cities</option> <option>A New Kind of Science</option> <option>The Dice Man</option> </$select>"/> !! Value lists In this example the `value` attribute has been used to specify the text that should be used as the value of the entry instead of the display text. <$macrocall $name="wikitext-example-without-html" src="<$select tiddler='$:/SiteTitle'> <option value='cities'>A Tale of Two Cities</option> <option value='science'>A New Kind of Science</option> <option value='dice'>The Dice Man</option> </$select>"/> !! Option Groups Entries in the list can be grouped together with the `<optgroup>` element <$macrocall $name="wikitext-example-without-html" src="<$select tiddler='$:/SiteTitle'> <optgroup label='Fiction'> <option value='cities'>A Tale of Two Cities</option> <option value='dice'>The Dice Man</option> </optgroup> <optgroup label='Non-fiction'> <option value='science'>A New Kind of Science</option> <option value='recursive'>The Recursive Universe</option> </optgroup> </$select>"/> !! Generated Lists The ListWidget can be used to generate the options for a select widget. For example, here we combine a select widget listing all the tiddlers tagged ''TableOfContents'' with a transclusion to display the text of the selected one. <$macrocall $name="wikitext-example-without-html" src="<$select tiddler='$:/generated-list-demo-state'> <$list filter='[tag[TableOfContents]]'> <option><$view field='title'/></option> </$list> </$select> <$tiddler tiddler={{$:/generated-list-demo-state}}> <$transclude mode='block'/> </$tiddler>"/> !! Nested Lists This example uses a nested pair of list widgets. The outer one generates the `<optgroup>` elements, and the inner one generates `<option>` elements: <$macrocall $name="wikitext-example-without-html" src="<$select tiddler='$:/generated-list-demo-nestedstate' field='type' default='text/vnd.tiddlywiki'> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'> <optgroup label={{!!group}}> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]'> <option value={{!!name}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option> </$list> </optgroup> </$list> </$select>"/> !! Multiple Selections This example uses the `multiple` keyword to specify that we should be able to select multiple items. <$macrocall $name="wikitext-example-without-html" src="<$select tiddler='$:/generated-list-demo-state' field='testing' multiple size='8'> <$list filter='[tag[TableOfContents]]'> <option><$view field='title'/></option> </$list> </$select><br /> <$list filter='[list[$:/generated-list-demo-state!!testing]]'> <$view field='title' /><br /> </$list> "/>
Barre de menu à gauche. Il y a des choses à prendre pour réorganiser ma NavBar en ajoutant une sub ligne.
Tiddlers les plus récents en bas. `{{{[all[tiddlers]has[created]sort[created]!prefix[$:/]!limit[10]]}}}` {{{[all[tiddlers]has[created]sort[created]!prefix[$:/]!limit[10]]}}}
``` <$list filter="[all[tiddlers]!has[draft.of]sort[created]!prefix[$:/]!limit[10]]"> <$link to={{!!title}}> {{!!title}} <i class="fa fa-caret-right"></i> (<$view field="created" format="date" template="MMM DDth"/>) </$link> </$list> @@padding:0 5px;border:1px solid crimson; <$link to="Pour Commencer">Sur un total de <$count filter="[all[tiddlers]!prefix[$:/]]"/> entrées</$link> @@ ``` ;Soit: <$list filter="[all[tiddlers]!has[draft.of]sort[created]!prefix[$:/]!limit[10]]"> <$link to={{!!title}}> {{!!title}} <i class="fa fa-caret-right"></i> (<$view field="created" format="date" template="MMM DDth"/>) </$link> </$list> @@padding:0 5px;border:1px solid crimson; <$link to="Pour Commencer">Sur un total de <$count filter="[all[tiddlers]!prefix[$:/]]"/> entrées</$link> @@
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i filter 'x5'>> </div> </div> </div> @@ <<doc>> <$list filter="[all[tiddlers]!has[draft.of]sort[created]!prefix[$:/]!limit[5]]"> <$link to={{!!title}}> {{!!title}} <i class="fa fa-caret-right"></i> (<$view field="created" format="date" template="DDth MMM YYYY"/>) </$link> </$list>
| Element | Description |h |`<table>`|La table elle-même| |`<caption>`|The caption for the table. Like a figcaption to a figure.| |`<thead>`|The table header| |`<tbody>`|The table body| |`<tfoot>`|The table footer| |`<tr>`|A table row| |`<th>`|A table cell that is a header| |`<td>`|A table cell that is data| |`<col>`|A column (a no-content element)| |`<colgroup>`|A group of columns|
Eric Shulman très élégante [[solution|https://groups.google.com/d/msg/tiddlywiki/hMM6PC3Xt-8/zMjUODeTzjMJ]] destinée à montrer une table automatique des jours de la semaine avecmise en valeur du jour courant. (Si vous avez un tiddler intitulé <<now DDD>>, son contenu apparaîtra dans un onglet ci-dessous) ``` <$macrocall $name="tabs" state="$:/state/tabs/today-date" tabsList="Sunday Monday Tuesday Wednesday Thursday Friday Saturday" default=<<now DDD>> class="tc-vertical"/> ``` ;Soit : <$macrocall $name="tabs" state="$:/state/tabs/today-date" tabsList="Sunday Monday Tuesday Wednesday Thursday Friday Saturday" default=<<now DDD>> class="tc-vertical"/>
L'expression Système de Gestion de Contenus est la traduction de CMS, acronyme dans lequel on trouve Content (contenu) et Management (administration ou gestion). Elle désigne de façon vague un système (logiciel) pour gérer des contenus d'information. Une ardoise et une craie forment un CMS; l'encyclopédie libre Wikipedia ou le site de vente aux enchères eBay sont aussi des CMS. Dans ces trois exemples, ce sont des contenus qu'il faut gérer. Dans les deux derniers cas, le nombre de membres participants est phénoménal. Ces membres ont un rôle majeur dans un CMS, soit en tant qu'administrateurs, soit en tant qu'utilisateurs (users) ou rédacteurs. Il existe d'autres acronymes. À côté des CMS, il existe des systèmes de gestion de données d'entreprise ERP (Enterprise Ressource Planning Systems), des systèmes de gestion de la relation clients CRM (Customer Relationship Management Systems), des systèmes de gestion documentaire DMS (Document Management Systems), etc. Même les systèmes d'exploitation tels que Windows ou Linux gèrent des contenus. Cette inflation d'emploide la notion de contenu rend ardue la définition du concept de CMS. La définition suivante tirée de Wikipédia est cependant explicite: [ext[Un système de gestion de contenu ou SGC (content management system ou CMS en anglais) est une famille de logiciels destinés à la conception et à la mise à jour dynamique de sites Web ou d'applications multimédia.|https://fr.wikipedia.org/wiki/Syst%C3%A8me_de_gestion_de_contenu]] L'acronyme ECMS (Enterprise Content Management Système) tend à englober le concept général de tous les autres cités ci-dessus. TiddlyWiki entre dans la catégorie des systèmes de gestion de contenu Web WCMS (Web Content Management System), puisqu'il est notamment destiné à gérer des contenus qui seront consultés via un navigateur Web. Dans le langage courant, le terme "gestion de contenus" sans autre précision est le plus souvent associé à des pages Web pouvant être gérées via un navigateur, ce qui ne simplifie pas nécessairement les choses.
<div class="attention">Tiddler entièrement ré-écrit le 04 Décembre 2018.</div> Les tags système liés au panneau de contrôle sont important à connaître. Le tag associé de premier niveau doit être `$:/tags/ControlPanel`. 6 onglets sont livrés en standard: | Emplacement | Tiddler | |Info|$:/core/ui/ControlPanel/Info| |Appearance|$:/core/ui/ControlPanel/Appearance| |Settings|$:/core/ui/ControlPanel/Settings| |Saving|$:/core/ui/ControlPanel/Saving| |Plugins|$:/core/ui/ControlPanel/Plugins| |Keyboard Shortcuts|$:/core/ui/ControlPanel/KeyboardShortcuts| |Contrôle|$:/Template| Voir <<ref "Note1">> !Liste actuelle des onglets présents dans le panneau de contrôle : <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel]]"> </$list> !Détail : !!Info <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]]"> </$list> !!Appearance <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]]"> </$list> !!Settings <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]"> </$list> !!Saving <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]]"> </$list> !!Plugins Les plugins ne sont pas tagués. Listés comme suit : ``` {{$:/core/ui/MoreSideBar/Plugins/Plugins}} ``` ;Soit : {{$:/core/ui/MoreSideBar/Plugins/Plugins}} !!Contrôles Il n'y a pas de shadow Tiddlers dans les Tiddlers de contrôle <$list filter="[tag[$:/tags/ControlPanel/Template]]"> </$list> --- <<footnotes "Note1" "Keyboard Shortcut a été retiré du control panel. Pour le remettre, il faut retaguer `$:/core/ui/ControlPanel/KeyboardShortcuts` en `$:/tags/ControlPanel`">>
*$:/tags/EditTemplate **$:/core/ui/EditTemplate/controls **$:/core/ui/EditTemplate/title **$:/core/ui/EditTemplate/tags **$:/core/ui/EditTemplate/shadow **$:/core/ui/ViewTemplate/classic **$:/core/ui/EditTemplate/body **$:/core/ui/EditTemplate/type **$:/core/ui/EditTemplate/fields * $:/tags/EditToolbar **$:/core/ui/Buttons/delete **$:/core/ui/Buttons/cancel **$:/core/ui/Buttons/save *$:/tags/PageControls **$:/core/ui/Buttons/home **$:/core/ui/Buttons/close-all **$:/admin/Buttons/mode-web **$:/core/ui/Buttons/fold-all **$:/core/ui/Buttons/unfold-all **$:/core/ui/Buttons/permaview **$:/core/ui/Buttons/new-tiddler **$:/core/ui/Buttons/new-journal **$:/core/ui/Buttons/new-image **$:/core/ui/Buttons/import **$:/core/ui/Buttons/export-page **$:/core/ui/Buttons/control-panel **$:/core/ui/Buttons/advanced-search **$:/core/ui/Buttons/manager **$:/core/ui/Buttons/tag-manager **$:/core/ui/Buttons/language **$:/core/ui/Buttons/palette **$:/core/ui/Buttons/theme **$:/core/ui/Buttons/storyview **$:/core/ui/Buttons/encryption **$:/core/ui/Buttons/timestamp **$:/core/ui/Buttons/full-screen **$:/core/ui/Buttons/print **$:/core/ui/Buttons/save-wiki **$:/core/ui/Buttons/refresh **$:/core/ui/Buttons/more-page-actions **$:/plugins/TWaddle/tw-admin/button *$:/tags/ViewToolbar **$:/core/ui/Buttons/more-tiddler-actions **$:/plugins/ajh/favorites/template **$:/core/ui/Buttons/info **$:/core/ui/Buttons/new-here **$:/core/ui/Buttons/new-journal-here **$:/core/ui/Buttons/clone **$:/core/ui/Buttons/export-tiddler **$:/core/ui/Buttons/edit **$:/core/ui/Buttons/delete **$:/core/ui/Buttons/permalink **$:/core/ui/Buttons/permaview **$:/core/ui/Buttons/open-window **$:/core/ui/Buttons/close-others **$:/core/ui/Buttons/close **$:/core/ui/Buttons/fold-others **$:/core/ui/Buttons/fold **$:/core/ui/Buttons/fold-bar **$:/core/ui/ViewTemplate/note **$:/plugins/danielo/encryptTiddler/crypt-button
[ext[This work is licensed under a Creative Commons attribution-non commercial license [FR]|https://creativecommons.org/licenses/by-nc/3.0/deed.fr]] Trois parties: #Langage JavaScript #Navigateur #Node.Js !Les valeurs Au niveau le plus bas de l'ordinateur se trouvent les bits. Ces milliards de bits informatiques sont si nombreux qu'il faut les classifier en type d'informations que l'on appelle "valeurs". C'est la base de JS: :''Nombres'' :Arithmétique :Nombres spéciaux (infini + et - et not a number) :''Chaînes'' (strings) :Opérateurs Unary (typeof) :''Valeurs booléennes'' (vrai ou faux) de comparaison ou d'opérateurs logiques :''Valeurs vides'' (null, undefined) :Conversion automatique de types :Réducteur d'opérateurs logiques Quatre types de valeurs JavaScript sont ainsi définies : les nombres, les chaînes, les booléens et les valeurs non définies. !Structure d'un programme Les expressions et les déclarations
<<ONP Liberté Égalité Fraternité "#0000FF" "#ffffff" "#c21b15">>
*Même source. Ici il s'agit d'une documentation générale sur TiddlyWiki en français *Voir TiddlyWeb dans cette liste fabriqué avec le même template
''''Il s'agit de la macro $:/macros/svink/pageLink et du bouton dédié de la barre de menu de l'éditeur $:/core/ui/EditorToolbar/page-link qui permettent, en mode classic, d'obtenir des liens internes qui, lorsqu'ils sont appelés ferment tous les autres tiddlers ouverts. Ce procédé imite ainsi le principe de visualisation du mode zoomin, mais sans les problèmes de comportements difficiles à résoudre de ce dernier. La macro Page link permet donc de rester en mode classic tout en ne gardant ouvert que le Tiddler actif. ``` <<pageLink class:'tc-btn-invisible tc-tiddlylink' text:'le texte' tiddlers:'HeadLines'>> ``` ; Soit: <<pageLink class:'tc-btn-invisible tc-tiddlylink' text:'le texte' tiddlers:'HeadLines'>> Fonctionne bien mais le seul vrai problène est qu'il faut utiliser ce code pour chaque lien interne créé. C'est donc beauxoup plus fastidieux à réaliser que d'utiliser les classiques `[[` et `]]` Cela dit, ''en mode édition, le raccourci Alt+L appelle la fonction immédiatement.'' Un lien peut aussi ouvrir plusieurs Tiddlers: ``` <<pageLink class:'tc-btn-invisible tc-tiddlylink' text:'Le texte' tiddlers:'[[Headlines]] [[GettingStarted]]' target:'GettingStarted'>> ``` ;Soit : <<pageLink class:'tc-btn-invisible tc-tiddlylink' text:'Le texte' tiddlers:'[[Headlines]] [[GettingStarted]]' target:'GettingStarted'>>
<div align="right"><$link>{{!!caption}}</$link> (<$link>{{!!title}}</$link>)</div>
<style> body { font-family: 'Open Sans', sans-serif; } .graph .labels.x-labels { text-anchor: middle; } .graph .labels.y-labels { text-anchor: end; } .graph { height: 500px; width: 800px; } .graph .grid { stroke: #ccc; stroke-dasharray: 0; stroke-width: 1; } .labels { font-size: 13px; } .label-title { font-weight: bold; text-transform: uppercase; font-size: 12px; fill: black; } .data { fill: red; stroke-width: 1; } </style> <svg class="graph" aria-labelledby="title" role="img"> <title id="title">A line chart showing some information</title> <title id="title">A line chart showing some information</title> <g class="grid x-grid" id="xGrid"> <line x1="90" x2="90" y1="5" y2="371"></line> </g> <g class="grid y-grid" id="yGrid"> <line x1="90" x2="705" y1="370" y2="370"></line> </g> <g class="labels x-labels"> <text x="100" y="400">2008</text> <text x="246" y="400">2009</text> <text x="392" y="400">2010</text> <text x="538" y="400">2011</text> <text x="684" y="400">2012</text> <text x="400" y="440" class="label-title">Year</text> </g> <g class="labels y-labels"> <text x="80" y="15">15</text> <text x="80" y="131">10</text> <text x="80" y="248">5</text> <text x="80" y="373">0</text> <text x="50" y="200" class="label-title">Price</text> </g> <g class="data" data-setname="Our first data set"> <circle cx="90" cy="192" data-value="7.2" r="4"></circle> <circle cx="240" cy="141" data-value="8.1" r="4"></circle> <circle cx="388" cy="179" data-value="7.7" r="4"></circle> <circle cx="531" cy="200" data-value="6.8" r="4"></circle> <circle cx="677" cy="104" data-value="6.7" r="4"></circle> </g> </svg>
``` <$list filter="[tag[Applications]] [tag[Couleurs]] +[sort[title]]"> </$list> ``` <$details summary="Résultat"> <$list filter="[tag[Applications]] [tag[Couleurs]] +[sort[title]]"> </$list> </$details>
Liste des tiddlers classée par ordre alphabétique: List link tel que décrit dans la macro [[Link List|https://tiddlywiki.com/#Macros]]. ceci retourne une liste de liens formattée. ``` <<list-links "[!is[system]sort[title]]"/>> ``` Il y a des options "type" et "subtype" Voir https://tiddlywiki.com/#list-links%20Macro mais que faire pour les retirer. Plus adaptable : ``` <$list filter="[!is[system]sort[title]]"/> ``` Noter ici l'usage de `<br/>` pour les passage à la ligne. ``` <$list filter="[!is[system]sort[title]]"> <<currentTiddler>><br> </$list> ``` Ou bien : ``` <$list filter="[!is[system]sort[title]]"> <$link to=<<currentTiddler>> tooltip="Custom tooltip"><<currentTiddler>></$link><br> </$list> ``` Ou encore : ``` <$list filter="[!is[system]sort[title]]"> <$link to=<<currentTiddler>> tooltip="Custom tooltip"><$text text=<<currentTiddler>>/></$link><br> </$list> ``` ;Cette dernière méthode de présentation offre bien plus d'avantages : *<i class="fa fa-arrow-right"></i> Les tiddlers dont le titre contient un CamelCase apparaîtront comme un lien unique. *<i class="fa fa-arrow-right"></i> Les liens peuvent avoir un tooltip (au passage de la souris). *<i class="fa fa-arrow-right"></i> On peut inclure un emptyMessage=" apparaissant lorsqu'aucun tiddler n'est trouvé par le filtre (également dans la liste des liens *<i class="fa fa-arrow-right"></i> On peut référencer les champs et les tags dans le tiddler courant à l'intérieur de la liste. Par exemple {{!!fieldname}} retournera la valeur contenue dans un champ du tiddler listé. *<i class="fa fa-arrow-right"></i> Et bien plus encore
Dans un premier temps notons simplement que `A` est `has[a]`, c'est à dire que le tiddler `A` possède un champ nommé `a` et `B` sera `has[b]`. Ces notations sont réalisées en utilisant un filtre unique. Si vous imbriquez vos filtres ou si vous ajoutez le paramètre `emptyMessage` au widget list, vous pouvez effectuer des opérations supplémentaires. L'ordre est important : Il faut appliquer des solutions visant à contourner les limites de la logique opératoire. Par exemple, il n'est pas possible d'avoir une ligne d'opérations impliquant deux négations. [-(A+B)]+[-(B+C)] qui se restituerait par: ``` <$list filter="[all[]]-[has[a]]-[has[b]][all[]]-[has[b]]-[has[c]]"> </$list> ``` parce que pour instruire une négation on doit utiliser [all[]], qui ignore toute instruction située à sa droite. If you start the statement with something like !(A.B) or !(A+B) Il faut commencer en écrivant [all[]] duquel on ôte ce que l'on ne veut pas voir apparaître dans le résultat. On peut substituer has par quelques-un des autres opérateurs, (liste complète à établir). Les plus simples sont tag et field. On peut mélanger les opérateurs ensenble , tel que A pourrait être has[a] et B pourrait être field:b[foo] et ainsi de suite. You can't do `A+¬x` for any `x` where `x` isn't a single operator that supports negation. So you can do `[has[a]][!has[b]]` which is `A+¬B`, but you can't do `A+¬(B.C)` directly, you have to change it to `A+¬B+¬C`. The same thing for `A+¬(B+C)` and `A.¬(B+C)`. !Équivalence (identity) La restitution est "vrai" lorsque l'entrée est "vrai" The most basic thing building block, just one thing by itself. La forme la plus simple d'un filtre est un opérateur de filtre unique tel que [has[a]], [tag[a]], [is[current]] ``` A ⇔ [has[a]] -> <$list filter="[has[a]]"></$list>(1) ⇔ !(!A) -> <$list filter="!(!A)"></$list> Vrai mais non fonctionnel ⇔ [all[]]-[!has[a]] -> <$list filter="[all[]]-[!has[a]]"></$list> (2) ``` """ (1) Attention: vrai si le champ a n'est pas vide. Sinon il faudra écrire: `<$list filter="[has:field[a]]"></$list>` est Vrai, même si le champ a est vide. (2) Attention : Vrai si le champ n'est pas vide. Sinon, il faudra écrire : `<$list filter="[all[]]-[!has:field[a]]"></$list>` est Vrai, même si le champ a est vide. """ !Not Retourne "vrai" quand l'entrée est "faux" La négation d'une assertion , dans sa forme la plus simple est le filtre opérateur de négation comme par exemple :`[!has[a]]`, `[!tag[a]]`, `[!is[current]]` ``` !A ⇔ [!has[a]] -> <$list filter="[!has[a]]"></$list> Restitue la liste de tous les tiddlers SAUF A (1) ⇔ !(A) -> <$list filter="!(A)"></$list> Non fonctionnel. ⇔ [all[]]-[has[a]] -> <$list filter="[all[]]-[has[a]]"></$list> Restitue également la liste de tous les Tiddlers SAUF A (2) ``` """ (1) Attention : Vrai si le champ n'est pas vide. Sinon il faudra écrire : `<$list filter="[!has:filter[a]]"></$list>` est vrai même si le champ est vide (2) Attention : Vrai si le champ n'est pas vide. Sinon, il faudra écrire: `<$list filter="[all[]]-[has:field[a]]"></$list>` est vrai même si le champ est vide. """ !And This returns true when all of the inputs are true Two things simultaneously! In filters this is done like `[has[a]has[b]]` ``` A.B ⇔ [has[a]has[b]] ⇔ ¬(¬A+¬B) ⇔ [all[]]-[!has[a]]-[!has[b]] ``` !Nand This returns true unless all of the inputs are true This is the negation of and, so anything other than the two things at the same time. In filters this is done like `[all[]]-[has[a]has[b]]` ``` ¬(A.B) ⇔ [all[]]-[has[a]has[b]] ⇔ ¬A+¬B ⇔ [!has[a]][!has[b]] ``` !Or This returns true when any of the inputs are true This is the logical or, it is true when at least one of the inputs is true. Unlike or in spoken language this can be true when there are multiple true inputs. In filters this is done like `[has[a]][has[b]]` ``` A+B ⇔ [has[a]][has[b]] ⇔ ¬(¬A.¬B) ⇔ [all[]]-[!has[a]!has[b]] ``` !Nor This returns true when exactly zero inputs are true This is the negation of or, so it is true when exactly zero of the inputs are true. In filters this is done like `[all[]]-[has[a]]-[has[b]]` ``` ¬(A+B) ⇔ [all[]]-[has[a]]-[has[b]] ⇔ ¬A.¬B ⇔ [!has[a]!has[b]] ``` !Xor This returns true when exactly one of the inputs is true This is closer to or in spoken english ``` A⊕B ⇔ ??? (We can't do this directly, so substitute in the definition!) ⇔ (A.¬B)+(¬A.B) ⇔ [has[a]!has[b]][!has[a]has[b]] ``` !More Complex Statements ``` A+(B.C) ⇔ [has[a]][has[b]has[c]] ⇔ A+¬(¬B+¬C) (You can not make this filter directly because filters are evaluated left to right and [all[]] replaces the input list, so commutative property!!) ⇔ ¬(¬B+¬C)+A ⇔ [all[]]-[!has[b]]-[!has[c]][has[a]] ``` ``` A+¬(B.C) ⇔ ??? (You can't do this in this order... So commutative property thingy.) ⇔ ¬(B.C)+A ⇔ [all[]]-[has[b]has[c]][has[a]] ⇔ A+¬B+¬C ⇔ [has[a]][!has[b]][!has[c]] ⇔ ¬(¬A.B.C) (Another De Morgan's law, because I said so.) ⇔ [all[]]-[!has[a]has[b]has[c]] ``` Note that `A+¬(B.C)` is not the same as `[has[a]]-[has[b]has[c]]`, which is `A.¬(B.C)` ``` A.¬(B.C) ⇔ [has[a]]-[has[b]has[c]] ⇔ A.(¬B+¬C) (After De Morgan's law, This one can't be done directly, so we distribute A) ⇔ A.¬B+A.¬C ⇔ [has[a]!has[b]][has[a]!has[c]] ⇔ ¬(¬A+B)+¬(¬A+C) (Another De Morgan's law, just for fun...) ⇔ This one can't be done because you can't or a negation using filters ``` ``` A.¬(B+C) ⇔ ??? (Can't do this directly and commutative property won't save us here... De Morgan's law!) ⇔ A.¬B.¬C ⇔ [has[a]!has[b]!has[c]] ⇔ ¬(¬A+B+C) (Another De Morgan's law, just for fun...) ⇔ [all[]]-[!has[a]has[b]has[c]] ``` ``` ¬(A+B)+¬(B+C) ⇔ ??? (Can't do this directly because there are two negations of non-trivial things) ⇔ ¬((A+B).(B+C)) (can't do this, try De Morgan's again?) ⇔ (¬A.¬B)+(¬B.¬C) (we can work with this) ⇔ [!has[a]!has[b]][!has[b]!has[c]] ``` ``` ¬(A.B)+¬(C.D) ⇔ ??? (Can't do this directly because it has two negations again) ⇔ ¬((A.B).(C.D)) ⇔ ¬(A.B.C.D) ⇔ [all[]]-[has[a]has[b]has[c]has[d]] ``` ``` ¬(A.B).¬(C.D) ⇔ ??? ⇔ ¬((A.B)+(C.D)) ⇔ ¬(A.B).¬(C.D) ⇔ [all[]]-[has[a]has[b]]-[has[c]has[d]] ``` ``` ¬(A+B).¬(C+D) ⇔ ??? ⇔ ¬((A+B)+(C+D)) ⇔ ¬(A+B+C+D) ⇔ ¬A.¬B.¬C.¬D ⇔ [!has[a]!has[b]!has[c]!has[d]] ⇔ ¬(A+B+C+D) ⇔ [all[]]-[has[a]]-[has[b]]-[has[c]]-[has[d]] ``` ``` ¬(A+B).¬(C.D) ⇔ ??? ⇔ ¬((A+B)+(C.D)) ⇔ ¬(A+B+(C.D)) ⇔ [all[]]-[has[a]]-[has[b]]-[has[c][has[d]] ⇔ ¬A.¬B.¬(C.D) ⇔ [!has[a]!has[b]]-[has[c]has[d]] ``` ``` (A+B).¬(C.D) ⇔ ??? ⇔ ¬(¬(A+B)+(C.D)) ⇔ ¬((¬A.¬B)+(C.D)) ⇔ ¬(¬A.¬B).¬(C.D) ⇔ [all[]]-[!has[a]!has[b]]-[has[c]has[d]] ``` ``` A.¬((B.C)+¬(D.E)) ⇔ ??? ⇔ A.(¬(B.C).(D.E)) ⇔ A.¬(B.C).D.E ⇔ A.D.E.¬(B.C) ⇔ [has[a]has[d]has[e]]-[has[b]has[c]] ```
!Feuille de présence {{NewUser}} !!!Liste des présents <table> <th>Identifiant</th> <th>Nom</th> <th>Prénom</th> <th>E-mail</th> <$list filter="[!is[system]!has[draft.of]tag[VELCS]sort[created]]"> <tr> <td><$link to={{!!title}}><$view field="title"/></$link></td> <td><$view field="_nom"/></td> <td><$view field="_prenom"/></td> <td><$view field="_email"/></td> </tr> </$list> </table>
Ici, on compte et on liste tous les tiddlers possédant le champ `sub.num` dont la valeur est `01` ``` !!Suivi Champs (<$count filter="""[field:sub.num[01]]""" />) <$list filter="""[field:sub.num[01]sort[title]]"""> </$list> ``` <$details summary="Résultat"> !!Suivi Champs (<$count filter="""[field:sub.num[01]]""" />) <$list filter="""[field:sub.num[01]sort[title]]"""> </$list> </$details> <br/> Note : il est important d'encadrer les filtres par des `"""` sans lesquels les champs dont le contenu possèderaient des espaces ne sont pas récupérés, venant ainsi fausser le compteur.
<<list-links "[all[current]tagging[]sort[title]]">>
``` <ul><$list filter="[!tag[hidden]tag[Q&R]sort[]]"> <li> <$link to={{!!title}}><$view field="title"/></$link> : <$list filter="[all[current]tags[]]"><$link to={{!!title}}> <$view field="title"/></$link></$list> </li></$list> </ul> ``` <$details summary="Résultat"> <ul><$list filter="[!tag[hidden]tag[Q&R]sort[]]"> <li> <$link to={{!!title}}><$view field="title"/></$link> : <$list filter="[all[current]tags[]]"><$link to={{!!title}}> <$view field="title"/></$link></$list> </li></$list> </ul> </$details> <br/> Les puces et objets similaires fonctionnant à l'intérieur des widgets, on a juste besoin d'ajouter une nouvelle ligne de code: ``` <$list filter="[!tag[hidden]tag[Q&R]sort[]]"> * <$link to={{!!title}}><$view field="title"/></$link>: <$view field="tags"/> </$list> ``` <$details summary="Résultat"> <$list filter="[!tag[hidden]tag[Q&R]sort[]]"> * <$link to={{!!title}}><$view field="title"/></$link> <$view field="tags"/> </$list> </$details> En résultat on obtient un espacement plus large des éléments de la liste. Si cette présentation ne convient pas, on peut toujours utiliser la balise `<li>`. De plus, il est possible d'utiliser le markup wiki (wikitext). En voici l'illustration finale: ``` <$list filter="[!tag[hidden]tag[Q&R]sort[]]"> * <$link to={{!!title}}><$view field="title"/></$link> -<$list filter="[all[current]tags[]]"><$link to={{!!title}}> <$view field="title"/></$link></$list> </$list> ``` <$details summary="Résultat"> <$list filter="[!tag[hidden]tag[Q&R]sort[]]"> * <$link to={{!!title}}><$view field="title"/></$link> -<$list filter="[all[current]tags[]]"><$link to={{!!title}}> <$view field="title"/></$link></$list> </$list> </$details>
!La liste des plugins de ce wiki: !!En liste: `$:/core/ui/MoreSideBar/Plugins/Plugins` Soit {{$:/core/ui/MoreSideBar/Plugins/Plugins}} !!Dans le Control Panel: `{{$:/core/ui/ControlPanel/Plugins}}` Soit: {{$:/core/ui/ControlPanel/Plugins}}
<$details summary="Résultat"> <$list filter="[prefix[$:/doc-user]]"> </$list> </$details>
\define AppelAuto(titre, tag) <$list filter="[tag[$tag$]]" variable="A"> <<A>> </$list> \end ``` \define AppelAuto(titre, tag) <$list filter="[tag[$tag$]]" variable="A"> <<A>> </$list> \end ``` Avec Tous les tiddlers tagués Framework ``` <<AppelAuto Framework Framework>> ``` <$details summary="Résultat"> <<AppelAuto Framework Framework>> </$details> <br/> Ou Tous les tiddlers enfants de Framework dont le tag est Spectre ``` <<AppelAuto Framework Spectre>> ``` <$details summary="Résultat"> <<AppelAuto Framework Spectre>> </$details>
Source: https://tiddlywiki.com/#StateMechanism. C'est le contenu de la table Open, mais la présentation ne se fait pas en liste. ``` <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop"> <$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">×</$button> <$link to={{!!title}}><$view field="title"/></$link> </$list> ``` ;Soit : <$list filter="[list[$:/StoryList]]" history="$:/HistoryList" storyview="pop"> <$button message="tm-close-tiddler" class="tc-btn-invisible tc-btn-mini">×</$button> <$link to={{!!title}}><$view field="title"/></$link> </$list>
|Objet|find the titles that list the input titles|h |[[Input|Filter Syntax]] <i class="fa fa-info"></i>|[[Une sélection de titres|Title Selection]]| |[[parameter|Filter Parameter]]|F = the name of a [[field|TiddlerFields]], defaulting to list| |<<trad "output">>|the titles in which field F mentions any of the input titles| <i class="fa fa-info"></i> : <<trad "input">> F est supposé être une [[liste de titres|Title List]]. Each <<trad "input">> title is processed in turn. A list of tiddlers whose <<.place F>> field mentions it is generated (in no particular order) and [[dominantly appended|Dominant Append]] to the operator's overall output. <<.operator-examples "listed">>
<div class="column col-sm-12"> <div class="toast toast-success"> *A à K sont les titres de tiddlers *`<<currentTiddler>>` fait donc référence aux titres (title) des tiddlers mentionnés dans la liste, et non pas au titre du présent tiddler. </div> </div> ``` <$list filter="A B C D E F G H I J K"> |<<currentTiddler>> | |h |caption | {{!!caption}} | |cuisson | {{!!cuisson}} | |sub.num | {{!!sub.num}} | </$list> ``` ;Soit (présentation en tableau html): <$list filter="A B C D E F G H I J K"> <table class="table table-striped table-hover"> <thead> <tr> <th><<currentTiddler>></th> <th>Champs</th> </tr> </thead> <tbody> <tr> <td>caption</td> <td>{{!!caption}}</td> </tr> <tr> <td>Description</td> <td>{{!!cuisson}}</td> </tr> <tr> <td>Classement</td> <td>{{!!sub.num}}</td> </tr> </tbody> </table> </$list>
`<<list-links "[tag[Macros]]">>` ;Soit: <<list-links "[tag[Macros]]">>
\define fhere() <table class="tc-view-field-table"> <tbody> <$list filter="[all[current]fields[]sort[title]] -text -tags -created -modified -title" template="$:/core/ui/TiddlerFieldTemplate" variable= "listItem"/> </tbody> </table> \end <<fhere>> ;Avec le code suivant : ``` <table class="tc-view-field-table"> <tbody> <$list filter="[all[current]fields[]sort[title]] -text -tags -created -modified -title" template="$:/core/ui/TiddlerFieldTemplate" variable= "listItem"/> </tbody> </table> \end <<fhere>> ``` Le tiddler étant tagué `$:/tags/Macro` `<<fhere>>` peut être appelé depuis n'importe quel Tiddler.
``` <$list filter='[all[]each[creator]get[creator]]'> </$list> ``` ;Soit : <$list filter='[all[]each[creator]get[creator]]'> </$list>
``` <<list-links filter:"[all[current]tagging[]]">> ```
Curieux, la macro toc étant une macro récursive relativement directe, mais possible ``` <$list filter=" [[TableOfContents]] [[TableOfContents]tagging[]] [[TableOfContents]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]tagging[]tagging[]] "> <$link>{{!!title}}</$link><br> </$list> ``` <$details summary="Résultat"> <$list filter=" [[TableOfContents]] [[TableOfContents]tagging[]] [[TableOfContents]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]tagging[]tagging[]] "> <$link>{{!!title}}</$link><br> </$list> </$details> <br/> <br/> En ajoutant les op'erateurs 'tagging[]' en fonction du niveau de profondeur désiré. Si vous souhaitez imprimer un filtre généré dynamiquement, qui est utilisé pour créer la table des matières, cela devrait être possible aussi, mais le résultat sera Super laid et à peine lisible pour les humains. Nous devons faire face à "infini récursivité protection ", ce qui rend le filtre laid.
Par exemple, quels sont les tiddlers tagués "Tutoriel : ``` <$list filter="[tag[Tutoriel]sort[title]]"/> ``` ;Soit: <<< <$list filter="[tag[Tutoriel]sort[title]]"/> <<< Combien y en a-t-il ? ``` <$count filter="[tag[Tutoriel]]"/> ``` ;Soit: <<< <$count filter="[tag[Tutoriel]]"/> <<< Un bon exemple consiste à étudier le code du tiddler '$:/core/ui/MoreSideBar/Tags': ``` <$list filter="[tags[]!is[system]sort[title]]"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <small class= "tw-menu-list-count"><$count filter="[all[current]tagging[]]"/></small> </$list> ``` ;Soit : <$details summary="Résultat"> <$list filter="[tags[]!is[system]sort[title]]"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <small class= "tw-menu-list-count"><$count filter="[all[current]tagging[]]"/></small> </$list> </$details>
Lister les tiddlers non tagués: ``` <<list-links filter:[untagged[all]!prefix[$:/]]>> ``` <$details summary="Résultat"> <<list-links filter:[untagged[all]!prefix[$:/]]>> </$details> <br/> <br/> La même chose mais avec un code plus élégant : ``` <<list-links filter:"[!is[system]untagged[]]">> ``` <$details summary="Résultat"> <<list-links filter:"[!is[system]untagged[]]">> </$details>
Il s'agit ici de lister les tiddlers ne faisant pas partie de la table des matières. Le principe est le suivant : chaque fois que vous ajoutez un nouvel opérateur `tagging[]` dans ce code, vous supprimez les tiddlers du niveau supérieur dans la hiérarchie de la table des matières. Donc si votre table des matières comporte par exemple un maximum de trois niveaux sous le niveau racine, le code ci-dessus rendra tous les tiddlers non systèmes qui ne sont pas inclus dans la table des matières. Pour ajouter un niveau de profondeur supplémentaire il suffit d'ajouter un terme supplémentaire au code , dans l'exemple ci-dessus : `-[tag[TableOfContents]tagging[]tagging[]tagging[]tagging[]]` Il y a aussi probablement une solution qui consisterait à faire fonctionner le système quelque soit le nombre de niveaux... ``` <$list filter='[!is[system]]-[tag[TableOfContents]]-[tag[TableOfContents]tagging[]]-[tag[TableOfContents]tagging[]tagging[]]-[tag[TableOfContents]tagging[]tagging[]tagging[]]'> </$list> ``` ;Soit: <$list filter='[!is[system]]-[tag[TableOfContents]]-[tag[TableOfContents]tagging[]]-[tag[TableOfContents]tagging[]tagging[]]-[tag[TableOfContents]tagging[]tagging[]tagging[]]'> </$list>
``` <dl> <$list filter="[is[current]fields[]] -[[text]]" variable="fieldname"> <dt><$text text=<<fieldname>>/></dt> <dd><$view field=<<fieldname>>/></dd> </$list> </dl> ``` ;Soit: <dl> <$list filter="[is[current]fields[]] -[[text]]" variable="fieldname"> <dt><$text text=<<fieldname>>/></dt> <dd><$view field=<<fieldname>>/></dd> </$list> </dl>
<div class="attention"> Remarque: Cette liste est également directement disponible ans le panneau de contrôle: Info -> Advanced -> Fields tab </div> ``` <$list filter="[fields[]]"> </$list> ``` <$details summary="Résultat"> <$list filter="[fields[]]"> </$list> </$details>
Good question Mate !
;<$button>1</$button> Depuis la version 5.1.16 il y a beaucoup plus simple: `<<tag "Macros">>` Soit: <<tag "Macros">> ;<$button>2</$button> Il est possible de lister un tag via un bouton avec ce code: ``` <$button popup="$:/SamplePopupState">Tiddlers tagués Macros</$button> <$reveal type="popup" state="$:/SamplePopupState"> <div class="tc-drop-down"> {{{ [tag[Macros]] }}} </div> </$reveal> ``` Soit: <$button popup="$:/SamplePopupState1">Tiddlers tagués Macros</$button> <$reveal type="popup" state="$:/SamplePopupState1"> <div class="tc-drop-down"> {{{ [tag[Macros]] }}} </div> </$reveal> ;<$button>3</$button> On peut aussi doubler ce bouton avec une liste des tags mentionnés. Par exemple: ``` <$button popup="$:/SamplePopupState">Tiddlers tagués Macros</$button> <$reveal type="popup" state="$:/SamplePopupState"> <div class="tc-drop-down"> {{{ [tag[Macros]] }}} </div> </$reveal> <<list-links filter:"[tag[Macros]]">> ``` Soit: <$button popup="$:/SamplePopupState">Tiddlers tagués Macros</$button> <$reveal type="popup" state="$:/SamplePopupState"> <div class="tc-drop-down"> {{{ [tag[Macros]] }}} </div> </$reveal> <<list-links filter:"[tag[Macros]]">> Ceci est rendu possible grâce au widget $:/core/modules/widgets/reveal.js implémenté en standard au core de ~TiddlyWiki. Lister un tag via un bouton ne requiert donc aucun plugin ou aucune macro ou aucun widget supplémentaires. Voir exemple https://tiddlywiki.com/#RevealWidget ;<$button>4</$button> Liste identique mais présentée de manière différente via le template `$:/core/ui/TagTemplate`: `{{Macros||$:/core/ui/TagTemplate}}` Soit: {{Macros||$:/core/ui/TagTemplate}} Voir aussi le tiddler [[Template]] ;<$button>5</$button> Et pour une présentation en liste simple : ``` <<list-links filter:"[tag[Macros]]">> ``` ;Soit: <<list-links filter:"[tag[Macros]]">>
Lists play a central role in TiddlyWiki and there are several aspects of lists worth understanding. The following is a brief run-through of some of the more common techniques associated with lists. Note that lists in ~TiddlyWiki often don’t have the typical one-item-per-row appearance but is instead a wider concept to present data. !Typed lists !!~WikiText WikiText lists are manually typed lists, including some “special character” to specify what sort of list it is and how it should be displayed. Examples include bullet lists created with asterisks (*) and numbered lists (#). Behind the scenes, ~WikiText lists are based on the simple `<ul>` and `<li>` html-elements. For more, see [[Lists in WikiText]]. A typical typed list in WikiText might look something like: ``` * Greatest Movies of All Time ** Casa Blanca ** Pride and Prejudice and Zombies ``` and render as: <<< * Greatest Movies of All Time ** Casa Blanca ** Pride and Prejudice and Zombies <<< !Generated lists Generated lists center around [[filters|Filters]] in which [[filter operators|Filter Operators]] specify which tiddlers and what aspects of these that are desired as output, for example the tiddlers titles or their texts, etc. !!~ListWidget The ListWidget is the most powerful tool for creating lists. It allows the filtered output to be manipulated and styled into forms that may not seem to resemble lists at all, for example tables or complex texts. For more details, see [[ListWidget]]. An example to show all tiddlers tagged with "Traductions" might look like: ``` <$list filter="[tag[Traductions]]"><$view field="title"/><br/></$list> ``` ;Soit : <<< <$list filter="[tag[Traductions]]"><$view field="title"/><br/></$list> <<< <<.tip """Even tiddlers themselves are made with the ~ListWidget. The [[ViewTemplate|$:/core/ui/ViewTemplate]] makes use of the ListWidget to fetch all specified templates that are used to show a tiddlers title, tags, text and more.""">> !!Filtered transclusion The short form for filtered transclusion `{{{...}}}` takes a filter as input and outputs a linked-list of matching titles. You can also apply a [[template|Transclusion with Templates]], for example `{{{ [tag[HelloThere]] || $:/core/ui/TagTemplate }}}` renders like: <<< {{{ [tag[HelloThere]] || $:/core/ui/TagTemplate }}} <<< !!list-links Macro The [[list-links|list-links Macro]] macro gives a preformatted list, typically a bullet list, in a more simplified way than by using the ListWidget. Behind the scenes it really is the ListWidget applying a default template to each list item. `<<list-links "[tag[HelloThere]]">>` gives: <<list-links "[tag[HelloThere]]">> !Other “list related” features [[list|ListField]], [[list-before|Order of Tagged Tiddlers]] and [[list-after|Order of Tagged Tiddlers]] are all field names to control the position of tiddlers in a list. [[Fields|TiddlerFields]] are a way to add additional bits of structured information to a tiddler such as date, quantity, category, etc. [[list|list Operator]] and [[listed|listed Operator]] are //filter operators// to, respectively, select and find titles in lists.
Voir le code css : [[$:/css4Colonnes]] et [[$:/css2Colonnes]] pour 2 colonnes suelement Notez bien les différents endroits où vous devez spécifier le nombre de colonnes. Pour afficher votre résultat formatez la sortie comme suit: ``` @@.fourcolumns <$list filter="[tag[Sources]]" variable="foo"><br> <<foo>> </$list> @@ ``` ; Par exemple, la liste des Tiddlers tagués "Sources": ``` @@.fourcolumns <$list filter="[tag[Sources]limit[24]]" variable="foo"><br> <<foo>> </$list> @@ ``` ; Soit: @@.fourcolumns <$list filter="[tag[Sources]limit[24]]" variable="foo"><br> <<foo>> </$list> @@
[[Champ de tiddler|TiddlerFields]], `list` peut aider à structurer son contenu. Sa valeur est une [[liste de titres|Title List]], et peut être maniée de différentes façons<<:>> * Le champ `list` d'un tiddler utilisé comme étiquette détermine l'ordre des tiddlers portant ce tag - voir [[ Étiqueter |Tagging]] pour plus de détails * Le [[filtre|Filters]] `list` sélectionne les entrées d'une liste * Le [[filtre|Filters]] `listed` sélectionne les tiddlers listant le(s) tiddler(s) sélectionné(s) * Le NavigatorWidget manipule un tiddler $:/StoryList contenant un champ `list` des tiddlers affichés dans la colonne principale ''Récents''
\define listLinks(tiddlerName) <$list filter="[[$tiddlerName$]tags[]]"> <$macrocall $name="tagTiddlerTemplate" tiddlerName="$tiddlerName$" tagName=<<currentTiddler>> /> </$list> \end
{{ListLinksMacro||caption}}
Forme générale: ``` <<listLinks Nom-du-Tiddler>> ``` Exemple : ``` <<listLinks Tutoriel>> ``` ;Soit: <<listLinks Tutoriel>>
{{Lists||caption}}
Le widget ~ListWidget affiche la suite de tiddlers qui correspondent au [[tiddler filtre|Filters]]. Il répond à de nombreux cas d'utilisation<<:>> * Affichage de listes personnalisées de liens, comme le menu latéral de TiddlyWiki5 * Listes personnalisées, comme "tous les tiddlers étiquetés 'task' et non-étiquetés 'fait'" * Lister chacun des tags appliqués au tiddler * Manipuler le déroulé principal Les tiddlers sont affichés en transcluant chacun tour à tour via un gabarit. Il existe plusieurs façons de spécifier le gabarit et de contrôler le comportement de la liste. ! Exemples ''Liste brute'' ``` <$list filter="[tag[Widgets]sort[title]]"/> ``` Affichera <<:>> <<< <$list filter="[tag[ListWidget]sort[title]]"/> <<< ''Sorties personnalisées'' ``` <$list filter="[tag[ListWidget]sort[title]]"> <<currentTiddler>> {{||$:/core/ui/ViewTemplate/tags}} </$list> ``` Affichera <<:>> <<< <$list filter="[tag[ListWidget]sort[title]]"> <<currentTiddler>> {{||$:/core/ui/ViewTemplate/tags}} </$list> <<< ''Gabarit personnalisé'' ``` <$list filter="[tag[ListWidget]sort[title]]" template="$:/core/ui/ViewTemplate/subtitle"/> ``` Affichera <<:>> <<< <$list filter="[tag[ListWidget]sort[title]]" template="$:/core/ui/ViewTemplate/subtitle"/> <<< !! Listes Groupées Se reporter à [[Listes imbriquées|GroupedLists]] pour voir comment générer des listes groupées et imbriquées en utilisant le [[widget list|ListWidget]]. ! Contenu et Attributs Le contenu du widget `<$list>` est un gabarit optionnel à utiliser pour l'affichage de chaque tiddler de la liste. Autrement, le gabarit peut être spécifié comme titre du tiddler dans le ``gabarit`` attribut. En l'absence de directive, le gabarit par défaut affiche juste le titre du tiddler. |!Attribut |!Description | |filter |Le [[filtre du tiddler|Filters]] à afficher | |template |Le titre du tiddler gabarit pour transclure chaque tiddler de la liste. Si aucun gabarit n'est spécifié, Le corps du widget list sert de gabarit. En l'absence de corps, un simple lien vers le tiddler est renvoyé. | |editTemplate |Un gabarit différent pour la modification des [[Ébauches de Tiddlers|DraftMechanism]] en mode édition | |variable |Le nom d'une [[variable|Variables]] dans laquelle le titre de chaque tiddler listé est mémorisé. Par défaut ''currentTiddler'' | |emptyMessage |Message à afficher quand la liste est vide | |storyview |Nom optionnel du module responsable de l'animation/traitement de la liste | |history |Le titre du tiddler contenant l'historique de navigation | !! Mode édition Le widget `<$list>` peut afficher de façon optionnelle les tiddlers ébauche via un gabarit différent lors de l'édition, voir [[Mécanisme d'Ébauche|DraftMechanism]]. !! attribut `storyview` L'attribut optionnel `storyview` indique le nom du module qui anime les changements dans la liste (incluant la navigation). Le noyau intègre les animations (storyview) suivantes<<:>> * `classic`<<:>> affiche la liste comme une séquence ordonnée de tiddlers * `zoomin`<<:>> affiche juste le tiddler courant dans la liste, avec une animation zoom à la navigation entre les tiddlers * `pop`<<:>> rétrécit les éléments sur place Afin que les storyviews s'animent correctement, chaque entrée de la liste doit être un élément du DOM en mode bloc unique. !! Historique et navigation L'attribut optionnel `history` indique le nom du tiddler utilisé pour tracer le tiddler en cours pour les besoins de la navigation. Quand le tiddler history change, l'affichage de la liste répond en demandant à listview de diriger la navigation jusqu'au nouveau tiddler. Voir [[Mécanisme Historique|HistoryMechanism]] pour les détails.
A ''Local Variable'' is a variable that is declared in the enclosing expression through either a [[let assignment|LetConstruct]] or a [[function parameter|Function]]. These variables behave differently than TiddlyWiki's `<<variables>>`. They will only be available in the piece of formula code where they appear, //not// in any transcluded formulas. Local variables can be captured by a [[Function]].
Plugin - Bimlas https://gitlab.com/bimlas/tw5-locator For those who use many tags or store many different topics in a common wiki the Locator plugin is ''a table of contents widget and an enhanced search engine'' that gives you the opportunity to ''filter results by related tags''. Unlike table of contents, standard search and list of tags, this plugin offers these features in an organic, collaborative way.
*Auteur: ooktech *Translating Between Filters and Logic Statements
<svg xmlns="http://www.w3.org/2000/svg" width="166" height="166" viewBox="-40 -40 80 80"> <circle r="39"/> <path d="M0,38a38,38 0 0 1 0,-76a19,19 0 0 1 0,38a19,19 0 0 0 0,38" fill="#fff"/> <circle cy="19" r="5" fill="#fff"/> <circle cy="-19" r="5"/> </svg>
<link href='https://fonts.googleapis.com/css?family=Roboto:100,400,300,500,700' rel='stylesheet' type='text/css'> <div align="center" class="fond"> <div style="width:80%;"> <div class="style_prevu_kit" style="background-color:#cb2025;"></div> <div class="style_prevu_kit" style="background-color:#f8b334;"></div> <div class="style_prevu_kit" style="background-color:#97bf0d;"></div> <div class="style_prevu_kit" style="background-color:#00a096;"></div> </div> </div> <style> .fond { zoom:50%; } .style_prevu_kit { display:inline-block; border:0; width:96px; height:105px; position: relative; -webkit-transition: all 200ms ease-in; -webkit-transform: scale(1); -ms-transition: all 200ms ease-in; -ms-transform: scale(1); -moz-transition: all 200ms ease-in; -moz-transform: scale(1); transition: all 200ms ease-in; transform: scale(1); } .style_prevu_kit:hover { box-shadow: 0px 0px 150px #000000; z-index: 2; -webkit-transition: all 200ms ease-in; -webkit-transform: scale(1.5); -ms-transition: all 200ms ease-in; -ms-transform: scale(1.5); -moz-transition: all 200ms ease-in; -moz-transform: scale(1.5); transition: all 200ms ease-in; transform: scale(1.5); } </style>
<svg class="svg light-bulb" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="100 0 800 512"> <g id="Base" fill="#777"> <path class="base" d="M308.5,399.3H207.5c-4.8,0-8.7,3.9-8.7,8.7v0c0,4.8,3.9,8.7,8.7,8.7h100.9c4.8,0,8.7-3.9,8.7-8.7v0 C317.2,403.3,313.2,399.3,308.5,399.3z"/> <path class="base" d="M308.5,426.1H207.5c-4.8,0-8.7,3.9-8.7,8.7l0,0c0,4.8,3.9,8.7,8.7,8.7h100.9c4.8,0,8.7-3.9,8.7-8.7l0,0 C317.2,430,313.2,426.1,308.5,426.1z"/> <path class="base" d="M280.6,452.1h-45.2c-4.8,0-8.7,3.9-8.7,8.7l0,0c0,4.8,3.9,8.7,8.7,8.7h45.2c4.8,0,8.7-3.9,8.7-8.7l0,0 C289.3,456.1,285.4,452.1,280.6,452.1z"/> <path class="base" d="M308.5,372.6H207.5c-4.8,0-8.7,3.9-8.7,8.7v0c0,4.8,3.9,8.7,8.7,8.7h100.9c4.8,0,8.7-3.9,8.7-8.7v0 C317.2,376.6,313.2,372.6,308.5,372.6z"/> </g> <g fill="#ffcc55"> <g id="Cogs"> <g> <path id="gear-3" class="gear" d="M243.2,144.5l0-4.5l-11.5-3.6c-0.3-2.5-0.8-4.9-1.4-7.3l9.4-7.5l-1.7-4.2l-12.1,1c-1.2-2.2-2.6-4.3-4.2-6.3 l5.9-10.7l-3.2-3.2l-11,5.7c-2-1.6-4.1-3-6.3-4.2l1.3-12.3l-4.2-1.7l-8,9.6c-2.2-0.6-4.5-1-6.8-1.3L186,82h-4.5l-3.7,11.9 c-2.4,0.3-4.7,0.7-7,1.3l-7.7-9.7l-4.2,1.7l1,12.4c-2.2,1.2-4.3,2.6-6.3,4.2l-10.8-6l-3.2,3.2l5.7,11c-1.5,1.9-2.8,3.8-4,5.9 l-12.3-1.4l-1.7,4.2l9.5,8c-0.7,2.3-1.2,4.7-1.5,7.2l-11.9,3.4l0,4.5l11.9,3.8c0.3,2.5,0.8,5,1.4,7.3l-9.7,7.8l1.7,4.2l12.4-1.1 c1.2,2.1,2.6,4.2,4.1,6.1l-5.7,10.4l3.2,3.2l10.5-5.5c2,1.6,4.1,3,6.3,4.3l-1.3,11.7l4.2,1.7l7.6-9.1c2.5,0.7,5.2,1.3,7.9,1.6 l3.3,11.4l4.5,0l3.6-11.4c2.5-0.3,5-0.8,7.4-1.5l7.5,9.4l4.2-1.7l-1-12.1c2-1.2,4-2.5,5.8-3.9l10.6,5.8l3.2-3.2l-5.6-10.7 c1.5-1.9,2.9-4,4.2-6.2l11.9,1.4l1.8-4.2l-9.2-7.8c0.7-2.5,1.2-5.1,1.6-7.7L243.2,144.5z M194.8,131.9l21.2-12.3 c1.2,1.7,2.2,3.5,3.1,5.4l-21.2,12.3C197.3,135.3,196.2,133.5,194.8,131.9z M180.6,181.4l-0.3-24.5c1,0.2,2.1,0.3,3.2,0.3 c1.1,0,2.1-0.1,3.1-0.3l0.3,24.4c-1.1,0.1-2.2,0.2-3.4,0.2C182.5,181.5,181.6,181.5,180.6,181.4z M183.5,151.2 c-5,0-9.1-4.1-9.1-9.1s4.1-9.1,9.1-9.1s9.1,4.1,9.1,9.1S188.5,151.2,183.5,151.2z M183.8,102.6c1.1,0,2.2,0.1,3.2,0.1v24.5 c-1-0.2-2.1-0.4-3.2-0.4c-1,0-1.8,0.1-2.8,0.3v-24.4C182,102.7,182.8,102.6,183.8,102.6z M215.6,118.9l-21.2,12.3 c-1.8-1.8-4.4-3.1-6.4-3.8v-24.7C199,104,209.2,110.1,215.6,118.9z M180,127.4c-3,0.7-5,1.9-6.8,3.7l-21.4-12.1 c6.5-8.9,16.2-15,28.2-16.2V127.4z M151,119.7l21.4,12.1c-1.4,1.5-2.5,3.3-3.2,5.3l-21.3-12C148.8,123.2,149.9,121.4,151,119.7z M147.5,125.9l21.4,12.1c-0.4,1.3-0.6,2.7-0.6,4.1c0,1.3,0.2,2.6,0.5,3.8l-21.1,12.8c-2.3-5-3.6-10.7-3.6-16.6 C144.1,136.3,145.3,130.8,147.5,125.9z M169.1,146.7c0.6,2,1.7,3.9,3.1,5.4l-20.9,12.7c-1.2-1.7-2.3-3.5-3.2-5.4L169.1,146.7z M151.8,165.5l21-12.7c1.8,1.8,4.1,3.2,6.7,3.9l0.3,24.7C168.3,180.2,158.3,174.3,151.8,165.5z M187.7,181.3l-0.3-24.6 c2.6-0.7,4.9-2,6.7-3.8l21.3,12.4C209,174,199.1,180.1,187.7,181.3z M215.9,164.5l-21.2-12.3c1.4-1.5,2.5-3.4,3.1-5.4l21.2,12.3 C218.2,161,217.1,162.8,215.9,164.5z M219.4,158.3L198.2,146c0.3-1.3,0.5-2.6,0.5-3.9c0-1.3-0.2-2.6-0.5-3.9l21.3-12.4 c2.2,4.9,3.5,10.4,3.5,16.2C223,147.9,221.7,153.4,219.4,158.3z"/> <animateTransform attributeName="transform" dur="11.7" repeatCount="indefinite" restart="always" type="rotate" values="0 183.3 142.1; 360 183.3 142.1;"/> </g> <g> <path class="main-rightSpin cog" d="M250.7,328.8l0-2.7l-6.9-2.2c-0.2-1.5-0.5-2.9-0.9-4.4l5.6-4.5l-1-2.5l-7.2,0.6c-0.7-1.3-1.6-2.6-2.5-3.7 l3.5-6.4l-1.9-1.9l-6.5,3.4c-1.2-0.9-2.4-1.8-3.8-2.5l0.8-7.3l-2.5-1l-4.8,5.7c-1.3-0.4-2.7-0.4-4.1-0.6l-2.1-6.9h-2.7l-2.2,6.9 c-1.4,0.2-2.8,0.3-4.2,0.7l-4.6-5.8l-2.5,1l0.6,7.4c-1.3,0.7-2.6,1.6-3.7,2.5l-6.5-3.6l-1.9,1.9l3.4,6.6c-0.9,1.1-1.7,2.3-2.4,3.5 l-7.3-0.8l-1,2.5l5.7,4.8c-0.4,1.4-0.7,2.8-0.9,4.3l-7.1,2l0,2.7l7.1,2.3c0.2,1.5,0.5,3,0.9,4.4l-5.8,4.6l1,2.5l7.4-0.7 c0.7,1.3,1.5,2.5,2.4,3.6l-3.4,6.2l1.9,1.9l6.3-3.3c1.2,0.9,2.5,1.8,3.8,2.6l-0.8,7l2.5,1l4.6-5.4c1.5,0.4,3.1,0.7,4.7,0.9l2,6.8 l2.7,0l2.1-6.8c1.5-0.2,3-0.5,4.4-0.9l4.5,5.6l2.5-1l-0.6-7.2c1.2-0.7,2.4-1.5,3.5-2.3l6.3,3.5l1.9-1.9l-3.3-6.4 c0.9-1.2,1.8-2.4,2.5-3.7l7.1,0.8l1-2.5l-5.5-4.6c0.4-1.5,0.7-3,0.9-4.6L250.7,328.8z M221.8,321.3l12.6-7.3c0.7,1,1.3,2.1,1.9,3.2 l-12.6,7.3C223.3,323.4,222.6,322.3,221.8,321.3z M213.4,350.9l-0.2-14.6c0.6,0.1,1.2,0.2,1.9,0.2c0.6,0,1.2-0.1,1.8-0.2l0.2,14.6 c-0.7,0.1-1.3,0.1-2,0.1C214.5,350.9,213.9,350.9,213.4,350.9z M215.1,332.8c-3,0-5.4-2.4-5.4-5.4s2.4-5.4,5.4-5.4s5.4,2.4,5.4,5.4 S218.1,332.8,215.1,332.8z M214.9,303.9c0.7,0,1.1,0,2.1,0.1v14.6c-1-0.1-1.4-0.2-2.1-0.2c-0.6,0-0.9,0.1-1.9,0.2v-14.6 C214,303.9,214.3,303.9,214.9,303.9z M233.9,313.6L221,321c-1.1-1.1-2-1.8-4-2.3V304C224,304.7,230,308.3,233.9,313.6z M213,318.6 c-2,0.4-3,1.2-4.1,2.2l-12.8-7.2c3.9-5.3,8.9-9,16.9-9.6V318.6z M195.7,314l12.7,7.2c-0.8,0.9-1.5,2-1.9,3.2l-12.7-7.2 C194.4,316.1,195,315,195.7,314z M193.6,317.7l12.8,7.2c-0.2,0.8-0.3,1.6-0.3,2.5c0,0.8,0.1,1.5,0.3,2.2l-12.6,7.6 c-1.4-3-2.2-6.4-2.2-9.9C191.6,323.9,192.3,320.7,193.6,317.7z M206.5,330.2c0.4,1.2,1,2.3,1.8,3.2l-12.5,7.6 c-0.7-1-1.4-2.1-1.9-3.2L206.5,330.2z M196.2,341.4l12.5-7.6c1.1,1.1,2.5,1.9,4,2.3l0.2,14.7C206,350.2,200,346.6,196.2,341.4z M217.6,350.8l-0.2-14.7c1.5-0.4,2.9-1.2,4-2.3l12.7,7.4C230.3,346.5,224.4,350.1,217.6,350.8z M234.4,340.8l-12.6-7.3 c0.8-0.9,1.5-2,1.9-3.2l12.6,7.3C235.8,338.7,235.1,339.8,234.4,340.8z M236.5,337.1l-12.7-7.4c0.2-0.7,0.3-1.5,0.3-2.3 c0-0.8-0.1-1.6-0.3-2.3l12.7-7.4c1.3,3,2.1,6.2,2.1,9.7C238.6,330.9,237.9,334.1,236.5,337.1z"/> <animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="5.2" repeatCount="indefinite" restart="always" type="rotate" values="0 214.9 327.4; 360 214.9 327.4;"/> </g> <g> <path class="main-rightSpin cog" d="M161.3,211.3l0-1.5l-3.7-1.2c-0.1-0.8-0.3-1.6-0.5-2.3l3-2.4l-0.6-1.3l-3.9,0.3c-0.4-0.7-0.9-1.4-1.4-2 l1.9-3.4l-1-1l-3.5,1.8c-0.6-0.5-1.3-0.9-2-1.3l0.4-3.9l-1.3-0.6l-2.6,3.1c-0.7-0.2-1.4-0.4-2.2-0.5l-1.1-3.9h-1.5l-1.2,3.9 c-0.8,0.1-1.5,0.3-2.2,0.5l-2.5-3.1l-1.3,0.6l0.3,4c-0.7,0.4-1.4,0.8-2,1.3l-3.5-1.9l-1,1l1.8,3.5c-0.5,0.6-0.9,1.2-1.3,1.9l-4-0.4 l-0.6,1.3l3.1,2.6c-0.2,0.8-0.4,1.5-0.5,2.3l-3.8,1.1l0,1.5l3.8,1.2c0.1,0.8,0.2,1.6,0.5,2.4l-3.1,2.5l0.6,1.3l4-0.4 c0.4,0.7,0.8,1.3,1.3,2l-1.8,3.3l1,1l3.4-1.8c0.6,0.5,1.3,1,2,1.4l-0.4,3.8l1.3,0.6l2.5-2.9c0.8,0.2,1.7,0.6,2.5,0.7l1.1,3.8h1.5 l1.2-3.9c0.8-0.1,1.6-0.3,2.4-0.6l2.4,3l1.3-0.6l-0.3-3.9c0.7-0.4,1.3-0.8,1.9-1.3l3.4,1.9l1-1l-1.8-3.4c0.5-0.6,0.9-1.3,1.3-2 l3.8,0.4l0.6-1.3l-3-2.5c0.2-0.8,0.4-1.6,0.5-2.5L161.3,211.3z M145.7,207.2l6.8-3.9c0.4,0.5,0.7,1.1,1,1.7l-6.8,3.9 C146.5,208.3,146.1,207.7,145.7,207.2z M141.2,223.1l-0.1-7.9c0.3,0.1,0.7,0.1,1,0.1c0.3,0,0.7,0,1-0.1l0.1,7.9c-0.4,0-0.7,0-1.1,0 C141.8,223.2,141.5,223.2,141.2,223.1z M142.1,213.4c-1.6,0-2.9-1.3-2.9-2.9c0-1.6,1.3-2.9,2.9-2.9s2.9,1.3,2.9,2.9 C145,212.1,143.7,213.4,142.1,213.4z M141.9,197.8c0.4,0,1.1,0,1.1,0v7.9c0-0.1-0.7-0.1-1.1-0.1c-0.3,0-0.9,0-0.9,0.1v-7.9 C141,197.8,141.6,197.8,141.9,197.8z M152.1,203.1l-6.9,4c-0.6-0.6-1.2-1-2.2-1.2v-7.9C147,198.3,150.1,200.2,152.1,203.1z M141,205.8c-1,0.2-1.6,0.6-2.2,1.2l-6.9-3.9c2.1-2.9,5.1-4.8,9.1-5.2V205.8z M131.6,203.3l6.9,3.9c-0.5,0.5-0.8,1.1-1,1.7 l-6.8-3.9C130.9,204.4,131.3,203.8,131.6,203.3z M130.5,205.3l6.9,3.9c-0.1,0.4-0.2,0.9-0.2,1.3c0,0.4,0.1,0.8,0.2,1.2l-6.8,4.1 c-0.8-1.6-1.2-3.4-1.2-5.3C129.4,208.6,129.8,206.9,130.5,205.3z M137.4,212c0.2,0.7,0.6,1.2,1,1.7l-6.7,4.1 c-0.4-0.5-0.7-1.1-1-1.7L137.4,212z M131.9,218l6.7-4.1c0.6,0.6,1.3,1,2.2,1.3l0.1,7.9C137.2,222.8,134,220.8,131.9,218z M143.4,223.1l-0.1-7.9c0.8-0.2,1.6-0.6,2.1-1.2l6.8,4C150.3,220.8,147.1,222.7,143.4,223.1z M152.5,217.7l-6.8-4 c0.4-0.5,0.8-1.1,1-1.7l6.8,4C153.2,216.6,152.9,217.2,152.5,217.7z M153.6,215.7l-6.8-4c0.1-0.4,0.2-0.8,0.2-1.3 c0-0.4-0.1-0.8-0.2-1.2l6.8-4c0.7,1.6,1.1,3.4,1.1,5.2C154.8,212.4,154.3,214.1,153.6,215.7z"/> <animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="3" repeatCount="indefinite" restart="always" type="rotate" values="0 141.95 210.7; 360 141.95 210.7;"/> </g> <g> <path class="main-rightSpin cog" d="M284,321.9v-1.2l-3-0.9c-0.1-0.6-0.2-1.3-0.4-1.9l2.4-1.9l-0.4-1.1l-3.1,0.3c-0.3-0.6-0.7-1.1-1.1-1.6 l1.5-2.7l-0.8-0.8l-2.8,1.4c-0.5-0.4-1-0.8-1.6-1.1l0.3-3.1l-1.1-0.4l-2,2.4c-0.6-0.2-1.1-0.2-1.7-0.3l-0.9-3h-1.2l-1,3 c-0.6,0.1-1.2,0.2-1.8,0.3l-2-2.5l-1.1,0.4l0.3,3.2c-0.6,0.3-1.1,0.7-1.6,1.1l-2.8-1.5l-0.8,0.8l1.5,2.8c-0.4,0.5-0.7,1-1,1.5 l-3.1-0.4l-0.4,1.1l2.4,2.1c-0.2,0.6-0.3,1.2-0.4,1.8l-3,0.9l0,1.2l3,1c0.1,0.6,0.2,1.3,0.4,1.9l-2.5,2l0.4,1.1l3.2-0.3 c0.3,0.5,0.7,1.1,1,1.6l-1.5,2.7l0.8,0.8l2.7-1.4c0.5,0.4,1.1,0.8,1.6,1.1l-0.3,3l1.1,0.4l2-2.3c0.7,0.2,1.3,0.5,2,0.6l0.9,3.1h1.2 l0.9-3.1c0.6-0.1,1.3-0.3,1.9-0.5l1.9,2.3l1.1-0.5l-0.3-3.1c0.5-0.3,1-0.6,1.5-1l2.7,1.5l0.8-0.8l-1.4-2.7c0.4-0.5,0.8-1,1.1-1.6 l3.1,0.3l0.4-1.1l-2.4-2c0.2-0.6,0.4-1.3,0.4-2L284,321.9z M271.5,318.7l5.4-3.1c0.3,0.4,0.6,0.9,0.8,1.4l-5.4,3.1 C272.2,319.6,271.9,319.1,271.5,318.7z M267.9,331.4l-0.1-6.3c0.3,0.1,0.5,0.1,0.8,0.1c0.3,0,0.5,0,0.8-0.1l0.1,6.3 c-0.3,0-0.6,0-0.9,0C268.4,331.4,268.2,331.4,267.9,331.4z M268.7,323.7c-1.3,0-2.3-1-2.3-2.3c0-1.3,1-2.3,2.3-2.3 c1.3,0,2.3,1,2.3,2.3C271,322.6,269.9,323.7,268.7,323.7z M268.9,311.2c0.3,0,0.1,0,1.1,0v6.3c-1-0.1-0.8-0.1-1.1-0.1 c-0.3,0-0.9,0-0.9,0.1v-6.3C268,311.2,268.7,311.2,268.9,311.2z M277,315.4l-5.4,3.2c-0.5-0.5-1.6-0.8-1.6-1v-6.3 C273,311.6,275.3,313.2,277,315.4z M268,317.6c-1,0.2-1.4,0.5-1.9,0.9l-5.4-3.1c1.7-2.3,3.3-3.8,7.3-4.1V317.6z M260.3,315.6 l5.5,3.1c-0.4,0.4-0.6,0.9-0.8,1.4l-5.4-3.1C259.8,316.5,260,316,260.3,315.6z M259.5,317.2l5.5,3.1c-0.1,0.3-0.1,0.7-0.1,1.1 c0,0.3,0,0.7,0.1,1l-5.4,3.3c-0.6-1.3-0.9-2.7-0.9-4.2C258.6,319.8,258.9,318.4,259.5,317.2z M265,322.5c0.2,0.5,0.4,1,0.8,1.4 l-5.3,3.2c-0.3-0.4-0.6-0.9-0.8-1.4L265,322.5z M260.5,327.3l5.4-3.3c0.5,0.5,1.1,0.8,1.7,1l0.1,6.3 C264.8,331.1,262.2,329.6,260.5,327.3z M269.7,331.4l-0.1-6.3c0.7-0.2,1.2-0.5,1.7-1l5.4,3.2C275.2,329.5,272.6,331,269.7,331.4z M276.9,327.1l-5.4-3.1c0.4-0.4,0.6-0.9,0.8-1.4l5.4,3.1C277.5,326.2,277.2,326.6,276.9,327.1z M277.8,325.5l-5.4-3.2 c0.1-0.3,0.1-0.7,0.1-1c0-0.3,0-0.7-0.1-1l5.4-3.2c0.6,1.3,0.9,2.7,0.9,4.1C278.7,322.8,278.4,324.2,277.8,325.5z"/> <animateTransform attributeName="transform" dur="3.2" repeatCount="indefinite" restart="always" type="rotate" values="0 268.65 321.55; 360 268.65 321.55;"/> </g> <g> <path class="main-rightSpin cog" d="M301.2,98.1l0-2.4l-6.2-2c-0.2-1.3-0.4-2.7-0.8-3.9l5.1-4.1l-0.9-2.3l-6.5,0.5c-0.7-1.2-1.4-2.3-2.3-3.4 l3.2-5.8l-1.7-1.7l-5.9,3.1c-1.1-0.8-2.2-1.6-3.4-2.3l0.7-6.6l-2.3-0.9l-4.3,5.2c-1.2-0.3-2.4-0.8-3.7-0.9l-1.9-6.6h-2.4l-2,6.6 c-1.3,0.2-2.5,0.5-3.8,0.8l-4.1-5.2l-2.3,1l0.6,6.7c-1.2,0.7-2.3,1.4-3.4,2.2l-5.8-3.2l-1.7,1.7l3.1,5.9c-0.8,1-1.5,2.1-2.2,3.2 l-6.6-0.8l-0.9,2.3l5.1,4.3c-0.4,1.3-0.6,2.6-0.8,3.9l-6.4,1.8l0,2.4l6.4,2c0.2,1.4,0.4,2.7,0.8,4l-5.2,4.2l0.9,2.3l6.7-0.6 c0.7,1.2,1.4,2.3,2.2,3.3l-3.1,5.6l1.7,1.7l5.7-3c1.1,0.9,2.2,1.6,3.4,2.3l-0.7,6.3l2.3,0.9l4.1-4.9c1.4,0.4,2.8,0.7,4.2,0.8 l1.8,6.1l2.4,0l1.9-6.2c1.4-0.2,2.7-0.4,4-0.8l4,5.1l2.3-0.9l-0.6-6.5c1.1-0.6,2.1-1.3,3.1-2.1l5.7,3.1l1.7-1.7l-3-5.8 c0.8-1,1.6-2.2,2.3-3.3l6.4,0.7l0.9-2.2l-5-4.2c0.4-1.3,0.7-2.7,0.8-4.2L301.2,98.1z M275.1,91.4l11.4-6.6c0.6,0.9,1.2,1.9,1.7,2.9 l-11.4,6.6C276.4,93.2,275.9,92.2,275.1,91.4z M267.5,118l-0.2-13.2c0.6,0.1,1.1,0.2,1.7,0.2c0.6,0,1.1-0.1,1.7-0.2l0.2,13.2 c-0.6,0.1-1.2,0.1-1.8,0.1C268.5,118.1,268,118.1,267.5,118z M269,101.7c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9 c2.7,0,4.9,2.2,4.9,4.9S271.7,101.7,269,101.7z M269.4,75.6c0.6,0,0.6,0,1.6,0.1v13.2c-1-0.1-1-0.2-1.6-0.2c-0.5,0-1.4,0.1-1.4,0.2 V75.6C268,75.6,268.9,75.6,269.4,75.6z M286.6,84.4L275.3,91c-1-0.9-2.3-1.7-3.3-2V75.7C278,76.3,283.2,79.6,286.6,84.4z M267,88.9 c-1,0.4-2.6,1.1-3.6,2l-11.6-6.5c3.5-4.8,8.2-8.1,15.2-8.7V88.9z M251.5,84.8l11.5,6.5c-0.8,0.8-1.4,1.8-1.7,2.9l-11.5-6.5 C250.3,86.6,250.9,85.7,251.5,84.8z M249.6,88.1l11.5,6.5c-0.2,0.7-0.3,1.5-0.3,2.2c0,0.7,0.1,1.4,0.3,2l-11.4,6.9 c-1.3-2.7-2-5.7-2-8.9C247.8,93.7,248.4,90.8,249.6,88.1z M261.2,99.3c0.4,1.1,0.9,2.1,1.7,2.9l-11.3,6.8c-0.6-0.9-1.2-1.9-1.7-2.9 L261.2,99.3z M251.9,109.5l11.3-6.9c1,1,2.2,1.7,3.6,2.1L267,118C260.8,117.4,255.4,114.2,251.9,109.5z M271.3,118l-0.2-13.3 c1.4-0.4,2.6-1.1,3.6-2.1l11.5,6.7C282.8,114.1,277.4,117.3,271.3,118z M286.5,108.9l-11.4-6.6c0.8-0.8,1.3-1.8,1.7-2.9l11.4,6.6 C287.7,107.1,287.2,108,286.5,108.9z M288.4,105.6l-11.5-6.7c0.2-0.7,0.3-1.4,0.3-2.1c0-0.7-0.1-1.4-0.3-2.1l11.5-6.7 c1.2,2.7,1.9,5.6,1.9,8.7C290.3,100,289.6,102.9,288.4,105.6z"/> <animateTransform attributeName="transform" dur="8" repeatCount="indefinite" type="rotate" values="0 268.95 96.3; 360 268.95 96.3;"/> </g> <g> <path class="main-rightSpin cog" d="M273,46v-1.2l-2.8-0.9c-0.1-0.6-0.1-1.3-0.3-1.9l2.5-1.9l-0.4-1.1l-3.1,0.3c-0.3-0.6-0.7-1.1-1.1-1.6 l1.5-2.7l-0.8-0.8l-2.8,1.4c-0.5-0.4-1-0.8-1.6-1.1l0.3-3.1l-1.1-0.4l-2,2.4c-0.6-0.2-1.1-0.3-1.7-0.3l-0.9-3h-1.2l-1,3 c-0.6,0.1-1.2,0.2-1.8,0.3l-2-2.5l-1.1,0.4l0.3,3.2c-0.6,0.3-1.1,0.7-1.6,1.1l-2.8-1.5l-0.8,0.8l1.5,2.8c-0.4,0.5-0.7,1-1,1.5 l-3.1-0.4l-0.4,1.1l2.4,2.1c-0.2,0.6-0.3,1.2-0.4,1.8l-3,0.9l0,1.2l3,1c0.1,0.6,0.2,1.3,0.4,1.9l-2.5,2l0.4,1.1l3.2-0.3 c0.3,0.5,0.7,1.1,1,1.6l-1.5,2.7l0.8,0.8l2.7-1.4c0.5,0.4,1.1,0.8,1.6,1.1l-0.3,3l1.1,0.4l2-2.3c0.7,0.2,1.3,0.5,2,0.6l0.9,3.1h1.2 l0.9-3.1c0.6-0.1,1.3-0.3,1.9-0.5l1.9,2.3l1.1-0.5l-0.3-3.1c0.5-0.3,1-0.6,1.5-1l2.7,1.5l0.8-0.8l-1.4-2.7c0.4-0.5,0.8-1,1.1-1.6 l3.1,0.3l0.4-1.1l-2.4-2c0.2-0.6,0.2-1.3,0.3-2L273,46z M260.9,42.7l5.4-3.1c0.3,0.4,0.6,0.9,0.8,1.4l-5.4,3.1 C261.5,43.6,261.2,43.1,260.9,42.7z M257.3,55.4l-0.1-6.3c0.3,0.1,0.5,0.1,0.8,0.1c0.3,0,0.5,0,0.8-0.1l0.1,6.3c-0.3,0-0.6,0-0.9,0 C257.7,55.4,257.5,55.4,257.3,55.4z M258,47.7c-1.3,0-2.3-1-2.3-2.3s1-2.3,2.3-2.3s2.3,1,2.3,2.3S259.3,47.7,258,47.7z M258.4,35.2 c0.3,0-0.4,0,0.6,0v6.3c-1-0.1-0.3-0.1-0.6-0.1c-0.3,0-0.4,0-0.4,0.1v-6.3C258,35.3,258.2,35.2,258.4,35.2z M266.1,39.4l-5.5,3.2 c-0.5-0.5-0.7-0.8-1.7-1v-6.3C262,35.6,264.5,37.2,266.1,39.4z M257,41.6c0,0.2-1.2,0.5-1.7,0.9l-5.5-3.1c1.7-2.3,4.2-3.8,7.2-4.1 V41.6z M249.7,39.6l5.5,3.1c-0.4,0.4-0.6,0.9-0.8,1.4l-5.4-3.1C249.1,40.5,249.4,40,249.7,39.6z M248.8,41.2l5.5,3.1 c-0.1,0.3-0.1,0.7-0.1,1.1c0,0.3,0,0.7,0.1,1l-5.4,3.3c-0.6-1.3-0.9-2.7-0.9-4.2C247.9,43.9,248.2,42.5,248.8,41.2z M254.3,46.5 c0.2,0.5,0.4,1,0.8,1.4l-5.3,3.2c-0.3-0.4-0.6-0.9-0.8-1.4L254.3,46.5z M249.9,51.3l5.4-3.3c0.5,0.5,1.1,0.8,1.7,1l0.1,6.3 C254.1,55.1,251.5,53.6,249.9,51.3z M259.1,55.4l-0.1-6.3c0.7-0.2,1.2-0.5,1.7-1l5.4,3.2C264.5,53.5,262,55.1,259.1,55.4z M266.3,51.1l-5.4-3.1c0.4-0.4,0.6-0.9,0.8-1.4l5.4,3.1C266.9,50.2,266.6,50.6,266.3,51.1z M267.2,49.5l-5.4-3.2 c0.1-0.3,0.1-0.7,0.1-1c0-0.3,0-0.7-0.1-1l5.4-3.2c0.6,1.3,0.9,2.7,0.9,4.2C268.1,46.8,267.8,48.2,267.2,49.5z"/> <animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="4" repeatCount="indefinite" restart="always" type="rotate" values="0 257.85 45.65; 360 257.85 45.65;"> </animateTransform> </g> <g> <path class="main-leftSpin cog" d="M373.6,162.9l4-1.2l0-2.7l-4-1.1c-0.1-1.5-0.2-2.9-0.5-4.4l3.6-2.1l-0.6-2.7l-4.1-0.2 c-0.4-1.5-0.9-2.9-1.5-4.3l3.1-2.8l-1.2-2.5l-4.1,0.7c-0.8-1.4-1.6-2.7-2.5-4l2.4-3.5l-1.7-2.1l-3.8,1.6c-1-1.1-2-2.1-3.1-3.1 l1.6-3.9l-2.1-1.7l-3.4,2.4c-1.2-0.9-2.5-1.7-3.8-2.4l0.7-4.2l-2.5-1.2l-2.8,3.1c-1.4-0.6-2.9-1.1-4.5-1.6l-0.3-4.2l-2.7-0.6 l-2,3.7c-1.5-0.3-3-0.4-4.5-0.5L332,113h-2.7l-1.2,4.1c-1.5,0.1-2.9,0.2-4.4,0.5l-2.2-3.8l-2.7,0.6l-0.2,4.3 c-1.5,0.4-2.9,0.9-4.3,1.5l-2.9-3.2l-2.5,1.2l0.7,4.2c-1.4,0.8-2.8,1.6-4.1,2.6l-3.6-2.4l-2.1,1.7l1.7,3.9c-1.1,1-2.1,2-3.1,3 l-4-1.6l-1.7,2.1l2.5,3.4c-0.9,1.2-1.7,2.5-2.4,3.7l-4.2-0.6l-1.2,2.5l3.1,2.8c-0.6,1.4-1.1,2.8-1.5,4.3l-4.2,0.3l-0.6,2.7l3.7,2 c-0.2,1.4-0.4,2.9-0.5,4.4l-4.3,1.3v2.7l4.2,1.2c0.1,1.6,0.3,3.2,0.5,4.8l-3.9,2.3l0.6,2.7l4.4,0.2c0.4,1.5,0.9,3,1.5,4.4l-3.2,3 l1.2,2.5l4.3-0.8c0.7,1.2,1.4,2.4,2.3,3.6l-2.5,3.7l1.7,2.1l4-1.7c1,1.1,2.1,2.2,3.3,3.3l-1.6,4.1l2.2,1.7l3.5-2.5 c1.2,0.9,2.5,1.7,3.8,2.4l-0.6,4.3l2.5,1.2l2.8-3.2c1.3,0.5,2.7,1,4.1,1.4l0.3,4.3l2.7,0.6l2-3.8c1.4,0.2,2.9,0.4,4.4,0.5l1.3,4.1 l2.7,0l1.1-4.1c1.5-0.1,3-0.3,4.5-0.5l2.1,3.7l2.7-0.6l0.2-4.2c1.5-0.4,3-1,4.5-1.6l2.9,3.1l2.5-1.2l-0.8-4.1 c1.3-0.7,2.5-1.5,3.8-2.4l3.5,2.4l2.1-1.7l-1.6-3.8c1.1-1,2.2-2.1,3.2-3.2l3.9,1.5l1.7-2.1l-2.4-3.4c0.9-1.3,1.7-2.6,2.5-3.9 l4.1,0.6l1.2-2.5l-3.1-2.7c0.6-1.4,1.1-2.8,1.5-4.2l4.2-0.3l0.6-2.7l-3.6-2C373.3,166.1,373.5,164.5,373.6,162.9z M343.1,157.9 c-0.3-1.8-1-3.5-2-4.9l14.2-9.1c2.2,3.3,3.7,7.1,4.4,11.1L343.1,157.9z M330.4,169.5c-5.1,0-9.2-4.1-9.2-9.2s4.1-9.2,9.2-9.2 s9.2,4.1,9.2,9.2S335.5,169.5,330.4,169.5z M337.7,149.7c-1.5-1-3.1-1.7-5-2.1l3.4-16.5c4.1,0.8,7.9,2.5,11.3,4.8L337.7,149.7z M325,131.1l3.2,16.6c-1.8,0.3-3.5,1-4.9,2l-9.4-14C317.1,133.4,320.9,131.8,325,131.1z M305.8,143.6l14.1,9.4 c-1,1.4-1.7,3.1-2.1,4.8l-16.6-3.2C302,150.6,303.6,146.9,305.8,143.6z M317.8,162.6c0.3,1.8,1,3.5,2,5l-13.9,9.5 c-2.3-3.3-3.9-7.1-4.6-11.1L317.8,162.6z M323.2,170.9c1.4,1,3,1.6,4.7,2l-3.4,16.5c-3.9-0.8-7.5-2.3-10.6-4.4L323.2,170.9z M336,189.5l-3.2-16.6c1.7-0.3,3.3-1,4.7-1.9l9,14.3C343.4,187.3,339.8,188.8,336,189.5z M354.8,177.4l-13.8-9.8 c1-1.5,1.7-3.1,2.1-4.9l16.5,3.7C358.7,170.4,357.1,174.1,354.8,177.4z"/> <animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="7" repeatCount="indefinite" restart="always" type="rotate" values="0 330.35 160.2; 360 330.35 160.2;"> </animateTransform> </g> <g> <path class="main-rightSpin cog" d="M358.6,229.2l1.5-0.5l0-1l-1.5-0.4c0-0.6-0.1-1.1-0.2-1.7l1.4-0.8l-0.2-1l-1.6-0.1 c-0.2-0.6-0.3-1.1-0.6-1.6l1.2-1.1l-0.4-0.9l-1.5,0.3c-0.3-0.5-0.6-1-1-1.5l0.9-1.3l-0.6-0.8l-1.4,0.6c-0.4-0.4-0.8-0.8-1.2-1.2 l0.6-1.5l-0.8-0.6l-1.3,0.9c-0.5-0.3-0.9-0.6-1.4-0.9l0.3-1.6l-0.9-0.5l-1.1,1.2c-0.5-0.2-1.1-0.4-1.7-0.6l-0.1-1.6l-1-0.2 l-0.8,1.4c-0.6-0.1-1.1-0.4-1.7-0.4L343,210h-1l-0.4,1.8c-0.6,0-1.1,0.2-1.6,0.3l-0.8-1.4l-1,0.3l-0.1,1.6 c-0.6,0.2-1.1,0.4-1.6,0.6l-1.1-1.2l-0.9,0.5l0.3,1.6c-0.5,0.3-1,0.6-1.5,1l-1.4-0.9l-0.8,0.7l0.6,1.5c-0.4,0.4-0.8,0.7-1.2,1.1 l-1.5-0.6l-0.6,0.8l0.9,1.3c-0.3,0.5-0.6,0.9-0.9,1.4l-1.6-0.2l-0.4,0.9l1.2,1c-0.2,0.5-0.4,1.1-0.6,1.6l-1.6,0.1l-0.2,1l1.4,0.8 c-0.1,0.5-0.4,1.1-0.4,1.7l-1.9,0.5v1l1.8,0.5c0,0.6,0.2,1.2,0.3,1.8l-1.4,0.9l0.3,1l1.7,0.1c0.2,0.6,0.4,1.1,0.6,1.6l-1.2,1.1 l0.5,0.9l1.6-0.3c0.3,0.5,0.5,0.9,0.9,1.3l-0.9,1.4l0.7,0.8l1.5-0.6c0.4,0.4,0.8,0.8,1.2,1.2l-0.6,1.5l0.8,0.6l1.3-1 c0.5,0.3,0.9,0.6,1.4,0.9l-0.2,1.6l0.9,0.4l1.1-1.2c0.5,0.2,1,0.4,1.5,0.5l0.1,1.6l1,0.2l0.8-1.4c0.5,0.1,1.1,0.2,1.7,0.2l0.5,1.6 l1,0l0.4-1.5c0.6,0,1.2-0.1,1.7-0.2l0.8,1.4l1-0.2l0.1-1.6c0.6-0.2,1.1-0.4,1.7-0.6l1.1,1.2l0.9-0.5l-0.3-1.6 c0.5-0.3,1-0.6,1.4-0.9l1.3,0.9l0.8-0.6l-0.6-1.4c0.4-0.4,0.8-0.8,1.2-1.2l1.5,0.6l0.6-0.8l-0.9-1.3c0.3-0.5,0.7-1,0.9-1.5l1.6,0.2 l0.4-0.9l-1.2-1c0.2-0.5,0.4-1.1,0.6-1.6l1.6-0.1l0.2-1l-1.4-0.7C358.5,230.4,358.6,229.8,358.6,229.2z M347.1,227.3 c-0.1-0.7-0.4-1.3-0.8-1.8l5.4-3.4c0.8,1.2,1.4,2.7,1.7,4.2L347.1,227.3z M342.4,231.7c-1.9,0-3.5-1.6-3.5-3.5s1.6-3.5,3.5-3.5 c1.9,0,3.5,1.6,3.5,3.5S344.3,231.7,342.4,231.7z M345.1,224.2c-0.6-0.4-1.2-0.7-1.9-0.8l1.3-6.2c1.6,0.3,3,0.9,4.2,1.8 L345.1,224.2z M340.3,217.2l1.2,6.3c-0.7,0.1-1.3,0.4-1.9,0.7l-3.6-5.3C337.3,218.1,338.8,217.5,340.3,217.2z M333.1,221.9l5.3,3.5 c-0.4,0.5-0.6,1.2-0.8,1.8l-6.3-1.2C331.7,224.6,332.3,223.2,333.1,221.9z M337.6,229.1c0.1,0.7,0.4,1.3,0.8,1.9l-5.3,3.6 c-0.8-1.2-1.5-2.7-1.7-4.2L337.6,229.1z M339.6,232.2c0.5,0.4,1.1,0.6,1.8,0.7l-1.3,6.2c-1.5-0.3-2.8-0.9-4-1.7L339.6,232.2z M344.5,239.2l-1.2-6.3c0.7-0.1,1.3-0.4,1.8-0.7l3.4,5.4C347.3,238.4,345.9,239,344.5,239.2z M351.6,234.7l-5.2-3.7 c0.4-0.5,0.6-1.2,0.8-1.9l6.2,1.4C353,232,352.4,233.4,351.6,234.7z"/> <animateTransform attributeName="transform" dur="3.4" repeatCount="indefinite" restart="always" type="rotate" values="0 342.2 228; 360 342.2 228;" /> </g> <g> <path class="main-rightSpin cog" d="M234.3,245.6l3.3-1l0-2.3l-3.3-0.9c-0.1-1.2-0.2-2.5-0.4-3.7l3-1.7l-0.5-2.2l-3.5-0.2 c-0.4-1.2-0.8-2.5-1.3-3.7l2.6-2.4l-1-2.1l-3.4,0.6c-0.6-1.2-1.4-2.3-2.1-3.4l2-2.9l-1.4-1.8l-3.2,1.4c-0.8-0.9-1.7-1.8-2.6-2.6 l1.3-3.3l-1.8-1.4l-2.9,2c-1-0.7-2.1-1.4-3.2-2l0.6-3.5l-2.1-1l-2.4,2.6c-1.2-0.5-2.5-1-3.8-1.3l-0.2-3.6l-2.2-0.5l-1.7,3.1 c-1.2-0.2-2.5-0.2-3.8-0.3l-1.1-3.4H197l-1,3.3c-1.2,0.1-2.5,0.1-3.7,0.3l-1.8-3.2l-2.2,0.5l-0.2,3.6c-1.2,0.4-2.5,0.8-3.7,1.2 l-2.5-2.7l-2.1,1l0.6,3.5c-1.2,0.7-2.3,1.4-3.4,2.2l-3-2l-1.8,1.5l1.4,3.3c-0.9,0.8-1.8,1.7-2.6,2.5l-3.4-1.3l-1.4,1.8l2.1,2.9 c-0.7,1-1.4,2.1-2,3.2l-3.6-0.5l-1,2.1l2.6,2.3c-0.5,1.2-0.9,2.4-1.3,3.6l-3.6,0.3l-0.5,2.2l3.1,1.7c-0.2,1.2-0.4,2.4-0.5,3.7 L158,242v2.3l3.6,1c0.1,1.4,0.2,2.7,0.5,4l-3.2,1.9l0.5,2.2l3.7,0.2c0.4,1.3,0.8,2.5,1.3,3.7l-2.7,2.6l1,2.1l3.6-0.7 c0.6,1,1.2,2,1.9,3l-2.1,3.1l1.4,1.8l3.4-1.4c0.9,1,1.8,1.9,2.8,2.7l-1.3,3.4l1.8,1.4l2.9-2.1c1,0.7,2.1,1.4,3.2,2l-0.5,3.6l2.1,1 l2.4-2.7c1.1,0.5,2.3,0.9,3.4,1.2l0.3,3.6l2.3,0.5l1.7-3.2c1.2,0.2,2.5,0.3,3.7,0.4l1.1,3.5l2.3,0l1-3.4c1.3-0.1,2.6-0.2,3.8-0.4 l1.8,3.1l2.2-0.5l0.2-3.5c1.3-0.4,2.6-0.8,3.8-1.3l2.4,2.6l2.1-1l-0.6-3.5c1.1-0.6,2.1-1.3,3.2-2l2.9,2l1.8-1.4l-1.4-3.2 c0.9-0.8,1.8-1.7,2.7-2.7l3.3,1.3l1.4-1.8l-2-2.8c0.8-1.1,1.5-2.2,2.1-3.3l3.5,0.5l1-2.1l-2.6-2.3c0.5-1.2,0.9-2.3,1.3-3.6l3.5-0.3 l0.5-2.2l-3-1.7C234,248.3,234.2,247,234.3,245.6z M208.6,241.5c-0.3-1.5-0.9-2.9-1.7-4.1l12-7.7c1.8,2.8,3.1,6,3.7,9.4 L208.6,241.5z M198,251.2c-4.3,0-7.8-3.5-7.8-7.8c0-4.3,3.5-7.8,7.8-7.8c4.3,0,7.8,3.5,7.8,7.8C205.7,247.8,202.3,251.2,198,251.2z M204.1,234.6c-1.2-0.9-2.6-1.4-4.2-1.7l2.8-13.9c3.5,0.7,6.7,2.1,9.5,4L204.1,234.6z M193.4,218.9l2.7,13.9 c-1.5,0.3-2.9,0.8-4.1,1.7l-7.9-11.8C186.8,220.9,190,219.5,193.4,218.9z M177.3,229.4l11.8,7.9c-0.8,1.2-1.4,2.6-1.7,4.1 l-13.9-2.7C174.1,235.3,175.4,232.2,177.3,229.4z M187.4,245.4c0.3,1.5,0.8,2.9,1.7,4.2l-11.7,8c-1.9-2.8-3.2-5.9-3.9-9.4 L187.4,245.4z M191.9,252.4c1.2,0.8,2.5,1.4,4,1.7l-2.8,13.9c-3.3-0.6-6.3-1.9-8.9-3.7L191.9,252.4z M202.7,268l-2.7-13.9 c1.5-0.3,2.8-0.8,4-1.6l7.6,12C208.9,266.2,205.9,267.4,202.7,268z M218.5,257.8l-11.6-8.2c0.8-1.2,1.4-2.6,1.7-4.1l13.9,3.1 C221.8,252,220.4,255.1,218.5,257.8z"/> <animateTransform attributeName="transform" dur="9.3" repeatCount="indefinite" restart="always" type="rotate" values="0 197.8 243.6; 360 197.8 243.6;" /> </g> <g> <path class="main-rightSpin cog" d="M308.4,351.3l1.4-0.4l0-1l-1.4-0.4c0-0.5-0.1-1-0.2-1.6l1.3-0.7l-0.2-0.9l-1.5-0.1c-0.1-0.5-0.3-1-0.5-1.5 l1.1-1l-0.4-0.9l-1.4,0.2c-0.3-0.5-0.6-1-0.9-1.4l0.8-1.2l-0.6-0.8l-1.4,0.6c-0.3-0.4-0.7-0.8-1.1-1.1l0.6-1.4l-0.8-0.6L302,338 c-0.4-0.3-0.9-0.6-1.3-0.9l0.2-1.5l-0.9-0.4l-1,1.1c-0.5-0.2-1-0.4-1.6-0.6l-0.1-1.5l-0.9-0.2l-0.7,1.3c-0.5-0.1-1.1,0-1.6,0 l-0.5-1.3h-1l-0.4,1.3c-0.5,0-1,0-1.5,0.1l-0.8-1.4l-0.9,0.2l-0.1,1.5c-0.5,0.1-1,0.3-1.5,0.5l-1-1.1l-0.9,0.4l0.3,1.5 c-0.5,0.3-1,0.6-1.5,0.9L283,337l-0.8,0.6l0.6,1.4c-0.4,0.3-0.7,0.7-1.1,1.1l-1.4-0.6l-0.6,0.8l0.9,1.2c-0.3,0.4-0.6,0.9-0.8,1.3 l-1.5-0.2l-0.4,0.9l1.1,1c-0.2,0.5-0.4,1-0.5,1.5l-1.5,0.1l-0.2,0.9l1.3,0.7c-0.1,0.5-0.3,1-0.3,1.6l-1.7,0.5v1l1.6,0.4 c0,0.6,0.2,1.1,0.3,1.7l-1.3,0.8l0.2,0.9l1.6,0.1c0.2,0.5,0.3,1,0.5,1.5l-1.1,1.1l0.4,0.9l1.5-0.3c0.2,0.4,0.5,0.9,0.8,1.3 l-0.9,1.3l0.6,0.8l1.4-0.6c0.4,0.4,0.8,0.8,1.2,1.2l-0.6,1.5l0.8,0.6l1.2-0.9c0.4,0.3,0.9,0.6,1.4,0.9l-0.2,1.5l0.9,0.4l1-1.1 c0.5,0.2,1,0.4,1.5,0.5l0.1,1.5l0.9,0.2l0.7-1.3c0.5,0.1,1,0.1,1.6,0.2l0.5,1.5l1,0l0.4-1.4c0.5,0,1.1-0.1,1.6-0.2l0.8,1.3l0.9-0.2 l0.1-1.5c0.5-0.2,1.1-0.3,1.6-0.6l1,1.1l0.9-0.4l-0.3-1.5c0.5-0.3,0.9-0.5,1.3-0.8l1.2,0.8l0.8-0.6l-0.6-1.4 c0.4-0.4,0.8-0.7,1.1-1.1l1.4,0.5l0.6-0.8l-0.9-1.2c0.3-0.4,0.6-0.9,0.9-1.4l1.5,0.2l0.4-0.9l-1.1-1c0.2-0.5,0.4-1,0.5-1.5l1.5-0.1 l0.2-0.9l-1.3-0.7C308.3,352.5,308.3,351.9,308.4,351.3z M297.6,349.6c-0.1-0.6-0.4-1.2-0.7-1.7l5-3.2c0.8,1.2,1.3,2.5,1.6,3.9 L297.6,349.6z M293.1,353.7c-1.8,0-3.3-1.5-3.3-3.3s1.5-3.3,3.3-3.3c1.8,0,3.3,1.5,3.3,3.3S294.9,353.7,293.1,353.7z M295.7,346.7 c-0.5-0.4-1.1-0.6-1.8-0.7l1.2-5.9c1.5,0.3,2.8,0.9,4,1.7L295.7,346.7z M291.2,340.1l1.1,5.9c-0.6,0.1-1.2,0.4-1.7,0.7l-3.3-5 C288.4,340.9,289.7,340.3,291.2,340.1z M284.4,344.5l5,3.3c-0.4,0.5-0.6,1.1-0.7,1.7l-5.9-1.1C283,347,283.6,345.7,284.4,344.5z M288.6,351.2c0.1,0.6,0.4,1.2,0.7,1.8l-4.9,3.4c-0.8-1.2-1.4-2.5-1.6-3.9L288.6,351.2z M290.5,354.2c0.5,0.3,1.1,0.6,1.7,0.7 l-1.2,5.9c-1.4-0.3-2.6-0.8-3.8-1.6L290.5,354.2z M295.1,360.8l-1.1-5.9c0.6-0.1,1.2-0.4,1.7-0.7l3.2,5 C297.7,360,296.4,360.5,295.1,360.8z M301.7,356.5l-4.9-3.5c0.4-0.5,0.6-1.1,0.7-1.7l5.8,1.3C303.1,354,302.5,355.3,301.7,356.5z" /> <animateTransform attributeName="transform" dur="3.6" repeatCount="indefinite" restart="always" type="rotate" values="0 293.11 350.41; 360 293.11 350.41;"/> </g> <g> <path class="main-rightSpin cog" d="M272,355.8l1.2-0.4l0-0.8l-1.2-0.3c0-0.5-0.1-0.9-0.1-1.3l1.1-0.6l-0.2-0.8l-1.3-0.1 c-0.1-0.5-0.3-0.9-0.5-1.3l0.9-0.9l-0.4-0.8l-1.3,0.2c-0.2-0.4-0.5-0.8-0.8-1.2l0.7-1.1l-0.5-0.7l-1.2,0.5c-0.3-0.3-0.6-0.7-0.9-1 l0.5-1.2l-0.7-0.5l-1,0.7c-0.4-0.3-0.8-0.5-1.2-0.7l0.2-1.3l-0.8-0.4l-0.9,1c-0.4-0.2-0.9-0.4-1.4-0.5l-0.1-1.3l-0.8-0.2l-0.6,1.1 c-0.5-0.1-0.9-0.3-1.4-0.4l-0.4-1.5h-0.8l-0.4,1.5c-0.5,0-0.9,0.2-1.3,0.2l-0.7-1.1l-0.8,0.2l-0.1,1.3c-0.5,0.1-0.9,0.3-1.3,0.5 l-0.9-1l-0.8,0.4l0.2,1.3c-0.4,0.2-0.9,0.5-1.3,0.8l-1.1-0.7l-0.7,0.5l0.5,1.2c-0.3,0.3-0.6,0.6-0.9,0.9l-1.2-0.5l-0.5,0.7l0.8,1.1 c-0.3,0.4-0.5,0.8-0.7,1.2l-1.3-0.2l-0.4,0.8l1,0.9c-0.2,0.4-0.3,0.9-0.5,1.3l-1.3,0.1l-0.2,0.8l1.1,0.6c-0.1,0.4-0.7,0.9-0.7,1.4 l-1.9,0.4v0.8l1.9,0.4c0,0.5,0.4,1,0.4,1.5l-1,0.7l0.3,0.8l1.4,0.1c0.1,0.5,0.3,0.9,0.5,1.3l-1,0.9l0.4,0.8l1.3-0.2 c0.2,0.4,0.4,0.7,0.7,1.1l-0.8,1.1l0.5,0.7l1.2-0.5c0.3,0.4,0.7,0.7,1,1l-0.5,1.3l0.7,0.5l1.1-0.8c0.4,0.3,0.8,0.5,1.2,0.7 l-0.2,1.3l0.8,0.4l0.9-1c0.4,0.2,0.8,0.3,1.3,0.4l0.1,1.3l0.8,0.2l0.6-1.2c0.4,0.1,0.9,0.1,1.4,0.2l0.4,1.3l0.8,0l0.4-1.3 c0.5,0,0.9-0.1,1.4-0.2l0.7,1.1l0.8-0.2l0.1-1.3c0.5-0.1,0.9-0.3,1.4-0.5l0.9,1l0.8-0.4l-0.2-1.3c0.4-0.2,0.8-0.5,1.2-0.7l1.1,0.7 l0.7-0.5l-0.5-1.2c0.3-0.3,0.7-0.6,1-1l1.2,0.5l0.5-0.7l-0.7-1c0.3-0.4,0.5-0.8,0.8-1.2l1.3,0.2l0.4-0.8l-1-0.8 c0.2-0.4,0.3-0.9,0.5-1.3l1.3-0.1l0.2-0.8l-1.1-0.6C272,356.8,272,356.3,272,355.8z M262.6,354.3c-0.1-0.6-0.3-1.1-0.6-1.5l4.4-2.8 c0.7,1,1.1,2.2,1.4,3.4L262.6,354.3z M258.7,357.8c-1.6,0-2.8-1.3-2.8-2.8c0-1.6,1.3-2.8,2.8-2.8c1.6,0,2.8,1.3,2.8,2.8 C261.6,356.6,260.3,357.8,258.7,357.8z M261,351.7c-0.5-0.3-1-0.5-1.5-0.6l1-5.1c1.3,0.2,2.4,0.8,3.5,1.5L261,351.7z M257.1,346 l1,5.1c-0.6,0.1-1.1,0.3-1.5,0.6l-2.9-4.3C254.6,346.7,255.8,346.2,257.1,346z M251.2,349.9l4.3,2.9c-0.3,0.4-0.5,0.9-0.6,1.5 l-5.1-1C250,352,250.5,350.9,251.2,349.9z M254.9,355.7c0.1,0.6,0.3,1.1,0.6,1.5l-4.3,2.9c-0.7-1-1.2-2.2-1.4-3.4L254.9,355.7z M256.5,358.3c0.4,0.3,0.9,0.5,1.5,0.6l-1,5.1c-1.2-0.2-2.3-0.7-3.3-1.4L256.5,358.3z M260.5,364l-1-5.1c0.5-0.1,1-0.3,1.5-0.6 l2.8,4.4C262.8,363.3,261.6,363.8,260.5,364z M266.3,360.3l-4.2-3c0.3-0.4,0.5-1,0.6-1.5l5.1,1.1 C267.5,358.1,267,359.3,266.3,360.3z"/> <animateTransform attributeName="transform" dur="5.2" repeatCount="indefinite" restart="always" type="rotate" values="0 258.67 355.01; 360 258.67 355.01;"/> </g> <g> <path class="main-rightSpin cog" d="M323.3,65l1.4-0.4l0-0.9l-1.4-0.4c0-0.5-0.1-1-0.2-1.5l1.2-0.7l-0.2-0.9l-1.4-0.1c-0.1-0.5-0.3-1-0.5-1.5 l1-1l-0.4-0.8l-1.4,0.2c-0.3-0.5-0.6-0.9-0.9-1.4l0.8-1.2l-0.6-0.7l-1.3,0.5c-0.3-0.4-0.7-0.7-1-1.1l0.5-1.3l-0.7-0.6l-1.2,0.8 c-0.4-0.3-0.8-0.6-1.3-0.8l0.2-1.4l-0.8-0.4l-1,1.1c-0.5-0.2-1-0.4-1.5-0.5l-0.1-1.5l-0.9-0.2l-0.7,1.3c-0.5-0.1-1-0.1-1.5-0.1 l-0.4-1.4h-0.9l-0.4,1.4c-0.5,0-1,0.1-1.5,0.1l-0.7-1.3l-0.9,0.2l-0.1,1.5c-0.5,0.1-1,0.3-1.5,0.5l-1-1.1l-0.8,0.4l0.3,1.4 c-0.5,0.3-1,0.6-1.4,0.9l-1.2-0.8l-0.7,0.6l0.6,1.3c-0.4,0.3-0.7,0.7-1,1l-1.4-0.5l-0.6,0.7l0.8,1.2c-0.3,0.4-0.6,0.8-0.8,1.3 l-1.4-0.2l-0.4,0.8l1.1,1c-0.2,0.5-0.4,1-0.5,1.5L293,60l-0.2,0.9l1.3,0.7c-0.1,0.5-0.3,1-0.4,1.5l-1.7,0.5v0.9l1.6,0.4 c0,0.6,0.2,1.1,0.3,1.6l-1.3,0.8l0.2,0.9l1.5,0.1c0.1,0.5,0.3,1,0.5,1.5l-1.1,1l0.4,0.8l1.5-0.3c0.2,0.4,0.5,0.8,0.8,1.2l-0.8,1.3 l0.6,0.7l1.4-0.6c0.4,0.4,0.7,0.8,1.1,1.1l-0.5,1.4l0.7,0.6l1.2-0.9c0.4,0.3,0.9,0.6,1.3,0.8l-0.2,1.5l0.8,0.4l1-1.1 c0.5,0.2,0.9,0.3,1.4,0.5l0.1,1.5l0.9,0.2l0.7-1.3c0.5,0.1,1,0.1,1.5,0.2l0.4,1.4l0.9,0l0.4-1.4c0.5,0,1-0.1,1.6-0.2l0.7,1.3 l0.9-0.2l0.1-1.4c0.5-0.2,1-0.3,1.5-0.5l1,1.1l0.8-0.4l-0.3-1.4c0.4-0.2,0.9-0.5,1.3-0.8l1.2,0.8l0.7-0.6l-0.6-1.3 c0.4-0.3,0.8-0.7,1.1-1.1l1.3,0.5l0.6-0.7l-0.8-1.1c0.3-0.4,0.6-0.9,0.9-1.3l1.4,0.2l0.4-0.8l-1.1-0.9c0.2-0.5,0.4-1,0.5-1.4 l1.4-0.1l0.2-0.9l-1.2-0.7C323.2,66.1,323.3,65.5,323.3,65z M312.9,63.3c-0.1-0.6-0.4-1.2-0.7-1.7l4.9-3.1c0.7,1.1,1.3,2.4,1.5,3.8 L312.9,63.3z M308.6,67.3c-1.7,0-3.2-1.4-3.2-3.2c0-1.7,1.4-3.2,3.2-3.2c1.7,0,3.2,1.4,3.2,3.2C311.7,65.8,310.3,67.3,308.6,67.3z M311.1,60.5c-0.5-0.3-1.1-0.6-1.7-0.7l1.2-5.7c1.4,0.3,2.7,0.8,3.8,1.6L311.1,60.5z M306.7,54.1l1.1,5.7c-0.6,0.1-1.2,0.3-1.7,0.7 l-3.2-4.8C304,54.9,305.3,54.4,306.7,54.1z M300.2,58.4l4.8,3.2c-0.3,0.5-0.6,1-0.7,1.7l-5.7-1.1C298.9,60.8,299.4,59.5,300.2,58.4 z M304.3,64.9c0.1,0.6,0.3,1.2,0.7,1.7l-4.8,3.3c-0.8-1.1-1.3-2.4-1.6-3.8L304.3,64.9z M306.1,67.7c0.5,0.3,1,0.6,1.6,0.7l-1.2,5.7 c-1.3-0.3-2.6-0.8-3.6-1.5L306.1,67.7z M310.5,74.1l-1.1-5.7c0.6-0.1,1.1-0.3,1.6-0.7l3.1,4.9C313,73.3,311.8,73.8,310.5,74.1z M316.9,69.9l-4.7-3.3c0.3-0.5,0.6-1.1,0.7-1.7l5.6,1.3C318.3,67.5,317.7,68.8,316.9,69.9z"/> <animateTransform attributeName="transform" dur="3.6" repeatCount="indefinite" type="rotate" values="0 308.35 64.15; 360 308.35 64.15;"/> </g> <g> <path class="cog main-leftSpin" d="M323.9,265.7l7.2-2.8l0-2.9l-7.2-2.2c-0.1-0.9-0.2-1.8-0.4-2.7l6.2-4.7l-0.9-2.8l-7.5-0.1 c-0.3-0.9-0.7-1.7-1.1-2.5l4.7-6.3l-1.6-2.5l-7.3,2c-0.6-0.7-1.2-1.4-1.8-2.1l2.7-7.4l-2.2-1.9l-6.4,4c-0.8-0.6-1.6-1.1-2.4-1.6 l0.5-7.8l-2.7-1.2l-5,5.6c-0.9-0.3-1.9-0.6-2.8-0.9l-1.7-7.6l-2.9-0.4l-3.2,6.8c-0.6,0-1.2,0-1.8,0c-0.4,0-0.8,0-1.2,0l-3.8-6.8 l-2.9,0.5l-1.1,7.4c-0.9,0.2-1.8,0.5-2.7,0.8l-5.5-5.4l-2.7,1.3l1,7.4c-0.9,0.5-1.8,1.1-2.7,1.7l-6.8-3.6l-2.2,2l3,6.7 c-0.7,0.7-1.3,1.4-1.9,2.2l-7.5-1.5l-1.5,2.5l4.8,5.6c-0.5,0.9-0.9,1.8-1.3,2.7l-7.5,0.7l-0.8,2.8l6.1,4c-0.2,0.9-0.3,1.9-0.4,2.8 l-7,2.7l0,2.9l6.9,2.1c0.1,1.1,0.2,2.2,0.4,3.3l-5.9,4.6l0.9,2.8l7.2,0.1c0.4,1,0.9,2,1.4,3l-4.4,6.1l1.6,2.4l6.9-2 c0.6,0.8,1.3,1.5,1.9,2.3l-2.5,7l2.2,1.9l6.1-3.8c0.8,0.6,1.7,1.2,2.6,1.7l-0.5,7.4l2.7,1.2l4.8-5.4c1,0.3,2,0.7,3,0.9l1.7,7.3 l2.9,0.4l3.1-6.5c0.6,0,1.1,0,1.7,0c0.5,0,1.1,0,1.6,0l3.7,6.5l2.9-0.5l1.1-7.2c0.9-0.2,1.9-0.5,2.8-0.8l5.4,5.3l2.7-1.3l-1-7.3 c0.9-0.5,1.7-1,2.5-1.6l6.7,3.6l2.2-1.9l-3-6.8c0.7-0.7,1.3-1.4,1.9-2.2l7.5,1.6l1.6-2.5l-4.8-5.7c0.5-1,1-2,1.4-3l7.7-0.7l0.8-2.8 l-6.3-4.1C323.7,267.6,323.8,266.7,323.9,265.7z M308.2,286c-3-11.8-8.8-17.3-11.5-19.4c0.7-1.5,1.1-3.1,1.1-4.8 c0-0.6-0.1-1.1-0.1-1.7c12.3,1,17,10.3,18.5,14.9C314.3,279.2,311.6,282.9,308.2,286z M272.4,291.5c-4-1.9-7.6-4.5-10.5-7.7 c11.7-3,17.2-8.8,19.3-11.5c1.5,0.7,3.2,1.1,5,1.1c0.5,0,0.9,0,1.4-0.1C286.4,285.5,276.9,290,272.4,291.5z M264.4,237.2 c2.9,11.8,8.6,17.4,11.3,19.4c-0.8,1.5-1.2,3.3-1.2,5.1c0,0.5,0,1,0.1,1.4c-12.1-1-16.8-10.1-18.4-14.8 C258.1,244.1,260.9,240.3,264.4,237.2z M253.3,261.8c0-0.6,0-1.2,0.1-1.8c10.4,6.2,18.4,6.1,21.8,5.6c0.8,2.2,2.1,4,3.9,5.4 c-9.3,8-19.2,4.8-23.5,2.7C254.1,269.9,253.3,265.9,253.3,261.8z M286.1,267.5c-3.2,0-5.8-2.6-5.8-5.8c0-3.2,2.6-5.8,5.8-5.8 c3.2,0,5.8,2.6,5.8,5.8C291.9,264.9,289.3,267.5,286.1,267.5z M299.4,231.8c4.2,1.9,8,4.6,11,7.9c-11.8,3.1-17.4,8.9-19.4,11.5 c-1.5-0.7-3.1-1.1-4.9-1.1c-0.5,0-1,0-1.5,0.1C285.6,238.1,294.7,233.4,299.4,231.8z M316.6,249.8c1.5,3.7,2.3,7.7,2.3,12 c0,0.5,0,1.1,0,1.6c-10.5-6.2-18.5-6.1-21.9-5.6c-0.8-2.1-2.2-3.9-3.9-5.3C302.4,244.5,312.2,247.6,316.6,249.8z M287.9,229 c-6.2,10.5-6.1,18.5-5.6,21.8c-2.1,0.7-3.9,2.1-5.3,3.8c-7.8-9.3-4.7-19.1-2.5-23.5c3.6-1.4,7.5-2.1,11.6-2.1 C286.7,229,287.3,229,287.9,229z M284,294.5c6.3-10.3,6.3-18.3,5.9-21.7c2.2-0.8,4.1-2.2,5.5-4c8,9.4,4.7,19.3,2.6,23.6 c-3.7,1.4-7.7,2.2-11.9,2.2C285.4,294.5,284.7,294.5,284,294.5z"/> <animateTransform attributeName="transform" dur="11.2" repeatCount="indefinite" type="rotate" values="0 286.4 261.65; 360 286.4 261.65;"/> </g> <g> <path class="main-rightSpin cog" d="M188.8,294.3l1.6-0.6l0-0.7l-1.6-0.5c0-0.2-0.1-0.4-0.1-0.6l1.4-1.1l-0.2-0.6l-1.7,0 c-0.1-0.2-0.2-0.4-0.3-0.6l1.1-1.4l-0.4-0.6l-1.6,0.5c-0.1-0.2-0.3-0.3-0.4-0.5l0.6-1.7l-0.5-0.4l-1.5,0.9 c-0.2-0.1-0.4-0.2-0.5-0.4l0.1-1.8l-0.6-0.3l-1.1,1.3c-0.2-0.1-0.4-0.1-0.6-0.2l-0.4-1.7l-0.7-0.1l-0.7,1.5c-0.1,0-0.3,0-0.4,0 c-0.1,0-0.2,0-0.3,0l-0.9-1.5l-0.7,0.1l-0.3,1.7c-0.2,0-0.4,0.1-0.6,0.2l-1.3-1.2l-0.6,0.3l0.2,1.7c-0.2,0.1-0.4,0.3-0.6,0.4 l-1.5-0.8l-0.5,0.4l0.7,1.5c-0.2,0.2-0.3,0.3-0.4,0.5l-1.7-0.3l-0.3,0.6l1.1,1.3c-0.1,0.2-0.2,0.4-0.3,0.6l-1.7,0.1l-0.2,0.6 l1.4,0.9c0,0.2-0.1,0.4-0.1,0.6l-1.6,0.6l0,0.7l1.6,0.5c0,0.3,0.1,0.5,0.1,0.7l-1.3,1l0.2,0.6l1.6,0c0.1,0.2,0.2,0.5,0.3,0.7 l-1,1.4l0.4,0.6l1.6-0.5c0.1,0.2,0.3,0.3,0.4,0.5l-0.6,1.6l0.5,0.4l1.4-0.9c0.2,0.1,0.4,0.3,0.6,0.4l-0.1,1.7l0.6,0.3l1.1-1.2 c0.2,0.1,0.5,0.1,0.7,0.2l0.4,1.6l0.7,0.1l0.7-1.5c0.1,0,0.3,0,0.4,0c0.1,0,0.2,0,0.4,0l0.8,1.5l0.7-0.1l0.2-1.6 c0.2-0.1,0.4-0.1,0.6-0.2l1.2,1.2l0.6-0.3l-0.2-1.6c0.2-0.1,0.4-0.2,0.6-0.4l1.5,0.8l0.5-0.4l-0.7-1.5c0.2-0.2,0.3-0.3,0.4-0.5 l1.7,0.4l0.4-0.6l-1.1-1.3c0.1-0.2,0.2-0.4,0.3-0.7l1.7-0.2l0.2-0.6l-1.4-0.9C188.7,294.8,188.8,294.6,188.8,294.3z M185.2,298.9 c-0.7-2.7-2-3.9-2.6-4.4c0.2-0.3,0.2-0.7,0.2-1.1c0-0.1,0-0.3,0-0.4c2.8,0.2,3.8,2.3,4.2,3.4C186.6,297.4,186,298.2,185.2,298.9z M177.1,300.2c-0.9-0.4-1.7-1-2.4-1.8c2.6-0.7,3.9-2,4.4-2.6c0.3,0.2,0.7,0.3,1.1,0.3c0.1,0,0.2,0,0.3,0 C180.3,298.8,178.2,299.8,177.1,300.2z M175.3,287.9c0.7,2.7,2,3.9,2.6,4.4c-0.2,0.4-0.3,0.7-0.3,1.2c0,0.1,0,0.2,0,0.3 c-2.7-0.2-3.8-2.3-4.2-3.3C173.9,289.5,174.6,288.6,175.3,287.9z M172.8,293.4c0-0.1,0-0.3,0-0.4c2.4,1.4,4.2,1.4,4.9,1.3 c0.2,0.5,0.5,0.9,0.9,1.2c-2.1,1.8-4.3,1.1-5.3,0.6C173,295.3,172.8,294.4,172.8,293.4z M180.3,294.7c-0.7,0-1.3-0.6-1.3-1.3 s0.6-1.3,1.3-1.3c0.7,0,1.3,0.6,1.3,1.3S181,294.7,180.3,294.7z M183.2,286.7c1,0.4,1.8,1,2.5,1.8c-2.7,0.7-3.9,2-4.4,2.6 c-0.3-0.2-0.7-0.2-1.1-0.2c-0.1,0-0.2,0-0.3,0C180.1,288.1,182.2,287,183.2,286.7z M187.2,290.7c0.3,0.8,0.5,1.8,0.5,2.7 c0,0.1,0,0.2,0,0.4c-2.4-1.4-4.2-1.4-4.9-1.3c-0.2-0.5-0.5-0.9-0.9-1.2C183.9,289.5,186.2,290.3,187.2,290.7z M180.6,286 c-1.4,2.4-1.4,4.2-1.3,4.9c-0.5,0.2-0.9,0.5-1.2,0.9c-1.8-2.1-1.1-4.3-0.6-5.3c0.8-0.3,1.7-0.5,2.6-0.5 C180.4,286,180.5,286,180.6,286z M179.8,300.8c1.4-2.3,1.4-4.1,1.3-4.9c0.5-0.2,0.9-0.5,1.2-0.9c1.8,2.1,1.1,4.4,0.6,5.3 c-0.8,0.3-1.7,0.5-2.7,0.5C180.1,300.9,179.9,300.8,179.8,300.8z"/> <animateTransform attributeName="transform" dur="5.3" repeatCount="indefinite" restart="always" type="rotate" values="0 180.25 293.3; 360 180.25 293.3;"/> </g> <g> <path class="main-rightSpin cog" d="M314.6,318.4l2-0.8l0-0.8l-2-0.6c0-0.2-0.1-0.5-0.1-0.7l1.7-1.3l-0.2-0.8l-2.1,0c-0.1-0.2-0.2-0.5-0.3-0.7 l1.3-1.8l-0.4-0.7l-2,0.6c-0.2-0.2-0.3-0.4-0.5-0.6l0.8-2l-0.6-0.5l-1.8,1.1c-0.2-0.2-0.4-0.3-0.7-0.4l0.1-2.2l-0.7-0.3l-1.4,1.6 c-0.3-0.1-0.5-0.2-0.8-0.2l-0.5-2.1l-0.8-0.1l-0.9,1.9c-0.2,0-0.3,0-0.5,0c-0.1,0-0.2,0-0.3,0l-1.1-1.9l-0.8,0.1l-0.3,2.1 c-0.3,0.1-0.5,0.1-0.7,0.2l-1.5-1.5l-0.7,0.3l0.3,2c-0.3,0.1-0.5,0.3-0.8,0.5l-1.9-1l-0.6,0.5l0.8,1.9c-0.2,0.2-0.4,0.4-0.5,0.6 l-2.1-0.4l-0.4,0.7l1.3,1.5c-0.1,0.2-0.2,0.5-0.4,0.8l-2.1,0.2l-0.2,0.8l1.7,1.1c0,0.3-0.1,0.5-0.1,0.8l-2,0.7l0,0.8l1.9,0.6 c0,0.3,0.1,0.6,0.1,0.9l-1.6,1.3l0.2,0.8l2,0c0.1,0.3,0.2,0.6,0.4,0.8l-1.2,1.7l0.5,0.7l1.9-0.6c0.2,0.2,0.4,0.4,0.5,0.6l-0.7,1.9 l0.6,0.5l1.7-1.1c0.2,0.2,0.5,0.3,0.7,0.5l-0.1,2.1l0.7,0.3l1.3-1.5c0.3,0.1,0.6,0.2,0.8,0.3l0.5,2l0.8,0.1l0.9-1.8 c0.2,0,0.3,0,0.5,0c0.1,0,0.3,0,0.4,0l1,1.8l0.8-0.1l0.3-2c0.3-0.1,0.5-0.1,0.8-0.2l1.5,1.5l0.7-0.3l-0.3-2 c0.2-0.1,0.5-0.3,0.7-0.4l1.9,1l0.6-0.5l-0.8-1.9c0.2-0.2,0.4-0.4,0.5-0.6l2.1,0.4l0.4-0.7l-1.3-1.6c0.1-0.3,0.3-0.5,0.4-0.8 l2.1-0.2l0.2-0.8l-1.7-1.1C314.5,318.9,314.5,318.7,314.6,318.4z M310.2,324c-0.8-3.3-2.4-4.8-3.2-5.4c0.2-0.4,0.3-0.9,0.3-1.3 c0-0.2,0-0.3,0-0.5c3.4,0.3,4.7,2.9,5.1,4.1C311.9,322.2,311.1,323.2,310.2,324z M300.3,325.6c-1.1-0.5-2.1-1.2-2.9-2.1 c3.3-0.8,4.8-2.4,5.4-3.2c0.4,0.2,0.9,0.3,1.4,0.3c0.1,0,0.3,0,0.4,0C304.1,323.9,301.5,325.2,300.3,325.6z M298.1,310.5 c0.8,3.3,2.4,4.8,3.1,5.4c-0.2,0.4-0.3,0.9-0.3,1.4c0,0.1,0,0.3,0,0.4c-3.4-0.3-4.7-2.8-5.1-4.1 C296.3,312.4,297.1,311.4,298.1,310.5z M295,317.3c0-0.2,0-0.3,0-0.5c2.9,1.7,5.1,1.7,6,1.6c0.2,0.6,0.6,1.1,1.1,1.5 c-2.6,2.2-5.3,1.3-6.5,0.7C295.2,319.6,295,318.5,295,317.3z M304.1,318.9c-0.9,0-1.6-0.7-1.6-1.6c0-0.9,0.7-1.6,1.6-1.6 c0.9,0,1.6,0.7,1.6,1.6C305.7,318.2,305,318.9,304.1,318.9z M307.7,309c1.2,0.5,2.2,1.3,3.1,2.2c-3.3,0.8-4.8,2.5-5.4,3.2 c-0.4-0.2-0.9-0.3-1.4-0.3c-0.1,0-0.3,0-0.4,0C303.9,310.8,306.5,309.4,307.7,309z M312.5,314c0.4,1,0.6,2.2,0.6,3.3 c0,0.1,0,0.3,0,0.4c-2.9-1.7-5.1-1.7-6.1-1.6c-0.2-0.6-0.6-1.1-1.1-1.5C308.6,312.5,311.3,313.4,312.5,314z M304.6,308.2 c-1.7,2.9-1.7,5.1-1.6,6.1c-0.6,0.2-1.1,0.6-1.5,1c-2.2-2.6-1.3-5.3-0.7-6.5c1-0.4,2.1-0.6,3.2-0.6 C304.2,308.2,304.4,308.2,304.6,308.2z M303.5,326.4c1.8-2.9,1.8-5.1,1.6-6c0.6-0.2,1.1-0.6,1.5-1.1c2.2,2.6,1.3,5.4,0.7,6.6 c-1,0.4-2.1,0.6-3.3,0.6C303.9,326.4,303.7,326.4,303.5,326.4z"/> <animateTransform attributeName="transform" dur="3" repeatCount="indefinite" restart="always" type="rotate" values="0 304.2 317.4; 360 304.2 317.4;"/> </g> <g> <path class="main-rightSpin cog" d="M279.7,193.1l4.2-2.1l-0.2-1.8l-4.5-0.9c-0.1-0.5-0.2-1.1-0.4-1.6l3.5-3.2l-0.7-1.6l-4.5,0.4 c-0.3-0.5-0.5-1-0.8-1.4l2.4-4.1l-1.1-1.4l-4.3,1.7c-0.4-0.4-0.8-0.8-1.2-1.2l1.2-4.6l-1.5-1l-3.6,2.8c-0.5-0.3-1-0.6-1.5-0.8 l-0.2-4.7l-1.7-0.6l-2.7,3.7c-0.6-0.1-1.2-0.3-1.7-0.4l-1.5-4.5l-1.8-0.1l-1.5,4.3c-0.4,0-0.7,0-1.1,0.1c-0.2,0-0.5,0.1-0.7,0.1 l-2.7-3.9l-1.7,0.5l-0.2,4.5c-0.5,0.2-1,0.4-1.6,0.6l-3.7-2.9l-1.5,0.9l1,4.4c-0.5,0.4-1,0.8-1.5,1.2l-4.3-1.7l-1.2,1.3l2.2,3.9 c-0.4,0.5-0.7,0.9-1,1.4l-4.6-0.5l-0.8,1.6l3.2,3.1c-0.2,0.6-0.4,1.1-0.6,1.7l-4.5,0.8l-0.3,1.7l3.9,2c-0.1,0.6-0.1,1.1-0.1,1.7 l-4.1,2l0.2,1.8l4.3,0.9c0.1,0.7,0.3,1.3,0.5,1.9l-3.3,3.1l0.7,1.6l4.3-0.4c0.3,0.6,0.6,1.2,1,1.7l-2.3,3.9l1.1,1.4l4-1.6 c0.4,0.4,0.9,0.8,1.3,1.2l-1.1,4.4l1.5,1l3.4-2.7c0.5,0.3,1.1,0.6,1.7,0.9l0.2,4.5l1.7,0.6l2.5-3.5c0.6,0.1,1.2,0.3,1.9,0.4 l1.4,4.3l1.8,0.1l1.5-4.1c0.3,0,0.7,0,1-0.1c0.3,0,0.6-0.1,1-0.1l2.6,3.7l1.7-0.5l0.2-4.4c0.6-0.2,1.1-0.4,1.6-0.7l3.6,2.9l1.5-0.9 l-1-4.3c0.5-0.4,1-0.7,1.4-1.1l4.3,1.8l1.2-1.3l-2.2-3.9c0.4-0.5,0.7-0.9,1-1.4l4.6,0.5l0.8-1.6l-3.2-3.1c0.2-0.6,0.5-1.2,0.6-1.9 l4.6-0.9l0.3-1.7l-4-2.1C279.6,194.2,279.7,193.7,279.7,193.1z M271.4,206.2c-2.5-6.9-6.3-9.9-8.1-11c0.3-0.9,0.5-1.9,0.4-3 c0-0.3-0.1-0.7-0.2-1c7.4-0.1,10.8,5.2,12,7.8C274.7,201.8,273.2,204.2,271.4,206.2z M250.2,211.7c-2.5-0.9-4.8-2.3-6.8-4 c6.9-2.5,9.9-6.3,11-8.1c0.9,0.3,2,0.5,3,0.4c0.3,0,0.6-0.1,0.8-0.1C258.2,207.2,252.8,210.5,250.2,211.7z M242.2,179.5 c2.5,6.9,6.2,9.9,8,11c-0.4,1-0.5,2-0.4,3.2c0,0.3,0.1,0.6,0.1,0.9c-7.4,0.1-10.7-5.1-12-7.8C238.8,184,240.2,181.5,242.2,179.5z M237,194.9c0-0.4-0.1-0.7-0.1-1.1c6.6,3.1,11.4,2.6,13.4,2.1c0.6,1.3,1.5,2.3,2.7,3c-5.1,5.3-11.2,4-14,3 C237.9,199.8,237.2,197.4,237,194.9z M257,196.4c-1.9,0.2-3.6-1.2-3.8-3.1c-0.2-1.9,1.2-3.6,3.1-3.8c1.9-0.2,3.6,1.2,3.8,3.1 C260.3,194.5,258.9,196.2,257,196.4z M262.9,174.1c2.6,0.9,5.1,2.3,7.1,4.1c-6.9,2.5-9.9,6.4-11,8.1c-0.9-0.3-2-0.5-3-0.4 c-0.3,0-0.6,0.1-0.9,0.2C254.9,178.8,260.1,175.4,262.9,174.1z M274.3,183.9c1.1,2.1,1.8,4.5,2.1,7.1c0,0.3,0.1,0.6,0.1,1 c-6.7-3.1-11.5-2.6-13.5-2.1c-0.6-1.2-1.5-2.2-2.7-2.9C265.4,181.6,271.5,182.9,274.3,183.9z M255.8,173.2 c-3.1,6.7-2.6,11.5-2.1,13.5c-1.2,0.6-2.2,1.5-2.9,2.6c-5.3-5.1-3.9-11.2-2.9-14c2.1-1,4.4-1.7,6.9-2 C255.1,173.2,255.4,173.2,255.8,173.2z M257.3,212.8c3.2-6.6,2.7-11.4,2.3-13.4c1.3-0.6,2.4-1.6,3.1-2.7c5.4,5.2,4,11.3,3,14.1 c-2.1,1.1-4.5,1.8-7,2C258.2,212.7,257.8,212.8,257.3,212.8z"/> <animateTransform attributeName="transform" dur="7.3" repeatCount="indefinite" restart="always" type="rotate" values="0 256.8 192.85; 360 256.8 192.85;"/> </g> <g> <path class="main-rightSpin cog" d="M239.7,63.9l3.9-2l-0.2-1.6l-4.1-0.8c-0.1-0.5-0.2-1-0.4-1.5l3.2-3l-0.6-1.5l-4.2,0.4 c-0.2-0.5-0.5-0.9-0.8-1.3l2.3-3.8l-1-1.3l-4,1.5c-0.4-0.4-0.7-0.7-1.1-1.1l1.1-4.3l-1.4-0.9l-3.4,2.6c-0.5-0.3-0.9-0.5-1.4-0.8 l-0.1-4.4l-1.6-0.5l-2.5,3.4c-0.5-0.1-1.1-0.2-1.6-0.3l-1.4-4.2l-1.6-0.1l-1.4,4c-0.3,0-0.7,0-1,0.1c-0.2,0-0.4,0.1-0.6,0.1 l-2.5-3.6l-1.6,0.4l-0.2,4.2c-0.5,0.2-1,0.4-1.5,0.6l-3.4-2.7l-1.4,0.8l1,4.1c-0.5,0.4-1,0.7-1.4,1.1l-4-1.6l-1.1,1.2l2.1,3.6 c-0.3,0.4-0.7,0.9-1,1.3l-4.3-0.4l-0.7,1.5l3,2.8c-0.2,0.5-0.4,1.1-0.6,1.6l-4.2,0.8l-0.3,1.6l3.6,1.9c0,0.5-0.1,1.1-0.1,1.6 l-3.8,1.9l0.2,1.6l4,0.8c0.1,0.6,0.3,1.2,0.4,1.8l-3.1,2.9l0.6,1.5l4-0.4c0.3,0.6,0.6,1.1,0.9,1.6l-2.1,3.6l1.1,1.3l3.8-1.5 c0.4,0.4,0.8,0.8,1.2,1.2l-1,4.1l1.4,0.9l3.2-2.5c0.5,0.3,1,0.6,1.5,0.8l0.2,4.2l1.6,0.5l2.4-3.3c0.6,0.1,1.2,0.3,1.8,0.3l1.3,4 l1.6,0.1l1.4-3.8c0.3,0,0.6,0,1-0.1c0.3,0,0.6-0.1,0.9-0.1l2.4,3.5l1.6-0.4l0.2-4.1c0.5-0.2,1-0.4,1.5-0.6l3.3,2.7l1.4-0.8l-0.9-4 c0.5-0.3,0.9-0.7,1.3-1l4,1.6l1.1-1.2l-2-3.6c0.3-0.4,0.7-0.9,1-1.3l4.3,0.5l0.7-1.5l-3-2.9c0.2-0.6,0.4-1.1,0.6-1.7l4.3-0.8 l0.3-1.6l-3.7-1.9C239.7,64.9,239.7,64.4,239.7,63.9z M232.1,76.1c-2.3-6.4-5.9-9.2-7.5-10.2c0.3-0.9,0.4-1.8,0.3-2.8 c0-0.3-0.1-0.6-0.2-0.9c6.9-0.1,10.1,4.8,11.2,7.3C235.1,71.9,233.8,74.2,232.1,76.1z M212.3,81.1c-2.4-0.8-4.5-2.1-6.3-3.8 c6.4-2.4,9.2-5.9,10.2-7.5c0.9,0.3,1.8,0.5,2.8,0.4c0.3,0,0.5-0.1,0.8-0.1C219.8,77,214.8,80.1,212.3,81.1z M204.9,51.2 c2.3,6.4,5.8,9.2,7.4,10.2c-0.3,0.9-0.5,1.9-0.4,2.9c0,0.3,0.1,0.5,0.1,0.8c-6.8,0.1-10-4.7-11.1-7.2 C201.7,55.4,203.1,53.1,204.9,51.2z M200,65.5c0-0.3-0.1-0.7-0.1-1c6.2,2.9,10.6,2.4,12.5,1.9c0.5,1.2,1.4,2.1,2.5,2.8 c-4.8,5-10.5,3.7-13,2.8C200.9,70.1,200.3,67.9,200,65.5z M218.7,67c-1.8,0.2-3.4-1.1-3.5-2.9c-0.2-1.8,1.1-3.4,2.9-3.5 c1.8-0.2,3.4,1.1,3.5,2.9C221.8,65.2,220.5,66.8,218.7,67z M224.1,46.2c2.5,0.8,4.7,2.1,6.6,3.8c-6.5,2.4-9.2,5.9-10.2,7.5 c-0.9-0.3-1.8-0.4-2.8-0.3c-0.3,0-0.6,0.1-0.8,0.1C216.7,50.5,221.6,47.4,224.1,46.2z M234.8,55.3c1,2,1.7,4.2,1.9,6.6 c0,0.3,0.1,0.6,0.1,0.9c-6.2-2.9-10.7-2.4-12.5-1.9c-0.6-1.1-1.4-2.1-2.5-2.7C226.5,53.2,232.2,54.4,234.8,55.3z M217.5,45.3 c-2.9,6.2-2.4,10.7-1.9,12.5c-1.1,0.5-2.1,1.4-2.7,2.4c-4.9-4.8-3.7-10.4-2.7-13c1.9-1,4.1-1.6,6.4-1.8 C216.9,45.4,217.2,45.3,217.5,45.3z M219,82.2c3-6.1,2.5-10.6,2.1-12.5c1.2-0.6,2.2-1.4,2.9-2.6c5,4.8,3.7,10.5,2.8,13.1 c-2,1-4.2,1.7-6.5,1.9C219.8,82.1,219.4,82.1,219,82.2z"/> <animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="3" repeatCount="indefinite" restart="always" type="rotate" values="0 218.6 64; 360 218.6 64;"> </animateTransform> </g> <g> <path class="main-rightSpin cog" d="M347.9,92.5l2.7-1.4l-0.1-1.1l-2.9-0.6c-0.1-0.3-0.2-0.7-0.2-1l2.2-2.1l-0.4-1.1l-2.9,0.3 c-0.2-0.3-0.3-0.6-0.5-0.9l1.6-2.6l-0.7-0.9l-2.8,1.1c-0.3-0.3-0.5-0.5-0.8-0.8l0.8-3l-0.9-0.7l-2.3,1.8c-0.3-0.2-0.7-0.4-1-0.5 l-0.1-3.1l-1.1-0.4l-1.7,2.4c-0.4-0.1-0.7-0.2-1.1-0.2l-1-2.9l-1.1,0l-1,2.8c-0.2,0-0.5,0-0.7,0.1c-0.2,0-0.3,0-0.5,0.1l-1.8-2.5 l-1.1,0.3l-0.2,2.9c-0.3,0.1-0.7,0.3-1,0.4l-2.4-1.9l-1,0.6l0.7,2.8c-0.3,0.2-0.7,0.5-1,0.8l-2.8-1.1l-0.8,0.8l1.4,2.5 c-0.2,0.3-0.5,0.6-0.7,0.9l-3-0.3l-0.5,1l2.1,2c-0.1,0.4-0.3,0.7-0.4,1.1l-2.9,0.5l-0.2,1.1l2.5,1.3c0,0.4-0.1,0.7-0.1,1.1 l-2.6,1.3l0.1,1.1l2.8,0.6c0.1,0.4,0.2,0.8,0.3,1.3l-2.1,2l0.4,1.1l2.8-0.3c0.2,0.4,0.4,0.8,0.6,1.1l-1.5,2.5l0.7,0.9l2.6-1 c0.3,0.3,0.6,0.5,0.8,0.8l-0.7,2.8l0.9,0.6l2.2-1.7c0.4,0.2,0.7,0.4,1.1,0.6l0.1,2.9l1.1,0.4l1.6-2.3c0.4,0.1,0.8,0.2,1.2,0.2 l0.9,2.8l1.1,0l0.9-2.7c0.2,0,0.4,0,0.7,0c0.2,0,0.4,0,0.6-0.1l1.7,2.4l1.1-0.3l0.1-2.8c0.4-0.1,0.7-0.3,1-0.4l2.3,1.8l1-0.6 l-0.7-2.8c0.3-0.2,0.6-0.5,0.9-0.7l2.7,1.1l0.8-0.8l-1.4-2.5c0.2-0.3,0.5-0.6,0.7-0.9l3,0.3l0.5-1l-2.1-2c0.2-0.4,0.3-0.8,0.4-1.2 l3-0.6l0.2-1.1l-2.6-1.3C347.8,93.2,347.9,92.9,347.9,92.5z M342.5,101c-1.6-4.5-4.1-6.4-5.2-7.1c0.2-0.6,0.3-1.2,0.2-1.9 c0-0.2-0.1-0.4-0.1-0.6c4.8-0.1,7,3.3,7.8,5.1C344.6,98.1,343.7,99.6,342.5,101z M328.8,104.5c-1.6-0.6-3.1-1.5-4.4-2.6 c4.4-1.6,6.4-4.1,7.1-5.2c0.6,0.2,1.3,0.3,2,0.2c0.2,0,0.4-0.1,0.5-0.1C334,101.6,330.5,103.7,328.8,104.5z M323.7,83.7 c1.6,4.5,4,6.4,5.1,7.1c-0.2,0.6-0.3,1.3-0.3,2c0,0.2,0.1,0.4,0.1,0.6c-4.8,0.1-6.9-3.3-7.7-5C321.5,86.6,322.4,85,323.7,83.7z M320.3,93.6c0-0.2,0-0.5,0-0.7c4.3,2,7.4,1.7,8.7,1.3c0.4,0.8,1,1.5,1.7,2c-3.3,3.4-7.3,2.6-9,1.9 C320.9,96.8,320.4,95.3,320.3,93.6z M333.2,94.6c-1.2,0.1-2.3-0.8-2.5-2c-0.1-1.2,0.8-2.3,2-2.5c1.2-0.1,2.3,0.8,2.5,2 C335.4,93.4,334.5,94.5,333.2,94.6z M337,80.2c1.7,0.6,3.3,1.5,4.6,2.7c-4.5,1.6-6.4,4.1-7.1,5.2c-0.6-0.2-1.3-0.3-1.9-0.2 c-0.2,0-0.4,0.1-0.6,0.1C331.9,83.2,335.3,81,337,80.2z M344.4,86.6c0.7,1.4,1.2,2.9,1.3,4.6c0,0.2,0,0.4,0,0.6 c-4.3-2-7.4-1.6-8.7-1.3c-0.4-0.8-1-1.4-1.7-1.9C338.7,85.1,342.6,85.9,344.4,86.6z M332.4,79.6c-2,4.3-1.6,7.4-1.3,8.7 c-0.8,0.4-1.4,0.9-1.9,1.7c-3.4-3.3-2.5-7.2-1.9-9c1.3-0.7,2.8-1.1,4.4-1.3C332,79.6,332.2,79.6,332.4,79.6z M333.5,105.2 c2.1-4.3,1.8-7.4,1.5-8.7c0.8-0.4,1.5-1,2-1.8c3.5,3.3,2.6,7.3,1.9,9.1c-1.4,0.7-2.9,1.2-4.5,1.3 C334,105.2,333.7,105.2,333.5,105.2z"/> <animateTransform attributeName="transform" dur="3" repeatCount="indefinite" restart="always" type="rotate" values="0 333.1 92.3; 360 333.1 92.3;"/> </g> <g> <path class="main-rightSpin cog" d="M293.8,46.1l1.6-0.8l-0.1-0.7l-1.7-0.3c0-0.2-0.1-0.4-0.1-0.6l1.3-1.2l-0.3-0.6l-1.7,0.1 c-0.1-0.2-0.2-0.4-0.3-0.5l0.9-1.5l-0.4-0.5l-1.6,0.6c-0.1-0.2-0.3-0.3-0.4-0.4l0.4-1.7l-0.5-0.4l-1.3,1c-0.2-0.1-0.4-0.2-0.6-0.3 l-0.1-1.8l-0.6-0.2l-1,1.4c-0.2-0.1-0.4-0.1-0.6-0.1L286,36l-0.7,0l-0.6,1.6c-0.1,0-0.3,0-0.4,0c-0.1,0-0.2,0-0.3,0l-1-1.4 l-0.6,0.2l-0.1,1.7c-0.2,0.1-0.4,0.1-0.6,0.2l-1.4-1.1l-0.6,0.3l0.4,1.6c-0.2,0.1-0.4,0.3-0.6,0.4l-1.6-0.6l-0.4,0.5l0.8,1.4 c-0.1,0.2-0.3,0.4-0.4,0.5l-1.7-0.2l-0.3,0.6l1.2,1.1c-0.1,0.2-0.2,0.4-0.2,0.6l-1.7,0.3l-0.1,0.6l1.4,0.8c0,0.2,0,0.4,0,0.6 l-1.5,0.8l0.1,0.7l1.6,0.3c0,0.2,0.1,0.5,0.2,0.7l-1.2,1.2l0.3,0.6l1.6-0.1c0.1,0.2,0.2,0.4,0.4,0.6l-0.8,1.4l0.4,0.5l1.5-0.6 c0.2,0.2,0.3,0.3,0.5,0.5l-0.4,1.6l0.5,0.4l1.3-1c0.2,0.1,0.4,0.2,0.6,0.3l0.1,1.7l0.6,0.2l0.9-1.3c0.2,0.1,0.5,0.1,0.7,0.1 l0.5,1.6l0.7,0l0.5-1.5c0.1,0,0.3,0,0.4,0c0.1,0,0.2,0,0.4,0l1,1.4l0.6-0.2l0.1-1.6c0.2-0.1,0.4-0.2,0.6-0.2l1.3,1.1l0.6-0.3 l-0.4-1.6c0.2-0.1,0.4-0.3,0.5-0.4l1.6,0.7l0.4-0.5l-0.8-1.4c0.1-0.2,0.3-0.3,0.4-0.5l1.7,0.2l0.3-0.6l-1.2-1.2 c0.1-0.2,0.2-0.5,0.2-0.7l1.7-0.3l0.1-0.6l-1.5-0.8C293.8,46.6,293.8,46.4,293.8,46.1z M290.7,51c-0.9-2.6-2.3-3.7-3-4.1 c0.1-0.3,0.2-0.7,0.1-1.1c0-0.1,0-0.2-0.1-0.4c2.8-0.1,4,1.9,4.5,2.9C291.9,49.4,291.4,50.3,290.7,51z M282.8,53 c-0.9-0.3-1.8-0.8-2.5-1.5c2.5-0.9,3.7-2.3,4.1-3c0.4,0.1,0.7,0.2,1.1,0.1c0.1,0,0.2,0,0.3-0.1C285.8,51.4,283.8,52.6,282.8,53z M279.9,41.1c0.9,2.6,2.3,3.7,3,4.1c-0.1,0.4-0.2,0.8-0.2,1.2c0,0.1,0,0.2,0.1,0.3c-2.7,0-4-1.9-4.4-2.9 C278.6,42.8,279.2,41.9,279.9,41.1z M277.9,46.8c0-0.1,0-0.3,0-0.4c2.5,1.2,4.2,1,5,0.8c0.2,0.5,0.6,0.9,1,1.1 c-1.9,2-4.2,1.5-5.2,1.1C278.3,48.6,278,47.7,277.9,46.8z M285.4,47.4c-0.7,0.1-1.3-0.4-1.4-1.2c-0.1-0.7,0.4-1.3,1.2-1.4 c0.7-0.1,1.3,0.4,1.4,1.2C286.6,46.7,286.1,47.3,285.4,47.4z M287.5,39.1c1,0.3,1.9,0.8,2.6,1.5c-2.6,0.9-3.7,2.4-4.1,3 c-0.3-0.1-0.7-0.2-1.1-0.1c-0.1,0-0.2,0-0.3,0.1C284.6,40.8,286.5,39.6,287.5,39.1z M291.8,42.7c0.4,0.8,0.7,1.7,0.8,2.6 c0,0.1,0,0.2,0,0.4c-2.5-1.2-4.3-0.9-5-0.8c-0.2-0.5-0.6-0.8-1-1.1C288.5,41.9,290.8,42.4,291.8,42.7z M284.9,38.7 c-1.2,2.5-0.9,4.3-0.8,5c-0.5,0.2-0.8,0.5-1.1,1c-2-1.9-1.5-4.1-1.1-5.2c0.8-0.4,1.6-0.6,2.5-0.7C284.7,38.8,284.8,38.8,284.9,38.7 z M285.5,53.4c1.2-2.4,1-4.2,0.8-5c0.5-0.2,0.9-0.6,1.1-1c2,1.9,1.5,4.2,1.1,5.2c-0.8,0.4-1.7,0.7-2.6,0.8 C285.8,53.4,285.7,53.4,285.5,53.4z"/> <animateTransform attributeName="transform" dur="2.7" repeatCount="indefinite" restart="always" type="rotate" values="0 285.2 45.95; 360 285.2 45.95;"/> </g> <g> <path class="main-rightSpin cog" d="M190.4,69.4l1.9-0.8l0-0.8l-1.9-0.5c0-0.2-0.1-0.5-0.1-0.7l1.6-1.3l-0.3-0.7l-2,0.1 c-0.1-0.2-0.2-0.4-0.3-0.7l1.2-1.7l-0.5-0.6l-1.9,0.6c-0.2-0.2-0.3-0.4-0.5-0.5l0.6-2l-0.6-0.5l-1.7,1.1c-0.2-0.1-0.4-0.3-0.7-0.4 l0-2.1l-0.7-0.3l-1.3,1.6c-0.2-0.1-0.5-0.1-0.8-0.2l-0.6-2l-0.8-0.1l-0.8,1.8c-0.2,0-0.3,0-0.5,0c-0.1,0-0.2,0-0.3,0l-1.1-1.8 l-0.8,0.2l-0.2,2c-0.2,0.1-0.5,0.1-0.7,0.2l-1.5-1.4l-0.7,0.4l0.3,1.9c-0.2,0.2-0.5,0.3-0.7,0.5l-1.9-0.9l-0.6,0.5l0.9,1.7 c-0.2,0.2-0.3,0.4-0.5,0.6l-2-0.3l-0.4,0.7l1.3,1.4c-0.1,0.2-0.2,0.5-0.3,0.7l-2,0.3l-0.2,0.8l1.7,1c0,0.2-0.1,0.5-0.1,0.8 l-1.8,0.8l0,0.8l1.9,0.5c0,0.3,0.1,0.6,0.2,0.9l-1.5,1.3l0.3,0.7l1.9-0.1c0.1,0.3,0.3,0.5,0.4,0.8l-1.1,1.7l0.5,0.6l1.8-0.6 c0.2,0.2,0.4,0.4,0.5,0.6l-0.6,1.9l0.6,0.5l1.6-1.1c0.2,0.1,0.5,0.3,0.7,0.4l0,2l0.7,0.3l1.2-1.5c0.3,0.1,0.5,0.1,0.8,0.2l0.5,1.9 l0.8,0.1l0.7-1.8c0.1,0,0.3,0,0.5,0c0.1,0,0.3,0,0.4,0l1.1,1.7l0.8-0.2l0.2-1.9c0.2-0.1,0.5-0.2,0.7-0.3l1.5,1.3l0.7-0.4l-0.3-1.9 c0.2-0.1,0.4-0.3,0.7-0.5l1.8,0.9l0.6-0.5l-0.9-1.8c0.2-0.2,0.3-0.4,0.5-0.6l2,0.3l0.4-0.7l-1.3-1.4c0.1-0.3,0.2-0.5,0.3-0.8l2-0.3 l0.2-0.8l-1.7-1C190.4,69.9,190.4,69.7,190.4,69.4z M186.5,75c-0.9-3.1-2.5-4.5-3.3-5c0.2-0.4,0.2-0.8,0.2-1.3c0-0.1,0-0.3-0.1-0.4 c3.3,0.1,4.6,2.5,5.1,3.7C188,73.1,187.4,74.1,186.5,75z M177.1,76.9c-1.1-0.4-2.1-1.1-2.9-1.9c3.1-1,4.5-2.5,5-3.3 c0.4,0.2,0.9,0.3,1.3,0.2c0.1,0,0.3,0,0.4,0C180.7,75.1,178.3,76.4,177.1,76.9z M174.3,62.6c0.9,3.1,2.5,4.5,3.2,5 c-0.2,0.4-0.3,0.9-0.3,1.4c0,0.1,0,0.3,0,0.4c-3.2-0.1-4.6-2.5-5.1-3.7C172.7,64.5,173.4,63.4,174.3,62.6z M171.7,69.2 c0-0.2,0-0.3,0-0.5c2.8,1.5,4.9,1.4,5.8,1.2c0.2,0.6,0.6,1,1.1,1.4c-2.4,2.2-5,1.5-6.2,1C172,71.4,171.7,70.3,171.7,69.2z M180.4,70.4c-0.8,0-1.6-0.6-1.6-1.5c0-0.8,0.6-1.6,1.5-1.6c0.8,0,1.6,0.6,1.6,1.5C181.9,69.6,181.3,70.3,180.4,70.4z M183.5,60.7 c1.1,0.4,2.2,1.1,3,2c-3.1,1-4.5,2.6-5,3.3c-0.4-0.2-0.8-0.3-1.3-0.2c-0.1,0-0.3,0-0.4,0C179.9,62.6,182.3,61.2,183.5,60.7z M188.3,65.3c0.4,1,0.7,2,0.7,3.1c0,0.1,0,0.3,0,0.4c-2.9-1.5-5-1.4-5.9-1.2c-0.2-0.6-0.6-1-1.1-1.3 C184.5,64,187.1,64.8,188.3,65.3z M180.4,60.1c-1.5,2.9-1.4,5-1.2,5.9c-0.5,0.2-1,0.6-1.3,1.1c-2.2-2.4-1.5-5-0.9-6.2 c0.9-0.4,2-0.7,3.1-0.7C180.1,60.1,180.3,60.1,180.4,60.1z M180.2,77.5c1.6-2.8,1.5-4.9,1.3-5.8c0.6-0.2,1.1-0.6,1.4-1.1 c2.2,2.4,1.5,5.1,1,6.2c-1,0.4-2,0.7-3.1,0.7C180.6,77.5,180.4,77.5,180.2,77.5z"/> <animateTransform attributeName="transform" dur="4" repeatCount="indefinite" restart="always" type="rotate" values="0 180.2 68.8; 360 180.2 68.8;"> </animateTransform> </g> <g> <path class="main-rightSpin cog" d="M273.9,146.2l2.2-1.1l-0.1-0.9l-2.3-0.5c-0.1-0.3-0.1-0.5-0.2-0.8l1.8-1.7l-0.4-0.9l-2.4,0.2 c-0.1-0.3-0.3-0.5-0.4-0.8l1.3-2.1l-0.6-0.7l-2.2,0.9c-0.2-0.2-0.4-0.4-0.6-0.6l0.6-2.4l-0.8-0.5l-1.9,1.4 c-0.3-0.2-0.5-0.3-0.8-0.4l-0.1-2.5l-0.9-0.3l-1.4,1.9c-0.3-0.1-0.6-0.1-0.9-0.2L263,132l-0.9,0l-0.8,2.2c-0.2,0-0.4,0-0.6,0 c-0.1,0-0.2,0-0.4,0l-1.4-2l-0.9,0.2l-0.1,2.3c-0.3,0.1-0.5,0.2-0.8,0.3l-1.9-1.5l-0.8,0.5l0.5,2.3c-0.3,0.2-0.5,0.4-0.8,0.6 l-2.2-0.9l-0.6,0.7l1.2,2c-0.2,0.2-0.4,0.5-0.5,0.8l-2.4-0.2l-0.4,0.8l1.7,1.6c-0.1,0.3-0.2,0.6-0.3,0.9l-2.3,0.4L248,144l2,1.1 c0,0.3,0,0.6,0,0.9l-2.1,1.1l0.1,0.9l2.2,0.5c0.1,0.3,0.1,0.7,0.2,1l-1.7,1.6l0.4,0.8l2.3-0.2c0.2,0.3,0.3,0.6,0.5,0.9l-1.2,2 l0.6,0.7l2.1-0.8c0.2,0.2,0.4,0.4,0.7,0.6l-0.6,2.3l0.8,0.5l1.8-1.4c0.3,0.2,0.6,0.3,0.9,0.5l0.1,2.3l0.9,0.3l1.3-1.8 c0.3,0.1,0.6,0.1,1,0.2l0.7,2.2l0.9,0l0.8-2.1c0.2,0,0.4,0,0.5,0c0.2,0,0.3,0,0.5-0.1l1.4,1.9l0.9-0.2l0.1-2.3 c0.3-0.1,0.6-0.2,0.8-0.3l1.9,1.5l0.8-0.5l-0.5-2.2c0.3-0.2,0.5-0.4,0.7-0.6l2.2,0.9l0.6-0.7l-1.1-2c0.2-0.2,0.4-0.5,0.5-0.7 l2.4,0.3l0.4-0.8l-1.7-1.6c0.1-0.3,0.2-0.6,0.3-1l2.4-0.4l0.2-0.9l-2.1-1.1C273.8,146.8,273.9,146.5,273.9,146.2z M269.6,153.1 c-1.3-3.6-3.3-5.1-4.2-5.7c0.2-0.5,0.2-1,0.2-1.5c0-0.2-0.1-0.3-0.1-0.5c3.9-0.1,5.6,2.7,6.3,4.1 C271.3,150.7,270.5,152,269.6,153.1z M258.5,155.9c-1.3-0.5-2.5-1.2-3.5-2.1c3.6-1.3,5.1-3.3,5.7-4.2c0.5,0.2,1,0.3,1.6,0.2 c0.1,0,0.3,0,0.4-0.1C262.7,153.6,259.9,155.3,258.5,155.9z M254.4,139.2c1.3,3.6,3.2,5.2,4.1,5.7c-0.2,0.5-0.3,1.1-0.2,1.6 c0,0.2,0,0.3,0.1,0.4c-3.8,0.1-5.6-2.6-6.2-4C252.6,141.5,253.4,140.2,254.4,139.2z M251.7,147.2c0-0.2,0-0.4,0-0.6 c3.4,1.6,5.9,1.3,7,1.1c0.3,0.7,0.8,1.2,1.4,1.6c-2.7,2.8-5.8,2.1-7.3,1.6C252.2,149.7,251.8,148.5,251.7,147.2z M262.1,148 c-1,0.1-1.9-0.6-2-1.6c-0.1-1,0.6-1.9,1.6-2c1-0.1,1.9,0.6,2,1.6C263.8,147,263.1,147.9,262.1,148z M265.1,136.4 c1.4,0.5,2.6,1.2,3.7,2.1c-3.6,1.3-5.2,3.3-5.7,4.2c-0.5-0.2-1-0.2-1.6-0.2c-0.2,0-0.3,0-0.5,0.1C261,138.8,263.7,137,265.1,136.4z M271.1,141.5c0.6,1.1,0.9,2.4,1.1,3.7c0,0.2,0,0.3,0,0.5c-3.5-1.6-6-1.3-7-1.1c-0.3-0.6-0.8-1.2-1.4-1.5 C266.5,140.3,269.6,140.9,271.1,141.5z M261.5,135.9c-1.6,3.5-1.3,6-1.1,7c-0.6,0.3-1.2,0.8-1.5,1.3c-2.7-2.7-2-5.8-1.5-7.3 c1.1-0.5,2.3-0.9,3.6-1C261.1,135.9,261.3,135.9,261.5,135.9z M262.3,156.5c1.7-3.4,1.4-5.9,1.2-7c0.7-0.3,1.2-0.8,1.6-1.4 c2.8,2.7,2.1,5.9,1.5,7.3c-1.1,0.6-2.3,0.9-3.6,1.1C262.7,156.4,262.5,156.5,262.3,156.5z"/> <animateTransform accumulate="none" additive="replace" attributeName="transform" calcMode="linear" dur="3" repeatCount="indefinite" restart="always" type="rotate" values="0 262 146.1; 360 262 146.1;"> </animateTransform> </g> </g> </g> </svg>
<style> #X920 {fill:#04B0B9;} #X921 {fill:#009FCA;} #X922 {fill:#308ACE;} #X923 {fill:#716FBD;} #X924 {fill:#984F97;} #X925 {fill:#A63163;} #X926 {fill:#3DC9D2;} #X927 {fill:#6566A3;} </style> <svg version="1.1" id="1_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="40%" viewBox="0 0 100 100" style="enable-background:new 0 0 10 10;" xml:space="preserve"><style type="text/css">.st0{fill:#333333;}</style><path id="X920" class="st0" d="M60.1,22.9c7.4,0.4,14,3.3,19.4,8.1L60.1,50.6V22.9z "/> <path id="X921" class="st0" d="M63.3,53.3h19.1 c-0.4-4.7-2.4-9.8-5.6-13.6L63.3,53.3z"/> <path id="X922" class="st0" d=" M81,75.2c4.3-5,6.9-11.1,7.3-17.8h-25L81,75.2z "/> <path id="X923" class="st0" d="M60.1,90.6c8.1-0.5,15.3-3.5,21.2-8.9 L60.1,60.4V90.6z "/> <path id="X924" class="st0" d="M56.1,95V60.4L31.8,84.9C38.5,91,47.3,94.5,56.1,95z "/> <path id="X925" class="st0" d="M15.3,57.3c0.5,10.1,4.4,19.7,11.2,27.3l27.1-27.3H15.3z "/> <path id="X926" class="st0" d="M24,23.4c-7.5,8.2-11.8,19.1-12.3,29.9h41.9L24,23.4z"/> <path id="X927" class="st0" d="M56.1,5c-11.4,0.5-23.2,5.2-32,13.4l32,32.2V5z"/> </svg>
<svg viewBox="0 0 160 160" width="160" height="160"> <circle cx="80" cy="80" r="50" /> <g transform=" matrix(0.866, -0.5, 0.25, 0.433, 80, 80)"> <path d="M 0,70 A 65,70 0 0,0 65,0 5,5 0 0,1 75,0 75,70 0 0,1 0,70Z" fill="#CDA"> <animateTransform attributeName="transform" type="rotate" from="360 0 0" to="0 0 0" dur="1s" repeatCount="indefinite" /> </path> </g> <path d="M 50,0 A 50,50 0 0,0 -50,0Z" transform="matrix(0.866, -0.5, 0.5, 0.866, 80, 80)" /> </svg>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. Proin sed dui egestas, egestas ligula hendrerit, porttitor erat. Duis posuere tellus vel nunc tristique tempor. Fusce eget imperdiet orci. Aliquam accumsan, lacus et gravida semper, tellus nibh consequat nunc, hendrerit condimentum lorem nunc in velit. Duis tristique gravida risus id rhoncus. Nam at augue at leo semper feugiat. Aliquam lobortis turpis eu augue imperdiet, eu vulputate magna luctus. Cras vehicula, erat sed faucibus sodales, elit odio pharetra magna, at accumsan nisl neque at lorem. Praesent egestas nibh non elementum tempus. Proin quis enim sit amet felis iaculis tincidunt. Nunc accumsan vel tortor non accumsan. Proin purus ante, ornare mattis quam at, rhoncus scelerisque dolor. Proin interdum posuere nibh, quis semper metus ultrices ac. Nam rutrum, tortor molestie ullamcorper vulputate, nisi leo consectetur leo, at sollicitudin augue libero nec nisi. Maecenas id tincidunt urna. Nunc vehicula venenatis arcu, scelerisque ultricies felis egestas nec. Curabitur sed ex finibus, elementum ex sit amet, cursus mi. Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec mattis sagittis ipsum, et venenatis nulla lobortis ut. Sed porttitor accumsan tincidunt. Nulla efficitur eget erat sit amet accumsan. Nullam fermentum, arcu eu ornare cursus, mauris augue mollis felis, et vulputate ipsum justo quis nunc. Aliquam varius mi mauris, tincidunt consequat felis tristique sit amet. Suspendisse tempus ut leo vel feugiat. Suspendisse a varius dui. Nunc tincidunt ullamcorper elementum. Nunc volutpat orci id lacinia tempus. Sed sit amet ante malesuada nulla bibendum eleifend. Aenean ultrices volutpat ante, mollis suscipit est vehicula laoreet. Morbi imperdiet augue a condimentum auctor. Mauris sit amet ipsum eu enim dictum volutpat eget eu metus. Mauris congue mauris nec interdum tempus. Mauris sagittis, elit id semper viverra, elit est varius massa, et faucibus dui tortor vitae sapien. Fusce in velit tempor, ultricies eros quis, convallis est. Sed ac auctor ipsum. Suspendisse ut orci nisi. Nunc ac lacus sagittis, tristique orci ac, facilisis erat. Donec malesuada vestibulum dui ut venenatis. Donec quis pretium ante. Aenean sit amet mi in turpis pharetra tincidunt. Donec vitae mauris id nunc pellentesque tristique. Praesent a lorem dui. 5 paragraphes, 387 mots, 2601 caractères de Lorem Ipsum généré
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
{{LWT||caption}}
Un exemple de liste passant par un template. Ce sujet est en cours de traitement parce que l'exemple ne fonctionne pas encore bien. ''La liste des activités'' est à finaliser. Pour que le template soit pris en compte il faut taguer le tiddler [[activity]] (le template) `$:/tags/ViewTemplate` Les balises HTML <div> (suivi d'un espace) et </div> au début et à la fin du code mérite une explication: Question: <<< I have a list widget which gets passed a template tiddler to apply. However for some reason all TW markup in that tiddler gets just output as plain text and not parsed as one would expect. <<< La raison est la suivante : <<< The problem is that the template content is being parsed "inline" instead of "block mode". One way to force the template content to be shown in block mode is to add a surrounding <div>...</div> in the template. One very important detail: there MUST be a blank line before the first "!" (heading) syntax or it still will be rendered inline as a literal "!" <<<
<$wikify name="target" text="$:/temp/<<currentTiddler>>/activity"> <$set name="contact-id" value={{!!title}}> <$list filter="[title<target>is[tiddler]]" template="activity" /> </$set> </$wikify>
\define css(fa:"fa-binoculars",t:"feuille de style associée : ",c:"#f1fcff",style:"style") <div class="css" style='background-color: $c$;'> <i class='fa $fa$'> </i> $t$ $style$</div> <style> .css { font-size: 0.9em; line-height: 1.5rem; color: firebrick; font-weight: 400; width: 100%; display: flex; justify-content: left; align-items: center; /*Alignement de l’icône sur le texte*/ margin-bottom: 0.1rem; padding: 1rem;/*Réduire le padding pou réduire la surface de l'enveloppe*/ } </style> \end ``` Code : <<css "" "" "" "">> ``` Code : <<css "" "" "" "">>
\define gradient(text:"", color:"green") <$set name="gradient-color" filter="[[$color$]addprefix[linear-gradient-]]" emptyValue="linear-gradient-green"> <$reveal type="match" text=<<gradient-color>> default="linear-gradient-red")> <div class="gradient linear-gradient-red">$text$</div> </$reveal> <$reveal type="match" text=<<gradient-color>> default="linear-gradient-blue")> <div class="gradient linear-gradient-blue">$text$</div> </$reveal> <$reveal type="match" text=<<gradient-color>> default="linear-gradient-green")> <div class="gradient linear-gradient-green">$text$</div> </$reveal> </$set> \end <style> .gradient{ padding:10px; color:#ffffff; font-weight:400; font-size:1.2em; } .linear-gradient-red{ background-image: linear-gradient(to left, #FF057C 0%, #8D0B93 50%, #321575 100%); } .linear-gradient-green { background-image: linear-gradient(to right, #002400 0%,#005700 15%,#008a00 29%,#52b152 56%,#83c783 68%,#b4ddb4 100%); } .linear-gradient-blue{ background-image: linear-gradient(to right, #6a11cb 0%, #2575fc 100%); } </style> Ces exemples sont fondés sur des macros. Je les classe cependant sous le mot clé "Couleurs" qui me paraît être leur place la plus appropriée. !Code !!La macro ``` \define gradient(text:"", color:"green") <$set name="gradient-color" filter="[[$color$]addprefix[linear-gradient-]]" emptyValue="linear-gradient-green"> <$reveal type="match" text=<<gradient-color>> default="linear-gradient-red")> <div class="gradient linear-gradient-red">$text$</div> </$reveal> <$reveal type="match" text=<<gradient-color>> default="linear-gradient-blue")> <div class="gradient linear-gradient-blue">$text$</div> </$reveal> <$reveal type="match" text=<<gradient-color>> default="linear-gradient-green")> <div class="gradient linear-gradient-green">$text$</div> </$reveal> </$set> \end ``` !!La feuille de style //Obligatoire pour que le code soit valide// ``` <style> .gradient{ padding:10px; color:#ffffff; font-weight:400; font-size:1.2em; } .linear-gradient-red{ background-image: linear-gradient(to left, #FF057C 0%, #8D0B93 50%, #321575 100%); } .linear-gradient-green { background-image: linear-gradient(to right, #002400 0%,#005700 15%,#008a00 29%,#52b152 56%,#83c783 68%,#b4ddb4 100%); } .linear-gradient-blue{ background-image: linear-gradient(to right, #6a11cb 0%, #2575fc 100%); } </style> ``` !Exemples ``` <<gradient "Un gradient avec la couleur par défaut">> <<gradient "Gradient bleu" blue>> <<gradient "Gradient rouge" red>> <<gradient "Gradient vert" green>> ``` <<gradient "Un gradient avec la couleur par défaut">> <<gradient "Gradient bleu" blue>> <<gradient "Gradient rouge" red>> <<gradient "Gradient vert" green>>
\define gradient(text:"", color1:"green" color2:"blue") <$set name="gradient-color" filter="[[$color1$$color2$]addprefix[linear-gradient-]]" emptyValue="linear-gradient-green"> <div class="gradient linear-gradient-$color1$$color2$" > $text$</div> </$set> <style> .gradient{ padding:10px; color:#ffffffcc; font-weight:400; font-size:1.2em; } .linear-gradient-$color1$$color2${ background-image: linear-gradient(to left, $color1$ 0%, $color2$ 100%); } </style> \end Ces exemples sont fondés sur des macros. Je les classe cependant sous le mot clé "Couleurs" qui me paraît être leur place la plus appropriée. Dans cette démonstration proposée par l'excellent [ext[@oxydum|https://forum.tiddlywiki.fr/u/oxydum]], aucune feuille de style supplémentaire n'est requise (elle est incluse dans la macro). Tous les navigateurs modernes ET TW5 supportent les [[140 couleurs nommées|140 couleurs]] (insensible à la casse). [[Vous pouvez aussi les voir ici|Couleurs nommées (en liste)]] !La macro ``` \define gradient(text:"", color1:"green" color2:"blue") <$set name="gradient-color" filter="[[$color1$$color2$]addprefix[linear-gradient-]]" emptyValue="linear-gradient-green"> <div class="gradient linear-gradient-$color1$$color2$" > $text$</div> </$set> <style> .gradient{ padding:10px; color:#ffffffcc; font-weight:400; font-size:1.2em; } .linear-gradient-$color1$$color2${ background-image: linear-gradient(to left, $color1$ 0%, $color2$ 100%); } </style> \end ``` !Exemples ``` <<gradient "Un gradient avec la couleur par défaut">> <<gradient "Gradient steelblue" lightskyblue steelblue>> <<gradient "Gradient rouge" tomato red>> <<gradient "Gradient vert" greenyellow green>> <<gradient "Gradient crimson" lightpink crimson>> <<gradient "Gradient firebrick" turquoise firebrick>> <<gradient "Gradient moccasin" moccasin darkmagenta>> ``` La première couleur correspond à la couleur finale (à droite); la seconde correspond à la couleur initiale (à gauche). C'est à dire que la palette va de l'opacité la plus faible (100%) à l'opacité la plus forte (0%) de la gauche vers la droite. On peut inverser cet ordre en changeant `linear-gradient(to left,` par `linear-gradient(to right,` dans le code CSS intégré à la macro. Il ne reste plus qu'à jouer avec les codes couleurs en mixant par exemple les couleurs complémentaires. Une "Color Wheel" (Roue des couleurs) les indique précisément. <<gradient "Un gradient avec la couleur par défaut">> <<gradient "Gradient steelblue" lightskyblue steelblue>> <<gradient "Gradient rouge" tomato red>> <<gradient "Gradient vert" greenyellow green>> <<gradient "Gradient crimson" lightpink crimson>> <<gradient "Gradient firebrick" turquoise firebrick>> <<gradient "Gradient moccasin" moccasin darkmagenta>>
\define the_link() [[$(x)$]] \end \define doc() <$set name="x" value={{!!title}}> <<the_link>> </$set> \end <<doc>>
(function(){ exports.name = "addition"; exports.params = [ { name: "constante1" }, { name: "constante2" }, { name: "variable1" } ]; exports.run = function(constante1,constante2,variable1) { var variable1 = Number(this.wiki.getTiddlerText("$:/Variable")); var output = constante1*constante2+variable1; return output; }; })();
<div class="attention">Attention: Pour que la macro soit prise en compte, vous devez sauvegarder et redémarrer votre wiki</div> Une macro pour écrire tout texte en rouge. ; Utilisation: ``` <<rojo "Le texte est de couleur rouge">>. Mais pas celui-là. ``` ; Soit: <<rojo "Le texte est de couleur rouge">>.Mais pas celui-là. J'ai choisi de nomer cette macro "rojo" plutôt que "red" pour deux raisons: # L'espagnol est ma langue maternelle. # "red" est un nom très commun en anglais; avec "rojo" j'évite ainsi toute collusion possible. If you want this macro just grab this link to your TW5: [[$:/macros/danielo/rojo.js]] ''Remarque importante: Une fois cette nacro installée vous devez rafraîchir votre navigateur pour que celle-ci fonctionne.'' Le core doit en effet charger le code javascript. Crédit à ''StephanHradek'' qui a développé le code javascript de base de cette macro. ( [[TW5Magick|http://tw5magick.tiddlyspot.com/]] )
Embarquée dans le core deTW5, la macro tag génère une liste déroulante contenant la liste des tiddlers possédant le tag spécifié. Exemple : ``` <<tag Templates>> ``` Rendra : <<tag Templates>>
\define tag-summary(tagname) There are <$count filter="[tag[Applications]tag[$tagname$]]"/> articles about <<tag "$tagname$">>
/*\ title: Macro TiddlyWiki.js type: application/javascript module-type: macro \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Informations sur la macro */ exports.name = "updated"; exports.params = [ {name: "param1"} ]; /* Exécuter la macro */ exports.run = function(param1) { return "est rendue disponible le "+ param1+" !!" ; }; })();
\define find(text, begin, end, output:"simple") <$vars fulltext=<<__text__>> start=<<__begin__>> stop=<<__end__>> output-macro=<<__output__>> > <$list variable="p1" filter="[<fulltext>splitbefore<start>]"> <$list variable="p2" filter="[<fulltext>removeprefix<p1>]"> <$list variable="p3" filter="[<p2>splitbefore<stop>removesuffix<stop>]"> <$macrocall $name=<<output-macro>> p=<<p3>> /> <$macrocall $name="find" text={{{[<p2>removeprefix<p3>removeprefix<stop>]}}} begin=<<start>> end=<<stop>> output=<<output-macro>> /> </$list> </$list> </$list> </$vars> \end \define simple(p) <$text text=<<__p__>> /> \end \define simple-list(p) <li><$text text=<<__p__>>/></li> \end !! Summary * `find` is a macro to search a text and find all snippets delimited between values of `begin` and `end` delimiters * `simple` is a macro used by `find` to show the output in a simple format * `simple-list` is a macro used by `find` to show the output in a simple list format. The ordered and unordered list can be used if the call to `find` macro wrapped in a `div` with suitable type e.g `ol` or `ul`.
\define vspace(height:"2cm") <p style="margin-bottom: $height$;"></p> \end !!La Macro: ``` \define vspace(height:"2cm") <p style="margin-bottom: $height$;"></p> \end ``` !! Objet > Crée un espace vertical via une balise de paragraphe vide !! Syntaxe <<< ``` <<vspace height:"2cm">> ``` !! Contenu et parmètres |Paramètres |Type |Description |h |height |optionnel|la hauteur de l'espace vertical, par défaut 2cm | `height`, spécifie une "margin-bottom" fixe en px, cm, em, etc. La valeur par défut est de 2cm. <<< !! Revisions <<< ;Rev 0.1 :17th Mar 2019 00:46:47 <<< !! References <<< # [[CSS values and units|https://developer.mozilla.org/en-US/docs/Learn/CSS/Introduction_to_CSS/Values_and_units]] <<< !! Exemple: Cet exemple crée un espace vertical de 2 cm de hauteur ``` Texte avant l'espace <<vspace 2cm>> Texte après l'espace ``` ;Soit: <<< Texte avant l'espace <<vspace 2cm>> Texte après l'espace <<<
{{MacroCalc||caption}}
*[[MacroCalc]]:Une macro multipliant 2 constantes puis additionnant une variable *[[$:/Variable]]: Un State Tiddler qui reçoit le montant de la variable *[[MacroCalcResultat]]: Tiddler appelant la variable et affichant le résultat.
\define calcul() <<addition "20" "20""$(CCC)$">> \end Variable à saisir : <$edit-text tiddler="$:/Variable" tag="input"/> Réultat : <$set name="CCC" value={{$:/Variable}}> <<calcul>> </$set> *Constante 1:20 *constante 2; 20 *variable 1: 10 C1 * C2 + v1 => 20*20+10 = 410
\define Administration(name:{{$:/Administrateur}}) $name$ \end !1- La Macro ``` \define Administration(name:{{$:/Administrateur}}) $name$ \end ``` !2- Appel de la Macro ``` <<Administration>> ``` <<Administration>>
! Introduction Le widget d'appel de macro propose une syntaxe alternative pour invoquer des macros. L'avantage de la forme de ce widget est de passer des paramètres de macro en attributs de widget, ce qui permet d'utiliser des indirections et d'affecter des valeurs de macro. Par exemple, une macro appelée `italicise` ayant pour seul paramètre `texte` peut être invoquée de ces différentes façons<<:>> ``` <<italicise "Texte à mettre en italiques">> <<italicise text:"Texte à mettre en italiques">> <$macrocall $name="italicise" text="Texte à mettre en italiques"/> <$macrocall $name="italicise" text={{Titre du tiddler contenant le Texte à mettre en italiques}}/> <$macrocall $name="italicise" text=<<textMaker "Une autre macro pour générer du texte à italiciser">>/> ``` Vous pouvez examiner plusieurs exemples du widget d'appel de macro dans le noyau<<:>> * Liste les informations du module<<:>> [[$:/snippets/modules]] * Liste les informations du champ<<:>> [[$:/snippets/allfields]] * Génère les URIs `data:`<<:>> `$:/themes/tiddlywiki/starlight/styles.tid` ! Contenu et Attributs Le contenu du widget `<$macrocall>` est ignoré. |!Attribut |!Description | |$name |Nom de la macro appelée | |$type |[[Type de contenu|ContentType]] par lequel le texte entrée sera analysé (par défault `text/vnd.tiddlywiki`) | |$output |[[Type de contenu|ContentType]] affiché en sortie (par défaut `text/html`, peut aussi être `text/plain`) | |//parameters// |Paramètres de macro spécifiés comme attributs |
{{MacroClone||caption}}
{{Macros||caption}}
L'utilisation des [[macros|Macros]] dans [[WikiTexte|WikiText]] a deux aspects distincts: * [ext[Définition des macros|https://tiddlywiki.com/languages/fr-FR/index.html#Macro%20Definitions%20in%20WikiText]] * [ext[Appel des macros|https://tiddlywiki.com/languages/fr-FR/index.html#Macro%20Calls%20in%20WikiText]]
\define titre(t,c:"#00D4BCFF", fa:"fa-search") <h3 class="titre" style='background-color: $c$;'> $t$ <i class='fa $fa$'> </i> </h3> <style> .titre { font-size: 1.7rem; line-height: 3.5rem; color: #fff; font-weight: 400; width: 100%; margin: 0; display: flex; justify-content: center; align-items: center; margin-bottom: 0.1rem; } .titre i { margin-left: 0.5rem; } </style> \end <<titre "Recherche Google" "#00D4BCFF">> <<titre "Recherche Altavista" "#BC00D4FF" "fa-binoculars">> <<titre "Recherche Échec" "#BCD400FF" "fa-chess">> <<titre "Recherche Braille" "#0088BCFF" "fa-braille">>
{{Macros+Js||caption}}
Il existe de nombreuses macros sur ce wiki (Voir le tag $:/tags/Macro). N'apparaîssent dans cette rubrique que quelques macros d'ordre général. Les Macros spécifiques sont rattachées aux sujet qui les concernent.
\define slider(label,text) <$button popup="$:/state/$(currentTiddler)$$label$" class="btn-invisible tw-slider">$label$</$button> <$reveal type="nomatch" text="" default="" state="$:/state/$(currentTiddler)$$label$" animate="yes"> $text$ </$reveal> \end Voici un texte demandant un complément d'information discret <<slider "1" "Ici, on peut saisir un texte donnant par exemple un complément d'information<br/>sur plusieurs lignes<br/> et même [[un lien|Tutoriel]]">> et qui se poursuit ici <<slider "2" "avec une autre explication">>
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
<svg enable-background="new 0 0 64 64" height="64px" version="1.1" viewBox="0 0 64 64" width="64px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="Layer_1"><g><circle cx="32" cy="32" fill="#77B3D4" r="32"/></g><g><g opacity="0.2"><path d="M52,44c0,2.209-1.791,4-4,4H16c-2.209,0-4-1.791-4-4V24c0-2.209,1.791-4,4-4h32c2.209,0,4,1.791,4,4V44z" fill="#231F20"/></g><g><path d="M52,42c0,2.209-1.791,4-4,4H16c-2.209,0-4-1.791-4-4V22c0-2.209,1.791-4,4-4h32c2.209,0,4,1.791,4,4V42z" fill="#E0E0D1"/></g><g opacity="0.2"><g><path d="M35.524,30.185c-1.938-2.146-5.109-2.146-7.047,0L13.05,43.228c-0.18,0.199-0.328,0.393-0.461,0.585 C13.29,45.119,14.549,46,16,46h32c1.451,0,2.71-0.881,3.411-2.187c-0.133-0.191-0.281-0.385-0.461-0.585L35.524,30.185z" fill="#231F20"/></g></g><g><g><path d="M35.524,32c-1.938-1.9-5.109-1.9-7.047,0L13.05,43.546c-0.18,0.176-0.328,0.348-0.461,0.517 C13.29,45.22,14.549,46,16,46h32c1.451,0,2.71-0.78,3.411-1.936c-0.133-0.169-0.281-0.341-0.461-0.517L35.524,32z" fill="#E0E0D1"/></g></g><g opacity="0.2"><g><path d="M12.589,20.187C13.29,18.881,14.549,18,16,18h32c1.451,0,2.71,0.881,3.411,2.187 c-0.133,0.191-0.281,0.385-0.461,0.585L35.524,33.815c-1.938,2.146-5.109,2.146-7.047,0L12.589,20.187z" fill="#231F20"/></g></g><g><g><path d="M28.476,32c1.938,1.9,5.109,1.9,7.047,0L50.95,20.454c0.18-0.176,0.328-0.348,0.461-0.517 C50.71,18.78,49.451,18,48,18H16c-1.451,0-2.71,0.78-3.411,1.936c0.133,0.169,0.281,0.341,0.461,0.517L28.476,32z" fill="#FFFFFF"/></g></g></g></g><g id="Layer_2"/></svg>
{{||Formateur}}
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
!!Introduction -- version: {{$:/plugins/matabele/mangletags!!version}} Le [[Widget MangleTags|$:/plugins/matabele/mangletags]] trappe le [[WidgetMessage: tw-mangle-tags|Widget Messaging in the Stack]] dispatché au sein de son contenu enfant en effectuant l'une ou l'ensemble de ces actions: *👉 Ajouter un tag au champ tags *👉 Recherche et supprime un tag du champ tags *👉 Recherche et remplace un tag du champ tags *👉 Définition d'une nouvelle valeur pour le tiddler cible *👉 Transmission ou envoi d'un message de widget différent Le widget peut être utilisé dans une pile pour manipuler plusieurs tags, soit dans le même tiddler cible ou dans différents tiddlers cibles (le titre de la cible est passé par la pile par défaut.) !!Contenu et Attributs |Attributs |Explication |h |tiddler |Title of the tiddler to manipulate (defaults to the value of the event parameter) | |add |The name of the tag to append | |find |The name of the tag to find and remove | |message |The name of the widget message to send (defaults to "tw-mangle-tags") | |param |The optional parameter to the message (defaults to the value of the 'tiddler=' attribute) | ;Exemple Si nous écrivons: ``` <$mangletags tiddler="target" find="old" add="new"> <$mangletags tiddler="other-target" find="old" add="new"> <$button message="tw-mangle-tags">Find 'old' Replace 'new'</$button> </$mangletags> </$mangletags> ``` ;Soit: <$mangletags tiddler="target" find="old" add="new"> <$mangletags tiddler="other-target" find="old" add="new"> <$button message="tw-mangle-tags">Find 'old' Replace 'new'</$button> </$mangletags> </$mangletags> button. Clicking the button will search for the tag 'old' in each of the tags field of both of the tiddlers titled 'target' and 'other-target' and, if found, will delete the tag 'old' and replace it with the tag 'new'. When only the 'add=' attribute is present, the tag specified will be appended to the tags field of the target tiddler. When only the 'find=' attribute is present, the tag specified, if present, will be removed from the tags field of the target tiddler. When both the 'add=' and 'find=' attributes are present, the widget will search for the tag specified in the 'find=' attribute and, if present, will remove this tag and replace it with the tag specified in the 'add=' attribute.
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "3" "">> """ 1 - Independence Movement Day ^^South Korea^^ 3 - Dolls' Festival / Girls' Festival ^^Japan^^ 6 - Park Cho Ah 17 - St. Patrick's Day 21 - Benito Juárex's Birthday Memorial ^^Mexico^^ 21 - Holi 21 - Purim 21 - Spring Equinox ^^Japan^^ """ [img height="130" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "3" "">> """ 1 - Independence Movement Day ^^South Korea^^ 3 - Dolls' Festival/Girls' Festival ^^Japan^^ 17 - St. Patrick's Day 21 - Benito Juárez's Birthday Memorial ^^Mexico^^ """ [img height="250" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "3" "">> """ If a man does not keep pace with his companions, perhaps it is because he hears a different drummer. Let him step to the music which he hears, however measured or far away. by Henry David Thoreau """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "3" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "3" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "3" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#mar25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "3" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#March">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "3" "">> """ 1 - Independence Movement Day ^^South Korea^^ 1 - Purim 2 - Holi 3 - Dolls' Festival / Girls' Festival ^^Japan^^ 17 - Hindu New Year ^^Indonesia^^ 17 - St. Patrick's Day 21 - Benito Juárex's Birthday Memorial ^^Mexico^^ 21 - Spring Equinox ^^Japan^^ 31 - Passover (starts) """ [img height="130" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
Welcome at wikilabs .. This is pmario playground with some ramblings about TiddlyWiki It basically is a "jump off" page to various TiddlyWiki editions, that show my themes and plugins ; Plugins: * advanced-search-plus * bundler * [[edit-tabs|http://wikilabs.github.io/editions/edit-tabs/]] (Indispensable, à mon avis) * [[tocP|https://wikilabs.github.io/editions/tocP/]] * info-session * info-tagmap * link-to-tabs * markdown-it * multicol-dropdown * new-tiddler-from-search * persistent-states * remove-states * [[uni-link|https://wikilabs.github.io/editions/uni-link/]]
{{Mark||caption}}
This adds a simple marker button to the editor toolbar. When you want to mark a <mark class="roundedmark">particular piece of text like this</mark>, you can select the text and use this button. Try editing this tiddler to see the button in action. To add this, <mark class="roundedmark">download the following JSON</mark> and drag & drop it to your wiki. <a href="marker_button.json" download="marker_button.json">Download Marker Button</a> Tiddlers requis *$:/tesseract/images/marker *$:/tesseract/stylesheets/marker *$:/tesseract/ui/EditorToolbar/marker
<<< Markdown est un langage de balisage léger créé par John Gruber et Aaron Swartz en 2004. Son but est d'offrir une syntaxe facile à lire et à écrire. <<< Wikipedia : http://fr.wikipedia.org/wiki/Markdown Site web officiel : http://daringfireball.net/projects/markdown/
En langage TiddlyWiki, ceci s'appelle WikiText <dl class="tb5-markup"> <dt> ``` ''bold'' ``` </dt> <dd>''bold''</dd> <dt> ``` //italics// ``` </dt> <dd>//italics//</dd> <dt> ``` ''//bold italics//'' ``` </dt> <dd>''//bold italics//''</dd> <dt> ``` __underline__ ``` </dt> <dd>__underline__</dd> <dt> ``` ~~strikethrough~~ ``` </dt> <dd>~~strikethrough~~</dd> <dt> ``` super^^script^^ ``` </dt> <dd>super^^script^^</dd> <dt> ``` sub,,script,, ``` </dt> <dd>sub,,script,,</dd> <dt> ``` foo -- bar foo --- bar ``` </dt> <dd>foo -- bar (En dash)<br>foo --- bar (Em dash)<br></dd> <dt> ``` !Heading 1 !!Heading 2 !!!Heading 3 ``` </dt> <dd> !Heading 1 !!Heading 2 !!!Heading 3 </dd> <dt> ``` --- horizontal rules <hr> ``` </dt> <dd> --- horizontal rules <hr> </dd> <dt><pre>`code`</pre></dt> <dd>`code` ...via backticks</dd> <dt><pre>``with `backticks` ``</pre></dt> <dd>``with `backticks` ``</dd> <dt> <pre>``` monospaced codeblock ```</pre> </dt> <dd> ``` monospaced codeblock ``` </dd> <dt> ``` """ force hard linebreaks like this... """ ``` </dt> <dd> """ force hard linebreaks like this... """ </dd> <dt> ``` ...since new paragraphs need two linebreaks in tw5 ``` </dt> <dd> ...since new paragraphs need two linebreaks in tw5 </dd> <dt> ``` > block >> quotes >>> are </dd>easy ``` </dt> <dd> > block >> quotes >>> are <br>easy </dd> <dt> ``` <<< real easy <<< ``` </dt> <dd> <<< real easy <<< </dd> <dt> ``` * unordered ** list ``` </dt> <dd> * unordered ** list </dd> <dt> ``` # ordered ## list ``` </dt> <dd> # ordered ## list </dd> <dt> ``` ;definition :term ``` </dt> <dd> ;definition :term </dd> <dt> ``` # mixed #* lists #;you #:know #>like so ``` </dt> <dd> # mixed #* lists #;you #:know #>like so </dd> <dt> ``` !.h1-class.red CSS #.li-class.red classes *.li-class.red can be ;.dt-class.red assigned :.dd-class.red like >.blockquote-class.red this ``` </dt> <dd> !.h1-class.red CSS #.li-class.red classes *.li-class.red can be ;.dt-class.red assigned :.dd-class.red like >.blockquote-class.red this </dd> <dt> ``` [[The Tiddler]] [[pretty title|The Tiddler]] ``` </dt> <dd> [[The Tiddler]]<br> [[pretty title|The Tiddler]] </dd> <dt> ``` CamelCase ~SuppressedCamelCase ``` </dt> <dd> CamelCase<br> ~SuppressedWikiLink </dd> <dt> ``` http://tiddlywiki.com [[pretty|http://pretty.com]] ~http://not.alink.com ``` </dt> <dd> http://tiddlywiki.com<br> [[google|http://google.com]]<br> ~http://not.alink.com </dd> <dt> ``` file://///windows/network<br> file:///c:/Windows/foo<br> file:///linux/local<br> ``` </dt> <dd> file://///windows/network<br> file:///c:/Windows/foo<br> file:///linux/local<br> `file:///` only via local tw! </dd> <dt> ``` [ext[forced.link.com]] [ext[tw|tiddlywiki.com]] [ext[foo|file:///c:/foo]] [ext[relative/path]] ``` </dt> <dd> [ext[forced.link.com]]<br> [ext[tw|tiddlywiki.com]]<br> [ext[foo|file:///c:/foo]]<br> [ext[relative/path]] </dd> <dt> ``` [img[example.jpg]] [img[tooltip|example.jpg]] [img width=16 [example.jpg]] [img class="tc-image" [example.jpg]] ``` </dt> <dd> [img[http://www.tiddlywiki.com/favicon.ico]]<br> [img[tooltip|http://www.tiddlywiki.com/favicon.ico]]<br> [img width=16 [http://www.tiddlywiki.com/favicon.ico]]<br> [img class="tc-image" [http://www.tiddlywiki.com/favicon.ico]] </dd> <dt> ``` [img[http://www.tiddlywiki.com/favicon.ico]] [img[path/image.jpg]] ``` </dt> <dd> [img[http://www.tiddlywiki.com/favicon.ico]] </dd> <dt> ``` [img width={{!!mywidth}} class=<<image-classes>> [example.jpg]] {{example.jpg}} ``` </dt> <dd> params via [[transclusion|http://tiddlywiki.com/#Transclusion%20in%20WikiText]] or [[macro|http://tiddlywiki.com/#Macros%20in%20WikiText]]<br><br><br> embed via transclusion </dd> <dt> ``` @@.myStyleClass.red ;term :definition @@ ``` </dt> <dd> @@.myStyleClass.red ;term :definition @@ </dd> <dt> ``` @@color:red; ;css styles :apply directly like this @@ @@color:red; or this @@ ``` </dt> <dd> @@color:red; ;css styles :apply directly like this @@ @@color:red; or this @@ </dd> <dt> ``` @@.tc-tiddler-frame @@width:200px;height:50px; or combine both @@ ``` </dt> <dd> @@.tc-tiddler-frame @@width:200px;height:50px; or combine both @@ </dd> <dt> ``` @@.purple Am I purple?@@ <style> .purple{color:purple;} </style> ``` </dt> <dd> @@.purple Am I purple?@@ <style> .purple{color:purple;} </style> </dd> <dt style="font-size:80%;"> ``` | !Header | !Header | Mhhh ?!? | |^NE |^ N |^ NW| |W | ✦ | E| |,SW |, S |, SE| |merge|left|<| |and|now| vertical | |>| right|~| ``` </dt> <dd style="font-size:80%;"> | !Header | !Header | Mhhh ?!? | |^NW |^ @@padding:0 7px 14px 7px;display:block; N@@ |^ NE| |W | ✦ | @@padding:7px 0;display:block; E@@| |,SW |, @@padding:14px 7px 0 7px;display:block; S@@ |, SE| |merge|left|<| |and|now| vertical | |>| right|~| </dd> <dt> ``` <article class="hello"> HTML tags work like that. <!-- even comments --> </article> ``` </dt> <dd> <article class="hello"> HTML tags work like that. <!-- even comments --> </article> </dd> <dt> ``` <a href={{TiddlerWithURL}}>link</a> <b class=<<getClass>>>bold</b> ``` </dt> <dd> <a href={{TiddlerWithURL}}>link</a> <b class=<<version>>>bold</b> set attributes via transclusion or macro </dd> <dt> ``` <div address="""attribute, "quoted", with, linebreaks.""">inspect me!</div> ``` </dt> <dd> <div address="""attribute, "quoted", with, linebreaks.""">inspect me!</div> </dd> <dt> ``` *nest<div> ;via :html </div> ``` </dt> <dd> *nest <div> ;via :html </div> </dd> <dt> ``` {{Foo}} {{Foo||Bar}} {{||Foo}} {{Foo!!bar}} {{!!bar}} {{Foo##index}} {{##index}} {{{ [tag[Foo]] }}} {{{ [tag[Foo]] ||Bar}}} ``` </dt> <dd> » [[transcludes|http://tiddlywiki.com/#Transclusion%20in%20WikiText]] tiddler `Foo`<br> » `Foo` with template `Bar`<br> » template `Foo` for `CurrentTiddler`<br> » field `bar` of `Foo`<br> » field `bar` of `CurrentTiddler`<br> » `index` of datatiddler `Foo`<br> » `index` of `CurrentTiddler` (=data)<br> » list of tiddlers tagged `Foo`<br> » same using template `Bar` </dd> <dt> ``` \define run(foo:'bar') [[$foo$]] <<run "foo bar">> ``` </dt> <dd> » defines macro `run`<br> » with parameter `foo`<br> » whose value defaults to `bar`<br> » outputs a link to value of param:<br> [[foo bar]] </dd> <dt> ``` \define test() I am $(x)$. \end <$set name="x" value="y of z"> <<test>> </$set> ``` </dt> <dd> » defines macro test which<br> » outputs value of variable x<br><br> » sets variable x to: "y<br> of z" //(multiline allowed)//<br> » runs macro test which outputs:<br> "I am y of z." </dd> <dt> ``` \define test(x, y, z:'0') $x$ $y$ $z$ \end <$macrocall $name="test" x=<<version>> y={{!!title}}/> ``` </dt> <dd> » defines macro test<br> » outputs 3 params<br><br> » calls test via macrocall widget<br> » using macro version as param x<br> » and transclusion as param y<br><br> » outputs:<br> <<version>> Markup 0 </dd> <dt> ``` $$$text/unknown plain text, not //formatted// $$$ ``` </dt> <dd> $$$text/unknown plain text, not //formatted// $$$ <br> These are [[Typed Blocks|http://tiddlywiki.com/#Typed%20Blocks%20in%20WikiText]] </dd> <dt> ``` $$$image/svg+xml <svg xmlns="http://www.w3.org/2000/svg" width="150" height="100"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="green" /> </svg> $$$ ``` </dt> <dd> $$$image/svg+xml <svg xmlns="http://www.w3.org/2000/svg" width="150" height="100"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="green" /> </svg> $$$ </dd> <dt> ``` $$$.svg <svg xmlns="http://www.w3.org/2000/svg" width="150" height="100"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /> </svg> $$$ ``` </dt> <dd> $$$.svg <svg xmlns="http://www.w3.org/2000/svg" width="150" height="100"> <circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" /> </svg> $$$ </dd> <dt> ``` $$$text/vnd.tiddlywiki>text/html This is ''some'' wikitext $$$ ``` </dt> <dd> $$$text/vnd.tiddlywiki>text/html This is ''some'' wikitext $$$ </dd> <dt> ``` $$$text/vnd.tiddlywiki>text/plain This is ''some'' wikitext $$$ ``` </dt> <dd> $$$text/vnd.tiddlywiki>text/plain This is ''some'' wikitext $$$ </dd> </dl> <style> dl.tb5-markup{ overflow:hidden; } dl.tb5-markup .red{ color:red; } .tb5-markup > dt{ display:block; float:left; clear:left; margin:2% 1em 0 0; padding; font-weight:normal; width:48%; } .tb5-markup > dt > pre{ margin:0; } .tb5-markup > dd{ display:block; float:left; width:48%; margin:1em 0 0 0; padding:0; } .tb5-markup > dd > p, .tb5-markup > dd > h1, .tb5-markup > dd > pre, .tb5-markup > dd > ul, .tb5-markup > dd > ol, .tb5-markup > dd > dl, .tb5-markup > dd > table, .tb5-markup > dd > blockquote, .tb5-markup > dd > blockquote >p{ margin:0; } .tb5-markup .tc-image{ width:16px; } </style>
Wills Q&D gTiD ~~Nous avons 6 widgets de cet auteur sur ce wiki:~~ <div class="attention"> Ces plugins ont été retirés de ce wiki </div> *👉 `$:/plugins/matabele/iftid` *👉 `$:/plugins/matabele/iftref` *👉 `$:/plugins/matabele/makelist` *👉 `$:/plugins/matabele/maketid` *👉 `$:/plugins/matabele/mangletags` *👉 `$:/plugins/matabele/setfield` ~~Dont l'utilisation est détaillée~~
Par jd [ext[Site source Material|https://material.io/]] [ext[Adaptation du thème Material|http://j.d.material.tiddlyspot.com/]] pour TiddlyWiki Voir aussi l'[ext[adaptation réalisée par Sylvain Naudin|https://opz.tw5.xyz/]] Icônes : http://google.github.io/material-design-icons/#getting-icons
{{Mathcell||caption}}
<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a1"/>
Source: http://mathcell.tiddlyspot.com/ Un moteur de maths à usage général pour ~TiddlyWiki 5.1.14. Aller sur le wiki source et récupérer tous les tiddlers sources et exemples. Sujet tagué "<<tag Mathcell>>" comprenant {{{[tag[Mathcell]count[]]}}} articles (tiddlers) Trois Tiddlers essentiels : *$:/macros/sk/eval.js - Le coeur de la routine d'évaluation *$:/macros/sk/evalouter.js - qui simplifie la création des cellules *[[FormulaResult Button]] - Le bouton pour passer du mode résultat au mode entrée des formules. Trois Tiddlers en exemple *[[Excel Like Table]] *[[Inline Examples]] *[[Engineering Example]] Les tiddlers d'exemples supplémentaires : *[[Bar Chart]] *[[Graph]] *[[Graph2]] *[[Grid]] *[[Line Graph]] *[[MathCell1]] *[[Pie Chart]] *[[SVG with imported elements]] **Avec -> [[SVGExample]] pour la première colonne **[[SVGExample1]] pour le seconde colonne **[[SVGExample2]] pour la troisième colonne Et deux Tiddlers de données nécessaires au fonctionnement des exemples: *$:/sk/data - Contenant les données de l'exemple du tableau Excel en ligne *$:/sk/engrexample - Contenant les données de l'exemple ingénierie. Ainsi que les tiddlers suivants: *[[Available Operations]] *[[$:/macros/sk/ColCalc.js]] *[[$:/macros/sk/eval.js]] *[[$:/macros/sk/RowCalc.js]] *[[Using Mathcell with Wikify]] Exportez ce tiddler au format json puis importez le dans votre wiki. !!Operating Notes # Les cellules (Mathcells) sont saisies dans l'un des différents formats disponibles #* `<<eval cell>>` where cell can be any simple formula. For example `<<eval =23*14>>` gives <<eval =23*14>>. These formulas can also involve the functions used below. `<<eval =@floor(12/2.5)>>` gives <<eval =@floor(12/2.5)>>. #* `<$macrocall $name="eval1" datatiddler="$:/sk/data" cell="a1" format="2" target="a2"/>` where #**the "datatiddler" is where you data will be stored. If no datatiddler is specified, the macro will look for the data/formula in the current tiddler. #**the "cell" is the field containing the formula or data. #**The format entry is optional with the number representing the number of digits to the right of the decimal point that will be shown. Formatting is done in the American style: `1,236,440.00` for the examplle. #**target is a field where the result is stored. If no target is specified, then the result will only appear when the tiddler is displayed. #* `<$macrocall $name="eval" datatiddler="$:/sk/data" cell="a1" format="2" target="a2"/>` which gives an identical result but does not toggle between result and formula. #* `<$macrocall $name="eval" datatiddler="$:/sk/data" cell="=!!a1*!!b/100" format="2" target="a2"/>` the "cell" may also contain a formula directly without referencing a specific field. # The {{FormulaResult Button}} button toggles between formulas and computed results # Any cell entry starting with an `=` sign will be interpreted as a formula. # Any entry that doesn't start with an `=` sign is not evaluated but simply returned as a value. #Data to be stored as fields in a user selected tiddler #Field/Variable names can be any legal field name. When used in formulas, they are distinguished from text by a leading `!!` such as !!length or !!area. #Complicated math functions are frequently easier to edit in the datatiddler. #Only parentheses `(` and `)` may be used for grouping. #Results that look like formulas generally indicate a mismatched set of parentheses in one of the formulas. # <div><$transclude tiddler="Available Operations" mode="block"/></div> #Circular references are where one variable ultimately depends on itself. For example if A5=B5 and B5=C5 and C5=A5, you have a circular reference. The program will report "Circular Ref" in all cells involved. ---- [[Inline Examples]] {{FormulaResult Button}} {{Inline Examples}} !Des exemples différents |[[Bar Chart]]|Un graphe en barre| |[[Graph]]| - | |[[Graph2]]| - | |[[Grid]]| - | |[[Line Graph]]| - | |[[MathCell]]| - | |[[Pie Chart]]| - | |[[SVG with imported elements]]| - | |[[Using Mathcell with Wikify]]| - |
Mavo is an HTML-based language for building small scale data-driven websites without programming knowledge (no JS, no backends needed!), just by writing HTML. For JavaScript developers (who like HTML), Mavo can also be used as a declarative, reactive front-end framework to make UI development easier. Tient en deux fichiers à placer en tête de fichier HTML dans la section `<head>` ``` <script src="https://get.mavo.io/mavo.js"></script> <link rel="stylesheet" href="https://get.mavo.io/mavo.css"> ``` Les deux fichiers sont téléchargeables sur le site de l'auteur aux adresses ci-dessus. Ils peuvent être placé en local (changer les adresse ci-dessus). Version téléchargée :0.16 [ext[Mavo sur CodePen|https://codepen.io/collection/nvggyQ/#]]
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#May">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "5" "">> """ 1 - May Day 2 - Republic Day ^^Italy^^ 3 - Constitution Memorial Day ^^Japan^^ 5 - Children's Day ^^Japan^^ 5 - Liberation Day ^^Netherlands^^ 6 - Mother's Day ^^Spain^^ 8 - WWII Victory Day ^^France^^ 9 - Victory Day ^^Russia^^ 13 - Mother's Day ^^USA,^^ ^^Germany,^^ ^^New Zealand,^^ ^^Brazil^^ 16 - Ramadan (starts) 21 - Victoria Day ^^Canada^^ 27 - Mother's Day ^^France^^ 28 - Memorial Day ^^USA^^ 29 - Bhuddha's Anniversary ^^Indonesia^^ """ [img height="20" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "5" "">> """ 1 - Heroes Day ^^Zambia^^ 1 - Holocaust Memorial Day ^^Israel^^ 1 - May Day 2 - Republic Day ^^Italy^^ 2 - Unity Day ^^Zambia^^ 3 - Constitution Memorial Day ^^Japan^^ 5 - Children's Day ^^Japan^^ 5 - Liberation Day ^^Netherlands^^ 5 - Mother's Day ^^Spain^^ 6 - Ramadan (begins) 8 - Memorial Day ^^Israel^^ 8 - WWII Victory Day ^^France^^ 9 - Independence Day ^^Israel^^ 9 - Victory Day ^^Russia^^ 12 - Mother's Day 15 - Park Hye Kyeong 21 - Victoria Day ^^Canada^^ 25 - African Freedom Day 26 - Mother's Day ^^France^^ 27 - Memorial Day ^^USA^^ """ [img height="0" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "5" "">> """ 1 - May Day 3 - Constitution Memorial Day ^^Japan^^ 3 - Mothers' Day ^^Spain^^ 5 - Children's Day ^^Japan^^ 5 - Liberation Day ^^Netherlands^^ 8 - WWII Victory Day ^^France^^ 9 - Victory Day ^^Russia^^ 10 - Mother's Day 18 - Victoria Day ^^Canada^^ 24 - Eid al-Fitr (Ramadan ends) 25 - Africa Freedom Day 25 - Memorial Day ^^United States^^ """ [img height="50" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "5" "">> """ There are trails that lad may follow When the years of his boyhood slip But I shall soar like a swallow On the wings of a silver ship from //Silver Ships// by Mildred Plew Meigs """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "5" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "5" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "5" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#may25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "5" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
a customizable workspace Je n'aime pas trop (on a vite fait de mettre le bazars dans son wiki) mais il y a quand même de sacrées idées à piocher.
{{Mermaid||caption}}
!Description ;Générateur de diagrammes et de diagrammes de flux Mermaid Bluffant et jamais vu avant ce post de Oxydum que je remercie au passage pour son aptitude à nous dénicher ces perles d'intégration: Un langage de script façon Markdown générant des diagrammes à partir de saisies textuelles supportées par le langage javascript. Un petit point pour savoir qui fait quoi : *👉 Projet Mermaid: https://mermaidjs.github.io/ (Documentation en ligne) *👉 [ext[Éditeur de tests en ligne| https://mermaidjs.github.io/mermaid-live-editor/#/edit/eyJjb2RlIjoiZ3JhcGggVERcbkFbQ2hyaXN0bWFzXSAtLT58R2V0IG1vbmV5fCBCKEdvIHNob3BwaW5nKVxuQiAtLT4gQ3tMZXQgbWUgdGhpbmt9XG5DIC0tPnxPbmV8IERbTGFwdG9wXVxuQyAtLT58VHdvfCBFW2lQaG9uZV1cbkMgLS0-fFRocmVlfCBGW2ZhOmZhLWNhciBDYXJdXG4iLCJtZXJtYWlkIjp7InRoZW1lIjoiZGVmYXVsdCJ9fQ]] *👉 Mermaid sur ~GitHub : https://github.com/knsv/mermaid *👉 Documentation sur ~GitHub : https://github.com/mermaidjs/mermaid-gitbook *👉 Le sujet est abondamment abordé sur ~GitHub : https://github.com/topics/mermaid *👉 L'intégration du projet pour TW5 est visible sur ~GitHub à l'adresse https://github.com/gt6796c/mermaid-tw5 *👉 Par qui ? https://github.com/gt6796c Il s'agit de Tyler Long (Chine) : *👉 https://github.com/tylerlong avec pas mal de travaux collaboratifs (CHINA-USA). Plus de détails dans la FAQ : https://mermaidjs.github.io/faq.html *👉 Démo ~TiddlyWiki : https://gt6796c.github.io/ !Installation Deux plugins et un tiddler JS sont nécessaires au fonctionnement: #[[$:/plugins/gt6796c/mermaid-tw5]] #[[$:/plugins/gt6796c/rocklib]] #[[$:/plugins/gt6796c/mermaid-tw5/wrapper.js]] Sujet très intéressant mais qui demande du temps pour apprendre à en tirer la quintessence. J'ai bien aimé ce tiddler [[Séquence]] : {{Séquence}} JOYEUX NOËL À TOUS! !Fonctionnement *Pour créer vos propres diagrammes, utiliser le [[live editor|https://mermaidjs.github.io/mermaid-live-editor/]] *Cette adresse donne également accès à la documentation. *Le type de tiddler doit être `text/vnd.tiddlywiki.mermaid`
{{MessageModal||caption}}
{{MessagesWidget||caption}}
Les messages Widget sont générés par les widgets en réponse aux actions utilisateur. Ils parcourent l'arbre widget jusqu'à ce qu'ils soient traités par un ascendant widget. Les messages suivants sont implémentés dans le noyau<<:>> <<list-links "[tag[Messages]]">> """ tm-add-field [[tm-add-tag]] tm-auto-save-wiki tm-browser-refresh tm-cancel-tiddler tm-clear-password tm-close-all-tiddlers tm-close-other-tiddlers tm-close-tiddler tm-copy-to-clipboard [[tm-delete-tiddler]] tm-download-file tm-edit-bitmap-operation tm-edit-text-operation tm-edit-tiddler tm-fold-all-tiddlers tm-fold-other-tiddlers tm-fold-tiddler tm-full-screen tm-home tm-import-tiddlers tm-load-plugin-from-library tm-load-plugin-library tm-login tm-logout tm-modal [[tm-navigate]] [[tm-new-tiddler]] tm-notify tm-open-window tm-perform-import tm-permalink tm-permaview tm-print tm-remove-field [[tm-remove-tag]] tm-save-tiddler tm-save-wiki tm-scroll tm-server-refresh tm-set-password tm-unfold-all-tiddlers """
Il y a des mise-à-jour régulières de ~TiddlyWiki comprenant des corrections de bugs et de nouvelles fonctionnalités. C'est donc une bonne idée que de se mettre à jour en utilisant la dernière version. ! Introduction Le procédé décrit ici concerne la mise à jour de la version autonome des fichiers TiddlyWiki. Il existe une [[procédure différente|Upgrading TiddlyWiki on Node.js]] pour mettre à jour [[TiddlyWiki sur Node.js|Node.Js]] <<< Lorsque vous faites une mise à jour, rappelez-vous s'il vous plaît [ext[la première règle d'utilisation de TiddlyWiki|The First Rule of Using TiddlyWiki]] ([[Voir ici également|Soyez sûr de correctement enregistrer vos données]]): //Vous êtes responsable de veiller sur vos propres données. Prenez soin de vos sauvegardes et tout spécialement lorsqu'il s'agit de la mise à jour du <<? noyau>> de ~TiddlyWiki// <<< ! Mise à jour en ligne Ce procédé fonctionnera avec pratiquement tous les navigateurs. Notez bien qu'aucune de vos données ne quittent votre navigateur durant le processus de mise à jour. # Localisez votre fichier TiddlyWiki en utilisant votre système d'exploitation (par exemple en utilisant windowz explorer, le Finder sur Mac OS X, or votre gestionnaire de fichiers sur Linux) # Rendez-vous à l'adresse en ligne https://tiddlywiki.com/upgrade.html dans votre navigateur # Drag your old TiddlyWiki HTML file into the browser window #* If the file is encrypted you will be prompted for the password # Review the list of tiddlers that will be upgraded # Click ''Upgrade'' # Save changes to save the new version ({{$:/core/images/save-button}}) This will download a file called ''upgrade.html'' to your computer. This file is the upgrade of your old file. You may need to open the location where ''upgrade.html'' was downloaded, rename ''upgrade.html'' with the name of the old file you are upgrading, and replace the old file by moving the new file in its place. ! Mise à jour Hors Ligne You can also download https://tiddlywiki.com/upgrade.html locally and perform the same drag-and-drop procedure to upgrade your files. ! Problèmes de mise-à-jour !! Restrictions de sécurité de ~FireFox The following error occurs when trying to perform the online upgrade procedure using Firefox: <<< Error while saving: Error:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied <<< The upgrade operation falls foul of a security restriction in Firefox. Until this can be resolved, we suggest either using the offline upgrader, or using Chrome to perform the upgrade: # Use Chrome to open https://tiddlywiki.com/upgrade.html, then drag the TiddlyWiki HTML file to be upgraded into the upgrader window, as described above in ''Online upgrading'' # After you've saved your upgraded file, you should be able to open it in Firefox and [[save using TiddlyFox|Saving with TiddlyFox]] again !! Incompatible Customisations It is possible for a customisation applied in a previous version to break when upgraded to the latest version. There are two techniques you can use to help track down issues: * Try repeating the upgrade having selectively unchecked any tiddlers that may be applying customisations to TiddlyWiki * Use SafeMode to disable all customisations of shadow tiddlers Pour voir quels sont les Tiddlers cachés aller dans la table "Shadows" du Tiddler de recherche avancée $:/AdvancedSearch puis saisissez "Overridden shadow tiddlers" dans le champ de saisie. Voir aussi: [[Champ de recherche avancée]] Voir aussi: [[$:/core/ui/AdvancedSearch/System]] et saisir `Overridden shadow tiddlers` dans le champ de recherche.
<div class="att"> Le CSS pour l'image: ``` .tc-tagged-special { background-image: url(img/Savoir.jpg); background-color: yellow; background-repeat: no-repeat; color: red; font-weight: bold; } ``` Tiddler CSS associé : $:/cssFondTiddler </div> @@background-color:#ECF0F1; @@color:#2C3E50; @@margin:10px; @@padding:10px; @@border-radius: 5px; <i class="fa fa-magic fa-3x pull-left" style="color:#2C3E50"></i>En l'état l'image est calée sur la gauche du tiddler. La partie gauche reste donc toujours visible. En cachant les barres latérales, l'espace supplémentaire laisse découvrir la partie droite de la photo.<br/>En ajoutant le code css:<br/><u>background-position: right;</u><br/>l'image sera calée sur la droite du tiddler. La partie droite sera donc toujours visible. En cachant les barres latérales, l'espace supplémentaire laisse découvrir la partie gauche de la photo. @@
{{MicroBadges||caption}}
Avec [[une macro|.mr/macro/dbadge]] et [[une feuille de style|$:/cssDbadge]] on obtient deux badges accolés de couleurs différentes pour notifier une version, une relation, un état, enfin, tout ce que vous déciderez, ... La feuille de style précise quatre couleurs, mais il est possible de la personnaliser si plus ou différentes couleurs sont désirées. Notez au passage cette macro très simple et qui constitue un bon exemple d'apprentissage: {{.mr/macro/dbadge||code}} !! Syntaxe ``` <<dbadge subject status type>> ``` <br> |!Attributs |!Description | |subject |Le sujet du badge| |status |Sa relation| |type|one of semantic types: //primary//, //info//, //success//, //warning//, //danger//. Default is //primary//| <br> !! Examples ``` <<dbadge "Tiddlywiki" "5.1.18" "info">> <<dbadge "Node.js" "passed">> <<dbadge "Windows" "7, 8.1, 10" "warning">> <<dbadge "Android" "supported" "danger">> <<dbadge "coverage" "Html5" "success">> ``` <<dbadge "Tiddlywiki" "5.1.18" "info">> <<dbadge "Node.js" "passed">> <<dbadge "Windows" "7, 8.1, 10" "warning">> <<dbadge "Android" "supported" "danger">> <<dbadge "coverage" "Html5" "success">> !! Other example ``` <<dbadge "Tiddlywiki" "I love it">> <<dbadge "Jeremy Ruston" "The creator" success>> ``` <<dbadge "Tiddlywiki" "I love it">> <<dbadge "Jeremy Ruston" "The creator" success>> <<dbadge "Forum" "The best in the world" danger>> <br> !! Semantic colors <<dbadge "primary" "blue" primary>> <<dbadge "info" "cyan" info>> <<dbadge "success" "green" success>> <<dbadge "warning" "yellow" warning>> <<dbadge "danger" "red" danger>> !Installation Drag and drop these tiddlers into your wiki <<list-links [tag[badge]]>>
;Cette liste m'aide à justement les réduire !! <$set name="var" value="[all[missing]] +[sort[title]]"> <$list filter=<<var>>/> </$set>
Passer en mode lecture seule peut se faire avec le thème officiel disponible sur le site officiel [ext[http://tiddlywiki.com/]]. Pour pouvoir rester de manière permanente en mode lecture seule, il faut pouvoir sauvegarder le wiki ce qui n'est plus possible puisque le bouton sauvegarder n'est lui même plus disponible. De plus, avec le thème officiel Read Only: *Tous les boutons de contrôle de page disparaissent, d'où l'impossibilité de sauvegarder de façon standard **Avec une astuce, il est possible de sauvegarder le wiki avec le paramètre autosave, en ouvrant un tiddler avant de passer en mode lecture seule, puis en fermant ce tiddler via un Ctrl-Enter, ce qui déclenche une sauvegarde. *En utilisant le thème Read Only (lui-même basé sur le thème Snow White, il n'est plus possible d'utiliser votre propre thème. Donc dans un premier temps on doit mettre en place un processus de sauvegarde caché. Une solution consiste à passer par la création d'un tiddler dont le nom n'éveille aucun soupçon concernant son contenu et dans lequel il est possible de passer en mode lecture seule, sans pour autant être couplé au thème Read Only, puis de sauvegarder dans cette situation à l'aide d'un bouton de sauvegarde spécial qui ne disparaisse pas quand le bouton de sauvegarde standard sera désactivé. C'est ce que propose la présente solution. Donc vous serez le seul à connaître le tiddler mis en place par :$:/plugins/tongerner/ro/publish ou par :~$:/plugins/tongerner/sro/publish qui offre la possibilité de passer d'un mode à l'autre (Lecture/Écriture ou Lecture Seule) et de sauvegarder la situation que vous aurez choisie. A partir du moment où vous avez accès à ce tiddler, vous pouvez décider des ajustements à faire. !!Pourquoi deux systèmes de sauvegarde !!!Système simple Vous pouvez cacher un nombre ''pré-définis'' de boutons et de tables dans la SideBar. !!!Système avancé Vous pouvez choisir chaque bouton à cacher et chaque table dans la SideBar ''Je m'intéresse ici au système avancé''.
!{{!!caption}} <style> th{width:50%;} </style> {{$:/doc-user-xxx}} <table width="100%"> <thead> <th align="center">Description</th> <th align="center">Paramètres</th> <th align="center">Aide</th> </thead> <!-- Début Ligne 1 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal1" text="show"><$button set="$:/state/SampleRowReveal1" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal1" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 1--> <!-- Début Ligne 2 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal2" text="show"><$button set="$:/state/SampleRowReveal2" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal2" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 2--> <!-- Début Ligne 3 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal3" text="show"><$button set="$:/state/SampleRowReveal3" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal3" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 3--> <!-- Début Ligne 4 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal4" text="show"><$button set="$:/state/SampleRowReveal4" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal4" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 4--> <!-- Début Ligne 5 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal5" text="show"><$button set="$:/state/SampleRowReveal5" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal5" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 5--> <!-- Début Ligne 6 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal6" text="show"><$button set="$:/state/SampleRowReveal6" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal6" text="show"><$button set="$:/state/SampleRowReveal6" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal6" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 6--> <!-- Début Ligne 7 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal7" text="show"><$button set="$:/state/SampleRowReveal7" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal7" text="show"><$button set="$:/state/SampleRowReveal7" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal7" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 7--> <!-- Début Ligne 8 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal8" text="show"><$button set="$:/state/SampleRowReveal8" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal8" text="show"><$button set="$:/state/SampleRowReveal8" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal8" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 8--> <!-- Début Ligne 9 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal9" text="show"><$button set="$:/state/SampleRowReveal9" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal9" text="show"><$button set="$:/state/SampleRowReveal9" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal9" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 9--> <!-- Début Ligne 10 --> <tr> <td> xxxx </td> <td align="center"> xxxx </td> <td align="center"> <$reveal type="nomatch" state="$:/state/SampleRowReveal10" text="show"><$button set="$:/state/SampleRowReveal10" setTo="show"><i class="fa fa-plus-circle"></i></$button></$reveal><$reveal type="match" state="$:/state/SampleRowReveal10" text="show"><$button set="$:/state/SampleRowReveal10" setTo="hide"><i class="fa fa-minus-circle"></i></$button></$reveal> </td> </tr> <$reveal type="match" state="$:/state/SampleRowReveal10" text="show" tag="tr"> <td colspan="3"> {{$:/doc-user-xxx}} </td> </$reveal> <!-- Fin Ligne 10--> </table>
Deux modèles existent sur ce site ayant pour rôle de produire la liste des Tiddlers "sommaire". (voir le billet [[Transclusion with Templates]] pour comprendre le concept). Il s'agit des tiddlers : *[[title]], dans le cas où les tiddlers de la liste ne possèdent pas de champ `caption`. *[[caption]], dans le cas où les tiddlers de la liste possèdent un champ `caption`. Pour créer un nouveau Tiddler Sommaire Mot Clé : *Créer un nouveau tiddler. *Y copier le code suivant dans le champ text : ``` {{Tag||title}} ``` Ou : ``` {{Tag||caption}} ``` Dans lequel `Tag` est à remplacer par le nom du tag commun des tiddlers devant apparaître dans la liste. Il ne reste plus qu'à compléter les informations suivantes : *Donner le nom du `Tag` au titre au tiddler (obligatoire). *Taguer le tiddler du nom du `Tag` également (facultatif). *Renseigner le champ `caption` (facultatif). *Valider, c'est fini. ;Facultatif Les commentaires éventuels relatif au tiddler ainsi créé sont gérés par le plugin [[Comments|$:/plugins/tiddlywiki/comments]], donc en dehors du tiddler.
Le shadow Tiddler source $:/core/ui/SideBar/Open a été modifié par ajout d'une coche contre le tiddler objet de la dernière navigation: ``` <$reveal type="match" state="$:/HistoryList!!current-tiddler" text=<<currentTiddler>>>✓</$reveal> ``` et voici le code source modifié: {{$:/core/ui/SideBar/Open||code}} Pour une explication détaillée, voyez le tiddler [[Mécanisme d'historique|HistoryMechanism]]
{{Modified||caption}}
Il est important de pouvoir identifier quels sont les tiddlers sources de TiddlyWiki qui ont fait l'objet de modifications. En premier lieu, ces derniers seront remplacés par les tiddlers originaux lors d'une mise-à-jour. Il convient donc de les identifier: ``` <$list filter="[is[shadow]]"> </$list> ``` ;Soit: <$list filter="[is[shadow]]"> </$list> Dans cette liste, tous les tiddlers modifiés n'ont pas la même importance. Ceux-ci le sont : *$:/core/ui/ViewTemplate/subtitle *$:/core/ui/ViewTemplate/title *$:/core/ui/ViewTemplate/tags *$:/core/ui/SideBar/Open *$:/core/ui/ViewTemplate/tags (Voir [[Cacher les boutons Tags]])
!!Le CSS ``` .tc-tiddler-frame .tc-tiddler-body { color: ; background-color: beige; font-size: 15px; } ``` À enregistrer dans le tiddler $:/cssH1H5 !!Le fichier de stockage $:/user/config !!Le paramétrage utilisateur |Tiddlers|<$edit-text class='tc-edit-texteditor' tiddler='$:/user/config' field='tiddlers-police'/>|<$edit-text class='tc-edit-texteditor' tiddler='$:/user/config' field='tiddlers-taille-police'/>|<$edit-text class='tc-edit-texteditor' tiddler='$:/user/config' field='tiddlers-couleur-police' type='color'/>|
C'est à dire le champ text. ;Exemple : ``` <$button><$action-setfield $tiddler="$:/plugins/TWaddle/LeftBar/Menu" text="{{$:/LeftBarContent}}"/>Reset</$button> ``` Ici, le contenu du tiddler `$:/LeftBarContent` sera transclus dans le champ `text` du tiddler `$:/plugins/TWaddle/LeftBar/Menu` via le [[Widget set|SetWidget]] `<$action-setfield>` <$button><$action-setfield $tiddler="$:/plugins/TWaddle/LeftBar/Menu" text="{{$:/LeftBarContent}}"/>Reset</$button>
Un //module// dans TiddlyWiki5 est un tiddler contenant du JavaScript exécutable, de type `application/javascript` et dont le champ `module-type` correspond au ModuleType du module. Voir dans l'onglet <<.controlpanel-tab Info>> du <<.button control-panel>>, l'option Avancé, puis cliquer sur <<.wlink $:/core/ui/ControlPanel/LoadedModules>> pour les listes des modules chargés.
\define describe() {{$:/language/Docs/ModuleTypes/$(type)$}} Le champ `module-type` d'un [[module JavaScript|Modules]] est une chaine identifiant le type de module. Ci-après la liste des types de module utilisés dans ce wiki<<:>> <dl> <$list filter="[moduletypes[]]"> <dt>{{!!title}}</dt> <$set name=type value=<<currentTiddler>>> <dd><<describe>></dd> </$set> </$list> </dl>
{{morosanuae||caption}}
;Voir aussi le plugin [[Link to Tabs|$:/plugins/wikilabs/link-to-tabs]] du même auteur. !!Table System Tags *[[$:/systemtags|$:/core/ui/MoreSideBar/System]] (un seul Tiddler) !!Table Core Explorer *$:/_morosanuae/core/ui/MoreSideBar/core-explorer !!Table Explorer ? *[[The new "tree" global macro]] *$:/_morosanuae/stylesheets/macro/tree *$:/_morosanuae/core/macros/tree !!Table System Img *$:/_morosanuae/core/ui/system-image-grid-template *$:/_morosanuae/core/ui/system-images-list-template *$:/_morosanuae/ui/MoreSideBar/system-images *$:/_morosanuae/ui/MoreSideBar/system-images/grid *$:/_morosanuae/ui/MoreSideBar/system-images/list * $:/_morosanuae/macros/searchable-list
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
Sur la version 5.1.4 de TiddlyWiki. La partie concernant Node.js est intéressante.
Les récentes mises-à-jour sont intéressantes. De nombreux plugins: Exploration, Go to Bottom, List Recent, etc.
Exemple relatif au tiddler [[Comment cacher un champ dans un template d'édition]] Ce qu'effectivement vous ne voyez pas ici en ouvrant ce tiddler en mode édition, c'est qu'il y a bien un champ nommé "myfield" qui a été crée mais qui reste invisible. Pour le rendre visible, vous devez remplacer "hide" par "show" dans le tiddler $:/config/EditTemplateFields/Visibility/myfield Faites le test et vous verrez...
Provides macros and Stylesheet for the creation of menus in TiddlyWIki
/*\ title: $:/macros/skeeve/mysamplemacro.js type: application/javascript module-type: macro <<mysamplemacro character address>> Example: <<mysamplemacro>> <<mysamplemacro "Donald Duck">> <<mysamplemacro "Mickey Mouse" "Mouse House">> \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Information about this macro This is the mysamplemacro of Tiddly Wiki 5 written in JavaScript */ exports.name = "mysamplemacro"; exports.params = [ { name: "character" }, { name: "address" } ]; /* Run the macro */ exports.run = function(character, address) { if( !character) character = "Bugs Bunny"; if( !address) address = "Rabbit Hole Hill"; var output ="Hi, I'm " + character + " and I live in " + address; return output; }; })();
\define _mysimplesamplemacro(name) Salut! Mon nom est $name$! \end <$macrocall $name="_mysimplesamplemacro" name={{!!title}}/>
Tiddlywiki@googlegroups.com est également consultable sur https://tiddlywiki.narkive.com/
La NavBar est la barre de menu située en haut de l'écran. Elle contient principalement les menus de l'utilisateur.
{{NBJCal||caption}}
{{NeatLink||caption}}
Définition de la classe CSS d'un lien basé sur les balises à la destination du lien. ; Vous devez importer les Tiddlers suivants: *$:/NeatLinkMacros *$:/NeatLinkCSS ; Et les trois tiddlers d'exemples suivants: *<<NeatLink NeatLinkExample1>> *<<NeatLink [[Neat Link Example 2]]>> *<<NeatLink [[Neat Link Example 3]]>> This allows you to give custom css styles to links if the link destination tiddler has a specific tag. Note: If the destination tiddler has more than one of the listed tags one link for each style associated with the tags it has will be displayed. If the tiddler you are linking to has spaces in the name you need to put `[[` and `]]` around the name. ;D'abord la Macro NeatLinkMacros : ``` \define GetLinkClass() $(TagUsed)$_css \end \define MakeNeatLinkEntry(tiddler tagUsed) <$list filter='[[$tiddler$]tag[$tagUsed$]]'> <$set name=TagUsed value=$tagUsed$> <<GetLinkClass>> <span class=<<GetLinkClass>>><$link to="$tiddler$">$tiddler$</$link></span> </$set> </$list> \end \define MakeBoringLinkEntry(tiddler) <$list filter='[[$tiddler$]!tag[tag1]!tag[tag2]!tag[tag3]]'> <$link to=$tiddler$>$tiddler$</$link> </$list> \end \define NeatLink(tiddler) <<MakeNeatLinkEntry """$tiddler$""" tag1>> <<MakeNeatLinkEntry """$tiddler$""" tag2>> <<MakeNeatLinkEntry """$tiddler$""" tag3>> <<MakeBoringLinkEntry """$tiddler$""">> \end ``` You will need to change this macro to suit your situation, you need to edit the `NeatLink` macro itself and the `MakeBoringLinkEntry` macro. Specifically, you need to add a line like `<<MakeNeatLinkEntry """$tiddler$""" tagn>>` to the neat link macro for each tag you want a custom link style for, and make sure to replace tag1, tag2, tag3, etc with the tags you actually want to use. You also need to edit the filter in the `MakeBoringEntry` macro so that you replace tag1, tag2, tag3, etc with the tags you are using, adding or removing entries as needed. ;Ensuite la feuille de style NeatLinkCSS : You need to make css classes for each tag you want special links for, the names have to be in the form `tag1_css`, so if you have a tag bob, the css class associated with it would be bob_css. This means that the tags need to be valid css class names. You also have to specify the `a` tag in your css. I don't know why, but it doesn't work otherwise. Example css affecté aux tag du tiddler objet d'un lien ``` .tag1_css a { color:green; } .tag1_css a:hover { color:orange; } .tag2_css a { color:red; } .tag2_css a:hover { color:black; } .tag3_css a { color:yellow; } .tag3_css a:hover { color:pink; } ``` Then to use the links just use the macro `<<NeatLink SomeTiddler>>`. Examples: <<NeatLink NeatLinkExample1>> <<NeatLink [[Neat Link Example 2]]>> <<NeatLink [[Neat Link Example 3]]>> <<bottomOfTiddler>>
{{NestedList||caption}}
La piste proposée par @Oxydum sur le [ext[Forum français|https://forum.tiddlywiki.fr/t/liste-imbriquees-a-partir-de-valeurs-dun-champ/569]] semble pouvoir donner la solution. !!Ce qui existe déjà En partant de ce qui existe déjà dans TiddlyWiki, le tout consiste à en faire une adaptation à la question posée. https://tiddlywiki.com/#SelectWidget !!!Nested Lists Cet exemple utilise une paire de list widget imbriqués. La liste extérieure génère les éléments du `<optgroup>`, et la liste intérieure génère les éléments de `<option>`. ``` <$select tiddler='$:/generated-list-demo-nestedstate' field='type' default='text/vnd.tiddlywiki'> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'> <optgroup label={{!!group}}> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]'> <option value={{!!name}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option> </$list> </optgroup> </$list> </$select> ``` ;Soit: <$select tiddler='$:/generated-list-demo-nestedstate' field='type' default='text/vnd.tiddlywiki'> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group]]'> <optgroup label={{!!group}}> <$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]'> <option value={{!!name}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option> </$list> </optgroup> </$list> </$select> On peut vérifier ce que contient cette liste (éléments option) de 13 tiddlers comme suit: ``` <$list filter="[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]]"> </$list> ``` ;Soit: <$list filter="[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]]"> </$list> Le paramètre des groupes auxquels appartiennent ces tiddlers se font dans les champs de ces tiddlers de détail. Par exemple, on note que le tiddler $:/language/Docs/Types/application/javascript possède les champs suivants: |Champ description|Code JavaScript| |Champ group|Développeur| |Champ name|application/javascript| Dans la liste déroulante des Tiddlers ci-dessus le tiddler $:/language/Docs/Types/application/javascript correspond au titre "Code JavaScript (application/javascript)" Ce titre est donc composé des deux champs suivants: :Le champ "description" : Code JavaScript et :du champ "name" : application/javascript Il en est de même pour tous les autres tiddlers de cette liste. !!Adapter cette solution Pour étendre ce concept à d'autre éléments il suffit de remplacer `prefix[$:/language/Docs/Types/` par un préfixe de votre choix. Préalablement, vous devez organiser et remplir les champs des tiddlers faisant partie de votre nouveau groupe. Le champ "project"de vos tiddlers correspond au champ "group" de mon exemple, et contient les différents groupes sur lesquels vous souhaitez avoir un regroupement. Soit vous changez le champ "project" par le champ "group", soit vous remplacez "group" par "project" dans le code ci-dessus. Concernant le préfixe, il y a peut être des modifications a apporter dans le nom de vos tiddlers: On sait que tous les tiddlers possédant le champ project doivent être cités dans la liste. Or le préfixe s'applique sur le titre (champ title) des tiddlers (je ne sais pas dans quelle mesure on pourrait baser un préfixe sur d'autres champs que le champ title) Si par exemple tous vos tiddlers concernant les projets commencent par ProjectXYZ, le préfixe est simple et rien n'est à modifier : ce sera "Project" Si les titres de vos projets n'ont rien en commun, il faudra peut être les renommer en leur ajoutant un préfixe commun. Donc dans votre cas (mais ce n'est qu'une approche car je ne connais pas la structure exacte de vos données) le code à saisir deviendrait : ``` <table> <tr> <td> <$select tiddler='$:/demo-project' field='type' default='text/vnd.tiddlywiki'> <$list filter='[all[shadows+tiddlers]prefix[Project]each[project]sort[project]]'> <optgroup label={{!!project}}> <$list filter='[all[shadows+tiddlers]prefix[Project]project{!!project}] +[sort[description]]'> <option value={{!!title}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option> </$list> </optgroup> </$list> </$select> </td> <td> {{$:/demo-project!!type}} </td> </tr> </table> ``` ;Soit: <table> <tr> <td> <$select tiddler='$:/demo-project' field='type' default='text/vnd.tiddlywiki'> <$list filter='[all[shadows+tiddlers]prefix[Project]each[project]sort[project]]'> <optgroup label={{!!project}}> <$list filter='[all[shadows+tiddlers]prefix[Project]project{!!project}] +[sort[description]]'> <option value={{!!title}}><$view field='description'><$view field='title'/></$view> (<$view field='name'/>)</option> </$list> </optgroup> </$list> </$select> </td> <td> {{$:/demo-project!!type}} </td> </tr> </table> @@color:crimson;En attendant de trouver la solution pour rendre le contenu de la balise `<$select />` directement actionnable, il suffit - dans l'immédiat - de cliquer sur le titre du tiddler choisi dans la liste se trouvant à la droite de la liste déroulante.@@ ;Tiddlers nécessaires dans cet exemple: *$:/demo-project (il est créé automatiquement par le programme) *ProjectABC *ProjectXYZ !!Solution retenue <div class="note"> ;Complément d'information sur la structure des tiddlers: *Les tiddlers de type taches sont tagués Task *Ces tiddlers ont quelques champs: ** project (nom d’un projet) ** due (échéance) </div> ;Le code est divisé en trois parties: !!!1- Liste des champs "project" //ici il s'agit d'une rupture sur les types de clients de l'entreprise, Grands Comptes ou PME// Comme ceci: <ext1> ``` <$list filter='[tag[Task]each[project]sort[project]]'> !! {{!!project}} </$list> ``` <<< <$list filter='[tag[Task]each[project]sort[project]]'> !! {{!!project}} </$list> <<< </ext1> !!!2- Liste des champs affaires par type de client (project). //C'est la liste des contenus du champ "description" de chaque tiddler// Comme ceci: ``` <$list filter='[tag[Task]each[project]sort[project]]'> !! {{!!project}} <$list filter='[tag[Task]project{!!project}] +[sort[description]]'> </$list> </$list> ``` <<< <$list filter='[tag[Task]each[project]sort[project]]'> !! {{!!project}} <$list filter='[tag[Task]project{!!project}] +[sort[description]]'> </$list> </$list> <<< !!!3- Dates limites (à faire ou fait) //Attaché à chaque affaire, la date à laquelle le dossier doit être bouclé et une case à cocher passant cette affaire du statut Task (à faire) au statut done (terminé). Avec une information supplémentaire (late) prévenant si la date limite indiquée dans le champ due est dépassée de 1 jour (ou plus)// Comme ceci: ``` <$list filter='[tag[Task]each[project]sort[project]]'> !! {{!!project}} <$list filter='[tag[Task]project{!!project}] +[sort[description]]'> <$checkbox tag="Done"> <$link to={{!!title}}> <$view field="title"/> <$view field="due" format="date" template="DDth MMM YYYY"/> </$link></$checkbox> <$list filter="[<currentTiddler>days:due[+1]]"> @@color:red;^^late^^@@</$list> </$list> </$list> ``` <<< <$list filter='[tag[Task]each[project]sort[project]]'> !! {{!!project}} <$list filter='[tag[Task]project{!!project}] +[sort[description]]'> <$checkbox tag="Done"> <$link to={{!!title}}> <$view field="title"/> <$view field="due" format="date" template="DDth MMM YYYY"/> </$link></$checkbox> <$list filter="[<currentTiddler>days:due[+1]]"> @@color:red;^^late^^@@</$list> </$list> </$list> <<<
<div id="ne"></div> <style> #ne { width: 100%; border: 1px solid lightgray; } </style> <<eval """ var nodes = [ { id: 100, label: 'Ce noeud n\'\a pas de largeur ni de hauteur minimum fixées', x: -50, y: -300 }, { id: 210, widthConstraint: { minimum: 120 }, label: 'Ce nœud a une largeur minimum', x: -400, y: -200 }, { id: 211, widthConstraint: { minimum: 120 }, label: '...Celui-ci également', x: -500, y: -50 }, { id: 220, widthConstraint: { maximum: 170 }, label: 'Ce nœud a une largeur maximum et des sauts de lignes ont été insérés automatiquement dans son label', x: -150, y: -150 }, { id: 221, widthConstraint: { maximum: 170 }, label: '...Celui-ci également', x: -100, y: 0 }, { id: 200, font: { multi: true }, widthConstraint: 150, label: '<b>Ce</b> noeud possède une largeur fixe et des sauts de ligne du label sont automatiquement insérés', x: -300, y: 50 }, { id: 201, widthConstraint: 150, label: '...Celui-ci aussi', x: -300, y: 200 }, { id: 300, heightConstraint: { minimum: 70 }, label: 'Ce noeud\na une\nhauteur\nminimum', x: 100, y: -150 }, { id: 301, heightConstraint: { minimum: 70 }, label: '...Et celui-ci également', x: 100, y: 0 }, { id: 400, heightConstraint: { minimum: 100, valign: 'top' }, label: 'Hauteur Minimum\nAlignement vertical\npositionné top', x: 300, y: -200 }, { id: 401, heightConstraint: { minimum: 100, valign: 'middle' }, label: 'Hauteur minimum\nAlignement vertical\n middle\n(par défaut)', x: 300, y: 0 }, { id: 402, heightConstraint: { minimum: 100, valign: 'bottom' }, label: 'Hauteur Minimum\nAlignement vertical\npositionné bottom', x: 300, y: 200 }]; var edges = [ { from: 100, to: 210, label: "Non contraint à largeur minimum" }, { from: 210, to: 211, label: "Plus de largeur minimum" }, { from: 100, to: 220, label: "Non contraint à largeur maximum" }, { from: 220, to: 221, label: "Plus de largeur maximum" }, { from: 210, to: 200, label: "minimum width to fixed width" }, { from: 220, to: 200, label: "maximum width to fixed width" }, { from: 200, to: 201, label: "more fixed width" }, { from: 100, to: 300, label: "unconstrained to minimum height" }, { from: 300, to: 301, label: "more minimum height" }, { from: 100, to: 400, label: "unconstrained to top valign" }, { from: 400, to: 401, label: "top valign to middle valign" }, { from: 401, to: 402, widthConstraint: { maximum: 150 }, label: "middle valign to bottom valign" }]; var container = document.getElementById('ne'); var data = { nodes: nodes, edges: edges }; var options = { edges: { font: { size: 12 }, widthConstraint: { maximum: 90 } }, nodes: { shape: 'box', margin: 10, widthConstraint: { maximum: 200 } }, interaction: { navigationButtons: true, multiselect: true }, manipulation: { enabled: true, editNode(node, callback) { node.label = 'edited'; callback(node); } }, physics: { enabled: false } }; var network = new vis.Network(container, data, options); """>>
\define theTiddler() $(the_tiddler)$!!title |!Identifiant * |<$edit-text tiddler="$:/temp/newuser" placeholder="identifiant" tag="input" type="text"/> | |!Prénom |<$edit-text tiddler="$:/temp/newuser" field="_prenom" placeholder="prénom" tag="input" type="text"/> | |!Nom |<$edit-text tiddler="$:/temp/newuser" field="_nom" placeholder="nom" tag="input" type="text"/> | |!E-mail |<$edit-text tiddler="$:/temp/newuser" field="_email" placeholder="adresse e-mail" tag="input" type="text"/> | |!Abonnement liste diffusion |<$checkbox tiddler="$:/temp/newuser" tag="ListeDiffusion"> Si coché = abonné</$checkbox> | |!Atelier |<$checkbox tiddler="$:/temp/newuser" tag="VELCS"> Vous êtes Libre ce soir ?</$checkbox> | <$reveal type="nomatch" text="" state="$:/temp/newuser"> <$reveal type="match" text={{$:/temp/newuser}} state={{$:/temp/newuser}}> <span class="update"> <$button set="$:/temp/newuser!!title" setTo={{$:/temp/newuser}}> <i class="fa fa-pencil-square-o fa-lg"></i> Mettre à jour </$button></span> <$set name="the_tiddler" value={{$:/temp/newuser}}> <span class="fetch"><$button setTo="$:/temp/newuser" set=<<theTiddler>>> <i class="fa fa-refresh fa-lg"></i> Afficher les informations </$button></span> </$set> </$reveal> <$reveal type="match" text="" state={{$:/temp/newuser}}> <span class="add"><$button set="$:/temp/newuser!!title" setTo={{$:/temp/newuser}}> <i class="fa fa-plus-circle fa-lg"></i> Ajouter </$button></span> </$reveal> </$reveal> ^^* Champ obligatoire. Par exemple PrénomNom^^ <span class="reset"><$button message="tm-delete-tiddler" param="$:/temp/newuser"><i class="fa fa-eraser fa-lg"></i> Effacer le formulaire</$button></span>
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#Next">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "1" "">> <<diary "2019" "2" "">> <<diary "2019" "3" "">> <!-- [img height="10" [$:/images/shim.gif]] --><!-- fill rest of tiddler to match picture height --> <!-- or for whole year, without picture use only: <<diary "2019" "" "">> -->
Prendre un hébergeur avec Node.Js installé sur ses serveurs. Tarifs en général supérieurs à ceux d'un hébergement PHP plus classique. Le site [ext[heroku|https://www.heroku.com/nodejs]] (cloud) a des limites en performances ( mais suffisantes pour des projets de bases ) propose un hébergement gratuit. (CAPCHA à l'inscription) !!Installer sois-même ? pour installer Node.js sur un serveur, s'il est distant, il te faut un accès ssh. Node.js se trouve généralement dans les dépôts. Sinon, il faut le compiler. Nodejs s'installe et on ne peux pas l'installer sois-même sur un hébergement mutualisé. Il faut alors disposer d'une installation déjà déjà faite. Pour l'installer sois-même il faut utiliser un terminal ou console du système d'exploitation. Ce serveur étant loin, en général on utilise ssh qui est un protocole de connexion à distance. [ext[Free Node.Js hosting|https://www.hostingadvice.com/blog/where-to-find-free-node-js-hosting/]] [ext[Un très bon article sur le sujet|http://naholyr.fr/2011/02/nodester-hebergez-vos-applis-nodejs/]]
{{NodeJs||caption}}
*👉 Il s'agit d'un JavaScript qui s'exécute côté serveur et côté client. *👉 Node.Js est un serveur sur lequel tourne le moteur V8 de google chrome (javascript). On retrouve tout ce que peux faire un serveur plus quelques (gros) avantages comme la notion de temps réel. *👉 La gestion des évènements est asynchrones. On peut donc faire de gros traitements sur le système, sur un seul thread, sans rien stopper. *👉 Node.Js est aussi un serveur HTTP. Lorsque vous programmez avec PHP, vous avez besoin d'apache pour gérer les requêtes HTTP. Et bien là plus besoin d'Apache, Node.JS gère aussi les requêtes HTTP seul. *👉 Node.Js n'est pas un serveur, mais il peut créer des serveurs. Regarder les exemples sur internet, les gens créent souvent un serveur http à la volée, et/ou un serveur websockets, et/ou encore d'autres. Bref, on lance un script Node.Js (du JS quoi), et celui-ci crée tout les serveurs qu'on lui a demandé de créer, à la volée. *👉 Un atout de Node.Js est son système de modules. Avant de coder, vérifier que quelque chose d'identique n'existe pas déjà. *👉 On peut utiliser avec Node.Js n'importe quel système de base de données ; ~MySQL, ~ProstrgreSQL, ~MongoDB, ~CouchDB, Redis, et d'autres encore. *👉 Node.Js est un langage système orienté réseau (et pas seulement HTTP). Un serveur http y est inclus, mais ce n'est pas son utilisation principale. *👉 Un point fort, c'est aussi sa gestion des streams (traitement immédiat des fichiers sans attendre leur complet téléchargement). Par exemple, Maintenir des sockets ouvertes avec ses clients. Un chat en temps réel, et non pas un chat où la page se recharge toutes les 10 secondes pour afficher les nouveaux messages. *👉 Node.Js est surtout utilisé pour effectuer des retours JSON (bien qu'on puisse aussi retourner de l'HTML ou autres) pour faire par exemple un service REST. *👉 Dans une optique web, Node.Js permet de faire du push simplement (transmettre des données au client sans qu'il les ait expressément demandées, le temps réel évoqué tout à l'heure) et se marie très bien avec la ''politique actuelle de la mono-page qui embarque tout son javascript (et même parfois ses templates)'', transformant le serveur en un simple intermédiaire pour la base de données. En quelque sorte, on code en JS que ça soit du côté client ou serveur, et grâce au JSON on profites d'une certaine souplesse dans les échanges entre les deux.
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
NodeJS® est un environnement d'exécution, une plateforme construite sur le moteur JavaScript V8 de Chrome qui permet de développer des applications en utilisant du JavaScript. Il se distingue des autres plateformes grâce à une approche non bloquante permettant d'effectuer des entrées/sorties (I/O) de manière asynchrone. Description donnée sur le site officiel: <<< Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js' package ecosystem, npm, is the largest ecosystem of open source libraries in the world. <<< *''built on Chrome's V8 JavaScript engine'' : Afin d'interpréter le code que l'on va écrire en JavaScript ~NodeJS se repose sur le moteur V8 qui équipe actuellement Chrome. Ce moteur a été amélioré grâce à la concurrence entre les navigateurs et permet de créer un script avec un langage familier tout en gardant un temps d'éxécution optimal. *''event-driven model'' : Le code que l'on va écrire va être basé sur un système d'évènement. Les objets que l'on va créer émettront des évènements lors de leur cycle de vie. Il sera ensuite possible de souscrire et d'écouter ces évènements afin d'effectuer des opérations spécifiques lorsqu'ils sont émis. C'est une méthode qui ressemble à celle que l'on utilise actuellement côté navigateur avec la méthode addEventListener *''non-blocking I/O model'' : Lors du déroulement d'un script il y a souvent des phases "d'attente" ou le script bloque en attendant une entrée ou une sortie. Pendant ce temps d'attente, le script ne fais rien et ne peut traiter de nouvelles tâches. Au sein de ~NodeJS la plupart de ces entrée/sorties vont se dérouler de manière asynchrone gràce à la librairie libuv. Ceci permet de gérer plus de concurrences en évitant les phases d'attentes. *''Node.js' package ecosystem'' : ~NodeJS dispose de son gestionnaire de paquet officiel NPM qui permetttra de télécharger et de partager des librairies. Il dispose d'une communauté très importante et d'un très grand nombre de paquets.
le 24 Septembre 2018 je réussis finalement à installer node.js sur mon portable windows. `E:/Program files/nodejs/`Il ne reste plus qu'à le faire fonctionner! 1- Il faut d'abord télécharger et installer ~NodeJs sur son ordinateur. Aller sur https://nodejs.org/en/. (https://nodejs.org/fr/ pour la version française) Votre système d'exploitation étant reconnu, la version correspondante est proposée. dans mon cas 'Download for Windows (x64)" version 8.12.0 LTS (Long Term Service), version dite "recommandée pour la plupart des utilisateurs. <div class="info"> Pour vérifier la version taper `node -v` dans la console/terminal </div> 2- J'installe l'exécutable ainsi téléchargé sur `E:/Program Files nodejs` 3- ouvrir le terminal windows (Command Prompt) 4- Saisir le code `npm install -g tiddlywiki`, l'installation démarre automatiquement avec la ligne `C:\Users\eric>pm install -g tiddlywiki` c'est à dire pas à l'endroit ou j'ai installé node.js. Pas d'incident, après environ 30 secondes il semblerait qu'une version 5.1.17 soit même installée avec. 5- saisir `tiddlywiki --version` le programme répond `5.1.17`, autant dire que tout va bien jusque là. 6- Saisir `tiddlywiki mynewwiki --init server` pour créer un répertoire mynewwiki 7- saisir `tiddlywiki mynewwiki --server` pour démarrer tiddlywiki. Il faudra exécuter cette instruction à chaque fois que tiddlywiki doit être utilisé sous Nodejs. [img[NodeJsConsole]] 8- Entrer l'adresse http://127.0.0.1:8080/ dans le navigateur fireFox Un TiddlyWiki tout neuf qui est présenté !! 9- Vérification du fonctionnement de la sauvegarde par création du Tiddler 'Tiddler test". la sauvegarde se fait automatiquement sans même avoir besoin de presser la bouton de sauvegarde et un fichier `Tiddler test.tid` est enregistré dans `Local disk (C:) > users >eric > mynewwiki > tiddlers`. <div class="info"> *Version npm 6.4.1 *Mise à jour (2019-01-01) `npm install npm@latest -g` *Dernière version installée: 6.5.0 </div>
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
Voici un fil de discussion fort intéressant qui soulève la question de savoir ce qu'est TiddlyWiki: https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg85629.html <<< I am not surprised that its not living up to the notebook idea, "A good notetaking app" blah blah cant achieve half of what TiddlyWiki can, I believe they are riffing off "a non-linear personal web notebook" which it is however as we know it is much more. Perhaps along the line of Arlens comments we need an edition that specifically addresses the "non-linear personal web notebook" more directly. It is too easy with tiddlywiki for it to be understandably criticised, for not meeting someones perception of what it should be, even although it can be almost anything to anyone. I and Josiah in particular have posted many times about the barrier to tiddlywiki being the complexity that arises by virtue of its vastness and capabilities, and that to resolve this we need to promote more focused solutions for people to be attracted to and discover tiddlywikis power before discovering it many capabilities. If this reviewer was looking for a notebook, and discovered tiddlywiki was a platform and he had to get the notebook edition, would he/she be criticising it as much? <<< Je ne suis pas surpris que ceci ne réponde pas à l'idée du Notebook, "une bonne application pour des prises des notes " bla bla qui ne peut atteindre la moitié de ce que TiddlyWiki peut, je crois qu'ils sont paraphrasé le slogan de TiddlyWiki : "un portable Web personnel non-linéaire " ce qu'il est en effet quand bien même nous savons aussi qu'il est bien plus encore. Peut-être le long de la ligne de commentaires des proposants, nous avons besoin d'une édition qui s'adresse spécifiquement à la "non-linéaire Personal Web Notebook " plus directement. Il est trop facile avec TiddlyWiki pour qu'il soit compréhensiblement critiqué, pour ne pas rencontrer quelqu'un la perception de ce qu'il devrait être, même si elle peut être presque n'importe quoi à n'importe qui. Moi et Josiah en particulier avons posté de nombreuses fois sur le frein à l'utilisation de TiddlyWiki que représente sa complexité et de l'étendue de ses capacités, et que pour résoudre cette difficulté nous devrions promouvoir des solutions plus ciblées pour que les personnes soient attirées et veuillent découvrir TiddlyWiki dans toute la puissance de ses capacités. Si cet internaute était à la recherche d'un logiciel pour prise de notes, et qu'en trouvant TiddlyWiki on l'eût informé qu'il s'agit d'une plate-forme dont il pouvait obtenir l'Édition Notebook, en aurait-il fait une telle critique? Tony [ext[Dans un post plus récent|https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg89120.html]], le même auteur précise une définition plus adaptée : Le terme "Tiddlywiki platform" précise ses capacités et l'on peut y joindre au milieu l'un des qualificatifs suivants: @@.list-tree *Application *Note *Website *Database *Mobile @@ Car TiddlyWki est sans aucun doute tout ceci.
!Balises en ~WikiText @@.note <<fa file-o 2>> `@@.note <<note>>` ou `<<fa file-o>>` @@ @@.astuce <<fa bookmark 2>> `@@.astuce <<fa bookmark>>` @@ @@.attention <<fa warning 2>> `@@.attention <<attention>>` ou `<<fa warning>>` ou `<<fa bug>>` <<fa bug>> @@ @@.info <<fa info-circle 2>> `@@.info <<fa info-circle>>` ou `<<fa search>>` <<fa search>> @@ !Balises HTML `<div class="attention">Attention</div>` Soit: <div class="attention">Attention</div> `<div class="note">Note</div>` Soit: <div class="note">Note</div> `<div class="astuce">Astuce</div>` Soit: <div class="astuce">Astuce</div> `<div class="info">Info</div>` Soit: <div class="info">Info</div>
{{Notes||caption}}
Ici, il s'agit de plugins et autres applications concernant les prises de notes rapides, en bas de page ou pas mais également d'outils externes permettant la saisie de commentaires ou l'envoi d'EMails.
<$button message="tm-notify" param="SampleNotification">Display sample notification</$button> Voici le code correspondant à ce bouton qui appelle le tiddler contenant le message de notification : ``` <$button message="tm-notify" param="SampleNotification">Display sample notification</$button> ``` La notification elle-même se trouve dans le tiddler [[SampleNotification]] La possibilité de gérer les notifications est inclus dans le Core de ~TiddlyWiki.
{{Notifications||caption}}
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "11" "">> """ 4 - Unity Day ^^Russia^^ 5 - Guy Fawkes Day ^^New Zealand,^^ ^^United Kingdom^^ 10 - The Prophet's Birthday 11 - Armistice Day ^^France^^ 11 - Remembrance Day ^^Australia,^^ ^^Canada,^^ ^^United Kingdom^^ 11 - Veterans Day ^^United States^^ 16 - Republic Proclamation Day ^^Brazil^^ 17 - National Day of Mourning ^^Germany^^ 20 - Revolution Day Memorial ^^Mexico^^ 23 - Labor Thanksgiving Day ^^Japan^^ 28 - Thanksgiving Day ^^United States^^ """ [img height="70" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "11" "">> """ 4 - Unity Day ^^Russia^^ 5 - Guy Fawkes ^^New Zealand,^^ ^^United Kingdom^^ 11 - Armistice Day ^^France^^ 11 - Remembrance Day ^^Australia,^^ ^^Canada,^^ 11 - Veterans Day ^^United States^^ 15 - National Day of Mourning ^^Germany^^ 20 - Revolution Day Memorial ^^Mexico^^ 23 - Labor Thanksgiving Day ^^Japan^^ 26 - Thanksgiving Day ^^United States^^ """ [img height="150" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "11" "">> """ For it's Tommy this, an' Tommy that, an' "Chuck him out, the brute!" But it's "saviour of 'is country" when the guns begin to shoot; an' it's Tommy this, an' Tommy that, an' anything you please; An' Tommy ain't a bloomin' fool -- you bet that Tommy sees! from //Tommy// by Rudyard Kipling """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "11" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "11" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "11" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nov25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "11" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#November">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "11" "">> """ 4 - Unity Day ^^Russia^^ 5 - Guy Fawkes Day ^^United Kingdom,^^ ^^New Zealand^^ 6 - Diwali 6 - Constitution Day ^^Spain^^ 7 - Diwali ^^India^^ 11 - Armistice Day ^^France^^ 11 - Remeberance Day ^^Canada,^^ ^^United Kingdom,^^<br /> ^^Australia^^ 11 - Veteran's Day ^^USA^^, 15 - Republic Proclamation Day ^^Brazil^^ 18 - National Day of Mourning ^^Germany^^ 20 - Revolution Day Memorial ^^Mexico^^ 21 - The Prophet's Birthday 22 - Thanksgiving Day ^^USA^^ 23 - Labor Thanksgiving Day ^^Japan^^ """ [img height="5" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
<style> .cloud { margin-right: 7px; } .cloud .tc-tag-list-item { margin-right: 0; } </style> <$list filter="[tags[]!is[system]sort[title]]"> <span class="cloud"> <$transclude tiddler="$:/core/ui/TagTemplate"/> <$count filter="[all[current]tagging[]]"/> </span> </$list> *Pour une meilleure présentation, voir aussi [[Formater une liste de résultats en table avec CSS]]
Sans règle de style particulière, les éléments de liste ordonnée rendent une liste numérotée 1, 2, 3... C'est le résultat obtenu avec le tiddler [[TableOfContents]] lorsqu'il n'est entouré d'aucune classe CSS, (également testé sur [[https://tiddlywiki.com/]]) : ``` <<toc-selective-expandable 'TableOfContents' sort[sub.num]">> ``` Si l'on y ajoute la règle de style standard désignée sur TW5 : ``` <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` La numérotation disparaît. La numérotation provient du code CSS affecté aux balises ul, ol. Les éléments de liste ordonnée (propriété `list-style-type`) de Spectre sur ce wiki indiquent par exemple : ``` ul, ol {margin: .8rem 0 .8rem .8rem; padding: 0;} ul ul, ul ol, ol ul, ol ol {margin: .8rem 0 .8rem .8rem;} ul li, ol li {margin-top: .4rem;} ul {list-style: disc inside;} ul ul {list-style-type: circle;} ol {list-style: decimal inside;} ol ol {list-style-type: decimal inside;/*lower-alpha;*/} ``` Le [[CSS du thème Vanilla|$:/themes/tiddlywiki/vanilla/base]] (utilisé sur ce wiki) ne gère pas directement les éléments de liste ul, ol mais les invoque dans une règle de style dédiée à la table des matières `.tc-table-of-contents`, comme ceci : ``` /* ** Table of contents */ .tc-sidebar-lists .tc-table-of-contents { white-space: nowrap; } .tc-table-of-contents button { color: ; } .tc-table-of-contents svg { width: 0.7em; height: 0.7em; vertical-align: middle; fill: ; } .tc-table-of-contents ol { list-style-type: none; padding-left: 0; } .tc-table-of-contents ol ol { padding-left: 1em; } .tc-table-of-contents li { font-size: 1.0em; font-weight: bold; } .tc-table-of-contents li a { font-weight: bold; } .tc-table-of-contents li li { font-size: 0.95em; font-weight: normal; line-height: 1.4; } .tc-table-of-contents li li a { font-weight: normal; } .tc-table-of-contents li li li { font-size: 0.95em; font-weight: 200; line-height: 1.5; } .tc-table-of-contents li li li li { font-size: 0.95em; font-weight: 200; } ``` C'est pourquoi, en standard, aucun élément de liste de la TOC (Sommaire) n'est précédé de la numérotation décimale. <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Voir aussi"></li> <li class="menu-item">[[Spécifier le type d'attribut dans une liste]]</li> <li class="menu-item">[[Gérer la table des matières]]</li> <li class="menu-item">[[Comment numéroter la liste de la TableOfContents ?]]</li> </ul> </div>
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nxt19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "1" "">> <<diary "2020" "2" "">> <<diary "2020" "3" "">> <!-- [img height="10" [$:/images/shim.gif]] --><!-- fill rest of tiddler to match picture height --> <!-- or for whole year, without picture use only: <<diary "2020" "" "">> -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#nxt20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "1" "">> <<diary "2021" "2" "">> <<diary "2021" "3" "">> <!-- [img height="10" [$:/images/shim.gif]] --><!-- fill rest of tiddler to match picture height --> <!-- or for whole year, without picture use only: <<diary "2020" "" "">> -->
[img class="goright" width="5"[$:/images/shim.gif]]<!-- adjust to center picture --> <a href="#nxt21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a><!-- set height of picture, also picture is link to month --> <<diary "2022" "1" "">> <<diary "2022" "2" "">> <<diary "2022" "3" "">> [img height="0" [$:/images/shim.gif]]<!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]]<!-- adjust to center picture --> <a href="#nxt22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a><!-- set height of picture, also picture is link to month --> <<diary "2023" "1" "">> <<diary "2023" "2" "">> <<diary "2023" "3" "">> [img height="0" [$:/images/shim.gif]]<!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]]<!-- adjust to center picture --> <a href="#nxt23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a><!-- set height of picture, also picture is link to month --> <<diary "2024" "1" "">> <<diary "2024" "2" "">> <<diary "2024" "3" "">> [img height="0" [$:/images/shim.gif]]<!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]]<!-- adjust to center picture --> <a href="#nxt24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a><!-- set height of picture, also picture is link to month --> <<diary "2025" "1" "">> <<diary "2025" "2" "">> <<diary "2025" "3" "">> [img height="0" [$:/images/shim.gif]]<!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]]<!-- adjust to center picture --> <a href="#nxt25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a><!-- set height of picture, also picture is link to month --> <<diary "2026" "1" "">> <<diary "2026" "2" "">> <<diary "2026" "3" "">> [img height="0" [$:/images/shim.gif]]<!-- fill rest of tiddler to match picture height -->
Obadiah: a Giffmex biblical introduction
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "10" "">> """ 1 - National Day ^^China^^ 2 - Mahatma Gandhi Jayanti ^^India^^ 3 - Day of German Unity ^^Germany^^ 3 - National Foundation Day ^^South Korea^^ 9 - Hanguel Proclamation Day ^^South Korea^^ 9 - Yom Kippur 11 - Jo Sojin 12 - Hispanic Day ^^Spain^^ 14 - Thanksgiving Day ^^Canada^^ 19 - Sweetest Day ^^United States^^ 24 - Independence Day ^^Zambia^^ 26 - National Day ^^Austria^^ 28 - Labour Day ^^New Zealand^^ 31 - Halloween """ [img height="20" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "10" "">> """ 1 - National Day ^^China^^ 3 - Day of German Unity ^^Germany^^ 3 - National Foundation Day ^^South Korea^^ 9 - Hangeul Proclamation Day ^^South Korea^^ 12 - Hispanic Day ^^Spain^^ 12 - Thanksgiving Day ^^Canada^^ 24 - Independence Day ^^Zambia^^ 29 - Prophet's Birthday 31 - Halloween """ [img height="150" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "10" "">> """ I shall be telling this with a sigh Somewhere ages and ages hence: Two roads diverged in a wood and I -- I took the one less traveled by, And that has made all the difference, from //The Road Not Taken// by Robert Frost """ [img height="85" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "10" "">> """ """ [img height="85" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "10" "">> """ """ [img height="85" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "10" "">> """ """ [img height="85" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#oct25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "10" "">> """ """ [img height="85" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#October">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "10" "">> """ 1 - National Day ^^China^^ 2 - Mahatma Gandhi Jayanti ^^India^^ 3 - Day of German Unity ^^Germany^^ 3 - National Foundation Day ^^South Korea^^ 8 - Thanksgiving Day ^^CA^^ 9 - Hanguel Proclamation DAy ^^South Korea^^ 12 - Hispanic Day ^^Spain^^ 20 - Sweetest Day ^^USA^^ 22 - Labour Day ^^New Zealand^^ 26 - National Day ^^Austria^^ 31 - Halloween """ [img height="90" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
*[[$:/ChoixMenu(old)]] *[[$:/ChoixMenu]]
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
{{ONP||caption}}
[[$:/.check]] {{$:/.check}} {{ABC}} ``` <<ONP A B C>> ```
!!Un bouton radio haut en couleur pour Tiddlywiki. ONP est une macro (abréviation des mots Oui, Non, Peut-être) permettant de créer trois boutons radio utilisables dans votre wiki incluant un style visuel original (via une feuille de style) et dotés de couleurs individuelles distinctes révélées au clic sur ces boutons. Cette macro est adossée au widget [[ONPradio.js]] lui-même basé sur le widget shadow du core de TiddlyWiki [[$:/core/modules/widgets/radio.js]]. Cette étude permet de comprendre comment Widgets et Macros permettent de doter TiddlyWiki de nouvelles fonctionnalités tout en garantissant la compatibilité de votre wiki avec les améliorations du source amenées dans ses versions futures. L'utilisation pratique de ces boutons radio ne dépend que de votre imagination. Vous pouvez suivre l'[ext[historique de ce dossier sur le Forum français|https://forum.tiddlywiki.fr/t/territoire-radio-bouton-style/571]] ;Ce dossier contient: @@.list-tree *Le Widget [[ONPradio.js]] *Le détail des [[modifications apportées à ce widget|ONPWidgetSourceModifié]] par rapport au widget source $:/core/modules/widgets/radio.js *La Macro [[Oui Non Peut-être]] ONP *Une feuille de style dans la macro *Un tiddler Json de contrôle visuel du mécanisme ([[$:/.check]]) *Trois Tiddlers d'exemples @@ ;Remarque Importante: <div class="note"> [ext[Comme expliqué par son auteur sur le Forum français TiddlyWiki|https://forum.tiddlywiki.fr/t/territoire-radio-bouton-style/571/4]] La portée du Tiddler $:/core/modules/widgets/radio.js est initialement globale, et ne prend pas en charge les balises ID et NAME. Elle ont donc été ajoutées au nouveau Widget [[ONPradio.js]]. Ce Widget peut être ainsi utilisé dans la Macro [[Oui Non Peut-être]]: ``` <$ONPradio class="..." type="radio" name="..." id="..." index="..." value="..."> </$ONPradio> ``` </div>
/*\ title: $:/core/modules/widgets/radio.js type: application/javascript module-type: widget Set a field or index at a given tiddler via radio buttons \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; var Widget = require("$:/core/modules/widgets/widget.js").widget; var RadioWidget = function(parseTreeNode,options) { this.initialise(parseTreeNode,options); this.renderChildren(this.inputDomNode,null); }; /* Inherit from the base widget class */ RadioWidget.prototype = new Widget(); /* Render this widget into the DOM */ RadioWidget.prototype.render = function(parent,nextSibling) { // Save the parent dom node this.parentDomNode = parent; // Compute our attributes this.computeAttributes(); // Execute our logic this.execute(); var isChecked = this.getValue() === this.radioValue; // Create our elements //this.labelDomNode = this.document.createElement("label"); //this.labelDomNode.setAttribute("class", // "tc-radio " + (isChecked ? " tc-radio-selected" : "") //); this.inputDomNode = this.document.createElement("input"); // JBF class, id et name this.inputDomNode.setAttribute("name",this.radioName); this.inputDomNode.setAttribute("id",this.radioID); this.inputDomNode.setAttribute("class",this.radioClass); this.inputDomNode.setAttribute("type","radio"); if(isChecked) { this.inputDomNode.setAttribute("checked","true"); } //this.labelDomNode.appendChild(this.inputDomNode); // this.spanDomNode = this.document.createElement("span"); // this.labelDomNode.appendChild(this.spanDomNode); // Add a click event handler $tw.utils.addEventListeners(this.inputDomNode,[ {name: "change", handlerObject: this, handlerMethod: "handleChangeEvent"} ]); // Insert the label into the DOM and render any children parent.insertBefore(this.inputDomNode,nextSibling); //this.renderChildren(this.spanDomNode,null); this.domNodes.push(this.inputDomNode); }; RadioWidget.prototype.getValue = function() { var value, tiddler = this.wiki.getTiddler(this.radioTitle); if (this.radioIndex) { value = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex); } else { value = tiddler && tiddler.getFieldString(this.radioField); } return value; }; RadioWidget.prototype.setValue = function() { if(this.radioIndex) { this.wiki.setText(this.radioTitle,"",this.radioIndex,this.radioValue); } else { var tiddler = this.wiki.getTiddler(this.radioTitle), addition = {}; addition[this.radioField] = this.radioValue; this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields())); } }; RadioWidget.prototype.handleChangeEvent = function(event) { if(this.inputDomNode.checked) { this.setValue(); } }; /* Compute the internal state of the widget */ RadioWidget.prototype.execute = function() { // Get the parameters from the attributes this.radioTitle = this.getAttribute("tiddler",this.getVariable("currentTiddler")); this.radioField = this.getAttribute("field","text"); this.radioIndex = this.getAttribute("index"); this.radioValue = this.getAttribute("value"); this.radioClass = this.getAttribute("class"); this.radioID = this.getAttribute("id"); this.radioName = this.getAttribute("name"); // Make the child widgets this.makeChildWidgets(); }; /* Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering */ RadioWidget.prototype.refresh = function(changedTiddlers) { var changedAttributes = this.computeAttributes(); if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes["class"]) { this.refreshSelf(); return true; } else { var refreshed = false; if(changedTiddlers[this.radioTitle]) { this.inputDomNode.checked = this.getValue() === this.radioValue; refreshed = true; } return this.refreshChildren(changedTiddlers) || refreshed; } }; exports.ONPradio = RadioWidget; })();
Le Tiddler Shadows source $:/core/modules/widgets/radio.js est ainsi modifié : |Ligne| Statut | Code |h |01||/*\| |02||title: $:/core/modules/widgets/radio.js| |03||type: application/javascript| |04||module-type: widget| |05||Set a field or index at a given tiddler via radio buttons| |06||\*/| |07||(function(){| |08||/*jslint node: true, browser: true */| |09||/*global $tw: false */| |10||"use strict";| |11||var Widget = require("$:/core/modules/widgets/widget.js").widget;| |12||var RadioWidget = function(parseTreeNode,options) {| |13||this.initialise(parseTreeNode,options);| |14|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|this.renderChildren(this.inputDomNode,null);| |15||};| |16||/*| |17||Inherit from the base widget class| |18||*/| |19||RadioWidget.prototype = new Widget();| |20||/*| |21||Render this widget into the DOM| |22||*/| |23||RadioWidget.prototype.render = function(parent,nextSibling) {| |24||`//` Save the parent dom node| |25||this.parentDomNode = parent;| |26||`//` Compute our attributes| |27||this.computeAttributes();| |28||`//` Execute our logic| |29||this.execute();| |30||var isChecked = this.getValue() === this.radioValue;| |31||`//` Create our elements| |32|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//`this.labelDomNode = this.document.createElement("label");| |33|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//`this.labelDomNode.setAttribute("class",| |34|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//` "tc-radio " + (isChecked ? " tc-radio-selected" : "")| |35|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//`);| |36||this.inputDomNode = this.document.createElement("input");| |37|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|`//` JBF class, id et name| |38|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|this.inputDomNode.setAttribute("name",this.radioName);| |39|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|this.inputDomNode.setAttribute("id",this.radioID);| |40|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|this.inputDomNode.setAttribute("class",this.radioClass);| |41||this.inputDomNode.setAttribute("type","radio");| |42||if(isChecked) {| |43||this.inputDomNode.setAttribute("checked","true");| |44||}| |45|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//`this.labelDomNode.appendChild(this.inputDomNode);| |46|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//` this.spanDomNode = this.document.createElement("span");| |47|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//` this.labelDomNode.appendChild(this.spanDomNode);| |48||`//` Add a click event handler| |49||$tw.utils.addEventListeners(this.inputDomNode,[| |50||{name: "change", handlerObject: this, handlerMethod: "handleChangeEvent"}| |51||]);| |52||`//` Insert the label into the DOM and render any children| |53||parent.insertBefore(this.inputDomNode,nextSibling);| |54|@@background-color:{{$:/palettes/Editor##highlight}};désactivé@@|`//`this.renderChildren(this.spanDomNode,null);| |55|@@background-color:{{$:/palettes/Editor##highlight}};Modifié@@|this.domNodes.push(this.inputDomNode);| |56||};| |57||RadioWidget.prototype.getValue = function() {| |58||var value,| |59||tiddler = this.wiki.getTiddler(this.radioTitle);| |60||if (this.radioIndex) {| |61||value = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);| |62||} else {| |63||value = tiddler && tiddler.getFieldString(this.radioField);| |64||}| |65||return value;| |66||};| |67||RadioWidget.prototype.setValue = function() {| |68||if(this.radioIndex) {| |69||this.wiki.setText(this.radioTitle,"",this.radioIndex,this.radioValue);| |70||} else {| |71||var tiddler = this.wiki.getTiddler(this.radioTitle),| |72||addition = {};| |73||addition[this.radioField] = this.radioValue;| |74||this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));| |75||}| |76||};| |77||RadioWidget.prototype.handleChangeEvent = function(event) {| |78||if(this.inputDomNode.checked) {| |79||this.setValue();| |80|| }| |81||};| |82||/*| |83||Compute the internal state of the widget| |84||*/| |85||RadioWidget.prototype.execute = function() {| |86||`//` Get the parameters from the attributes| |87||this.radioTitle = this.getAttribute("tiddler",this.getVariable("currentTiddler"));| |88||this.radioField = this.getAttribute("field","text");| |89||this.radioIndex = this.getAttribute("index");| |90||this.radioValue = this.getAttribute("value");| |91||this.radioClass = this.getAttribute("class","");| |92|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|this.radioID = this.getAttribute("id");| |93|@@background-color:{{$:/palettes/Editor##highlight}};ajouté@@|this.radioName = this.getAttribute("name");| |94||`//` Make the child widgets| |95||this.makeChildWidgets();| |96||};| |97||/*| |98||Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering| |99||*/| |100||RadioWidget.prototype.refresh = function(changedTiddlers) {| |101||var changedAttributes = this.computeAttributes();| |102||if(changedAttributes.tiddler `||` changedAttributes.field `||` changedAttributes.index `||` changedAttributes.value `||` changedAttributes["class"]) {| |103||this.refreshSelf();| |104||return true;| |105||} else {| |106||var refreshed = false;| |107||if(changedTiddlers[this.radioTitle]) {| |108||this.inputDomNode.checked = this.getValue() === this.radioValue;| |109||refreshed = true;| |110|| }| |111||return this.refreshChildren(changedTiddlers) `||` refreshed;| |112||}| |113||};| |114||exports.radio = RadioWidget;| |115||})();| |Statut|Nombre|h |Ajouté|7 lignes| |Désactivé (supprimé)|8 lignes| |Modifié|1 ligne|
{{OpenAlltagged||caption}}
\define openalltagged(label) <$button class="openalltagged"> $label$ <$list filter="[tag[$label$]]" variable="tid"> <$action-navigate $to=<<tid>>/> </$list> </$button> \end
<<openalltagged "$:/Administration">> Voir la macro [[openalltagged/macro]]
C'est suite à l'article de Eric Miao, [ext[ICI|https://ericmiao.github.io/blog/2014/04/05/setup-personal-tiddlywiki-on-openshift/]] que j'ai vu que l'on peut installer TiddlyWiki sur Node.Js gratuitement sur OpenShift (un service Red Hat) La méthode d'installation est décrite dans son article. J'y ai ouvert un compte, validé mon mail et reçu le message suivant: <div class="attention"> Due to an increase in OpenShift Online Starter popularity, please expect a longer delay in account provisioning. Once you confirm your subscription below, your account will be queued for provisioning and you will receive an email when there is enough capacity to add your account. Thank you for your patience! </div> Puis vient l'éternel problème CAPTCHA <div class="attention"> There was an error processing your request for access: reCAPTCHA verification failed, please try again. </div> Bref, inscription confirmée mais pas de création de compte.
Voir [[Opérateur has|has Operator]] Dans ces exemples nous utilisons les tiddlers [[has1]], [[has2]], [[has3]] et les champs champ1 et champ2 <<RowTable '[tag[TagHas]]' 'champ1 champ2'>> <div class="att"> __''Note :''__ #Le tiddler has1 possède le champ "champ1" non vide #Le iddler has2 possède le champ "champ1 mais il est vide #Le Tiddler has3 ne possède pas de champ "champ1" </div> ;1- Liste des tiddlers qui possèdent le champ champ1 non vide (Voir note) : ``` <$list filter="[has[champ1]]"> </$list> ``` ;Soit : <<<.tc-big-quote <$list filter="[has[champ1]]"> </$list> <<< ;2- La liste des tiddlers tagués TagHas dont le champ "champ1" est soit vide, soit inexistant. ``` <$list filter="[tag[TagHas]!has[champ1]]"> </$list> ``` ;Soit : <<<.tc-big-quote <$list filter="[tag[TagHas]!has[champ1]]"> </$list> <<< ;3- Tiddlers dont le champ1 existes ``` <$list filter="[has:field[champ1]]"> </$list> ``` ;Soit : <<<.tc-big-quote <$list filter="[has:field[champ1]]"> </$list> <<< ;4- Tous les tiddlers possédant le champ champ1 non vide. ``` <$list filter="[has:value[champ1]]"> </$list> ``` ;Soit : <<<.tc-big-quote <$list filter="[has:value[champ1]]"> </$list> <<< ;5- Le présent tiddler ne possède pas de champ "champ1" ``` <$list filter="[all[current]!has:field[champ1]]"> </$list> ``` ;Soit: <<<.tc-big-quote <$list filter="[all[current]!has:field[champ1]]"> </$list> <<< ;6 - Le présent tiddler possède il le champ "champ1" ``` <$list filter="[all[current]has:field[champ1]]"> </$list> ``` ;Soit: <<<.tc-big-quote <$list filter="[all[current]has:field[champ1]]"> </$list> <<< !!Conclusion : Ce que l'on peut remarquer, c'est qu'il existe une différence entre un tiddler qui possède un champ vide de celui qui dont ce champ n'existe pas. en fonction de son expression `has` ou `!has` et des arguments `has:field`, `has:value` --- !!Note Tous les tiddlers possédant le champ champ1 mais qui n'est pas vide. Le code suivant fonctionne également : ``` {{{ [has[champ1]!champ1[]] }}} ``` ;Soit: {{{ [has[champ1]!champ1[]] }}}
[[La version à venir (pre-re;ease) 5.1.20 de TiddlyWiki|https://tiddlywiki.com/prerelease/#Mathematics%20Operators]] offre une nouvelle application issue des discussions menées sur GitHub (voir https://github.com/Jermolene/TiddlyWiki5/pull/3572#issuecomment-460958193). Il s'agit de quelque chose de différent du plugin Calc de Matt https://github.com/mklauber/tiddly-calc et du plugin Formula de Evan https://github.com/EvanBalster/TiddlyWikiFormula Il n'utilise pas la norme conventionnelle d'écriture appliquée aux opérations mathématiques telles que par exemple (2+2)/3. En lieu et place il construit les opérations mathématiques en tant qu'opérateurs de filtres fonctionnant de la même manière que les autres hors mis le fait que leurs arguments sont interprétés en tant que nombres et que leurs résultats numériques sont convertis en chaînes de caractères. I went for this approach because it makes things really, really small and simple: by re-using all the existing filter operator infrastructure we avoid having to add or implement a new expression parser. On the other hand, it means that it isn’t much use for formulae that have been entered by users not familiar with TiddlyWiki’s filter syntax. We’ll still need plugins like those above for those applications. I haven’t quite finished the documentation, but the list of new operators is as follows - there are new string operators like split and join as well as the maths operators: :''negate'' - négation :''abs'' - valeur absolue :''ceil ''- le plus petit entier plus grand ou égal à un nombre donné :''floor'' - le plus grand entier plus petit ou égal à un nombre donné :''round'' - la valeur d'un nombre arrondi à l'entier le plus proche :''trunc'' - la partie entière d'un nombre après suppression des chiffres fractionnaires (après la virgule) :''sign'' - le signe d'un nombre indiquant qu'il est positif négatif ou égal à zéro :''add ''- add an operand to every number in the input list :''subtract'' - subtract an operand from every number in the input list :''multiply'' - multiply every number in the input list by an operand :''divide'' - divide every number in the input list by an operand :''remainder'' - replace each item in the input list with the remainder when dividing that number by an operand :''max'' - replace any number in the input list larger than the operand with the operand :''min'' - replace any number in the input list smaller than the operand with the operand :''fixed'' - formats a number using fixed-point notation with the number of fractional digits after the decimal point given by the operand :''precision'' - returns a string representing the number to the precision specified in the operand :''exponential'' - returns a string representing the Number object in exponential notation with the number of digits after the decimal point specified in the operand :''sum'' - replaces the input list with the sum of all the entries :''product'' - replaces the input list with the product of all the entries :''maxall'' - replaces the input list with the maximum value of all the entries :''minall'' - replaces the input list with the minimum value of all the entries :''length'' - replaces each item in the input list with its string length in characters :''uppercase'' - replaces each item in the input with its uppercase equivalent :''lowercase'' - replaces each item in the input with its lowercase equivalent :''trim'' - trims each item in the input list :''concat'' - concatenates all of the items in the input list into a single string :''split'' - splits each of the items in the input list by a given separator :''join'' - joins all of the items in the input list with a given separator Voyez les exemples d'application sur ce [[nouveau tiddler|https://tiddlywiki.com/prerelease/#Mathematics%20Operators]] de la version à venir
Operators are how we perform actions on variables and values. We’ve already seen two JavaScript operators, the = and the *. Nous avons déjà vu deux opérateurs JavaScript, le = et le *
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
\define sortEm(string) <$list filter="$string$ +[nsort[]]"> </$list> \end <<sortEm "149 54 9 21">> --- <$list filter="149 54 9 21 +[nsort[]]"> </$list>
Typiquement vous pouvez ordonner vos listes par ajout des code HTML standard `<ul></ul>` et `<ol></ol>` Here an ordered list is used followed with an ordered list format. * ''Liste simple'' ``` <ul> <$list filter="[[Tiddler-A]] [[Tiddler-B]] [[Tiddler-C]]"> <li><<currentTiddler>></li> </$list> </ul> ``` <ul> <$list filter="[[Tiddler-A]] [[Tiddler-B]] [[Tiddler-C]]"> <li><<currentTiddler>></li> </$list> </ul> * ''Liste numérotée'' ``` <ol> <$list filter="[[Tiddler-A]] [[Tiddler-B]] [[Tiddler-C]]"> <li><<currentTiddler>></li> </$list> </ol> ``` <ol> <$list filter="[[Tiddler-A]] [[Tiddler-B]] [[Tiddler-C]]"> <li><<currentTiddler>></li> </$list> </ol>
*Titre original: Order of Tagged Tiddlers *Source: https://ibnishak.github.io/Tesseract/pluginsandmacros/sidebarplus/ Lorsque ~TiddlyWiki génère une liste de tiddlers comportant un tag particulier (par exemple la liste déroulante d'une pile de balise), il classe les tiddlers composant cette liste suivant les règles suivantes: # ~TiddlyWiki recherche d'abord les tiddlers déclarés dans le champ "list" du tiddler contenant le tag qui gère la liste des tiddlers et les classe dans l'ordre dans lequel cette liste de tiddlers apparaît. # Dans chaque Tiddler restant [T] (C'est à dire ceux non listés dans le champ "list" expliqué ci-dessus) ~TiddlyWiki analyse les champs "list-before". Si l'un de ces champs contient le titre d'un Tiddler T, ce dernier sera placé ''juste avant'' celui-ci. (Par exemple si le champ "list-before" du tiddler x contient le nom du tiddler y, le tiddler y sera placé juste au dessus du tiddler x). #* Par exception à cette règle, si le champ "list-before" existe mais que sa valeur est vide, [T] sera alors placé en premier au tout début de la liste. # Dans chaque Tiddler [T] restant (autres qye ceux listés en 1 et en 2 ci-dessus) ~TiddlyWiki analyse les champs "list-after". Si l'un de ces champs contient le titre d'un Tiddler [T], ce dernier sera placé ''juste après'' celui-ci. # Si enfin il reste des Tiddlers non traités, ceux-ci seront placés en fin de liste par ordre alphabétique croissant. Les caractères en majuscule ou en minuscule sont ignorés du classement.
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
\define ONP(o:"Oui" n:"Non" p:"Peut-être" c1:"#29b765" c2:"#c21b15" c3:"#2c75d2") <div class="container$o$$n$$p$"> <div class="button-wrap$o$$n$$p$"> <$tiddler tiddler="$:/.check"> <$ONPradio class="hidden$o$$n$$p$ radio-label$o$$n$$p$" type="radio" name="yes$o$$n$$p$" id="yes-button$o$$n$$p$" index="onp-$o$$n$$p$" value="$o$"> </$ONPradio> <label class="button-label$o$$n$$p$" for="yes-button$o$$n$$p$"> <h2>$o$</h2> </label> </$tiddler> <$tiddler tiddler="$:/.check"> <$ONPradio class="hidden$o$$n$$p$ radio-label$o$$n$$p$" type="radio" name="no$o$$n$$p$" id="no-button$o$$n$$p$" index="onp-$o$$n$$p$" value="$n$"> </$ONPradio> <label class="button-label$o$$n$$p$" for="no-button$o$$n$$p$"> <h2>$n$</h2> </label> </$tiddler> <$tiddler tiddler="$:/.check"> <$ONPradio class="hidden$o$$n$$p$ radio-label$o$$n$$p$" type="radio" name="maybe$o$$n$$p$" id="maybe-button$o$$n$$p$" index="onp-$o$$n$$p$" value="$p$"> </$ONPradio> <label class="button-label$o$$n$$p$" for="maybe-button$o$$n$$p$"> <h2>$p$</h2> </label> </$tiddler> </div> </div> <style> @import url(https://fonts.googleapis.com/css?family=Lato:300,400,900); * { box-sizing: border-box; } .container$o$$n$$p$ { height: 100%; min-height: 100%; margin: 10 auto; } .button-wrap$o$$n$$p$ { position: relative; text-align: center; top: 50%; margin-top: 1.5em; } @media (max-width: 40em) { .button-wrap$o$$n$$p$ { margin-top: -1.5em; } } .button-label$o$$n$$p$ { display: inline-block; padding: 1em 2em; margin: 0.5em; cursor: pointer; color: #292929; border-radius: 0.25em; background: #efefef33; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0 -3px 0 rgba(0, 0, 0, 0.22); transition: 0.3s; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .button-label$o$$n$$p$ h1 { font-size: 1em; font-family: "Lato", sans-serif; } .button-label$o$$n$$p$:hover { background: #d6d6d644; color: #101010; box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0 -3px 0 rgba(0, 0, 0, 0.32); } .button-label$o$$n$$p$:active { -webkit-transform: translateY(2px); transform: translateY(2px); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.2), inset 0px -1px 0 rgba(0, 0, 0, 0.22); } @media (max-width: 40em) { .button-label$o$$n$$p$ { padding: 0em 1em 3px; margin: 0.25em; } } #yes-button$o$$n$$p$:checked + .button-label$o$$n$$p$ { background: $c1$; color: #efefef; } #yes-button$o$$n$$p$:checked + .button-label$o$$n$$p$:hover { background: $c1$; color: #e2e2e2; } #no-button$o$$n$$p$:checked + .button-label$o$$n$$p$ { background: $c2$; color: #efefef; } #no-button$o$$n$$p$:checked + .button-label$o$$n$$p$:hover { background: $c2$; color: #e2e2e2; } #maybe-button$o$$n$$p$:checked + .button-label$o$$n$$p$ { background: $c3$; color: #efefef; } #maybe-button$o$$n$$p$:checked + .button-label$o$$n$$p$:hover { background: $c3$; color: #e2e2e2; } .hidden$o$$n$$p$ { display: none; } </style> \end <<ONP>>
#Vous n'avez besoin que d'une seule chose pour que TiddlyWiki fonctionne : Un navigateur (mais vous n'avez pas besoin d'être en ligne) #Faites un double clic sur votre fichier `empty.html` ou du nom que vous lui aurez donné dans l'étape précédente. #Dans la partie gauche, le contenu de TiddlyWiki se présente par blocs qui se succèdent verticalement. Pour l'instant il n'est composé que d'un seul bloc dont le titre est `GettingStarted`. Dans le vocabulaire de TiddlyWiki, chaque bloc se nomme "Tiddler" #Dans la partie droite vous voyez : *<i class="fa fa-arrow-right"></i> Le titre et le sous-titre du wiki que nous allons modifier. *<i class="fa fa-arrow-right"></i> Un ensemble de trois boutons que nous détaillerons. *<i class="fa fa-arrow-right"></i> Un ensemble d'onglets: "Open", "Recent", "Tools" et "More" dont nous parlerons plus tard.
Mat von TWaddle
Une caractéristique majeure dont plusieurs nouveaux utilisateurs ignorent le degré, est le point jusqu’au-quel TiddlyWiki peut être personnalisé, juste par l'ajout, la suppression de [[tags système|SystemTags]] au sein de tiddlers shadow bien choisis ou dans vos propres tiddlers personnalisés. * Vous pouvez ajouter et retrancher les fonctionnalités par défaut des tiddlers aussi bien en mode édition que visualisation (au cas où vous trouveriez un sous titre de tiddler distrayant ou que vous souhaitiez avoir un aide-mémoire à visualiser lors de l'édition de tiddler) * Vous pouvez ajouter et retrancher les fonctionnalités par défaut de la mise en page globale (peut-être souhaitez-vous ajouter une horloge au menu latéral, ou remplacer les boutons de contrôle de la page par les vôtres * Vous pouvez aussi revoir l'ordre dans lequel les fonctionnalités sont affichées (comme mettre les tags au dessus des titres des tiddlers, ou le sous-titre de votre TiddlyWiki sous les boutons de contrôles de la page) Une fois que vous saurez ce que vous faites, tout cela sera vraiment plutôt facile à réaliser. ! Ajout de tiddlers sur-mesure dans l'interface utilisateur Vous pouvez aussi créer tout tiddler de votre choix avec le [[TagSystème|SystemTag]] approprié, il apparaîtra en son lieu et place. Par exemple, si vous créez un tiddler 'Rappel automatique', ajouter le texte 'C'est un aide-mémoire' et étiquetez le `$:/tags/EditTemplate`, la phrase 'C'est un aide-mémoire' apparaîtra dans chaque tiddler lors de son édition. Quand vous afficherez de nouveaux tiddlers dans des tiddlers ou dans la mise en page générale, vous aurez probablement à les repositionner de sorte qu'ils apparaissent exactement où vous le souhaitez. Pour ce faire, modifiez le bon tiddler shadow muni du préfixe `$:/tags/`, et insérez-y le titre de votre tiddler dans le champ list, au bon endroit. Par exemple, si la phrase 'C'est un aide-mémoire', de l'exemple au-dessus, doit s'afficher au-dessus de l'éditeur de tags dans le mode édition, modifiez le tiddler $:/tags/EditTemplate, sélectionnez le champ 'list' field, et insérez `[[Rappel automatique]]` juste avant `$:/core/ui/EditTemplate/tags`. ! Création de nouveaux boutons pour le Menu ~OutilVisu (~ViewToolbar) et les contrôles de page Imaginons que vous ayez un tiddler squelette appelé 'Modèle Recette', et que vous souhaitiez un bouton dans le tiddler MenuOutilVisu pour créer des tiddlers 'nouvelle recette' à la demande. Cela nécessite les étapes suivantes : # Pour illustrer votre bouton, si aucune des images du noyau (tiddlers shadow préfixés par `$:/core/images/` ) n'est à votre convenance, vous devrez la créer ou en obtenir une au format SVG (par exemple, une de celles de http://flaticon.com), glissez-la dans votre fichier pour la transformer en tiddler, modifiez le tiddler et ajustez sa hauteur et sa largeur à 22px #Passons au tiddler contenant votre tiddler. Créez-le, titrez-le et ajoutez le code du bouton (voir le code ci-dessous par exemple, en l'adaptant à vos besoins si nécessaire) Étiquetez-le par [[$:/tags/ViewToolbar]] #Contrôlons la visibilité de votre tiddler dans la barre d'outil par la création d'un tiddler à titrer `$:/config/ViewToolbarButtons/Visibility/Recette`. Saisissez `reveal`dans la zone texte et sauvegardez. #Enfin, positionnons le bouton proprement. Ouvrez le tiddler $:/tags/ViewToolbar et insérez le titre de votre tiddler bouton (cf. titre étape précédente) dans le champ field au bon endroit. ``` \define newHereButtonTags() [[$(currentTiddler)$]] \end \define newHereButton() <$button class=<<tv-config-toolbar-class>>> <$action-sendmessage $message="tm-new-tiddler" $param="TITLE DE VOTRE BOUTON SQUELETTE" title="New tiddler" tags=<<newHereButtonTags>> /> <$list filter="[<tv-config-toolbar-icons>prefix[yes]]"> {{TITRE DE VOTRE TIDDLER IMAGE SVG}} </$list> <$list filter="[<tv-config-toolbar-text>prefix[yes]]"> <span class="tc-btn-text"><$text text="CAPTION DE VOTRE BOUTON"/></span> </$list> </$button> \end <<newHereButton>> ``` ! Supprimer les tiddlers shadows de l'interface utilisateur <extrait1> Dans l'onglet 'Plus' > option 'Shadows' sont listés tous les tiddlers shadows. Dans cette liste se trouvent plusieurs tiddlers préfixés `$:/core/ui/`. Ce sont les tiddlers du noyau définissant l'interface utilisateur. Ces tiddlers sont étiquetés par des [[Tags système|SystemTags]], supprimer ou ajouter ces tags modifie la présentation de la page et des tiddlers. </extrait1> Par exemple, $:/core/ui/SideBar/More est le tiddler correspondant à l'onglet 'plus' du menu latéral, étiqueté par le [[Tag système|SystemTags]] `$:/tags/SideBar` de façon à apparaître dans le menu latéral. Supprimer ce tag de ce tiddler supprime le tag du menu, et lui réajouter ce tag le fera y réapparaître. Vous pouvez suivre le même procédé pour tout tiddler du noyau définissant l'interface utilisateur et donc préfixé par `$:/core/ui/`. Ainsi encore, supprimer le [[Tag Système|SystemTags]] `$:/tags/ViewTemplate` du tiddler `$:/core/ui/ViewTemplate/subtitle` fera disparaître les sous-titres de tous les tiddlers. Modifier un tiddler shadow de cette façon remplacera la valeur par défaut. Pour réinitialiser, il suffit de supprimer le tiddler modifié pour restaurer le tiddler shadow sous-jacent.
\define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end Les couleurs de la palette sont décrites dans un tiddler dictionnaire de type `index:valeur`. Il y a donc autant de tiddlers dictionnaires que nombre de palettes disponibles. La palette active est identifiée dans le tiddler [[$:/palette]] Pour que les paramètres s'appliquent à la palette de couleur active, il convient de déclarer celle-ci (en-tête du tiddler) : ``` \define lingo-base() $:/language/ControlPanel/Palette/Editor/ \define describePaletteColour(colour) <$transclude tiddler="$:/language/Docs/PaletteColours/$colour$"><$text text="$colour$"/></$transclude> \end ``` <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[page-background]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> --- <<colour foreground>> <$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[foreground]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set> General foreground foreground Donne la couleur de fond de tous les boutons boxed ou rounded et tout ce que l'on trouve dans la classe tc-drop-down `<div class="tc-drop-down">`. Également sur tous les boutons de contrôle des tiddlers en ''mode édition''. On peut ajouter des éléments dans la palette. Par exemple: <<colour base10>> `base10: #c0c4bb` Puis affecter cette couleur à la valeur d'un poste différent. Par exemple: tiddler-controls-foreground:<<colour base10>> <table class="table table-striped table-hover"> <thead> <tr> <th>Saisie Hexa</th> <th>Couleur</th> <th>Nom</th> <th>Code</th> <th>Documentation</th> </tr> </thead> <tbody> <tr class="active"> <td width="10%"><$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[page-background]]" variable="colourName"> <$edit-text index=<<colourName>> tag="input"/> </$list> </$set></td> <td width="10%"><$set name="currentTiddler" value={{$:/palette}}> <$list filter="[[page-background]]" variable="colourName"> <$edit-text index=<<colourName>> type="color" tag="input"/> </$list> </$set></td> <td width="20%">Page background</td> <td width="20%">page-background</td> <td width="40%">Description et effets</td> </tr> </tbody> </table>
La palette des couleurs ne gère pas toutes les couleurs possibles du wiki et notamment celles de la Story-River. Voir les Tiddlers [[StyleSheet]] pour d'autres possibilités. La palette gère des couleurs dont il faut bien comprendre les codes: General Primary: C'est la couleur du mouse hover de la table palette vanilla du control panel. c'est la couleur de tous les liens se trouvant dans la barre de menu de gauche. Je lui donne la couleur grise #888888, ni trop claire ni trop foncée.
{{PaletteEmpty||caption}}
{{PanFlex||caption}}
Hi there, this is a [[TiddlyWiki|https://tiddlywiki.com]] layout called ''~PanFlex'' Using different browsers can cause the grips on the right and the bottom to be positioned wrong on startup ... <$button><$action-setfield $tiddler="$:/state/slidebar-right" $field="center-x" $value={{$:/state/viewport/width}}/><$action-setfield $tiddler="$:/state/slidebar-bottom" $field="center-y" $value={{$:/state/viewport/height}}/>Click here</$button> to set them to your browser viewport width and height The black bars on the left, top, bottom and right are draggable and reveal more user-definable content They are driven by the [[pan widget|PanWidget]] which uses the [[hammerjs library|https://hammerjs.github.io]] You can define what's shown in the left, top and bottom bars by tagging tiddlers with <<tag $:/tags/LeftBar>> <<tag $:/tags/TopBar>> <<tag $:/tags/BottomBar>> There are many useful use-cases for the various bars For example in the left bar on this page you can edit tiddlers that are open inside the story river directly - you can try it by clicking <$button><$action-setfield $tiddler="testing editing in the left bar" $field ="text" $value="""This is some ''example text for testing the leftbar-editor'' Drag the grip on the left side of the page to the right and start editing"""/><$action-navigate $to="testing editing in the left bar"/>here</$button> Updates: * found a good solution for the text-editor that was blocking the drag mouse-events ** when dragging starts a state-tiddler $:/state/dragging gets created and gets deleted when dragging ends ** the stylesheet reveals `iframe { pointer-events: none; }` if that tiddler exists ** that blocks iframes from blocking Some of the values produced by the four sliders (using the pan widget)<br> They can be used for calculations in Stylesheets to create dynamic states <$list filter="$:/state/slidebar-left $:/state/slidebar-top $:/state/slidebar-right $:/state/slidebar-bottom"> |<<currentTiddler>> | |h |center x | {{!!center-x}} | |center y | {{!!center-y}} | |pointer type | {{!!pointer-type}} | </$list> {{$:/core/ui/Buttons/save-wiki}} @@font-size:0.6em; additional icons used are //Material Icons// licensed under [[Apache License 2.0|https://github.com/google/material-design-icons/blob/master/LICENSE]] @@ Version installée: * Hammer.JS - v2.0.8 - 2016-04-23 [ext[Minified code (v2.0.8)|https://hammerjs.github.io/dist/hammer.min.js]] * http://hammerjs.github.io *C'est un plugin officiel. La version installée sur le [[wiki PanFlex|http://panflex.tiddlyspot.com/]] est 5.1.16-prerelease. La version sur ce wiki est 5.1.19. Le code reste le même (version 2.08) *Les problèmes de compatibilité avec la version 5.1.19 ne proviennent donc pas de cette extension. Si une version strictement identique installée sur une V1.5 16 et 1.5.19 fonctionne sur la première, elle doit fonctionner sur la seconde. Le problème vient donc plus probablement du plugin $:/plugins/BTC/hammerjs/widgets/pan.js qui utilise lui-même l’extension hammer.js. Il faut aussi noter que deux autres plugins sont installés sur le wiki PanFlex mais dont aucune mention n'indique qu'il faille les installer obligatoirement : *$:/plugins/ebalster/formula Version version 0.2.3 qui est déjà installée sur ce wiki. *$:/plugins/tiddlywiki/dynaview un plugin officiel TW5 en version 5.1.16-prerelease. Il est également instllé sur ce wiki en version 5.1.19. <<< This is really just a proof of concept to allow the user experience to be evaluated. A production version would need to work in all browsers, which would mean adopting a ''polyfill such as Hammer.js'' to give us manual pan and zoom support. It would also allow deeper levels of zoom. <<<
Ce sont potentiellement des centaines de paramétrages possibles qu'offre ce wiki.
\define render-pan-pan() <div class="tc-test-class" style="position: relative; left: calc($(centerX)$px - 109px); height: 50px; width: 50px; background-color: #333333"></div> \end The pan widget is kind of a multi-purpose action-widget Its basic functionality is to save coordinates of mouse events and touch events in a state tiddler It works on one or more user-defined elements It can trigger actions on pan-start and on pan-end <div style="background-color: #f4f4f4;"> __example__: `<$pan $targets="tc-test-class" $state="on"> <div class="tc-test-class" style="height: 100px; width: 100px; background-color: #333333"> </div> </$pan>` click on the black square, hold the mousebutton pressed and move the cursor you'll see how the coordinates below update <$pan $targets="tc-test-class" $state="on"> <div class="tc-test-class" style="height: 100px; width: 100px; background-color: #333333"> </div> </$pan> The values in $:/state/pan : <$list filter="[[$:/state/pan]fields[]!regexp[^title]]"> <<currentTiddler>> : <$list filter="[[$:/state/pan]get<currentTiddler>]"> </$list> </$list> __another example__: `\define render-pan-pan() <div class="tc-test-class" style="position: relative; left: calc($(centerX)$px - 109px); height: 50px; width: 50px; background-color: #333333"></div> \end <$pan $targets="tc-test-class" $state="on" $statetiddler="$:/state/pan2" $decimals="0" $startactions="""<$action-sendmessage $message="tm-notify" $param="noti1"/>""" $endactions="""<$action-sendmessage $message="tm-notify" $param="noti2"/><$action-setfield $tiddler="PanWidget" $field="refresh" $value="refresh"/>"""> <$vars centerX={{$:/state/pan2!!center-x}}> <<render-pan-pan>> </$vars> </$pan>` <$pan $targets="tc-test-class" $state="on" $statetiddler="$:/state/pan2" $decimals="0" $startactions="""<$action-sendmessage $message="tm-notify" $param="noti1"/>""" $endactions="""<$action-sendmessage $message="tm-notify" $param="noti2"/><$action-setfield $tiddler="PanWidget" $field="refresh" $value="refresh"/>"""> <$vars centerX={{$:/state/pan2!!center-x}}> <<render-pan-pan>> </$vars> </$pan> <$list filter="[[$:/state/pan2]get[center-x]]"> </$list> </div> $:/plugins/BTC/hammerjs/widgets/pan.js
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i file-text 'x5'>> </div> </div> </div> @@ {{Pourquoi ce tutoriel ?}} {{Accéder au tutoriel}}
{{Paragraphs||caption}}
Pour marquer la fin d'un paragraphe, il faut appuyer deux fois sur la touche `Entrée` pour créer deux retours à la ligne : ``` Ceci est un premier paragraphe. Et ceci est un deuxième paragraphe. ``` ;Soit: <<< Ceci est un premier paragraphe. Et ceci est un deuxième paragraphe. <<< ; Remarque * Peu importe le nombre de retours à la lignes supplémentaires, l'espacement entre les paragraphes reste le même. Au sein d'un paragraphe, un retour à la ligne seul est ignoré : ``` Ceci est un paragraphe constitué de plusieurs lignes courtes. ``` ;Soit: <<< Ceci est un paragraphe constitué de plusieurs lignes courtes. <<< Pour les situations où ce comportement n'est pas pratique, voir aussi : [[WikiTexte : Fin de ligne|Hard Linebreaks in WikiText]].
``` <<paragraphs "[[A]][[B]][[C]]">> ``` ``` <<paragraphs "[[A]][[B]][[C]]" notitle>> ``` ``` <<paragraphs "[[A]][[B]][[C]]" notitle float-left>> ``` ``` <<paragraphs "[[A]][[B]][[C]]" "" "float-left">> ``` ``` <<paragraphs filter:"[prefix[J]]">> ``` ``` <<paragraphs filter:"[tag[Core Macros]]">> ```
Trouvé le 04 Octobre 2018. C'est probablement avec cette macro que je vais enfin pouvoir fusionner les tiddlers appelés dans le menu créer menu simple au lieu de les additionner tel que le propose TiddlyOueb. La Macro : $:/jd/macros/paragraphs !! Parameters ;filter : A [[filter|Filters]] selecting which tiddlers to include ;titleclass : Custom class added to the generated div, defaulting to no class : If a tiddler has a <<.field caption>> field, this is shown instead of the tiddler's title : Use `notitle` to hide the tiddler title ;buttonsetclass : Custom class added to the generated div, defaulting to no class : Use `float-left` for the buttons to be positioned to the left of the paragraph, revealing itself upon hovering on the paragraph body ;buttonclass : Custom class added to each button, defaulting to `tc-btn-invisible` ;textareaclass : Custom class added to the textarea, defaulting to `tc-edit-texteditor` Voir [[Paragraphs Macro Examples]]
Les paramètres ci-dessous complètent les paramètres standard de TW5. <$details summary="Introduction"> <i class="icon icon-apps icon-2x"></i> <div class="tc-table-of-contents"> <<toc-selective-expandable '$:/Généralités' sort[sub.num]">> </div> <i class="icon icon-apps icon-2x"></i> </$details> --- !!Paramètres <$details summary="NavBar"> {{$:/TemplateNavBar}} </$details> <$details summary="SideBar"> {{$:/TemplateSideBar}} </$details> <$details summary="Interface"> {{$:/TemplateInterface}} </$details> <$details summary="Tiddlers"> {{$:/TemplateTiddler}} </$details> <$details summary="Polices"> {{$:/Polices-Alignements}} </$details> <$details summary="Surface"> {{$:/TemplateWidth}} </$details> <$details summary="Menus"> {{$:/TemplateMenu}} </$details> <$details summary="Administration"> {{$:/TemplateAdmin}} </$details> <$details summary="Templates"> {{$:/TemplatePreSet}} </$details> <$details summary="Versions"> {{$:/TemplateVersioning}} </$details>
!Paramètres spéciaux Le paramètre de chaque étape que nous avons vu jusqu'à présent a été entre crochets, ce qui signifie que TiddlyWiki le traite littéralement. Mais deux autres types de support sont possibles: <mark class="roundedmark">Accolades `{}`</mark> : signifie que le paramètre est un TextReference, et que sa valeur doit être regardée dans un tiddler spécifié. Par exemple, si nous avons un tiddler appelé D dont le texte se trouve être le mot végétarien, nous pouvons dire: !!!Tiddler Tag D `[tag{Preference}]` Rendu : ``` <$list filter="[tag{D}]"> </$list> ``` ; Soit: <<< <$list filter="[tag{D}]"> </$list> <<< Qui est une alternative à `[tag[Végétarien]]`. Cette notation permet au tiddler D de changer de tag sans changer la liste. Équerres `<>` : signifie que le paramètre est le nom d'une variable dont la valeur doit être utilisée à la place. Ici, nous utilisons la variable intégrée dans un filtre qui sélectionne n'importe quel tiddler dont le texte contient le titre de l'actuel: > `[search<currentTiddler>]`
{{ParamToList||caption}}
J'essaie de comprendre comment le concept que j'utilisais dans TWC (Classique) peut être appliqué à TW5. Ce concept était le suivant: Soit un Tiddler A contenant une liste basée sur le plugin `ForEachTiddlerPlugin`. il requiert un paramètre de filtrage. Et soit un tiddler B incluant une liste de sélection utilisée pour filtrer la liste. Ce tiddler transclue également le tiddler A en passant la valeur de la liste de sélection en paramètre. J'ai maintenant un tiddler dans tW5 avec le contenu suivant et qui fonctionne: ``` <$select field="filter-field"> <option value="ExtendedBrain">All</option> <option value="ExtendedBrainButton">ExtendedBrainButton</option> <option value="ExtendedBrainHeadTemplate">ExtendedBrainHeadTemplate</option> </$select> <table> <tr> <th>Name</th> <th>Date</th> <th>Date</th> <th>Fields</th> </tr> <$list filter="[tag[ExtendedBrain]] +[tag{!!filter-field}]" emptyMessage="Nothing found"> <tr> <td><$link><$view field=title/></$link></td> <td>{{!!modified}}</td> <td><$view field="modified"/></td> <td> <$list filter="[{!!title}fields[]sort[title]] -[all[shadows]removeprefix[$:/language/Docs/Fields/]]" emptyMessage="Nothing found">{{!!title}} </$list> </td> </tr> </$list> </table> ``` ;Soit: <$select field="filter-field"> <option value="ExtendedBrain">All</option> <option value="ExtendedBrainButton">ExtendedBrainButton</option> <option value="ExtendedBrainHeadTemplate">ExtendedBrainHeadTemplate</option> </$select> <table> <tr> <th>Name</th> <th>Date</th> <th>Date</th> <th>Fields</th> </tr> <$list filter="[tag[ExtendedBrain]] +[tag{!!filter-field}]" emptyMessage="Nothing found"> <tr> <td><$link><$view field=title/></$link></td> <td>{{!!modified}}</td> <td><$view field="modified"/></td> <td> <$list filter="[{!!title}fields[]sort[title]] -[all[shadows]removeprefix[$:/language/Docs/Fields/]]" emptyMessage="Nothing found">{{!!title}} </$list> </td> </tr> </$list> </table> Je voudrais séparer ce contenu en deux tiddlers distincts: *tiddler A contenant l liste de sélection et la trnsclusion du tiddler B *tiddler B contenant le filtre formaté en table. Dans la documentation TW5 j'ai trouvé ceci : https://tiddlywiki.com/#Macro%20Definitions%20in%20WikiText qui pourrait résoudre cette question en utilisant des macros. Est-ce une bonne approche et la manière recommandée pour le faire ? PMario Vendredi, 17 Août 2018 Vous pouvez séparer votre code en trois éléments : *Le Tiddler de définition de la macro *Un tiddler template en table *Le tiddler de contenu, B par exemple Voir les tiddlers attachés à cet exemple: *[[test-macro]] : {{test-macro||code}} *[[table-template]] {{table-template||code}} *[[call-the-macro]] `<<test-macro B>>` *[[B]] OK mais je me pose les questions suivantes: *<i class="fa fa-arrow-right"></i> La macro est appelée comme suit: `<<test-macro B>>`. cela signifie-t-il que "B" est passé en paramètre à la macro? [@@background-color:{{$:/palettes/Editor##highlight}};Réponse Mark S. -. Oui@@] *<i class="fa fa-arrow-right"></i> La macro a cette définition: `\define test-macro(title)`. Ceci signifie-t-il que le premier paramètre passé est appelé "title" ? [@@background-color:{{$:/palettes/Editor##highlight}};Réponse Mark S. -. Oui@@] *<i class="fa fa-arrow-right"></i> Le sélecteur dans la macro est ainsi formulé: `<$select tiddler="""$title$"""`<br/> `field="filter-field">`.<br/> ** `"$title$"` signifie-t-il la manière dont la variable peut être utilisée ? ** Qu'est-ce-que `<$select tiddler="""$title$"""` fait? Suivant l'attribut "tiddler" de la documentation sur `SelectWidget` ''le titre du tiddler contenant la valeur à afficher/modifier par le widget select est par défaut celui du tiddler courant'' (current tiddler). [@@background-color:{{$:/palettes/Editor##highlight}};Réponse Mark S.: La valeur sélectionnée depuis la liste déroulante est enregistré dans le champ de $title$ (par exemple "B").@@] *<i class="fa fa-arrow-right"></i> À quoi sert le tiddler B dans votre exemple? : [@@background-color:{{$:/palettes/Editor##highlight}};L'endroit où la valeur du champ `filter-field` est stocké.@@] *<i class="fa fa-arrow-right"></i> Comment devrais-je appeler la macro quand je souhaiterai écrire la vleur sélectionnée dans le tiddler d'appel (tiddler A) ? Content of tiddler A: ``` <<test-macro title:{{$view field="title"}}>> {{$view field="title"}} ``` ne fonctionne manifestement pas. ;Réponse PMario <<< Vous pourriez définir la macro comme suit: ``` \define test-macro(title:<<currentTiddler>>)... ``` Ceci utilisant la variable `currentTiddler` comme étant la variable par défaut dans le cas où aucun paramètre ne serait passé. Puis en l'appelant sans paramètre avec: `<<test-macro>>` Comme suit: ``` \define test-macro() <$select tiddler=<<currentTiddler>> field="filter-field"> <option value="ExtendedBrain">All</option> <option value="ExtendedBrainButton">ExtendedBrainButton</option> <option value="ExtendedBrainHeadTemplate">ExtendedBrainHeadTemplate</option> </$select> {{$title$||table-template}} \end ``` <<< ;Commentaire TonyM <<< TW5 est très différent de TWC Voici quelques astuces que j'aurais aimé que l'on me donne lorsque je suis passé à TW5. Si toutes n'ont pas encore de sens dans l'immédiat elles n'en demeurent pas moins importantes. Les macros définies dans des tiddlers tagués $:/tags/Macro sont globales. Toutes les valeurs et les variables dans le tiddler courant peuvent être utilisées If you are passing parameters to a macro and want to share other value like <<value>> use the $macrocall widget to allow the <<value>>'s to work L'exemple de Mario : `\define test-macro(title:<<currentTiddler>>)`n'est qu'une façon de définir des valeurs par défaut Ne pas hésiter à utiliser les `<$set emptyValue` et `<$list emptyMessage` pour définir une valeur si un paramètre ou une liste sont vides. On peut faire beaucoup de choses avec la combinaison des listes et des tables dans TW5 you can do everything and more using a combination of lists and tables in TW5 Personally I usually write my macros to act on the currentTiddler and use lists or the tiddlerWidget to invoke the macro with a different currentTiddler or list of tiddlers if needed. When the current tiddler is not required I add the "variable=variablename" to the list so the CurrentTiddler does not change. <<<
{{ParentField||caption}}
Transcluded tiddler or just tiddler would work in this context. The biggest problem I see people having with this is conceptual. Make a tiddler called SomeTemplate and put this in the text field: ``` Capital: {{!!capital}} ``` then in the tiddler you want it displayed in put {{||SomeTemplate}} That should display Capital: London in the UK tiddler you described. But in this form it isn't very useful. Depending on context you probably want to either use view templates or to create a viewer tiddler that will display the content of your other tiddlers using the templates you want.
A ''Parenthesized Expression'' is an [[Expression]] in parentheses: ``` (2^20 - 10^6) ```
;Site proposant des exemples concrets: http://tobibeer.github.io/tw/filters/#Filter%20Examples <div class="att"> Liste à compléter: il y a beaucoup d'exemples cités dans le lien ci-dessus. </div> ;Filtre sur les tiddler contenant le préfixe H (dans le titre) `<<list-links "[prefix[H]]">>` ;Soit: <<list-links "[prefix[H]]">> ;Filtre sur les [[Tags système contenus dans ce wiki]] ``` <$list filter="[tags[]prefix[$:/tags/]]"> <h2><$link><$view field="title"/></$link></h2> <<list-links "[all[current]tagging[]]">> </$list> ``` ;Filtre sur tous les tiddlers possédant le tag "Traductions" `<$list filter="[all[tiddlers]tag[Traductions]]">` Soit: <$list filter="[all[tiddlers]tag[Traductions]]"> </$list>
Comme Stephan Hradek l'a souligné [[ici|https://groups.google.com/d/msg/tiddlywiki/WbaJ826cpfA/Y7PBrWArtA0J]], on peut utiliser le widget [[$set|SetWidget]] pour déclarer des [[variables|http://tiddlywiki.com/#Variables%20in%20WikiText]] qui sont donc disponibles dans tout widget les contenant , comme par exemple un widget [[$transclude|TranscludeWidget]]... ``` <$set name="var1" value="val1"> <$set name="var2" value=<<currentTiddler>>> {{foo||template/example-variables}} </$set> </$set> ``` Les variables `var1` et `var2` sont maintenant accessibles dans le template via `<<val1>>` et quel que soit le nom du tiddler intégrant le widget Set. Le balisage ci-dessus et [[template/example-variables]] sont ainsi restitués: <<< <$set name="var1" value="val1"> <$set name="var2" value=<<currentTiddler>> > {{foo||template/example-variables}} </$set> </$set> <<< Voiraussi: [[Variables In Nested Lists]]
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
1- Pour obtenir un style personnalisé, procéder comme suit Créer un tiddler tagué "`$:/tags/stylesheet`", et écrivez le style choisi ``` /*TEXT STYLES*/ .myTitle { text-shadow:silver 2px 2px 6px; font-size:14pt; } ``` Ensuite utilisez ce style de la manière suivante: ``` !.myTitle Text of Title ``` 2- pour générer différents niveaux d'éléments DOM de titre (Hn) (ce qui est fait sur ce wiki), on peut aussi personnaliser la taille de police par défaut pour ces éléments en utilisant CSS comme ceci: ``` H1 { font-size:250%; } H2 { font-size:200%; } H3 { font-size:150%; } H4 { font-size:100%; } H5 { font-size:80%; } H6 { font-size:50%; } ``` Toujours en taguant le tiddler contenant ce code "`$:/tags/stylesheet`".
*Standard customization via Control panel. *Advanced customization by overriding shadow tiddlers. *Advanced customization by adding certain tags (adding e.g. tabs and buttons to the wiki) **by a stylesheet tiddler (a tiddler tagged with $:/tags/Stylesheet). *Exploring the source code (UI shadow tiddlers).
La gestion d'une base de donnée Volleyball complexe avec ~TiddlyWiki
Lorsqu'on enregistre et organise des informations, on se donne pour objectif de pouvoir les réutiliser plus tard. La valeur d'une information conservée est directement proportionnelle à la facilité avec laquelle on peut la réutiliser. La philosophie des [[tiddlers|Tiddlers]] consiste à maximiser les possibilités de réutilisation en découpant l'information en unités sémantiques aussi petites que possible, grâce à une [[modélisation riche des relations entre elles|Structuring TiddlyWiki]]. On utilise ensuite l'agrégation et la composition pour tisser les fragments entre eux afin de construire des déroulés cohérents. TiddlyWiki a pour ambition de proposer une algèbre pour les tiddlers<<dp>> une manière concise d'exprimer et d'explorer les relations entre les diverses pièces d'information.
!Caractéristiques *Pas de base de données *Enregistrement des fichiers texte *Utilise Markdown *Et Markdown Extra. *Ces pages peuvent également contenir du code HTML standard. !URLS : *Sur serveur local : http://127.0.0.1:8080/pico/ *Sur serveur de production : http://www.tiddlylearn.hebergratuit.net/pico/?i=1 !Création de contenu : Pico n'est pas un logiciel destiné à bloguer - Cependant il est assez simple de le rendre comme tel. Fichiers plats (texte) = pas de backend et pas de base de données. Pour créer un nouveau fichier (une nouvelle page), créer un fichier `.md` dans le répertoire `content` et ce fichier deviendra votre nouvelle page. Par exemple,sur la livraison standard de Pico, le fichier index.md est restitué comme étant la page accueil. When you install Pico, it comes with some sample contents that will display until you add your own content. Simply add some .md files to your content folder in Pico's root directory. No configuration is required, Pico will automatically use the content folder as soon as you create your own index.md. Just check out Pico's sample contents for an example! En créant un nouveau répertoire dans le répertoire courant (par exemple content/sub) et en y créant un fichier index `index.md` on accède à ce répertoire par l'adresse URL `http://127.0.0.1:8080/pico/sub`. On y ajoutera un second fichier, par exemple `content/sub/page.md`qui sera accessible via l'adresse URL `http://127.0.0.1:8080/pico/sub/page)`. Voici quelques exemples de localisation avec leurs URL correspondantes : <table class="table table-striped table-hover"> <thead> <tr> <th>Localisation physique</th> <th>URL</th> </tr> </thead> <tbody> <tr> <td>content/index.md</td> <td>/</td> </tr> <tr> <td>content/sub.md</td> <td>~~?sub~~ (non accessible, voir ci-dessous)</td> </tr> <tr> <td>content/sub/index.md</td> <td>?sub (identique à la ligne ci-dessus)</td> </tr> <tr> <td>content/sub/page.md</td> <td>?sub/page</td> </tr> <tr> <td>content/a/very/long/url.md</td> <td>?a/very/long/url (adresse inexistante) </td> </tr> </tbody> </table> Lors de la première installation, des exemples de contenus y sont livrés. Ces exemples seront affichés jusqu'à ce que vous ajoutiez vos premiers contenus propres. Pour ce faire, il suffit d'ajouter quelques fichiers `.md` dans le répertoire `content`. Aucune configuration particulière n'est requise et Pico utilisera automatiquement le répertoire `content` dès que vous y aurez créé votre premier fichier `index.md`. !TWIG, template engine for PHP
<svg width="12cm" height="5.25cm" viewBox="0 0 1200 400"> <title>Example arcs01 - arc commands in path data</title> <desc>Picture of a pie chart with two pie wedges and a picture of a line with arc blips</desc> <rect x="1" y="1" width="1198" height="398" fill="none" stroke="blue" stroke-width="1" /> <path d="M300,200 h-150 a150,150 0 1,0 150,-150 z" fill="red" stroke="blue" stroke-width="5" /> <path d="M275,175 v-150 a150,150 0 0,0 -150,150 z" fill="yellow" stroke="blue" stroke-width="5" /> </svg> d: path Data M: moveto coordinates h: horizontal line (relative -150 here) a: (rx ry x-axis-rotation large-arc-flag sweep-flag x y)+<br> Draws an elliptical arc from the current point to (x, y). The size and orientation of the ellipse are defined by two radii (rx, ry) and an x-axis-rotation, which indicates how the ellipse as a whole is rotated relative to the current coordinate system. The center (cx, cy) of the ellipse is calculated automatically to satisfy the constraints imposed by the other parameters. large-arc-flag and sweep-flag contribute to the automatic calculations and help determine how the arc is drawn.
\define say-hi-using-variables() Hi, I'm $(name)$ and I live in $(address)$. \end \define name() Bugs ''Placeholder''. Les extraits de code peuvent utiliser des [[Zones Réservées|PlaceHolder]] en paramètres. Il suffira de placer le nom du paramètre entre les signes dollar, comme `$ceci$`. Il est aussi possible d'utiliser des [[Zones Réservées|PlaceHolder]] comme [[variables|Variables]]. Il suffira de placer le nom de la variable (ou du nom de la macro) entre les signes dollar entourés de parenthèses, comme `$(ceci)$`. À la valeur actuelle du paramètre ou de la variable se substituera celle portée par le [[ZoneRéservée|PlaceHolder]] lors de l'appel de la macro<<dp>> ``` \define say-hi-using-variables() Hi, I'm $(name)$ and I live in $(address)$. \end \define name() Bugs ``` Le code ci-dessus doit être placé en tête du tiddler. ``` <$set name="address" value="Rabbit Hole Hill"> <<say-hi-using-variables>> </$set> ``` Aura pour résultat : <$set name="address" value="Rabbit Hole Hill"> <<say-hi-using-variables>> </$set>
!Créer de nouveaux templates Vous pouvez créer tout tiddler de votre choix avec le [[Tag Système|$:/core/ui/MoreSideBar/System]] approprié, il apparaîtra en son lieu et place. !!Exemple 1 : Créez un tiddler et nommez le 'Rappel automatique', ajoutez le texte 'C'est un aide-mémoire' et étiquetez le `$:/tags/EditTemplate`. La phrase 'C'est un aide-mémoire' apparaîtra dans chaque tiddler lors de son édition. !!Exemple 2 : {{Le Template Black Line||full}} !Positionner au bon endroit Quand vous afficherez de nouveaux tiddlers dans des tiddlers ou dans la mise en page générale, vous aurez probablement à les repositionner de sorte qu'ils apparaissent exactement où vous le souhaitez. Pour ce faire, modifiez le bon tiddler shadow muni du préfixe `$:/tags/`, et insérez-y le titre de votre tiddler dans le champ list, au bon endroit. Par exemple, si la phrase 'C'est un aide-mémoire', de l'exemple au-dessus, doit s'afficher au-dessus de l'éditeur de tags dans le mode édition, modifiez le tiddler $:/tags/EditTemplate, sélectionnez le champ 'list' field, et insérez `[[Rappel automatique]]` juste avant `$:/core/ui/EditTemplate/tags`. Remarque: le Tiddler $:/tags/EditTemplate reprend dans le champ list la liste de tous les Tiddlers tagués `$:/tags/EditTemplate`: *$:/core/ui/EditTemplate/controls *$:/core/ui/EditTemplate/title *$:/core/ui/EditTemplate/tags *$:/core/ui/EditTemplate/shadow *$:/core/ui/ViewTemplate/classic *$:/core/ui/EditTemplate/body *$:/core/ui/EditTemplate/type *$:/core/ui/EditTemplate/fields Voir aussi [[Tags système]]
<<tabs "X Demos Workings Use Install Alternatives Wanted" "Intro">> *Voir la feuille de style associée $:/plugins/TWaddle/PlainTabs/Stylesheet *(A mettre en relation avec [[$:/css Sidebar Tabs Alternate Style]]) C'est le format de tables que je souhaiterais voir dans des tiddlers individuels Je ne sais pas trop comment l'adapter pour qu'il ne s'applique qu'a ce seul type de besoin.
$:/plugins/tiddlywiki/help Tables contenues dans le bloc principal : ``` <<tabs "[all[shadows+tiddlers]tag[$:/tags/HelpPanel]!has[draft.of]]" "$:/plugins/tiddlywiki/help/HelpPanel/Support" "$:/state/tab/help">> ``` *Pour ajouter une table, taguer le tiddler désigné `$:/tags/HelpPanel` *Pour retirer une table, détaguer `$:/tags/HelpPanel`
https://tiddlywiki.com/plugins/tiddlywiki/d3/ https://github.com/Jermolene/TiddlyWiki5/tree/master/plugins/tiddlywiki/d3 title: `$:/plugins/tiddlywiki/d3/readme` The D3 plugin is a proof-of-concept demo of integration with the D3.js data visualisation framework (http://d3js.org). It is not currently in a state where it can be used for anything useful. [[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/d3]]
The "teaser list" you see is actually a list inside ''one single'' tiddler. And each teaser is a link to that tiddler. The imagined use is public TWs like ''blogs or news sites'' to, for instance, provide a preview of the latest articles. The default list meeting you here is the tiddler [[Teaser list below story]]. It is tagged //~$:/tags/BelowStory // to appear by default and it lists all tiddlers tagged <<tag "myTag">>. Tiddlers tagged with //Above-/~BelowStory // get special styling (via TW core, not Teasers) to have e.g invisible tiddler gutter, hide title etc. There is also the tiddler [[Teaser list in river]], which is made to appear similar by tagging it `transparent` so it is automatically styled with the `tc-tagged-transparent` class. The intended use for such tiddlers are as tiddlers that in themself list articles, perhaps on a sub-topic in the TW. ''Install'' it simply by dragging these into your TW *[[Teaser list below story]] *[[Teaser list in river]] *[[TeaserStyles]] They're not pluggified because I'm guessing you'll want to tweak them anyway and change their titles. <br>''Cred'' Warm thanks go to @@color:crimson; ''@nameanyone''@@ who solved the whole teaser manifestation in a mch better way than I dared to [[ask for|https://github.com/Jermolene/TiddlyWiki5/issues/1769]].<br> <br>''Notes''<br> *Each teaser is covered by a transparent link to the respective tiddler. **an (intended) consequence is that attempting to click on elements in the teaser (e.g a regular blue link) opens the teaser tiddler, rather than the triggering the element. *The <span class="prettifybutton">{{$:/core/images/close-all-button}}</span> buttons are defined in the tiddlers themselves. **In the //~BelowStory// tiddler, it removes the //~$:/tags/BelowStory // tag from the tiddler (and thus makes it disappear from there). Since a vistor probably can't save the TW, it will be there again for next visitor. **In the //In River// version, the button instead merely closes the tiddler. *If you wish to play around with the CSS and want to see the effects of the changes in real time, I recommend the [[SideEditor|http://sideeditor.tiddlyspot.com]] plugin. You can activate this here via the checkbox in ~CtrlPanel>Appearance>Toolbars>~ViewToolbar <br><:-) <br>@@font-size:small; //[[TWaddling|http://twaddle.tiddlyspot.com/]] since 1915//@@ La liste des tiddlers incorporés peut se trouver dans la ~StoryRiver ([[Teaser list in river]]) (non tagué) et/ou sous le pied de page [[Teaser list below story]] (tagué `$:/tags/BelowStory`) Chacune de ces deux listes possède un bouton {{$:/core/images/close-all-button}} de fermeture permettant de les désactiver, mais ils sont utilisés dans deux procédures différentes: Dans le tiddler [[Teaser list below story]], le bouton sert à désactiver la liste en lui retirant son tag `$:/tags/BelowStory`. La liste des tiddlers inclus ne réapparaîtra en pied de page que lorsque le tag sera de nouveau ajouté. Ce paramétrage s'effectue depuis Panneau de Contrôle <i class="fa fa-arrow-right"></i> Templates <i class="fa fa-arrow-right"></i> ~TiddlyFrame <i class="fa fa-arrow-right"></i> Contrôle Interface <i class="fa fa-arrow-right"></i> Afficher les ~HeadLines en pied de page. Tandis que dans le tiddler [[Teaser list in river]], il aura pour effet de fermer le tiddler. L'utilité de ce tiddler réside dans sa possibilité de servir d'extrait de texte incorporé dans un autre tiddler. Voir cet exemple d'application : [[Plugin Teaser et StoryRiver]]
Génial, mais gros problème de stylesheet dans la sidebar que je n'arrive pas à résoudre. Son tiddler `TableOfContents` contient juste : ``` <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents'>> </div> ``` Avec la classe standard `tc-table-of-contents`
*👉 C'est le plugin officiel de traduction de TiddlyWiki en Français *👉 Pour savoir où et comment importer le fichier de traduction, voyez [[TiddlyWiki en Français]] *👉 Pour accéder au plugin voyez $:/languages/fr-FR
<div class="column col-sm-12"> <div class="toast toast-error"> Ce billet est un brouillon (ébauche) </div> </div> Liste complète des tiddlers composant le plugin (à venir) Faut il d'abord séparer la partie purement documentation ($:/doc-user-xxx) de la partie des paramètres ? On ne peut pas regrouper tous les paramètres sur une feuille de style unique. Par exemple la feuille de style de la barre de navigation ($:/cssNavBar) possède un paramètre qui permet de la supprimer en supprimant son tag `$:/tags/Stylesheet` ce qui entraînerait la suppression des styles CSS de tous les autres paramètres. Voir s'il est possible de regrouper les styles de la ~SideBar sous un CSS unique $:/cssSideBar Voici la liste des CSS actuels devant être inclus dans le plugin :
{{Plugins||caption}}
La récapitulation avec liens de toutes les applications de cet éditeur (TesseRact)
Brève description et utilisation contextuelle de quelques plugins installés sur ce wiki. Je note certains d'entre eux comme faisant partie des ''indispensables''. Ceux-ci y sont référencés comme tel à l'aune, selon moi, de leur utilité réelle. On aurait en effet vite fait de tous les considérer comme indispensables, ce qui n'est pas le cas. Je sais bien que ce qui semble indispensable pour les uns ne l'est probablement pas pour les autres (et vice-versa). Disons que ceux que j'ai choisis devraient, à mon sens, être intégrés au core de TiddlyWiki.
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i info 'x5'>> </div> </div> </div> @@ <<doc>> *Consulter la [[documentation officielle|http://tiddlywiki.com/]] [''EN''] et/ou le site [[Learn|https://prolegomenes.github.io/learn/Learn225117.html]] [''FR'']. *Contact et assistance [[sur le forum TiddlyWiki en français|https://forum.tiddlywiki.fr/]] *[[Dernière version en ''pre release''|https://tiddlywiki.com/prerelease/]]
!!!Option simple @@padding:0 5px;border:1px solid crimson; EDIT - apparently neither utf-8 nor unicode necessarily display consistently in different browsers. You'll have to test. BTW, this is why I settled on the ugly 🔳 🔲 for default... @@ direct copy paste utf-8 or [[unicode|http://www.fileformat.info/info/unicode/index.htm]] characters, e.g: ▣ ▢ ⬛ ⬜ 🔳 🔲 ✅ ❎ ❌ ☑ ☐ ✔ ✘ ⦿ ⦾ ◉ ◎ ◄ ► 🙁 🙂 ❓ ❔ ❗ ❕ ✉ ℹ ☎ 📆 📅 📧 💬 📞 📠 Ⓜ © ® ™ 🎨 👉 🔒 🔓 ⚠ For unicode characters, you can ensure they show properly by using their code numbers rewritten like so: Principe de ré-écriture: <div class="pretty"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> `U+number` ...réécrit en... `&#xnumber;` (ne pas oublier le `x` ni le `;` de fin) </div> Exemples: |Unicode|Ré-écriture|Icône| |`U+2612`|`☒`| ☒ | |`U+1F601`|`😁`| 😁 | |`U+27A1`|`➡`| ➡ | |`U+260E`|`☎`| ☎ | |`U+2709`|`✉`| ✉ | |`U+2139`|`ℹ`| ℹ | |`U+1F4C5`|`📅`| 📅 | |`U+1F4C6`|`📆`| 📆 | |`U+1F4DE`|`📞`| 📞 | |`U+1F4E0`|`📠`| 📠 | |`U+1F4E7`|`📧`| 📧 | |`U+1F4AC`|`💬`| 💬 | |`U+24C2`|`Ⓜ`| Ⓜ | |`U+00A9`|`©`| © | |`U+00AE`|`®`| ® | |`U+2122`|`™`| ™ | |`U+1F3A8`|`🎨`| 🎨 | |`U+1F449`|`👉`| 👉 | |`U+1F512`|`🔒`| 🔒 | |`U+1F513`|`🔓`| 🔓 | See more graphic unicodes [[here|http://apps.timwhitlock.info/emoji/tables/unicode]] ;Voir également le site https://graphemica.com/ !!!Pas de limites dans la fantaisie Use ''real images'' like native [[core images|Core image gallery]] or imported icons. For example this toggle: <<toggle Foo "" "" {{$:/core/images/preview-closed}} {{$:/core/images/preview-open}}>><br> ...is created by: <br> `<<toggle Foo "" "" {{$:/core/images/preview-closed}} {{$:/core/images/preview-open}}>>` Note the syntax; arguments in position 2 and 3 are for on-/off-values and the images must be in position 4 and 5. By writing `""` (two double quotes) for position 2 and 3 the macro uses the default on-/off-values (ie. true/false). !!!Voir aussi Matabeles wonderful work with icons, emojis and, while at it, his toggle stuff using list operations that lets you cycle between multiple icons and toggle values. ✨ = U+2728 = ✨ U+27A1 = ➡
PmWiki is a wiki-based content management system (CMS) for collaborative creation and maintenance of websites. basé sur php 4.3 et ultérieurs.
!Un formulaire pour ajouter un tiddler Lu sur le forum : https://groups.google.com/forum/#!topic/TiddlyWiki/GHrWuZAQIN8 <i class="fa fa-external-link-square" style="color:#60B643"></i> !!Démonstration {{NewUser}} !!Code Le code initial partagé par Stephan Hradek à insérer dans un tiddler : ``` \define theTiddler() $(the_tiddler)$!!title |!Username |<$edit-text tiddler="$:/temp/newuser" placeholder="username" tag="input" type="text"/> | |!First Name |<$edit-text tiddler="$:/temp/newuser" field="firstname" placeholder="first name" tag="input" type="text"/> | |!Last Name |<$edit-text tiddler="$:/temp/newuser" field="lastname" placeholder="last name" tag="input" type="text"/> | |!E-Mail |<$edit-text tiddler="$:/temp/newuser" field="email" placeholder="e-mail address" tag="input" type="text"/> | |!sometags |<$checkbox tiddler="$:/temp/newuser" tag="Admin"> Admin</$checkbox><br/><$checkbox tiddler="$:/temp/newuser" tag="cron"> cron</$checkbox><br/><$checkbox tiddler="$:/temp/newuser" tag="www"> www</$checkbox> | <$reveal type="nomatch" text="" state="$:/temp/newuser"> <$reveal type="match" text={{$:/temp/newuser}} state={{$:/temp/newuser}}> <$button set="$:/temp/newuser!!title" setTo={{$:/temp/newuser}}> Modify </$button> <$set name="the_tiddler" value={{$:/temp/newuser}}> <$button setTo="$:/temp/newuser" set=<<theTiddler>>> Fetch </$button> </$set> </$reveal> <$reveal type="match" text="" state={{$:/temp/newuser}}> <$button set="$:/temp/newuser!!title" setTo={{$:/temp/newuser}}> Create </$button> </$reveal> </$reveal> <$button message="tm-delete-tiddler" param="$:/temp/newuser">Clear</$button> ``` !!Exploiter les données Poursuivez votre lecture avec ListeEmail pour savoir comment chercher et filtrer les champs personnalisés et ainsi connaître par exemple la liste des adresses e-mails enregistrées : <$list filter="[!has[draft.of]tag[ListeDiffusion]!is[system]sort[created]]"> <$view field="_email"/><br /> </$list>
Ceci est le tiddler PopUp appelé depuis le tiddler [[Bouton pour ouvrir une fenêtre PopUp|PopUpButtonDoc]]
{{PopUpButton||caption}}
Pour créer une fenêtre ~PopUp à partir d'un tiddler (le présent Tiddler en l'occurence) ; Le code: ``` <$button message="tm-open-window" param="PopUp" tooltip="Mon bouton PopUp" aria-label="Help">Ma ~PopUp</$button> ``` ; Soit: <$button message="tm-open-window" param="PopUp" tooltip="Mon bouton PopUp" aria-label="Help">Ma ~PopUp</$button> Voir aussi [[Fenêtre modale]] pour un popup avec bouton de fermeture.
{{PopUpSliders||caption}}
Source: http://tobibeer.github.io/tw5-plugins/#Welcome Il faut au préalable charger le plugin widget Appear, $:/plugins/tobibeer/appear This plugin provides the $appear widget that can render popups and sliders (inline or block) as well as accordion menus. Comprend les Shadows Tiddlers suivants: *$:/plugins/tobibeer/appear/defaults/button-class *$:/plugins/tobibeer/appear/defaults/default-state *$:/plugins/tobibeer/appear/defaults/keep *$:/plugins/tobibeer/appear/defaults/mode *$:/plugins/tobibeer/appear/defaults/show *$:/plugins/tobibeer/appear/popup.js *$:/plugins/tobibeer/appear/readme *$:/plugins/tobibeer/appear/styles *$:/plugins/tobibeer/appear/widget.js
``` before <$appear mode="block">text</$appear> after ``` <<< before <$appear mode="block">text</$appear> after <<< ``` before <$appear mode="inline">text</$appear> after ``` <<< before <$appear mode="inline">text</$appear> after <<< ``` before <$appear mode="custom">text</$appear> after ``` <<< before <$appear mode="custom">text</$appear> after <<< ``` before <$appear $state="none">text</$appear> after ``` <<< before <$appear $state="none">text</$appear> after <<< ``` before <$appear> ! Some Heading Some more text.</$appear> after ``` <<< before <$appear> ! Some Heading Some more text.</$appear> after <<< ``` before <$appear type="popup"> ! I Am Sticky Clicking anywhere outside will close me.</$appear> after ``` <<< before <$appear type="popup"> ! I Am Sticky Clicking anywhere outside will close me.</$appear> after <<< ``` before <$appear type="popup" keep="no" $state="sticky"> ! Non-Sticky Popup I will close as well when you click inside me.</$appear> after ``` <<< before <$appear type="popup" keep="no" $state="sticky"> ! Non-Sticky Popup I will close as well when you click inside me.</$appear> after <<< ``` <$appear type="popup" $state="click" show="click"> <$appear type="popup" $state="again" show="again"> <$appear type="popup" $state="once more" show="once more" style="width:600px"> {{Start here}} </$appear> </$appear> </$appear> ``` <<< <$appear type="popup" $state="click" show="click"> <$appear type="popup" $state="again" show="again"> <$appear type="popup" $state="once more" show="once more" style="width:600px"> {{Start here}} </$appear> </$appear> </$appear> <<< ``` before <$appear show="slide down" $state="slider-button"> ! Sliding Some content for you.</$appear> after ``` <<< before <$appear show="slide down" $state="slider-button"> ! Sliding Some content for you.</$appear> after <<< ``` before <$appear show="slide down" $state="pink-button" selectedClass="pink"> ! Sliding Some content for you.</$appear> after ``` <<< before <$appear show="slide down" $state="pink-button" selectedClass="pink"> ! Sliding Some content for you.</$appear> after <<< ``` before <$appear hide="«" mode="inline" $state="inline">//I will be shown inline.//</$appear> after ``` <<< before <$appear hide="«" mode="inline" $state="inline">//I will be shown inline.//</$appear> after <<< ``` before <$appear hide="«" $state="block">//I will be shown as a block.//</$appear> after ``` <<< before <$appear hide="«" $state="block">//I will be shown as a block.//</$appear> after <<< ``` before <$appear hide="«" mode="custom" $state="custom-block">//And I am a "plain block".//</$appear> after ``` <<< before <$appear hide="«" mode="custom" $state="custom-block">//And I am a "plain block".//</$appear> after <<< ``` before <$appear once mode="inline" $state="inline-once">//I am text, and you cannot hide me once you see me.//</$appear> after ``` <<< before <$appear once mode="inline" $state="inline-once">//I am text, and you cannot hide me once you see me.//</$appear> after <<< ``` before <$appear show="open {{$:/core/images/chevron-right}}" hide="{{$:/core/images/chevron-left}} close" $state="image-buttons"> ! Image Buttons Look real nice.</$appear> after ``` <<< before <$appear show="open {{$:/core/images/chevron-right}}" hide="{{$:/core/images/chevron-left}} close" $state="image-buttons"> ! Image Buttons Look real nice.</$appear> after <<< ``` before <$appear show="open popup" type=popup $state="popup-button"> ! Popups Buttons Can be customized just as well.</$appear> after ``` <<< before <$appear show="open popup" type=popup $state="popup-button"> ! Popups Buttons Can be customized just as well.</$appear> after <<< ``` <$vars tid="GettingStarted"> <$appear show="<$text text=<<tid>>/>" $state="tiddler-slider" mode="block"> <$transclude mode="block" tiddler=<<tid>>/> </$appear> </$vars> ``` <<< <$vars tid="GettingStarted"> <$appear show="<$text text=<<tid>>/>" $state="tiddler-slider" mode="block"> <$transclude mode="block" tiddler=<<tid>>/> </$appear> </$vars> <<< ``` before <$appear type="popup" $state="list-popup" class="tc-popup-keep"> {{{[prefix[Tuto]sort[title]]}}} </$appear> after ``` <<< before <$appear type="popup" $state="list-popup" class="tc-popup-keep"> {{{[prefix[Tuto]sort[title]]}}} </$appear> after <<<
""" http://ooktech.com/jed/ExampleWikis/ (A searchable listing of my stuff) http://ooktech.com/jed/externalbrain/#Dashboard __''~TiddlyWikiR: Create dynamic reports using a ~TiddlyWiki template''__ https://rdrr.io/cran/TiddlyWikiR/ __''Gérer les feuilles de style''__ http://tobibeer.github.io/tw/style/#GettingStarted __''Gérer des filtres''__ http://tobibeer.github.io/tw/filters/#Filter%20Examples __''Thème TW5 -> Classique''__ http://bc.classic.tiddlyspot.com/ Un thème TW5 qui ressemble au TW Classic __''A mobile friendly theme''__ http://ooktech.com/jed/ExampleWikis/NewBrainTest/ On se rapproche du full blank theme. Et on a Top, Left, Right et Bottom __''Utiliser ~FontAwsome''__ http://tobibeer.github.io/tw/fa/# Le plugin est installé sur ce wiki. Explications, installation et fonctionnement du plugin. __''Des idées pour des fonds en CSS''__ CSS3 Patterns Gallery a handful modern background patterns using css3 http://lea.verou.me/css3patterns __''Des codes couleurs complémentaires''__ http://www.code-couleur.com/ Pour modifier harmonieusement les couleurs de fond de ce site __''Brain Test''__ http://braintest.tiddlyspot.com/ Macros et Plugins. Voir notamment "Inline editable tables", utile pour mon application comptabilité Danielo Rodriguez . ''Il y a un problème, peut être de compatibilité à l'installation.'' __''TW5 Hacks''__ https://tid.li/tw5/hacks.html Quick Extensions for TiddlyWiki 5 – sometimes they come without much documentation. From hacker to hacker. Macros, Template, StyleSheets __''Dynamic Tables + Contact''__ http://ooktech.com/jed/ExampleWikis/DynamicTables/ Each column is a tiddler, rows are fields Emfin des tables dynamiques. Fonctionne parfaitement ici. Voir Tag "dtable" http://ooktech.com/TiddlyWiki/Contacts/ Contact demo. Dépasse le cadre du simple formulaire __''xlsx-utils''__ http://tiddlywiki.com/prerelease/editions/xlsx-utils/ A demo of the xlsx-utils plugin for TiddlyWiki. (version 5.1.15-prerelease) __''tw5visjs Demo ''__ http://emkayonline.github.io/tw5visjs/ Timeline Widget et Graph Widget (Je n'arrive pas à importer ce TiddlyWiki car pas de recherche avancée. version 5.0.9-prerelease) __''Plugins by tobibeer''__ http://tobibeer.github.io/tw5-plugins/#Welcome Appear, Contain, Count, dict, Dom, Escape, Eval, External, Filter, hash, Inc, Join, Make, Math.js, PlantUML, Preview, Random, Rate, Setvars, Sparkl, Split, Sysinfo, Toc, Value, Xlist, __''TidMarks 1.0.1''__ http://giffmex.org/experiments/tidmarks.html Bookmarking with TidMarks __''David Gifford''__ http://www.giffmex.org/experiments/mente.html# Une méthode pour exporter tous les Tiddlers __''is Operator (Examples)''__ http://tiddlywiki.com/#is%20Operator%20(Examples) Lister les tags avec l'opérateur is __''Put a Google Calendar into the Sidebar''__ http://blog.jeffreykishner.com/2014/01/29/how-to-put-a-google-calendar-into-the-tiddlywiki5-sidebar.html Can not see it from my actual pale, but maybe useful later on __''ToDoNow Installation''__ https://tid.li/tw5/plugins.html#ToDoNow%20Installation Plusieurs procédés pour des todo listes __''Sample Static Blog''__ http://welford.github.io/static-sample/blog/ Et la présentation: http://www.phasersonkill.com/2015/04/23/creating-a-static-webpage-using-tiddlywiki.html. Projet intéressant concernant l'export des tiddlers individuels où chaque tidddler devient un fichier HTML. Revient aussi la question du référencement. __''PhotoGallery''__ http://ooktech.com/jed/ExampleWikis/PhotoGallery/ making and managing photo galleries in TiddlyWiki __''Un autre site basé sur TiddlyOueb''__ http://natura-lien.fr/ __''QCM Questions à choix multiples''__ http://ooktech.com/jed/ExampleWikis/Oppiaish%20Thing/ Intéressant pour les cours de comptabilité __''Ajout d'une tag map dans panneau info des tiddlers''__ https://wikilabs.github.io/editions/info-tagmap/ __''TWaddle Plugin commentaires utilisant Google Drive 'Forms'''__ http://twaddle.tiddlyspot.com/#Comments%20using%20Google%20Drive%20'Forms':%5B%5BComments%20using%20Google%20Drive%20'Forms'%5D%5D%20TWaddle Module de commentaire. Il faut avoir un compte google (Si on utilise GMail, alors on a un compte Google. __''Double clic pour éditer un tiddler''__ https://danielorodriguez.com/TW5-2click2edit/ """ [ ] Cette page est à dispatcher puis à supprimer.
Un pragma est un composant spécial de WikiText qui permet de contrôler la façon dont la suite du texte est analysée. Les Pragmas occupent les lignes débutants par `\`. Ils peuvent juste prendre place au début d'un texte, mais des lignes vides sont permises entre eux. Si un pragma apparaît dans le corps principal d'un texte, il est considéré comme du texte ordinaire. Dans TiddlyWiki, il en existe quatre: ;`\define` : définit une [[macro|Macros]] ;`\rules` : permet d'ajuster l'ensemble des règles d'analyse d'un texte (ex. \rules except bold dash) ;`\whitespace trim ou \whitespace notrim` :gère les espaces blancs ;`\import <filter-expression>` :pour importer des définitions de macro identifiées par une expression de filtre La programmation est difficile. En fait, tout ce qui est technique est intrinsèquement difficile. Ceci étant dit, voici un bref mémo expliquant ce que "pragma" signifie dans le monde des langages de programmation. "Pragma" est un raccourcis signifiant "informations pragmatiques". Simple non ?. En langage clair, pragmatique est un adjectif qui signifie raisonnable et pratique. Dans la programmation, "pragma" fait référence à: *<i class="fa fa-arrow-right"></i> Le code qui contient des informations utiles sur la façon dont un compilateur ou un interpréteur ou un assembleur doit traiter le programme *<i class="fa fa-arrow-right"></i> "pragma" ne contribue en rien au langage de programmation lui-même *<i class="fa fa-arrow-right"></i> "pragma" affecte uniquement le comportement du compilateur *<i class="fa fa-arrow-right"></i> la syntaxe de "pragma" peut varier. JavaScript a également quelques "pragmas", l'un d'eux étant "strict". `'use strict';` Par le "pragma" ci-dessus, le code JavaScript sera exécuté en mode strict. En mode strict, la mauvaise syntaxe n'est pas autorisée. Ave cette instruction, les erreurs silencieuses sont affichées, etc. Il aide à écrire un code JavaScript plus sécurisé et optimisé.
<<doc>> #Prenez le temps de passer en revue les [[fonctions de paramétrages principales|Paramètres]]. #Vous pouvez également [[choisir l'un des templates pré-paramétrés|$:/TemplatePreSet]]. #[[Créez vos premiers menus|$:/ButtonNewMenu]]
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#Previous">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2017" "10" "">> <<diary "2017" "11" "">> <<diary "2017" "12" "">> <!-- [img height="10" [$:/images/shim.gif]] --><!-- fill rest of tiddler to match picture height -->
!HTML ``` <div id="example-table"></div> ``` !!JavaScript |`var table = new Tabulator("#example-table", {`|| |`data:tabledata,`|load row data from array| |`layout:"fitColumns",`|fit columns to width of table| |`responsiveLayout:"hide",`|hide columns that dont fit on the table| |`tooltips:true,`|show tool tips on cells| |`addRowPos:"top",`|when adding a new row, add it to the top of the table| |`history:true,`|allow undo and redo actions on the table| |`pagination:"local",`|paginate the data| |`paginationSize:7,`|allow 7 rows per page of data| |`movableColumns:true,`|allow column order to be changed| |`resizableRows:true,`|allow row order to be changed| |`initialSort:[`|set the initial sort order of the data| |`{column:"name", dir:"asc"},`|| |`],`|| |`columns:[`|define the table columns| |`{title:"Name", field:"name", editor:"input"},`|| |`{title:"Task Progress", field:"progress", align:"left", formatter:"progress", editor:true},`|| |`{title:"Gender", field:"gender", width:95, editor:"select", editorParams:{values:["male", "female"]}},`|| |`{title:"Rating", field:"rating", formatter:"star", align:"center", width:100, editor:true},`|| |`{title:"Color", field:"col", width:130, editor:"input"},`|| |`{title:"Date Of Birth", field:"dob", width:130, sorter:"date", align:"center"},`|| |`{title:"Driver", field:"car", width:90, align:"center", formatter:"tickCross", sorter:"boolean", editor:true},`|| |`],`|| |`});`||
celsiusToFahrenheit Conversion de température de Celsius vers Fahrenheit. On suit la formule de conversion F = 1.8C + 32. Code JavaScript: ``` const celsiusToFahrenheit = degrees => 1.8 * degrees + 32; ``` Utilisation ``` celsiusToFahrenheit(33) // 91.4 ``` ;Intégration du code Js dans TW5
Tout ce qui est codé dans la ``` (function(){ })(); ``` est du javascript et permet d’exposer le code dans le tiddler par une syntaxe propre à TW5 : ``` <<NomFonction Params...>> ``` Bien qu’écrit en JS, les 3 exports : ``` exports.name = “”; exports.params = []; exports.run = function() {} ``` sont nécessaires pour dialoguer avec TW5 et constitue un point d’entrée.
[[Source|http://www.softwaregarden.com/products/wikicalc/socialcalc/EngineDoc-8.html]] *Revision 8, 17 July 2007 *Originally authored by Dan Bricklin This document explains the SocialCalc Engine. It starts with an overview of the main routines and data structures, and then dives into the major routines, explaining their functionality and the related routines. It includes sample data and code. The main files for the SocialCalc Engine are DataFiles.pm, SheetFunctions.pm, and Sheet.pm. They are in the /lib/SocialCalc directory. DataFiles.pm is mainly used to support the actual reading, writing, and listing of files, and the operations on the data file tree maintained by SocialCalc. It relates to uploading the files to servers, maintaining a list of users, etc. Many implementations of spreadsheet functionality can be created without need for this module. The actual encoding and decoding of the spreadsheet data into files is performed by other modules. DataFiles.pm is not discussed further in this document. The spreadsheet formula functions, such as SUM, COUNT, IRR, SIN, and COS, are provided by the routines in SheetFunctions.pm. The definition of the functions tries to follow the computational specification for those functions in the Open Formula Format of the Open Document Format for Office Applications (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office-formula). Most of the rest of the code to implement the main internal functionality of a spreadsheet are in Sheet.pm. This functionality includes the parsing and creating of save format data, sheet manipulation commands, rendering, and recalculation. Understanding %sheetdata -- the key data structure Sheet.pm is most concerned with the in-memory representation of a spreadsheet. This data is stored in the form of a single hash, usually called %sheetdata (or something similar if there is more than one instance). %sheetdata holds the associated data for a single 2-dimensional grid of cells. Understanding how the cell data is stored in %sheetdata is key to understanding the operation of many of the routines in Sheet.pm, so we will cover it first. (A detailed specification of the structure of %sheetdata is in the comments at the beginning of the parse_sheet_save function.) The main data in %sheetdata are the cell contents and attributes, global attribute values, named range information, a "clipboard" holding copies of cell data, and miscellaneous flags such as error indications and the "recalculation needed" flag. For efficiency reasons, some of the attribute values in %sheetdata are stored as index numbers into an array. Those arrays and their full values are also stored in %sheetdata. Cell information is addressed by cell coordinates, specified as strings in the normal "A1", "B7" form. Within %sheetdata there are separate hashes for each defined cell's datatype, formula, datavalue, and valuetype. The datatype specifies how to interpret the other values, and is either "v" (plain numeric value), "t" (text value), "f" (formula), or "c" (constant). The formula is the text of the cell's formula (without the leading "=") if the cell's datatype is "f", it is the text of a "constant" if the datatype is "c", and not present if the datatype is "t" (text) or "v" (plain numeric value). The datavalue is the cell's current value, either calculated using the formula, converted from the "constant" form, or just a value input by itself. This is the value that is used in calculation and for input to the formatting process for display. The normal Perl issues with strings vs. binary numeric values apply to this value. The cell's valuetype indicates the type of the datavalue. It consists of one or more characters. The first character is "n" for numeric values, "t" for text, "e" for error, etc. The second and following characters, if present, are the sub-type. For example, "nl" is a logical numeric value, "nd" is a date numeric value, and "e#NAME?" is a specific error value of "#NAME?". For formulas, the valuetype is determined as part of the calculation process. For example, adding a date to a time results in a datetime value (type "ndt"). (This determination is sometimes made using the lookup_result_type function in Sheet.pm.) "Constants" are values that are typed in using some formatting, such as a trailing "%" for a percent value or with embedded slashes for a date value, and such that you would want to preserve that exact text for use when presenting the cell contents for editing but that text cannot be used directly for calculation. For example, a cell might have "15%" as the text that was typed in to the formula bar. It would be stored as datatype of "c", formula of "15%, datavalue of ".15", and valuetype of "n%". Within %sheetdata there is a cellattribs hash which contains a hash for each defined cell, accessed by cell coordinate. The formatting attributes are specified by key/value pairs within this hash. If the coord key exists, then the cell is considered non-blank, meaning it may have attributes set or a non-empty value. (In a spreadsheet, a cell may be "blank" but have formatting that will apply when a future value is typed into the cell.) As an example, here is a simple spreadsheet with four cells: A1, A2, B1, and B2. Cell A1 has the bold text "Value:" and cell B2 has the bold text "Square root:". Column A is set explicitly to 120 pixels wide. Cell B1 contains just the number 9. Cell B2 contains a formula that computes the square root of the contents of cell B1. Here are the respective values in %sheetdata: $sheetdata{datatypes}->{A1} = "t" $sheetdata{datavalues}->{A1} = "Value:" $sheetdata{valuetypes}->{A1} = "t" $sheetdata{cellattribs}->{A1}->{coord} = "A1" $sheetdata{cellattribs}->{A1}->{font} = 1 $sheetdata{datatypes}->{A2} = "t" $sheetdata{datavalues}->{A2} = "Square root:" $sheetdata{valuetypes}->{A2} = "t" $sheetdata{cellattribs}->{A2}->{coord} = "A2" $sheetdata{cellattribs}->{A2}->{font} = 1 $sheetdata{datatypes}->{B1} = "v" $sheetdata{datavalues}->{B1} = 9 $sheetdata{valuetypes}->{B1} = "n" $sheetdata{cellattribs}->{B1}->{coord} = "B1" $sheetdata{datatypes}->{B2} = "f" $sheetdata{formulas}->{B2} = "SQRT(B1)" $sheetdata{datavalues}->{B2} = 3 $sheetdata{valuetypes}->{B2} = "n" $sheetdata{cellattribs}->{B2}->{coord} = "B2" $sheetdata{colattribs}->{A}->{width} = 120 $sheetdata{fonts}->[1] = "normal bold * *" $sheetdata{fonthash}->{"normal bold * *"} = 1 $sheetdata{sheetattribs}->{lastrow} = 2 $sheetdata{sheetattribs}->{lastcol} = 2 Saving and loading %sheetdata The data in %sheetdata can be rendered into a save file format using the create_sheet_save routine. This takes a reference to %sheetdata as an argument and returns a string with that data in a save format. The string consists of multiple lines, each in the general format of "linetype:param1:param2..." The specific format is documented in the comments at the beginning of the parse_sheet_save routine. The text is all 8-bit bytes, with UTF-8 characters taking up multiple bytes as necessary. This seemed to work best with various modules used for input/output, etc. (During formula evaluation strings with multi-byte characters are treated as UTF-8 encoding so that comparisons and length operations are handled correctly.) The example spreadsheet used above would produce the following string: version:1.3 cell:A1:t:Value\c:f:1 cell:B1:v:9 cell:A2:t:Square root\c:f:1 cell:B2:vtf:n:3:SQRT(B1) col:A:w:120 sheet:r:2:c:2 font:1:normal bold * * Note that there are escape sequences (using backslashes) for backslash, colon, and newline (\\, \c, and \n, respectively). The escape encoding is done using the encode_for_save function (with decoding done using the decode_from_save function). Data in save file format can be parsed using the parse_sheet_save routine. This routine takes a reference to an array of lines of characters (such as from reading a saved file) and a reference to a %sheetdata hash. It initializes %sheetdata to empty and then fills it in as it parses each line. Return characters are ignored, so you can edit the data with something like Notepad on a Windows system. Overview of the other main routines in Sheet.pm There are three other main routines in Sheet.pm. They will be described in more detail later. The first routine is execute_sheet_command which manipulates %sheetdata in response to human-readable command strings. It is used to set and change cell contents, insert and delete rows and columns, copy/cut/paste, etc. The second routine is recalc_sheet. It executes the formulas in all the cells to calculate new values. It is usually invoked after use of execute_sheet_command. The last routine is render_sheet. It renders the entire sheet into HTML for displaying in a browser. It has a variety of options, such as for rendering with or without the grid visible. A simple testbed to show the main routines Here is a simple Perl program, simplesheet1.pl, that can act as a testbed and as an illustration of the use of various routines in Sheet.pm. It is meant to be used in response to a CGI request with a web server. It should be installed in a directory with a sub-directory of "SocialCalc" containing Sheet.pm, SheetFunctions.pm, and Strings.pm from the /lib/SocialCalc directory in the distribution. The program implements a simple system that: Receives the definition of a spreadsheet in the save data format Parses that data with parse_sheet_save Executes any commands using execute_sheet_command Recalculates the sheet's cell values using recalc_sheet Renders the sheet into HTML using render_sheet Creates updated save data using create_sheet_save Here is the code: --- Start source of simplesheet1.pl --- #!/usr/bin/perl use strict; use SocialCalc::Sheet; use SocialCalc::SheetFunctions; use SocialCalc::Strings; use CGI qw(:standard); my %sheetdata; my $q = new CGI; my @lines = split(/\n/,$q->param("savestr")); parse_sheet_save(\@lines, \%sheetdata); my $command = $q->param("command"); if ($command) { execute_sheet_command(\%sheetdata, $command); } recalc_sheet(\%sheetdata); my ($stylestr, $outstr) = render_sheet(\%sheetdata, "", "", "s", "a", "inline", "", "", ""); my $savestr = create_sheet_save(\%sheetdata); print <<"EOF"; Content-type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Simple Spreadsheet System</title> </head> <body> <h2>SIMPLE SPREADSHEET SYSTEM</h2> <h3>Rendered Sheet:</h3><hr> $outstr <hr> <form action="" method="POST"> <h3>Command:</h3> <input type="text" name="command" value="" size="60"> <h3>Saved Data:</h3> <textarea name="savestr" rows="7" cols="60">$savestr</textarea> <br><br> <input type="submit" name="render" value="Execute and Render"> </form> </body> </html> EOF --- End source of simplesheet1.pl --- When invoked using a browser, this script should display an empty rendered sheet, an input field for a command, a text area labeled "Saved Data" displaying the save format data for the empty sheet, and a button labeled "Execute and Render". To load a more interesting spreadsheet, namely our example, copy the following into the Saved Data text area: version:1.3 cell:A1:t:Value\c:f:1 cell:B1:v:9 cell:A2:t:Square root\c:f:1 cell:B2:vtf:n:3:SQRT(B1) col:A:w:120 sheet:r:2:c:2 font:1:normal bold * * If you then press the button the page should repaint with the appropriate rendered sheet. If you type a command into the command input field, such as "set B1 value n 25", and then press the button, you will see the updated sheet and save data. There is a list of various commands in the comments associated with the execute_sheet_command routine. This program implements a "stateless" spreadsheet editing system. The program running on the server does not remember anything between invocations. All of the information comes from forms sent with the request and then populated with updated information in the response. The clipboard Each spreadsheet (i.e., one 2-dimensional grid) has a clipboard associated with it. When a range of one or more cells are copied or cut, the contents of the cells (attributes, values, formulas, etc.) are copied into similar hashes in %sheetdata{clipboard}, such as %sheetdata{clipboard}->{datavalues}. The coordinates of the range where the clipboard contents came from (e.g., "E7:G9") are saved in %sheetdata{clipboard}->{range}. In order to use those values in other spreadsheets, the references to fonts and other attributes stored as indexes into arrays needs to be normalized appropriately. This is done by App::SocialCalc::Commands::Tools::execute_tools_command in the code for loading from a sheet. Traditional GUI spreadsheets, such as Multiplan on the Mac (one of the first?) and Excel do not actually make copies of cells being copied/cut/pasted. Instead the range being selected is remembered (and shown with a moving dotted line). The actual copying is done without the need for a clipboard when the paste operation is done. This works well in a memory constrained system. In SocialCalc, though, the program actually makes a copy. The copied cells maintain their original cell coordinates in the copy. The saved range value helps the pasting code determine appropriate offsets. In a spreadsheet, relative cell references (e.g., the first cell reference in "=E20*$E$5" is relative, the second is absolute) need to be modified to point to cells in the same relative position in the pasted copy. This use of a sheet-specific clipboard, instead of a session-related clipboard, facilitates the creation of stateless interaction with regards to the server. Also, the clipboard survives communications disruptions and session breaks while editing. The execute_sheet_command routine Other than recalculation, most of the manipulations of %sheetdata are performed by the execute_sheet_command routine. This routine takes as arguments a reference to %sheetdata and a command string. The command string is in the form of "command-name param1 param2..." Commands include "set", "copy", "cut", "paste", "insertcol", and "sort". The list of commands and their format can be found by looking at the code. One command in particular is helpful for using the testbed: The set command. Some of the forms of this command are: "set coord value type numeric-value", "set coord text type text-value", and "set coord formula formula-body-less-initial-=". For example: "set B1 value n 25" and "set A3 text t More things..." The paste, fillright, filldown, and sort commands move cells from one place to another. They need to correctly handle relative cell references in formulas. This is done using the offset_formula_coords routine. That routine is given an offset that the new location is on the sheet from the original location of the formula. The offset is applied to a formula by first parsing the formula into tokens (explained later), fixing up appropriate cell references, and then recreating a text version of the formula. The insertcol, insertrow, deletecol, and deleterow commands need to modify all cell references that refer to cells that are moved by those operations. That is done using the adjust_formula_coords routine. This changes all cell references to cells that start at a specified row and column by specified offsets. In this case, even absolute references may be modified. This style of API, using human-readable command strings to effect changes to the sheet, was done for a variety of reasons. One is to make it easy to keep a log of changes to the sheet. This log could be used to start from a checkpoint and then run forward to simulate step-by-step changes. This could be used as a "poor man's undo", by stopping before the last step. Another reason is that this opens up a simple macro language. An "interactive console mode" is easily implemented, as we see with the simplesheet1.pl testbed. The render_sheet routine This routine is used to render the data in %sheetdata in HTML or other forms for display. It takes as arguments a reference to %sheetdata as well as several strings and a mode setting ($editmode). It returns $stylestr, a string containing the text for use within a <style> element, and $outstr, a string with the HTML for the <table> element representing the rendered spreadsheet. The $editmode may be any of the following: ajax, publish, embed, inline, or null (""). The ajax mode creates an HTML table that includes a visible grid between all the cells as well as row and column headers. The publish mode creates an HTML table with no grid, and the cssc values (explicit CSS class names) are used for cells that have one set instead of the one the cell would otherwise get. The embed mode creates lines of text formatted for use with /lib/App/SocialCalc.pm::create_embeddable_JS. The formats of $stylestr and $outstr make it easy for simple Javascript to create the HTML with explicit style information without needing to repeat the same long style strings that would normally be named styles in a style sheet. The inline mode produces HTML with all of the style information in the <td> tags instead of in stylesheet classes (except explicit cssc classes). This is similar to embed mode, except that the expansion has already been done. The null mode renders normal HTML without a grid, but without cssc used. The string parameters are $extratableattribs, $extratdattribs, $styleprefix, $anchorprefix, $editcoords, $onclickstr, and $linkstyle. The $extratableattribs and $extratdattribs are strings that are added (along with a leading space) to the <table> and <td> tags, respectively, generated by this routine. They can be used, for example, to add a class attribute to all cells or an ID to the table. The $styleprefix is added to a number assigned to each distinct style combination to create a CSS class name. If you have more than one sheet displayed on a page you can use this to distinguish among them. The default is "s". The $anchorsuffix is currently unused. It was originally to be used to provide an anchor tag at the beginning of each row for a non-Ajax editing system. This has been replaced by an ID tag on each row header. The $editcoords are the cell coordinates (e.g., "B9") for the cell with the edit cursor. It is used to set different CSS classes for the headers on that row and column and for that cell. The $onclickstr is a string that is added to each <td> tag. The characters "$coord" in the string are replaced by the cell coordinates for each cell. When publishing to the web this string is usually blank, and when editing maybe something like onclick="rc0('$coord');". The $linkstyle string is used by the wiki_page_command function that creates the link to other pages when rendering text using wiki-text formatting. In ajax mode (with the grid) an extra 10 rows are displayed past the maximum active rows. This gives some extra space for adding new data during editing. Otherwise, only as many rows and columns as the extent of the sheet are displayed. The render_sheet routine handles merged cells, creating appropriate colspan and rowspan attributes. It also tries to handle cell borders as well as possible. The spreadsheet model is of single borders between each cell on each side. The HTML model is of four borders on each cell, with two between each cell on each side. The <table> style "border-collapse:collapse" helps with this. Some browsers have issues with multiple settings for shared borders and the routine tries to only have one border actually set for each shared border. It also takes care of adding a thin gray dotted border between cells without borders when the grid is displayed. Rendering each cell involves looking at the explicit cell format settings as well as all the defaults to come up with the style setting. The style sets the font, borders, layout, etc., and ends up being expressed as a string of CSS settings. Each cell's value is formatted for display as determined by its valuetype. This formatting (i.e., currency symbols, thousands separators, number of digits to the right of the decimal point, etc.) is controlled at the highest level by the format_value_for_display function, which returns the formatted value as HTML. Text values are formatted using the format_text_for_display function. If an explicit format has not been set for this cell, this function looks to the sub-type (the characters after the "t" in the valuetype) of the value itself as a guide to which format to use. For example, valuetype "tw" would use the format "text-wiki" and "n%" would be displayed scaled by 1/100 with a trailing "%" character. Numeric values are formatted using the format_number_for_display function. This function takes as arguments the raw numeric value, the valuetype, and the format string. The format string is in the traditional spreadsheet style like "#,##0.0". If no format string is provided (or the string is "Auto") the valuetype is used to provide a default. Most of the actual work of number formatting is performed by the format_number_with_format_string function. This function takes as arguments a numeric value and a format string. (An optional third argument is now obsolete.) It returns a string with the formatted value as HTML. (While most of a final value is usually plain text, HTML tags are usually used for colors or links.) Format strings are in a form similar to that used by most other spreadsheets, such as Microsoft Excel or OpenOffice Calc. The current implementation does much of what Excel 2003 does, with a few extensions. The Excel Help text documents some of the specifics of number formatting in the "Create or delete custom number format" help item and OpenOffice Calc in "Number Format Codes". (Search for "custom number format" in Excel or on the web.) Not implemented are features such as "e" scientific format (you only get that in General format when Perl thinks you should), the plain "@" for text formatting, fractions ("/"), and the "*" repeat functionality (it always repeats the character 5 times). Added are the ability to have any number of sections with conditions (see below); [RED], etc., augmented with [style=css-style-spec] (e.g., [style=font-weight:bold;color:red]); and @r, @s, and @u for raw text, special characters escaped, and url-encoded text insertion. A good way to learn what Excel uses is to choose, in Excel, a specific pre-defined format and then click the "custom" category to see the format string for it. To see examples of what SocialCalc does, look at the share/socialcalc/definitions.txt file. The formatting starts by making sure that a parsed form of the format string is available in %format_defs. The parsing is done by parse_format_string, and that parsed form is kept around from cell to cell to save the parsing time since it is common for many cells to use the same format string. The parsed form consists of an array of operators and operands. The operators are numbers representing commands such as copy a character into the output, set the color, set the CSS style, insert an integer digit, insert a currency symbol, etc. The operands are the characters to copy, the color, etc. In the original text form, there may be multiple sections separated by semicolons. The sections can have an optional comparison to see if the value meets a particular condition to which that section's format should be applied, for example "[<=100]". If there are no comparisons, then the first section applies to positive numbers, the second to negative, and the third to zero values. The parsed form of the format string includes an array of hashes containing information about each section in the format string. In that hash is the start index in the operators and operands arrays for that section, the number of integer and fractional digits to be displayed, how many scaling commas were encountered (cause scaling by 1/1000), how many scaling % characters there were (cause scaling by 1/100 and display of a percent character), whether there should be a thousands separator in the result, and whether or not there are date/time placeholders in the format (the overhead of converting the raw value into date/time components is only done if the format includes date or time placeholders). The determine_value_type function The determine_value_type function takes a value as a string and uses a variety of algorithms to determine the type of value it represents and then returns that value along with a value type. It looks at extra characters, such as $, %, /, etc., and does tests with various regular expressions. The value forms that it handles try to follow the specification for the spreadsheet function VALUE(v). The render_values_only routine The Ajax interface to the SocialCalc Engine relies on Javascript in the browser to update the table rows and cells that make up the spreadsheet. The render_values_only routine is similar to the render_sheet routine, but instead of rendering to complete HTML <table>, <tr>, and <td> elements, it creates a %celldata hash that just has the display value for cells and some other values needed for updating the contents of cells. Major style information is not calculated, since that is assumed to be kept constant when only cell values are changed. A before and after copy of %celldata is created by the Ajax-response code for the request parameter ajaxsetcell in lib/App/SocialCalc.pm and only the changes are sent back to the browser. The recalc_sheet routine Formulas are recalculated by calling the recalc_sheet routine. This routine uses the simple algorithm of going through all of the cells in the spreadsheet with formulas and calling check_and_calc_cell on those cells in turn. The check_and_calc_cell routine keeps track of whether or not the cell being evaluated has already been recalculated. If it has, the routine just returns. If not, the routine parses the formula into tokens using the parse_formula_into_tokens routine. For each cell reference, including all cells in ranges, check_and_calc_cell calls itself with that cell coordinate as an argument, basically recursing down the formula cell reference tree. Checks are made to catch circular references. Once check_and_calc_cell has ensured that all cell references in a cell's formula have been recalculated, it calls the evaluate_parsed_formula routine to calculate the parsed formula's new value. This is a very simplistic algorithm. It breaks down with very large numbers of formulas that refer to each other resulting in very deep recursion, or with very large numbers of formulas that don't refer to each other and therefore don't need to be recalculated on every change. Future improvements could add facilities for more minimal recalculation and recursion-free operation. Parsing of a formula is done with the parse_formula_into_tokens routine. This takes as an argument the string making up the formula (with no leading "=") and returns a reference to a %parseinfo hash. The %parseinfo hash is filled with arrays for tokentext, tokentype, and tokenopcode. The tokentext is the characters that made up the token, e.g., "F22" or ">=". The tokentype is the type of token, e.g., $token_coord or $token_op. The tokenopcode is a single character version of operators, e.g., "+" or "G". Parsing is done using a simple state machine that looks at each character in turn. For example, if you call parse_formula_into_tokens with "20+4*3", you will get a reference to a %parseinfo hash with the following content (the text in parenthesis corresponds to $token_num and $token_op): %parseinfo->{tokentype}->[0]=1 (num), %parseinfo->{tokentext}->[0]=20 %parseinfo->{tokentype}->[1]=3 (op), %parseinfo->{tokentext}->[1]=+ %parseinfo->{tokentype}->[2]=1 (num), %parseinfo->{tokentext}->[2]=4 %parseinfo->{tokentype}->[3]=3 (op), %parseinfo->{tokentext}->[3]=* %parseinfo->{tokentype}->[4]=1 (num), %parseinfo->{tokentext}->[4]=3 The evaluate_parsed_formula routine The actual calculation of formulas is performed by the evaluate_parsed_formula routine. This routine first converts the parsed formula into reverse polish notation using a shunting yard algorithm. This is based on the algorithm found at the time it was written on Wikipedia. The precedence of various operators is specified in the @token_precedence array. The result of this conversion is an array @revpolish with indexes into the arrays of token text/type/opcodes in appropriate order for executing using a simple postfix evaluation algorithm. For example, if you call evaluate_parsed_formula with the %parseinfo data listed above it will first create a @revpolish array with the following values: $revpolish[0]=0 $revpolish[1]=2 $revpolish[2]=4 $revpolish[3]=3 $revpolish[4]=1 This corresponds to "20 4 3 * +" in reverse polish, and the following %parseinfo items, in order: %parseinfo->{tokentype}->[0]=1 (num), %parseinfo->{tokentext}->[0]=20 %parseinfo->{tokentype}->[2]=1 (num), %parseinfo->{tokentext}->[2]=4 %parseinfo->{tokentype}->[4]=1 (num), %parseinfo->{tokentext}->[4]=3 %parseinfo->{tokentype}->[3]=3 (op), %parseinfo->{tokentext}->[3]=* %parseinfo->{tokentype}->[1]=3 (op), %parseinfo->{tokentext}->[1]=+ The @revpolish array is then processed one element after another to do the calculation. This processing involves the major structure used during formula evaluation, the @operand stack. The @operand stack When evaluating a parsed formula by processing the elements in the @revpolish array tokens that represent operands are pushed onto the @operand stack. When an operator is encountered, its arguments are popped off the top of the @operand stack and used in the evaluation of the operation. The result is pushed onto the @operand stack. The format of the @operand stack is as follows: Each element of the stack is a reference to a hash with two items, type and value. The type indicates the type of operand and the value depends upon the type. Unlike traditional arithmetic expression formula evaluators, a spreadsheet formula has a very wide variety of special operand types and many operators make use of these different value types. The spreadsheet formula operator evaluation code usually has to check several special cases and can return a wide variety of value types. For example, after processing the first element of @revpolish in our example above, which would push the value "20" onto the stack, the @operand stack would look like this: $operand[0]->{type}=n, $operand[0]->{value}=20 After processing the next two elements, both also operand values, the stack would look like this: $operand[0]->{type}=n, $operand[0]->{value}=20 $operand[1]->{type}=n, $operand[1]->{value}=4 $operand[2]->{type}=n, $operand[2]->{value}=3 The next element in @revpolish is the infix operator "*". This operator takes two operands. It pops those two operands, the numeric values 3 and 4, off of the stack and then pushes the product, the numeric value 12, back on. The stack then looks like this: $operand[0]->{type}=n, $operand[0]->{value}=20 $operand[1]->{type}=n, $operand[1]->{value}=12 The next element in @revpolish is the infix operator "+" which works similarly to the "*" operator, resulting in the numeric value 32 being pushed onto the stack: $operand[0]->{type}=n, $operand[0]->{value}=32 With all of the elements in @revpolish processed, the single operand left on the stack is returned as the result of evaluate_parsed_formula, both as a value and as a type. There is some special code that checks for cases when the result is a special type such as a cell reference. The type values of operands on the @operand stack are a superset of the normal value types. Additional types include "coord", "range", and "start". The "coord" type indicates a cell reference in the form "coord" or "coord!sheetname" (e.g., "F8" and "F8!basesheet"). The "range" type indicates a range of cells in the form of "coord|coord|number". For example, "C5:D7" could be coded as "C5|D7|". The number starts out as a null string. When referenced cells are fetched one after another for use in processing an operator, the number is used to indicate the offset of the next item to fetch. This index is set and used by the step_through_range_up and step_through_range_down routines. Successive calls to those routines return the coordinates and optional sheet name of each cell in the range in turn, using the range type's number value to keep of which cell to return next. The "start" type indicates the start of arguments to a spreadsheet function, that is, it represents the "open parenthesis" that starts an argument list. This helps in the processing of spreadsheet functions that take a variable number of arguments. Fetching operands and evaluating operators In order to evaluate an operator, its operands must be popped off the stack, sometimes being converted into the data type needed by the operator. For example, the infix "+" operator needs two numeric values as operands. If an operand is a cell reference, such as D12, the value of that operand is found by fetching the value of cell D12. If the contents of that cell are empty, then the numeric value is treated as a zero. If it is a text value, then there has to be a determination if it can be converted to a numeric value using a spreadsheet's wide variety of numeric input forms, including dates and percents. If it cannot be converted, then a numeric value of zero is used for that operand. After the operation is performed, the resulting value and type are pushed on the stack. The determination of the type varies by operator and often depends upon the types of each of the operands. The lookup_result_type function is often used for this purpose. It takes as arguments the value types of two operands, and a reference to a hash containing mapping information. Based upon the major types (the first letter of the type value) and the sub-types (the characters following the first) it determines the result type. The %typelookup hash contains references to mapping hashes for many different types of operators. Some, like the $typelookup{plus}, the $typelookup{twoargument}, and $typelookup{oneargument) mappings, are used by many operators and spreadsheet functions, both in the Sheet.pm and SheetFunctions.pm modules. There are a number of routines that implement the operand fetching and conversion functions. They are also used in both the Sheet.pm and SheetFunctions.pm modules. The operand_value_and_type routine pops the top of the stack and returns it as a value and type. It is the main workhorse for getting values. If the operand is a cell reference, it follows that reference and returns the value of the referenced cell. If the cell is in another sheet, it looks to the sheet cache to find %sheetdata for that sheet. The sheet cache is accessed using the find_sheet_in_cache routine. If the operand is a range, this routine uses step_through_range_down to access successive cells in the range, starting in the upper left corner. Named cells and ranges are also expanded to access the specific cell(s). The routines operand_as_number and operand_as_text use operand_value_and_type to get a value and then coerce it appropriately into the desired type. There are other routines, such as operand_as_coord, for getting other types and for doing the special processing they require. The lookup_name routine takes a name string and returns a value and type. Names in SocialCalc can be just a coordinate (e.g., A1), a range (e.g., A1:B7), or a formula (e.g., "=INDEX(A1:B5,0,1)"). This routine evaluates the formula if it exists and then returns that value (which may be a range value). For coordinates and ranges it just returns either a coord or range value. Spreadsheet functions If, when processing the parsed formula, a function reference is encountered, the SocialCalc::SheetFunctions::calculate_function routine is used. This routine is called with arguments of the function name, a reference to the @operand stack, a reference to a string to hold error messages, a reference to the %typelookup hash, and a reference to %sheetdata. The calculate_function routine looks up the function name in the %function_list hash. This structure uses the function names as keys and an array of two items for each value. The first item in the array for each function is a reference to a function subroutine. The second item in the array is a number indicating the number of arguments used by that function. If the number is non-negative, it indicates the required number of arguments for that function. If the value is negative, the absolute value indicates the minimum number of argument required by that function. A value of -100 indicates that the number of arguments should not be checked. If the function name is not in the %function_list hash, it is assumed to be a name and returned as a "name" type. All of the function subroutines take the same argument list: the name of the function being invoked, a reference to the @operand stack, a reference to an @foperand function argument stack (see below), a reference to the error string variable, a reference to the %typelookup hash, and a reference to %sheetdata. The calculate_function routine uses Sheet::copy_function_args to copy the arguments (the operands starting at the top of the @operand stack down to the "start" item on the stack, which is discarded) onto the @foperand stack and pops them off of the @operand stack. The @foperand stack is in the reverse order of the @operand stack -- the left-most arguments to the function are at the top of the stack. The calculate_function routine then checks for errors in the number of arguments. Then it calls the function subroutine. Some of the function subroutines implement a single function, and many of them implement more than one. When done, they push the result onto the @operand stack and return. The definitions of what the functions are supposed to do can be found in the documentation of other spreadsheets and most importantly in the documentation of the Open Document Format for Office Applications (OpenDocument) Recalculated Formula (OpenFormula) Format (http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office-formula). The choice of functions to implement for version 1.0 of wikiCalc and SocialCalc 1.1.0 was the "Small Group" of functions listed in the OpenFormula document, plus four wikiCalc/SocialCalc-specific functions (WKC...) used to explore some of its capabilities, especially in a server-based environment. An example of a function routine As an example, we will look at the series_functions function routine. This routine implements many of the most common functions, such as SUM and COUNT, as well as others such as STDEV and VAR. It takes a variable number of arguments, either as values, cell references, or cell ranges. It goes through each value in turn, including those of all the cells in a range, and calculates the running "result". The computational overhead in this routine is accessing the values, especially for cell ranges, the most common use. Doing running calculations for all possible functions is not much more overhead. The series_functions routine goes through each element of @foperand and uses operand_value_and_type to retrieve a value for computation. The COUNT, COUNTA, and COUNTBLANK functions increment their counts depending upon the type of the values (i.e., COUNT only counts numeric values, COUNTA counts all non-blank values, and COUNTBLANK counts only blank values). If the value is numeric, a sum is accumulated, as is the product, the minimum and maximum value so far are checked for, and the accumulated values needed to compute the statistical functions are added to. A value type is determined as if there were addition after addition. After all elements have been processed, the appropriate value is pushed onto the @operand stack. Security There are many aspects to security when you have an active system like SocialCalc. If you deploy the product, and especially when you use it in configurations different than normal, you should pay attention to potential security violations. These include users being able to get the server to perform operations you may not have intended. One of the areas to be concerned about are the facilities for having the server access arbitrary URLs. This is mostly concentrated in the code for accessing other sheets (find_in_sheet_cache in Sheet.pm and the WKCHTTP function in SheetFunctions.pm). You may want to disable this functionality in simple deployments where they are not needed. For find_in_sheet_cache, remove the entire IF statement (and it's ELSE clause) with the comment "URL - USE HTTP GET" and replace it with just the assignment of "unable to load" to $loaderr. For the WKCHTTP function, just remove its entry from the %function_list. [END]
Contenu du Tiddler
Contenu du tiddler
*Multiwriter Peer-to-Peer ~TiddlyWikis: https://dat-tiddlywiki.glitch.me/ *Projet: https://docs.datproject.org/
{{Prolegomenes||caption}}
<div class="tc-alert tc-alert-info tc-toc-box"> <$link to="Prolégomènes">[img width=77 class="tc-float-right img-thumbnail" [Logo]]</$link> """ ''Prolégomènes:''<br/>World citizen<br/> ''Like:'' https://tiddlywiki.com<br/> ''Learn and enjoy:'' [[French Forum TiddlyWiki|https://forum.tiddlywiki.fr]]<br/> ''My Jobs:'' Accountant, Cost Controler.<br/> ''Ex-Libris:'' La jeunesse n'est pas un état, c'est un fait. """ </div>
""" .Propriétés{ background-color: ;<!-- color --> border: ; <!-- text --> border-bottom: ;<!-- text --> border-bottom-color: ;<!-- color --> border-bottom-style: ;<!-- text --> border-bottom-width: ;<!-- number --> border-left: ;<!-- text --> border-left-color: ;<!-- color --> border-left-style: ;<!-- text --> border-left-width: ;<!-- number --> border-radius: ;<!-- number --> border-right: ;<!-- text --> border-right-color: ;<!-- color --> border-right-style: ;<!-- text --> border-right-width: ;<!-- number --> border-top: ;<!-- text --> border-top-color: ;<!-- color --> border-top-style: ;<!-- text --> border-top-width: ;<!-- number --> border-width: ;<!-- number --> bottom: ;<!-- number --> color: ;<!-- color --> cursor: ;<!-- text --> display: ; <!-- block, inline-block --> fill: ;<!-- text --> font: ; <!-- text --> font-family: ; <!-- text --> font-size: ; <!-- number --> font-size-adjust: font-stretch: ;<!-- text --> font-style: ;<!-- text --> font-variant: ;<!-- text --> font-weight: ;<!-- text --> height: ; <!-- number --> left: ; <!-- number --> letter-spacing: ;<!-- number --> line-height: ; <!-- number --> margin: ;<!-- text --> margin-bottom: ;<!-- number --> margin-left: ;<!-- number --> margin-right: ;<!-- number --> margin-top: ;<!-- number --> max-height: ;<!-- number --> max-width: ;<!-- number --> min-height: ;<!-- number --> min-width: ;<!-- number --> overflow: ;<!-- text --> overflow-x: ;<!-- text --> overflow-y: ;<!-- text --> padding: <!--number, em px --> padding-left: <!--number, em px --> padding-right: <!--number, em px --> position: ;<!-- text --> right: ;<!-- number --> text-align: ;<!-- text --> text-align-last: ;<!-- text --> text-decoration: ;<!-- text --> text-indent: ;<!-- text --> text-rendering: ;<!-- optimizeLegibility --> text-shadow: ;<!-- text --> text-transform: ;<!-- text --> text-underline-position: top: ;<!-- number --> vertical-align: ; <!-- top --> visibility: ;<!-- text --> white-space: ;<!-- text --> width: ;<!-- number --> word-spacing: ;<!-- number --> word-wrap: ;<!-- text --> z-index: ;<!-- number --> } """
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "10" "">> <<diary "2018" "11" "">> <<diary "2018" "12" "">> <!-- [img height="10" [$:/images/shim.gif]] --><!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "10" "">> <<diary "2019" "11" "">> <<diary "2019" "12" "">> [img height="5" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "10" "">> <<diary "2020" "11" "">> <<diary "2020" "12" "">> [img height="0" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "10" "">> <<diary "2021" "11" "">> <<diary "2021" "12" "">> [img height="0" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "10" "">> <<diary "2022" "11" "">> <<diary "2022" "12" "">> [img height="0" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "10" "">> <<diary "2023" "11" "">> <<diary "2023" "12" "">> [img height="0" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#prv25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "10" "">> <<diary "2024" "11" "">> <<diary "2024" "12" "">> [img height="0" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i file-text 'x5'>> </div> </div> </div> @@ <<doc>> Finalement, soit l'on s'adresse aux seuls initiés en restant cantonné dans un espace restreint, ce qui n'est certainement pas la vocation de TW5, soit on s’adresse au potentiel énorme d’utilisateurs de tout horizon, qui ne maîtrisent pas les bases des métiers de l'informatique en général et des outils de développement en particulier, mais qui sont utilisateurs d'outils [ext[bureautique|https://fr.wikipedia.org/wiki/Bureautique]] classiques que sont les traitements de texte, les tableurs, les mails et les réseaux sociaux. Partant de ce postulat, il n'y a d'autre voie que de partir de zéro et de mener les futurs utilisateurs à la maîtrise de ~TiddlyWiki par étapes concrètes et successives. De là, deux branches sont possibles : La première, classique, entend ~TiddlyWiki comme étant un utilitaire comme un autre (et nous disposons de plugins visant à connecter ~TiddlyWiki à l'ensemble des outils standard du marché), la seconde amenant certains utilisateurs à considérer ~TiddlyWiki comme un outil sophistiqué mais accessible avec lequel ils pourront développer des solutions métier, personnelles ou partagées, leur permettant d'être plus performants dans le domaine qui est le leur.
Je ne sais pas si ceci est //réellement// "bot safe" à vous de décider. Voyez ceci: !{{!!myname}}@{{!!domain}} et le code utilisé...
Ce texte de Stéfane Fermigier date un peu, mais il reste d’actualité pour l’essentiel. Il est extrait d’un article paru dans le magazine Programmez! en décembre 1998. Il est également disponible sur http://www.linux-center.org/articles/9812/python.html. Stéfane Fermigier est le co-fondateur de l’AFUL (Association Francophone des Utilisateurs de Linux et des logiciels libres). Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l’imposer) une approche modulaire et orientée objet de la programmation. Python est développé depuis 1989 par Guido van Rossum et de nombreux contributeurs bénévoles. ;Caractéristiques du langage Détaillons un peu les principales caractéristiques de Python, plus précisément, du langage et de ses deux implantations actuelles : :<i class="fa fa-arrow-right"></i> Python est portable, non seulement sur les différentes variantes d’Unix, mais aussi sur les OS propriétaires : Mac OS, BeOS, NeXTStep, MS-DOS et les différentes variantes de Windows. Un nouveau compilateur, baptisé JPython, est écrit en Java et génère du bytecode Java. : <i class="fa fa-arrow-right"></i> Python est gratuit, mais on peut l’utiliser sans restriction dans des projets commerciaux. : <i class="fa fa-arrow-right"></i> Python convient aussi bien à des scripts d’une dizaine de lignes qu’à des projets complexes de plusieurs dizaines de milliers de lignes. :<i class="fa fa-arrow-right"></i> La syntaxe de Python est très simple et, combinée à des types de données évolués (listes, dictionnaires...), conduit à des programmes à la fois très compacts et très lisibles. À fonctionnalités égales, un programme Python (abondamment commenté et présenté selon les canons standards) est souvent de 3 à 5 fois plus court qu’un programme C ou C++ (ou même Java) équivalent, ce qui représente en général un temps de développement de 5 à 10 fois plus court et une facilité de maintenance largement accrue. : <i class="fa fa-arrow-right"></i> Python gère ses ressources (mémoire, descripteurs de fichiers...) sans intervention du programmeur, par un mécanisme de comptage de références (proche, mais différent, d’un garbage collector). :<i class="fa fa-arrow-right"></i> Il n’y a pas de pointeurs explicites en Python. : <i class="fa fa-arrow-right"></i> Python est (optionnellement) multi-threadé. : <i class="fa fa-arrow-right"></i> Python est orienté-objet. Il supporte l’héritage multiple et la surcharge des opérateurs. Dans son modèle objets, et en reprenant la terminologie de C++, toutes les méthodes sont virtuelles. : <i class="fa fa-arrow-right"></i> Python intègre, comme Java ou les versions récentes de C++, un système d’exceptions, qui permettent de simplifier considérablement la gestion des erreurs. : <i class="fa fa-arrow-right"></i> Python est dynamique (l’interpréteur peut évaluer des chaînes de caractères représentant des expressions ou des instructions Python), orthogonal (un petit nombre de concepts suffit à engendrer des constructions très riches), réflectif (il supporte la métaprogrammation, par exemple la capacité pour un objet de se rajouter ou de s’enlever des attributs ou des méthodes, ou même de changer de classe en cours d’exécution) et introspectif (un grand nombre d’outils de développement, comme le debugger ou le profiler, sont implantés en Python lui-même). : <i class="fa fa-arrow-right"></i> Comme Scheme ou ~SmallTalk, Python est dynamiquement typé. Tout objet manipulable par le programmeur possède un type bien défini à l’exécution, qui n’a pas besoin d’être déclaré à l’avance. : <i class="fa fa-arrow-right"></i> Python possède actuellement deux implémentations. L’une, interprétée, dans laquelle les programmes Python sont compilés en instructions portables, puis exécutés par une machine virtuelle (comme pour Java, avec une différence importante : Java étant statiquement typé, il est beaucoup plus facile d’accélérer l’exécution d’un programme Java que d’un programme Python). L’autre génère directement du bytecode Java. : <i class="fa fa-arrow-right"></i> Python est extensible : comme Tcl ou Guile, on peut facilement l’interfacer avec des bibliothèques C existantes. On peut aussi s’en servir comme d’un langage d’extension pour des systèmes logiciels complexes. :<i class="fa fa-arrow-right"></i> La bibliothèque standard de Python, et les paquetages contribués, donnent accès à une grande variété de services : chaînes de caractères et expressions régulières, services UNIX standards (fichiers, pipes, signaux, sockets, threads...), protocoles Internet (Web, News, FTP, CGI, HTML...), persistance et bases de données, interfaces graphiques. La création de sites web dynamiques s'est largement développée depuis le début des années 2000 et le recours aux sites statiques est de plus en plus rare. L'accroissement de la popularité des systèmes de wiki et de blog, avec des modèles graphiques riches et variés libres et souvent accessibles gratuitement a mis à la portée de tous des outils d'installation et de personnalisation en apparence simples. Les logiciels libres (langages) Apache, PHP et Mysql ont été les rois de ces évolutions alors que de nombreuses autres possibilités techniques auraient pu exister. Pour des personnes qui ont des connaissances en python, cette prédominance du PHP peut sembler un peu injuste car python s'adapte très bien à réalisation de sites dynamiques. Il est même plutôt performant sur ce sujet avec des framework performants et célèbres comme Django, des gestionnaires de contenu comme Plone, voire même des serveurs du plus léger intégré à Python ou plus lourds avec Zope. [ext[Source|https://fr.flossmanuals.net/creer-un-site-web-en-python/introduction/]] Tutoriel Documentation officielle en français: :https://docs.python.org/fr/3.7/index.html ;Formations: 4 heures, Auteur : Céline Martinet Sanchez :https://openclassrooms.com/fr/courses/4262331-demarrez-votre-projet-avec-python 40 heures, Auteur : Vincent Le Goff et c'est vraiment très bien fait : :https://openclassrooms.com/fr/courses/235344-apprenez-a-programmer-en-python/230659-quest-ce-que-python ;Tutorial Points: :https://www.tutorialspoint.com/python/ :https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-189-a-gentle-introduction-to-programming-using-python-january-iap-2011/index.htm :https://docs.python.org/fr/3/tutorial/ ;Plus de documentation: :http://101.96.10.63/univ.ency-education.com/uploads/1/3/1/0/13102001/med_informatique1an28-python.pdf :Livre et exercices corrigés en ligne sur Python 2 et 3 : Apprendre à programmer avec Python de Gérard Swinnen, 2009 -http://inforef.be/swi/python.htm :[ext[Framework Django|https://www.djangoproject.com/]]
{{Q&R||caption}}
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i info 'x5'>> </div> </div> </div> @@ <<doc>> 👉 ~TiddlyLearn utilise le Framework [ext[TiddlyWiki|https://tiddlywiki.com]]. 👉 ~TiddlyLearn, @@color:#FF0000;[{{$:/SiteTitle}} {{$:/SiteSubtitle}}]@@ s'appuie notamment sur le framework [[Spectre]] pour la partie CSS. 👉 ~TiddlyLearn est une introduction à TiddlyWiki basée sur <$count filter="[tag[TableOfContents]]"/> mots clés et enrichie d'exemples facilitant l'apprentissage puis la maîtrise de ~TiddlyWiki.
Les macros sont des bouts de texte qui peuvent être insérés à l'aide d'un raccourci concis<<dp>> ``` <<maMacro>> ``` Vous pouvez écrire vos propres [[macros en WikiText|Macros in WikiText]] ou pour plus de souplesse, vous pouvez écrire des [[macros en Javascript|JavaScript Macros]]. Les macros suivantes sont fournies avec ce wiki: ``` <<list-links "[tag[Macros]]">> ``` ;Soit: <<list-links "[tag[Macros]]">>
@@color:#d40000;[Mat] :@@ When can `[current]` be used instead of `<currentTiddler>` ? L'opérateur `all`https://tiddlywiki.com/prerelease/#all%20Operator peut utiliser cet argument. I believe the [current] was implemented as a shorter form for doing all `<currentTiddler>` which makes sense so there should be more operators (and other stuff?) that can use this shorter form. Are there? (It is not so easy to just search for this in the docs because you get a lot of false positives for e.g currentTiddler etc) @@color:#d40000;[Jeremy] :@@ The operand “current” is only supported by the “all” operator. It is one of a group of keywords that can be used to generate lists of tiddlers: current, missing, orphans, shadows, tags, tiddlers. Documented at [[https://tiddlywiki.com/#all Operator]]. So, here “current” isn’t really an abbreviation for the variable “currentTiddler”. @@color:#d40000;[Mark S] :@@ "is" operator lists "current" as an operator, BTW @@color:#d40000;[Jeremy] :@@ Whoops, thanks, of course you’re right: the is operator supports the following operands: current, image, missing, orphan, shadow, system, tag, tiddler and variable.
!Voici un exemple en situation permettant de taguer rapidement les tiddlers via choix de cases à cocher. * Admettons que vous possédiez un grand nombre de tiddlers contenant un tag nommé; ("Quicky" dans cet exemple) * Vous souhaitez pouvoir les passer en revue et pouvoir, pour certains y ajouter un second tag nommé à choisir dans une liste. Dans cet exemple, la liste de tags est "yes", "maybe", "no". * Remplacez le contenu du tiddler système [[$:/core/ui/ViewTemplate/body]] par le code suivant (Code cassé pour meilleure lecture): ``` <$list filter="[is[current]tag[Quicky]!tag[yes]!tag[maybe]!tag[no]]"> Choose: <$fieldmangler> <$linkcatcher set="$:/NewTagName" setTo="" message="tw-add-tag"> <$list filter="[[yes]] [[maybe]] [[no]]"> <$link> <$set name="backgroundColor" value={{!!color}}> <span style=<<tag-styles>> class="tw-tag-label"> <$view field="title" format="text"/> </span> </$set> </$link> </$list> </$linkcatcher> </$fieldmangler> </$list> ``` * Maintenant, chaque Tiddler tagué "Quicky" mais qui ne possède aucun des tags "yes", "maybe" ou "no" contiendra une ligne en haut indiquant: Choisissez : (yes) (maybe) (no) * Il ne reste plus qu'à cliquer sur l'une des cases à cocher pour que le tag choisi soit ajouté au Tiddler.
``` <$button> <$action-setfield $tiddler="$:/temp/trigger" $value=<<now "0hh:0mm:0ss">>/> Refresh </$button> ``` ;Soit: <$button> <$action-setfield $tiddler="$:/temp/trigger" $value=<<now "0hh:0mm:0ss">>/> Refresh </$button> Tidler associé : $:/temp/trigger {{$:/temp/trigger||code}}
<$button> <$action-setfield $tiddler="$:/temp/trigger" $value=<<now "0hh:0mm:0ss">>/> Refresh </$button>
Jeremy Ruston The [[railroad diagram|http://en.wikipedia.org/wiki/Syntax_diagram]] above is created using a plugin that will form part of ~TiddlyWiki5's core starting from version 5.1.8.
This is a simple example of a tabbed picture calendar to give the new or casual ~TiddlyWiki users some ideas. It uses <a href="http://bjtools.tiddlyspot.com#ExtendableCalendar" target="_blank">BJ's Calendar Plugin</a> to make the calendars and create journal entries. I have not included any example entries, since you might use a different Journal Tag and/or Journal Title date format, see [[$:/ControlPanel]] The dates included on each Month Tab were just an example of how you might note important dates like birthdays or anniversaries for quick reference. Sorry if I mixed up any country's dates. Or you might place some short quotes or verses in this area. If you hide the Sidebar, you can have larger pictures. Like I said, just trying to give some ideas. To edit a month tab, click on the picture, Download this ~TiddlyWiki: http://tabbed-calendar.tiddlyspot.com/download/ Or use Advanced Search to create a JSON file for import. For the @@color: red;''2018''@@ calendar, all are tagged @@color: red;''tabcal''@@, so use Advanced Search with `[tag[tabcal]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2019''@@ calendar, all are tagged @@color: red;''tabcal19''@@, so use Advanced Search with `[tag[tabcal19]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2020''@@ calendar, all are tagged @@color: red;''tabcal20''@@, so use Advanced Search with `[tag[tabcal20]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2021''@@ calendar, all are tagged @@color: red;''tabcal21''@@, so use Advanced Search with `[tag[tabcal21]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2022''@@ calendar, all are tagged @@color: red;''tabcal22''@@, so use Advanced Search with `[tag[tabcal22]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2023''@@ calendar, all are tagged @@color: red;''tabcal23''@@, so use Advanced Search with `[tag[tabcal23]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2024''@@ calendar, all are tagged @@color: red;''tabcal24''@@, so use Advanced Search with `[tag[tabcal24]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. For the @@color: red;''2025''@@ calendar, all are tagged @@color: red;''tabcal25''@@, so use Advanced Search with `[tag[tabcal25]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. You can get this modified version (see notes 4 and 5) of @@color: red;''BJ's Calendar plugin''@@ by using Advanced Search with `[tag[bjcalendar]]` for the Filter and export as JSON. Then import that into your ~TiddlyWiki. !!!Notes: #[[$:/_TabCalendarStyle]] is a short stylesheet to float pictures left or right, if you are using similar CSS this might interfer #[[$:/images/shim.gif]] single pixel, transparent GIF for spacing #[[$:/plugins/bj/Calendar]] BJ's Calendar Plugin, version 1.11.0, if you are already using this plugin, you might check versions before importing #[[$:/config/bj/Calendar.json]] changed last day 0 to 6 so week starts on Sunday #[[$:/plugins/bj/calendar/sidbar]] removed tag so default calendar is not shown in side bar #[[(by_Mars_2002).jpg]] 2018 picture 200w by 570h #[[Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]] 2019 picture 200w by 570h #[[2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]] 2020 picture 200w by 570h #[[LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]] 2021 picture 200w by 570h #[[RosaXanthina5_Fanghong_CC-BY-SA.jpg]] 2022 picture 200w by 570h #[[Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]] 2023 picture 200w by 570h #[[Weiße_Immensee_(Kordes_1982)_PD.jpg]] 2024 picture 200w by 570h #[[Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]] 2025 picture 200w by 570h #changed the Story Top Position from 0 to -40 to see more of calendar at one time. #https://www.timeanddate.com/ source of holidays
Nous avons des tiddlers pour les recettes et nous avons des tiddlers pour les ingrédients: <div class="tc-2cols"> ;Tiddlers recettes: *[[apple]] *[[dessert]] *[[drink]] ;Tiddlers Ingrédients: *[[Icecream]] *[[orange]] *[[pineaple]] </div> <br/> *👉 Les tiddlers recettes sont tagués soit "''tested''" ou soit "''untested''". *👉 Et les ingrédients sont tagués par catégories. Par exemple "butter" et "oil" sont tagués "fat". Et "apple" et "orange" sont tagués "fruit". <br/> *👉 Une recette "dessert"est taguée "tested", "apple" et "orange". *👉 Une recette "drink" est taguée "untested" et "orange". *👉 Enfin, une recette "icecream" est taguée "untested" et "pineapple". Nous voulons maintenant obtenir la liste affichant toutes les recettes untested comprenant des fruits mais qui sont aussi dans les recettes tested Dans cet exemple, la liste ne devra afficher que la recette "drink" parcequ'elle est taguée "untested" et "orange" et qu'il existe aussi une recette "tested" qui est taguée "orange". ;Solution : ``` <$list filter="[tag[tested]tags[]tag[fruit]tagging[]tag[untested]] "></$list> ``` Cette formule prend en compte toutes les recettes taguées "tested" puis regarde tous leurs tags, ne retient que ceux qui sont tagués "fruits" puis ensuite regarde toutes les recettes taguées "fruits" pour n'en filtrer de nouveau que les recettes qui sont "untested" ;Soit : <$list filter="[tag[tested]tags[]tag[fruit]tagging[]tag[untested]] "></$list> Et ceci : ``` <$list filter="[tag[tested]tags[]tag[fruit]]"> </$list> ``` ;Soit : <$list filter="[tag[tested]tags[]tag[fruit]]"> </$list> !Récapitulation des tiddlers et tags associés | Type | Tiddler | tags |>|>|>|>|>|>| |~|~| 1 | 2 | 3 | 4 | 5 | 6 | |ingredient|apple|fruit| - | - | - | - | - | |ingredient|orange|fruit| - | - | - | - | - | |ingredient|pineapple|fruit| - | - | - | - | - | |receipe|dessert| - |apple|orange| - |tested| - | |receipe|drink| - | - |orange| - | - |untested| |receipe|icecream| - | - | - |pineapple| - |untested| On voit que cette structure fait appel à des Tiddlers/Tags croisés, c'est à dire qu'un même élément peut être soit un tiddler, soit un Tag. Ainsi, "apple" est il à la fois Tiddler ET Tag. On fait alors appel aux notions ''tag'', ''tags'' et ''tagging''
$:/core/ui/AdvancedSearch/Filter Utile pour exporter au format json par exemple tous les Tiddlers possédant un tag particulier Par exemple saisir `[tag[Sources]]` pour exporter en bloc tous les tiddlers tagués "Sources"
{{Rechercher||caption}}
Plus votre wiki contient de données et plus il est important d'avoir à disposition un bon outil de recherche. Il existe plusieurs plugins et macros visant à compléter ou améliorer le module standard de recherche de TiddlyWiki. J'en ai testé quelques-uns : | Article | Où télécharger | Auteur |h |[[Full Search Text Plugin]]|https://hoelz.ro/files/fts.html|[ext[Lunr|https://lunrjs.com]]/| |[[Search Plus]]|https://wikilabs.github.io/editions/advanced-search-plus/|[ext[Mario Pietsch|https://github.com/pmario]]| |[[Macro Search Bar|SearchBar]]|https://www.ooktech.xyz:8443/Public|[ext[Jed Carty|https://github.com/inmysocks]]| |[[Simple search]]|https://tid.li/tw5/plugins.html|[ext[Thomas Elmiger|https://github.com/telmiger]]| |[[Advanced search Field|$:/.tb/ui/AdvancedSearch/Field]]|http://tobibeer.github.io/tb5/#%24%3A%2F.tb%2Fui%2FAdvancedSearch%2FField|[ext[Tobias Beer|https://github.com/tobibeer]]| |[[New Tiddler From Search (NTFS)|JD's Things]]|http://j.d.ntfs.tiddlyspot.com/|[ext[JD|http://j.d.tiddlyspot.com/]]| |Enter the Search|https://ibnishak.github.io/Tesseract/pluginsandmacros/enterthesearch.html|[ext[Riz|https://ibnishak.github.io/Tesseract/]]| |[[Macro Find|macro/find]]|https://kookma.github.io/Refnotes/|[ext[Mohammad Rahmani|https://github.com/kookma]]| Un mix savamment dosé de tout ceci est l'un de mes objectifs sur ce site.
<svg enable-background="new 0 0 100 100" height="64px" id="Layer_1" version="1.1" viewBox="0 0 100 100" width="64px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><circle cx="50" cy="49.999" fill="#F05825" r="45"/><g><path d="M67.167,44.212c-1.298,0-2.487,0.455-3.423,1.209c-3.312-2.064-7.517-3.307-12.022-3.568l2.352-7.365 l6.459,1.508c0.17,2.33,2.137,4.174,4.529,4.174c2.505,0,4.546-2.02,4.546-4.502c0-2.48-2.041-4.501-4.546-4.501 c-1.751,0-3.274,0.988-4.032,2.431l-7.506-1.75c-0.628-0.147-1.264,0.211-1.46,0.822l-2.918,9.139 c-4.854,0.117-9.418,1.365-12.975,3.549c-0.921-0.715-2.081-1.145-3.34-1.145c-2.997,0-5.434,2.414-5.434,5.385 c0,1.834,0.934,3.457,2.353,4.428c-0.06,0.426-0.09,0.857-0.09,1.291c0,3.711,2.175,7.164,6.129,9.719 c3.788,2.451,8.802,3.801,14.118,3.801c5.315,0,10.331-1.35,14.119-3.801c3.952-2.555,6.129-6.008,6.129-9.719 c0-0.395-0.028-0.789-0.078-1.18c1.516-0.955,2.523-2.633,2.523-4.539C72.601,46.626,70.163,44.212,67.167,44.212z M65.062,33.612 c1.146,0,2.077,0.923,2.077,2.055c0,1.135-0.932,2.057-2.077,2.057c-1.144,0-2.073-0.922-2.073-2.057 C62.988,34.535,63.918,33.612,65.062,33.612z M40.215,52.925c0-1.672,1.418-3.076,3.105-3.076c1.688,0,3.061,1.404,3.061,3.076 c0,1.676-1.372,3.033-3.061,3.033C41.633,55.958,40.215,54.601,40.215,52.925z M57.439,61.841 c-1.573,1.559-3.998,2.316-7.419,2.316c-0.006,0-0.014-0.002-0.023-0.002c-0.006,0-0.015,0.002-0.024,0.002 c-3.418,0-5.843-0.758-7.414-2.316c-0.484-0.479-0.484-1.252,0-1.729c0.481-0.479,1.263-0.479,1.745,0 c1.083,1.074,2.94,1.598,5.669,1.598c0.01,0,0.019,0.002,0.024,0.002c0.01,0,0.018-0.002,0.023-0.002 c2.733,0,4.588-0.523,5.674-1.598c0.483-0.48,1.266-0.479,1.745,0C57.923,60.589,57.923,61.364,57.439,61.841z M56.724,55.958 c-1.689,0-3.11-1.357-3.11-3.033c0-1.674,1.421-3.076,3.11-3.076s3.059,1.402,3.059,3.076 C59.782,54.601,58.413,55.958,56.724,55.958z" fill="#FFFFFF"/></g></g></svg>
Les "Tiddlers référents" proposent une information sobre d'une façon compréhensible et interconnectée. Le lecteur peut être, aussi bien, un utilisateur moyen ou un expert. Sur le [[site source TiddlyWiki|https://tiddlywiki.com/]], Il existe plusieurs subdivisions : ;Concepts *👉 Définitions, dont l'ensemble forme un glossaire ;Manuel utilisateur *👉 Présente les détails techniques des fonctionnalités ~WikiTexte *👉 Subdivisions<<:>> messages, opérateurs, widgets, etc ;Manuel développeur *👉 Présente les détails techniques de l'architecture interne de ~TiddlyWiki Le matériel de référence est rédigé à la troisième personne, un style formel qui évite de s'adresser au lecteur, pour se focaliser sur la façon dont se comporte ~TiddlyWiki lui-même. La voix passive est souvent appropriée<<:>> *👉 Le gabarit spécifié via un tiddler plutôt que spécifiez le gabarit via un tiddler. *👉 Le widget peut être employé à divers usages plutôt que vous pouvez employer le widget à divers usages *👉 Mais Ce widget offre plusieurs utilisation possibles est meilleur, car moins alambiqué et plus succinct Les double négations, les négations contractées et les expressions pouvant conduire à ignorer une négation ou à faire un contresens accidentel par omission doivent être évitées dans les tiddlers référents.
Dans cet exemple, l'ensemble des notes incluses dans le tiddler RefNotesListe sont reprises en liste dans ce tiddler ``` <<showfnotes RefNotesListe>> ``` <<showfnotes RefNotesListe>>
Parexemple en appliquant le style suivant (la classe est prédéfinie dans le plugin) : ``` <<showfnotes RefNotesListe class:"fnote-pretty" title:"''Footnotes''">> ``` ;Soit: <<showfnotes RefNotesListe class:"fnote-pretty" title:"''Footnotes''">>
{{RefNotes||caption}}
2 imports: *[[La macro Find|macro/find]] *[[Le plugin RefNotes|$:/plugins/.mr/refnotes]] ;Pour faire quoi ? *👉 Créer des notes en popup jointes au passage de la souris sur un mot annoté *👉 Voir également ces notes en bas de page. *👉 La numérotation des notes est automatisée *👉 Une note peut contenir le terme de dictionnaire *👉 Une note peut contenir le contenu d'un champ de tiddler. *👉Une note peut aussi apparaître en bas de page *👉Et même dans un tiddler séparé *👉Les notes en pied de page (liste) peuvent être stylisées Similaire à la macro [[Prise de Notes en bas de page (Internes)|FootNotes]] mais de conception différente et plus élaborée. Exemple basique: ``` Ceci est un test: <<fnote "Voici une petite note">>. Pour voir cette note, passez la souris dessus. Et voici une seconde note que vous n'avez pas eu à numéroter par vous-même <<fnote "Ceci est une seconde petite note">>. ``` ;Soit: Ceci est un test: <<fnote "Voici une petite note">>. Pour la voir passez la souris dessus. Et voici une seconde note que vous n'avez pas eu à numéroter par vous-même <<fnote "Ceci est une seconde petite note">>. Vous pouvez également utiliser un tiddler data en utilisant le code `<<fnote {{dtiddler##note}}>>` Par exemple, dans le dictionnaire [[$:/plugins/tobibeer/dict/terms]], le code ``` <<fnote {{$:/plugins/tobibeer/dict/terms##modèles}}>> ``` Donnera la note suivante : <<fnote {{$:/plugins/tobibeer/dict/terms##modèles}}>> Les champs des tiddlers peuvent également servir au stockage de notes Par exemple le code suivant: ``` <<fnote {{!!note}}>> ``` Montrera dans la note, le contenu du champ "note" du présent tiddler: <<fnote {{!!note}}>> Le champ peut aussi provenir d'un autre tiddler, et contenir un lien cliquable: Ici, c'est le champ note du tiddler [[SystemTags]] qui est récupéré: ``` <<fnote {{SystemTags!!note}}>> ``` Avec le rendu suivant : <<fnote {{SystemTags!!note}}>> Les notes peuvent aussi apparaître en liste, avec le code de base suivant: ``` <<showfnotes>> ``` Voici en exemple l'ensemble des notes du présent tiddler regroupées dans le tiddler exemple [[RefNotesListe]]. On y retrouve les notes "à la ligne" puis, en bas de page la récapitulation de ces notes en liste. On peut aussi éditer cette liste de notes [[dans un tiddler différent|RefNoteListAlone]] [[Ces notes en liste peuvent être stylisées|RefNoteListStyled]]
Exemple basique: Ceci est un test: <<fnote "Voici une petite note">>. Pour la voir passez la souris dessus. Et voici une seconde note que vous n'avez pas eu à numéroter par vous-même <<fnote "Ceci est une seconde petite note">>. Vous pouvez également utiliser un tiddler data. Par exemple, dans le dictionnaire [[$:/plugins/tobibeer/dict/terms]], le code Donnera la note suivante : <<fnote {{$:/plugins/tobibeer/dict/terms##modèles}}>> Les champs des tiddlers peuvent également servir au stockage de notes. Par exemple le code suivant Montrera dans la note, le contenu du champ "note" du présent tiddler: <<fnote {{!!note}}>> Le champ peut aussi provenir d'un autre tiddler, et contenir un lien cliquable; Ici, c'est le champ note du tiddler [[SystemTags]] qui est récupéré Avec le rendu suivant : <<fnote {{SystemTags!!note}}>> Et voici la récapitulation des notes de ce tiddler en liste et en bas de page: <<showfnotes>>
!!Déclaration !important En ajoutant la déclaration !important, on s'assure que la règle CSS sera prédominante sur une classe identique. Si deux règles comportent la déclaration !important, la seconde prédominera la première. !!Sélecteurs Types Le sélecteur universel (*), de combinaisons (+, >, ~, ' ') et la pseudo classe (:not) sont sans effets sur les règles spécifiques. Sélecteurs multiples : il ne s'agit pas de sélecteurs autonomes ; l'idée est que vous pouvez placer plusieurs sélecteurs sous une même règle CSS, ''séparés par des virgules'', pour appliquer un unique jeu de déclarations à tous les éléments désignés par par ces sélecteurs. !!Combinaison enfant Le signe `>` sélectionne les noeuds qui sont les enfants directs du premier élément. Syntaxe: A > B Par exemple `ul > li` concernera tous les éléments `<li>` qui sont directement emboîtés dans l'élément `<ul>`. !!Classe.Élément1.Élément2 Le sélecteur de classe CSS correspond à des éléments basés sur le contenu de leur attribut de classe. ``` /* Tous les éléments ayant la classe="spacious" */ .spacious { margin: 2em; } /* Tous les éléments <li> ayant la classe="spacious" */ li.spacious { margin: 2em; } /* Tous les éléments <li> avec une liste de classe qui inclut à la fois "spacious" et "elegant" */ /* Par exemple, la classe="elegant retro spacious" */ li.spacious.elegant { margin: 2em; } ``` !!combinateur descendant Généralement représenté par un seul caractère espace ( ), combine deux sélecteurs de sorte que les éléments appariés par le deuxième sélecteur sont sélectionnés s'ils ont un élément ancêtre correspondant au premier sélecteur. Les sélecteurs qui utilisent un combinateur descendant sont appelés sélecteurs descendants. /* item button qui est descendant de tc-table-of-contents*/ ``` .tc-table-of-contents button ```
Vu sur : ''https://ibnishak.github.io/Tesseract/incomplete/embedding.html'' Une fois votre compte créé (Voir adresse ci-dessus) vous pouvez l'encapsuler avec le code suivant : ``` <html><iframe src="https://www.rememberthemilk.com/services/modules/googleig/" width="420" height="315" style="border: none;"></iframe></html> ``` ;Soit: <html><iframe src="https://www.rememberthemilk.com/services/modules/googleig/" width="420" height="315" style="border: none;"></iframe></html>
<div class="w3-tag w3-xxlarge w3-blue" style="line-height:1.5em;"> Indispensable </div> (c) Mario Pietsch Faire de temps à autre un toilettage de votre wiki ne peut que vous faire gagner en taille (c'est à dire réduire conséquemment le poids de votre wiki), sans toutefois en affecter le bon fonctionnement. Supprimez donc avec ce plugin la masse de vos tiddlers temporaires. Je n'ai pas constaté d'effets secondaires, mais à manipuler dans tous les cas après sauvegarde. C'est ce que je fais régulièrement avant de mettre mes wikis en ligne.
``` [[💬|À Propos de TiddlyLearn]] ``` ;Soit: [[💬|À Propos de TiddlyLearn]]
``` <$button class="btn btn-error" set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} > ``` ; Soit: <<< <$button class="btn btn-success" set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} > Cliquez pour voir... </$button> <<< Ou encore par ajout d'une classe pour changer le bouton en un lien interne: ``` <$button class="btn btn-link" set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} > Cliquez pour voir... </$button> ``` ; Soit: <<< <$button class="btn btn-link" set="TiddlerA!!caption" setTo={{TiddlerB!!caption}} > Cliquez pour voir... </$button> <<< {{TiddlerA!!caption}} {{TiddlerB!!caption}} ; Noter: Une fois l'action validée par un clic, il n'y a pas de retour possible à la situation d'origine. Voir aussi ButtonWidget, TiddlerA et TiddlerB
{{Repas||title}}
\define style(z,q) <<eval " const getStyle = (el, ruleName) => getComputedStyle(el)[ruleName]; getStyle(document.querySelector('$z$'), '$q$'); ">> \end {{EnTêteDemosMacrosJs}} !1- La Macro ``` \define style(z,q) <<eval " const getStyle = (el, ruleName) => getComputedStyle(el)[ruleName]; getStyle(document.querySelector('$z$'), '$q$'); ">> \end ``` !2- L'appel ``` <<style "div" "font-weight">> ``` <<style "div" "font-weight">> On construira sur ce modèle : ``` const setStyle = (el, ruleName, val) => (el.style[ruleName] = val); ```
Créer un bouton qui ouvre la page Accueil et ferme tous les tiddlers ouvert. ``` <$navigator story="$:/StoryList" history="$:/HistoryList"> <$button class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/home-button}} Accueil <$action-sendmessage $message="tm-close-all-tiddlers" /> <$action-navigate $to="PLACE_TITLE_OF_HOME_TIDDLER_HERE"/> </$button> </$navigator> ``` <$navigator story="$:/StoryList" history="$:/HistoryList"> <$button class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/home-button}} Accueil <$action-sendmessage $message="tm-close-all-tiddlers" /> <$action-navigate $to="À Propos de TiddlyLearn"/> </$button> </$navigator> !!Explications: :<i class="fa fa-arrow-right"></i> Le Widget Message "tm-close-all-tiddlers" [ext[https://tiddlywiki.com/#WidgetMessage%3A%20tm-close-all-tiddlers]] gère en fait la fermeture de tous les tiddlers en envoyant ce message au Widget Navigator [ext[https://tiddlywiki.com/#NavigatorWidget]]. :<i class="fa fa-arrow-right"></i> Puis, le Widget Action Navigate [ext[https://tiddlywiki.com/#ActionNavigateWidget]] se charge d'ouvrir votre Tiddler "Accueil". :<i class="fa fa-arrow-right"></i> La classe "tc-btn-invisible tc-tiddlylink" incluse dans le bouton y ajoute simplement un peu de style. !!Exemple concret: :<i class="fa fa-arrow-right"></i> Aller sur le site officiel [ext[tiddlywiki.com|https://tiddlywiki.com]], créer un nouveau tiddler et y coller le code suivant: ``` <$navigator story="$:/StoryList" history="$:/HistoryList"> <$button class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/home-button}} Home <$action-sendmessage $message="tm-close-all-tiddlers" /> <$action-navigate $to="ButtonWidget"/> </$button> </$navigator> ```
Un point de vue intéressant sur Reveal Widget (core) et Detail Widget : https://github.com/Jermolene/TiddlyWiki5/issues/3353 !!Details widget in core #3353 <$reveal type="nomatch" state="$:/state/SampleReveal2" text="show"> <$button set="$:/state/SampleReveal2" setTo="show">Show me</$button> </$reveal> <$reveal type="match" state="$:/state/SampleReveal2" text="show"> <$button set="$:/state/SampleReveal2" setTo="hide">Hide me</$button> ! This is the revealed content And this is some text </$reveal> --- <$details summary="Show me"> ! This is the revealed content And this is some text </$details> Voir aussi [[Text slider vs Detail widget]]
{{RevealWidget||caption}}
! Introduction Le widget Reveal masque ou affiche son contenu en fonction de la valeur d'un Tiddler "État" ([[state tiddler|StateTiddlers]]). Le type du widget détermine la valeur qui sera affichée: Les types attachés au widget sont les suivants : * type=''match'': Ce que l'on veut obtenir est affiché si le contenu textuel du tiddler état ''correspond'' à une valeur spécifiée. * type=''nomatch'': Ce que l'on veut obtenir est affiché si le contenu textuel du tiddler état ''ne correspond pas'' à la valeur spécifiée. * type=''popup'': the content is displayed as a popup as described in the [[PopupMechanism|PopUpButton]] ! Content and Attributes The content of the `<$reveal>` widget is displayed according to the rules given above. |!Attribute |!Description | |state |The title of the tiddler containing the state | |type |The type of matching performed: ''match'', ''nomatch'' or ''popup'' | |text |The text to match when the type is ''match'' and ''nomatch'' | |position |The position used for the popup when the type is ''popup''. Can be ''left'', ''above'', ''aboveright'', ''right'', ''belowleft'' or ''below'' | |default |Default value to use when the state tiddler is missing | |animate |Set to "yes" to animate opening and closure (defaults to "no") | |retain |Set to "yes" to force the content to be retained even when hidden (defaults to "no")| Retaining the content when hidden can give poor performance since the hidden content requires refresh processing even though it is not displayed. On the other hand, the content can be revealed much more quickly. Note that setting ''animate="yes"'' will also force ''retain="yes"''. ! Examples !! Simple content reveal Here's a simple example of showing and hiding content with buttons: ``` <$button set="$:/state/SampleReveal1" setTo="show">Show me</$button> <$button set="$:/state/SampleReveal1" setTo="hide">Hide me</$button> <$reveal type="match" state="$:/state/SampleReveal1" text="show"> ! This is the revealed content And this is some text </$reveal> ``` ;Soit: <$button set="$:/state/SampleReveal1" setTo="show">Show me</$button> <$button set="$:/state/SampleReveal1" setTo="hide">Hide me</$button> <$reveal type="match" state="$:/state/SampleReveal1" text="show"> ! This is the revealed content And this is some text </$reveal> !! "Slider" A slider appears as a single button that can be used to toggle the display of the contained content. ``` <$reveal type="nomatch" state="$:/state/SampleReveal2" text="show" animate="yes"> <$button set="$:/state/SampleReveal2" setTo="show">Show me</$button> </$reveal> <$reveal type="match" state="$:/state/SampleReveal2" text="show" animate="yes"> <$button set="$:/state/SampleReveal2" setTo="hide">Hide me</$button> ! This is the revealed content And this is some text </$reveal> ``` ;Soit: <$reveal type="nomatch" state="$:/state/SampleReveal2" text="show" animate="yes"> <$button set="$:/state/SampleReveal2" setTo="show">Show me</$button> </$reveal> <$reveal type="match" state="$:/state/SampleReveal2" text="show" animate="yes"> <$button set="$:/state/SampleReveal2" setTo="hide">Hide me</$button> ! This is the revealed content And this is some text </$reveal> !! Popup Here is a simple example of a popup built with the RevealWidget: ``` <$button popup="$:/SamplePopupState">Pop me up!</$button> <$reveal type="popup" state="$:/SamplePopupState"> <div class="tc-drop-down"> ! This is the popup And this is some text </div> </$reveal> ``` ;Soit: <$button popup="$:/SamplePopupState">Pop me up!</$button> <$reveal type="popup" state="$:/SamplePopupState"> <div class="tc-drop-down"> ! This is the popup And this is some text </div> </$reveal> !!Un dernier exemple avec une image : ``` <$checkbox checked='show' unchecked='hide' field='show_image'>Show Image</$checkbox> <$reveal type='match' state='!!show_image' text='show'> [img[logo.svg]] </$reveal> ``` Soit: <$checkbox checked='show' unchecked='hide' field='show_image'>Show Image</$checkbox> <$reveal type='match' state='!!show_image' text='show'> [img[logo.svg]] </$reveal>
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i eye 'x5'>> </div> </div> </div> @@ <<doc>> *Plus de nouveaux mot-clés. *Plus de nouveaux billets. *Mieux expliquer ce fantastique [[Framework|Non TiddliWiki n'est pas destiné qu'aux prises de notes...]] *Répondre aux questions.
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
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
create a tiddler "Saisissez votre nom" ``` <$edit-text tiddler="$:/status/UserName" size=20 tag=input default="Type name here" /> ``` ;Soit: <$edit-text tiddler="$:/status/UserName" size=20 tag=input default="Type name here" /> Ensuite vous pouvez utiliser ce tiddler "Saisissez votre nom" comme tiddler par défaut dans le panneau de contrôle (onglet infos ou fondamentaux en français).
{{SampleMacro||caption}}
Titre original: A global Macro - with limitations <<< Cette démonstration taguée {{SampleMacro||$:/core/ui/TagTemplate}}, nécessite les tiddlers suivants: <<list-links filter:"[tag[SampleMacro]]">> <<< ''Transclure un tiddler en utilisant un template'' peut être appliqué pour obtenir une macro wikitext limitée. Il y a deux limitations: # Vous ne disposez que d'un seul paramètre. # Vous ne pouvez pas avoir de paramètre par défaut. Donc, si un seul paramètre suffit à votre macro, voici comment procéder. Tout d'abord vous devez créer un tiddler contenant votre macro, et aussi y invoquer son nom. Voici un exemple: {{mysimplesamplemacro||code}} À présent, tout ce dont vous avez besoin est d'écrire `{{paramètre||nom-de-la-macro}}`. Donc dans cet exemple: `{{Bugs Bunny||mysimplesamplemacro}}` Soit: <<< {{Bugs Bunny||mysimplesamplemacro}} <<< P.S.: Bien sûr: Dans ce petit exemple, un simple ``` Salut! Mon nom est <$view field="title"/>! ``` aurait suffit. Mais à partir du moment où le "paramètre" doit être utilisé dans un autre contexte, comme par exemple dans la macro-Tiddler [[ShowTagMacro]], qui est expliquée dans [[ShowTag]], une macro est requise. Voir aussi: [[Transclure un Tiddler en entier]]
{{$:/core/images/done-button}} Ceci est une notification!
This is a modal wizard dialogue, stored in the tiddler SampleWizard. {{Motovun Jack.jpg}} You can <$button message="tm-modal" param="SampleWizard2">nest wizards</$button>.
This is another modal wizard dialogue, stored in the tiddler SampleWizard2. You can <$button message="tm-modal" param="SampleWizard">nest wizards</$button>.
Pour obtenir des listes filtrées incluant les shadows tiddlers (systèmes), il faut le spécifier : ``` <$list filter="[tag[$:/tags/ControlPanel/Settings]]"> </$list> ``` Ne rendra que les tiddlers non système de la liste soit; <$list filter="[tag[$:/tags/ControlPanel/Settings]]"> </$list> En spécifiant l'inclusion des shadows tiddlers `[all[shadows+tiddlers]` la liste des tiddlers `$:/tags/ControlPanel/Settings` sera alors complète ``` <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]"> </$list> ``` ;Soit : <$list filter="[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]"> </$list>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
J'ai installé et testé Timimi Firefox Add-on pour win64. Fonctionne parfaitement. Pour éviter les sauvegardes automatiques du wiki à chaque enregistrement d'un tiddler il faut effectuer le paramétrage suivant sur TiddlyWiki: Aller dans Control Panel <i class="fa fa-arrow-right"></i> Sauvegarde <i class="fa fa-arrow-right"></i> Général et cocher "Pas de sauvegarde automatique des modifications" Timimi fonctionne également avec chrome et chromium mais je n'ai pas testé. Voir documentation et consignes d'installation aux adresse indiquées plus haut. ;23Décembre 2018 : Nouvelle version : *https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg88561.html *https://ibnishak.github.io/Timimi/
Il est primordial d'être certain que les modifications que vous apportez à votre wiki soient correctement enregistrées. Personne ne souhaite perdre les données d'une journée patiemment saisies dans TiddlyWiki. Et pourtant ! qui ne s'est pas déjà fait piéger? Pensez donc à régulièrement sauvegarder vos données. TiddlyWiki dispose aujourd'hui de nombreux moyens pour effectuer vos sauvegardes en fonction de votre situation, c'est à dire suivant votre plateforme votre navigateur. Voyez à ce sujet le lien https://tiddlywiki.com/#GettingStarted qui en donne plus de détail. La version française n'est pas encore à jour notamment concernant la sauvegarde sous le navigateur Firefox. Dans le cadre limité de ce tutoriel je n'aborde que l'essentiel à savoir d'être immédiatement en mesure de faire une sauvegarde correcte de votre wiki. #Vous ne pouvez pas utiliser l'option du menu Fichier/Sauvegarder de votre navigateur. ceci ne fonctionne pas. #Vous devez à contrario utiliser le bouton {{$:/core/images/save-button}} sauvegarder de TiddlyWiki. Votre système doit ensuite vous demander à quel endroit vous souhaitez enregistrer ce fichier. Il conviendra de vous rendre à l'endroit (le répertoire) où le fichier `empty.html` (ou du nom que vous lui aurez donné) a été installé lors de l'étape de téléchargement et de valider. #Vérifiez que vos dernières données ont bien été prises en compte en le ré-ouvrant (double clic). #Ce procédé peut vite paraître fastidieux et c'est justement cela que les différents systèmes de sauvegardes gérées par TiddlyWiki permettent d'éviter en proposant des systèmes de sauvegarde automatisées qui vont placer votre fichier directement au bon endroit sans avoir besoin de constamment répéter ces manipulations <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Pour aller plus loin..."></li> <li class="menu-item">[[Sauvegarder avec l'add-on Timimi]]</li> </ul> </div>
Un des plugins officiels de TiddlyWiki.
The iPad/iPhone app ''Quine'' makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. [[Download it here|https://itunes.apple.com/us/app/quine/id1228682923?mt=8]]. Instructions for use: # Open Quine # On iPad #* Touch the file button (<) or swipe from the left of the screen to open the file list # On iPhone #* The file list will show automatically unless a wiki is already open # Touch the new file button (+) in the file list window to create a new TiddlyWiki5 file # Swipe any file item from the right to see a list of additional "actions" possible for that file # Touch any listed file item or folder to open it - wikis will open in Quine's custom browser # When you have an open TiddlyWiki5: # Try creating a new tiddler using the ''new tiddler'' {{$:/core/images/new-button}} button in the sidebar # Type some content for the tiddler, and click the {{$:/core/images/done-button}} ''ok'' button # Save your changes by clicking the {{$:/core/images/save-button}} ''save changes'' button in the sidebar #* A confirmation message should appear at the top right of the window # Touch "Done" when done editing a wiki //Note that Quine is published independently of TiddlyWiki//
Vous pourriez vous demander si l'architecture de TiddlyWiki en tant que SinglePageApplication serait adaptée pour de gros volume de d'information. En réalité, les utilisateurs de TiddlyWiki travaillent souvent avec des fichiers de 20 or 30 mégaoctets sans problème - et des expérience traitant des gigaoctets ont aussi été couronnées de succès.
{{ScrollableTableOfContents||caption}}
Sur des tables des matières conséquentes et généralement présentées dans la SideBar, on peur vouloir en restreindre la taille dans la mesure ou d'autres information doivent y être présentes. On réalisera cette contrainte en présentant la table des matières limitée en hauteur grâce à la mise en place d'une barre de défilement qui officiera dès la taille spécifiée en hauteur atteinte. C'est la feuille de style qui la définit. Voir feuille de style et exemple ci-dessous
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}}<<f-i log-in 'x5'>> </div> </div> </div> @@ <<doc>> Pour afficher/cacher la barre latérale principale, cliquez ici {{$:/core/ui/TopBar/menu}} Si vous ne pouvez pas ouvrir les barres de menus, [[veuillez vous connecter ici|admin]]. 👉 ''Login = admin, Pass = admin'' @@color:#FF0000;La connexion peut également se faire en ajoutant `#admin` à la fin de l'URL puis en cliquant sur le bouton `Connexion`.@@
<$details summary={{!!menu-title}} class=""> {{!!contenu}} </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button> <!-- <$set name="searchTiddler" value="$:/temp/search"> <div class="tc-search"> <$edit-text tiddler="$:/temp/search" type="search" tag="input" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify "$:/state/popup/search-dropdown">> class="tc-popup-handle"/> <$reveal state="$:/temp/search" type="nomatch" text=""> <$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/advancedsearch" text={{$:/temp/search}}/> <$action-setfield $tiddler="$:/temp/search" text=""/> <$action-navigate $to="$:/AdvancedSearch"/> {{$:/core/images/advanced-search-button}} </$button> <$button class="tc-btn-invisible"> <$action-setfield $tiddler="$:/temp/search" text="" /> {{$:/core/images/close-button}} </$button> <$button popup=<<qualify "$:/state/popup/search-dropdown">> class="tc-btn-invisible"> {{$:/core/images/down-arrow}} <$list filter="[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]" variable="listItem"> <$set name="resultCount" value="""<$count filter="[!is[system]search{$(searchTiddler)$}]"/>"""> {{$:/language/Search/Matches}} </$set> </$list> </$button> </$reveal> <$reveal state="$:/temp/search" type="match" text=""> <$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class="tc-btn-invisible"> {{$:/core/images/advanced-search-button}} </$button> </$reveal> </div> <$reveal tag="div" class="tc-block-dropdown-wrapper" state="$:/temp/search" type="nomatch" text=""> <$reveal tag="div" class="tc-block-dropdown tc-search-drop-down tc-popup-handle" state=<<qualify "$:/state/popup/search-dropdown">> type="nomatch" text="" default=""> <$list filter="[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]" emptyMessage="""<div class="tc-search-results">{{$:/language/Search/Search/TooShort}}</div>""" variable="listItem"> <$scrollable class='tc-scrollable-search'> {{$:/core/ui/SearchResults}} </$scrollable> </$list> </$reveal> </$reveal> </$set> --> <style> .tc-scrollable-search { height: 200px; position: relative; } </style>
Enter a keyword and click on the created link to search the Tiddlywiki toolmap. {{Search Tiddlywiki.com}}
[[Tiddlywiki toolmap|https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM]] is a topical index of known plugins, tutorials, themes, and other helpful tools for TiddlyWiki. Enter a keyword and click on the created link to search the Tiddlywiki toolmap. {{Search Tiddlywiki Toolmap}}
Plugin Search Plus - Mario Pietch https://wikilabs.github.io/editions/advanced-search-plus/
\define toolmap(word) \rules except wikilink <$wikify name="input" text="https://dynalist.io/d/zUP-nIWu2FFoXH-oM7L7d9DM#q=$word$"> <a href=<<input>> target="_blank">$word$</a> </$wikify> \end Search in Tiddlywiki Toolmap: <$edit-text tiddler="$:/temp/search-toolmap" field="keywords" placeholder="search toolmap"/> <$macrocall $name="toolmap" word={{$:/temp/search-toolmap!!keywords}} />
\define tw5(word:"", criteria:"title", type:"") \rules except wikilink <$wikify name="input" text="https://tiddlywiki.com/#:[$type$search:$criteria$[$word$]]"> <a href=<<input>> target="_blank"><$text text="$word$" /></a> </$wikify> \end Search in https://www.tiddlywiki.com... <span class="tc-advanced-search-check"><$checkbox field="search-field" tiddler="$:/temp/search-tw5" checked="title"> only title</$checkbox></span> <span class="tc-advanced-search-check"><$checkbox field="search-field" tiddler="$:/temp/search-tw5" checked="*"> all fields (everything)</$checkbox></span> <$edit-text tiddler="$:/temp/search-tw5" size="30" field="keywords" placeholder="search tiddlywiki.com"/> <span class="tc-advanced-search-check"><$checkbox field="search-type" tiddler="$:/temp/search-tw5" checked="!is[system]"> exclude system tiddlers</$checkbox></span> <$list filter="[{$:/temp/search-tw5!!keywords}] +[minlength[3]]" emptyMessage="Type at least 3 characters to see results"> <$macrocall $name="tw5" word={{$:/temp/search-tw5!!keywords}} criteria={{$:/temp/search-tw5!!search-field}} type={{$:/temp/search-tw5!!search-type}} /> </$list>
{{SearchBar||caption}}
!! Exemple Le code `<<search """$:/temp/otherSearch""">>` Rendra en sortie: <<search """$:/temp/otherSearch""">>
!Description Cette macro vous permet d'ajouter une barre de recherche de même type que celle qui se trouve dans la barre latérale et de la placer n'importe où dans votre wiki en écrivant `<<search>>`. Par défaut, elle utilise le même tiddler d'État afin que toutes vos recherches soient partagées dans toutes les barres. Si vous souhaitez cependant utiliser un autre tiddler d'État, vous pouvez le définir comme paramètre de la macro. (Voir l'exemple ci-dessous). !!Utilisation Standard: `<<search>>` Avec un tiddler d'état spécifique: `<<search state:"$:/temp/otherSearch">>` !!Paramètres | !Paramètre | !Description |h |state |Le tiddler d'état à utiliser pour stocker son état. Par défaut: `$:/temp/search` |
<<search """$:/temp/otherSearch""">>
<$details summary={{!!menu-title}} class=""> <$scrollable class='tc-scrollable-search'> {{!!contenu}} </$scrollable> </$details> <$button class="tc-btn-invisible" tooltip={{!!tooltip}} set="$:/StoryList!!list" setTo={{!!list-tiddlers}}> </$button> <style> .tc-scrollable-search { height: 400px; width: 400px; position: relative; } </style>
La section <$button class="tc-btn-invisible tc-tiddlylink"message="tm-open-window" param="Coder" tooltip="Section Coder" aria-label="Section Coder">Coder</$button> propose une approche par "bouts de codes" mis en contexte et analysés. Cette section permet ainsi de se familiariser avec le langage à utiliser en fonction des résultats attendus.
La section <$button class="tc-btn-invisible tc-tiddlylink"message="tm-open-window" param="Reference" tooltip="Section Références" aria-label="Section Références">Références</$button> est l'équivalent de la documentation du développeur. Le sommaire de cette section suit celui du [[site officiel|https://tiddlywiki.com/]], les exemples d'applications étant plutôt issus des contenus de ce présent wiki.
La section <$button class="tc-btn-invisible tc-tiddlylink"message="tm-open-window" param="Sources" tooltip="Section Sources" aria-label="Section Sources">Sources</$button> contient les liens d'accès aux sites tiers référencés ou dont des séquences de code, Macros, Snipets ou plugins sont cités ou utilisés sur ce wiki. Cette liste ne prétend être exhaustive en aucune manière.
{{SeeAlso||caption}}
Concerne deux tiddlers: *$:/ViewTemplate *$:/SeeAlsoList Dans le présent Tiddler tagué `SeeAlso`, vous pouvez voir au pied du billet l'intitulé "''voir aussi:''" suivi de la liste des articles tagués "~SeeAlso". Il s'agit simplement de lister automatiquement tous les billets incluant le même Tag (donc à priori similaires). Pour que ceci fonctionne, il faut que le Tiddler [[$:/SeeAlsoList]] contienne la liste des tags que l'on souhaite voir affichés sous les articles concernés. Dans notre exemple, le tag "~SeeAlso" reprend la liste de tous les articles tagués "~SeeAlso". <blockquote> Il peut être judicieux de donner à ce plugin une autre affectation. Par exemple, en taguant également les tiddlers tagués à `~SeeAlso` du nom de leurs auteurs, ou appartenant à une même catégorie on peut ainsi obtenir une liste des tiddlers par auteur, par catégorie suivant un classement différent donc de celui de la table des matières, rendant ainsi ce plugin intéressant. <cite>- C'est un avis personnel</cite> </blockquote>
$:/Detail
Transclusion
{{SelectBox||caption}}
<div class="attention"> Cet exemple reste à achever! </div> Voici un exemple extrait de l'application [[Fiches Contacts (Fork)]] de création d'une boite de sélection utilisant le widget select. La création des groupes est indépendante du reste de l'application. L'exemple suivant ne tient compte que de cette partie du développement de l'application. *[[$:/Contacts/New Contact Form]] C'est ici que les groupes sont créés. ``` |!Groupe |<<newContactAddGroup2>> <<newContactAddGroup1>>| ``` *$:/Contacts/ContactTemp -> Le fichier temporaire de sélection contenant l'un des groupes sélectionnés (sert au chois de groupe lors de la création d'une nouvelle fiche contact). Qui contient le champ "group" ;Tiddlers destockage des groupes """ <i class="fa fa-arrow-right"></i> [[Groupe 1]] <i class="fa fa-arrow-right"></i> [[Groupe 2]] <i class="fa fa-arrow-right"></i> [[Groupe 3]] """ Les groupes sont stockés dans des tiddlers nominatifs *$:/Contacts/ContactsMacros ``` \define editField1(fieldName) <$reveal type="nomatch" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> {{$(tiddlerName)$!!$fieldName$}} </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$edit-text tiddler="$(tiddlerName)$" field="$fieldName$"/> </$reveal> \end \define editField2(fieldName) <$reveal type="nomatch" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$button set="$:/state/$(tiddlerName)$$fieldName$" setTo="show">Edit</$button> </$reveal> <$reveal type="match" state="$:/state/$(tiddlerName)$$fieldName$" text="show"> <$button set="$:/state/$(tiddlerName)$$fieldName$" setTo="hide">Edit</$button> </$reveal> \end ``` *[[$:/Contacts/Contact Group Selector]] {{$:/Contacts/Contact Group Selector}} ``` <$select tiddler='$:/Contacts/ContactTemp' field='group'> <$list filter='[tag[ContactGroup]]'> <option><$view field='title'/></option> </$list> </$select> ``` Qui indique qu'il faut sélectionner une des options se trouvant dans le champ group du fichier temporaire.
\define colour-swatch() @@colour:{{!!colour}};⚫@@ <<colour-swatch>> Couleur: <$edit-text field='colour' tag='input' placeholder ='(unset)' default='' class="tc-edit-texteditor"/> <details><summary>__Sélectionner une couleur__</summary> --- <$macrocall $name='colour-picker' actions=" <$action-setfield $tiddler=<<editTiddler>> $field='colour' $value=<<colour-picker-value>>/> "/> </details> la couleur est un champ spécial dans TiddlyWiki. Son existence est affichée comme une couleur en mode édition. Il suffit d’ajouter le champ à n’importe quel tiddler (Noter l'orthographe anglaise)
Fonctionne grâce au plugin $:/plugins/sk/ColorText installé. Il y a derrière un dictionnaire : $:/palettes/Editor, $:/sk/ColourPickToolbar et trois nouveaux boutons ajoutés àl'éditeur de texte : *Le bouton {{$:/core/images/format-colortext}} permettant une sélection de texte à mettre en couleur *Le bouton {{$:/core/images/format-highlight}} permettant une sélection de texte à surligner *Le bouton {{$:/core/images/format-colourpicker}} qui permet de choisir soit la couleur de texte, soit la couleur de surlignement. @@color:{{$:/palettes/Editor##Asperge}};Le petit chaperon rouge@@ @@background-color:{{$:/palettes/Editor##Ambre}};Le petit chaperon rouge@@ ;Autres exemples possibles ``` ! @@color:{{$:/palettes/Editor##Rouge}};<i class="fa fa-lock"></i> Le texte@@ ``` ;Soit: ! @@color:{{$:/palettes/Editor##Rouge}};<i class="fa fa-lock"></i> Le texte@@
{{SelectWidget||caption}}
Semantic colors are set of CSS to apply colorful theme to individual tiddlers for categorization purpose. Couleurs sur les bordures et les fonds de tiddlers
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
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#September">[img class="goright" height="570" [(by_Mars_2002).jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2018" "9" "">> """ 2 - Father's Day ^^New Zealand^^ 3 - Labor Day 7 - Independence Day ^^Brazil^^ 9 - Grandparent's Day ^^USA^^ 10 - Rosh Hashana 12 - Muslim New Year ^^Saudi Arabia^^ 16 - Independence Day ^^Mexico^^ 17 - Respect for the Aged Day ^^Japan^^ 19 - Yom Kippur 23 - Saudi National Day ^^Saudi Arabia^^ 24 - Autumn Equinox Day ^^Japan^^ """ [img height="70" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
sequenceDiagram Eric->>Sylvain: Salut Sylvain, tout baigne ? Sylvain-->>Eric: Yep !
Les "favicons" sont de petites icônes que pratiquement tous les navigateurs éditent pour aider les internautes à identifier visuellement un site web. ! favicons dans le navigateur Lorsque TiddlyWiki démarre dans le navigateur il cherche le Tiddler [[$:/favicon.ico]] et l'utilise de manière dynamique comme favicon pour la page. Si vous modifiez l'image le favicon change immédiatement en présentant la nouvelle image. ! favicons sur un serveur Sur un serveur, la commande serveur servira le tiddler [[$:/favicon.ico]] à la racine `/favicon.ico`.
{{SetWidget||caption}}
! Introduction The set variable widget assigns a value to a specified [[variable|Variables]]. The new value of the variable is available to the content within the set variable widget. ! Content and Attributes The content of the `<$set>` widget is the scope for the value assigned to the variable. |!Attribute |!Description | |name |The name of the variable to assign (defaults to "currentTiddler") | |value |The value to assign to the variable if the filter is missing or not empty | |tiddler |<<.from-version "5.1.15">> Optional title of the tiddler from which to read the value | |subtiddler |<<.from-version "5.1.16">> Optionally specifies the title of a subtiddler within a plugin tiddler identified by the ''tiddler'' attribute | |field |<<.from-version "5.1.15">> Optional field of the tiddler from which to read the value (only used if ''tiddler'' is used) | |index |<<.from-version "5.1.15">> Optional index of the tiddler from which to read the value (only used if ''tiddler'' is used) | |filter |An optional filter to be evaluated and assigned to the variable (see below) | |select |<<.from-version "5.1.14">> An optional zero-based index of the item to return from the filter output (see below) | |emptyValue |The value to assign to the variable if the specified value is missing or empty (see below) | !! Simple Variable Assignment The simplest way of using set variable widget assigns a string to a variable. The following example assigns a literal string ``` <$set name="myVariable" value="Some text"> <$text text=<<myVariable>>/> </$set> ``` Both the name and value attributes can be transcluded. For example: ``` <$set name=<<anotherVariable>> value={{template!!text}}> <$text text=<<myVariable>>/> </$set> ``` !! Conditional Variable Assignment This form of the set variable widget chooses one of two specified values according to whether a filter evaluates to an empty list. Here's an example that sets a variable according to whether the current tiddler is called "myMagicTitle": ``` <$set name="myVariable" filter="[all[current]field:title[myMagicTitle]]" value="It's magic" emptyValue="It's not magic"> <$text text=<<myVariable>>/> </$set> ``` !! Filtered List Variable Assignment This form of the set variable widget evaluates the filter and assigns the result to the variable as a space-separated list (using double square brackets for titles containing spaces). ``` <$set name="myVariable" filter="[tag[HelloThere]]"> <$text text=<<myVariable>>/> </$set> ``` !! Filtered Item Variable Assignment <<.from-version "5.1.14">> This form of the set variable widget evaluates the filter and assigns the specified result to the variable as a single item (ie, not using double square brackets for titles containing spaces). ``` <$set name="myVariable" filter="[tag[HelloThere]]" select="0"> <$text text=<<myVariable>>/> </$set> ``` !! Transcluded Variable Assignment <<.from-version "5.1.15">> This form of the set variable widget obtains the value to assign to the variable from a value in a tiddler field or index. For example: ``` <$set name="myVariable" tiddler="HelloThere" field="text"> <$text text=<<myVariable>>/> </$set> ``` The example above could also be written as `<$set name="myVariable" value={{HelloThere!!text}}>`. The advantage of using the ''tiddler'' attribute is that the tiddler title and field or index can themselves be computed. For example: ``` <$set name="myVariable" tiddler=<<myTiddler>> field={{$:/currentField}}> <$text text=<<myVariable>>/> </$set> ```
Mohammad Rahmani :Code: https://github.com/kookma/Shiraz :Demo: https://kookma.github.io/Shiraz/ Voir aussi: :https://kookma.github.io/TW-Scripts/ ``` Mohammad Rahmani Chemical Engineering Department Amirkabir University of Technology Tehran, Iran Github: https://github.com/kookma Email : m[dot]rahmani[at]aut[dot]ac[dot]ir ```
I want to incorporate the "Task Template" into new tasks by using transclusion. To render `TaskTemplate` using the tiddler data (fields) from the current tiddler, see: http://tiddlywiki.com/#Transclusion%20with%20Templates A template can be applied to any tiddler, not necessarily the current one. This is achieved using the full notation `{{<target>||<template>}}`. The default `<target>` is the current tiddler. ;Summary: The full notation for transclusion is {{target||template}}, where "target" is the name of the tiddler containing the data (fields) and "template" is the name of the tiddler containing the output formatting (wikitext) with references to the data fields. If the template is omitted (i.e., just `{{target}}`) then a simple transclusion is performed and both the data and the output format come from the indicated target tiddler. If the target is omitted, (i.e., just `{{||template}}`), then a "transclusion with template" is performed, using data from the current tiddler and the output format from the indicated template tiddler. Eric Shulman
\define image(baseurl) <img src="$baseurl$/favicon.ico"/> \end <$macrocall $name="image" baseurl={{!!title}}/>
La Macro: {{ShowFieldOrTittle||code}} Forme générale: ``` <<showFieldOrTitle Nom-du-Tiddler Champ-du-Tiddler>> ``` Exemple : ``` <<showFieldOrTitle Tutoriel fr-title>> ``` ;Soit: <<showFieldOrTitle Tutoriel fr-title>> Affiche le contenu du champ fr-title parceque celui-ci existes. Si le champ nommé n'existes pas, alors c'est le titre du tiddler qui sera affiché à la place. Exemple: ``` <<showFieldOrTitle Tutoriel description>> ``` ;Soit: <<showFieldOrTitle Tutoriel description>> @@color:red;Le résultat n'est pas ce que j'escomptais à savoir le titre du tiddler Tutoriel et non pas celui du présent tiddler!@@
{{showFieldOrTitleMacro||caption}}
\define showFieldOrTitle(tiddlerName, fieldName) <!-- Display a tiddler field. If the field doesn't exist show the title. --> <$set name="tv-wikilinks" value="no"> <$transclude tiddler="$tiddlerName$" field="$fieldName$"> <$view field="title"/> </$transclude> </$set> \end
\define showQuote(quote,attrib) <div style="background-color:black; color:white; padding:5px"> <div align=left style="font-size: 200%">“</div> <div style="margin:5px; white-space:pre-wrap;">$quote$</div> <div align=right style="font-size: 200%">”</div> <div style="font-size: 150%">-$attrib$</div> </div> \end
{{ShowQuotes||caption}}
``` <div style="background-color:black; color:white; padding:5px"> <div align=left style="font-size: 200%">“</div> <div style="margin:5px"><$view field="quote"/></div> <div align=right style="font-size: 200%">”</div> <div style="font-size: 150%">-<$view field="attribution"/></div> </div> tiddler: {{tiddler||template}} ```
<<showQuote """this is a test. Sometimes text will be long enough to word wrap onto another line or even more than one line if it is really really long. Other times there will be line breaks 1 2 3 like those above or sometimes there are "quotes" inside the text.""" "Joe Somebody" >> The macro content is essentially the same as your previous template content, with two notable differences: * The `<$view>` widgets have been replaced by macro parameter references `($quote$ and $attrib$)`. These references are automatically substituted by the parameter values passed into the macro when it is invoked. * The `<div>` surrounding the actual quote text has an added style of `"white-space:pre-wrap"`. This ensures that any newlines (and other whitespace) in the content is preserved in the output. Also, take note that the macro invocation encloses the text to be displayed in tripled-quotes. This allows that text to contain regular quote characters itself, as shown in the example above.
{{ShowTag||caption}}
Sur ce wiki, vous aurez remarqué que tous les sujets traités sont regroupés au sein d'un ''tiddler Mot-Clé'' dont l'utilité est celle d'un ''sommaire'' regroupant tous les tiddlers qui sont liés. ''Le titre du tiddler mot-clé est identique au tag qui lui est associé.'' Je voulais affecter une couleur spécifique au tag de ce tiddler Mot-Clé. Il y a plusieurs façons de procéder, mais le choix adopté ici consiste à se servir de cet ''aspect spécifique de nommage'' pour affecter une couleur au tag `ShowTag`. Ceci se fait via le tiddler template [[ShowTagMacro]], le tag étant affiché via le code `{{tagname||ShowTagMacro}}`. Le code de la macro ShowTagMacro est le suivant: {{ShowTagMacro||code}} Ce tiddler appelle la macro Wikitext `_ showtag` transmettant la valeur du champ `color` du tiddler ShowTag. Comme le nom du tiddler ShowTag est le nom du tag de ce tiddler, la valeur n'est pas prise du titre ShowTag du tiddler, mais récupérée à partir de sa transclusion au champ //tagname//. Il s'agit d'une norme TiddlyWiki qui permet à chaque tag un tiddler lié pouvant contenir un champ nommé `color` définissant la valeur HTML de la couleur souhaitée. Aussi, pour mon tag {{ShowTag||ShowTagMacro}} je dispose également d'un tiddler nommé [[ShowTag]] qui contient le champ color renseigné du texte ''<$view tiddler="ShowTag" field="color"/>''. La macro `_showtag` affiche simplement le champ `title` du tiddler ShowTag, (pas via un "ShowText " mais en transcluant ce titre de tiddler!) qui est ensuite inséré dans des balises HTML html définissant la couleur d'arrière-plan comme la couleur passée en tant que paramètre. Autrement dit, c'est le titre du tiddler qui est transclus puis utilisé comme nom du tag.
\define _showtag(color) <span style="background-color:$color$" class="tw-tag-label"><$view field="title"/></span> \end <$macrocall $name="_showtag" color={{!!color}}/>
La SideBar est la barre de menu située à droite de l'écran. Elle contient un ensemble d'onglets et d'outils facilitant la recherche d'informations de différentes manières : L'onglet Menus permet quant à lui de créer de nouveaux menus à placer à différents endroits. Pour des explications plus précises, reportez-vous à l'[[assistant de création|$:/ChoixMenu]]. La supériorité du placement de la SideBar standard de droite consiste, compte tenu de la largeur que l'on peut lui attribuer à obtenir deux surfaces de travail simultanées et quasiment identiques ce que l'on ne peut obtenir dans toutes les autres configurations. C'est un mode de travail extrêmement pratique pour l'administrateur ou pour le rédacteur
Dans les [[palettes de couleurs|$:/palettes/Learn]], la ligne sidebar-foreground-shadow a une caractéristique exotique; Si la couleur qu'on lui donne est foncée, tous les textes des tables de la ~SideBar apparaissent en GRAS. Si au contraire la couleur de fond attribuée est claire (blanc, jaune etc.) les textes des tables sont en caractères normaux. Pourquoi ? Ou plus exactement Comment ?
\define lingo-base() $:/language/ThemeTweaks/ A placer ensuite où vous en avez besoin. Je m'en sert dans l'application [ext[TiddlyFrame|https://prolegomenes.github.io/learn/Frame.html]] au pied de certains gabarit pour indiquer quelle devra être la position de la story river suivant le gabarit choisi. <$select tiddler="$:/themes/tiddlywiki/vanilla/options/sidebarlayout"><option value="fixed-fluid"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value="fluid-fixed"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select>
{{SideBarPlus||caption}}
Important : le Shadow tiddler $:/core/macros/toc est modifié par ce plugin. Ce plugin adapte la SideBar aux écrans plus petits et invoque les widgets Action avec les liens de la Table des matières.
<table> <tr> <th align="center">Article (Tiddler)</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[SideBarPlusExamples]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link></td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table> <div class="att"> <i class="fa fa-desktop fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Cete Table des Matières contient {{{[tag[SideBarPlusExamples]count[]]}}} Tiddlers. </div>
<div class="w3-tag w3-xxlarge w3-blue" style="line-height:1.5em;"> Indispensable </div> Ce plugin vous fait économiser un temps précieux en vous évitant les constantes sauvegardes d'un tiddler rendues nécessaires pour voir les résultats obtenus après une modification, même mineure, En fait le plugin déplace l'éditeur de texte dans la SideBar, rendant ainsi visible en pleine page le rendu du tiddlers sur lequel vous travaillez (c'est à dire le tiddler en mode visu)
``` [ ] Facile [ ] <i class="fa fa-warning"></i> Pas cher ``` ;Soit : [ ] Facile [ ] <i class="fa fa-warning"></i> Pas cher <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Liens Utiles"></li> <li class="menu-item">[[Voir le plugin attaché|$:/plugins/tgrosinger/tw5-checklist]]</li> </ul> </div>
;//__Jed Carty - Samedi, 04 Mars 2017__// On peut toujours ouvrir un wiki et y ajouter du JavaScript, mais le code JS ne prendra effet qu'après le wiki aura été sauvegardé et relancé avec son nouveau contenu. De plus, le tiddler contenant le code doit être soit de type macro JavaScript et être tagué `$:/tags/RawMarkup`, soit contenu dans un widget. Dans tous les cas, la sauvegarde et le rechargement du wiki doivent être effectués avant qu'un code JS quelconque intégré ne prenne effet. Je pense que ce comportement peut être modifié mis que ce n'est pas généralement recommandé. Vous ne pouvez pas entrer de code JavaScript après que le wiki soit chargé et que ce code prenne effet pour des raisons de sécurité. ;//__BJ Dimanche, 05 Mars 2017__// On peut aussi utiliser un ifame dans un fichier tid standard: ``` <iframe sandbox = "allow-same-origin allow-scripts allow-popups allow-forms" src= """data:text/html;charset=utf-8,<script src="http://www.reddit.com/.embed?limit=5"; type="text/javascript"></script>"""/> ``` ;//__PMario Dimanche, 05 Mars 2017__// TW assainit le code JavaScript écrit dans un tiddler standard pour des raisons de sécurité. Les macros standard sont définies par `\define ... \end ..` Ces macros sont et restituent du texte ("text substitutions"). Tout ce qui se trouve entre les termes "define - end" est du wikiTexte, qui est certes puissant mais tout de même limité comparé à du code JavaScript. ''Les macros JavaScript'' peuvent emprunter toutes les possibilités de JavaScript mais restent limitées à retourner du texte. En cela, elles fonctionnent exactement de la même manière que que les ''macros wikitext''... Les macros ne sont pas en mesure de "rafraîchir" le rendu de la sortie (output) comme peuvent le faire les ''widgets''. En conséquence elles sont plus simples à utiliser et à définir mais vous aurez toujours utiliser un réglage développeur. Les macros JavaScript ont été introduites parce-que l'on en avait besoin pour traiter quelques cs particuliers. Il n'en demeure pas moins que le wikitext de TiddlyWiki reste très performant. Ces macros ne restent donc utilisées que dans quelques parties du core TW5. ;//__Jeremy Ruston Dimanche, 05 Mars 2017__// L'objectif des restrictions de sécurité de TiddlyWiki est de permettre de partager en toute sécurité le contenu entre les utilisateurs. Cela exige que le code JavaScript soit clairement identifié afin que le destinataire puisse décider s'il dispose de la confiance nécessaire ou non pour exécuter ce contenu; autoriser JavaScript en ligne (inline) dans des blocs en Wikitext rendrait impossible au destinataire de savoir s'ils peut restituer le wikitext entrant en toute sécurité. D’où le fait que les macros JavaScript sont autorisées parcequ'elles sont déjà identifiées comme étant sûres et qu'elles peuvent être bloquées si nécessaire. Le second facteur dans la conception de TiddlyWiki qui empêche l'utilisation de bibliothèques JavaScript tierces est que TiddlyWiki ne supporte pas le paradigme de développement Web traditionnel qui vise à conserver l'état des dans le DOM (c'est le paradigme popularisé il ya une décennie par jQuery). Au lieu de cela, TiddlyWiki utilise un DOM virtuel et des mises à jour différentielles (c'est le paradigme utilisé par les frameworks récents comme REACT). Le résultat c'est que TiddlyWiki ne prend généralement pas en charge simplement la suppression dans une balise de script comme les pages Web traditionnelles. Cela dit, la bibliothèque de plugins TiddlyWiki contient de nombreux exemples d'intégration correcte des bibliothèques tierces. ;//__PMario Lundi, 06 Mars 2017__// Le core TW5 ne comporte que 11 macros JvaScript et 860 macros `\define` déclarations dans l'interface utilisateur et dans les gabarits. dont environ 200 d'entre elles sont dupliquées dans les éditions TW5 traduites. Les macros se trouvent donc partout dans le noyau et nous n'avons que 11 exceptions qui ont été écrites en JavaScript. Tout le reste n'est que pure wikitext... À mon sens, c'est impressionnant. Les macros JavaScript ne peuvent pas être modifiées par la plupart des utilisateurs. Les macros standard peuvent être modifiées par tous les utilisateurs. C'est une énorme différence. Il y a une grande différence entre les macros de TiddlyWiki Classique (TWc) et TiddlyWiki5 (TW5). Ce sont deux choses totalement différentes. Les macros TW5 ne sont que des substitutions de texte sans mécanisme de rafraîchissement intégré. Les macros TWC ressemblent plus aux widgets actuels de TW5... l'analyse et le rendu d'un langage spécifique à un domaine (DLC) est un sujet complètement différent, mais réalisable. Nous avons déjà de tels plugins. Voyez par exemple des plugins tels que railroad, markdown, katex, qui peuvent vous mettre sur la voie..
Thomas Elmiger. En fonction sur ce wiki.
*Titre originel: Simple ways to write protect tiddlers *[[Source (TiddlyWiki)|https://tiddlywiki.com/#Simple%20ways%20to%20write%20protect%20tiddlers]] Vous désirez peut-être protéger certains tiddlers d'une modification accidentelle, qu'elle soit de vous-même ou de vos lecteurs. Voici quelques solutions simples. Notez tout de même que ces solutions ne protègent pas votre wiki contre une attaque volontaire. !! Utiliser une feuille de style pour empêcher l'accès en écriture des tiddlers via un tag. Créer un tiddler contenant ce qui suit et tagué `$:/tags/Stylesheet` : ``` .tc-tagged-Locked button[title="Edit this tiddler"] {display: none;} ``` Si le langage de votre wiki n'est pas l'anglais, vous devez changer le texte situé dans title (`[title="Edit this tiddler"]`)par un texte de votre composition qui sera visible au passage de la souris sur le bouton d'édition. Chaque Tiddler que vous taguerez "Locked" verra le bouton d'édition de la barre d'édition caché. Pour revenir sur les paramètres initiaux vous devez retourner dans la feuille de style et remplacer "none" par "inline". !! Using transclusion to hide your tiddler in a system tiddler *<i class="fa fa-arrow-right"></i> Open your tiddler for editing. *<i class="fa fa-arrow-right"></i> Select the title and copy. *<i class="fa fa-arrow-right"></i> Select all the tiddler text. *<i class="fa fa-arrow-right"></i> Click on the excise tool. *<i class="fa fa-arrow-right"></i> In the title box, type `$:/` and then paste the original title. *<i class="fa fa-arrow-right"></i> Use the defaults to excise and and leave a transclusion Now you can view the contents of your original tiddler, but to edit them your will have to find the the tiddler with the `$:/` prefix.
!Chaque colonne est un Tiddler et chaque ligne un champ code: `<<ColumnTable '[tag[Column Data]]'>>` <<ColumnTable '[tag[Column Data]]'>> !Chaque ligne est un Tiddler et chaque colonne est un champ code: `<<RowTable '[tag[Column Data]]'>>` <<RowTable '[tag[Column Data]]'>> !Or list both columns and rows When you do this the difference between `ColumnTable` and `RowTable` is if column headers are tiddlers with the rows stored in the fields of the tiddlers or if the row headers are tiddlers with the columns stored in fields. Cette notion est importante car les noms de champs ont plus de restrictions que les titres des Tiddlers code: `<<ColumnTable '[tag[Column Data]]' 'first second fifth'>>` <<ColumnTable '[tag[Column Data]]' 'first second fifth'>> code: `<<RowTable '[tag[Column Data]]' 'third second fifth'>>` <<RowTable '[tag[Column Data]]' 'third second fifth'>> Noter que dans les deux cas les lignes et les colonnes n'ont pas besoin d'être présentes; on peut créer un tableau qui n'utilise pas de Tiddlers existants et lorsqu'on édite les valeurs de chaque cellule, le Tiddler sera automatiquement crée. code: `<<ColumnTable """[[This Tiddler]][[Does not Exist]]""" "[[these_ones]][[must_be]][[valid]][[field_names]]">>` <<ColumnTable """[[This Tiddler]][[Does not Exist]]""" "[[these_ones]][[must_be]][[valid]][[field_names]]">>
*Gestion des ''Alias'' permettant par différents liens d'accéder à un même Tiddler dit "original". *[[Transclure un Tiddler en entier]] (avec son titre et son contenu)
Trucs et astuces. Stephan Hradek
Filter, macro, pragma, unsorted, widget
{{SliderMacro||caption}}
\define slider(label,tiddler) <$button popup="$:/state/$tiddler$" class="tc-btn-invisible"><$text text="$label$ »"/></$button> <$reveal type="nomatch" text="" default="" state="$:/state/$tiddler$" animate="yes"> {{$tiddler$}} </$reveal> \end
``` <<slider "label" "tiddler">> ``` ``` <<slider "Slider label" "Tiddler to be shown">> ``` Par exemple: ``` <<slider "Tutoriel" "Tutoriel">> ``` ;Soit: <<slider "Tutoriel" "Tutoriel">> et aussi <<slider "Index" "Index Menu">>
*This is the first line **this is a sub line ***And the third one
{{SmartCssGrid||caption}}
Exemples d'implémentations : *https://oxydum.github.io/atrium/ *https://vladocar.github.io/SMART-CSS-GRID/Smart-Grid-Demo.html *[ext[Plus d'informations sur le blog de l'auteur|http://www.vcarrer.com/2018/05/smart-css-grid.htmlhttp://www.vcarrer.com/2018/05/smart-css-grid.html]] Ce système minimum de grande autonomie.
A calc sheet to do effective calculations and much more.
{{SocialCalc||title}}
socialcalc:version:1.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 # SocialCalc Spreadsheet Control Save version:1.0 part:sheet part:edit part:audit --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.5 cell:A1:t:I:f:1 cell:B1:t:l cell:C1:t: :f:1 cell:D1:t:p cell:E1:t:l:f:1 cell:F1:t:e cell:G1:t:u cell:H1:t:t cell:I1:t: cell:J1:t:d cell:K1:t:e cell:L1:t:s cell:M1:t: cell:N1:t:v cell:O1:t:o cell:P1:t:i cell:Q1:t:x cell:R1:t: cell:S1:t:d cell:T1:t:e cell:U1:t: cell:V1:t:f cell:W1:t:e cell:X1:t:m cell:Y1:t:m cell:Z1:t:e cell:AA1:t:s cell:AB1:t: cell:AC1:t:c cell:AD1:t:o cell:AE1:t:m cell:AF1:t:m cell:AG1:t:e cell:AH1:t: cell:AI1:t:s cell:AJ1:t:i cell:AK1:t: cell:AL1:t:e cell:AM1:t:l cell:AN1:t:l cell:AO1:t:e cell:AP1:t:s cell:AQ1:t: cell:AR1:t:é cell:AS1:t:t cell:AT1:t:a cell:AU1:t:i cell:AV1:t:e cell:AW1:t:n cell:AX1:t:t cell:AY1:t: cell:AZ1:t:m cell:BA1:t:o cell:BB1:t:r cell:BC1:t:t cell:BD1:t:e cell:BE1:t:s cell:BF1:t: cell:BG1:t:m cell:BH1:t:ê cell:BI1:t:m cell:BJ1:t:e cell:BK1:t: cell:BL1:t:d cell:BM1:t:a cell:BN1:t:n cell:BO1:t:s cell:BP1:t: cell:BQ1:t:l cell:BR1:t:e cell:BS1:t: cell:BT1:t:s cell:BU1:t:o cell:BV1:t:u cell:BW1:t:v cell:BX1:t:e cell:BY1:t:n cell:BZ1:t:i cell:CA1:t:r cell:A2:t:c cell:B2:t:' cell:C2:t:e cell:D2:t:s cell:E2:t:t cell:F2:t: cell:G2:t:v cell:H2:t:o cell:I2:t:u cell:J2:t:s cell:K2:t: cell:L2:t:a cell:M2:t:u cell:N2:t:s cell:O2:t:s cell:P2:t:i cell:Q2:t: cell:R2:t:q cell:S2:t:u cell:T2:t:' cell:U2:t:i cell:V2:t:l cell:W2:t: cell:X2:t:p cell:Y2:t:l cell:Z2:t:e cell:AA2:t:u cell:AB2:t:t cell:AC2:t: cell:AD2:t:m cell:AE2:t:e cell:AF2:t:r cell:AG2:t:v cell:AH2:t:e cell:AI2:t:i cell:AJ2:t:l cell:AK2:t:l cell:AL2:t:e cell:AM2:t:u cell:AN2:t:s cell:AO2:t:e cell:AP2:t:s cell:AQ2:t: cell:AR2:t:r cell:AS2:t:e cell:AT2:t:n cell:AU2:t:c cell:AV2:t:o cell:AW2:t:n cell:AX2:t:t cell:AY2:t:r cell:AZ2:t:e cell:BA2:t:s cell:BB2:t: cell:BC2:t:d cell:BD2:t:e cell:BE2:t: cell:BF2:t:m cell:BG2:t:a cell:BH2:t: cell:BI2:t:v cell:BJ2:t:i cell:BK2:t:e cell:BL2:t: cell:BM2:t:ô cell:BN2:t: cell:BO2:t:g cell:BP2:t:o cell:BQ2:t:u cell:BR2:t:t cell:BS2:t:t cell:BT2:t:e cell:BU2:t:l cell:BV2:t:e cell:BW2:t:t cell:BX2:t:t cell:BY2:t:e cell:BZ2:t:s cell:CA2:t: cell:CB2:t: cell:A3:t:e cell:B3:t:t cell:C3:t: cell:D3:t:c cell:E3:t:e cell:F3:t:s cell:G3:t: cell:H3:t:n cell:I3:t:u cell:J3:t:a cell:K3:t:g cell:L3:t:e cell:M3:t:s cell:N3:t: cell:O3:t:c cell:P3:t:a cell:Q3:t:b cell:R3:t:r cell:S3:t:é cell:T3:t:s cell:U3:t: cell:V3:t:s cell:W3:t:e cell:X3:t: cell:Y3:t:p cell:Z3:t:r cell:AA3:t:e cell:AB3:t:n cell:AC3:t:n cell:AD3:t:e cell:AE3:t:n cell:AF3:t:t cell:AG3:t: cell:AH3:t:à cell:AI3:t: cell:AJ3:t:h cell:AK3:t:e cell:AL3:t:n cell:AM3:t:n cell:AN3:t:i cell:AO3:t:r cell:AP3:t: cell:AQ3:t:t cell:AR3:t:o cell:AS3:t:u cell:AT3:t:t cell:AU3:t: cell:AV3:t:u cell:AW3:t:n cell:AX3:t: cell:AY3:t:u cell:AZ3:t:n cell:BA3:t:i cell:BB3:t:v cell:BC3:t:e cell:BD3:t:r cell:BE3:t:s cell:BF3:t: cell:BG3:t:d cell:BH3:t:e cell:BI3:t: cell:BJ3:t:v cell:BK3:t:i cell:BL3:t:l cell:BM3:t:l cell:BN3:t:e cell:BO3:t:s cell:BP3:t: cell:BQ3:t:a cell:BR3:t:u cell:BS3:t:r cell:BT3:t:i cell:BU3:t:c cell:BV3:t:u cell:BW3:t:l cell:BX3:t:a cell:BY3:t:i cell:BZ3:t:r cell:CA3:t:e cell:CB3:t:s cell:A4:t:é cell:B4:t:c cell:C4:t:o cell:D4:t:u cell:E4:t:t cell:F4:t:e cell:G4:t: cell:H4:t:s cell:I4:t:' cell:J4:t:i cell:K4:t:l cell:L4:t: cell:M4:t:p cell:N4:t:l cell:O4:t:e cell:P4:t:u cell:Q4:t:t cell:R4:t: cell:S4:t:t cell:T4:t:a cell:U4:t:n cell:V4:t:d cell:W4:t:i cell:X4:t:s cell:Y4:t: cell:Z4:t:q cell:AA4:t:u cell:AB4:t:e cell:AC4:t: cell:AD4:t:l cell:AE4:t:e cell:AF4:t: cell:AG4:t:r cell:AH4:t:e cell:AI4:t:g cell:AJ4:t:r cell:AK4:t:e cell:AL4:t:t cell:AM4:t: cell:AN4:t:e cell:AO4:t:t cell:AP4:t: cell:AQ4:t:l cell:AR4:t:e cell:AS4:t: cell:AT4:t:d cell:AU4:t:é cell:AV4:t:d cell:AW4:t:a cell:AX4:t:i cell:AY4:t:n cell:AZ4:t: cell:BA4:t:p cell:BB4:t:l cell:BC4:t:e cell:BD4:t:u cell:BE4:t:r cell:BF4:t:e cell:BG4:t:n cell:BH4:t:t cell:BI4:t: cell:BJ4:t:u cell:BK4:t:n cell:BL4:t:e cell:BM4:t: cell:BN4:t:a cell:BO4:t:n cell:BP4:t:c cell:BQ4:t:i cell:BR4:t:e cell:BS4:t:n cell:BT4:t:n cell:BU4:t:e cell:BV4:t: cell:BW4:t:m cell:BX4:t:u cell:BY4:t:s cell:BZ4:t:i cell:CA4:t:q cell:CB4:t:u cell:CC4:t:e cell:A5:t:é cell:B5:t:c cell:C5:t:o cell:D5:t:u cell:E5:t:t cell:F5:t:e cell:G5:t: cell:H5:t:t cell:I5:t:o cell:J5:t:m cell:K5:t:b cell:L5:t:e cell:M5:t:r cell:N5:t: cell:O5:t:l cell:P5:t:e cell:Q5:t:s cell:R5:t: cell:S5:t:l cell:T5:t:i cell:U5:t:e cell:V5:t:n cell:W5:t:s cell:X5:t: cell:Y5:t:q cell:Z5:t:u cell:AA5:t:i cell:AB5:t: cell:AC5:t:t cell:AD5:t:e cell:AE5:t: cell:AF5:t:r cell:AG5:t:e cell:AH5:t:t cell:AI5:t:i cell:AJ5:t:e cell:AK5:t:n cell:AL5:t:n cell:AM5:t:e cell:AN5:t:n cell:AO5:t:t cell:AP5:t: cell:AQ5:t:e cell:AR5:t:n cell:AS5:t: cell:AT5:t:h cell:AU5:t:a cell:AV5:t:u cell:AW5:t:t cell:AX5:t: cell:AY5:t:e cell:AZ5:t:t cell:BA5:t: cell:BB5:t:e cell:BC5:t:n cell:BD5:t: cell:BE5:t:b cell:BF5:t:a cell:BG5:t:s cell:E8:vtf:t:I:a1:f:1 cell:F8:f:1 cell:G8:f:1 cell:H8:f:1 cell:I8:f:1 cell:J8:f:1 cell:K8:f:1 cell:L8:f:1 cell:M8:f:1 cell:N8:f:1 cell:O8:f:1 cell:P8:f:1 cell:Q8:vtf:t:c:a2:f:1 cell:R8:f:1 cell:S8:f:1 cell:T8:f:1 cell:U8:f:1 cell:V8:vtf:t:e:a3:f:1 cell:W8:f:1 cell:X8:f:1 cell:Y8:f:1 cell:Z8:f:1 cell:AA8:vtf:t:é:a4:f:1 cell:AB8:f:1 cell:AC8:f:1 cell:AD8:f:1 cell:AE8:f:1 cell:AF8:vtf:t:é:a5:f:1 cell:AG8:f:1 cell:AH8:f:1 cell:AI8:f:1 cell:AJ8:f:1 cell:AK8:f:1 cell:AL8:f:1 cell:AM8:f:1 cell:AN8:f:1 cell:AO8:f:1 cell:AP8:f:1 cell:AQ8:f:1 cell:AR8:f:1 cell:AS8:f:1 cell:AT8:f:1 cell:AU8:f:1 cell:AV8:f:1 cell:AW8:f:1 cell:AX8:f:1 cell:AY8:f:1 cell:AZ8:f:1 cell:BA8:f:1 cell:BB8:f:1 cell:BC8:f:1 cell:BD8:f:1 cell:BE8:f:1 cell:BF8:f:1 cell:BG8:f:1 cell:BH8:f:1 cell:BI8:f:1 cell:BJ8:f:1 cell:BK8:f:1 cell:BL8:f:1 cell:BM8:f:1 cell:BN8:f:1 cell:BO8:f:1 cell:BP8:f:1 cell:BQ8:f:1 cell:BR8:f:1 cell:BS8:f:1 cell:BT8:f:1 cell:BU8:f:1 cell:BV8:f:1 cell:BW8:f:1 cell:BX8:f:1 cell:BY8:f:1 cell:BZ8:f:1 cell:CA8:f:1 cell:CB8:f:1 cell:CC8:f:1 cell:E9:f:1 cell:F9:vtf:t:l:b1:f:1 cell:G9:f:1 cell:H9:f:1 cell:I9:f:1 cell:J9:f:1 cell:K9:f:1 cell:L9:f:1 cell:M9:f:1 cell:N9:f:1 cell:O9:f:1 cell:P9:f:1 cell:Q9:vtf:t:':b2:f:1 cell:R9:f:1 cell:S9:f:1 cell:T9:f:1 cell:U9:f:1 cell:V9:f:1 cell:W9:vtf:t:t:b3:f:1 cell:X9:f:1 cell:Y9:f:1 cell:Z9:f:1 cell:AA9:f:1 cell:AB9:vtf:t:c:b4:f:1 cell:AC9:f:1 cell:AD9:f:1 cell:AE9:f:1 cell:AF9:vtf:t:c:b5:f:1 cell:AG9:f:1 cell:AH9:f:1 cell:AI9:f:1 cell:AJ9:f:1 cell:AK9:f:1 cell:AL9:f:1 cell:AM9:f:1 cell:AN9:f:1 cell:AO9:f:1 cell:AP9:f:1 cell:AQ9:f:1 cell:AR9:f:1 cell:AS9:f:1 cell:AT9:f:1 cell:AU9:f:1 cell:AV9:f:1 cell:AW9:f:1 cell:AX9:f:1 cell:AY9:f:1 cell:AZ9:f:1 cell:BA9:f:1 cell:BB9:f:1 cell:BC9:f:1 cell:BD9:f:1 cell:BE9:f:1 cell:BF9:f:1 cell:BG9:f:1 cell:BH9:f:1 cell:BI9:f:1 cell:BJ9:f:1 cell:BK9:f:1 cell:BL9:f:1 cell:BM9:f:1 cell:BN9:f:1 cell:BO9:f:1 cell:BP9:f:1 cell:BQ9:f:1 cell:BR9:f:1 cell:BS9:f:1 cell:BT9:f:1 cell:BU9:f:1 cell:BV9:f:1 cell:BW9:f:1 cell:BX9:f:1 cell:BY9:f:1 cell:BZ9:f:1 cell:CA9:f:1 cell:CB9:f:1 cell:CC9:f:1 cell:E10:f:1 cell:F10:f:1 cell:G10:vtf:t: :c1:f:1 cell:H10:f:1 cell:I10:f:1 cell:J10:f:1 cell:K10:f:1 cell:L10:f:1 cell:M10:f:1 cell:N10:f:1 cell:O10:f:1 cell:P10:f:1 cell:Q10:f:1 cell:R10:vtf:t:e:c2:f:1 cell:S10:f:1 cell:T10:f:1 cell:U10:f:1 cell:V10:f:1 cell:W10:f:1 cell:X10:vtf:t: :c3:f:1 cell:Y10:f:1 cell:Z10:f:1 cell:AA10:f:1 cell:AB10:vtf:t:o:c4:f:1 cell:AC10:f:1 cell:AD10:f:1 cell:AE10:f:1 cell:AF10:f:1 cell:AG10:vtf:t:o:c5:f:1 cell:AH10:f:1 cell:AI10:f:1 cell:AJ10:f:1 cell:AK10:f:1 cell:AL10:f:1 cell:AM10:f:1 cell:AN10:f:1 cell:AO10:f:1 cell:AP10:f:1 cell:AQ10:f:1 cell:AR10:f:1 cell:AS10:f:1 cell:AT10:f:1 cell:AU10:f:1 cell:AV10:f:1 cell:AW10:f:1 cell:AX10:f:1 cell:AY10:f:1 cell:AZ10:f:1 cell:BA10:f:1 cell:BB10:f:1 cell:BC10:f:1 cell:BD10:f:1 cell:BE10:f:1 cell:BF10:f:1 cell:BG10:f:1 cell:BH10:f:1 cell:BI10:f:1 cell:BJ10:f:1 cell:BK10:f:1 cell:BL10:f:1 cell:BM10:f:1 cell:BN10:f:1 cell:BO10:f:1 cell:BP10:f:1 cell:BQ10:f:1 cell:BR10:f:1 cell:BS10:f:1 cell:BT10:f:1 cell:BU10:f:1 cell:BV10:f:1 cell:BW10:f:1 cell:BX10:f:1 cell:BY10:f:1 cell:BZ10:f:1 cell:CA10:f:1 cell:CB10:f:1 cell:CC10:f:1 cell:E11:f:1 cell:F11:f:1 cell:G11:vtf:t:p:d1:f:1 cell:H11:f:1 cell:I11:f:1 cell:J11:f:1 cell:K11:f:1 cell:L11:f:1 cell:M11:f:1 cell:N11:f:1 cell:O11:f:1 cell:P11:f:1 cell:Q11:f:1 cell:R11:vtf:t:s:d2:f:1 cell:S11:f:1 cell:T11:f:1 cell:U11:f:1 cell:V11:f:1 cell:W11:f:1 cell:X11:vtf:t:c:d3:f:1 cell:Y11:f:1 cell:Z11:f:1 cell:AA11:f:1 cell:AB11:f:1 cell:AC11:vtf:t:u:d4:f:1 cell:AD11:f:1 cell:AE11:f:1 cell:AF11:f:1 cell:AG11:f:1 cell:AH11:vtf:t:u:d5:f:1 cell:AI11:f:1 cell:AJ11:f:1 cell:AK11:f:1 cell:AL11:f:1 cell:AM11:f:1 cell:AN11:f:1 cell:AO11:f:1 cell:AP11:f:1 cell:AQ11:f:1 cell:AR11:f:1 cell:AS11:f:1 cell:AT11:f:1 cell:AU11:f:1 cell:AV11:f:1 cell:AW11:f:1 cell:AX11:f:1 cell:AY11:f:1 cell:AZ11:f:1 cell:BA11:f:1 cell:BB11:f:1 cell:BC11:f:1 cell:BD11:f:1 cell:BE11:f:1 cell:BF11:f:1 cell:BG11:f:1 cell:BH11:f:1 cell:BI11:f:1 cell:BJ11:f:1 cell:BK11:f:1 cell:BL11:f:1 cell:BM11:f:1 cell:BN11:f:1 cell:BO11:f:1 cell:BP11:f:1 cell:BQ11:f:1 cell:BR11:f:1 cell:BS11:f:1 cell:BT11:f:1 cell:BU11:f:1 cell:BV11:f:1 cell:BW11:f:1 cell:BX11:f:1 cell:BY11:f:1 cell:BZ11:f:1 cell:CA11:f:1 cell:CB11:f:1 cell:CC11:f:1 cell:E12:f:1 cell:F12:f:1 cell:G12:f:1 cell:H12:vtf:t:l:e1:f:1 cell:I12:f:1 cell:J12:f:1 cell:K12:f:1 cell:L12:f:1 cell:M12:f:1 cell:N12:f:1 cell:O12:f:1 cell:P12:f:1 cell:Q12:f:1 cell:R12:f:1 cell:S12:vtf:t:t:e2:f:1 cell:T12:f:1 cell:U12:f:1 cell:V12:f:1 cell:W12:f:1 cell:X12:f:1 cell:Y12:vtf:t:e:e3:f:1 cell:Z12:f:1 cell:AA12:f:1 cell:AB12:f:1 cell:AC12:vtf:t:t:e4:f:1 cell:AD12:f:1 cell:AE12:f:1 cell:AF12:f:1 cell:AG12:f:1 cell:AH12:f:1 cell:AI12:vtf:t:t:e5:f:1 cell:AJ12:f:1 cell:AK12:f:1 cell:AL12:f:1 cell:AM12:f:1 cell:AN12:f:1 cell:AO12:f:1 cell:AP12:f:1 cell:AQ12:f:1 cell:AR12:f:1 cell:AS12:f:1 cell:AT12:f:1 cell:AU12:f:1 cell:AV12:f:1 cell:AW12:f:1 cell:AX12:f:1 cell:AY12:f:1 cell:AZ12:f:1 cell:BA12:f:1 cell:BB12:f:1 cell:BC12:f:1 cell:BD12:f:1 cell:BE12:f:1 cell:BF12:f:1 cell:BG12:f:1 cell:BH12:f:1 cell:BI12:f:1 cell:BJ12:f:1 cell:BK12:f:1 cell:BL12:f:1 cell:BM12:f:1 cell:BN12:f:1 cell:BO12:f:1 cell:BP12:f:1 cell:BQ12:f:1 cell:BR12:f:1 cell:BS12:f:1 cell:BT12:f:1 cell:BU12:f:1 cell:BV12:f:1 cell:BW12:f:1 cell:BX12:f:1 cell:BY12:f:1 cell:BZ12:f:1 cell:CA12:f:1 cell:CB12:f:1 cell:CC12:f:1 cell:E13:f:1 cell:F13:f:1 cell:G13:f:1 cell:H13:f:1 cell:I13:vtf:t:e:f1:f:1 cell:J13:f:1 cell:K13:f:1 cell:L13:f:1 cell:M13:f:1 cell:N13:f:1 cell:O13:f:1 cell:P13:f:1 cell:Q13:f:1 cell:R13:f:1 cell:S13:vtf:t: :f2:f:1 cell:T13:f:1 cell:U13:f:1 cell:V13:f:1 cell:W13:f:1 cell:X13:f:1 cell:Y13:vtf:t:s:f3:f:1 cell:Z13:f:1 cell:AA13:f:1 cell:AB13:f:1 cell:AC13:f:1 cell:AD13:vtf:t:e:f4:f:1 cell:AE13:f:1 cell:AF13:f:1 cell:AG13:f:1 cell:AH13:f:1 cell:AI13:vtf:t:e:f5:f:1 cell:AJ13:f:1 cell:AK13:f:1 cell:AL13:f:1 cell:AM13:f:1 cell:AN13:f:1 cell:AO13:f:1 cell:AP13:f:1 cell:AQ13:f:1 cell:AR13:f:1 cell:AS13:f:1 cell:AT13:f:1 cell:AU13:f:1 cell:AV13:f:1 cell:AW13:f:1 cell:AX13:f:1 cell:AY13:f:1 cell:AZ13:f:1 cell:BA13:f:1 cell:BB13:f:1 cell:BC13:f:1 cell:BD13:f:1 cell:BE13:f:1 cell:BF13:f:1 cell:BG13:f:1 cell:BH13:f:1 cell:BI13:f:1 cell:BJ13:f:1 cell:BK13:f:1 cell:BL13:f:1 cell:BM13:f:1 cell:BN13:f:1 cell:BO13:f:1 cell:BP13:f:1 cell:BQ13:f:1 cell:BR13:f:1 cell:BS13:f:1 cell:BT13:f:1 cell:BU13:f:1 cell:BV13:f:1 cell:BW13:f:1 cell:BX13:f:1 cell:BY13:f:1 cell:BZ13:f:1 cell:CA13:f:1 cell:CB13:f:1 cell:CC13:f:1 cell:E14:f:1 cell:F14:f:1 cell:G14:f:1 cell:H14:f:1 cell:I14:vtf:t:u:g1:f:1 cell:J14:f:1 cell:K14:f:1 cell:L14:f:1 cell:M14:f:1 cell:N14:f:1 cell:O14:f:1 cell:P14:f:1 cell:Q14:f:1 cell:R14:f:1 cell:S14:f:1 cell:T14:vtf:t:v:g2:f:1 cell:U14:f:1 cell:V14:f:1 cell:W14:f:1 cell:X14:f:1 cell:Y14:f:1 cell:Z14:vtf:t: :g3:f:1 cell:AA14:f:1 cell:AB14:f:1 cell:AC14:f:1 cell:AD14:f:1 cell:AE14:vtf:t: :g4:f:1 cell:AF14:f:1 cell:AG14:f:1 cell:AH14:f:1 cell:AI14:f:1 cell:AJ14:vtf:t: :g5:f:1 cell:AK14:f:1 cell:AL14:f:1 cell:AM14:f:1 cell:AN14:f:1 cell:AO14:f:1 cell:AP14:f:1 cell:AQ14:f:1 cell:AR14:f:1 cell:AS14:f:1 cell:AT14:f:1 cell:AU14:f:1 cell:AV14:f:1 cell:AW14:f:1 cell:AX14:f:1 cell:AY14:f:1 cell:AZ14:f:1 cell:BA14:f:1 cell:BB14:f:1 cell:BC14:f:1 cell:BD14:f:1 cell:BE14:f:1 cell:BF14:f:1 cell:BG14:f:1 cell:BH14:f:1 cell:BI14:f:1 cell:BJ14:f:1 cell:BK14:f:1 cell:BL14:f:1 cell:BM14:f:1 cell:BN14:f:1 cell:BO14:f:1 cell:BP14:f:1 cell:BQ14:f:1 cell:BR14:f:1 cell:BS14:f:1 cell:BT14:f:1 cell:BU14:f:1 cell:BV14:f:1 cell:BW14:f:1 cell:BX14:f:1 cell:BY14:f:1 cell:BZ14:f:1 cell:CA14:f:1 cell:CB14:f:1 cell:CC14:f:1 cell:E15:f:1 cell:F15:f:1 cell:G15:f:1 cell:H15:f:1 cell:I15:f:1 cell:J15:vtf:t:t:h1:f:1 cell:K15:f:1 cell:L15:f:1 cell:M15:f:1 cell:N15:f:1 cell:O15:f:1 cell:P15:f:1 cell:Q15:f:1 cell:R15:f:1 cell:S15:f:1 cell:T15:vtf:t:o:h2:f:1 cell:U15:f:1 cell:V15:f:1 cell:W15:f:1 cell:X15:f:1 cell:Y15:f:1 cell:Z15:vtf:t:n:h3:f:1 cell:AA15:f:1 cell:AB15:f:1 cell:AC15:f:1 cell:AD15:f:1 cell:AE15:vtf:t:s:h4:f:1 cell:AF15:f:1 cell:AG15:f:1 cell:AH15:f:1 cell:AI15:f:1 cell:AJ15:f:1 cell:AK15:vtf:t:t:h5:f:1 cell:AL15:f:1 cell:AM15:f:1 cell:AN15:f:1 cell:AO15:f:1 cell:AP15:f:1 cell:AQ15:f:1 cell:AR15:f:1 cell:AS15:f:1 cell:AT15:f:1 cell:AU15:f:1 cell:AV15:f:1 cell:AW15:f:1 cell:AX15:f:1 cell:AY15:f:1 cell:AZ15:f:1 cell:BA15:f:1 cell:BB15:f:1 cell:BC15:f:1 cell:BD15:f:1 cell:BE15:f:1 cell:BF15:f:1 cell:BG15:f:1 cell:BH15:f:1 cell:BI15:f:1 cell:BJ15:f:1 cell:BK15:f:1 cell:BL15:f:1 cell:BM15:f:1 cell:BN15:f:1 cell:BO15:f:1 cell:BP15:f:1 cell:BQ15:f:1 cell:BR15:f:1 cell:BS15:f:1 cell:BT15:f:1 cell:BU15:f:1 cell:BV15:f:1 cell:BW15:f:1 cell:BX15:f:1 cell:BY15:f:1 cell:BZ15:f:1 cell:CA15:f:1 cell:CB15:f:1 cell:CC15:f:1 cell:E16:f:1 cell:F16:f:1 cell:G16:f:1 cell:H16:f:1 cell:I16:f:1 cell:J16:vtf:t: :i1:f:1 cell:K16:f:1 cell:L16:f:1 cell:M16:f:1 cell:N16:f:1 cell:O16:f:1 cell:P16:f:1 cell:Q16:f:1 cell:R16:f:1 cell:S16:f:1 cell:T16:f:1 cell:U16:vtf:t:u:i2:f:1 cell:V16:f:1 cell:W16:f:1 cell:X16:f:1 cell:Y16:f:1 cell:Z16:vtf:t:u:i3:f:1 cell:AA16:f:1 cell:AB16:f:1 cell:AC16:f:1 cell:AD16:f:1 cell:AE16:f:1 cell:AF16:vtf:t:':i4:f:1 cell:AG16:f:1 cell:AH16:f:1 cell:AI16:f:1 cell:AJ16:f:1 cell:AK16:f:1 cell:AL16:vtf:t:o:i5:f:1 cell:AM16:f:1 cell:AN16:f:1 cell:AO16:f:1 cell:AP16:f:1 cell:AQ16:f:1 cell:AR16:f:1 cell:AS16:f:1 cell:AT16:f:1 cell:AU16:f:1 cell:AV16:f:1 cell:AW16:f:1 cell:AX16:f:1 cell:AY16:f:1 cell:AZ16:f:1 cell:BA16:f:1 cell:BB16:f:1 cell:BC16:f:1 cell:BD16:f:1 cell:BE16:f:1 cell:BF16:f:1 cell:BG16:f:1 cell:BH16:f:1 cell:BI16:f:1 cell:BJ16:f:1 cell:BK16:f:1 cell:BL16:f:1 cell:BM16:f:1 cell:BN16:f:1 cell:BO16:f:1 cell:BP16:f:1 cell:BQ16:f:1 cell:BR16:f:1 cell:BS16:f:1 cell:BT16:f:1 cell:BU16:f:1 cell:BV16:f:1 cell:BW16:f:1 cell:BX16:f:1 cell:BY16:f:1 cell:BZ16:f:1 cell:CA16:f:1 cell:CB16:f:1 cell:CC16:f:1 cell:E17:f:1 cell:F17:f:1 cell:G17:f:1 cell:H17:f:1 cell:I17:f:1 cell:J17:vtf:t:d:j1:f:1 cell:K17:f:1 cell:L17:f:1 cell:M17:f:1 cell:N17:f:1 cell:O17:f:1 cell:P17:f:1 cell:Q17:f:1 cell:R17:f:1 cell:S17:f:1 cell:T17:f:1 cell:U17:vtf:t:s:j2:f:1 cell:V17:f:1 cell:W17:f:1 cell:X17:f:1 cell:Y17:f:1 cell:Z17:f:1 cell:AA17:vtf:t:a:j3:f:1 cell:AB17:f:1 cell:AC17:f:1 cell:AD17:f:1 cell:AE17:f:1 cell:AF17:vtf:t:i:j4:f:1 cell:AG17:f:1 cell:AH17:f:1 cell:AI17:f:1 cell:AJ17:f:1 cell:AK17:f:1 cell:AL17:f:1 cell:AM17:vtf:t:m:j5:f:1 cell:AN17:f:1 cell:AO17:f:1 cell:AP17:f:1 cell:AQ17:f:1 cell:AR17:f:1 cell:AS17:f:1 cell:AT17:f:1 cell:AU17:f:1 cell:AV17:f:1 cell:AW17:f:1 cell:AX17:f:1 cell:AY17:f:1 cell:AZ17:f:1 cell:BA17:f:1 cell:BB17:f:1 cell:BC17:f:1 cell:BD17:f:1 cell:BE17:f:1 cell:BF17:f:1 cell:BG17:f:1 cell:BH17:f:1 cell:BI17:f:1 cell:BJ17:f:1 cell:BK17:f:1 cell:BL17:f:1 cell:BM17:f:1 cell:BN17:f:1 cell:BO17:f:1 cell:BP17:f:1 cell:BQ17:f:1 cell:BR17:f:1 cell:BS17:f:1 cell:BT17:f:1 cell:BU17:f:1 cell:BV17:f:1 cell:BW17:f:1 cell:BX17:f:1 cell:BY17:f:1 cell:BZ17:f:1 cell:CA17:f:1 cell:CB17:f:1 cell:CC17:f:1 cell:E18:f:1 cell:F18:f:1 cell:G18:f:1 cell:H18:f:1 cell:I18:f:1 cell:J18:vtf:t:e:k1:f:1 cell:K18:f:1 cell:L18:f:1 cell:M18:f:1 cell:N18:f:1 cell:O18:f:1 cell:P18:f:1 cell:Q18:f:1 cell:R18:f:1 cell:S18:f:1 cell:T18:f:1 cell:U18:f:1 cell:V18:vtf:t: :k2:f:1 cell:W18:f:1 cell:X18:f:1 cell:Y18:f:1 cell:Z18:f:1 cell:AA18:f:1 cell:AB18:vtf:t:g:k3:f:1 cell:AC18:f:1 cell:AD18:f:1 cell:AE18:f:1 cell:AF18:f:1 cell:AG18:vtf:t:l:k4:f:1 cell:AH18:f:1 cell:AI18:f:1 cell:AJ18:f:1 cell:AK18:f:1 cell:AL18:f:1 cell:AM18:f:1 cell:AN18:vtf:t:b:k5:f:1 cell:AO18:f:1 cell:AP18:f:1 cell:AQ18:f:1 cell:AR18:f:1 cell:AS18:f:1 cell:AT18:f:1 cell:AU18:f:1 cell:AV18:f:1 cell:AW18:f:1 cell:AX18:f:1 cell:AY18:f:1 cell:AZ18:f:1 cell:BA18:f:1 cell:BB18:f:1 cell:BC18:f:1 cell:BD18:f:1 cell:BE18:f:1 cell:BF18:f:1 cell:BG18:f:1 cell:BH18:f:1 cell:BI18:f:1 cell:BJ18:f:1 cell:BK18:f:1 cell:BL18:f:1 cell:BM18:f:1 cell:BN18:f:1 cell:BO18:f:1 cell:BP18:f:1 cell:BQ18:f:1 cell:BR18:f:1 cell:BS18:f:1 cell:BT18:f:1 cell:BU18:f:1 cell:BV18:f:1 cell:BW18:f:1 cell:BX18:f:1 cell:BY18:f:1 cell:BZ18:f:1 cell:CA18:f:1 cell:CB18:f:1 cell:CC18:f:1 cell:E19:f:1 cell:F19:f:1 cell:G19:f:1 cell:H19:f:1 cell:I19:f:1 cell:J19:f:1 cell:K19:vtf:t:s:l1:f:1 cell:L19:f:1 cell:M19:f:1 cell:N19:f:1 cell:O19:f:1 cell:P19:f:1 cell:Q19:f:1 cell:R19:f:1 cell:S19:f:1 cell:T19:f:1 cell:U19:f:1 cell:V19:vtf:t:a:l2:f:1 cell:W19:f:1 cell:X19:f:1 cell:Y19:f:1 cell:Z19:f:1 cell:AA19:f:1 cell:AB19:f:1 cell:AC19:vtf:t:e:l3:f:1 cell:AD19:f:1 cell:AE19:f:1 cell:AF19:f:1 cell:AG19:vtf:t: :l4:f:1 cell:AH19:f:1 cell:AI19:f:1 cell:AJ19:f:1 cell:AK19:f:1 cell:AL19:f:1 cell:AM19:f:1 cell:AN19:vtf:t:e:l5:f:1 cell:AO19:f:1 cell:AP19:f:1 cell:AQ19:f:1 cell:AR19:f:1 cell:AS19:f:1 cell:AT19:f:1 cell:AU19:f:1 cell:AV19:f:1 cell:AW19:f:1 cell:AX19:f:1 cell:AY19:f:1 cell:AZ19:f:1 cell:BA19:f:1 cell:BB19:f:1 cell:BC19:f:1 cell:BD19:f:1 cell:BE19:f:1 cell:BF19:f:1 cell:BG19:f:1 cell:BH19:f:1 cell:BI19:f:1 cell:BJ19:f:1 cell:BK19:f:1 cell:BL19:f:1 cell:BM19:f:1 cell:BN19:f:1 cell:BO19:f:1 cell:BP19:f:1 cell:BQ19:f:1 cell:BR19:f:1 cell:BS19:f:1 cell:BT19:f:1 cell:BU19:f:1 cell:BV19:f:1 cell:BW19:f:1 cell:BX19:f:1 cell:BY19:f:1 cell:BZ19:f:1 cell:CA19:f:1 cell:CB19:f:1 cell:CC19:f:1 cell:E20:f:1 cell:F20:f:1 cell:G20:f:1 cell:H20:f:1 cell:I20:f:1 cell:J20:f:1 cell:K20:vtf:t: :m1:f:1 cell:L20:f:1 cell:M20:f:1 cell:N20:f:1 cell:O20:f:1 cell:P20:f:1 cell:Q20:f:1 cell:R20:f:1 cell:S20:f:1 cell:T20:f:1 cell:U20:f:1 cell:V20:vtf:t:u:m2:f:1 cell:W20:f:1 cell:X20:f:1 cell:Y20:f:1 cell:Z20:f:1 cell:AA20:f:1 cell:AB20:f:1 cell:AC20:vtf:t:s:m3:f:1 cell:AD20:f:1 cell:AE20:f:1 cell:AF20:f:1 cell:AG20:f:1 cell:AH20:vtf:t:p:m4:f:1 cell:AI20:f:1 cell:AJ20:f:1 cell:AK20:f:1 cell:AL20:f:1 cell:AM20:f:1 cell:AN20:f:1 cell:AO20:vtf:t:r:m5:f:1 cell:AP20:f:1 cell:AQ20:f:1 cell:AR20:f:1 cell:AS20:f:1 cell:AT20:f:1 cell:AU20:f:1 cell:AV20:f:1 cell:AW20:f:1 cell:AX20:f:1 cell:AY20:f:1 cell:AZ20:f:1 cell:BA20:f:1 cell:BB20:f:1 cell:BC20:f:1 cell:BD20:f:1 cell:BE20:f:1 cell:BF20:f:1 cell:BG20:f:1 cell:BH20:f:1 cell:BI20:f:1 cell:BJ20:f:1 cell:BK20:f:1 cell:BL20:f:1 cell:BM20:f:1 cell:BN20:f:1 cell:BO20:f:1 cell:BP20:f:1 cell:BQ20:f:1 cell:BR20:f:1 cell:BS20:f:1 cell:BT20:f:1 cell:BU20:f:1 cell:BV20:f:1 cell:BW20:f:1 cell:BX20:f:1 cell:BY20:f:1 cell:BZ20:f:1 cell:CA20:f:1 cell:CB20:f:1 cell:CC20:f:1 cell:E21:f:1 cell:F21:f:1 cell:G21:f:1 cell:H21:f:1 cell:I21:f:1 cell:J21:f:1 cell:K21:f:1 cell:L21:vtf:t:v:n1:f:1 cell:M21:f:1 cell:N21:f:1 cell:O21:f:1 cell:P21:f:1 cell:Q21:f:1 cell:R21:f:1 cell:S21:f:1 cell:T21:f:1 cell:U21:f:1 cell:V21:f:1 cell:W21:vtf:t:s:n2:f:1 cell:X21:f:1 cell:Y21:f:1 cell:Z21:f:1 cell:AA21:f:1 cell:AB21:f:1 cell:AC21:f:1 cell:AD21:vtf:t: :n3:f:1 cell:AE21:f:1 cell:AF21:f:1 cell:AG21:f:1 cell:AH21:f:1 cell:AI21:vtf:t:l:n4:f:1 cell:AJ21:f:1 cell:AK21:f:1 cell:AL21:f:1 cell:AM21:f:1 cell:AN21:f:1 cell:AO21:f:1 cell:AP21:vtf:t: :n5:f:1 cell:AQ21:f:1 cell:AR21:f:1 cell:AS21:f:1 cell:AT21:f:1 cell:AU21:f:1 cell:AV21:f:1 cell:AW21:f:1 cell:AX21:f:1 cell:AY21:f:1 cell:AZ21:f:1 cell:BA21:f:1 cell:BB21:f:1 cell:BC21:f:1 cell:BD21:f:1 cell:BE21:f:1 cell:BF21:f:1 cell:BG21:f:1 cell:BH21:f:1 cell:BI21:f:1 cell:BJ21:f:1 cell:BK21:f:1 cell:BL21:f:1 cell:BM21:f:1 cell:BN21:f:1 cell:BO21:f:1 cell:BP21:f:1 cell:BQ21:f:1 cell:BR21:f:1 cell:BS21:f:1 cell:BT21:f:1 cell:BU21:f:1 cell:BV21:f:1 cell:BW21:f:1 cell:BX21:f:1 cell:BY21:f:1 cell:BZ21:f:1 cell:CA21:f:1 cell:CB21:f:1 cell:CC21:f:1 cell:E22:f:1 cell:F22:f:1 cell:G22:f:1 cell:H22:f:1 cell:I22:f:1 cell:J22:f:1 cell:K22:f:1 cell:L22:vtf:t:o:o1:f:1 cell:M22:f:1 cell:N22:f:1 cell:O22:f:1 cell:P22:f:1 cell:Q22:f:1 cell:R22:f:1 cell:S22:f:1 cell:T22:f:1 cell:U22:f:1 cell:V22:f:1 cell:W22:vtf:t:s:o2:f:1 cell:X22:f:1 cell:Y22:f:1 cell:Z22:f:1 cell:AA22:f:1 cell:AB22:f:1 cell:AC22:f:1 cell:AD22:f:1 cell:AE22:vtf:t:c:o3:f:1 cell:AF22:f:1 cell:AG22:f:1 cell:AH22:f:1 cell:AI22:f:1 cell:AJ22:vtf:t:e:o4:f:1 cell:AK22:f:1 cell:AL22:f:1 cell:AM22:f:1 cell:AN22:f:1 cell:AO22:f:1 cell:AP22:f:1 cell:AQ22:vtf:t:l:o5:f:1 cell:AR22:f:1 cell:AS22:f:1 cell:AT22:f:1 cell:AU22:f:1 cell:AV22:f:1 cell:AW22:f:1 cell:AX22:f:1 cell:AY22:f:1 cell:AZ22:f:1 cell:BA22:f:1 cell:BB22:f:1 cell:BC22:f:1 cell:BD22:f:1 cell:BE22:f:1 cell:BF22:f:1 cell:BG22:f:1 cell:BH22:f:1 cell:BI22:f:1 cell:BJ22:f:1 cell:BK22:f:1 cell:BL22:f:1 cell:BM22:f:1 cell:BN22:f:1 cell:BO22:f:1 cell:BP22:f:1 cell:BQ22:f:1 cell:BR22:f:1 cell:BS22:f:1 cell:BT22:f:1 cell:BU22:f:1 cell:BV22:f:1 cell:BW22:f:1 cell:BX22:f:1 cell:BY22:f:1 cell:BZ22:f:1 cell:CA22:f:1 cell:CB22:f:1 cell:CC22:f:1 cell:E23:f:1 cell:F23:f:1 cell:G23:f:1 cell:H23:f:1 cell:I23:f:1 cell:J23:f:1 cell:K23:f:1 cell:L23:f:1 cell:M23:vtf:t:i:p1:f:1 cell:N23:f:1 cell:O23:f:1 cell:P23:f:1 cell:Q23:f:1 cell:R23:f:1 cell:S23:f:1 cell:T23:f:1 cell:U23:f:1 cell:V23:f:1 cell:W23:f:1 cell:X23:vtf:t:i:p2:f:1 cell:Y23:f:1 cell:Z23:f:1 cell:AA23:f:1 cell:AB23:f:1 cell:AC23:f:1 cell:AD23:f:1 cell:AE23:vtf:t:a:p3:f:1 cell:AF23:f:1 cell:AG23:f:1 cell:AH23:f:1 cell:AI23:f:1 cell:AJ23:vtf:t:u:p4:f:1 cell:AK23:f:1 cell:AL23:f:1 cell:AM23:f:1 cell:AN23:f:1 cell:AO23:f:1 cell:AP23:f:1 cell:AQ23:vtf:t:e:p5:f:1 cell:AR23:f:1 cell:AS23:f:1 cell:AT23:f:1 cell:AU23:f:1 cell:AV23:f:1 cell:AW23:f:1 cell:AX23:f:1 cell:AY23:f:1 cell:AZ23:f:1 cell:BA23:f:1 cell:BB23:f:1 cell:BC23:f:1 cell:BD23:f:1 cell:BE23:f:1 cell:BF23:f:1 cell:BG23:f:1 cell:BH23:f:1 cell:BI23:f:1 cell:BJ23:f:1 cell:BK23:f:1 cell:BL23:f:1 cell:BM23:f:1 cell:BN23:f:1 cell:BO23:f:1 cell:BP23:f:1 cell:BQ23:f:1 cell:BR23:f:1 cell:BS23:f:1 cell:BT23:f:1 cell:BU23:f:1 cell:BV23:f:1 cell:BW23:f:1 cell:BX23:f:1 cell:BY23:f:1 cell:BZ23:f:1 cell:CA23:f:1 cell:CB23:f:1 cell:CC23:f:1 cell:E24:f:1 cell:F24:f:1 cell:G24:f:1 cell:H24:f:1 cell:I24:f:1 cell:J24:f:1 cell:K24:f:1 cell:L24:f:1 cell:M24:f:1 cell:N24:vtf:t:x:q1:f:1 cell:O24:f:1 cell:P24:f:1 cell:Q24:f:1 cell:R24:f:1 cell:S24:f:1 cell:T24:f:1 cell:U24:f:1 cell:V24:f:1 cell:W24:f:1 cell:X24:vtf:t: :q2:f:1 cell:Y24:f:1 cell:Z24:f:1 cell:AA24:f:1 cell:AB24:f:1 cell:AC24:f:1 cell:AD24:f:1 cell:AE24:f:1 cell:AF24:vtf:t:b:q3:f:1 cell:AG24:f:1 cell:AH24:f:1 cell:AI24:f:1 cell:AJ24:f:1 cell:AK24:vtf:t:t:q4:f:1 cell:AL24:f:1 cell:AM24:f:1 cell:AN24:f:1 cell:AO24:f:1 cell:AP24:f:1 cell:AQ24:f:1 cell:AR24:vtf:t:s:q5:f:1 cell:AS24:f:1 cell:AT24:f:1 cell:AU24:f:1 cell:AV24:f:1 cell:AW24:f:1 cell:AX24:f:1 cell:AY24:f:1 cell:AZ24:f:1 cell:BA24:f:1 cell:BB24:f:1 cell:BC24:f:1 cell:BD24:f:1 cell:BE24:f:1 cell:BF24:f:1 cell:BG24:f:1 cell:BH24:f:1 cell:BI24:f:1 cell:BJ24:f:1 cell:BK24:f:1 cell:BL24:f:1 cell:BM24:f:1 cell:BN24:f:1 cell:BO24:f:1 cell:BP24:f:1 cell:BQ24:f:1 cell:BR24:f:1 cell:BS24:f:1 cell:BT24:f:1 cell:BU24:f:1 cell:BV24:f:1 cell:BW24:f:1 cell:BX24:f:1 cell:BY24:f:1 cell:BZ24:f:1 cell:CA24:f:1 cell:CB24:f:1 cell:CC24:f:1 cell:E25:f:1 cell:F25:f:1 cell:G25:f:1 cell:H25:f:1 cell:I25:f:1 cell:J25:f:1 cell:K25:f:1 cell:L25:f:1 cell:M25:f:1 cell:N25:vtf:t: :r1:f:1 cell:O25:f:1 cell:P25:f:1 cell:Q25:f:1 cell:R25:f:1 cell:S25:f:1 cell:T25:f:1 cell:U25:f:1 cell:V25:f:1 cell:W25:f:1 cell:X25:f:1 cell:Y25:vtf:t:q:r2:f:1 cell:Z25:f:1 cell:AA25:f:1 cell:AB25:f:1 cell:AC25:f:1 cell:AD25:f:1 cell:AE25:f:1 cell:AF25:f:1 cell:AG25:vtf:t:r:r3:f:1 cell:AH25:f:1 cell:AI25:f:1 cell:AJ25:f:1 cell:AK25:f:1 cell:AL25:vtf:t: :r4:f:1 cell:AM25:f:1 cell:AN25:f:1 cell:AO25:f:1 cell:AP25:f:1 cell:AQ25:f:1 cell:AR25:f:1 cell:AS25:vtf:t: :r5:f:1 cell:AT25:f:1 cell:AU25:f:1 cell:AV25:f:1 cell:AW25:f:1 cell:AX25:f:1 cell:AY25:f:1 cell:AZ25:f:1 cell:BA25:f:1 cell:BB25:f:1 cell:BC25:f:1 cell:BD25:f:1 cell:BE25:f:1 cell:BF25:f:1 cell:BG25:f:1 cell:BH25:f:1 cell:BI25:f:1 cell:BJ25:f:1 cell:BK25:f:1 cell:BL25:f:1 cell:BM25:f:1 cell:BN25:f:1 cell:BO25:f:1 cell:BP25:f:1 cell:BQ25:f:1 cell:BR25:f:1 cell:BS25:f:1 cell:BT25:f:1 cell:BU25:f:1 cell:BV25:f:1 cell:BW25:f:1 cell:BX25:f:1 cell:BY25:f:1 cell:BZ25:f:1 cell:CA25:f:1 cell:CB25:f:1 cell:CC25:f:1 cell:E26:f:1 cell:F26:f:1 cell:G26:f:1 cell:H26:f:1 cell:I26:f:1 cell:J26:f:1 cell:K26:f:1 cell:L26:f:1 cell:M26:f:1 cell:N26:f:1 cell:O26:vtf:t:d:s1:f:1 cell:P26:f:1 cell:Q26:f:1 cell:R26:f:1 cell:S26:f:1 cell:T26:f:1 cell:U26:f:1 cell:V26:f:1 cell:W26:f:1 cell:X26:f:1 cell:Y26:vtf:t:u:s2:f:1 cell:Z26:f:1 cell:AA26:f:1 cell:AB26:f:1 cell:AC26:f:1 cell:AD26:f:1 cell:AE26:f:1 cell:AF26:f:1 cell:AG26:vtf:t:é:s3:f:1 cell:AH26:f:1 cell:AI26:f:1 cell:AJ26:f:1 cell:AK26:f:1 cell:AL26:vtf:t:t:s4:f:1 cell:AM26:f:1 cell:AN26:f:1 cell:AO26:f:1 cell:AP26:f:1 cell:AQ26:f:1 cell:AR26:f:1 cell:AS26:f:1 cell:AT26:vtf:t:l:s5:f:1 cell:AU26:f:1 cell:AV26:f:1 cell:AW26:f:1 cell:AX26:f:1 cell:AY26:f:1 cell:AZ26:f:1 cell:BA26:f:1 cell:BB26:f:1 cell:BC26:f:1 cell:BD26:f:1 cell:BE26:f:1 cell:BF26:f:1 cell:BG26:f:1 cell:BH26:f:1 cell:BI26:f:1 cell:BJ26:f:1 cell:BK26:f:1 cell:BL26:f:1 cell:BM26:f:1 cell:BN26:f:1 cell:BO26:f:1 cell:BP26:f:1 cell:BQ26:f:1 cell:BR26:f:1 cell:BS26:f:1 cell:BT26:f:1 cell:BU26:f:1 cell:BV26:f:1 cell:BW26:f:1 cell:BX26:f:1 cell:BY26:f:1 cell:BZ26:f:1 cell:CA26:f:1 cell:CB26:f:1 cell:CC26:f:1 cell:E27:f:1 cell:F27:f:1 cell:G27:f:1 cell:H27:f:1 cell:I27:f:1 cell:J27:f:1 cell:K27:f:1 cell:L27:f:1 cell:M27:f:1 cell:N27:f:1 cell:O27:f:1 cell:P27:vtf:t:e:t1:f:1 cell:Q27:f:1 cell:R27:f:1 cell:S27:f:1 cell:T27:f:1 cell:U27:f:1 cell:V27:f:1 cell:W27:f:1 cell:X27:f:1 cell:Y27:f:1 cell:Z27:vtf:t:':t2:f:1 cell:AA27:f:1 cell:AB27:f:1 cell:AC27:f:1 cell:AD27:f:1 cell:AE27:f:1 cell:AF27:f:1 cell:AG27:f:1 cell:AH27:vtf:t:s:t3:f:1 cell:AI27:f:1 cell:AJ27:f:1 cell:AK27:f:1 cell:AL27:f:1 cell:AM27:vtf:t:a:t4:f:1 cell:AN27:f:1 cell:AO27:f:1 cell:AP27:f:1 cell:AQ27:f:1 cell:AR27:f:1 cell:AS27:f:1 cell:AT27:vtf:t:i:t5:f:1 cell:AU27:f:1 cell:AV27:f:1 cell:AW27:f:1 cell:AX27:f:1 cell:AY27:f:1 cell:AZ27:f:1 cell:BA27:f:1 cell:BB27:f:1 cell:BC27:f:1 cell:BD27:f:1 cell:BE27:f:1 cell:BF27:f:1 cell:BG27:f:1 cell:BH27:f:1 cell:BI27:f:1 cell:BJ27:f:1 cell:BK27:f:1 cell:BL27:f:1 cell:BM27:f:1 cell:BN27:f:1 cell:BO27:f:1 cell:BP27:f:1 cell:BQ27:f:1 cell:BR27:f:1 cell:BS27:f:1 cell:BT27:f:1 cell:BU27:f:1 cell:BV27:f:1 cell:BW27:f:1 cell:BX27:f:1 cell:BY27:f:1 cell:BZ27:f:1 cell:CA27:f:1 cell:CB27:f:1 cell:CC27:f:1 cell:E28:f:1 cell:F28:f:1 cell:G28:f:1 cell:H28:f:1 cell:I28:f:1 cell:J28:f:1 cell:K28:f:1 cell:L28:f:1 cell:M28:f:1 cell:N28:f:1 cell:O28:f:1 cell:P28:vtf:t: :u1:f:1 cell:Q28:vtf:t: :u1:f:1 cell:R28:f:1 cell:S28:f:1 cell:T28:f:1 cell:U28:f:1 cell:V28:f:1 cell:W28:f:1 cell:X28:f:1 cell:Y28:f:1 cell:Z28:vtf:t:i:u2:f:1 cell:AA28:f:1 cell:AB28:f:1 cell:AC28:f:1 cell:AD28:f:1 cell:AE28:f:1 cell:AF28:f:1 cell:AG28:f:1 cell:AH28:vtf:t: :u3:f:1 cell:AI28:f:1 cell:AJ28:f:1 cell:AK28:f:1 cell:AL28:f:1 cell:AM28:f:1 cell:AN28:vtf:t:n:u4:f:1 cell:AO28:f:1 cell:AP28:f:1 cell:AQ28:f:1 cell:AR28:f:1 cell:AS28:f:1 cell:AT28:f:1 cell:AU28:vtf:t:e:u5:f:1 cell:AV28:f:1 cell:AW28:f:1 cell:AX28:f:1 cell:AY28:f:1 cell:AZ28:f:1 cell:BA28:f:1 cell:BB28:f:1 cell:BC28:f:1 cell:BD28:f:1 cell:BE28:f:1 cell:BF28:f:1 cell:BG28:f:1 cell:BH28:f:1 cell:BI28:f:1 cell:BJ28:f:1 cell:BK28:f:1 cell:BL28:f:1 cell:BM28:f:1 cell:BN28:f:1 cell:BO28:f:1 cell:BP28:f:1 cell:BQ28:f:1 cell:BR28:f:1 cell:BS28:f:1 cell:BT28:f:1 cell:BU28:f:1 cell:BV28:f:1 cell:BW28:f:1 cell:BX28:f:1 cell:BY28:f:1 cell:BZ28:f:1 cell:CA28:f:1 cell:CB28:f:1 cell:CC28:f:1 cell:E29:f:1 cell:F29:f:1 cell:G29:f:1 cell:H29:f:1 cell:I29:f:1 cell:J29:f:1 cell:K29:f:1 cell:L29:f:1 cell:M29:f:1 cell:N29:f:1 cell:O29:f:1 cell:P29:f:1 cell:Q29:vtf:t:f:v1:f:1 cell:R29:f:1 cell:S29:f:1 cell:T29:f:1 cell:U29:f:1 cell:V29:f:1 cell:W29:f:1 cell:X29:f:1 cell:Y29:f:1 cell:Z29:f:1 cell:AA29:vtf:t:l:v2:f:1 cell:AB29:f:1 cell:AC29:f:1 cell:AD29:f:1 cell:AE29:f:1 cell:AF29:f:1 cell:AG29:f:1 cell:AH29:vtf:t:s:v3:f:1 cell:AI29:f:1 cell:AJ29:f:1 cell:AK29:f:1 cell:AL29:f:1 cell:AM29:f:1 cell:AN29:f:1 cell:AO29:vtf:t:d:v4:f:1 cell:AP29:f:1 cell:AQ29:f:1 cell:AR29:f:1 cell:AS29:f:1 cell:AT29:f:1 cell:AU29:f:1 cell:AV29:vtf:t:n:v5:f:1 cell:AW29:f:1 cell:AX29:f:1 cell:AY29:f:1 cell:AZ29:f:1 cell:BA29:f:1 cell:BB29:f:1 cell:BC29:f:1 cell:BD29:f:1 cell:BE29:f:1 cell:BF29:f:1 cell:BG29:f:1 cell:BH29:f:1 cell:BI29:f:1 cell:BJ29:f:1 cell:BK29:f:1 cell:BL29:f:1 cell:BM29:f:1 cell:BN29:f:1 cell:BO29:f:1 cell:BP29:f:1 cell:BQ29:f:1 cell:BR29:f:1 cell:BS29:f:1 cell:BT29:f:1 cell:BU29:f:1 cell:BV29:f:1 cell:BW29:f:1 cell:BX29:f:1 cell:BY29:f:1 cell:BZ29:f:1 cell:CA29:f:1 cell:CB29:f:1 cell:CC29:f:1 cell:E30:f:1 cell:F30:f:1 cell:G30:f:1 cell:H30:f:1 cell:I30:f:1 cell:J30:f:1 cell:K30:f:1 cell:L30:f:1 cell:M30:f:1 cell:N30:f:1 cell:O30:f:1 cell:P30:f:1 cell:Q30:f:1 cell:R30:vtf:t:e:w1:f:1 cell:S30:f:1 cell:T30:f:1 cell:U30:f:1 cell:V30:f:1 cell:W30:f:1 cell:X30:f:1 cell:Y30:f:1 cell:Z30:f:1 cell:AA30:vtf:t: :w2:f:1 cell:AB30:f:1 cell:AC30:f:1 cell:AD30:f:1 cell:AE30:f:1 cell:AF30:f:1 cell:AG30:f:1 cell:AH30:f:1 cell:AI30:vtf:t:e:w3:f:1 cell:AJ30:f:1 cell:AK30:f:1 cell:AL30:f:1 cell:AM30:f:1 cell:AN30:f:1 cell:AO30:f:1 cell:AP30:vtf:t:i:w4:f:1 cell:AQ30:f:1 cell:AR30:f:1 cell:AS30:f:1 cell:AT30:f:1 cell:AU30:f:1 cell:AV30:f:1 cell:AW30:vtf:t:s:w5:f:1 cell:AX30:f:1 cell:AY30:f:1 cell:AZ30:f:1 cell:BA30:f:1 cell:BB30:f:1 cell:BC30:f:1 cell:BD30:f:1 cell:BE30:f:1 cell:BF30:f:1 cell:BG30:f:1 cell:BH30:f:1 cell:BI30:f:1 cell:BJ30:f:1 cell:BK30:f:1 cell:BL30:f:1 cell:BM30:f:1 cell:BN30:f:1 cell:BO30:f:1 cell:BP30:f:1 cell:BQ30:f:1 cell:BR30:f:1 cell:BS30:f:1 cell:BT30:f:1 cell:BU30:f:1 cell:BV30:f:1 cell:BW30:f:1 cell:BX30:f:1 cell:BY30:f:1 cell:BZ30:f:1 cell:CA30:f:1 cell:CB30:f:1 cell:CC30:f:1 cell:E31:f:1 cell:F31:f:1 cell:G31:f:1 cell:H31:f:1 cell:I31:f:1 cell:J31:f:1 cell:K31:f:1 cell:L31:f:1 cell:M31:f:1 cell:N31:f:1 cell:O31:f:1 cell:P31:f:1 cell:Q31:f:1 cell:R31:vtf:t:m:x1:f:1 cell:S31:f:1 cell:T31:f:1 cell:U31:f:1 cell:V31:f:1 cell:W31:f:1 cell:X31:f:1 cell:Y31:f:1 cell:Z31:f:1 cell:AA31:f:1 cell:AB31:vtf:t:p:x2:f:1 cell:AC31:f:1 cell:AD31:f:1 cell:AE31:f:1 cell:AF31:f:1 cell:AG31:f:1 cell:AH31:f:1 cell:AI31:vtf:t: :x3:f:1 cell:AJ31:f:1 cell:AK31:f:1 cell:AL31:f:1 cell:AM31:f:1 cell:AN31:f:1 cell:AO31:f:1 cell:AP31:f:1 cell:AQ31:vtf:t:s:x4:f:1 cell:AR31:f:1 cell:AS31:f:1 cell:AT31:f:1 cell:AU31:f:1 cell:AV31:f:1 cell:AW31:f:1 cell:AX31:vtf:t: :x5:f:1 cell:AY31:f:1 cell:AZ31:f:1 cell:BA31:f:1 cell:BB31:f:1 cell:BC31:f:1 cell:BD31:f:1 cell:BE31:f:1 cell:BF31:f:1 cell:BG31:f:1 cell:BH31:f:1 cell:BI31:f:1 cell:BJ31:f:1 cell:BK31:f:1 cell:BL31:f:1 cell:BM31:f:1 cell:BN31:f:1 cell:BO31:f:1 cell:BP31:f:1 cell:BQ31:f:1 cell:BR31:f:1 cell:BS31:f:1 cell:BT31:f:1 cell:BU31:f:1 cell:BV31:f:1 cell:BW31:f:1 cell:BX31:f:1 cell:BY31:f:1 cell:BZ31:f:1 cell:CA31:f:1 cell:CB31:f:1 cell:CC31:f:1 cell:E32:f:1 cell:F32:f:1 cell:G32:f:1 cell:H32:f:1 cell:I32:f:1 cell:J32:f:1 cell:K32:f:1 cell:L32:f:1 cell:M32:f:1 cell:N32:f:1 cell:O32:f:1 cell:P32:f:1 cell:Q32:f:1 cell:R32:f:1 cell:S32:vtf:t:m:y1:f:1 cell:T32:f:1 cell:U32:f:1 cell:V32:f:1 cell:W32:f:1 cell:X32:f:1 cell:Y32:f:1 cell:Z32:f:1 cell:AA32:f:1 cell:AB32:vtf:t:l:y2:f:1 cell:AC32:f:1 cell:AD32:f:1 cell:AE32:f:1 cell:AF32:f:1 cell:AG32:f:1 cell:AH32:f:1 cell:AI32:f:1 cell:AJ32:vtf:t:p:y3:f:1 cell:AK32:f:1 cell:AL32:f:1 cell:AM32:f:1 cell:AN32:f:1 cell:AO32:f:1 cell:AP32:f:1 cell:AQ32:f:1 cell:AR32:vtf:t: :y4:f:1 cell:AS32:f:1 cell:AT32:f:1 cell:AU32:f:1 cell:AV32:f:1 cell:AW32:f:1 cell:AX32:vtf:t:q:y5:f:1 cell:AY32:f:1 cell:AZ32:f:1 cell:BA32:f:1 cell:BB32:f:1 cell:BC32:f:1 cell:BD32:f:1 cell:BE32:f:1 cell:BF32:f:1 cell:BG32:f:1 cell:BH32:f:1 cell:BI32:f:1 cell:BJ32:f:1 cell:BK32:f:1 cell:BL32:f:1 cell:BM32:f:1 cell:BN32:f:1 cell:BO32:f:1 cell:BP32:f:1 cell:BQ32:f:1 cell:BR32:f:1 cell:BS32:f:1 cell:BT32:f:1 cell:BU32:f:1 cell:BV32:f:1 cell:BW32:f:1 cell:BX32:f:1 cell:BY32:f:1 cell:BZ32:f:1 cell:CA32:f:1 cell:CB32:f:1 cell:CC32:f:1 cell:E33:f:1 cell:F33:f:1 cell:G33:f:1 cell:H33:f:1 cell:I33:f:1 cell:J33:f:1 cell:K33:f:1 cell:L33:f:1 cell:M33:f:1 cell:N33:f:1 cell:O33:f:1 cell:P33:f:1 cell:Q33:f:1 cell:R33:f:1 cell:S33:vtf:t:e:z1:f:1 cell:T33:f:1 cell:U33:f:1 cell:V33:f:1 cell:W33:f:1 cell:X33:f:1 cell:Y33:f:1 cell:Z33:f:1 cell:AA33:f:1 cell:AB33:f:1 cell:AC33:vtf:t:e:z2:f:1 cell:AD33:f:1 cell:AE33:f:1 cell:AF33:f:1 cell:AG33:f:1 cell:AH33:f:1 cell:AI33:f:1 cell:AJ33:f:1 cell:AK33:vtf:t:r:z3:f:1 cell:AL33:f:1 cell:AM33:f:1 cell:AN33:f:1 cell:AO33:f:1 cell:AP33:f:1 cell:AQ33:f:1 cell:AR33:vtf:t:q:z4:f:1 cell:AS33:f:1 cell:AT33:f:1 cell:AU33:f:1 cell:AV33:f:1 cell:AW33:f:1 cell:AX33:f:1 cell:AY33:vtf:t:u:z5:f:1 cell:AZ33:f:1 cell:BA33:f:1 cell:BB33:f:1 cell:BC33:f:1 cell:BD33:f:1 cell:BE33:f:1 cell:BF33:f:1 cell:BG33:f:1 cell:BH33:f:1 cell:BI33:f:1 cell:BJ33:f:1 cell:BK33:f:1 cell:BL33:f:1 cell:BM33:f:1 cell:BN33:f:1 cell:BO33:f:1 cell:BP33:f:1 cell:BQ33:f:1 cell:BR33:f:1 cell:BS33:f:1 cell:BT33:f:1 cell:BU33:f:1 cell:BV33:f:1 cell:BW33:f:1 cell:BX33:f:1 cell:BY33:f:1 cell:BZ33:f:1 cell:CA33:f:1 cell:CB33:f:1 cell:CC33:f:1 cell:E34:f:1 cell:F34:f:1 cell:G34:f:1 cell:H34:f:1 cell:I34:f:1 cell:J34:f:1 cell:K34:f:1 cell:L34:f:1 cell:M34:f:1 cell:N34:f:1 cell:O34:f:1 cell:P34:f:1 cell:Q34:f:1 cell:R34:f:1 cell:S34:f:1 cell:T34:vtf:t:s:aa1:f:1 cell:U34:f:1 cell:V34:f:1 cell:W34:f:1 cell:X34:f:1 cell:Y34:f:1 cell:Z34:f:1 cell:AA34:f:1 cell:AB34:f:1 cell:AC34:vtf:t:u:aa2:f:1 cell:AD34:f:1 cell:AE34:f:1 cell:AF34:f:1 cell:AG34:f:1 cell:AH34:f:1 cell:AI34:f:1 cell:AJ34:f:1 cell:AK34:vtf:t:e:aa3:f:1 cell:AL34:f:1 cell:AM34:f:1 cell:AN34:f:1 cell:AO34:f:1 cell:AP34:f:1 cell:AQ34:f:1 cell:AR34:f:1 cell:AS34:vtf:t:u:aa4:f:1 cell:AT34:f:1 cell:AU34:f:1 cell:AV34:f:1 cell:AW34:f:1 cell:AX34:f:1 cell:AY34:f:1 cell:AZ34:vtf:t:i:aa5:f:1 cell:BA34:f:1 cell:BB34:f:1 cell:BC34:f:1 cell:BD34:f:1 cell:BE34:f:1 cell:BF34:f:1 cell:BG34:f:1 cell:BH34:f:1 cell:BI34:f:1 cell:BJ34:f:1 cell:BK34:f:1 cell:BL34:f:1 cell:BM34:f:1 cell:BN34:f:1 cell:BO34:f:1 cell:BP34:f:1 cell:BQ34:f:1 cell:BR34:f:1 cell:BS34:f:1 cell:BT34:f:1 cell:BU34:f:1 cell:BV34:f:1 cell:BW34:f:1 cell:BX34:f:1 cell:BY34:f:1 cell:BZ34:f:1 cell:CA34:f:1 cell:CB34:f:1 cell:CC34:f:1 cell:E35:f:1 cell:F35:f:1 cell:G35:f:1 cell:H35:f:1 cell:I35:f:1 cell:J35:f:1 cell:K35:f:1 cell:L35:f:1 cell:M35:f:1 cell:N35:f:1 cell:O35:f:1 cell:P35:f:1 cell:Q35:f:1 cell:R35:f:1 cell:S35:f:1 cell:T35:f:1 cell:U35:vtf:t: :ab1:f:1 cell:V35:f:1 cell:W35:f:1 cell:X35:f:1 cell:Y35:f:1 cell:Z35:f:1 cell:AA35:f:1 cell:AB35:f:1 cell:AC35:f:1 cell:AD35:vtf:t:t:ab2:f:1 cell:AE35:f:1 cell:AF35:f:1 cell:AG35:f:1 cell:AH35:f:1 cell:AI35:f:1 cell:AJ35:f:1 cell:AK35:f:1 cell:AL35:vtf:t:n:ab3:f:1 cell:AM35:f:1 cell:AN35:f:1 cell:AO35:f:1 cell:AP35:f:1 cell:AQ35:f:1 cell:AR35:f:1 cell:AS35:f:1 cell:AT35:vtf:t:e:ab4:f:1 cell:AU35:f:1 cell:AV35:f:1 cell:AW35:f:1 cell:AX35:f:1 cell:AY35:f:1 cell:AZ35:f:1 cell:BA35:vtf:t: :ab5:f:1 cell:BB35:f:1 cell:BC35:f:1 cell:BD35:f:1 cell:BE35:f:1 cell:BF35:f:1 cell:BG35:f:1 cell:BH35:f:1 cell:BI35:f:1 cell:BJ35:f:1 cell:BK35:f:1 cell:BL35:f:1 cell:BM35:f:1 cell:BN35:f:1 cell:BO35:f:1 cell:BP35:f:1 cell:BQ35:f:1 cell:BR35:f:1 cell:BS35:f:1 cell:BT35:f:1 cell:BU35:f:1 cell:BV35:f:1 cell:BW35:f:1 cell:BX35:f:1 cell:BY35:f:1 cell:BZ35:f:1 cell:CA35:f:1 cell:CB35:f:1 cell:CC35:f:1 cell:E36:f:1 cell:F36:f:1 cell:G36:f:1 cell:H36:f:1 cell:I36:f:1 cell:J36:f:1 cell:K36:f:1 cell:L36:f:1 cell:M36:f:1 cell:N36:f:1 cell:O36:f:1 cell:P36:f:1 cell:Q36:f:1 cell:R36:f:1 cell:S36:f:1 cell:T36:f:1 cell:U36:vtf:t:c:ac1:f:1 cell:V36:f:1 cell:W36:f:1 cell:X36:f:1 cell:Y36:f:1 cell:Z36:f:1 cell:AA36:f:1 cell:AB36:f:1 cell:AC36:f:1 cell:AD36:f:1 cell:AE36:vtf:t: :ac2:f:1 cell:AF36:f:1 cell:AG36:f:1 cell:AH36:f:1 cell:AI36:f:1 cell:AJ36:f:1 cell:AK36:f:1 cell:AL36:vtf:t:n:ac3:f:1 cell:AM36:f:1 cell:AN36:f:1 cell:AO36:f:1 cell:AP36:f:1 cell:AQ36:f:1 cell:AR36:f:1 cell:AS36:f:1 cell:AT36:vtf:t: :ac4:f:1 cell:AU36:f:1 cell:AV36:f:1 cell:AW36:f:1 cell:AX36:f:1 cell:AY36:f:1 cell:AZ36:f:1 cell:BA36:f:1 cell:BB36:vtf:t:t:ac5:f:1 cell:BC36:f:1 cell:BD36:f:1 cell:BE36:f:1 cell:BF36:f:1 cell:BG36:f:1 cell:BH36:f:1 cell:BI36:f:1 cell:BJ36:f:1 cell:BK36:f:1 cell:BL36:f:1 cell:BM36:f:1 cell:BN36:f:1 cell:BO36:f:1 cell:BP36:f:1 cell:BQ36:f:1 cell:BR36:f:1 cell:BS36:f:1 cell:BT36:f:1 cell:BU36:f:1 cell:BV36:f:1 cell:BW36:f:1 cell:BX36:f:1 cell:BY36:f:1 cell:BZ36:f:1 cell:CA36:f:1 cell:CB36:f:1 cell:CC36:f:1 cell:E37:f:1 cell:F37:f:1 cell:G37:f:1 cell:H37:f:1 cell:I37:f:1 cell:J37:f:1 cell:K37:f:1 cell:L37:f:1 cell:M37:f:1 cell:N37:f:1 cell:O37:f:1 cell:P37:f:1 cell:Q37:f:1 cell:R37:f:1 cell:S37:f:1 cell:T37:f:1 cell:U37:f:1 cell:V37:vtf:t:o:ad1:f:1 cell:W37:f:1 cell:X37:f:1 cell:Y37:f:1 cell:Z37:f:1 cell:AA37:f:1 cell:AB37:f:1 cell:AC37:f:1 cell:AD37:f:1 cell:AE37:vtf:t:m:ad2:f:1 cell:AF37:f:1 cell:AG37:f:1 cell:AH37:f:1 cell:AI37:f:1 cell:AJ37:f:1 cell:AK37:f:1 cell:AL37:f:1 cell:AM37:vtf:t:e:ad3:f:1 cell:AN37:f:1 cell:AO37:f:1 cell:AP37:f:1 cell:AQ37:f:1 cell:AR37:f:1 cell:AS37:f:1 cell:AT37:f:1 cell:AU37:vtf:t:l:ad4:f:1 cell:AV37:f:1 cell:AW37:f:1 cell:AX37:f:1 cell:AY37:f:1 cell:AZ37:f:1 cell:BA37:f:1 cell:BB37:vtf:t:e:ad5:f:1 cell:BC37:f:1 cell:BD37:f:1 cell:BE37:f:1 cell:BF37:f:1 cell:BG37:f:1 cell:BH37:f:1 cell:BI37:f:1 cell:BJ37:f:1 cell:BK37:f:1 cell:BL37:f:1 cell:BM37:f:1 cell:BN37:f:1 cell:BO37:f:1 cell:BP37:f:1 cell:BQ37:f:1 cell:BR37:f:1 cell:BS37:f:1 cell:BT37:f:1 cell:BU37:f:1 cell:BV37:f:1 cell:BW37:f:1 cell:BX37:f:1 cell:BY37:f:1 cell:BZ37:f:1 cell:CA37:f:1 cell:CB37:f:1 cell:CC37:f:1 cell:E38:f:1 cell:F38:f:1 cell:G38:f:1 cell:H38:f:1 cell:I38:f:1 cell:J38:f:1 cell:K38:f:1 cell:L38:f:1 cell:M38:f:1 cell:N38:f:1 cell:O38:f:1 cell:P38:f:1 cell:Q38:f:1 cell:R38:f:1 cell:S38:f:1 cell:T38:f:1 cell:U38:f:1 cell:V38:vtf:t:m:ae1:f:1 cell:W38:f:1 cell:X38:f:1 cell:Y38:f:1 cell:Z38:f:1 cell:AA38:f:1 cell:AB38:f:1 cell:AC38:f:1 cell:AD38:f:1 cell:AE38:f:1 cell:AF38:vtf:t:e:ae2:f:1 cell:AG38:f:1 cell:AH38:f:1 cell:AI38:f:1 cell:AJ38:f:1 cell:AK38:f:1 cell:AL38:f:1 cell:AM38:f:1 cell:AN38:vtf:t:n:ae3:f:1 cell:AO38:f:1 cell:AP38:f:1 cell:AQ38:f:1 cell:AR38:f:1 cell:AS38:f:1 cell:AT38:f:1 cell:AU38:f:1 cell:AV38:vtf:t:e:ae4:f:1 cell:AW38:f:1 cell:AX38:f:1 cell:AY38:f:1 cell:AZ38:f:1 cell:BA38:f:1 cell:BB38:f:1 cell:BC38:vtf:t: :ae5:f:1 cell:BD38:f:1 cell:BE38:f:1 cell:BF38:f:1 cell:BG38:f:1 cell:BH38:f:1 cell:BI38:f:1 cell:BJ38:f:1 cell:BK38:f:1 cell:BL38:f:1 cell:BM38:f:1 cell:BN38:f:1 cell:BO38:f:1 cell:BP38:f:1 cell:BQ38:f:1 cell:BR38:f:1 cell:BS38:f:1 cell:BT38:f:1 cell:BU38:f:1 cell:BV38:f:1 cell:BW38:f:1 cell:BX38:f:1 cell:BY38:f:1 cell:BZ38:f:1 cell:CA38:f:1 cell:CB38:f:1 cell:CC38:f:1 cell:E39:f:1 cell:F39:f:1 cell:G39:f:1 cell:H39:f:1 cell:I39:f:1 cell:J39:f:1 cell:K39:f:1 cell:L39:f:1 cell:M39:f:1 cell:N39:f:1 cell:O39:f:1 cell:P39:f:1 cell:Q39:f:1 cell:R39:f:1 cell:S39:f:1 cell:T39:f:1 cell:U39:f:1 cell:V39:f:1 cell:W39:vtf:t:m:af1:f:1 cell:X39:f:1 cell:Y39:f:1 cell:Z39:f:1 cell:AA39:f:1 cell:AB39:f:1 cell:AC39:f:1 cell:AD39:f:1 cell:AE39:f:1 cell:AF39:vtf:t:r:af2:f:1 cell:AG39:f:1 cell:AH39:f:1 cell:AI39:f:1 cell:AJ39:f:1 cell:AK39:f:1 cell:AL39:f:1 cell:AM39:f:1 cell:AN39:vtf:t:t:af3:f:1 cell:AO39:f:1 cell:AP39:f:1 cell:AQ39:f:1 cell:AR39:f:1 cell:AS39:f:1 cell:AT39:f:1 cell:AU39:f:1 cell:AV39:vtf:t: :af4:f:1 cell:AW39:f:1 cell:AX39:f:1 cell:AY39:f:1 cell:AZ39:f:1 cell:BA39:f:1 cell:BB39:f:1 cell:BC39:f:1 cell:BD39:vtf:t:r:af5:f:1 cell:BE39:f:1 cell:BF39:f:1 cell:BG39:f:1 cell:BH39:f:1 cell:BI39:f:1 cell:BJ39:f:1 cell:BK39:f:1 cell:BL39:f:1 cell:BM39:f:1 cell:BN39:f:1 cell:BO39:f:1 cell:BP39:f:1 cell:BQ39:f:1 cell:BR39:f:1 cell:BS39:f:1 cell:BT39:f:1 cell:BU39:f:1 cell:BV39:f:1 cell:BW39:f:1 cell:BX39:f:1 cell:BY39:f:1 cell:BZ39:f:1 cell:CA39:f:1 cell:CB39:f:1 cell:CC39:f:1 cell:E40:f:1 cell:F40:f:1 cell:G40:f:1 cell:H40:f:1 cell:I40:f:1 cell:J40:f:1 cell:K40:f:1 cell:L40:f:1 cell:M40:f:1 cell:N40:f:1 cell:O40:f:1 cell:P40:f:1 cell:Q40:f:1 cell:R40:f:1 cell:S40:f:1 cell:T40:f:1 cell:U40:f:1 cell:V40:f:1 cell:W40:vtf:t:e:ag1:f:1 cell:X40:f:1 cell:Y40:f:1 cell:Z40:f:1 cell:AA40:f:1 cell:AB40:f:1 cell:AC40:f:1 cell:AD40:f:1 cell:AE40:f:1 cell:AF40:f:1 cell:AG40:vtf:t:v:ag2:f:1 cell:AH40:f:1 cell:AI40:f:1 cell:AJ40:f:1 cell:AK40:f:1 cell:AL40:f:1 cell:AM40:f:1 cell:AN40:f:1 cell:AO40:vtf:t: :ag3:f:1 cell:AP40:f:1 cell:AQ40:f:1 cell:AR40:f:1 cell:AS40:f:1 cell:AT40:f:1 cell:AU40:f:1 cell:AV40:f:1 cell:AW40:vtf:t:r:ag4:f:1 cell:AX40:f:1 cell:AY40:f:1 cell:AZ40:f:1 cell:BA40:f:1 cell:BB40:f:1 cell:BC40:f:1 cell:BD40:vtf:t:e:ag5:f:1 cell:BE40:f:1 cell:BF40:f:1 cell:BG40:f:1 cell:BH40:f:1 cell:BI40:f:1 cell:BJ40:f:1 cell:BK40:f:1 cell:BL40:f:1 cell:BM40:f:1 cell:BN40:f:1 cell:BO40:f:1 cell:BP40:f:1 cell:BQ40:f:1 cell:BR40:f:1 cell:BS40:f:1 cell:BT40:f:1 cell:BU40:f:1 cell:BV40:f:1 cell:BW40:f:1 cell:BX40:f:1 cell:BY40:f:1 cell:BZ40:f:1 cell:CA40:f:1 cell:CB40:f:1 cell:CC40:f:1 cell:E41:f:1 cell:F41:f:1 cell:G41:f:1 cell:H41:f:1 cell:I41:f:1 cell:J41:f:1 cell:K41:f:1 cell:L41:f:1 cell:M41:f:1 cell:N41:f:1 cell:O41:f:1 cell:P41:f:1 cell:Q41:f:1 cell:R41:f:1 cell:S41:f:1 cell:T41:f:1 cell:U41:f:1 cell:V41:f:1 cell:W41:f:1 cell:X41:vtf:t: :ah1:f:1 cell:Y41:f:1 cell:Z41:f:1 cell:AA41:f:1 cell:AB41:f:1 cell:AC41:f:1 cell:AD41:f:1 cell:AE41:f:1 cell:AF41:f:1 cell:AG41:f:1 cell:AH41:vtf:t:e:ah2:f:1 cell:AI41:f:1 cell:AJ41:f:1 cell:AK41:f:1 cell:AL41:f:1 cell:AM41:f:1 cell:AN41:f:1 cell:AO41:vtf:t:à:ah3:f:1 cell:AP41:f:1 cell:AQ41:f:1 cell:AR41:f:1 cell:AS41:f:1 cell:AT41:f:1 cell:AU41:f:1 cell:AV41:f:1 cell:AW41:vtf:t:e:ah4:f:1 cell:AX41:f:1 cell:AY41:f:1 cell:AZ41:f:1 cell:BA41:f:1 cell:BB41:f:1 cell:BC41:f:1 cell:BD41:f:1 cell:BE41:vtf:t:t:ah5:f:1 cell:BF41:f:1 cell:BG41:f:1 cell:BH41:f:1 cell:BI41:f:1 cell:BJ41:f:1 cell:BK41:f:1 cell:BL41:f:1 cell:BM41:f:1 cell:BN41:f:1 cell:BO41:f:1 cell:BP41:f:1 cell:BQ41:f:1 cell:BR41:f:1 cell:BS41:f:1 cell:BT41:f:1 cell:BU41:f:1 cell:BV41:f:1 cell:BW41:f:1 cell:BX41:f:1 cell:BY41:f:1 cell:BZ41:f:1 cell:CA41:f:1 cell:CB41:f:1 cell:CC41:f:1 cell:E42:f:1 cell:F42:f:1 cell:G42:f:1 cell:H42:f:1 cell:I42:f:1 cell:J42:f:1 cell:K42:f:1 cell:L42:f:1 cell:M42:f:1 cell:N42:f:1 cell:O42:f:1 cell:P42:f:1 cell:Q42:f:1 cell:R42:f:1 cell:S42:f:1 cell:T42:f:1 cell:U42:f:1 cell:V42:f:1 cell:W42:f:1 cell:X42:f:1 cell:Y42:vtf:t:s:ai1:f:1 cell:Z42:f:1 cell:AA42:f:1 cell:AB42:f:1 cell:AC42:f:1 cell:AD42:f:1 cell:AE42:f:1 cell:AF42:f:1 cell:AG42:f:1 cell:AH42:vtf:t:i:ai2:f:1 cell:AI42:f:1 cell:AJ42:f:1 cell:AK42:f:1 cell:AL42:f:1 cell:AM42:f:1 cell:AN42:f:1 cell:AO42:f:1 cell:AP42:vtf:t: :ai3:f:1 cell:AQ42:f:1 cell:AR42:f:1 cell:AS42:f:1 cell:AT42:f:1 cell:AU42:f:1 cell:AV42:f:1 cell:AW42:f:1 cell:AX42:vtf:t:g:ai4:f:1 cell:AY42:f:1 cell:AZ42:f:1 cell:BA42:f:1 cell:BB42:f:1 cell:BC42:f:1 cell:BD42:f:1 cell:BE42:f:1 cell:BF42:vtf:t:i:ai5:f:1 cell:BG42:f:1 cell:BH42:f:1 cell:BI42:f:1 cell:BJ42:f:1 cell:BK42:f:1 cell:BL42:f:1 cell:BM42:f:1 cell:BN42:f:1 cell:BO42:f:1 cell:BP42:f:1 cell:BQ42:f:1 cell:BR42:f:1 cell:BS42:f:1 cell:BT42:f:1 cell:BU42:f:1 cell:BV42:f:1 cell:BW42:f:1 cell:BX42:f:1 cell:BY42:f:1 cell:BZ42:f:1 cell:CA42:f:1 cell:CB42:f:1 cell:CC42:f:1 cell:E43:f:1 cell:F43:f:1 cell:G43:f:1 cell:H43:f:1 cell:I43:f:1 cell:J43:f:1 cell:K43:f:1 cell:L43:f:1 cell:M43:f:1 cell:N43:f:1 cell:O43:f:1 cell:P43:f:1 cell:Q43:f:1 cell:R43:f:1 cell:S43:f:1 cell:T43:f:1 cell:U43:f:1 cell:V43:f:1 cell:W43:f:1 cell:X43:f:1 cell:Y43:f:1 cell:Z43:vtf:t:i:aj1:f:1 cell:AA43:f:1 cell:AB43:f:1 cell:AC43:f:1 cell:AD43:f:1 cell:AE43:f:1 cell:AF43:f:1 cell:AG43:f:1 cell:AH43:f:1 cell:AI43:vtf:t:l:aj2:f:1 cell:AJ43:f:1 cell:AK43:f:1 cell:AL43:f:1 cell:AM43:f:1 cell:AN43:f:1 cell:AO43:f:1 cell:AP43:f:1 cell:AQ43:vtf:t:h:aj3:f:1 cell:AR43:f:1 cell:AS43:f:1 cell:AT43:f:1 cell:AU43:f:1 cell:AV43:f:1 cell:AW43:f:1 cell:AX43:vtf:t:r:aj4:f:1 cell:AY43:f:1 cell:AZ43:f:1 cell:BA43:f:1 cell:BB43:f:1 cell:BC43:f:1 cell:BD43:f:1 cell:BE43:f:1 cell:BF43:vtf:t:e:aj5:f:1 cell:BG43:f:1 cell:BH43:f:1 cell:BI43:f:1 cell:BJ43:f:1 cell:BK43:f:1 cell:BL43:f:1 cell:BM43:f:1 cell:BN43:f:1 cell:BO43:f:1 cell:BP43:f:1 cell:BQ43:f:1 cell:BR43:f:1 cell:BS43:f:1 cell:BT43:f:1 cell:BU43:f:1 cell:BV43:f:1 cell:BW43:f:1 cell:BX43:f:1 cell:BY43:f:1 cell:BZ43:f:1 cell:CA43:f:1 cell:CB43:f:1 cell:CC43:f:1 cell:E44:f:1 cell:F44:f:1 cell:G44:f:1 cell:H44:f:1 cell:I44:f:1 cell:J44:f:1 cell:K44:f:1 cell:L44:f:1 cell:M44:f:1 cell:N44:f:1 cell:O44:f:1 cell:P44:f:1 cell:Q44:f:1 cell:R44:f:1 cell:S44:f:1 cell:T44:f:1 cell:U44:f:1 cell:V44:f:1 cell:W44:f:1 cell:X44:f:1 cell:Y44:f:1 cell:Z44:vtf:t: :ak1:f:1 cell:AA44:f:1 cell:AB44:f:1 cell:AC44:f:1 cell:AD44:f:1 cell:AE44:f:1 cell:AF44:f:1 cell:AG44:f:1 cell:AH44:f:1 cell:AI44:f:1 cell:AJ44:vtf:t:l:ak2:f:1 cell:AK44:f:1 cell:AL44:f:1 cell:AM44:f:1 cell:AN44:f:1 cell:AO44:f:1 cell:AP44:f:1 cell:AQ44:f:1 cell:AR44:vtf:t:e:ak3:f:1 cell:AS44:f:1 cell:AT44:f:1 cell:AU44:f:1 cell:AV44:f:1 cell:AW44:f:1 cell:AX44:f:1 cell:AY44:vtf:t:e:ak4:f:1 cell:AZ44:f:1 cell:BA44:f:1 cell:BB44:f:1 cell:BC44:f:1 cell:BD44:f:1 cell:BE44:f:1 cell:BF44:f:1 cell:BG44:vtf:t:n:ak5:f:1 cell:BH44:f:1 cell:BI44:f:1 cell:BJ44:f:1 cell:BK44:f:1 cell:BL44:f:1 cell:BM44:f:1 cell:BN44:f:1 cell:BO44:f:1 cell:BP44:f:1 cell:BQ44:f:1 cell:BR44:f:1 cell:BS44:f:1 cell:BT44:f:1 cell:BU44:f:1 cell:BV44:f:1 cell:BW44:f:1 cell:BX44:f:1 cell:BY44:f:1 cell:BZ44:f:1 cell:CA44:f:1 cell:CB44:f:1 cell:CC44:f:1 cell:E45:f:1 cell:F45:f:1 cell:G45:f:1 cell:H45:f:1 cell:I45:f:1 cell:J45:f:1 cell:K45:f:1 cell:L45:f:1 cell:M45:f:1 cell:N45:f:1 cell:O45:f:1 cell:P45:f:1 cell:Q45:f:1 cell:R45:f:1 cell:S45:f:1 cell:T45:f:1 cell:U45:f:1 cell:V45:f:1 cell:W45:f:1 cell:X45:f:1 cell:Y45:f:1 cell:Z45:vtf:t:e:al1:f:1 cell:AA45:f:1 cell:AB45:f:1 cell:AC45:f:1 cell:AD45:f:1 cell:AE45:f:1 cell:AF45:f:1 cell:AG45:f:1 cell:AH45:f:1 cell:AI45:f:1 cell:AJ45:f:1 cell:AK45:vtf:t:e:al2:f:1 cell:AL45:f:1 cell:AM45:f:1 cell:AN45:f:1 cell:AO45:f:1 cell:AP45:f:1 cell:AQ45:f:1 cell:AR45:f:1 cell:AS45:vtf:t:n:al3:f:1 cell:AT45:f:1 cell:AU45:f:1 cell:AV45:f:1 cell:AW45:f:1 cell:AX45:f:1 cell:AY45:vtf:t:t:al4:f:1 cell:AZ45:f:1 cell:BA45:f:1 cell:BB45:f:1 cell:BC45:f:1 cell:BD45:f:1 cell:BE45:f:1 cell:BF45:f:1 cell:BG45:vtf:t:n:al5:f:1 cell:BH45:f:1 cell:BI45:f:1 cell:BJ45:f:1 cell:BK45:f:1 cell:BL45:f:1 cell:BM45:f:1 cell:BN45:f:1 cell:BO45:f:1 cell:BP45:f:1 cell:BQ45:f:1 cell:BR45:f:1 cell:BS45:f:1 cell:BT45:f:1 cell:BU45:f:1 cell:BV45:f:1 cell:BW45:f:1 cell:BX45:f:1 cell:BY45:f:1 cell:BZ45:f:1 cell:CA45:f:1 cell:CB45:f:1 cell:CC45:f:1 cell:E46:f:1 cell:F46:f:1 cell:G46:f:1 cell:H46:f:1 cell:I46:f:1 cell:J46:f:1 cell:K46:f:1 cell:L46:f:1 cell:M46:f:1 cell:N46:f:1 cell:O46:f:1 cell:P46:f:1 cell:Q46:f:1 cell:R46:f:1 cell:S46:f:1 cell:T46:f:1 cell:U46:f:1 cell:V46:f:1 cell:W46:f:1 cell:X46:f:1 cell:Y46:f:1 cell:Z46:f:1 cell:AA46:vtf:t:l:am1:f:1 cell:AB46:f:1 cell:AC46:f:1 cell:AD46:f:1 cell:AE46:f:1 cell:AF46:f:1 cell:AG46:f:1 cell:AH46:f:1 cell:AI46:f:1 cell:AJ46:f:1 cell:AK46:vtf:t:u:am2:f:1 cell:AL46:f:1 cell:AM46:f:1 cell:AN46:f:1 cell:AO46:f:1 cell:AP46:f:1 cell:AQ46:f:1 cell:AR46:f:1 cell:AS46:vtf:t:n:am3:f:1 cell:AT46:f:1 cell:AU46:f:1 cell:AV46:f:1 cell:AW46:f:1 cell:AX46:f:1 cell:AY46:f:1 cell:AZ46:vtf:t: :am4:f:1 cell:BA46:f:1 cell:BB46:f:1 cell:BC46:f:1 cell:BD46:f:1 cell:BE46:f:1 cell:BF46:f:1 cell:BG46:f:1 cell:BH46:vtf:t:e:am5:f:1 cell:BI46:f:1 cell:BJ46:f:1 cell:BK46:f:1 cell:BL46:f:1 cell:BM46:f:1 cell:BN46:f:1 cell:BO46:f:1 cell:BP46:f:1 cell:BQ46:f:1 cell:BR46:f:1 cell:BS46:f:1 cell:BT46:f:1 cell:BU46:f:1 cell:BV46:f:1 cell:BW46:f:1 cell:BX46:f:1 cell:BY46:f:1 cell:BZ46:f:1 cell:CA46:f:1 cell:CB46:f:1 cell:CC46:f:1 cell:E47:f:1 cell:F47:f:1 cell:G47:f:1 cell:H47:f:1 cell:I47:f:1 cell:J47:f:1 cell:K47:f:1 cell:L47:f:1 cell:M47:f:1 cell:N47:f:1 cell:O47:f:1 cell:P47:f:1 cell:Q47:f:1 cell:R47:f:1 cell:S47:f:1 cell:T47:f:1 cell:U47:f:1 cell:V47:f:1 cell:W47:f:1 cell:X47:f:1 cell:Y47:f:1 cell:Z47:f:1 cell:AA47:vtf:t:l:an1:f:1 cell:AB47:f:1 cell:AC47:f:1 cell:AD47:f:1 cell:AE47:f:1 cell:AF47:f:1 cell:AG47:f:1 cell:AH47:f:1 cell:AI47:f:1 cell:AJ47:f:1 cell:AK47:f:1 cell:AL47:vtf:t:s:an2:f:1 cell:AM47:f:1 cell:AN47:f:1 cell:AO47:f:1 cell:AP47:f:1 cell:AQ47:f:1 cell:AR47:f:1 cell:AS47:f:1 cell:AT47:vtf:t:i:an3:f:1 cell:AU47:f:1 cell:AV47:f:1 cell:AW47:f:1 cell:AX47:f:1 cell:AY47:f:1 cell:AZ47:vtf:t:e:an4:f:1 cell:BA47:f:1 cell:BB47:f:1 cell:BC47:f:1 cell:BD47:f:1 cell:BE47:f:1 cell:BF47:f:1 cell:BG47:f:1 cell:BH47:vtf:t:n:an5:f:1 cell:BI47:f:1 cell:BJ47:f:1 cell:BK47:f:1 cell:BL47:f:1 cell:BM47:f:1 cell:BN47:f:1 cell:BO47:f:1 cell:BP47:f:1 cell:BQ47:f:1 cell:BR47:f:1 cell:BS47:f:1 cell:BT47:f:1 cell:BU47:f:1 cell:BV47:f:1 cell:BW47:f:1 cell:BX47:f:1 cell:BY47:f:1 cell:BZ47:f:1 cell:CA47:f:1 cell:CB47:f:1 cell:CC47:f:1 cell:E48:f:1 cell:F48:f:1 cell:G48:f:1 cell:H48:f:1 cell:I48:f:1 cell:J48:f:1 cell:K48:f:1 cell:L48:f:1 cell:M48:f:1 cell:N48:f:1 cell:O48:f:1 cell:P48:f:1 cell:Q48:f:1 cell:R48:f:1 cell:S48:f:1 cell:T48:f:1 cell:U48:f:1 cell:V48:f:1 cell:W48:f:1 cell:X48:f:1 cell:Y48:f:1 cell:Z48:f:1 cell:AA48:f:1 cell:AB48:vtf:t:e:ao1:f:1 cell:AC48:f:1 cell:AD48:f:1 cell:AE48:f:1 cell:AF48:f:1 cell:AG48:f:1 cell:AH48:f:1 cell:AI48:f:1 cell:AJ48:f:1 cell:AK48:f:1 cell:AL48:vtf:t:e:ao2:f:1 cell:AM48:f:1 cell:AN48:f:1 cell:AO48:f:1 cell:AP48:f:1 cell:AQ48:f:1 cell:AR48:f:1 cell:AS48:f:1 cell:AT48:f:1 cell:AU48:vtf:t:r:ao3:f:1 cell:AV48:f:1 cell:AW48:f:1 cell:AX48:f:1 cell:AY48:f:1 cell:AZ48:f:1 cell:BA48:vtf:t:t:ao4:f:1 cell:BB48:f:1 cell:BC48:f:1 cell:BD48:f:1 cell:BE48:f:1 cell:BF48:f:1 cell:BG48:f:1 cell:BH48:f:1 cell:BI48:vtf:t:t:ao5:f:1 cell:BJ48:f:1 cell:BK48:f:1 cell:BL48:f:1 cell:BM48:f:1 cell:BN48:f:1 cell:BO48:f:1 cell:BP48:f:1 cell:BQ48:f:1 cell:BR48:f:1 cell:BS48:f:1 cell:BT48:f:1 cell:BU48:f:1 cell:BV48:f:1 cell:BW48:f:1 cell:BX48:f:1 cell:BY48:f:1 cell:BZ48:f:1 cell:CA48:f:1 cell:CB48:f:1 cell:CC48:f:1 cell:E49:f:1 cell:F49:f:1 cell:G49:f:1 cell:H49:f:1 cell:I49:f:1 cell:J49:f:1 cell:K49:f:1 cell:L49:f:1 cell:M49:f:1 cell:N49:f:1 cell:O49:f:1 cell:P49:f:1 cell:Q49:f:1 cell:R49:f:1 cell:S49:f:1 cell:T49:f:1 cell:U49:f:1 cell:V49:f:1 cell:W49:f:1 cell:X49:f:1 cell:Y49:f:1 cell:Z49:f:1 cell:AA49:f:1 cell:AB49:vtf:t:s:ap1:f:1 cell:AC49:f:1 cell:AD49:f:1 cell:AE49:f:1 cell:AF49:f:1 cell:AG49:f:1 cell:AH49:f:1 cell:AI49:f:1 cell:AJ49:f:1 cell:AK49:f:1 cell:AL49:f:1 cell:AM49:vtf:t:s:ap2:f:1 cell:AN49:f:1 cell:AO49:f:1 cell:AP49:f:1 cell:AQ49:f:1 cell:AR49:f:1 cell:AS49:f:1 cell:AT49:f:1 cell:AU49:f:1 cell:AV49:vtf:t: :ap3:f:1 cell:AW49:f:1 cell:AX49:f:1 cell:AY49:f:1 cell:AZ49:f:1 cell:BA49:f:1 cell:BB49:vtf:t: :ap4:f:1 cell:BC49:f:1 cell:BD49:f:1 cell:BE49:f:1 cell:BF49:f:1 cell:BG49:f:1 cell:BH49:f:1 cell:BI49:vtf:t: :ap5:f:1 cell:BJ49:f:1 cell:BK49:f:1 cell:BL49:f:1 cell:BM49:f:1 cell:BN49:f:1 cell:BO49:f:1 cell:BP49:f:1 cell:BQ49:f:1 cell:BR49:f:1 cell:BS49:f:1 cell:BT49:f:1 cell:BU49:f:1 cell:BV49:f:1 cell:BW49:f:1 cell:BX49:f:1 cell:BY49:f:1 cell:BZ49:f:1 cell:CA49:f:1 cell:CB49:f:1 cell:CC49:f:1 cell:E50:f:1 cell:F50:f:1 cell:G50:f:1 cell:H50:f:1 cell:I50:f:1 cell:J50:f:1 cell:K50:f:1 cell:L50:f:1 cell:M50:f:1 cell:N50:f:1 cell:O50:f:1 cell:P50:f:1 cell:Q50:f:1 cell:R50:f:1 cell:S50:f:1 cell:T50:f:1 cell:U50:f:1 cell:V50:f:1 cell:W50:f:1 cell:X50:f:1 cell:Y50:f:1 cell:Z50:f:1 cell:AA50:f:1 cell:AB50:f:1 cell:AC50:vtf:t: :aq1:f:1 cell:AD50:f:1 cell:AE50:f:1 cell:AF50:f:1 cell:AG50:f:1 cell:AH50:f:1 cell:AI50:f:1 cell:AJ50:f:1 cell:AK50:f:1 cell:AL50:f:1 cell:AM50:vtf:t: :aq2:f:1 cell:AN50:f:1 cell:AO50:f:1 cell:AP50:f:1 cell:AQ50:f:1 cell:AR50:f:1 cell:AS50:f:1 cell:AT50:f:1 cell:AU50:f:1 cell:AV50:vtf:t:t:aq3:f:1 cell:AW50:f:1 cell:AX50:f:1 cell:AY50:f:1 cell:AZ50:f:1 cell:BA50:f:1 cell:BB50:f:1 cell:BC50:vtf:t:l:aq4:f:1 cell:BD50:f:1 cell:BE50:f:1 cell:BF50:f:1 cell:BG50:f:1 cell:BH50:f:1 cell:BI50:vtf:t:e:aq5:f:1 cell:BJ50:f:1 cell:BK50:f:1 cell:BL50:f:1 cell:BM50:f:1 cell:BN50:f:1 cell:BO50:f:1 cell:BP50:f:1 cell:BQ50:f:1 cell:BR50:f:1 cell:BS50:f:1 cell:BT50:f:1 cell:BU50:f:1 cell:BV50:f:1 cell:BW50:f:1 cell:BX50:f:1 cell:BY50:f:1 cell:BZ50:f:1 cell:CA50:f:1 cell:CB50:f:1 cell:CC50:f:1 cell:E51:f:1 cell:F51:f:1 cell:G51:f:1 cell:H51:f:1 cell:I51:f:1 cell:J51:f:1 cell:K51:f:1 cell:L51:f:1 cell:M51:f:1 cell:N51:f:1 cell:O51:f:1 cell:P51:f:1 cell:Q51:f:1 cell:R51:f:1 cell:S51:f:1 cell:T51:f:1 cell:U51:f:1 cell:V51:f:1 cell:W51:f:1 cell:X51:f:1 cell:Y51:f:1 cell:Z51:f:1 cell:AA51:f:1 cell:AB51:f:1 cell:AC51:f:1 cell:AD51:vtf:t:é:ar1:f:1 cell:AE51:f:1 cell:AF51:f:1 cell:AG51:f:1 cell:AH51:f:1 cell:AI51:f:1 cell:AJ51:f:1 cell:AK51:f:1 cell:AL51:f:1 cell:AM51:f:1 cell:AN51:vtf:t:r:ar2:f:1 cell:AO51:f:1 cell:AP51:f:1 cell:AQ51:f:1 cell:AR51:f:1 cell:AS51:f:1 cell:AT51:f:1 cell:AU51:f:1 cell:AV51:f:1 cell:AW51:vtf:t:o:ar3:f:1 cell:AX51:f:1 cell:AY51:f:1 cell:AZ51:f:1 cell:BA51:f:1 cell:BB51:f:1 cell:BC51:f:1 cell:BD51:vtf:t:e:ar4:f:1 cell:BE51:f:1 cell:BF51:f:1 cell:BG51:f:1 cell:BH51:f:1 cell:BI51:f:1 cell:BJ51:vtf:t:n:ar5:f:1 cell:BK51:f:1 cell:BL51:f:1 cell:BM51:f:1 cell:BN51:f:1 cell:BO51:f:1 cell:BP51:f:1 cell:BQ51:f:1 cell:BR51:f:1 cell:BS51:f:1 cell:BT51:f:1 cell:BU51:f:1 cell:BV51:f:1 cell:BW51:f:1 cell:BX51:f:1 cell:BY51:f:1 cell:BZ51:f:1 cell:CA51:f:1 cell:CB51:f:1 cell:CC51:f:1 cell:E52:f:1 cell:F52:f:1 cell:G52:f:1 cell:H52:f:1 cell:I52:f:1 cell:J52:f:1 cell:K52:f:1 cell:L52:f:1 cell:M52:f:1 cell:N52:f:1 cell:O52:f:1 cell:P52:f:1 cell:Q52:f:1 cell:R52:f:1 cell:S52:f:1 cell:T52:f:1 cell:U52:f:1 cell:V52:f:1 cell:W52:f:1 cell:X52:f:1 cell:Y52:f:1 cell:Z52:f:1 cell:AA52:f:1 cell:AB52:f:1 cell:AC52:f:1 cell:AD52:f:1 cell:AE52:vtf:t:t:as1:f:1 cell:AF52:f:1 cell:AG52:f:1 cell:AH52:f:1 cell:AI52:f:1 cell:AJ52:f:1 cell:AK52:f:1 cell:AL52:f:1 cell:AM52:f:1 cell:AN52:vtf:t:e:as2:f:1 cell:AO52:f:1 cell:AP52:f:1 cell:AQ52:f:1 cell:AR52:f:1 cell:AS52:f:1 cell:AT52:f:1 cell:AU52:f:1 cell:AV52:f:1 cell:AW52:vtf:t:u:as3:f:1 cell:AX52:f:1 cell:AY52:f:1 cell:AZ52:f:1 cell:BA52:f:1 cell:BB52:f:1 cell:BC52:f:1 cell:BD52:f:1 cell:BE52:vtf:t: :as4:f:1 cell:BF52:f:1 cell:BG52:f:1 cell:BH52:f:1 cell:BI52:f:1 cell:BJ52:vtf:t: :as5:f:1 cell:BK52:f:1 cell:BL52:f:1 cell:BM52:f:1 cell:BN52:f:1 cell:BO52:f:1 cell:BP52:f:1 cell:BQ52:f:1 cell:BR52:f:1 cell:BS52:f:1 cell:BT52:f:1 cell:BU52:f:1 cell:BV52:f:1 cell:BW52:f:1 cell:BX52:f:1 cell:BY52:f:1 cell:BZ52:f:1 cell:CA52:f:1 cell:CB52:f:1 cell:CC52:f:1 cell:E53:f:1 cell:F53:f:1 cell:G53:f:1 cell:H53:f:1 cell:I53:f:1 cell:J53:f:1 cell:K53:f:1 cell:L53:f:1 cell:M53:f:1 cell:N53:f:1 cell:O53:f:1 cell:P53:f:1 cell:Q53:f:1 cell:R53:f:1 cell:S53:f:1 cell:T53:f:1 cell:U53:f:1 cell:V53:f:1 cell:W53:f:1 cell:X53:f:1 cell:Y53:f:1 cell:Z53:f:1 cell:AA53:f:1 cell:AB53:f:1 cell:AC53:f:1 cell:AD53:f:1 cell:AE53:f:1 cell:AF53:vtf:t:a:at1:f:1 cell:AG53:f:1 cell:AH53:f:1 cell:AI53:f:1 cell:AJ53:f:1 cell:AK53:f:1 cell:AL53:f:1 cell:AM53:f:1 cell:AN53:f:1 cell:AO53:vtf:t:n:at2:f:1 cell:AP53:f:1 cell:AQ53:f:1 cell:AR53:f:1 cell:AS53:f:1 cell:AT53:f:1 cell:AU53:f:1 cell:AV53:f:1 cell:AW53:f:1 cell:AX53:vtf:t:t:at3:f:1 cell:AY53:f:1 cell:AZ53:f:1 cell:BA53:f:1 cell:BB53:f:1 cell:BC53:f:1 cell:BD53:f:1 cell:BE53:f:1 cell:BF53:vtf:t:d:at4:f:1 cell:BG53:f:1 cell:BH53:f:1 cell:BI53:f:1 cell:BJ53:f:1 cell:BK53:vtf:t:h:at5:f:1 cell:BL53:f:1 cell:BM53:f:1 cell:BN53:f:1 cell:BO53:f:1 cell:BP53:f:1 cell:BQ53:f:1 cell:BR53:f:1 cell:BS53:f:1 cell:BT53:f:1 cell:BU53:f:1 cell:BV53:f:1 cell:BW53:f:1 cell:BX53:f:1 cell:BY53:f:1 cell:BZ53:f:1 cell:CA53:f:1 cell:CB53:f:1 cell:CC53:f:1 cell:E54:f:1 cell:F54:f:1 cell:G54:f:1 cell:H54:f:1 cell:I54:f:1 cell:J54:f:1 cell:K54:f:1 cell:L54:f:1 cell:M54:f:1 cell:N54:f:1 cell:O54:f:1 cell:P54:f:1 cell:Q54:f:1 cell:R54:f:1 cell:S54:f:1 cell:T54:f:1 cell:U54:f:1 cell:V54:f:1 cell:W54:f:1 cell:X54:f:1 cell:Y54:f:1 cell:Z54:f:1 cell:AA54:f:1 cell:AB54:f:1 cell:AC54:f:1 cell:AD54:f:1 cell:AE54:f:1 cell:AF54:vtf:t:i:au1:f:1 cell:AG54:f:1 cell:AH54:f:1 cell:AI54:f:1 cell:AJ54:f:1 cell:AK54:f:1 cell:AL54:f:1 cell:AM54:f:1 cell:AN54:f:1 cell:AO54:f:1 cell:AP54:vtf:t:c:au2:f:1 cell:AQ54:f:1 cell:AR54:f:1 cell:AS54:f:1 cell:AT54:f:1 cell:AU54:f:1 cell:AV54:f:1 cell:AW54:f:1 cell:AX54:vtf:t: :au3:f:1 cell:AY54:f:1 cell:AZ54:f:1 cell:BA54:f:1 cell:BB54:f:1 cell:BC54:f:1 cell:BD54:f:1 cell:BE54:f:1 cell:BF54:vtf:t:é:au4:f:1 cell:BG54:f:1 cell:BH54:f:1 cell:BI54:f:1 cell:BJ54:f:1 cell:BK54:vtf:t:a:au5:f:1 cell:BL54:f:1 cell:BM54:f:1 cell:BN54:f:1 cell:BO54:f:1 cell:BP54:f:1 cell:BQ54:f:1 cell:BR54:f:1 cell:BS54:f:1 cell:BT54:f:1 cell:BU54:f:1 cell:BV54:f:1 cell:BW54:f:1 cell:BX54:f:1 cell:BY54:f:1 cell:BZ54:f:1 cell:CA54:f:1 cell:CB54:f:1 cell:CC54:f:1 cell:E55:f:1 cell:F55:f:1 cell:G55:f:1 cell:H55:f:1 cell:I55:f:1 cell:J55:f:1 cell:K55:f:1 cell:L55:f:1 cell:M55:f:1 cell:N55:f:1 cell:O55:f:1 cell:P55:f:1 cell:Q55:f:1 cell:R55:f:1 cell:S55:f:1 cell:T55:f:1 cell:U55:f:1 cell:V55:f:1 cell:W55:f:1 cell:X55:f:1 cell:Y55:f:1 cell:Z55:f:1 cell:AA55:f:1 cell:AB55:f:1 cell:AC55:f:1 cell:AD55:f:1 cell:AE55:f:1 cell:AF55:f:1 cell:AG55:vtf:t:e:av1:f:1 cell:AH55:f:1 cell:AI55:f:1 cell:AJ55:f:1 cell:AK55:f:1 cell:AL55:f:1 cell:AM55:f:1 cell:AN55:f:1 cell:AO55:f:1 cell:AP55:vtf:t:o:av2:f:1 cell:AQ55:f:1 cell:AR55:f:1 cell:AS55:f:1 cell:AT55:f:1 cell:AU55:f:1 cell:AV55:f:1 cell:AW55:f:1 cell:AX55:f:1 cell:AY55:vtf:t:u:av3:f:1 cell:AZ55:f:1 cell:BA55:f:1 cell:BB55:f:1 cell:BC55:f:1 cell:BD55:f:1 cell:BE55:f:1 cell:BF55:f:1 cell:BG55:vtf:t:d:av4:f:1 cell:BH55:f:1 cell:BI55:f:1 cell:BJ55:f:1 cell:BK55:f:1 cell:BL55:vtf:t:u:av5:f:1 cell:BM55:f:1 cell:BN55:f:1 cell:BO55:f:1 cell:BP55:f:1 cell:BQ55:f:1 cell:BR55:f:1 cell:BS55:f:1 cell:BT55:f:1 cell:BU55:f:1 cell:BV55:f:1 cell:BW55:f:1 cell:BX55:f:1 cell:BY55:f:1 cell:BZ55:f:1 cell:CA55:f:1 cell:CB55:f:1 cell:CC55:f:1 cell:E56:f:1 cell:F56:f:1 cell:G56:f:1 cell:H56:f:1 cell:I56:f:1 cell:J56:f:1 cell:K56:f:1 cell:L56:f:1 cell:M56:f:1 cell:N56:f:1 cell:O56:f:1 cell:P56:f:1 cell:Q56:f:1 cell:R56:f:1 cell:S56:f:1 cell:T56:f:1 cell:U56:f:1 cell:V56:f:1 cell:W56:f:1 cell:X56:f:1 cell:Y56:f:1 cell:Z56:f:1 cell:AA56:f:1 cell:AB56:f:1 cell:AC56:f:1 cell:AD56:f:1 cell:AE56:f:1 cell:AF56:f:1 cell:AG56:vtf:t:n:aw1:f:1 cell:AH56:f:1 cell:AI56:f:1 cell:AJ56:f:1 cell:AK56:f:1 cell:AL56:f:1 cell:AM56:f:1 cell:AN56:f:1 cell:AO56:f:1 cell:AP56:f:1 cell:AQ56:vtf:t:n:aw2:f:1 cell:AR56:f:1 cell:AS56:f:1 cell:AT56:f:1 cell:AU56:f:1 cell:AV56:f:1 cell:AW56:f:1 cell:AX56:f:1 cell:AY56:vtf:t:n:aw3:f:1 cell:AZ56:f:1 cell:BA56:f:1 cell:BB56:f:1 cell:BC56:f:1 cell:BD56:f:1 cell:BE56:f:1 cell:BF56:f:1 cell:BG56:vtf:t:a:aw4:f:1 cell:BH56:f:1 cell:BI56:f:1 cell:BJ56:f:1 cell:BK56:f:1 cell:BL56:vtf:t:t:aw5:f:1 cell:BM56:f:1 cell:BN56:f:1 cell:BO56:f:1 cell:BP56:f:1 cell:BQ56:f:1 cell:BR56:f:1 cell:BS56:f:1 cell:BT56:f:1 cell:BU56:f:1 cell:BV56:f:1 cell:BW56:f:1 cell:BX56:f:1 cell:BY56:f:1 cell:BZ56:f:1 cell:CA56:f:1 cell:CB56:f:1 cell:CC56:f:1 cell:E57:f:1 cell:F57:f:1 cell:G57:f:1 cell:H57:f:1 cell:I57:f:1 cell:J57:f:1 cell:K57:f:1 cell:L57:f:1 cell:M57:f:1 cell:N57:f:1 cell:O57:f:1 cell:P57:f:1 cell:Q57:f:1 cell:R57:f:1 cell:S57:f:1 cell:T57:f:1 cell:U57:f:1 cell:V57:f:1 cell:W57:f:1 cell:X57:f:1 cell:Y57:f:1 cell:Z57:f:1 cell:AA57:f:1 cell:AB57:f:1 cell:AC57:f:1 cell:AD57:f:1 cell:AE57:f:1 cell:AF57:f:1 cell:AG57:f:1 cell:AH57:vtf:t:t:ax1:f:1 cell:AI57:f:1 cell:AJ57:f:1 cell:AK57:f:1 cell:AL57:f:1 cell:AM57:f:1 cell:AN57:f:1 cell:AO57:f:1 cell:AP57:f:1 cell:AQ57:f:1 cell:AR57:vtf:t:t:ax2:f:1 cell:AS57:f:1 cell:AT57:f:1 cell:AU57:f:1 cell:AV57:f:1 cell:AW57:f:1 cell:AX57:f:1 cell:AY57:f:1 cell:AZ57:vtf:t: :ax3:f:1 cell:BA57:f:1 cell:BB57:f:1 cell:BC57:f:1 cell:BD57:f:1 cell:BE57:f:1 cell:BF57:f:1 cell:BG57:f:1 cell:BH57:vtf:t:i:ax4:f:1 cell:BI57:f:1 cell:BJ57:f:1 cell:BK57:f:1 cell:BL57:vtf:t: :ax5:f:1 cell:BM57:f:1 cell:BN57:f:1 cell:BO57:f:1 cell:BP57:f:1 cell:BQ57:f:1 cell:BR57:f:1 cell:BS57:f:1 cell:BT57:f:1 cell:BU57:f:1 cell:BV57:f:1 cell:BW57:f:1 cell:BX57:f:1 cell:BY57:f:1 cell:BZ57:f:1 cell:CA57:f:1 cell:CB57:f:1 cell:CC57:f:1 cell:E58:f:1 cell:F58:f:1 cell:G58:f:1 cell:H58:f:1 cell:I58:f:1 cell:J58:f:1 cell:K58:f:1 cell:L58:f:1 cell:M58:f:1 cell:N58:f:1 cell:O58:f:1 cell:P58:f:1 cell:Q58:f:1 cell:R58:f:1 cell:S58:f:1 cell:T58:f:1 cell:U58:f:1 cell:V58:f:1 cell:W58:f:1 cell:X58:f:1 cell:Y58:f:1 cell:Z58:f:1 cell:AA58:f:1 cell:AB58:f:1 cell:AC58:f:1 cell:AD58:f:1 cell:AE58:f:1 cell:AF58:f:1 cell:AG58:f:1 cell:AH58:vtf:t: :ay1:f:1 cell:AI58:f:1 cell:AJ58:f:1 cell:AK58:f:1 cell:AL58:f:1 cell:AM58:f:1 cell:AN58:f:1 cell:AO58:f:1 cell:AP58:f:1 cell:AQ58:f:1 cell:AR58:f:1 cell:AS58:vtf:t:r:ay2:f:1 cell:AT58:f:1 cell:AU58:f:1 cell:AV58:f:1 cell:AW58:f:1 cell:AX58:f:1 cell:AY58:f:1 cell:AZ58:vtf:t:u:ay3:f:1 cell:BA58:f:1 cell:BB58:f:1 cell:BC58:f:1 cell:BD58:f:1 cell:BE58:f:1 cell:BF58:f:1 cell:BG58:f:1 cell:BH58:vtf:t:n:ay4:f:1 cell:BI58:f:1 cell:BJ58:f:1 cell:BK58:f:1 cell:BL58:f:1 cell:BM58:vtf:t:e:ay5:f:1 cell:BN58:f:1 cell:BO58:f:1 cell:BP58:f:1 cell:BQ58:f:1 cell:BR58:f:1 cell:BS58:f:1 cell:BT58:f:1 cell:BU58:f:1 cell:BV58:f:1 cell:BW58:f:1 cell:BX58:f:1 cell:BY58:f:1 cell:BZ58:f:1 cell:CA58:f:1 cell:CB58:f:1 cell:CC58:f:1 cell:E59:f:1 cell:F59:f:1 cell:G59:f:1 cell:H59:f:1 cell:I59:f:1 cell:J59:f:1 cell:K59:f:1 cell:L59:f:1 cell:M59:f:1 cell:N59:f:1 cell:O59:f:1 cell:P59:f:1 cell:Q59:f:1 cell:R59:f:1 cell:S59:f:1 cell:T59:f:1 cell:U59:f:1 cell:V59:f:1 cell:W59:f:1 cell:X59:f:1 cell:Y59:f:1 cell:Z59:f:1 cell:AA59:f:1 cell:AB59:f:1 cell:AC59:f:1 cell:AD59:f:1 cell:AE59:f:1 cell:AF59:f:1 cell:AG59:f:1 cell:AH59:f:1 cell:AI59:vtf:t:m:az1:f:1 cell:AJ59:f:1 cell:AK59:f:1 cell:AL59:f:1 cell:AM59:f:1 cell:AN59:f:1 cell:AO59:f:1 cell:AP59:f:1 cell:AQ59:f:1 cell:AR59:f:1 cell:AS59:f:1 cell:AT59:vtf:t:e:az2:f:1 cell:AU59:f:1 cell:AV59:f:1 cell:AW59:f:1 cell:AX59:f:1 cell:AY59:f:1 cell:AZ59:f:1 cell:BA59:vtf:t:n:az3:f:1 cell:BB59:f:1 cell:BC59:f:1 cell:BD59:f:1 cell:BE59:f:1 cell:BF59:f:1 cell:BG59:f:1 cell:BH59:f:1 cell:BI59:vtf:t: :az4:f:1 cell:BJ59:f:1 cell:BK59:f:1 cell:BL59:f:1 cell:BM59:f:1 cell:BN59:vtf:t:t:az5:f:1 cell:BO59:f:1 cell:BP59:f:1 cell:BQ59:f:1 cell:BR59:f:1 cell:BS59:f:1 cell:BT59:f:1 cell:BU59:f:1 cell:BV59:f:1 cell:BW59:f:1 cell:BX59:f:1 cell:BY59:f:1 cell:BZ59:f:1 cell:CA59:f:1 cell:CB59:f:1 cell:CC59:f:1 cell:E60:f:1 cell:F60:f:1 cell:G60:f:1 cell:H60:f:1 cell:I60:f:1 cell:J60:f:1 cell:K60:f:1 cell:L60:f:1 cell:M60:f:1 cell:N60:f:1 cell:O60:f:1 cell:P60:f:1 cell:Q60:f:1 cell:R60:f:1 cell:S60:f:1 cell:T60:f:1 cell:U60:f:1 cell:V60:f:1 cell:W60:f:1 cell:X60:f:1 cell:Y60:f:1 cell:Z60:f:1 cell:AA60:f:1 cell:AB60:f:1 cell:AC60:f:1 cell:AD60:f:1 cell:AE60:f:1 cell:AF60:f:1 cell:AG60:f:1 cell:AH60:f:1 cell:AI60:f:1 cell:AJ60:vtf:t:o:ba1:f:1 cell:AK60:f:1 cell:AL60:f:1 cell:AM60:f:1 cell:AN60:f:1 cell:AO60:f:1 cell:AP60:f:1 cell:AQ60:f:1 cell:AR60:f:1 cell:AS60:f:1 cell:AT60:f:1 cell:AU60:vtf:t:s:ba2:f:1 cell:AV60:f:1 cell:AW60:f:1 cell:AX60:f:1 cell:AY60:f:1 cell:AZ60:f:1 cell:BA60:vtf:t:i:ba3:f:1 cell:BB60:f:1 cell:BC60:f:1 cell:BD60:f:1 cell:BE60:f:1 cell:BF60:f:1 cell:BG60:f:1 cell:BH60:f:1 cell:BI60:f:1 cell:BJ60:vtf:t:p:ba4:f:1 cell:BK60:f:1 cell:BL60:f:1 cell:BM60:f:1 cell:BN60:f:1 cell:BO60:vtf:t: :ba5:f:1 cell:BP60:f:1 cell:BQ60:f:1 cell:BR60:f:1 cell:BS60:f:1 cell:BT60:f:1 cell:BU60:f:1 cell:BV60:f:1 cell:BW60:f:1 cell:BX60:f:1 cell:BY60:f:1 cell:BZ60:f:1 cell:CA60:f:1 cell:CB60:f:1 cell:CC60:f:1 cell:E61:f:1 cell:F61:f:1 cell:G61:f:1 cell:H61:f:1 cell:I61:f:1 cell:J61:f:1 cell:K61:f:1 cell:L61:f:1 cell:M61:f:1 cell:N61:f:1 cell:O61:f:1 cell:P61:f:1 cell:Q61:f:1 cell:R61:f:1 cell:S61:f:1 cell:T61:f:1 cell:U61:f:1 cell:V61:f:1 cell:W61:f:1 cell:X61:f:1 cell:Y61:f:1 cell:Z61:f:1 cell:AA61:f:1 cell:AB61:f:1 cell:AC61:f:1 cell:AD61:f:1 cell:AE61:f:1 cell:AF61:f:1 cell:AG61:f:1 cell:AH61:f:1 cell:AI61:f:1 cell:AJ61:f:1 cell:AK61:vtf:t:r:bb1:f:1 cell:AL61:f:1 cell:AM61:f:1 cell:AN61:f:1 cell:AO61:f:1 cell:AP61:f:1 cell:AQ61:f:1 cell:AR61:f:1 cell:AS61:f:1 cell:AT61:f:1 cell:AU61:vtf:t: :bb2:f:1 cell:AV61:f:1 cell:AW61:f:1 cell:AX61:f:1 cell:AY61:f:1 cell:AZ61:f:1 cell:BA61:f:1 cell:BB61:vtf:t:v:bb3:f:1 cell:BC61:f:1 cell:BD61:f:1 cell:BE61:f:1 cell:BF61:f:1 cell:BG61:f:1 cell:BH61:f:1 cell:BI61:f:1 cell:BJ61:vtf:t:l:bb4:f:1 cell:BK61:f:1 cell:BL61:f:1 cell:BM61:f:1 cell:BN61:f:1 cell:BO61:vtf:t:e:bb5:f:1 cell:BP61:f:1 cell:BQ61:f:1 cell:BR61:f:1 cell:BS61:f:1 cell:BT61:f:1 cell:BU61:f:1 cell:BV61:f:1 cell:BW61:f:1 cell:BX61:f:1 cell:BY61:f:1 cell:BZ61:f:1 cell:CA61:f:1 cell:CB61:f:1 cell:CC61:f:1 cell:E62:f:1 cell:F62:f:1 cell:G62:f:1 cell:H62:f:1 cell:I62:f:1 cell:J62:f:1 cell:K62:f:1 cell:L62:f:1 cell:M62:f:1 cell:N62:f:1 cell:O62:f:1 cell:P62:f:1 cell:Q62:f:1 cell:R62:f:1 cell:S62:f:1 cell:T62:f:1 cell:U62:f:1 cell:V62:f:1 cell:W62:f:1 cell:X62:f:1 cell:Y62:f:1 cell:Z62:f:1 cell:AA62:f:1 cell:AB62:f:1 cell:AC62:f:1 cell:AD62:f:1 cell:AE62:f:1 cell:AF62:f:1 cell:AG62:f:1 cell:AH62:f:1 cell:AI62:f:1 cell:AJ62:f:1 cell:AK62:vtf:t:t:bc1:f:1 cell:AL62:f:1 cell:AM62:f:1 cell:AN62:f:1 cell:AO62:f:1 cell:AP62:f:1 cell:AQ62:f:1 cell:AR62:f:1 cell:AS62:f:1 cell:AT62:f:1 cell:AU62:f:1 cell:AV62:vtf:t:d:bc2:f:1 cell:AW62:f:1 cell:AX62:f:1 cell:AY62:f:1 cell:AZ62:f:1 cell:BA62:f:1 cell:BB62:f:1 cell:BC62:vtf:t:e:bc3:f:1 cell:BD62:f:1 cell:BE62:f:1 cell:BF62:f:1 cell:BG62:f:1 cell:BH62:f:1 cell:BI62:f:1 cell:BJ62:f:1 cell:BK62:vtf:t:e:bc4:f:1 cell:BL62:f:1 cell:BM62:f:1 cell:BN62:f:1 cell:BO62:f:1 cell:BP62:vtf:t:n:bc5:f:1 cell:BQ62:f:1 cell:BR62:f:1 cell:BS62:f:1 cell:BT62:f:1 cell:BU62:f:1 cell:BV62:f:1 cell:BW62:f:1 cell:BX62:f:1 cell:BY62:f:1 cell:BZ62:f:1 cell:CA62:f:1 cell:CB62:f:1 cell:CC62:f:1 cell:E63:f:1 cell:F63:f:1 cell:G63:f:1 cell:H63:f:1 cell:I63:f:1 cell:J63:f:1 cell:K63:f:1 cell:L63:f:1 cell:M63:f:1 cell:N63:f:1 cell:O63:f:1 cell:P63:f:1 cell:Q63:f:1 cell:R63:f:1 cell:S63:f:1 cell:T63:f:1 cell:U63:f:1 cell:V63:f:1 cell:W63:f:1 cell:X63:f:1 cell:Y63:f:1 cell:Z63:f:1 cell:AA63:f:1 cell:AB63:f:1 cell:AC63:f:1 cell:AD63:f:1 cell:AE63:f:1 cell:AF63:f:1 cell:AG63:f:1 cell:AH63:f:1 cell:AI63:f:1 cell:AJ63:f:1 cell:AK63:f:1 cell:AL63:vtf:t:e:bd1:f:1 cell:AM63:f:1 cell:AN63:f:1 cell:AO63:f:1 cell:AP63:f:1 cell:AQ63:f:1 cell:AR63:f:1 cell:AS63:f:1 cell:AT63:f:1 cell:AU63:f:1 cell:AV63:f:1 cell:AW63:vtf:t:e:bd2:f:1 cell:AX63:f:1 cell:AY63:f:1 cell:AZ63:f:1 cell:BA63:f:1 cell:BB63:f:1 cell:BC63:f:1 cell:BD63:vtf:t:r:bd3:f:1 cell:BE63:f:1 cell:BF63:f:1 cell:BG63:f:1 cell:BH63:f:1 cell:BI63:f:1 cell:BJ63:f:1 cell:BK63:f:1 cell:BL63:vtf:t:u:bd4:f:1 cell:BM63:f:1 cell:BN63:f:1 cell:BO63:f:1 cell:BP63:f:1 cell:BQ63:vtf:t: :bd5:f:1 cell:BR63:f:1 cell:BS63:f:1 cell:BT63:f:1 cell:BU63:f:1 cell:BV63:f:1 cell:BW63:f:1 cell:BX63:f:1 cell:BY63:f:1 cell:BZ63:f:1 cell:CA63:f:1 cell:CB63:f:1 cell:CC63:f:1 cell:E64:f:1 cell:F64:f:1 cell:G64:f:1 cell:H64:f:1 cell:I64:f:1 cell:J64:f:1 cell:K64:f:1 cell:L64:f:1 cell:M64:f:1 cell:N64:f:1 cell:O64:f:1 cell:P64:f:1 cell:Q64:f:1 cell:R64:f:1 cell:S64:f:1 cell:T64:f:1 cell:U64:f:1 cell:V64:f:1 cell:W64:f:1 cell:X64:f:1 cell:Y64:f:1 cell:Z64:f:1 cell:AA64:f:1 cell:AB64:f:1 cell:AC64:f:1 cell:AD64:f:1 cell:AE64:f:1 cell:AF64:f:1 cell:AG64:f:1 cell:AH64:f:1 cell:AI64:f:1 cell:AJ64:f:1 cell:AK64:f:1 cell:AL64:f:1 cell:AM64:vtf:t:s:be1:f:1 cell:AN64:f:1 cell:AO64:f:1 cell:AP64:f:1 cell:AQ64:f:1 cell:AR64:f:1 cell:AS64:f:1 cell:AT64:f:1 cell:AU64:f:1 cell:AV64:f:1 cell:AW64:f:1 cell:AX64:vtf:t: :be2:f:1 cell:AY64:f:1 cell:AZ64:f:1 cell:BA64:f:1 cell:BB64:f:1 cell:BC64:f:1 cell:BD64:f:1 cell:BE64:vtf:t:s:be3:f:1 cell:BF64:f:1 cell:BG64:f:1 cell:BH64:f:1 cell:BI64:f:1 cell:BJ64:f:1 cell:BK64:f:1 cell:BL64:f:1 cell:BM64:vtf:t:r:be4:f:1 cell:BN64:f:1 cell:BO64:f:1 cell:BP64:f:1 cell:BQ64:vtf:t:b:be5:f:1 cell:BR64:f:1 cell:BS64:f:1 cell:BT64:f:1 cell:BU64:f:1 cell:BV64:f:1 cell:BW64:f:1 cell:BX64:f:1 cell:BY64:f:1 cell:BZ64:f:1 cell:CA64:f:1 cell:CB64:f:1 cell:CC64:f:1 cell:E65:f:1 cell:F65:f:1 cell:G65:f:1 cell:H65:f:1 cell:I65:f:1 cell:J65:f:1 cell:K65:f:1 cell:L65:f:1 cell:M65:f:1 cell:N65:f:1 cell:O65:f:1 cell:P65:f:1 cell:Q65:f:1 cell:R65:f:1 cell:S65:f:1 cell:T65:f:1 cell:U65:f:1 cell:V65:f:1 cell:W65:f:1 cell:X65:f:1 cell:Y65:f:1 cell:Z65:f:1 cell:AA65:f:1 cell:AB65:f:1 cell:AC65:f:1 cell:AD65:f:1 cell:AE65:f:1 cell:AF65:f:1 cell:AG65:f:1 cell:AH65:f:1 cell:AI65:f:1 cell:AJ65:f:1 cell:AK65:f:1 cell:AL65:f:1 cell:AM65:vtf:t: :bf1:f:1 cell:AN65:f:1 cell:AO65:f:1 cell:AP65:f:1 cell:AQ65:f:1 cell:AR65:f:1 cell:AS65:f:1 cell:AT65:f:1 cell:AU65:f:1 cell:AV65:f:1 cell:AW65:f:1 cell:AX65:vtf:t:m:bf2:f:1 cell:AY65:f:1 cell:AZ65:f:1 cell:BA65:f:1 cell:BB65:f:1 cell:BC65:f:1 cell:BD65:f:1 cell:BE65:vtf:t: :bf3:f:1 cell:BF65:f:1 cell:BG65:f:1 cell:BH65:f:1 cell:BI65:f:1 cell:BJ65:f:1 cell:BK65:f:1 cell:BL65:f:1 cell:BM65:vtf:t:e:bf4:f:1 cell:BN65:f:1 cell:BO65:f:1 cell:BP65:f:1 cell:BQ65:f:1 cell:BR65:vtf:t:a:bf5:f:1 cell:BS65:f:1 cell:BT65:f:1 cell:BU65:f:1 cell:BV65:f:1 cell:BW65:f:1 cell:BX65:f:1 cell:BY65:f:1 cell:BZ65:f:1 cell:CA65:f:1 cell:CB65:f:1 cell:CC65:f:1 cell:E66:f:1 cell:F66:f:1 cell:G66:f:1 cell:H66:f:1 cell:I66:f:1 cell:J66:f:1 cell:K66:f:1 cell:L66:f:1 cell:M66:f:1 cell:N66:f:1 cell:O66:f:1 cell:P66:f:1 cell:Q66:f:1 cell:R66:f:1 cell:S66:f:1 cell:T66:f:1 cell:U66:f:1 cell:V66:f:1 cell:W66:f:1 cell:X66:f:1 cell:Y66:f:1 cell:Z66:f:1 cell:AA66:f:1 cell:AB66:f:1 cell:AC66:f:1 cell:AD66:f:1 cell:AE66:f:1 cell:AF66:f:1 cell:AG66:f:1 cell:AH66:f:1 cell:AI66:f:1 cell:AJ66:f:1 cell:AK66:f:1 cell:AL66:f:1 cell:AM66:f:1 cell:AN66:vtf:t:m:bg1:f:1 cell:AO66:f:1 cell:AP66:f:1 cell:AQ66:f:1 cell:AR66:f:1 cell:AS66:f:1 cell:AT66:f:1 cell:AU66:f:1 cell:AV66:f:1 cell:AW66:f:1 cell:AX66:f:1 cell:AY66:vtf:t:a:bg2:f:1 cell:AZ66:f:1 cell:BA66:f:1 cell:BB66:f:1 cell:BC66:f:1 cell:BD66:f:1 cell:BE66:f:1 cell:BF66:vtf:t:d:bg3:f:1 cell:BG66:f:1 cell:BH66:f:1 cell:BI66:f:1 cell:BJ66:f:1 cell:BK66:f:1 cell:BL66:f:1 cell:BM66:f:1 cell:BN66:vtf:t:n:bg4:f:1 cell:BO66:f:1 cell:BP66:f:1 cell:BQ66:f:1 cell:BR66:f:1 cell:BS66:vtf:t:s:bg5:f:1 cell:BT66:f:1 cell:BU66:f:1 cell:BV66:f:1 cell:BW66:f:1 cell:BX66:f:1 cell:BY66:f:1 cell:BZ66:f:1 cell:CA66:f:1 cell:CB66:f:1 cell:CC66:f:1 cell:E67:f:1 cell:F67:f:1 cell:G67:f:1 cell:H67:f:1 cell:I67:f:1 cell:J67:f:1 cell:K67:f:1 cell:L67:f:1 cell:M67:f:1 cell:N67:f:1 cell:O67:f:1 cell:P67:f:1 cell:Q67:f:1 cell:R67:f:1 cell:S67:f:1 cell:T67:f:1 cell:U67:f:1 cell:V67:f:1 cell:W67:f:1 cell:X67:f:1 cell:Y67:f:1 cell:Z67:f:1 cell:AA67:f:1 cell:AB67:f:1 cell:AC67:f:1 cell:AD67:f:1 cell:AE67:f:1 cell:AF67:f:1 cell:AG67:f:1 cell:AH67:f:1 cell:AI67:f:1 cell:AJ67:f:1 cell:AK67:f:1 cell:AL67:f:1 cell:AM67:f:1 cell:AN67:vtf:t:ê:bh1:f:1 cell:AO67:f:1 cell:AP67:f:1 cell:AQ67:f:1 cell:AR67:f:1 cell:AS67:f:1 cell:AT67:f:1 cell:AU67:f:1 cell:AV67:f:1 cell:AW67:f:1 cell:AX67:f:1 cell:AY67:f:1 cell:AZ67:vtf:t: :bh2:f:1 cell:BA67:f:1 cell:BB67:f:1 cell:BC67:f:1 cell:BD67:f:1 cell:BE67:f:1 cell:BF67:f:1 cell:BG67:vtf:t:e:bh3:f:1 cell:BH67:f:1 cell:BI67:f:1 cell:BJ67:f:1 cell:BK67:f:1 cell:BL67:f:1 cell:BM67:f:1 cell:BN67:f:1 cell:BO67:vtf:t:t:bh4:f:1 cell:BP67:f:1 cell:BQ67:f:1 cell:BR67:f:1 cell:BS67:f:1 cell:BT67:f:1 cell:BU67:f:1 cell:BV67:f:1 cell:BW67:f:1 cell:BX67:f:1 cell:BY67:f:1 cell:BZ67:f:1 cell:CA67:f:1 cell:CB67:f:1 cell:CC67:f:1 cell:E68:f:1 cell:F68:f:1 cell:G68:f:1 cell:H68:f:1 cell:I68:f:1 cell:J68:f:1 cell:K68:f:1 cell:L68:f:1 cell:M68:f:1 cell:N68:f:1 cell:O68:f:1 cell:P68:f:1 cell:Q68:f:1 cell:R68:f:1 cell:S68:f:1 cell:T68:f:1 cell:U68:f:1 cell:V68:f:1 cell:W68:f:1 cell:X68:f:1 cell:Y68:f:1 cell:Z68:f:1 cell:AA68:f:1 cell:AB68:f:1 cell:AC68:f:1 cell:AD68:f:1 cell:AE68:f:1 cell:AF68:f:1 cell:AG68:f:1 cell:AH68:f:1 cell:AI68:f:1 cell:AJ68:f:1 cell:AK68:f:1 cell:AL68:f:1 cell:AM68:f:1 cell:AN68:f:1 cell:AO68:vtf:t:m:bi1:f:1 cell:AP68:f:1 cell:AQ68:f:1 cell:AR68:f:1 cell:AS68:f:1 cell:AT68:f:1 cell:AU68:f:1 cell:AV68:f:1 cell:AW68:f:1 cell:AX68:f:1 cell:AY68:f:1 cell:AZ68:f:1 cell:BA68:vtf:t:v:bi2:f:1 cell:BB68:f:1 cell:BC68:f:1 cell:BD68:f:1 cell:BE68:f:1 cell:BF68:f:1 cell:BG68:f:1 cell:BH68:vtf:t: :bi3:f:1 cell:BI68:f:1 cell:BJ68:f:1 cell:BK68:f:1 cell:BL68:f:1 cell:BM68:f:1 cell:BN68:f:1 cell:BO68:vtf:t: :bi4:f:1 cell:BP68:f:1 cell:BQ68:f:1 cell:BR68:f:1 cell:BS68:f:1 cell:BT68:f:1 cell:BU68:f:1 cell:BV68:f:1 cell:BW68:f:1 cell:BX68:f:1 cell:BY68:f:1 cell:BZ68:f:1 cell:CA68:f:1 cell:CB68:f:1 cell:CC68:f:1 cell:E69:f:1 cell:F69:f:1 cell:G69:f:1 cell:H69:f:1 cell:I69:f:1 cell:J69:f:1 cell:K69:f:1 cell:L69:f:1 cell:M69:f:1 cell:N69:f:1 cell:O69:f:1 cell:P69:f:1 cell:Q69:f:1 cell:R69:f:1 cell:S69:f:1 cell:T69:f:1 cell:U69:f:1 cell:V69:f:1 cell:W69:f:1 cell:X69:f:1 cell:Y69:f:1 cell:Z69:f:1 cell:AA69:f:1 cell:AB69:f:1 cell:AC69:f:1 cell:AD69:f:1 cell:AE69:f:1 cell:AF69:f:1 cell:AG69:f:1 cell:AH69:f:1 cell:AI69:f:1 cell:AJ69:f:1 cell:AK69:f:1 cell:AL69:f:1 cell:AM69:f:1 cell:AN69:f:1 cell:AO69:vtf:t:e:bj1:f:1 cell:AP69:f:1 cell:AQ69:f:1 cell:AR69:f:1 cell:AS69:f:1 cell:AT69:f:1 cell:AU69:f:1 cell:AV69:f:1 cell:AW69:f:1 cell:AX69:f:1 cell:AY69:f:1 cell:AZ69:f:1 cell:BA69:f:1 cell:BB69:vtf:t:i:bj2:f:1 cell:BC69:f:1 cell:BD69:f:1 cell:BE69:f:1 cell:BF69:f:1 cell:BG69:f:1 cell:BH69:vtf:t:v:bj3:f:1 cell:BI69:f:1 cell:BJ69:f:1 cell:BK69:f:1 cell:BL69:f:1 cell:BM69:f:1 cell:BN69:f:1 cell:BO69:f:1 cell:BP69:vtf:t:u:bj4:f:1 cell:BQ69:f:1 cell:BR69:f:1 cell:BS69:f:1 cell:BT69:f:1 cell:BU69:f:1 cell:BV69:f:1 cell:BW69:f:1 cell:BX69:f:1 cell:BY69:f:1 cell:BZ69:f:1 cell:CA69:f:1 cell:CB69:f:1 cell:CC69:f:1 cell:E70:f:1 cell:F70:f:1 cell:G70:f:1 cell:H70:f:1 cell:I70:f:1 cell:J70:f:1 cell:K70:f:1 cell:L70:f:1 cell:M70:f:1 cell:N70:f:1 cell:O70:f:1 cell:P70:f:1 cell:Q70:f:1 cell:R70:f:1 cell:S70:f:1 cell:T70:f:1 cell:U70:f:1 cell:V70:f:1 cell:W70:f:1 cell:X70:f:1 cell:Y70:f:1 cell:Z70:f:1 cell:AA70:f:1 cell:AB70:f:1 cell:AC70:f:1 cell:AD70:f:1 cell:AE70:f:1 cell:AF70:f:1 cell:AG70:f:1 cell:AH70:f:1 cell:AI70:f:1 cell:AJ70:f:1 cell:AK70:f:1 cell:AL70:f:1 cell:AM70:f:1 cell:AN70:f:1 cell:AO70:f:1 cell:AP70:vtf:t: :bk1:f:1 cell:AQ70:f:1 cell:AR70:f:1 cell:AS70:f:1 cell:AT70:f:1 cell:AU70:f:1 cell:AV70:f:1 cell:AW70:f:1 cell:AX70:f:1 cell:AY70:f:1 cell:AZ70:f:1 cell:BA70:f:1 cell:BB70:vtf:t:e:bk2:f:1 cell:BC70:f:1 cell:BD70:f:1 cell:BE70:f:1 cell:BF70:f:1 cell:BG70:f:1 cell:BH70:f:1 cell:BI70:vtf:t:i:bk3:f:1 cell:BJ70:f:1 cell:BK70:f:1 cell:BL70:f:1 cell:BM70:f:1 cell:BN70:f:1 cell:BO70:f:1 cell:BP70:f:1 cell:BQ70:vtf:t:n:bk4:f:1 cell:BR70:f:1 cell:BS70:f:1 cell:BT70:f:1 cell:BU70:f:1 cell:BV70:f:1 cell:BW70:f:1 cell:BX70:f:1 cell:BY70:f:1 cell:BZ70:f:1 cell:CA70:f:1 cell:CB70:f:1 cell:CC70:f:1 cell:E71:f:1 cell:F71:f:1 cell:G71:f:1 cell:H71:f:1 cell:I71:f:1 cell:J71:f:1 cell:K71:f:1 cell:L71:f:1 cell:M71:f:1 cell:N71:f:1 cell:O71:f:1 cell:P71:f:1 cell:Q71:f:1 cell:R71:f:1 cell:S71:f:1 cell:T71:f:1 cell:U71:f:1 cell:V71:f:1 cell:W71:f:1 cell:X71:f:1 cell:Y71:f:1 cell:Z71:f:1 cell:AA71:f:1 cell:AB71:f:1 cell:AC71:f:1 cell:AD71:f:1 cell:AE71:f:1 cell:AF71:f:1 cell:AG71:f:1 cell:AH71:f:1 cell:AI71:f:1 cell:AJ71:f:1 cell:AK71:f:1 cell:AL71:f:1 cell:AM71:f:1 cell:AN71:f:1 cell:AO71:f:1 cell:AP71:vtf:t:d:bl1:f:1 cell:AQ71:f:1 cell:AR71:f:1 cell:AS71:f:1 cell:AT71:f:1 cell:AU71:f:1 cell:AV71:f:1 cell:AW71:f:1 cell:AX71:f:1 cell:AY71:f:1 cell:AZ71:f:1 cell:BA71:f:1 cell:BB71:f:1 cell:BC71:vtf:t: :bl2:f:1 cell:BD71:f:1 cell:BE71:f:1 cell:BF71:f:1 cell:BG71:f:1 cell:BH71:f:1 cell:BI71:f:1 cell:BJ71:vtf:t:l:bl3:f:1 cell:BK71:f:1 cell:BL71:f:1 cell:BM71:f:1 cell:BN71:f:1 cell:BO71:f:1 cell:BP71:f:1 cell:BQ71:vtf:t:e:bl4:f:1 cell:BR71:f:1 cell:BS71:f:1 cell:BT71:f:1 cell:BU71:f:1 cell:BV71:f:1 cell:BW71:f:1 cell:BX71:f:1 cell:BY71:f:1 cell:BZ71:f:1 cell:CA71:f:1 cell:CB71:f:1 cell:CC71:f:1 cell:E72:f:1 cell:F72:f:1 cell:G72:f:1 cell:H72:f:1 cell:I72:f:1 cell:J72:f:1 cell:K72:f:1 cell:L72:f:1 cell:M72:f:1 cell:N72:f:1 cell:O72:f:1 cell:P72:f:1 cell:Q72:f:1 cell:R72:f:1 cell:S72:f:1 cell:T72:f:1 cell:U72:f:1 cell:V72:f:1 cell:W72:f:1 cell:X72:f:1 cell:Y72:f:1 cell:Z72:f:1 cell:AA72:f:1 cell:AB72:f:1 cell:AC72:f:1 cell:AD72:f:1 cell:AE72:f:1 cell:AF72:f:1 cell:AG72:f:1 cell:AH72:f:1 cell:AI72:f:1 cell:AJ72:f:1 cell:AK72:f:1 cell:AL72:f:1 cell:AM72:f:1 cell:AN72:f:1 cell:AO72:f:1 cell:AP72:f:1 cell:AQ72:vtf:t:a:bm1:f:1 cell:AR72:f:1 cell:AS72:f:1 cell:AT72:f:1 cell:AU72:f:1 cell:AV72:f:1 cell:AW72:f:1 cell:AX72:f:1 cell:AY72:f:1 cell:AZ72:f:1 cell:BA72:f:1 cell:BB72:f:1 cell:BC72:vtf:t:ô:bm2:f:1 cell:BD72:f:1 cell:BE72:f:1 cell:BF72:f:1 cell:BG72:f:1 cell:BH72:f:1 cell:BI72:f:1 cell:BJ72:f:1 cell:BK72:vtf:t:l:bm3:f:1 cell:BL72:f:1 cell:BM72:f:1 cell:BN72:f:1 cell:BO72:f:1 cell:BP72:f:1 cell:BQ72:f:1 cell:BR72:vtf:t: :bm4:f:1 cell:BS72:f:1 cell:BT72:f:1 cell:BU72:f:1 cell:BV72:f:1 cell:BW72:f:1 cell:BX72:f:1 cell:BY72:f:1 cell:BZ72:f:1 cell:CA72:f:1 cell:CB72:f:1 cell:CC72:f:1 cell:E73:f:1 cell:F73:f:1 cell:G73:f:1 cell:H73:f:1 cell:I73:f:1 cell:J73:f:1 cell:K73:f:1 cell:L73:f:1 cell:M73:f:1 cell:N73:f:1 cell:O73:f:1 cell:P73:f:1 cell:Q73:f:1 cell:R73:f:1 cell:S73:f:1 cell:T73:f:1 cell:U73:f:1 cell:V73:f:1 cell:W73:f:1 cell:X73:f:1 cell:Y73:f:1 cell:Z73:f:1 cell:AA73:f:1 cell:AB73:f:1 cell:AC73:f:1 cell:AD73:f:1 cell:AE73:f:1 cell:AF73:f:1 cell:AG73:f:1 cell:AH73:f:1 cell:AI73:f:1 cell:AJ73:f:1 cell:AK73:f:1 cell:AL73:f:1 cell:AM73:f:1 cell:AN73:f:1 cell:AO73:f:1 cell:AP73:f:1 cell:AQ73:vtf:t:n:bn1:f:1 cell:AR73:f:1 cell:AS73:f:1 cell:AT73:f:1 cell:AU73:f:1 cell:AV73:f:1 cell:AW73:f:1 cell:AX73:f:1 cell:AY73:f:1 cell:AZ73:f:1 cell:BA73:f:1 cell:BB73:f:1 cell:BC73:vtf:t: :bn2:f:1 cell:BD73:f:1 cell:BE73:f:1 cell:BF73:f:1 cell:BG73:f:1 cell:BH73:f:1 cell:BI73:f:1 cell:BJ73:f:1 cell:BK73:vtf:t:e:bn3:f:1 cell:BL73:f:1 cell:BM73:f:1 cell:BN73:f:1 cell:BO73:f:1 cell:BP73:f:1 cell:BQ73:f:1 cell:BR73:f:1 cell:BS73:vtf:t:a:bn4:f:1 cell:BT73:f:1 cell:BU73:f:1 cell:BV73:f:1 cell:BW73:f:1 cell:BX73:f:1 cell:BY73:f:1 cell:BZ73:f:1 cell:CA73:f:1 cell:CB73:f:1 cell:CC73:f:1 cell:E74:f:1 cell:F74:f:1 cell:G74:f:1 cell:H74:f:1 cell:I74:f:1 cell:J74:f:1 cell:K74:f:1 cell:L74:f:1 cell:M74:f:1 cell:N74:f:1 cell:O74:f:1 cell:P74:f:1 cell:Q74:f:1 cell:R74:f:1 cell:S74:f:1 cell:T74:f:1 cell:U74:f:1 cell:V74:f:1 cell:W74:f:1 cell:X74:f:1 cell:Y74:f:1 cell:Z74:f:1 cell:AA74:f:1 cell:AB74:f:1 cell:AC74:f:1 cell:AD74:f:1 cell:AE74:f:1 cell:AF74:f:1 cell:AG74:f:1 cell:AH74:f:1 cell:AI74:f:1 cell:AJ74:f:1 cell:AK74:f:1 cell:AL74:f:1 cell:AM74:f:1 cell:AN74:f:1 cell:AO74:f:1 cell:AP74:f:1 cell:AQ74:f:1 cell:AR74:vtf:t:s:bo1:f:1 cell:AS74:f:1 cell:AT74:f:1 cell:AU74:f:1 cell:AV74:f:1 cell:AW74:f:1 cell:AX74:f:1 cell:AY74:f:1 cell:AZ74:f:1 cell:BA74:f:1 cell:BB74:f:1 cell:BC74:vtf:t:g:bo2:f:1 cell:BD74:f:1 cell:BE74:f:1 cell:BF74:f:1 cell:BG74:f:1 cell:BH74:f:1 cell:BI74:f:1 cell:BJ74:f:1 cell:BK74:f:1 cell:BL74:vtf:t:s:bo3:f:1 cell:BM74:f:1 cell:BN74:f:1 cell:BO74:f:1 cell:BP74:f:1 cell:BQ74:f:1 cell:BR74:f:1 cell:BS74:f:1 cell:BT74:vtf:t:n:bo4:f:1 cell:BU74:f:1 cell:BV74:f:1 cell:BW74:f:1 cell:BX74:f:1 cell:BY74:f:1 cell:BZ74:f:1 cell:CA74:f:1 cell:CB74:f:1 cell:CC74:f:1 cell:E75:f:1 cell:F75:f:1 cell:G75:f:1 cell:H75:f:1 cell:I75:f:1 cell:J75:f:1 cell:K75:f:1 cell:L75:f:1 cell:M75:f:1 cell:N75:f:1 cell:O75:f:1 cell:P75:f:1 cell:Q75:f:1 cell:R75:f:1 cell:S75:f:1 cell:T75:f:1 cell:U75:f:1 cell:V75:f:1 cell:W75:f:1 cell:X75:f:1 cell:Y75:f:1 cell:Z75:f:1 cell:AA75:f:1 cell:AB75:f:1 cell:AC75:f:1 cell:AD75:f:1 cell:AE75:f:1 cell:AF75:f:1 cell:AG75:f:1 cell:AH75:f:1 cell:AI75:f:1 cell:AJ75:f:1 cell:AK75:f:1 cell:AL75:f:1 cell:AM75:f:1 cell:AN75:f:1 cell:AO75:f:1 cell:AP75:f:1 cell:AQ75:f:1 cell:AR75:vtf:t: :bp1:f:1 cell:AS75:f:1 cell:AT75:f:1 cell:AU75:f:1 cell:AV75:f:1 cell:AW75:f:1 cell:AX75:f:1 cell:AY75:f:1 cell:AZ75:f:1 cell:BA75:f:1 cell:BB75:f:1 cell:BC75:f:1 cell:BD75:vtf:t:o:bp2:f:1 cell:BE75:f:1 cell:BF75:f:1 cell:BG75:f:1 cell:BH75:f:1 cell:BI75:f:1 cell:BJ75:f:1 cell:BK75:f:1 cell:BL75:f:1 cell:BM75:vtf:t: :bp3:f:1 cell:BN75:f:1 cell:BO75:f:1 cell:BP75:f:1 cell:BQ75:f:1 cell:BR75:f:1 cell:BS75:f:1 cell:BT75:vtf:t:c:bp4:f:1 cell:BU75:f:1 cell:BV75:f:1 cell:BW75:f:1 cell:BX75:f:1 cell:BY75:f:1 cell:BZ75:f:1 cell:CA75:f:1 cell:CB75:f:1 cell:CC75:f:1 cell:E76:f:1 cell:F76:f:1 cell:G76:f:1 cell:H76:f:1 cell:I76:f:1 cell:J76:f:1 cell:K76:f:1 cell:L76:f:1 cell:M76:f:1 cell:N76:f:1 cell:O76:f:1 cell:P76:f:1 cell:Q76:f:1 cell:R76:f:1 cell:S76:f:1 cell:T76:f:1 cell:U76:f:1 cell:V76:f:1 cell:W76:f:1 cell:X76:f:1 cell:Y76:f:1 cell:Z76:f:1 cell:AA76:f:1 cell:AB76:f:1 cell:AC76:f:1 cell:AD76:f:1 cell:AE76:f:1 cell:AF76:f:1 cell:AG76:f:1 cell:AH76:f:1 cell:AI76:f:1 cell:AJ76:f:1 cell:AK76:f:1 cell:AL76:f:1 cell:AM76:f:1 cell:AN76:f:1 cell:AO76:f:1 cell:AP76:f:1 cell:AQ76:f:1 cell:AR76:f:1 cell:AS76:vtf:t:l:bq1:f:1 cell:AT76:f:1 cell:AU76:f:1 cell:AV76:f:1 cell:AW76:f:1 cell:AX76:f:1 cell:AY76:f:1 cell:AZ76:f:1 cell:BA76:f:1 cell:BB76:f:1 cell:BC76:f:1 cell:BD76:f:1 cell:BE76:vtf:t:u:bq2:f:1 cell:BF76:f:1 cell:BG76:f:1 cell:BH76:f:1 cell:BI76:f:1 cell:BJ76:f:1 cell:BK76:f:1 cell:BL76:f:1 cell:BM76:f:1 cell:BN76:vtf:t:a:bq3:f:1 cell:BO76:f:1 cell:BP76:f:1 cell:BQ76:f:1 cell:BR76:f:1 cell:BS76:f:1 cell:BT76:f:1 cell:BU76:vtf:t:i:bq4:f:1 cell:BV76:f:1 cell:BW76:f:1 cell:BX76:f:1 cell:BY76:f:1 cell:BZ76:f:1 cell:CA76:f:1 cell:CB76:f:1 cell:CC76:f:1 cell:E77:f:1 cell:F77:f:1 cell:G77:f:1 cell:H77:f:1 cell:I77:f:1 cell:J77:f:1 cell:K77:f:1 cell:L77:f:1 cell:M77:f:1 cell:N77:f:1 cell:O77:f:1 cell:P77:f:1 cell:Q77:f:1 cell:R77:f:1 cell:S77:f:1 cell:T77:f:1 cell:U77:f:1 cell:V77:f:1 cell:W77:f:1 cell:X77:f:1 cell:Y77:f:1 cell:Z77:f:1 cell:AA77:f:1 cell:AB77:f:1 cell:AC77:f:1 cell:AD77:f:1 cell:AE77:f:1 cell:AF77:f:1 cell:AG77:f:1 cell:AH77:f:1 cell:AI77:f:1 cell:AJ77:f:1 cell:AK77:f:1 cell:AL77:f:1 cell:AM77:f:1 cell:AN77:f:1 cell:AO77:f:1 cell:AP77:f:1 cell:AQ77:f:1 cell:AR77:f:1 cell:AS77:vtf:t:e:br1:f:1 cell:AT77:f:1 cell:AU77:f:1 cell:AV77:f:1 cell:AW77:f:1 cell:AX77:f:1 cell:AY77:f:1 cell:AZ77:f:1 cell:BA77:f:1 cell:BB77:f:1 cell:BC77:f:1 cell:BD77:f:1 cell:BE77:f:1 cell:BF77:vtf:t:t:br2:f:1 cell:BG77:f:1 cell:BH77:f:1 cell:BI77:f:1 cell:BJ77:f:1 cell:BK77:f:1 cell:BL77:f:1 cell:BM77:f:1 cell:BN77:vtf:t:u:br3:f:1 cell:BO77:f:1 cell:BP77:f:1 cell:BQ77:f:1 cell:BR77:f:1 cell:BS77:f:1 cell:BT77:f:1 cell:BU77:f:1 cell:BV77:vtf:t:e:br4:f:1 cell:BW77:f:1 cell:BX77:f:1 cell:BY77:f:1 cell:BZ77:f:1 cell:CA77:f:1 cell:CB77:f:1 cell:CC77:f:1 cell:E78:f:1 cell:F78:f:1 cell:G78:f:1 cell:H78:f:1 cell:I78:f:1 cell:J78:f:1 cell:K78:f:1 cell:L78:f:1 cell:M78:f:1 cell:N78:f:1 cell:O78:f:1 cell:P78:f:1 cell:Q78:f:1 cell:R78:f:1 cell:S78:f:1 cell:T78:f:1 cell:U78:f:1 cell:V78:f:1 cell:W78:f:1 cell:X78:f:1 cell:Y78:f:1 cell:Z78:f:1 cell:AA78:f:1 cell:AB78:f:1 cell:AC78:f:1 cell:AD78:f:1 cell:AE78:f:1 cell:AF78:f:1 cell:AG78:f:1 cell:AH78:f:1 cell:AI78:f:1 cell:AJ78:f:1 cell:AK78:f:1 cell:AL78:f:1 cell:AM78:f:1 cell:AN78:f:1 cell:AO78:f:1 cell:AP78:f:1 cell:AQ78:f:1 cell:AR78:f:1 cell:AS78:f:1 cell:AT78:vtf:t: :bs1:f:1 cell:AU78:f:1 cell:AV78:f:1 cell:AW78:f:1 cell:AX78:f:1 cell:AY78:f:1 cell:AZ78:f:1 cell:BA78:f:1 cell:BB78:f:1 cell:BC78:f:1 cell:BD78:f:1 cell:BE78:f:1 cell:BF78:f:1 cell:BG78:vtf:t:t:bs2:f:1 cell:BH78:f:1 cell:BI78:f:1 cell:BJ78:f:1 cell:BK78:f:1 cell:BL78:f:1 cell:BM78:f:1 cell:BN78:f:1 cell:BO78:vtf:t:r:bs3:f:1 cell:BP78:f:1 cell:BQ78:f:1 cell:BR78:f:1 cell:BS78:f:1 cell:BT78:f:1 cell:BU78:f:1 cell:BV78:vtf:t:n:bs4:f:1 cell:BW78:f:1 cell:BX78:f:1 cell:BY78:f:1 cell:BZ78:f:1 cell:CA78:f:1 cell:CB78:f:1 cell:CC78:f:1 cell:E79:f:1 cell:F79:f:1 cell:G79:f:1 cell:H79:f:1 cell:I79:f:1 cell:J79:f:1 cell:K79:f:1 cell:L79:f:1 cell:M79:f:1 cell:N79:f:1 cell:O79:f:1 cell:P79:f:1 cell:Q79:f:1 cell:R79:f:1 cell:S79:f:1 cell:T79:f:1 cell:U79:f:1 cell:V79:f:1 cell:W79:f:1 cell:X79:f:1 cell:Y79:f:1 cell:Z79:f:1 cell:AA79:f:1 cell:AB79:f:1 cell:AC79:f:1 cell:AD79:f:1 cell:AE79:f:1 cell:AF79:f:1 cell:AG79:f:1 cell:AH79:f:1 cell:AI79:f:1 cell:AJ79:f:1 cell:AK79:f:1 cell:AL79:f:1 cell:AM79:f:1 cell:AN79:f:1 cell:AO79:f:1 cell:AP79:f:1 cell:AQ79:f:1 cell:AR79:f:1 cell:AS79:f:1 cell:AT79:vtf:t:s:bt1:f:1 cell:AU79:f:1 cell:AV79:f:1 cell:AW79:f:1 cell:AX79:f:1 cell:AY79:f:1 cell:AZ79:f:1 cell:BA79:f:1 cell:BB79:f:1 cell:BC79:f:1 cell:BD79:f:1 cell:BE79:f:1 cell:BF79:f:1 cell:BG79:vtf:t:e:bt2:f:1 cell:BH79:f:1 cell:BI79:f:1 cell:BJ79:f:1 cell:BK79:f:1 cell:BL79:f:1 cell:BM79:f:1 cell:BN79:f:1 cell:BO79:vtf:t:i:bt3:f:1 cell:BP79:f:1 cell:BQ79:f:1 cell:BR79:f:1 cell:BS79:f:1 cell:BT79:f:1 cell:BU79:f:1 cell:BV79:vtf:t:n:bt4:f:1 cell:BW79:f:1 cell:BX79:f:1 cell:BY79:f:1 cell:BZ79:f:1 cell:CA79:f:1 cell:CB79:f:1 cell:CC79:f:1 cell:E80:f:1 cell:F80:f:1 cell:G80:f:1 cell:H80:f:1 cell:I80:f:1 cell:J80:f:1 cell:K80:f:1 cell:L80:f:1 cell:M80:f:1 cell:N80:f:1 cell:O80:f:1 cell:P80:f:1 cell:Q80:f:1 cell:R80:f:1 cell:S80:f:1 cell:T80:f:1 cell:U80:f:1 cell:V80:f:1 cell:W80:f:1 cell:X80:f:1 cell:Y80:f:1 cell:Z80:f:1 cell:AA80:f:1 cell:AB80:f:1 cell:AC80:f:1 cell:AD80:f:1 cell:AE80:f:1 cell:AF80:f:1 cell:AG80:f:1 cell:AH80:f:1 cell:AI80:f:1 cell:AJ80:f:1 cell:AK80:f:1 cell:AL80:f:1 cell:AM80:f:1 cell:AN80:f:1 cell:AO80:f:1 cell:AP80:f:1 cell:AQ80:f:1 cell:AR80:f:1 cell:AS80:f:1 cell:AT80:f:1 cell:AU80:vtf:t:o:bu1:f:1 cell:AV80:f:1 cell:AW80:f:1 cell:AX80:f:1 cell:AY80:f:1 cell:AZ80:f:1 cell:BA80:f:1 cell:BB80:f:1 cell:BC80:f:1 cell:BD80:f:1 cell:BE80:f:1 cell:BF80:f:1 cell:BG80:f:1 cell:BH80:vtf:t:l:bu2:f:1 cell:BI80:f:1 cell:BJ80:f:1 cell:BK80:f:1 cell:BL80:f:1 cell:BM80:f:1 cell:BN80:f:1 cell:BO80:f:1 cell:BP80:vtf:t:c:bu3:f:1 cell:BQ80:f:1 cell:BR80:f:1 cell:BS80:f:1 cell:BT80:f:1 cell:BU80:f:1 cell:BV80:f:1 cell:BW80:vtf:t:e:bu4:f:1 cell:BX80:f:1 cell:BY80:f:1 cell:BZ80:f:1 cell:CA80:f:1 cell:CB80:f:1 cell:CC80:f:1 cell:E81:f:1 cell:F81:f:1 cell:G81:f:1 cell:H81:f:1 cell:I81:f:1 cell:J81:f:1 cell:K81:f:1 cell:L81:f:1 cell:M81:f:1 cell:N81:f:1 cell:O81:f:1 cell:P81:f:1 cell:Q81:f:1 cell:R81:f:1 cell:S81:f:1 cell:T81:f:1 cell:U81:f:1 cell:V81:f:1 cell:W81:f:1 cell:X81:f:1 cell:Y81:f:1 cell:Z81:f:1 cell:AA81:f:1 cell:AB81:f:1 cell:AC81:f:1 cell:AD81:f:1 cell:AE81:f:1 cell:AF81:f:1 cell:AG81:f:1 cell:AH81:f:1 cell:AI81:f:1 cell:AJ81:f:1 cell:AK81:f:1 cell:AL81:f:1 cell:AM81:f:1 cell:AN81:f:1 cell:AO81:f:1 cell:AP81:f:1 cell:AQ81:f:1 cell:AR81:f:1 cell:AS81:f:1 cell:AT81:f:1 cell:AU81:vtf:t:u:bv1:f:1 cell:AV81:f:1 cell:AW81:f:1 cell:AX81:f:1 cell:AY81:f:1 cell:AZ81:f:1 cell:BA81:f:1 cell:BB81:f:1 cell:BC81:f:1 cell:BD81:f:1 cell:BE81:f:1 cell:BF81:f:1 cell:BG81:f:1 cell:BH81:vtf:t:e:bv2:f:1 cell:BI81:f:1 cell:BJ81:f:1 cell:BK81:f:1 cell:BL81:f:1 cell:BM81:f:1 cell:BN81:f:1 cell:BO81:f:1 cell:BP81:f:1 cell:BQ81:vtf:t:u:bv3:f:1 cell:BR81:f:1 cell:BS81:f:1 cell:BT81:f:1 cell:BU81:f:1 cell:BV81:f:1 cell:BW81:f:1 cell:BX81:vtf:t: :bv4:f:1 cell:BY81:f:1 cell:BZ81:f:1 cell:CA81:f:1 cell:CB81:f:1 cell:CC81:f:1 cell:E82:f:1 cell:F82:f:1 cell:G82:f:1 cell:H82:f:1 cell:I82:f:1 cell:J82:f:1 cell:K82:f:1 cell:L82:f:1 cell:M82:f:1 cell:N82:f:1 cell:O82:f:1 cell:P82:f:1 cell:Q82:f:1 cell:R82:f:1 cell:S82:f:1 cell:T82:f:1 cell:U82:f:1 cell:V82:f:1 cell:W82:f:1 cell:X82:f:1 cell:Y82:f:1 cell:Z82:f:1 cell:AA82:f:1 cell:AB82:f:1 cell:AC82:f:1 cell:AD82:f:1 cell:AE82:f:1 cell:AF82:f:1 cell:AG82:f:1 cell:AH82:f:1 cell:AI82:f:1 cell:AJ82:f:1 cell:AK82:f:1 cell:AL82:f:1 cell:AM82:f:1 cell:AN82:f:1 cell:AO82:f:1 cell:AP82:f:1 cell:AQ82:f:1 cell:AR82:f:1 cell:AS82:f:1 cell:AT82:f:1 cell:AU82:f:1 cell:AV82:vtf:t:v:bw1:f:1 cell:AW82:f:1 cell:AX82:f:1 cell:AY82:f:1 cell:AZ82:f:1 cell:BA82:f:1 cell:BB82:f:1 cell:BC82:f:1 cell:BD82:f:1 cell:BE82:f:1 cell:BF82:f:1 cell:BG82:f:1 cell:BH82:f:1 cell:BI82:vtf:t:t:bw2:f:1 cell:BJ82:f:1 cell:BK82:f:1 cell:BL82:f:1 cell:BM82:f:1 cell:BN82:f:1 cell:BO82:f:1 cell:BP82:f:1 cell:BQ82:f:1 cell:BR82:vtf:t:l:bw3:f:1 cell:BS82:f:1 cell:BT82:f:1 cell:BU82:f:1 cell:BV82:f:1 cell:BW82:f:1 cell:BX82:vtf:t:m:bw4:f:1 cell:BY82:f:1 cell:BZ82:f:1 cell:CA82:f:1 cell:CB82:f:1 cell:CC82:f:1 cell:E83:f:1 cell:F83:f:1 cell:G83:f:1 cell:H83:f:1 cell:I83:f:1 cell:J83:f:1 cell:K83:f:1 cell:L83:f:1 cell:M83:f:1 cell:N83:f:1 cell:O83:f:1 cell:P83:f:1 cell:Q83:f:1 cell:R83:f:1 cell:S83:f:1 cell:T83:f:1 cell:U83:f:1 cell:V83:f:1 cell:W83:f:1 cell:X83:f:1 cell:Y83:f:1 cell:Z83:f:1 cell:AA83:f:1 cell:AB83:f:1 cell:AC83:f:1 cell:AD83:f:1 cell:AE83:f:1 cell:AF83:f:1 cell:AG83:f:1 cell:AH83:f:1 cell:AI83:f:1 cell:AJ83:f:1 cell:AK83:f:1 cell:AL83:f:1 cell:AM83:f:1 cell:AN83:f:1 cell:AO83:f:1 cell:AP83:f:1 cell:AQ83:f:1 cell:AR83:f:1 cell:AS83:f:1 cell:AT83:f:1 cell:AU83:f:1 cell:AV83:vtf:t:e:bx1:f:1 cell:AW83:f:1 cell:AX83:f:1 cell:AY83:f:1 cell:AZ83:f:1 cell:BA83:f:1 cell:BB83:f:1 cell:BC83:f:1 cell:BD83:f:1 cell:BE83:f:1 cell:BF83:f:1 cell:BG83:f:1 cell:BH83:f:1 cell:BI83:vtf:t:t:bx2:f:1 cell:BJ83:f:1 cell:BK83:f:1 cell:BL83:f:1 cell:BM83:f:1 cell:BN83:f:1 cell:BO83:f:1 cell:BP83:f:1 cell:BQ83:f:1 cell:BR83:vtf:t:a:bx3:f:1 cell:BS83:f:1 cell:BT83:f:1 cell:BU83:f:1 cell:BV83:f:1 cell:BW83:f:1 cell:BX83:f:1 cell:BY83:vtf:t:u:bx4:f:1 cell:BZ83:f:1 cell:CA83:f:1 cell:CB83:f:1 cell:CC83:f:1 cell:E84:f:1 cell:F84:f:1 cell:G84:f:1 cell:H84:f:1 cell:I84:f:1 cell:J84:f:1 cell:K84:f:1 cell:L84:f:1 cell:M84:f:1 cell:N84:f:1 cell:O84:f:1 cell:P84:f:1 cell:Q84:f:1 cell:R84:f:1 cell:S84:f:1 cell:T84:f:1 cell:U84:f:1 cell:V84:f:1 cell:W84:f:1 cell:X84:f:1 cell:Y84:f:1 cell:Z84:f:1 cell:AA84:f:1 cell:AB84:f:1 cell:AC84:f:1 cell:AD84:f:1 cell:AE84:f:1 cell:AF84:f:1 cell:AG84:f:1 cell:AH84:f:1 cell:AI84:f:1 cell:AJ84:f:1 cell:AK84:f:1 cell:AL84:f:1 cell:AM84:f:1 cell:AN84:f:1 cell:AO84:f:1 cell:AP84:f:1 cell:AQ84:f:1 cell:AR84:f:1 cell:AS84:f:1 cell:AT84:f:1 cell:AU84:f:1 cell:AV84:f:1 cell:AW84:vtf:t:n:by1:f:1 cell:AX84:f:1 cell:AY84:f:1 cell:AZ84:f:1 cell:BA84:f:1 cell:BB84:f:1 cell:BC84:f:1 cell:BD84:f:1 cell:BE84:f:1 cell:BF84:f:1 cell:BG84:f:1 cell:BH84:f:1 cell:BI84:f:1 cell:BJ84:vtf:t:e:by2:f:1 cell:BK84:f:1 cell:BL84:f:1 cell:BM84:f:1 cell:BN84:f:1 cell:BO84:f:1 cell:BP84:f:1 cell:BQ84:f:1 cell:BR84:f:1 cell:BS84:vtf:t:i:by3:f:1 cell:BT84:f:1 cell:BU84:f:1 cell:BV84:f:1 cell:BW84:f:1 cell:BX84:f:1 cell:BY84:vtf:t:s:by4:f:1 cell:BZ84:f:1 cell:CA84:f:1 cell:CB84:f:1 cell:CC84:f:1 cell:E85:f:1 cell:F85:f:1 cell:G85:f:1 cell:H85:f:1 cell:I85:f:1 cell:J85:f:1 cell:K85:f:1 cell:L85:f:1 cell:M85:f:1 cell:N85:f:1 cell:O85:f:1 cell:P85:f:1 cell:Q85:f:1 cell:R85:f:1 cell:S85:f:1 cell:T85:f:1 cell:U85:f:1 cell:V85:f:1 cell:W85:f:1 cell:X85:f:1 cell:Y85:f:1 cell:Z85:f:1 cell:AA85:f:1 cell:AB85:f:1 cell:AC85:f:1 cell:AD85:f:1 cell:AE85:f:1 cell:AF85:f:1 cell:AG85:f:1 cell:AH85:f:1 cell:AI85:f:1 cell:AJ85:f:1 cell:AK85:f:1 cell:AL85:f:1 cell:AM85:f:1 cell:AN85:f:1 cell:AO85:f:1 cell:AP85:f:1 cell:AQ85:f:1 cell:AR85:f:1 cell:AS85:f:1 cell:AT85:f:1 cell:AU85:f:1 cell:AV85:f:1 cell:AW85:vtf:t:i:bz1:f:1 cell:AX85:f:1 cell:AY85:f:1 cell:AZ85:f:1 cell:BA85:f:1 cell:BB85:f:1 cell:BC85:f:1 cell:BD85:f:1 cell:BE85:f:1 cell:BF85:f:1 cell:BG85:f:1 cell:BH85:f:1 cell:BI85:f:1 cell:BJ85:f:1 cell:BK85:vtf:t:s:bz2:f:1 cell:BL85:f:1 cell:BM85:f:1 cell:BN85:f:1 cell:BO85:f:1 cell:BP85:f:1 cell:BQ85:f:1 cell:BR85:f:1 cell:BS85:vtf:t:r:bz3:f:1 cell:BT85:f:1 cell:BU85:f:1 cell:BV85:f:1 cell:BW85:f:1 cell:BX85:f:1 cell:BY85:f:1 cell:BZ85:vtf:t:i:bz4:f:1 cell:CA85:f:1 cell:CB85:f:1 cell:CC85:f:1 cell:E86:f:1 cell:F86:f:1 cell:G86:f:1 cell:H86:f:1 cell:I86:f:1 cell:J86:f:1 cell:K86:f:1 cell:L86:f:1 cell:M86:f:1 cell:N86:f:1 cell:O86:f:1 cell:P86:f:1 cell:Q86:f:1 cell:R86:f:1 cell:S86:f:1 cell:T86:f:1 cell:U86:f:1 cell:V86:f:1 cell:W86:f:1 cell:X86:f:1 cell:Y86:f:1 cell:Z86:f:1 cell:AA86:f:1 cell:AB86:f:1 cell:AC86:f:1 cell:AD86:f:1 cell:AE86:f:1 cell:AF86:f:1 cell:AG86:f:1 cell:AH86:f:1 cell:AI86:f:1 cell:AJ86:f:1 cell:AK86:f:1 cell:AL86:f:1 cell:AM86:f:1 cell:AN86:f:1 cell:AO86:f:1 cell:AP86:f:1 cell:AQ86:f:1 cell:AR86:f:1 cell:AS86:f:1 cell:AT86:f:1 cell:AU86:f:1 cell:AV86:f:1 cell:AW86:f:1 cell:AX86:vtf:t:r:ca1:f:1 cell:AY86:f:1 cell:AZ86:f:1 cell:BA86:f:1 cell:BB86:f:1 cell:BC86:f:1 cell:BD86:f:1 cell:BE86:f:1 cell:BF86:f:1 cell:BG86:f:1 cell:BH86:f:1 cell:BI86:f:1 cell:BJ86:f:1 cell:BK86:vtf:t: :ca2:f:1 cell:BL86:f:1 cell:BM86:f:1 cell:BN86:f:1 cell:BO86:f:1 cell:BP86:f:1 cell:BQ86:f:1 cell:BR86:f:1 cell:BS86:f:1 cell:BT86:vtf:t:e:ca3:f:1 cell:BU86:f:1 cell:BV86:f:1 cell:BW86:f:1 cell:BX86:f:1 cell:BY86:f:1 cell:BZ86:f:1 cell:CA86:vtf:t:q:ca4:f:1 cell:CB86:f:1 cell:CC86:f:1 cell:E87:f:1 cell:F87:f:1 cell:G87:f:1 cell:H87:f:1 cell:I87:f:1 cell:J87:f:1 cell:K87:f:1 cell:L87:f:1 cell:M87:f:1 cell:N87:f:1 cell:O87:f:1 cell:P87:f:1 cell:Q87:f:1 cell:R87:f:1 cell:S87:f:1 cell:T87:f:1 cell:U87:f:1 cell:V87:f:1 cell:W87:f:1 cell:X87:f:1 cell:Y87:f:1 cell:Z87:f:1 cell:AA87:f:1 cell:AB87:f:1 cell:AC87:f:1 cell:AD87:f:1 cell:AE87:f:1 cell:AF87:f:1 cell:AG87:f:1 cell:AH87:f:1 cell:AI87:f:1 cell:AJ87:f:1 cell:AK87:f:1 cell:AL87:f:1 cell:AM87:f:1 cell:AN87:f:1 cell:AO87:f:1 cell:AP87:f:1 cell:AQ87:f:1 cell:AR87:f:1 cell:AS87:f:1 cell:AT87:f:1 cell:AU87:f:1 cell:AV87:f:1 cell:AW87:f:1 cell:AX87:f:1 cell:AY87:f:1 cell:AZ87:f:1 cell:BA87:f:1 cell:BB87:f:1 cell:BC87:f:1 cell:BD87:f:1 cell:BE87:f:1 cell:BF87:f:1 cell:BG87:f:1 cell:BH87:f:1 cell:BI87:f:1 cell:BJ87:f:1 cell:BK87:f:1 cell:BL87:f:1 cell:BM87:f:1 cell:BN87:f:1 cell:BO87:f:1 cell:BP87:f:1 cell:BQ87:f:1 cell:BR87:f:1 cell:BS87:f:1 cell:BT87:vtf:t:s:cb3:f:1 cell:BU87:f:1 cell:BV87:f:1 cell:BW87:f:1 cell:BX87:f:1 cell:BY87:f:1 cell:BZ87:f:1 cell:CA87:vtf:t:u:cb4:f:1 cell:CB87:f:1 cell:CC87:f:1 cell:E88:f:1 cell:F88:f:1 cell:G88:f:1 cell:H88:f:1 cell:I88:f:1 cell:J88:f:1 cell:K88:f:1 cell:L88:f:1 cell:M88:f:1 cell:N88:f:1 cell:O88:f:1 cell:P88:f:1 cell:Q88:f:1 cell:R88:f:1 cell:S88:f:1 cell:T88:f:1 cell:U88:f:1 cell:V88:f:1 cell:W88:f:1 cell:X88:f:1 cell:Y88:f:1 cell:Z88:f:1 cell:AA88:f:1 cell:AB88:f:1 cell:AC88:f:1 cell:AD88:f:1 cell:AE88:f:1 cell:AF88:f:1 cell:AG88:f:1 cell:AH88:f:1 cell:AI88:f:1 cell:AJ88:f:1 cell:AK88:f:1 cell:AL88:f:1 cell:AM88:f:1 cell:AN88:f:1 cell:AO88:f:1 cell:AP88:f:1 cell:AQ88:f:1 cell:AR88:f:1 cell:AS88:f:1 cell:AT88:f:1 cell:AU88:f:1 cell:AV88:f:1 cell:AW88:f:1 cell:AX88:f:1 cell:AY88:f:1 cell:AZ88:f:1 cell:BA88:f:1 cell:BB88:f:1 cell:BC88:f:1 cell:BD88:f:1 cell:BE88:f:1 cell:BF88:f:1 cell:BG88:f:1 cell:BH88:f:1 cell:BI88:f:1 cell:BJ88:f:1 cell:BK88:f:1 cell:BL88:f:1 cell:BM88:f:1 cell:BN88:f:1 cell:BO88:f:1 cell:BP88:f:1 cell:BQ88:f:1 cell:BR88:f:1 cell:BS88:f:1 cell:BT88:f:1 cell:BU88:f:1 cell:BV88:f:1 cell:BW88:f:1 cell:BX88:f:1 cell:BY88:f:1 cell:BZ88:f:1 cell:CA88:f:1 cell:CB88:vtf:t:e:cc4:f:1 cell:CC88:f:1 cell:E89:f:1 cell:F89:f:1 cell:G89:f:1 cell:H89:f:1 cell:I89:f:1 cell:J89:f:1 cell:K89:f:1 cell:L89:f:1 cell:M89:f:1 cell:N89:f:1 cell:O89:f:1 cell:P89:f:1 cell:Q89:f:1 cell:R89:f:1 cell:S89:f:1 cell:T89:f:1 cell:U89:f:1 cell:V89:f:1 cell:W89:f:1 cell:X89:f:1 cell:Y89:f:1 cell:Z89:f:1 cell:AA89:f:1 cell:AB89:f:1 cell:AC89:f:1 cell:AD89:f:1 cell:AE89:f:1 cell:AF89:f:1 cell:AG89:f:1 cell:AH89:f:1 cell:AI89:f:1 cell:AJ89:f:1 cell:AK89:f:1 cell:AL89:f:1 cell:AM89:f:1 cell:AN89:f:1 cell:AO89:f:1 cell:AP89:f:1 cell:AQ89:f:1 cell:AR89:f:1 cell:AS89:f:1 cell:AT89:f:1 cell:AU89:f:1 cell:AV89:f:1 cell:AW89:f:1 cell:AX89:f:1 cell:AY89:f:1 cell:AZ89:f:1 cell:BA89:f:1 cell:BB89:f:1 cell:BC89:f:1 cell:BD89:f:1 cell:BE89:f:1 cell:BF89:f:1 cell:BG89:f:1 cell:BH89:f:1 cell:BI89:f:1 cell:BJ89:f:1 cell:BK89:f:1 cell:BL89:f:1 cell:BM89:f:1 cell:BN89:f:1 cell:BO89:f:1 cell:BP89:f:1 cell:BQ89:f:1 cell:BR89:f:1 cell:BS89:f:1 cell:BT89:f:1 cell:BU89:f:1 cell:BV89:f:1 cell:BW89:f:1 cell:BX89:f:1 cell:BY89:f:1 cell:BZ89:f:1 cell:CA89:f:1 cell:CB89:f:1 cell:CC89:f:1 col:A:w:14 col:B:w:14 col:C:w:14 col:D:w:14 col:E:w:14 col:F:w:14 col:G:w:14 col:H:w:14 col:I:w:14 col:J:w:14 col:K:w:14 col:L:w:14 col:M:w:14 col:N:w:14 col:O:w:14 col:P:w:14 col:Q:w:14 col:R:w:14 col:S:w:14 col:T:w:14 col:U:w:14 col:V:w:14 col:W:w:14 col:X:w:14 col:Y:w:14 col:Z:w:14 col:AA:w:14 col:AB:w:14 col:AC:w:14 col:AD:w:14 col:AE:w:14 col:AF:w:14 col:AG:w:14 col:AH:w:14 col:AI:w:14 col:AJ:w:14 col:AK:w:14 col:AL:w:14 col:AM:w:14 col:AN:w:14 col:AO:w:14 col:AP:w:14 col:AQ:w:14 col:AR:w:14 col:AS:w:14 col:AT:w:14 col:AU:w:14 col:AV:w:14 col:AW:w:14 col:AX:w:14 col:AY:w:14 col:AZ:w:14 col:BA:w:14 col:BB:w:14 col:BC:w:14 col:BD:w:14 col:BE:w:14 col:BF:w:14 col:BG:w:14 col:BH:w:14 col:BI:w:14 col:BJ:w:14 col:BK:w:14 col:BL:w:14 col:BM:w:14 col:BN:w:14 col:BO:w:14 col:BP:w:14 col:BQ:w:14 col:BR:w:14 col:BS:w:14 col:BT:w:14 col:BU:w:14 col:BV:w:14 col:BW:w:14 col:BX:w:14 col:BY:w:14 col:BZ:w:14 col:CA:w:14 col:CB:w:14 col:CC:w:14 row:1:hide:yes row:2:hide:yes row:3:hide:yes row:4:hide:yes row:5:hide:yes sheet:c:81:r:89 font:1:normal bold * * --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.0 rowpane:0:1:24 colpane:0:1:40 ecell:A6 sort::-1:down:::: graph:range:undefined:type::minmax:undefined,undefined,undefined,undefined --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 set E8:CC89 font normal bold * * --SocialCalcSpreadsheetControlSave--
""" ''Il pleut'' by Guillaume Apollinaire. Calligrammes (1918). [[English translation|SocialCalc/Demos/calligramme-in-english--demo]] """ <$edit-socialcalc tiddler="SocialCalc/Demos/calligramme" mode="view" grid="no" height=500/>
socialcalc:version:1.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 # SocialCalc Spreadsheet Control Save version:1.0 part:sheet part:edit part:audit --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.5 cell:A1:v:0:bg:1 cell:B1:v:1:bg:1 cell:C1:v:1:bg:1 cell:D1:v:1:bg:1 cell:E1:v:1:bg:1 cell:F1:v:1:bg:1 cell:G1:v:1:bg:1 cell:A2:v:1:bg:1 cell:B2:vtf:n:2:a2+b1 cell:C2:vtf:n:3:B2+C1 cell:D2:vtf:n:4:C2+D1 cell:E2:vtf:n:5:D2+E1 cell:F2:vtf:n:6:E2+F1 cell:G2:vtf:n:7:F2+G1 cell:A3:v:1:bg:1 cell:B3:vtf:n:3:A3+B2 cell:C3:vtf:n:6:B3+C2 cell:D3:vtf:n:10:C3+D2 cell:E3:vtf:n:15:D3+E2 cell:F3:vtf:n:21:E3+F2 cell:G3:vtf:n:28:F3+G2 cell:A4:v:1:bg:1 cell:B4:vtf:n:4:A4+B3 cell:C4:vtf:n:10:B4+C3 cell:D4:vtf:n:20:C4+D3 cell:E4:vtf:n:35:D4+E3 cell:F4:vtf:n:56:E4+F3 cell:G4:vtf:n:84:F4+G3 cell:A5:v:1:bg:1 cell:B5:vtf:n:5:A5+B4 cell:C5:vtf:n:15:B5+C4 cell:D5:vtf:n:35:C5+D4 cell:E5:vtf:n:70:D5+E4 cell:F5:vtf:n:126:E5+F4 cell:G5:vtf:n:210:F5+G4 cell:A6:v:1:bg:1 cell:B6:vtf:n:6:A6+B5 cell:C6:vtf:n:21:B6+C5 cell:D6:vtf:n:56:C6+D5 cell:E6:vtf:n:126:D6+E5 cell:F6:vtf:n:252:E6+F5 cell:G6:vtf:n:462:F6+G5 cell:A7:v:1:bg:1 cell:B7:vtf:n:7:A7+B6 cell:C7:vtf:n:28:B7+C6 cell:D7:vtf:n:84:C7+D6 cell:E7:vtf:n:210:D7+E6 cell:F7:vtf:n:462:E7+F6 cell:G7:vtf:n:924:F7+G6 cell:A8:v:1:bg:1 cell:B8:vtf:n:8:A8+B7 cell:C8:vtf:n:36:B8+C7 cell:D8:vtf:n:120:C8+D7 cell:E8:vtf:n:330:D8+E7 cell:F8:vtf:n:792:E8+F7 cell:G8:vtf:n:1716:F8+G7 cell:A9:v:1:bg:1 cell:B9:vtf:n:9:A9+B8 cell:C9:vtf:n:45:B9+C8 cell:D9:vtf:n:165:C9+D8 cell:E9:vtf:n:495:D9+E8 cell:F9:vtf:n:1287:E9+F8 cell:G9:vtf:n:3003:F9+G8 cell:A10:v:1:bg:1 cell:B10:vtf:n:10:A10+B9 cell:C10:vtf:n:55:B10+C9 cell:D10:vtf:n:220:C10+D9 cell:E10:vtf:n:715:D10+E9 cell:F10:vtf:n:2002:E10+F9 cell:G10:vtf:n:5005:F10+G9 cell:A11:v:1:bg:1 cell:B11:vtf:n:11:A11+B10 cell:C11:vtf:n:66:B11+C10 cell:D11:vtf:n:286:C11+D10 cell:E11:vtf:n:1001:D11+E10 cell:F11:vtf:n:3003:E11+F10 cell:G11:vtf:n:8008:F11+G10 cell:A12:v:1:bg:1 cell:B12:vtf:n:12:A12+B11 cell:C12:vtf:n:78:B12+C11 cell:D12:vtf:n:364:C12+D11 cell:E12:vtf:n:1365:D12+E11 cell:F12:vtf:n:4368:E12+F11 cell:G12:vtf:n:12376:F12+G11 cell:A13:v:1:bg:1 cell:B13:vtf:n:13:A13+B12 cell:C13:vtf:n:91:B13+C12 cell:D13:vtf:n:455:C13+D12 cell:E13:vtf:n:1820:D13+E12 cell:F13:vtf:n:6188:E13+F12 cell:G13:vtf:n:18564:F13+G12 cell:A14:v:1:bg:1 cell:B14:vtf:n:14:A14+B13 cell:C14:vtf:n:105:B14+C13 cell:D14:vtf:n:560:C14+D13 cell:E14:vtf:n:2380:D14+E13 cell:F14:vtf:n:8568:E14+F13 cell:G14:vtf:n:27132:F14+G13 sheet:c:7:r:14 color:1:rgb(255, 153, 0) --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.0 rowpane:0:1:17 colpane:0:1:7 ecell:A1 sort::-1:up:::: graph:range:undefined:type::minmax:undefined,undefined,undefined,undefined --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 set D1 value n 10 set D1 value n 3 set C1 value n 1 set D1 value n 0 set E1 value n 0 set F1 value n 1 set G1 value n 1 set E1 value n 1 set D1 value n 1 set A3 value n 1 set A4 value n 1 set A5 value n 1 set A6 value n 1 set A7 value n 1 set A8 value n 1 set A9 value n 1 set A10 value n 1 set A11 value n 1 set A12 value n 1 set A13 value n 1 set A14 value n 1 --SocialCalcSpreadsheetControlSave--
''A field of numbers'' <$edit-socialcalc tiddler="SocialCalc/Demos/field" height=400/>
socialcalc:version:1.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 # SocialCalc Spreadsheet Control Save version:1.0 part:sheet part:edit part:audit --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.5 cell:A1:t:Link:f:1:bg:1:cf:1 cell:B1:t:Comment:f:1:bg:1:cf:1 cell:A2:vtf:n:2:"one-plus-one"!e1:f:1 cell:B2:t:Solution of a big calculation cell:A3:vtf:t:I:"calligramme"!e8:f:1 cell:B3:t:First letter of a beautiful poem cell:A4:t:[field]:tvf:1 cell:B4:t:A calc sheet with a field of numbers cell:A5:t:Plugin<tw\c$\c/plugins/rboue/SocialCalc>:tvf:1 cell:B5:t:The SocialCalc plugin cell:A6:t:TiddlyWiki<http\c//tiddlywiki.com/>:tvf:1 cell:B6:t:A non-linear personal web notebook col:B:w:260 sheet:c:2:r:6 cellformat:1:center color:1:rgb(255, 153, 0) font:1:normal bold * * valueformat:1:text-link --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.0 rowpane:0:1:11 colpane:0:1:5 ecell:A6 sort::-1:down:::: graph:range:undefined:type::minmax:undefined,undefined,undefined,undefined --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 set A4 text t [field] set A4 text t Page[field] set A4 text t [field] set A4 textvalueformat text-link set B4 text t A calc sheet with a field of numbers set A5 text t Plugin<tw\c$\c/plugins/rboue/SocialCalc> set A5 text t Plugin<tw\c$/plugins/rboue/SocialCalc> set A5 text t Plugin<tw\c$\c/plugins/rboue/SocialCalc> set A5 textvalueformat text-link set B5 text t The SocialCalc plugin set A6 text t TiddlyWiki<> set A6 text t TiddlyWiki<http\c//tiddlywiki.com/> set A6 textvalueformat text-link set B6 text t A set B6 text t A non-linear personal web notebook --SocialCalcSpreadsheetControlSave--
''Examples of links'' <$edit-socialcalc tiddler="SocialCalc/Demos/links"/>
socialcalc:version:1.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=SocialCalcSpreadsheetControlSave --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 # SocialCalc Spreadsheet Control Save version:1.0 part:sheet part:edit part:audit --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.5 cell:A1:v:1:f:1:bg:2 cell:B1:t:+ cell:C1:v:1:f:1:bg:3 cell:D1:t:= cell:E1:vtf:n:2:$a$1+$c$1:f:1:bg:1 cell:K2:vtf:t::IF($e$1=2,""," "):comment:Don't say it ! cell:G3:vtf:n:1:$a$1:bg:2 cell:H3:vtf:n:1:$A$1:bg:2 cell:X3:vtf:n:1:$c$1:bg:3 cell:Y3:vtf:n:1:$C$1:bg:3 cell:AN3:vtf:n:2:$e$1:bg:1 cell:AO3:vtf:n:2:$E$1:bg:1 cell:F4:vtf:n:1:$A$1:bg:2 cell:G4:vtf:n:1:$A$1:bg:2 cell:H4:vtf:n:1:$A$1:bg:2 cell:W4:vtf:n:1:$C$1:bg:3 cell:X4:vtf:n:1:$C$1:bg:3 cell:Y4:vtf:n:1:$C$1:bg:3 cell:AM4:vtf:n:2:$E$1:bg:1 cell:AN4:vtf:n:2:$E$1:bg:1 cell:AO4:vtf:n:2:$E$1:bg:1 cell:AP4:vtf:n:2:$E$1:bg:1 cell:E5:vtf:n:1:$A$1:bg:2 cell:F5:vtf:n:1:$A$1:bg:2 cell:G5:vtf:n:1:$A$1:bg:2 cell:H5:vtf:n:1:$A$1:bg:2 cell:V5:vtf:n:1:$C$1:bg:3 cell:W5:vtf:n:1:$C$1:bg:3 cell:X5:vtf:n:1:$C$1:bg:3 cell:Y5:vtf:n:1:$C$1:bg:3 cell:AL5:vtf:n:2:$E$1:bg:1 cell:AM5:vtf:n:2:$E$1:bg:1 cell:AP5:vtf:n:2:$E$1:bg:1 cell:AQ5:vtf:n:2:$E$1:bg:1 cell:D6:vtf:n:1:$A$1:bg:2 cell:E6:vtf:n:1:$A$1:bg:2 cell:G6:vtf:n:1:$A$1:bg:2 cell:H6:vtf:n:1:$A$1:bg:2 cell:N6:vtf:t:+:$b$1 cell:O6:vtf:t:+:$B$1 cell:U6:vtf:n:1:$C$1:bg:3 cell:V6:vtf:n:1:$C$1:bg:3 cell:X6:vtf:n:1:$C$1:bg:3 cell:Y6:vtf:n:1:$C$1:bg:3 cell:AL6:vtf:n:2:$E$1:bg:1 cell:AM6:vtf:n:2:$E$1:bg:1 cell:AP6:vtf:n:2:$E$1:bg:1 cell:AQ6:vtf:n:2:$E$1:bg:1 cell:G7:vtf:n:1:$A$1:bg:2 cell:H7:vtf:n:1:$A$1:bg:2 cell:L7:vtf:t:+:$B$1 cell:M7:vtf:t:+:$B$1 cell:N7:vtf:t:+:$B$1 cell:O7:vtf:t:+:$B$1 cell:P7:vtf:t:+:$B$1 cell:Q7:vtf:t:+:$B$1 cell:X7:vtf:n:1:$C$1:bg:3 cell:Y7:vtf:n:1:$C$1:bg:3 cell:AC7:vtf:t:=:$d$1 cell:AD7:vtf:t:=:$D$1 cell:AE7:vtf:t:=:$D$1 cell:AF7:vtf:t:=:$D$1 cell:AG7:vtf:t:=:$D$1 cell:AH7:vtf:t:=:$D$1 cell:AO7:vtf:n:2:$E$1:bg:1 cell:AP7:vtf:n:2:$E$1:bg:1 cell:G8:vtf:n:1:$A$1:bg:2 cell:H8:vtf:n:1:$A$1:bg:2 cell:L8:vtf:t:+:$B$1 cell:M8:vtf:t:+:$B$1 cell:N8:vtf:t:+:$B$1 cell:O8:vtf:t:+:$B$1 cell:P8:vtf:t:+:$B$1 cell:Q8:vtf:t:+:$B$1 cell:X8:vtf:n:1:$C$1:bg:3 cell:Y8:vtf:n:1:$C$1:bg:3 cell:AC8:vtf:t:=:$D$1 cell:AD8:vtf:t:=:$D$1 cell:AE8:vtf:t:=:$D$1 cell:AF8:vtf:t:=:$D$1 cell:AG8:vtf:t:=:$D$1 cell:AH8:vtf:t:=:$D$1 cell:AN8:vtf:n:2:$E$1:bg:1 cell:AO8:vtf:n:2:$E$1:bg:1 cell:G9:vtf:n:1:$A$1:bg:2 cell:H9:vtf:n:1:$A$1:bg:2 cell:N9:vtf:t:+:$B$1 cell:O9:vtf:t:+:$B$1 cell:X9:vtf:n:1:$C$1:bg:3 cell:Y9:vtf:n:1:$C$1:bg:3 cell:AM9:vtf:n:2:$E$1:bg:1 cell:AN9:vtf:n:2:$E$1:bg:1 cell:G10:vtf:n:1:$A$1:bg:2 cell:H10:vtf:n:1:$A$1:bg:2 cell:X10:vtf:n:1:$C$1:bg:3 cell:Y10:vtf:n:1:$C$1:bg:3 cell:AL10:vtf:n:2:$E$1:bg:1 cell:AM10:vtf:n:2:$E$1:bg:1 cell:AN10:vtf:n:2:$E$1:bg:1 cell:AO10:vtf:n:2:$E$1:bg:1 cell:AP10:vtf:n:2:$E$1:bg:1 cell:AQ10:vtf:n:2:$E$1:bg:1 cell:G11:vtf:n:1:$A$1:bg:2 cell:H11:vtf:n:1:$A$1:bg:2 cell:X11:vtf:n:1:$C$1:bg:3 cell:Y11:vtf:n:1:$C$1:bg:3 cell:AL11:vtf:n:2:$E$1:bg:1 cell:AM11:vtf:n:2:$E$1:bg:1 cell:AN11:vtf:n:2:$E$1:bg:1 cell:AO11:vtf:n:2:$E$1:bg:1 cell:AP11:vtf:n:2:$E$1:bg:1 cell:AQ11:vtf:n:2:$E$1:bg:1 col:A:w:10 col:B:w:10 col:C:w:10 col:D:w:10 col:E:w:10 col:F:w:10 col:G:w:10 col:H:w:10 col:I:w:10 col:J:w:10 col:K:w:10 col:L:w:10 col:M:w:10 col:N:w:10 col:O:w:10 col:P:w:10 col:Q:w:10 col:R:w:10 col:S:w:10 col:T:w:10 col:U:w:10 col:V:w:10 col:W:w:10 col:X:w:10 col:Y:w:10 col:Z:w:10 col:AA:w:10 col:AB:w:10 col:AC:w:10 col:AD:w:10 col:AE:w:10 col:AF:w:10 col:AG:w:10 col:AH:w:10 col:AI:w:10 col:AJ:w:10 col:AK:w:10 col:AL:w:10 col:AM:w:10 col:AN:w:10 col:AO:w:10 col:AP:w:10 col:AQ:w:10 col:AR:w:10 col:AS:w:10 col:AT:w:10 col:AU:w:10 col:AV:w:10 col:AW:w:10 col:AX:w:10 col:AY:w:10 col:AZ:w:10 col:BA:w:10 col:BB:w:10 col:BC:w:10 col:BD:w:10 col:BE:w:10 col:BF:w:10 sheet:c:58:r:11 color:1:rgb(0, 255, 255) color:2:rgb(255, 153, 0) color:3:rgb(255, 255, 0) font:1:normal bold * * --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 version:1.0 rowpane:0:1:17 colpane:0:1:56 ecell:A2 sort::-1:up:::: graph:range:undefined:type::minmax:undefined,undefined,undefined,undefined --SocialCalcSpreadsheetControlSave Content-type: text/plain; charset=UTF-8 set K2 comment Don't say it ! --SocialCalcSpreadsheetControlSave--
''A calc sheet. Feel free to modify it !'' <$edit-socialcalc tiddler="SocialCalc/Demos/one-plus-one" height=400/>
*Le plugin : [[SocialCalc|$:/plugins/rboue/SocialCalc]] *[[Le source|https://tiddlywiki.com/static/rboue%27s%2520plugins%2520for%2520TiddlyWiki.html]] *[[Le source présenté avec ~TiddlyWiki|http://rboue.tiddlyspot.com/]] Sujet tagué "<<tag SocialCalc>>" comprenant {{{[tag[SocialCalc]count[]]}}} articles (tiddlers) !Demos Some calc sheets to play and see what you can do with ~SocialCalc : *[[one-plus-one|SocialCalc/Demos/one-plus-one--demo]] *[[field|SocialCalc/Demos/field--demo]] *[[calligramme|SocialCalc/Demos/calligramme--demo]] *[[links|SocialCalc/Demos/links--demo]] !What is ~SocialCalc ? A calc sheet to do effective calculations and much more. Links : [[Documentation|http://sternlife.stern.nyu.edu/help-en/SocialCalc]] [[Engine|http://www.softwaregarden.com/products/wikicalc/socialcalc/EngineDoc-8.html]] !~SocialCalc in ~TiddlyWiki environment """ __''Calc sheet storage''__ ~SocialCalc stores calc sheets in tiddlers of type `application/x-socialcalc`. __''Calc sheet edition''__ There is two ways to edit a calc sheet : with the standard tiddler editor or with the `<$edit-socialcal>` widget. For the widget way, see below. When you click on the edit icon of an `application/x-socialcalc` tiddler, the tiddler's editor displays an `<$edit-socialcalc>` widget to edit the calc page. You can also modify tiddler's fields the usual way. __''Data exchange''__ The "Clipboard" menu allows you to import/export data. However, supported formats are very limited. Don't expect to exchange data with EXCEL. There is simple text formats like CSV and Tab-delimited, and the "~SocialCalc-save" format. You can export a selection of a calc sheet (the clipboard) to a tiddler and you can import a data tiddler to the clipboard, nothing more. __''Links in calc sheet''__ ~SocialCalc offers a reasonable choice of link's types. See ~SocialCal documentation for details. There is two kinds of links that the plugin manages in a different way : calc sheet references (better known as "page references") and URL links. __Page reference__ A page reference is a reference to another calc sheet's piece of data in a formula. This type of link is essential to simplify the task of building calc sheets by splitting data between different sheets. In conventional case, calc sheets are web pages on specific servers. In ~TiddlyWiki's case, calc sheets are always stored in local tiddlers. Then, with ~TiddlyWiki, the reference to a page is simply the title of its tiddler. Example of a formula with page references : `="My first tiddler with a calc sheet"!a11 * "My second tiddler with a calc sheet"!b22` To ease the task of page referencing, the plugin offers an ambryo of filesystem and relative path handling. Let's say a main sheet is stored in the tiddler named "My directory/my main page" and a sheet with useful data in "My directory/my useful page". With relative path you can simply reference "my useful page" in a formula of the main sheet. This behaviour is configuration dependent (see below). You must define a filesystem.PATH attribute with the list of directories to search for page references. Example of configuration and formula with relative page references : Configuration tiddler (`$:config/rboue/SocialCalc`) : """ ``` { "filesystem": { "PATH": "My directory;other directory" }, ... } ``` """ `="my useful page"!a11 * "my useful page"!b22` __URL links__ Conventional ~SocialCalc offers the possibility to define clickable links, with common URLs like "http:...", "mailto:...", etc. The plugin adds the possibility to open tiddlers the same way, with a special type of URL : ''tw:''`title of a tiddler` Example of cell's value with a clickable link to a tiddler : `'<tw:My tiddler>` Filesystem and relative path applies also to URL links of type "tw:". This is the same behaviour than with page references. When creating a link, don't forget to set the cell's format value to `Link`. __''<$edit-socialcalc> widget''__ The widget offers quite the same UI than conventional ~SocialCalc editor. However there is some slight differences : """ * A new "Save changes" icon enables you to save sheet's data in tiddler. Its colour changes as soon as a change in data occured, to inform you that a save is required. * The "Clipboard" menu has more functionnalities. You can import clipboard data from tiddlers, with a choice of different formats. You can also export the clipboard to a data tiddler. * The "Graph" menu has been enhanced and offers more effective data display. """ The full set of conventional ~SocialCalc's editor keys is available whith the "Edit" menu, especially Ctrl-c/Ctrl-x/Ctrl-v to copy/delete/paste cells or ranges of cells. Please note that Ctrl-s has the same behaviour than a click on the "Save changes" icon. The content of the `<$edit-socialcalc>` widget is not interpreted. """ |Attribute |Description |h |width |Width of the widget in pixel | |height |Height of the widget in pixel (300 by default) | |mode |Type of display : "edit" to edit the data (default value), "view" to display without modification | |grid |"yes" to display the grid (default value), "no" otherwise | |class |An optional CSS class name to be assigned to the HTML element | """ __''Configuration''__ The plugin is configured via the `$:config/rboue/SocialCalc` tiddler (of type `application/json`). Example of configuration : """ ``` { "filesystem": { "PATH": "SocialCalc/Tests;SocialCalc/Tests/TestPath1;SocialCalc/Tests/TestPath2" }, "grid": "yes", "LANG": "fr-FR", "heightInTiddlerEditor": 500 } ``` |Attribute |Description |h |filesystem |Activates the pseudo filesystem behaviour. `PATH` is a list of absolute directories to search under when calc sheets are referenced in formula | |grid |If "yes", displays the grid (default). If "no", suppress the grid | |LANG |Language for menus, helps and tooltips translations. "en-GB" by default | |heightInTiddlerEditor |Height in pixel of the `<$edit-socialcalc>` widget in the tiddler's editor. Default is 300 | Default configuration is defined in the `$:/plugins/rboue/SocialCalc/config.json` tiddler.
{{SocialMacros||caption}}
Le contenu textuel des tiddlers (mode édition) est extrait et peut être transféré automatiquement, par mail, sur Reddit ou sur twitter. L'auteur cherchait le moyen de faire de même mais en mode visu. ;Les 7 tiddlers à importer : <dl>{{{ [tag[SocialMacros]] || $:/tocEntry }}}</dl>
Des boutons intéressants.
Capital: {{!!capital}}
{{Sources||title}}
!Solution 1 The Type attribute for HTML can be used with the $list widget as follows: ``` <ol type="a" start="x"> <$list filter="[tag{!!title}!has[stop]]"> <li><$transclude tiddler={{!!title}} mode="block" /></li> </$llist> ``` Also, the list widget can be nested to insert sublists. For example, the following can be used to create a formal outline for some notes: ``` <ol type="I"><$list filter="[tag{!!title}!has[stop]]"> <li><$link to={{!!title}}><$view field="title"/></$link> <p></p> <$transclude tiddler={{!!title}} mode="block" /></li> <ol type="A"><$list filter="[tag{!!title}!has[stop]]"> <li><$link to={{!!title}}><$view field="title"/></$link> <p></p> <$transclude tiddler={{!!title}} mode="block" /></li> <ol><$list filter="[tag{!!title}!has[stop]]"> <li><$link to={{!!title}}><$view field="title"/></$link> <p></p> <$transclude tiddler={{!!title}} mode="block" /></li> <ol type="a"><$list filter="[tag{!!title}!has[stop]]"> <li><$link to={{!!title}}><$view field="title"/></$link> <p></p> <$transclude tiddler={{!!title}} mode="block" /></li> <ol type="i"><$list filter="[tag{!!title}!has[stop]]"> <li><$link to={{!!title}}><$view field="title"/></$link> <p></p> <$transclude tiddler={{!!title}} mode="block" /></li> </$list></$list></$list> ``` !Solution 2 Un peu plus compliqué, mais fonctionnant: ``` <style> .u { list-style-type:upper-alpha; } .l { list-style-type:lower-alpha; } .r { list-style-type:upper-roman; } .n { list-style-type: none; margin: 0; padding: 0; } </style> ``` <style> .u { list-style-type:upper-alpha; } .l { list-style-type:lower-alpha; } .r { list-style-type:upper-roman; } .n { list-style-type: none; margin: 0; padding: 0; } </style> ``` *.u How **.l about ***.r that! ****.n Your ***.r fancy **.l list *.u works ``` Devient: *.u How **.l about ***.r that! ****.n Your ***.r fancy **.l list *.u works L'interprétation wikitext du caractère `.` (point) après les étoiles (*) considère ce qui est derrière comme étant un ''attribut de classe''. Ceci: ``` *.u How ``` Devenant: ``` <li class="u">How<ul> ``` !Solution 3 Si l'on veut maintenant définir un ''paramètre global'' il suffit de créer un nouveau tiddler feuille de style contenant : ``` ol li { list-style-type:upper-alpha; } ol li li { list-style-type:lower-alpha; } ol li li li { list-style-type:upper-roman; } ``` Que l'on utilisera avec une liste ordonnée: ``` # test ## asdf ### test ``` Pas de caractères supplémentaires exigés (.). Utile si vous devez effectuer des changements ultérieurs; vous n'avez plus besoin de réfléchir à la classe à utiliser.
{{Spectre||caption}}
Layout includes flexbox based responsive grid system with 12 columns. Add the `columns` class to a container with the `container` class. And add any element you want with the `column` class inside the container. These columns will take up the space equally. You can specific the width of each column by adding class `col-<1-12>`. ;Ainsi : ``` {{$:/cssNavbarCols}} ``` ;Rendu : ``` <!-- flexbox grid example --> <div class="container"> <div class="columns"> <div class="column col-6">col-6</div> <div class="column col-3">col-3</div> <div class="column col-2">col-2</div> <div class="column col-1">col-1</div> </div> </div> ``` :aura pour affichage : <!-- flexbox grid example --> <div class="container"> <div class="columns"> <div class="column col-6">col-6</div> <div class="column col-3">col-3</div> <div class="column col-2">col-2</div> <div class="column col-1">col-1</div> </div> </div>
<table class="table table-striped table-hover"> <thead> <tr> <th>Name</th> <th>Genre</th> <th>Release date</th> </tr> </thead> <tbody> <tr> <td>The Shawshank Redemption</td> <td>Crime, Drama</td> <td>14 October 1994</td> </tr> <tr> <td>The Godfather</td> <td>Crime, Drama</td> <td>24 March 1972</td> </tr> <tr> <td>Schindler's List</td> <td>Biography, Drama, History</td> <td>4 February 1994</td> </tr> <tr> <td>Se7en</td> <td>Crime, Drama, Mystery</td> <td>22 September 1995</td> </tr> </tbody> </table>
Badges are often used as unread number indicators. <div class="column col-3 col-xs-6"> <span class="badge" data-badge="">Notifications</span> </div> <div class="column col-3 col-xs-6"> <span class="badge" data-badge="8">Notifications</span> </div> <div class="column col-3 col-xs-6"> <span class="badge" data-badge="88">Notifications</span> </div> <div class="column col-3 col-xs-6"> <span class="badge" data-badge="888">Notifications</span> </div> Add the `badge` class to non self closing elements. And add the `data-badge` attribute to define the content of a badge. The badge will appear in the top-right direction of the element. If there is no `data-badge` or the attribute is not specified, the badge will appear as a dot. <span class="badge"> Notifications </span> <span class="badge" data-badge="8"> Notifications </span> <button class="btn badge" data-badge="8"> Button </button> <figure class="avatar badge" data-badge="8" data-initial="YZ"> <img src="img/avatar-3.png" alt="YZ"> </figure> Badges support `button` and `avatars` elements as well.
``` <blockquote> <p>The advance of technology is based on making it fit in so that you don't really even notice it, so it's part of everyday life. </p> <cite>- Bill Gates</cite> </blockquote> ``` ;Soit : <blockquote> <p>The advance of technology is based on making it fit in so that you don't really even notice it, so it's part of everyday life. </p> <cite>- Bill Gates</cite> </blockquote>
Voir [[$:/Tiddler Breadcrumbs Template]] pour la mise en place Breadcrumbs are used as navigational hierarchies to indicate current location. Add a container element with the breadcrumb class. And add child elements with the breadcrumb-item class. ``` <ul class="breadcrumb"> <li class="breadcrumb-item"> <a href="#">Home</a> </li> <li class="breadcrumb-item"> <a href="#">Settings</a> </li> <li class="breadcrumb-item"> <a href="#">Change avatar</a> </li> </ul> ``` <ul class="breadcrumb"> <li class="breadcrumb-item"> <a href="#">Home</a> </li> <li class="breadcrumb-item"> <a href="#">Settings</a> </li> <li class="breadcrumb-item"> <a href="#">Change avatar</a> </li> </ul> ``` <ul class="breadcrumb"> <li class="breadcrumb-item"><a class="tooltip" href="#breadcrumbs" data-tooltip="Home">Home</a></li> <li class="breadcrumb-item"><a class="tooltip" href="#breadcrumbs" data-tooltip="Settings">Settings</a></li> <li class="breadcrumb-item">Search result: <a class="tooltip" href="#breadcrumbs" data-tooltip="Search result: Spectre">Spectre</a></li> </ul> ``` <ul class="breadcrumb"> <li class="breadcrumb-item"><a class="tooltip" href="#breadcrumbs" data-tooltip="Home">Home</a></li> <li class="breadcrumb-item"><a class="tooltip" href="#breadcrumbs" data-tooltip="Settings">Settings</a></li> <li class="breadcrumb-item">Search result: <a class="tooltip" href="#breadcrumbs" data-tooltip="Search result: Spectre">Spectre</a></li> </ul>
Pour le source, voyez https://picturepan2.github.io/spectre/ * [[spectre.css]] * [[spectre-exp.css]] * [[spectre-icons.css]] Ce wiki utilise massivement le Framework Spectre.
!Fonts <pre class="code"> <code> <span class="hljs-comment">/* Western typography targeted */</span> <span class="hljs-attribute">font-family</span>: -apple-system, system-ui, BlinkMacSystemFont, <span class="hljs-string">"Segoe UI"</span>, Roboto, <span class="hljs-string">"Helvetica Neue"</span>, sans-serif; <span class="hljs-comment">/* Monospace typography targeted */</span> <span class="hljs-attribute">font-family</span>: <span class="hljs-string">"SF Mono"</span>, <span class="hljs-string">"Segoe UI Mono"</span>, <span class="hljs-string">"Roboto Mono"</span>, Menlo, Courier, monospace; <span class="hljs-comment">/* Chinese (lang="zh" and lang="zh-Hans") targeted */</span> <span class="hljs-attribute">font-family</span>: -apple-system, system-ui, BlinkMacSystemFont, <span class="hljs-string">"Segoe UI"</span>, Roboto, <span class="hljs-string">"PingFang SC"</span>, <span class="hljs-string">"Hiragino Sans GB"</span>, <span class="hljs-string">"Microsoft YaHei"</span>, <span class="hljs-string">"Helvetica Neue"</span>, sans-serif; <span class="hljs-comment">/* Chinese (lang="zh-Hant") targeted */</span> <span class="hljs-attribute">font-family</span>: -apple-system, system-ui, BlinkMacSystemFont, <span class="hljs-string">"Segoe UI"</span>, Roboto, <span class="hljs-string">"PingFang TC"</span>, <span class="hljs-string">"Hiragino Sans CNS"</span>, <span class="hljs-string">"Microsoft JhengHei"</span>, <span class="hljs-string">"Helvetica Neue"</span>, sans-serif; <span class="hljs-comment">/* Japanese (lang="ja") targeted */</span> <span class="hljs-attribute">font-family</span>: -apple-system, system-ui, BlinkMacSystemFont, <span class="hljs-string">"Segoe UI"</span>, Roboto, <span class="hljs-string">"Hiragino Sans"</span>, <span class="hljs-string">"Hiragino Kaku Gothic Pro"</span>, <span class="hljs-string">"Yu Gothic"</span>, YuGothic, Meiryo, <span class="hljs-string">"Helvetica Neue"</span>, sans-serif; <span class="hljs-comment">/* Korean (lang="ko") targeted */</span> <span class="hljs-attribute">font-family</span>: -apple-system, system-ui, BlinkMacSystemFont, <span class="hljs-string">"Segoe UI"</span>, Roboto, <span class="hljs-string">"Malgun Gothic"</span>, <span class="hljs-string">"Helvetica Neue"</span>, sans-serif; </code> </pre>
!Headings Dans Spectre, les balises Hn possèdent les tailles suivantes : ``` H1 Heading 40px H2 Heading 32px H3 Heading 28px H4 Heading 24px H5 Heading 20px H6 Heading 16px ``` Qui peuvent supporter les classes suivantes : ``` <h1>H1 Heading</h1> <h1>H1 Heading <small class="label">40px</small></h1> <span class="h1">H1 Heading</span> ``` ;Soit : <h1>H1 Heading</h1> <h1>H1 Heading <small class="label">40px</small></h1> <span class="h1">H1 Heading</span> ``` <h2>H2 Heading</h2> <h2>H2 Heading <small class="label">32px</small></h2> <span class="h2">H2 Heading</span> ``` ;Soit: <h2>H2 Heading</h2> <h2>H2 Heading <small class="label">32px</small></h2> <span class="h2">H2 Heading</span> ``` <h3>H3 Heading</h3> <h3>H3 Heading <small class="label">28px</small></h3> <span class="h3">H3 Heading</span> ``` ;Soit: <h3>H3 Heading</h3> <h3>H3 Heading <small class="label">28px</small></h3> <span class="h3">H3 Heading</span> ``` <h4>H4 Heading</h4> <h4>H4 Heading <small class="label">24px</small></h4> <span class="h4">H4 Heading</span> ``` ;Soit : <h4>H4 Heading</h4> <h4>H4 Heading <small class="label">24px</small></h4> <span class="h4">H4 Heading</span> ``` <h5>H5 Heading</h5> <h5>H5 Heading <small class="label">20px</small></h5> <span class="h5">H5 Heading</span> ``` ;Soit : <h5>H5 Heading</h5> <h5>H5 Heading <small class="label">20px</small></h5> <span class="h5">H5 Heading</span> ``` <h6>H6 Heading</h6> <h6>H6 Heading <small class="label">16px</small></h6> <span class="h6">H6 Heading</span> ``` ;Soit : <h6>H6 Heading</h6> <h6>H6 Heading <small class="label">16px</small></h6> <span class="h6">H6 Heading</span>
{{SpectreIcons||caption}}
{{SpectreImages||caption}}
On peut utiliser l'élément `<figure>` pour ajouter un titre à l'image. Ajouter la classe `figure` à l'élément `<figure>`. Les images contenant la classe `img-responsive` seront responsive. De plus, la classe incluse `figure-caption` procurera un style de base pour le titre. De même, on peut spécifier un alignement du titre en utilisant `text-left`, `text-center` et `text-right`. <div class="docs-demo columns"> <div class="column col-12"> <figure class="figure"><img class="img-responsive rounded" src="img/Savoir.jpg" alt="La Bibliothèque"> <figcaption class="figure-caption text-center">Cette image est décrite et centrée.</figcaption> </figure> </div> </div>
Ajouter les classes `img-fit-contain` ou `img-fit-cover` à l'élément `<img>` et l'image se cadrera d'elle-même (soit dans le cadre soit en le recouvrant) pour s'insérer dans l'élément (sans avoir besoin d'un autre container pour se faire). Cette option permet de remplacer le substitut classique "background image". Supporté par Microsoft Edge (sous la référence 16299+). ``` <div class="docs-demo columns"> <div class="column col-6 col-xs-12"> <figure class="figure"><img class="img-fit-contain rounded" src="img/Savoir.jpg" alt="La Bibliothèque" style="background: #f8f9fa; height: 10rem; width: 100%;"> <figcaption class="figure-caption text-center">img-fit-contain</figcaption> </figure> </div> <div class="column col-6 col-xs-12"> <figure class="figure"><img class="img-fit-cover rounded" src="img/Savoir.jpg" alt="La Bibliothèque" style="background: #f8f9fa; height: 10rem; width: 100%;"> <figcaption class="figure-caption text-center">img-fit-cover</figcaption> </figure> </div> </div> ``` <div class="docs-demo columns"> <div class="column col-6 col-xs-12"> <figure class="figure"><img class="img-fit-contain rounded" src="img/Savoir.jpg" alt="La Bibliothèque" style="background: #f8f9fa; height: 10rem; width: 100%;"> <figcaption class="figure-caption text-center">img-fit-contain</figcaption> </figure> </div> <div class="column col-6 col-xs-12"> <figure class="figure"><img class="img-fit-cover rounded" src="img/Savoir.jpg" alt="La Bibliothèque" style="background: #f8f9fa; height: 10rem; width: 100%;"> <figcaption class="figure-caption text-center">img-fit-cover</figcaption> </figure> </div> </div>
En ajoutant la classe `img-responsive` à l'élément `<img>`, Les images seront à l'échelle des tailles parents. ``` <img src="img/TW5pattern5.jpg" class="img-responsive" alt="TW5Pattern5"> ``` <img src="img/TW5pattern5.jpg" class="img-responsive" alt="TW5Pattern5">
!!Liste non ordonnée : ``` <div class="column col-12 col-xs-12"> <ul class="list"> <li>list item 1</li> <li>list item 2 <ul> <li>list item 2.1</li> <li>list item 2.2</li> <li>list item 2.3</li> </ul> </li> <li>list item 3</li> </ul> </div> ``` ;Soit: <div class="column col-12 col-xs-12"> <ul class="list"> <li>list item 1</li> <li>list item 2 <ul> <li>list item 2.1</li> <li>list item 2.2</li> <li>list item 2.3</li> </ul> </li> <li>list item 3</li> </ul> </div> !!Liste ordonnée ``` <div class="column col-12 col-xs-12"> <ol class="list"> <li>list item 1</li> <li>list item 2 <ol> <li>list item 2.1</li> <li>list item 2.2</li> <li>list item 2.3</li> </ol> </li> <li>list item 3</li> </ol> </div> ``` ;Soit : <div class="column col-12 col-xs-12"> <ol class="list"> <li>list item 1</li> <li>list item 2 <ol> <li>list item 2.1</li> <li>list item 2.2</li> <li>list item 2.3</li> </ol> </li> <li>list item 3</li> </ol> </div> !!Liste Description ``` <div class="column col-12 col-xs-12"> <dl class="list"> <dt>description list term 1</dt> <dd>description list description 1</dd> <dt>description list term 2</dt> <dd>description list description 2</dd> <dt>description list term 3</dt> <dd>description list description 3</dd> </dl> </div> ``` ;Soit : <div class="column col-12 col-xs-12"> <dl class="list"> <dt>description list term 1</dt> <dd>description list description 1</dd> <dt>description list term 2</dt> <dd>description list description 2</dd> <dt>description list term 3</dt> <dd>description list description 3</dd> </dl> </div>
Menus are vertical list of links or buttons for actions and navigation. Add a container element with the menu class. And add child elements with the menu-item class. You can separate menu items with a divider. Spectre.css does not include ~JavaScript code, you will need to implement your JS to interact with the menus. Menus also have [[Form controls|Forms]] (checkbox, radio and checkbox) support. !!Dropdown menu The dropdown is a combination of buttons and menus. Dropdown menus component is built entirely in CSS. It is triggered by `:focus` event. Add a container element with the `dropdown` class. And add a focusable element with the `dropdown-toggle` class for the button and a `menu` component right next to it. You also need to add `tabindex` to make the buttons focusable. If the dropdown is close to the right edge of the browser, you can add the `dropdown-right` class to the container to prevent it appearing off screen. Also, you can implement your JS to interact with the dropdown menus by adding the `active` class to the `dropdown` container. ``` <!-- basic dropdown button --> <div class="dropdown"> <a href="#" class="btn btn-link dropdown-toggle" tabindex="0"> dropdown menu <i class="icon icon-caret"></i> </a> <!-- menu component --> <ul class="menu"> ... </ul> </div> ``` <!-- basic dropdown button --> <div class="dropdown"> <a href="#" class="btn btn-link dropdown-toggle" tabindex="0"> dropdown menu <i class="icon icon-caret"></i> </a> <!-- menu component --> <ul class="menu"> ... </ul> </div> ``` <!-- dropdown button group --> <div class="dropdown"> <div class="btn-group"> <a href="#" class="btn"> dropdown button </a> <a href="#" class="btn dropdown-toggle" tabindex="0"> <i class="icon icon-caret"></i> </a> <!-- menu component --> <ul class="menu"> ... </ul> </div> </div> ``` <!-- dropdown button group --> <div class="dropdown"> <div class="btn-group"> <a href="#" class="btn"> dropdown button </a> <a href="#" class="btn dropdown-toggle" tabindex="0"> <i class="icon icon-caret"></i> </a> <!-- menu component --> <ul class="menu"> ... </ul> </div> </div>
!Paragraphs ``` <p>Lorem ipsum dolor sit amet, ...</p> <p>...</p> ``` <p>Lorem ipsum dolor sit amet, ...</p> <p>...</p>
!Semantic text elements <div class="docs-demo columns"> <div class="column col-6 col-xs-12"><abbr title="Internationalization">I18N</abbr><code class="ml-2">abbr</code></div> <div class="column col-6 col-xs-12"><strong>Bold</strong><code class="ml-2">strong</code><code class="ml-2">b</code></div> <div class="column col-6 col-xs-12"> <cite>Citation</cite><code class="ml-2">cite</code></div> <div class="column col-6 col-xs-12"><code>Hello World!</code><code class="ml-2">code</code></div> <div class="column col-6 col-xs-12"> <del>Deleted</del><code class="ml-2">del</code></div> <div class="column col-6 col-xs-12"><em>Emphasis</em><code class="ml-2">em</code></div> <div class="column col-6 col-xs-12"><i>Italic</i><code class="ml-2">i</code></div> <div class="column col-6 col-xs-12"><ins>Inserted</ins><code class="ml-2">ins</code></div> <div class="column col-6 col-xs-12"><kbd>Ctrl + S</kbd><code class="ml-2">kbd</code></div> <div class="column col-6 col-xs-12"> <mark>Highlighted</mark><code class="ml-2">mark</code></div> <div class="column col-6 col-xs-12"><ruby>漢 <rt>kan</rt>字 <rt>ji</rt></ruby><code class="ml-2">ruby</code></div> <div class="column col-6 col-xs-12"><s>Strikethrough</s><code class="ml-2">s</code></div> <div class="column col-6 col-xs-12"><samp>Sample</samp><code class="ml-2">samp</code></div> <div class="column col-6 col-xs-12">Text <sub>Subscripted</sub><code class="ml-2">sub</code></div> <div class="column col-6 col-xs-12">Text <sup>Superscripted</sup><code class="ml-2">sup</code></div> <div class="column col-6 col-xs-12"><time>20:00</time><code class="ml-2">time</code></div> <div class="column col-6 col-xs-12"><u>Underline</u><code class="ml-2">u</code></div> <div class="column col-6 col-xs-12"><var>x</var> = <var>y</var> + 2<code class="ml-2">var</code></div> </div>
{{SpectreTypography||caption}}
\define ss_cols() A B C D E F G H I J \define ss_rows() 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 \define ss_cell() $(c)$$(r)$ <$tiddler tiddler="Spreadsheet/Data"> Click on cells to pop up an editor. Formulas currently need to be written in `(= =)` but cells may be referred to by their names, such as `A2`. Ranges aren't supported yet. <$vars popupState=<<qualify "$:/temp/spreadsheet/pop">> popupCell=<<qualify "$:/temp/spreadsheet/popcell">> > <$reveal type="popup" state=<<popupState>> > <div class="tc-drop-down tc-popup-keep"> <$set name="cell" filter="[title<popupCell>get[text]]"> ''<<cell>>'': <$edit-text tag=input index=<<cell>> size=30 /> <$button class="tc-btn-invisible">{{$:/core/images/save-button}}<$action-setfield $tiddler=<<popupState>> text=""/></$button> </$set> </div> </$reveal> <table> <tr><th></th><$list variable=c filter=<<ss_cols>> ><th><<c>></th></$list></tr> <$list variable=r filter=<<ss_rows>> > <tr> <th style="padding:0;"><<r>></th> <$list variable=c filter=<<ss_cols>> ><td style="padding:0;"> <$button popup=<<popupState>> style="width:100%;margin:0;padding:6px;display:block;background:none;border:none;cursor:pointer;"><$action-setfield $tiddler=<<popupCell>> text=<<ss_cell>>/> <$formula formula=<<ss_cell>>/> </$button> </td> </$list> </tr> </$list> </table> </$vars> <!-- <table> <tr><th></th><$list variable=c filter=<<ss_cols>> ><th><<c>></th></$list></tr> <$list variable=r filter=<<ss_rows>> > <tr><th><<r>></th><$list variable=c filter=<<ss_cols>> ><td><$edit-text tag=input index=<<ss_cell>> size=10/></td></$list></tr> </$list> </table> --> </$tiddler> [[Data Tiddler|Spreadsheet/Data]]
{ "A1": "13.41", "B1": "(=A1=)", "C1": "=sum(A1, B1)", "D1": "", "C2": "=C1", "D2": "", "B4": "2015-10-02 18:04:30.231" }
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt19">[img class="goright" height="570" [Bluebonnet-8100-David-R-Tribble-cc-by-sa.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2019" "9" "">> """ 1 - Father's Day ^^New Zealand^^ 1 - Muslim New Year ^^Saudi Arabia^^ 2 - Independence Day ^^Vietnam^^ 2 - Labor Day ^^United States^^ 7 - Independence Day ^^Brazil^^ 8 - Grandparent's Day ^^USA^^ 16 - Independence Day ^^Mexico^^ 16 - Respect for the Aged Day ^^Japan^^ 23 - Autumn Equinox Day ^^Japan^^ 23 - Saudi National Day ^^Saudi Arabia^^ 30 - Rosh Hashana """ [img height="100" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt20">[img class="goright" height="570" [2007_Sakura_of_Fukushima-e_007_by_Kropsoq_CC_BY_SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2020" "9" "">> """ 2 - Independence Day ^^Vietman^^ 6 - Father's Day ^^New Zealand^^ 7 - Independence Day ^^Brazil^^ 7 - Labor Day ^^United States^^ 16 - Independence Day ^^Mexico^^ 19 - Rosh Hashana 18 - Yom Kippur 21 - Respect for the Aged Day ^^Japan^^ 23 - Saudi National Day ^^Saudi Arabia^^ """ [img height="140" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt21">[img class="goright" height="570" [LotusBud0048a_Frank 'Fg2' Gualtieri_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2021" "9" "">> """ I like a Highland friend who will stand by me, not only when I am in the right, but when I am a little in the wrong. by Sir Walter Scott """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt22">[img class="goright" height="570" [RosaXanthina5_Fanghong_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2022" "9" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt23">[img class="goright" height="570" [Tulip_-_floriade_canberra_John O'Neill_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2023" "9" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt24">[img class="goright" height="570" [Weiße_Immensee_(Kordes_1982)_PD.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2024" "9" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
[img class="goright" width="5"[$:/images/shim.gif]] <!-- adjust to center picture --> <a href="#spt25">[img class="goright" height="570" [Eschscholzia_californica_in_Sedovo_001_CC-BY-SA.jpg]]</a> <!-- set height of picture, also picture is link to month --> <<diary "2025" "9" "">> """ """ [img height="110" [$:/images/shim.gif]] <!-- fill rest of tiddler to match picture height -->
<$reveal type='nomatch' state='$:/state/Startup Actions Script/modal' text='inactive'> <$action-sendmessage $message='tm-modal' $param=<<ModalParam>>/> </$reveal>
{{StartupAction||caption}}
<div class="column col-sm-12"> <div class="toast toast-success"> Les trois tiddlers nécessaires à la présente démonstration : *👉 [[Avertissement]] *👉 [[Demo Macro]] *👉 [[Startup Actions Script]] Le tiddler [[$:/state/Startup Actions Script/modal]] sera automatiquement crée suite à l'action générée par le bouton "Ne plus montrer ce message" </div> </div> Voici une démonstration du plugin [[StartupActions|$:/plugins/inmysocks/StartupActions]]. Si vous n’avez pas enregistré ce wiki ou que c’est la première fois que vous l’avez ouvert, vous auriez dû voir une fenêtre modale lorsque vous avez chargé le wiki. Si ce n’est pas le cas, un problème est survenu, vous pouvez contacter l'auteur de ce plugin sur le groupe Google https://groups.google.com/forum/#!forum/tiddlywiki ou via un commentaire déposé sur http://inmysocks.tiddlyspot.com (c’est l’icône d’enveloppe dans le coin supérieur gauche). plugin tiddler: $:/plugins/inmysocks/StartupActions Ce plugin vous permet d’écrire un script en utilisant un widgets d’action dans un tiddler (ou dans plusieurs tiddlers) et de taguer le tiddler avec `$:/tags/StartupAction`. Ensuite, lorsque le wiki démarre, soit en le chargeant ou en le rechargeant, les actions spécifiées dans le tiddler seront déclenchées de manière identique à ce qui se produirait en pressant le bouton d'un widget bouton classique. Les actions de cette démo sont localisées dans le tiddler [[Startup Actions Script]]. Une fenêtre modale apparaîtra au chargement du wiki mais n'apparaîtra plus au chargement suivant si vous cliquez sur le bouton `ne pas afficher à nouveau` qui se trouve dans la fenêtre modale. Dans la démonstration complète - ''mais pas sur le présent wiki'' - le sous-titre du wiki sera également modifié. Dans l'exemple source de l'auteur, si le sous-titre est’yay! ', il va devenir ’Woo! ', et s'il est ’Woo! 'il va devenir ’yay! '. Tout ce que vous pouvez mettre dans un widget bouton, peut être chargé dans un tiddler de démarrage. ;Précisions: Les widgets messages qui ne sont pas gérés par le noyau exigent toujours le widget fielsmangler pour les manipuler. Ainsi, un script widget action SendMessage avec le message `TM-Add-Field` doit être entouré par le widget fieldmangler. Les actions ont lieu en dehors de la Story River, donc si vous utilisez un message qui nécessite le widget `navigator` vous devez utiliser `< $navigator story = ' $:/StoryList' >` pour que l'action se déroule normalement dans la Story River. Les scripts peuvent utiliser des macros, qu'il s'agisse de macros intégrées dans un tiddler normal ou qu'il s'agisse de macros globales. La présente démonstration utilise les deux. Voir [[Startup Actions Script]] et [[Demo Macro]]. !Le champ `action_filter`: If a tiddler tagged with `$:/StartupAction` has a non-empty field called `action_filter` than the behavior changes a little. The action widgets will be triggered, but they will be triggered once for each thing returned by the filter in the `action_filter` field, and each time they are triggered they will have the `currentTiddler` variable set to the current item in the list returned by the filter. This can be used to make each action widget affect each tiddler in turn, if the list returns tiddlers, or it can be used to run a sequence of actions with different input parameters set by the currentTiddler variable. Si un tiddler tagué `$:/StartupAction` possède un champ non vide `action_filter`, le comportement change un peu. Les widgets action seront déclenchés une seule fois pour chaque information retournée par le filtre dans le champ `action_filter`, et chaque fois qu’ils sont déclenchés, ils auront la variable `currentTiddler` définie sur l’élément actuel dans la liste retournée par le filtre. Cela peut être utilisé pour que chaque widget action soit affecté un par un des tiddlers de la liste, ou bien pour exécuter une séquence d’actions avec différents paramètres d’entrée définis par la variable `currentTiddler`. !Example 1 If you had the script: ``` <$action-setfield title=<<currentTiddler>>/> ``` and the `action_filter` field was set to: ``` <$list filter='1 2 3 4 5 6 7 8 9'/> ``` Then when the wiki was (re)loaded next 9 tiddlers would be created with the titles `1`, `2`, `3`, and so on. !Example 2 (DON'T ACTUALLY DO THIS) Alternately you could use this script (don't do this, it will overwrite all the tiddlers in your wiki): ``` <$action-setfield text='Don't do this'/> ``` and have the `action_filter` field set to ``` [all[]] ``` This is a horrible idea because it will set the text field of all tiddlers in your wiki to `Don't do this`. But it demonstrates the sort of thing that is possible.
<!-- Default Statcounter code for Apprendre TiddlyWiki et ses plug https://prolegomenes.github.io/learn/Learn2215117.html --> <script type="text/javascript"> var sc_project=11876313; var sc_invisible=0; var sc_security="e76d13ae"; var scJsHost = (("https:" == document.location.protocol) ? "https://secure." : "http://www."); document.write("<sc"+"ript type='text/javascript' src='" + scJsHost+ "statcounter.com/counter/counter.js'></"+"script>"); </script> <noscript><div class="statcounter"><a title="Web Analytics" href="http://statcounter.com/" target="_blank"><img class="statcounter" src="//c.statcounter.com/11876313/0/e76d13ae/0/" alt="Web Analytics"></a></div></noscript> <!-- End of Statcounter Code -->
!!Déclarations (Statements) En langage informatique, un groupe de mots, de nombres ou d'opérateurs qui produisent une tâche particulière sont appelés "déclaration". En JavaScript, une déclaration peut ressembler à ceci : ``` a = b * 2; ``` <div class="att"> <i class="fa fa-exclamation-triangle fa-lg" aria-hidden="true" style="color:#2C3E50"></i>~ReferenceError: b is not defined (Et oui c'est logique!) </div> Les lettres a et b sont appelées variables qui peuvent être représentées comme étant des simples boites dans lesquelles vous pouvez stocker ce que vous voulez. Dans les programmes, les variables contiennent des valeurs (comme par exemple le nombre 42) à utiliser par le programme. Représentez les vous comme des emplacements symboliques contenant les valeurs elles-mêmes. À l'opposé, le 2 est juste elle-même une valeur, dénommée valeur littérale, parce qu’elle apparaît seule sans être stockée dans une variable. Les caractères = et * sont des opérateurs. Ils agissent avec les valeurs et les variables tels une affectation ou une multiplication mathématique. La plupart des déclarations en JavaScript se terminent par un point virgule (;). La déclaration a = b * 2; demande en gros à l'ordinateur de prendre la valeur actuellement stockée dans la variable "b", de multiplier cette valeur par 2 puis de stocker son résultat dans une autre variable "a". Les programmes sont composés de beaucoup de déclarations qui, prises globalement, décrivent toutes les étapes nécessaires à la réalisation de l'objet de votre programme.
Static%20Website%20Generation @@color:#f44800;J'aborde ici un sujet hautement stratégique !@@ Sur la version Standalone de TW5, l'exportation standard des tiddlers au format html présente actuellement trois inconvénients majeurs : #le poids des tiddlers individuels bien trop important #L'impossibilité de conserver les liens entre tiddlers #L'obligation d'exporter les tiddlers un par un si l'on veut que chaque tiddler fasse l'objet d'un fichier séparé (inconvénient inexistant sur la version [[NodeJs]] évidemment) ces trois points bloquants (et d'autres, voir les commentaires de jeremy) sont balayés par les travaux de james Anderson et son plugin `TWStaticBlog`, "//A complete plugin for exporting static blogs from TiddlyWiki//". La rédaction de ce qui suit est basée : *Sur le très intéressant post de Mail Archive : https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg60493.html *et sur la documentation de James Anderson : http://phasersonkill.com/2015/04/23/creating-a-static-webpage-using-tiddlywiki.html L'activation d'un simple fichier batch (`.bat`) effectuera tout le travail de transfert de vos tiddlers TW5 "standalone' vers votre nouveau site HTML statique. Il peut se présenter ainsi : ``` ========================================= REM @echo off echo Exporting Blog... echo exporting general posts====================== call tiddlywiki .\tw --load .\notes.hta --output .\blog --build posts echo exporting framework posts==================== call tiddlywiki .\tw --load .\notes.hta --output .\blog --build framework echo exporting framework TAG posts================ call tiddlywiki .\tw --load .\notes.hta --output .\blog --build tag echo exporting index posts======================== call tiddlywiki .\tw --load .\notes.hta --output .\blog --build index echo exporting CSS================================ call tiddlywiki .\tw --load .\notes.hta --output .\blog --build css pause ========================================= ``` Ou plus simplement ainsi : ``` call tiddlywiki .\tw --load .\example.html --output .\blog --build posts call tiddlywiki .\tw --load .\example.html --output .\blog --build framework call tiddlywiki .\tw --load .\example.html --output .\blog --build tag call tiddlywiki .\tw --load .\example.html --output .\blog --build index call tiddlywiki .\tw --load .\example.html --output .\blog --build css pause ``` *Exemple 1 source : http://welford.github.io/static-sample/example.html *Exemple 1 exporté : http://welford.github.io/static-sample/blog/index.html Au final l'auteur a mis à jour quelques-uns de ses plugins pour les adapter au principe d'exportation des données dans un site statique. https://github.com/welford/twspimg permets l'affichage partiel d'images comme l'image de fond d'un élément `span`, et https://github.com/welford/twyt permet l'encapsulation de vidéos et la création de liens to specific times dans la vidéo. http://welford.github.io/ propose des exemples supplémentaires ainsi que d'autres plugins. It works from a standalone file, or rather I have my blog and other notes in a single page TW. it's called notes.hta (you can see this in the batch file, it could be notes.html or whatever your TW is called). You will need the nodejs TW just for the conversion. With both those present the batch handles all the creation for you. le workflow est simple : #Rédiger un tiddler et le taguer "blog" #déclencher le fichier batch. Et c'est tout, très simple une fois mis en place, mais cette mise en place est plus compliquée pour les personnes sans expérience (ceux qui ont connu l'époque du MS-DOS et de ses nombreux programmes batch ne devraient pas avoir de problèmes). Dans le folder Example, copier votre wiki dans le répertoire Example, puis remplacer dans le fichier batch `export_blog.bat` tous les `example.html` par le nom du wiki que vous venez de placer dans le répertoire et enfin double cliquer sur le fichier `export_blog.bat` pour le lancer. Il semble que le CSS ne s'applique qu'au seul template et pas sur les posts individuels (tiddlers). Un autre exemple plus complexe : Voici maintenant un blog édité à partir du site statique tw5 http://heeg.ru/ tw5 dont la page est ici http://heeg.ru/heeg.html avec le batch suivant : ``` tiddlywiki --verbose --load heeg.html --rendertiddlers [!is[system]![index]] $:/core/templates/static.tiddler.html ./static text/plain --rendertiddler $:/_sitemap static/sitemap.xml text/vnd.tiddlywiki --rendertiddler $:/theeg.template.css static/static.css ext/vnd.tiddlywiki --rendertiddler $:/_aa.giff/ StyleSheetAnimate static/animate.css text/vnd.tiddlywiki --rendertiddler $:/boot/Yandex_Metrika_Counter.js static/Yandex_Metrika_Counter.js text/plain --rendertiddler $:/boot/bootprefix1.js static/heeg.js text/plain --setfield [[$:/HistoryList]] current-tiddler $:/_index text/vnd.tiddlywiki --output ./temp --rendertiddlers [[index]] $:/core/templates/static.tiddler.html ./static text/plain .html "noclean" && ^ xcopy images output\static\images /s /e /C /Y /d /i && ^ xcopy fonts output\static\fonts /s /e /C /Y /d /i && ^ copy heeg.html output\static\ && ^ copy .\temp\static\index.html output\static\ && ^ copy .htaccess output\static\ && ^ copy favicon.ico output\static\ ``` Dans cet exemple, c'est la totalité du wiki qui est exporté, incluant images table of contents (siteMap), fichiers JS et CSS. Il y a d'autres bonnes raisons de remplacer un TW5 classique que l'on aurait légèrement modifié pour qu'il ait un look plus statique, comme par exemple la suppression de quelques paramètres (impossibilité d'éditer par exemple). Jéremy les citent lui-même : * Un site statique sera beaucoup beaucoup, beaucoup plus rapide à charger * Un site statique est la norme d'exploration pour les moteurs de recherche * Un site statique fonctionne sur absolument tous les navigateurs même ceux qui ne supportent pas JavaScript Un site statique offre également des avantages plus subtiles : * A static site is much easier to integrate with third party libraries/widgets * Pages from a static site are properly linkable, without using the URL #hash 1) With "''export as HTML''" I have to export each tiddler individually. With James' way I can do all kinds of work on numerous tiddlers throughout the day and do one operation to update the site at the end of the day. 2) James' way also exports an updated tags page, an updated A-Z page, and an updated 'Recent' page. Exporting as HTML is just the tiddler, nothing more. Finalement, le plugin exporter génère quatre type d'informations : *http://phasersonkill.com/tags.html *http://phasersonkill.com/a-z.html *http://phasersonkill.com/archived-articles.html *http://phasersonkill.com/updated-articles.html David Gifford propose un lien vers la version finalisée de son site en espagnol, céé avec le générateur de sites statiques de James Anderson : http://ideas.giffmex.org quatre différents fichiers TW5 standalone sont utilisés, soit un fichier pour chaque différente section du site web. les liens proposés dans la barre de menu coordonnent les différents wikis de sorte que le tout semble se présenter comme étant un site unique. On notera enfin que de subtiles mais néanmoins nécessaires adaptations de présentation sont a effectuer sur votre wiki principal (le standalone) pour optimiser l'intégration de vos tiddlers dans votre site statique. Ce sera pour moi l'occasion de rédiger un nouveau billet sur ce sujet stratégique après avoir réalisé plusieurs tests me permettant de mieux appréhender cet outil formidable qu'est ce plugin "''export as HTML''"
;Lire la discussion dans son intégralité en cliquant sur le lien ci-dessus. Existe-il des statistiques fiables au sujet de TiddlyWiki ? Le nombre de téléchargements du source est-il recensé ? Je me doute bien que cet outil est principalement utilisé hors web, en local sur des ordinateurs, tablettes ou smartphones individuels ou encore sur des serveurs d'entreprises. A-t-on une idée du nombre d'utilisateurs ? Qu'en est-il des wikis mis en ligne ? Dispose-t-on par exemple d'une adresse à laquelle un TiddlyWiki mis en ligne pourrait être déclaré ? A-t-on des statistiques par langue, par pays ? https://w3techs.com/technologies/details/cm-tiddlywiki/all/all donne des statistiques (2018) de TiddlyWiki en tant que sites web Moins de 0.1% de la totalité des sites web de type Content management system. https://w3techs.com/sites/info/giffmex.org indique un classement Alexa en 3,868,375 ème position de tous les sites web que cet organisme recense. Quelques données exprimées en pourcentage, pas de données en chiffre et pas d'''observatoire TiddlyWiki ''en tant que tel, me semble-il Nos experts disposent-ils de sources plus conséquentes ? Bien à vous.
Si certains billets ne réclament pas de statut, d'autres en exigent. Pour ceux-là trois situations sont possibles: !brouillon *C'est un premier jet. *Le billet peut être annulé,modifié ou complété ultérieurement. *La doctrine n'est pas arrêtée. *Ne pas prendre son contenu comme certain. {{brouillon}} !attente *Statut intermédiaire. *La doctrine est fixée, *Des points techniques restent encore à tester. *Le billet peut être modifié ou complété. {{attente}} !Validé *Le contenu du billet est définitif. *A préalablement été approuvé. {{validé}} Paramètres : [[$:/.tb/ui/ViewTemplate/summary-link]]
*~ToggleAdmin *Stories
Attention : La feuille de style [[$:/width/css]] a du être modifiée pour assurer la compatibilité du composant Speps de Spectre. Ajouter un élément container contenant la classe `step`. Puis ajouter un élément enfant contenant la classe `step-item`. L'item `step-item` avec la classe `active` sera mis en lumière indiquant ainsi etat de progression actuel. <ul class="step"> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="Step 1">Step 1</a> </li> <li class="step-item active"> <a href="#" class="tooltip" data-tooltip="Step 2">Step 2</a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="Step 3">Step 3</a> </li> <li class="step-item"> <a href="#" class="tooltip" data-tooltip="Step 4">Step 4</a> </li> </ul> Voir un exemple d'application pratique avec le tiddler [[$:/doc-user-097]].
!Comment utiliser "sticky notes" !!Tiddlers individuels *Drag the icon [[$:/new_notes_icon.svg]] to your TW *Drag the macro [[$:/AddNewNotes]] to your TW *Drag the stylesheet [[$:/StickyNotesstyle]] to your TW *Transclude the macro into your tiddlers like this ``{{||$:/AddNewNotes}}`` (see [[Example notes 1]] and [[Example notes 2]]) !!Tous les tiddlers Sticky notes est utilisé dans le tiddler $:/core/ui/ViewTemplate/note (tagué $:/tags/ViewToolbar ) pour disposer dans la barre d'outils du mode visualisation d'un espace de saisie de note rapide. Il apparaît sur tous les tiddlers. Otez le Tag $:/tags/ViewToolbar et Sticky Notes n'est plus opérationnel. <div class="info">Le [[Contrôle Tiddlers|$:/TemplateTiddler]] contient une option Ajouter/Retirer Sticky Notes</div> !!À propos de ~$:/AddNewNotes Le code source indique la position `above`: `position="above"` Plusieurs autres possibilité: *under (non documenté) *above adjacent-left *bottom right *below adjacent-right *center center *top left *top right *bottom left *bottom right !!Autres remarques De mon point de vue (IMO comme disent les anglais) le fait qu'un tiddler relatif à la note soit créé dès que l'on clique sur l'icône, quand bien même aucune note ne sera rédigée est un inconvénient.
{{StickyNotes||caption}}
Ils sont comiques nos pros de TiddlyWiki ! ``` <$checkbox tiddler="$:/state/frustration" checked="on" unchecked="off" default="on">suppress any kind of frustration</$checkbox> ``` ;Soit: <$checkbox tiddler="$:/state/frustration" checked="on" unchecked="off" default="on">suppress any kind of frustration</$checkbox>
Je trouve celui-ci plus conforme à la philosophie de TiddlyWiki car il est situé juste au dessus du premier tiddlers ouverts et présente les Tiddlers ouverts sous forme de tables. De plus, ce plugin n'utilise que 5 tiddlers. Enfin les autres plugins dits "breadcrumb" ne sont qu'une présentation différente de la table "Open". Compte tenu de la structure de TiddlyWiki, on ne peut pas parler de système 'breadcrumb" à proprement parler.
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="1400px" height="50px"><defs><pattern id="pattern_31rSw" patternUnits="userSpaceOnUse" width="9.5" height="9.5" patternTransform="rotate(45)"><line x1="0" y="0" x2="0" y2="9.5" stroke="#194d33" stroke-width="1"/></pattern></defs> <rect width="100%" height="100%" fill="url(#pattern_31rSw)" opacity="1"/></svg>
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" width="1400px" height="50px"><defs><pattern id="pattern_31rSw" patternUnits="userSpaceOnUse" width="20" height="20" patternTransform="rotate(90)"><line x1="0" y="0" x2="0" y2="20" stroke="#121010" stroke-width="20"/></pattern></defs> <rect width="100%" height="100%" fill="url(#pattern_31rSw)" opacity="1"/></svg>
""" Frontend (Frontal) et Backend Droits d'accès Contenus Extensions Templates (modèles ou gabarits) Plugins Modules Composants Chaînes de production (workflows) Configuration générale et charte graphique API Conventions de versionnage Internationalisation Plugins utilisateurs Support de XML-RPC Support de plusieurs bases de données Système FTP pour gérer le problème du mode sécurisé de PHP (de Java Script) Mise à jour de l'infrastructure TiddlyWiki Accessibilité Adaptation aux moteurs de recherche """ TiddlyWiki is also a unique project as they are focusing on building wikis. As they have no competitors, TiddlyWiki is highly recommended in case you want to create wiki using JavaScript. [ext[Node.js cms framework comparison|http://www.cnblogs.com/qiangxia/articles/5344088.html]] TiddlyWiki history: * Operating system: Cross-platform * Initial release: 30 September 2004; 14 years ago [ext[Alternatives to TiddlyWiki for all platforms with any license]]
TiddlyWiki5 fournit plusieurs fonctionnalités qui vous aideront à structurer les informations sous forme de [[tiddlers|Tiddlers]], et à modéliser les relations entre eux<<dp>> * [[Liens dans un tiddler|TiddlerLinks]] * [[Étiqueter par tag|Tagging]] * [[Tiddler de listes|ListWidget]] * [[Tiddlers de données|DataTiddlers]]
Exemple donné par Eric Shulman Ici, nous obtenons la liste de tous les tiddlers shadows, ceux ayant été modifiés apparaissant surlignés en jaune. ``` <style> .my-class .tc-tiddlylink.tc-tiddlylink-resolves { background-color: yellow; } </style> @@.my-class <$list filter="[all[shadows]sort[title]]"><$link> <$text text=<<currentTiddler>>/></$link> <br> </$list> @@ ``` <$details summary="Résultat"> <style> .my-class .tc-tiddlylink.tc-tiddlylink-resolves { background-color: yellow; } </style> @@.my-class <$list filter="[all[shadows]sort[title]]"><$link> <$text text=<<currentTiddler>>/></$link> <br> </$list> @@ </$details> <br/> !!Remarques : *La syntaxe `<$link><$text.../><$link>` garantit l'affichage des titres de `<<currentTiddler>>` comme étant individuellement cliquables, et ce même si les titres ne sont pas formatés WikiWord (C'est à dire cliquables par essence : Wiki Word et WikiWord). Ceci corrige également le problème du saut de ligne entre les éléments de la liste puisque le lien texte n'est pas restitué en pièces séparées et qu'ilconstitue un bloc. *Fonctionne aussi avec orphans, missing, system etc...
For each tag of a tiddler, the tiddler element is given a css class that you can adress in a [[custom stylesheet|http://tiddlywiki.com/static/Using%2520Stylesheets.html]], e.g. you can have tiddlers display a funny background. ''Tip:'' Try hitting F12 and see if you can't inspect the css classes of this very tiddler. For example, this applies a notebook style. <style> /* http://lea.verou.me/css3patterns/#lined-paper */ .tc-tagged-Notebook\%20Style { background-image: linear-gradient(90deg, transparent 25px, #abced4 25px, #abced4 27px, transparent 27px), linear-gradient(#eee .01em, transparent .1em); background-size: 100% 1.2em; } </style> ''Note:'' To make it work for tag names containing spaces, you need to escape the space to `\%20`, not `%20` when addressing the css class. Also see [[How to apply custom styles by tag|http://tiddlywiki.com/#How%20to%20apply%20custom%20styles%20by%20tag]].
<style> .tc-tagged-BluePrintGrid { background-color:#269; background-image: linear-gradient(white 2px, transparent 2px), linear-gradient(90deg, white 2px, transparent 2px), linear-gradient(rgba(255,255,255,.3) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.3) 1px, transparent 1px); background-size: 100px 100px, 100px 100px, 20px 20px, 20px 20px; background-position:-2px -2px, -2px -2px, -1px -1px, -1px -1px; } </style>
*Les couleurs de fond sont gérées par la [[palette Learn|$:/palettes/Learn]]. *<<rojo "Ce texte en rouge réclame l'installation de la [[macro rojo|RedTextMacro]]">>. ---- @@color:red; *Couleur de fond générale: bleu #4BB5C1. Voir palette "Page Background" @@ @@color:red; *Supprime l'espace entre la story river et les tiddlers. La couleur de fond de la story River n'est donc plus visible @@ <<<< `body.tc-body .tc-story-river { padding: 0; }` <<<< @@color:red; *On donne une marge de 30px tout autour de l'espace @@ <<< `html body.tc-body{margin:30px;}` <<< @@color:red; *Couleur de fond de la Story River, bleu nuit: /* background-image: url('bg_img.jpg');*/ @@ <<< `.tc-story-river{background-color:#375D81; }` <<< @@color:red; *Couleur de la barre de menu (SideBar). @@ <<< `.tc-sidebar-header{background-color:#C4D7ED;padding-left:10px;}` <<< @@color:red; *Couleur générale d'un Tiddler: @@ <<< `.tc-tiddler-frame{background-color:#E1E6FA;}` <<< @@color:red; *Gestion de l'espace (interligne) entre deux paragraphes délimités par les balises <p></p> @@ <<<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body p {display: block;margin-top: 1em;margin-bottom: 1em;}` <<<< @@color:red; *Couleur de fond du bloc contenant le titre d'un Tiddler: @@ <<< `.tc-titlebar{background-color:#ABC8E2;}` <<< @@color:red; *Espace entre chaque Tiddler de la Story River. @@ <<< `body.tc-body .tc-tiddler-frame { border: 0; margin-bottom: 50px; min-height: 0; }` <<< @@color:red; *Corps de texte: police, taille et espacement @@ <<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body p { font-family: verdana; font-size: 16px; color: #000000; line-height: 1.5; } body.tc-body .tc-tiddler-frame .tc-tiddler-body ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body ol { text-align: left; } body.tc-body .tc-tiddler-frame .tc-tiddler-body pre, body.tc-body .tc-tiddler-frame .tc-tiddler-body code { font-family: verdana; font-size: 16px; text-align: left; }` <<< @@color:red; *CSS Textes sur deux colonnes. Classe "tc-2cols" 2 colonnes (div class="tc-2cols") @@ <<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols { max-height:600vh; -moz-columns:2; -webkit-columns:2; columns:2; font-size: 18px; } body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols p { margin: 0 0 0.5em 0; } body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-2cols p { font-size: 18px; text-align: left; }` <<< @@color:red; *CSS Textes sur trois colonnes. Classe "tc-3cols" 3 colonnes (div class="tc-3cols") : @@ <<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-3cols { max-height:300vh; -moz-columns:3; -webkit-columns:3; columns:3; font-size: 18px; } body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-3cols p { margin: 0 0 0.5em 0; } body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-3cols ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-3cols ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-3cols p { font-size: 18px; text-align: left; }` <<< @@color:red; *CSS Textes sur quatre colonnes. Classe "tc-4cols" 4 colonnes (div class="tc-4cols") @@ <<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-4cols { max-height:300vh; -moz-columns:4; -webkit-columns:4; columns:4; font-size: 18px; }` `body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-4cols p { margin: 0 0 0.5em 0; }` `body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-4cols ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-4cols ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body .tc-4cols p { font-size: 18px; text-align: left; }` <<< @@color:red; *CSS Commentaire et couleur h2 du commentaire : @@ <<< `.Commentaire {background-color:#404C68 ;color:#FFF;margin:10px;padding:10px;border-radius: 5px;} .Commentaire h2 {color:#FFF;border-width: 0px 0px 1px 0px;border-style: dotted;border-color:#DBD9E2;font-family: 'verdana';}` <<< @@color:red; *CSS Attention : @@ <<< `.att {padding: 10px;background: #ffff99;border-radius: 15px;border: 1px solid #ccc; }` <<< @@color:red; *CSS du bouton state sidebar @@ <<< `.roundbtn {background-color: #ee4056;font-size: 25px; position: relative;display: inline-block;width: 35px;height: 35px;cursor: pointer; border: none; border-radius:100px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, .26);} .roundbtn span svg{font-size:15px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; width: 50%; height: 50%; margin: auto; opacity: 0.8;fill: green;} .roundbtn:hover span svg{font-size:15px; position: absolute; top: 0; right: 0; bottom: 0; left: 0; overflow: auto; margin: auto; opacity:1;fill: yellow !important;}` <<< @@color:red; * Margin-bottom:0 Cette valeur est ajustée à 50 px. Ceci à pour effet d'augmenter l'espace existant entre chaque tiddler de la StoryRiver. Le plugin bottom tabs déborde sur le tiddler suivant. Cette anomalie survient cependant après avoir implémenté la structure TiddlyOueb relative à la création automatique de menus. Le paramètre de marge basse à 50 px règle ce problème @@ <<<< `body.tc-body .tc-tiddler-frame { border: 0; margin-bottom: 50px; min-height: 0; } body.tc-body .tc-tiddler-frame > a { text-decoration: none; color: #333333; }` <<<< @@color:red; * Masquer les bordures d'un tableau @@ <<<< `.no-border,.no-border th,.no-border tr,.no-border td{border:0;}` <<<< @@color:red; * Cacher le titre et sous-titre de la sidebar @@ <<<< `body.tc-body .tc-site-title, body.tc-body .tc-site-subtitle { display: none; }` <<<< @@color:red; * La largeur maximum du contenu d'un tiddler (texte) est de 850px, centré avec une marge haute de 10px text-align left/justify. Une margin top à 50px augmentera l'espace entre le titre du tiddler et son contenu textuel @@ <<<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body { text-align: left; max-width: 850px; margin-left: auto; margin-right: auto; margin-top: -10px; }` <<<< @@color:red; * La taille, font et couleur du titre d'un tiddler. @@ <<<< `body.tc-body .tc-tiddler-view-frame .tc-titlebar { font-family: verdana; font-size: 30px; color: #1c2654; }` <<<< @@color:red; * Corp de texte: police, taille et espacement @@ <<<< `body.tc-body .tc-tiddler-frame .tc-tiddler-body ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body ol, body.tc-body .tc-tiddler-frame .tc-tiddler-body p { font-family: verdana; font-size: 16px; color: #000000; line-height: 1.5; } body.tc-body .tc-tiddler-frame .tc-tiddler-body ul, body.tc-body .tc-tiddler-frame .tc-tiddler-body ol { text-align: left; } body.tc-body .tc-tiddler-frame .tc-tiddler-body pre, body.tc-body .tc-tiddler-frame .tc-tiddler-body code { font-family: verdana; font-size: 16px; text-align: left; }` <<<< @@color:red; * Fond tiddler pied de page @@ <<<< `.tc-tagged-bgcolor { background-color: #ffffff; }` <<<< @@color:red; * Cadres, produit un texte sur un fond bleu pâle. @@ <<<< `.cadre { padding: 10px; margin:15px -2px 15px -2px; background: #f2f2f2; border-radius: 2px; }` <<<< @@color:red; *Passer un texte sous contrôle d'une Scrollbox @@ <<<< `.tc-scrollable { height: 150px; }` <<<< @@color:red; *Donner une couleur de fond à la TOPRIGHTBAR (with double chevron) @@ <<<< `.tc-topbar {background-color: #ccc;}` <<<< @@color:red; *VERTICAL OFFSET FOR TOP OF SIDEBAR Parceque nous avons une barre de menu en haut, il faut baisser le haut de la sidebar de telle sorte que la scroll barre soit visible aussi en haut. C'est également ici que l'on peut doter la sidebar d'une couleur de fond. @@ <<<< `html .tc-sidebar-scrollable {top: 84px; background-color: #ccc}` <<<< @@color:red; *On peut attribuer une image à la place d'une couleur de fond à la bordure des tiddlers. @@ <<<< `.tc-tiddler-border{background: url(bg_img.jpg);}` <<<< @@color:red; * cacher le sous-titre et la liste des tags associés à un tiddler en mode visualisation @@ <<<< `body.tc-body .tc-tiddler-view-frame .tc-subtitle, body.tc-body .tc-tiddler-view-frame .tc-tags-wrapper {display: none;}` <<<< @@color:red; * cacher le Titre et la liste des tags associés à un tiddler en mode visualisation `{{$:/Tiddler|!!tiddler-title}}` @@ <<<< `body.tc-body .tc-tiddler-view-frame .tc-title, body.tc-body .tc-tiddler-view-frame .tc-tags-wrapper {display: none;}` <<<< @@color:red; *Pour changer la taille du titre d'un tidler et des boutons sur la droite @@ <<<< `.tc-tiddler-title{font-size:10px;}` <<<< @@color:red; *Un module commentaires sombre @@ <<<< `.Commentaire {background-color:#404C68 ;color:#FFF;margin:10px;padding:10px;border-radius: 5px;}` <<<< @@color:red; *La couleur h2 du commentaire @@ <<<< `.Commentaire h2 {color:#FFF;border-width: 0px 0px 1px 0px;border-style: dotted;border-color:#DBD9E2;font-family: 'verdana';}` <<<< @@color:red; *Tableaux standard @@ <<<< `.tw th {background-color:#5778D8;color:#f6f6f6;font-weight:900;padding: 5px 5px;font-family:"open_sanslight";}` `table th {background-color:#333333;color:#f6f6f6;font-weight:900;padding: 5px 5px;font-family:"open_sanslight";}` `tr:nth-child(even) td {background-color:#f6f6f6;padding: 8px 5px}` `tr:nth-child(odd) td {background-color:#e9e9e9;padding: 8px 5px}` <<<< @@color:red; *Sidebar Tabs Alternate Style @@ <<<< `.tc-sidebar-lists .tc-tab-buttons button { cursor: pointer; font-size: 13px; line-height: 1; padding: 0 5px 5px 2px; text-align: center; color: #9a9a9a; -webkit-transition: color .1s ease-in; transition: color .1s ease-in; background: none; border: none; border-bottom: 1px solid #e0e0e0; margin-right: 30px; } .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected { background: none; border: none; border-bottom: solid 1px #737373 !important; font-weight: bold; color: #DB4C3F !important; }` <<<< @@color:red; *Première lettre de paragraphe en gras et en rouge @@ <<<< p::first-letter { font-weight: bold; color: red; } <<<< @@color:red; *Voir/Cacher le titre des Tiddlers (+ écrire, supprimer et plus). Exige l'implémentation des tiddlers `TiddlerTitlebarToggler` et `$:/state/tiddlertitlebar` @@ <<<< .tc-titlebar { font-weight: 100; font-size: 2em; line-height: 1.2em; color: <<colour tiddler-title-foreground>>; margin: 0; display:{{$:/state/tiddlertitlebar}} } <<<< @@color:red; *On peut attribuer une couleur à la balise `<hr>` @@ <<<< hr {color: black;} <<<< @@color:red; *CSS flexbox Container et element @@ <<<< .container { max-width: 800px; margin: 3em auto; background-color: white; /*height: 500px;*/ border: 10px solid crimson; -webkit-display: -webkit-box; -webkit-display: -webkit-flex; display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-align-items: center; -webkit-box-align: center; -ms-flex-align: center; align-items: center; -webkit-justify-content: center; -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } .element { background-color: white; color: black; width: 80%; padding: 20px; } <<<< @@color:red; *`<div class="tw-admin-content"> ... </div>` à pour effet de réduire la taille des boutons images dans un texte qui, sans ceparamètre prennent une taille disproportionnée parrapport à celle du texte @@ <<<< `.tw-admin-content { margin:0 auto; width: -moz-fit-content; width: fit-content; } body.tc-body .tw-admin-content svg { width: 1em; margin: auto .4em -.7em .5em; fill:crimson; }` <<<< !!COULEURS ET EFFETS @@color:red; *Aspect de certains tiddlers. Les tiddlers tagués "Sources" auront une couleur de fond spécifique: (format: #006666 ou aquamarine) @@ <<<< `.tc-tagged-Sources { background-color: aquamarine; }` <<<< @@color:red; *On peut aussi donner donner une couleur de fond sans passer par un tag. On se sert alors du champ tc-extra que l'on renseigne - dans cet exemple - avec "fond". Vous pouvez même donner deux styles CSS à votre champ: par exemple: "bisque animated fadeInLeft" @@ <<<< `.bisque { background: bisque; } .aquamarine { background: aquamarine; }` <<<< ---- body.tc-body .tc-tiddler-controls button svg { width: 20px; height: 20px; } /*Scrollbox*/ .tc-scrollable { height: 350px; } /*Masquer les bordures d'un tableau*/ .no-border, .no-border th, .no-border tr, .no-border td{ border:0; } /*Couleur de police des balises code*/ html body code { color: #333333; } /*Boutons*/ .tc-btn-big-green:hover { background-color: #2FBA2F; } .tc-btn-big-green { border-radius: 4px; } pre { display: block; padding: 14px; margin-top: 1em; margin-bottom: 1em; word-break: normal; word-wrap: break-word; white-space: pre; white-space: pre-wrap; background-color: #f5f5f5; border: 1px solid #cccccc; padding: 0 3px 2px; border-radius: 3px; font-family: Monaco, Consolas, "Lucida Console", "~DejaVu Sans Mono", monospace; } code { color: #dd1144; background-color: #f7f7f9; border: 1px solid #e1e1e8; white-space: pre-wrap; padding: 0 3px 2px; border-radius: 3px; font-family: Monaco, Consolas, "Lucida Console", "~DejaVu Sans Mono", monospace; } blockquote { border-left: 5px solid #bbb; margin-left: 25px; padding-left: 10px; } ---- /* CSS complémentaire du wiki */ /* Fonts */ .tc-site-title { font-family: {{$:/palettes/font##titre}}; font-size: 4em; } .tc-titlebar h2 { font-family: {{$:/palettes/font##tiddler}}; } h1 { font-family: {{$:/palettes/font##h1}}; font-size: 2em; } h2 { font-family: {{$:/palettes/font##h2}}; font-weight: 600; font-size: 1.5em; } h3, h4, h5 { font-family: {{$:/palettes/font##h3}}; font-weight: 600; } p, ul, li { font-family: {{$:/palettes/font##p}} } code, kbd, pre, samp { font-family: {{$:/palettes/font##code}}; font-size: 1em; } kbd { font-family: {{$:/palettes/font##kbd}}; } /* Footer */ .footer { background-color: transparent; margin-left: 1em; color: <<color sidebar-controls-foreground>>; } .footer a { color: <<color sidebar-tiddler-link-foreground>>; } .footer a:hover { color: <<color sidebar-tiddler-link-foreground-hover>>; }
Le principe est un peu le même que ce qui est décrit dans le Tiddler [[Créer une FAQ|TextSliderDoc]] mais ici on va inclure le titre et le corp de texte d'un tiddler existant dans un autre tiddler Voir http://tiddlywiki.com/#Creating%20SubStories Une substory c'est le contenu d'un tiddler que l'on inclus dans un autre tiddler Il s'agit ici d'ouvrir en visualisation puis de fermer le contenu d'un autre Tiddler. Ici on va ouvrir les Tiddler [[GettingStarted]] et [[Index|Index Menu]] Avec le code suivant: ``` <$navigator story="MySubStoryList" history="MySubHistoryList"> * Consulter l'article [[GettingStarted]]. Ouverture dans le présent Tiddler. <$list filter="[list[MySubStoryList]]" history="MySubHistoryList"> <div> ! <$button message="tm-close-tiddler" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> <$view field="title"/> <$transclude/> </div> </$list> </$navigator> ``` Ce qui donne : <$navigator story="MySubStoryList" history="MySubHistoryList"> * Consulter l'article [[GettingStarted]]. Ouverture dans le présent Tiddler. <$list filter="[list[MySubStoryList]]" history="MySubHistoryList"> <div> ! <$button message="tm-close-tiddler" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> <$view field="title"/> <$transclude/> </div> </$list> </$navigator> Puis avec le code suivant: ``` <$navigator story="MySubStoryList1" history="MySubHistoryList1"> * Consulter l' [[Index|Index Menu]] général. Ouverture dans le présent Tiddler. <$list filter="[list[MySubStoryList1]]" history="MySubHistoryList1"> <div> ! <$button message="tm-close-tiddler" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> <$view field="title"/> <$transclude/> </div> </$list> </$navigator> ``` Ce qui donne: <$navigator story="MySubStoryList1" history="MySubHistoryList1"> * Consulter l'[[Index|Index Menu]]. Ouverture dans le présent Tiddler. <$list filter="[list[MySubStoryList1]]" history="MySubHistoryList1"> <div> ! <$button message="tm-close-tiddler" class="tc-btn-invisible">{{$:/core/images/close-button}}</$button> <$view field="title"/> <$transclude/> </div> </$list> </$navigator>
<div class="nr"> !Tests <<extract "SummaryTest" start:"`" end:"`">> !! Start/end not defined <<extract "SummaryTest" end:"~~~~">> <<extract "SummaryTest" start:"</hdr>">> --- !! Macrocall <$macrocall $name="extract" tiddler="SummaryTest" start="Quite" end="?"/> --- !! All italic text <ul> <<extract "SummaryTest" start:"//" end:"//" limit:"no" prefix:"<li>//" suffix:"//</li>">> </ul> <$wikify name="totweet" text=<<extract "SummaryTest" start:"//" end:"//">> > Tweet? <$macrocall $name="tweet" text=<<totweet>> tooltip="tweet the first line in italics"/> </$wikify> --- !! All bold text, Suffix (bold) <<extract "SummaryTest" start:"''" end:"''" suffix:"''" limit:"no" prefix:"''">> --- The first part of the … <<extract "$:/_telmiger/extract" start:"<!--" end:"-->">> --- !! Extract all Header Elements <<extract "SummaryTest" start:"<header>" end:"</header>" limit:"no">> --- !! Start and End Comments, Suffix … <<extract "SummaryTest" start:"<!-- sum -->" end:"<!-- /sum -->" suffix:" …">> --- !! Use own tag hdr <<extract "SummaryTest" start:"<hdr>" end:"</hdr>" limit:"no">> --- !! Internal summary hidden in comment {{!!internalsummary}} --- !! tl;dr without title <<extract "SummaryTest" start:"tl;dr" end:"<!-- /tl;dr -->">> --- !! tl;dr with title <<extract "SummaryTest" start:"tl;dr" end:"<!-- /tl;dr -->" prefix:"!!! tl;dr ">> </div> <!-- ysy This is a hidden summary in this very tiddler – transclude the macro from a field to avoid errors. (The start and end tags are present in the macro call AND surrounding the summary.) /ysy -->
First line ~~~~ <header> !!! This is //Demo and Test Content for the Extract Macro// ''Quite some [[examples|SummaryTest]] to learn from – //have a look!// – are there any 5" pipes here?'' </header> See the results in [[SummaryResults]] --- <header> !!! This is a //second summary// included in `header`-tags It should not be shown in standard mode. We show this only if the limit is raised. <<ref "This is a reference to TextStretch">> </header> Here some indented text. No span used here. Here some indented text. No span used here. Here some indented text. No span used here. Here some indented text. No span used here. Here some indented text. No span used here. <span style='padding-left:20px;content:""'></span>Here some indented text after a span. Here some indented text after a span. Here some indented text after a span. Here some indented text after a span. Here some indented text after a span. Here some indented text after a span. Here some indented text after a span. @@.in @@ Here some indented text after a class in wikitext. Here some indented text after a class in wikitext. Here some indented text after a class in wikitext. Here some indented text after a class in wikitext. Here some indented text after a class in wikitext. Here some indented text after a class in wikitext. --- //Alternative Summary: // <!-- sum --> ''A short summary included in standard comments'' <!-- /sum --> <header>The rest of the text must not be shown.</header> --- <hdr> !!! tl;dr This is the rather long summary of the last test: * ''list item one'' * list item two with transclusion: {{SummaryTest!!caption}} <= before this * ''list item 3'' (not tested: new line and ''no whitespace after the end'' marker) <!-- /tl;dr --> </hdr>EOF
Supprimer les tiddlers possédant un champ nommé via un Tiddler de vue tagué `$:/tags/ViewTemplate` ``` <$list filter="[is[current]has[parameters]]"> <$button message="tm-delete-tiddler" >Delete</$button> </$list> ``` Lister les tiddlers possédant un champ nommé accompagné d'un bouton individuel de suppression : ``` <$list filter="[has[parameters]]"> <$button message="tm-delete-tiddler" >Delete <<currentTiddler>></$button><br/> </$list> ``` ;Soit: <$list filter="[has[parameters]]"> <$button message="tm-delete-tiddler" >Delete <<currentTiddler>></$button><br/> </$list> Pour un autre code de sélection de tiddlers à supprimer, voir le tiddler [[Supprimer la documentation|$:/doc-user-068]]
On remplace les traditionnels `*`, `**` par `:` ``` : one : two :: two-one ``` ;Soit: : one : two :: two-one
Source: https://wikilabs.github.io/editions/remove-states/ $:/plugins/wikilabs/ui/remove-states ; Plugin $:/plugins/wikilabs/remove-states
Le Tiddler $:/core/ui/PageTemplate/sidebar utilise un système de segmentation des différents éléments composant la barre latérale, avec le tag système `$:/tags/SideBarSegment` Les tiddlers tagués ainsi sont les suivants : *$:/core/ui/SideBarSegments/site-title *$:/core/ui/SideBarSegments/site-subtitle *$:/core/ui/SideBarSegments/page-controls *$:/core/ui/SideBarSegments/search *$:/core/ui/SideBarSegments/tabs Les deux premiers tiddlers concernent le titre et le sous-titre du wiki. Il suffit donc de les détaguer pour qu'il n'apparaissent plus dans la SideBar.
Les Tiddlers relatifs a un plugin sont enregistrés dans les shadows Tiddlers. Ces derniers ne sont effaçables que si le plugin est préalablement désactivé. On peut alors supprimer définitivement le plugin via le control panel (plugins) Noter que lorsque le plugin est désactivé, la liste des tiddlers le composant disparaissent de la liste des shadows tiddlers. Tant que le plugin n'est pas désactivé, supprimer les tiddlers des shadow tiddlers est inopérant. ''Les tiddlers sont indestructibles''.
1- Soit un bouton basé sur le style des tags en menu déroulant: ``` <$list filter="[is[current]has[due]]"> <$button message="tm-delete-tiddler" tooltip="delete tiddler" class="tc-btn-invisible"> delete </$button> </$list> ``` <$list filter="[is[current]has[due]]"> <$button message="tm-delete-tiddler" tooltip="delete tiddler" class="tc-btn-invisible"> delete </$button> </$list> 2- Si l'on souhaite affecter une couleur au bouton qui soit différente de la couleur assignée par défaut à la classe "tc-tag-label", on peut écrire: ``` <span style=background-color:red; class=tc-tag-label> <$list filter="[is[current]has[due]]"> <$button message="tm-delete-tiddler" tooltip="delete tiddler" class=" tc-btn-invisible"> delete </$button> </$list> </span> ``` <span style=background-color:red; class=tc-tag-label> <$list filter="[is[current]has[due]]"> <$button message="tm-delete-tiddler" tooltip="delete tiddler" class=" tc-btn-invisible"> delete </$button> </$list> </span>
À coté des explications JavaScript, j'introduierai les principes de base de la programmation. Programmer s'avère difficile. Si les règles fondamentales sont simples et claires, les programmes qui sont construit sur ces règles tendent à devenir suffisamment complexes pour qu'ils introduisent leurs propres règles et complexités. Vous construisez votre propre labyrinthe en quelque sorte en risquant de vous y perdre vous-même. There will be times when reading this book feels terribly frustrating. If you are new to programming, there will be a lot of new material to digest. Much of this material will then be combined in ways that require you to make additional connections. Il arrivera parfois en lisant ce livre d'être terriblement frustré. Si vous débutez en programmation, il y aura énormément de nouvelles notions à digérer. Et la plupart de ces notions seront ensuite elles-mêmes combinées à encore de nouvelles notions. Il vous appartient de faire les efforts nécessaires. Lorsque vous avez du mal à suivre le livre n'en tirez pas de conclusions négatives sur vos capacités. Vous avez juste besoin de vous accrocher. When action grows unprofitable, gather information; when information grows unprofitable, sleep Lorsque l'action ne devient pas rentable, recueillir des informations; Lorsque l'information ne devient pas rentable, le sommeil
<svg viewBox="0 0 160 160" width="160" height="160"> <circle cx="80" cy="80" r="50" /> <g transform=" matrix(0.866, -0.5, 0.25, 0.433, 80, 80)"> <path d="M 0,70 A 65,70 0 0,0 65,0 5,5 0 0,1 75,0 75,70 0 0,1 0,70Z" fill="#CDA"> <animateTransform attributeName="transform" type="rotate" from="360 0 0" to="0 0 0" dur="1s" repeatCount="indefinite" /> </path> </g> <path d="M 50,0 A 50,50 0 0,0 -50,0Z" transform="matrix(0.866, -0.5, 0.5, 0.866, 80, 80)" /> </svg>
What if you just want something simple, like stripes? Coffee Break Designs created an SVG Stripe Generator that offers controls on line thickness, spacing, direction, and color. Do you want a bold pattern or something subtle? {{stripe.svg}} {{stripe1.svg}} Je suis sur des essais avec width = 1400px et height = 50px Tags de positionnement : *$:/tags/AboveStory *$:/tags/BelowStory *$:/tags/Footer *$:/tags/Header *$:/tags/SideBar *$:/tags/TopLeftBar (Testé) *$:/tags/TopRightBar Voir aussi : https://www.vandelaydesign.com/7-free-svg-pattern-generators/ Voir aussi : https://www.heropatterns.com/ https://www.svgbackgrounds.com/#varying-stripes <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Liens Utiles"></li> <li class="menu-item">https://www.coffee-break-designs.com/labs/svg_stripe_generator/</li> <li class="menu-item">https://www.vandelaydesign.com/7-free-svg-pattern-generators/</li> <li class="menu-item">https://www.heropatterns.com/</li> <li class="menu-item">[[https://www.svgbackgrounds.com/#varying-stripes]]</li> <li class="menu-item">http://www.bannieres-en-ligne.fr/generateur-de-bannieres/</li> <li class="menu-item">http://www.linuxenvy.com/bprentice/Banners/Banners.html</li> </ul> </div>
<svg width="290" height="270" > {{Grid}} <circle cx={{SVGExample!!cx}} cy={{SVGExample!!cy}} r={{SVGExample!!radius}} stroke="black" stroke-width="2" fill={{SVGExample!!fill}} /> <line x1={{SVGExample!!cx}} y1={{SVGExample!!cy}} x2={{SVGExample1!!cx}} y2={{SVGExample1!!cy}} style="stroke:rgb(0,0,0);stroke-width:2" /> <circle cx={{SVGExample1!!cx}} cy={{SVGExample1!!cy}} r={{SVGExample1!!radius}} stroke="black" stroke-width="2" fill={{SVGExample1!!fill}}/> <line x1={{SVGExample1!!cx}} y1={{SVGExample1!!cy}} x2={{SVGExample2!!cx}} y2={{SVGExample2!!cy}} style="stroke:rgb(0,0,0);stroke-width:2" /> <circle cx={{SVGExample2!!cx}} cy={{SVGExample2!!cy}} r={{SVGExample2!!radius}} stroke="black" stroke-width="2" fill={{SVGExample2!!fill}}/> </svg> <$reveal state="$:/state/grid" type="match" text="yes"><$button type="set" set="$:/state/grid" setTo="no">Grid</$button> </$reveal> <$reveal state="$:/state/grid" type="nomatch" text="yes"> <$button type="set" set="$:/state/grid" setTo="yes">No Grid</$button></$reveal> |prperty|SVGExample|SVGExample1|SVGExample2|h |cx= | <$edit-text tiddler="SVGExample" field="cx" tag="input"/>|<$edit-text tiddler="SVGExample1" field="cx" tag="input"/>|<$edit-text tiddler="SVGExample2" field="cx" tag="input"/>| |cy= |<$edit-text tiddler="SVGExample" field="cy" tag="input"/>|<$edit-text tiddler="SVGExample1" field="cy" tag="input"/>|<$edit-text tiddler="SVGExample2" field="cy" tag="input"/>| |radius = |<$edit-text tiddler="SVGExample" field="radius" tag="input"/>|<$edit-text tiddler="SVGExample1" field="radius" tag="input"/>|<$edit-text tiddler="SVGExample2" field="radius" tag="input"/>| |fill = |<$edit-text tiddler="SVGExample" field="fill" tag="input"/>|<$edit-text tiddler="SVGExample1" field="fill" tag="input"/>|<$edit-text tiddler="SVGExample2" field="fill" tag="input"/>|
The fields are available to import via `{{SVGExample!!radius}}` etc |radius |{{!!radius}}| |fill|{{!!fill}}| |cx|{{!!cx}}| |cy|{{!!cy}}|
The fields are available to import via `{{SVGExample!!radius}}` etc |radius |{{!!radius}}| |fill|{{!!fill}}| |cx|{{!!cx}}| |cy|{{!!cy}}|
The fields are available to import via `{{SVGExample!!radius}}` etc |radius |{{!!radius}}| |fill|{{!!fill}}| |cx|{{!!cx}}| |cy|{{!!cy}}|
La liste des tags systèmes traduits en français.
{{systemtags||caption}}
Andrew Harrison this is a web site for testing Tiddlywiki 5 plugins that I find useful or developing myself, and testing new releases. I started using Tiddlywiki (now referred to as Tiddlywiki Classic or TWC) back in 2008. I've been using TW5 since it was released.
!Tables Add the table class to any `<table>` element. The class will add padding, border and emphasized table header. ``` <table class="table"> <thead> <tr> <th>name</th> <th>genre</th> <th>release date</th> </tr> </thead> <tbody> <tr class="active"> <td>The Shawshank Redemption</td> <td>Crime, Drama</td> <td>14 October 1994</td> </tr> </tbody> </table> ``` <table class="table"> <thead> <tr> <th>name</th> <th>genre</th> <th>release date</th> </tr> </thead> <tbody> <tr class="active"> <td>The Shawshank Redemption</td> <td>Crime, Drama</td> <td>14 October 1994</td> </tr> </tbody> </table> !!Exemple complet {{Spectre basic Table}} !Striped tables Use the table-striped class to `<table>` to add zebra striped style. For hoverable table rows, you can add the `table-hover` class to enable hover style. Use the active class to make `<tr>` element highlighted. ``` <table class="table table-striped table-hover"> <thead> <tr> <th>name</th> <th>genre</th> <th>release date</th> </tr> </thead> <tbody> <tr class="active"> <td>The Shawshank Redemption</td> <td>Crime, Drama</td> <td>14 October 1994</td> </tr> </tbody> </table> ``` <table class="table table-striped table-hover"> <thead> <tr> <th>name</th> <th>genre</th> <th>release date</th> </tr> </thead> <tbody> <tr class="active"> <td>The Shawshank Redemption</td> <td>Crime, Drama</td> <td>14 October 1994</td> </tr> </tbody> </table> !!Exemple complet {{Spectre Striped Table}}
Curieux de trouver ce lien ici mais elle m'est personnellement utile...
\define TableWizardDisplayTableDummyMacro() <<DisplayTable """$(ConfigTiddler)$""">> \end \define TableWizardColumnSelectCheckbox() <$checkbox tiddler='$:/state/$(ConfigTiddler)$/Display Columns/$(ThisDisplayColumn)$' field='show' checked='$(ThisDisplayColumn)$' unchecked=''> <$view tiddler="""$(ThisDisplayColumn)$""" field=caption> $(ThisDisplayColumn)$ </$view> </$checkbox> \end \define TableWizardSubcolumnSelectCheckbox() <$checkbox tiddler='$:/state/$(ConfigTiddler)$/Display Subcolumns/$(ThisDisplaySubcolumn)$' field='show' checked='$(ThisDisplaySubcolumn)$' unchecked=''> <$view tiddler="""$(ThisDisplaySubcolumn)$""" field=caption> $(ThisDisplaySubcolumn)$ </$view> </$checkbox> \end \define TableWizardRowSelectCheckbox() <$checkbox tiddler='$:/state/$(ConfigTiddler)$/Display Rows/$(ThisDisplayRow)$' field='show' checked='$(ThisDisplayRow)$' unchecked=''> <$view tiddler="""$(ThisDisplayRow)$""" field=caption> $(ThisDisplayRow)$ </$view> </$checkbox> \end \define TableWizardMakeColumnSelectCheckbox() <$list filter='[tag{$(ConfigTiddler)$!!column_tag}]' variable=ThisDisplayColumn> <<TableWizardColumnSelectCheckbox>> </$list> \end \define TableWizardMakeSubcolumnSelectCheckbox() <$list filter='[tag{$(ConfigTiddler)$!!subcolumn_tag}]' variable=ThisDisplaySubcolumn> <<TableWizardSubcolumnSelectCheckbox>> </$list> \end \define TableWizardMakeRowSelectCheckbox() <$list filter='[tag{$(ConfigTiddler)$!!row_tag}]' variable=ThisDisplayRow> <<TableWizardRowSelectCheckbox>> </$list> \end \define TableWizardButtonSubcolumn() <$reveal type='nomatch' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" text='edit'> <div style='height:100%;width:100%;'> <$button class='tc-btn-invisible' style='height:100%;width:100%;'> <$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$/$(ThisItem)$""" field=subcolumn_data> <<MissingMessage>> </$view> <$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" $value=edit/> </$button> </div> </$reveal> <$reveal type='match' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" text='edit'> <$button> {{$:/core/images/done-button}} <$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" $value=''/> </$button> <$edit-text tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$/$(ThisItem)$""" field=subcolumn_data size=1/> </$reveal> \end \define TableWizardSubcolumnDisplayEntry() <td> <$reveal type='nomatch' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'> <$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$/$(ThisItem)$""" field=subcolumn_data> <<MissingMessage>> </$view> </$reveal> <$reveal type='match' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'> <<TableWizardButtonSubcolumn>> </$reveal> </td> \end \define TableWizardButtonColumn() <$reveal type='nomatch' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$!!$(ThisColumn)$""" text='edit'> <div style='height:100%;width:100%;'> <$button class='tc-btn-invisible' style='height:100%;width:100%;'> <$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisItem)$""" field='column_data'> <<MissingMessage>> </$view> <$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$""" $field=$(ThisColumn)$ $value=edit/> </$button> </div> </$reveal> <$reveal type='match' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$!!$(ThisColumn)$""" text='edit'> <$button> {{$:/core/images/done-button}} <$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$""" $field=$(ThisColumn)$ $value=''/> </$button> <$edit-text tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisItem)$""" field=column_data size=1/> </$reveal> \end \define TableWizardColumnDisplayEntry() <td> <$reveal type='nomatch' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'> <$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisItem)$""" field='column_data'> <<MissingMessage>> </$view> </$reveal> <$reveal type='match' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'> <<TableWizardButtonColumn>> </$reveal> </td> \end \define TableWizardDisplayTableWithSubcolumns(DataTag ColumnTag SubcolumnTag RowTag SubcolumnPerColumn EmptyMessage) @@text-align:center; <$set name='ColumnList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Columns]has[show]get[show]tag[$ColumnTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'> <$set name='SubcolumnList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Subcolumns]has[show]get[show]tag[$SubcolumnTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'> <$set name='RowList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Rows]has[show]get[show]tag[$RowTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'> <$set name=MissingMessage value='$EmptyMessage$'> <$set name=ThisItem value={{$(ConfigTiddler)$!!selected_data}}> <table style='width:100%;border-color:black;'> <tr> <td style='background-color:lightgrey;border-color:black;'> </td> <$list filter=<<ColumnList>>> <td colspan="$SubcolumnPerColumn$" style='background-color:lightgrey;border-color:black;'> <$link to=<<currentTiddler>>> <$view field='caption'> <<currentTiddler>> </$view> </$link> </td> </$list> </tr> <tr style='width:100%;bordor-color:black;'> <td style='border-left-color:black;'> </td> <$list filter=<<ColumnList>>> <$list filter=<<SubcolumnList>> variable=ThisSubcolumn> <td> <$link to=<<ThisSubcolumn>>> <$view tiddler=<<ThisSubcolumn>> field=caption> <<ThisSubcolumn>> </$view> </$link> </td> </$list> </$list> </tr> <$list filter=<<RowList>> variable=ThisRow> <tr> <td style='border-left:0px;'> <$link to=<<ThisRow>>> <$view tiddler=<<ThisRow>> field=caption> <<ThisRow>> </$view> </$link> </td> <$list filter=<<ColumnList>> variable=ThisColumn> <$list filter=<<SubcolumnList>> variable=ThisSubcolumn> <<TableWizardSubcolumnDisplayEntry>> </$list> </$list> </tr> </$list> </table> </$set> </$set> </$set> </$set> </$set> @@ \end \define TableWizardDisplayTableMacro(DataTag ColumnTag RowTag EmptyMessage) @@text-align:center; <$set name='ColumnList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Columns]has[show]get[show]tag[$ColumnTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'> <$set name='RowList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Rows]has[show]get[show]tag[$RowTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'> <$set name=ThisItem value={{$(ConfigTiddler)$!!selected_data}}> <$set name=MissingMessage value='$EmptyMessage$'> <table style='width:100%;border-color:black;'> <tr> <td style='background-color:lightgrey;border-color:black;'> </td> <$list filter=<<ColumnList>>> <td style='background-color:lightgrey;border-color:black;'> <$link to=<<currentTiddler>>> <$view field='caption'> <<currentTiddler>> </$view> </$link> </td> </$list> </tr> <$list filter=<<RowList>> variable=ThisRow> <tr> <td style='border-left:0px;'> <$link to=<<ThisRow>>> <$view tiddler=<<ThisRow>> field=caption> <<ThisRow>> </$view> </$link> </td> <$list filter=<<ColumnList>> variable=ThisColumn> <<TableWizardColumnDisplayEntry>> </$list> </tr> </$list> </table> </$set> </$set> </$set> </$set> @@ \end \define MakeTableWizard() Enter the name of the configuration tiddler to create: <$edit-text tiddler='$:/temp/MakeTableWizard' field='config_tiddler_name' class='tc-edit-texteditor' placeholder='Configuration Tiddler Name'/> <$reveal type='match' state='$:/temp/MakeTableWizard!!config_tiddler_name' text=''> You have to enter a configuration tiddler name first. </$reveal> <$reveal type='nomatch' state='$:/temp/MakeTableWizard!!config_tiddler_name' text=''> <$set name=ConfigTiddler value={{$:/temp/MakeTableWizard!!config_tiddler_name}}> <$checkbox tiddler=<<ConfigTiddler>> field='include_subcolumns' checked='yes' unchecked='no'>Include Subcolumns</$checkbox><br> <$tiddler tiddler=<<ConfigTiddler>>> Data tag: <$edit-text field='dataset_tag' class='tc-edit-texteditor'/> Select Dataset Name <$reveal type='nomatch' state='!!show_new_dataset' text='true'>(<$button>Create New Datasets<$action-setfield show_new_dataset=true/></$button>):<br><br></$reveal> <$reveal type='match' state='!!show_new_dataset' text='true'>(<$button>Done Creating Datasets<$action-setfield show_new_dataset=false/></$button>):<br><br> <$edit-text tiddler='$:/temp/MakeTableWizard' field='new_dataset_name' class='tc-edit-texteditor' placeholder='New Dataset Name'/> <$button>Create Dataset<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_dataset_name}} tags={{!!dataset_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_dataset_name=''/></$button><br><br> </$reveal> <$select field='selected_data'><$list filter='[tag{!!dataset_tag}]'><option><<currentTiddler>></option></$list></$select> <br> <$set name=SelectedData value={{!!selected_data}}> Column tag: <$edit-text field='column_tag' class='tc-edit-texteditor'/><br><br> Select Columns to display <$reveal type='nomatch' state='!!show_new_column' text='true'>(<$button>Create New Columns<$action-setfield show_new_column=true/></$button>):<br><br></$reveal> <$reveal type='match' state='!!show_new_column' text='true'>(<$button>Done Creating Columns<$action-setfield show_new_column=false/></$button>):<br><br> <$edit-text tiddler='$:/temp/MakeTableWizard' field='new_column_name' class='tc-edit-texteditor' placeholder='New Column Name'/> <$button>Create Column<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_column_name}} tags={{!!column_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_column_name=''/></$button><br><br> </$reveal> <<TableWizardMakeColumnSelectCheckbox>><br><br> <$reveal type='match' state='!!include_subcolumns' text='yes'> Subcolumn tag: <$edit-text field='subcolumn_tag' class='tc-edit-texteditor'/> Subcolumns per column: <$edit-text field='subcolumn_per_column' class='tc-edit-texteditor'/> Select subcolumns to display <$reveal type='nomatch' state='!!show_new_subcolumn' text='true'>(<$button>Create New Subcolmun<$action-setfield show_new_subcolumn=true/></$button>):<br><br></$reveal> <$reveal type='match' state='!!show_new_subcolumn' text='true'>(<$button>Done Creating Subcolumns<$action-setfield show_new_subcolumn=false/></$button>):<br><br> <$edit-text tiddler='$:/temp/MakeTableWizard' field='new_subcolumn_name' class='tc-edit-texteditor' placeholder='New Subcolumn Name'/> <$button>Create Subcolumn<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_subcolumn_name}} tags={{!!subcolumn_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_subcolumn_name=''/></$button><br><br> </$reveal> <<TableWizardMakeSubcolumnSelectCheckbox>><br> </$reveal> Row tag: <$edit-text field='row_tag' class='tc-edit-texteditor'/><br><br> Select rows to display <$reveal type='nomatch' state='!!show_new_row' text='true'>(<$button>Create New Rows<$action-setfield show_new_row=true/></$button>):<br><br></$reveal> <$reveal type='match' state='!!show_new_row' text='true'>(<$button>Done Creating Rows<$action-setfield show_new_row=false/></$button>):<br><br> <$edit-text tiddler='$:/temp/MakeTableWizard' field='new_row_name' class='tc-edit-texteditor' placeholder='New Row Name'/> <$button>Create Row<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_row_name}} tags={{!!row_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_row_name=''/></$button><br><br> </$reveal> <<TableWizardMakeRowSelectCheckbox>><br><br> Empty cell message: <$edit-text field='empty_message' class='tc-edit-texteditor'/> <$checkbox field='allow_edit' checked='yes' unchecked='no'>Allow Inline Editing</$checkbox><br> <$reveal type='match' state='!!show_table' text='yes'> </$reveal> </$set> </$tiddler> <$button>Refresh Table <$action-setfield dummy=1/> </$button> <<TableWizardDisplayTableDummyMacro>> </$set> </$reveal> \end \define TableWizardDisplayTableInside() <$reveal type='nomatch' state="""$(ConfigTiddler)$!!include_subcolumns""" text='yes'> <$macrocall $name=TableWizardDisplayTableMacro DataTag={{$(ConfigTiddler)$!!dataset_tag}} ColumnTag={{$(ConfigTiddler)$!!column_tag}} RowTag={{$(ConfigTiddler)$!!row_tag}} EmptyMessage={{$(ConfigTiddler)$!!empty_message}}/> </$reveal> <$reveal type='match' state="""$(ConfigTiddler)$!!include_subcolumns""" text='yes'> <$macrocall $name=TableWizardDisplayTableWithSubcolumns DataTag={{$(ConfigTiddler)$!!dataset_tag}} ColumnTag={{$(ConfigTiddler)$!!column_tag}} RowTag={{$(ConfigTiddler)$!!row_tag}} EmptyMessage={{$(ConfigTiddler)$!!empty_message}} SubcolumnTag={{$(ConfigTiddler)$!!subcolumn_tag}} SubcolumnPerColumn={{$(ConfigTiddler)$!!subcolumn_per_column}}/> </$reveal> \end \define DisplayTable(ConfigTiddler) <$set name=ConfigTiddler value="""$ConfigTiddler$"""> <<TableWizardDisplayTableInside>> </$set> \end \define TableMacrosColumnInnerInnerRows() <tr> <th> </th> <$list filter='$(ColumnList)$+[sort{$(TableMacrosMakeTableSortStateTiddler)$}]'> <th> <<currentTiddler>> </th> </$list> </tr> <$list filter=<<FieldsList>> variable=ThisField> <tr> <th> <$button class='tc-btn-invisible' set=<<TableMacrosMakeTableSortStateTiddler>> setTo=<<ThisField>>><<ThisField>></$button> </th> <$list filter='$(ColumnList)$+[sort{$(TableMacrosMakeTableSortStateTiddler)$}]' variable=ThisTiddler> <td> <<TableMacrosInlineEditButton>> </td> </$list> </tr> </$list> \end \define TableMacrosInnerColumnTable() <$set name=FieldsList1 filter='$(ColumnList)$+[fields[]]-[[text]]-[[title]]-[[modified]]-[[created]]-[[tags]]'> <$set name=FieldsList filter='[is[system]!is[system]]$(FieldsUsed)$' emptyValue=<<FieldsList1>>> <$set name=RowOrColumn value=Column> <$set name=TableSortState value=<<TableMacrosMakeTableSortState>>> <table> <<TableMacrosColumnInnerInnerRows>> </table> </$set> </$set> </$set> </$set> \end \define TableMacrosMakeTableSortState() {{$:/state/tables/Sort/$(RowOrColumn)$/$(FieldsList)$}} \end \define TableMacrosMakeTableSortStateTiddler() $:/state/tables/Sort/$(RowOrColumn)$/$(FieldsList)$ \end \define TableMacrosRowTableInnerInnerRows() <$list filter='$(RowList)$+[sort{$(TableMacrosMakeTableSortStateTiddler)$}]' variable=ThisTiddler> <tr> <th> <<ThisTiddler>> </th> <$list filter=<<FieldsList>> variable=ThisField> <td> <<TableMacrosInlineEditButton>> </td> </$list> </tr> </$list> \end \define TableMacrosInnerRowTable() <$set name=FieldsList1 filter='$(RowList)$+[fields[]]-[[text]]-[[title]]-[[modified]]-[[created]]-[[tags]]'> <$set name=FieldsList filter='[is[system]!is[system]]$(FieldsUsed)$' emptyValue=<<FieldsList1>>> <$set name=RowOrColumn value=Row> <$set name=TableSortState value=<<TableMacrosMakeTableSortState>>> <table> <tr> <th> <$button class='tc-btn-invisible' style='width:100%;height:100%' set=<<TableMacrosMakeTableSortStateTiddler>> setTo=title>Title</$button> </th> <$list filter=<<FieldsList>>> <th> <$button class='tc-btn-invisible' set=<<TableMacrosMakeTableSortStateTiddler>> setTo=<<currentTiddler>>><<currentTiddler>></$button> </th> </$list> </tr> <<TableMacrosRowTableInnerInnerRows>> </table> </$set> </$set> </$set> </$set> \end \define ColumnTable(filter fields) <$set name='ColumnList' value='$filter$'> <$set name='FieldsUsed' value='$fields$'> <<TableMacrosInnerColumnTable>> </$set> </$set> \end \define RowTable(filter fields) <$set name='RowList' value='$filter$'> <$set name='FieldsUsed' value='$fields$'> <<TableMacrosInnerRowTable>> </$set> </$set> \end \define TableMacrosInlineEditButton() <$reveal type='nomatch' state="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" text='edit'> <$button set="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" setTo=edit class='tc-btn-invisible' style='width:100%;hegiht:100%'> <$view tiddler=<<ThisTiddler>> field=<<ThisField>>>--</$view> </$button> </$reveal> <$reveal type='match' state="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" text='edit'> <$button set="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" setTo=noedit>{{$:/core/images/done-button}}</$button> <$edit-text tiddler=<<ThisTiddler>> field=<<ThisField>> size=1/> </$reveal> \end
<<MakeTableWizard>>
~TiddlyWiki fournit plusieurs macros pour générer une liste de liens de tiddlers basé sur leurs tags respectifs. Voir [[TableOfContents]] : ; toc : une simple arborescence ; toc-expandable : Arborescence dans laquelle toutes les branches peuvent être étendues ou cachées (ouvertes ou fermées), par exemple un menu dynamique. ; toc-selective-expandable : Arborescence dans laquelle les branches non vides peuvent être étendues ou cachées. ; toc-tabbed-internal-nav and toc-tabbed-external-nav : Arborescence comprenant deux fenêtres de navigation: :* Dans la fenêtre de gauche une arborescence se comportant comme une suite de tables verticales :* dans la fenêtre de droite le contenu du tiddler que l'utilisateur selectionne dans la fenêtre d'arborescence Voir par exemple [[Documentation en tables]] The difference between the last two has to do with what happens when the user clicks a link in the right-hand panel: ;<<.var toc-tabbed-internal-nav>> : The target tiddler appears in the right-hand panel, replacing the tiddler that contained the link ;<<.var toc-tabbed-external-nav>> : The target tiddler appears in the normal way (which depends on the user's configured storyview) !! Structure Le niveau supérieur de l'arborescence se compose des tiddlers qui contiennent un tag particulier appelé Tag racine. Les Tiddlers tagués avec ce tag racine composent les Tidlers du niveau suivant et ainsi de suite. The top level of the tree consists of the tiddlers that carry a particular tag, known as the <<.def "root tag">>. Tiddlers tagged with any of those make up the next level down, and so on. À chaque niveau,les Tiddlers peuvent être [[classés|Ordre d'apparition des tiddlers tagué dans une liste]] au moyen du champ "field list" du tag du tiddler parent. Ils peuvent également par le paramètre "sort" de la macro. L'arborescence affiche le champ "caption" des Tiddlers s'ils en possèdent un ou à défaut le titre du Tiddler. Each tiddler in the tree is normally displayed as a link. To suppress this, give the tiddler a <<.field toc-link>> field with the the value <<.value no>>. In the [[examples|Table-of-Contents Macros (Examples)]], the SecondThree tiddler is set up like this. Clicking such a tiddler in the tree causes its branch to expand or collapse. The table of contents is generated as an HTML ordered list. The `<ol>` elements always have the class `tc-toc`. Expandable trees have the additional class `tc-toc-expandable`. Selectively expandable trees (including those in the two-panel browser) have `tc-toc-selective-expandable`. To make a table of contents appear in the sidebar, see [[How to add a new tab to the sidebar]]. !! Parameters ;tag : The root tag that identifies the top level of the tree ;sort : An optional extra [[filter step|Filter Step]], e.g. `sort[title]` These two parameters are combined into a single [[filter expression|Filter Expression]] like this: > `[tag[$tag$]$sort$]` <<.var toc-tabbed-internal-nav>> and <<.var toc-tabbed-external-nav>> take additional parameters: ;selectedTiddler : The title of the [[state tiddler|StateMechanism]] for noting the currently selected tiddler, defaulting to `$:/temp/toc/selectedTiddler`. It is recommended that this be a [[system tiddler|SystemTiddlers]] ;unselectedText : The text to display when no tiddler is selected in the tree ;missingText : The text to display if the selected tiddler doesn't exist ;template : Optionally, the title of a tiddler to use as a [[template|TemplateTiddlers]] for transcluding the selected tiddler into the right-hand panel
<table> <tr> <th>Name</th> <th>Date</th> <th>Date</th> <th>Fields</th> </tr> <$list filter="[tag[ExtendedBrain]] +[tag{!!filter-field}]" emptyMessage="Nothing found"> <tr> <td><$link><$view field=title/></$link></td> <td>{{!!modified}}</td> <td><$view field="modified"/></td> <td> <$list filter="[{!!title}fields[]sort[title]] -[all[shadows]removeprefix[$:/language/Docs/Fields/]]" emptyMessage="Nothing found"><<currentTiddler>> </$list> </td> </tr> </$list> </table>
Toutes les macros sont contenues dans le Tiddler [[Table Macros]] qu'il faut donc importer au préalable. <br/> <div class="pretty"> Il existe aussi un plugin officiel intitulé TiddlyWiki spreadsheet utilities (xlsx-utils) permettant de manière flexible l'import de fichiers excel dans Tiddlywiki. <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Voir à ce sujet https://github.com/Jermolene/TiddlyWiki5/tree/master/plugins/tiddlywiki/xlsx-utils et https://github.com/SheetJS/js-xlsx Ces deux plugins sont actuellement installés sur ce wiki. </div> !Simple Row/Column Tables Row table: ``` <<RowTable "row tiddler filter" "field filter">> ``` Column table: ``` <<ColumnTable "column tiddler filter" "field filter">> ``` The two macros `ColumnTable` and `RowTable` each take a filter listing tiddlers as input, with an optional second filter listing fields. The tiddler filter defines which tiddlers are the columns for the `ColumnTable` macro and the rows for the `RowTable` macro. If the second filter is left out, the rows of the `ColumnTable` macro are defined by the fields in each tiddler returned by the tiddler filter, the columns for the`RowTable` macro are defined by the fields in the returned tiddlers. For row tables you can click on a column header and sort the table by that column, for column tables you can click on the row label and sort the columns by that row. Unfortunately sorting column tables by the columns or row tables by the rows is probably going to take some javascript that I don't feel like dealing with right now. It requires sorting the fields of a tiddler by their contents. Examples: * [[Simpler Table Macros]] * [[tableau dynamique]] !Table Wizard The macro `<<MakeTableWizard>>` will display the table creation tool. It doesn't take any arguments. You set the name of a configuration tiddler that holds the information for a table. The macro `<<DisplayTable ConfigurationTiddler>>` will display a table made using the creation tool where `ConfiguartionTiddler` is the name of the tiddler given in the creation tool. Enter a configuration tiddler name, each configuration tiddler will be associated with one table. You can make as many as you want. Put in subcolumns, or not as you will. Enter a tag that will be on the tiddler named with your dataset, you can create a new data set using the button. Note that if you try to make one with the same name as an existing tiddler it will overwrite the tag field of that tiddler. Same for columns, subcolumns and rows. Subcolumns per column should be set to be equal to the number of columns you are using. Row, column and subcolumn names can be any valid tiddler name. If you check 'Allow Inline Editing' you can click on a cell in the table to edit the contents of that cell. For the moment this is probably the best way to enter data. Data is stored it tiddlers using the naming convention: For tables without subcolumns: `$:/Data/`(Row Name)/(Column Name)/(Dataset Name) The value is stored in the field `column_data` For tables with subcolumns: `$:/Data/`(Row Name)/(Column Name)/(Subcolumn Name)/(Dataset Name) The value is stored in the field `subcolumn_data` Yes, this means that you have a tiddler for each cell in the table. To do this any other way I would have had to drop support for subcolumns and use data tiddlers.
<i class="icon icon-apps icon-2x"></i> <div class="tc-table-of-contents"> <<toc-selective-expandable 'TableOfContents' sort[sub.num]">> </div> <i class="icon icon-apps icon-2x"></i>
{{Tableurs||caption}}
Il y a dans ce qui suit quatre plugins intéressants qui sont destinés à produire des tableaux, importer d'Excel ou mimer Excel (Deux tableurs dans ~TiddltWiki). Toutes les fonctions sont intégrées sur ce wiki. Ces plugins fonctionnent donc de manière totalement autonome. |[[Mathcell]]|Un mini tableur dans ~TiddlyWiki| |[[XLSX Spreadsheet|xlsx]]|Importation formatée de tableaux Excel| |[[Tableaux dynamiques|dtable]]|Production assistée de tableaux dynamiques| |[[SocialCalc]]|Un vrai tableur Excel Like en ligne|
Identique au plugin de P.Mario [[$:/plugins/wikilabs/link-to-tabs]] Internal links are added to tabs if selected. Le présent plugin utilise des petites icônes de liens différentes (oeuil ouvert et crayon) au lieu de l’icône lien de P.Mario, la possibilité d'ouvrir directement le tiddler en écriture étant ajoutée dans le présent plugin. Ce plugin n'offre pas la possibilité de voir apparaître ces icônes sur tous les liens tables, comme le propose le plugin de P.Mario, option que je n'utilise pas sur ce wiki. Dans les deux plugins, le tiddler [[$:/core/macros/tabs]] est modifié En conclusion, le plugin TabLink est probablement plus aboutit que le plugin link to tabs.
{{TabsV||caption}}
<div class="pretty"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> La traduction reste à finaliser.<br/> Source [EN}: http://braintest.tiddlyspot.com/#Inline%20editable%20tables </div> La capacité d'''éditer des tables en "mode visualisation"'' est une demande très forte depuis la sortie de TW5. Peut être n'est-ce pas aussi simple que nombre d'entre vous le souhaiterait mais la solution présentée ici démontre la puissance et la flexibilité offertes par TW5. Tout d'abord, voici la liste des tiddlers requis que vous devez importer dans votre TiddlyWiki: *[[$:/core/modules/filters/split.js]] *[[$:/plugins/skeeve/newtiddler.js]] *[[CSS-Table]] *[[Editable-Table]] Si vous avez déjà installé le tiddler [[$:/plugins/skeeve/newtiddler.js]] depuis ([ext[tiddlystuff|http://www.tiddlystuff.tiddlyspot.com]]) <<rojo "''vous devez le mettre à jour avec la version indiquée ci-dessus''">>. J'ai en effet modifié cette version et y ai ajouté de nouvelles fonctionnalités telles que le nettoyage des fichiers temporaires et la création destags filtres sans utiliser de squelette. Ceci rend le procédé de création de nouvelles tables plus simple. ''Cette nouvelle édition est en principe retro compatible mais faites d'abord une sauvegarde de votre wiki.'' !Utilisation !!Créer une nouvelle table Ok, C'est ici la partie du process global la plus difficile. <ol> <li> Vous devez cloner le tiddler "[[Editable-Table]]" en lui donnant le nom que vous voulez. </li> <li> Remplissez leschamps de votre nouvelle table avec les informations dont vous avez besoin. Voici l'explication de l'utilité de chaque champ: <ul> <li>''table-headers:'' Le nom donné à chaque colonne de votre table (Nom, Utilisateur, Groupe, Rôle dans l'exemple ci-dessous)</li> <li>''table-fields:'' this should be lower case and ''different from the table headers names''. Take the Editable-Table as an example. You can use the same names to table-headers with the first letter in uppercase. This fields are those you will be able to edit. </li> <li>''filter-tag:'' Since each table row is going to be a single tiddler you have to use a tag to group them all. Type here that tag name</li> <li>''sort-field:'' Which table field you want to use as order index. This will be easier when TW 5.0.9 comes out. Just ''clicking in table headers will order the table with that field''.</li> </ul> <li> Enregistrez votre tiddler. </li> </li> </ol> !!Utiliser la table. At this point to can start using the table as a standalone tiddler if you want, as a contacts database or whatever. You can transclude it to other too tiddlers if you want, but ''<<rojo "PLEASE">> read the section below''. !!!Ajouter des lignes You can add a new entry filling the first's row cells and clicking the plus button. The table will create a new entry with the provided data. ''You don't have to fulfill all the fields. <<rojo "Only the table title is mandatory">>.'' !!!Éditer les lignes Clicking {{$:/core/images/edit-button}} will enable the edit mode of that row. Here you can edit all the columns except the first one. This is because the first one is the tiddler title and can't be edited this way. You can always open the tiddler which tat row represents and edit the title. ''In edit mode'' clicking {{$:/core/images/delete-button}} will delete the row and the related tiddler. Clicking {{$:/core/images/done-button}} will exit the edit mode for that row. This does not actually saves the row because it is saved as you type. !!Transclure la table If you want to ''transclude it'' to other tiddlers <<rojo "always use the `{{tableName}}` notation">>. This is mandatory because the table ''depends on its tiddler fields''. If you transclude the table using the transclude widget the table will try to grab those fields from the tiddler it is transcluded to. You can create the required fields in the destination tiddler but that way you will have only ONE table. !!Un exemple concret Here you have a live example of a contacts database. You can play around with it, add records, edit them and erase them. This has been transcluded using `{{Editable-Table}}`. ''As I said before'' clicking on the table headers does nothing in 5.0.8 and older, but in TW 5.0.9 this will sort the table by that column. <<rojo "There is no action needed by your side">>, it is already ready for the update.{{Smile}} {{Editable-Table}}
{{Tabulator||caption}}
/* Tabulator v4.2.7 (c) Oliver Folkerd */ .tabulator { position: relative; background-color: #fff; overflow: hidden; font-size: 14px; text-align: left; width: 100%; max-width: 100%; margin-bottom: 20px; -ms-transform: translatez(0); transform: translatez(0); } .tabulator[tabulator-layout="fitDataFill"] .tabulator-tableHolder .tabulator-table { min-width: 100%; } .tabulator.tabulator-block-select { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } .tabulator .tabulator-header { position: relative; box-sizing: border-box; width: 100%; border-bottom: 2px solid #ddd; background-color: #fff; font-weight: bold; white-space: nowrap; overflow: hidden; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; } .tabulator .tabulator-header .tabulator-col { display: inline-block; position: relative; box-sizing: border-box; background-color: #fff; text-align: left; vertical-align: bottom; overflow: hidden; } .tabulator .tabulator-header .tabulator-col.tabulator-moving { position: absolute; border: 1px solid #ddd; background: #e6e6e6; pointer-events: none; } .tabulator .tabulator-header .tabulator-col .tabulator-col-content { box-sizing: border-box; position: relative; padding: 8px; } .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title { box-sizing: border-box; width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: bottom; } .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-col-title .tabulator-title-editor { box-sizing: border-box; width: 100%; border: 1px solid #999; padding: 1px; background: #fff; } .tabulator .tabulator-header .tabulator-col .tabulator-col-content .tabulator-arrow { display: inline-block; position: absolute; top: 14px; right: 8px; width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-bottom: 6px solid #bbb; } .tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols { position: relative; display: -ms-flexbox; display: flex; border-top: 1px solid #ddd; overflow: hidden; } .tabulator .tabulator-header .tabulator-col.tabulator-col-group .tabulator-col-group-cols .tabulator-col:last-child { margin-right: -1px; } .tabulator .tabulator-header .tabulator-col:first-child .tabulator-col-resize-handle.prev { display: none; } .tabulator .tabulator-header .tabulator-col.ui-sortable-helper { position: absolute; background-color: #e6e6e6 !important; border: 1px solid #ddd; } .tabulator .tabulator-header .tabulator-col .tabulator-header-filter { position: relative; box-sizing: border-box; margin-top: 2px; width: 100%; text-align: center; } .tabulator .tabulator-header .tabulator-col .tabulator-header-filter textarea { height: auto !important; } .tabulator .tabulator-header .tabulator-col .tabulator-header-filter svg { margin-top: 3px; } .tabulator .tabulator-header .tabulator-col .tabulator-header-filter input::-ms-clear { width: 0; height: 0; } .tabulator .tabulator-header .tabulator-col.tabulator-sortable .tabulator-col-title { padding-right: 25px; } .tabulator .tabulator-header .tabulator-col.tabulator-sortable:hover { cursor: pointer; background-color: #e6e6e6; } .tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="none"] .tabulator-col-content .tabulator-arrow { border-top: none; border-bottom: 6px solid #bbb; } .tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="asc"] .tabulator-col-content .tabulator-arrow { border-top: none; border-bottom: 6px solid #666; } .tabulator .tabulator-header .tabulator-col.tabulator-sortable[aria-sort="desc"] .tabulator-col-content .tabulator-arrow { border-top: 6px solid #666; border-bottom: none; } .tabulator .tabulator-header .tabulator-col.tabulator-col-vertical .tabulator-col-content .tabulator-col-title { -webkit-writing-mode: vertical-rl; -ms-writing-mode: tb-rl; writing-mode: vertical-rl; text-orientation: mixed; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; } .tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-col-vertical-flip .tabulator-col-title { -ms-transform: rotate(180deg); transform: rotate(180deg); } .tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-col-title { padding-right: 0; padding-top: 20px; } .tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable.tabulator-col-vertical-flip .tabulator-col-title { padding-right: 0; padding-bottom: 20px; } .tabulator .tabulator-header .tabulator-col.tabulator-col-vertical.tabulator-sortable .tabulator-arrow { right: calc(50% - 6px); } .tabulator .tabulator-header .tabulator-frozen { display: inline-block; position: absolute; z-index: 10; } .tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-left { border-right: 2px solid #ddd; } .tabulator .tabulator-header .tabulator-frozen.tabulator-frozen-right { border-left: 2px solid #ddd; } .tabulator .tabulator-header .tabulator-calcs-holder { box-sizing: border-box; width: 100%; background: white !important; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; overflow: hidden; } .tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row { background: white !important; } .tabulator .tabulator-header .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle { display: none; } .tabulator .tabulator-header .tabulator-frozen-rows-holder { min-width: 400%; } .tabulator .tabulator-header .tabulator-frozen-rows-holder:empty { display: none; } .tabulator .tabulator-tableHolder { position: relative; width: 100%; white-space: nowrap; overflow: auto; -webkit-overflow-scrolling: touch; } .tabulator .tabulator-tableHolder:focus { outline: none; } .tabulator .tabulator-tableHolder .tabulator-placeholder { box-sizing: border-box; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; width: 100%; } .tabulator .tabulator-tableHolder .tabulator-placeholder[tabulator-render-mode="virtual"] { position: absolute; top: 0; left: 0; height: 100%; } .tabulator .tabulator-tableHolder .tabulator-placeholder span { display: inline-block; margin: 0 auto; padding: 10px; color: #000; font-weight: bold; font-size: 20px; } .tabulator .tabulator-tableHolder .tabulator-table { position: relative; display: inline-block; background-color: #fff; white-space: nowrap; overflow: visible; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs { font-weight: bold; background: #ececec !important; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-top { border-bottom: 2px solid #ddd; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.tabulator-calcs.tabulator-calcs-bottom { border-top: 2px solid #ddd; } .tabulator .tabulator-col-resize-handle { position: absolute; right: 0; top: 0; bottom: 0; width: 5px; } .tabulator .tabulator-col-resize-handle.prev { left: 0; right: auto; } .tabulator .tabulator-col-resize-handle:hover { cursor: ew-resize; } .tabulator .tabulator-footer { padding: 5px 10px; border-top: 2px solid #ddd; text-align: right; font-weight: bold; white-space: nowrap; -ms-user-select: none; user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; } .tabulator .tabulator-footer .tabulator-calcs-holder { box-sizing: border-box; width: calc(100% + 20px); margin: -5px -10px 5px -10px; text-align: left; background: white !important; border-bottom: 1px solid #ddd; border-top: 1px solid #ddd; overflow: hidden; } .tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row { background: white !important; } .tabulator .tabulator-footer .tabulator-calcs-holder .tabulator-row .tabulator-col-resize-handle { display: none; } .tabulator .tabulator-footer .tabulator-calcs-holder:only-child { margin-bottom: -5px; border-bottom: none; } .tabulator .tabulator-footer .tabulator-paginator { font-family: inherit; font-weight: inherit; font-size: inherit; } .tabulator .tabulator-footer .tabulator-page-size { display: inline-block; margin: 0 5px; padding: 2px 5px; border: 1px solid #ddd; border-radius: 3px; } .tabulator .tabulator-footer .tabulator-pages { margin: 0 7px; } .tabulator .tabulator-footer .tabulator-page { display: inline-block; margin: 0 2px; padding: 2px 5px; border: 1px solid #ddd; border-radius: 3px; background: rgba(255, 255, 255, 0.2); } .tabulator .tabulator-footer .tabulator-page.active { color: #d00; } .tabulator .tabulator-footer .tabulator-page:disabled { opacity: .5; } .tabulator .tabulator-footer .tabulator-page:not(.disabled):hover { cursor: pointer; background: rgba(0, 0, 0, 0.2); color: #fff; } .tabulator .tabulator-loader { position: absolute; display: -ms-flexbox; display: flex; -ms-flex-align: center; align-items: center; top: 0; left: 0; z-index: 100; height: 100%; width: 100%; background: rgba(0, 0, 0, 0.4); text-align: center; } .tabulator .tabulator-loader .tabulator-loader-msg { display: inline-block; margin: 0 auto; padding: 10px 20px; border-radius: 10px; background: #fff; font-weight: bold; font-size: 16px; } .tabulator .tabulator-loader .tabulator-loader-msg.tabulator-loading { border: 4px solid #333; color: #000; } .tabulator .tabulator-loader .tabulator-loader-msg.tabulator-error { border: 4px solid #D00; color: #590000; } .tabulator.table-striped .tabulator-row:nth-child(even) { background-color: #f9f9f9; } .tabulator.table-bordered { border: 1px solid #ddd; } .tabulator.table-bordered .tabulator-header .tabulator-col { border-right: 1px solid #ddd; } .tabulator.table-bordered .tabulator-tableHolder .tabulator-table .tabulator-row .tabulator-cell { border-right: 1px solid #ddd; } .tabulator.table-condensed .tabulator-header .tabulator-col .tabulator-col-content { padding: 5px; } .tabulator.table-condensed .tabulator-tableHolder .tabulator-table .tabulator-row { min-height: 24px; } .tabulator.table-condensed .tabulator-tableHolder .tabulator-table .tabulator-row .tabulator-cell { padding: 5px; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.active { background: #f5f5f5 !important; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.success { background: #dff0d8 !important; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.info { background: #d9edf7 !important; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.warning { background: #fcf8e3 !important; } .tabulator .tabulator-tableHolder .tabulator-table .tabulator-row.danger { background: #f2dede !important; } .tabulator-row { position: relative; box-sizing: border-box; min-height: 30px; background-color: #fff; border-bottom: 1px solid #ddd; } .tabulator-row.tabulator-selectable:hover { background-color: #f5f5f5 !important; cursor: pointer; } .tabulator-row.tabulator-selected { background-color: #9ABCEA; } .tabulator-row.tabulator-selected:hover { background-color: #769BCC; cursor: pointer; } .tabulator-row.tabulator-moving { position: absolute; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; pointer-events: none !important; z-index: 15; } .tabulator-row .tabulator-row-resize-handle { position: absolute; right: 0; bottom: 0; left: 0; height: 5px; } .tabulator-row .tabulator-row-resize-handle.prev { top: 0; bottom: auto; } .tabulator-row .tabulator-row-resize-handle:hover { cursor: ns-resize; } .tabulator-row .tabulator-frozen { display: inline-block; position: absolute; background-color: inherit; z-index: 10; } .tabulator-row .tabulator-frozen.tabulator-frozen-left { border-right: 2px solid #ddd; } .tabulator-row .tabulator-frozen.tabulator-frozen-right { border-left: 2px solid #ddd; } .tabulator-row .tabulator-responsive-collapse { box-sizing: border-box; padding: 5px; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; } .tabulator-row .tabulator-responsive-collapse:empty { display: none; } .tabulator-row .tabulator-responsive-collapse table { font-size: 14px; } .tabulator-row .tabulator-responsive-collapse table tr td { position: relative; } .tabulator-row .tabulator-responsive-collapse table tr td:first-of-type { padding-right: 10px; } .tabulator-row .tabulator-cell { display: inline-block; position: relative; box-sizing: border-box; padding: 8px; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .tabulator-row .tabulator-cell:last-of-type { border-right: none; } .tabulator-row .tabulator-cell.tabulator-editing { border: 1px solid #1D68CD; padding: 0; } .tabulator-row .tabulator-cell.tabulator-editing input, .tabulator-row .tabulator-cell.tabulator-editing select { border: 1px; background: transparent; } .tabulator-row .tabulator-cell.tabulator-validation-fail { border: 1px solid #dd0000; } .tabulator-row .tabulator-cell.tabulator-validation-fail input, .tabulator-row .tabulator-cell.tabulator-validation-fail select { border: 1px; background: transparent; color: #dd0000; } .tabulator-row .tabulator-cell:first-child .tabulator-col-resize-handle.prev { display: none; } .tabulator-row .tabulator-cell.tabulator-row-handle { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-align: center; align-items: center; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; } .tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box { width: 80%; } .tabulator-row .tabulator-cell.tabulator-row-handle .tabulator-row-handle-box .tabulator-row-handle-bar { width: 100%; height: 3px; margin-top: 2px; background: #666; } .tabulator-row .tabulator-cell .tabulator-data-tree-branch { display: inline-block; vertical-align: middle; height: 9px; width: 7px; margin-top: -9px; margin-right: 5px; border-bottom-left-radius: 1px; border-left: 2px solid #ddd; border-bottom: 2px solid #ddd; } .tabulator-row .tabulator-cell .tabulator-data-tree-control { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-pack: center; justify-content: center; -ms-flex-align: center; align-items: center; vertical-align: middle; height: 11px; width: 11px; margin-right: 5px; border: 1px solid #333; border-radius: 2px; background: rgba(0, 0, 0, 0.1); overflow: hidden; } .tabulator-row .tabulator-cell .tabulator-data-tree-control:hover { cursor: pointer; background: rgba(0, 0, 0, 0.2); } .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse { display: inline-block; position: relative; height: 7px; width: 1px; background: transparent; } .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after { position: absolute; content: ""; left: -3px; top: 3px; height: 1px; width: 7px; background: #333; } .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand { display: inline-block; position: relative; height: 7px; width: 1px; background: #333; } .tabulator-row .tabulator-cell .tabulator-data-tree-control .tabulator-data-tree-control-expand:after { position: absolute; content: ""; left: -3px; top: 3px; height: 1px; width: 7px; background: #333; } .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle { display: -ms-inline-flexbox; display: inline-flex; -ms-flex-align: center; align-items: center; -ms-flex-pack: center; justify-content: center; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; -o-user-select: none; height: 15px; width: 15px; border-radius: 20px; background: #666; color: #fff; font-weight: bold; font-size: 1.1em; } .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle:hover { opacity: .7; } .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-close { display: initial; } .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle.open .tabulator-responsive-collapse-toggle-open { display: none; } .tabulator-row .tabulator-cell .tabulator-responsive-collapse-toggle .tabulator-responsive-collapse-toggle-close { display: none; } .tabulator-row .tabulator-cell .tabulator-traffic-light { display: inline-block; height: 14px; width: 14px; border-radius: 14px; } .tabulator-row.tabulator-group { box-sizing: border-box; border-bottom: 1px solid #999; border-right: 1px solid #ddd; border-top: 1px solid #999; padding: 5px; padding-left: 10px; background: #fafafa; font-weight: bold; min-width: 100%; } .tabulator-row.tabulator-group:hover { cursor: pointer; background-color: rgba(0, 0, 0, 0.1); } .tabulator-row.tabulator-group.tabulator-group-visible .tabulator-arrow { margin-right: 10px; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 6px solid #666; border-bottom: 0; } .tabulator-row.tabulator-group.tabulator-group-level-1 { padding-left: 30px; } .tabulator-row.tabulator-group.tabulator-group-level-2 { padding-left: 50px; } .tabulator-row.tabulator-group.tabulator-group-level-3 { padding-left: 70px; } .tabulator-row.tabulator-group.tabulator-group-level-4 { padding-left: 90px; } .tabulator-row.tabulator-group.tabulator-group-level-5 { padding-left: 110px; } .tabulator-row.tabulator-group .tabulator-arrow { display: inline-block; width: 0; height: 0; margin-right: 16px; border-top: 6px solid transparent; border-bottom: 6px solid transparent; border-right: 0; border-left: 6px solid #666; vertical-align: middle; } .tabulator-row.tabulator-group span { margin-left: 10px; color: #666; } .tabulator-edit-select-list { position: absolute; display: inline-block; box-sizing: border-box; max-height: 200px; background: #fff; border: 1px solid #ddd; font-size: 14px; overflow-y: auto; -webkit-overflow-scrolling: touch; z-index: 10000; } .tabulator-edit-select-list .tabulator-edit-select-list-item { padding: 4px; } .tabulator-edit-select-list .tabulator-edit-select-list-item.active { color: #fff; background: #1D68CD; } .tabulator-edit-select-list .tabulator-edit-select-list-item:hover { cursor: pointer; color: #fff; background: #1D68CD; } .tabulator-edit-select-list .tabulator-edit-select-list-group { border-bottom: 1px solid #ddd; padding: 4px; padding-top: 6px; font-weight: bold; }
!Complex Tables, Simple Code Tabulator allows you to create interactive tables in seconds from any HTML Table, ~JavaScript Array, AJAX data source or JSON formatted data. Simply include the library in your project and you're away!
!Implémentation Le fichier [[datatable.js]] fait appel à une requête externe ce qui implique que TW5 n'est plus exploitable hors ligne. Pour une version autonome: *il faut créer un tiddler [[tabulator.js]] contenant le script https://github.com/olifolkerd/tabulator/tree/master/dist/js et le tagger en $:/tag/Macro *Ce tiddler remplacera [[datatable.js]] *Son CSS est placé dans [[tabulator.css]] <div class="column col-sm-12"> <div class="toast toast-error"> Le test minutieux de remplacement du tiddler datatable.js par tabulator.css ne fonctionne pas. Ce qui me semble logique dans la mesure ou le dossier de distribution de Tabulator contient bien plus de fichiers que ce simple JS </div> </div> !Exemples Les exemples suivants requiert la présence des tiddlers suivants : !!Les fonctions ~JavaScript : *Macro [[eval.js]] *[[datatable.js]] *[[tabulator.css]] !!Les bases de données dictionnaire (à créer): !!Les états utilisant Tabulator : (à créer): Les premiers tests contenant l'ensemble des tiddlers cités ci-dessus fonctionne parfaitement. On doit même remarquer que si la taille du contenu des tiddlers est limitée à 600px (via Paramètres -> Contrôle surface), la table du PCG gère bien le manque d'espace alloué au tableau en insérant une barre de contrôle horizontale en pied de table.
``` <$set name="tag" value="Applications"> <$list filter="[tag<tag>tags[]] -[tag<tag>] -[<tag>]"> </$list> </$set> ``` ;Soit: <$set name="tag" value="Applications"> <$list filter="[tag<tag>tags[]] -[tag<tag>] -[<tag>]"> </$list> </$set> The tag value gets set as a variable and then used in the filter. First it finds all the items tagged by "Applications", then all the tags of those items. Then it subtracts all the items tagged by "Applications" and the value of "Application" itself. Dans l'exemple ci-dessous, It collects all the tiddlers that have the "Application" tag and then collects their other tags. ``` <$list filter="[tag[Applications]tags[]]"/> ``` ;Soit: <$list filter="[tag[Applications]tags[]]"/> --- Je viens de voir quelque-chose concernant la fermeture des balises de listes ``` <$list filter="xxx"> </$list> est équivalent à : <$list filter="xxx"/> ```
Étiqueter un tiddler consiste à assigner par un tag à un tiddler une catégorie de votre choix (voir [[Créer et éditer des tiddlers|Creating and editing tiddlers]] pour des instructions sur la manière de taguer). Par exemple, les tiddlers représentant des individus pourraient être étiquetés par les tags ''ami'', ''famille'', ''collègue'', etc. pour indiquer leur relation avec l'auteur. Plusieurs tags peuvent être appliqués au même tiddler. Le fait d'étiqueter les tiddlers vous procure de nombreux moyens supplémentaires de visualiser, parcourir, et organiser vos informations<<:>> * Les pastilles colorées pour chaque tag d'un tiddler vous donnent accès à tous les autres tiddlers de même tag, ainsi qu'au tiddler correspondant au tag lui-même. * L'onglet //Étiqueté// dans le panneau d'informations du tiddler (accessible en cliquant sur le bouton {{$:/core/images/info-button}}) vous donne les liens vers tous les tiddlers tagués avec le titre du tiddler courant. * Vous pouvez utiliser l'onglet Tags dans l'onglet Plus de la barre latérale pour visualiser tous vos tags et accéder à vos tiddlers étiquetés. * Vous pouvez utiliser des [[filtres|Filters]] pour créer des listes de tiddlers selon leurs tags, puis afficher toute combinaison de champs souhaitée. Par exemple, vous pouvez créer une liste qui montre à la fois le titre et le texte de tous les tiddlers étiquetés //Glossaire//. Ces listes peuvent être formatées à votre goût<<:>> avec des puces, des nombres, ou séparées par des virgules, etc. * Les tags <<gf système>> peuvent servir à personnaliser la mise en forme des tiddlers et de la page ~TiddlyWiki dans son ensemble. Voir les instructions correspondantes dans [[Personnalisation de la mise en forme de la page et des tiddlers|Page and tiddler layout customisation]]. Encore deux choses que les tags permettent de faire<<:>> ! Affecter des couleurs et des icones à un tag Vous pouvez utiliser le [[gestionnaire de tags|$:/TagManager]], présent dans l'onglet Tags de l'onglet Plus de la barre latérale, pour affecter une couleur de fond et/ou une icone à un tag. * Les couleurs peuvent être affectées à un tag soit en spécifiant la valeur CSS de la couleur dans la fenêtre supérieure dans la colonne des couleurs, soit en choisissant une couleur à partir du menu déroulant proposé. * Les icones peuvent être affectées à un tag en cliquant sur le bouton {{$:/core/images/down-arrow}} dans la colonne des icones et en choisissant une des icones proposées. ! Utiliser des champs `list` pour ajuster l'ordre des listes par tag Si vous voulez créer une liste de tiddlers à l'aide d'un [[filtre|Filters]] à partir d'un tag qu'ils ont en commun, en les triant selon un ordre particulier plutôt que selon l'ordre alphabétique par défaut, vous pouvez créer un champ appelé 'list' dans le tiddler du tag lui-même, et y ajouter les titres des tiddlers à ordonner dans l'ordre désiré. ~TiddlyWiki triera les listes de tiddlers tagués dans l'ordre de priorité suivant<<:>> * Premièrement, les tiddlers placés dans le [[champ list|ListField]] du tiddler de tag seront placés dans une nouvelle liste dans le même ordre * Deuxièmement, tout tiddler sans place fixe mais disposant d'un champ ''list-before'' sera placé avant le tiddler indiqué dans le champ ** (si le champ ''list-before'' est vide, alors le tiddler sans place prédéfinie sera placé au début de la liste) * Troisièmement, tout tiddler sans place prédéfinie disposant d'un champ ''list-after'' sera placé juste après le tiddler indiqué dans le champ * Enfin, tout tiddler n'ayant toujours pas de place prédéfinie sera placé à la fin de la liste
{{TagImg||caption}}
[[Suite au post de @yan et de la réponse de @sylvain|https://forum.tiddlywiki.fr/t/inserer-une-image-comme-footer-dun-tiddler-selon-son-tag/392]] concernant la possibilité d'insérer une image en pied de page d'un tiddler suivant son tag, voici un exemple adapté : *On crée le modèle $:/imgBasPage : ;<i class="fa fa-arrow-right"></i> Code : {{$:/imgBasPage||code}} *Taguer ce tiddler $:/tags/ViewTemplate *Ajouter le champ "list-after" que l'on laissera vide *`<$list filter="[is[current]tag[Pied]]">`Indique que le modèle $:/imgBasPage ne s'appliquera qu'aux seuls tiddlers tagués Pied. *`<div class="tiddler-pied">` C'est la classe CSS (tout ce qui est entre les deux balises `<style>` et `</style>`) appliquée à l'image, en l'occurence indique que l'image soit centrée. *`{{$:/separation3}}` C'est le nom de l'image à insérer @@padding:0 5px;border:1px solid crimson; TOUS LES TIDDLERS QUE VOUS TAGUEREZ "Pied" CONTIENDRONT CETTE IMAGE DE SÉPARATION EN BAS DE PAGE @@ ''TiddlyWiki, c'est le pied non ?'' <div class="pretty"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Pour obtenir cet exemple sur votre wiki vous devez récupérer les tiddlers suivants<br/> - [[$:/separation3]] l'image<br/> - [[$:/imgBasPage]] Le modèle<br/> - [[TagImgDoc]] (facultatif <i class="fa fa-arrow-right"></i> pour reprendre cette page exemple.) </div>
Par exemple pour savoir combien de Tiddlers sont actuellement tagués `TagPillList` Il y a deux méthodes possible : `{{{[tag<currentTiddler>count[]]}}}` ;Soit: {{{[tag<currentTiddler>count[]]}}} Cette méthode comptera le nombre de tiddlers ''dont le tag correspond au titre du tiddler dans lequel vous l'écrivez''. Dans cet exemple, le titre du tiddler est `TagPillList` et il est tagué `TagPillList` `<$count filter="[tag[TagPillList]]"/>` ;Soit: <$count filter="[tag[TagPillList]]"/> Cette méthode comptera le nombre de tiddlers portant le tag indiqué dans son code. Elle peut être appliquée dans un tiddler quelconque sans qu'il soit besoin que ce tiddler comporte lui-même ce tag. Enfin on obtiendra la liste de tous les tiddlers tagués du nom du tag du présent tiddler en écrivant: `<$list filter="[all[current]tagging[]]"/>` ;Soit: <$list filter="[all[current]tagging[]]"/>
<style> .unjolistyledeliste ul { height: auto; columns: 130px 4; padding:0; margin: 0; text-align:left; } </style> <!-- <div class="unjolistyledeliste"> <<list-links "[all[current]tagging[]sort[title]]">> </div> --> <!-- Idem mais avec décompte des tags /!\ à corriger car le filtre ne se termine pas : lorsque l'on écris du texte à la suite du code il se copie pour chaque lien de la liste. Voir "filter" et "macro" sur l'aide de TW5, une solution s'y trouve peut être --> <div class="unjolistyledeliste"> <ul> <$list filter="[all[current]tagging[]sort[title]]"> <$link><li style="color:black;"><span style="color:#5778d8;"><$view field="title"/> (<$count filter="[all[current]tagging[]]"/>)</span></li>
{{Tags||caption}}
<$list filter="[tags[]prefix[$:/tags/]]"> <h2><$link><$view field="title"/></$link></h2> <<list-links "[all[current]tagging[]]">> </$list>
{{TagStyle||caption}}
Pour donner aux tiddlers possédant un certain tag un look particulier vous pouvez utiliser [[cette méthode|http://tobibeer.github.io/tw/style/#Style%20Tagged%20Tiddlers]]. *[[ICI sur ce wiki (Exemple 1)|Styler les tiddlers (exemple1)]] *[[ICI sur ce wiki (Exemple 2)|Styler les tiddlers (exemple2)]] Voir aussi [[How to apply custom styles by tag|http://tiddlywiki.com/#How%20to%20apply%20custom%20styles%20by%20tag]]. !!Exemple `<style>.tc-tagged-Test {border: 1px solid hotpink;}</style>` Le plus intéressant dans ceci concerne les feuilles de styles elle-mêmes qui peuvent également servir pour le fond de page du wiki.
J'aimerais pouvoir gérer la taille de ces icônes
\define getToDoNote(field) <$reveal state="$:/state/popupToDoNoteState" type="nomatch" text="$field$"> <$button set="$:/state/popupToDoNoteState" setTo="$field$" class="tc-btn-invisible"> {{$:/core/images/right-arrow}} </$button> </$reveal> <$reveal state="$:/state/popupToDoNoteState" type="match" text="$field$"> <$button set="$:/state/popupToDoNoteState" setTo="" class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/down-arrow}} </$button> <$transclude tiddler="$:/_cpa/Data/todos" index="$field$" mode="block" /> </$reveal> \end \define editToDoNote(field) <$edit-text placeholder="enter description" tiddler="$:/_cpa/Data/todos" index="$field$" class="full-width" /> \end \define newtasks() <!-- Check to see if the tiddler exists --> <$list filter="[title[$(currentTiddler)$]is[tiddler]]" emptyMessage=""" <!-- If it doesn't exist, this is a temporary task. Store its tag in the todos datastore --> <$checkbox tiddler="$:/_cpa/Data/todos" tag="todo:$(currentTiddler)$"> </$checkbox> <$link to="$(currentTiddler)$" tooltip="Create new detailed task"> $(currentTiddler)$ </$link> """> <!-- It does exist, this is a permanent task. Store its tag in the tiddler itself --> <$checkbox tiddler="$(currentTiddler)$" tag="done"> </$checkbox> <$link to="$(currentTiddler)$" tooltip="Open task to edit"> $(currentTiddler)$ </$link> </$list> <!-- Now display any notes for this todo --> <!-- Choose between edit mode and view mode depending on a state tiddler --> <!-- If there is no note yet, put in a button allowing you to add a note --> <!-- If the note is not being edited display an edit button allowing you to edit it --> <$reveal state="$:/state/editToDoTextState" type="nomatch" text="$(currentTiddler)$"> <$list filter="[title[$:/_cpa/Data/todos]getindex[$(currentTiddler)$]]" emptyMessage=""" <$button set="$:/state/editToDoTextState" setTo="$(currentTiddler)$" title="Create a note" class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/new-button}} </$button> """> <$button set="$:/state/editToDoTextState" setTo="$(currentTiddler)$" title="Save" class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/edit-button}} </$button> <<getToDoNote "$(currentTiddler)$" >> </$list> </$reveal> <!-- If the note is being edited display a save button allowing you to save it --> <$reveal state="$:/state/editToDoTextState" type="match" text="$(currentTiddler)$"> <$button set="$:/state/editToDoTextState" setTo="" title="Save" class="tc-btn-invisible tc-tiddlylink"> {{$:/core/images/save-button}} </$button> <<editToDoNote "$(currentTiddler)$" >> </$reveal> \end <$macrocall $name="newtasks" />
{{TaskCatLists||caption}}
Actuellement cette application est présentée comme étant une Liste Getting Stuff Done (GTD), mais peut être utilisée à d'autres fins. !!Description: *Cette application propose une liste déclinée par catégories (Voir un exemple sur le [[site de Jed|http://inmysocks.tiddlyspot.com/#Change%20Log]]). *Cliquer sur le titre d'une catégorie referme son contenu. *Cliquer sur l'icône {{$:/core/images/info-button}} procure des informations complémentaires sur la tâche en cours. *La case à cocher indique une tâche achevée. *Le bouton {{$:/core/images/edit-button}} permet d'éditer une tâche. *Le bouton {{$:/core/images/cancel-button}} supprime la tâche de la liste, dans le cas ou une liste de tâches est utilisée. !!Fonctionnalités *Listes indépendantes multiples possibles en changeant les paramètres de `Tag` et `FinishedTag`. *Liste de tâches ou d'événements *Catégories repliables *Fonction étendre/replier tout *Recherche par titre *Recherche par catégorie *Recherche par tag *Interface de création d'une tâche *Ôter les entrées anciennes (par suppression du tag affecté à une tâche apparaissant dans la liste, le tiddler n'est pas supprimé) *Date de création d'une tâche(*) *Date à laquelle une tâche doit débuter. *Date à laquelle une tâche doit être finalisée(*) <div class="column col-sm-12"> <div class="toast toast-error"> (*)Pour l'heure ces informations ne sont pas utilisées dans les listes et devront faire l'objet d'une intégration avec le [[plugin Calendar|http://inmysocks.tiddlyspot.com/#Calendar%20Plugin]] de telle sorte que les tâches de la liste apparaisse également sur le calendrier. ([[Voir aussi son fonctionnement sur ce wiki|CalendarThing]]) </div> </div> !!Fonctionnalités futures : *Ajout d'options de tri *Proposer des types de listes supplémentaires (affichage des options différent uniquement) *Recherche destâches par date de création, date de début et date de fin. *Déclarer l'accomplissement d'une tâche lorsque sa date d'achèvement est dépassée. *(possibly) allow an infinite number of nested categories, this may not be practical !!Utilisation : ``` <<CategoryList Tag:"Task" FinishedTag:"Done" ListType:"Task" ShowAddItem:"True" ShowSearch:"True" ShowFinished:"True">> ``` !!Paramètres : <table class="table table-striped table-hover"> <thead> <tr> <th>Nom</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td>Tag</td> <td>Le tag indiquant qu'un tiddler doit apparaître dans la liste (par défaut: "Task")</td> </tr> <tr> <td>~FinishedTag</td> <td>Le tag à ajouter lorsqu'une tâche est terminée (par défaut: "Done")</td> </tr> <tr> <td>~ListType</td> <td>Le type de liste à créer; les deux options possibles sont "Task" (par défaut) et "Event".</td> </tr> <tr> <td>~ShowAddItem</td> <td>Pour toute autre valeur que `True` le bouton `New Task` ne sera pas présent. (par défaut: True)</td> </tr> <tr> <td>~ShowSearch</td> <td>Pour toute autre valeur que `True` l'interface de recherche ne sera pas présente. (par défaut: True)</td> </tr> <tr> <td>~ShowFinished</td> <td>Pour toute autre valeur que `True` la case à cocher indiquant une tâche/événement achevés ne sera pas visible. (par défau: True)</td> </tr> </tbody> </table> !!Notes: Si le seul besoin est d'obtenir une liste unique de tâches n'utilisant que les seules balises `Task` et `Done`, il suffit d'utiliser la macro `<<CategoryList>>`. Vous pouvez également disposer d'une autre liste, indépendante de la première en changeant les paramètres `<<CategoryList Tag:"School Task">>` par exemple. Vous pouvez avoir autant de listes que vous le souhaitez en changeant simplement le tag `TaskTag`, et optionnellement également le tag `FinishedTag`. Par exemple : ``` <<CategoryList Tag:"Planned Update" FinishedTag:"Change Log">> ``` !!Création des catégories *La création d'une catégorie s'effectue via le tiddler [[Make Entry|$:/plugins/inmysocks/CategoryLists/Make Entry]] *Liste vide => Aucune catégorie n'a encore été créée. *Avant de pouvoir créer une sous-catégorie, il faut avoir préalablement créé au moins une catégorie en cliquant sur le bouton "New Category". *Dès qu'une première catégorie est créée, une nouvelle ligne "Sub Category" est proposée, adjointe d'un bouton "New Sub Category", avec lequel en créer une nouvelle et ensuite de nouvelles. *Avant de pouvoir créer une sous-sous catégorie, il faut avoir préalablement créé au moins une sous-catégorie. *Dès qu'une première Sous Catégorie est créée, une nouvelle ligne "Sub Sub Category" est proposée, adjointe d'un bouton "New Sub Sub Category" avec lequel en créer une nouvelle et ensuite de nouvelles. <blockquote> Sur ce wiki, les catégories utilisées suivent les natures de paramètres listées dans le bouton PARAM de la SideBar : NavBar, LeftBar,SideBar, Interface, Tiddlers, Menus, Templates, <cite>- Suivant besoin</cite> </blockquote>
<$checkbox tag="done"> <$link to={{!!title}}><$view field="title"/></$link></$checkbox>
<div class="tiddler-link"> <$link to=<<currentTiddler>>><$view field=title/></$link> </div> <style> .tiddler-link{ float:right; clear:both; } .tiddler-link a { color:#eee; } .tiddler-link a:hover { color:#bbb; } </style
Tobias Beer
Installer le plugin de langue française
Dictionnaire technique français - anglais. 1 milliard de traductions classées par domaine d'activité en 28 langues
#Allez sur le site officiel : https://tiddlywiki.com/ #Sur la page, descendez jusqu'au Tiddler "GettingStarted" puis cliquez sur le bouton vert `Download Empty` #Le fichier téléchargé se somme `empty.html`. Enregistrez le à l'endroit duquel vous souhaitez ensuite l'utiliser. #Ce peut être sur votre disque dur, sur un disque externe ou sur une clef USB. TiddlyWiki est un simle fichier HTML doté de tous les éléments permettant un fonctionnement totalement autonome. Une fois enregistré, vous n'avez plus besoin d'être connecté à l'internet pour le faire fonctionner. #Vous pouvez renommer `empty.html` par un nom plus parlant, mais veillez à conserver l'extention `.html` #Voilà. Vous êtes prêt à entrer dans le monde TiddlyWiki!
`{{Un tag||$:/core/ui/TagTemplate}}` ;Soit: {{Un tag||$:/core/ui/TagTemplate}} Et le code du template : `$:/core/ui/TagTemplate` {{$:/core/ui/TagTemplate||code}}
<<currentTiddler>> — <<var1>> — <<var2>>
{{TemplateButtonMacro||caption}}
Utiliser un template via un bouton déclencheur est un moyen pratique d'utiliser les templates. Ceci fait un bouton qui va créer un nouveau tiddler. Si vous changez le titre du tiddler `TiddlerTopicTemplate` par le titre du template que vous voulez créer, le nouveau tiddler sera configuré en fonction de ce template. Modifiez le contenu de ce template et vous obtenez un nouveau template prêt à l'emploi. Un simple bouton tel que celui-ci suffit. ``` <$button message="tm-new-tiddler" param="TiddlerTopicTemplate">Nouveau Tiddler</$button> ``` <$button message="tm-new-tiddler" param="TiddlerTopicTemplate">Nouveau Tiddler</$button> Voyez le contenu du tiddler template [[TiddlerTopicTemplate]] et observez son contenu : <pre> <$view tiddler='TiddlerTopicTemplate' field='text'/> </pre> ;Soit: <<bottomOfTiddler {{!!title}}>>
{{Templates||caption}}
<div class="column col-sm-12"> <div class="toast toast-error"> À Rédiger </div> </div> Les templates ne sont pas un type particulier de tiddler mais plutôt des tiddlers ayant un rôle pour fonction.
Un tiddler gabarit n'est pas vraiment un type de tiddler, c'est un rôle dans lequel un tiddler peut être utilisé. Les gabarits sont un moyen de réutiliser différentes portions de [[WikiTexte|WikiText]]. Transclure par un gabarit étend les fonctionnalités de base de la [[Transclusion]] en combinant deux tiddlers<<:>> * Un tiddler gabarit contenant le ~WikiTexte à afficher. Il peut contenir des transclusions se référant aux champs du [[tiddler en cours|Current Tiddler]] * Un tiddler cible qui indique quel tiddler sera considéré comme en cours lors des calculs de références des champs Le meilleur exemple de modélisation est le flux principal des tiddlers ouverts de ~TiddlyWiki. Chaque tiddler du déroulé principal est affiché via un Gabarit d'affichage (~ViewTemplate) qui spécifie le rendu de chaque champ. Voir la [[Transclusion par Gabarits|Transclusion with Templates]] pour plus de détails.
Dans TW5, les templates sont définis sous différents tiddlers : `$:/core/templates/` -> <http://tiddlywiki.com/empty.html#%24%3A%2Fcore%2Ftemplates%2Falltiddlers.content>. Those are just plain tiddlers. Nothing special. Then there are templates under `$:/core/ui/` -> <http://tiddlywiki.com/empty.html#%24%3A%2Fcore%2Fui%2FEditTemplate> like the ~ViewTemplate/body which only have a special tag. And then there are the tiddlers ("skeleton tiddlers") whch can be used with the `<$button>` widget to fill a new tiddler with content. This can be any tiddler.
``` {{MyTiddler}} ``` Double curly brackets indicate a transclusion. (the contents of another tiddler are brought in here) 3 curly braces surrounding this: ``` {{{ 2018-10-04 || DailyTiddler }}} ``` I think that's wrong, or unnecessary. Three curly braces indicates that a filter notation is inside the brackets that will be converted into a list of matching tiddler titles. two angle braces surrounding this: ``` <<list-links filter:"[tags[]prefix[20]]">> ``` Two angle braces indicate a macro or a variable (they're actually the same thing, internally). and only one angle brace in front of $X here: ``` <$set name=dateToday value=<<currentTiddler>>> <$list filter="[tag<dateToday>]"> <h2><$link><$transclude field="title" mode="block"/></$link></h2> <$transclude mode="block"/> </$list> <$set> ``` The tags with `<$` are like HTML tags, only with superpowers. They're called widgets. You can look up the documentation for most of them by appending the word "widget" to the keyword. e.g., Searching for "listwidget" will find documentation for the `<$list>` widget. Most of the things I described for `{{`, `{{{`, and `<<` brackets are actually just wikitext short-hand for widgets that get called to do the actual work. [ ] Cet article reste à traduire
@@.doublespacedlist # <ref01>Avec ~TiddlyWiki, vous pouvez organiser vos notes selon vos préférences, pas selon celle des autres. Vos notes se conforment à votre façon de penser et personne ne vous impose une hiérarchie prédéfinie de carnets de notes ou d'onglets. </ref01> # L'approche non-linéaire de TiddlyWiki vous donnera l'occasion de penser à vos informations d'une façon effectivement nouvelle et utile. # Retrouver ses notes dans TiddlyWiki est ultra-rapide. # Il existe de nombreux moyens de personnaliser et d'adapter tous les aspects de TiddlyWiki. # TiddlyWiki est libre et gratuit, et compatible avec toutes les plates-formes. N'importe quel navigateur web pourra l'ouvrir. Pour l'utiliser, il n'est pas nécessaire d'acquérir une application coûteuse, ni de payer un abonnement. # Les fichiers TiddlyWiki facilitent le partage d'informations. Il existe une multitude de manières de partager vos informations depuis TiddlyWiki. # Avec TiddlyWiki, vos informations vous appartiennent, et vous les stockez où vous voulez — sur notre appareil, sur une clé USB, dans Dropbox, sur votre serveur. # TiddlyWiki propose un nombre toujours croissant de plugins, thèmes, widgets, et langages. # La communauté en ligne de TiddlyWiki est bienveillante, et fera de son mieux pour vous apporter l'aide dont vous avez besoin. # Si vous êtes programmeur, vous trouverez encore plus de façons de faire joujou avec TiddlyWiki. Avec TiddlyWiki, plus on en sait, plus on s'amuse. @@ [[Voir la version originale de ce texte [en]|Ten reasons to switch to TiddlyWiki.]]
Ten sodas are worth ${{!!value}}
\define myTitle() $(p1)$ $(p2)$ \define bouton(par1) <$vars p1=$par1$ p2={{!!title}}> <$button class="tc-btn-visible">{{$:/core/images/new-button}} <$view field="title"/> <$action-sendmessage $message="tm-new-tiddler" created-at=< < currentTiddler > > title= < < myTitle > > tags={{!!title}} text={{!!title}} /> <$action-setfield $tiddler="$:/temp/tag-title" $value=""/> </$button> </$vars> \end <$macrocall $name=“bouton” par1={{!!field1}} par2={{!!field2}}/> <$list filter="[tag[tags]]"> <<bouton "Nouveau ">> </$list> <$button>Créer un nouveau tag <$action-sendmessage $message="tm-new-tiddler" title="Nouveau tag" tags="tags" text='<$transclude tiddler="Liste de tags trié alphabétiquement"/>'> </$button>
\define test-macro(title) <$select tiddler="""$title$""" field="filter-field"> <option value="ExtendedBrain">All</option> <option value="ExtendedBrainButton">ExtendedBrainButton</option> <option value="ExtendedBrainHeadTemplate">ExtendedBrainHeadTemplate</option> </$select> {{$title$||table-template}} \end
Plus de 1.5 secondes est considéré comme lent. ~PingDom effectue les tests à la volée. vous devez choisir la provenance du test et choisir le serveur le plus près de votre hébergement (dans la liste fournie par l'application). Les résultats indiquent: *👉Le niveau de performance *👉La taille de votre page TiddlyWiki *👉Le temps de chargement (en secondes) *👉Le nombre de requêtes
Cette récapitulation est basée sur les excellent posts de [[Jed Carty|https://groups.google.com/d/msg/tiddlywiki/_x9CDAFtwQc/XKGuffTkLVwJ]] et de [[Danielo Rodrigues|https://groups.google.com/d/msg/tiddlywiki/1BjhyWKpTgg/b4mFt4CqYt4J]] concernant l'utilisation des variables et des paramètres. Voir aussi: * [[Variables vs. Paramètres|http://tb5.tiddlyspot.com/#Variables%20vs.%20Parameters]] — concis et faciles à lire. * [[Variables dans les listes imbriquées|http://tb5.tiddlyspot.com/#Variables%20In%20Nested%20Lists]] * [[Passer des paramètres à une transclusionTransclusion|http://tb5.tiddlyspot.com/#Passing%20Parameters%20To%20A%20Transclusion]] <br> !Defining Variables !! `<$set>` Set variables inside or outside a macro: ``` <$set name='var' value='foo'> <<var>> "<<var>>" </$set> ``` <<< <$set name='var' value='foo'> <<var>> "<<var>>" </$set> <<< <br> When the value is set as a filter it can be used as a filter: ``` <$set name="var" value="[all[missing]]"> <$list filter=<<var>>/> </$set> ``` <<< <$set name="var" value="[all[missing]]"> <$list filter=<<var>>/> </$set> <<< <br> !! `<$list>` `<<currentTiddler>>` inside the list will be the item! ``` <$list filter="[tag[Foo]]"> "<<currentTiddler>>" </$list> ``` <<< <$list filter="[tag[Foo]]"> "<<currentTiddler>>" </$list> <<< <br> On the other hand, the parameter `variable` sets a variable at each iteration to the current list item: ``` Parent / Item...<br> <$list filter="[tag[Foo]]" variable="myItem"> <<currentTiddler>> / <<myItem>><br> </$list> ``` <<< Parent / Item...<br> <$list filter="[tag[Foo]]" variable="myItem"> <<currentTiddler>> / <<myItem>><br> </$list> <<< <br> !Using Variables And Macro Parameters !!`<<var>>` a [[variable|http://tiddlywiki.com/#Variables]] acting the same inside a macro as outside ;~~`$var$`~~ and ~~`"$var$"`~~ :with ''var'' being an actual variable, these are @@ciolor:red; just strings@@ :no substitution will take place, inside or outside a macro <br> !!`$param$` As macro parameters, both `$param$` and `"$param$"` are substituted fine! Using <<source MacroTest>> With... ``` <$set name='var' value={{!!title}}> <<test GettingStarted>> </$set> ``` <<< <$set name='var' value={{!!title}}> <<test GettingStarted>> </$set> <<< ''Note:'' `<<test "<<var>>">>` does @@color:red; NOT@@ work! <br> !! `$(var)$` to reference variables when calling another macro from within a macro Using <<source MacroLink>> With: ``` <$set name="var" value="Foo">> <<doLink>> </$set> ``` <<< <$set name="var" value="Foo">> <<doLink>> </$set> <<< ;~~`[tag[$(var)$]]`~~ :used as a filter, gives tiddlers tagged `$(var)$` @@color:red; ...without any substitution!@@ <br> !!`{{!!field}}` Using transcluded parameters can be tricky. For example, trying to use <<source MacroLink>> @@color:red; Fails with:@@ ``` <<link {{!!title}}>> ``` <<< <<link {{!!title}}>> <<< Instead, use the `$macrocall` widget, paying attention with the variable ''__$__''name: ``` <$macrocall $name="link" tiddler={{!!title}}/> ``` <<< <$macrocall $name="link" tiddler={{!!title}}/> <<< Quotes around the transcluded parameter @@color:red; will fail, too!@@ ``` <$macrocall $name="link" tiddler="{{!!title}}"/> ``` <<< <$macrocall $name="link" tiddler="{{!!title}}"/> <<< <br> !!``<var>`` Does __only__ work as a __filter variable__, inside or outside a macro: ``` <$set name='var' value='Foo'> <$list filter='[tag<var>]'/> </$set> ``` <<< <$set name='var' value='Foo'> <$list filter='[tag<var>]'/> </$set> <<< Example for using `<var>` inside <<source MacroTaggingByVar>> With... ``` <$set name='var' value='Foo'> <<taggingByVar>> </$set> ``` <<< <$set name='var' value='Foo'> <<taggingByVar>> </$set> <<< ''@@color:red; Important:@@'' Make sure not to enclose `<var>` in angle brackets: ~~`[tag[<var>]]`~~! Otherwise... ;~~`<var>`~~ :__in wikitext__ is parsed as any other html tag, so it's @@color:red; not a valid variable@@ ;~~`"<var>"`~~ :is the same as putting quotes around any tag where it displays quotes ;~~`[[<var>]]`~~ :treated as a string, so it creates a link to `[[<var>]]` <br> !! @@color:green; Good luck now!@@
Ce tiddler est réservé aux tests de ce nouveau plugin de commentaires. Vous pouvez le tester avec moi en postant un petit message ? Merci.
Deux méthodes différentes pour réaliser les [[effets de présentation de type FAQ|TextSliderDoc]] *La première utilise la ''macro'' [[Text slider|$:/macros/svink/textSlider]] *La seconde utilise le ''plugin'' [[Details Widget|$:/plugins/telmiger/details]] ([[Voir explications et exemples|Le plugin Details Widget]]) Voir aussi : [[reveal widget vs detailsWidget plugin]]
!Donnez des couleurs à vos titres ``` <span class="h4">h4 texte brut</span> <span class="h4 text-primary">h4 text-primary</span> <span class="h4 text-secondary">h4 text-secondary</span> <span class="h4">h4 texte brut</span> <span class="h4 text-success">h4 text-success</span> <span class="h4 text-warning">h4 text-warning</span> <span class="h4 text-error">h4 text-error</span> ``` <span class="h4">h4 texte brut</span> <span class="h4 text-primary">h4 text-primary</span> <span class="h4 text-secondary">h4 text-secondary</span> <span class="h4">h4 texte brut</span> <span class="h4 text-success">h4 text-success</span> <span class="h4 text-warning">h4 text-warning</span> <span class="h4 text-error">h4 text-error</span> !Alignements ``` <div class="text-left">Texte aligné à gauche</div> <div class="text-center">Texte aligné au centre</div> <div class="text-right">Texte aligné à droite</div> <div class="text-justify">Texte justifié : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus.</div> ``` <div class="text-left">''Texte aligné à gauche''</div> <div class="text-center">''Texte aligné au centre''</div> <div class="text-right">''Texte aligné à droite''</div> <div class="text-justify">''Texte justifié'' : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus.</div> !Minuscules, Majuscules, 1ere lettre en capitale ``` <div class="text-lowercase">Texte lettres minuscules</div> <div class="text-uppercase">Texte lettres en capitale</div> <div class="text-capitalize">texte premières lettres en capitale</div> ``` <div class="text-lowercase">Texte lettres minuscules</div> <div class="text-uppercase">Texte lettres en capitale</div> <div class="text-capitalize">texte premières lettres en capitale</div> <!-- Normal weight text --> <div class="text-normal"></div> <!-- Bold text --> <div class="text-bold"></div> <!-- Italicized text --> <div class="text-italic"></div> <!-- Larger text (120%) --> <div class="text-large"></div> !Normal, Gras, Italique et Texte large ``` <div class="text-normal">Texte normal</div> <div class="text-bold">Texte en gras</div> <div class="text-italic">Texte en italiques</div> <div class="text-large">Texte à écartement large (120%)</div> ``` <div class="text-normal">Texte normal</div> <div class="text-bold">Texte en gras</div> <div class="text-italic">Texte en italiques</div> <div class="text-large">Texte à écartement large (120%)</div> !Ruptures ``` <div class="text-ellipsis">Texte tronqué en fin de ligne par points de suspention : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. </div> <div class="text-clip">Texte tronqué en fin de ligne : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. </div> <div class="text-break">Le texte peut être cassé à des points arbitrairement choisis : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. </div> ``` <div class="text-ellipsis">Texte tronqué en fin de ligne par points de suspention : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. </div> <div class="text-clip">Texte tronqué en fin de ligne : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. </div> <div class="text-break">Le texte peut être cassé à des points arbitrairement choisis : Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sollicitudin at enim non gravida. Donec feugiat, lorem pretium blandit commodo, eros nunc condimentum ex, fringilla efficitur urna ligula non tellus. Donec nec lectus sed metus auctor dapibus. Quisque nulla sapien, dictum non enim in, suscipit facilisis lacus. </div>
Create a document by slicing an existing tiddler
<style> .animation-container { height: 60px; padding: 10px; /* Shorthand syntax */ -webkit-animation: movearound 4s ease 1 normal; } @-webkit-keyframes movearound { 0% { width: 200px; background: #f00; opacity: 0.5; -webkit-transform: scale(0.5) rotate(15deg); } 30% { width: 300px; background: #f00; opacity: 1; -webkit-transform: scale(1.3) rotate(15deg); } 60% { width: 100px; background: #00f; opacity: 0.3; -webkit-transform: scale(0.3) rotate(15deg); } 100% { width: 400px; background: #ffffa2; opacity: 0.5; -webkit-transform: scale(1) rotate(0deg); } } </style> <div class="animation-container"> Found this [[here|http://robertnyman.com/css3/css-animations/css-animations-percentage.html]]. Maybe useful for a logo? </div>
``` @@.tc-tiddler-frame @@width:200px;height:50px; tc-tiddler-frame @@ ``` @@.tc-tiddler-frame @@width:200px;height:50px; tc-tiddler-frame @@
Remarque: on peut aussi nommer les couleurs: ``` @@color:yellow;Exemple de texte en jaune@@ ``` @@color:yellow;Exemple de texte en jaune@@ ``` @@color:#339900;Exemple de texte en vert@@ ``` @@color:#339900;Exemple de texte en vert@@. ``` @@color:#0197fd;Exemple de texte en bleu@@ ``` @@color:#0197fd;Exemple de texte en bleu@@ ``` @@color:#f44800;Exemple de texte en orange@@ ``` @@color:#f44800;Exemple de texte en orange@@ ``` @@color:#d40000;Exemple de texte en rouge@@ ``` @@color:#d40000;Exemple de texte en rouge@@ ``` @@color:#888;Exemple de texte en gris@@ ``` @@color:#888;Exemple de texte en gris@@ @@.tc-tiddler-frame @@width:200px;height:50px; tc-tiddler-frame @@
Une [[RéférenceTexte|TextReference]] identifie le bloc de texte d'un tiddler qui peut être récupéré ou modifié selon le contexte. Les références texte sont composées de multiple parties, dont plusieurs peuvent être optionnelles<<:>> * `tiddlerTitle` - Le [[champ|TiddlerFields]] texte d'un tiddler spécifié * `tiddlerTitle!!field` - un [[champ de tiddler|TiddlerFields]] (eg, `modified`, `modifier`, `type` etc) * `!!field` - un [[champ|TiddlerFields]] du tiddler en cours * `tiddlerTitle##propertyIndex` - extrait la propriété nommée d'un [[Tiddler Data|DataTiddlers]] Les références texte peuvent être utilisées à plusieurs endroits<<:>> * Comme paramètres indirects dans les [[Filtres]] (eg, `<$list filter="[tag{MonTag!!nom}]"/>`) * Comme attributs indirects d'un élément ou d'un widget (eg, `<$widget attrib={{Title!!description}}/>`) * comme l'opérateur d'une transclusion (eg, `{{MyTiddler!!title}}`) * Comme attribut `state` du RevealWidget et du ~LinkCatcherWidget
{{TextSlider||caption}}
<div class="note">Déprécié. Utiliser plutôt le plugin widget [[Detail|$:/plugins/telmiger/details]]</div> On utilise la macro $:/macros/svink/textSlider `<<textSlider "Question ?" " Réponse ">>` Soit: <<textSlider "Question ?" " Réponse ">> Implémentation également intéressanre sur des textes longs ou techniques dont certaines parties peuvent être accessibles seulement si le lecteur le souhaite. Le texte global en est d'autant allégé. Voir aussi [[SubStories]] <div class="attention">Attention: Dans le cas ou le contenu se trouvant à l'intérieur des balises `<<textSlider "Texte" "` et `">>` est la transclusion d'un tiddler `{{Tiddler}}`, le titre du tiddler transclus ne doit comporter aucun espace. Si tel est le cas, la macro $:/macros/svink/textSlider ne fonctionne plus.</div>
`<<textSlider "Question ?" " Réponse ">>` Soit: <<textSlider "Question ?" " Réponse ">>
{{TFooter||caption}}
> PMario le 30/03/2016 https://groups.google.com/d/msg/tiddlywiki/Q5OJ2KllSUw/g5NNO2B9CgAJ # Créer un tiddler TiddlerFooter avec le tag `$:/tags/ViewTemplate` #*Copier/coller le contenu : `<$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[TiddlerFooter]!has[draft.of]]" default="TiddlerFooterReferences"/>` #Cloner le tiddler $:/core/ui/TiddlerInfo/References #Le nommer TiddlerFooterReferences, enlever le tag existant et ajouter le tag `TiddlerFooter` Si on souhaite masquer le contenu, on peut utiliser [ext[RevealWidget|http://tiddlywiki.com/#RevealWidget]] pour avoir un bouton. Dans cet exemple j'utilise le //Slider//. Enfin, avec un filtre on peut choisir un tag spécifique où ce contenu doit s'afficher, ici en [[exemple|Exemple]]. sur les tiddlers avec le tag Info.
! Introduction A number of extended filters are necessary to manipulate lists. The first set of filters are designed to move items from the tail of the list and insert them at specified locations in the list. Items are often appended to the list before using these filters. In general, these filters accept a suffix specifying the number of items to move (default to 1.) A second set of filters are designed to either add or remove from the list, a selected range of items from an array. These filters are best used with a reference to an array, stored in a field or data index elsewhere in the wiki (they may be used with a simple list of items, provided the items do not include white space.) In general, these filters accept a suffix specifying the number of items to move (default to All.) ! Examples In this example we shall populate the '~DataIndex' index of the tiddler '~MyData' with the names of the days of the week, then clear this list. <$macrocall $name='wikitext-example-without-html' src="""<$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[list[Days of the Week]]"/> Get days-of-the-week </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]"/> Clear </$button> {{ListopsData}}"""/> --- In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to insert items before and after a marker item (Wednesday) that are first appended to the list. <$macrocall $name='wikitext-example-without-html' src="""<$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="one two +[putbefore:2[Wednesday]]"/> Put 2 Items Before Wednesday </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="four five +[putafter:2[Wednesday]] three +[putbefore[Wednesday]]"/> Put One Item Before & Two Items After Wednesday </$button> {{ListopsData}}"""/> --- In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to replace the marker item (Wednesday) with items which are first appended to the list. We shall then move 3 items to the head of the list which have first been appended to the list from referenced fields. <$macrocall $name='wikitext-example-without-html' src="""<$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[[---o]] [[o---]] +[replace:2{!!marker}]"/> Replace '!!marker' with 2 Items </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="[{!!item1}] [{!!item2}] [{!!item3}] +[putfirst:3[]]"/> Put 3 Items First </$button> {{ListopsData}}"""/> --- In this example we shall slice the populated list from the 'DaysOfTheWeek' index of the tiddler '~MyData' in order to append to the truncated list, items from a referenced field. We shall then remove the first two of the items added. <$macrocall $name='wikitext-example-without-html' src="""|list: |<$view field="list"/> | <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[allbefore:include[Wednesday]] +[prepend{!!list}]"/> Prepend '!!list' to items before 'Wednesday' </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[remove:2{!!list}]"/> Remove first two items in '!!list' from current list </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!remove:1{!!list}]"/> Remove last item in '!!list' from current list </$button> {{ListopsData}}"""/> --- In this example we shall populate the list with numbers, then move items one by one from the head to the tail and from the tail to the head (best seen by clicking the lower buttons several times.) This example illustrates that the append[] and prepend[] operators do not enforce unique instances of an item and that, with the next run, any duplicates are removed. <$macrocall $name='wikitext-example-without-html' src="""<$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $filter="[[]]" $subfilter="+[append:3{!!numbers}]"/> Setup some numbers </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[!append:6{!!numbers}]"/> Append more numbers </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putfirst:2[]]"/> Move last 2 items to the head </$button> <$button> <$action-listops $tiddler="ListopsData" $index="DataIndex" $subfilter="+[putlast[]]"/> Move the head to the last item </$button> {{ListopsData}}"""/>
Il y a deux adresses qui regroupent les discussions sur le groupe de discussion Google dédié https://tiddlywiki.narkive.com/ : :👉TiddlyWiki Mail Archive: https://www.mail-archive.com/tiddlywiki@googlegroups.com/ :👉TiddlyWiki Dev Archive: https://www.mail-archive.com/tiddlywikidev@googlegroups.com/
!! Info * Proposal to make the new "tree" macro global so anyone can use it (see the example below). !! Modifications * Making the "tree" macro global by labeling it with the <<tag "$:/tags/Macro">> system tag. * The root element is now dynamic showing the current (user selected) prefix (tree root) for easier visual recomposing the original tiddler name. !! Code source * Global "tree" macro -- [[$:/_morosanuae/core/macros/tree]] * Core explore tab (example) -- [[$:/_morosanuae/core/ui/MoreSideBar/core-explorer]] !! En pratique ;Core explorer ``` <<tree "$:/core/">> ``` ;Soit : * {{$:/_morosanuae/core/ui/MoreSideBar/core-explorer}} <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Liens Utiles"></li> <li class="menu-item">$:/core/macros/tree</li> </ul> </div>
The tiddlyCounter plugin is a general purpose Tally Counter built on top of tiddlywiki. Attention: ce plugin n'est pas un compteur de visites, mais un compteur manuel qui permet de compter par exemple les visiteurs entrant dans un magasin. Trois compteurs s'incrémentent à chaque fois que l'on clique dessus. Une application possible serait par exemple de laisser un visiteur de wotre wiki cliquer sur un bouton qui exprimerait sa satisfaction (ou pas) d'un article lu sur votre wiki. Je pense d'ailleurs que ce genre de plugin doit en ait déjà exister.
Par JD Les menus de la ~SideBar sont intéressants avec la possibilité via les icônes de les visualiser ou de les ouvrir dans la story river et de pouvoir les ôter avec l’icône "retirer de la sidebar" Il y a dans ce thème plein d'autre gourmandises bien intéressantes!
Voici une liste de thèmes spécifiquement réalisés pour TiddlyWiki |Mono|JD|http://j.d.mono.tiddlyspot.com/| |Spartan|JD|http://j.d.spartan.tiddlyspot.com/| |Search|JD|http://j.d.search.tiddlyspot.com/| |Material|JD|http://j.d.material.tiddlyspot.com/| |Moments|Riz|http://tesseractmoments.surge.sh/| |~GhostWriter|Riz|https://ibnishak.github.io/ghostwriter/|
Tiddlers are the fundamental units of information in TiddlyWiki. Tiddlers work best when they are as small as possible so that they can be reused by weaving them together in different ways. A "tiddler" is an informal British word meaning a small fish, typically a stickleback or a minnow. Other systems have analogous concepts with generic names like "items", "entries", "entities", "nodes" or "records". TiddlyWiki takes the view that it is better to be confusingly distinctive than confusingly generic. Internally, tiddlers are a list of uniquely named values called fields. The only field that is required is the `title` field, but useful tiddlers also have a `text` field, and some or all of the standard fields listed in TiddlerFields. Tiddlers are ubiquitous in TiddlyWiki. They are used to store everything from JavaScript code modules to the settings and state associated with the user interface.
Mohammad *Rename tiddlers *use a totally new name *add a suffix/prefix to title *add prefix to title *replace part of title *add ordinal number to title *Copy tiddlers (make duplicates) *Add/remove tag or any field *Change/replace the content of any field *Create empty bulk tiddlers (for lecture or slideshow) having common properties (tag, field, part of text,...) *Capability to undo the operation at least one step *Capability to get the user confirmation before doing the operation
!!{{!!caption}} `[tag[Complet]!tag[Végétarien]cuisson[Four]]` Rendu : ``` <$list filter="[tag[Complet]!tag[Végétarien]cuisson[Four]]"> </$list> ``` ; Soit: <<< <$list filter="[tag[Complet]!tag[Végétarien]cuisson[Four]]"> </$list> <<< Notez comment la totalité de la séquence est contenue dans une seule paire de crochets: `<$list filter="[...]">` Un tiddler doit suivre toutes les étapes de la séquence. L'exemple ci-dessus affiche les bénéficiaires de ''repas complèts (autre que le régime Végétarien) ayant cuisson au Four''. I et L reçoivent des repas complets cuits au four. Si l'on retire la typologie Végétarien, il ne reste que I dans la liste.
Suivant la [[Philosophie des tiddlers|Philosophy of Tiddlers]], la documentation des tiddlers est typiquement courte et interconnectée. Quand un tiddler semble nécessiter des subdivisions, c'est souvent le signe qu'il devrait être fractionné en plusieurs tiddlers. Mais il est raisonnable pour un [[tiddler de référence|Reference Tiddlers]] de se décomposer en une section d'introduction non titrée, suivie d'une section titrée pour les détails. La cohérence de la terminologie est essentielle pour éviter la confusion du lecteur. La cohérence de la typographie et de la ponctuation offrent une qualité professionnelle à la documentation. Les macros peuvent participer à l'amélioration de la cohérence du texte et de sa maintenabilité . Utilisez les listes numérotées pour les instructions pas-à-pas, et les puces pour les listes dont l'ordre est arbitraire. Utilisez une liste de définitions de préférence à une liste à puces si chaque élément de la liste débute par un terme suivi d'une virgule. Autant que possible, évitez de surcharger le lecteur avec une liste hiérarchisée. Utilisez une table lorsque l'information se divise naturellement en trois colonnes ou plus, ainsi que pour les listes de paramètres, d'attributs, etc., au sein des [[tiddlers de référence|Reference Tiddlers]]. La documentation reflète la réalité actuelle de ~TiddlyWiki. Elle évite les discussions sur ses aspirations.
!!{{!!caption}} Un bloc de séquences séparées sélectionne les tiddlers qui correspondent à toute séquence indiquée. Nous pouvons l'utiliser pour trouver les personnes dont le type de cuisson est soit à la vapeur, soit au four soit au Bain-Marie: `[cuisson[Vapeur]] [cuisson[Four]] [cuisson[BainMarie]]` Rendu : ``` <$list filter="[cuisson[Vapeur]] [cuisson[Four]] [cuisson[BainMarie]]"> </$list> ``` ; Soit: <<< <$list filter="[cuisson[Vapeur]] [cuisson[Four]] [cuisson[BainMarie]]"> </$list> <<< Ici encore 12 personnes sont listées puique quelque soit le type ou le régime chacun à droit à un type de cuisson, Vapeur, Bain-Marie ou Four.
!!{{!!caption}} Par défaut, chaque exécution considère chaque Tiddler du wiki. Mais nous pouvons utiliser un signe `+` pour forcer une exécution à considérer uniquement les tiddlers qui ont été sélectionnés par les exécutions précédentes. Par exemple: `[cuisson[Vapeur]] [cuisson[Four]] [cuisson[BainMarie]] +[tag[Viande]] +[sort[title]]` Rendu : ``` <$list filter="[cuisson[Vapeur]] [cuisson[Four]] [cuisson[BainMarie]] +[tag[Viande]] +[sort[title]]"> </$list> ``` ; Soit: <<< <$list filter="[cuisson[Vapeur]] [cuisson[Four]] [cuisson[BainMarie]] +[tag[Viande]] +[sort[title]]"> </$list> <<< <div class="note"> J'attendais ici plutôt: A, B, C, G, H, I, D, E, F, J, K, L </div> Ceci sélectionne les types de cuisson "Vapeur", "Four" et "Bain-Marie" puis les filtre de nouveau pour ne garder que concernant le régime avec viande. Tout ce qui n'est pas inclus dans cette sélection sera ensuite restitué par ordre alphabétique du titre.
!!{{!!caption}} Si l'on veut ignorer le régime Viande de la cuisson Four de l'exemple évoqué ci-dessus on peut écrires: `[cuisson[Vapeur]] [cuisson[Four]!tag[Viande]] [cuisson[BainMarie]]` Rendu : ``` <$list filter="[cuisson[Vapeur]] [cuisson[Four]!tag[Viande]] [cuisson[BainMarie]]"> </$list> ``` ; Soit: <<< <$list filter="[cuisson[Vapeur]] [cuisson[Four]!tag[Viande]] [cuisson[BainMarie]]"> </$list> <<< ''C et I sont sortis de la liste''.
!!{{!!caption}} De même peut-on utiliser le signe `-` pour ôter des tiddlers d'une étape précédente. Dans l'exemple suivant nous sélectionnons tous les tiddlers de typologie "Végétarien" desquels nous retirons deux pensionnaires, [[E]] et [[L]]: `[tag[Végétarien]] -[title[E]] -[[L]]` Rendu : ``` <$list filter="[tag[Végétarien]] -[title[E]] -[[L]]"> </$list> ``` ; Soit: <<< <$list filter="[tag[Végétarien]] -[title[E]] -[[L]]"> </$list> <<<
Ceci est le contenu du Tiddler A
Ceci est le contenu du Tiddler B
\define getTiddlerFields(tiddlerName) <$list filter="[[$tiddlerName$]fields[]] -text -modified -created -tags -title"><$view field="title"/> </$list> \end
{{TiddlerFieldMacro||caption}}
\define lingo-base() $:/language/Docs/Fields/ Les champs de tiddlers sont les couples ''nom:valeur'' qui constituent un [[tiddler|Tiddlers]]. Les noms de champ peuvent être composés de lettres minuscules non accentuées, chiffres, ou caractères `-` (tiret), `_` (souligné) et `.` (point). Les champs standard sont<<dp>> |!Nom du champ |!Référence |!Description | |`title` |TitleField |<<lingo title>> | |`text` |TextField |<<lingo text>> | |`modified` |ModifiedField |<<lingo modified>> | |`modifier` |ModifierField |<<lingo modifier>> | |`created` |CreatedField |<<lingo created>> | |`creator` |CreatorField |<<lingo creator>> | |`tags` |TagsField |<<lingo tags>> | |`type` |TypeField |<<lingo type>> | |`list` |ListField |<<lingo list>> | Les autres champs utilisés par le noyau sont<<dp>> |!Nom du champ |!Référence |!Description | |`color` |ColorField |<<lingo color>> | |`description` |DescriptionField |<<lingo description>> | |`draft.of` |DraftOfField |<<lingo draft.of>> | |`draft.title` |DraftTitleField |<<lingo draft.title>> | |`footer` |FooterField |<<lingo footer>> | |`library` |LibraryField |<<lingo library>> | |`name` |NameField |<<lingo name>> | |`plugin-priority` |PluginPriorityField |<<lingo plugin-priority>> | |`plugin-type` |PluginTypeField |<<lingo plugin-type>> | |`source` |SourceField |<<lingo source>> | |`subtitle` |SubtitleField |<<lingo subtitle>> | Le TiddlyWebAdaptor utilise quelques champs supplémentaires<<dp>> |!Nom du champ |!Référence |!Description | |`bag` |BagField |<<lingo bag>> | |`revision` |RevisionField |<<lingo revision>> | Voir l'onglet ''Avancé > Champs'' du [[panneau de contrôle|$:/ControlPanel]] pour des détails sur les champs utilisés dans ce wiki.
<$list filter="[is[current]tag[Info]]"> <$reveal type="nomatch" state="$:/state/SampleReveal2" text="show"> <$button set="$:/state/SampleReveal2" setTo="show">Références</$button> </$reveal> <$reveal type="match" state="$:/state/SampleReveal2" text="show"> <$button set="$:/state/SampleReveal2" setTo="hide">Masquer</$button> <$macrocall $name="tabs" tabsList="[all[shadows+tiddlers]tag[TiddlerFooter]!has[draft.of]]" default="TiddlerFooterReferences"/> </$reveal> </$list>
\define lingo-base() $:/language/TiddlerInfo/ <$list filter="[all[current]backlinks[]sort[title]]" emptyMessage=<<lingo References/Empty>> template="$:/core/ui/ListItemTemplate"> </$list>
Les liens sont des éléments d'un tiddler où cliquer engendre la navigation vers un tiddler différent. Le comportement d'une navigation est déterminé par le ~StoryView (la vue) en cours; par défaut, la vue classique de ~TiddlyWiki montre son déroulé comme une suite linéaire de tiddlers. Presser la touche ''control'' ou ''command'' en cliquant sur le lien d'un link ouvre le tiddler cible sans s'y déplacer. Cela peut-être un moyen pratique de dresser une suite de tiddlers à lire plus tard. Les liens sont utiles pour modéliser des relations organiques entre tiddlers, et notamment pour décrire les chemins de navigations entre tiddlers. Le [[panneau d'information|InfoPanel]] liste la provenance des liens vers un tiddler dans l'onglet ''References''. Les [[filtres|Filtres]] peuvent inclure les opérateur de filtrage suivant qui fonctionnent avec les liens : * `[links[]]` - renvoie les titres des tiddlers dont les liens proviennent de la sélection des tiddler(s) en cours * `[backlinks[]]` - renvoie les titres des tiddlers destination des liens des tiddler(s) en cours sélectionnés TiddlyWiki5 modifie l'apparence des liens des tiddlers pour donner plus d'informations sur la cible du lien : |!Description lien |!Affichage lien | |Vers tiddler existant |[[Ainsi|TiddlerLinks]] | |Vers tiddler inexistant |[[Ainsi|ATiddlerThatDoesntExist]] | |Vers tiddler shadow non remplacé |[[Ainsi|$:/core/copyright.txt]] | |Vers tiddler shadow remplacé par un tiddler ordinaire|[[Ainsi|$:/SiteTitle]] | Les liens externes sont affichés comme ceci<<:>> http://tiddlywiki.com/ ou [[comme ça|http://tiddlywiki.com/]].
Des combinaisons différentes pour obtenir le titre d'un tiddler en lien s'intégrant dans un template. <$link><$transclude field="title" mode="block"/></$link> et sans mode block : <$link>{{!!title}}</$link> Solution intégrée au template [[LienTiddler]]: <div align="right"><$link>{{!!caption}}</$link> (<$link>{{!!caption}}</$link>)</div> !!!{{!!caption}} <<okay_link>> --- <$view field="title"/> <<okay_link>> <$link>{{!!title}}</$link> Voir une solution différente dans [[$:/TemplateVoir]]
Les tiddlers de documentation sont spéciaux et sont traités de manière différente sur ce wiki. #la structure de leur titre est particulière $:/doc-user-xxx #Ce sont des tiddlers système #Il sont destinés à être supprimés en bloc par l'utilisateur (ou pas) #Ils constituent la documentation complète de la partie [[Paramètres]] de ce site, c'est à dire de tous les paramétrages non livrés en standard dans TW5. #Ce bloc Paramètres doit faire l'objet d'un plugin ultérieurement, lorsqu'il sera finalisé. #Sur le présent wiki, paramètres et documentation sont bien dans l'objectif premier qui est d'apprendre à se servir des possibilités de TW5.
Ce code montre les tiddlers non système, non-system label items modifiés sur ce wiki depuis le 11 décembre 2018: <$view tiddler="Code to split out filename" field=modified /> <$list filter="[all[tiddlers]!is[system]!tag[SystemTags]!sort[modified]]"> <$reveal type="lt" default="20181211214913228" text={{!!modified}}> <$view field="title"/> <br/> </$reveal> </$list>
I use filters and lists a lot, combined with tags, to generate lists of people, lists of abbreviations, even lists of lists. The problem (if you can call it that) is that if the only time a tiddler is referenced is as part of a filtered list, then it shows up as an orphan. For example, I use journals to take notes every day. I have a List of Journals, but that is generated, so my orphans list is full of journals. I could create a tiddler and just list all the journals, so they are statically referenced and no longer orphans, but that seem inelegant. Does anyone have any thoughts or suggestions about this? ``` <$list filter="[sort:count[tags]]"/> </$list> ``` <$details summary="Résultat"> <$list filter="[sort:count[tags]]"/> </$list> </$details> ``` <$list filter="[sort:count[taggin]]"/> </$list> ``` <$details summary="Résultat"> <$list filter="[sort:count[taggin]]"/> </$list> </$details> ``` <$list filter="[sort:count[references]]"/> </$list> ``` <$details summary="Résultat"> <$list filter="[sort:count[references]]"/> </$list> </$details> ``` <$list filter="[sort:count[backlinks]]"/> </$list> ``` <$details summary="Résultat"> <$list filter="[sort:count[backlinks]]"/> </$list> </$details>
<<list-links "[list[$:/StoryList!!list]]">> Voir aussi : [[Usage de currentTiddler et storyTiddler]]
;Comment lister tous les tiddlers shadow qui ont été modifiés : La barre de recherche avancée -> onglet Filter - Option "Les tiddlers shadow modifiés" propose directement cette liste. On peut aussi obtenir cette liste hors de la barre de recherche ainsi : ``` <$list filter="[is[shadow]]"> </$list> ``` ;Complément <<extract tiddler:"Page and tiddler layout customisation" start:"<extrait1>" end:"</extrait1>" limit:"no">> <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Pour aller plus loin..."></li> <li class="menu-item">[[Personnalisation poussée de la page et des tiddlers|Page and tiddler layout customisation]]</li> </ul> </div>
<<bottomOfTiddler {{!!title}}>>
Forme générale: ``` <<getTiddlerFields Nom-du-Tiddler>> ``` Exemple : ``` <<getTiddlerFields ValChamp2>> ``` ;Soit: <<getTiddlerFields ValChamp2>>
! Introduction The TiddlerWidget is used to set a value for the [[current tiddler|Current Tiddler]] variable, valid within the scope of the TiddlerWidget. ! Content and Attributes |!Attribute |!Description | |tiddler |The title of the tiddler to become the new [[current tiddler|Current Tiddler]] | ! CSS Class Variables The tiddler widget assigns several useful CSS classes to variables that it creates: ; missingTiddlerClass : `tc-tiddler-exists` or... : `tc-tiddler-missing` depending on whether the tiddler exists ;shadowTiddlerClass : `tc-tiddler-shadow` if the tiddler is a shadow tiddler ;systemTiddlerClass :` tc-tiddler-system` if the tiddler is a system tiddler ;tiddlerTagClasses : a space separated list of CSS classes named `tc-tagged-{tagname}`,<br>e.g. `tc-tagged-introduction`<br><br>''Note:'' tag names are URI encoded which means that the tag [[$:/tags/Macro]] appears as the CSS class `tc-tagged-%24%3A%2Ftags%2FMacro`. See [[How to apply custom styles by tag]] for more details You can use these variables like this: ``` <$tiddler tiddler="MyOtherTiddler"> <div class=<<missingTiddlerClass>>> <$transclude/> </div> </$tiddler> ``` See also [[$:/core/ui/ViewTemplate]].
http://tiddlyviewer.tiddlyspot.com/ for displaying external pages fully formatted Sur ce site: [[$:/plugins/ajh/tiddlyviewer]] Voir http://copy.tiddlyspot.com/ et http://t5a.tiddlyspot.com/#Tiddly%20Link%20Copy%20Button
Une introduction à TiddlyWiki
TiddlyOueb
{{TiddlyWiki||caption}}
A serchable index of community wikis
La traduction en Français (France) de TiddlyWiki démarre ici : *<i class="fa fa-arrow-right"></i> ''documentation'' : https://tiddlywiki.com/languages/fr-FR/index.html. C'est l'adresse officielle de la dernière traduction de la version en cours. *<i class="fa fa-arrow-right"></i> ''empty'' : https://tiddlywiki.com/languages/fr-FR/empty.html *<i class="fa fa-arrow-right"></i> ''Mise à jour des traductions'' : https://tiddlywiki.com/editions/translators/
<div class="att"> Cette application n'est pas installée sur ce wiki. Si vous souhaitez la mettre en place, allez sur le site source ci-dessus duquel vous importerez tous les tiddlers indiqués ci-dessous. Résumé : Voir [[TiddlyWiki for scholars (Source)]] </div> ;Il faut importer la totalité des tiddlers suivants: <$details summary="Tiddlers de base à importer"> ``` $:/_tw-scholars/button/note+ $:/_tw-scholars/colors [Tiddler supprimé] $:/_tw-scholars/ControlPanel $:/_tw-scholars/courses/agenda [Un calendrier complet de cours] $:/_tw-scholars/courses/agenda/data [Exemple de données du calendrier] $:/_tw-scholars/courses/list $:/_tw-scholars/courses/ressources $:/_tw-scholars/courses/students $:/_tw-scholars/css/buttons $:/_tw-scholars/css/image/logo $:/_tw-scholars/css/image/person $:/_tw-scholars/css/mytabs $:/_tw-scholars/css/SideBar $:/_tw-scholars/css/slider $:/_tw-scholars/css/subtitle $:/_tw-scholars/css/table/agenda $:/_tw-scholars/css/table/invisible $:/_tw-scholars/css/text/boxes $:/_tw-scholars/css/text/colonnes $:/_tw-scholars/css/text/course $:/_tw-scholars/css/text/grey $:/_tw-scholars/css/text/quotes $:/_tw-scholars/css/text/sidebar-menu $:/_tw-scholars/doc/howTo/add-locale $:/_tw-scholars/doc/howTo/add-tabs $:/_tw-scholars/doc/howTo/basic-use $:/_tw-scholars/doc/howTo/change title $:/_tw-scholars/doc/howTo/changeColor $:/_tw-scholars/doc/howTo/hideTabs $:/_tw-scholars/doc/howTo/installation $:/_tw-scholars/doc/howTo/newContentType $:/_tw-scholars/doc/internals/prefedinedTabs $:/_tw-scholars/doc/internals/systemTags $:/_tw-scholars/doc/internals/tabsBar $:/_tw-scholars/doc/languages $:/_tw-scholars/doc/macros $:/_tw-scholars/doc/macros/slider_accordion [Documentation obsolète] $:/_tw-scholars/doc/publicationsList $:/_tw-scholars/doc/subtitles $:/_tw-scholars/doc/TabsBar $:/_tw-scholars/doc/TagsBar $:/_tw-scholars/doc/ToC $:/_tw-scholars/macros/couleur $:/_tw-scholars/macros/journal $:/_tw-scholars/macros/language $:/_tw-scholars/macros/nestedslider $:/_tw-scholars/macros/newHere/note/button $:/_tw-scholars/macros/newHere/publication/button $:/_tw-scholars/macros/newHere/publication/table $:/_tw-scholars/macros/publicationsList $:/_tw-scholars/macros/SideBar/newConcept/button $:/_tw-scholars/macros/SideBar/newNote/button $:/_tw-scholars/macros/SideBar/newPerson/button $:/_tw-scholars/macros/SideBar/newTheory/button $:/_tw-scholars/macros/slider+accordion [À remplacer par Details] $:/_tw-scholars/macros/table $:/_tw-scholars/macros/tabs/tabCaption $:/_tw-scholars/macros/tabs/tabColor $:/_tw-scholars/macros/tabs/tabContents $:/_tw-scholars/macros/tabs/tabFilter $:/_tw-scholars/macros/tabs/tabSlider $:/_tw-scholars/macros/tabs/tabsList $:/_tw-scholars/newHere/chapter/button $:/_tw-scholars/newHere/chapter/table $:/_tw-scholars/newHere/journal/table $:/_tw-scholars/newHere/note/macro/table $:/_tw-scholars/newHere/publication $:/_tw-scholars/newHere/publication/article $:/_tw-scholars/newHere/publication/book $:/_tw-scholars/newHere/publication/macro/button/commonInfo $:/_tw-scholars/newHere/publication/macro/button/commonInfoEnd $:/_tw-scholars/newHere/publication/macro/button/pubInfo/article $:/_tw-scholars/newHere/publication/macro/button/pubInfo/book $:/_tw-scholars/newHere/publication/macro/button/pubInfoEnd/article $:/_tw-scholars/newHere/publication/macro/button/pubInfoEnd/book $:/_tw-scholars/newHere/publication/macro/button/set1persons $:/_tw-scholars/newHere/publication/macro/button/set1personsEnd $:/_tw-scholars/newHere/publication/macro/button/set2persons $:/_tw-scholars/newHere/publication/macro/button/set2personsEnd $:/_tw-scholars/newHere/publication/macro/button/set3persons $:/_tw-scholars/newHere/publication/macro/button/set3personsEnd $:/_tw-scholars/newHere/publication/macro/button/set4persons $:/_tw-scholars/newHere/publication/macro/button/set4personsEnd $:/_tw-scholars/newHere/publication/table/article $:/_tw-scholars/newHere/publication/table/book $:/_tw-scholars/newHere/publication/table/invariable $:/_tw-scholars/newHere/quote $:/_tw-scholars/newHere/quote/button $:/_tw-scholars/newHere/quote/table $:/_tw-scholars/palette $:/_tw-scholars/tab/authors $:/_tw-scholars/tab/authors/caption $:/_tw-scholars/tab/authors/caption/filter $:/_tw-scholars/tab/authors/related/filter $:/_tw-scholars/tab/biography $:/_tw-scholars/tab/chapters $:/_tw-scholars/tab/comments $:/_tw-scholars/tab/course/done $:/_tw-scholars/tab/course/ressources $:/_tw-scholars/tab/course/students $:/_tw-scholars/tab/course/toDo $:/_tw-scholars/tab/features $:/_tw-scholars/tab/howTo $:/_tw-scholars/tab/ideas $:/_tw-scholars/tab/info $:/_tw-scholars/tab/internals $:/_tw-scholars/tab/issues $:/_tw-scholars/tab/journal $:/_tw-scholars/tab/notes $:/_tw-scholars/tab/publications $:/_tw-scholars/tab/publications/caption/filter $:/_tw-scholars/tab/publications/related/filter $:/_tw-scholars/tab/quotes $:/_tw-scholars/tab/quotes/caption/filter $:/_tw-scholars/tab/quotes/related/filter $:/_tw-scholars/tab/releases $:/_tw-scholars/tabs $:/_tw-scholars/ui/SideBar/Menu $:/_tw-scholars/ui/SideBar/Menu/Recent $:/_tw-scholars/ui/SideBar/newConcept $:/_tw-scholars/ui/SideBar/newConcept/table $:/_tw-scholars/ui/SideBar/newHere $:/_tw-scholars/ui/SideBar/newIdea $:/_tw-scholars/ui/SideBar/newNote $:/_tw-scholars/ui/SideBar/newPerson $:/_tw-scholars/ui/SideBar/newPerson/table $:/_tw-scholars/ui/SideBar/newTheory $:/_tw-scholars/ui/SideBar/newTheory/table $:/_tw-scholars/ViewTemplate/course/picture $:/_tw-scholars/ViewTemplate/course/status $:/_tw-scholars/ViewTemplate/course/title $:/_tw-scholars/ViewTemplate/description $:/_tw-scholars/ViewTemplate/person/picture $:/_tw-scholars/ViewTemplate/person/publications $:/_tw-scholars/ViewTemplate/subtitle $:/_tw-scholars/ViewTemplate/tabs $:/_tw-scholars/ViewTemplate/tags ``` </$details> <$details summary="Plugins et Macros à importer"> ``` $:/plugins/matabele/maketid (pour la création de contenus) $:/plugins/matabele/setfield (pour la création de contenus) $:/macros/skeeve/dateTime.js ``` </$details> <$details summary="Images à importer"> ``` $:/_images/agenda $:/_images/agenda-2x $:/_images/agenda-big $:/_images/arrow-right $:/_images/article $:/_images/arts $:/_images/book $:/_images/bug $:/_images/calendar-o $:/_images/CEH $:/_images/chapter $:/_images/cogs $:/_images/cogs-2x $:/_images/comment $:/_images/comments $:/_images/comments-o $:/_images/concept $:/_images/concept-button $:/_images/discipline $:/_images/done [[$:/_images/done 2]] $:/_images/done-2x $:/_images/edit $:/_images/edit-2x $:/_images/education $:/_images/education-big $:/_images/eye $:/_images/eye-slash $:/_images/home $:/_images/idea $:/_images/idea-button $:/_images/important $:/_images/info $:/_images/intéressant $:/_images/link $:/_images/note $:/_images/note-button $:/_images/ok $:/_images/ok-2x $:/_images/paper $:/_images/pencil $:/_images/people $:/_images/people-big $:/_images/person $:/_images/person-button $:/_images/philosophy $:/_images/question $:/_images/question-2x $:/_images/quote $:/_images/ressources $:/_images/ressources-big $:/_images/rocket $:/_images/system $:/_images/theory $:/_images/theory-button $:/_images/university $:/_images/university-big $:/_images/wrench $:/_images/wrench-2x ``` </$details> <$details summary="Les Tiddlers CSS"> ``` $:/themes/tiddlywiki/snowwhite/base $:/themes/tiddlywiki/vanilla/base $:/_css/float-trick $:/_css/FontAwesome $:/_css/highlight $:/_tw-scholars/css/buttons $:/_tw-scholars/css/image/logo $:/_tw-scholars/css/image/person $:/_tw-scholars/css/mytabs $:/_tw-scholars/css/SideBar $:/_tw-scholars/css/slider $:/_tw-scholars/css/subtitle $:/_tw-scholars/css/table/agenda $:/_tw-scholars/css/table/invisible $:/_tw-scholars/css/text/boxes $:/_tw-scholars/css/text/colonnes $:/_tw-scholars/css/text/course $:/_tw-scholars/css/text/grey $:/_tw-scholars/css/text/quotes $:/_tw-scholars/css/text/sidebar-menu ``` </$details>
Alberto Molina The idea behind this adaptation is to show and to allow creating relevant data related to the current tiddler without leaving the tiddler. La macro de traduction est intéressante $:/_tw-scholars/macros/language Pour plus de détail, voir [[TiddlyWiki for scholars]]
*[[http://tobibeer.github.io/tw/classic/]] *[[https://rawgit.com/erwanm/tw-aggregator/master/tw-community-search.html]] *[[http://braintest.tiddlyspot.com/]] *[[http://notestorm.giffmex.org/]] *[[http://tobibeer.github.io/tw/dev/#GettingStarted]] *[[http://draggable.tiddlyspot.com/#Start]] *[[http://nocategories.net/tiddlywiki/bestrew.html]] *[[http://pv5.tiddlyspot.com/]] *[[http://namespace.tiddlyspot.com/#GettingStarted]] *[[http://gwiz.tiddlyspot.com/]] *[[http://twspot.tiddlyspot.com/]] *[[http://magictabs.tiddlyspot.com/]] *[[http://let.tiddlyspot.com/#GettingStarted]] *[[http://jtab-tw5.tiddlyspot.com/]] *[[http://iframe-1.tiddlyspot.com/#iframe-2]] *[[http://tobibeer.github.io/tw/icons/#Start]] *[[http://tobibeer.github.io/tw/ibox/#GettingStarted]] *[[http://tobibeer.github.io/tw/fa/#GettingStarted]] *[[http://tobibeer.github.io/tw/focus/#GettingStarted]] *[[http://tobibeer.github.io/tw/filters/#Filter%20Examples]] *[[http://eucaly-tw5.tiddlyspot.com/]] *[[http://tiddlyclip.tiddlyspot.com/]] *[[http://taggly5.tiddlyspot.com/]] *[[http://tagfilter.tiddlyspot.com/#Start]] *[[http://style.tiddlyspot.com/#GettingStarted]] *[[http://storyviewtop.tiddlyspot.com/#GettingStarted]] *[[http://tw5magick.tiddlyspot.com/]] *[[http://tobibeer.github.io/tw/static/#Static%20Sites]] *[[http://skeeve.tiddlyspot.com/]] *[[http://septembertw.tiddlyspot.com/]] *[[http://sections.tiddlyspot.com/#GettingStarted]] *[[http://youtube.tiddlyspot.com/#Start]] *[[http://tobibeer.github.io/tw/xlist/#Start]] *[[http://twiz.tiddlyspot.com/]] *[[http://tw5exploration.tiddlyspot.com/]] *[[http://tw5custom.tiddlyspot.com/]] *[[http://tw5bookmarklets.tiddlyspot.com/]] *[[http://tongerner.tiddlyspot.com/]] *[[http://tidtoc.tiddlyspot.com/#GettingStarted]] *[[http://tw5.scholars.tiddlyspot.com/]] *[[http://tiddlystuff.tiddlyspot.com/]] *[[http://felixhayashi.github.io/TW5-TiddlyMap/index.html]] *[[http://datacom.co.id/TW_demo.html#MyMenu]] *[[http://journal.daleculp.com/]]
https://github.com/Jermolene/TiddlyWiki5/blob/master/boot/boot.js#L878 et dans TiddlyWiki : $:/boot/boot.js Lignes 878 à 882, built in tiddler color field module: ``` $tw.modules.define("$:/boot/tiddlerfields/color","tiddlerfield",{ name: "color", editTag: "input", editType: "color" }); ``` On peut définir le comportement d'un nouveau champ, par exemple : ``` $tw.modules.define("$:/boot/tiddlerfields/background","tiddlerfield",{ name: "background", editTag: "input", editType: "color" }); ``` qui se comportera comme le champ color.
Exécuter <<tw>> avec [[Node.js]] comporte plusieurs avantages par rapport à la version s'exécutant dans un seul fichier<<dp>> * Vous pouvez éditer le contenu du wiki dans n'importe quel navigateur compatible HTML5, y compris s'il tourne sur des smartphones et des tablettes * Les tiddlers sont stockés dans des fichiers séparés, que vous pouvez organiser comme vous le souhaitez * Vous avez la possibilité de construire plusieurs wikis différents à partir de wikis existants dont le contenu peut être combiné avec du contenu qui vous est propre Pour plus d'informations, voir : * [[ïnstaller TiddlyWiki sur Node.js|Installing TiddlyWiki on Node.js]] * [[Utiliser TiddlyWiki avec Node.js|Using TiddlyWiki on Node.js]] * [[Mettre à jour TiddlyWiki avec Node.js|Upgrading TiddlyWiki on Node.js]] Voir la version source :https://tiddlywiki.com/#TiddlyWiki%20on%20Node.js
!This is an encrypted Tiddler
talking about TiddlyWiki. Jeremy Ruston
""" Liste maintenue par David Gifford La liste TiddlyWiki la plus complète à ce jour ? TiddlyLearn y est en bonne place. Noter : Les soumissions de sites ne sont pas directes. """
Sortie imminente suivant message Jeremy du 24 Novembre 2018. *La prérealease : *Full -> https://tiddlywiki.com/prerelease *Empty -> https://tiddlywiki.com/prerelease/empty.html *Où sur ~GitHub: https://github.com/Jermolene/TiddlyWiki5 pour la configuration Node.Js Better webServer serving functionality
Pour accéder à la prochaine version avant sa mise à disposition.
iVBORw0KGgoAAAANSUhEUgAACuYAAAg0CAYAAABP3FJ8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAnEAAAJxABlGlRGQAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAfdEVYdFRpdGxlAFRpZGRseVdpa2kgVGlkZGxlciBQb3N0ZXKWy35aAAAAInRFWHRBdXRob3IARHVhcnRlIE51bm8gRmFycmFqb3RhIFJhbW9zL/JuTAAAAMt0RVh0RGVzY3JpcHRpb24AVGlkZGx5V2lraSBjb21tdW5pdHkgcG9zdGVyCllvdXIgbWVzc3kgdGhvdWdodHMuIE9yZ2FuaXplZC4KeW91ciBwZXJzb25hbCB3aWtpIC0gYSBzaW5nbGUgSFRNTCBmaWxlCmxhcHRvcCwgbW9iaWxlLCB0YWJsZXQgLSBvZmZsaW5lIG9yIGluIHRoZSBjbG91ZApvd24geW91ciBkYXRhIDEwMCUgLSBvcGVuIHNvdXJjZSBhbmQgZnJlZQpXO+u+AAAAHXRFWHRDcmVhdGlvbiBUaW1lADExIEphbnVhcnkgMjAxNay82pUAAAAZdEVYdFNvdXJjZQB3d3cudGlkZGx5d2lraS5jb23UiZ3wAAAgAElEQVR4nOzagQkAIRDAsPf33/kcwoIgyQQdoGtm5gMAAAAAAAAAAAAAjvy3AwAAAAAAAAAAAADgBcZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQAAAAAAAAAAAICAMRcAAAAAAAAAAAAAAsZcAAAAAAAAAAAAAAgYcwEAAAAAAAAAAAAgYMwFAAAAAAAAAAAAgIAxFwAAAAAAAAAAAAACxlwAAAAAAAAAAAAACBhzAQAAAAAAAAAAACBgzAUAAAAAAAAAAACAgDEXAAAAAAAAAAAAAALGXAAAAAAAAAAAAAAIGHMBAAAAAAAAAAAAIGDMBQA2e/cVHcWZ5o//261WzgkFlDMooIQQskQGgUg2YAw2DuMwM3vm7NVe7Nmr/d/P7cxv5kzwjo1NsjHZMiAhQIisgHJOKOesltThf8FKa0BdVVJHwfdzjs+coV51PVXdld563uclIiIiIiIiIiIiIiIiIiIiIiIDUGi1WnPHQEREREREREREREREREREREREREREtOIpZDKZuWMgIiIiIiIiIiIiIiIiIiIiIiIiIiJa8eTmDoCIiIiIiIiIiIiIiIiIiIiIiIiIiOhNwMRcIiIiIiIiIiIiIiIiIiIiIiIiIiIiA2BiLhERERERERERERERERERERERERERkQEozB0AERERERERERERERER0ZtkdnYWIyMjmJiYgEqlgkqlglKphFarfamdo6MjHBwc4ODgABcXF9jY2JgpYiIiIiIiIiIyFCbmEhERERERERERERERES2DVqtFT08P2tvb0dnZieHhYQwPD2NycnJZn+fi4gJPT0/4+PggMDAQgYGBcHZ2NnDURERERERERGRMMu2rQ3OJiIjeUOfOnUNLS4touy1btmDDhg0miMg8bt++jUePHgm2kcvl+PTTT7Fq1SoTRUVEREREb7s//elPOhNYnJyc8Ic//MHEERHR2+qPf/wjNBrNosu8vb3x+eefmzgiIrI0U1NTqKysRF1dHTo6OjA7O2vU9Xl6eiIyMhIREREIDQ2FXC436vqIiIytubkZP/zwg87l6enp2Lx5swkjIlr5NBoN/vjHP+pcHhERgcOHD5swIiIiorcbK+YSEdFbY/v27fjrX/8KlUol2O7WrVuIiYmBq6uriSIznd7eXhQWFup8wTgvIyODSblEREREZFJKpRJKpXLRZQoFu7CIyHSmp6dfm2p+3szMjImjISJLodFoUFtbi/LycjQ0NIj2rxnS4OAgBgcH8fDhQzg6OiI+Ph5JSUnsvyOiFUuj0eh8/gMg+h6HiBYndFwZeyARERERvYxvNYiI6K3h6emJLVu2IC8vT7Dd7Owsrly5ghMnTpgoMtPQaDS4cOGC6EsDb29vbNu2zURRERERERERERERWS6VSoVHjx7hwYMHOqv7m9Lk5CQePnyIhw8fIjAwEJmZmYiMjIRMJjN3aERERERERET0vzjXDRERvVXS09MlVZJoampCdXW1CSIynUePHqG3t1ewjUwmw759+2BlZWWiqIiIiIjIkmm1WrS3t5s7DCIiWkEmJiYwODho7jCI9KbValFSUoI//elPyMvLs4ik3Fc9f/4cp0+fxvfff4+BgQFzh0NERERERERE/4uJuURE9FaxsrLC/v37JVWQyM3NfWOmqBweHkZBQYFou/Xr1yMoKMgEERERERGRpevr68M///lPFBUVmTsUIiJaAbRaLUpLS/HnP/9ZdGAwkaXr7+/H119/jStXrmB0dNTc4YhqamrCX/7yF1y/fh1zc3PmDoeIiIiIiIjoracwdwBERESmFhAQgNTUVDx58kSw3cTEBPLy8rB3714TRWYcWq0WV69eFe2Ud3Nzw/bt200UFRERERFZKrVajcLCQty7dw9qtRpRUVHmDomIiCzc8PAwrly5gpaWFnOHQqQXjUaDwsJCFBYWQq1WG+QzZTIZbG1tYWtrCxsbGygUL17NKZVKzM7OYmZmBiqVSu/1aDQaPHz4EPX19Th48CAH3xMRERERERGZkUKr1Zo7BiIiIpPbtm0bamtrMT4+LtiuuLgYCQkJCAgIMFFkhldWVobm5mbRdvv27YO1tTV4b0BERET09uro6MCVK1fQ39//0r9bwj2iJcRARATwfPRr84mAd+7ceWlAsFar5X6iFWdychLnzp3D8+fPl/0Ztra2CA4ORmBgIDw8PODp6QkPD4+FZFxdxsbGMDg4iKGhIfT29qK1tRUDAwPLimFoaAj/+te/sHnzZmRlZUmaOYyIyNSk3CfwXoJoaXhcERERWRYFH8iJiOhtZGdnh5ycHJw9e1aw3Xy12d/97neQy+Umis5wJicncfPmTdF2SUlJCA8PN0FERERERGSJZmdnkZ+fjydPniz6ksYS+o8sIQYiIoDno3k9PT24fPkyuru7X1smk8m4n2hF6enpwZkzZzA6Orrkv3V1dUViYiKioqLg5+e3rN++q6srXF1dERYWtvBv4+PjaG5uRnl5OVpaWpaUSKPVanH79m10dnbi8OHDsLW1XXJMRETGJOVcyXsJoqXhcUVERGRZWDGXiIjeWtHR0YiJiUFtba1gu76+PhQVFSEzM9NEkRlObm4upqenBds4Oztj586dHCVLRERE9JaanJzEP/7xD8FEFEu4V7SEGIiI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bYvvfe97sX///rwe09raGo8//rhuuQAAACWSunz5cu6zngAAAAAT8MILL8SxY8eis7MzOjs7Y86cOTF9+vRobGyMmpqauHjxYpw8eTKOHj0ab731VvT19eWc51e+8pWYP39+EaoHqGynT5+Ob37zm3l1pW1qaor169fH8uXLEw/onjt3Lt5+++3YunVrXs/zQ2pra+PJJ5+MuXPnJloPAIzm6NGj8Z//+Z9x9erVnGNbW1vjE5/4RCxevDjxgO7p06fjrbfeim3btsXp06fzfty0adPia1/7WtE74QMAAPAngrkAAADApPvpT38aW7ZsSWx+t956a3z+859PbH4AU93u3bvjO9/5TgwODuY1vq6uLhYsWBALFy6Mnp6emDlzZsGBo/Pnz8cHH3wQ7733Xuzfvz+OHDmS9/KH1NbWxhNPPBG9vb0FPQ4AJmLr1q3x4x//OO/xjY2NsXDhwrj55pujq6srZs6cWfAyz5w5Ex988EEcOHAg9u/fH++//35eXeWvNdRhvr29veDlAwAAkBzBXAAAAGDSbd68OV599dVE5tXU1BTPPfdc1NfXJzI/gBvFjh074gc/+EHB4diIjwKybW1t0draGrW1tVFXVxd1dXUREXH16tW4dOlSDAwMxLlz5+LcuXNx6tSpOHfu3ITqbWpqiscffzw6OjomNB8AGI/f/e538fOf/3xcj62vr4/29vZobm4eft2sra2NiIgrV67E5cuX4/z583H+/Pk4d+5c9Pf3x8DAwITqnT17djzxxBPR3Nw8ofkAAAAwcYK5AAAAwKR766234kc/+tGE51NdXR1f/epXo7u7O4GqAG48Bw8ejO9+97tx9uzZUpeS1S233BIPP/xwNDY2lroUAG5gu3btih/+8Idx8eLFUpeS1YoVK+LBBx+MmpqaUpcCAABACOYCAAAARbB///747//+7wnNo6qqKh577LFYvHhxQlUB3JjOnTsXL774Yrz77rulLuXPTJ8+Pe6///5YsWJFqUsBgIiIOH36dPzoRz+KAwcOlLqUPzNr1qx44IEHYuHChaUuBQAAgGsI5gIAAACT7sSJE/Gv//qv4358TU1NPPLII7F06dIEqwK4se3atSt+9atfxQcffFDqUqKlpSVWr14dq1atinQ6XepyAOA6mUwmtm/fHq+99lqcOnWq1OXEnDlzYs2aNbFs2bKoqqoq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rlypu+66S08//bTS6bSOO+44zZgxQ6NGjQq7NAAAAAAA8q4QwV4uwAPwqxDhXOPebZ15G7dgrdt2dvtYt/c6vhe7brNuQVzztk5hW78hXq9j2i071U8oF0BHlclnaT/7BJnX77a5DtAGPRdz7gYAAAA6Bzrm+rRx40YdccQROuGEE3TzzTeHXQ5QMHV1dbrjjjs0d+5cVVRU6IwzztC0adM0cODAsEsDAAAAAAAAuqRMwkpej81jbsFau+3M673CuE7zunXKdTum23OyhpvsgrLmdX4Ct27r3AK55v3slt3q9fvY7zoACEu+ArrZzO9Xvjvect4GAAAAOheCuQE89thjuuyyy/TEE0/o0EMPDbscIK8aGhp055136qGHHlJJSYkuvPBCTZs2Td26dQu7NAAAAAAAAKDLK2Q417i3LkciEdsArd/grd38Qbr1ZsopMBukg67f7rjGa0QoFwD+I5vzeD73zeb8Gda+AAAAAIpTZO3atQRzfUqlUjruuOPU3NysV155RfF4POySgLx48803deWVV2rNmjU69thjddVVV2no0KFhlwUAAAAAAADAJNM/8+3UddYrqOsUprUGdP2Gbu3mdtrf7t7vayDt3B3X6d4tiGs3Zre93eMgYVy7Wp2ei9dzBYBilosOt/nskusmF+daztcAAABA50XH3IA+//xzTZgwQZdffrnOP//8sMsBcmrr1q365S9/qSeffFL77befbrzxRo0ZMybssgAAAAAAAAA4yEU412sbP/duHXTN2/hd9qrBqWY3fsK5xrKfbrpu87iFfp2CuU41Oq33eo4A0JHkMmCb67Burs+tnKsBAACAzo+OuRm45ZZbNGfOHL355psaOXJk2OUAOfHII4/opptuUiKR0C9/+UtNnjyZ/xgAAAAAAAAAOoB8hHMzDeradc+1O45TuNfPcfw8Tz//t+k3PGs3bre98dz9BHetNbgtu40FWQ8AHUFYHXDzjXM0AAAA0LUQzM1AU1OTjjjiCO2555565JFHwi4HyEpzc7OuuuoqzZs3T2PGjNFtt92mPfbYI+yyAAAAAAAAAATgN8hUqICudXu3dU7bONWRSddcp0BskE63bts57ZNJd1xCuQDwHx09qMv5GQAAAOiaImvWrOnYP82E5PXXX9dZZ52le++9V8cdd1zY5QAZWbJkiWbMmKElS5boiiuu0PTp0xWNRsMuCwAAAAAAAEAG8hXOdRrPJKDrZ9ztGEGeg1MYyk/Q1q3DrXmd0SHXuo/bMdxqJJQLAO6KPajLORkAAACARMfcrJxzzjlasGCB3nnnHfXs2TPscoBAnn/+eV1yySXq1auX5syZo29+85thlwQAAAAAAAAgS9mEc+3G/XSn9ROoNQKsQcK3busyDWZ5dc51W5dp112n43uFcv2EuwiAAUB4YV3OwQAAAACcEMzNwrp163TEEUdo0qRJuuWWW8IuB/AlkUjoV7/6lf74xz/qqKOO0l133aWqqqqwywIAAAAAAACQQ2EGdM3LTmPmkK7X9kHq9uIWorIL1Prpjuu2v91xc9El1+82AICvZfK+wXkWAAAAQKYi69atI5ibhfvvv1/XX3+9nnvuOR100EFhlwO4amho0Hnnnae3335bl112mS644AKVlJSEXRYAAAAAAACAPAgSQnLrVus05ic467S9NaTrZ1s/x/XDLRhrXTbXZ17vFsz1eyy/+/h5DgAAAAAAACgedMzNUiqV0vHHH6+6ujq9+eabKi0tDbskwNaqVat05plnav369brvvvs0duzYsEsCAAAAAAAAkGfZhnOdxv2GZf2Ebf12xg1Sn5lTiNUuJGvM5dUJ1yuQ67WN35oy3QYAAAAAAADhoWNuDixatEjjx4/XL37xC/3sZz8LuxxgJx999JHOOussdevWTY888oj22muvsEsCAAAAAAAAUEBhB3St69z281Nrpl1zgwZfg4ZxvbbLJpAbZDsAAAAAAACEh79hnwN77723zj77bN15551auXJl2OUAO/joo480efJkDRw4UM899xyhXAAAAAAAAKALChLojEQittvbjVvHjMdu+3vdSkpKbMft5iopKXHc3msOu5r8zuU2j9tr5fR6+0EoFwAAAAAAoGOIrF27lo65OdDY2KgjjjhCe+21lx555JGwywEkSe+//76mTp2qUaNGqbq6Wj179gy7JAAAAAAAAAAhC9pt1m8X3KBjbuuDdO3NlFPA1muboNsTyAUAAAAAAOhaIuvWrSOYmyNvv/22Tj/9dN19992aNGlS2OWgi3vllVc0Y8YMHXXUUbrvvvtUWloadkkAAAAAAAAAiki+A7pO436Om8mxgsgmLOs3fJttIDfotgAAAAAAACgOBHNzbNq0aVqwYIHeffddupMiNG+99ZamTZum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l9SlJJNJXXfddfrNb36js846S7fddhuhXAAAAAAAAAAAAAAAAAAAuqDIpk2b6JjbSSxatEg//vGPVVJSonnz5mmvvfYKu6ROb9u2bZo+fbrefvttXXbZZbrkkkvCLgkAAAAAAAAAAAAAAAAAAIQksnnzZoK5ncjKlSt10kknqba2VrNnz9b3vve9sEvqtJYuXarJkydr7dq1+sMf/qCJEyeGXRIAAAAAAAAAAAAAAAAAAAhRSdgFILeGDh2ql156SXvvvbdOP/10/frXv1YymQy7rE7njTfe0Lhx49TW1qaXX36ZUC4AAAAAAAAAAAAAAAAAACCY2xn169dPzzzzjM477zzdeuutOuWUU1RTUxN2WZ1CS0uLrrzySp122mnab7/99Prrr2ufffYJuywAAAAAAAAAAAAAAAAAAFAEIps3b06HXQTy54033tDMmTNVUlKi+++/X2PHjg27pA7rww8/1Pnnn69Nmzbppptu0plnnqlIJBJ2WQAAAAAAAAAAAAAAAAAAoEhEampqCOZ2ckuWLNHUqVO1ZMkSXXzxxbrooosUj8fDLqvD2L59u+6++27NmjVLu+22m2bPnq399tsv7LIAAAAAAAAAAAAAAAAAAECRoWNuF9HU1KRrr71W1dXVGjVqlO666y6NHj067LKK3vz583XFFVfoiy++0PTp03XdddepvLw87LIAAAAAAAAAAAAAAAAAAEARKgm7ABRG9+7ddeutt+qtt95SJBLR0UcfrV/84hdqamoKu7SitGLFCp1++uk6/vjjVVlZqbfeeks333wzoVwAAAAAAAAAAAAAAAAAAOAoUlNTQ8fcLqalpUWzZs3SPffco91331233XabDj744LDLKgpNTU26//77ddttt6mkpERXXHGFzjnnHMVisbBLAwAAAAAAAAAAAAAAAAAARY5gbhf22Wef6cILL9Q///lPTZw4Udddd51GjhwZdlmhaGlp0UMPPaQ77rhDmzdv1sknn6wbbrhBAwYMCLs0AAAAAAAAAAAAAAAAAADQQRDM7eKSyaQeffRR3XLLLaqrq9Mpp5yin/3sZxoxYkTYpRVEa2urHn74Yd1+++3atGmTJk6cqEsvvVT77LNP2KUBAAAAAAAAAAAAAAAAAIAOhmAuJEmNjY266667dN9996mxsVEnnniizj//fI0ePTrs0vLiiy++0KOPPqp5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R01jJSUlCSnMXVxc1NmzZ3Xx4kWNjY1FNNbY2JjGxsZ05swZpaena8eOHdq1a1fUilLibWhoSKdPn1ZbW1tYBVo3LS0tqa+vT319ffr000+Vn5+vXbt2afv27Qkploy1lZUVy+Nckg4ePKi77rorjhkFb3l5WW+++abm5+dviblcLv3bv/2bnE6nvvjiC42MjJiOceDAAd19992xTvUW58+f15dffmkae+yxx9TQ0BDnjKSTJ0/q0qVLprEdO3YEVVA6Pz9veTylp6frP/7jPyLKMRktLS3p7bffVkdHh+1yHo9HTz/9dEhj9/T06MMPPzSN1dXV6ciRIyGNtxaMjIzo73//uy5fvhx0saOV5eVlDQwMaGBgQF9//bWysrK0a9cuNTY2asOGDVHKOLquXr2qs2fPqr29/ftuuOG6+XfAxYsXlZqaqpqaGt1xxx0JeSClublZ586dM4098MAD2rNnj+W6Pp9P58+f19///vewCpSvX7+u69ev66uvvtL27dt19913h925dmxsTKdOndKlS5fCOj6np6d1+vRpnT59WsXFxbr//vtVUlISVi4AAAAAAGB9oTAXAAAAAAAgRD6fT19//bVOnz4ddAe4UCwuLurMmTM6c+aMqqqqdOjQIeXn50d9nlgYHh7W559/HrAoLlwjIyP66KOPdOLECe3du1d33HFHQrsKRlteXp62bNli2R36woULOnDgQFJ2kWxvbzctypWkbdu2fV9IXVdXpy+++MJ0uba2toQU5lp1lZWk7u7uuBfm3uz4aqWuri6O2awefr9fb731lnp6emyX27hxo5555pmgun7C3NDQkE6ePGnbATtS09PT+uyzz/TVV1/p9ttv1x133CG32x2z+UIxMTGhjz/+WJ2dnTEZ3+/36/Lly7p8+bKqqqp03333rYoHddrb2/XRRx+F3B3fjGEYunjxotrb23X48OGQrns+n09ffPGFzpw5E3HB+E2Dg4N65ZVXtGfPHh06dEhOpzMq4wIAAAAAgLXJlYw38QEAAAAAwPoQyn2JQMvG6x7HwMCA3n33XctXPEdbZ2enuru71dTUpHvvvTesLrEOhyPm+8cwDH311Vf64osvolYEY8fn8+nkyZNqbm7Wfffdp+3bt5sulwzHTahzNDU1WRbmTk5O6urVqwnpEB1Ic3OzZaypqen7/WBXmDsyMqKJiYm4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MDCgxcXFgAVd0dDa2moZq6mpkdPpDPqYitfxn4jzbGJiQq+99lrAYsl7771Xd955Z1TysFs/lr9/idTf368///nPAQtlMzIydNddd93SITvYfZKWlqaamhrV1NRodnZWJ0+e1Pnz523XHxkZ0RtvvKHnnntOLldsepAsLCzojTfeCHicpaamav/+/dq7d+/3uYRyPKSmpmrHjh3asWOHuru79fHHH9sWnPt8Pr3++ut67rnntGnTpqDniQbDMDQ5OWlZlOtwONTU1KS77777R0XTVvvD5XJ9/9339vbqr3/9q+3+9vl8OnbsmJ566qmAD09lZGTo4YcfVk1NTcA8bsrOztZdd92lPXv26KOPPtKlS5dsl//www/10ksv2S4DAAAAAADWHxddAgAAAAAAQLTE8lXeiXhVektLi06fPh1wuT179ui+++6L6BXpP5SVlaWHHnpIu3fv1vvvv6/vvvvOdLnPP/9cHo9Hu3fvth0v2t+LYRg6evRowFePu91u/eIXv1BlZWXU5i4vL1dZWZkuXLig48ePm75WfX5+Xn/605/061//OiHHTbTmaGpq0gcffGAaGxwc1OjoaFJ0BrZ7dXhTU5Pl9tfV1Vm+Fr69vV27du2KSn52gumWK93oCtzX1/ej4q5YaW9vt4zV1dWFdDzF6/iP93k2MjKi1157zbKzsCQ5nU790z/9k3bs2BG1ee22I5a/f4kyNzent99+2/IBkZu2bdumRx55JKQu8XYyMzP18MMPf38NtPoNlG5cC48dO6ZHH300KnP/kGEYevvttzU6Omq7XFFRkY4cOSKv1xuVeSsrK/Wb3/xGf/vb32z/BvH5fHrzzTf10ksvxaXD+E1LS0t68803TYty3W63Hn/8cZWVlYU1dnl5uX7961/r//2//2f5AI50o4t5f3+/Ojs7LYtyq6ur9eijj4bdUdntduuxxx5Tfn6+Tpw4Ybnc8PCw+vr6wt5mAAAAAACwNgX/zkAAAAAAAIB1ZGxsTB999JHtMk6nUz//+c/14IMPRq0o94fy8/P14osvat++fZbLfPzxx0EXF0bLV199pb6+PttlvF6vXnrppagW5d7kcDi0c+dO/eY3v1FhYaHpMnNzc3rjjTdMC3dXi/r6estXf0vShQsX4piNuenpaXV1dZnGNm7cqPLycst16+rqLGO9vb1x+e6sco902XCN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x1wAAABgVCZPnpz3WHd3d1y6dOmquxKOZDw7pqVSqfirv/qr+M///M8YHBwccczAwEA8+OCDcdddd41LGOaNN96IF198ccRjNTU1kcvl8gaIStnBraWlJdavXx9vvPFG3jFHjhyJX//613HvvffGpEmTSjJvPhcvXoxHH30077bjkydPjvPnz+d9/kTumBvxWdfcl19+ecRjO3bsiM7OzrzPXb16dSI7/7W3t8ezzz77ha/39PTkDa7Pnj07rrnmmpK/npaWlqipqflCp+ZcLhdPP/30iPPV1dXFwoULE/HeToSOuRERHR0dsXfv3rwdiiMi3n777Whra4slS5Z86XnGu2NuscZi7qGOzxcuXBjx+ODgYDz00ENx3333RUtLS0nn/ryhTrl79uzJO2boM7uqqqpk70NDQ0PceuutI95rhrz66qtRU1MTN998c0nmHElvb2/8z//8T5w5cybvmJqamti4ceO4XX865uanYy4AAAAwJF3uAgAAAIDK0tDQkPdYNpuNvXv3jmM1Y2f27NlX7ITX398fDz/8cPzpT38aszr6+vrid7/7Xbzwwgsjhj1qamrGJQD7ed/61rdi9uzZBcccPXo0Hnjggbxdh0vhk08+iV/84hd5Q7nz58+/6g6ZlW7VqlV5u/ft2LEj9u/fP+Kx+vr6WLp06ViW9qVNmTIlbxDw8OHDI369tbV1TGpJp9OxcOHCUdWybNmySKcty5ba5s2bC/7hSETE448/XjCoz/+vrq4utm7dWrD7Z19fXzz44INj9rl//vz5ePjhhwuGciM++0wai3DwjTfeGO3t7QXHvPjii/HCCy9ENpst+fznz5+P//7v/87beXvI9773vYK/mwEAAAAw/jK21QEAAABGY9asWZFOp/OGUF5++eVYunRp1NTUlHTecmxlvH79+jh69GjBUNDg4GA888wzcfDgwbjjjjuisbGxJHPncrnYu3dvPPPMM3Hu3LkRx1RXV8e9994bCxYsGNct1jOZTNx1113xwAMP5O2mGBHR1dUVv/jFL+Jb3/pWrFu3rmSdlHt7e+O1116Lbdu25b0OW1pa4r777iu49XlEaa6bJG+z3dDQEG1tbfHRRx994VhPT0/e53V0dIxJ5+tSWbly5RW/t5/X1tY2Zt+HJUuWxL59+4oev3LlysRsdV6qOpLwM1BfXx9btmyJhx56KO+Y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OX7/+98XHU4ZSWdnZ8yYMeOK45KylfHatWtj8eLF8cQTT1yxa14p1NfXxy233BJr1qwp2Fm43Fus19XVxV133RW7du2KF154Ic6fPz+m80VEzJ8/P26//faYN29e3jHjcd0k5dospKmpKRYtWhQHDx4sOO666677QmfnpGpoaIiWlpaCgb+mpqZobGwc81oWLlwYVVVVBbs8L1u2LHHdwUt1bSbxZ+CWW26JAwcOXNa5/C+9/fbb0dbWFkuXLi3qnOW+zyZh7vb29pg3b148/fTTBTvil1pra2ts2rQpmpubx23OkWQymbj11ltj+fLl8dRTT5UkcFuMFStWxKZNm6K+vn5c5itkvK/1JN5f8innfQAAAABIFvt0AQAAAF/a2rVrY9q0afH4449Hd3f3lzrH6dOnS1zV2Gtqaoof//jHsX///njppZfi+PHjJZ+jubk51qxZE2vXro2ampqSn3+sdHR0RHt7e2zbti22bdsWvb29JT1/KpWKtra2WLduXbS1tZX03BPd6tWrrxjMXbt27fgUUyIrV64sGMwdr2ukpqYm5s2bVzCsv3LlynGphc+k0+n4wQ9+ED/72c8Kdjh/4okn4h//8R9j8uTJ41hdZZs8eXLcfffdceLEiXj11Vdjz549Y9YldMGCBXHLLbfE4sWLx+T8X9acOXPipz/9aezbty9efvnlOHHiRMnnSKVSsXz58vj6178es2fPLvn5AQAAABg7grkAAADAVVm4cGH8y7/8S+zatSvee++9OHz4cNEddBsaGiKdThc1dsqUKbFixYoRj02bNq3oekupra0t2tra4vjx47Fz587Yu3dvnD179kufb8qUKdHW1hYdHR0xf/78UXVdW7JkSVy8eHHEY5nM+C4BVVdXxy233BI33XRT7N27N9577704ePBgwXBcIalUKubMmRPLli2Ljo6OaGhoKPq5kydPznvdlCrodM011+SdIwndDYe0t7dHdXV13u/D3Llzi+penSTt7e1x+PDhvMevvfbacatl7dq1UVdXN+KxqqqqWLhw4bjVMqS6ujrvtVnKzsg1NTV556mtrS3ZPKPV1NQU3//+96/Y2XXfvn2xZs2aK56vsbEx7+tsaWn5UjUWMnXq1LzzfV65PgNnzZoVP/zhD6O7uzs+/PDD2Ldv36h+B8hnxowZsXTp0ujo6Ijp06eXqNrSS6VSsWzZsli2bFnJfg9Ip9Mxd+7cWLlyZbS3t8eUKVNKWHHx5syZk/faG++uxVVVVXlrGe/fbyI+C4vnu9cn6TMfAAAAKK/UpUuXxuZP2QEAAICvpL6+vjh8+HB0d3fH+fPno7e3N7LZbFxzzTVRV1cXdXV1MX369Jg2bVpFdYIt1tmzZ+PQoUNx6tSpOHPmTHR1dUVvb2/09vbGpUuXoqqqKiZNmhS1tbXR2NgYzc3NMX369Jg3b17MmjWr3OWPmWw2G5988kkcPXo0Tp8+HWfOnImzZ89GX19fXLx4MXK5XNTU1MSkSZNi0qRJMW3atGhubo4ZM2bE4sWL84ZgKN6JEyfi5z//ed7jW7ZsiVWrVo1jRcBE09vbG8eOHYvOzs44depUnD59Onp6eobv9QMDA5FOp4fv9/X19VFfXx+zZ8+O2bNnx7x58+Kaa64p98u4KkO/B5w4cWL4Pejv77+sg3xtbW1kMpmYOnVqNDc3R1NTU8ybNy/mzZs3IX83AgAAAPiqEcwFAAAAgK+AJ598Mt55550Rj02aNCn+7d/+rSzdBwEAAAAAYCIpbq9IAAAAAKBi9ff3x+7du/Mev/baa4VyAQAAAACgBARzAQAAAGCCe//996O/vz/v8bVr145jNQAAAAAAMHEJ5gIAAADABPfOO+/kPTZnzpyYOXPmOFYDAAAAAAATl2AuAAAAAExgJ06ciE8++STv8TVr1oxjNQAAAAAAMLFlUqlUuWsAAAAAAMbIu+++m/dYTU1NXHfddWGNEAAAAAAASiOTy+XKXQMAAAAAMAYuXboUu3btynt85cqVUV1dHdYIAQAAAACgNHTMBQAAAIAJ6oMPPoi+vr68x9euXatbLgAAAAAAlJCOuQAAAAAwQb3zzjt5j82aNSvmzJmjWy4AAAAAAJRQutwFAAAAAACld/LkyThy5Eje46tWrRrHagAAAAAA4KshY6s6AAAAAJh4XnvttbzHMplMdHR0hLVBAAAAAAAorYyt6gAAAABgYuns7Iz3338/7/Hrr78+Jk2aFNYGAQAAAACgtHTMBQAAAIAJ5vXXXy8Yur3xxht1ywUAAAAAgDGQLncBAAAAAEDp7Nu3L3bu3Jn3+NKlS2PGjBnjWBEAAAAAAHx1ZGxXBwAAAADJ1d/fH5lMJtLpK/+N/UcffRS//e1v8x5Pp9OxcePGgt10AQAAAACALy9jyzoAAAAASK6DBw/Go48+GjNnzoy5c+fGjBkzoqGhIerr6yMioqenJ06fPh179uyJI0eOFDzXunXrYvr06eNRNgAAAAAAfCXpmAsAAAAACTZlypQYHByMY8eOxbFjx770eaZNmxa33nqrbrkAAAAAADCGdMwFAAAAgARraGi46nNkMpm4++67o6ampgQVAQAAAAAA+aTLXQAAAAAAkF99fX2k01e3jLd58+aYMWNGiSoCAAAAAADyEcwFAAAAgARLpVIxZcqUL/38b3/727Fq1aoSVgQAAAAAAOSTKXcBAAAAAEBhDQ0Ncfbs2VE9p76+PrZu3RqLFy8eo6oAAAAAAIC/JJgLAAAAAAnX2NgYhw8fLmpsKpWK6667Lm699daYOnXqGFcGAAAAAAB8XmpgYCBX7iIAAAAAgMK6u7vj2LFjcezYsTh+/HicO3cuuru7Y3BwMOrr66OxsTGWLFkSK1asiGnTppW7XAAAAAAA+EoSzAUAAAAAAAAAAACAEkiXuwAAAAAAAArL5XKRy+mxAAAAAACQdIK5AAAAAAAAAAAAAFACmVQqVe4aAAAAAAAogvVcAAAAAIBky9j+DAAAAAAg2azjAgAAAABUhnS5CwAAAAAAoLBcLiecCwAAAABQATK2PgMAAAAAqAzWcwEAAAAAki2jywIAAAAAQLINreNazwUAAAAASDYdcwEAAAAAKoT1XAAAAACAZNMxFwAAAAAg4bLZbETomAsAAAAAkHSZchcAAAAAAEBhArkAAAAAAJUhY+szAAAAAIBkS6fTERFhPRcAAAAAINkyOi0AAAAAACTb0Dqu9VwAAAAAgGTTMRcAAAAAoEJYzwUAAAAASDYdcwEAAAAAEi6bzUaEjrkAAAAAAEmnYy4AAAAAQIWwngsAAAAAkGyZchcAAAAAAEBhArkAAAAAAJUhY+szAAAAAIBky2azERFhPRcAAAAAINkyOi0AAAAAACTb0Dqu9VwAAAAAgGRLl7sAAAAAAAAAAAAAAJgIMuUuAAAAAACAwnK5XLlLAAAAAACgCIK5AAAAAAAJJ5gLAAAAAFAZ0uUuAAAAAAAAAAAAAAAmAh1zAQAAAAASTsdcAAAAAIDKIJgLAAAAAJBwgrkAAAAAAJUhXe4CAAAAAAAAAAAAAGAiEMwFAAAAAAAAAAAAgBLIpFKpctcAAAAAAEARrOcCAAAAACRbJpfLlbsGAAAAAAAKGFrHtZ4LAAAAAJBsmXIXAAAAAABAYQK5AAAAAACVIV3uAgAAAAAAAAAAAABgIhDMBQAAAAAAAAAAAIASyKRSqXLXAAAAAABAEaznAgAAAAAkWyaXy5W7BgAAAAAACshmsxERYT0XAAAAACDZdMwFAAAAAEi4oXVc67kAAAAAAMmmYy4AAAAAQMLpmAsAAAAAUBky5S4AAAAAAIDCBHIBAAAAACpDxtZnAAAAAADJNrSOaz0XAAAAACDZMjotAAAAAAAkWzabjQidcwEAAAAAkk7HXAAAAACAhEun0xGhYy4AAAAAQNLpmAsAAAAAkHA65gIAAAAAVAYdcwEAAAAAKoT1XAAAAACAZMuUuwAAAAAAAArTKRcAAAAAoDJkLOgCAAAAAFQG67kAAAAAAMmWsfUZAAAAAEBlsJ4LAAAAAJBsOuYCAAAAACTc0Dqu9VwAAAAAgGTTMRcAAAAAIOGG1nGt5wIAAAAAJFum3AUAAAAAAFCYTrkAAAAAAJUhY0EXAAAAACDZstlsRAjoAgAAAAAkXcbWZwAAAAAAyTa0jms9FwAAAAAg2TLlLgAAAAAAgMJ0ygUAAAAAqAyCuQAAAAAACZfNZstdAgAAAAAARRDMBQAAAABIuFQqVe4SAAAAAAAoQrrcBQAAAAAAAAAAAADARKBjLgAAAABAwuVyuXKXAAAAAABAEXTMBQAAAAAAAAAAAIAS0DEXAAAAACDhdMwFAAAAAKgMOuYCAAAAAAAAAAAAQAnomAsAAAAAkHA65gIAAAAAVAYdcwEAAAAAAAAAAACgBDKpVKrcNQAAAAAAUATruQAAAAAAyZaxBRoAAAAAQLINreNazwUAAAAASLZMuQsAAAAAAKAwgVwAAAAAgMogmAsAAAAAkHCCuQAAAAAAlSFd7gIAAAAAAAAAAAAAYCLIpFKpctcAAAAAAEARrOcCAAAAACRbxhZoAAAAAACVwXouAAAAAECyZcpdAAAAAAAAhQnkAgAAAABUBsFcAF/ZxJ8AACAASURBVAAAAICEE8wFAAAAAKgMgrkAAAAAAAknmAsAAAAAUBkyqVSq3DUAAAAAAFBAOp2OiAjruQAAAAAAyZbRaQEAAAAAINmy2WxE6JwLAAAAAJB0OuYCAAAAACTc0Dqu9VwAAAAAgGTTMRcAAAAAIOGG1nGt5wIAAAAAJFum3AUAAAAAAFCYQC4AAAAAQGXI2PoMAAAAACDZhtZxrecCAAAAACRbRqcFAAAAAIBky2azEaFzLgAAAABA0umYCwAAAABQIaznAgAAAAAkm465AAAAAAAJp2MuAAAAAEBl0DEXAAAAACDh0ul0ROiYCwAAAACQdJlyFwAAAAAAQGE65QIAAAAAVIaMBV0AAAAAgGTLZrMRIaALAAAAAJB0GVufAQAAAAAk29A6rvVcAAAAAIBk0zEXAAAAACDhdMwFAAAAAKgMOuYCAAAAACScjrkAAAAAAJUhU+4CAAAAAAAoTKdcAAAAAIDKkLGgCwAAAACQbEPruNZzAQAAAACSLWPrMwAAAACAymA9FwAAAAAg2XTMBQAAAACoENZzAQAAAACSTcdcAAAAAIAKYT0XAAAAACDZMuUuAAAAAACAwrLZbLlLAAAAAACgCOlyFwAAAAAAAAAAAAAAE4FgLgAAAAAAAAAAAACUQCaXy5W7BgAAAAAAChhax7WeCwAAAACQbJlUKlXuGgAAAAAAKIL1XAAAAACAZNMxFwAAAAAg4bLZbETomAsAAAAAkHQ65gIAAAAAVAjruQAAAAAAyZYpdwEAAAAAABQmkAsAAAAAUBkEcwEAAAAAEi6Xy5W7BAAAAAAAiiCYCwAAAACQcIK5AAAAAACVIWNBFwAAAACgMljPBQAAAABItkwqlSp3DQAAAAAAFMF6LgAAAABAsqXLXQAAAAAAAAAAAAAATASZchcAAAAAAEBhuVyu3CUAAAAAAFAEwVwAAAAAgIQTzAUAAAAAqAwZC7oAAAAAAMmWzWYjQkAXAAAAACDpMqlUqtw1AAAAAABQwNA6rvVcAAAAAIBkS5e7AAAAAAAAAAAAAACYCDLlLgAAAAAAgMJyuVy5SwAAAAAAoAg65gIAAAAAAAAAAABACeiYCwAAAACQcDrmAgAAAABUBh1zAQAAAAAAAAAAAKAEdMwFAAAAAEg4HXMBAAAAACqDYC4AAAAAQMIJ5gIAAAAAVIZ0uQsAAAAAAAAAAAAAgIlAx1wAAAAAgIRLpVLlLgEAAAAAgCII5gIAAAAAJFwulyt3CQAAAAAAFEEwFwAAAAAg4bLZbLlLAAAAAACgCOlyFwAAAAAAAAAAAAAAE4FgLgAAAAAAAAAAAACUgGAuAAAAAAAAAAAAAJRAptwFAAAAAABQWC6XK3cJAAAAAAAUQTAXAAAAACDhBHMBAAAAACqDYC4AAAAAQMIJ5gIAAAAAVAbBXAAAAACAhEulUuUuAQAAAACAIgjmAgAAAAAknI65AAAAAACVQTAXAAAAACDhBHMBAAAAACqDYC4AAAAAQMKlUqlylwAAAAAAQBEEcwEAAAAAEk7HXAAAAACAypAudwEAAAAAAAAAAAAAMBHomAsAAAAAkHA65gIAAAAAVAbBXAAAAACAhBPMBQAAAACoDIK5AAAAAAAJJ5gLAAAAAFAZ0uUuAAAAAAAAAAAAAAAmAsFcAAAAAAAAAAAAACiBTLkLAAAAAACgsFwuV+4SAAAAAAAogo65AAAAAAAAAAAAAFACOuYCAAAAACScjrkAAAAAAJVBx1wAAAAAAAAAAAAAKAEdcwEAAAAAEk7HXAAAAACAyiCYCwAAAACQcIK5AAAAAACVIV3uAgAAAAAAAAAAAABgItAxFwAAAAAg4VKpVLlLAAAAAACgCIK5AAAAAAAJl8vlyl0CAAAAAABFEMwFAAAAAEi4bDZb7hIAAAAAAChCutwFAAAAAAAAAAAAAMBEIJgLAAAAAAAAAAAAACUgmAsAAAAAAAAAAAAAJZApdwEAAAAAABSWy+XKXQIAAAAAAEUQzAUAAAAASDjBXAAAAACAypAudwEAAAAAAAAAAAAAMBEI5gIAAAAAAAAAAABACWTKXQAAAAAAAIXlcrlylwAAAAAAQBF0zAUAAAAAAAAAAACAEhDMBQAAAAAAAAAAAIASyJS7AAAAAAAACsvlcuUuAQAAAACAIuiYCwAAAAAAAAAAAAAloGMuAAAAAEDCZbPZcpcAAAAAAEARBHMBAAAAABIul8uVuwQAAAAAAIqQLncBAAAAAAAAAAAAADARCOYCAAAAAAAAAAAAQAkI5gIAAAAAAAAAAABACQjmAgAAAAAAAAAAAEAJZMpdAAAAAAAAheVyuXKXAAAAAABAEQRzAQAAAAASLpVKlbsEAAAAAACKIJgLAAAAAJBwOuYCAAAAAFQGwVwAAAAAgITLZrPlLgEAAAAAgCKky10AAAAAAAAAAAAAAEwEOuYCAAAAACRcLpcrdwkAAAAAABRBMBcAAAAAIOFSqVS5SwAAAAAAoAiCuQAAAAAACadjLgAAAABAZRDMBQAAAABIOMFcAAAAAIDKIJgLAAAAAJBwgrkAAAAAAJVBMBcAAAAAIOFSqVS5SwAAAAAAoAiCuQAAAAAACadjLgAAAABAZRDMBQAAAABIOMFcAAAAAIDKkC53AQAAAAAAAAAAAAAwEeiYCwAAAACQcDrmAgAAAABUBh1zAQAAAAAAAAAAAKAEBHMBAAAAAAAAAAAAoAQy5S4AAAAAAIDCcrlcuUsAAAAAAKAIgrkAAAAAAAknmAsAAAAAUBnS5S4AAAAAAAAAAAAAACYCwVwAAAAAAAAAAAAAKIFMuQsAAAAAAKCwbDZb7hIAAAAAACiCjrkAAAAAAAAAAAAAUAI65gIAAAAAJFwulyt3CQAAAAAAFEHHXAAAAAAAAAAAAAAoAcFcAAAAAAAAAAAAACgBwVwAAAAAAAAAAAAAKIFMuQsAAAAAAKCwXC5X7hIAAAAAACiCYC4AAAAAQMKlUqlylwAAAAAAQBEEcwEAAAAAEk7HXAAAAACAypAudwEAAAAAAAAAAAAAMBEI5gIAAAAAAAAAAABACQjmAgAAAAAAAAAAAEAJCOYCAAAAAAAAAAAAQAkI5gIAAAAAAAAAAABACQjmAgAAAAAAAAAAAEAJCOYCAAAAAAAAAAAAQAkI5gIAAAAAAAAAAABACQjmAgAAAAAAAAAAAEAJZMpdAAAAAAAAAEAl6O3tjXPnzkUqlYqGhoaora0td0kAAAAkjGAuAAAAACXV2dkZv/71r4cf33vvvTFr1qwyVlRe77//fjz33HPDj//1X/81UqlUwef8x3/8R/T29kZExIYNG2LdunVjVt/JkyfjoYceGn58//33x/Tp08dsPuCr7YMPPoj9+/dHRER9fX3cdtttZa4o+U6cOBFvvfXW8OPvfOc7UVNTU8aKxs7p06fj9ddfH37c3t4eS5YsGZO59u7dG3v37h1+fNttt0V9ff0Xxm3bti1OnTo1JjWMZNWqVTF//vwvfP3ixYvx/PPPf+HrGzZsiObm5jGt6cyZM/Hqq69+qbn7+vri2WefHX7c0tISa9asKXmNY623tzf++Mc/xo4dO+L8+fOXHWtsbIw5c+bEXXfdFVVVVRER8dJLLw2Pa2trixUrVhQ8/4EDB+L999+PiIhMJhPf/e53x+BVAAAAMF4EcwEAAAAoqcHBwThz5sxlj7/K+vr6Lns/inH27Nno6emJiBgO6I6Vv/x+DQwMjOl8wFfb0aNH4+23346IiObmZsHcInR3dw+/ZxERt99++4QN5n766aeXvdbGxsYxC+Z+8sknl8118803jxjM3bdv33CYfDy0tLSMGMzt6+u7rN4htbW1cccdd4xpTdu3bx9x7uuvv/6KwdxLly5d9tz+/v6KC+Z2dXXFL3/5y+ju7h7x+NDXh0K5ERG7d++Ozs7OiPjse3SlYO7JkyeH36fa2lrBXAAAgAqXLncBAAAAAAAAwOjt2rUrcrncmJ0/l8vFzp07x+z8SXfp0qX41a9+9YVQbnV1dUyaNGk4jDt37txylAcAAEBC6ZgLAAAAAAAAI5g8eXI0NTUVPb6npyf6+vqGH0+ZMiUymeL/O662tnZU9X366aexf//+MessfODAgTh37tyYnLsS7Nq1K7q6uoYfz5gxIzZv3hyLFi2KVCoVEREXL14sV3kAAAAklGAuAAAAAAAAjGDr1q2jGv/EE0/En/70p+HH991335h0U62uro5Lly5FRMSOHTvGLJj77rvvDv87lUpFVVVVDAwMjMlcSbR///7hf9fW1saPf/zjaGhouGzMNddcM95lAQAAkHCCuQAAAAAwhpYvXx7/9E//NPx4qLtaUkyfPv2y+qZNm1bGaoCJbsmSJcMhtkmTJpW5Gqhc7e3tsWvXroiI2LNnT/T29pb8Z6q3tzf27Nkz/HjJkiVx5MiRr1Qw98iRI8P/XrZs2RdCufncfPPNw510W1paxqQ2AAAAkkswFwAAAADGUF1dXdTV1ZW7jLyqq6tjzpw55S4D+IpYtGhRLFq0qNxlQMW7/vrrh4O5AwMDsXv37rjhhhtKOsfu3bsvC+GuWbMmPv7445LOkXTnz58f/vf8+fOLft7atWvHohwAAAAqhGAuAAAAAEBC5HK5OHXqVBw/fjxOnjwZZ86ciQsXLsTJkycjIuKBBx6I+vr6aGpqihkzZsTcuXNj+vTpievEDMDYWrBgQTQ1NcWZM2ciIuKdd94peTB3+/btw/+ePHlyLP//2Luv4DauNH34D4hAkABzzgkAo8QkiRYVLUqyKVuS01i2HGZsjcOOp/Zmavdmr/Zmp2Zrt3Zmd8sb7Fl7JHscZmzJVrIlWTKDTIkUcw4Qc84BBAOA/l/ww/m6GRFJSHp/VS7jgI3uA6C70RCe857ERBiNRoduw5UtLi7CZDKxNlX5JoQQQgghhBBiKQrmEkIIIYQQQgghhBBCyBabmZlBfX09WltbodPpVvzdy8sLADA/P4/5+XmMjY1Bq9UCWApLqVQqpKWlQaFQbGq/CSGEbA2TyYTt27ejoKAAANDb24uxsTH4+/s7ZP0jIyPo6+tj7dTUVLi5uQmCqg+7xcVFQdvd3X2LekIIIYQQQggh5EFDwVxCCCGEEEIIIYQQQgjZIvPz87h37x4aGxsFVQj9/f0REREBX19feHl5wc3NDcBSEGt6ehrj4+Po6+vD2NgYZmZmUFVVhdraWiQnJ2PHjh0UHiKEkIecyWRCZmYmCgsLwXEcgKWquXl5eQ5Zf2VlpaCdnZ0NjuMeqWCu+XU1M38WE0IIIYQQQgghG6FgLiGEEEIIIYQ8BPjTXo+OjsJoNMLNzQ0KhQJeXl4IDw+Hr6/vVnfTKaamptDQ0ICZmRnIZDKEh4cjJiYGUql0y/qk1+vR3d2NoaEhzM3NAVia9tTT0xMREREICQlx2ranpqbQ09ODmZkZ6HQ6cBwHhUIBhUKBkJAQBAUFOW3bfX19aG1txeLiIhQKBaKjoxEeHm7x9Orj4+Po7e3F5OQk9Ho9gKXXzdvbGyEhIQgODnb4VO0mkwmDg4MYGBjA+Pg4TCYTxGIxFAoFvL29ERkZCaVS6dBtrmZiYgJdXV0YGRlhfZDL5YiIiEBkZKTDQwCzs7MYHBzE8PAwq74JLL3ecrkcvr6+iIqKomAfIU6m1WpRXFzMPiuUSiVSUlKgVqstPvfMzMygpaUFjY2NmJmZQV1dHbRaLfbt24e4uDhndp9YyWAwYHp6GgsLCzCZTJBIJOy8u5XXLeuZmprC3NwcC41LpVIEBAQ4/PPYUfR6PSYmJgCAvb7matPOMjc3h/HxcdaWSCTw9fV12ffUzGAwQK/XQ6/Xw2g0QiaTQS6Xw8PDg8KHDwiTyQQfHx9ER0ejs7MTAFBbW4tDhw7ZfYxyHIfa2lrWDgsLQ1BQ0CMVyn0YLCwsYG5uDnq9HiaTCe7u7uw4d9XzOCGEEEIIIYQ8LCiYSwghhBBCCCFW+vDDDzE6OgoACAoKwptvvumQ9fb19eHcuXMAAJFIhHfeeQc+Pj7rPkav16O4uBiVlZUsyLgWf39/pKSkYM+ePZDL5Vb1rampCd988w1r/+3f/i08PDysWodZS0sLzp8/z9q//vWvN5x2+w9/+AMLLf3mN7+BRCIBx3EoKChAcXGxoMIgsBQuzMzMxN69e+Hp6WlTP1fzz//8z6xq0lNPPYW0tDT2N47j0NzcjDt37qCrq2tFdSU+X19fbN++Hbm5uQ4JPs7NzeHu3btobGzE4ODgussqlUpoNBrs3bsXfn5+Vm2nv78fZ8+eBQBERUXh9OnTAJZCnhcvXkRTU9OKx/j7+2P37t3IyspaNeRhNBpRVlaGiooKDA8Pr7t9Ly8vpKenIzc31+b9z2xqagqFhYWora3FwsLCussGBwdj+/btyMnJgURi3T+ljI2N4YMPPmDtV155BZGRkQCW9pm6ujrcvn173ffN3d0dWVlZyM3NtSskvLCwgPLyctTV1QmmJV6LSCRCSEgIduzYgfT0dKufuzPV1NTg6tWrrP3uu+9ueL5cTXFxMW7fvg0ACAkJwS9+8Qub+vPxxx+z9zAxMRHPPPOM4O+1tbW4cuUKa//93/+908MQ09PT+OyzzwRhsfj4eDz77LMr3svBwUF8/PHHrP3GG28gODjYqf171JlMJty+fRsNDQ0AAA8PD+zatQsajcbqQJxSqURWVhbS09PR3NyMsrIy6PV6XLt2DampqcjNzaWQ3RYxGo3QarVoaGhgU8yvFWozV0hWqVRIS0vbsvfMaDSisbERtbW16Onpwezs7IplZDIZoqOjsW3bNqSkpFj9+VBbW8uuGby8vPDkk0+uu/zQ0BAKCgpY+9ixY4Jrx6mpKZSVlaGuro6Fcvl8fHygUqmwa9cuh53bJiYmUFFRgfr6eoyNja26TEBAADQaDTIzM1cMjOru7sadO3cALH3evvDCCw7p10Z0Oh3q6+vR1NSEzs7OVfdHd3d3xMfHQ61WIy0tzeUDxo8y8/uXkZHBgrmTk5Po6Oiwe2CGVqvF9PQ0a2dkZAi2+bAqKSlBT08Pay//nllUVLSikjAA7N27F2FhYYL7vv/+e0xNTQFYuj7cvn27E3q80sTEBOrq6tDc3Ize3t5Vv5d6enpCpVJBo9EgOTmZrhMIIYQQQgghxAlc5xcVQgghhBBCCHlAJCcn48aNGwCWflTv7+9f8SOcLcrLy1n4NC4ubsOQWVNTEy5fvoyZmRmL1j82Nobi4mKUl5fj0KFD2LFjh8V9MxqNrG/2Wr6u9QKsZnNzc+wx5uW//fZbVFVVrbl8SUkJpqamHBp04IefDQYDuz04OIiLFy+it7fXovVMTEygsLAQZWVlOHz4MLKysmzuU01NDb7//vtVgzOrmZmZQUVFBaqrq5Gbm4uDBw9a/EOsyWRi74O5wurc3Bw+/vjjNUO1Y2NjuHz5MsRiMTIzMwV/6+/vx/nz5zcM5JpNT0+juLgY9+7dw8mTJ5GUlGTR4/g4jkNFRQWuX7/OnsNGhoaGcOPGDZSWliI/P9+q7fJfM3MbWHofzp8/j/v372+4jvn5eZSUlKC6uhovv/wyC/Zao6amBteuXYNOp7P4MRzHYWBgAJcuXUJBQQGef/55xMTEWL1tZ1CpVKziJLB0PszJybF6Pc3Nzez96erqgk6n23CgwHKTk5MsDGPu23IGg8Fh51BLTExM4OzZs4JQblpaGp555hmIxeIVy6+1nxLnWFxcxLVr11jwJz4+HgcOHIBMJrNrvWKxGCkpKUhISEBhYSHu37+P+vp6TE1N4ejRoy4Vrn/YmStN3rx5E5OTkxY9ZmxsDGNjY+xxhw8fFgwA2gzNzc24evXqhn1eWFhAW1sb2tracPPmTTz55JNWfTYODg6yULq/v/+GwVydTseWB4DDhw9DoVDAZDKhoKAAP/30k+C6bLnJyUmUl5ejvLwcWVlZOHbs2KrnQkssLCzg+vXrqKio2PBcOTo6ipKSEpSUlCAxMRFPPPEEGxRlnvEBwKZUrTQYDLh16xZKS0vXfa2ApeuOxsZGNDY24saNG8jLy7PrWpU4j3kfTElJwZUrV7C4uAgAqK6utjuYy/+eJRaLsW3bNsE2H1bd3d1obGxc8+9dXV2r3p+enr7i3wTa2towMjICAJsye83c3By+//57VFdXb/gde3Z2FjU1NaipqYGPjw+OHTsGjUbj9D4SQgghhBBCyKOE/jWWEEIIIYQQQqyUkZGBmzdvsh8lq6qq7A7mLiwsoK6ujrU3+vG7uLgYP/zwg+A+T09PJCYmIioqCgqFAhKJBAaDAf39/YJKqnq9HpcvX8bIyAieeOKJB3IKy5qamjVDuXw7d+50el+qq6tx6dIlQcghPDwcCQkJ8PLygqenJ0QiEXQ6HXp6etDU1MQqtOr1ely8eBFjY2PIy8uz+r348ccfBRXkACA0NBTJycmIiIhgVWXn5uYwMDCA1tZWdHR0AFgKSBcVFWFoaAgvvviizVWSrly5smGw1sPDY0W46P79+/jiiy8E1WoDAwOh0WgQFhbGplc1Go0YHR1FZ2cnWlpaWIDwyy+/xLPPPstCApbgOA6XL19GeXm54H5vb28kJycjNDQUCoUCYrEY8/Pz6OvrQ319PQs3Tk1N4YsvvsCRI0eQm5tr8XaXGx0dxccffywI1QcFBUGtVsPHxwdisRjT09Nob28X/Pg/OzuLs2fP4u2330ZgYKDF27tx4warCmvm4+OD9PR0REREICAggO0rOp0O4+Pj6OjoYIE+YCkU/cknn+DMmTMIDQ21+bk7iqenJ2JjY1mw2ZZgrl6vF4TpOY6DVqu1upoZv1K0RCLZ8lDD6Ogozp49y947ANi9ezeOHDnyQJ7vHzZGoxHfffcdq1qdk5PDqhA6iru7Ow4fPozKykqUlZWhu7sb169fx5NPPkn7wCZYWFjAN998IwiSAoBUKkVMTAyCg4Ph5eUFqVQKo9GI+fl59Pb2orOzkwXkJycn8dVXX0Gn09k06MAWhYWFuHXrluA+iUSC6Oho+Pr6ss+J8fFxdHd3s0qak5OTDvlstNbCwgL+/Oc/CwZGAEtVapVKJUQiEWZmZlgozqyiogKTk5N45ZVXrD4exsfH8emnn7KZM8xEIhGCg4Ph6+sLpVKJ2dlZTE5OYmBggH1faG5uRldXF06dOrXpg1xmZ2fx5z//ecUAMqVSibi4OPj5+UEqlWJmZoZdc5kDnuZZEbq7u3HixAk6h7gY8/4lk8mQkpKC6upqAEBDQwOOHTtm84CPubk5NDc3s3ZSUhI7BzzswVyZTLZidhn+4CWZTLbq9yZbw/6OMj4+jnPnzgkGZQGAn58fYmJi2HeMmZkZDA4Ooru7m72Xk5OT+Oyzz3DgwAEcPHhwC3pPCCGEEEIIIQ8nCuYSQgghhBBCiJUUCgUSExNZJZ3a2locPXrUrh/j6urqWEDRw8MDycnJay5bWloqCOWKxWLs378fe/fuXfVHQo1GgwMHDqyosHv37l0sLCzgxIkTNvd7K5grDQJL4aP9+/cjMTER/v7+mJmZQXd3N6qrq6HT6ZwefLh9+zarngwA27Ztw6FDh9asiLRz504sLCygoKAAJSUlrJLR7du3IRaL8fjjj1u87eVhS6VSiaeeegqJiYmrhibi4+ORm5uLrq4uXLx4kQVVmpubce3atQ2r1a2mu7sbtbW1AJZCtQcOHEBsbCwUCgXGxsag1WpRWVkJlUolmAZZp9Phr3/9K9vnvb29cfz48VUrjQKAWq3GY489huHhYXzxxRcYHR0Fx3G4ePEiQkNDV0wPvZZr164JQrnu7u44cuQIsrKyVn3NkpOTcejQoRUVdq9fvw6DwYD9+/db9kLxmMNW5uMwIiICR44cWXVfPXjwIPr7+/HNN9+wYP3i4iK++uorvP322xaFY0pLSwX7iUwmw9GjR5GZmbnq+cLT0xNBQUHQaDTIy8vD7du3WVDLYDDg0qVLOHPmjEsEc1JTU1kwt7OzE7Ozs/D09LT48ffv319RTaytrc2uYK5KpbK76qk9BgcHce7cOUFl5KNHj2L37t1b1iciVFRUxEK5+/fvX/fz3h4ikQhZWVmQy+UoKipCV1cXfvrpJ+zZs8cp2yNLOI7Dl19+Ca1Wy+7z8PBAXl4e0tPT161avLi4iJKSEhQWFrKp02/cuAGNRsOqrDpLZWWlIJQbHBzMrq9W6zPHcejs7GQDvYClz8aAgAAkJiY6ta/A0ucRP5Tr7u6O3NxcZGVlQalUCpbV6XS4ffs27ty5w875Wq0WhYWFOHDggMXbnJycxMcffywY9KBQKHDw4EEkJyevWm19bm4ObW1tKCgowMjICPR6PT799FO88sortjxtm0xNTeHcuXOCgHJ4eDjy8vIQFxe36ue5wWBAdXU1CgsL2fOtqqqCRCLBU089tWl9Jxvjh2QzMjJYMHdxcRENDQ02D/yoq6sTDDrkz3phPj89rJ555hlBW6fT4V/+5V9Y+2c/+9ma31m2ytDQEM6dOycY9JeQkIBDhw4hPDx81cfMz8/j3r17uH37NpsVpqCgAO7u7nTdSAghhBBCCCEOYls5HEIIIYQQQgh5xPEr2ur1ekEwyxb8sGB6evqaId+hoSF8//33rC2VSvH6669j//79G1Y8TUpKwjvvvIPg4GB2X2VlJSorK+3q+2arqKiATqeDp6cnfvnLXyI3NxcBAQEQiUTw8vJCSkoKXn75ZZw5c8ap/aipqWGhXLFYjJdeegnPPffchtOUymQyHDlyBKdPnxaEVc3BKUvcv39fELYMDg7GW2+9haSkpA0Dk9HR0Thz5gyioqLYfaWlpRZvm6+wsJCt86233kJaWhqrUhcQEIBdu3bhnXfewaFDhwSPKy4uZj8Ay+VyvPnmmxb9wB0UFITXX3+dVbFaXFzE9evXLeprW1sb7ty5w9oKhQK/aWfi7gAAIABJREFU/OUvkZ2dve5rJhKJkJ2djbfeegteXl7s/lu3bqG9vd2ibfNdvHiRhVyysrLwxhtvrBsgDwsLwxtvvCE4bgcGBlggdT0TExMsxA4sBZd+/vOfIzs726IKyebQPz+A3Nvbi56eng0fuxmSkpLY8+A4Di0tLVY9vq2tbcV9Wq12w6l/+WZnZwXVGlNTU63qgyP19vbiT3/6EwvlisViPPfccxSucCFarZZVIMzJyXFaKJcvJSWFVY+vq6uz6bxFLFdSUiII5YaEhODdd99Fdnb2uqFcYOmabv/+/XjxxRfZ55LBYEBRUZFT+6zX6wXXliqVCm+99RZSU1PX7LNIJEJsbCzOnDkjGBxz8eJFQSV8Z/n666/ZuTcsLAzvvvsu9u/fvyKUCyx93h89ehSnTp0SfPYVFxdjdnbWou2ZTCZ89dVXglCuRqPBe++9hx07dqwaygWWrnHS0tLw7rvvslD84uIivvjiC4yNjVn8fG3FcRy+/vprQSh3165dOHPmDOLj49e8/pFIJMjOzsbbb78tqJJ/7969VT87ydbhh2RjYmIE30PMIV1b8Gcm8fb2Rnx8PGs/7BVzHzTmc4o5lCsSiXDkyBG8+uqra4ZygaXvBXv27MGZM2fg4+PD7v/hhx8wNDTk9H4TQgghhBBCyKOAgrmEEEIIIYQQYoOEhATBD1j8Hy+tNTg4yKrnAcLQLx/Hcbhy5Yrgx9BTp04hOjra4m0plUqcPn0a7u7u7L7r169vSojCUcyv9XPPPYfAwMA1l3N2RU9zuEkkEuHll1+2ukKcSqUShG84jsOFCxc2/LHbPEW2mYeHB15++WV4e3tbvG25XI6f/exnbEpajuNw+fJlq/o/PT0NrVYLhUKBU6dOrVsldPl7UVdXx27v2rVLcCxtxNvbWzDFamtrK6smuxaj0YirV6+ytkQiweuvv77u/rNcQEAAXnrpJUGo58qVK1aFOAGwqaG3bduGp59+2qJK2+7u7iuqd1lyzrl9+7YgsHHy5Ml1f6Bfy969e9m+AkAQOttKnp6eiI2NZW1rBkhwHMfCReYgObAUtO3v77d4PS0tLWwfkEgk0Gg0Fj/WkTo7O3H27FkWeJfJZDh9+jS2bdu2Jf0hK83OzqKgoADAUqDP1iqGtsjKyoJarQawNKDCvJ8Qx1pYWEBxcTFre3h44PTp01Z9PgNL+we/cndbW5vVnzXWaGpqYhXhpVIpTp48uWGI2Ewulws+n3Q6HcrKypzST76BgQEAQFRUFH7xi19sOCgKABITEwUDTQwGg8XX76Wlpeju7mZttVqNF198UfDZuB6xWIzDhw9j3759AJbC0ObzgTOVlJQIBo/k5OQgPz/fosE5wFKo+dVXXxUEjy9dusSuZcjW439vEIlESE9PZ+3Ozk5MTExYvc7h4WH09vaydnp6uuBanoK5ruXatWuCoP8TTzyB3Nxcix8fEBCAV155hZ33jUYjvv32W6d+7hBCCCGEEELIo4KCuYQQQgghhBBiA5FIJJjSU6vVCqpoWYNfLTcqKkpQeYyvs7NT8ON6eno6EhISrN6ej48PDh8+zNp6vR41NTVWr2erjI6OQq1W2/TcnWHPnj0290WlUiE7O5u1x8fH0djYuO5jampqBPtafn6+RYGU5by8vARTOA8NDVlVCXV8fBwcx2Hfvn3w9PS0+HFzc3OCaVYjIiIsfqxZdna2IAhcX1+/7vI1NTWCH6z37NkjqEBrqfDwcDz22GOsPTIyYlNI1dfXF8ePH7cqPB4WFiZ4rfgBodWYTCbU1taydmRkpM3VOaVSqWAAgCtV0eJXqNVqtRaHhYaGhth+GB4eLliPNdUA+cerWq1eN6DuLG1tbfj000/ZAAulUolf/OIXgup2ZOuVlZVhcXERHh4eVgVmHCU3NxdyuRxzc3O4d+/epm//UVBfXy8IPT/++ONWh3LN+MHc6elpTE5O2t2/tfA/T8LCwlatOrue8PBwweCkzbqm9PT0xMsvv2zVeXf37t2C5S2pID0/P89mCACWPsNfeOEFiwbWLHfo0CE2QwB/4IwzLCwsCMK/kZGROHr0qNXrUSgUOHbsGGtPTk6ioaHBIX20VGdnJ27fvu2U/2yZMcKVLA/J8oO5HMfZdDwuD6wvH0hCwVzXMTY2Jvi3hNTUVOTk5Fi9nqCgIMHAx97e3g2/axBCCCGEEEII2ZhlQ98JIYQQQgghhKyQmZmJgoICcBwHjuNQXV3NKmFZanFxURCe44c0l6usrGS3RSIRDh06ZH2n/z+ZmZkoKipiAc/S0lJkZ2c7vcqso/BD0VvJx8dH8COmLR5//HHU1tayanUlJSWCkOBy/Ep0oaGhSEtLs3nbmZmZuHXrFtt2VVUVIiMjLX68m5ubIABgieWVGm2puiaRSHDs2DGYTCYEBQVtWPmWf+x4eHhg7969Vm/TbM+ePSxgBywdO+aQjaUef/xxSKVSq7etUqlYBbPJyUnMzs6uGYru7+9n7yuw/rnFEvzwt62DEJwhOTkZly9fhslkgsFgQFtbm0UBZH74NiEhASqVigWvtFqtoKriWhYWFnD//n3WXu+4dZbGxkZ89dVXLODl7++P1157zaawPnGemZkZtLS0AFiqWMmvWr9Z5HI5du3ahcLCQjQ3NyMrK0tQBZPYjz9QQy6XrzkDgiWWDx6Zmppy2nHNHyxj6+CCHTt2YHFxEX5+fvD394fRaLQpuGqNgwcPWlyx1kwmk0GlUrFgKb8q6FoqKioE1y5PP/20XYMwjh07hvfffx8Gg8HmdViiurpaMCNGXl6exZVyl0tOTkZgYCBGRkYALF0vWnv9Z4+2tjarBs08SpaHZP38/BATE8MGc5q/n1r6Hc9kMgnCvNHR0fD39193m2Tr3Lt3j1W2dXNzQ15ens3r2rlzJ27fvs3Od1VVVVbNzEMIIYQQQgghZCWqmEsIIYQQQgghNvL29hYE8qqqqqye8rGhoQFzc3MAlkIcKSkpqy63uLgoqE6VkJBgcxU2YGlKXX41tuHhYYyPj9u8vs3mKj8SZmVl2R088fT0FLwXvb29awYfBwcHBdVKMzMz7QpTy2QyQbVfc3DMUsHBwZDL5VY9ZnkQjB9stEZ6ejoyMzMRGRm5bh/Gx8cFFZ9SU1MtnqJ7NZ6enoLKgFqt1qpwjbu7+5rH+UZCQkIEbZ1Ot+ayERER+Id/+Ae88847eOGFF5CUlGTTNs34QeL1trvZPDw8EBcXx9pNTU0WPY4f8FGpVIiIiGD7UU9PDzsvb7QO83svlUqhVqut6brdampq8Ne//pWFciMiInDmzBkK5bqg+vp6mEwmKJXKTd9P+DQaDZRKJYxG44aVxon1duzYgaNHjyI7OxuPPfaYXdcHy4Of09PT9nZvTfzz++DgoE2hO5VKhddeew1PP/00cnNznR7KlcvlK6p4Wio0NJTd1uv1gvDqavjVKENDQ+2escHPzw/btm2zax2W4Pc7LCwMsbGxNq9LJBIJgridnZ2CQDfZOqsdr/xjY2xszKrKp1qtVvDerjYY0tnVnollTCaToLpxUlIS/Pz8bF6fTCYTDG5raGiw+t82CCGEEEIIIYQIUTCXEEIIIYQQQuzAr0Jp7Q+fwFIVLrNt27atWUVzcHBQEP6zNdjHtzyoZ0nVMFcgl8tdpsqfoyr3Lq9629HRsepyy/cve8OWAATT3U9PT1sVugwICLB6ezKZDGFhYaxdVVWF5uZmq9djqeX7tSOqmvJfd5PJhP7+fosfGxsba3Mw2MvLS9BeXn14OYlEgtDQUKSmplodoF6Of26ypcqxM/Hf05aWlg1DZQsLC+xYksvliIiIgJubGwv4mkwmi6Y354eAVSqVXRUUrXXv3j1cuHCBPVe1Wo2f//zna1ZQJlurtbUVwNK+amvFSkcQi8UsdNPa2kqBGweLjY3F7t278fTTT+PAgQN2rWv59eBG4VF78KvzTk9PCwKdriohIcGmyvMAVlT/XG8gxujoKEZHR1nbnirIfI5az1r0ej0GBwdZ25JK8hvhXy9yHIe+vj6712kpDw8P+Pn5OeU/e6+Pttpq1zwpKSmC46O6utri9fGDnjKZbNXvnFQx1zUMDg4Kvgs4+jifn59nVbIJIYQQQgghhNjG9hIxhBBCCCGEEEKgVquhVCpZZaHKykqLq7mOjIygq6uLtdf7kX558C88PNyG3gqFhYVBKpWykF1vb++mVPCyly1hUGcICAhYEZS0VWRkpOC96OzsFFTRNeMHc729ve2qmmy2vAprf3+/oBL0emx9L3JycnDhwgUASz/uf/HFF8jKysK+ffvg4+Nj0zrXsvzY4YeCbbX8GO/t7UVUVJRFj7Vn++7u7oL2ZgVkFxcXBYFtV6uUlpSUhEuXLsFkMmFubg4dHR2CYMFy7e3t7DnExcWxoKRKpUJjYyOApWq46wUcjEYjC1sCjgl8W6qkpATXrl1j7W3btuGZZ57Z0sAnWdvg4CA7fiw9tzqTRqNBWVkZZmZmMDw8LAhlEtchEokgFovZucqayuzW2rZtGwoLC1nY7urVq5ienkZubq7LhhYjIyNtfuzyz9L5+fk1l11e1Z9fod0ekZGRUCgUTqtA39PTI2iv95loqdDQULi5ubH9ZGBgABqNxu71WiI3Nxd79+51yrp//PFHFBQUOGXdm2G1kKw5UGsO5NbX1yM/P3/DgWF6vV4wWC41NXXVQUcUzHUNywdsOuI4X/5vDAMDAwgKCrJ7vYQQQgghhBDyqKJ/sSeEEEIIIYQQO7i5uQmqpjY0NFhc1YxfkSw8PFwwte5yw8PD7LZYLHbID2Rubm6CYCW/Ipgrc5Vp2iMiIhy2Ljc3N0E4amxsbNXl+PuBo8JUy6c8taYykq3TpW7fvl0QeuQ4DuXl5fj3f/93nD17FqWlpRgfH7dp3csNDQ2x235+fisCObbw8vIShJXWer9Wo1Qqbd6urZV2rcFxHCYmJtDa2oqioiKcPXsWv/vd71BaWsqWcbVgroeHhyCMwK9ku5q2tjZ2mz8lOf82f5nVdHR0sCqLUql008JJP/74oyCUCwAzMzMQiUSbsn1iPXPVbn9/f7uOf0dRKpXs3L2ZFS/JxhYWFqDVanH9+nX893//t+Bc68zzrr+/P3Jzc1mb4zgUFRXh3/7t33Dp0iV0dHS4XHVlewbxLA8arvfc+Ndd7u7uDh0c5ohBdmtZfmw76nsD/xp8YGDA7nUS+60Vks3IyGC35+fn2cCj9dTW1grONfx1WLJNsrn4x7lCoXDIrAk+Pj6CgV50nBNCCCGEEEKIfahiLiGEEEIIIYTYKTMzE0VFRQCWQhUNDQ1r/pBpZjQaUVNTw9rZ2dnrLs+fptLT09NhlRF9fHzYD27rTeXrSjw8PLa6CwAcX7nXz8+PBbhmZ2dXXYa/H7S3t+N3v/udQ/sAWLcf2FpJTyQS4fnnn8elS5cEU+aaTCa0t7ejvb0dV69ehZ+fHxISEhAfH4+4uDibtsd/Po4Mxfn4+LB1W/OaKRQKh/XBXhMTExgeHsbQ0BCGh4fZf5tVideRUlNTWZi2qakJ+fn5a4ZV+aFbfgVTHx8fBAYGYmRkBFNTUxgeHl4zzMQP/6rVapunVLfGtWvXUFJSsuL+9vZ2lJSUCIJ1xHWYB72sN/hms4WFhWF8fFwQOiSbZ2FhgZ17R0ZG2P8nJibWfIyzg7GHDh3C7OwsKioqBP0sLy9HeXk5FAoFYmNjERMTg9jY2C2voLhZn6X8QWv+/v4OHQQRGhoqqLzuSPxKvGKxeMWADlvxBx+uda1KNtdaof2YmBj4+vqy80p1dfWGM6OYK+wCS99z1poNgoK5roF/nHMch0uXLjlkvWKxmL3HdJwTQgghhBBCiH0omEsIIYQQQgghdvLz80N8fDyb7raysnLDYG5jYyP7oUsmkyEtLW3d5fnT7Dqi4udq69qsYK69Vd8c+fzt4eiAMH99a/0Iyn+PjEajUyroWbMf2PNeiMVinDx5EklJSbhx48aqlXrHx8dx79493Lt3DyKRCGFhYUhOTkZaWprFlZP5x44jp+S29djZjKq3a5mamkJLSwtaW1vR0dFhUXVvqVTKqtGapzd21MAAR0pKSsKlS5dgNBoxPT2Nvr6+Vataj46OspBKYGDgiqqLKpWK7YttbW2rhs84jhMEc1NSUhz5VFZ19+5dzMzMAFg6dvLz81FYWIipqSkAwM2bNxEXF4ewsDCn94VYx1z929YK485g7st6QVDiGEajEd3d3Whvb0d/fz+Gh4ctet39/f0xPj7OArnOPu+KRCIcP34cMTEx+P7771dch+h0OtTX16O+vh7A0kCX+Ph4qNVqJCUlbfpn22ZdC/IHRDl6m46obrmW5deL/Fk6nLENsnXWCsmKRCKkp6ejoKAAAHD//n1MT0/Dy8tr1eWHhoYEFVgzMjLWDKK72swJjyr+MTg7O0vHOSGEEEIIIYS4IArmEkIIIYQQQogDZGVlsWBuV1cXxsbG4O/vv+by/IpkaWlpK6bVXY4foHNkZUZ+kMKSkJ4jPCzBXEeGPAHhe2EwGFZdhv8eyeVyp1QPtiZc44jXIDExERqNBo2Njairq0Nra+uqz5/jOPT19aGvrw8//PAD1Go1Dhw4sGr4ko8fzHVkcIi/Lv42NiIWix3WB0sNDQ2hoKAAjY2NG1ZdlMlkCA0NRVhYGOLj4xEfHw+JRII7d+64dDBXLpcjPj6eVR9sbGxcdd/gV8tNSEhY8XeVSoU7d+6wZXfv3r1imd7eXhaSlUql0Gg0DnkO6zFvz93dHadOnUJcXBz8/f1x7tw5cBwHo9GIr776Cu+8886mVO8lljMHHNcKQ20Fc/VwqoTnPGNjYygqKkJ9fb1FVcjlcjkiIyOhUqmgVqvh7++P3/72t+xz35GVWtezfft2JCcno7KyEuXl5RgaGlp1uZmZGdTU1KCmpgZyuRzbt2/Hnj174O3tvSn93KzPIf51l6OvPx19Hcm3GWE6Cuy5hvWq1/KDuRzHoaamBnv27Fl1Wf4MFuZQry3bJJuHjnNCCCGEEEIIcX0UzCWEEEIIIYQQB0hKSoKnpycLuVRWViIvL2/VZcfGxtDe3s7aWVlZG66fH9y1JgS4EX7gYKNwsKPYG8zdrH5uxNE/SltS2dXd3Z1Vb8vIyMATTzzh0D5Yy1EBQJFIhJSUFKSkpMBgMLDqgp2dnejt7V11n2ltbUVraysOHjyI/fv3rxla4u8vjgyf23rsbHaotaamBhcvXlw17CyRSBAWFoaIiAiEhYUhLCwMgYGBq76W/P19swJi1kpJSWHB3KamJhw+fHjFMlqtlt1eLZgbExMDiUQCg8GArq4uLC4urtjPGxsb2W21Wr1pQVilUolXXnkFoaGhAIC4uDjk5OSwIPHo6Ci+//57PP3005vSH2IZcyjTlQLT5nPWZg3IeZRwHIfbt2/j1q1ba14nSCQShISEICIigv3n7++/4tzKH0ixmZ8dUqkUu3btwq5duzAwMICWlha0t7ejp6dn1c+Subk5lJaWory8HPv27Vv3M9lRNuv14A+mcXSVUGc+B36/AwIC8Pzzzzt8G644SOdRtN73ET8/P8TExKCzsxPAUvh2tWCuyWRCTU0NayckJKw7mISCua6Bf5zHxcXhyJEjDt+GK127EEIIIYQQQsiDiIK5hBBCCCGEEOIAYrEY6enpKCkpAQBUV1fj0KFDqwYTKisr2W1zMGMj/KCmI4O5/Co4zqzcxWdJ5bgHgaMrCPGnS16rEq5cLmfL8Zd/mEgkEsTFxSEuLg7AUvXg3t5etLW1obm5GcPDw4Llf/zxR0ilUuTm5q66Pv5r6cj3zNZjZzNDrfX19bhw4YIg3BUQEIC0tDRoNBqEhoZaHKzhn3dcNYyTlJSES5cuwWg0YnR0FCMjIwgMDGR/NxgM6OjoALC0n8XGxq5Yh0QiQUxMDLRaLVterVYLlmlqamK3U1NTnfJclvP398drr70GX19fwf15eXnQarXsuCgvL4dKpUJSUtKm9IsQInT16lWUlZUJ7lMoFNBoNIiLi0NISAgCAwM3PI9yHCe4Xtqq825oaChCQ0Oxf/9+mEwmDA4OoqenB1qtlp0nzYxGI3788UdMTk7ixIkTTu3XZr0ezrqGAJwbjOdflxgMBoSFhTltW2RrbRSSzcjIYMHckZER9Pb2rvju2dbWBp1Ox9qZmZl2bZNsDv5xznEcHeeEEEIIIYQQ4oJc85cUQgghhBBCCHkA8SvfTk9PCyozmplMJsFUoZZUywWEwYDZ2VmH/Zhvnh4d2LxgLn+bDzL+D9iOMDY2xm4rFIpVl+G/Rw/L67gRc1AyLy8Pv/rVr/Dqq68iKChIsMzNmzcxMTGx6uP5x85ay1iL47gtOXasodfrcenSJRbKdXNzQ35+Pn71q1/h4MGDCA8PtyrYxA/mumrFXLlcjvj4eNbmV7YFgM7OThZ0i46OXrMKmEqlYrfb2toEfxsaGmLHqlQqXRHadZbMzMwVoVxg6fh47rnnBFXTvv32W0xPT29Kv8jGzPuZKw1KMV9DuEoF+odFfX29IJTr7u6OY8eO4Te/+Q1OnDiBbdu2ITg42KJz7/L9xRXOu25ubggLC8POnTvx0ksv4e/+7u9w7NixFeemyspKVFdXb1EvHYt/DeHo6y5nXsfxr0vMs3mQh9NGIdmUlBTB9c5qxyb/u6mHhwcSExPXXaejq0cT29BxTgghhBBCCCGuj4K5hBBCCCGEEOIggYGBiI6OZm1+ZVyzlpYW9kO8RCLB9u3bLVq3eepyYCkUODAwYGdvlypoDQ0NsXZAQMCayy4PhNjzg+zDEijt7+932LoWFhYE78VaFY9CQkIE2+dXQn1UJCQk4MyZM4iJiWH3GY3GFRUKzfivmU6nc0hgcXx8XFA5j1+V1VXcu3dP0Mf8/Hzs2rXL5iqDo6Oj7LarVswFhBVs+ZVtAQgGSyQkJKy5Dv7flg+w4K9To9G4xBS/oaGhePzxx1lbr9fj/Pnzj+T5wRV5enoCgEuFpc0DS8x9I/bjOA43b95kbZlMhtdeew07d+60KVQ7OTkpaLvieVcmk2Hnzp34m7/5mxVBvsLCwi3qlWPxr40nJiYcOlvByMiIw9a1nJ+fH7u9uLi4Yn8iD4+NgrkymQwpKSmsXVdXJ/geNzs7i5aWFtbetm2bYLCPLdskm4N/nI+NjVFgmhBCCCGEEEJckOv9ix4hhBBCCCGEPMD4FXCbm5tX/IBfXl7ObqekpFhcaTMqKkrQ7u7utqOXSwYGBgQ/rEZGRq65rEQiEbT51TOtZZ5y/UHX09PjsOBbe3u7YF1rvRf8+2dnZzE+Pm73tjmOw+jo6AP1I7u7uzueffZZwX7Z0dGx6rLOOHb6+voE7eVTArsCfqDU29vb4urcaxkcHGS3XaFy41oSExNZoKSvrw9TU1Psb/zqt+sFc4OCguDt7Q1gKZDMP874wVx+0GWr5ebmCsLq7e3tKCkp2cIeETNzcMYR52tHMVd9Xq0KM7ENv5o2AOzcudOuzwb+YB3Atc+7MpkMP/vZzwSDVMbGxgQDOh5Uy68henp6HLZuR1yPrGX5daQj+01ciyVhzIyMDHZbr9cLgri1tbWCdWRmZm64vgfpO8PDjH+cGwwGwbU6IYQQQgghhBDXQMFcQgghhBBCCHGg1NRUFrY1Go2ora1lf5ucnBSE5bKzsy1eb0BAABQKBWvz12ur+vp6QXu9YO7yALGtlf9mZ2dXhBofVHNzc2htbXXIuioqKthtsVi8Ighitvz+hoYGu7fd1NSE//zP/8Q//dM/4b/+67+cXlVtfn4efX19qKmpQW9vr83r8fHxEVQWXqsSc1RUlKDSoKOPHbFYvGaF463EDwFGRETYVW2xr69PcMy7ciVWuVwuCN2ag7STk5NsUICXlxeCg4PXXY9KpWK3zeftyclJVilbJpNBrVY7tO/2EIlEeOaZZ+Du7s7uu3nzpkMrexPbmCtuOqLSvaOY94ugoKAt7snDY/mxlpycbNf62tvb7Xq8tTiOY5WUbSEWi5GTkyO4z5XC6LZaft3liGsIYOl8wB844mihoaGCwUvLq7/bwmQy4f3338fZs2fx/fff23UNRxzHkpBsTEyMYCBGVVXVqrdDQ0MFs7TYs03ifMu/uzviONfpdPjDH/6ATz75BDdu3HgoBlgQQgghhBBCyFaiYC4hhBBCCCGEOJBEIsG2bdtYu7KyUnDbHGgLDAxEdHS0xesViUSCakeDg4N2BVyNRiNqampYOyIiYt3KeV5eXoK2rRV5ampqXDrUZ627d+/avY6RkRFBwDclJQUeHh6rLhscHCwIgfL3KVv99NNPAJb2CTc3N/j4+Ni1vvVwHIf//M//xAcffIDz58+juLjYrvXxp2FfXtXZTC6XCwJSra2tdk0pPzMzI6g0lpycvOGUv1thbm6O3ba0MvdaysrKBG1XD2Skpqay2+ZgLj+skJCQsGH1SX6411xpt7Gxkd2nVqshlUod0l9H8fX1RX5+PmsbjUZ89dVXWFxc3MJeEXPV1LGxsTUHEGymmZkZFpgMDw/f4t48PJbPkGCuum0Lg8GwYuCNs8671dXV+J//+R/89re/xe9//3u7zhf+/v6Ctqt/VljC09MTsbGxrN3Y2IjZ2Vm713vnzh2717EeNzc3aDQa1q6vr8fCwoJd62xoaMDw8DDa29ud3n9iOUuOM5FIhPT0dNZua2uDTqfD4OCgYNCIJdVyLd0mcb7lgxQd8b2wvLwcExMT0Gq1KCkpgUwms7ebhBBCCCGEEPJIo2AuIYQQQgghhDgYf8r4gYEBDAwMgOM4QUjXlmnld+7cKQiTXb161eYf30pKSgTBgp07d667vK+vryDcZ0ulWL1ej4KCAqsf58ru37+/ovKwNTiOw+XLlwXv40bvxa5du9jtsbExlJeX27z9pqYmwfTGy6uJQJgcAAAgAElEQVTdOZpIJEJiYiJrt7a22lWhl1/Fab1gOf81MxqNuHbtms3bvHXrliCQsNH7tVX4P6TbU7Wwq6sL1dXVgvssmTZ5KyUmJrKwdGdnJ/R6PQvXAsLQ7Vri4+NZleH29nYYjUYW8gWE4V9Xkp6eLgiij46O4rvvvtvCHpGQkBBW8Z6/H24V8+e3UqmkirkOtDzsvzyoa43CwsIVj3dWEM7LywsDAwNYXFyEwWBAc3OzzetaXgF2+aCuB9Vjjz3GbhsMBty8edOu9fX39wsGxzkL/9pnYWHBrsFkRqMRt27dYu2wsDA26IBsLUvPDfxgrslkQm1traBarlgsFgwuXY+rXwc+SvjH+fj4uF3fS2dnZ1FSUsLaSUlJD815nBBCCCGEEEK2CgVzCSGEEEIIIcTBQkNDBVXoqqqq0NbWxgILYrFY8OOopXx8fJCdnc3aPT09gh/PLDU6OorCwkLW9vX13TBkJhKJBBV+79+/z6aFt4TRaMSFCxcEVTwfFpcvX8bY2JhNj/3pp5/Q0dHB2hqNZsW0yculpaUhMDCQtW/cuGFT8HJ6ehqXLl1i7ZCQEJv2S2vx9zWj0Yjr16/btJ7Ozk6MjIywdlxc3JrLRkdHQ6VSsXZdXd2KaoSWbpMfsI+KirKq8vVm4u8jXV1dNu0jXV1d+Oyzz1YMANDr9S5dLc3d3Z293yaTCU1NTbh//z6ApXNZfHz8huuQy+UsdLSwsICmpiZ0dXUBWAo9q9VqJ/XefsePH4dSqWTtiooKQaiYbD7z/lJfX7+lgSaj0chCOxqNZsPK0cRyyweH2BrCrqurw+3bt1fc74gqrauJjY0VVOkvKCiweR/ln2ekUimCg4Pt7p8r0Gg0ghB7RUUFOjs7bVrX4uIivvnmm02ZPSImJkbwfaSgoABDQ0M2revWrVuCa93HH3/c7v4Rx7D0eszPzw8xMTGsXVlZidraWtZOTExcc8YOW7dJnC8tLU0Qnr169Sp0Op3V6zEPFjV/VxeJRDhw4IDD+kkIIYQQQgghjyoK5hJCCCGEEEKIE/ADtDU1NSgtLWXtpKQkeHp62rTeI0eOwM/Pj7Vv3Lgh+FF1I+Pj4zh79qxgquKTJ09CIpFs+Fh+lV+O43DhwgWLpsWdn5/HX/7yF7S0tAAAqxz4oPPx8QGwFFL84x//iN7eXqseX1ZWhhs3brC2XC7H008/veHjJBIJnn32WVbNc35+Hh999JEgpLqRqakpnDt3jv1wKxKJkJ+fvykhrbi4OEGItr6+Hj/99JNV65icnMS3337L2lKpdMNQ8YkTJwRVn8+fP29VsKa3txeff/45C9NIJBKcPHnSqn5vJv4U1iaTCV9//bXFU5QbDAbcunULf/rTn9gP9KGhoezvHMetqIzoalJSUtjtgoICzM/PA1iq8mfp+ZdfWff69evsvddoNBadM7eKh4fHin3z22+/xfT09Bb1iKSlpUEsFmNmZmZLQ9INDQ3Q6XQQi8VIS0vbsn48jKKiotjnMgAUFxdbdZ40Go24efMmvv76axZ6459nnHXOdXNzw+7du1l7ZGRkRSV/S7S0tAiq7SYnJ7PK5Q86kUgkuO7iOA5ffPGF1SHXxcVF/OUvf8Hg4CAAbMrrc/LkSbYdo9GIP//5z5iYmLBqHdXV1YKweEJCgksPTnnUWBOSzcjIYLeHhoYEAc7MzEynbJM4l0QiwYkTJ1h7dnYWn376qdVV2wsKCgSDFrOzsx+awRWEEEIIIYQQspUomEsIIYQQQgghTpCWlsamkl8+jTo/tGstmUyG559/Hu7u7gCWwgFff/01Ll26xIJna6mrq8OHH34oCHfk5uYiNjbWom1rNBqEhYWxdl9fH/74xz+ir69v1eVNJhMaGhrw/vvvs7BGdHQ0jh49atH2XN2BAwdYsGl2dhb/93//h6tXr25Y1W5iYgKff/45rly5wu4TiUQ4ceKExdOFhoeH4/Dhw6w9PT2NDz74ACUlJev+WM5xHBoaGvC///u/gorHeXl5gipazpafn8+OD2Ap9Pj1119vWNWV4zhUV1fjww8/XFG5baPXzsvLC8888wwLqBgMBpw9exa3bt2CwWBYd5t3794VhFQB4IknnkBAQMC629xKmZmZggBqT08PPvjgA1Y5djXj4+MoLCzE73//exQWFrJ9KS4uDm+88YYg2GyuHuuqEhMTWahtcnKS3c+vnLwR/rL8dfBDv65KpVJh586drK3X63H+/PlNqdJIVlIoFEhOTgawNCjD2sCMI+j1epSVlQFY2octrYxILKNQKAQV4fV6Pf70pz+teY1kZjAYUFVVhffffx9FRUXsGE1PT8eePXvYcgMDA87pOIDHHnuMDTYClipp/vWvf7WoSi/HcaisrMSXX37J7pNKpTh48KAzurplwsLCBFVize9vXV2dRY8fGRnBRx99hNbWVgCAt7c38vLynNJXvuDgYMF2Jicn8dFHH1lU0dloNOLHH3/EN998w+5TKpUuPSjpUWRNSDYlJQVSqXTF/V5eXoLBSI7c5loWFhYwPj7usP9sqRL7sFh+zdff34+PP/54w88fYGmA56VLl1BQUMDuCw4Ofmi+rxNCCCGEEELIVnPd8h6EEEIIIYQQ8gCTyWRIS0tDRUWF4H4/Pz+Lg7BriYiIwOuvv45PPvmEhXvKy8tRU1ODxMRExMXFQalUQiwWQ6fTYWhoCM3NzSsqqu7Zs8eqUIC5YtgHH3zAKm8ODQ3hww8/RGRkJCIiIqBUKrG4uIjJyUm0trYKfiQNDw/H6dOn1w0GPkhEIhGee+45eHh4oKysDCaTCaWlpbh37x6io6MRGxsLLy8vyOVyLCwsYGpqClqtFt3d3YJwnEQiwfHjx1loy1K7d++Gm5sbvvvuOwBLP3Bfu3YNxcXFSExMRGRkJJRKJSQSCXQ6Hfr6+tDS0iIItALA3r17kZuba/8LYoWgoCC88MIL+OKLL9iU2bW1tairq2OvXWBgIDw9PWEwGDAzM4O+vj60tbUJApIAsHPnTjz22GMWbTcxMRGnTp3Cl19+CYPBAJPJhMLCQpSWliIlJQVRUVFQKBQQiUTsNWtubhZs01xdeMeOHY57QZxALpfj1KlT+OSTT9jxOjw8jHPnzsHX1xdRUVHw8vKCyWRir+/yfUMkEmH37t3Iy8uDm5sbgoKC0N3dDWCpOuL27ds3/XlZyt3dHQkJCYIKjgCsCp6Eh4fDw8NDEKKUyWQPTKXAI0eOoL29nZ3729vbUVJSsunHO1mya9cuaLVa6PV63Lp1a9OqlJvduHEDi4uL8PT0FAR4iOMcPnwYnZ2dbADU2NgYPvzwQ6hUKqjVasFgjpGREfT09KClpUUwsEokEuHgwYPYt2+foLpyb28v5ubmBAMkHEUqleL06dP46KOP2ACUhoYG3L9/H+np6UhMTERYWBjbttFoxPj4OJqamlBVVYXR0VFB/0+cOCGY3eFhsXfvXiwsLKCoqAjA0qCsr776CmVlZcjIyIBarWbXEAAwMzODrq4uNDY2oqGhgYUZfXx88Oqrr7LKuc62e/duGAwG3Lx5E8BS9eVPP/0UCQkJSE5ORnR0NLy9vdmgv5GREbS1teHu3buC6rpyuRwvvfSSxYPIyOawJiQrk8mQkpKC6upqwf3p6elWfR45Ipjb3Ny84hrNHmlpaXj++ecdtr4HTX5+PkwmE8rLywH8/9/Rk5OTodFo2HW/VCoFx3EYHBxEc3MzSktLBYMwfHx88NJLL60a4CaEEEIIIYQQYj0K5hJCCCGEEEKIk2RlZa0I5mZlZTkkiBMeHo5f/vKX+O6771j1rcXFRdTV1W1YvUupVCIvL08wnamlgoKC8MYbb+Czzz5j06JzHIfu7m4W2FtNVlYW8vPzXXr6d1uIRCIcO3YMarUaV69exfj4OEwmEzo6OtDR0bHh40NCQvDMM88gNDTUpu3n5OTA29sbV69eZe/H7OwsKisrUVlZue5jFQoFjh49umXhSrVajbfeegvnz59n4RSO49DZ2YnOzs4NHy+TyXD06FGrK1Cr1Wq8+eabuHLlCnp6egAAc3NzqKioWHG8Lufv748nnngCGo3Gqm1ulejoaLz00ku4cOEC2z+AparNG01lHRkZiSeffBIRERHsPpVKxY7zpqYm6HQ6KBQK53TeAVJTUwWhD3d3d0RGRlr8eJFIhPj4eNTX17P7NBrNA3Mek0qlePbZZ/HHP/6RhWhu3ryJuLg4QfVzsjmkUin27NmDGzduoLu7G9XV1TZ9DtuivLycVc7bu3cvBW6cxNvbG6+++irOnj2LmZkZAEufa62trexabT3BwcE4fvw4O09FRUVBJBKB4ziYTCbU1dU5bVBIcHAw3njjDfzlL39hYf65uTncvXsXd+/eBbA0kEgikQiqx/MplUocP378gfmMtMWhQ4egUCjwww8/sEEvXV1drIq8SCSCu7s7OI5bdSaLuLg4PPvss/Dy8hJUQXb258q+ffvg5eWFK1eusH5rtVpotVqLHh8QEIBTp04hKCjImd0kNjAPcLNURkbGimBuZmamU7dJnE8kEuGpp56Ct7c3CgoKYDKZ2EwpDQ0NFq0jMjISL774IoXvCSGEEEIIIcSBHoxfEgghhBBCCCHkARQREYGgoCAMDw8DANzc3BwawvH398fp06eh1WpRUVGB1tZW9mP7ciKRCOHh4UhOTsauXbvsCuWEhYXhvffew507d1BWVrbm1KESiQSJiYnIzc1FeHg4u9/Dw0MQChOLxRtuMzQ0lAUcXDEIqFarER8fj+rqalRVVaGnp2fNKeNFIhGioqKwY8cOpKWl2R3UTk5Ohkqlwr1799DY2LjutoGlcHVGRgays7NZdTRLSaVSwXtnb5AkJCQE77zzDurq6lBRUYGurq4Nq3AFBgZi27Zt2Llzp81TsYeFheHNN99EQ0MDqqqq0N7evmbIwM3NDdHR0UhNTUVWVhbc3Nys2pZEIhG8ZjKZzKY+A0vHCn9dlrx/8fHxeO+991BcXIy6urp1A7kKhQJqtRrbt29HXFzcir+npKQIKji2t7cjLS1t1XUt31e2IgiYmJiI8PBwdjxER0db/f6lpqYKKgnbeg739PS0OgwbEhLCAnBKpdKm7YaHh+Pw4cOora1l95WUlODZZ58VnHtc4f16FCQkJKC/vx/19fW4e/cu5HI5kpKSnLrNhoYG3Lt3D8DS/rzasU0cJygoCO+99x5u3LiBioqKdT+PzSIjI7Fz505s27ZNcFwqlUpERESwQSRlZWVOrdYeHByMt99+G3fv3kVJSYmgiiIAGAwGGAyGFY9zd3dHdnY29u3b55SKvq4mJycHycnJuHHjBhoaGgTXDxzHrRpcDggIwL59+7B9+3b2HvOX24xzbkZGBmJiYlBUVIT6+nosLCxs+JigoCDk5OQgMzPT6s9PsjmsrV4bExMDX19fdj0YHR0Nf39/p26TbA6RSIT9+/dDo9GgqKgILS0tq56zl4uMjMRjjz2GlJSUTa3kTwghhBBCCCGPAhFnyb8OEkIIIYQQQgixmtFoxL/+67+yadCTkpJw6tQpp23PYDCgp6cH09PT0Ol04DgOCoUCCoUCYWFh8PT0dMp2R0dHMTg4iJmZGSwuLsLNzQ3BwcGIioqyK4Toiv7xH/+R3T558uSaIT29Xo++vj4MDw/DaDRCLBZDoVBAqVQKpoN2Br1ej/7+fszMzECn08FkMkEul8PLywvh4eE2B/w2w/z8PAYGBjA0NMQCIxKJBJ6enlAoFAgODnZK/+fn59Hb28teM5FIxN6v8PBwqwPMrmxoaAijo6OYmpqCwWCASCSCr68vgoODERAQQD/IE+JkHMfh6tWrrPp0Tk6O1dOIW7qdyspKlJWVAVgKXz355JN0jG8ivV6P1tZWdHZ2Ynp6GjMzM5BKpfD09ISPjw/CwsIQGxsLHx+fNdcxOzsrqLzq6+u7Ke+hyWRCZ2cnuru7MTY2hunpaRYk9fT0hKenJ7y9vREdHY24uDirB+ro9Xq2PrFYDG9v73WXNxgMgsrvPj4+NgdFl6/L29vbokFiq5mfn0dLSwt7j/nXEObr74SEBPj5+a14bFFREW7evAlgKbj761//et1tLS4uskrMgH37gtFoRHt7O7RaLaamptg1vEKhgJeXF8LCwhAVFWXzjA72Wv4eeXh4OO3aeW5ujn1XA+zbt/iWH7v27Gd8JpMJk5OTrO3u7m71dzydTseus+VyudUD3fjHLwB4eXlteA7gOG7D2RrsIZPJnDZ4c3nflUqlxWH6qakpFt635LWen59ngyLM1+i2WlhYQFtbGzo6Otj5yWg0QqFQwMfHB+Hh4YiJibE6mE0IIYQQQgghxHIUzCWEEEIIIYQQJ6mpqcH58+dZ+9VXX0VCQsIW9ojYy9JgLiGEELKWxcVFXLt2jVVCjYmJwYEDB2yuAr6cXq/HrVu3WPg3KioKR48etbvKOSHEcS5cuIDq6moAgEqlwiuvvLLFPSKEEEIIIYQQQgghjkTzDxFCCCGEEEKIk5SXl7Pbvr6+iI+P38LeEEIIIcQVSKVS5OfnIyUlBQDQ2dmJL7/8Eg0NDXZNEW40GtHQ0IDPP/+chXJTU1ORn59PoVxCXExnZye7HRQUtIU9IYQQQgghhBBCCCHOQP8iSwghhBBCCCFOMDw8jK6uLtbOyMig6aMJIYQQAgBwc3PDvn37EB4ejuLiYszNzaGoqAiVlZVISUmBWq2GUqm0aF0zMzNoaWlBY2Mjm+rew8MD+/btQ1xcnDOfBiEPvZqaGszPzyMkJAQhISFwd3e3e539/f2YmJhg7ZiYGLvXSQghhBBCCCGEEEJcCwVzCSGEEEIIIcQJzFPTAoBIJEJGRsYW9oYQQgghrighIQGRkZG4d+8eC9aWlpaitLQU/v7+CA8Ph5+fH7y8vODmtjT5mclkwvT0NMbHx9HX14exsTG2PrFYjOTkZOzYscMhAUJCHnWjo6MoLCwEAERGRuLMmTN2r7OoqIjdlslkFKAnhBBCCCGEEEIIeQhRMJcQQgghhBBCHGxhYQEVFRWsrVKp4OPjs4U9IoQQQoircnd3x549e5Ceno76+nq0trZCp9NhbGxMELrlOA4AVq3Ar1QqoVKpkJaWBoVCsWl9J+RhFxYWxm739vZiZGQEgYGBNq+vvr4ejY2NrJ2amgqZTGZXHwkhhBBCCCGEEEKI66FgLiGEEEIIIYQ42J07d6DX61l73759W9gbQgghhDwIlEolcnJysGvXLgwPD2NgYABDQ0MYHx+HTqfDwMAAACA0NBQKhQJ+fn4ICgpCeHg4AgMDVw3sEkLso1ar4enpidnZWXAchytXruDVV19lFayt0dbWhm+++Ya1xWIx9u/f78juEkIIIYQQQgghhBAXQcFcQgghhBBCCLFRX18f3NzcEBISApFIhIWFBVRVVaGgoIAtk5CQgKioqC3sJSGEEEIeJCKRCMHBwQgODhbc/+mnnwIAXnnlla3oFiGPJLFYjAMHDuDq1asAgPb2dnz++ec4ceIElEqlRevQ6XQoKirC3bt3Bffn5eXB19fX4X0mhBBCCCGEEEIIIVuPgrmEEEIIIYQQYiOtVoubN29CJBLB3d0dc3Nzgr9LJBIcPXp0i3pHCCGEEEIIsdfOnTuh1WrR0tICAGhtbcV//Md/IDs7G2q1GkFBQYKQ7uLiIiYmJtDX14eOjg7U1dXBYDAI1rl7927s3r17U58HIYQQQgghhBBCCNk8FMwlhBBCCCGEEBt5e3sDADiOWxHKFYlEOHny5Ipqd4QQQgghhJAHh0gkwqlTp3Dx4kVUVVUBABYWFlBSUoKSkhIAgJubG2QyGQwGw4oQLp9MJsPRo0eRnZ29KX0nhBBCCCGEEEIIIVuDgrmEEEIIIYQQYiNzMHc5pVKJ48ePQ6PRbHKPiLOFh4eD4zgAgKen5xb3hhBCCCGEbAY3NzecPHkSGRkZKCwsRHt7O7smBACTybRioB6fl5cXtm/fjpycHHh5eW1GlwkhhBBCCCGEEELIFhJx/H89IoQQQgghhBBilampKfT29mJychJGoxEBAQFQqVSQSGgcJCGEEEIc59NPP8X/Y+8+o6M68zyP/0oJRVBAICSRFRAZySCCSW6wMTh0e+yxGbvH7naf6dnTs/Ny95x9s+/35ez2Tnu63e12aNNg09gGgwGDCcKAkAQICVBCIIRyzqlqX2h1p24pVbgKwPdzDufoFrpPPVV1U+n+nv8jSW+//fYU9wRAR0eHysrKVFNTo7q6OvX29qqnp8f4/xkzZmj27NmaM2eOFi5cqNjYWNlstinsMQAAAAAAACYTd4oBAAAAwAczZ84ctXIuAAAAgCdPWFiYVq1apVWrVk11VwAAAAAAADAN+U11BwAAAAAAAAAAAAAAAAAAAIAnAcFcAAAAAAAAAAAAAAAAAAAAwAIEcwEAAAAAAAAAAAAAAAAAAAALEMwFAAAAAAAAAAAAAAAAAAAALEAwFwAAAAAAAAAAAAAAAAAAALAAwVwAAAAAAAAAAAAAAAAAAADAAgRzAQAAAAAAAAAAAAAAAAAAAAsQzAUAAAAAAAAAAAAAAAAAAAAsQDAXAAAAAAAAAAAAAAAAAAAAsADBXAAAAAAAAAAAAAAAAAAAAMACBHMBAAAAAAAAAAAAAAAAAAAACxDMBQAAAAAAAAAAAAAAAAAAACxAMBcAAAAAAAAAAAAAAAAAAACwAMFcAAAAAAAAAAAAAAAAAAAAwAIEcwEAAAAAAAAAAAAAAAAAAAALEMwFAAAAAAAAAAAAAAAAAAAALEAwFwAAAAAAAAAAAAAAAAAAALAAwVwAAAAAAAAAAAAAAAAAAADAAgRzAQAAAAAAAAAAAAAAAAAAAAsQzAUAAAAAAAAAAAAAAAAAAAAsQDAXAAAAAAAAAAAAAAAAAAAAsADBXAAAAAAAAAAAAAAAAAAAAMACBHMBAAAAAAAAAAAAAAAAAAAACxDMBQAAAAAAAAAAAAAAAAAAACxAMBcAAAAAAAAAAAAAAAAAAACwAMFcAAAAAAAAAAAAAAAAAAAAwAIEcwEAAAAAAAAAAAAAAAAAAAALEMwFAAAAAAAAAAAAAAAAAAAALEAwFwAAAAAAAAAAAAAAAAAAALAAwVwAAAAAAAAAAAAAAAAAAADAAgRzAQAAAAAAAAAAAAAAAAAAAAsQzAUAAAAAAAAAAAAAAAAAAAAsQDAXAAAAAAAAAAAAAAAAAAAAsADBXAAAAAAAAAAAAAAAAAAAAMACBHMBAAAAAAAAAAAAAAAAAAAACxDMBQAAAAAAAAAAAAAAAAAAACxAMBcAAAAAAAAAAAAAAAAAAACwAMFcAAAAAAAAAAAAAAAAAAAAwAIEcwEAAAAAAAAAAAAAAAAAAAALEMwFAAAAAAAAAAAAAAAAAAAALEAwFwAAAAAAAAAAAAAAAAAAALAAwVwAAAAAAAAAAAAAAAAAAADAAgRzAQAAAAAAAAAAAAAAAAAAAAsQzAUAAAAAAAAAAAAAAAAAAAAsQDAXAAAAAAAAAAAAAAAAAAAAsADBXAAAAAAAAAAAAAAAAAAAAMACBHMBAAAAAAAAAAAAAAAAAAAACwRMdQcAAAAATJ07d+6opKREkhQWFqadO3dOcY8ATCctLS26cOGCsbxjxw6Fh4dPej8qKip048YNY3nfvn2y2WxjrnPs2DE5HA5J0qpVq7Rw4cIJ7SMm1927d1VcXCxpas9f2dnZqqmpkSTNnTtX69evn5J+AAAAAAAAAACA6YNgLgAAAPAUq6ysVE5OjiQpOjqaYK4X7Ha7/PyYjARPpo6ODuMYIUmZmZlTEsytr6839WPfvn3jrpObmyu73S5JiouLI5jrpsflmPbo0SNjm4iJiZmy81dJSYmKiookSampqY9VMPdx+awBAAAAAAAAAHjc8Nd3AAAAAPDS3bt39cEHH0x1NwDAZ21tbfr88891+/btqe4KJkFhYaE++uijqe4GAAAAAAAAAABPJCrmAgAAAICHOjs7dezYMRUWFiokJGSquwMAXnM4HMrNzdXp06fV3d2t1atXT3WXMIFaW1t17NgxFRUVKSoqaqq7AwAAAAAAAADAE4lgLgAAAAB4KCcnR4WFhVPdDQDwWXd3t44ePTrV3cAkuXLlioqKiqa6GwAmWW9vrzo6OhQUFKSQkBD5+bk/kZ7dbld7e7skKSQkRIGBgRPVTQAAAAAAAOCJQTAXAAAAAABMa/Hx8dq1a5exbLPZprA3AABMf1VVVcrKylJpaam6u7uNxwMDAxUfH68NGzZo+fLlI67b3d2ty5cvKz8/X01NTXI4HJIGz7+zZ8/WwoULtW/fPuP3f/jhB/X390uSkpOTtXDhwjH7VlJSovLycklSaGioNm/e7MtLBUbU19enc+fOGctr167V7Nmzp7BH01N3d7cuXrxoLKenpys6OnoKe4TxXLp0SZ2dnZKkRYsWKSkpaYp79HTJzc1VY2OjJCkhIUFpaWlT3CMAAAAA0xXBXAAAAAAAMK3NnTtXc+fOnepuAADwWLh69apOnDhhBGqd9fX16f79+1qxYsWI69bX1+uzzz5Tc3PzsP9zOByqq6sbVjX3ypUrRvg3NDR03GBueXm5srKyJEnR0dEEczEh+vr6jO1MkubPn//UBHMdDofbA9m6u7tN79OSJUsI5k5zubm5amhoMJYJ5k6ugoIClZWVSZLWrVtHMBcAAADAqAjmAgAAAAAAAMA0MRR+rK6uVm1trZqamtTR0aHa2lpJ0kcffaSwsDBFRUUpNjZW8fHxmj17NtXEIUm6c+eOjh8/Pu7vxcfHD3usp6dHn376qVpaWjxeF8D0UFFRoYsXL2r//v1T3RUAAAAAAJ5qBHMBAAAAAAAAYIq1t7eroKBAxcXF6ujoGPb/ERERkgbDkz09PWpsbFRpaakkKTw8XElJSVq5cqXCwsImtd+YXqxGszUAACAASURBVL7//nvTcnp6ujZu3KjY2Fg5HA51dnaqo6NjxMqh165dM4VyY2Nj9fzzz2vx4sXy9/dXX1+fWltbNWPGjAl/HQA809vbq++//17Z2dmKioqa6u4AAAAAAPDUI5gLAAAAAAAAAFOkp6dH165d0+3btzUwMGA8Hh0drYSEBEVGRioiIkJ+fn6SJLvdrra2NjU1NenRo0dqbGxUe3u7rl+/rvz8fKWlpemZZ54hPPkUam5uVn19vbG8du1avfzyy8ayzWZTWFjYqOHtkpIS4+ewsDC99957Cg0NNR4LDAxUTEzMBPQcgK/OnTunq1evTnU3AAAAAADA/0cwFwAAAICl2tvb1dPTo97eXklScHCw8W8yp1i22+1qbGxUX1+fJCkkJEShoaEKCgqatD54o6urS62trbLb7bLZbAoJCVFISMik99vhcKi5uVnd3d2SpBkzZig0NFTBwcGT2o+pYLfb1dTUZGzDoaGhmjVrlkdt9Pb2qqmpSXa7XQEBAQoNDZ2wCoYOh0NtbW1GdUV/f39juwkImNyv/QMDA2poaNDAwID8/PyM8M+TML263W5XV1eXuru71dvba7zPwcHBCgwMnOruTUt2u12tra3q7e3VwMCA/P39jfPBZB/Turu71dTUJGkwWBYeHj5tj2fd3d3GtibJ2J8JWT6ZSktLdfHiRePzDg8P1/Lly5WcnKzw8HC32mhvb1dRUZFu376t9vZ23bp1S6Wlpdq6dasWL148kd3HNPPw4UPTcmZmptvrOhwOVVZWGssrV640hXKttGjRIuPniXoOIDAwUFu2bDGWn/RQucPhmOouAAAAAAAAJwRzAQAAAPikqalJBQUFKikpUU1NjREscRUUFKT4+HglJiYqPT3d4+k1Ozs7dezYMWN5x44dio2NHfY7eXl5KioqUmVlpanq3JC4uDilpqZqzZo1bvfh9u3bunXrlrHsXImst7dXhw4dGrbOxo0bNX/+fLfaLy8vV15enkpKStTZ2Tni78TFxSk5OVmrV68ecephd3z99dfq6emRJK1Zs0YpKSmm/+/v71d+fr5u376t+/fvG8FUZ1FRUUpJSdGqVauUkJDgVT+myqNHj5SVlWUs//SnPzUFKh88eKArV66oqKhI/f39pnXDwsK0evVqbdmyZdSAbX9/v65fv668vDw9evRo2P/Pnj1bK1asUGZmpkJCQnx6LQMDA7p165by8/N1//79Yf2VBgO6CxcuVEpKitasWTNhIcSWlhbl5uaquLhYNTU1stvtpv+32WyaPXu2Fi9erIyMDM2ZM8fj57h3756uXbtmLL/++uuTEvYdGBhQUVGR7ty5o6KiohGPbzabTYmJiUpOTtbKlSun/dTBPT09+vrrr41l1+Pk5cuXVVhYaHosNjZWO3bsGLdth8Ohe/fuqbCwUBUVFaqvrx+2PQyJjIxUfHy8li5dqtWrV09IiPzBgwe6ceOGysrK1NzcPOz/AwMDFRcXp2XLlmndunU+75e+ePjwoQoLC3Xnzh0jQOwqJiZGycnJSktL04IFC9xq98aNGyoqKjKWa2pqjJ87OjpGPH9t27ZNc+fO9fAVwFN2u11ZWVnG/hYSEqINGzYoJSXFqIzrrvDwcKWnp2vNmjW6e/eusrOz1dXVpZMnT2rFihXavHmzx23i8dTa2mr8HBQU5NG+3NXVZQxok+T2daw3kpKSlJSUNGHtA9LgeX7Xrl1T3Q0AAAAAAPCUIpgLAAAAwCstLS36/vvvlZ+f79bv9/b2qry8XOXl5crKytLKlSv14osvuh2E6u3tNYXFNmzYYPq/Cxcu6PLlyyMGFJ1VV1erurpaFy5cUHp6unbs2DFuJdO6urphQbUhAwMDI/5fWlrauIGG1tZWHT16VMXFxWP+nnO/s7KytHbtWu3cudPtSnpD7t69awR/ExMTjccdDoeuXbumc+fOGVVXR9PU1KQrV67oypUrSk1N1a5du7wOCk+2trY202f18ssvKzAwUO3t7Tp27Jju3Lkz6rodHR368ccflZeXp9dee03Jycmm/3/w4IGOHDkyaqBOGgx0D00x+/bbb3sdbH7w4IG++uorNTY2jvl7AwMDKisrU1lZmc6dO6etW7dqw4YN8vf39+p5XXV0dOjMmTO6fv36qOFLaXD7qqurU11dnbKzs7V69Wrt2bPHo6Bwc3PzqPvgRCksLNR3331nCjmNxOFwqKKiQhUVFfrhhx+0bt067d69e9pWN+3v7x/zvXSttiiZKxuO5u7duzp9+rRp4MJYmpubjc/1zJkz2rFjh5555hm31h3Pw4cP9d133434Wpz19fUZn9358+e1c+dObdiwYVIrPNfV1embb75RRUXFuL/b0NCghoYGXb58WQsWLNBLL700bICKq+rq6lE/b9fz6pD09HSCuROsr69PJ0+eNLbRJUuWaPv27T5Xkvb399fy5cu1dOlSnT9/XmVlZSooKFBra6uef/75Sa+ijsk3NABLksezVTivK1HJFgAAAAAAAPAFf40FAAAA4LHi4mIdPnx4WPXI2NhYJSQkKDo6WiEhIbLZbOrp6VFra6vu3bun2tpaSYNBtvz8fD169Ejvv/++T1UKq6urdejQIVNI0c/PTwkJCYqIiFBISIj6+vrU2Nio6upqI7hrt9t17do1FRcX65133hkzXBoQEGAKEfb395sCwCMFDMcLP5aWlurQoUPDQhDh4eGaN2+ewsLC5O/vr56eHlVVVamhocHod25uroqKivT2228rLi5uzOcZT3t7u7788kuVl5ebHo+Li9OsWbMUFhamgYEBtba2qqqqyvSZ3717V/fu3dMbb7zx2FY9q6ur0yeffKK2tjbjsYiICIWFhclut6utrU1dXV3G/3V3d+vAgQN6++23tWTJEknSDz/8oPPnzxvTxwYGBmrBggWaMWOG+vr61NDQYNo+u7q69PHHH+uf/umfPJ5S9+zZs7pw4cKwqWrnzJmjqKgohYWFyWazqa2tTZWVlUbQeqhyYlFRkd58802fq+eWlZXp8OHDpiB3QECAEhISFB4eruDgYPX29qq1tVUPHz40qrI6HA7duHFD9+/f1zvvvDMtpxR2OBw6ffq0Ll26ZHo8MDBQCxcu1OzZsxUeHq7u7m61tLTo3r17am9vlzS4f+bk5Bivb9asWVPxEsZks9mGff7O+3VgYOCw49dYYcGBgQEdP35cOTk5pscDAgK0YMECzZkzRzNnzlRQUJDsdru6u7tVXV2t8vJyY6BAR0eHjh07ppaWFv3kJz/x+rU5HA6dP39e586dM+0j4eHhiouLU2hoqAIDA9XR0aHm5mZVV1cbv9PT06MTJ07o/v37eu211yYlwFhUVKQvvvjCVKHSZrNp3rx5xjnMbrcb+9HQOVQaDOj//ve/1xtvvDFsoICzwMDAUc9fNpttxAA5lVUn1sDAgE6cOGFUVs/MzNTatWstfY4ZM2Zo165dysvLU3Z2tioqKnTq1Cnt2bNnUoPnmHzOxxNPB4g4ryuNfewHAAAAAAAAMDaCuQAAAAA8Ul5ers8//9wUenK3curDhw91/PhxI4zS0NCgM2fOaN++fV71paSkRIcOHVJvb6+kwanRt27dqrS0tBHDvr29vSooKND58+eNac1bWlr0xz/+Ue+9957mzJkz4vNs3rxZmzdvNpYvXLigM2fOSBqcevq//bf/5lG/y8vLdeDAAVO4d6ha3vz580cMzVRVVen8+fNGVdf29nb96U9/0v79+92qZjmS+vp6ffrpp2ppaZE0GODYsmWLVq9ePWKg0G63q7i4WBcuXFBlZaWkwff0888/1+uvv660tDSv+jFV2tra9Omnnxqh3NTUVG3dunVYJduysjKdPn1aVVVVkgbfhyNHjuhf/uVfdOXKFZ07d07S4LawY8cOrVu3ToGBgaY2KisrdeLECaM6Ym9vr44cOaL333/f7f6eO3dO58+fN5b9/Py0YcMGrV+/XtHR0cN+3263q6ioSGfPnjUCfeXl5frjH/+od999d9xK0aO5ceOGvv76a6NK7ty5c/Xss88qJSVlxBBPd3e3bt26pbNnzxpBzObmZv35z3/Wr371K82cOdOrfkwEh8Ohr7/+WtevXzceCw0N1bZt25SRkTFqWPP+/fv64YcfjIB7fX29PvnkE/3qV7/yOQRttdDQUP33//7fjeWuri79r//1v4zlV199VStWrHC7va+//lo3b940loOCgrR9+3ZlZGSMGQqz2+3Kzs7WmTNnjGN4VlaW0tLSFB8f78lLMto7cuSIqYr7ihUrtGHDhlGPqw0NDbp69aqys7ONc9rt27f1xRdf6M0335zQAOPNmzf11VdfGfuRn5+f0tPTtW3bNkVERIy4TnNzs7KyspSTkyOHw6G+vj4dPHhQ//iP/zhqhfbnnntOzz33nLF86tQpI3QeGRmpf/3Xf7X4lWE8Fy5cMK6Dtm3bNmHnTpvNpvT0dAUHB+vChQt68OCBLl26pC1btkzI82F6cL4+97RCvuugH6sq7AMAAAAAAABPI0pgAAAAAHBbT0+PvvzyS+PGvc1m0549e/TWW2+NG8qVpMTERL333ntasGCB8VhOTs64U8WPpLy8XH/961+NQNfWrVv1m9/8Runp6aNW4A0KCtK6dev0m9/8xhSE6erq0hdffGEKyk6U1tZWUyjXZrPppZde0s9//nMtWLBg1CDYvHnz9Oabb+rVV181qhn29vbq4MGDRrDWEy0tLfr444+NddPS0vSv//qv2rp166hVPv38/JSamqr3339f27ZtMx632+366quvjLDz4+LAgQPGtvfSSy/prbfeGhbKlQZD07/4xS+0ePFi47GhUO9QQHv27Nn6L//lv2jDhg3DQrmSlJCQoHfffVcLFy40Hnv48KER1B1PQUGBfvjhB2M5NDRUv/rVr/TCCy+MGMqVBj+vZcuW6Z/+6Z9M1Rjr6up08ODBYQEcd9y+fdsIE9psNr344ov69a9/rZUrV45aWS84OFjPPPOMfvOb3xhVhqXB99D5eDIdXLlyxRTKnTdvnv75n/9ZmZmZY1ZQXbhwof7xH/9RmZmZxmMNDQ06derUhPZ3qt28edMUyo2MjNSvfvUrbd68edxKjX5+fsrMzNQ777xj7DMOh8O0nbvL4XDom2++MUK5ERERev/99/X666+PeVyNiYnRiy++qF/+8pemoPrdu3f1448/etwPd9XU1JjC7cHBwXrnnXe0b9++UUO50uD7u2/fPv393/+9sT329/fryJEjk3L+gu9KS0t19+5dSYOVcidjQMvy5cu1fv16SdKtW7d07969CX9OjK29vV1NTU1qampSZ2fntDoPPgkGBgbU3NyspqYmtbW1Gd8VJlpPT4/xvK6zikxXdrtdLS0tampqUnNz87CZPCZSd3e38byP6z7gvC93d3c/tq/DE87bTGtr66RtM729vcbzdnV1PRbv9cDAgLGdDx2PXCuTTyddXV1GXzs6Oozr1CfdwMCAaV+ezOMgAAAAgCcfFXMBAAAAuO3q1avGlO2StGXLFlMQzR2BgYF6+eWX9X//7/+Vw+GQw+FQaWmp1q1b51E7zuGtffv26ZlnnnF73YCAAL3xxhs6dOiQbt++LWkwrHj69Gnt2bPHo3546vjx46abPS+88IIyMjLcXn/t2rXq6+vTt99+K2nwBtq3336r/fv3e9SPK1euGD9nZGRo3759bleHtNls2rlzp/z9/XX27FlJg2GEv/3tb/rFL37hUT+m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N3Xu3DnV19dr3bp1Xgu79fT06Pjx40YIMCEhgQr3D4jVatVTTz2lPXv2yOl0anBwUHv27NG2bdvuWbXebrcrJyfHpZKhv7+/nnrqKd67h2zNmjUqLy9XbW2tJOnSpUvq6+vTk08+6TJoaSw9PT06cOCAEQyThgZY3c9qucOSkpL02GOPGVPP3759W++8845bMx50dXVp//79LlVAZ86cSfXmR9id+2JRUdH3YhaH+fPnq7S01BiQcO3aNX3wwQfavn27IiMj77ruwMCAjh07prNnzxr3RUVFadOmTfe1z9LQgJc1a9YYYdXe3l699957+vGPf6y0tLS7rut0OnX69GkdO3bMCHtaLBb99Kc/vS8D83x8fPSTn/xE//M//2MMKPvqq6/U1dWlNWvW3PU7xul06tKlS/rqq69cgqk7duxwKzwdGhqq9PR04xjY3t6u999/X7t27brreXRZWZkOHDigjo4OSdKKFSuUn5/vUk3eHdu2bdP169eNATMVFRV69913tX37dkVFRd11XafTqfz8fGVnZxvh4EWLFqmtrU3Xrl3zqB8AAAAAfpgI5gIAAAAAHorBwUG1t7dLktcD2sD31fD0sMMVhwH89bFYLHryySf13Xff6erVq7p+/bo++ugjLV26VGlpafecFno8drtdpaWlOnfunDHwJTMzU6tWrSLY+QClpqbq6aef1v79++VwONTf36/PP/9chYWFmj9/vpKSklyO7zabTVevXtX58+ddpgj38/PT888/f8/gJ+4/Hx8f/fznP9eHH36omzdvSpJKSkpUWVmpBQsWKD09XXFxcUYFSIfDocbGRuPz2NPTY2wrOjpaP/3pTyf8OffU1q1b1d/fr4KCAklD5xn/+7//q4ULFyojI0Px8fEug58aGxt15coVnT9/3iUAN23aND377LMcSx5hCQkJLpU8Dx48qM7OTiUmJspkMqm9vV1Op1Pz5s17yD0d7Sc/+YnxHSZJNTU1+s///E9lZmYqIyNDM2fONAavOJ1ONTc3q7KyUmfOnDGCm9JQCHTXrl0PrFLw+vXr1d7ersuXL0saOp7v27dPSUlJWrBggZKTk10qVHd2dqqsrEznzp1TU1OTcb/ZbNbOnTvvGRSdjMjISL3wwgv68MMP1dfXJ6fTqePHj6ukpESLFi3S7NmzFRoaanzG+/v7VVJSory8PJdq3yaTSU899ZQSEhLcbnvr1q2qrq6WzWaTJNXW1uqPf/yjlixZovT0dON/AW1tbbp586auXr3q0uaiRYu0adMm5efne/y8AwMD9fOf/1zvvfeecSy+ceOG/vu//1vp6emaO3eu4uLijO/l3t5eNTc3q6KiQkVFRS7fy2vWrNH69ev1wQcfeNwPAAAAAD9MBHMBAAAAAA9FSUmJUbHnXlWFgB8Cu92u4uJiSVJKSopHU6wC+H7x8fHRmjVrFBsbq1OnTqm3t1c5OTm6ePGiMjIylJqa6nY4v6urS2VlZSouLjYqwlmtVq1Zs+a+VozG+ObPny9/f3998cUX6u7uliRVVlaqsrJS0tD77+fnp4GBAdnt9lHrR0ZG6tlnn72v1ejhGavVqpdeekmffvqpSkpKJA1V68zLy1NeXp6koZkVfH19x512PS0tTU8//bRbU7h7y3CILigoSGfOnJHD4ZDdbteFCxd04cIFSUODBcxmsxHWu1NGRoaeeuqpB9pveC4oKEjLli0zqscODg7q+PHjLo8JDg5+JIO5vr6+2rlzpw4dOqTc3FxJQwH3wsJCFRYWShoKr1oslnE/XzNmzNCzzz77QAe2mUwmPf3007JarTp37pxxf1VVlaqqqiT93/Fe0ph9Dw0N1Y4dO5SUlHTf+ztjxgy99NJL+vjjj9Xa2ipJqqurU11dnQ4ePCiTySR/f3/Z7Xbjd/pIwcHB2rFjh1JSUjxqNzg4WLt27dKePXuM78T+/n6dOXNGZ86cueu6K1eu1MaNGyc1KCAmJka/+MUvtG/fPiNoa7fbdeXKFV25ckXS0D5oMpnGfN4hISHavn27UlNTJ9wHAAAAAD9MBHMBAAAAAA9ce3u7Dh06JGloutH4+PiH3CPg4XI6nTp8+LDa2tokSYsXL37IPQLwICQnJys+Pl55eXlGsPb8+fM6f/68pk6dqtjYWE2ZMkUhISFGhU2Hw6HOzk61trbq1q1bamlpMbZnNpuVnp6urKwsQnQP2Zw5c/TWW2/pxIkTys/Pdwn7OByOMQNaVqtV69at09KlSx9YRVW4z2Kx6LnnnlNRUZG+++471dXVufx9cHBQg4ODo9aLj4/XunXrPA6zeYvJZNLGjRu1YMECHTlyRJWVlS4B3IGBgTHDaNHR0dqyZcsDCQzCOzZt2iSTyaSzZ8+OGbLu6upSb2+vAgICHkLv7s7Hx0fbtm1TWlqacnJydP36dZfnYLfbxxzIEBUVpdWrV2vevHkPpaKzyWTS1q1bjX4PB3KHjXe8DwwM1OLFi7V69eoH+n0dGxur3/72tzpz5oxOnz7tUtHb6XSO2VdfX18tW7ZMa9eunXA14vj4eL322ms6evSoSkpKxtw/R4qLi9OmTZs0c+bMCbV3p8jISL355pv67rvvRlUylzTmsTsoKEhZWVlauXLlA6vCDAAAAOCvi8l5r18/AAAAAPAIaGtr07/9278Zy6+88orXLtL8UPzLv/yLUaFm8+bNWrFixUPpx+DgoP74xz+qo6NDJpNJv/zlLxUXF/dQ+gI8KnJycnTs2DFJ0ty5c/XMM8885B4BeNC6urpUVFSk8vJyY7rnkYb/jTtW8Cg4OFgpKSmaO3euy7TZeDQMDg6qurpaVVVVam9vV1dXlwYGBuTv7y+r1aqpU6cqNTVVCQkJkwrkdnR0GPuOxWJRZGSkR30cObV6ZGSkLBaLW+vW19cb+2doaOg998HOzk6jurPZbL5nZeD+/n7dvn3bWI6Ojp5wVfk7txUVFSVf34nVL2ltbVVJSYlqa2vV09NjBL0CAgIUFham6dOnKykpyaP34UGw2WyqqKjQjRs31NXVpa6uLjmdTlmtVgUEBCguLk6pqamT6ren+8T94HA41NDQYCxPmTLlnoHU5uZmI6QcGBiosLCwCbc/cltWq1Xh4eET3panOjo6VFpaqubmZnV1dclisSg0NFTR0dGaM2eOy2fbbrersbHRWJ46deqEg6J3bsud13w8nZ2dKi0t1fXr143Pl9PplL+/v4KDgxUbG6vExERNnz59Qtu/Xzo6OlRZWana2lo1NjYagU+LxSJ/f3/FxMQoLi5OycnJEz72NDU1GdsNDg5WSEjIhLbjdDp148YNVVRUqK2tTZ2dnerr65PFYpHValVYWJhSUlKUmJjo9veBO1pbW1VWVqbq6mr19PSov79f0lAQNiYmRunp6YqNjR213sjjSkhIyISrIzscDlVXV+vatWtqb283nvfwdiMjI5WUlKRZs2aN+Z3c0tJiPH6yxwkAAAAAf90I5gIAAAD4XiCYO3mPSjBXko4fP66cnBxt375dixYtemj9AB4VbW1t+q//+i9NmzZNP/vZz6h0CfyAOZ1ONTU1qb6+Xo2NjWptbZXNZlN9fb2koSmZg4KCNGXKFEVFRSk2NlaRkZEPpVIgAAAAAAAAAGC0iQ3HBAAAAABgEtatW6eZM2cyNS7w/4WHh+v5559XbGysVytSAfj+MZlMio6OHlVFdPfu3ZKkn//85w+jWwAAAAAAAAAANxHMBQAAAAA8cD4+PoRygTtQBRwAAAAAAAAAAOD7z+dhdwAAAAAAAAAAAAAAAAAAAAD4a0AwFwAAAAAAAAAAAAAAAAAAAPAC34fdAQAAAABwR2hoqH7/+98byyEhIQ+xN99Pb7zxhhwOhyQpMDDwIfcGAAAAAAAAAAAAAP76EMwFAAAA8L3g4+OjKVOmPOxufK+FhYU97C4AAAAAAAAAAAAAwF81n4fdAQAAAAAAAAAAAAAAAAAAAOCvAcFcAAAAAAAAAAAAAAAAAAAAwAsI5gIAAAAAAAAAAAAAAAAAAABeQDAXAAAAAAAAAAAAAAAAAAAA8AKCuQAAAAAAAAAAAAAAAAAAAIAXEMwFAAAAAAAAAAAAAAAAAAAAvIBgLgAAAAAAAAAAAAAAAAAAAOAFBHMBAAAAAAAAAAAAAAAAAAAALyCYCwAAAAAAAAAAAAAAAAAAAHgBwVwAAAAAAAAAAAAAAAAAAADACwjmAgAAAAAAAAAAAAAAAAAAAF5AMBcAAAAAAAAAAAAAAAAAAADwAoK5AAAAAAAAAAAAAAAAAAAAgBcQzAUAAAAAAAAAAAAAAAAAAAC8gGAuAAAAAAAAAAAAAAAAAAAA4AUEcwEAAAAAAAAAAAAAAAAAAAAvIJgLAAAAAAAAAAAAAAAAAAAAeAHBXAAAAAAAAAAAAAAAAAAAAMALCOYCAAAAAAAAAAAAAAAAAAAAXkAwFwAAAAAAAAAAAAAAAAAAAPACgrkAAAAAAAAAAAAAAAAAAACAFxDMBQAAAAAAAAAAAAAAAAAAALyAYC4AAAAAAAAAAAAAAAAAAADgBQRzAQAAAAAAAAAAAAAAAAAAAC8gmAsAAAAAAAAAAAAAAAAAAAB4AcFcAAAAAAAAAAAAAAAAAAAAwAsI5gIAAAAAAAAAAAAAAAAAAABeQDAXAAAAAAAAAAAAAAAAAAAA8AKCuQAAAAAAAAAAAAAAAAAAAIAXEMwFAAAAAAAAAAAAAAAAAAAAvIBgLgAAAAAAAAAAAAAAAAAAAOAFBHMBAAAAAAAAAAAAAAAAAAAALyCYCwAAAAAAAAAAAAAAAAAAAHgBwVwAAAAAAAAAAAAAAAAAAADACwjmAgAAAAAAAAAAAAAAAAAAAF5AMBcAAAAAAAAAAAAAAAAAAADwAoK5AAAAAAAAAAAAAAAAAAAAgBcQzAUAAAAAAAAAAAAAAAAAAAC8gGAuAAAAAAAAAAAAAAAAAAAA4AUEcwEAAAAAAAAAAAAAAAAAAAAvIJgLAAAAAAAAAAAAAAAAAAAAeAHBXAAAAAAAAAAAAAAAAAAAAMALCOYCAAAAAAAAAAAAAAAAAAAAXkAwFwAAAAAAAAAAAAAAAAAAAPACgrkAAAAAAAAAAAAAAAAAAACAFxDMBQAAAAAAAAAAAAAAAAAAALzA92F3AAAAAAAAAPgh6u3tVUVFhVpbW9Xf36/g4GDFxMRoxowZMplMXmvn4sWLqq2tlSQ98cQTCgwM9Nq2AQAAAAAAAACAK4K5AAAAAADA665du6Yvv/zSWP71r38ti8XyEHuEyXI6nXr//ffV1tam2bNna+vWrV5vo6+vT2VlZaqurlZLS4v6+vokSWazWeHh4YqNjVV6errCw8O93nZPT49KS0t1/fp1IygrSb6+vgoPD1d8fLzS0tIUGho66bb6+/uVnZ2t/Px82e32UX8PCQnRhg0bNH/+/EkHdNvb23Xw4EENDg5qzpw5hHIBAAC+x9ra2tTS0iJJslgsSkhIeKDtt7S06OLFi2poaFBbW5sGBwcVGBioqKgoxcfHKzMzUwEBAQ+0TwAAAADwKCKYCwAAAAAAvG5gYECtra3GstPpfIi98czt27cVERHxsLvxyDl79qyuXbsmSbLZbF7ddl9fn7799lvl5eUZgdg73bx5U1euXNHRo0c1Z84cbdmyxSsB3e7ubh0/flwFBQUaHBwc8zE3btxQYWGhDh8+rMzMTG3evFnBwcETaq+vr09//vOf1dDQMO5jOjs79fnnn6u2tlbbtm2bUDvDjh07psHBQfn4+GjTpk2T2hYAAAAersLCQh07dkySNGXKFP3+979/YG1/++23OnnypBwOh8v9ra2tqq2tVUFBgebMmfPA+gMAAAAAjzKCuQAAAAAAABqqYnrs2DGVlJTo7/7u7x52dx4ptbW1+uabb+7LthsaGrRnzx61t7eP+puvr698fHxcwrpOp1MlJSWqqqrSM888o9mzZ0+47Zs3b2rv3r1jBo0tFotMJpNL2w6HQ4WFhaqoqNDOnTuVmJjocZsff/yxEcoNCQnRmjVrlJqaqoCAALW3t+vy5cs6e/asHA6HcnNzNXXqVC1fvnxCz6+urk6FhYWSpCVLlhA4BwAAwIR8++23On78+F0fExISMuHBawAAAADw14ZgLgAAAAAA+MGrqanRJ598oo6ODoWGhj7s7jxSmpqa9OGHH8put9+Xbb/77rvq6ekx7ktNTdWyZcuUkJAgPz8/SUNVZhsbG5Wfn6/Lly/L4XCov79f+/bt0/PPP6+UlBSP275586bef/99l+BtRkaGli5dqtjYWKPtnp4eNTQ06MKFCyoqKpLT6VRPT492796tl156yaPpg69evaqKigpJUkREhH75y1/KarUafw8ICNCmTZuUnJys3bt3y+Fw6Pjx48rMzFRISIjHz/HIkSNyOp3y9/fX448/7vH6AAAAQGtrq06ePOlyX2ZmpjIyMhQQECC73S6bzSZfXy47AwAAAMAwfiEBAAAAAIAfvIqKCnV0dDzsbjxyWlpa9N5776m7u9vr2+7r69OePXuMUK7ZbNaOHTs0b968UY/19/dXQkKCEhIStHjxYu3bt082m00Oh0Mff/yx3nzzTU2ZMsXttru6urRv3z4jlOvn5zdu9V2r1arExEQlJiZq4cKF+stf/qK+vj4NDg5q3759+oJV+h8AACAASURBVNWvfuV2ZbBvv/3WuP2Tn/zEJZQ7UlJSkpYsWaLc3Fz19/frwoULHgdry8rKVF1dLUlavXq1AgMDPVofAAAAkKTi4mI5HA5jefPmzVqxYsVD7BEAAAAAPPp8HnYHAAAAAAAA8Oi5deuW3n33XXV1dd2X7X/zzTdqbW01lp9++ukxQ7l3SkhI0AsvvCCz2SxpKOC7f/9+j9o+dOiQy/PauXPnmKHcOyUnJ2vXrl0ymUySJJvNpgMHDrjVZn19vRoaGiRJM2bMUFxc3F0fv3TpUuP25cuX3WpjmMPh0NGjRyVJoaGhWr58uUfrAwAAAMNu3rxp3A4LC+PcEgAAAADcQDAXAAAAAAAALvLz8/WnP/3JpYqwn5+f17bf1tamCxcuGMvz5s3T3Llz3V4/JiZGa9asMZavX7+u8vJyt9atr69XUVGRsbxs2TIlJye73XZiYqJLaLakpES1tbX3XG+4eq0kpaSk3PPxUVFRCg0NlTQ0fbAnAen8/Hw1NzdLkp544gmmFQYAAMCEtbS0GLcTExONQWoAAAAAgPHxX3kAAAAAAABIkvr7+3Xo0CFdvHjRuM/X11c7duzQpUuXVFFR4ZV28vLyjOlwzWaztmzZ4vE21qxZowsXLqizs1OSdO7cOaWmpt5zvfPnzxu3/f39tWHDBo/b3rBhgy5duqS+vj6j7b/5m7+56zp1dXXG7ejoaLfaiY6ONsLR9fX1bgV6+/v7deLECUlDAeb58+e71RYeHU6nU01NTaqvr1djY6NaW1tls9nU2NgoSXrnnXcUFBSkKVOmKCoqSrGxsYqMjCQkAwAA7ovhc15JxsAxAAAAAMDdEcwFAAAAAACArl69qsOHD7tUyQ0NDdXOnTsVFxenS5cueaUdp9OpwsJCYzktLU1BQUEeb8fHx0eLFi3St99+K0mqqqqSzWa767bsdruuXr1qLM+fP18Wi8Xjtv38/DR//nzl5uZKkoqLizU4OHjXyrQjX9eQkBC32hkZfHC3Yu6pU6dks9kkSZs3byas+T3S1dWloqIilZeXG+/hSMP7TV9fn/r6+tTS0qLKykpJUnBwsFJSUjR37twJfZ4AAADG09/fb9z29/d/iD0BAAAAgO8PgrkAAAAAAAA/YLdv39bBgwdVVVXlcn9GRoa2b9+ugIAAr7ZXV1fnElJdtGjRhLe1ePFiI5jrdDpVWVl51wqx1dXVLhW/Jtv2cDB3cHBQ1dXVd61o29vba9x2Nwzs5+dn3B7Z7/F0dHTo7NmzkqTU1FTNmjXLrXbwcPX19SkvL0/FxcWy2+3G/VOnTlVcXJzCw8MVEhIiHx8fSZLD4VBnZ6daW1t169YttbS0qKurSwUFBSosLFR6erqysrIIzgAAAK8YnulC0l0HogEAAAAA/g+/ngAAAADcNw6HQw0NDaqvr1dra6scDofMZrOCgoIUGhqq+Ph4BQcHP+xuPnTt7e2qqalRU1OT8Rr5+/srLi5O8fHxMpvND7uLD43T6TT2oZaWFpd9KCQkRPHx8W5Xnvy+aWlpUXFxsXp6ehQQEKC4uDjNmDHjge8PbW1tunnzpmw2m2w2mxwOh3x9fRUVFWUExu63jo4ONTQ0qLm5Wf39/RoYGJDJZFJAQIACAgIUGRmpuLi4R+4icW9vrxobG9XY2Kje3l4jmOnv76+AgACFhIQoISHhoVe3/OKLL1RTU2Msh4SEaNOmTZo3b959aW9kWyaTSQkJCRPeVlhYmCIjI9Xc3CxJqqiouGswd2Tbfn5+iomJmXDb06ZNU1BQkFHZtKKi4q7B3JGBBqfTOeF27+bYsWPG52PTpk33pQ14V2VlpU6dOmUcH4KDg5WRkaHU1FS3z5G6urpUVlam4uJidXV16cqVK6qsrNSaNWsIZwMAAAAAAADAQ/BoXbECAAAA8Feho6NDOTk5unz5ssuUh2OJjo7WvHnztGzZsntWEBwYGNC///u/a3BwUJK0cuVKrVmzxuP+tbe367/+67+M5VdeeUXTpk3zeDsXLlxQdna2pKEp1X/3u9/JarWO286uXbs0c+ZMY7moqEjfffed6urqxm3Dz89PixYt0qpVq+5rANXhcOg//uM/1N3dLUlKTEzUc88955Vtl5WV6bPPPpM0VF3nd7/73T2r+HV2dhr70L2qREZFRWnevHlavny5x1PS5+fn6+jRo5KG3sO///u/92j9kS5evKgjR44Yy//4j/9418fb7Xb967/+q6Sh9/kPf/iDcf/Ro0d1/vz5UeG9oKAgZWVlaeXKlS6VNL2tu7tbeXl5unr1qhoaGu762IiICGVlZWnJkiUev/5309XVpdzcXBUVFen27dv3fLzZbFZ8fLyWLVumtLQ0mUymuz7+5MmTRmVRScZxRRra//75n/951DrPPPPMXYOX0tD7V1BQoCtXruj69etuBTAjIiK0aNGih17h0mKxaMWKFVq9erVX38s73bp1y7gdFRU16X15xowZRjD3zqq/d6qtrTVux8bG3nM/uZvhUHFJSYlbbY98b+/13ThsYGBgzPXHUl9fr8uXL0saquYbFRXlVht4OBwOh7777jtdvXpVkmS1WvXYY49p9uzZRmVcdwUHB2vx4sVasGCBSktLlZubq56eHh05ckSZmZlauXKlx9uEd9XV1am0tFQ3btwwBplIQ+9dUFCQYmJilJqaqsTExAkPwLl165ba2tokSYGBgUpMTBz1GLvdroqKCpWVlampqUkdHR3q6+uTv7+/QkNDNWXKFKWkpCgpKcnrg0Y6OjpUXl6uqqoqdXR0qKOjQ/39/QoICFBwcLDCw8OVkpKilJSUCbc9/HmSpOnTp2vKlCkuf+/s7FRhYaGqqqpUX18vu90ui8WioKAgRUdHa8aMGcrMzPR6pXhP3b59W4WFhbp165Zu376tnp4eOZ1O+fv7G/vLzJkzlZaW5rXzQafTqerqapWXl+vWrVtqbm6W3W6Xj4+PgoKCFBwcrPj4eM2ePVtxcXET+v7s7OzUjRs3jOXU1NQJn290dXW5DLZxZ1tlZWXG+d6cOXOMz9rAwIDOnz+vkpIStbS0yNfXVzExMUpLS9PcuXPd7mN3d7exjzc2Nqqnp0d9fX3GYLKIiAjFx8crNTVVsbGxE3re4+nv71dVVZUqKirU1NRkDKgb3r9DQkKUmJio1NTUR+b8wOl0qra2VhUVFWpsbFRTU5P6+/uN46PValVAQICmTp2qhIQEJSYmTug3e2trq8vv7YyMjFGPqa6uVnFxsWpqaozj6PB+HxcXp6SkJCUlJU3qvHEkh8NhtNnY2Cibzabu7m5jAGp4eLhmzJihjIyMBzII8k6NjY3GufWwkRX96+vrXY63w6ZNm6aIiAiX+2pra9Xe3i5Jio+PV2hoqKSh97+oqEgFBQVqaGiQ0+lURESEUlJStHDhQrf/9zFyP7px44a6urpks9nkdDoVFBSkoKAgTZ8+XSkpKZo5c6ZXB7k6HA7duHFDFRUVqq2tVVdXl/H/lMDAQAUHBys2NlapqalKSEjgXAwAAAD4ASKYCwAAAMBrnE6nEU50Z8ptaeiizzfffKPc3Fxt3bpV6enp4z7WYrEoPj7eCEFduXJlQsHciooKlynFy8vLJ3SR7+rVq8Z2Zs2a5RLKlYZej5HtDF/Mstls2r9/v8rLy+/ZRn9/v86dO6fLly9r165dmjFjhsf9dIePj49mz55tBBVLS0vV0dFhXDibjAsXLhivw9y5c+8ZLisoKNDhw4ddXru7aWpq0rFjx5Sbm6stW7YoMzPT7b4NDg4a7Uz2Qpndbne7z8OGHz9cSdPpdOqjjz5SWVnZmI+32Ww6efKkent7tXXr1kn1dzwFBQX6+uuv3Q4O3r59W4cPH9bp06f15JNP3vUz7A6n06lTp04pJyfHJZR4L3a7XdevX9f169cVHR2tnTt3jrowPNLI936sPoz1t5EXpMdSWVmpAwcOqLW11e1+S0OvYXZ2tnJycrR9+3aP9mFvCAkJ0YYNG7RkyZJRx7H7YeTrM3369ElvLyEhQfn5+ZKGPiM9PT3jPo/70fbwd9Lt27flcDjGPZaMrH7a3t6u+Pj4e26/o6PDuB0YGHjXxx45ckROp1N+fn56/PHH3eg9HpaBgQEdOXJEN2/elCQlJSVp3bp1kw7Ymc1mZWRkKDk5Wd9++62qqqpUVFSkjo4Obd68+ZGrKv5DUF9frwMHDhjv9Z16e3vV3Nys69ev69y5c7JarVq7dq2WLl3qcXgoLy9PFy9elCTNnDlTr7zyivG3gYEBnTp1yghtj9WP9vZ23bhxQ5cvX5aPj4+WLl2qdevWTfp7oaGhQdnZ2aqoqBjz7729vUZ1/itXrshkMmnOnDnasGGDIiMjPWrrL3/5i3F7+/btRjDXZrPpm2++0aVLl1yqlw+339nZaQxuyM7O1urVq7Vy5UqvhfDc1dzcrCNHjoz7G2H4fbp165by8/Pl5+entWvXavny5ZMKm1VUVOjQoUPjDoTq7u5WU1OTrl27ppycHIWHh2vDhg3KzMz06DWqq6tzeY/+8Ic/TDiYW19f77Ktv/3bv71ngPHLL79UV1eXJOkf/uEfZLVa1dHRod27d6uxsdHlsR0dHSorK9PRo0eNc6TxdHZ26uTJk7p06ZLLQK+Renp61NraqoqKCp04cUKRkZFau3at5s6dO6n9rLe3VydPnlReXt6YbY/cv8vLy3X06FFFR0dr/fr1SktLm3C7k+FwOJSfn69Tp04Zgc2xDJ+L19XVqaioSNLQYKy1a9cqOTnZ7faqqqr01VdfSRoaVPVP//RPLn87cuTImAMRe3t7dfv2bV2/fl2nT59WbGystm3bpri4OLfbvpPdbteZM2d0+vTpMY/F0lDovKGhQaWlpTp69KgSExO1cePGSbXrqStXrignJ2fcvxcUFKigoGDU/Zs3b9aKFStc7jt79qyuXLkiSdq5c6dCQ0Nlt9v12WefGe/rMJvNppqaGp04cUJZWVnavHnzuMc2p9OpS5cu6cSJE+PuR8PHrurqap05c0YBAQFavny5Vq1aNalzIofDoby8POXk5BjHlDvZbDbjuPndd98pKChIK1eu1PLlywnoAgAAAD8g/DcWAAAAgFc4nU4dPHhQeXl5LveHhoYqLS1N06dPV1BQkMxms/r7+3Xr1i0VFRWppaVF0tDFz48++kgbN27UqlWrxm0nMzPTCEE1NjaqtbV1VDWse6msrBy1vHr1ao+20dvbq+rqapd+uaO1tVXvvPOOS9gqIiJCc+bMUVhYmMxms7q6unTt2jXV1NQY1TZ7enr0/vvv67XXXptQiNgdixcvNoK5wxe6JhJ8Hqmzs9MlXLB48eK7Pv7QoUM6d+6cy30hISFKS0tTbGysyz40fJF2OETQ2dmpjz/+WLdv39batWsn1e+H5cyZM+OGckfKysq6L+0fO3Zs1EVYi8WiOXPmaNasWQoODpavr6+6u7uNwMLwftrZ2amPPvpIK1as0KZNmybUvt1u1yeffKLi4mKX+6OjozV//nxNnz5d4eHhCgwMlN1uNy54VldX68qVK8YF/MbGRr3zzjv61a9+NW7Vvbi4OJeQRW1trerr643nPH/+/FHr3C3wkZubq6+//tqlQm5gYKDmz5+vGTNmKCoqSlarVT4+PrLZbOro6ND169d19epVoyJVX1+fPvnkE1ksFs2ePdvNV23yfvrTnz6wtiTXcKw3wv93BrBbWlrGDC84nU6XC/febtvhcKi9vX3c76S4uDhj325sbHTre6Opqcm4HR0dPe7jysvLde3aNUlD1eRHhoDxaLHb7Tp06JBROXrZsmVauHChV9vw9/fXxo0bdfHiReXm5urGjRs6evSotm7d+sCDhj9UTqdTJ0+eVE5OzqggqDRUidHPz0/d3d0ug9l6enp0+PBh5ebm6vnnn/c4mDqW6upq7d+/36gCOZLFYpHZbJbdbncZDONwOLwyMOzMmTPKzs4e9RpYrVbjnGJgYECdnZ3G6+B0OlVSUqLy8nL96Ec/0qJFiybU9rDr16/rL3/5i2w2m1uP7+3tVXZ2tm7cuKFnn33Wq9UV7yYvL0+HDh0aNQjIYrHIarXKbDbL4XCoo6PDONfo7+9Xdna2ysrKtGvXLo9D1AMDAzpw4IAuXbo06m8+Pj4KDAyUr6+vbDaby/7R1tamTz75RLm5uXruuefuOXDkUdXX16f3339/VGXQkXp6eu46c0NRUZG++uqrcQd7BQQEaHBwcFRotrm5WZ9++qny8/O1c+fOCQXgb968qb17947at319fRUWFiY/Pz/Z7XZ1d3e7hAcbGxu1b98+LViwQNu3b39g+7g0NDBp7969xjn3SEFBQYqKijJCi8NB9JHPr6amRh988IFWr16tDRs2TLgfTqdTR48e1ZkzZ9xe59atW3rnnXe0Y8cOzZ071+M2W1pa9NFHH407G4nFYpGPj8+oAc7V1dV6++23tXz5cm3YsOGBvl/3y/79+0eFckcarkQ73nPt6+vT3r17Xf4fMywsLExWq1Umk0k9PT1qb283jpm9vb06ceKErly5oueff15Tp071uO82m00ffvihywwg0lDoe7htp9Opnp4el+O1zWbT0aNHjbbv52xIAAAAAB4dBHMBAAAAeEV2drZLKNfPz0+bNm3SkiVLxgyBpKWlaf369aMq7GZnZ2tgYGDcan+zZ8+Wr6+vcXGzpKRkVFWWu3E4HKOmG79x44b6+/s9qlRXVlZmhAx8fHzcqhLa2dmpL7/80gjlTp8+XZs2bdKsWbNGPXbdunVqaGjQ/v37jak3BwcH9cknn+jXv/71fQnWREVFKSEhwZhitqCgQKtXr55UWxcvXjQuRk2dOnXMaZWHHTt2zCWUa7FYtHHjRi1dunTcfejxxx/XpUuXXCrsHj9+XAMDA5O6WPsw2Gw2nThxQtLQhel169YpNTVVYWFh6ujoUE1NjS5evChfX1+vBHXudO7cOZdQrslk0tKlS/XEE0+MW+V45cqV6ujo0LFjx3T58mU5nU6dOXNGfX19mjNnjsd9OHz4sEsoNzQ0VNu2bRt3W8NTT2dmZmrDhg06cuSIUS2wq6tLR48e1dNPPz3mumlpaS6Vwo4dO2aEBKxWq3784x+73e/y8nKXUK6Pj4/WrVunlStXjlmNyWq1KjIyUklJSXr88cdVUFCgAwcOyG63y+l06sCBA0pMTPTa9NSPkoGBAZeAhTcCpGFhYS7L4wVzOzo6XAJP96vt8YK5I4/1FRUVWr9+/V233dzc7DIt/Z1tDRsOl0hDAxlWrlzpdv/x4OXk5BhhjrVr1066yvh4TCaTFi9erICAAOXk5KimpkanT5++6+AneIfT6dTXX3+t3Nxcl/vT0tK0cOFCpaSkuISNOjo6VFVVpby8PNXW1koaOpb86U9/0vPPP6+EhIQJ9yUvL08HDx40vp/CwsK0YMECzZ49W9HR0Ua1UqfTqYaGBpWVlenixYvGsWd4YNgzzzzjcXXNEydO6OTJky73zZ07V1lZWZoxY4bLuZ3D4VBtba0uXLhgnE/Y7XZ98cUX6uvr0/Llyyf0/Kurq7V7927jd0NISIgWL16s5ORkhYeHy2KxyOFwqKamRvn5+S6DyUpLS3X8+HFt3LhxQm174vz58/r666+NZX9/fy1btkzp6emaNm2ay2s1PEPA+fPnVVpaKmkorLh792698sorbleBHBwc1N69e11+F/n4+GjhwoXGoKLhdp1Op1paWlReXq7z588bA2xqamr09ttv64UXXvB4oOSj4NixY0Yo12QyKT4+XiEhIUbF0r6+Pvn4+GjZsmVjrn/x4kV9+eWXLoOyIiIitGjRImVkZCgsLMwImfb09KihoUFXr17VpUuXjJkpqqur9ac//UmvvPLKuIPJxnLt2jXt3bvXZYaLmJgYrVq1SrNnzx51DtnS0qKioiKdPn3a+M106dIl2Ww27dq164GEPdva2vT222+7hIQDAwO1YsUKZWRkjBmSdDqdampq0sWLF12qAp86dUrTp09XRkaGx/1wOp368ssvjd8M0lDl+szMTM2YMUNBQUEymUzq7u5WaWmpzp49a/x+Hxwc1P79+xUdHX3XAVN3ampq0p///GeXKrm+vr6aP3++5s2bp7i4OON4bLfb1dbWpvLychUWFurWrVvGb6y6ujr97Gc/8/g5e2rp0qWjzk/effdd4382K1euHDOc7M6gt+LiYhUWFhrLERERmjZtmvr6+tTQ0GDsH+P9j6e7u1sffPCB8T8Saei31YoVKzRv3rxRAyl7e3tVUVGhnJwcozJ2c3Oz8bnz5Hd1R0eH3nvvPZewfnBwsFatWqXMzMxRYdvu7m6VlZUpJyfHGJBeV1enP/3pT3r11Ve9MkgQAAAAwKONYC4AAACASauqqtLp06eN5aCgILcucgyHRhITE/Xuu+8aF7xOnjyphISEMaeo9PPzU2pqqhHeKy4u9iiYe/PmzVFVaOx2u65du+ZRkHBkeDAxMdGtSlEHDhwwqk25U6Fo2rRpeuWVV/TOO+8YF56amppUVlY2odCjOxYvXmwEc1taWlRTU6OZM2dOaFtOp9PlgufixYvHDflev37dJRQaGBiol19++Z4XPE0mkxYuXKiZM2fq3XffNaphnjp1SgkJCQ+06uhknT17VgMDAwoLC9MvfvELlwt1YWFhmjdvnubNm+dy8d9bmpqajGCfNBTM2Llzp1v7WWhoqJ5++mnNnTtXH330kQYGBpSfn3/X6mJjuXbtmkuIacqUKXr55ZfHDSPeKSAgQNu3b1dfX5+uXr0qSbp8+bK2bNky6Wm476a/v1+ff/65SyjX3ddOGtqHFy1aJB8fH33++eeShi76lpSUjFm19/vuzoqN3gjHhoSEyMfHxxgsMXzh+0G0PVYwd7zplWNjYzVt2jQ1NDTo1q1bunnzpuLj48fd9vnz543bd5vqOj8/36isu379+glPC477r7Ky0gjSDYfu7reMjAz19vYqNzdXV65cUWxs7JgDguA9J0+edPk+CwsL044dO8Z93UNDQ7Vw4UItWLBAp0+f1jfffGNU29u9e7dee+21CQ3IGRn29PHx0erVq7VmzZoxg5smk0kxMTGKiYnRypUrlZ2dbQyWGh4Y9vrrr7sdRMvNzXUJ5YaEhGjnzp3jHvN8fHyUkJCghIQEZWVluVQBPXLkiOLj4+96vBxLbW2tDh8+bAT5Vq9erccff3zMc+/hwTpFRUX67LPPjEEcp0+f1oIFCxQVFeVR255obW11OQdLTEzUs88+O+5vC7PZrKSkJCUlJencuXM6dOiQpKHne/z4cbdnLfj0009dQrmxsbF6+umnx3yuJpNJERERioiIUFZWlg4dOqQLFy5IGvree//99/X666/f1/Mtb2tvbzcGlSYkJGjHjh0uVfAHBwdVXl6utra2Mc9Fq6qqXEK5Pj4+evzxx7Vy5cox9zGr1arExEQlJiZq3bp1OnjwoHG+2tzcrH379unll192KyDb3NysPXv2GL8rfXx8tHXrVmVlZY17rjB16lStWbNGS5Ys0UcffaTr169LkhFYHG9QrLc4HA795S9/cQnlzp49W08//fRd9xuTyaTo6Ght2bJF8+bN03vvvWf8lj9y5IjS0tKM8LO7Dh8+bPxGDQkJ0TPPPDPm792AgACtWLFCWVlZ+uyzz4zf/4ODgzp48KBeeeUVt9rr7+/Xnj17XEK58fHx2rFjx5jHdrPZbHzeli1bpsuXL+vw4cPq6elRdXW19u7dO6kBG+4ICQkZFTIduW+FhoZq+vTpHm/X6XTq+PHjRhs7duxwOW92Op26efOmSkpKxpxZwuFwaM+ePS6h3PT0dO3YsWPcgaQBAQGaO3euMjMzdfLkSeO7yWaz6eOPP9Ybb7zh1j40ODioDz74wOU37qJFi/Tkk0+Oe+4dGBhoDHY4cuSI8b3a1tamTz/9VC+//DIzGQAAAAB/5Tz7xQoAAAAAd7Db7Tp48KCx7OvrqxdffNGjAMHUqVO1a9culwsid04JP9LIyjg3b950e2paaeji47CRF55H3n8vAwMDqqysHLM/91pv+PE7duxw68Krn5/fqIqfBQUFbvfVU5mZmS4XtSbTVlVV1f9j706jmzjztOFfpcWyLe/GNl6w8Y6xjR1DIOwJBBKSdIDO0mTtdHp6prtPz/PxPXP607wf5j1nps9sZ2ae6enpme7Q6XQ6CQkhhBAgMYTdLLYB23jFG953S7ZlWar3g6NKlSzZJam8wfU7JycqWaq7JJWqStzX/b+lIJxOp0NRUZHHxzmdTsU+pNfr8dprr/lUhSg6OhqvvPKK4j394osvPE4fvRSJoojKykop1Dlb9RytO+9EUcTRo0cVlUSfe+45n8PfWVlZeO2116TPwNXhr9Y333wj3dbpdPjBD36gOpTrIgiCorKdKIozKmRr7caNGxgbG5OWd+3a5Vdwft26dYp93pdj0nIiDyUA0CTEIwiCosqc++CL+WzbNb34XG277Ny5U7p99OjRGdvk0tTUJIWe9Ho9Hn30UY+Pm5yclCptx8fHo7i42JfNpwU0NjYmhUFycnIW9LMqKSlBdnY2gOljrbf9jgLX3d2tGGgUFhaGN998U1UYWhAEbN26Ffv375fus9ls+OSTT3welNPV1SWFcg0GA15++WU88cQTqqqpGgwGPP3004qApyuc6wq5zqa/v18RNI2KisJPfvIT1cHalJQUvP3229L1qCiKOH78uM/XdDdv3sTk5CQEQcCBAwdUTQGfn5+veN2iKCoGScyHmzdvSu+r2WzGq6++qmrAHzAd8JdfX5eVlSmCj95UVVUpBhkmJCTgzTffVBVANhgMeO655xTVtwcHB6WA8HJRVlYGp9OJtLQ0vPnmm4pQLjD9OvPy8jwOALXZbDhy5IgilPvCCy9g+/btqn7fmc1mvPjii4rzQFtbEowVnAAAIABJREFUGy5cuDDnc51OJz755BNFKPfQoUNeZxhxFxoaijfeeEMR7Lxw4YJUOXi+VFZWStXiASA7OxuHDh3y6VosKSkJTz31lLQ8PDyM9vZ2n7ZDFEUpHBkTE4Of/OQncw5CNRqNePHFF5GQkCDd19LSIs20MZczZ85IVaYBIDU1FT/84Q9V/XuJIAgoKirCj3/8Y+l3UVNTE65cuaKq7aWmoaEBfX19CAsLw9tvvz1jMJsgCFi1ahX27NnjMSx74cIFxWe+fv16vPTSS15Due7rfvzxxxW/Fbu7u1W/l2fOnJEGwgHTgz2ef/55VQPiXOF5+awWLS0t8/rvOkREREREtDQwmEtERERERAG5c+eOomrIli1bFJ1WaiUmJio6Kvr7+70G03JychRT77qqz6khX6e8492XEFxjY6OiM9SXinfh4eF4/vnnfQpXxsfHKzoMXRVt54PRaERhYaG0XFVVpZgi1ReuUBkA5Obmeq1OWV1dLU0rCUyHDJKSknxuLyEhAdu2bZOWh4aGUFdX5/N6FoPdbsfo6CiKior8eu2BqKurm9FR/sgjj/i1rrS0NL8qbg0NDaG5uVlaLioq8us4AkyHtOVT4cr3rflQWVkp3Y6IiPB7um1BEBSd0/O93YvFPdSl1dTJ8k5xb8esxWzbJS8vT5oOvr+/H//5n/+Ja9euYWhoCBMTE+ju7sbp06fxxz/+UQqhbd261Wt44+LFi1IIa+/evay6tYRdu3YNdrsdISEhiuudhbJlyxYEBwdjYmJCqhJJ2vv8888VAdIXX3zR4/TssykqKsLGjRul5Y6ODlRVVfm0DvkggYMHD/o1YGTLli2K0GdPTw9u3rw55/PkM0QYjUYcOnRoRuXFucTExODpp5+Wlru7u3Hnzh2f1uHyxBNPeB0c5snGjRsRHR0tLcsDrPOhvr5eul1YWOhz1fNdu3ZJAbapqSnFdYkndrtdEaINCgrCq6++qirYJrd7925F4PzWrVvL6tqlqqoKQUFBeOGFF1QF1uUuX748Y1CW2oGaLoIg4Nlnn1UMyrp48SJGR0dnfV5ZWZniun3Pnj3SwAu19Ho9vv/970v7msPhkAb5zJeLFy9Kt00mEw4cOODXNUtRUZEiuO7vADyTyYTXX39d9bFJp9PNqEat5tjQ3t4+o4L6K6+84vM+Fxsbi7feekv6ns41EGypcp3Lnn32WURFRfn03MHBQUUl9tWrV+OZZ57xeT/asmULVq9eLS1/88030jnLm87OTinQDUxXWd+1a5dP7QLTx82VK1dKy6WlpfMyGw4RERERES0dDOYSEREREVFAXNNAAtPTBMqDkb7asmWLojPaW4WqoKAgZGVlSctqO8ytVqtU2SY8PBxZWVlS2GloaEgRMJ7N3bt3pdurV69WXdUKAB5//HGfO74BKF6v1WrFyMiIz+tQa/369dJtu93ucxgEmN5GeWC6pKTE62Pl+1BQUJCioqSvNm/erHh/57vKmdb8DcQGQh7Q0ul02LdvX0Dr27p1q8+hWvfquvJ90B/yjt75/K5YrVZF5aSioqKAwp4Ltd2Lyb3jW6twrDzg4K1zfTHblnvhhRekY/ro6ChOnDiBf/3Xf8Xf//3f49e//jUuXbokBfs2bNjgNew+OjqKy5cvAwAyMzNnVB2jpcNisUgDRTZt2uTXdUCggoODpbBnbW2tT7MNkDpdXV2KwVOFhYVzVmL0ZteuXQgODpaW5YEgX+Tl5fkcGJTbt2+f4jr3ypUrs4aIuru7ce/ePWl548aNfg+0KSoqUgRk5wqcepKQkKCo7KqGq0Kli9VqxfDwsM9tqyVf92wzJngTERGB7Oxs6HQ6xMTEzFkRu6amRlFVd/v27X61KwgC9u3bpwjF+bufLobJyUk88sgjPofGHQ6H4nXGx8d7rKqrhqs6tYvdblcMbHQnr/bqanvTpk1+tR0VFaX43VFbW4uJiQm/1jWX/v5+xe/sTZs2+fT7WU6n0yE5OVlads3O4qtdu3Ypji9qZGRkKL4r8oC0N+6/RZ955hnFsd0XUVFRAf9OW2yTk5NISEiQBqn54tq1a9L1sSAIeOaZZzxW1Z2Lq3Kui81mU/z7jify753BYJhx7FNLp9Nhx44d0vLo6KhiJiYiIiIiInrwMJhLRERERER+Gx4eVgTq8vPzfa7yJBcSEqKoPtvU1OQ15JSfny/dvnfvnqqqMY2NjVKYIDMzc0aFSjVVc51Op6IKq3w75mI0GlFQUKD68XLuoYb5DNSsXLkSiYmJ0rI8OKtWRUWF1HEWGRnpNTBmsVgUAY61a9ciKCjI5/ZcTCaTIoDS3Ny8bCoKuXc0LwSLxaLoDMzKyvK5k9qdIAg+V40tKirC3/zN3+Av/uIv8P3vfz/gqsHy49B8flfMZjN++ctf4uc//zlefvnlgAPF8u0eHx/3edru5cC9aq2vFcO8kb933s4bC9G2mgrjBoMBr776Kr73ve95rIQrCAJWr16NN954A88++6zXjv/S0lLY7XYIgjCjihstLVVVVXA6nQgLC/O5sqGWcnJyEBYWBofD4degG5qd+5TU27dv93tdJpNJcU5pb29XPW26ixbHBpPJpAgdDg4OKiq8upOH0AwGg8+hWDlBELBhwwZp+d69ez4PWtmyZYtfwa2UlBTFsnwQjtYcDod0298A8IEDB/DLX/4Sf/3Xf62Ypt0T+X4aFBTkd7ATAOLi4hSDB2/fvu33TBuLwZdZT1waGxsVAdatW7f6tY+5pKenIy4uTlqura31Gn6vq6tTBFF37NgRUKX8Rx99VLo9NTWF6upqv9c1m/Hxcek3hiAIPv1+9kQebJ2rwrAnISEhsw4a9UYQBMWxYa7jgtVqVbynqampyMnJ8blduUBmFVkq/BksYrfbFf8mkZeXp/je+CotLU3x/NkGfoyNjSkqthcXF/s1mMFlzZo1ipmEbt265fe6iIiIiIho6dOmB4KIiIiIiB5K7e3tiuVAKnK5rFmzRuqccDqd6OzsRGpq6ozH5eTkwGg0wm63w+FwoKGhYc5OPnnw1tWJnJWVJVVAaWhomLNzuqWlRapEpdPpfKr2kpqa6nfo1L2a03xVNHJZv349jh8/DgBoa2tDf38/YmNjVT1XFEXFVMePPPKI107j+/fvKzqftdqHXB13oiiio6NDMdXuUhUdHR1Qx74/WltbFe9/cXGxJustKCjAF1984VM4w2QyITk5WZNwspqQplb0ej3i4uIC6hx2cR/YMDU1FVBQfSly/zy02ufl1W/dA7gL2bY8YDUbQRBQUlKCkpISDAwMwGKxYGpqCiaTCdHR0XNWkuvu7pbCVWpCGlarFQ0NDejr6wMAhIWFIT4+HqtXrw4o1EPquIKM+fn5C36cl9Pr9cjLy8O1a9dQX1+PRx99lJ+/huQV9xITEwM+LxQWFiqmf29paVFMgT2XzMzMgAfbANPXcaWlpdJgkYaGBq/hMnloNzMzEyEhIQG1nZWVhdOnTwOYvqZrbW1VPcjNtb/7w/2zm6sKbSCioqKkgN+dO3ewe/dunwc6qq3AabPZ0NzcLC3n5eUFNKgSmN5PXZ+73W7H/fv3l8V1NzBz4KMa8plaTCaT3/uY3Pe//304HA7ExsbO+lnKv19BQUHIzc0NqN0VK1YgMjJSCoQ3Nzf7FVidS0pKCl577TUA09dJgc5Y4D6QzVd5eXl+D86SHxvmaruhoUFxXajVe7tp0yYcO3ZMk3UtBn++d21tbYp//ygsLAx4O7KysqRjr+s3sadroqamJsXnGGjbrsHhrjCw/JhMREREREQPHlbMJSIiIiIiv3V2diqWA61yCWBGCPf+/fseH2c0GhVV5+SdpJ6IoihVBhUEARkZGQCmq6W4OuZaWlq8Brpc5KGL9PR0n6bhDOT9cZ/2er6rURUUFCg6Pd2rwM2mpaUFAwMDAKbfa/k0qe7mYx9atWqVYtnbPrTUqA0+a6m1tVWx7CkE7w+DwTCj2txCGR8fV1RJVhuUXGwOh2NGJcDlsu2B0KoqsPzYrTZktJhty8XExCA1NRUZGRlITk5WdV45ffo0RFGE0WjErl27vD7OZrPh+PHj+Kd/+iccPXoUFy5cwIULF3Dy5EkcPnwY//zP/6yoAkba6+7ulip3yytLLhZXoNJiscxrFdCHzdjYmKLaqRaVkRMSEmA2m6VlX69n/J2lwZ3ZbFZcW3kLEQ0PDyuqVwYaGgSmQ3DycK/7deNskpKS/A6dugeK53NAnHyQn9VqxXvvvYexsbF5aauzs1MxIEuL/dR9Vozlct1tNptVB5rl5ANTU1NTAw42A9OzlSQnJ8+5PW1tbdLtjIwMTSr/p6WlSbd9rcrtj0BDuYDyWsufa+VAfu/IP6PJyclZryXln5cgCJqEuIHpgazLeVCNP7955e+lXq/X5HpKvu/b7Xb09/fP2XZISMiMf2sItO3R0dF5neGFiIiIiIgWF4O5RERERETkN3mgIzIy0q/OTXdms1kRSvLWQQJAUSHXvSKNu87OTqmTOykpSepwNxqNUuec3W5HS0uL13WIoqgI5vpa3VUervCVVlOuq2UymRSBjsrKSq/TqrqTV8vNzs6edarHnp4e6XZYWFhA75FLSEiIosLwbPvQUqJFVTtfuX+HtXj/XbTotJyL0+lEf38/ampqUFpait/+9rf41a9+pagotlTDraOjo2hqasKVK1fwpz/9Cf/wD/8gVQV0mWugwHLkHmDR6vORV8P1FpKZr7YDDeb6qqGhQRposnnz5hkV1V3Gxsbwv//7v7hx44bX4Mjo6CiOHDmCU6dOzdv2PuxcIbWYmBjF1MWLJSwsTDrfdHR0LPLWPDjcA6OJiYmarFdeRd7Xz0vLATKrV6+Wbvf29nqsFOk+k4YW060LgoCYmBhp2Zfg4IoVK/xu12AwKIJvWg3k8GTz5s2KY0NzczP+9V//FSdPnlRcJ2thPvbT0NBQxTXscjmu+BMOnJycVPyu0GKWB1/all+3+1I9ezby96Gvr2/eZ5oIhMViQWVlpWJgoT/XyoEcG9xnspjt2CA/JsbFxWk2C4bJZEJ8fLwm61pogiD49ZtX/l7GxsZq8m8j7scAbwM/5G0nJCRoEop2b3shQvFERERERLQ4FrZnl4iIiIiIHijyTnlvwSB/REZGSiHa2SpUZWdnw2g0wm63w2az4d69e16rpzQ0NEi33R+TlZWFpqYm6XHulZ9cOjs7pYqWOp3O56o3WoYeF0JJSQnKy8sBTIe3Ghoa5qysNT4+rqhePNeUnfLPV+t9yFW1bT6rnGlJi2C7r+TvjdbB4NkC2b4SRRGDg4Po7u5Gb28venp60NfXh76+viUbvHWxWCzo6elBT08Pent7pf/U7JfLuRqWN+6hhPkIx3oLPsxX2/IQi1ahC29EUZQC3GazGVu3bvX6uPfff18KdcXFxWH79u1ITU1FUFAQhoeHUV1djYsXL8LpdOLy5ctYsWLFvExh/bBzhbi0ClFpITExEYODg6yYq6HBwUHFsny680DIQ6kWi0X184KDgxXPDZR7kM1iscyoKute9b2npwdDQ0MBty0/F8qrEs8lkOtuQRAgCILqQWmBCAkJwaFDh/Duu+9K1waTk5O4evUqrl69iri4OKxZswarV6/GqlWrAhoAIv889Hq9Ztd+0dHR0nfAl/10Mfnzu2NgYECxTwQS8PTV6Oioou2xsTFUV1cHvF755yWKIkZHRzU9dvjDdd0vv27u6uryGFT3JzQfyLFBp1Nf60h+vNJqsIZ8fd3d3ZqucyGEhob6VTVZfn4xGAya7PvuoW5v5xd524IgaNK2e4VcX85tRERERES0vDCYS0REREREfpNPF28ymTRbr3xds4XXjEYjcnJyUFVVBQCoqanxGsx1VRcEZk65Kl+WP86dPHCanp4+I5Awl4WuehuolJQUxMfHS52gFRUVcwZzb926JXVyhYeHz/n4xd6HtBRoyE/L16+WPFyvdfu+fj/c9fX1oa6uDvX19Whvb1dVESskJATZ2dkYGBiQqhv50oGuhbGxMdTX16O+vh737t1TNR21TqfD6tWrER4ejsrKSsX9Dxr3QJFWVYEnJye9tuHtfi2qwomiqKpar1YqKiqkY/Ljjz/uNQh88+ZNaerdlJQU/PCHP1Scg0JCQqSps//85z9DFEWcOXMGa9euXZRBAg8yV1htMaqie+PaFi1CkzRNfj0DBH4OdJGHB202G0RRVDVoIywsTNPBHZGRkYplTxVz3a+3Pv30U83a99bGbLT6DBZCcnIy3n77bRw5cmRG2M4VTDx//jz0ej2Sk5ORnp6OjIwMpKSk+HStIH//goODNdtH5PvpQl13Bxqa9ue61/21LeS1u3vbZWVlKCsrm/d25tvY2Bja29ulAWyuwXdqrw/92YcX4tggiqLivKD1AF35DEPLib/fGfl+2dHRgQ8//FCrTfLYhrf77927h3v37i1Y20REREREtPwtr15hIiIiIiJaUtQEofwhDw/J2/AkPz9fCubW1tbiueeem9FBNzExIYX0goODZ0w7Gh8fj4iICIyMjKC3txfDw8MzAggAcPfuXUW7vvKnOsxiKykpwcmTJwFMv79jY2OzdgTeuHFDul1cXDxnWEDeYblY+5BWAg3mLkYYTr7NWlf69Hd9zc3NOHfuHJqbm+d8bHBwMJKSkpCUlITMzEykpqZCp9Phs88+k77zC1V1dnh4GN988w0qKyvn3Bf0ej0SEhKQmJiI9PR0ZGVlwWQyoa6uThHMfRgq5rpXjPKHw+FQrMdb+GE+2rZYLIpqbfNZGd1ut6O0tBQAZq1uK4oiLl68CGB6H9q/f7/XgSG5ubkoKipCRUUFxsfHcePGDa9VeMk/rnC+llXhAxUWFgYAqgYOkDruwVytAnvux62JiQlVoTKtrynct8PTvrMQwSJf2lhu191xcXH4yU9+gvLycly6dGlGFWZg+nzX2tqK1tZWnDt3DqGhocjPz8f69euRkJAwZxvy/VTLfUS+fzzIA+KWUjB3ObczOjqKsrIyNDY2oqurS1XIOiIiAtnZ2cjKysK9e/ekULI/g9gW4tjgGkjhstQGQC4WLYK588VTG1NTU5oNIvS1bSIiIiIiejAwmEtERERERH6Td8K6BxICIQ9SzhXuy8rKQlBQECYnJ2G1WtHW1obU1FTFY+7duycFp9LT0z124GVmZqK8vBzAdNVc98BTX18f+vr6AEx3AK5Zs8bn17Ucq1+uW7cOZ86cwdTUFBwOB27fvo1NmzZ5fGxbW5s0LbYgCKqmRF8K+5BWAg0ILNR2ygUHB0vTc2odYPbn8zx37hzOnTvnsYPeZDIhOTkZSUlJSExMRFJSEqKiojyuRx6UXIjv3b179/Dhhx96rCCo0+mwcuVKKUCcmJiI+Ph4j9vlPh3vcjxmzMW9aqgWU167T//qbQpm97a1COaqbVsLly5dwujoKABgz549XveP9vZ2KdCVkZEx51TbGzduREVFBQDgzp07DOZqzFVReb6rKfvCdb5ZqIErD4NArwHUUjtt+3xfU8x1DgsKCsKOHTvmpW21VYOX4zlUr9djw4YNWL9+Pe7fv4/q6mo0NTV5nbJ+bGwM165dw/Xr11FQUIC9e/dKwXtP5ms/lX8eC/VdWIxgrvv16UK9VmDmd//RRx/1OJA0UPOxTheHw4Gvv/4aV69enfW9M5lMSExMlK73ExMTERsbK/3dNfgO8O97vhDHBvfw73I8Hs0HfwcEyPf/tLS0OWfl8UdcXNyM+9y/81lZWVi9erXmbSclJWm+TiIiIiIiWhoYzCUiIiIiIr/JK7VoGap0n2Z1NkajETk5Obhz5w6A6aq27sHchoYG6XZWVpbH9ciDuQ0NDTNCpfJquRkZGX5VqVmO1S9DQkKQl5eH27dvA5ieRt1bMPfmzZvS7fT0dK+hSff1uyzWPqQV+XT2y4X8/de6Uo+v6zt37hzOnj2ruC85ORlr165FdnY2VqxYofo7JA+bzXdHeFtbG9577z1FNaXw8HAUFhYiJycHycnJXquVunP/DjyInfghISEIDQ2Vqi0udDBXp9NJnfuukOtCtB0oi8WCS5cuAQBWr16NnJwcr4+VT7GrJriwcuVK6TPp6uqCzWZb0CqARA8C92sNm82myVTj7ucFtdc0Woeu3c/pnq6D5dvmdDoXPeS/nM+hgiAgJSUFKSkpAKYDuC0tLWhtbUVLS8uMKqOiKOL27dtobm7Ga6+95rV6rvwz0vK6bzGuuwMNxfpTNdV9gIWWv13m4v6+rlmzBhkZGQvWfqAmJibwhz/8AR0dHYr7BUFAUlISVq1ahaSkJCQnJyM6OnrWa375Nbc/v68X4thgNBoV15yL/TtrqfC3WnFwcLD0myEuLm7Bzi9GoxF6vV463iQmJi76uY2IiIiIiJYXBnOJiIiIiMhv8k55T9Ot+kse1FLTubt27VpFMHfv3r2Kv8uDuZmZmR7XkZGRAUEQIIoimpqa4HQ6FZ128mDu2rVr1b2QB0RJSYkUzO3q6kJnZycSExMVj7HZbKiqqpKW169fr2rd8n1oaGhIdRW0ucgDdwsVENAiYLjQzGazdHtgYEDTdbsHFmfT3d2Nc+fOScsmkwkHDhzwqzI1oOysns9AvNPpxNGjRxUBgW3btmHnzp2qw7hy7gGP5RjmVyM2NlYK5rqqbAdCXklQEASv4VidTofo6Gj09/fPS9tBQUGzVioMRGlpKSYnJyEIwoxznDtXdXfAc/Uvd4IgIC4uDi0tLQCmX5P7ABfyn9FohM1mW1KDN1yhzcWo1P6gcr/WGB8f1ySYK6/EbjAYVIeatA5tuY7ZLp6ureTXdFNTU7Db7YtaKfpBOoeGhoYiLy8PeXl5AKYrvtfX16OsrAydnZ3S40ZHR/HnP/8ZP/vZzzy+9+4DsrS67l6MYO5iBBPdX5v792Ih2/Y0S8NS9uGHHypCuWFhYdi+fTvy8/MVv0fUCGQA3kIeF4KDg6V9ROt9ZbkGc/0VEhIi/dZeyO8dMP05umbZWG7fOyIiIiIiWnzLd9g4EREREREtOnk1pvHxcZ+CeN4MDQ0pOlvk01Z6k52dLYVLBgcHFUGp3t5ejIyMAABWrFjhdXrOkJAQJCcnA5gOx8mnyBwdHcX9+/cBTHf++RsWXK7S0tIUQTfXlOdyt2/flkJHZrMZubm5qtYt34dsNpsmAe/R0VFFSFbNPgRMhyzdp6v0xXIM5sqnzRwdHZW+K1pwr4g1m4sXLyre+0OHDgX0PZOHjOezKlZNTY2irc2bN2P37t1+hXIBSIFRl+Vc7W828rCoPFDkr9bWVun2ihUrZn3/5W13dXVp2rb7gAWt9PT0SBXdCwsL52zHFR4Apqs3qxERESHd1qKSMH3HFc5cSu+rax/RIjhK09y/a1oE/wHl+cyX8Nrw8LBi6u9AyY+XgiB4vJ52H5gwNDSkWfukZDabUVxcjL/8y7/EwYMHFee9wcFBlJWVeXye/DNyOByaDcqSX7/4sp8ut+tu94E/PT09C9b2cv5+1dfXo6mpSVpeuXIlfvGLX2Djxo0+h3IBZTBzKQfwo6OjpdtaXHPKaXWOWS7k+78W/+bkb9vL6XtHRERERERLw4PZw0NERERERAti1apViuW2traA1+kKwLq4pnCdjcFgUEzrLa9uq6Zarqe/y58nX19GRobH6XsfZIIgoKSkRFq+ffv2jOljb968Kd0uKipSXdFtsfchLaekXcjOea24vzfyTvNAOJ3OGZ/DbBobG6Xb6enpWL16td9t22w2RafpfHbYy7fbYDBg+/btAa1PPqgAWNphg0DIp14eHR0NKLAoiqIiHJuVlaW67d7e3oCme3c4HIr9fK62/XX69GmIogiDwYBdu3bN+Xh5MFdttUp55dSHrQrbfHMFc7ScWSBQrjBeVFTUIm/Jg8P9fOrL4JTZyNfjS/jfbrdrel0iH7AWHx/vsdqya4Cbiy/XAeS/devW4aWXXlLc55rpwp37fqrF4BibzaYI+M62n7pf1wRSSXwxBjuEhoYqBjRo8f65NDQ0YGBgwGtYOSQkRBEMXk7fL/mgTp1Ohx/84AcwmUx+r08eSl3Kg9jkx8Tu7m7NKuc7nU5N973lQP5ednV1zfi3iIVq+/79+wENKCAiIiIioofP0v3VSkRERERES15KSooigOmtE9gXVVVV0m29Xq86hJCfny/d9hbMnSs0Jf+7t2CuvJ2HSXFxsdTxOT4+rnhPOjs7FZ2D8hDvXJKTkxVVvrTeh3Q6naIqrDv3aWH97eTv6+tb8Oo9WkhKSlKEa+QB60DU1dWpnurTZrMpKl+pCePPRr5vAoFVY5uLPIgSGxsbUGh/bGxsRjD9Qe34zczMVAQpqqur/V5XS0uLIog613FePojD6XSitrbW77br6uowNTWlum1/NDU1Seejxx57zGvVdzl5WMGffehBDYQvFlfVdq2r5QXCdc6WV5CmwISFhSmqI8qvI/01MjKiuLZwD77Opbm5OeBtAKbPTy0tLdKy+6Aql5iYGMV5UP6cQFy5cgVXr15Fc3MzBw54kZOTg/T0dGm5p6fHY8XklJQUxflXi/20vb1dca6ZbT91D2MGMiBOPihnIckHj7W3t2sytX1LSwv++Mc/4t/+7d/wd3/3d16/u/Jr5La2Nk2uExsbG3H+/HnU1dXN228Z+bEgOzs7oEEh4+PjioEuS/maRf55OZ3OGb9R/NXW1qZZyHe5kL+X7gPj/DU2NobTp0/j1q1b6O7u9lplXt72+Pg4+vr6Am57aGgIX331Fe7cuYPe3l5NK9wTEREREdHSwmAuERERERH5zWQyYe3atdJyQ0MDRkZG/F6f1WpFXV2dtJybm6t6SvisrCwpYNjV1YWhoSHY7Xap09ZgMCAtLW3WdSQnJ0uBgq6uLlitVoyPj0udo3q9HmvWrPH1ZT0QzGYzcnNzpWXH7mJIAAAgAElEQVR55aMbN25It9PS0qQQkhpGoxEFBQXSclNTU0BTRLqHhrOzsz1WdXNxnxbWvWKpWpWVlX49b7EZjUasW7dOWm5ra1NUxfOXtymUPXEPZbiHpX0hiqJifwTgV0en2qCDfNsD2W5g+nvkvq0PaidtcHAwUlNTpeU7d+74vS55mDwoKGjO43xkZCTi4+M1bzs8PBwJCQl+r8sTURRx6tQpANNV+rZt26bqefJ9UW1wQ/64QKrY0UyukNrAwMCiTL3uzmKxSKGm2QaukO+ys7Ol252dnQFPNe5+beFrNfnr169rEtyrrKxUBP7l14NygiAoqpJXV1cHVJUcmA4nnz59GidPnsQ777wz4xy/3NXU1OD06dN49913ceLEiYDWJR/MKIqix+N/UFCQ4vxbU1MTcMBP/ptAr9d7DW4DM88v/f39frU5ODioGBy1kOSDcBwOh2JAoL+uXLki3Q4NDVV8RnLy75fFYkF9fX3AbX/99df4+uuv8ac//Qkff/xxwOtz53Q6FQPwfPmd6ElVVZXiuLaUr5UzMzMV/5ah1fFLq4GUy0lqaqrivSwvLw94neXl5bh06RI++eQT/OY3v1EM9JNLT09XBMC1aPvatWu4cOECjhw5gt/+9rcPXdCaiIiIiOhhwmAuEREREREFZOPGjdJtp9OJL7/80u91nT17VtHx/+ijj6p+rsFgUAQF7t69i+bmZqmaYWpq6pxTessDBaIoorGxEXV1dVKHX0ZGRsDhu+Vs/fr10u3GxkaMjIzAbrcrgm2+VMt1ke9Doiji5MmTfm/juXPnFBUs59qHVq5cqagc5k8H99DQkKJDfblxf4+OHz8eUCd3VVUV7t27p/rx7sHpQKZ7Ly8vn1F1Vu1Up/LOXrXPkW/74OCg3wGowcFBnD9/fsb9SzlsEKji4mLpdnt7u1+Vr4aGhlBTUyMtFxUVKaq4q2m7oaHBr2BQT08PGhsbpeWSkhLNq7ZVVlZKgwV27typOjArH3CgdqCDfFCNfJpuClxCQgLMZjMAbapTBsp1ngsLC2PFXI25n08vXbrk97ocDocifBUXF+dzRfn+/n7FMdIfExMTitcRFRWFzMxMr4+XXytOTk4GHGC6cOGCdC7U6/V45JFHAlrfUlNbW4tLly6hsbERlZWVAYWz5M/V6XReB6bJr7snJydx/fp1v9u0WCyKAXFr1qyZdfaA6Ohoxbmyo6PDr3YvXrzo1/O0sHbtWsV7e+XKFdXXjZ60t7cr3sP169crfpvI5efnK97fq1ev+t0uMH1Okn8Gvvz2VsvpdGoWpLXb7TOOq0v5Wjk0NFQx205LS4vi2tEfQ0NDAc00sVyFhIQoBoRXVVUFNNhpcnJS8fs9NzcX4eHhHh8bFRWlCORXVFQEVO3barUqQtqFhYUcFEdERERE9ABjMJeIiIiIiAKSkpKiqBBWXV3tV+WgtrY2RQdFSkqKz5XB5B1fd+/eVQRg1E4xLg8bNDY2KjpK5Z1BD6OMjAxpGnVRFFFZWYk7d+5IHVPuHWZqJSYmKioR19bW4tatWz6v5/79+4pKrYmJiYrKUp4YjUasXLlSWq6ursbo6KjqNicnJ/Hxxx8rwsDLTXx8vKJqbnd3N86cOePXugYHB/HFF1/49Jzg4GBFkLCmpsavCnu3b9/G559/PuN+tZ228g5Rm82mKmS7YsUK6fbIyIhf04b39fXhnXfe8RjG8WVfXG4KCgqk4wkAfP755z4FW0RRxLFjx6Tvnk6nw2OPPabquSUlJVKwxel04vPPP/cpVO10OnH06FHpOUFBQdiwYYPq56tht9vx9ddfA5iuLufL+uVVE9VUARdFUVHZU15RmLThuk6qqqoKKMAVKHl1x5ycnCU9BfhytGLFCsV1ZGVlpd/TbV+4cEERrPf3GHPixAmvVQDVOH36tOI8umHDhln3m9WrVyvOjaWlpX6fyzo7OxW/DR555JEHbuCA/Pp3cnIyoIqa8hkP4uLivH5Oubm5ivPvuXPn/N5HTp48qbgGlgezPQkKClIMCKiqqvI5WHn//v1FrRhqMpkUA3z6+/v9DshOTU3hs88+k5bNZjM2b97s9fEGg0ERTm9qavK78r/dblcMhoyOjkZeXp5f65qNwWBQXGP7OzOHKIr4/PPPZwzgC7Qq93yTB+GB6etdfwP4oijis88+W9a/OwMhD47b7Xaff3PKlZaWKs5tW7ZsUd32+Pg4Tp8+7Xfbp06dkv79xJffL0REREREtDwxmEtERERERAF7/vnnFdV7PvnkE58qZnZ0dOC9996TQk4GgwH79+/3eTsyMzOljr/W1lZFlbDZqnu5r8OloaFBqmqj1+sVnecPI0EQFBVxKyoqFB3j69atU1Qd9cVzzz0nVRQEgGPHjvlUUairqwt//OMfpX1Ir9dj//79qkJH8hDB1NQUPv30U1XBqbGxMbz33ntShVb59i83Tz31lGL7L1++jHPnzvkUVhwYGMDvf/97KdwRFRWl+rnycL/VasVnn32muu3x8XF8+umn+Pjjj6VwhzxsPTIyompd8mrYDodD1RTk8u0GgM8++0x1ENjpdOLatWv4zW9+g+HhYQDTAUx5ZW/X/Q8ivV6Pp556Slru7OzEJ598oiqgI4oizpw5ozjPbNq0CTExMaraNplM2L17t7R87949nDhxQtV+4gqGdHZ2Svdt27ZNES7XwuXLl6Uw25NPPum1ep4n8kEtaqqAd3V1Sd/biIiIZX0sW6oKCgqg1+tnVJdcaNXV1bBardDr9SgoKFi07XiQPf3009K1kCiK+Oijj3wOpra2tiqqqMfGxvpdKdZqteKDDz7wq7rf5cuXZ1TtnStAJAgC9u3bJy3bbDYcOXLE5yCaa7td5wSTyYTHH3/cp3UsB1lZWYiIiJCWz549i4GBAZ/XU1tbqzgvzfabRafT4ZlnnpGWbTYbPvjgA58/o/LycsVgzKysLFWDKnNycqTbFotFMahuLgMDA3j//ff9nqFAKzt37lRcN3799dc+D84SRRGffvopenp6pPt27drltdKxy7Zt2xSVPU+cOKFYh9q2jx07ppgxYM+ePapmHfBHcnKydLu9vR0tLS0+Pd9ut+PTTz9FZWXljL+pvc5fLElJSYqBFYODg/jggw98HqQjiiJOnz6NpqYmrTdx2UhJSUFhYaG0XF1d7dPxQ/48ebXcgoKCOSvSZ2VlKQZ637hxw69Q/PXr1xUDkDds2KAYzEJERERERA8eBnOJiIiIiChgYWFhOHDggNSZ53A48O677+Lrr7+etaKLKIooKyvDO++8g4mJCen+PXv2+NVBYTAYkJubK63bFYQIDw9XPV1zRESEVC1wbGxM6qTOyMhQdMA+rIqLi6Ww68DAgKLqkTy06yuz2YyDBw9KYRaHw4H33nsPZ86cmTUoIIoirl+/jt/97ncYHx+X7t+9ezcSEhJUtV1YWIjo6GhpubGxEb///e+9BjMdDgcqKirwH//xH1LHcm5uLnbs2KGqvaUoNDQU+/fvV4T/zp49i8OHD88ZULXb7fjmm2/w61//GiMjIwCm31N56HIuW7ZsUbR9584dHD58GF1dXV6f09XVhS+//BL/8i//goqKCun+4uJivPLKK4rtk4dVvImNjVUsl5aWzhkSzcnJUVQXHRwcxH//93+jqqrKa0jAYrHg6tWr+Pd//3ecOHFC2r/j4uLwwx/+UHGsam1tnXO7l7O8vDxF2Kyqqgq/+93vZv28bDYbjh07ppjKODExURG0VaOkpEQ6XwDTHeV/+MMfZt3fx8fH8eGHHyqCaunp6di2bZtPbc/FYrFI03Snpqb6PChk1apV0jGtra1tzoqd8lCDPPBA2jGbzVIlwmvXrinOVwtlfHwc165dAzA9A8Bs082T/1asWKEIkA4NDeEPf/gD+vr6VD2/paUF7733nhTa0ul0OHjwoGLQhhoJCQnS+am1tRXvvPOOIoQ3G6fTiXPnzuHUqVPSfYIgYP/+/aqCexkZGYoqka7XpHbgyuDgIN555x1FxeCnn376gRw0YDAY8MQTT0jLNpsNhw8f9iloWV9fjyNHjkjLJpNpRpVOdzk5OYrZElpbW/H++++r/owqKysVlV5DQkLw/PPPqx4QJ3/cV199pWowXnNzMw4fPixto9pBl/MhNDQUzz77rLTscDjw/vvvK2Zrmc3ExAQ++OADRbBvzZo1qn5Lud5rl/HxcRw+fFh1JVq73Y6jR48q2s7Ly5uXarku7tcWH330kaoBcKIooqamBr/+9a+lUK4gCIrfXFNTU0t+hok9e/YoBiw2NDTgz3/+s+rv28TEBD799FNcvnwZwPRgwod1Jp9nnnlGMZjhiy++wKVLl1SHs2/duqU4XoaFhan6zSoIwozB6B9//DFu3rypemBfWVkZTpw4Id0XHR2tOP4TEREREdGDSf+3f/u3f7vYG0FERERERMtfbGwskpKSUFNTA6fTCVEU0draimvXrmFgYADj4+MYHR3F4OAg2traUF5ejhMnTuDOnTuKijH79u2bszN5Nnq9fkb1krVr1/oUbBocHJzRubljxw5FFU41JiYmFFObFhUVKQKgvpicnJQ644Dpyi6LUV3FZDKho6NjRrgjJSUF27dvD2jdMTExSElJUexDbW1tKCsrQ39/P8bHx2GxWKR9qLKyEp9//jlu376t2If27t076zSw7vR6PZKSklBZWSl1rI2MjODGjRu4d+8eent70dXVhcbGRpSXl+P48eOoqqpShLZ/8IMfoLu7W1Gdcq7KbqIo4ptvvpGW165du6hTyMfGxiIhIQG1tbVSIHVoaAjXrl1DQ0OD9P11fT8aGhpw4cIFfP7552hqaoLT6YQgCNi+fTv27duHwcFBxXdx+/btXgM9oaGhiI6OVlSSHBoawo0bN1BTU4P79++jvb0ddXV1uHHjBk6dOoVLly6hvb1d+uwNBgOeeuop7N69GyaTCWVlZdLAgPDw8DmruIWFhaGiokKqKtjX14c7d+5gYGAAjY2NKCsrw61btxRBFkEQkJmZqdgfbDYbqqurcePGDdy/fx/3799HY2Mjbt26hdLSUnz11VdoaGhQDEYoLCzEoUOHEBoaira2NnR3dwOY/t7PNS30Qrp9+7ZUyS8+Pl6TUEBWVhY6Ojqk9bq+e01NTRgZGYHVakVvb6/i+yc/PkdHR+PNN9/0eeCEIAjIzc1Fc3OzFCgfGhrC9evX0dzcjNHRUVitVnR3d6OhoQE3btzA8ePHpc/G9R68/vrrPgfm5nLq1CnpNb700kuKAIIagiDAZDKhtrYWwHQorqCgwON21tbW4quvvgLwXbV6BjbnR2JiIu7evYuJiQkMDAwgKytLVYhNKydPnsTw8DBCQ0Px1FNPzVtlRJoOx1ssFmmQwdjYGMrLyzE1NYXo6GiPx6uenh6Ulpbi5MmT0rlLEAR873vfU1QYnU1tba00oGXFihU4dOgQGhsbYbVaYbFYcP36dYyPjyM4OBhhYWEz9j+bzYaqqiocPXpUUQnVFUhSux3A9KCFnp4e6XrRdU53Op2IjIz0eJwZGhrCxYsXcfToUUXQbuPGjaqvMc+dOyfdzs3NRWJiouptdvfNN99I14VZWVlzVlT0V0JCAvr6+qSgos1mQ3l5OSYmJhAdHe3xvXI6nWhra8OXX345YyDRwYMHFRVKvcnMzERHRwcGBwcBTP/+qaiogMFgQExMzIxzhiiKaG9vx4kTJ6TBIwAQFBSEQ4cOqR4QFxwcjMnJSWnGCafTiTt37sBisSAmJgahoaHSYx0OB5qamnD27FnF9O/btm1DQUEBbt++LT32sccem/Na4PLly5icnAQwff2empqqaps9iY+Ph91ul16Hw+GQrpPCw8MRHh4+4zs2OTmJ8vJyHDlyRDFoJjk5GS+//LLqmUdiYmIQEhIiBYHtdjvKy8sxMDCAsLAwREREeGy7srISH3/8saJibXx8PF599dV5PSckJCRIvyVc23Lz5k2Mj48jPDwcZrNZ2t6JiQl0dnaioqICx48fl45bwPS+9tJLL2H9+vW4dOmStN/HxcXN+l3v7OxEXV0dgOnj2c6dO/1+LV1dXdL1FTD9bwRzzWqg1+uRnp6u+M06MDCA8vJy6Zjoad/t7e3FzZs3ceTIEem6MDw8HK+//jomJyelmSNCQkKwadMmv1+TWhcvXpTOT74cE2tqaqTBBjExMYrfUr4yGAxIT0/H3bt3pd9eTU1NuHv3LkJCQhAVFTVjXxZFEc3NzThx4oQixGswGPDqq6+qHsBtMpmwatUq3L17V3of6urq0NjYCLPZjKioqBn7gtPpRENDAz777DNcv35dsa433ngDkZGRfr8XRERERES0PPg3xygREREREZEHWVlZePvtt/HFF19InZQTExMoLy9HeXn5rM+NiYnB3r17FRUM/ZGZmQmTyaSYslc+7aAaWVlZihCsXq8PeLseJCUlJVLnpvw+LWRkZODHP/4xvvjiC6nT2GazoaKiQlEV1ZOoqCjs3bvXr4pPq1atwuuvv44PP/xQ6vx1Op1oaWnxOt2qTqfDY489ht27d/s0zfxStmbNGrz99tv45JNPFJWsXAHT2SQlJWHfvn1+B1fWrVsHp9OJkydPKr6/PT09c1aOy83NxVNPPaUIvmdmZkrB4IqKCuzcuXPWEJxOp8MLL7yAw4cPKzrN5dVEdTodnE6n4vOOiYnBG2+8gY8++khREdFisaC6unrW7Y6Li8OePXuQnZ0t3ZeVlSVVBevs7ERnZ2dAwaKlTq/X45VXXsGXX36Ja9euSZ3lbW1t0nnEm8zMTBw8eNDvKopGoxFvvvkmjh8/Lr3nrs77uaakzsvLw/79+2Eymfxq25ve3l7pfJmfn68qXOVJUVERampqUFdXh/7+fvzXf/0Xtm7ditTUVJhMJgwPD6O6uhrXr1+X3vMdO3b4PXiE5mY0GrF161acOXNGGlxSXFy8IG3fuHEDHR0dAKYDbVqHyUlJEAQ899xzMJvNOH/+PERRxNTUFM6fP4/z588jLi4OkZGRCAoKwtjYGAYHBzE8PKxYh16vx8GDB5Gfn+/3doSHh+Ptt9/GsWPHUF1dDafTiatXr+Lq1aswmUyIiIiA2WyGKIqwWq0YGhqaMdOF0WjEwYMHfb62MhgMePnll/HZZ59J12+Tk5M4e/Yszp49i9jYWERERCAkJAR2ux19fX1SQFTu8ccfX9YzEqghCAIOHjwIQRCk6xaHw4HLly/j8uXLiIqKQnx8PAwGA5xOpzRgRT7AB5jeZ5599lnV+0xQUBBeffVVRfXU8fFxnDx5EqdOnUJCQgLCw8Oh1+thtVrR19eHsbExxTpCQkLw2muv+Xyu2rVrF7q7u6VKuU6nE9evX8f169cRHh4Og8EAu90+o6KoawDYE088obo67Xx68sknIQiCIqh8+/Zt3L59G5GRkYiKioLZbMbU1BRGRkbQ09MzYzaGjIwMvPzyyz5fT2zatAkhISE4duyYdN3qattsNiM2NhZmsxlOpxMjIyPo7u6e0XZmZiZefPFFBAUF+fkOqCMIAl555RX8z//8j/Q9dzgcuHLlCq5cuQKj0Qi9Xo+pqSmvs+0kJibiwIED0iDGxMREaWaJmpoazX6LzpeEhAS89dZb+NOf/iQNCJuYmEBpaSlKS0sRHR2NsLAwGI1GaUCz+/6fmZmJ/fv3Izw8fEns/4tl5cqVePvtt/Huu+9K+1N3dzc++ugjGAwGxMfHIywsDAaDAVarFV1dXYrflsD0gMxDhw75fOxKTU3FW2+9hXfffVf6fNrb2/H+++/DaDQiISEBZrMZOp1Oats1GMAlKioKr7zyyqIOyCUiIiIiooXDYC4REREREWkqMTERP/rRj1BdXY3Kyko0NTUpqpnK6XQ6pKamIj8/H4888ogmlXr0ej02bNiApqYm6b6MjAyf1pGamork5GSp8zI5OdnnaoyubZEH6gIJcOl0OsW6/NkerWRnZ8NsNsNqtQKYfl0FBQWard/VcVlTU4OKigo0NjbOug+tWrUKa9euxfr16wPah9LT0/GLX/wCFy9exM2bN2cEHlyMRiPy8/OxZcsWRYWd0NBQnwOU8scvlSqViYmJ+OlPf4pbt27h+vXrswZyDQYDMjIyUFJSgpycHEXwNTg4WPH61FSGLC4uRmZmJs6dO4e7d+9K+5gnkZGRWLNmDYqLiz1Ws163bp2isvP9+/fnDA2npqbipz/9KU6fPo2GhoYZAQaDwYCRkRHFdLTA9D7705/+FFeuXEFlZeWs0/OaTCZkZmaisLAQubm5M96X7OxsJCUlSWHJpqamJRPMjYmJkbZFywCnTqfDvn37UFxcjIsXL6K2ttZrMAP4rkK3L9UbvTEYDDhw4ABKSkpw6dIl1NfXz/jcXQRBQFpaGnbs2IH09PSA2/bk9OnTcDqd0Ov1ePLJJ/1ejyAIePHFF/Hee+9JVYG/+OILr4/fvHkztm3b5nd7pE5mZiY6OztRVVWFq1evIjg42KeK/v5wBbCB6bD3fO27NNMTTzyBnJwcHD9+XKpkC0wH8Gc7T+Tn52P37t2aHGdNJhNeeukl1NTU4OzZs9JAF5vNNut2CIKAnJwc7N27FzExMX61rdPpsH//fqSnp6O0tBRDQ0PS3/r7+2fMviCXnJyMp59+et6q1C41er0eL7zwAjIyMvDNN98o3quhoSHFsifZ2dnYs2eP6sqP7u3m5+dLVbWB6aCsa3CQt+dt2LABO3bsUFS49aXdV199FSdPnpQqKbvIqyXLRUdH4/nnn59zBoSFJAgCnnzySWRnZ+PLL79UvF/Dw8MzAvdyoaGh2LlzJx599FG/q6evW7cOCQkJigGNAGC1Wme9hg4LC8OuXbtQXFy8YJXbzWYzfvSjH+HkyZMzBq7Z7Xap+qm7+Ph4bN68GevWrVMMjMvNzZWCuY2NjRgcHFzyg4tWrlyJn//85zh37hzKysoUv29ds5J4EhcXhx07diA/P39BK+0vZTExMfirv/ornDlzBuXl5dJ7OTU1JQ1E8kSn02HDhg14/PHH/f7tnZCQgJ/97Gc4deoUbt++LR2/7Hb7jFmX5AwGAzZt2oQdO3bMexieiIiIiIiWDkF09fQQERERERHNA5vNhvv378NiscBqtUIQBJjNZoSFhSEpKUnzaoM0/8bHx/GP//iPUgfY+vXr8dxzz81be+77EADFPjQfIWVRFNHb24uenh6MjY3BbrdDr9cjISEBq1atUj3V7IPAVe3H9f6LooigoCAkJCQgKSlp3t4LURTR2dmJwcFBjI6OwuFwQKfTISYmBgkJCTPCsVobHx9Hf38/JicnYTQaERERoXq60cHBQfT09GBkZESqkhQZGYkVK1YgISGBnepzsNvtaG1txeDgoFThSqfTITo6GomJifM67avNZkNbWxsGBgakkIher0d0dDSSk5MRFhY2b23fu3cPhw8fBjAdlN27d2/A6xRFEdeuXcPVq1cxMDCg+JtOp8Pq1auxffv2JRV0etCJoqiYWWDTpk0oKirS/LggiiLKy8tx7do1ANMDD55++mkefxaBqxJ3fX09mpqaMDw8rBj8YzKZEBsbi7y8POTl5SE2Ntavdo4dOyZV3E5LS8Nbb701YzsaGxtRW1uL9vZ29Pb2StdyOp0OZrMZMTExyMjIQGFhoaYhN9csBA0NDWhqasLIyIii+qrRaMTKlSuRkpKCgoICJCUl+dWOvHJpVlYWEhIS/N5m+ZTn6enpfm+Tr5xOp+Jz6uvrmzFALSgoCLGxsVi9ejWKi4s1qbw4NTWFxsZG1NXVoaWlBaOjo4pKj8HBwUhKSsKaNWuwZs0ahIeHB9wmMB08vnnzJpqamtDR0QF5d1VISAhWrVqFwsJCrF27VhHMHBoaQlVVlbS8YcOGOX9XXrt2TXpNaWlpmga/Xd9z1/vX09Mz43OLjo5GSkoKMjMzkZ+fr+k1dG9vL+rq6tDQ0ID+/n5YrVYpMCgIAlasWIGkpCTk5eUhKytLkwGx/mptbUV1dTXq6+sxPDyseJ9CQ0ORkJCAtLQ05Obmehx8B0wHuG/duiUtZ2RkeB3I1t3dragwu3XrVr+3vaenB/X19dLy5s2b/Zo5xWq14tatW2hoaEBvb6/i89Lr9YiPj0dKSgpycnKQmZk549zd3t4uhbGDg4Oxfv16v1+TWlevXpUGzvlyTKytrZVmFYmKigqoErwnY2NjqK+vR0NDA9rb22G1WhVB7/DwcCQmJkrnNn8GE3hjsVhQX1+P+vp6dHR0wGq1KgYXRkZGIjExEZmZmSgoKFjUwdVERERERLQ4GMwlIiIiIiIin1y5cgVffvmltPyTn/xkwcIKREQPqt7eXqlSYHJysuYDV/r7+2GxWOBwOGAymRATE7NkKnU/bOx2O06dOiVVVktLS8POnTs1+zzGx8dRWloqhX9XrVqFvXv3PlSDSpY615TtQUFBfoW6PJkrmOvO6XRKIcXFCAs5HA7Y7XYYDAbum7NwOp2YmJiAzWaDXq9HaGjogr1fdrtdOmcsVKh/cnISTqcTOp1uWVeVlH+/BEFY8MGooijCZrMti/fxQfnMA+UasKHleeFh5dqnFvLY5d42Q7hERERERAQA/BcvIiIiIiIiUk0URWlKbABISkpiKJeISANxcXE+T0Pui9jYWL8rcZK2jEYj9u3bh4sXL6K6uhotLS344IMP8Oijj2LNmjV+B3IcDgdqa2tx9epVKRCWn5+PrVu3slLuErMUwqg6nW5Rg0N6vX5Rq3YuFzqdDqGhoZpWeVTLaDTCaDQuaJsPSjBzsb9fgiAsm2Dgg/KZB2q5fF7LwWLuU9yfiYiIiIhIjsFcIiIiIiIiUq21tRX9/f3ScklJySJuDRER0fKk0+mwfft2JCUl4cKFC5iYmMD58+dRXl6OtWvXIjs7G2FhYarWZbFYUFdXh5qaGlgsFnbJSqEAABavSURBVADTU8Bv374d6enp8/kyiIiIiIiIiIiIiMgDBnOJiIiIiIhINdcUycB0Fa38/PxF3BoiIqLlLTMzEykpKbh+/boUrC0rK0NZWRliYmKQlJSE6OhohIeHS5V0nU4nRkdHMTg4iI6ODgwMDEjr0+v1yMvLw4YNGxZ86nQiIiIiIiIiIiIimsZgLhEREREREalisVhQVVUlLefn53PKTSIiogCZTCZs3boVRUVFqKqqQn19PaxWKwYGBhSh29mEhYUhKysLBQUFMJvN87zFREREROTN5JQTY3YnAGBs0gm7Y/r26IQDDlFUPNbhBCwTUzPWMT7lhO3bdciNTDjgdFvHlFOE1eaY8ViDXofN6REoTlE3CwMREREREWmLwVwiIiIiIiJS5fz585iamu4wEgQB27ZtW+QtIiIienCEhYVh06ZN2LhxI3p7e9HV1YWenh4MDg7CarXCZrMBmA7yms1mREdHIy4uDklJSVixYgUEQVjkV0BERES0fDicIkYmpjAyPoXh8anp2xMOjH77/5GJKYx++/+RCQeGxl3LDkw5RQACRiamIIqAQxQxOjEzHLvYdALwv6+vwTMFsYu9KUREREREDx0Gc4mIiIiIiEihra0NwcHBUshnYmJCmlbbpbCwELGx7NghIiLSmiAIiI+PR3x8/GJvChEREdGyYXeI6LfYMGC1o88yid7RSQxYJtE/Zkf/t8v9FjsGxibRb51Cv2USkAY2fft/D8vS0CcVj11qnCLwh7JuBnOJiIiIiBYBg7lERERERESkUFVVhatXr0Kn08FoNEoV+lyCg4Oxa9euRdo6IiIiIiIiInpY2OwOdAxNoGt4Au0DY+gcmkDn8ATaB8cxYJlEn2USfaOTGJ6Y+vYZPoRqReHbu9yXv71PBEQPjxU8PtetHfnfFlF4sH6xN4GIiIiI6KHEYC4REREREREpREREAACcTueMUK5er8dLL72EyMjIxdg0IiIiIiIiInqATDlFtA+MobXPguZeK1r6rGjtt6K5z4rW/rHpyrYAPFaqVYRf5w7VCjMCuMK3gVrZeryGdQUpfCu6mpktrOse1JX+t3Bh3RVhRvyfx1MWrD0iIiIiIvoOg7lERERERESk4ArmuouKisKBAweQlpa2wFtERERERERERMuZ1TaF+s5h1HWOoLZzBPVdI7jbMYyWXgumnKL3qrbQLlQrBXVlfxNc68EsoVp5Ox7/5grrfrc8HdT1/FhPrzMqxACzSQ9zkA7mID3CQwyICNbDHKSHyaADAISZ9NDrXI+froSr1wkIM03fDtLrEBo0/djIEAMeTQtHaBAr5hIRERERLQZBFEVx7ocRERERERHRw2RwcBAdHR0YGRmB0+lEfHw8MjMzodPpFnvTiIiIiMhNQ0MDuru7AUwPsiosLFzkLSIioofZ6LgdFc39KL/Xh5v3+lDZMoDWPgtmVLX1WPHWy7Lb3wTF32YJ9bo/d87HCrJNnD0sDAjQ6wREhhgREWJAZIgRUaHf3Y789v/TywaEmaaDthEhBoQHG2AO0sNs0kvBWiIiIiIienAwmEtERERERERERERERERERH7pH53A2ar7KL1zH9cbe9HQOQLnd2Vm/QzVfnufD6FaQf5cFaFa+bJOEBBtDkKMOQgxYSZEm42IMU//PzYsCLHmIOnvkSEGRIQavw3bcoJaIiIiIiKaicFcIiIiIiIiIiIiIiIiIiJSxSmKuNHQg69ut+HMrTZUNPXBKYp+h2q/e5qKAK4iVDv7Y01GHRKjQpEQGYwV4cFYGRWCFeEmJEQEf3ufCTHfBm6jzUF+vRdERERERESeMJhLRERERERERERERERERESzau0dxXvf1OC9b2rR1jcKTUO1s1XVlf7+3W2doMPKqBCsig1DckwokmJCkRxtRsq3t5OiQxEfEazNCyciIiIiIvIRg7lEREREREREREREREREROTRqfJm/N8T5ThfdX+6Mi4QUKh25t88L+v1AlJXhCM9PgIZCRFIj3fdDkdaXBhMBr32L5aIiIiIiEgDDOYSEREREREREREREREREZHC+ao2/O0fz+NmYzfmDNXOqJT73W1hjseGmIzITYpCbnI01iRHT/8/JRopMWYY9Lr5enlERERERETzhsFcIiIiIiIiIiIiIiIiIiICANjsDvzy96X439MVgDhXAFeQPVPdY9MTIrE+MwElmfFYnxmPdWkrEBxkmK+XQ0REREREtOAYzCUiIiIiIiIiIiIiIiIiInT0j+KNX32CGw1d396jDNV+V/125t88Lev1AorTE7C9IAVb1ySjJCsBMWHB8/siiIiIiIiIFhmDuURERERERERERERERERED7mB0XE89cs/oP5+P2ZUvwWUAVzZ3wS35ZzkWDxRlIadBauwdW0KIkJNC/USiIiIiIiIlgTOCUJERERERERERERERERE9BATReCtXx1BfVvvd1lc0S2cK18WIQV1RQjIT43D/s25OLA5FznJMQu+/UREREREREsJg7lERERERERERERERERERA+xs5VNOFfZNJ279RLAdV9eER6KHz9dgpd25CMriWFcIiIiIiIiFwZziYiIiIiIiIiIiIiIiIgeYhdu3wNEJ0QA7gFcQQrqTv9tdXw0fnHgMby2ax1CTMZF2V4iIiIiIqKljMFcIiIiIiIiIiIiIiIiIqKHWEiQAXA6v6uUC0jhXBEARAHhZhP+n5d34mfPb4JRr1u0bSUiIiIiIlrq+IuJiIiIiIiIiIiIiIiIiOghtm/TGugEAKIIiM7v/nNO/39NSiwu/stf4f8c3MxQLhERERER0Rz4q4mIiIiIiIiIiIiIiIiI6CGWvzoB/++P9nr4i4jMxBgc//9+hLSE6AXfLiIiIiIiouVIEEVRXOyNICIiIiIiIiIiIiIiIiKixXX0wh386s/ncOdeF4wGPZ7bnIe//8tnkRAdttibRkREREREtGwwmEtERERERERERERERERERJLRMRuMBj2CgwyLvSlERERERETLDoO5REREREREREREREREREREREREREREGtAt9gYQERERERERERERERERERERERERERE9CBjMJSIiIiIiIiIiIiIiIiIiIiIiIiIi0gCDuURERERERERERERERERERERERERERBpgMJeIiIiIiIiIiIiIiIiIiIiIiIiIiEgDDOYSERERERERERERERERERERERERERFpgMFcIiIiIiIiIiIiIiIiIiIiIiIiIiIiDTCYS0REREREREREREREREREREREREREpAEGc4mIiIiIiIiIiIiIiIiIiIiIiIiIiDTAYC4REREREREREREREREREREREREREZEGGMwlIiIiIiIiIiIiIiIiIiIiIiIiIiLSAIO5RERERERERPT/t2vHAgAAAACD/K0nsbM4AgAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAAzEXAAAAAAAAAAAAAAZiLgAAAAAAAAAAAAAMxFwAAAAAAAAAAAAAGIi5AAAAAAAAAAAAADAQcwEAAAAAAAAAAABgIOYCAAAAAAAAAAAAwEDMBQAAAAAAAAAAAICBmAsAAAAAAAAAAAAAgwDEgSGN0MbqaAAAAABJRU5ErkJggg==
~TiddlyWiki5 est une réincarnation de ~TiddlyWiki armée pour les 25 prochaines années. Il s'agit d'une wiki interactif complet, écrit en JavaScript et qui peut s'exécuter soit dans un navigateur web, soit en mode serveur sous [[Node.Js]].
These pages document aspects TiddlyWiki5 programming, sharing "lessons learned" to help developers to get started with TiddlyWiki5 customization and extension. There are currently two articles in this wiki: : A Simple Widget : A More Complex Widget
La page Accueil du site officiel : [[tiddlywiki.com|http://tiddlywiki.com]]<br> Visualisable dans cet iframe:<br> ``` <iframe src="http://tiddlywiki.com" width="100%"> ``` ;Soit: <iframe src="http://tiddlywiki.com" width="100%">
[img[organizing-my-ideas]] La liste officielle des "[[issues|https://github.com/Jermolene/TiddlyWiki5/issues]]" Questions et propositions pour améliorer ~TiddlyWiki sont intéressantes à suivre. TiddlyWiki est avant tout un [[FRAMEWORK|Framework]]. ~TiddlyWiki est un outil riche et interactif, capable de manipuler des données structurées complexes. Il est assez éloigné des outils conventionnels comme les traitements de texte ou les feuilles de calcul. ~TiddlyWiki est conçu pour s'adapter à votre cerveau, en vous aidant à gérer ce qui s'adapte mal. L'[[idée fondamentale|Philosophy of Tiddlers]] est que les informations sont plus utiles et plus facilement réutilisables quand on les découpe en morceaux sémantiques aussi petits que possible -- [[les tiddlers|Tiddlers]] -- en leur donnant des titres à partir desquels le wiki pourra se [[structurer|Structuring TiddlyWiki]] à l'aide de [[liens|TiddlerLinks]], d'[[étiquettes|Tagging]], de [[listes|ListField]] et de [[macros|Macros]]. Les tiddlers utilisent une notation [[WikiTexte|WikiText]] qui permet de représenter de façon concise une grande panoplie de fonctions hypertexte et de formatage. Le but de ~TiddlyWiki est de fournir une interface de travail fluide, à même de faciliter l'agrégation des tiddlers et leur recomposition en textes plus long. Les gens [[adorent utiliser|Raves]] ~TiddlyWiki. Parce qu'on peut l'utiliser en l'absence d'infrastructure de serveurs compliquée, et parce qu'il est [[open source|OpenSource]], il a apporté une liberté inédite à ceux qui veulent garder le contrôle de leurs précieuses informations. ~TiddlyWiki a été créé initialement par JeremyRuston et est maintenant devenu un projet //open source// qui s'épanouit grâce à une [[communauté|Community]] active de développeurs indépendants. ;TiddlyWiki Idées et concepts <small>(Extrait de http://inmysocks.tiddlyspot.com/#Learning%20TiddlyWiki)</small> Outre le fait que l'on dispose de nombreux outils dans l'utilisation de WikiText, les quatre concepts les plus utiles pour apprendre de quelle manière TiddlyWiki va bien au delà des outils de composition / traitement de texte traditionnels ou même d'autres wikis, sont: *👉 Lists en WikiText *👉 Filters en WikiText *👉 Transclusion en WikiText *👉 Templates en WikiText
Un TiddlyWiki empty
!Principe ``` <div class="timeline"> <div class="timeline-item" id="timeline-example-1"> <div class="timeline-left"> <a class="timeline-icon" href="#timeline-example-1"></a> </div> <div class="timeline-content"> <!-- tiles structure --> </div> </div> <div class="timeline-item" id="timeline-example-2"> <div class="timeline-left"> <a class="timeline-icon icon-lg" href="#timeline-example-2"> <i class="icon icon-check"></i> </a> </div> <div class="timeline-content"> <!-- tiles structure --> </div> </div> ... </div> ``` <div class="timeline"> <div class="timeline-item" id="timeline-example-1"> <div class="timeline-left"> <a class="timeline-icon" href="#timeline-example-1"></a> </div> <div class="timeline-content"> <!-- tiles structure --> </div> </div> <div class="timeline-item" id="timeline-example-2"> <div class="timeline-left"> <a class="timeline-icon icon-lg" href="#timeline-example-2"> <i class="icon icon-check"></i> </a> </div> <div class="timeline-content"> <!-- tiles structure --> </div> </div> ... </div> !Exemple complet {{Timelines Exemple complet}}
``` <div class="column col-9 col-sm-12"> <div class="timeline"> <div class="timeline-item" id="timeline-example-1"> <div class="timeline-left"><a class="timeline-icon tooltip" href="#timeline-example-1" data-tooltip="March 2016"></a></div> <div class="timeline-content"> <div class="tile"> <div class="tile-content"> <p class="tile-subtitle">March 2016</p> <p class="tile-title">Initial commit</p> </div> </div> </div> </div> <div class="timeline-item" id="timeline-example-2"> <div class="timeline-left"><a class="timeline-icon icon-lg tooltip" href="#timeline-example-2" data-tooltip="February 2017"><i class="icon icon-check"></i></a></div> <div class="timeline-content"> <div class="tile"> <div class="tile-content"> <p class="tile-subtitle">February 2017</p> <p class="tile-title">New Documents experience</p> <p class="tile-title"><a href="components.html#bars">Bars</a>: represent the progress of a task</p> <p class="tile-title"><a href="components.html#steps">Steps</a>: progress indicators of a sequence of task steps</p> <p class="tile-title"><a href="components.html#tiles">Tiles</a>: repeatable or embeddable information blocks</p> </div> <div class="tile-action"> <button class="btn">View</button> </div> </div> </div> </div> <div class="timeline-item" id="timeline-example-3"> <div class="timeline-left"><a class="timeline-icon icon-lg tooltip" href="#timeline-example-3" data-tooltip="March 2017"><i class="icon icon-check"></i></a></div> <div class="timeline-content"> <div class="tile"> <div class="tile-content"> <p class="tile-subtitle">March 2017</p> <p class="tile-title"><a href="elements.html#icons">Icons</a>: single-element, responsive and pure CSS icons</p> <p class="tile-title"><a href="components.html#popovers">Popovers</a>: small overlay content containers</p> <p class="tile-title"><a href="experimentals.html#calendars">Calendars</a>: date or date range picker and events display</p> <p class="tile-title"><a href="experimentals.html#carousels">Carousels</a>: slideshows for cycling images</p> </div> <div class="tile-action"> <button class="btn">View</button> </div> </div> </div> </div> </div> </div> ``` <div class="column col-9 col-sm-12"> <div class="timeline"> <div class="timeline-item" id="timeline-example-1"> <div class="timeline-left"><a class="timeline-icon tooltip" href="#timeline-example-1" data-tooltip="March 2016"></a></div> <div class="timeline-content"> <div class="tile"> <div class="tile-content"> <p class="tile-subtitle">March 2016</p> <p class="tile-title">Initial commit</p> </div> </div> </div> </div> <div class="timeline-item" id="timeline-example-2"> <div class="timeline-left"><a class="timeline-icon icon-lg tooltip" href="#timeline-example-2" data-tooltip="February 2017"><i class="icon icon-check"></i></a></div> <div class="timeline-content"> <div class="tile"> <div class="tile-content"> <p class="tile-subtitle">February 2017</p> <p class="tile-title">New Documents experience</p> <p class="tile-title"><a href="components.html#bars">Bars</a>: represent the progress of a task</p> <p class="tile-title"><a href="components.html#steps">Steps</a>: progress indicators of a sequence of task steps</p> <p class="tile-title"><a href="components.html#tiles">Tiles</a>: repeatable or embeddable information blocks</p> </div> <div class="tile-action"> <button class="btn">View</button> </div> </div> </div> </div> <div class="timeline-item" id="timeline-example-3"> <div class="timeline-left"><a class="timeline-icon icon-lg tooltip" href="#timeline-example-3" data-tooltip="March 2017"><i class="icon icon-check"></i></a></div> <div class="timeline-content"> <div class="tile"> <div class="tile-content"> <p class="tile-subtitle">March 2017</p> <p class="tile-title"><a href="elements.html#icons">Icons</a>: single-element, responsive and pure CSS icons</p> <p class="tile-title"><a href="components.html#popovers">Popovers</a>: small overlay content containers</p> <p class="tile-title"><a href="experimentals.html#calendars">Calendars</a>: date or date range picker and events display</p> <p class="tile-title"><a href="experimentals.html#carousels">Carousels</a>: slideshows for cycling images</p> </div> <div class="tile-action"> <button class="btn">View</button> </div> </div> </div> </div> </div> </div>
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-gray"> <div class="hero-body"> !!{{!!caption}} <<f-i check-square>> Il y a <$count filter=[tag{!!title}] /> Tiddlers tagués {{!!title}} </div> </div> </div> @@ <table class="table table-striped table-hover"> <thead> <tr> <th align="center">Tiddler</th> <th align="center">Date de création</th> <th align="center">Numéro d'ordre</th> </tr> </thead> <$list filter="[tag{!!title}] [tag[]] +[sort[sub.num]]"> <tbody> <tr> <td><$link to={{!!title}}><$text text={{!!title}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="form-input"/></td> </tr> </tbody> </$list> </table>
Une sélection de titre est une suite ordonnée de titres de tiddlers (ou chaînes similaires), dans laquelle aucun titre n’apparaît plus d'une fois. Les sélections de titres sont importantes dans les processus de [[filtre|Filters]]. La façon la plus simple d'en écrire une est une [[liste de titres|Title List]].
!! //Numbers// version 0.9.3 Une démonstration utilisant la macro [[Extract Macro|http://tid.li/tw5/hacks.html#Extract%20Macro]] version 0.9.3 et [[TextStretch|http://tid.li/tw5/hacks.html#TextStretch]] from 0.8.5. Fit avec TiddlyWiki version <<version>>. Une feuille de style: $:/cssTitlesWithNumbers Et sur chaque tiddler à l'endroit souhaité : ``` <div class="nr"> !Premier niveau (H1) !!Second niveau (H2) !!!Troisième niveau (H3) !!!!Quatrième niveau (H4) </div> ``` ;Soit: <div class="nr"> !Premier niveau (H1) !!Second niveau (H2) !!!Troisième niveau (H3) !!!!Quatrième niveau (H4) </div>
\define titre(t,c:"#00BCD4FF", fa:"fa-search") <h3 class="titre" style='background-color: $c$;'> $t$ <i class='fa $fa$'> </i> </h3> <style> .titre { font-size: 1.7rem; line-height: 3.5rem; color: #fff; font-weight: 400; width: 100%; margin: 0; display: flex; justify-content: center; align-items: center; margin-bottom: 0.1rem; } .titre i { margin-left: 0.5rem; } </style> \end <<titre "Recherche Google" "#00D4BCFF">> <<titre "Recherche Altavista" "#BC00D4FF" "fa-binoculars">> <<titre "Recherche Échec" "#BCD400FF" "fa-chess">> <<titre "Recherche Braille" "#0088BCFF" "fa-braille">>
!!{{!!caption}} Via le tiddler [[$:/core/ui/ViewTemplate/titleTitle]] (tagué $:/tags/ViewTemplate). Par la classe `<div class="toast text-center toast-xxx">`où ''xxx'' peut prendre les valeurs `primary`, `success`, `warning`, `error`. Et où les `<span class="Hn text-yyy"...</span>` ''Hn'' peut prendre les valeurs H1 à H6 et les ''yyy'' peuvent prendre les valeurs `primary`, `secondary`, `success`, `warning`, `error`. Pour les autres caratéristiques concernant le titre des tiddlers, lire aussi le dossier complet [[$:/core/ui/ViewTemplate/title modifié]]
Void
[[Un lien classique|TiddlyWiki]] !Un titre H1 non lié ![[Un titre H1 lié|TiddlyWiki]] Le titre perd sa couleur assignée pour prendre celle d'un lien classique.
<$details summary="Contexte" open="yes"> @@padding:0 5px;border:1px solid crimson; *✨ Bloc Contexte modifié le 22 Septembre 2018. *✨ Article modifié le {{!!modified}} @@ """ ''Voir aussi:'' 👉 [[Attribuer ou supprimer le tag d'un Tiddler]] 👉 [[tm-add-tag]] 👉 [[tm-remove-tag]] 👉 Pour un exemple: [[FieldManglerWidget]] 👉 [ext[Permaview|https://tiddlywiki.com/#WidgetMessage%3A%20tm-add-tag:%5B%5BWidgetMessage%3A%20tm-add-tag%5D%5D%20%5B%5BWidgetMessage%3A%20tm-remove-tag%5D%5D%20FieldManglerWidget%20%5B%5BFieldMangler%20Widget%20(Examples)%5D%5D]] sur le site ~https://tiddlywiki.com: """ </$details> |!Nom |!Description | |param |Nom du Tag à ajouter| Le message'tm-Add-tag'est géré par le widget `FieldMangler` (FieldManglerWidget). Il ajoute la balise spécifiée. Le message `add tag` est généralement généré avec le ButtonWidget et est géré par le widget `FieldMangler` (FieldManglerWidget). Article modifié le {{!!modified}}
The `tm-delete-tiddler` message deletes the specified tiddler and removes it from the current story. If the tiddler is a draft then it also deletes the tiddler specified in the `draft.of` field. The delete tiddler message requires the following properties on the `event` object: |!Name |!Description | |param |Title of the tiddler that is to be deleted | |tiddlerTitle |Fallback title that is used if ''param'' isn't specified (automatically set by the ButtonWidget) | The delete tiddler message is usually generated with the ButtonWidget and is handled by the NavigatorWidget.
Ce titre est à renseigner
Le tiddler message "new-tiddler" crée un nouveau tiddler "brouillon" et l'ajoute à la story River. Il réclame les propriétés suivantes sur l'objet "event" |!Name |!Description | |param |Le titre optionnel du tiddler template utilisé pour créer le nouveau tiddler | |paramObject |Liste optionnelle de champs de tiddlers à ajouter (attributs nommés) | |navigateFromTitle |Le titre du tiddler duquel la navigation vers le nouveau tiddler a été initiée | Le titre du nouveau tiddler "brouillon" est choisi suivant les règles suivantes: *<i class="fa fa-arrow-right"></i> Si une liste de champs a été attribuée et qu'un titre a été donné au champ, utiliser ce titre. *<i class="fa fa-arrow-right"></i> Si c'est un tiddler template qui a été choisi, utiliser le titre du tiddler template en le rendant unique par ajout d'un suffixe numérique. *<i class="fa fa-arrow-right"></i> Dans les autres cas, générer un nouveau titre fondé sur le titre donné par défaut au nouveau tiddler en y ajoutant un suffixe numérique qui le rende ainsi unique. Le nouveau tiddler est normalement généré avec le widget bouton (button widget) ou par le widget "[[ActionSendMessage|ActionSendMessageWidget]]" et est pris en charge par le widget "Navigation" ! Examples To make a button that creates new tiddlers tagged "task", create a tiddler called "TaskTemplate" with that tag, and then make your button like this: ``` <$button message="tm-new-tiddler" param="TaskTemplate">New Task</$button> ``` To create a new tiddler with given attributes rather than from a template: ``` <$button> <$action-sendmessage $message="tm-new-tiddler" title="This is newly created tiddler" tags="OneTag [[Another Tag]]" text=<<now "Today is DDth, MMM YYYY">>/> New Tiddler </$button> ``` Astuce : Attribuer la classe tc-btn-invisible tc-tiddlylink pour obtenir un bouton semblable à un lien interne. I see in the documentation that the new tiddler message can take a paramObject that is a hashmap of fields the new tiddler can have. What does the hashmap look like, and how do I add a button to the view template that will create this tiddler with the current tiddler as a tag (like the create here button). <$button> <$action-sendmessage $message="tm-new-tiddler" my-field="123" modifier="Joe Bloggs"/> Demo </$button> //[[Source Extrait|https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg49407.html]]//
<$details summary="Contexte" open="yes"> """ ''Voir aussi:'' 👉 [[Attribuer ou supprimer le tag d'un Tiddler]] 👉 [[tm-add-tag]] 👉 [[tm-remove-tag]] 👉 Pour un exemple: [[FieldManglerWidget]] ''Permaview sur le site ~https://tiddlywiki.com:'' [ext[Permaview|https://tiddlywiki.com/#WidgetMessage%3A%20tm-add-tag:%5B%5BWidgetMessage%3A%20tm-add-tag%5D%5D%20%5B%5BWidgetMessage%3A%20tm-remove-tag%5D%5D%20FieldManglerWidget%20%5B%5BFieldMangler%20Widget%20(Examples)%5D%5D]] sur le site ~https://tiddlywiki.com: """ </$details> |!Nom |!Description | |param |Nom du Tag à retirer| Le message `tm-remove-tag` est géré par le widget `FieldMangler` (FieldManglerWidget). Il retire le tag spécifié. Le message `remove tag` message est généralement généré avec le ButtonWidget et est géré par le widget `FieldMangler` (FieldManglerWidget).
{{tmDelete||caption}}
\define the_link() [[$(x)$]] \end \define okay_link() <$set name="x" value={{!!title}}> <<the_link>> </$set> \end ``` \define the_link() [[Comment for '$(x)$']] \end \define okay_link() <$set name="x" value={{!!title}}> <<the_link>> </$set> \end <<okay_link>> ``` Modifié comme suit pour obtenir un lien sur le titre du tiddler actuel : ``` \define the_link() [[$(x)$]] \end \define okay_link() <$set name="x" value={{!!title}}> <<the_link>> </$set> \end <<okay_link>> ``` ;Soit : <<okay_link>>
Toasts are used to show alert or information to users. ``` <div class="column col-9 col-sm-12"> <div class="toast"> <button class="btn btn-clear float-right"></button> <h2>Toast Title</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> ``` <div class="column col-9 col-sm-12"> <div class="toast"> <button class="btn btn-clear float-right"></button> <h2>Toast Title</h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> ``` <div class="column col-9 col-sm-12"> <div class="toast toast-primary"> <button class="btn btn-clear float-right"></button> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> ``` <div class="column col-9 col-sm-12"> <div class="toast toast-primary"> <button class="btn btn-clear float-right"></button> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p> </div> </div> Add a container element with the toast class. You can add any text within the container, and even icons. You may also add a close button with the btn-clear class if you need. ``` <div class="toast"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. </div> ``` <div class="toast"> Lorem ipsum dolor sit amet, consectetur adipiscing elit. </div> And you can add the toast-primary, toast-success, toast-warning or toast-error class for additional toast colors. ``` <div class="toast toast-primary"> <button class="btn btn-clear float-right"></button> Lorem ipsum dolor sit amet, consectetur adipiscing elit. </div> ``` <div class="toast toast-primary"> <button class="btn btn-clear float-right"></button> Lorem ipsum dolor sit amet, consectetur adipiscing elit. </div> ``` <div class="column col-sm-12"> <div class="toast toast-success"> <button class="btn btn-clear float-right"></button> <p>Toast success</p> </div> </div> ``` <div class="column col-sm-12"> <div class="toast toast-success"> <button class="btn btn-clear float-right"></button> <p>Toast success</p> </div> </div> ``` <div class="column col-sm-12"> <div class="toast toast-warning"> <button class="btn btn-clear float-right"></button> <p>Toast warning</p> </div> </div> ``` <div class="column col-sm-12"> <div class="toast toast-warning"> <button class="btn btn-clear float-right"></button> <p>Toast warning</p> </div> </div> ``` <div class="column col-sm-12"> <div class="toast toast-error"> <button class="btn btn-clear float-right"></button> <p>Toast error</p> </div> </div> ``` <div class="column col-sm-12"> <div class="toast toast-error"> <button class="btn btn-clear float-right"></button> <p>Toast error</p> </div> </div>
{{TocFilter||caption}}
Le plugin `$:/plugins/tobibeer/toc` fournis un filtre pour extraire des titres dans une table des matières. ;Usage *Indexer tous les titres d’une table des matières *Rechercher des titres dans le seul contexte de la table des matières *Organiser la pagination des titres d'une table des matières en niveaux Le plugin est composé d'un tiddler JavaScript : *$:/plugins/tobibeer/toc/filter.js ;toc[] *un filtre pour extraire des titres dans une table des matières ;Operand *Définis le titre racine *Valeur par défaut : `<<currentTiddler>>` ;Suffixes *Sont déclarés comme : `name=<value>`... *`level=<number>` *`exclude=variableName` *`truncate=variableName` *`list=field-name` *`sort=field-name` ASC or `sort=!field-name` DESC !Syntaxe Le filtre ''TOC'' permet de spécifier un élément ''racine'' pour votre table des matières dans le filtre opérande (''operand''), ainsi qu’une plage d’options dans le suffixe (''suffix''): ``` toc:<suffix>[<operand>] ``` Le suffixe et l’opérande sont facultatifs. L’élément racine par défaut est la valeur de `< <currentTiddler> >` ou `TableOfContents` si elle n'est pas définie. Le filtre TOC prend en charge les suffixes suivants déclarés comme paire `name = <value>`, séparés par des espaces. <table class="table table-striped table-hover"> <thead> <tr> <th>Suffixe</th> <th>Description</th> <th>Par défaut</th> </tr> </thead> <tbody> <tr> <td>level</td> <td>le niveau numérique à partir duquel l’arborescence est calculée</td> <td>`-1` (aucun)</td> </tr> <tr> <td>exclude</td> <td>une variable définissant un filtre d’éléments à exclure</td> <td></td> </tr> <tr> <td>truncate</td> <td>une variable définissant un filtre d'éléments à tronquer, par exemple, ne pas indexer les éléments enfants</td> <td></td> </tr> <tr> <td>list</td> <td>le champ définissant l’arborescence (arborescence des tags)</td> <td>`tags`</td> </tr> <tr> <td>sort</td> <td>un champ par lequel trier les titres pour chaque niveau dans l’ordre croissant (Ajouter `!` pour un tri par ordre décroissant, par ex. `sort=!order`</td> <td></td> </tr> </tbody> </table> Voir [[Exemples|TocFilterExemples]]
Pour mieux visualiser les résultats des exemples ci-dessous, vous pouvez les comparer à la liste `Sommaire` de la SideBar. ``` {{{ [toc[TableOfContents]] }}} ``` ``` {{{ [toc:sort=title[TableOfContents]] }}} ``` ``` {{{ [toc:sort=!title[TableOfContents]] }}} ``` Les <$count filter="[tag[TableOfContents]]"/> Mots-Clés tagués [[TableOfContents]] classés par ordre alphabétique. (Premier niveau sur ce wiki). ``` {{{ [toc:level=1[TableOfContents]] }}} ``` Au second niveau, sont listés, sous chacun des titres de premier niveau et par ordre alphabétique, les tiddlers rattachés (enfants) au niveau 1. Dans l'exemple qui suit les tiddlers sont classés suivant l'ordre de leur champ `caption`. Par défaut - sans spécification - ils sont classés par ordre alphabétique suivant leur titre (champ title), comme dans les exemples précédents. Ici, en exemple, sous le premier tiddler racine tiddler [[Applications]] on trouvera les <$count filter="[tag[Applications]]"/> tiddlers qui y sont directement rattachés ``` {{{ [toc:level=2 sort=caption[TableOfContents]] }}} ``` Dans la liste des tiddlers tagués Applications, et limités au niveau 1, on exclue de la liste le tiddler Choo et morosanuae (ce dernier possédant des tiddlers enfants) ``` <$vars X="morosanuae Choo"> {{{ [toc:level=1 exclude=X[Applications]] }}} </$vars> ``` <div class="column col-sm-12"> <div class="toast toast-error"> Tous mes tests avec `list` ne fonctionnent pas. </div> </div>
Plugin par PMario. Table of Content - based on a parent field
{{TOCs||caption}}
{{ToDo||caption}}
!!Travaux restant à faire <$list filter="[!has[draft.of]tag[task]!tag[done]sort[due]]"> <$checkbox tag="done"> <$link to={{!!title}}><$view field="title"/> | <$view field="due"/></$link></$checkbox> </$list> !! Travaux terminés <$list filter="[!has[draft.of]tag[task]tag[done]sort[created]]"> <$checkbox tag="done"> ~~<$link to={{!!title}}><$view field="title"/></$link>~~</$checkbox> </$list> Pour la même chose mais avec une liste pouvant être ordonnée, voir https://tiddlywiki.com/#TaskManagementExample%20(Draggable) --- [ ] Voir sujet similaire [[Simple CheckList]]
Deux manières de gérer une ToDo liste sans se prendre la tête. *<i class="fa fa-arrow-right"></i> Le premier code ne nécessite rien. Il est géré par des listes et un tag *<i class="fa fa-arrow-right"></i> Le second nécessite d'installer le plugin $:/plugins/tgrosinger/tw5-checklist préalablement.
Allows you to easily remove "admin controls" from your TiddlyWiki, and to add them again. Le mécanisme de sauvegarde une fois en mode web est intéressant
Voir aussi: https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg82275.html Professional website : https://psat.com.au/ People Systems and Things (psat) Tony is a Consultant IT and a great TiddlyWiki Master of Arts. Considérablement enrichi depuis Jnvier 2019: *<button class="bttn-material-circle bttn-sm bttn-danger">1</button> Intégration Bimlas [[IntenseDebate Comment system|Intense]] en Plugin qui semble maintenant permettre ''un commentaire par Tiddler''. *<button class="bttn-material-circle bttn-sm bttn-danger">2</button> Un plugin "Système de menu" à étudier. *<button class="bttn-material-circle bttn-sm bttn-danger">3</button> Un tiddler de formation : [ext[Variables, Parameters and transclusions|https://tiddlywiki.psat.com.au/#Variables%2C%20Parameters%20and%20transclusions]]
(function(){ exports.name = "ToggleVisible"; exports.params = [{name: "classe"},{name: "valeur"}]; exports.run = function(classe,valeur) { el = document.getElementsByClassName(classe); for(var i=0;i<el.length;i++){ if(valeur=="1"){ el[i].style.visibility = ""; }else{ el[i].style.visibility = "hidden"; } } }; })();
``` <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-type data-tip-bottom data-tip-mask">bottom</button> </div> ``` ;Soit: <<< <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-type data-tip-bottom data-tip-mask">bottom</button> </div> <<<
``` <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-tip-left data-tip-mask">left</button> </div> ``` ;Soit: <<< <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-tip-left data-tip-mask">left</button> </div> <<<
``` <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-tip-right">right</button> </div> ``` ;Soit: <<< <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-tip-right">right</button> </div> <<<
{{Tooltips||caption}}
<style> .sec { margin: 10px; } </style> ;Styler: ``` <style> .sec { margin: 10px; } </style> ``` !!Exemple sans animation: ``` <span data-tip="Bon!" class="underline data-tip data-tip-bottom data-tip-no-animation">No ''animation''...</span> ``` ;Soit: <<< <span data-tip="Bon!" class="underline data-tip data-tip-bottom data-tip-no-animation">No ''animation''...</span> <<< !!Avec bordures arrondies ``` <span data-tip="I am a tooltip" class="underline data-tip-top data-tip-info data-tip-rounded">Rounded is truth!</span> ``` ;Soit: <<< <span data-tip="I am a tooltip" class="underline data-tip-top data-tip-info data-tip-rounded">Rounded is truth!</span> <<< !!Façon BD ``` <span data-tip="Isnt it?" class="underline data-tip-top data-tip-fast">Fast mode</span> ``` ;Soit: <<< <span data-tip="Isnt it?" class="underline data-tip-top data-tip-fast">Fast mode</span> <<< !!Visible au passage de la souris...: ``` <span data-tip="Cool!" class="underline data-tip-right data-tip-fast data-tip-shadow">Shadow box!</span> ``` ;Soit: <<< <span data-tip="Cool!" class="underline data-tip-right data-tip-fast data-tip-shadow">Shadow box!</span> <<< !!...Ou toujours visible ``` <span data-tip="Yep!" class="underline data-tip-warning data-tip-right data-tip-fast data-tip-visible">Always visible?</span> ``` ;Soit: <<< <span data-tip="Yep!" class="underline data-tip-warning data-tip-right data-tip-fast data-tip-visible">Always visible?</span> <<<
<style> .sec { margin: 10px; } </style> <p data-tip="Ce Tooltip englobe la totalité de ce premier paragraphe, présenté en haut" class="data-tip data-tip-top">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> <p data-tip="Ce Tooltip englobe la totalité de ce second paragraphe, présenté en bas" class="data-tip data-tip-bottom">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> <p>Lorem ipsum dolor sit amet, <span class="data-tip data-tip-right" data-tip="À la droite du mot consectetur mais dont seule la mise en caractères gras indique la présence...">//''consectetur''//</span>(1) adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p> (1) Le contenu textuel du tooltip ne supporte pas les guillemets, par exemple : ``` À la droite du mot "consectetur" mais dont seule la mise en caractères gras indique la présence... ``` Les guillemets appliqués au mot consectetur cassent le style.
Outre le très joli nom de "Philactère" donné à cette adaptation Infobulles par son auteur @Oxydum , tout ceci fonctionne avec juste une feuille de style et le code d'appel. La feuille de style propose de nombreuses combinaisons. *https://forum.tiddlywiki.fr/t/phylactere-encore-des-bulles/604 *https://oxydum.github.io/phylactere/
``` <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-tip-top data-tip-white data-tip-mask">top</button> </div> ``` ;Soit: <<< <style> .sec { margin: 10px; } </style> <div class="sec"> <button data-tip="I am a tooltip!" class="data-tip-top data-tip-white data-tip-mask">top</button> </div> <<<
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- Created with Inkscape (http://www.inkscape.org/) --> <svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="26mm" height="37mm" viewBox="0 0 26 37" version="1.1" id="svg3810" inkscape:version="0.92.2 5c3e80d, 2017-08-06" sodipodi:docname="top-3-middle-1-bottom-3.svg"> <defs id="defs3804" /> <sodipodi:namedview id="base" pagecolor="#ffffff" bordercolor="#666666" borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:zoom="0.35" inkscape:cx="297.14286" inkscape:cy="668.57143" inkscape:document-units="mm" inkscape:current-layer="layer1" showgrid="false" inkscape:window-width="954" inkscape:window-height="1044" inkscape:window-x="962" inkscape:window-y="4" inkscape:window-maximized="0" /> <metadata id="metadata3807"> <rdf:RDF> <cc:Work rdf:about=""> <dc:format>image/svg+xml</dc:format> <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> <dc:title></dc:title> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label="Ebene 1" inkscape:groupmode="layer" id="layer1" transform="translate(0,-260)"> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 2.7852894,265.4737 c -0.029694,0.1576 -0.068954,0.31254 -0.089083,0.47278 -0.014646,0.11658 0,0.23639 0,0.35458 0,0.27579 0,0.55158 0,0.82736 0,0.43338 0,0.86676 0,1.30014 0,0.15759 -0.013117,0.31615 0,0.47278 0.016717,0.19966 0.072358,0.3913 0.089083,0.59097 0.029515,0.35241 -0.024195,0.71062 0,1.06375 0.016349,0.23866 0.072726,0.4705 0.089083,0.70917 0.029572,0.43159 -0.027125,0.86825 0,1.30014 0.014999,0.23882 0.074085,0.47033 0.089084,0.70916 0.014793,0.23557 0,0.47278 0,0.70917 0,0.51217 0,1.02435 0,1.53652 0,0.78796 0,1.57592 0,2.36389 0,0.27579 0,0.55157 0,0.82735 0,0.27579 0.01481,0.55228 0,0.82737 -0.014958,0.27787 -0.07298,0.54959 -0.089084,0.82736 -0.02733,0.47138 0.029588,0.94719 0,1.41833 -0.014999,0.23882 -0.074085,0.47034 -0.089083,0.70916 -0.014793,0.23558 0,0.47279 0,0.70917 0,0.19699 0,0.39399 0,0.59098 0,0.74856 0,1.49712 0,2.24568 0,0.197 0,0.39399 0,0.59098 0,0.0788 0,0.15759 0,0.23638 0,0.0394 -0.00939,0.0808 0,0.1182 0.1023634,0.40744 0.089083,0.0876 0.089083,0.35459 0,0.0394 0,0.0788 0,0.11819 0,0.0394 0.029694,0.1182 0,0.1182 -0.029694,0 0,-0.0788 0,-0.1182" id="path3699" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 2.7852894,265.4737 c 0.1781672,-0.51218 0.3116749,-1.05611 0.5345005,-1.53652 0.031126,-0.0671 0.1199304,0.0154 0.1781663,0 0.7324504,-0.32394 -0.1878037,0.0415 0.5345013,-0.1182 0.092624,-0.0205 0.1742918,-0.10057 0.2672493,-0.11819 0.1175846,-0.0223 0.2375558,0 0.3563342,0 0.2375559,0 0.4751109,0 0.7126668,0 0.4157229,0 0.831445,0 1.2471679,0 0.148472,0 0.2975551,-0.0179 0.4454174,0 0.1798821,0.0216 0.3546166,0.0965 0.5344996,0.11819 0.1478631,0.0179 0.2976819,-0.0196 0.4454173,0 1.4914572,0.19789 -0.7404988,0.0461 0.9799178,0.23639 0.3551027,0.0393 0.7137167,-0.0362 1.0690012,0 0.704116,0.0719 0.494938,0.18587 1.158083,0.1182 0.209353,-0.0214 0.414147,-0.0983 0.623585,-0.1182 1.751341,-0.16598 -0.605835,0.22537 1.33625,-0.11819 1.844106,-0.32623 -0.706153,0.10234 1.336251,-0.23639 0.237556,-0.0394 0.473793,-0.0971 0.712668,-0.1182 0.207401,-0.0184 0.416183,0.0184 0.623583,0 0.238874,-0.0211 0.475363,-0.0762 0.712668,-0.11819 0.416258,-0.0736 0.831444,-0.1576 1.247167,-0.2364 0.207862,-0.0394 0.414146,-0.0983 0.623584,-0.11819 0.207334,-0.0196 0.416334,0.0211 0.623585,0 0.180091,-0.0184 0.354497,-0.0983 0.534497,-0.11819 0.355105,-0.0392 0.714133,0.0428 1.069005,0 0.150787,-0.0182 0.294926,-0.096 0.445414,-0.11819 0.118054,-0.0174 0.237555,0 0.356333,0 0.118778,0 0.237556,0 0.356334,0 0.08908,0 0.179381,-0.0195 0.267252,0 0.09263,0.0205 0.175169,0.0938 0.26725,0.11819 0.11647,0.0309 0.241102,-0.0382 0.356334,0 0.06441,0.0214 0.115177,0.0903 0.178169,0.11819 0.02816,0.0124 0.06808,-0.0278 0.08908,0 0.021,0.0279 0,0.0788 0,0.11819 0,0.0394 0.021,0.0903 0,0.1182 -0.021,0.0279 -0.05939,0 -0.08908,0 -0.170817,0 -0.137923,0.0534 -0.267251,-0.1182" id="path3701" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 22.65089,263.228 c 0,0.90617 0,1.81232 0,2.71848 0,0.59895 -0.02657,-0.14096 0.08908,0.47277 0.0144,0.0765 0,0.1576 0,0.2364 0,0.11819 0,0.23639 0,0.35458 0,0.15759 0.01473,0.3164 0,0.47277 -0.01519,0.1612 -0.0739,0.31159 -0.08908,0.47278 -0.01473,0.15638 0,0.31519 0,0.47278 0,0.19699 0,0.39398 0,0.59097 0,0.19699 0.01475,0.39496 0,0.59097 -0.01506,0.1999 -0.07538,0.39091 -0.08908,0.59097 -0.01612,0.23542 0,0.47278 0,0.70917 0,0.82736 0,1.65473 0,2.48208 0,0.35459 0.01571,0.70978 0,1.06375 -0.01408,0.31709 -0.05939,0.63037 -0.08908,0.94556 0,0.35458 0.01485,0.70971 0,1.06375 -0.02984,0.71242 -0.148338,1.41506 -0.178169,2.12749 0,2.82969 0.03317,-0.5855 -0.08908,2.00931 -0.01485,0.31457 0.0158,0.63106 0,0.94555 -0.118478,2.35795 -0.08908,-0.69616 -0.08908,1.65472 0,1.41833 0,2.83666 0,4.255 0,0.0761 -0.01506,0.74737 0,0.82735 0.0161,0.0855 0.06808,0.15282 0.08908,0.23639 0.0094,0.0374 -0.02969,0.1182 0,0.1182 0.147725,0 0.06247,-0.16575 0.08908,-0.23639 0.110084,-0.29211 0.08908,0.0408 0.08908,-0.23639" id="path3703" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 2.8743725,287.45785 c 0.1187784,0.86675 0.237556,1.73352 0.3563342,2.60027 0,0.0394 -0.026561,0.10058 0,0.1182 0.1781663,0.1182 0.1336248,-0.0591 0.2672495,0 0.062989,0.0278 0.1130579,0.10091 0.178167,0.1182 0.2737832,0.0726 0.3401165,-0.0712 0.6235836,-0.1182 0.1178611,-0.0195 0.2375558,0 0.3563342,0 0.2672494,0 0.5355969,0.0321 0.8017499,0 1.3021128,-0.15706 -0.2299396,-0.1182 1.0690009,-0.1182 0.6235836,0 1.2471679,0 1.8707515,0 0.2375559,0 0.4751117,0 0.712668,0 0.2375556,0 0.4755213,-0.0184 0.7126659,0 1.0594128,0.0827 0.5407628,0.19241 1.6035018,0.1182 2.381497,-0.31598 -0.596852,0.0396 1.781668,-0.1182 0.298054,-0.0198 0.59278,-0.0984 0.890835,-0.11819 0.296574,-0.0197 0.594299,0.0207 0.890834,0 0.268523,-0.0188 0.533227,-0.0994 0.80175,-0.1182 2.371028,0 -0.501174,0.0435 1.692585,-0.11819 0.266838,-0.0197 0.534961,0.0208 0.801751,0 0.238991,-0.0186 0.473728,-0.0984 0.712667,-0.1182 0.237092,-0.0197 0.47511,0 0.712665,0 0.178168,0 0.356952,-0.0196 0.534503,0 0.179999,0.0199 0.354616,0.0965 0.534501,0.1182 0.147862,0.0179 0.296943,0 0.445413,0 0.118779,0 0.239174,-0.0259 0.356335,0 0.06549,0.0144 0.113752,0.0968 0.178167,0.11819 0.188175,0.0624 0.188093,-0.10502 0.356335,0.1182 0.021,0.0278 -0.05939,0 -0.08908,0 -0.02969,0 -0.05939,0 -0.08908,0 -0.0297,0 -0.09847,0.0374 -0.08908,0 0.151705,-0.60383 0.356335,-1.18194 0.534502,-1.77292" id="path3705" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 4.2997068,266.89204 c 0,0.39397 0,0.78796 0,1.18194 0,0.11819 0,0.23639 0,0.35458 0,0.15759 -0.016798,0.31677 0,0.47278 0.01328,0.12333 0.073643,0.23169 0.089084,0.35458 0.014647,0.11659 0,0.23639 0,0.35458 0,0.1576 0.016799,0.31677 0,0.47278 -0.01328,0.12333 -0.073643,0.2317 -0.089084,0.35458 -0.014646,0.11659 0,0.23639 0,0.35459 0,0.11819 0,0.23639 0,0.35458 0,0.23639 0,0.47277 0,0.70916 0,0.0788 0,0.1576 0,0.23639 0,0.0394 0.029694,0.1182 0,0.1182 -0.029694,0 0,-0.0788 0,-0.1182 0.2162772,0.22934 0.4822043,-0.0764 0.7126676,0 0.064421,0.0214 0.1130571,0.10092 0.1781671,0.1182 0.087353,0.0231 0.178167,0 0.2672494,0 0.1781671,0 0.3563342,0 0.5345012,0 0.4454166,0 0.8908339,0 1.3362503,0 0.059389,0 0.1205516,-0.0191 0.1781672,0 0.064413,0.0214 0.1151747,0.0903 0.178167,0.1182 0.024179,0.0106 0.3432872,0.009 0.3563334,0 0.037558,-0.0249 0.059389,-0.0788 0.089083,-0.1182" id="path3707" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 8.5757104,267.36481 c -0.089083,0.15759 -0.2008515,0.29658 -0.2672502,0.47278 -0.026561,0.0705 0,0.15759 0,0.23639 0,0.11819 -0.01747,0.23868 0,0.35458 0.013019,0.0864 0.078168,0.14949 0.089083,0.23638 0.019524,0.15546 0,0.31519 0,0.47279 0,0.39398 0,0.78796 0,1.18194 0,0.11819 0,0.23639 0,0.35458 0,0.1182 -0.014646,0.238 0,0.35459 0.015433,0.12289 0.070664,0.23241 0.089084,0.35458 0.011644,0.0772 0,0.15759 0,0.23638 0,0.1576 0,0.31519 0,0.47278 0,0.0394 0,0.0788 0,0.1182 0,0.0394 0.029694,0.1182 0,0.1182 -0.1224342,0 -0.2375558,-0.0788 -0.3563342,-0.1182" id="path3709" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 4.2997068,266.89204 c 0.2969447,-0.23639 0.5868245,-0.48916 0.8908338,-0.70917 0.093499,-0.0677 0.1212323,0.0679 0.1781672,0.11819 0.055248,0.0489 0.1187783,0.0788 0.178167,0.11819 0.1187776,0.0788 0.2330342,0.17096 0.3563334,0.2364 0.087186,0.0463 0.1781671,0.0788 0.2672502,0.11819 0.089084,0.0394 0.1746258,0.0977 0.2672503,0.1182 0.087871,0.0195 0.1790622,-0.0168 0.2672501,0 0.1212028,0.023 0.2348459,0.098 0.3563343,0.11819 0.1178602,0.0195 0.2375551,0 0.3563333,0 0.4157229,0 0.8314451,0 1.2471681,0 0.2078605,0 0.4157219,0 0.6235826,0 0.029693,0 0.059386,0 0.089084,0 0.029693,0 0.089084,-0.0394 0.089084,0 0,0.0394 -0.06064,-0.0113 -0.089084,0 -0.2698262,0.1074 -0.5345002,0.23638 -0.8017505,0.35458" id="path3711" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 10.535545,272.21078 c 0,0.0394 0,0.0788 0,0.1182 0,0.0394 -0.0297,0.11819 0,0.11819 0.0297,0 0,-0.0788 0,-0.11819 0,-0.0394 0,-0.0788 0,-0.1182 0,-0.13553 0.02307,-0.35034 0,-0.47278 -0.01611,-0.0855 -0.07298,-0.15092 -0.08908,-0.23639 -0.01441,-0.0764 0.01165,-0.15912 0,-0.23638 -0.01842,-0.12218 -0.07066,-0.23242 -0.08908,-0.35459 -0.01164,-0.0772 0,-0.15759 0,-0.23639 0,-0.11819 0,-0.23639 0,-0.35458 0,-0.47277 0,-0.94555 0,-1.41833 0,-0.1182 -0.01465,-0.238 0,-0.35459 0.01544,-0.12289 0.07068,-0.23241 0.08908,-0.35458 0.03494,-0.23179 -0.06988,-0.48196 0,-0.70917 0.296946,0 0.59389,0 0.890835,0 0.05939,0 0.119931,0.0154 0.178167,0 0.09208,-0.0244 0.175172,-0.0938 0.26725,-0.11819 0.05824,-0.0154 0.118778,0 0.178167,0 0.08908,0 0.178167,0 0.267251,0 0.05939,0 0.118777,0 0.178166,0 0.05939,0 0.120551,-0.0191 0.178167,0 0.06441,0.0214 0.11375,0.0968 0.178167,0.11819 0.07365,0.0244 0.489227,-0.03 0.534499,0 0.07244,0.0481 0.07371,0.1875 0.178168,0.1182 0.213319,-0.14151 -0.05614,-0.23639 0.178166,-0.23639" id="path3713" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 10.535545,272.21078 c 1.098695,0 2.197391,0 3.296086,0" id="path3715" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 13.653464,267.36481 c 0.241643,0.28637 0.04213,0.63408 0.08909,0.94556 0.01842,0.12216 0.07066,0.23241 0.08908,0.35457 0.02913,0.19317 -0.02441,0.39667 0,0.59098 0.01544,0.12289 0.07364,0.23169 0.08908,0.35458 0.01465,0.11659 -0.01465,0.238 0,0.35458 0.01544,0.1229 0.07365,0.2317 0.08908,0.35459 0.02929,0.23317 -0.02929,0.47599 0,0.70917 0.107864,0.85867 0.08908,-0.0415 0.08908,0.59096 0,0.31519 0,0.63038 0,0.94557 0,0.0394 0,0.0787 0,0.11819 0,0.0394 -0.0297,0.11819 0,0.11819 0.0348,0 0.142322,-0.16575 0.08908,-0.23638 -0.104986,-0.1393 -0.237557,-0.2364 -0.356334,-0.35459" id="path3717" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 16.325966,272.09258 c -0.0297,0.0394 -0.04709,0.1182 -0.08908,0.1182 -0.110081,0 -0.08908,-0.16575 -0.08908,-0.23639 0,-0.0788 0,-0.15759 0,-0.23639 0,-0.0788 0.0144,-0.15994 0,-0.23639 -0.0161,-0.0855 -0.07606,-0.15 -0.08908,-0.23638 -0.01747,-0.11591 0,-0.23639 0,-0.35459 0,-0.11819 0,-0.23639 0,-0.35458 0,-0.83759 0.0216,0.20066 -0.08908,-0.82736 -0.02519,-0.23402 0.02929,-0.476 0,-0.70917 -0.01544,-0.12289 -0.07365,-0.23169 -0.08908,-0.35459 -0.01465,-0.11657 0,-0.23638 0,-0.35457 0,-0.1182 -0.01465,-0.238 0,-0.35459 0.01543,-0.12289 0.07067,-0.23241 0.08908,-0.35458 0.01165,-0.0772 0,-0.1576 0,-0.23639 0.0297,-0.15759 0.05939,-0.31518 0.08908,-0.47277 0.118777,0.19699 0.221885,0.41258 0.356333,0.59096 0.0022,0.003 0.41195,0 0.445416,0 0.08908,0 0.178168,0 0.267251,0 0.08908,0 0.179379,0.0195 0.26725,0 0.09263,-0.0205 0.174626,-0.0977 0.26725,-0.11819 0.175743,-0.0388 0.359795,0.0464 0.534499,0 0.06511,-0.0173 0.113058,-0.10092 0.178168,-0.1182 0.145589,-0.0387 0.296945,0 0.445417,0 0.347999,0 0.0094,-0.0352 0.356334,0.1182 0.117138,0.0518 0.178167,-0.0982 0.178167,0.23639" id="path3719" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 16.325966,272.09258 c 0.847089,-0.53183 0.751813,-0.47278 1.425335,-0.47278 0.08908,0 0.178167,0 0.26725,0 0.05939,0 0.120551,-0.0191 0.178166,0 0.06441,0.0214 0.115177,0.0903 0.178167,0.1182 0.02817,0.0124 0.05939,0 0.08908,0 0.04972,0 0.404638,-0.018 0.445417,0 0.03984,0.0176 0.05153,0.0933 0.08908,0.11819 0.02657,0.0176 0.05939,0 0.08908,0 0.161469,0 0.26725,0.058 0.26725,-0.23639" id="path3721" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 19.354803,267.6012 c 0,0.82736 0,1.65472 0,2.48208 0,0.11819 0,0.23639 0,0.35458 0,0.1182 -0.01747,0.23869 0,0.35459 0.128922,0.85526 0.08908,-0.54019 0.08908,0.59097 0,0.23638 0,0.47277 0,0.70916 0,0.0788 0.01163,0.31366 0,0.2364 -0.03542,-0.23501 -0.05939,-0.47279 -0.08908,-0.70918" id="path3723" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 4.2106238,275.04744 c 0.4094526,0.27163 0.2235359,0.23639 0.5345004,0.23639 0.059389,0 0.1199313,-0.0154 0.1781662,0 0.09208,0.0244 0.1751724,0.0938 0.2672502,0.1182 0.058235,0.0154 0.1187783,0 0.1781672,0 0.089083,0 0.178167,0 0.2672502,0 0.1187783,0 0.2387496,-0.0223 0.3563341,0 0.092958,0.0176 0.1742911,0.10057 0.2672502,0.11819 0.1175837,0.0223 0.237556,0 0.3563334,0 0.1187776,0 0.2375559,0 0.3563334,0 0.1187783,0 0.2384731,-0.0195 0.3563341,0 0.1214877,0.0201 0.2346487,0.10026 0.3563334,0.11819 0.5258916,0.0775 0.407331,-0.0581 0.8017507,0 1.1996554,0.31834 -0.3028262,-0.0402 0.8908336,0.1182 0.1506609,0.02 0.2947554,0.0982 0.4454163,0.11819 0.2659248,0.0353 0.5361368,-0.0392 0.8017508,0 0.150487,0.0222 0.294627,0.10001 0.445417,0.1182 0.177435,0.0214 0.356334,0 0.534501,0 0.445417,0 0.890833,0 1.336251,0 0.0441,0 0.935824,0 0.979918,0 0.148471,0 0.297681,0.0196 0.445417,0 0.150661,-0.02 0.294756,-0.0982 0.445416,-0.1182 0.147735,-0.0196 0.296945,0 0.445418,0 0.118777,0 0.237555,0 0.356333,0 1.098696,0 2.19739,0 3.296086,0 0.148474,0 0.296946,0 0.445418,0 0.08908,0 0.178168,0 0.267247,0 0.02969,0 0.06092,-0.0124 0.08908,0 0.06299,0.0279 0.115175,0.0903 0.178168,0.1182 0.02816,0.0124 0.06252,-0.0176 0.08908,0 0.03757,0.0249 0.05153,0.0933 0.08908,0.11819 0.02657,0.0176 0.06809,-0.0278 0.08908,0 0.021,0.0278 -0.021,0.0903 0,0.1182 0.021,0.0278 0.06808,0.0278 0.08908,0 0.021,-0.0278 0,-0.0788 0,-0.1182 0.09629,0.511 0.08908,0.31033 0.08908,0.59098 0,0.0287 -0.003,0.35078 0,0.35457 0.021,0.0279 0.06808,-0.0278 0.08908,0 0.021,0.0279 -0.01326,0.0829 0,0.1182 0.01877,0.0498 0.05939,0.0788 0.08908,0.11819 0,0.0394 -0.01326,0.0829 0,0.1182 0.01877,0.0498 0.0703,0.0683 0.08908,0.11819 0.01326,0.0352 -0.01326,0.0829 0,0.1182 0.0188,0.0498 0.0758,0.0653 0.08908,0.1182 0.01877,0.0747 -0.0144,0.15994 0,0.23639 0.0161,0.0854 0.06808,0.15281 0.08908,0.23638 0.0094,0.0374 0,0.0788 0,0.11819 0,0.19699 0,0.39398 0,0.59098 0,0.59097 0,1.18194 0,1.77291 0,0.0681 -0.01623,0.54789 0,0.59097 0.01877,0.0498 0.0703,0.0684 0.08908,0.11819 0.02809,0.0746 -0.0281,0.51641 0,0.59098 0.01877,0.0498 0.0703,0.0684 0.08908,0.1182 0.01326,0.0352 -0.021,0.0903 0,0.11819 0.021,0.0278 0.06809,-0.0279 0.08908,0 0.021,0.0278 0.021,0.0903 0,0.11819 -0.021,0.0279 -0.05939,0 -0.08908,0 -0.0297,0 -0.05939,0 -0.08908,0 -0.148473,0 -0.296945,0 -0.445419,0 -0.05939,0 -0.121825,0.0249 -0.178166,0 -0.236548,-0.10461 0.102063,-0.2162 -0.267253,-0.11819 -0.09207,0.0245 -0.175171,0.0938 -0.267247,0.11819 -0.05824,0.0154 -0.118781,0 -0.178166,0 -0.178168,0 -0.356335,0 -0.534502,0 -0.05939,0 -0.119931,-0.0154 -0.178167,0 -0.09208,0.0245 -0.174625,0.0977 -0.267251,0.11819 -0.120669,0.0267 -0.476072,0 -0.623583,0 -0.05939,0 -0.120551,-0.0191 -0.178167,0 -0.06441,0.0214 -0.11375,0.0968 -0.178167,0.1182 -0.139738,0.0464 -0.305679,-0.0464 -0.445416,0 -0.06441,0.0214 -0.113751,0.0968 -0.178168,0.11819 -0.48913,0.16225 0.148385,-0.21663 -0.356333,0.1182 -0.08017,0.0355 -0.187076,-0.0355 -0.26725,0 -0.03984,0.0176 -0.04924,0.10057 -0.08908,0.1182 -0.05634,0.025 -0.118777,0 -0.178165,0 -0.02969,0 -0.06252,0.0176 -0.08908,0 -0.03756,-0.0249 -0.05153,-0.0933 -0.08908,-0.1182 -0.02656,-0.0176 -0.05939,0 -0.08908,0 -0.05939,0 -0.121824,0.0249 -0.178167,0 -0.07968,-0.0352 -0.103044,-0.18655 -0.178165,-0.23639 -0.02656,-0.0176 -0.06091,0.0125 -0.08908,0 -0.125985,-0.0557 -0.237558,-0.15759 -0.356335,-0.23639 -0.05939,-0.0394 -0.113751,-0.0968 -0.178167,-0.11819 -0.05761,-0.0191 -0.119931,0.0154 -0.178166,0 -0.09208,-0.0245 -0.174627,-0.0977 -0.267251,-0.11819 -0.08787,-0.0195 -0.178167,0 -0.26725,0 -0.118778,0 -0.237557,0 -0.356333,0 -0.207862,0 -0.415725,0 -0.623584,0 -0.148472,0 -0.297853,-0.0217 -0.445418,0 -0.121685,0.0179 -0.234649,0.10025 -0.356333,0.11819 -0.438243,0.0646 -0.407331,-0.0581 -0.801751,0 -0.150487,0.0222 -0.294931,0.096 -0.445417,0.11819 -0.118051,0.0174 -0.237556,0 -0.356333,0 -0.415723,0 -0.831446,0 -1.2471683,0 -1.2174732,0 -2.4349468,0 -3.6524196,0 -0.1781671,0 -0.3563342,0 -0.5345004,0 -0.029694,0 -0.059389,0 -0.089083,0 -0.029694,0 -0.062523,-0.0176 -0.089084,0 -0.075124,0.0498 -0.103045,0.18655 -0.1781671,0.23639 -0.026561,0.0176 -0.062523,-0.0176 -0.089082,0 -0.087661,0.0581 -0.2686731,0.41463 -0.3563341,0.47278 -0.026561,0.0176 -0.059389,0 -0.089083,0 -0.029694,0 -0.059389,0 -0.089084,0 -0.029694,0 -0.068087,0.0278 -0.089083,0 -0.020997,-0.0278 0.01328,-0.0829 0,-0.11819 -0.018779,-0.0498 -0.070305,-0.0684 -0.089083,-0.1182 -0.01328,-0.0352 0,-0.0788 0,-0.1182 0,-0.11819 0,-0.23639 0,-0.35458 0,-0.19699 -0.024409,-0.39666 0,-0.59097 0.01544,-0.12289 0.075803,-0.23125 0.089083,-0.35459 0.016798,-0.156 0,-0.31518 0,-0.47277 0,-0.39398 0,-0.78796 0,-1.18195 0,-1.57592 0,-3.15184 0,-4.72777 z" id="path3725" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 4.2106238,285.33035 c -0.5523957,1.46582 -0.022683,-0.116 -0.1781663,0.70916 -0.016103,0.0855 -0.07298,0.15093 -0.089084,0.2364 -0.014401,0.0764 0,0.15759 0,0.23639 0,0.11819 0,0.23638 0,0.35457 0,0.47279 0,0.94557 0,1.41833 0,0.46173 -0.026561,0.0125 0.089084,0.47279 0.018779,0.0747 -0.041993,0.18067 0,0.23638 0.020997,0.0278 0.068087,0.0278 0.089083,0 0.020997,-0.0278 0.022068,-0.14455 0,-0.11819 -0.3121413,0.37273 -0.5938892,0.78796 -0.8908339,1.18194" id="path3727" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 4.2106238,285.33035 c 0.4751966,0.36515 0.6280855,-0.49761 0.9799168,-0.59097 0.087354,-0.0231 0.1793798,0.0194 0.2672503,0 0.092625,-0.0205 0.1746265,-0.0977 0.2672502,-0.1182 0.1757435,-0.0388 0.3587578,0.0389 0.5345012,0 0.092624,-0.0205 0.1746257,-0.0977 0.2672495,-0.11819 0.1464524,-0.0324 0.2969454,0 0.4454173,0 0.059389,0 0.1187783,0 0.1781663,0 0.059389,0 0.1218262,-0.0249 0.1781678,0 0.03984,0.0176 0.051525,0.0933 0.089083,0.11819 0.026561,0.0176 0.062523,-0.0176 0.089082,0 0.037566,0.025 0.059389,0.0788 0.089084,0.1182 0.029694,0.0394 0.059389,0.0788 0.089084,0.1182" id="path3729" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 3.2307067,290.05812 c 0.8487814,0.52611 1.0877349,-0.91444 1.6925837,-1.18194 0.028172,-0.0125 0.059389,0 0.089084,0 0.059389,0 0.1187775,0 0.1781662,0 0.1187783,0 0.2375568,0 0.3563342,0 0.5048061,0 1.0096122,0 1.5144183,0 0.4055324,0 0.00507,0.0557 0.2672501,-0.11819 0.061533,-0.0408 0.414147,0.0415 0.4454165,0 0.020997,-0.0278 0,-0.0788 0,-0.1182" id="path3731" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 7.6848766,284.85758 c -0.029694,0.15759 -0.068954,0.31254 -0.089084,0.47277 -0.019524,0.15545 0,0.31519 0,0.47277 0,0.35459 0,0.70918 0,1.06375 0,0.197 0,0.39399 0,0.59098 0,0.0788 -0.011644,0.15912 0,0.23639 0.098474,0.65327 0.089084,0.14736 0.089084,0.47277 0,0.0788 0,0.15759 0,0.23639 0,0.0394 -0.020997,0.0903 0,0.11819 0.1187776,0.1576 0.089083,-0.19699 0.089083,0.1182" id="path3733" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 9.7337943,284.73938 c -0.2133492,0.42647 -0.1781667,0.51249 -0.1781667,0.94555 0,1.13116 0.039838,-0.26429 -0.089083,0.59098 -0.017468,0.1159 0,0.23639 0,0.35458 0,0.11819 -0.014646,0.23799 0,0.35458 0.015439,0.12289 0.073641,0.23169 0.089083,0.35459 0.024408,0.1943 0,0.39398 0,0.59097 0,0.0788 -0.014402,0.15994 0,0.23638 0.016101,0.0855 0.072979,0.15093 0.089083,0.23639 0.016536,0.0877 -0.027342,0.4365 0,0.47278 0.020994,0.0278 0.068085,0.0278 0.089084,0 0.020994,-0.0278 0,-0.0788 0,-0.11819" id="path3735" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 9.7337943,284.73938 c 0.5060457,-0.26139 0.9191247,-0.23639 1.4253347,-0.23639 0.118778,0 0.238749,-0.0223 0.356334,0 0.820778,0.15557 -0.2716,0.11819 0.5345,0.11819 0.178168,0 0.356334,0 0.534501,0 0.05939,0 0.119931,-0.0154 0.178166,0 0.09208,0.0245 0.176152,0.088 0.267251,0.1182 0.146271,0.0486 0.08311,-0.12611 0.267249,0.1182 0.021,0.0278 -0.01328,0.0829 0,0.11819 0.01878,0.0498 0.08909,0.0625 0.08909,0.1182 0,0.0394 -0.06808,-0.0279 -0.08909,0 -0.02099,0.0278 0,0.0788 0,0.11819" id="path3737" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 9.7337943,288.75799 c 0.2672497,0.0394 0.5341897,0.0827 0.8017507,0.11819 0.08864,0.0117 0.178167,0 0.26725,0 0.178166,0 0.356334,0 0.534501,0 0.475112,0 0.950223,0 1.425334,0 0.451434,0 -0.106238,0.0352 0.356334,-0.11819 0.003,-8.4e-4 0.266776,3.3e-4 0.267251,0 0.02099,-0.0278 0,-0.0788 0,-0.1182" id="path3739" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 13.29713,285.21216 c 0.118779,0.0394 0.246828,0.0455 0.356334,0.11819 0.0668,0.0443 -0.04028,0.16033 -0.08908,0.35458 -0.0094,0.0374 0,0.0788 0,0.11819 0,0.1182 0.01747,0.23869 0,0.35459 -0.01302,0.0864 -0.07606,0.15001 -0.08908,0.23639 -0.01747,0.1159 0,0.23639 0,0.35458 0,0.15759 0,0.31519 0,0.47278 0,0.51218 0,1.02435 0,1.53653 0,0.19699 0,0.39398 0,0.59097 0,0.0394 -0.0297,0.11819 0,0.11819 0.04199,0 0.09502,-0.0631 0.08908,-0.11819 -0.02656,-0.24667 -0.118777,-0.47278 -0.178166,-0.70917" id="path3741" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 16.593217,282.84826 c 0,0.70918 -0.02809,1.41932 0,2.12751 0.0022,0.0556 0.0758,0.0653 0.08908,0.1182 0.01878,0.0747 0,0.15758 0,0.23638 0,0.19699 -0.02912,0.39781 0,0.59097 0.01302,0.0864 0.07606,0.15001 0.08908,0.23639 0.01747,0.1159 0,0.23639 0,0.35459 0,0.11819 0,0.23638 0,0.35457 0,0.0788 -0.0144,0.15995 0,0.23639 0.0161,0.0855 0.07298,0.15092 0.08908,0.2364 0.0216,0.11466 0,0.23639 0,0.35458 0,0.0394 0.02969,0.1182 0,0.1182 -0.107998,0 0.02217,-0.14762 0.08908,-0.23639" id="path3743" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 16.593217,282.84826 c 0.207861,0.59098 0.370693,1.2137 0.623585,1.77292 0.03055,0.0676 0.118777,0 0.178165,0 0.128832,0 0.529514,0.025 0.623584,0 0.06511,-0.0173 0.113057,-0.10091 0.178166,-0.11819 0.14559,-0.0387 0.301379,0.0478 0.445417,0 0.06441,-0.0214 0.113751,-0.0968 0.178168,-0.11819 0.08076,-0.0268 0.341932,0 0.445417,0 0.05939,0 0.118779,0 0.178164,0 0.02969,0 0.06809,-0.0278 0.08909,0 0.0036,0.005 0,0.42937 0,0.47278" id="path3745" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 16.94955,287.57605 c 0.01874,0.1243 0.0038,0.5935 0.178168,0.70915 0.03247,0.0216 0.394086,0 0.445416,0 0.296945,0 0.593889,0 0.890834,0 0.09264,0 0.464427,-0.0232 0.534501,0 0.06441,0.0214 0.113749,0.0968 0.178167,0.1182 0.05762,0.0191 0.118778,0 0.178167,0 0.02969,0 0.06252,-0.0176 0.08908,0 0.03757,0.0249 0.05153,0.0933 0.08909,0.11819 0.05312,0.0352 0.125044,-0.0352 0.178163,0 0.03756,0.0249 0.04709,0.1182 0.08908,0.1182 0.0297,0 -0.021,-0.0903 0,-0.1182 0.11878,-0.15759 0.08909,0.19699 0.08909,-0.11819" id="path3747" inkscape:connector-curvature="0" /> <path style="fill:none;stroke:#000000;stroke-width:0.10158036px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 19.532971,284.85758 c 0.118778,-0.0788 0.223534,-0.2364 0.356331,-0.2364 0.05939,0 0,0.1576 0,0.2364 0,0.47277 0,0.94554 0,1.41833 0,0.27578 0,0.55156 0,0.82735 0,0.0788 0,0.1576 0,0.2364 0,0.0788 -0.0144,0.15994 0,0.23639 0.0161,0.0855 0.06808,0.15281 0.08908,0.23639 0.0094,0.0374 -0.021,0.0903 0,0.11819 0.021,0.0278 0.06809,0.0278 0.08908,0 0.021,-0.0279 0.01326,-0.15343 0,-0.11819 -0.07152,0.18976 -0.118777,0.39397 -0.178166,0.59096" id="path3749" inkscape:connector-curvature="0" /> </g> </svg>
$:/plugins/felixhayashi/topstoryview [ext[Discussion|https://github.com/Jermolene/TiddlyWiki5/issues/1290]] TopStoryView est un plugin TiddlyWiki qui ajoute une nouvelle story view à tiddlywiki -- la vue top. !Ce qu'il fait Il a le même comportement que la story view de "TiddlyWiki classic" mais avec une stratégie de déroulé différente: * Lorsqu'on ouvre ou que l'on navigue sur un tiddler, le wiki est déroulé jusqu'à ce que le titre du tiddler atteigne le haut de la fenêtre du navigateur. * Même le dernier tiddler est déroulé jusqu'à ce qu'il atteigne le haut du navigateur. Ce processus fonctionne car le plugin ajoute un espace invisible tout en bas de telle sorte que le tiddler puisse être remonté vers le haut. !Que se passe-t-il si un tiddler au pied de la story-river est retiré ? Dans ce cas, le plugin pointera sur le tiddler se trouvant juste au dessus, sauf si la story river est vide de tout tiddler. !À quoi cela ressemble-t-il ? Une démonstration de comportement est visible sur le site [[TiddlyMap|http://tiddlymap.org/]] qui utilise ce plugin. Le présent wiki l'utilise également. L'intérêt de ce plugin réside dans le fait qu'on a pas à rechercher dans la liste des plugins ouverts à quel endroit se trouve le tiddler pointé. Le tiddler sur lequel on souhaite intervenir sera toujours positionné en haut de la story river.
\define racine(r) <<eval """ const racine=(number) => Math.pow(number, 1 / 2); racine($r$); """>> \end {{EnTêteDemosMacrosJs}} 1- La Macro ``` \define racine(r) <<eval """ const racine=(number) => Math.pow(number, 1 / 2); racine($r$); """>> \end ``` 2- L'appel ``` <<racine 25>> ``` <<< <<racine 25>> <<<
<$list filter="[tag[TableOfContents]]"> <$link to={{!!title}}><$view field="caption"/></$link> {{}} </$list>
<<dumpvariables>>
<table> <tr> <th align="center">Article (Tiddler)</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[TradReplace]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link></td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table> <div class="att"> <i class="fa fa-desktop fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Cete Table des Matières contient {{{[tag[TradReplace]count[]]}}} Tiddlers. </div>
Deux tiddlers supplémentaires relatif aux traductions spécifiques de contenus des tiddlers *$:/_tw-scholars/macros/language (la macro) *$:/languages/fr-FR/myTabs (le dictionnaire) # dupliquer le dictionnaire français $:/languages/fr-FR/myTabs, # changer son titre pour qu'il corresponde à votre langage installé (UI), par exemple (~$:/languages/ja-JP/myTabs pour le japonais), # traduire son contenu. Usage: ``` <<trad "This is a translation macro">> ``` Soit : <<trad "This is a translation macro">>
<table> <tr> <th align="center">Article (Tiddler)</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[TradSurvol]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link></td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table> <div class="att"> <i class="fa fa-desktop fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Cete Table des Matières contient {{{[tag[TradSurvol]count[]]}}} Tiddlers. </div>
Un glossaire des mots clé souvent utilisés est également présent : Glossaire en-GB -> fr-FR ([[Source|http://fr-edition.tiddlyspot.com/#Glossaire%20en-GB%20-%3E%20fr-FR]]) Là encore, contrairement à ce qui est habituellement pratiqué, lorsque vous lisez un mot ou un terme en français qui est souligné de deux traits, c'est la traduction en anglais qui vous en est donnée au passage de la souris. Le [[Dictionnaire|$:/plugins/tobibeer/dict/terms]] de ce wiki va dans le sens FR vers EN. Ceci me paraît logique dans un contexte de traduction de l'anglais vers le français. <div class="note">Remarque : J'ai fait un test sur un tiddler caché `$:/Test` en lui appliquant le champ fr-title : Test, mais celui-ci ne fonctionne pas, le titre original `$:/Test` restant affiché. Est-ce parce qu-il s'agit d'un tiddler caché ?</div> *C'est le plugin $:/plugins/tobibeer/dict *Accès au dictionnaire : $:/plugins/tobibeer/dict/terms La saisie des termes se fait directement depuis la table "dictionary" du plugin ou par appel direct hors dictionnaire. !!Des exemples: *`<<? term definition>>` *`<<? term via:?dl>>` *`<<? Prolégomènes>>` ;Soit: <<? term definition>> <<? term via:?dl>> <<? Prolégomènes>> ; Extrait de texte: <<? term at:"!!somefield">> Où celui d'un champ quelconque d'un autre Tiddler: ``` <<? term at:"Sources!!description">> ``` ; Soit: <<? term at:"Sources!!description">>
<table> <tr> <th align="center">Article (Tiddler)</th> <th align="center"> Date de création </th> <th align="center">Numéro d'ordre</th> </tr> <$list filter="[tag[TradTitle]] [tag[]] +[sort[sub.num]]"> <tr><td><$link to={{!!title}}><$text text={{!!caption}}/></$link></td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="tc-edit-texteditor"/></td></tr> </$list> </table> <div class="att"> <i class="fa fa-desktop fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Cete Table des Matières contient {{{[tag[TradTitle]count[]]}}} Tiddlers. </div>
Tiddlers à importer : *$:/core/ui/ViewTemplate/titleTitle *$:/editions/fr-FR/Macros/toc-caption Macro associée @@padding:0 5px;border:1px solid crimson; CECI EST UNE NOTE DE TRAVAIL INDIQUANT CE QUI EST À RÉALISER ULTÉRIEUREMENT. @@ Ce wiki n'est pas à proprement parler une traduction fidèle des tiddlers de la version officielle. Cependant référence est faite à ces textes sources. On peut alors conserver le titre d'un Tiddler dans son langage d'origine et utiliser le champ spécial `fr-title` programmé par cette macro, pour que ce soit le titre en Français qui soit montré en visualisation. *Avantage : La recherche du source d'un travail de traduction en est facilitée. *Avantage : La recherche sur titres se fera sur le titre original mais la recherche sur mots donnera de bons résultats.. <div class="info">Le test fonctionne bien. Mais ceci suppose de renommer tous les tags affectés à un sujet. Par exemple, le Tiddler "Filtres" donne la liste de tous les sujets tagués de ce nom. Si je change ce titre en "Filters" et que je crée le champ `fr-title`, le nom apparaîtra bien en français dans les listes mais il impose de renommer tous les tags ""Filtres"" en "Filters"</div> Un glossaire des mots clé souvent utilisés est également présent : Glossaire en-GB -> fr-FR ([[Source|http://fr-edition.tiddlyspot.com/#Glossaire%20en-GB%20-%3E%20fr-FR]]) J'en passerais bien les termes dans le [[Dictionnaire|$:/plugins/tobibeer/dict/dictionary]] dédié mais dans le sens FR vers EN, de sorte que le passage de la souris sur un terme en français en donne la traduction anglaise, ce qui me parait plus logique dans un contexte de traduction de l'anglais vers le français. Penser plus tard à regrouper ces concepts dans un tiddler intitulé [[Notes de traduction]] qui fera partie de la documentation générale liée à ce wiki. <div align="center">[img[$:/separation3]]</div> <<< Voir le Tiddler d'exemple : [[Selection Constructors]] <<< ;J'ai fait les choix suivants , sur ce wiki : *De conserver le titre d'un Tiddler dans son langage d'origine et utiliser le champ spécial `fr-title` programmé par la modification du Tiddler [[$:/core/ui/ViewTemplate/titleTitle]]. De fait et en mode visualisation, c'est le titre en Français qui est affiché. *Ainsi, la recherche du tiddler source d'un travail de traduction m'en est facilitée. *Les listes du ''menu principal'' affichent les titres en français, grâce au tiddler [[$:/editions/fr-FR/Macros/toc-caption]]. *Mais les listes des tables "Recent", "All" restent en anglais. *Dans les modules de recherche standard et avancé le titre en français est reconnu, mais le rendu des tiddlers recherchés se fait en anglais. <<< Par exemple si j'entre le texte "Constructeur" en recherche standard j'obtiens en réponse le tiddler [[Selection Constructors]]. Sur le [[site de traduction française|http://fr-edition.tiddlyspot.com/]] cette recherche se fait sur les titres en français parceque le tiddler [[$:/core/ui/DefaultSearchResultList|http://fr-edition.tiddlyspot.com/#%24%3A%2Fcore%2Fui%2FDefaultSearchResultList]] a été modifié. <<< *Les ''liens internes'' ne fonctionnent que sur le titre en anglais, pas sur celui de la traduction (idem sur le site http://fr-edition.tiddlyspot.com/) <<< Par exemple : *[[Constructeurs de sélection]] n'est pas valide *[[Selection Constructors]] est valide <<< <div class="info">Ces choix peuvent paraître désordonnés mais ils ne le sont pas pour moi. Les deux langages me sont familiers, la langue la plus fréquente dans la réalisation de ce tutoriel étant l'anglais. Au fond j'ai toujours les deux langages disponibles sur mon écran ce qui me facilite la vie."</div>
@@text-align:right; <div class="column"> <div class="hero hero-sm bg-dark"> <div class="hero-body"> !!{{!!caption}} <<f-i check-square>> Il y a <$count filter="[tag[Traductions]]"/> Tiddlers tagués {{!!title}} </div> </div> </div> @@ <$details summary="Résumé"></$details> <table class="table table-striped table-hover"> <thead> <tr> <th align="center">Tiddler</th> <th align="center">Date de création</th> <th align="center">Numéro d'ordre</th> </tr> </thead> <$list filter="[tag[Traductions]] [tag[]] +[sort[sub.num]]"> <tbody> <tr> <td><$link to={{!!title}}><$text text={{!!caption}}/></$link> </td> <td align="right"><$view field="created" format="date" template="DD MMM YYYY"/></td> <td><$edit field="sub.num" class="form-input"/></td> </tr> </tbody> </$list> </table>
Ce wiki dispose de quatre sources de traductions : """ <i class="fa fa-arrow-right"></i> [[Titres Natifs remplacés par Titres traduits|TradTitle]] <i class="fa fa-arrow-right"></i> [[Terme traduit au survol de la souris|TradSurvol]] <i class="fa fa-arrow-right"></i> [[Traduction par remplacement des termes|TradReplace]] """ Explications en détail ci-après
<div class="tc-tagged-trait"> </div> <style> .tc-tagged-trait { background-image: url(img/600px-4.png); } </style>
\define TranscludeFromSystemTiddler(title) <$transclude tiddler="$:/$title$"/> \end
{{Transcl$AInA||caption}}
Réponse ici : http://tobibeer.github.io/tb5/#Embedding%20A%20Text%20File Le code de Tobias dans un fichier en local: ``` <object data="file:///C:/Users/........" type="text/plain" style="width:100%;height:400px;" scrolling:yes> <a href="file:///C:/Users/.........." target="_blank">EnTiddler.tid</a> (missing or not supported) </object> ```
*Voir le tiddler attaché en démonstration : [[Alice in Wonderland]] *Le titre utilise une url canonical : `Alice%20in%20Wonderland` *Le fichier externe est au format `.tid` *Ce fichier est stocké en local au m6eme niveau que le présent wiki. *adresse du tid : `Alice%20in%20Wonderland.tid` *Le tiddler d'importation est tagué `external-text` et ne possède pas de type particulier. *Le champ `_canonical_uri` est renseigné par : `./text/Alice%2520in%2520Wonderland.tid` *Le fichier externe `.tid` Les balises wikitext sont reconnues (Hn) Voir aussi cette solution : http://tobibeer.github.io/tw5-plugins/#external Tout ceci est extrait du forum anglais à cette adresse : https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg58348.html
{{TranscludeAll||caption}}
! Introduction The TranscludeWidget dynamically imports content from another tiddler. ! Attributes |!Attribute |!Description | |tiddler |The title of the tiddler to transclude (defaults to the current tiddler) | |field |The field name of the current tiddler (defaults to "text"; if present takes precedence over the index attribute) | |index |The index of a property in a [[DataTiddler|DataTiddlers]] | |subtiddler |Optional SubTiddler title when the target tiddler is a [[plugin|Plugins]] (see below) | |mode |Override the default parsing mode for the transcluded text to "block" or "inline" | The TranscludeWidget treats any contained content as a fallback if the target of the transclusion is not defined (ie a missing tiddler or a missing field). ! Parsing modes TiddlyWiki parses text in two modes: * ''inline'' mode recognises character formatting such as emphasis, links * ''block'' mode recognises all the ''inline'' formatting, and adds block formatting such as tables, headings and lists Usually, the mode is determined by whether the transclude widget itself has been parsed in block or inline mode. This can be overridden with the `mode` attribute. For example, consider tiddler "A" with this content: ``` # Item one #<$transclude tiddler="B"/> # Item two ``` And a tiddler "B" with this content: ``` # Item one - a # Item one - b ``` The result will be something like this: # Item one # # Item one - a # Item one - b # Item two This can be fixed by amending tiddler "A": ``` # Item one #<$transclude tiddler="B" mode="block"/> # Item two ``` ! SubTiddler Access The transclude widget allows access to the individual tiddlers stored within a [[plugin|Plugins]]. The following example will transclude the core version of the tiddler [[$:/DefaultTiddlers]] even if it has been overridden: <<wikitext-example-without-html ' <$transclude tiddler="$:/core" subtiddler="$:/DefaultTiddlers"/> '>>
``` <$transclude tiddler="$:/plugins/tobibeer/dict/terms" index={{!!field-name}}/> ``` ;Soit <$transclude tiddler="$:/plugins/tobibeer/dict/terms" index={{!!field-name}}/>
``` <$list filter='[tag[FieldHide]]'> <$transclude mode=block/> </$list> ``` Et si l'on veut également voir apparaître les titres des tiddlers concernés : ``` <$list filter='[tag[FieldHide]]'> !!{{!!caption}} <$transclude mode=block/> </$list> ``` ;Soit: <$list filter='[tag[FieldHide]]'> !!{{!!caption}} <$transclude mode=block/> </$list> <div class="note"> Note: Dans cet exemple, c'est le champ `caption` qui sert de titre, mais on peut évidemment remplacer `caption` par `title`. </div> ;Fonctionne également : ``` <$list filter='[tag[MyTag]]'> <h3><$transclude field="title" /></h3> <$transclude display="block" /> </$list> ```
Ou comment transclure le contenu du tiddler d'un autre wiki dans le tiddler du wiki principal. :https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg89802.html :Aussi: https://www.mail-archive.com/tiddlywiki@googlegroups.com/msg46264.html :https://tiddlywiki.com/#Using%20the%20read-only%20single%20tiddler%20view À l'origine l'idée est la suivante: The standalone configuration does (as you know) already support external tiddlers for images Ce wiki devient trop gros et commence à poser de sérieux problèmes de capacité mémoire sur mon laptop de bureau. L'idée est donc de : #créer un nouveau wiki vierge #Le placer ''dans le même répertoire que celui du wiki d'exploitation'' #Le nommer images.html #Transférer les images embarquées depuis le wiki d'exploitation vers le wiki images.html #Supprimer du wiki d'exploitation les images ainsi transférées dans images.html #Dans le wiki d'exploitation, modifier les adresses en indiquant le nouvel emplacement.<br/>:Exemple<br/>Dans le wiki d'exploitation avant le transfert : `[img[Logo]]`<br/>Après le transfert: `[img[/images#Logo]]` #Les CSS intermédiaires restent inchangés<br/>Exemple:<br/>`[img width=50% class="w3-hover-opacity" [/images#Logo]]` :Ainsi le le poids du wiki d'exploitation est réduit du poids total des images qui y étaient embarquées ainsi transférées dans un second wiki. :Pas besoin de transférer les images une à une sur un serveur par exemple; elles sont toutes contenues dans un wiki séparé. :Possibilité maintenant de transclure beaucoup plus d'images sans risquer de prendre trop de poids. ;Exemples concrets: <div class="column col-sm-12"> <div class="toast toast-error"> J'ai fait des essais qui ne fonctionnent pas. J'ai raté quelque chose... </div> </div>
<div class="att"> <i class="fa fa-exclamation-triangle fa-lg" aria-hidden="true" style="color:#2C3E50"></i> Source: http://tw5magick.tiddlyspot.com/ Titre original: "Transcluding a full Tiddler". Tous les textes de cette démonstration ont été traduits en français. </div> Je voulais juste transclure un Tiddler dans sa globalité, c'est à dire incluant son titre. Voici comment j'ai procédé: {{Créer un Tiddler modèle||full}} {{Utiliser le Tiddler Modèle||full}} {{Transclusion améliorée||full}} ! Transclure le code J'ai aussi inclus un tiddler template nommé `code` qui ''restitue le tiddler sous forme de bloc de code''. Example: ``` {{full-enhanced||code}} ``` ; Rend le code suivant: <<< {{full-enhanced||code}} <<< {{Transclure un Tiddler inexistant||full}} <div class="attention">A noter: l'utilisation du template full inclus le titre et le contenu d'un tiddler (c'est l'objectif)<br/> le template `full-enhanced` est supposé avoir les mêmes propriétés que le template `full` sauf que le titre est cliquable et ouvre le tiddler en mode édition.<br/> Ceci fonctionne sur le site source de l'auteur mais ''pas sur ce wiki''. J'ai remplacé les templates `full-enhanced` de cette démonstration par le template `full` </div> Voici la liste de tous les tiddlers utilisés dans cette démonstration: * [[full]] * [[full-enhanced]] * [[code]] * [[ShowFavicon]] * [[Exemple de Transclusion Globale]] * [[Créer un Tiddler modèle]] * [[Utiliser le Tiddler Modèle]] * [[Transclusion améliorée]] * [[Transclure un Tiddler inexistant]]
Aussi stupide que cela paraisse il est possible de transclure un Tiddler inexistant et cela peut même s'avérer utile! Par exemple: il n'existe nulle part sur ce wiki aucun Tiddler `http://tiddlywiki.com`. Mais je peux le transclure pour y montrer son favicon en utilisant [[ShowFavicon]] en tant que modèle: ``` {{http://tiddlywiki.com||ShowFavicon}} ``` Restitue cette jolie petite icône! {{http://tiddlywiki.com||ShowFavicon}}.
{{Transclusion||caption}}
Il y a aussi maintenant une [[version améliorée|full-enhanced]] du modèle `full` qui permet d'éditer (mode edit en comparaison au mode view) le tiddler transclut en cliquant sur son titre. ``` {{full-enhanced||code}} ``` ; Soit: {{full-enhanced||code}}
The `<<>>` macrocall is wikitext. The `{{}}` is wikitext.You can't have wikitext inside of other wikitext. But you can have wikitext inside of html tags (and by extension, TW widgets. Using the Widget version of the wikitext is the way I usually handle this situation. You *can* use the Wikify widget to get wikitext inside of wikitext: ``` <$wikify name="test" text="<<xx {{myTiddler}}>>"> <<test>> </$wikify> ``` The problem here is that the rendered text will ignore your bullet points. Maybe one of the various wikify output modes can fix that.
''Transclusion'' in a Formula or Datum follows the [[same rules and syntax as in WikiText|https://tiddlywiki.com/#Transclusion%20in%20WikiText:%5B%5BTransclusion%20in%20WikiText%5D%5D]]*. The transcluded text is treated as a [[Datum]], rather than WikiText. ^^* Filtered Transclusion is not currently supported.^^
! Introduction Vous pouvez insérer le contenu d'un tiddler dans un autre en utilisant les marques de transclusion : * `{{MonTiddler}}` transclut un seul tiddler * `{{MonTiddler||TitreDuGabarit}}` affiche un tiddler via un format spécifié par un [[Gabarit de Tiddler|TemplateTiddlers]] * `{{||TitreDuGabarit}}` affiche le [[Tiddler en cours|currentTiddler Variable]] par le gabarit spécifié sans l'altérer !! Transclure les Références de Texte Vous pouvez aussi utiliser une [[Référence de Texte|TextReference]] à la place du titre d'un tiddler : * `{{MonTiddler!!champ}}` transclut un champ spécifique d'un tiddler quelconque * `{{!!champ}}` transclut le champ spécifique du tiddler courant * `{{MonTiddler##index}}` transclut une propriété indexée spécifique d'un [[Tiddler Data|DataTiddlers]] * `{{##index}}` transclut une propriété indéxée spécifique du [[Tiddler Data|DataTiddlers]] courant !! Transclusion Filtrées Une syntaxe similaire peut être mise en œuvre pour transclure une liste de tiddler selon des critères particuliers définis par un [[Filtre|Filters]] : ``` {{{ [tag[mécanisme]] }}} {{{ [tag[mécanisme]] ||TitreDuGabarit}}} ``` ! Widgets Générés La syntaxe de transclusion de [[WikiTexte|WikiText]] génère un TiddlerWidget enveloppé dans un TranscludeWidget. Par exemple, `{{MonTiddler||MonGabarit!!monChamp}}` génère cette paire de widgets: {{MonTiddler||MonGabarit!!monChamp}} ``` <$tiddler tiddler="MonTiddler"> <$transclude tiddler="MonGabarit" field="monChamp"/> </$tiddler> ``` Voir Aussi : * [[Transclusion, Utilisation basique|Transclusion Basic Usage]] * [[Transclusion par Gabarits|Transclusion with Templates]] * [[Tiddlers Gabarits|TemplateTiddlers]] * [[Widget Transclude|TranscludeWidget]] * [[Transclusion and Substitution]]
! Introduction Dans [[La Transclusion en WikiText]] on voit les principes d'inclusion d'un tiddler dans un autre. Supposons Alors, supposons que le tiddler A contienne<<:>> ``` @@background-color:yellow; Salut, mon titre est {{!!title}} @@ ``` Ceci fait afficher au tiddler A son titre sur fond jaune (voir le dossier [[CSS]] pour les styles CSS). Imaginez que vous vouliez afficher le titre du tiddler B de la même façon. Mais que vous ne souhaitiez pas copier/coller les instructions de style, car vous désirez changer la couleur du fond plus tard et que vous vioulez maintenir une cohérence entre les tiddlers. Cela ressemble à un cas typique de transclusion, aussi essayons de transclure le tiddler A en tiddler B par la voie classique par ``{{A}}``. Vous verriez alors le contenu suivant dans le tiddler B<<:>> <<< @@background-color:yellow; Salut, mon fr-titre est {{!!fr-title}} @@ <<< Le stype est appliqué comme attendu, mais le titre est faux<<:>> nous voulons que ``{{!!title}}`` se réfère au tiddler B, cible, et pas au tiddler A, source. La solution est dans l'utilisation d'un //gabarit//. Dans ce cas, le tiddler A, source, est appelé le [[Tiddler Gabarit|TemplateTiddlers]], et est //appliqué// au tiddler B par l'utilisation de la notation ``{{||A}}``. La différence est que toute [[Référence texte|TextReference]] qui ne se réfère pas explicitement à un tiddler spécifique est affectée au [[tiddler courant|Current Tiddler]], qui est, le tiddler cible. En conséquence, le tiddler B a maintenant l'aspect attendu<<:>> <<< @@background-color:yellow; Salut, mon titre est B @@ <<< ! Utilisation La Transclusion par gabarit est comparable à un masque<<:>> en supposant que le tiddler source contienne les références génériques (comme les trous des yeux dans un masque), celles-ci seront remplacées par les valeurs des tiddlers cible (comme les yeux d'une personne qui porte le masque). Un gabarit peut être appliqué à tout tiddler, pas seulement au tiddler en cours, en utilisant la notation complète ``{{<cible>||<gabarit>}}``. La ``<cible>`` par défaut est le [[tiddler courant|Current Tiddler]] (qui a été utilisé dans l'exemple supra). ! Exemples !! Un gabarit prédéfini pour un bel affichage des tags Vous pouvez appliquer le gabarit système ``$:/core/ui/TagTemplate`` à un tag pour lui donner le style d'une pilule avec menu déroulant<<:>> ``` {{Transclusion||$:/core/ui/TagTemplate}} ``` a pour rendu<<:>> {{Transclusion||$:/core/ui/TagTemplate}} Voir aussi<<:>> * [[Transclusion grâce à WikiText|Transclusion in WikiText]] * [[Transclusion, Utilisation basique|Transclusion Basic Usage]] * [[Référence textuelle|TextReference]] * [[Tiddlers Gabarit|TemplateTiddlers]] * [[Widget Transclude|TranscludeWidget]] * [[Tiddler Courant|Current Tiddler]]
days, field, has, haschanged, is, regexp, sameday, search, prefix, suffix, tag, untagged Les filtres utilisant les opérandes ci-dessus sont des opérations booléennes. C'est à dire que chaque opération SOIT ''passe'' (la séquence est évaluée comme étant ''vrai''), SOIT ''échoue'' (la séquence est évaluée comme étant ''faux'') fondée sur l'expression du filtre. Si la déclaration est évaluée comme étant vrai, le titre est ajouté à la liste de sortie. if the statement evaluates to false than the title is not added to the output filter. Because of this any filter can the converted into a boolean logic statement. It is important to note that not all boolean logic statements can be directly converted into an equivalent filter expression, but any boolean logic statement can me transformed into an equivalent statement that can be expressed as a filter. I am still working on this part and having trouble coming up with what the rules are. !!Des filtres vers la logique *<i class="fa fa-arrow-right"></i> ''La négation'' (`n'est pas`) se traduit par (`!`). *<i class="fa fa-arrow-right"></i> ''L'ajout'' (`et`) se traduit par (`.`) *<i class="fa fa-arrow-right"></i> ''L'alternative'' (`ou`) se traduit par (`+`) *<i class="fa fa-arrow-right"></i> ''Ignorer'' est la négation de (`et`), soit (`N-et`) se traduit par (`-`). Par exemple `-[has[draft.of]]` indique qu'il faut ignorer les tiddlers brouillon *<i class="fa fa-arrow-right"></i> (`N-ou`) est la négation de ou *<i class="fa fa-arrow-right"></i> Les opérandes à l'intérieur d'une seule séquence de filtre sont (`et`) affichés ensemble tels que `[has[a]has[b]]` deviennent donc `A.B`, c'est à dire A `et` B. *<i class="fa fa-arrow-right"></i> Les séquences de filtres sans rien entre elles sont `ou` et doivent être éditées ensemble telles que `[has[a]][has[b]]` deviennent donc `A+B` c'est à dire A `ou` B. !!De la logique vers les filtres *Si la déclaration débute avec (`!`) , soit `!(` le filtre, s'il existe, débutera par `[all[]]` suivi de séquences de retraits. *Les déclarations (`et`) c'est à dire (`.`) concernent de multiples opérandes dans une même séquence de filtres telles que `[has[a]has[b]]` *Les déclarations Or (`+`) concernent des filtres multiples fonctionnant dans des séquences telles que `[has[a]][has[b]]` *Les déclarations `N-et` (`!(A.B)`) sont traitées comme `-[has[a]has[b]]` *Les déclarations `N-ou` (`!(A+B)`) sont traitées comme `-[has[a]]-[has[b]]` |Opération|Symbole| |n'est pas| `!` | |et| `.` | |ou| `+` | |N-et| `-` | |N-ou| `-` |
~ToDo sur les tiddlers
On fixe le dossier racine : Par exemple ``` <<tree prefix:"$:/">> ``` Ou bien : ``` <<tree prefix:"$:/themes">> ``` ;Soit : <<tree prefix:"$:/themes">> <<tree prefix:"Applications">> <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Liens Utiles"></li> <li class="menu-item">[[Le dossier de Adrian|morosanuae]]</li> </ul> </div>
[img[img/trianglify.png]] **http://qrohlf.com/trianglify/ ***http://qrohlf.com/trianglify-generator/ **Un générateur de fond PNG et SVG
\define sumExpression() sum( $(sumFilter)$ ) Use this area to try out some formulas. ;Formula: :`(=` <$edit-text tag="input" size=60 tiddler="Eval-Tester/Expression"/> `=)` ;Result: :<$formula formula={{Eval-Tester/Expression}} toFixed={{Eval-Tester/toFixed}} toPrecision={{Eval-Tester/toPrecision}}/> <!-- :<$formula-vars result={{Eval-Tester/Expression}} $toFixed={{Eval-Tester/toFixed}} $toPrecision={{Eval-Tester/toPrecision}}>With vars: <<result>></$formula-vars> --> Try these: <<< ``` sum([tag[Expenses]get[value]]) "Sum(" & [tag[Expenses]get[value]] & ") = " & sum([tag[Expenses]get[value]]) {{Soda-Pop!!value}}*5 20 + 3^3 * 1000 "$" & {{Candy-Bar!!value}} "This is ''bold text''!" map(function(s):('Bought a '&s&'...'), [tag[Expenses]]) ``` <<< <!-- !!Sum Filter <<< <$edit-text tag="input" size=30 tiddler="Eval-Tester/SumFilter"/> <$vars sumFilter={{Eval-Tester/SumFilter}}> <pre><code><$list filter=<<sumFilter>> emptyMessage="(no items)">+ (= <<currentTiddler>> =) "<$text text=<<currentTiddler>>/>" </$list>= <$formula formula=<<sumExpression>> toFixed={{Eval-Tester/toFixed}} toPrecision={{Eval-Tester/toPrecision}}/> "<$text text=<<sumExpression>>/>" </code></pre> </$vars> <<< -->
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
{{TutoJs||caption}}
Vous savez maintenant utiliser JavaScript pour afficher des valeurs. Mais pour qu'un programme soit véritablement utile, il faut qu'il puisse mémoriser des données, par exemple des informations saisies par un utilisateur. C'est l'objet de ce chapitre. !!Variables : Introduction *👉 Une variable est une zone de stockage d'information. Chaque variable possède un ''nom'', une ''valeur'' et un ''type''. En JavaScript, le type d'une variable est déduit implicitement de sa valeur, et non pas défini explicitement. Il s'agit d'un langage à ''typage dynamique''. *👉 On déclare une variable JavaScript avec le mot-clé `let` suivi du nom de la variable. Si la valeur initiale d'une variable n'est pas destinée à changer, on utilise de préférence le mot-clé `const` pour déclarer une variable constante. *👉 L'opérateur d'''affectation'' `=` permet de donner une valeur à une variable. Dans le cas d'une variable de type nombre, on peut utiliser l'opérateur `+=` pour augmenter et l'opérateur `++` pour incrémenter (augmenter de 1) sa valeur. *👉 La ''portée'' (scope) d'une variable représente la portion du code source dans laquelle cette variable est utilisable. Les variables définies avec `let` et `const` ont une portée de type ''bloc'' : elles ne sont utilisables qu'à l'intérieur du bloc de code dans lequel elles sont définies. Un bloc de code est délimité par une paire d'accolades ouvrante et fermante. *👉 Une ''expression'' est un morceau de code combinant des'' variables'', des ''valeurs'' et des ''opérateurs''. L'évaluation d'une expression ''produit une valeur'' et correspond à un certain ''type''. *👉 On peut inclure des expressions dans une chaîne de caractères délimitée par une paire d'accents graves seuls : ``` ( `...` ). ``` Ces chaînes sont appelées ''modèles de libellés'' (template literals). *👉 Des conversions de type peuvent avoir lieu implicitement lors de l'évaluation d'une expression, ou bien explicitement avec les instructions `Number()` et `String()` qui convertissement respectivement une expression en un nombre et en une chaîne. *👉 Les instructions `prompt()` et `alert()` permettent respectivement de faire saisir et d'afficher une information sous la forme d'une boîte de dialogue. Elles ne fonctionnent que dans le contexte d'un navigateur web. *👉 Il est essentiel de bien nommer ses variables et d'adopter une convention de nommage, comme par exemple camelCase. !!La notion de variable !!!Rôle des variables Un programme informatique mémorise des données en utilisant des variables. Une variable est une zone de stockage d'information. On peut l'imaginer comme une boîte dans laquelle on range des choses. !!!Propriétés d'une variable Une variable possède trois grandes propriétés : *👉 Son ''nom'', qui permet de l'identifier. Un nom de variable peut contenir des lettres majuscules ou minuscules, des chiffres (sauf en première position) et certains caractères comme le dollar (`$`) ou le tiret bas, appelé underscore (`_`). *👉 Sa ''valeur'', qui est la donnée actuellement mémorisée dans cette variable. *👉 Son ''type'', qui détermine le rôle et les opérations applicables à cette variable. <div class="note"> JavaScript n'impose pas de définir le type d'une variable. Ce type est déduit de la valeur stockée dans la variable, et peut donc changer au fur et à mesure de l'exécution du programme : on dit que JavaScript est un langage à ''typagedynamique''. D'autres langages comme C ou Java imposent la définition du type des variables. On parle alors de ''typagestatique''. </div> !!!Déclarer une variable Avant de pouvoir stocker des informations dans une variable, il faut la créer. Cette opération s'appelle la ''déclaration'' de la variable. Au niveau de l'ordinateur, déclarer une variable déclenche la réservation d'une zone de la mémoire attribuée à cette variable. Le programme peut ensuite lire ou écrire des données dans cette zone mémoire en manipulant la variable. Voici un exemple de code qui déclare une variable puis affiche sa valeur. ``` let a; console.log(a); ``` En JavaScript, on déclare une variable à l'aide des mot-clés `let` ou `var` suivis du nom de la variable. Dans cet exemple, la variable créée se nomme `a`. <div class="attention"> Dans les versions du langage précédant la norme ES2015, on déclarait une variable à l'aide du mot-clé `var`. C'est toujours possible, mais il est plus simple d'utiliser `let` . </div> On constate que le résultat affiché est `undefined`. Il s'agit d'un type JavaScript qui indique ''l'absence de valeur''. Immédiatement après sa déclaration, une variable JavaScript n'a pas de valeur, ce qui est logique. !!!Affecter une valeur à une variable Au cours du déroulement du programme, la valeur stockée dans une variable peut changer. Pour donner une nouvelle valeur à une variable, on utilise l'opérateur `=`, appelé ''opérateur d'affectation''. ``` let a; a = 3.14; console.log(a); ``` La valeur de la variable a été modifiée par l'opération d'affectation. La ligne `a = 3.14` se lit "a reçoit la valeur 3,14". <div class="attention"> Attention à ne pas confondre l'opérateur d'affectation= avec l'égalité mathématique ! Nous verrons prochainement comment exprimer une égalité en JavaScript. </div> On peut également combiner déclaration et affectation d'une valeur en une seule ligne. Il est cependant important de bien distinguer leurs rôles respectifs. Le programme ci-dessous est équivalent au précédent. ``` let a = 3.14; console.log(a); ``` !!!Déclarer une variable constante Si la valeur initiale d'une variable ne changera jamais au cours de l'exécution du programme, cette variable est ce qu'on appelle une ''constante''. Il vaut alors mieux la déclarer avec le mot-clé `const` plutôt qu'avec `let`. Cela rend le programme plus facile à comprendre, et cela permet aussi de détecter des erreurs. ``` const a = 3.14; // Création d'une variable constante a = 6.28; // Impossible : a ne peut pas changer de valeur ! ``` !!!Incrémenter une variable de type nombre Il est également possible d'augmenter ou de diminuer la valeur d'un nombre avec les opérateurs `+=` et `++`. Ce dernier est appelé opérateur d'incrémentation, car il permet d'incrémenter (augmenter de 1) la valeur d'une variable. ``` let b = 0; // b contient 0 b += 1; // b contient 1 b++; // b contient 2 console.log(b); // 2 ``` !!!Portée d'une variable On appelle ''portée'' (scope) d'une variable la portion du code source dans laquelle cette variable est visible et donc utilisable. Les variables déclarées avec `let` et `const` ont une portée de type ''bloc'' : elles ne sont visibles qu'au sein du bloc de code dans lequel elles sont déclarées (ainsi que dans tous les sous-blocs éventuels). En JavaScript et dans de nombreux autres langages, un ''bloc de code'' est délimité par une paire d'accolades ouvrante et fermante. Un programme JavaScript correspond par défaut à un unique bloc de code. ``` let num1 = 0; { num1 = 1; // OK : num1 est déclarée dans le bloc parent const num2 = 0; } console.log(num1); // 1 console.log(num2); // Erreur : num2 n'est pas visible ici ! ``` !!La notion d'expression Une ''expression'' est un morceau de code qui produit une valeur. On crée une expression en combinant des variables, des valeurs et des opérateurs. Toute expression produit une valeur et correspond à un certain type. Le calcul de la valeur d'une expression s'appelle l'''évaluation''. Lors de l'évaluation d'une expression, les variables sont remplacées par leur valeur.
{{Tutoriel||caption}}
Le plugin ''TW Admin'' ajoute un bouton {{$:/plugins/TWaddle/tw-admin/icon}} qui ouvre un tiddler dans une fenêtre séparée du navigateur et qui contient des paramètres Administrateur (Accessible également via les paramétrages du panneau de contrôle. La particularité et l'intérêt d'utiliser ce choix réside dans le fait qu'il vous est toujours possible de sauvegarder votre wiki en le quittant, même si vous cachez la totalité des boutons de la SideBar et y compris si vous cachez le bouton sauver le wiki de la SideBar. --- Sur ce wiki, les trois tiddlers suivants ont été simplement recopiés du plugin original de Mat et installés (on ne le trouvera donc plus dans la liste des plugins). Le tiddler exemple est : $:/tw-admin/content *$:/tw-admin/button *$:/tw-admin/content *$:/tw-admin/icon
<div class="attention"> Ce texte important demande éventuellement à être mis à jour, ayant été créé le 5 août 2014. </div> !! Main * To create a new TW folder: ``tiddlywiki mynewwiki --init server`` ** Remark: this command only creates a directory ``mynewwiki`` containing the file ``tiddlywiki.info`` (general settings). * To start the server on an existing TW folder: ``tiddlywiki <tw folder> --server &`` ** Note 1: the ``&`` is linux-specific (run in the background) ** Note 2: several TW folders can be open at the same time using different ports, e.g: ``tiddlywiki <tw folder> --server 8090`` * To actually open the TW folder, go to http://127.0.0.1:8080/ in your browser (this connects you to the server started as above) !! Converting/importing between standalone HTML TW and TW folders * Convert/import an existing standalone html TW to Node.js format: ** Note 1: the destination TW folder ``<tw folder>`` must exist, i.e. it must at least have been initialized with ``--init server``, but can also be already populated with tiddlers. ** Note 2: only one file can be "loaded" at a time. ``` tiddlywiki <tw folder> --load <standalone tw html> ``` * Convert/export from a Node.js TW folder to a standalone html TW: ** Note: this process is also called "building TW5", since it generates a full TW5 instance. ``` tiddlywiki <tw folder> --rendertiddler $:/core/save/all <standalone tw html> text/plain ``` This version saves "all" the tiddlers, including the plugins needed for the node.js server version. This might cause errors of the wiki is made available on the internet. ``` tiddlywiki <tw folder> --rendertiddler $:/plugins/tiddlywiki/tiddlyweb/save/offline <standalone tw html> text/plain ``` This (recommended) version will save only the content, not the plugins needed by the node.js server version (in the same way as in standard standalone html versions). See also: * TW on Node.js: tiddlers format and related limitations * Export a static HTML snapshot * Working on an offline version of a client-server TW !!! Sources @@.list-tree * http://tiddlywiki.com/#InitCommand * http://tiddlywiki.com/#ServerCommand * http://tiddlywiki.com/#LoadCommand * http://tiddlywiki.com/#TiddlyWikiFolders * [[http://tiddlywiki.com/#How to build a TiddlyWiki5 from individual tiddlers]] * https://groups.google.com/forum/#!msg/tiddlywiki/qxfH1fBqACA/AYhwI8qdPosJ * https://groups.google.com/d/msg/tiddlywiki/CTWSvrjPGkM/RnX5_uN6aeUJ @@
!tm Comme dans "tm-navigate" tiddlywiki-message-navigate !tc Comme dans ".tc-tab-buttons" ? tiddlywiki-class-tab-buttons !tw In the early days TW used tw- as a prefix for many different things. eg: tw-tab-buttons, tw-navigate, ... and so on. ... AS you can see this can get confusing for core devs now, since it mixes "class" and "message" names ... That's why the naming was changed in 5.0.16-beta <https://tiddlywiki.com/#Release%205.0.16-beta>.
Questions et réponses.
\define tv-wikilink-tooltip() <$transclude field="tooltip">(<$transclude field="caption"/>)</$transclude> \end ~TiddlyWiki est traduit en français comme dans de nombreux autres langues (26 actuellement). On peut même télécharger une version "vide" directement en français. Ce que je ne vous ai pas encore dit, pour deux raisons: *<i class="fa fa-arrow-right"></i> Nous profiterons de ce sujet pour aborder la question du téléchargement des plugins ~TiddlyWiki en général. *<i class="fa fa-arrow-right"></i> TW5 est en perpétuel développement actif et ces développements sont toujours réalisés sur la version source en anglais. Je peux me tromper mais il me semble qu'il y a toujours un décalage entre la sortie d'une nouvelle version et la traduction des nouveautés qui la suit, ce qui est d'ailleurs parfaitement logique. C'est pourquoi d'ailleurs nous avons vérifié le numéro de la version téléchargée du source qui est toujours la dernière version stable mise en ligne. Enfin, ce petit détour me paraît être sans conséquences dans la mesure ou, si vous lisez ces lignes, c'est bien que vous souhaitez apprendre à maîtriser ~TiddlyWiki. ;Comment donc installer cette version française ? #Cliquer sur le bouton {{$:/core/images/options-button}} "Ouvrir le panneau de contrôle", qui se trouve en haut et à la droite de votre écran. #Dans ce panneau de contrôle, cliquez sur l'onglet "Plugins" #Dans cet onglet "Plugins", cliquez sur le gros bouton bleu "Get more plugins" #Une nouvelle fenêtre s'ouvre en PopUp dont le titre est "Official TiddlyWiki Plugin library". Cliquez sur le gros bouton vert "open plugin library". C'est ici que sont stockés tous les plugins officiels de ~TiddlyWiki. #Sous ce bouton apparaissent maintenant trois nouveaux onglets:<br/><i class="fa fa-arrow-right"></i> Plugins<br/><i class="fa fa-arrow-right"></i> Themes<br/><i class="fa fa-arrow-right"></i> Languages<br/>Leur fonctionnement est identique, mais les contenus sont classés sous ces trois catégories pour bien les distinguer. #Cliquez sur l'onglet "Languages" #Recherchez dans la liste le bloc comportant le drapeau tricolore, Français (France), `$:/languages/fr-FR` sous lequel se trouve le numéro de version (par exemple 5.1.17), puis cliquez sur le bouton connexe "install". #Votre plugin est maintenant installé mais ne deviendra fonctionnel qu'une fois votre wiki sauvegardé et relancé #Cliquez sur le bouton {{$:/core/images/save-button}} Sauvegarder le wiki #Quittez le wiki puis redémarrez le. La plupart de ce que vous lisez maintenant doit être en français. <div class="column col-12 col-xs-12"> <ul class="menu"> <li class="divider" data-content="Pour aller plus loin..."></li> <li class="menu-item">[[TiddlyWiki en Français]]</li> <li class="menu-item">[[Plugin TW5 Français]]</li> </ul> </div>
TW5-JsonManglerPlugin by Joshua Fontany, v 2.0.2 Requiert: @@.list-tree *<i class="fa fa-arrow-right"></i> `$:/plugins/matabele/action-maketid` *<i class="fa fa-arrow-right"></i> `$:/plugins/ebalster/modloader` *<i class="fa fa-arrow-right"></i> `$:/plugins/joshuafontany/jsonmangler` @@
Helpful tips and tricks for the use of TiddlyWiki 5
Tobias Beer (http://tb5.tiddlyspot.com) This wiki gathers information that helps you to compare between and migrate from [[TiddlyWikiClasic|http://classic.tiddlywiki.com]] to the new version of TiddlyWiki...
*{{$:/core/images/done-button}}Multi-User support for using/editing the same wiki(s) simultaneously *{{$:/core/images/done-button}}Multi-Wiki support - run it once and serve multiple wikis *{{$:/core/images/done-button}}Create and configure new wikis from inside the root wiki *{{$:/core/images/done-button}}Two-way real-time syncing between the browser and file system *{{$:/core/images/done-button}}All configuration can be done from inside the wiki *{{$:/core/images/done-button}}Serve external files (like images) so you can include them in your wikis *{{$:/core/images/done-button}}Allows you to run shell scripts and commands from inside the wiki
This plugin provides ~LaTeX support in TiddlyWiki5, using the ~TeXZilla latex parser to generate ~MathML.
{{TW5Com||caption}}
{{TW5ToolMap||caption}}
Mat von Twaddle
<svg height="67px" id="Layer_1" style="enable-background:new 0 0 67 67;" version="1.1" viewBox="0 0 67 67" width="67px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><path d="M38.167,22.283c-2.619,0.953-4.274,3.411-4.086,6.101 l0.063,1.038l-1.048-0.127c-3.813-0.487-7.145-2.139-9.974-4.915l-1.383-1.377l-0.356,1.017c-0.754,2.267-0.272,4.661,1.299,6.271 c0.838,0.89,0.649,1.017-0.796,0.487c-0.503-0.169-0.943-0.296-0.985-0.233c-0.146,0.149,0.356,2.076,0.754,2.839 c0.545,1.06,1.655,2.097,2.871,2.712l1.027,0.487l-1.215,0.021c-1.173,0-1.215,0.021-1.089,0.467 c0.419,1.377,2.074,2.839,3.918,3.475l1.299,0.444l-1.131,0.678c-1.676,0.976-3.646,1.526-5.616,1.567 C20.775,43.256,20,43.341,20,43.405c0,0.211,2.557,1.397,4.044,1.864c4.463,1.377,9.765,0.783,13.746-1.568 c2.829-1.674,5.657-5,6.978-8.221c0.713-1.715,1.425-4.851,1.425-6.354c0-0.975,0.063-1.102,1.236-2.267 c0.692-0.678,1.341-1.419,1.467-1.631c0.21-0.403,0.188-0.403-0.88-0.043c-1.781,0.636-2.033,0.551-1.152-0.402 c0.649-0.678,1.425-1.907,1.425-2.267c0-0.063-0.314,0.042-0.671,0.233c-0.377,0.212-1.215,0.53-1.844,0.72l-1.131,0.361l-1.027-0.7 c-0.566-0.381-1.361-0.805-1.781-0.932C40.766,21.902,39.131,21.944,38.167,22.283z M34,64C17.432,64,4,50.568,4,34 C4,17.431,17.432,4,34,4s30,13.431,30,30C64,50.568,50.568,64,34,64z" style="fill-rule:evenodd;clip-rule:evenodd;fill:#598DCA;"/></svg>
show diff revisions. version control for your tiddler text edits
{{||SomeTemplate}}
Ce texte explique les principes d'écriture des filtres pour sélectionner un jeu de tiddlers. Pour une présentation plus technique voir [ext[Filter Syntax|https://tiddlywiki.com/static/Filter%2520Syntax.html]]. Dans cette présentation tous les exemples choisis sont issus d'une mini-base de données traitant de la gestion des repas et du régime alimentaire servis aux pensionnaires d'une maison de retraite dont voici le shéma: [img[BDPensionnaires]] *Lettres A à L = Nom des pensionnaires: [[A]], [[B]], [[C]], [[D]], [[E]], [[F]], [[G]], [[H]], [[I]], [[J]], [[K]], [[L]] *Tous les pensionnaires sont tagués "Repas" | Catégories | Description | Filtre | Type |h |Régime|Sans sel/Complet|~SansSel/Complet| Tag | |Typologie|Repas avec Viande/Végétarien|Viande/Végétarien| Tag | |Cuisson|à la Vapeur/au Bain-Marie/au Four|Vapeur/~BainMarie/Four| Champ | ; Récapitulation par tags: | Pensionnaire | Tag | Tag | Tag | Champ |h | [[A]] |<<tag "Repas">>|<<tag "SansSel">>|<<tag "Viande">>|Vapeur| | [[B]] |Repas|~SansSel|Viande|~BainMarie| | [[C]] |Repas|~SansSel|Viande|Four| | [[D]] |Repas|~SansSel|Végétarien|Vapeur| | [[E]] |Repas|~SansSel|<<tag "Végétarien">>|~BainMarie| | [[F]] |Repas|~SansSel|Végétarien|Four| | [[G]] |Repas|<<tag "Complet">>|Viande|Vapeur| | [[H]] |Repas|Complet|Viande|~BainMarie| | [[I]] |Repas|Complet|Viande|Four| | [[J]] |Repas|Complet|Végétarien|Vapeur| | [[K]] |Repas|Complet|Végétarien|~BainMarie| | [[L]] |Repas|Complet|Végétarien|Four|
Il s'agit de lister tous les tiddlers faisant partie de la table des matières. L'utilisation de l'opérateur `tagging[]` permet de descendre au plus profond... ``` <$list filter=" [[TableOfContents]] [[TableOfContents]tagging[]] [[TableOfContents]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]tagging[]] [[TableOfContents]tagging[]tagging[]tagging[]tagging[]tagging[]] "> <$link>{{!!title}}</$link><br> </$list> ```
Enrober une liste de sélection (select widget) avec un tiiltip ``` <label>This select widget displays a list of the tags in this wiki <$select tiddler=<<qualify 'select-demo'>> default='HelloThere'> <$list filter='[all[shadows+tiddlers]tags[]sort[title]]'> <option value=<<currentTiddler>>><$view field='title'/></option> </$list> </$select> </label> ``` ;Soit: <label>This select widget displays a list of the tags in this wiki <$select tiddler=<<qualify 'select-demo'>> default='HelloThere'> <$list filter='[all[shadows+tiddlers]tags[]sort[title]]'> <option value=<<currentTiddler>>><$view field='title'/></option> </$list> </$select> </label>
!<marquee direction=up scrollamount="1" >Ce texte est déroulant, déroutant non ?</marquee> Ne nécessite aucun CSS supplémentaire à priori.
Bottom Tabs The main feature of TiddlyWiki for Scholars is its tabs bar at the bottom of each tiddler. http://tw5.scholars.tiddlyspot.com/
Pendant que le constructeur informatique Sun déclarait au cours des années 1990: "Le réseau est l'ordinateur", l'éditeur Microsoft maintenait son cap: "Un ordinateur personnel sous Windows sur chaque bureau". Le désir de Microsoft a été satisfait: il y a quasiment neuf PC sur dix sous Windows. L'ordinateur auquel Microsoft faisait référence hébergeait un mélange de données binaires (programmes) et de données utilisateurs (informations). Les programmes devaient être achetés et installés par les clients, afin de permettre d'accéder aux données utilisateurs. La suite Microsoft Office a, à cette époque envahi quasiment tous les bureaux du monde. L'ordinateur auquel Sun faisait référence était un terminal non autonome: un équipement bon marché réunissant un clavier, un écran, uns souris et un accès réseau. Les programmes et les données étaient stockés non pas sur cette machine, mais quelque part sur le réseau. La philosophie de Microsoft était plutôt orientée vers l'individuel alors que celle de Sun l'était vers le collectif. Les motivations de part et d'autre étaient non pas philanthropiques, mais commerciales. Microsoft gagnait de l'argent en vendant des logiciels pour PC aux particuliers et aux PME, Sun vendait aux grandes et moyennes entreprises des serveurs et calculateurs avec les logiciels appropriés. Au milieu des années 1990, se produisit l'irruption (on pourrait presque parler d'éruption) du réseau Internet pourtant déjà utilisé depuis les années 1960 par les chercheurs et les militaires, notamment grâce au standard HTML (~HyperText Markup Language, le langage de codage des formats dans les pages Web), à la multiplication des serveurs Web et à la création des logiciels navigateurs (clients Web). Internet n'est rien d'autre qu'un ensemble de règles du jeu et de conventions auxquelles se plient tous les équipements qui s'y connectent. L'ensemble est si bien conçu qu'il n'a fallu que quelques années pour constituer un réseau planétaire. L'individu n'est plus accessible s'il ne dispose pas d'une adresse de messagerie. Une entreprise sans site Web semble dépassée, et certains clients ignorent même son existence. le monde entier s'est rué sur le nouveau réseau, pour faire partie de l'aventure. Des films tels que Matrix sont devenus des hits et le cauchemar du livre 1984 de George Orwell ne s'est apparemment pas réalisé. Ceux qui avaient l'habitude d'acheter leurs programmes ont acheté des éditeurs HTML et ont construit leurs pages Internet. Les autres ont rédigé leurs pages HTML sans outil particulier sauf l'éditeur de texte que possède toute machine. Les agences de création Web firent leur apparition pour faire le travail à la place de leurs clients. Les deux camps souffraient du même problème: les pages HTML étaient statiques. Modifier une page supposait de charger la page localement dans son éditeur de texte, de la tester puis de la transférer de nouveau sur le serveur pour la mettre à jour. C'était non seulement inconfortable, mais des sites complexes tels que eBay ou Amazon n'auraient pas pu voir le jour. Dans chaque groupe furent trouvées des solutions plus ou moins satisfaisantes. Dans le camp des individuels apparurent des programmes performants pour créer et modifier ses pages HTML, puis les faire envoyer automatiquement sur le serveur. Ces pages contenaient des éléments interactifs (compteur de visites, liens publicitaires, etc.) Le camp des collectifs s'appropria les applets Java qui rendaient possible l'écriture d'un programme fonctionnant sur le serveur tout en étant piloté depuis un navigateur. Cette technique a permis l'apparition des premiers sites de commerce électronique (ventes aux enchères, réservations de billets d'avion). Chaque groupe tenta de conquérir des parts de marché. Il en a résulté un marché assez stable pour chacun, le tout animé par une incessante guerre de chapelles pour savoir qui était le meilleur système d'exploitation (Windows ? Linux ? Mac OS X ?), ce qui poussait les éditeurs à accélérer la fréquence de parution des nouvelles versions. Les clients s'y habituèrent en se disant que les choses n'étaient décidément pas simples. Mais dans un tel contexte, il existe toujours une troisième voie. L'autre approche a pris forme dans les langages de script Open Source tels que PHP ou Java Script. L'auteur de PHP, Rasmus Lendorf, cherchait à enrichir sa page personnelle avec des éléments interactifs, et ses efforts ont donné naissance au language PHP. Dès le départ, ce langage était optimisé pour fonctionner en parfaite harmonie avec la base de données relationnelle libre ~MySQL régie comme PHP par la licence GNU/GPL. Par bonheur sont apparus à la même époque le système d'exploitation libre Linux et le serveur Web Apache. Toute l'infrastructure logicielle d'un serveur était ainsi disponible. Le poste client utilisait un navigateur (le pionnier étant Netscape). L'acronyme LAMP (Linux, Apache, ~MySQL, PHP) devint le synonyme de la présence interactive sur Internet associée à la puissance d'une base de données. Une véritable frénésie de création vit apparaître les logiciels les plus divers pour créer des sites Web depuis un navigateur: forums de discussion, communautés, cyber-boutiques, pages de sondage, etc. Après la partie technique incarnée par Linux et Apache pouvait enfin surgir la partie utilisateur. À la fin des années 1990, la bulle spéculative internet éclata. Soudain, on se remit à penser en termes de commerce classique et à en revenir aux bonnes vieilles méthodes. En période de restriction économique, il en va toujours ainsi: la chasse aux économies est ouverte. Il y avait, et il y a toujours, quantité de solutions. Les applications PHP en activité à cette époque se comptaient par millions. Citons par exemple les deux outils phpBB et phpMyAdmin. Le premier est devenu le standard de fait pour créer des forums Internet; le second est l'interface standard pour exploiter une base de données ~MySQL via une interface Web. Et le code source du langage PHP comme celui des outils environnants étant librement disponibles, il s'améliorait de plus en plus vite, grâce aux contributions de la foule d'utilisateurs et de programmeurs qui s'en souciaient. Plus un point fonctionnel était conçu de façon ouverte, communautaire, plus il avait de succès. Un expert pouvait à lui seul faire économiser des sommes énormes à une entreprise en très peu de temps. Les pages HTML statiques étaient reléguées au panthéon de l'histoire. Tout devait dorénavant être dynamique. Voici où nous en sommes maintenant depuis plusieurs années. Linux, Apache, ~MySQL et PHP sont devenus des standards reconnus faisant l'objet de cursus de formation officiels. La recherche d'applications PHP utilisables en milieu professionnel a alors commencé. Pendant ce temps, le Web 2.0 apparaissait. Le contenu géré par les utilisateurs ne cessait de croître. Le monde entier a découvert l'univers virtuel de Second Life. Le langage de programmation Ruby et sa déclinaison Ruby on Rails ont été les plus adoptés pour créer des sites Web. les interfaces de programmation ont pris une importance particulière.
``` <$reveal type='popup' class='tc-popup-keep' state='bob' position='above'> <div style='background-color:pink'> HELLO!! </div> </$reveal> <$button popup='bob'> Test </$button> ``` ;Soit: <$reveal type='popup' class='tc-popup-keep' state='bob' position='above'> <div style='background-color:pink'> HELLO!! </div> </$reveal> <$button popup='bob'> Test </$button> The tc-popup-keep class is needed if you want the popup to stay when a person clicks inside the popup. The position='above' part is just to make it more obvious that it isn't in the normal tiddler. The content inside can be any wikitext or html/css like in a normal tiddler. You can style the revealed content using normal css to make it appear in the middle of the screen or wherever you want it.
Un système de commentaires https://tritarget.org/ À tester car je ne peux le faire de l'endroit où je me trouve
!!Grand Foutoir Psychanalitique. ...C'est le nom de ce wiki. L'ajout du moteur de recherche interne serait tout de même un minimum pour ne pas devoir errer d'articles en articles sans même pouvoir en relire un particulier une seconde fois. A placer dans la barre de menu. Par exemple, le tiddler "Sur la fin du capitalisme" ne se retrouve nulle part, pas même dans la liste des étiquettes. Le principe de lecture énoncé est celui de cliquer sur des liens un peu au hasard au fil des textes. Donc une approche totalement déstructurée, dont rien ne permet de s'y retrouver. C'est en partant de ce concept que j'essaie de trouver des solutions qui - sans remettre ce principe en cause - fournissent tout de même un minimum de moyens pour structurer le tout. Voir [[Comment gérer une interface sans aucune barre de menus]], mais de permettre tout de même au lecteur de maîtriser cette barque.
\define rndcolor() <<eval " const randomHexColorCode = () => { let n = (Math.random() * 0xfffff * 1000000).toString(16); return '#' + n.slice(0, 8); }; randomHexColorCode(); ">> \end {{EnTêteDemosMacrosJs}} !1- La Macro ``` \define rndcolor() <<eval " const randomHexColorCode = () => { let n = (Math.random() * 0xfffff * 1000000).toString(16); return '#' + n.slice(0, 8); }; randomHexColorCode(); ">> \end ``` !2- L'appel ``` <<rndcolor>> ``` <<rndcolor>> On pourrait aussi définir une fonction de conversion, par exemple Convertir les valeurs des composants RGB en code couleur. On convertit es paramètres RVB donnés en chaîne hexadécimale à l'aide de l'opérateur de décalage vers la gauche (< <) et toString (16), puis String. padStart (6, ' 0 ') pour obtenir une valeur hexadécimale à 6 chiffres. ``` const RGBToHex = (r, g, b) => ((r << 16) + (g << 8) + b).toString(16).padStart(6, '0'); ``` que l'on utilisera ainsi: ``` RGBToHex(255, 165, 1); // 'ffa501' ```
{{Up&Going||caption}}
Upgrader TiddlyWiki http://tiddlywiki.com/upgrade.html
Par défaut, la liste des tags contenus dans ce tiddlers peut s'écrire ainsi: ``` <$list filter="[all[current]tags[]]"> </$list> ``` ;Soit : <$list filter="[all[current]tags[]]"> </$list> Mais on peut obtenir le même résultat en utilisant `currentTiddler` comme suit: ``` <$list filter="[<currentTiddler>tags[]]"> </$list> ``` ;Soit : <$list filter="[<currentTiddler>tags[]]"> </$list> The `currentTiddler` means the tiddler which contains the code if the tiddler is `{{transcluded}}` in to another. If you want to refer to the tiddler which is shown in the storylist, use `storyTiddler` instead: ``` <$list filter="[<storyTiddler>tags[]]"> </$list> ``` ;Soit : <$list filter="[<storyTiddler>tags[]]"> </$list> Voir aussi : [[Tiddlers ouverts dans la story river]]
Pourquoi la barre de navigation reprend-elle des informations déjà contenues dans la SideBar ? La [[barre de navigation|NavBar]] est principalement destinée à la consultation de ce site sur de petits écrans (ipad notamment), le positionnement standard de la SideBar n'étant pas optimal dans ces environnements. Sur des moniteurs plus larges, la barre de navigation peut être occultée dans Paramètres <i class="icon icon-forward"></i> [[Contrôle NavBar|$:/TemplateNavBar]]
[[Source de l'article en anglais|https://www.reddit.com/r/TiddlyWiki5/comments/5dd317/user_implementation_static_html_generation_using/]], posté par David Gifford. Je voulais simplement dire Merci à tous ceux qui m'ont aidé dernièrement avec des réponses à mes diverses questions. Je voulais créer un système par lequel je peux ajouter des extraits (citations, observations), les étiqueter par sujet, sur une grande variété de sujets, et de les publier au moment de leur mise à jour, de telle manière qu'il soit facile pour mon public cible de les lire rapidement sur leur mobile; de naviguer facilement; de les télécharger; d'en imprimer la totalité ou des extraits sélectionnés et de pouvoir partager des liens vers des tiddlers individuels, sans en savoir beaucoup sur TiddlyWiki. Je savais qu'il devait y avoir une méthode - propre à TiddlyWiki - pour créer une liste déroulante de "citations et des notes par sujet " qui pourraient être consultés facilement dans toutes les situations que nous venons de mentionner. J'ai rencontré de mombreux obstacles au cours de ces travaux: *Je savais que beaucoup de mon travail de base serait fait de citations rattachées une par une à des sujets, plutôt que d'articles complets en blocs. Donc, je ne voulais pas que mes lecteurs aient à passer trop de temps à ouvrir de multiples tiddlers pour accéder à un sujet avant de réaliser que ledit sujet n'est constitué en réalité que d'une citation unique. *TiddlyWiki n'est pas bien adapté aux appareils mobiles , car ils est bourré de Tiddlers cachés; de plus, lorsque vous tenez votre appateil mobile verticalement, la barre latérale remplis l'écran, le contenu des tiddlers étant repoussé hors de vue. *My many, many attempts to use list filters in viewtemplate tiddlers to display lists of the contents of tiddlers tagged with topic x led to dead ends. The complex list filters slowed TiddlyWiki way down at times once I started adding a lot of material. *<ref01>De par sa nature, les gens qui ne connaissent pas votre système de pensée peuvent ne pas trouver les meilleurs morceaux de vos contenus cachés dans votre fichier ~TiddlyWiki.</ref01> => Peut-être convient-il de les révéler dans une section particulière. *Customizing to print an entire file in TiddlyWiki as a syllabus was a chore. Personnaliser l'impression d'un fichier entier dans tiddlywiki en tant que programme a été une corvée. *Having too many files means users having to check them all to see what I updated, and for me, it meants switching back and forth between files when all I want to do is take notes on what I am reading. *Having too few files means bigger files, and requires users having to dig way into them to see if the section they are interested in was updated recently. *People who aren't both tech savvy and familiar with TiddlyWiki will get confused by it or distracted by the nonessentials if it is not simplified in some way. I have found my 'sweet spot' by creating special TWs that I use to generate static HTML files and PDFs. The pdfs are huge, especially if images are involved, and I only put them out for those readers who want a more familiar, conventional type of document. The static HTMLs are what I am excited about. I thought I would share my results and process for those who might be interested. *Here is a static HTML I have created: http://recursos.giffmex.org/abc/mente.html (Spanish) *Here is a link to the TW I used to create it: http://www.giffmex.org/experiments/mente.html (Spanish) The key ingredients were: *Figuring out how to display certain tiddlers before others when "exporting all" to the static HTML. My less than graceful but completely adequate (for me) solution involved using periods at the beginning of tiddler titles to force them to the top. *Figuring out how to allow users to navigate between tiddlers and get back to the top quickly in a static HTML. Solutions: list links by tag in a table of contents at the top; titles as links; a home button in each tiddler *Figuring out how to make each page print separately in both HTML and PDF. Solution: page breaks at the top of each tiddler (see `$:/.giffmex/pagebreak`) *Figuring out how to quickly open all tiddlers in order to print to PDF (except a few instructions tiddlers specific to the html version). I scraped together the button in `$:/.giffmex/OpenAllForPrintingPDFs.` *Figuring out how to move quickly between files on 40 different topics. Solution: Bookmark folder and subfolders in my web browser (Firefox). *Figuring out how to let readers know about new updates to the files. I already use a Facebook group to alert people there to updates, but I also created an index (Spanish, and still in process) here: http://recursos.giffmex.org So now my process is: *Add new content and tag it by topic *If the topic is not listed in the table of contents, add it (a quick copy, paste and alter) *Note in a notebook which files I added new content to this week *At the end of the week, **Create a static HTML of each file with one click and upload them. **Open all tiddlers of each file with one click, print to PDF, and upload it. **Change the date of the most recent update for each file in Wordpress **Let people know on Facebook, if the changes are significant enough to merit mentioning I suppose my project is kind of unique, a wide ranging, expanding knowledgebase to be populated primarily by short tidbits but also with some tables and full articles, so I don't know just how applicable or relevant most people would find this. But I hope this might be helpful reference for anyone who might think about doing something similar and doesn't want to have to go through everything I did. [ ] Commenter ce texte [ ] Traduction à finaliser
Vous pouvez utiliser des liens (habituellement affichés en bleu)pour naviguer d'un tiddler à l'autre. Cliquer sur le lien vers un tiddler vous amène à ce tiddler. Si le tiddler est fermé, il sera ouvert. La particularité de TiddlyWiki est de rendre les liens vers tiddlers aussi accessible que possible. Il y a des liens partout ! Voici les principaux endroits où vous pourrez trouver des liens vers d'autres tiddlers dans TiddlyWiki : * Vous pouvez ''créer un lien'' vers un tiddler, qu'il existe déjà ou pas, dans le contenu de tout tiddler. Voir [[ Liens avec WikiTexte|Linking in WikiText]] pour consulter les différentes façons de créer simplement des liens entre tiddlers. * Chaque ''tag'' de votre tiddler (comme par exemple le tag ''Working with ~TiddlyWiki'' sous le titre de ce tiddler) contient un lien vers ce tiddler tag, ainsi que la liste de tous les tiddlers avec ce tag. Ce qui vous permet d'ouvrir un de ces tiddlers. * Le ''Panneau d'information'' de chaque tiddler vous donne l'accès à 4 onglets contenant un liste additionnelle de tiddlers connexes : ** L'onglet ''Références'' liste tous les tiddlers avec un lien //vers// le tiddler en cours. ** L'onglet ''Étiqueté'' liste tous les tiddlers tagués avec le titre du tiddler en cours. ** L'onglet ''Liste'' liste tous les tiddlers (ou les tiddlers potentiels) mentionnés dans le [[champ liste|ListField]] du tiddler en cours. ** L'onglet ''Listé'' liste tous les tiddlers qui mentionnent le tiddler en cours dans //leurs// champs liste. * Les ''onglets de la barre de menu'' contiennent plusieurs listes de liens vers des tiddlers : ** L'onglet ''Récents'' liste les 100 tiddlers récemment modifiés, en commençant pas la modification la plus récente. ** L'onglet ''Plus'' propose 8 listes supplémentaires de tiddlers<<:>> *** ''Tout'' liste tous les tiddlers dans l'ordre alphabétique. *** ''Tags'' liste tous les tags. Vous pouvez cliquer sur la pilule de tout tag pour accéder à la liste des tiddlers étiquetés par ce tag. *** ''Manquants'' liste tous les tiddlers qui n'existent pas encore, mais auquels sont liés à d'autres tiddlers. Utile pour trouver les tiddlers que vous aviez prévu de créer, sans en avoir jamais eu le temps. *** ''Ébauches'' liste tous les tiddlers actuellement en mode ébauche. ~TiddlyWiki considère l'ébauche d'un tiddler comme un tiddler séparé de l'original aussi longtemps que vous le modifiez, aussi, tant que vous modifierez le tiddler titré ''Australie'', il y aura deux tiddlers, ''Australie'' et ''Draft of 'Australie'''. Quand vous clôturerez l'ébauche en confirmant les modifications, ces modifications seront apportées au tiddler original ''Australie''. Aussi, traitez l'onglet ''Ébauches'' comme un moyen de retrouver toutes les ébauches que vous avez commencé. *** ''Orphelins'' liste tous les tiddlers non connectés à un autre tiddler par des lien, tag ou liste. C'est une assistance utile à l'organisation de vos fichiers - qui montre quels tiddlers doivent y faire l'objet d'une intégration plus soigneuse. *** ''Types'' liste tous les tiddlers à contenu spécial, comme les images ou l'audio. *** ''Système'' liste tous les SystemTiddlers. *** ''Shadows'' liste tous les ShadowTiddlers. * ''Résultats de la recherche'' est une liste des tiddlers contenant le texte que vous avez saisi dans la zone de recherche. * Enfin, vous pouvez créer vos propres tiddlers de listes personnalisées par différents moyens<<:>> ** Vous pouvez transclure un [[filtre|Filters]] (voir [[Transclusion grâce à WikiText|Transclusion in WikiText]]). Par exemple, l'ajout de `{{{ [tag[montagne]] }}}` à un tiddler insèrera une liste de tiddlers avec le tag ''montagne''. ** Vous pouvez utiliser le ListWidget. C'est plus compliqué que transclure un [[filtre|Filters]], mais offre plus de souplesse dans l'affichage et la mise en forme d'une liste exactement de la façon dans laquelle vous désirez qu'elle s'affiche.
\define increment() <$macrocall $name="eval" target="mult" cell='=(!!maxx-!!zerox)/!!numelem' format=2/> \end <<increment>> <$wikify name="bryce" text="<<increment>>"> <<bryce>> </$wikify>
Dans Le tiddler expérimental de TiddlyWiki (un tiddler par page), la vue en lecture seule utilise une mise en page simplifiée et implémente les liens entre les tiddlers, mais il n’y a pas d’autres fonctionnalités interactives. Comparé à une interface utilisateur TiddlyWiki complète, il est très léger et utilisable même sur des connexions très lentes. Alongside serving the full interactive wiki at the path `/` (e.g. http://127.0.0.1:8080/), TiddlyWiki serves each tiddler at the path `/<url-encoded-tiddler-title>`. For example: * http://127.0.0.1:8080/HelloThere * http://127.0.0.1:8080/Philosophy%20of%20Tiddlers Ordinary, non-system tiddlers are rendered through a special view template while system tiddlers are rendered through a template that returns the raw text of the rendered output. In this way ordinary tiddlers can be browsed by end users while system tiddlers can be included in their raw form to use them as JS, HTML or CSS templates. Additionally these defaults can be overwritten on a per tiddler basis by specifying the `_render_type` and `_render_template` fields accordingly. Les templates sont contrôlés par les paramètres suivants (les liens renvoient sur le site officiel de TiddlyWiki): * [[system-tiddler-render-type|https://tiddlywiki.com/#WebServer%20Parameter%3A%20system-tiddler-render-type]] * [[system-tiddler-template|https://tiddlywiki.com/#WebServer%20Parameter%3A%20system-tiddler-render-template]] * [[tiddler-render-type|https://tiddlywiki.com/#WebServer%20Parameter%3A%20tiddler-render-type]] * [[tiddler-template|https://tiddlywiki.com/#WebServer%20Parameter%3A%20tiddler-render-template]]
You can display single digit badges using UTF-8 Dingbats: ❶ ❷ ❸ ❹ ❺ ➅ ➆ ➇ ➈ ➉ ❶ ❷ ❸ ❹ ❺ ➅ ➆ ➇ ➈ ➉
<div class="att"> Les termes techniques utilisés ici sont certainement à améliorer! Je n'en suis qu'au début de mon apprentissage JS. Tout ceci sera révisé ultérieurement. </div> ``` La version<<version>> de TiddlyWiki <<updated "21 décembre 2018">> ``` ;Soit: <<< La version<<version>> de TiddlyWiki <<updated "21 décembre 2018">> <<< :"''updated''" restitue la chaîne de caractères "est rendue disponible le" :"''21 décembre 2018''" est la valeur du paramètre inclus dans la fonction (param1), renseignée par l'utilisateur (on pourrait le faire plus élégamment via une boite de dialogue par exemple) :"''!!''" restitue également la chaîne de caractères `!!`
!Introduction Généralement coder `<<currentTiddler>>` à l'intérieur d'un tiddler affichera le nom de ce tiddler, comme ici: <<< <<currentTiddler>> <<< Mais si ce code se trouve encapsulé dans le widget "List and list item" ($:/core/modules/widgets/list.js) il affichera: #le nom du tiddler courant et #en dessous, le titre de tous les tiddlers tagués dans notre exemple avec "macros". Voici le code et son résultat: ``` <<currentTiddler>> <$list filter='[tag[Macros]]'> <<currentTiddler>> </$list> ``` ;Soit: <<< <<currentTiddler>> <$list filter='[tag[Macros]]'> <<currentTiddler>> </$list> <<< Cependant, cette liste est ennuyeuse et pas particulièrement utile. Voici donc un exemple plus parlant: ``` <$list filter='[tag[macros]]'> <$checkbox tag=test/> <<currentTiddler>> </$list> ``` Dans cet exemple, apparaît la liste des tiddlers tagués "macros" précédés d'une case à cocher. Les cases qui seront cochées verront leurs tiddlers correspondant affectés du tag "test". Et en décochant les cases le tag "test"sera retiré: ``` <$list filter='[tag[Macros]]'> <$checkbox tag=test/> <<currentTiddler>> </$list> ``` ;Soit: <<< <$list filter='[tag[Macros]]'> <$checkbox tag=test/> <<currentTiddler>> </$list> <<< Voici donc une méthode utilisant la variable `<<currentTiddler>>` dans un contexte de liste de tiddlers à laquelle est associée une propriété.
Les différentes parenthèses sont associées aux ''types'' d'opérandes... * `[foo]` est une valeur litérale * `<foo>` est une variable référence * `{{!!foo}}` est la référence du champ `foo` dans le tiddler courant * `{someTiddler}` est la référence du champ `text` d'un tiddler quelconque * `{SomeTiddler!!foo}` est la référence de la valeur du champ `foo` dans le tiddler "someTiddler"
Utilisez le Tiddler modèle par transclusion en utilisant le modèle `full` ``` {{Exemple de Transclusion Globale||full}} ``` ; Voici le résultat: <<< {{Exemple de Transclusion Globale||full}} <<<
<div class="note">Sorry! ce texte reste à traduire. Pas pressé puisque je n'utilise RIEN de Google</div> # Go to https://fonts.google.com/ # Find a font you like and click on the + button on its top # Right now on the bottom of your screen, there will be a "1 Family Selected" Notification. Click on it. # From the box that opens, copy the standard embed code eg: `<link href="https://fonts.googleapis.com/css?family=Fira+Sans+Extra+Condensed" rel="stylesheet"> ` # in your TW, create a tiddler and paste that code. Now tag the tiddler "`$:/tags/RawMarkup`" # Done. Now you can use that font in your stylesheets using font-family property. eg: `font-family: 'Fira Sans Extra Condensed', sans-serif;`
{{ValChamp||caption}}
<div class="pretty"> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Voir le source: http://tobibeer.github.io/tw5-plugins/#split<br/> <i class="fa fa-thumb-tack" style="color:#E74C3C"></i> Vu aussi sur http://tiddlystuff.tiddlyspot.com/ sous le titre "Selfmade Lists" </div> <div class="attention">Implémenter d'abord [[Tables éditables en mode visualisation|TabsVDoc]] avecTOUS les tiddlers requis. Sauvegardez et redémarrez votre wiki. Ce Tiddler [[Éditer la valeur d'un champ]] devrait en principe fonctionner correctement</div> ``` Le champ ''List'' est un champ spécial. Sa valeur est en fait une liste qui peut être utilisée par la liste widget. Mais il est possible d'utiliser d'autres champs comme container de listes. En JavaScript, il y a une méthode pour les chaînes de caractères appelée "split" qui permet de séparer une chaîne de caractères en tableau. Cette méthode est également disponible en tant que filtre de fonction. ``` ; Par exemple: Ce tiddler possède un champ "<mark class="roundedmark">colors</mark>" avec le contenu (la valeur) ''{{!!colors}}''. En utilisant la ''fonction'' split, ce champ peut être édité en liste: ``{{{ [ is[current]] +[split:colors[,]] }}}`` ; Soit: {{{ [is[current]] +[split:colors[,]] }}} Ces liens ouvriront les tiddlers rouge, jaune et bleu s'ils existent. ; Ou bien: `{{{ [is[current]] +[split:eu-countries[,]] }}}` ; Soit: {{{ [is[current]] +[split:eu-countries[,]] }}} Il est aussi bien sur possible d'éditer la chaîne de caractères elle-même, c'est à dire le contenu du champ : `{{!!Nom-du-champ}}` `{{!!colors}}` ; Soit: * {{!!colors}} Ou la valeur de n'importe quel champ `{{!!created}}` ; Soit: * {{!!created}} ``` <$list filter="[list[!!colors]removeprefix[_]]"> </$list> ``` <$list filter="[list[!!colors]removeprefix[_]]"> </$list>
Faites suivre votre liste de valeur de la liste en les séparent avec un espace (sans virgule donc). La restitution par filtre simple fonctionne parfaitement: Verticalement : ``` <$list filter="[list[!!list]removeprefix[_]]"> </$list> ``` ;Soit: <<< <$list filter="[list[!!list]removeprefix[_]]"> </$list> <<< Horizontalement : ``` <$list filter="[list[!!list]removeprefix[_]]"/> ``` ;Soit: <<< <$list filter="[list[!!list]removeprefix[_]]"/> <<< removeprefix retire les underscore sur les trois valeurs.
https://openclassrooms.com/fr/courses/2984401-apprenez-a-coder-avec-javascript/3007043-presentation-de-javascript [img[ECMAScript-releases.png]] ''L'instruction'' JavaScript `console.log()` permet d'afficher une information. Une valeur est un morceau d'information. Le type d'une valeur détermine son rôle et les opérations qui lui sont applicables. Le langage JavaScript dispose du type nombre (number) pour représenter une valeur numérique entière ou réelle, et du type chaîne de caractères (string) pour représenter un texte. Une valeur de type texte est délimitée par une paire de guillemets simples `'...'` ou doubles `"..."`. Les opérateurs `+`, `-`, `*` et `/` permettent de réaliser des opérations arithmétiques entre deux nombres. Appliqué à deux chaînes, l'opérateur `+` les fusionne en une seule. Cette opération est appelée concaténation. Un programme informatique se compose de plusieurs lignes de code qui s'exécutent successivement. Les commentaires ( `// ...` ou ` /* ... */` ) sont des portions de code non exécutées. Ils permettent de documenter le fonctionnement d'un programme. ``` console.log("Bonjour en JavaScript !"); ``` !!Valeurs et types Une valeur est un morceau d'information utilisé dans un programme informatique. Les valeurs existent sous différentes formes, appelées des types. Le type d'une valeur détermine son rôle et les opérations qui lui sont applicables. Chaque langage informatique dispose d'une panoplie de types qui lui est propre. Nous allons étudier deux des principaux types disponibles en JavaScript. !!!Le type nombre Une valeur de type nombre (number) représente une valeur numérique, autrement dit une quantité. Comme en mathématiques, on distingue les valeurs entières (ou entiers) 0, 1, 2, 3... et les valeurs réelles (ou réels) auxquelles on ajoute des chiffres après la virgule pour plus de précision. <div class="note"> La virgule s'exprime en informatique sous la forme d'un point :3.14 et non3,14 ! </div> Les nombres servent essentiellement à compter. Nous pouvons appliquer à des valeurs de type nombre les mêmes opérations qu'en mathématiques. Ces opérations produisent un résultat lui aussi de type nombre. Les principales opérations applicables sont rassemblées dans le tableau suivant. <div align="center"> | Opérateur | Rôle |h | + |Addition| | - |Soustraction| | * |Multiplication| | / |Division| </div> !!!Le type chaîne Une valeur de type chaîne de caractères (en abrégé chaîne, ou encore string en anglais) représente un texte. Ces valeurs sont délimitées par une paire de guillemets doubles :`"Ceci est une chaîne".` <div class="note"> Il est également possible de délimiter une chaîne de caractères avec une paire de guillemets simples :`'Ceci est aussi une chaîne'`. Par convention, nous emploierons les guillemets doubles dans ce cours. L'important est d'être cohérent : utilisez l'une ou l'autre notation, mais ne mélangez pas les deux. </div> <div class="attention"> Il ne faut surtout pas oublier de "fermer" une chaîne : simples ou doubles, les guillemets vont toujours par deux ! </div> Pour inclure dans une chaîne certains caractères spéciaux, on utilise le caractère`\` (qui se prononce "antislash" ou "backslash" en anglais) qui donne un sens particulier au caractère suivant. Par exemple,`\n` permet d'ajouter un retour à la ligne dans une chaîne. On ne peut pas additionner ou soustraire des valeurs de type chaîne comme on peut le faire avec des nombres. En revanche, l'opérateur`+` peut être appliqué à deux valeurs de type chaîne. Son résultat est la jointure de ces deux chaînes, appelée ''concaténation''. Par exemple,`"Bon"+"jour"`produit le résultat `"Bonjour"`. !!Structure d'un programme Nous avons précédemment défini un programme informatique comme étant une liste d'ordres indiquant à un ordinateur ce qu'il doit faire. Ces ordres sont écrits sous forme de texte dans un ou plusieurs fichiers et forment ce qu'on appelle le code source du programme. Les lignes de texte dans un fichier de code source s'appellent des lignes de code. <div class="note"> Le code source peut comporter des lignes vides : celles-ci seront ignorées lors de l'exécution du programme. </div> !!!Instructions Chaque ordre inclus dans un programme est appelée une instruction. Une instruction est délimitée par un point virgule. Un programme est constitué d'une suite d'instructions. <div class="note"> Le plus souvent, on n'écrit qu'une seule instruction par ligne, mais ce n'est pas une obligation. </div> !!!Déroulement de l'exécution Lorsqu'un programme est exécuté, les instructions qui le composent sont "lues" les unes après les autres. Chaque instruction produit un résultat, et c'est la combinaison de ces résultats individuels qui produit le résultat final du programme. !!!Commentaires Par défaut, chaque ligne de texte dans les fichiers source d'un programme est considérée comme une instruction à exécuter. Il est possible d'exclure certaines lignes de l'exécution en les préfixant par une double barre oblique`//`. Ce faisant, on transforme ces lignes en commentaires. Les commentaires servent à donner des informations sur le programme et sont destinés au programmeur, non à la machine. <div class="note"> Il existe une autre manière de créer des commentaires en entourant une ou plusieurs lignes par les caractères `/*` et `*/`. </div> ``` /* Un commentaire sur plusieurs lignes */ // Un commentaire sur une seule ligne ``` <div class="attention"> Les commentaires fournissent une aide précieuse pour comprendre le code source d'un programme. Il est important de décrire les parties importantes ou compliquées d'un programme grâce à des commentaires. Prenez cette bonne habitude dès maintenant ! </div>
<div class="text-center"> <div class="statutSuccess">[[Statut : Validé|Statut des billets]]</div> </div>
<<< Sous la surface de la machine, le programme se déplace. Sans effort, il s'étend et se contracte. En grande harmonie, les électrons se dispersent et se regroupent. Les formes sur le moniteur ne sont que des ondulations sur l'eau. L'essence reste invisible en-dessous. //Maître Yuan-Ma, Le livre de la programmation// <<<
A variable that is defined outside a macro can be referred to within the macro using ''either'' `$(varname)$` or `<<varname>>`, depending on context. The difference is that occurrences of `$(varname)$` are immediately replaced with the current value of the variable, while `<<varname>>` is simply returned unchanged as part of the macro output. Thus these are all valid uses: ``` \define mymacro() <$somewidget param="$(currentTiddler)$" /> \define mymacro() <$somewidget param="TEXTBEFORE $(currentTiddler)$ TEXTAFTER" /> \define mymacro() <$somewidget param=<<currentTiddler>> /> ``` but the following is NOT (because it mixes` <<...>>` inside a quoted parameter value where parsing doesn't occur) ``` \define mymacro() <$somewidget param="TEXTBEFORE <<currentTiddler>> TEXTAFTER" /> ``` --- Récupérer sur https://kookma.github.io/TW-Scripts/ comment sont gérés les keywords via les champs
{{VariableDataDictionary||caption}}
On tient un fichier de formateurs via des data tiddlers (dictionnaires) dont la restitution des informations est standardisée via une mise en page évoluée. Cet exemple permet: #De ne pas avoir à saisir deux fois les informations contenues dans les fiches Formateurs (data tiddlers, [[FicheA]] dans cet exemple) #D'obtenir un rendu visuel des fiches attractif (Tiddler [[Main]]) via un tiddler intermédiaire de mise en page ([[Formateur]]) Comme justement [ext[indiqué par @sycom dans le post|https://forum.tiddlywiki.fr/t/recuperer-un-champ-de-tiddler-dictionary-avec-un-nom-de-tiddler-variable/575]], c'est l'usage standard du [ext[widget view|https://tiddlywiki.com/#ViewWidget]] qui permet l'affichage du contenu du champ d'un tiddler dans un format éventuellement spécifié.
{{Variables||caption}}
An [[overview|https://groups.google.com/forum/#!topic/tiddlywiki/1BjhyWKpTgg]] from [[Danielo Rodríguez]] on working with variables in nested list widgets. The list widget has a powerful feature, the variable parameter. It helps you in not losing the reference to the parent while providing meaningful variables names within lists: ``` <$list filter="[tag[sometag]]" variable="item"> both still reference the parent: {{!!title}}, <<currentTiddler>> the more obvious list item now is: <<item>> Go as deep as you want... <$list filter="[tag<item>]" variable="subitem"> still the outermost parent: {{!!title}}, <<currentTiddler>> 1st level items: <<item>> 2nd level items: <<subitem>> </$list> </$list> ``` Notice the single angle brackets with `<item>` in the filter expression of the inner list. You can even use list variables in macro calls like so... ``` \define myItem() item name is $(item)$ <$list filter="[tag[Plugins]]" variable="item" > <<myItem>> </$list> ``` Voir aussi: [[Passer des paramètres à une transclusion|Passing Parameters To A Transclusion]]
\define tags-of-current-tiddler() {{!!tags}} Voir aussi [[Introduction aux Variables|VariablesDoc]]. Pour transclure la valeur d'une variable, on utilise la [[syntaxe macro call|https://tiddlywiki.com/#Macro%20Calls%20in%20WikiText]] sans aucun paramètre. On peut aussi utiliser le [ext[widget $macrocall|https://tiddlywiki.com/#MacroCallWidget]] . Un snippet [[macro|Macros]] peut contenir `$(name)$` comme [[zone réservée|PlaceHolder]] qui sera remplacée par la valeur de cette variable. La valeur d'une variable peut être utilisée en tant que [[paramètre de filtre|https://tiddlywiki.com/#Filter%20Parameter]], ou bien comme [[widget attribut|https://tiddlywiki.com/#Widgets%20in%20WikiText]]. Ce dernier supporte les paramètres de macros. !! Exemple : Définir une variable ``` <$set name=animal value=zebra> <<animal>> </$set> ``` ;Soit: <<< <$set name=animal value=zebra> <<animal>> </$set> <<< !! Exemple : Définir une macro [[La zone réservée|Pragma]]`\define` ci-dessous [[définit une macro|Définir une macro en wikitext]] nommée `tags-of-current-tiddler`. La macro retourne la valeur du champ `tag` du tiddler. Cette valeur peut être récupérée depuis n'importe où dans le même tiddler ou depuis n'importe quel tiddler qui [[l'importera|https://tiddlywiki.com/#ImportVariablesWidget]]. ``` \define tags-of-current-tiddler() {{!!tags}} ``` <small>La déclaration ci-dessus doit être placée en haut et en premier dans ce tiddler</small> ``` The tags are: <<tags-of-current-tiddler>> ``` ;Rendra : <<< The tags are: <<tags-of-current-tiddler>> <<< !! Exemple : Utiliser une variable en tant que paramètre de filtre. Cet exemple utilise l'opérateur de filtre backlinks pour lister tous les tiddlers qui sont liés à celui-ci : ``` <<list-links filter:"[<currentTiddler>backlinks[]]">> ``` ;Soit: <<< <<list-links filter:"[<currentTiddler>backlinks[]]">> <<<
Une <<.def variable>> est une portion de texte accessible par son nom via une branche particulière de l'[[arbre widget|Widgets]]. La portion reconnue est la <<.def valeur>> de la variable. Une nouvelle variable est définie par le widget <<.wlink SetWidget>>, et ainsi accessible à tous les descendants du widget, incluant les contenus tranclus. Un widget <<.wid set>> peut utiliser un nom existant et relier ainsi, une portion différente à ce nom pour cette génération de descendants du widget. Le widget <<.wlink ListWidget>> affecte aussi une variable particulière (par défaut <<.var currentTiddler>>), tour à tour, à chaque titre listé. Pour une vue d'ensemble quand à l'utilisation des variables, se reporter à [[variables dans Wikitexte |Variables in WikiText]]. Malgré le mot <<.word variable>>, chaque portion contient une chaine constante. L'apparente variabilité est actuellement reflétée par la présence de plusieurs variables portant le même nom en différents endroits de l'arbre widget. [[WikiTexte|WikiText]] n'analyse pas les portions en elles-mêmes. Cependant la référence à une variable peut être transcluse dans un contexte où une analyse ~WikiText parsing <<.em may>> pourrait s'effectuer. Dans une portion de code, le seul marquage détecté est `$name$` pour le paramètre de transclusion d'une macro et `$(name)$` pour une variable à transclure. La macro <<.mlink dumpvariables>> liste toutes les variables (y compris les macros) disponibles à une position donnée de l'[[arbre widget|Widgets]]. Le noyau de ~TiddlyWiki intègre [[plusieurs variables|Core Variables]].
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
Si vous venez de télécharger ~TiddlyWiki depuis le site officiel, vous êtes bien sur la dernière version stable (au moment où ces lignes sont rédigées, la version 5.1.17) Vous serez néanmoins amenés à vérifier le numéro de version, par exemple au cours de vos recherches sur d'autres ~TiddlyWikis. Vous pouvez aussi télécharger les versions officielles antérieures qui restent toujours disponibles à l'adresse https://github.com/Jermolene/TiddlyWiki5/releases Bref, Autant savoir rapidement de quoi l'on parle #Votre wiki est ouvert, cliquez sur le bouton {{$:/core/images/options-button}} "Ouvrir le panneau de contrôle", qui se trouve en haut et à la droite de votre écran. #Ensuite cliquez sur l'onglet "Info" #L'information se trouve sur la première ligne du sous-onglet "Basic" : TiddlyWiki version.
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
*Valeur Décimale (RGB) : {{!!decimal}} *Valeur Hexa-Décimale : {{!!hexa}} *Nom HTML : {{!!html-name}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!html-name}}">>
{{ViewFieldMode||caption}}
!! Gérer les champs en mode visu [[$:/core/ui/EditTemplate/fields]], doit être tagué [[$:/tags/EditTemplate]]. En ajoutant le tag [[$:/tags/ViewTemplate]] au tiddler [[$:/core/ui/EditTemplate/fields]], on ajoutera cette fonction au template de vue. Ici, on copie le code du tiddler [[$:/core/ui/EditTemplate/fields]] dans le tiddler [[$:/plugins/tongerner/toolbar/toggle-fields-handling]]. Ensuite on peut ajouter ou retirer le tag [[$:/tags/ViewTemplate]] du tiddler [[$:/plugins/tongerner/toolbar/toggle-fields-handling]]. The position of the tagging part is controlled in the list field of [[$:/plugins/tongerner/toolbar/toggle-fields-handling]]. By adding a `list-after` field containing [[$:/core/ui/ViewTemplate/tags]] in [[$:/plugins/tongerner/toolbar/toggle-fields-handling]] the 'field handling in view mode' will be below the tags. Le contrôle du positionnement de la gestion des champs en mode visu est assuré en ajoutant le champ "list-after" contenant le code `$:/core/ui/ViewTemplate/tags` au tiddler $:/plugins/tongerner/toolbar/toggle-fields-handling de sorte qu'il apparaisse juste au dessous de la liste des tags du tiddler. On remarquera que le bouton $:/plugins/tongerner/toolbar/buttons/toggle-field-handling est également tagué `$:/tags/PageControls` de sorte qu'il apparaisse en clair dans la liste des contrôles du tiddler $:/core/ui/ControlPanel/Toolbars/PageControls Vous pouvez ajouter ou supprimer ce bouton de contrôle de la barre d'édition des tiddlers depuis le paramètre "Afficher/Supprimer le bouton de gestion des champs en mode visu" dans <i class="fa fa-arrow-right"></i> Panneau de contrôle <i class="fa fa-arrow-right"></i> Contrôles <i class="fa fa-arrow-right"></i> Contrôle Tiddlers. Pour que le bouton de contrôle s'affiche également dans la barre de menu haute, taguer le tiddler $:/plugins/tongerner/toolbar/buttons/toggle-field-handling `$:/tags/TopLeftBar`
{{ViewTagMode||caption}}
!! Gérer les tags en mode Visu [[$:/core/ui/EditTemplate/tags]], doit être tagué [[$:/tags/EditTemplate]]. En ajoutant le tag [[$:/tags/ViewTemplate]] au tiddler [[$:/core/ui/EditTemplate/tags]], on ajoutera cette fonction au template de vue. Ici, on copie le code du tiddler [[$:/core/ui/EditTemplate/tags]] dans le tiddler [[$:/plugins/tongerner/toolbar/tagging]]. Ensuite on peut ajouter ou retirer le tag [[$:/tags/ViewTemplate]] du tiddler [[$:/plugins/tongerner/toolbar/tagging]]. Le contrôle du positionnement de la gestion des tags en mode visu est assuré en ajoutant le champ "list-after" contenant le code `$:/core/ui/ViewTemplate/tags` au tiddler $:/plugins/tongerner/toolbar/tagging de sorte qu'il apparaisse juste au dessous dela liste des tags du tiddler. On remarquera que le bouton $:/plugins/tongerner/toolbar/images/tagging est également tagué $:/tags/PageControls de sorte qu'il apparaisse en clair dans la liste des contrôles du tiddler $:/core/ui/ControlPanel/Toolbars/PageControls Vous pouvez ajouter ou supprimer ce bouton de contrôle de la barre d'édition des tiddlers depuis le paramètre "Afficher/Supprimer le bouton de gestion des tags en mode visu" dans <i class="fa fa-arrow-right"></i> Panneau de contrôle <i class="fa fa-arrow-right"></i> Contrôles <i class="fa fa-arrow-right"></i> Contrôle Tiddlers. Pour que le bouton de contrôle s'affiche également dans la barre de menu haute, taguer le tiddler $:/plugins/tongerner/toolbar/buttons/toggle-tagging `$:/tags/TopLeftBar`
! Introduction Le widget view affiche le contenu du champ d'un tiddler dans un format spécifié. ! Contenu et Attributs Le contenu du widget `<$view>` est affiché si le champ ou une propriété est vide ou manquante. |!Attribut |!Description | |tiddler |Le titre du tiddler (par défaut du [[tiddler courant|Current Tiddler]]) | |field |Le nom du champ à afficher (par défaut "texte") | |index |Le nom de l'index à afficher | |format |Le format d'affichage du champ (voir ci-dessous) | |template |Une chaine de gabarit optionnelle utilisée avec certains formats comme les dates | |subtiddler |Le titre d'un SubTiddler optionnel quand le tiddler cible est un [[plugin|Plugins]] (voir ci-dessous) | !! Formats Les formats suivants peuvent être spécifiés dans l'attribut `format` <<:>> |!Format |!Description | |''text'' |text brut | |''htmlwikified'' |Le champ est wikifié et la résultante HTML retourné comme du texte brut | |''htmlencoded'' |Le champ est affiché jusqu'à l'encodage HTML | |''date'' |Le champ est interprété comme une date UTC date et affiché selon le [[format de date|DateFormat]] spécifié dans l'attribut `template` | |''relativedate'' |Le champ est interprété comme une date UTC date et affiché comme un intervalle au moment présent | |''stripcomments'' |Le champ est considéré comme du code source JavaScript et toutes les lignes commençant par `\\#` sont écartées | |''jsencoded'' |Le champ est affiché comme une chaine encodée en JavaScript | ! Accès au SubTiddler Le widget view permet l'accès aux tiddlers individuels stockés dans un [[plugin|Plugins]]. L'exemple suivant montre la version originale du tiddler [[$:/DefaultTiddlers]] même s'il a été remplacé<<:>> <<wikitext-example-without-html ' <$view tiddler="$:/core" subtiddler="$:/DefaultTiddlers"/> '>>
{{Vignettes||caption}}
Avec une macro, une image et un tiddler intermédiaire, Jeremy Ruston centre et fixe la taille des images comme suit: ``` <div style="font-size:0.7em;text-align:center;margin-top:2em;margin-bottom:2em;"> <<list-thumbnails filter:"[tag[HelloThumbnail]]" width:"168" height:"95">> </div> ``` <div style="font-size:0.7em;text-align:center;margin-top:2em;margin-bottom:2em;"> <<list-thumbnails filter:"[tag[HelloThumbnail]]" width:"168" height:"95">> </div> Les trois tiddlers suivants sont requis: *$:/core/macros/thumbnails (La macro) *[[Motovun Jack.jpg]] (L'image) *[[HelloThumbnail - Gentle Guide]] (Le tiddler intermédiaire) ; Dans le déail: *La macro fait partie du core *le Tiddler [[HelloThumbnail - Gentle Guide]] possède les champs suivants: |background-color|#EDB431| |caption|A Gentle Guide| |color| - | |image|Motovun Jack.jpg| |link|A Gentle Guide to TiddlyWiki| *Code de la macro: {{$:/core/macros/thumbnails||code}}
*<<rojo "Valeur Décimale (RGB) : {{!!decimal}}">> *<<rojo "Valeur Hexa-Décimale : {{!!hexa}}">> *<<rojo "Nom HTML : {{!!htm-name}}">>
{{Vis||caption}}
.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration-wrapper::after{clear:both;content:"";display:block}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;padding:1px;margin:0;pointer-events:none}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%)}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:1px solid #fff;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}div.vis-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none;z-index:5}.vis-current-time{background-color:#ff7f6e;width:2px;z-index:1;pointer-events:none}.vis-rolling-mode-btn{height:40px;width:40px;position:absolute;top:7px;right:20px;border-radius:50%;font-size:28px;cursor:pointer;opacity:.8;color:#fff;font-weight:700;text-align:center;background:#3876c2}.vis-rolling-mode-btn:before{content:"\26F6"}.vis-rolling-mode-btn:hover{opacity:1}.vis-custom-time{background-color:#6e94ff;width:2px;cursor:move;z-index:1}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-item{position:absolute;color:#1a1a1a;border-color:#97b0f8;border-width:1px;background-color:#d5ddf6;display:inline-block;z-index:1}.vis-item.vis-selected{border-color:#ffc200;background-color:#fff785;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-point.vis-selected{background-color:#fff785}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item-visible-frame{white-space:nowrap}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-onUpdateTime-tooltip{position:absolute;background:#4f81bd;color:#fff;width:200px;text-align:center;white-space:nowrap;padding:5px;border-radius:1px;transition:.4s;-o-transition:.4s;-moz-transition:.4s;-webkit-transition:.4s}.vis-item .vis-delete,.vis-item .vis-delete-rtl{position:absolute;top:0;width:24px;height:24px;box-sizing:border-box;padding:0 5px;cursor:pointer;-webkit-transition:background .2s linear;-moz-transition:background .2s linear;-ms-transition:background .2s linear;-o-transition:background .2s linear;transition:background .2s linear}.vis-item .vis-delete{right:-24px}.vis-item .vis-delete-rtl{left:-24px}.vis-item .vis-delete-rtl:after,.vis-item .vis-delete:after{content:"\00D7";color:red;font-family:arial,sans-serif;font-size:22px;font-weight:700;-webkit-transition:color .2s linear;-moz-transition:color .2s linear;-ms-transition:color .2s linear;-o-transition:color .2s linear;transition:color .2s linear}.vis-item .vis-delete-rtl:hover,.vis-item .vis-delete:hover{background:red}.vis-item .vis-delete-rtl:hover:after,.vis-item .vis-delete:hover:after{color:#fff}.vis-item .vis-drag-center{position:absolute;width:100%;height:100%;top:0;left:0;cursor:move}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-range.vis-item.vis-readonly .vis-drag-left,.vis-range.vis-item.vis-readonly .vis-drag-right{cursor:auto}.vis-itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-nesting-group{cursor:pointer}.vis-nested-group{background:#f5f5f5}.vis-label.vis-nesting-group.expanded:before{content:"\25BC"}.vis-label.vis-nesting-group.collapsed-rtl:before{content:"\25C0"}.vis-label.vis-nesting-group.collapsed:before{content:"\25B6"}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis-labelset .vis-label{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box}.vis-labelset .vis-label{border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-panel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-left.vis-panel.vis-vertical-scroll,.vis-right.vis-panel.vis-vertical-scroll{height:100%;overflow-x:hidden;overflow-y:scroll}.vis-left.vis-panel.vis-vertical-scroll{direction:rtl}.vis-left.vis-panel.vis-vertical-scroll .vis-content{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll{direction:ltr}.vis-right.vis-panel.vis-vertical-scroll .vis-content{direction:rtl}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-background{overflow:hidden}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-vertical-rtl{position:absolute;border-right:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-timeline{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}
<script src="https://cdnjs.cloudflare.com/ajax/libs/raphael/2.2.8/raphael.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/flowchart/1.11.3/flowchart.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.21.0/vis.js"></script>
Pour plus d'exemples, voyez https://oxydum.github.io/tiddlyvis/ Cet outil est d'utilisation aisée.
Image: <$edit-text tiddler='$:/_MyImage' tag='input' placeholder='(unset)' default=''/> <$transclude tiddler={{$:/_MyImage}}/> --- <$macrocall $name='image-picker' actions=" <$action-setfield $tiddler='$:/_MyImage' $value=<<imageTitle>>/> "/> ;Voir aussi le tiddler `$:/core/ui/EditorToolbar/picture-dropdown`
<$macrocall $name="progress" tagName={{!!title}}/>
Par @Mohammad [ext[Voir aussi le site source W3|https://www.w3schools.com/w3css/w3css_intro.asp]] Mise à jour : Ce framework n'est plus utilisé sur ce wiki.
The color chart below lists the 216 web safe colors (as per the informal web safe colors standard). The respective hex color code and rgb color code are displayed over each color swatch. The hex color code is really just an rgb value that is in hexadecimal notation. The rgb color code uses decimal notation and separates each component (red, green and blue) by a comma. Observe the way that incremental changes to the hex/rgb values influence color.
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
Le filtrage est très puissant et il peut être utilisé pour des opérations logiques. Il s'agit de quelques notes sur les opérations logiques utilisant le filtrage dans TiddlyWiki. La plupart de ce qui suit n'est pas 'utilité immédiate, peut servir de base pour résoudre les problèmes de filtrage dans TiddlyWiki. Ce qui suit s'applique aux opérateurs de filtres suivants : `days`, `field`, `has`, `haschanged`, `is`, `regexp`, `sameday`, `search`, `prefix`, `suffix`, `tag` et `untagged` Nous utilisons les notations suivantes: |!Operation |!Symbol | |`A` and `B` |`A.B` | |`A` or `B` |`A+B` | |not `A` |`¬A` | |`A` xor `B` |`A⊕B` | |`A` iff `B` |`A⇔B` | Quelques règles dont il faut se souvenir : ``` A+B ⇔ !(!A.¬B) !(A+B) ⇔ !A.!B A.B ⇔ !(!A+!B) ¬(A.B) ⇔ ¬A+¬B A ⇔ A.B+A.¬B A ⇔ A+A.B A ⇔¬(¬A) ``` It occurs to me that it may be better to use set notation for this...
The Multi-column Layout spec is often overlooked as we use Grid and Flexbox. In this article Rachel Andrew explains why it is different to other layout methods, and shows some useful patterns and sites which showcase it well.
!!À traiter I'm having a problem understanding WHY example 2. BREAKS down. I did not even know how to give this post an appropriate title! I would appreciate if someone could explain it to me. ``` *Fields* title : Headache list : [[A B]] [[C D]] E tidd : Headache \define get-related-tiddlers() <$view tiddler=$(tid)$ field="list" mode= "block"/> \define test(list-tids) list-tids= $list-tids$ <$list filter="[enlist<__list-tids__>]"> </$list> \end <$set name=tid value={{!!tidd}}> tid= <<tid>> get-related-tiddlers= <<get-related-tiddlers>> ``` 1. WORKS: ``` <$macrocall $name="test" list-tids={{!!list}} field="list" /> ``` 2. BREAKS: ``` <$macrocall $name="test" list-tids=<<get-related-tiddlers>> field="list" /> <$wikify name="GOT-related-tiddlers" text=<<get-related-tiddlers>>> ``` 3. WORKS!: ``` <$macrocall $name="test" list-tids=<<GOT-related-tiddlers>> field="list" /> </$wikify> </$set> ``` Also, I wonder if this use case was the primary reason for making the $wikify widget? If not, what was? !!Réponse de Eric Shulman OK... Let's see if this helps: TiddlyWiki macro definitions are NOT functions in the traditional programming sense. Although input "parameters" can be passed to them, and they "return" something as a result, they don't actually "run" any of the "code" they contain. When a macro is invoked, it does two things (and ONLY two things): #replace all occurrences of $paramname$ with the corresponding value that was passed as an input parameter #replace all occurrences of $(variablename)$ with the current value of the variable (assuming it is defined in the context of the "caller" of the macro) That is ALL it does. After doing the replacements, the resulting content is "returned". If the macro call is being used as a widget parameter, then the result is simply passed along to the widget for further processing. However, if the macro call is embedded directly in wiki content, then it is rendered. In light of the above, when you invoke the following: ``` 2. BREAKS: <$macrocall $name="test" list-tids=<<get-related-tiddlers>> field="list" /> ``` the value of the "list-tids" parameter is simply passed along to the widget and will NOT be the contents of the list field, but rather will literally be: ``` <$view tiddler=SomeTiddlerName field="list" mode="block"/> ``` In contrast, when you use `<$wikify>` on the macro, you are forcing it to be rendered and then capturing that result in the variable "GOT-related-tiddlers". Thus, the `<$view>` widget contained in the macro DOES get processed, and the result is then available to pass along to the "list-tids" param. <<< Also, I wonder if this use case was the primary reason for making the $wikify widget? If not, what was? <<< I would say it was a convincing reason, though perhaps not the only one. hope this helps,
!!.myTitle Introduction A widget message is generated by the Button Widget in response to a user action. The message is handled by an ancestor widget in the widget stack and is either passed on or changed for another widget message that is handled by other ancestor widgets further out in the widget stack. In addition to those implemented in the core, the various button widgets on this site understand the following widget messages: * "tw-new-tiddler", handled by the ~MakeTid Widget * "tw-set-field", handled by the ~SetField Widget * "tw-mangle-tags", handled by the ~MangleTags Widget * "tw-if-tiddler", handled by the ~IfTid Widget * "tw-if-tref", handled by the ~IfTref Widget * "tw-make-list", handled by the ~MakeList Widget !!.myTitle The Parameter to the Widget Message The parameter to the various widget messages propagating through the stack is understood by the widgets to carry the title of the target tiddler. With this mechanism, it is sufficient to specify the title of the target tiddler only once -- subsequent widgets further out in the stack will target this tiddler by default. The target is specified using the 'tiddler=' attribute of the widgets -- the exception being the `<$maketid>` widget, where the target is designated by the 'title=' attribute (thus targeting the newly created tiddler by default.) !!.myTitle Changing the Target The target may be changed at any point in the stack by overriding the default using the 'tiddler=' attribute (which applies the change to the current widget) or with the 'param=' attribute (which applies the change to the next widget in the stack.) Thereafter, the default title carried by the parameter to the widget message to widgets further out in the stack will have the newly assigned value. !!.myTitle Default Messages The `<$setfield>` and `<$mangletags>` widgets pass on the message received by default -- allowing several of each of these widgets to be stacked adjacent to one another without having to again specify the widget message with the 'message=' attribute. The `<$iftid>` and `<$iftref>` widgets send a 'tw-set-field' message by default, which should be overridden in most usage cases with the 'then=' and 'else=' attributes. The `<$maketid>` widget sends a 'tw-set-field' message by default with the value of 'param' set to the value of the 'title=' atrribute !!.myTitle No Target Specified When no target is specified (for example a button widget without a 'param=' attribute), the value of 'currentTiddler' will be taken as the default target. Widgets intended to target 'currentTiddler' are, therefore, best placed on the inside of the stack before a target is specified.
The `tm-browser-refresh` message refreshes the page, causing the re-initialisation of any plugin tiddlers. It does not require any properties on the `event` object. The refresh message is usually generated with the ButtonWidget and is handled by the core.
The modal message displays a specified tiddler in a modal overlay that dims the main page. It requires the following properties on the `event` object: |!Name |!Description | |param |Title of the tiddler to be displayed | |paramObject |Hashmap of variables to be provided to the modal | The "currentTiddler" variable is set to the title of the modal tiddler, but can be overridden by specifying a different value in `paramObject`. The modal message is usually generated with the ButtonWidget. The modal message is handled by the TiddlyWiki core. ! Example Here is an example of displaying a modal and passing parameters to it: <$macrocall $name='wikitext-example-without-html' src='Your name: <$edit-text tiddler="$:/temp/yourName" tag="input" default="Your name"/> Your message: <$edit-text tiddler="$:/temp/yourMessage" default="Your message"/> <$button> <$action-sendmessage $message="tm-modal" $param="SampleModal" yourName={{$:/temp/yourName}} yourMessage={{$:/temp/yourMessage}}/> Click me! </$button>'/>
{{Widgets||caption}}
``` <dl>{{{ [tag[Widgets]] || $:/tocEntry }}}</dl> ``` <$details summary="Résultat"> <dl>{{{ [tag[Widgets]] || $:/tocEntry }}}</dl> </$details> <br/> Au dessus du noyau, ils facilitent le codage. ''L'affichage de ~TiddlyWiki'' est piloté par un ensemble de widgets sous-jacents. Ceux-ci sont organisés dans une structure arborescente : chaque widget a un widget parent et zéro ou plusieurs widgets enfants. ~TiddlyWiki génère cette arborescence de widget en analysant le Wikitexte des tiddlers. Chaque composant de la syntaxe Wikitexte, y compris celui d'un texte ordinaire, génère un widget correspondant. L'arborescence de widget est une représentation intermédiaire qui est ensuite rendue dans l'affichage final. <widg1>''Les Widgets sont similaires aux éléments HTML d'un document''. En fait, les balises HTML dans Wikitext génèrent des éléments widgets dédiés. Par exemple, le widget [["button"|ButtonWidget]] affiche l'élément HTML `<button>`. De même, le widget [["checkbox"|CheckboxWidget]] affiche l'élément HTML `<input type="checkbox">`. Ou encore, le widget [["browse"|BrowseWidget]] affiche un bouton HTML permettant d'importer un fichier. Le widget [["dropzone"|DropzoneWidget]] va créer une zone dans laquelle l'utilisateur peut y déposer des fichiers ou autres objets.</widg1> ''Chaque classe de widget possède une capacité spécifique et contribue au fonctionnement de l'ensemble''. Par exemple, la possibilité d'[[afficher une image|ImageWidget]] ou un [[bouton|ButtonWidget]], d'[[appeler une macro|MacroCallWidget]] ou de [[transclure un texte d'ailleurs|TranscludeWidget]], ou de baliser un morceau de texte comme étant un titre. Les widgets les plus spécialisés utilisent une syntaxe de widget ''polyvalente'' comme seule représentation Wikitexte possible. Les 46 classes de widget suivantes (taguées Widgets) sont intégrées au noyau : Note: [[Le site source|https://tiddlywiki.com/#Widgets]] en recence 45 dont 7 [[widgets action|https://tiddlywiki.com/#ActionWidgets]] ; Liste complète des 45 classes par ordre alphabétique : <div class="container"> <div class="columns"> <div class="column col-4"> #[[action-createtiddler|ActionCreateTiddlerWidget]] #[[action-deletefield|ActionDeleteFieldWidget]] #[[action-deletetiddler|ActionDeleteTiddlerWidget]] #[[action-listops|ActionListopsWidget]] #[[action-navigate|ActionNavigateWidget]] #[[action-sendmessage|ActionSendMessageWidget]] #[[action-setfield|ActionSetFieldWidget]] #browse #[[button|ButtonWidget]] #checkbox #codeblock #count #diff-text #draggable #droppable </div> <div class="column col-4"> #dropzone #edit-bitmap #edit-text #edit #encrypt #entity #[[fieldmangler|FieldManglerWidget]] #fields #image #importvariables #keyboard #linkcatcher #link #list #[[macrocall|MacroCallWidget]] </div> <div class="column col-4"> #navigator #password #radio #range #[[reveal|RevealWidget]] #scrollable #select #setvariable #[[set|SetWidget]] #text #tiddler #transclude #vars #view #wikify </div> </div> </div> Voir aussi ActionWidgets Pour obtenir une liste courte des seuls widgets actuellement traités sur ce wiki : ``` <<list-links "[tag[Widgets]]">> ``` <$details summary="Résultat"> <<list-links "[tag[Widgets]]">> </$details> <br/> See more definition in [[WidgetsDoc-1]] below : {{WidgetsDoc-1}}
<<doc>> A widget is markup text that, if you're familiar with HTML, works identical to that of an HTML tag. Except that the widget has special TW powers. It's form looks like this: ``` <$thingy atrribute1=abc attribute2=xyz >Sometimes stuff goes here</$thingy> ``` If you had a widget invoked as `<$thingy>` then it would be referenced as ~ThingyWidget in the TW documentation. This is good to know when looking up documentation. Widgets perform most of the heavy lifting in TW, including listing tiddlers, creating tiddlers, renaming fields, exposing tiddler contents, running macros. Be careful not to confuse Widgets with WikiText (reference to WikiText). WikiText is a special markup that secretly, behind the scenes, is actually creating and invoking Widgets. For instance, this wikitext for transcluding a tiddler: ``` {{myTiddler}} ``` is actually wikitext shorthand for ``` <$transclude tiddler="myTiddler"/> ``` It's important to keep the concepts of WikiText and Widgets separate in your thinking. WikiText can be used inside of Widgets, but Widgets can not be used inside of WikiText. That is, you can do this: ``` <$transclude tiddler=<<mymacro>>/> ``` but you can not do this ``` {{<$transclude tiddler="mytiddler"/>}} ```
{{WikiPedia||caption}}
{{WikiText||caption}}
{{$:/plugins/telmiger/WMR/reference}} --- {{$:/plugins/telmiger/WMR/about}}
Le ~WikiText est le langage de balisage de TiddlyWiki, qui permet d'écrire de manière concise et expressive une grande variété de formatages de texte, de liens hypertextes et de fonctionnalités interactives. Il permet de se concentrer sur l'écriture, sans l'interférence d'une interface complexe. Il est conçu pour être familier aux utilisateurs de [[Markdown]], tout en étant plus focalisé sur les liens et les fonctionnalités interactives. Voir [[Formater du texte dans TiddlyWiki|WikiText]] pour une introduction au ~WikiText. Les syntaxes suivantes sont intégrées nativement dans ~TiddlyWiki : <<list-links "[tag[WikiText]]">>
widgets for multi-function buttons <span title="Home"><$button message="tw-home" class="btn-invisible">Wills gWiZ</$button></span> Matabele
World Cities Database sur le site Simple Maps. À combiner avec le plugin [ext[Leafleft Map par Sycom|https://sycom.github.io/TiddlyWiki-Plugins/#Leaflet%20plugin]] (Intégration ~LeafLeft) [ext[Le site LeafLeft|https://leafletjs.com/]] [ext[Voir l'adaptation de Sylvain Naudin|https://tw5.xyz/tiddlywiki-carto-mlc.html]] Le wiki ''World Cities, Provinces & Countries'' (dont je n'arrive pas a retrouver la source, peut être https://designwritestudio.updog.co/skunkworks/xlsx-imports/world-cities-demo.html mais dont l’accès semble prohibé depuis le pays dans lequel je vis, étant entendu que cette interdiction provient du site source lui-même) ''recense 70 villes de France'', issues de la base de donnée du site [ext[https://simplemaps.com/data/world-cities]]. La base de donnée est au format XLS ce qui permet de gérer les imports dans TiddlyWiki via le plugin https://tiddlywiki.com/prerelease/editions/xlsx-utils/ ce qui est précisément l'objet de ce wiki. Le fichier Excel du site simplemaps.com utilisé dans cette démonstration est celui qui est mis gratuitement a disposition des internautes (Database Basic). Il contient environ 13,000 références. Le site propose également deux autres bases de données mais qui sont payantes: :Database pro, contenant environ 1.5 million deréférences :database Comprehensive contenant environ 4 million de références Or il se trouve par un heureux hasard que le site propose au titre d'exemple de prévisualisation un extrait du fichier excel contenant 57,810 villes françaises (issues, je suppose de la Database comprehensive. Il ne reste donc plus qu'a proposer un TiddlyWiki listant toutes les villes de France sur le modèle ''World Cities, Provinces & Countries''
<input type='text' class="bttn-gradient bttn-xs bttn-warning" id='input' name='input' placeholder='Wikipédia...' /> <button class='bttn-material-circle bttn-xs bttn-primary' name='clear' id='clear' type='button'><span class='fa fa-times'></span></button> <button class='bttn-material-circle bttn-xs bttn-success' name='search' id='search' type='button'> <i class='fa fa-search'></i> </button> <button class='bttn-material-circle bttn-xs bttn-royal' name='random' id='random' type='submit'> <i class='fa fa-random'></i> </button> <div class='search-results'> </div> <style> * { box-sizing: border-box; } #input, button { outline: none; } #input { width: 60%; max-width: 20rem; line-height: 1.8rem; font-size: 0.9rem; padding: 1 0.5rem; border: none; outline: none; } .search-results { width: 100%; margin-top: 2.5rem; } .result-pane { width: 100%; background-color: #fff; padding: 0; box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 6px, rgba(0, 0, 0, 0.12) 0px 1px 4px; margin: 1rem 0; border-radius: 0.125rem; } .result-pane a { text-decoration: none; color: #202020; } .result-pane h4 { font-size: 1.4rem; padding: 0.8rem 1.5rem; margin: 0; color: rgba(0, 0, 0, 0.4); background-color: rgb(232, 232, 232); } .result-pane p { font-size: 0.9rem; margin: 0.5rem; padding: 0.5rem 1rem 1rem; line-height: 1.6rem; color: rgba(51, 51, 51, 0.9); } </style> <<eval """ var searchBtn = document.querySelector('#search'); var clearBtn = document.querySelector('#clear'); var randomBtn = document.querySelector('#random'); var results = document.querySelector('.search-results'); var input = document.querySelector('#input'); function getResults() { var searchValue = document.querySelector('#input').value; var urlString = "https://fr.wikipedia.org/w/api.php?origin=*&format=json&action=query&generator=search&gsrnamespace=0&gsrlimit=10&prop=info|extracts&inprop=url&gsrsearch=" + searchValue + "&exintro&explaintext&exsentences=1&exlimit=max"; return fetch(urlString) .then(response => { if(!response.ok) { throw new Error( 'Aucune réponse réseau : ' + response.statusText ); } return response.json(); }) } function showResults(info) { results.textContent = ""; for(var pageid in info.query.pages) { console.log(info.query.pages[pageid]); var resultPane = "<div class='result-pane'><a href=" + info.query.pages[pageid].fullurl + " target='_blank'><h4>" + info.query.pages[pageid].title + "</h4><p>" + info.query.pages[pageid].extract + "</p></a></div>"; results.insertAdjacentHTML('beforeend', resultPane); } } function handleSearch() { return getResults() .then(showResults); } function clearInput() { input.value = ""; }; searchBtn.addEventListener('click', handleSearch); randomBtn.addEventListener('click', function() { window.open('https://fr.wikipedia.org/wiki/Special:Random', '_blank'); }); clearBtn.addEventListener('click', clearInput); """>>
<$macrocall $name="progress" tagName={{!!title}}/>
{{xlsx||caption}}
!Tiddlers requis *<$button>1</$button> [[$:/plugins/tiddlywiki/xlsx-utils]] **Ce plugin permet ''d'importer le contenu de fichiers Excel''. **Ce plugin est maintenant officiel et une version démo explicative est joignable à l'adresse [[https://tiddlywiki.com/editions/xlsx-utils/]]. **Il s'agit d'une démo du plugin xlsx-utils pour ~TiddlyWiki. **Ce plugin fournit un moyen flexible d'importer des tiddlers à partir de fichiers Excel. Il est basé sur la bibliothèque js-xlsx. *<$button>2</$button> $:/plugins/tiddlywiki/jszip **Plugin à joindre obligatoirement. Un message d'alerte est donné s'il n'est pas installé simultanément. *<$button>3</$button> [ext[Presidents and Justices.xlsx]] **Feuille Excel d'exemple qui sera à télécharger sur votre wiki. !Fonctionnement Le plugin utilise les spécifications d'importation pour déterminer comment les feuilles de calcul entrantes sont traitées. Vous pouvez afficher, créer et modifier les spécifications d'importation dans le panneau de contrôle "xlsx Utilities" onglet, ou directement dans les contrôles du plugin. C'est également là que vous sélectionnez la spécification d'importation est sélectionnée pour une utilisation lors de la prochaine opération d'importation. Chaque feuille est censée consister en une seule ligne d'en-tête suivie de plusieurs lignes de contenu, chacune consistant en un enregistrement indépendant. Le plugin détecte automatiquement l'étendue de chaque feuille en recherchant la cellule en bas à droite qui contient une valeur. Cela peut entraîner des résultats inattendus si une cellule est créée accidentellement avec une valeur invisible et vide. Les spécifications d'importation décrivent comment les tiddlers sont créés à partir d'une ligne particulière d'une feuille; plusieurs tiddlers peuvent être générés à partir d'une seule ligne. Chaque champ de chaque tiddler peut être assigné une valeur de constante, ou une valeur prise à partir d'une colonne nommée de la feuille, facultativement avec un préfixe et/ou un suffixe ajouté. Il existe un support spécial pour la gestion des champs de liste (comme le champ Tags), avec la possibilité d'ajouter de nouveaux éléments à la liste. Une même donnée peut être affectée à différents champs. En interne, chaque spécificateur d'importation est en fait modélisé comme une hiérarchie de tiddlers connectés avec le champ Import-spec-Role indiquant les rôles suivants: Workbook: décrit les feuilles à importer du classeur feuille: décrit chaque feuille à traiter Row: décrit les tiddlers à importer à partir de chaque ligne de chaque feuille Field: décrit les champs à assigner à chaque tiddler de chaque ligne de chaque feuille La meilleure façon de comprendre la structure est d'explorer les spécifications d'importation de l'exemple, et les feuilles de calcul correspondantes qu'ils sont conçus pour gérer. Notez qu'il existe de nombreuses façons différentes d'importer une feuille de calcul particulière, selon que les structures sont modélisées avec des champs, des balises, des préfixes ou d'autres mécanismes. Le plugin est conçu pour supporter un large éventail d'applications. !!Contenu du fichier excel à importer Ne doivent figurer que les colonnes effectivement utilisées dans le plugin, de la première à la dernière
http://sunypoly-faculty-spring2019.tiddlyspot.com/ ;P.Mario <<< TW is able to save the whole content as static html files, without any javascript at all. ... BUT ... the usability will be completely different here! eg: no right sidebar, no tabs, no interactive elements. ... just content. <<< ;Eric Shulman <<< If all you want to do is "serve tiddlywiki files"... then it is really no different than hosting any other regular HTML file on the server. Without adding any additional server-side scripts (which could impact on existing security protocols), you would simply upload an HTML file to the server using whatever method is currently in place and approved by the University. The entire uploaded TW is then simply delivered to the brower just like any other HTML file, and the javascript executes completely within the client-side browser, which runs in a locked-down sandbox environment that is not permitted to peform local file I/O. The user CAN make changes in the TW and save them to a **local file** by using the default "download saver". However, this does NOT create anything new *on the server* and opening the locally-saved TW file will still be secure since it is locked-down in the browser's sandbox environment. <<< ;Lost Admin <<< First is that anyone with access to save a tiddlywiki on your site could modify the javascript that makes tiddlywiki work. Since tiddlywiki is giving you the ability to edit the javascript within the tiddlywiki, it is easy for anyone who has access to it to modify and save it so that it affects the next person to view the tiddlywiki. Second is the issue of cross-site-scripting (XSS). That is, because the core of tiddlywiki can be modified by anyone who can save a tiddlywiki, they can have it call outside scripts (this is how things like the discus plugin work). The problem is, like the first part, once one person modifies it, it is affected by everyone else who uses the tiddlywiki. In summary, tiddlywiki requires a very high level of trust in everyone who can edit a tiddlywiki document. As such, it may not be appropriate for environments where you shouldn't place a high level of trust in your users. Like say the students at a University. The node.js version of Tiddlywiki might be a bit better in addressing the above, but it would still need to prevent the users from saving any javascript. <<< ;~TonyM <<< Just keep in mind, With a read only html file served to the world the content visible or not, can be found, its content is not protected in anyway. But of course the server is protected unless contained therein your html file is compromising information. Just make it clear to users their TiddlyWiki is globally accessible and an open book. Include nothing you do not want the world to see. The ability to use tiddlywiki in the browser unsaved to disk, or saved locally is fabulous for user interaction because they can enter their own custom data. This will be extended somewhat with the pending release of the next version that includes a local storage plugin, the thing to do is reassure security this is local browser storage, not on the server (Although it will look like it). Further, If you permit people to publish to the server, or do it on their behalf, make it clear in the domain / folder names this is demo or student published content. Otherwise they could construct a "trojan" wiki that looks like an official site and miss represents the colledge. In future the local storage plugin could be used to install a trojan on one computer only, although look as if it were only the wiki stored at a readonly html address. But once again give a meaning full domain / folder name and they can't conceal it completely. <<<
<$macrocall $name="progress" tagName={{!!title}}/>
<$macrocall $name="progress" tagName={{!!title}}/>
*Cours CSS *Cours JavaScript CSS
https://learn.tiddlyhost.com
learn.tiddlyhost.com
https://learn.tiddlyhost.com/thumb.png